@angular/router 15.0.0-next.3 → 15.0.0-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/src/components/empty_outlet.mjs +3 -3
- package/esm2020/src/deprecated_load_children.mjs +11 -0
- package/esm2020/src/directives/router_link.mjs +92 -171
- package/esm2020/src/directives/router_link_active.mjs +3 -3
- package/esm2020/src/directives/router_outlet.mjs +59 -31
- package/esm2020/src/index.mjs +1 -1
- package/esm2020/src/models.mjs +1 -1
- package/esm2020/src/page_title_strategy.mjs +6 -6
- package/esm2020/src/private_export.mjs +1 -1
- package/esm2020/src/router.mjs +3 -3
- package/esm2020/src/router_config_loader.mjs +23 -6
- package/esm2020/src/router_module.mjs +4 -4
- package/esm2020/src/router_outlet_context.mjs +3 -3
- package/esm2020/src/router_preloader.mjs +9 -9
- package/esm2020/src/router_scroller.mjs +3 -3
- package/esm2020/src/router_state.mjs +7 -3
- package/esm2020/src/url_tree.mjs +3 -3
- package/esm2020/src/version.mjs +1 -1
- package/esm2020/testing/src/router_testing_module.mjs +4 -4
- package/fesm2015/router.mjs +230 -249
- package/fesm2015/router.mjs.map +1 -1
- package/fesm2015/testing.mjs +5 -5
- package/fesm2015/upgrade.mjs +1 -1
- package/fesm2020/router.mjs +225 -244
- package/fesm2020/router.mjs.map +1 -1
- package/fesm2020/testing.mjs +5 -5
- package/fesm2020/upgrade.mjs +1 -1
- package/index.d.ts +77 -112
- package/package.json +4 -4
- package/testing/index.d.ts +1 -1
- package/upgrade/index.d.ts +1 -1
package/fesm2015/router.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v15.0.0-next.
|
|
2
|
+
* @license Angular v15.0.0-next.5
|
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import * as i0 from '@angular/core';
|
|
8
|
-
import { ɵisObservable, ɵisPromise, ɵRuntimeError, Injectable, EventEmitter, Directive,
|
|
8
|
+
import { ɵisObservable, ɵisPromise, ɵRuntimeError, Injectable, EventEmitter, inject, ViewContainerRef, ChangeDetectorRef, EnvironmentInjector, Directive, Input, Output, Component, createEnvironmentInjector, ɵisStandalone, ComponentFactoryResolver, ɵisInjectable, InjectionToken, InjectFlags, NgModuleFactory, Injector, Compiler, NgModuleRef, ɵConsole, NgZone, ɵcoerceToBoolean, ɵɵsanitizeUrlOrResourceUrl, Attribute, HostBinding, HostListener, Optional, ContentChildren, APP_BOOTSTRAP_LISTENER, ApplicationRef, APP_INITIALIZER, ENVIRONMENT_INITIALIZER, NgProbeToken, SkipSelf, NgModule, Inject, Version } from '@angular/core';
|
|
9
9
|
import { from, of, BehaviorSubject, EmptyError, combineLatest, concat, defer, pipe, throwError, Observable, EMPTY, ConnectableObservable, Subject } from 'rxjs';
|
|
10
10
|
import * as i3 from '@angular/common';
|
|
11
11
|
import { Location, ViewportScroller, LOCATION_INITIALIZED, LocationStrategy, HashLocationStrategy, PathLocationStrategy } from '@angular/common';
|
|
@@ -461,9 +461,9 @@ function mapChildrenIntoArray(segment, fn) {
|
|
|
461
461
|
*/
|
|
462
462
|
class UrlSerializer {
|
|
463
463
|
}
|
|
464
|
-
UrlSerializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
465
|
-
UrlSerializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
466
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
464
|
+
UrlSerializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: UrlSerializer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
465
|
+
UrlSerializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: UrlSerializer, providedIn: 'root', useFactory: () => new DefaultUrlSerializer() });
|
|
466
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: UrlSerializer, decorators: [{
|
|
467
467
|
type: Injectable,
|
|
468
468
|
args: [{ providedIn: 'root', useFactory: () => new DefaultUrlSerializer() }]
|
|
469
469
|
}] });
|
|
@@ -2091,7 +2091,6 @@ class ActivatedRouteSnapshot {
|
|
|
2091
2091
|
outlet,
|
|
2092
2092
|
/** The component of the route */
|
|
2093
2093
|
component, routeConfig, urlSegment, lastPathIndex, resolve, correctedLastPathIndex) {
|
|
2094
|
-
var _a;
|
|
2095
2094
|
this.url = url;
|
|
2096
2095
|
this.params = params;
|
|
2097
2096
|
this.queryParams = queryParams;
|
|
@@ -2099,14 +2098,19 @@ class ActivatedRouteSnapshot {
|
|
|
2099
2098
|
this.data = data;
|
|
2100
2099
|
this.outlet = outlet;
|
|
2101
2100
|
this.component = component;
|
|
2102
|
-
/** The resolved route title */
|
|
2103
|
-
this.title = (_a = this.data) === null || _a === void 0 ? void 0 : _a[RouteTitleKey];
|
|
2104
2101
|
this.routeConfig = routeConfig;
|
|
2105
2102
|
this._urlSegment = urlSegment;
|
|
2106
2103
|
this._lastPathIndex = lastPathIndex;
|
|
2107
2104
|
this._correctedLastPathIndex = correctedLastPathIndex !== null && correctedLastPathIndex !== void 0 ? correctedLastPathIndex : lastPathIndex;
|
|
2108
2105
|
this._resolve = resolve;
|
|
2109
2106
|
}
|
|
2107
|
+
/** The resolved route title */
|
|
2108
|
+
get title() {
|
|
2109
|
+
var _a;
|
|
2110
|
+
// Note: This _must_ be a getter because the data is mutated in the resolvers. Title will not be
|
|
2111
|
+
// available at the time of class instantiation.
|
|
2112
|
+
return (_a = this.data) === null || _a === void 0 ? void 0 : _a[RouteTitleKey];
|
|
2113
|
+
}
|
|
2110
2114
|
/** The root of the router state */
|
|
2111
2115
|
get root() {
|
|
2112
2116
|
return this._routerState.root;
|
|
@@ -2390,9 +2394,9 @@ class ChildrenOutletContexts {
|
|
|
2390
2394
|
return this.contexts.get(childName) || null;
|
|
2391
2395
|
}
|
|
2392
2396
|
}
|
|
2393
|
-
ChildrenOutletContexts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
2394
|
-
ChildrenOutletContexts.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
2395
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
2397
|
+
ChildrenOutletContexts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: ChildrenOutletContexts, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2398
|
+
ChildrenOutletContexts.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: ChildrenOutletContexts, providedIn: 'root' });
|
|
2399
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: ChildrenOutletContexts, decorators: [{
|
|
2396
2400
|
type: Injectable,
|
|
2397
2401
|
args: [{ providedIn: 'root' }]
|
|
2398
2402
|
}] });
|
|
@@ -2457,13 +2461,15 @@ const NG_DEV_MODE$7 = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
|
2457
2461
|
* @publicApi
|
|
2458
2462
|
*/
|
|
2459
2463
|
class RouterOutlet {
|
|
2460
|
-
constructor(
|
|
2461
|
-
this.parentContexts = parentContexts;
|
|
2462
|
-
this.location = location;
|
|
2463
|
-
this.changeDetector = changeDetector;
|
|
2464
|
-
this.environmentInjector = environmentInjector;
|
|
2464
|
+
constructor() {
|
|
2465
2465
|
this.activated = null;
|
|
2466
2466
|
this._activatedRoute = null;
|
|
2467
|
+
/**
|
|
2468
|
+
* The name of the outlet
|
|
2469
|
+
*
|
|
2470
|
+
* @see [named outlets](guide/router-tutorial-toh#displaying-multiple-routes-in-named-outlets)
|
|
2471
|
+
*/
|
|
2472
|
+
this.name = PRIMARY_OUTLET;
|
|
2467
2473
|
this.activateEvents = new EventEmitter();
|
|
2468
2474
|
this.deactivateEvents = new EventEmitter();
|
|
2469
2475
|
/**
|
|
@@ -2476,32 +2482,60 @@ class RouterOutlet {
|
|
|
2476
2482
|
* subtree.
|
|
2477
2483
|
*/
|
|
2478
2484
|
this.detachEvents = new EventEmitter();
|
|
2479
|
-
this.
|
|
2480
|
-
|
|
2485
|
+
this.parentContexts = inject(ChildrenOutletContexts);
|
|
2486
|
+
this.location = inject(ViewContainerRef);
|
|
2487
|
+
this.changeDetector = inject(ChangeDetectorRef);
|
|
2488
|
+
this.environmentInjector = inject(EnvironmentInjector);
|
|
2489
|
+
}
|
|
2490
|
+
/** @nodoc */
|
|
2491
|
+
ngOnChanges(changes) {
|
|
2492
|
+
if (changes['name']) {
|
|
2493
|
+
const { firstChange, previousValue } = changes['name'];
|
|
2494
|
+
if (firstChange) {
|
|
2495
|
+
// The first change is handled by ngOnInit. Because ngOnChanges doesn't get called when no
|
|
2496
|
+
// input is set at all, we need to centrally handle the first change there.
|
|
2497
|
+
return;
|
|
2498
|
+
}
|
|
2499
|
+
// unregister with the old name
|
|
2500
|
+
if (this.isTrackedInParentContexts(previousValue)) {
|
|
2501
|
+
this.deactivate();
|
|
2502
|
+
this.parentContexts.onChildOutletDestroyed(previousValue);
|
|
2503
|
+
}
|
|
2504
|
+
// register the new name
|
|
2505
|
+
this.initializeOutletWithName();
|
|
2506
|
+
}
|
|
2481
2507
|
}
|
|
2482
2508
|
/** @nodoc */
|
|
2483
2509
|
ngOnDestroy() {
|
|
2484
|
-
var _a;
|
|
2485
2510
|
// Ensure that the registered outlet is this one before removing it on the context.
|
|
2486
|
-
if (
|
|
2511
|
+
if (this.isTrackedInParentContexts(this.name)) {
|
|
2487
2512
|
this.parentContexts.onChildOutletDestroyed(this.name);
|
|
2488
2513
|
}
|
|
2489
2514
|
}
|
|
2515
|
+
isTrackedInParentContexts(outletName) {
|
|
2516
|
+
var _a;
|
|
2517
|
+
return ((_a = this.parentContexts.getContext(outletName)) === null || _a === void 0 ? void 0 : _a.outlet) === this;
|
|
2518
|
+
}
|
|
2490
2519
|
/** @nodoc */
|
|
2491
2520
|
ngOnInit() {
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
2498
|
-
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
2503
|
-
|
|
2504
|
-
|
|
2521
|
+
this.initializeOutletWithName();
|
|
2522
|
+
}
|
|
2523
|
+
initializeOutletWithName() {
|
|
2524
|
+
this.parentContexts.onChildOutletCreated(this.name, this);
|
|
2525
|
+
if (this.activated) {
|
|
2526
|
+
return;
|
|
2527
|
+
}
|
|
2528
|
+
// If the outlet was not instantiated at the time the route got activated we need to populate
|
|
2529
|
+
// the outlet when it is initialized (ie inside a NgIf)
|
|
2530
|
+
const context = this.parentContexts.getContext(this.name);
|
|
2531
|
+
if (context === null || context === void 0 ? void 0 : context.route) {
|
|
2532
|
+
if (context.attachRef) {
|
|
2533
|
+
// `attachRef` is populated when there is an existing component to mount
|
|
2534
|
+
this.attach(context.attachRef, context.route);
|
|
2535
|
+
}
|
|
2536
|
+
else {
|
|
2537
|
+
// otherwise the component defined in the configuration is created
|
|
2538
|
+
this.activateWith(context.route, context.injector);
|
|
2505
2539
|
}
|
|
2506
2540
|
}
|
|
2507
2541
|
}
|
|
@@ -2583,21 +2617,18 @@ class RouterOutlet {
|
|
|
2583
2617
|
this.activateEvents.emit(this.activated.instance);
|
|
2584
2618
|
}
|
|
2585
2619
|
}
|
|
2586
|
-
RouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
2587
|
-
RouterOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-next.
|
|
2588
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
2620
|
+
RouterOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2621
|
+
RouterOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-next.5", 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 });
|
|
2622
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterOutlet, decorators: [{
|
|
2589
2623
|
type: Directive,
|
|
2590
2624
|
args: [{
|
|
2591
2625
|
selector: 'router-outlet',
|
|
2592
2626
|
exportAs: 'outlet',
|
|
2593
2627
|
standalone: true,
|
|
2594
2628
|
}]
|
|
2595
|
-
}],
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
args: ['name']
|
|
2599
|
-
}] }, { type: i0.ChangeDetectorRef }, { type: i0.EnvironmentInjector }];
|
|
2600
|
-
}, propDecorators: { activateEvents: [{
|
|
2629
|
+
}], propDecorators: { name: [{
|
|
2630
|
+
type: Input
|
|
2631
|
+
}], activateEvents: [{
|
|
2601
2632
|
type: Output,
|
|
2602
2633
|
args: ['activate']
|
|
2603
2634
|
}], deactivateEvents: [{
|
|
@@ -2648,9 +2679,9 @@ function isComponentFactoryResolver(item) {
|
|
|
2648
2679
|
*/
|
|
2649
2680
|
class ɵEmptyOutletComponent {
|
|
2650
2681
|
}
|
|
2651
|
-
ɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
2652
|
-
ɵEmptyOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.
|
|
2653
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
2682
|
+
ɵEmptyOutletComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: ɵEmptyOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2683
|
+
ɵEmptyOutletComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0-next.5", 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"] }] });
|
|
2684
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: ɵEmptyOutletComponent, decorators: [{
|
|
2654
2685
|
type: Component,
|
|
2655
2686
|
args: [{
|
|
2656
2687
|
template: `<router-outlet></router-outlet>`,
|
|
@@ -4352,9 +4383,9 @@ class TitleStrategy {
|
|
|
4352
4383
|
return snapshot.data[RouteTitleKey];
|
|
4353
4384
|
}
|
|
4354
4385
|
}
|
|
4355
|
-
TitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
4356
|
-
TitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
4357
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
4386
|
+
TitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: TitleStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4387
|
+
TitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: TitleStrategy, providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) });
|
|
4388
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: TitleStrategy, decorators: [{
|
|
4358
4389
|
type: Injectable,
|
|
4359
4390
|
args: [{ providedIn: 'root', useFactory: () => inject(DefaultTitleStrategy) }]
|
|
4360
4391
|
}] });
|
|
@@ -4378,9 +4409,9 @@ class DefaultTitleStrategy extends TitleStrategy {
|
|
|
4378
4409
|
}
|
|
4379
4410
|
}
|
|
4380
4411
|
}
|
|
4381
|
-
DefaultTitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
4382
|
-
DefaultTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
4383
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
4412
|
+
DefaultTitleStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: DefaultTitleStrategy, deps: [{ token: i1.Title }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4413
|
+
DefaultTitleStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: DefaultTitleStrategy, providedIn: 'root' });
|
|
4414
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: DefaultTitleStrategy, decorators: [{
|
|
4384
4415
|
type: Injectable,
|
|
4385
4416
|
args: [{ providedIn: 'root' }]
|
|
4386
4417
|
}], ctorParameters: function () { return [{ type: i1.Title }]; } });
|
|
@@ -4480,6 +4511,17 @@ const ROUTER_CONFIGURATION = new InjectionToken(NG_DEV_MODE$4 ? 'router config'
|
|
|
4480
4511
|
factory: () => ({}),
|
|
4481
4512
|
});
|
|
4482
4513
|
|
|
4514
|
+
/**
|
|
4515
|
+
* @license
|
|
4516
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4517
|
+
*
|
|
4518
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
4519
|
+
* found in the LICENSE file at https://angular.io/license
|
|
4520
|
+
*/
|
|
4521
|
+
function deprecatedLoadChildrenString(injector, loadChildren) {
|
|
4522
|
+
return null;
|
|
4523
|
+
}
|
|
4524
|
+
|
|
4483
4525
|
/**
|
|
4484
4526
|
* @license
|
|
4485
4527
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -4517,7 +4559,7 @@ class RouterConfigLoader {
|
|
|
4517
4559
|
this.onLoadStartListener(route);
|
|
4518
4560
|
}
|
|
4519
4561
|
const loadRunner = wrapIntoObservable(route.loadComponent())
|
|
4520
|
-
.pipe(tap(component => {
|
|
4562
|
+
.pipe(map(maybeUnwrapDefaultExport), tap(component => {
|
|
4521
4563
|
var _a;
|
|
4522
4564
|
if (this.onLoadEndListener) {
|
|
4523
4565
|
this.onLoadEndListener(route);
|
|
@@ -4577,7 +4619,12 @@ class RouterConfigLoader {
|
|
|
4577
4619
|
return loader;
|
|
4578
4620
|
}
|
|
4579
4621
|
loadModuleFactoryOrRoutes(loadChildren) {
|
|
4580
|
-
|
|
4622
|
+
const deprecatedResult = deprecatedLoadChildrenString(this.injector, loadChildren);
|
|
4623
|
+
if (deprecatedResult) {
|
|
4624
|
+
return deprecatedResult;
|
|
4625
|
+
}
|
|
4626
|
+
return wrapIntoObservable(loadChildren())
|
|
4627
|
+
.pipe(map(maybeUnwrapDefaultExport), mergeMap((t) => {
|
|
4581
4628
|
if (t instanceof NgModuleFactory || Array.isArray(t)) {
|
|
4582
4629
|
return of(t);
|
|
4583
4630
|
}
|
|
@@ -4587,12 +4634,23 @@ class RouterConfigLoader {
|
|
|
4587
4634
|
}));
|
|
4588
4635
|
}
|
|
4589
4636
|
}
|
|
4590
|
-
RouterConfigLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
4591
|
-
RouterConfigLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
4592
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
4637
|
+
RouterConfigLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterConfigLoader, deps: [{ token: i0.Injector }, { token: i0.Compiler }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4638
|
+
RouterConfigLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterConfigLoader, providedIn: 'root' });
|
|
4639
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterConfigLoader, decorators: [{
|
|
4593
4640
|
type: Injectable,
|
|
4594
4641
|
args: [{ providedIn: 'root' }]
|
|
4595
4642
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.Compiler }]; } });
|
|
4643
|
+
function isWrappedDefaultExport(value) {
|
|
4644
|
+
// We use `in` here with a string key `'default'`, because we expect `DefaultExport` objects to be
|
|
4645
|
+
// dynamically imported ES modules with a spec-mandated `default` key. Thus we don't expect that
|
|
4646
|
+
// `default` will be a renamed property.
|
|
4647
|
+
return value && typeof value === 'object' && 'default' in value;
|
|
4648
|
+
}
|
|
4649
|
+
function maybeUnwrapDefaultExport(input) {
|
|
4650
|
+
// As per `isWrappedDefaultExport`, the `default` key here is generated by the browser and not
|
|
4651
|
+
// subject to property renaming, so we reference it with bracket access.
|
|
4652
|
+
return isWrappedDefaultExport(input) ? input['default'] : input;
|
|
4653
|
+
}
|
|
4596
4654
|
|
|
4597
4655
|
/**
|
|
4598
4656
|
* @license
|
|
@@ -5614,9 +5672,9 @@ class Router {
|
|
|
5614
5672
|
return { navigationId };
|
|
5615
5673
|
}
|
|
5616
5674
|
}
|
|
5617
|
-
Router.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
5618
|
-
Router.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
5619
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
5675
|
+
Router.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: Router, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
5676
|
+
Router.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: Router, providedIn: 'root', useFactory: setupRouter });
|
|
5677
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: Router, decorators: [{
|
|
5620
5678
|
type: Injectable,
|
|
5621
5679
|
args: [{
|
|
5622
5680
|
providedIn: 'root',
|
|
@@ -5733,19 +5791,36 @@ function isBrowserTriggeredNavigation(source) {
|
|
|
5733
5791
|
* @publicApi
|
|
5734
5792
|
*/
|
|
5735
5793
|
class RouterLink {
|
|
5736
|
-
constructor(router, route, tabIndexAttribute, renderer, el) {
|
|
5794
|
+
constructor(router, route, tabIndexAttribute, renderer, el, locationStrategy) {
|
|
5737
5795
|
this.router = router;
|
|
5738
5796
|
this.route = route;
|
|
5739
5797
|
this.tabIndexAttribute = tabIndexAttribute;
|
|
5740
5798
|
this.renderer = renderer;
|
|
5741
5799
|
this.el = el;
|
|
5800
|
+
this.locationStrategy = locationStrategy;
|
|
5742
5801
|
this._preserveFragment = false;
|
|
5743
5802
|
this._skipLocationChange = false;
|
|
5744
5803
|
this._replaceUrl = false;
|
|
5804
|
+
/**
|
|
5805
|
+
* Represents an `href` attribute value applied to a host element,
|
|
5806
|
+
* when a host element is `<a>`. For other tags, the value is `null`.
|
|
5807
|
+
*/
|
|
5808
|
+
this.href = null;
|
|
5745
5809
|
this.commands = null;
|
|
5746
5810
|
/** @internal */
|
|
5747
5811
|
this.onChanges = new Subject();
|
|
5748
|
-
|
|
5812
|
+
const tagName = el.nativeElement.tagName;
|
|
5813
|
+
this.isAnchorElement = tagName === 'A' || tagName === 'AREA';
|
|
5814
|
+
if (this.isAnchorElement) {
|
|
5815
|
+
this.subscription = router.events.subscribe((s) => {
|
|
5816
|
+
if (s instanceof NavigationEnd) {
|
|
5817
|
+
this.updateHref();
|
|
5818
|
+
}
|
|
5819
|
+
});
|
|
5820
|
+
}
|
|
5821
|
+
else {
|
|
5822
|
+
this.setTabIndexIfNotOnNativeEl('0');
|
|
5823
|
+
}
|
|
5749
5824
|
}
|
|
5750
5825
|
/**
|
|
5751
5826
|
* Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the
|
|
@@ -5788,20 +5863,16 @@ class RouterLink {
|
|
|
5788
5863
|
* instantiation.
|
|
5789
5864
|
*/
|
|
5790
5865
|
setTabIndexIfNotOnNativeEl(newTabIndex) {
|
|
5791
|
-
if (this.tabIndexAttribute != null /* both `null` and `undefined` */) {
|
|
5866
|
+
if (this.tabIndexAttribute != null /* both `null` and `undefined` */ || this.isAnchorElement) {
|
|
5792
5867
|
return;
|
|
5793
5868
|
}
|
|
5794
|
-
|
|
5795
|
-
const nativeElement = this.el.nativeElement;
|
|
5796
|
-
if (newTabIndex !== null) {
|
|
5797
|
-
renderer.setAttribute(nativeElement, 'tabindex', newTabIndex);
|
|
5798
|
-
}
|
|
5799
|
-
else {
|
|
5800
|
-
renderer.removeAttribute(nativeElement, 'tabindex');
|
|
5801
|
-
}
|
|
5869
|
+
this.applyAttributeValue('tabindex', newTabIndex);
|
|
5802
5870
|
}
|
|
5803
5871
|
/** @nodoc */
|
|
5804
5872
|
ngOnChanges(changes) {
|
|
5873
|
+
if (this.isAnchorElement) {
|
|
5874
|
+
this.updateHref();
|
|
5875
|
+
}
|
|
5805
5876
|
// This is subscribed to by `RouterLinkActive` so that it knows to update when there are changes
|
|
5806
5877
|
// to the RouterLinks it's tracking.
|
|
5807
5878
|
this.onChanges.next(this);
|
|
@@ -5824,17 +5895,63 @@ class RouterLink {
|
|
|
5824
5895
|
}
|
|
5825
5896
|
}
|
|
5826
5897
|
/** @nodoc */
|
|
5827
|
-
onClick() {
|
|
5898
|
+
onClick(button, ctrlKey, shiftKey, altKey, metaKey) {
|
|
5828
5899
|
if (this.urlTree === null) {
|
|
5829
5900
|
return true;
|
|
5830
5901
|
}
|
|
5902
|
+
if (this.isAnchorElement) {
|
|
5903
|
+
if (button !== 0 || ctrlKey || shiftKey || altKey || metaKey) {
|
|
5904
|
+
return true;
|
|
5905
|
+
}
|
|
5906
|
+
if (typeof this.target === 'string' && this.target != '_self') {
|
|
5907
|
+
return true;
|
|
5908
|
+
}
|
|
5909
|
+
}
|
|
5831
5910
|
const extras = {
|
|
5832
5911
|
skipLocationChange: this.skipLocationChange,
|
|
5833
5912
|
replaceUrl: this.replaceUrl,
|
|
5834
5913
|
state: this.state,
|
|
5835
5914
|
};
|
|
5836
5915
|
this.router.navigateByUrl(this.urlTree, extras);
|
|
5837
|
-
|
|
5916
|
+
// Return `false` for `<a>` elements to prevent default action
|
|
5917
|
+
// and cancel the native behavior, since the navigation is handled
|
|
5918
|
+
// by the Router.
|
|
5919
|
+
return !this.isAnchorElement;
|
|
5920
|
+
}
|
|
5921
|
+
/** @nodoc */
|
|
5922
|
+
ngOnDestroy() {
|
|
5923
|
+
var _a;
|
|
5924
|
+
(_a = this.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
5925
|
+
}
|
|
5926
|
+
updateHref() {
|
|
5927
|
+
var _a;
|
|
5928
|
+
this.href = this.urlTree !== null && this.locationStrategy ?
|
|
5929
|
+
(_a = this.locationStrategy) === null || _a === void 0 ? void 0 : _a.prepareExternalUrl(this.router.serializeUrl(this.urlTree)) :
|
|
5930
|
+
null;
|
|
5931
|
+
const sanitizedValue = this.href === null ?
|
|
5932
|
+
null :
|
|
5933
|
+
// This class represents a directive that can be added to both `<a>` elements,
|
|
5934
|
+
// as well as other elements. As a result, we can't define security context at
|
|
5935
|
+
// compile time. So the security context is deferred to runtime.
|
|
5936
|
+
// The `ɵɵsanitizeUrlOrResourceUrl` selects the necessary sanitizer function
|
|
5937
|
+
// based on the tag and property names. The logic mimics the one from
|
|
5938
|
+
// `packages/compiler/src/schema/dom_security_schema.ts`, which is used at compile time.
|
|
5939
|
+
//
|
|
5940
|
+
// Note: we should investigate whether we can switch to using `@HostBinding('attr.href')`
|
|
5941
|
+
// instead of applying a value via a renderer, after a final merge of the
|
|
5942
|
+
// `RouterLinkWithHref` directive.
|
|
5943
|
+
ɵɵsanitizeUrlOrResourceUrl(this.href, this.el.nativeElement.tagName.toLowerCase(), 'href');
|
|
5944
|
+
this.applyAttributeValue('href', sanitizedValue);
|
|
5945
|
+
}
|
|
5946
|
+
applyAttributeValue(attrName, attrValue) {
|
|
5947
|
+
const renderer = this.renderer;
|
|
5948
|
+
const nativeElement = this.el.nativeElement;
|
|
5949
|
+
if (attrValue !== null) {
|
|
5950
|
+
renderer.setAttribute(nativeElement, attrName, attrValue);
|
|
5951
|
+
}
|
|
5952
|
+
else {
|
|
5953
|
+
renderer.removeAttribute(nativeElement, attrName);
|
|
5954
|
+
}
|
|
5838
5955
|
}
|
|
5839
5956
|
get urlTree() {
|
|
5840
5957
|
if (this.commands === null) {
|
|
@@ -5851,9 +5968,9 @@ class RouterLink {
|
|
|
5851
5968
|
});
|
|
5852
5969
|
}
|
|
5853
5970
|
}
|
|
5854
|
-
RouterLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
5855
|
-
RouterLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-next.
|
|
5856
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
5971
|
+
RouterLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", 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 });
|
|
5972
|
+
RouterLink.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-next.5", type: RouterLink, isStandalone: true, selector: ":not(a):not(area)[routerLink]", inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", relativeTo: "relativeTo", preserveFragment: "preserveFragment", skipLocationChange: "skipLocationChange", replaceUrl: "replaceUrl", 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 });
|
|
5973
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterLink, decorators: [{
|
|
5857
5974
|
type: Directive,
|
|
5858
5975
|
args: [{
|
|
5859
5976
|
selector: ':not(a):not(area)[routerLink]',
|
|
@@ -5863,8 +5980,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.3",
|
|
|
5863
5980
|
return [{ type: Router }, { type: ActivatedRoute }, { type: undefined, decorators: [{
|
|
5864
5981
|
type: Attribute,
|
|
5865
5982
|
args: ['tabindex']
|
|
5866
|
-
}] }, { type: i0.Renderer2 }, { type: i0.ElementRef }];
|
|
5867
|
-
}, propDecorators: {
|
|
5983
|
+
}] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i3.LocationStrategy }];
|
|
5984
|
+
}, propDecorators: { target: [{
|
|
5985
|
+
type: HostBinding,
|
|
5986
|
+
args: ['attr.target']
|
|
5987
|
+
}, {
|
|
5988
|
+
type: Input
|
|
5989
|
+
}], queryParams: [{
|
|
5868
5990
|
type: Input
|
|
5869
5991
|
}], fragment: [{
|
|
5870
5992
|
type: Input
|
|
@@ -5884,7 +6006,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.3",
|
|
|
5884
6006
|
type: Input
|
|
5885
6007
|
}], onClick: [{
|
|
5886
6008
|
type: HostListener,
|
|
5887
|
-
args: ['click'
|
|
6009
|
+
args: ['click',
|
|
6010
|
+
['$event.button', '$event.ctrlKey', '$event.shiftKey', '$event.altKey', '$event.metaKey']]
|
|
5888
6011
|
}] } });
|
|
5889
6012
|
/**
|
|
5890
6013
|
* @description
|
|
@@ -5897,159 +6020,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.3",
|
|
|
5897
6020
|
*
|
|
5898
6021
|
* @publicApi
|
|
5899
6022
|
*/
|
|
5900
|
-
class RouterLinkWithHref {
|
|
5901
|
-
constructor(router, route, locationStrategy) {
|
|
5902
|
-
this.router = router;
|
|
5903
|
-
this.route = route;
|
|
5904
|
-
this.locationStrategy = locationStrategy;
|
|
5905
|
-
this._preserveFragment = false;
|
|
5906
|
-
this._skipLocationChange = false;
|
|
5907
|
-
this._replaceUrl = false;
|
|
5908
|
-
this.commands = null;
|
|
5909
|
-
// the url displayed on the anchor element.
|
|
5910
|
-
// @HostBinding('attr.href') is used rather than @HostBinding() because it removes the
|
|
5911
|
-
// href attribute when it becomes `null`.
|
|
5912
|
-
this.href = null;
|
|
5913
|
-
/** @internal */
|
|
5914
|
-
this.onChanges = new Subject();
|
|
5915
|
-
this.subscription = router.events.subscribe((s) => {
|
|
5916
|
-
if (s instanceof NavigationEnd) {
|
|
5917
|
-
this.updateTargetUrlAndHref();
|
|
5918
|
-
}
|
|
5919
|
-
});
|
|
5920
|
-
}
|
|
5921
|
-
/**
|
|
5922
|
-
* Passed to {@link Router#createUrlTree Router#createUrlTree} as part of the
|
|
5923
|
-
* `UrlCreationOptions`.
|
|
5924
|
-
* @see {@link UrlCreationOptions#preserveFragment UrlCreationOptions#preserveFragment}
|
|
5925
|
-
* @see {@link Router#createUrlTree Router#createUrlTree}
|
|
5926
|
-
*/
|
|
5927
|
-
set preserveFragment(preserveFragment) {
|
|
5928
|
-
this._preserveFragment = ɵcoerceToBoolean(preserveFragment);
|
|
5929
|
-
}
|
|
5930
|
-
get preserveFragment() {
|
|
5931
|
-
return this._preserveFragment;
|
|
5932
|
-
}
|
|
5933
|
-
/**
|
|
5934
|
-
* Passed to {@link Router#navigateByUrl Router#navigateByUrl} as part of the
|
|
5935
|
-
* `NavigationBehaviorOptions`.
|
|
5936
|
-
* @see {@link NavigationBehaviorOptions#skipLocationChange NavigationBehaviorOptions#skipLocationChange}
|
|
5937
|
-
* @see {@link Router#navigateByUrl Router#navigateByUrl}
|
|
5938
|
-
*/
|
|
5939
|
-
set skipLocationChange(skipLocationChange) {
|
|
5940
|
-
this._skipLocationChange = ɵcoerceToBoolean(skipLocationChange);
|
|
5941
|
-
}
|
|
5942
|
-
get skipLocationChange() {
|
|
5943
|
-
return this._skipLocationChange;
|
|
5944
|
-
}
|
|
5945
|
-
/**
|
|
5946
|
-
* Passed to {@link Router#navigateByUrl Router#navigateByUrl} as part of the
|
|
5947
|
-
* `NavigationBehaviorOptions`.
|
|
5948
|
-
* @see {@link NavigationBehaviorOptions#replaceUrl NavigationBehaviorOptions#replaceUrl}
|
|
5949
|
-
* @see {@link Router#navigateByUrl Router#navigateByUrl}
|
|
5950
|
-
*/
|
|
5951
|
-
set replaceUrl(replaceUrl) {
|
|
5952
|
-
this._replaceUrl = ɵcoerceToBoolean(replaceUrl);
|
|
5953
|
-
}
|
|
5954
|
-
get replaceUrl() {
|
|
5955
|
-
return this._replaceUrl;
|
|
5956
|
-
}
|
|
5957
|
-
/**
|
|
5958
|
-
* Commands to pass to {@link Router#createUrlTree Router#createUrlTree}.
|
|
5959
|
-
* - **array**: commands to pass to {@link Router#createUrlTree Router#createUrlTree}.
|
|
5960
|
-
* - **string**: shorthand for array of commands with just the string, i.e. `['/route']`
|
|
5961
|
-
* - **null|undefined**: Disables the link by removing the `href`
|
|
5962
|
-
* @see {@link Router#createUrlTree Router#createUrlTree}
|
|
5963
|
-
*/
|
|
5964
|
-
set routerLink(commands) {
|
|
5965
|
-
if (commands != null) {
|
|
5966
|
-
this.commands = Array.isArray(commands) ? commands : [commands];
|
|
5967
|
-
}
|
|
5968
|
-
else {
|
|
5969
|
-
this.commands = null;
|
|
5970
|
-
}
|
|
5971
|
-
}
|
|
5972
|
-
/** @nodoc */
|
|
5973
|
-
ngOnChanges(changes) {
|
|
5974
|
-
this.updateTargetUrlAndHref();
|
|
5975
|
-
this.onChanges.next(this);
|
|
5976
|
-
}
|
|
5977
|
-
/** @nodoc */
|
|
5978
|
-
ngOnDestroy() {
|
|
5979
|
-
this.subscription.unsubscribe();
|
|
5980
|
-
}
|
|
5981
|
-
/** @nodoc */
|
|
5982
|
-
onClick(button, ctrlKey, shiftKey, altKey, metaKey) {
|
|
5983
|
-
if (button !== 0 || ctrlKey || shiftKey || altKey || metaKey) {
|
|
5984
|
-
return true;
|
|
5985
|
-
}
|
|
5986
|
-
if (typeof this.target === 'string' && this.target != '_self' || this.urlTree === null) {
|
|
5987
|
-
return true;
|
|
5988
|
-
}
|
|
5989
|
-
const extras = {
|
|
5990
|
-
skipLocationChange: this.skipLocationChange,
|
|
5991
|
-
replaceUrl: this.replaceUrl,
|
|
5992
|
-
state: this.state
|
|
5993
|
-
};
|
|
5994
|
-
this.router.navigateByUrl(this.urlTree, extras);
|
|
5995
|
-
return false;
|
|
5996
|
-
}
|
|
5997
|
-
updateTargetUrlAndHref() {
|
|
5998
|
-
this.href = this.urlTree !== null ?
|
|
5999
|
-
this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree)) :
|
|
6000
|
-
null;
|
|
6001
|
-
}
|
|
6002
|
-
get urlTree() {
|
|
6003
|
-
if (this.commands === null) {
|
|
6004
|
-
return null;
|
|
6005
|
-
}
|
|
6006
|
-
return this.router.createUrlTree(this.commands, {
|
|
6007
|
-
// If the `relativeTo` input is not defined, we want to use `this.route` by default.
|
|
6008
|
-
// Otherwise, we should use the value provided by the user in the input.
|
|
6009
|
-
relativeTo: this.relativeTo !== undefined ? this.relativeTo : this.route,
|
|
6010
|
-
queryParams: this.queryParams,
|
|
6011
|
-
fragment: this.fragment,
|
|
6012
|
-
queryParamsHandling: this.queryParamsHandling,
|
|
6013
|
-
preserveFragment: this.preserveFragment,
|
|
6014
|
-
});
|
|
6015
|
-
}
|
|
6023
|
+
class RouterLinkWithHref extends RouterLink {
|
|
6016
6024
|
}
|
|
6017
|
-
RouterLinkWithHref.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6018
|
-
RouterLinkWithHref.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-next.
|
|
6019
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6025
|
+
RouterLinkWithHref.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterLinkWithHref, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
6026
|
+
RouterLinkWithHref.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-next.5", type: RouterLinkWithHref, isStandalone: true, selector: "a[routerLink],area[routerLink]", usesInheritance: true, ngImport: i0 });
|
|
6027
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterLinkWithHref, decorators: [{
|
|
6020
6028
|
type: Directive,
|
|
6021
|
-
args: [{
|
|
6022
|
-
|
|
6023
|
-
|
|
6024
|
-
|
|
6025
|
-
|
|
6026
|
-
type: Input
|
|
6027
|
-
}], queryParams: [{
|
|
6028
|
-
type: Input
|
|
6029
|
-
}], fragment: [{
|
|
6030
|
-
type: Input
|
|
6031
|
-
}], queryParamsHandling: [{
|
|
6032
|
-
type: Input
|
|
6033
|
-
}], state: [{
|
|
6034
|
-
type: Input
|
|
6035
|
-
}], relativeTo: [{
|
|
6036
|
-
type: Input
|
|
6037
|
-
}], href: [{
|
|
6038
|
-
type: HostBinding,
|
|
6039
|
-
args: ['attr.href']
|
|
6040
|
-
}], preserveFragment: [{
|
|
6041
|
-
type: Input
|
|
6042
|
-
}], skipLocationChange: [{
|
|
6043
|
-
type: Input
|
|
6044
|
-
}], replaceUrl: [{
|
|
6045
|
-
type: Input
|
|
6046
|
-
}], routerLink: [{
|
|
6047
|
-
type: Input
|
|
6048
|
-
}], onClick: [{
|
|
6049
|
-
type: HostListener,
|
|
6050
|
-
args: ['click',
|
|
6051
|
-
['$event.button', '$event.ctrlKey', '$event.shiftKey', '$event.altKey', '$event.metaKey']]
|
|
6052
|
-
}] } });
|
|
6029
|
+
args: [{
|
|
6030
|
+
selector: 'a[routerLink],area[routerLink]',
|
|
6031
|
+
standalone: true,
|
|
6032
|
+
}]
|
|
6033
|
+
}] });
|
|
6053
6034
|
|
|
6054
6035
|
/**
|
|
6055
6036
|
* @license
|
|
@@ -6243,9 +6224,9 @@ class RouterLinkActive {
|
|
|
6243
6224
|
this.links.some(isActiveCheckFn) || this.linksWithHrefs.some(isActiveCheckFn);
|
|
6244
6225
|
}
|
|
6245
6226
|
}
|
|
6246
|
-
RouterLinkActive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6247
|
-
RouterLinkActive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-next.
|
|
6248
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6227
|
+
RouterLinkActive.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterLinkActive, deps: [{ token: Router }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: RouterLink, optional: true }, { token: RouterLinkWithHref, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
6228
|
+
RouterLinkActive.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.0-next.5", type: RouterLinkActive, isStandalone: true, selector: "[routerLinkActive]", inputs: { routerLinkActiveOptions: "routerLinkActiveOptions", ariaCurrentWhenActive: "ariaCurrentWhenActive", routerLinkActive: "routerLinkActive" }, outputs: { isActiveChange: "isActiveChange" }, queries: [{ propertyName: "links", predicate: RouterLink, descendants: true }, { propertyName: "linksWithHrefs", predicate: RouterLinkWithHref, descendants: true }], exportAs: ["routerLinkActive"], usesOnChanges: true, ngImport: i0 });
|
|
6229
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterLinkActive, decorators: [{
|
|
6249
6230
|
type: Directive,
|
|
6250
6231
|
args: [{
|
|
6251
6232
|
selector: '[routerLinkActive]',
|
|
@@ -6312,9 +6293,9 @@ class PreloadAllModules {
|
|
|
6312
6293
|
return fn().pipe(catchError(() => of(null)));
|
|
6313
6294
|
}
|
|
6314
6295
|
}
|
|
6315
|
-
PreloadAllModules.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6316
|
-
PreloadAllModules.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6317
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6296
|
+
PreloadAllModules.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: PreloadAllModules, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6297
|
+
PreloadAllModules.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: PreloadAllModules, providedIn: 'root' });
|
|
6298
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: PreloadAllModules, decorators: [{
|
|
6318
6299
|
type: Injectable,
|
|
6319
6300
|
args: [{ providedIn: 'root' }]
|
|
6320
6301
|
}] });
|
|
@@ -6332,9 +6313,9 @@ class NoPreloading {
|
|
|
6332
6313
|
return of(null);
|
|
6333
6314
|
}
|
|
6334
6315
|
}
|
|
6335
|
-
NoPreloading.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6336
|
-
NoPreloading.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6337
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6316
|
+
NoPreloading.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: NoPreloading, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6317
|
+
NoPreloading.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: NoPreloading, providedIn: 'root' });
|
|
6318
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: NoPreloading, decorators: [{
|
|
6338
6319
|
type: Injectable,
|
|
6339
6320
|
args: [{ providedIn: 'root' }]
|
|
6340
6321
|
}] });
|
|
@@ -6430,9 +6411,9 @@ class RouterPreloader {
|
|
|
6430
6411
|
});
|
|
6431
6412
|
}
|
|
6432
6413
|
}
|
|
6433
|
-
RouterPreloader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6434
|
-
RouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6435
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6414
|
+
RouterPreloader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterPreloader, deps: [{ token: Router }, { token: i0.Compiler }, { token: i0.EnvironmentInjector }, { token: PreloadingStrategy }, { token: RouterConfigLoader }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
6415
|
+
RouterPreloader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterPreloader, providedIn: 'root' });
|
|
6416
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterPreloader, decorators: [{
|
|
6436
6417
|
type: Injectable,
|
|
6437
6418
|
args: [{ providedIn: 'root' }]
|
|
6438
6419
|
}], ctorParameters: function () { return [{ type: Router }, { type: i0.Compiler }, { type: i0.EnvironmentInjector }, { type: PreloadingStrategy }, { type: RouterConfigLoader }]; } });
|
|
@@ -6513,9 +6494,9 @@ class RouterScroller {
|
|
|
6513
6494
|
}
|
|
6514
6495
|
}
|
|
6515
6496
|
}
|
|
6516
|
-
RouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6517
|
-
RouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6518
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
6497
|
+
RouterScroller.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterScroller, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
6498
|
+
RouterScroller.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterScroller });
|
|
6499
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterScroller, decorators: [{
|
|
6519
6500
|
type: Injectable
|
|
6520
6501
|
}], ctorParameters: function () { return [{ type: Router }, { type: i3.ViewportScroller }, { type: undefined }]; } });
|
|
6521
6502
|
|
|
@@ -7044,10 +7025,10 @@ class RouterModule {
|
|
|
7044
7025
|
return { ngModule: RouterModule, providers: [provideRoutes(routes)] };
|
|
7045
7026
|
}
|
|
7046
7027
|
}
|
|
7047
|
-
RouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
7048
|
-
RouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.0-next.
|
|
7049
|
-
RouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
7050
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.
|
|
7028
|
+
RouterModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterModule, deps: [{ token: ROUTER_FORROOT_GUARD, optional: true }], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7029
|
+
RouterModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterModule, imports: [RouterOutlet, RouterLink, RouterLinkWithHref, RouterLinkActive, ɵEmptyOutletComponent], exports: [RouterOutlet, RouterLink, RouterLinkWithHref, RouterLinkActive, ɵEmptyOutletComponent] });
|
|
7030
|
+
RouterModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterModule, imports: [ɵEmptyOutletComponent] });
|
|
7031
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.5", ngImport: i0, type: RouterModule, decorators: [{
|
|
7051
7032
|
type: NgModule,
|
|
7052
7033
|
args: [{
|
|
7053
7034
|
imports: ROUTER_DIRECTIVES,
|
|
@@ -7133,7 +7114,7 @@ function provideRouterInitializer() {
|
|
|
7133
7114
|
/**
|
|
7134
7115
|
* @publicApi
|
|
7135
7116
|
*/
|
|
7136
|
-
const VERSION = new Version('15.0.0-next.
|
|
7117
|
+
const VERSION = new Version('15.0.0-next.5');
|
|
7137
7118
|
|
|
7138
7119
|
/**
|
|
7139
7120
|
* @license
|