@angular/router 18.1.0-next.1 → 18.1.0-next.3

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.
Files changed (33) hide show
  1. package/esm2022/src/components/empty_outlet.mjs +3 -3
  2. package/esm2022/src/directives/router_link.mjs +41 -15
  3. package/esm2022/src/directives/router_link_active.mjs +3 -3
  4. package/esm2022/src/directives/router_outlet.mjs +6 -6
  5. package/esm2022/src/errors.mjs +1 -1
  6. package/esm2022/src/index.mjs +1 -1
  7. package/esm2022/src/models.mjs +1 -1
  8. package/esm2022/src/models_deprecated.mjs +1 -1
  9. package/esm2022/src/navigation_transition.mjs +11 -7
  10. package/esm2022/src/page_title_strategy.mjs +6 -6
  11. package/esm2022/src/route_reuse_strategy.mjs +6 -6
  12. package/esm2022/src/router.mjs +5 -5
  13. package/esm2022/src/router_config_loader.mjs +3 -3
  14. package/esm2022/src/router_module.mjs +4 -4
  15. package/esm2022/src/router_outlet_context.mjs +3 -3
  16. package/esm2022/src/router_preloader.mjs +9 -9
  17. package/esm2022/src/router_scroller.mjs +3 -3
  18. package/esm2022/src/statemanager/state_manager.mjs +11 -13
  19. package/esm2022/src/url_handling_strategy.mjs +6 -6
  20. package/esm2022/src/url_tree.mjs +3 -3
  21. package/esm2022/src/utils/functional_guards.mjs +1 -1
  22. package/esm2022/src/utils/view_transition.mjs +5 -2
  23. package/esm2022/src/version.mjs +1 -1
  24. package/esm2022/testing/src/router_testing_harness.mjs +6 -6
  25. package/esm2022/testing/src/router_testing_module.mjs +4 -4
  26. package/fesm2022/router.mjs +123 -93
  27. package/fesm2022/router.mjs.map +1 -1
  28. package/fesm2022/testing.mjs +11 -11
  29. package/fesm2022/upgrade.mjs +1 -1
  30. package/index.d.ts +51 -42
  31. package/package.json +4 -4
  32. package/testing/index.d.ts +1 -1
  33. package/upgrade/index.d.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v18.1.0-next.1
2
+ * @license Angular v18.1.0-next.3
3
3
  * (c) 2010-2024 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -421,10 +421,10 @@ function mapChildrenIntoArray(segment, fn) {
421
421
  * @publicApi
422
422
  */
423
423
  class UrlSerializer {
424
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
425
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }); }
424
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
425
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }); }
426
426
  }
427
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: UrlSerializer, decorators: [{
427
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: UrlSerializer, decorators: [{
428
428
  type: Injectable,
429
429
  args: [{ providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }]
430
430
  }] });
@@ -1857,10 +1857,10 @@ class ChildrenOutletContexts {
1857
1857
  getContext(childName) {
1858
1858
  return this.contexts.get(childName) || null;
1859
1859
  }
1860
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: ChildrenOutletContexts, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
1861
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' }); }
1860
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: ChildrenOutletContexts, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Injectable }); }
1861
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' }); }
1862
1862
  }
1863
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
1863
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
1864
1864
  type: Injectable,
1865
1865
  args: [{ providedIn: 'root' }]
1866
1866
  }], ctorParameters: () => [{ type: i0.EnvironmentInjector }] });
@@ -2568,10 +2568,10 @@ class RouterOutlet {
2568
2568
  this.inputBinder?.bindActivatedRouteToOutletComponent(this);
2569
2569
  this.activateEvents.emit(this.activated.instance);
2570
2570
  }
2571
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2572
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.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 }); }
2571
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
2572
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0-next.3", 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
2573
  }
2574
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterOutlet, decorators: [{
2574
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterOutlet, decorators: [{
2575
2575
  type: Directive,
2576
2576
  args: [{
2577
2577
  selector: 'router-outlet',
@@ -2694,10 +2694,10 @@ class RoutedComponentInputBinder {
2694
2694
  });
2695
2695
  this.outletDataSubscriptions.set(outlet, dataSubscription);
2696
2696
  }
2697
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2698
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RoutedComponentInputBinder }); }
2697
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RoutedComponentInputBinder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2698
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RoutedComponentInputBinder }); }
2699
2699
  }
