@angular/router 21.2.0 → 22.0.0-next.0

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 v21.2.0
2
+ * @license Angular v22.0.0-next.0
3
3
  * (c) 2010-2026 Google LLC. https://angular.dev/
4
4
  * License: MIT
5
5
  */
@@ -7,7 +7,7 @@
7
7
  import * as i3 from '@angular/common';
8
8
  import { ViewportScroller, PlatformNavigation, PlatformLocation, ɵPRECOMMIT_HANDLER_SUPPORTED as _PRECOMMIT_HANDLER_SUPPORTED, Location, ɵNavigationAdapterForLocation as _NavigationAdapterForLocation, LOCATION_INITIALIZED, LocationStrategy, HashLocationStrategy, PathLocationStrategy } from '@angular/common';
9
9
  import * as i0 from '@angular/core';
10
- import { inject, signal, Injectable, HostAttributeToken, linkedSignal, untracked, ɵINTERNAL_APPLICATION_ERROR_HANDLER as _INTERNAL_APPLICATION_ERROR_HANDLER, effect, ɵRuntimeError as _RuntimeError, computed, booleanAttribute, Directive, Attribute, Input, HostListener, EventEmitter, ContentChildren, Output, createEnvironmentInjector, InjectionToken, NgZone, EnvironmentInjector, DestroyRef, afterNextRender, ɵpromiseWithResolvers as _promiseWithResolvers, ɵpublishExternalGlobalUtil as _publishExternalGlobalUtil, makeEnvironmentProviders, APP_BOOTSTRAP_LISTENER, provideEnvironmentInitializer, Injector, ApplicationRef, ɵIS_ENABLED_BLOCKING_INITIAL_NAVIGATION as _IS_ENABLED_BLOCKING_INITIAL_NAVIGATION, provideAppInitializer, ɵperformanceMarkFeature as _performanceMarkFeature, ENVIRONMENT_INITIALIZER, NgModule } from '@angular/core';
10
+ import { inject, signal, Injectable, HostAttributeToken, linkedSignal, untracked, input, ɵINTERNAL_APPLICATION_ERROR_HANDLER as _INTERNAL_APPLICATION_ERROR_HANDLER, effect, ɵRuntimeError as _RuntimeError, computed, booleanAttribute, Directive, Attribute, Input, HostListener, EventEmitter, ContentChildren, Output, createEnvironmentInjector, InjectionToken, NgZone, EnvironmentInjector, DestroyRef, afterNextRender, ɵpromiseWithResolvers as _promiseWithResolvers, ɵpublishExternalGlobalUtil as _publishExternalGlobalUtil, makeEnvironmentProviders, APP_BOOTSTRAP_LISTENER, provideEnvironmentInitializer, Injector, ApplicationRef, ɵIS_ENABLED_BLOCKING_INITIAL_NAVIGATION as _IS_ENABLED_BLOCKING_INITIAL_NAVIGATION, provideAppInitializer, ɵperformanceMarkFeature as _performanceMarkFeature, ENVIRONMENT_INITIALIZER, NgModule } from '@angular/core';
11
11
  import { Router, StateManager, UrlSerializer, NavigationEnd, UrlTree, ROUTER_CONFIGURATION, isUrlTree, ActivatedRoute, isActive, exactMatchOptions, subsetMatchOptions, RouterConfigLoader, IMPERATIVE_NAVIGATION, NavigationTransitions, NavigationStart, NavigationSkipped, NavigationSkippedCode, Scroll, BeforeRoutesRecognized, BeforeActivateRoutes, NavigationCancel, NavigationError, isRedirectingEvent, NavigationCancellationCode, ROUTES, afterNextNavigation, ROUTE_INJECTOR_CLEANUP, routeInjectorCleanup, stringifyEvent, NAVIGATION_ERROR_HANDLER, RoutedComponentInputBinder, INPUT_BINDER, CREATE_VIEW_TRANSITION, createViewTransition, VIEW_TRANSITION_OPTIONS, DefaultUrlSerializer, ChildrenOutletContexts, RouterOutlet, ɵEmptyOutletComponent as _EmptyOutletComponent } from './_router-chunk.mjs';
12
12
  import { Subject, of, from } from 'rxjs';