2700
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
2700
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RoutedComponentInputBinder, decorators: [{
2701
2701
  type: Injectable
2702
2702
  }] });
2703
2703
 
@@ -2815,10 +2815,10 @@ function isNavigationCancelingError(error) {
2815
2815
  * to this `EmptyOutletComponent`.
2816
2816
  */
2817
2817
  class ɵEmptyOutletComponent {
2818
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2819
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.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"] }] }); }
2818
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2819
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0-next.3", type: ɵEmptyOutletComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `<router-outlet></router-outlet>`, isInline: true, dependencies: [{ kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] }); }
2820
2820
  }
2821
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
2821
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
2822
2822
  type: Component,
2823
2823
  args: [{
2824
2824
  template: `<router-outlet></router-outlet>`,
@@ -4241,10 +4241,10 @@ class TitleStrategy {
4241
4241
  getResolvedTitleForRoute(snapshot) {
4242
4242
  return snapshot.data[RouteTitleKey];
4243
4243
  }
4244
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4245
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }); }
4244
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4245
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }); }
4246
4246
  }
4247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: TitleStrategy, decorators: [{
4247
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: TitleStrategy, decorators: [{
4248
4248
  type: Injectable,
4249
4249
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
4250
4250
  }] });
@@ -4267,10 +4267,10 @@ class DefaultTitleStrategy extends TitleStrategy {
4267
4267
  this.title.setTitle(title);
4268
4268
  }
4269
4269
  }
4270
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
4271
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' }); }
4270
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable }); }
4271
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' }); }
4272
4272
  }
4273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
4274
4274
  type: Injectable,
4275
4275
  args: [{ providedIn: 'root' }]
4276
4276
  }], ctorParameters: () => [{ type: i1.Title }] });
@@ -4346,10 +4346,10 @@ class RouterConfigLoader {
4346
4346
  this.childrenLoaders.set(route, loader);
4347
4347
  return loader;
4348
4348
  }
4349
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4350
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' }); }
4349
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterConfigLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4350
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' }); }
4351
4351
  }
4352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterConfigLoader, decorators: [{
4352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterConfigLoader, decorators: [{
4353
4353
  type: Injectable,
4354
4354
  args: [{ providedIn: 'root' }]
4355
4355
  }] });
@@ -4416,10 +4416,10 @@ function maybeUnwrapDefaultExport(input) {
4416
4416
  * @publicApi
4417
4417
  */
4418
4418
  class UrlHandlingStrategy {
4419
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4420
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }); }
4419
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: UrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4420
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: UrlHandlingStrategy, providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }); }
4421
4421
  }
4422
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4422
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: UrlHandlingStrategy, decorators: [{
4423
4423
  type: Injectable,
4424
4424
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultUrlHandlingStrategy) }]
4425
4425
  }] });
@@ -4436,10 +4436,10 @@ class DefaultUrlHandlingStrategy {
4436
4436
  merge(newUrlPart, wholeUrl) {
4437
4437
  return newUrlPart;
4438
4438
  }
4439
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4440
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' }); }
4439
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: DefaultUrlHandlingStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4440
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: DefaultUrlHandlingStrategy, providedIn: 'root' }); }
4441
4441
  }
4442
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4442
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: DefaultUrlHandlingStrategy, decorators: [{
4443
4443
  type: Injectable,
4444
4444
  args: [{ providedIn: 'root' }]
4445
4445
  }] });
@@ -4489,7 +4489,10 @@ function createViewTransition(injector, from, to) {
4489
4489
  */
4490
4490
  function createRenderPromise(injector) {
4491
4491
  return new Promise((resolve) => {
4492
- afterNextRender(resolve, { injector });
4492
+ // Wait for the microtask queue to empty after the next render happens (by waiting a macrotask).
4493
+ // This ensures any follow-up renders in the microtask queue are completed before the
4494
+ // view transition starts animating.
4495
+ afterNextRender({ read: () => setTimeout(resolve) }, { injector });
4493
4496
  });
4494
4497
  }
4495
4498
 
@@ -4595,6 +4598,9 @@ class NavigationTransitions {
4595
4598
  id: t.id,
4596
4599
  initialUrl: t.rawUrl,
4597
4600
  extractedUrl: t.extractedUrl,
4601
+ targetBrowserUrl: typeof t.extras.browserUrl === 'string'
4602
+ ? this.urlSerializer.parse(t.extras.browserUrl)
4603
+ : t.extras.browserUrl,
4598
4604
  trigger: t.source,
4599
4605
  extras: t.extras,
4600
4606
  previousNavigation: !this.lastSuccessfulNavigation
@@ -4883,14 +4889,15 @@ class NavigationTransitions {
4883
4889
  // The extracted URL is the part of the URL that this application cares about. `extract` may
4884
4890
  // return only part of the browser URL and that part may have not changed even if some other
4885
4891
  // portion of the URL did.
4886
- const extractedBrowserUrl = this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(true)));
4887
- return (extractedBrowserUrl.toString() !== this.currentTransition?.extractedUrl.toString() &&
4888
- !this.currentTransition?.extras.skipLocationChange);
4892
+ const currentBrowserUrl = this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(true)));
4893
+ const targetBrowserUrl = this.currentNavigation?.targetBrowserUrl ?? this.currentNavigation?.extractedUrl;
4894
+ return (currentBrowserUrl.toString() !== targetBrowserUrl?.toString() &&
4895
+ !this.currentNavigation?.extras.skipLocationChange);
4889
4896
  }
4890
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4891
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: NavigationTransitions, providedIn: 'root' }); }
4897
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: NavigationTransitions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4898
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: NavigationTransitions, providedIn: 'root' }); }
4892
4899
  }
4893
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: NavigationTransitions, decorators: [{
4900
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: NavigationTransitions, decorators: [{
4894
4901
  type: Injectable,
4895
4902
  args: [{ providedIn: 'root' }]
4896
4903
  }], ctorParameters: () => [] });
@@ -4906,10 +4913,10 @@ function isBrowserTriggeredNavigation(source) {
4906
4913
  * @publicApi
4907
4914
  */
4908
4915
  class RouteReuseStrategy {
4909
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4910
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }); }
4916
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouteReuseStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4917
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouteReuseStrategy, providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }); }
4911
4918
  }
4912
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouteReuseStrategy, decorators: [{
4919
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouteReuseStrategy, decorators: [{
4913
4920
  type: Injectable,
4914
4921
  args: [{ providedIn: 'root', useFactory: () => inject(DefaultRouteReuseStrategy) }]
4915
4922
  }] });
@@ -4960,19 +4967,19 @@ class BaseRouteReuseStrategy {
4960
4967
  }
4961
4968
  }
4962
4969
  class DefaultRouteReuseStrategy extends BaseRouteReuseStrategy {
4963
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4964
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' }); }
4970
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: DefaultRouteReuseStrategy, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
4971
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: DefaultRouteReuseStrategy, providedIn: 'root' }); }
4965
4972
  }
4966
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
4973
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: DefaultRouteReuseStrategy, decorators: [{
4967
4974
  type: Injectable,
4968
4975
  args: [{ providedIn: 'root' }]
4969
4976
  }] });
4970
4977
 
4971
4978
  class StateManager {
4972
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4973
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) }); }
4979
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: StateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4980
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: StateManager, providedIn: 'root', useFactory: () => inject(HistoryStateManager) }); }
4974
4981
  }
4975
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: StateManager, decorators: [{
4982
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: StateManager, decorators: [{
4976
4983
  type: Injectable,
4977
4984
  args: [{ providedIn: 'root', useFactory: () => inject(HistoryStateManager) }]
4978
4985
  }] });
@@ -5048,7 +5055,7 @@ class HistoryStateManager extends StateManager {
5048
5055
  if (this.urlUpdateStrategy === 'eager') {
5049
5056
  if (!currentTransition.extras.skipLocationChange) {
5050
5057
  const rawUrl = this.urlHandlingStrategy.merge(currentTransition.finalUrl, currentTransition.initialUrl);
5051
- this.setBrowserUrl(rawUrl, currentTransition);
5058
+ this.setBrowserUrl(currentTransition.targetBrowserUrl ?? rawUrl, currentTransition);
5052
5059
  }
5053
5060
  }
5054
5061
  }