13
13
  import { mergeAll, catchError, filter, concatMap, mergeMap } from 'rxjs/operators';
@@ -45,7 +45,7 @@ class ReactiveRouterState {
45
45
  }
46
46
  static ɵfac = i0.ɵɵngDeclareFactory({
47
47
  minVersion: "12.0.0",
48
- version: "21.2.0",
48
+ version: "22.0.0-next.0",
49
49
  ngImport: i0,
50
50
  type: ReactiveRouterState,
51
51
  deps: [],
@@ -53,7 +53,7 @@ class ReactiveRouterState {
53
53
  });
54
54
  static ɵprov = i0.ɵɵngDeclareInjectable({
55
55
  minVersion: "12.0.0",
56
- version: "21.2.0",
56
+ version: "22.0.0-next.0",
57
57
  ngImport: i0,
58
58
  type: ReactiveRouterState,
59
59
  providedIn: 'root'
@@ -61,7 +61,7 @@ class ReactiveRouterState {
61
61
  }
62
62
  i0.ɵɵngDeclareClassMetadata({
63
63
  minVersion: "12.0.0",
64
- version: "21.2.0",
64
+ version: "22.0.0-next.0",
65
65
  ngImport: i0,
66
66
  type: ReactiveRouterState,
67
67
  decorators: [{
@@ -195,6 +195,9 @@ class RouterLink {
195
195
  _replaceUrl = signal(false, ...(ngDevMode ? [{
196
196
  debugName: "_replaceUrl"
197
197
  }] : []));
198
+ browserUrl = input(undefined, ...(ngDevMode ? [{
199
+ debugName: "browserUrl"
200
+ }] : []));
198
201
  isAnchorElement;
199
202
  onChanges = new Subject();
200
203
  applicationErrorHandler = inject(_INTERNAL_APPLICATION_ERROR_HANDLER);
@@ -257,11 +260,15 @@ class RouterLink {
257
260
  return true;
258
261
  }
259
262
  }
263
+ const browserUrl = this.browserUrl();
260
264
  const extras = {
261
265
  skipLocationChange: this.skipLocationChange,
262
266
  replaceUrl: this.replaceUrl,
263
267
  state: this.state,
264
- info: this.info
268
+ info: this.info,
269
+ ...(browserUrl !== undefined && {
270
+ browserUrl
271
+ })
265
272
  };
266
273
  this.router.navigateByUrl(urlTree, extras)?.catch(e => {
267
274
  this.applicationErrorHandler(e);
@@ -314,7 +321,7 @@ class RouterLink {
314
321
  }
315
322
  static ɵfac = i0.ɵɵngDeclareFactory({
316
323
  minVersion: "12.0.0",
317
- version: "21.2.0",
324
+ version: "22.0.0-next.0",
318
325
  ngImport: i0,
319
326
  type: RouterLink,
320
327
  deps: [{
@@ -334,23 +341,96 @@ class RouterLink {
334
341
  target: i0.ɵɵFactoryTarget.Directive
335
342
  });
336
343
  static ɵdir = i0.ɵɵngDeclareDirective({
337
- minVersion: "16.1.0",
338
- version: "21.2.0",
344
+ minVersion: "17.1.0",
345
+ version: "22.0.0-next.0",
339
346
  type: RouterLink,
340
347
  isStandalone: true,
341
348
  selector: "[routerLink]",
342
349
  inputs: {
343
- target: "target",
344
- queryParams: "queryParams",
345
- fragment: "fragment",
346
- queryParamsHandling: "queryParamsHandling",
347
- state: "state",
348
- info: "info",
349
- relativeTo: "relativeTo",
350
- preserveFragment: ["preserveFragment", "preserveFragment", booleanAttribute],
351
- skipLocationChange: ["skipLocationChange", "skipLocationChange", booleanAttribute],
352
- replaceUrl: ["replaceUrl", "replaceUrl", booleanAttribute],
353
- routerLink: "routerLink"
350
+ target: {
351
+ classPropertyName: "target",
352
+ publicName: "target",
353
+ isSignal: false,
354
+ isRequired: false,
355
+ transformFunction: null
356
+ },
357
+ queryParams: {
358
+ classPropertyName: "queryParams",
359
+ publicName: "queryParams",
360
+ isSignal: false,
361
+ isRequired: false,
362
+ transformFunction: null
363
+ },
364
+ fragment: {
365
+ classPropertyName: "fragment",
366
+ publicName: "fragment",
367
+ isSignal: false,
368
+ isRequired: false,
369
+ transformFunction: null
370
+ },
371
+ queryParamsHandling: {
372
+ classPropertyName: "queryParamsHandling",
373
+ publicName: "queryParamsHandling",
374
+ isSignal: false,
375
+ isRequired: false,
376
+ transformFunction: null
377
+ },
378
+ state: {
379
+ classPropertyName: "state",
380
+ publicName: "state",
381
+ isSignal: false,
382
+ isRequired: false,
383
+ transformFunction: null
384
+ },
385
+ info: {
386
+ classPropertyName: "info",
387
+ publicName: "info",
388
+ isSignal: false,
389
+ isRequired: false,
390
+ transformFunction: null
391
+ },
392
+ relativeTo: {
393
+ classPropertyName: "relativeTo",
394
+ publicName: "relativeTo",
395
+ isSignal: false,
396
+ isRequired: false,
397
+ transformFunction: null
398
+ },
399
+ preserveFragment: {
400
+ classPropertyName: "preserveFragment",
401
+ publicName: "preserveFragment",
402
+ isSignal: false,
403
+ isRequired: false,
404
+ transformFunction: booleanAttribute
405
+ },
406
+ skipLocationChange: {
407
+ classPropertyName: "skipLocationChange",
408
+ publicName: "skipLocationChange",
409
+ isSignal: false,
410
+ isRequired: false,
411
+ transformFunction: booleanAttribute
412
+ },
413
+ replaceUrl: {
414
+ classPropertyName: "replaceUrl",
415
+ publicName: "replaceUrl",
416
+ isSignal: false,
417
+ isRequired: false,
418
+ transformFunction: booleanAttribute
419
+ },
420
+ browserUrl: {
421
+ classPropertyName: "browserUrl",
422
+ publicName: "browserUrl",
423
+ isSignal: true,
424
+ isRequired: false,
425
+ transformFunction: null
426
+ },
427
+ routerLink: {
428
+ classPropertyName: "routerLink",
429
+ publicName: "routerLink",
430
+ isSignal: false,
431
+ isRequired: false,
432
+ transformFunction: null
433
+ }
354
434
  },
355
435
  host: {
356
436
  listeners: {
@@ -367,7 +447,7 @@ class RouterLink {
367
447
  }
368
448
  i0.ɵɵngDeclareClassMetadata({
369
449
  minVersion: "12.0.0",
370
- version: "21.2.0",
450
+ version: "22.0.0-next.0",
371
451
  ngImport: i0,
372
452
  type: RouterLink,
373
453
  decorators: [{
@@ -437,6 +517,14 @@ i0.ɵɵngDeclareClassMetadata({
437
517
  transform: booleanAttribute
438
518
  }]
439
519
  }],
520
+ browserUrl: [{
521
+ type: i0.Input,
522
+ args: [{
523
+ isSignal: true,
524
+ alias: "browserUrl",
525
+ required: false
526
+ }]
527
+ }],
440
528
  routerLink: [{
441
529
  type: Input
442
530
  }],
@@ -545,7 +633,7 @@ class RouterLinkActive {
545
633
  }
546
634
  static ɵfac = i0.ɵɵngDeclareFactory({
547
635
  minVersion: "12.0.0",
548
- version: "21.2.0",
636
+ version: "22.0.0-next.0",
549
637
  ngImport: i0,
550
638
  type: RouterLinkActive,
551
639
  deps: [{
@@ -561,7 +649,7 @@ class RouterLinkActive {
561
649
  });
562
650
  static ɵdir = i0.ɵɵngDeclareDirective({
563
651
  minVersion: "14.0.0",
564
- version: "21.2.0",
652
+ version: "22.0.0-next.0",
565
653
  type: RouterLinkActive,
566
654
  isStandalone: true,
567
655
  selector: "[routerLinkActive]",
@@ -585,7 +673,7 @@ class RouterLinkActive {
585
673
  }
586
674
  i0.ɵɵngDeclareClassMetadata({
587
675
  minVersion: "12.0.0",
588
- version: "21.2.0",
676
+ version: "22.0.0-next.0",
589
677
  ngImport: i0,
590
678
  type: RouterLinkActive,
591
679
  decorators: [{
@@ -637,7 +725,7 @@ class PreloadAllModules {
637
725
  }
638
726
  static ɵfac = i0.ɵɵngDeclareFactory({
639
727
  minVersion: "12.0.0",
640
- version: "21.2.0",
728
+ version: "22.0.0-next.0",
641
729
  ngImport: i0,
642
730
  type: PreloadAllModules,
643
731
  deps: [],
@@ -645,7 +733,7 @@ class PreloadAllModules {
645
733
  });
646
734
  static ɵprov = i0.ɵɵngDeclareInjectable({
647
735
  minVersion: "12.0.0",
648
- version: "21.2.0",
736
+ version: "22.0.0-next.0",
649
737
  ngImport: i0,
650
738
  type: PreloadAllModules,
651
739
  providedIn: 'root'
@@ -653,7 +741,7 @@ class PreloadAllModules {
653
741
  }
654
742
  i0.ɵɵngDeclareClassMetadata({
655
743
  minVersion: "12.0.0",
656
- version: "21.2.0",
744
+ version: "22.0.0-next.0",
657
745
  ngImport: i0,
658
746
  type: PreloadAllModules,
659
747
  decorators: [{
@@ -669,7 +757,7 @@ class NoPreloading {
669
757
  }
670
758
  static ɵfac = i0.ɵɵngDeclareFactory({
671
759
  minVersion: "12.0.0",
672
- version: "21.2.0",
760
+ version: "22.0.0-next.0",
673
761
  ngImport: i0,
674
762
  type: NoPreloading,
675
763
  deps: [],
@@ -677,7 +765,7 @@ class NoPreloading {
677
765
  });
678
766
  static ɵprov = i0.ɵɵngDeclareInjectable({
679
767
  minVersion: "12.0.0",
680
- version: "21.2.0",
768
+ version: "22.0.0-next.0",
681
769
  ngImport: i0,
682
770
  type: NoPreloading,
683
771
  providedIn: 'root'
@@ -685,7 +773,7 @@ class NoPreloading {
685
773
  }
686
774
  i0.ɵɵngDeclareClassMetadata({
687
775
  minVersion: "12.0.0",
688
- version: "21.2.0",
776
+ version: "22.0.0-next.0",
689
777
  ngImport: i0,
690
778
  type: NoPreloading,
691
779
  decorators: [{
@@ -766,7 +854,7 @@ class RouterPreloader {
766
854
  }
767
855
  static ɵfac = i0.ɵɵngDeclareFactory({
768
856
  minVersion: "12.0.0",
769
- version: "21.2.0",
857
+ version: "22.0.0-next.0",
770
858
  ngImport: i0,
771
859
  type: RouterPreloader,
772
860
  deps: [{
@@ -782,7 +870,7 @@ class RouterPreloader {
782
870
  });
783
871
  static ɵprov = i0.ɵɵngDeclareInjectable({
784
872
  minVersion: "12.0.0",
785
- version: "21.2.0",
873
+ version: "22.0.0-next.0",
786
874
  ngImport: i0,
787
875
  type: RouterPreloader,
788
876
  providedIn: 'root'
@@ -790,7 +878,7 @@ class RouterPreloader {
790
878
  }
791
879
  i0.ɵɵngDeclareClassMetadata({
792
880
  minVersion: "12.0.0",
793
- version: "21.2.0",
881
+ version: "22.0.0-next.0",
794
882
  ngImport: i0,
795
883
  type: RouterPreloader,
796
884
  decorators: [{
@@ -892,7 +980,7 @@ class RouterScroller {
892
980
  }
893
981
  static ɵfac = i0.ɵɵngDeclareFactory({
894
982
  minVersion: "12.0.0",
895
- version: "21.2.0",
983
+ version: "22.0.0-next.0",
896
984
  ngImport: i0,
897
985
  type: RouterScroller,
898
986
  deps: "invalid",
@@ -900,14 +988,14 @@ class RouterScroller {
900
988
  });
901
989
  static ɵprov = i0.ɵɵngDeclareInjectable({
902
990
  minVersion: "12.0.0",
903
- version: "21.2.0",
991
+ version: "22.0.0-next.0",
904
992
  ngImport: i0,
905
993
  type: RouterScroller
906
994
  });
907
995
  }
908
996
  i0.ɵɵngDeclareClassMetadata({
909
997
  minVersion: "12.0.0",
910
- version: "21.2.0",
998
+ version: "22.0.0-next.0",
911
999
  ngImport: i0,
912
1000
  type: RouterScroller,
913
1001
  decorators: [{
@@ -1165,7 +1253,11 @@ class NavigationStateManager extends StateManager {
1165
1253
  if (this.deferredCommitSupported(event)) {
1166
1254
  const redirect = new Promise(resolve => {
1167
1255
  interceptOptions.precommitHandler = controller => {
1168
- resolve(controller.redirect.bind(controller));
1256
+ if (this.navigation.transition?.navigationType === 'traverse') {
1257
+ resolve(() => {});
1258
+ } else {
1259
+ resolve(controller.redirect.bind(controller));
1260
+ }
1169
1261
  return precommitHandlerPromise;
1170
1262
  };
1171
1263
  });
@@ -1209,11 +1301,11 @@ class NavigationStateManager extends StateManager {
1209
1301
  return new URL(routerDestination, eventDestination.origin).href === eventDestination.href;
1210
1302
  }
1211
1303
  deferredCommitSupported(event) {
1212
- return this.precommitHandlerSupported && event.cancelable && event.navigationType !== 'traverse';
1304
+ return this.precommitHandlerSupported && event.cancelable;
1213
1305
  }
1214
1306
  static ɵfac = i0.ɵɵngDeclareFactory({
1215
1307
  minVersion: "12.0.0",
1216
- version: "21.2.0",
1308
+ version: "22.0.0-next.0",
1217
1309
  ngImport: i0,
1218
1310
  type: NavigationStateManager,
1219
1311
  deps: [],
@@ -1221,7 +1313,7 @@ class NavigationStateManager extends StateManager {
1221
1313
  });
1222
1314
  static ɵprov = i0.ɵɵngDeclareInjectable({
1223
1315
  minVersion: "12.0.0",
1224
- version: "21.2.0",
1316
+ version: "22.0.0-next.0",
1225
1317
  ngImport: i0,
1226
1318
  type: NavigationStateManager,
1227
1319
  providedIn: 'root'
@@ -1229,7 +1321,7 @@ class NavigationStateManager extends StateManager {
1229
1321
  }
1230
1322
  i0.ɵɵngDeclareClassMetadata({
1231
1323
  minVersion: "12.0.0",
1232
- version: "21.2.0",
1324
+ version: "22.0.0-next.0",
1233
1325
  ngImport: i0,
1234
1326
  type: NavigationStateManager,
1235
1327
  decorators: [{
@@ -1256,10 +1348,7 @@ function provideRouter(routes, ...features) {
1256
1348
  provide: ROUTES,
1257
1349
  multi: true,
1258
1350
  useValue: routes
1259
- }, typeof ngDevMode === 'undefined' || ngDevMode ? {
1260
- provide: ROUTER_IS_PROVIDED,
1261
- useValue: true
1262
- } : [], {
1351
+ }, {
1263
1352
  provide: ActivatedRoute,
1264
1353
  useFactory: rootRoute
1265
1354
  }, {
@@ -1277,27 +1366,6 @@ function routerFeature(kind, providers) {
1277
1366
  ɵproviders: providers
1278
1367
  };
1279
1368
  }
1280
- const ROUTER_IS_PROVIDED = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'Router is provided' : '', {
1281
- factory: () => false
1282
- });
1283
- const routerIsProvidedDevModeCheck = {
1284
- provide: ENVIRONMENT_INITIALIZER,
1285
- multi: true,
1286
- useFactory() {
1287
- return () => {
1288
- if (!inject(ROUTER_IS_PROVIDED)) {
1289
- console.warn('`provideRoutes` was called without `provideRouter` or `RouterModule.forRoot`. ' + 'This is likely a mistake.');
1290
- }
1291
- };
1292
- }
1293
- };
1294
- function provideRoutes(routes) {
1295
- return [{
1296
- provide: ROUTES,
1297
- multi: true,
1298
- useValue: routes
1299
- }, typeof ngDevMode === 'undefined' || ngDevMode ? routerIsProvidedDevModeCheck : []];
1300
- }
1301
1369
  function withInMemoryScrolling(options = {}) {
1302
1370
  const providers = [{
1303
1371
  provide: ROUTER_SCROLLER,
@@ -1485,10 +1553,7 @@ const ROUTER_PROVIDERS = [Location, {
1485
1553
  }, Router, ChildrenOutletContexts, {
1486
1554
  provide: ActivatedRoute,
1487
1555
  useFactory: rootRoute
1488
- }, RouterConfigLoader, typeof ngDevMode === 'undefined' || ngDevMode ? {
1489
- provide: ROUTER_IS_PROVIDED,
1490
- useValue: true
1491
- } : []];
1556
+ }, RouterConfigLoader];
1492
1557
  class RouterModule {
1493
1558
  constructor() {
1494
1559
  if (typeof ngDevMode === 'undefined' || ngDevMode) {
@@ -1528,7 +1593,7 @@ class RouterModule {
1528
1593
  }
1529
1594
  static ɵfac = i0.ɵɵngDeclareFactory({
1530
1595
  minVersion: "12.0.0",
1531
- version: "21.2.0",
1596
+ version: "22.0.0-next.0",
1532
1597
  ngImport: i0,
1533
1598
  type: RouterModule,
1534
1599
  deps: [],
@@ -1536,7 +1601,7 @@ class RouterModule {
1536
1601
  });
1537
1602
  static ɵmod = i0.ɵɵngDeclareNgModule({
1538
1603
  minVersion: "14.0.0",
1539
- version: "21.2.0",
1604
+ version: "22.0.0-next.0",
1540
1605
  ngImport: i0,
1541
1606
  type: RouterModule,
1542
1607
  imports: [RouterOutlet, RouterLink, RouterLinkActive, _EmptyOutletComponent],
@@ -1544,14 +1609,14 @@ class RouterModule {
1544
1609
  });
1545
1610
  static ɵinj = i0.ɵɵngDeclareInjector({
1546
1611
  minVersion: "12.0.0",
1547
- version: "21.2.0",
1612
+ version: "22.0.0-next.0",
1548
1613
  ngImport: i0,
1549
1614
  type: RouterModule
1550
1615
  });
1551
1616
  }
1552
1617
  i0.ɵɵngDeclareClassMetadata({
1553
1618
  minVersion: "12.0.0",
1554
- version: "21.2.0",
1619
+ version: "22.0.0-next.0",
1555
1620
  ngImport: i0,
1556
1621
  type: RouterModule,
1557
1622
  decorators: [{
@@ -1613,5 +1678,5 @@ function provideRouterInitializer() {
1613
1678
  }];
1614
1679
  }
1615
1680
 
1616
- export { NoPreloading, PreloadAllModules, PreloadingStrategy, ROUTER_INITIALIZER, ROUTER_PROVIDERS, RouterLink, RouterLinkActive, RouterModule, RouterPreloader, provideRouter, provideRoutes, withComponentInputBinding, withDebugTracing, withDisabledInitialNavigation, withEnabledBlockingInitialNavigation, withExperimentalAutoCleanupInjectors, withExperimentalPlatformNavigation, withHashLocation, withInMemoryScrolling, withNavigationErrorHandler, withPreloading, withRouterConfig, withViewTransitions };
1681
+ export { NoPreloading, PreloadAllModules, PreloadingStrategy, ROUTER_INITIALIZER, ROUTER_PROVIDERS, RouterLink, RouterLinkActive, RouterModule, RouterPreloader, provideRouter, withComponentInputBinding, withDebugTracing, withDisabledInitialNavigation, withEnabledBlockingInitialNavigation, withExperimentalAutoCleanupInjectors, withExperimentalPlatformNavigation, withHashLocation, withInMemoryScrolling, withNavigationErrorHandler, withPreloading, withRouterConfig, withViewTransitions };
1617
1682
  //# sourceMappingURL=_router_module-chunk.mjs.map