@@ -5056,10 +5063,8 @@ class HistoryStateManager extends StateManager {
5056
5063
  this.currentUrlTree = currentTransition.finalUrl;
5057
5064
  this.rawUrlTree = this.urlHandlingStrategy.merge(currentTransition.finalUrl, currentTransition.initialUrl);
5058
5065
  this.routerState = currentTransition.targetRouterState;
5059
- if (this.urlUpdateStrategy === 'deferred') {
5060
- if (!currentTransition.extras.skipLocationChange) {
5061
- this.setBrowserUrl(this.rawUrlTree, currentTransition);
5062
- }
5066
+ if (this.urlUpdateStrategy === 'deferred' && !currentTransition.extras.skipLocationChange) {
5067
+ this.setBrowserUrl(currentTransition.targetBrowserUrl ?? this.rawUrlTree, currentTransition);
5063
5068
  }
5064
5069
  }
5065
5070
  else if (e instanceof NavigationCancel &&
@@ -5076,7 +5081,7 @@ class HistoryStateManager extends StateManager {
5076
5081
  }
5077
5082
  }
5078
5083
  setBrowserUrl(url, transition) {
5079
- const path = this.urlSerializer.serialize(url);
5084
+ const path = url instanceof UrlTree ? this.urlSerializer.serialize(url) : url;
5080
5085
  if (this.location.isCurrentPathEqualTo(path) || !!transition.extras.replaceUrl) {
5081
5086
  // replacements do not update the target page
5082
5087
  const currentBrowserPageId = this.browserPageId;
@@ -5147,10 +5152,10 @@ class HistoryStateManager extends StateManager {
5147
5152
  }
5148
5153
  return { navigationId };
5149
5154
  }
5150
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
5151
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: HistoryStateManager, providedIn: 'root' }); }
5155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: HistoryStateManager, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
5156
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: HistoryStateManager, providedIn: 'root' }); }
5152
5157
  }
5153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: HistoryStateManager, decorators: [{
5158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: HistoryStateManager, decorators: [{
5154
5159
  type: Injectable,
5155
5160
  args: [{ providedIn: 'root' }]
5156
5161
  }] });
@@ -5336,7 +5341,7 @@ class Router {
5336
5341
  const opts = e.navigationBehaviorOptions;
5337
5342
  const mergedTree = this.urlHandlingStrategy.merge(e.url, currentTransition.currentRawUrl);
5338
5343
  const extras = {
5339
- // Persist transient navigation info from the original navigation request.
5344
+ browserUrl: currentTransition.extras.browserUrl,
5340
5345
  info: currentTransition.extras.info,
5341
5346
  skipLocationChange: currentTransition.extras.skipLocationChange,
5342
5347
  // The URL is already updated at this point if we have 'eager' URL
@@ -5723,10 +5728,10 @@ class Router {
5723
5728
  return Promise.reject(e);
5724
5729
  });
5725
5730
  }
5726
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5727
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: Router, providedIn: 'root' }); }
5731
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: Router, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5732
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: Router, providedIn: 'root' }); }
5728
5733
  }
5729
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: Router, decorators: [{
5734
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: Router, decorators: [{
5730
5735
  type: Injectable,
5731
5736
  args: [{ providedIn: 'root' }]
5732
5737
  }], ctorParameters: () => [] });
@@ -5810,6 +5815,9 @@ function isPublicRouterEvent(e) {
5810
5815
  * </a>
5811
5816
  * ```
5812
5817
  *
5818
+ * `queryParams`, `fragment`, `queryParamsHandling`, `preserveFragment`, and `relativeTo`
5819
+ * cannot be used when the `routerLink` input is a `UrlTree`.
5820
+ *
5813
5821
  * See {@link UrlCreationOptions#queryParamsHandling}.
5814
5822
  *
5815
5823
  * ### Preserving navigation history
@@ -5853,7 +5861,6 @@ class RouterLink {
5853
5861
  * when a host element is `<a>`. For other tags, the value is `null`.
5854
5862
  */
5855
5863
  this.href = null;
5856
- this.commands = null;
5857
5864
  /** @internal */
5858
5865
  this.onChanges = new Subject();
5859
5866
  /**
@@ -5877,6 +5884,7 @@ class RouterLink {
5877
5884
  * @see {@link Router#navigateByUrl}
5878
5885
  */
5879
5886
  this.replaceUrl = false;
5887
+ this.routerLinkInput = null;
5880
5888
  const tagName = el.nativeElement.tagName?.toLowerCase();
5881
5889
  this.isAnchorElement = tagName === 'a' || tagName === 'area';
5882
5890
  if (this.isAnchorElement) {
@@ -5901,7 +5909,17 @@ class RouterLink {
5901
5909
  this.applyAttributeValue('tabindex', newTabIndex);
5902
5910
  }
5903
5911
  /** @nodoc */
5912
+ // TODO(atscott): Remove changes parameter in major version as a breaking change.
5904
5913
  ngOnChanges(changes) {
5914
+ if (ngDevMode &&
5915
+ isUrlTree(this.routerLinkInput) &&
5916
+ (this.fragment !== undefined ||
5917
+ this.queryParams ||
5918
+ this.queryParamsHandling ||
5919
+ this.preserveFragment ||
5920
+ this.relativeTo)) {
5921
+ throw new ɵRuntimeError(4016 /* RuntimeErrorCode.INVALID_ROUTER_LINK_INPUTS */, 'Cannot configure queryParams or fragment when using a UrlTree as the routerLink input value.');
5922
+ }
5905
5923
  if (this.isAnchorElement) {
5906
5924
  this.updateHref();
5907
5925
  }
@@ -5910,20 +5928,29 @@ class RouterLink {
5910
5928
  this.onChanges.next(this);
5911
5929
  }
5912
5930
  /**
5913
- * Commands to pass to {@link Router#createUrlTree}.
5931
+ * Commands to pass to {@link Router#createUrlTree} or a `UrlTree`.
5914
5932
  * - **array**: commands to pass to {@link Router#createUrlTree}.
5915
5933
  * - **string**: shorthand for array of commands with just the string, i.e. `['/route']`
5934
+ * - **UrlTree**: a `UrlTree` for this link rather than creating one from the commands
5935
+ * and other inputs that correspond to properties of `UrlCreationOptions`.
5916
5936
  * - **null|undefined**: effectively disables the `routerLink`
5917
5937
  * @see {@link Router#createUrlTree}
5918
5938
  */
5919
- set routerLink(commands) {
5920
- if (commands != null) {
5921
- this.commands = Array.isArray(commands) ? commands : [commands];
5922
- this.setTabIndexIfNotOnNativeEl('0');
5939
+ set routerLink(commandsOrUrlTree) {
5940
+ if (commandsOrUrlTree == null) {
5941
+ this.routerLinkInput = null;
5942
+ this.setTabIndexIfNotOnNativeEl(null);
5923
5943
  }
5924
5944
  else {
5925
- this.commands = null;
5926
- this.setTabIndexIfNotOnNativeEl(null);
5945
+ if (isUrlTree(commandsOrUrlTree)) {
5946
+ this.routerLinkInput = commandsOrUrlTree;
5947
+ }
5948
+ else {
5949
+ this.routerLinkInput = Array.isArray(commandsOrUrlTree)
5950
+ ? commandsOrUrlTree
5951
+ : [commandsOrUrlTree];
5952
+ }
5953
+ this.setTabIndexIfNotOnNativeEl('0');
5927
5954
  }
5928
5955
  }
5929
5956
  /** @nodoc */
@@ -5988,10 +6015,13 @@ class RouterLink {
5988
6015
  }
5989
6016
  }
5990
6017
  get urlTree() {
5991
- if (this.commands === null) {
6018
+ if (this.routerLinkInput === null) {
5992
6019
  return null;
5993
6020
  }
5994
- return this.router.createUrlTree(this.commands, {
6021
+ else if (isUrlTree(this.routerLinkInput)) {
6022
+ return this.routerLinkInput;
6023
+ }
6024
+ return this.router.createUrlTree(this.routerLinkInput, {
5995
6025
  // If the `relativeTo` input is not defined, we want to use `this.route` by default.
5996
6026
  // Otherwise, we should use the value provided by the user in the input.
5997
6027
  relativeTo: this.relativeTo !== undefined ? this.relativeTo : this.route,
@@ -6001,10 +6031,10 @@ class RouterLink {
6001
6031
  preserveFragment: this.preserveFragment,
6002
6032
  });
6003
6033
  }
6004
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.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 }); }
6005
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.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 }); }
6034
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", 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 }); }
6035
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.0-next.3", 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 }); }
6006
6036
  }
6007
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterLink, decorators: [{
6037
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterLink, decorators: [{
6008
6038
  type: Directive,
6009
6039
  args: [{
6010
6040
  selector: '[routerLink]',
@@ -6242,10 +6272,10 @@ class RouterLinkActive {
6242
6272
  const isActiveCheckFn = this.isLinkActive(this.router);
6243
6273
  return (this.link && isActiveCheckFn(this.link)) || this.links.some(isActiveCheckFn);
6244
6274
  }
6245
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.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 }); }
6246
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.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 }); }
6275
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
6276
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.0-next.3", 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 }); }
6247
6277
  }
6248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterLinkActive, decorators: [{
6278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterLinkActive, decorators: [{
6249
6279
  type: Directive,
6250
6280
  args: [{
6251
6281
  selector: '[routerLinkActive]',
@@ -6297,10 +6327,10 @@ class PreloadAllModules {
6297
6327
  preload(route, fn) {
6298
6328
  return fn().pipe(catchError(() => of(null)));
6299
6329
  }
6300
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6301
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: PreloadAllModules, providedIn: 'root' }); }
6330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6331
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: PreloadAllModules, providedIn: 'root' }); }
6302
6332
  }
6303
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: PreloadAllModules, decorators: [{
6333
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: PreloadAllModules, decorators: [{
6304
6334
  type: Injectable,
6305
6335
  args: [{ providedIn: 'root' }]
6306
6336
  }] });
@@ -6317,10 +6347,10 @@ class NoPreloading {
6317
6347
  preload(route, fn) {
6318
6348
  return of(null);
6319
6349
  }
6320
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6321
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: NoPreloading, providedIn: 'root' }); }
6350
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
6351
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: NoPreloading, providedIn: 'root' }); }
6322
6352
  }
6323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: NoPreloading, decorators: [{
6353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: NoPreloading, decorators: [{
6324
6354
  type: Injectable,
6325
6355
  args: [{ providedIn: 'root' }]
6326
6356
  }] });
@@ -6411,10 +6441,10 @@ class RouterPreloader {
6411
6441
  }
6412
6442
  });
6413
6443
  }
6414
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
6415
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterPreloader, providedIn: 'root' }); }
6444
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable }); }
6445
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterPreloader, providedIn: 'root' }); }
6416
6446
  }
6417
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterPreloader, decorators: [{
6447
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterPreloader, decorators: [{
6418
6448
  type: Injectable,
6419
6449
  args: [{ providedIn: 'root' }]
6420
6450
  }], ctorParameters: () => [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }] });
@@ -6515,10 +6545,10 @@ class RouterScroller {
6515
6545
  this.routerEventsSubscription?.unsubscribe();
6516
6546
  this.scrollEventsSubscription?.unsubscribe();
6517
6547
  }
6518
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
6519
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterScroller }); }
6548
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
6549
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterScroller }); }
6520
6550
  }
6521
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterScroller, decorators: [{
6551
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterScroller, decorators: [{
6522
6552
  type: Injectable
6523
6553
  }], ctorParameters: () => [{ type: UrlSerializer }, { type: NavigationTransitions }, { type: i3.ViewportScroller }, { type: i0.NgZone }, { type: undefined }] });
6524
6554
 
@@ -7165,11 +7195,11 @@ class RouterModule {
7165
7195
  providers: [{ provide: ROUTES, multi: true, useValue: routes }],
7166
7196
  };
7167
7197
  }
7168
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
7169
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] }); }
7170
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterModule }); }
7198
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
7199
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkActive, ɵEmptyOutletComponent] }); }
7200
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterModule }); }
7171
7201
  }
7172
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.1", ngImport: i0, type: RouterModule, decorators: [{
7202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0-next.3", ngImport: i0, type: RouterModule, decorators: [{
7173
7203
  type: NgModule,
7174
7204
  args: [{
7175
7205
  imports: ROUTER_DIRECTIVES,
@@ -7314,7 +7344,7 @@ function mapToResolve(provider) {
7314
7344
  /**
7315
7345
  * @publicApi
7316
7346
  */
7317
- const VERSION = new Version('18.1.0-next.1');
7347
+ const VERSION = new Version('18.1.0-next.3');
7318
7348
 
7319
7349
  /**
7320
7350
  * @module