@angular/router 3.4.9 → 3.4.10
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/bundles/router-testing.umd.js +1 -1
- package/bundles/router-upgrade.umd.js +11 -22
- package/bundles/router-upgrade.umd.min.js +2 -2
- package/bundles/router.umd.js +146 -22
- package/bundles/router.umd.min.js +4 -4
- package/package.json +4 -4
- package/src/router.d.ts +1 -1
- package/src/router.js +36 -4
- package/src/router.js.map +1 -1
- package/src/router_module.d.ts +57 -6
- package/src/router_module.js +135 -18
- package/src/router_module.js.map +1 -1
- package/src/router_module.metadata.json +1 -1
- package/src/version.js +1 -1
- package/src/version.js.map +1 -1
- package/src/version.metadata.json +1 -1
- package/upgrade.d.ts +4 -4
- package/upgrade.js +11 -22
- package/upgrade.js.map +1 -1
- package/upgrade.metadata.json +1 -1
package/src/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../modules/@angular/router/src/router.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Location} from '@angular/common';\nimport {Compiler, ComponentFactoryResolver, Injector, NgModuleFactoryLoader, ReflectiveInjector, Type} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs/BehaviorSubject';\nimport {Observable} from 'rxjs/Observable';\nimport {Subject} from 'rxjs/Subject';\nimport {Subscription} from 'rxjs/Subscription';\nimport {from} from 'rxjs/observable/from';\nimport {of } from 'rxjs/observable/of';\nimport {concatMap} from 'rxjs/operator/concatMap';\nimport {every} from 'rxjs/operator/every';\nimport {first} from 'rxjs/operator/first';\nimport {map} from 'rxjs/operator/map';\nimport {mergeMap} from 'rxjs/operator/mergeMap';\nimport {reduce} from 'rxjs/operator/reduce';\n\nimport {applyRedirects} from './apply_redirects';\nimport {ResolveData, Routes, validateConfig} from './config';\nimport {createRouterState} from './create_router_state';\nimport {createUrlTree} from './create_url_tree';\nimport {RouterOutlet} from './directives/router_outlet';\nimport {recognize} from './recognize';\nimport {DetachedRouteHandle, DetachedRouteHandleInternal, RouteReuseStrategy} from './route_reuse_strategy';\nimport {LoadedRouterConfig, RouterConfigLoader} from './router_config_loader';\nimport {RouterOutletMap} from './router_outlet_map';\nimport {ActivatedRoute, ActivatedRouteSnapshot, RouterState, RouterStateSnapshot, advanceActivatedRoute, createEmptyState, equalParamsAndUrlSegments, inheritedParamsDataResolve} from './router_state';\nimport {NavigationCancelingError, PRIMARY_OUTLET, Params} from './shared';\nimport {DefaultUrlHandlingStrategy, UrlHandlingStrategy} from './url_handling_strategy';\nimport {UrlSerializer, UrlTree, containsTree, createEmptyUrlTree} from './url_tree';\nimport {andObservables, forEach, merge, waitForMap, wrapIntoObservable} from './utils/collection';\nimport {TreeNode} from './utils/tree';\n\ndeclare let Zone: any;\n\n/**\n * @whatItDoes Represents the extra options used during navigation.\n *\n * @stable\n */\nexport interface NavigationExtras {\n /**\n * Enables relative navigation from the current ActivatedRoute.\n *\n * Configuration:\n *\n * ```\n * [{\n * path: 'parent',\n * component: ParentComponent,\n * children: [{\n * path: 'list',\n * component: ListComponent\n * },{\n * path: 'child',\n * component: ChildComponent\n * }]\n * }]\n * ```\n *\n * Navigate to list route from child route:\n *\n * ```\n * @Component({...})\n * class ChildComponent {\n * constructor(private router: Router, private route: ActivatedRoute) {}\n *\n * go() {\n * this.router.navigate(['../list'], { relativeTo: this.route });\n * }\n * }\n * ```\n */\n relativeTo?: ActivatedRoute;\n\n /**\n * Sets query parameters to the URL.\n *\n * ```\n * // Navigate to /results?page=1\n * this.router.navigate(['/results'], { queryParams: { page: 1 } });\n * ```\n */\n queryParams?: Params;\n\n /**\n * Sets the hash fragment for the URL.\n *\n * ```\n * // Navigate to /results#top\n * this.router.navigate(['/results'], { fragment: 'top' });\n * ```\n */\n fragment?: string;\n\n /**\n * Preserves the query parameters for the next navigation.\n *\n * ```\n * // Preserve query params from /results?page=1 to /view?page=1\n * this.router.navigate(['/view'], { preserveQueryParams: true });\n * ```\n */\n preserveQueryParams?: boolean;\n /**\n * Preserves the fragment for the next navigation\n *\n * ```\n * // Preserve fragment from /results#top to /view#top\n * this.router.navigate(['/view'], { preserveFragment: true });\n * ```\n */\n preserveFragment?: boolean;\n /**\n * Navigates without pushing a new state into history.\n *\n * ```\n * // Navigate silently to /view\n * this.router.navigate(['/view'], { skipLocationChange: true });\n * ```\n */\n skipLocationChange?: boolean;\n /**\n * Navigates while replacing the current state in history.\n *\n * ```\n * // Navigate to /view\n * this.router.navigate(['/view'], { replaceUrl: true });\n * ```\n */\n replaceUrl?: boolean;\n}\n/**\n * \\@whatItDoes Represents an event triggered when a navigation starts.\n * \n * \\@stable\n */\nexport class NavigationStart {\n/**\n * @param {?} id\n * @param {?} url\n */\nconstructor(\npublic id: number,\npublic url: string) {}\n/**\n * \\@docsNotRequired\n * @return {?}\n */\ntoString(): string { return `NavigationStart(id: ${this.id}, url: '${this.url}')`; }\n}\n\nfunction NavigationStart_tsickle_Closure_declarations() {\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationStart.prototype.id;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationStart.prototype.url;\n}\n\n/**\n * \\@whatItDoes Represents an event triggered when a navigation ends successfully.\n * \n * \\@stable\n */\nexport class NavigationEnd {\n/**\n * @param {?} id\n * @param {?} url\n * @param {?} urlAfterRedirects\n */\nconstructor(\npublic id: number,\npublic url: string,\npublic urlAfterRedirects: string) {}\n/**\n * \\@docsNotRequired\n * @return {?}\n */\ntoString(): string {\n return `NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`;\n }\n}\n\nfunction NavigationEnd_tsickle_Closure_declarations() {\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationEnd.prototype.id;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationEnd.prototype.url;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationEnd.prototype.urlAfterRedirects;\n}\n\n/**\n * \\@whatItDoes Represents an event triggered when a navigation is canceled.\n * \n * \\@stable\n */\nexport class NavigationCancel {\n/**\n * @param {?} id\n * @param {?} url\n * @param {?} reason\n */\nconstructor(\npublic id: number,\npublic url: string,\npublic reason: string) {}\n/**\n * \\@docsNotRequired\n * @return {?}\n */\ntoString(): string { return `NavigationCancel(id: ${this.id}, url: '${this.url}')`; }\n}\n\nfunction NavigationCancel_tsickle_Closure_declarations() {\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationCancel.prototype.id;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationCancel.prototype.url;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationCancel.prototype.reason;\n}\n\n/**\n * \\@whatItDoes Represents an event triggered when a navigation fails due to an unexpected error.\n * \n * \\@stable\n */\nexport class NavigationError {\n/**\n * @param {?} id\n * @param {?} url\n * @param {?} error\n */\nconstructor(\npublic id: number,\npublic url: string,\npublic error: any) {}\n/**\n * \\@docsNotRequired\n * @return {?}\n */\ntoString(): string {\n return `NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`;\n }\n}\n\nfunction NavigationError_tsickle_Closure_declarations() {\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationError.prototype.id;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationError.prototype.url;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationError.prototype.error;\n}\n\n/**\n * \\@whatItDoes Represents an event triggered when routes are recognized.\n * \n * \\@stable\n */\nexport class RoutesRecognized {\n/**\n * @param {?} id\n * @param {?} url\n * @param {?} urlAfterRedirects\n * @param {?} state\n */\nconstructor(\npublic id: number,\npublic url: string,\npublic urlAfterRedirects: string,\npublic state: RouterStateSnapshot) {}\n/**\n * \\@docsNotRequired\n * @return {?}\n */\ntoString(): string {\n return `RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`;\n }\n}\n\nfunction RoutesRecognized_tsickle_Closure_declarations() {\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nRoutesRecognized.prototype.id;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nRoutesRecognized.prototype.url;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nRoutesRecognized.prototype.urlAfterRedirects;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nRoutesRecognized.prototype.state;\n}\n\n\n/**\n * @whatItDoes Represents a router event.\n *\n * Please see {@link NavigationStart}, {@link NavigationEnd}, {@link NavigationCancel}, {@link\n * NavigationError},\n * {@link RoutesRecognized} for more information.\n *\n * @stable\n */\nexport type Event =\n NavigationStart | NavigationEnd | NavigationCancel | NavigationError | RoutesRecognized;\n\n/**\n * @whatItDoes Error handler that is invoked when a navigation errors.\n *\n * @description\n * If the handler returns a value, the navigation promise will be resolved with this value.\n * If the handler throws an exception, the navigation promise will be rejected with\n * the exception.\n *\n * @stable\n */\nexport type ErrorHandler = (error: any) => any;\n/**\n * @param {?} error\n * @return {?}\n */\nfunction defaultErrorHandler(error: any): any {\n throw error;\n}\n\ntype NavigationSource = 'imperative' | 'popstate' | 'hashchange';\n\ntype NavigationParams = {\n id: number,\n rawUrl: UrlTree,\n extras: NavigationExtras,\n resolve: any,\n reject: any,\n promise: Promise<boolean>,\n source: NavigationSource,\n};\n/**\n * Does not detach any subtrees. Reuses routes as long as their route config is the same.\n */\nexport class DefaultRouteReuseStrategy implements RouteReuseStrategy {\n/**\n * @param {?} route\n * @return {?}\n */\nshouldDetach(route: ActivatedRouteSnapshot): boolean { return false; }\n/**\n * @param {?} route\n * @param {?} detachedTree\n * @return {?}\n */\nstore(route: ActivatedRouteSnapshot, detachedTree: DetachedRouteHandle): void {}\n/**\n * @param {?} route\n * @return {?}\n */\nshouldAttach(route: ActivatedRouteSnapshot): boolean { return false; }\n/**\n * @param {?} route\n * @return {?}\n */\nretrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle { return null; }\n/**\n * @param {?} future\n * @param {?} curr\n * @return {?}\n */\nshouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\n return future.routeConfig === curr.routeConfig;\n }\n}\n/**\n * \\@whatItDoes Provides the navigation and url manipulation capabilities.\n * \n * See {\\@link Routes} for more details and examples.\n * \n * \\@ngModule RouterModule\n * \n * \\@stable\n */\nexport class Router {\nprivate currentUrlTree: UrlTree;\nprivate rawUrlTree: UrlTree;\nprivate navigations = new BehaviorSubject<NavigationParams>(null);\nprivate routerEvents = new Subject<Event>();\nprivate currentRouterState: RouterState;\nprivate locationSubscription: Subscription;\nprivate navigationId: number = 0;\nprivate configLoader: RouterConfigLoader;\n\n /**\n * Error handler that is invoked when a navigation errors.\n *\n * See {@link ErrorHandler} for more information.\n */\n errorHandler: ErrorHandler = defaultErrorHandler;\n\n /**\n * Indicates if at least one navigation happened.\n */\n navigated: boolean = false;\n\n /**\n * Extracts and merges URLs. Used for Angular 1 to Angular 2 migrations.\n */\n urlHandlingStrategy: UrlHandlingStrategy = new DefaultUrlHandlingStrategy();\n\n routeReuseStrategy: RouteReuseStrategy = new DefaultRouteReuseStrategy();\n/**\n * @param {?} rootComponentType\n * @param {?} urlSerializer\n * @param {?} outletMap\n * @param {?} location\n * @param {?} injector\n * @param {?} loader\n * @param {?} compiler\n * @param {?} config\n */\nconstructor(\nprivate rootComponentType: Type<any>,\nprivate urlSerializer: UrlSerializer,\nprivate outletMap: RouterOutletMap,\nprivate location: Location,\nprivate injector: Injector,\n loader: NgModuleFactoryLoader, compiler: Compiler,\npublic config: Routes) {\n this.resetConfig(config);\n this.currentUrlTree = createEmptyUrlTree();\n this.rawUrlTree = this.currentUrlTree;\n this.configLoader = new RouterConfigLoader(loader, compiler);\n this.currentRouterState = createEmptyState(this.currentUrlTree, this.rootComponentType);\n this.processNavigations();\n }\n/**\n * \\@internal \n * TODO: this should be removed once the constructor of the router made internal\n * @param {?} rootComponentType\n * @return {?}\n */\nresetRootComponentType(rootComponentType: Type<any>): void {\n this.rootComponentType = rootComponentType;\n // TODO: vsavkin router 4.0 should make the root component set to null\n // this will simplify the lifecycle of the router.\n this.currentRouterState.root.component = this.rootComponentType;\n }\n/**\n * Sets up the location change listener and performs the initial navigation.\n * @return {?}\n */\ninitialNavigation(): void {\n this.setUpLocationChangeListener();\n if (this.navigationId === 0) {\n this.navigateByUrl(this.location.path(true), {replaceUrl: true});\n }\n }\n/**\n * Sets up the location change listener.\n * @return {?}\n */\nsetUpLocationChangeListener(): void {\n // Zone.current.wrap is needed because of the issue with RxJS scheduler,\n // which does not work properly with zone.js in IE and Safari\n if (!this.locationSubscription) {\n this.locationSubscription = /** @type {?} */(( <any>this.location.subscribe(Zone.current.wrap((change: any) => {\n const /** @type {?} */ rawUrlTree = this.urlSerializer.parse(change['url']);\n const /** @type {?} */ source: NavigationSource = change['type'] === 'popstate' ? 'popstate' : 'hashchange';\n setTimeout(() => { this.scheduleNavigation(rawUrlTree, source, {replaceUrl: true}); }, 0);\n }))));\n }\n }\n/**\n * The current route state\n * @return {?}\n */\nget routerState(): RouterState { return this.currentRouterState; }\n/**\n * The current url\n * @return {?}\n */\nget url(): string { return this.serializeUrl(this.currentUrlTree); }\n/**\n * An observable of router events\n * @return {?}\n */\nget events(): Observable<Event> { return this.routerEvents; }\n/**\n * Resets the configuration used for navigation and generating links.\n * \n * ### Usage\n * \n * ```\n * router.resetConfig([\n * { path: 'team/:id', component: TeamCmp, children: [\n * { path: 'simple', component: SimpleCmp },\n * { path: 'user/:name', component: UserCmp }\n * ]}\n * ]);\n * ```\n * @param {?} config\n * @return {?}\n */\nresetConfig(config: Routes): void {\n validateConfig(config);\n this.config = config;\n }\n/**\n * \\@docsNotRequired\n * @return {?}\n */\nngOnDestroy() { this.dispose(); }\n/**\n * Disposes of the router\n * @return {?}\n */\ndispose(): void {\n if (this.locationSubscription) {\n this.locationSubscription.unsubscribe();\n this.locationSubscription = null;\n }\n }\n/**\n * Applies an array of commands to the current url tree and creates a new url tree.\n * \n * When given an activate route, applies the given commands starting from the route.\n * When not given a route, applies the given command starting from the root.\n * \n * ### Usage\n * \n * ```\n * // create /team/33/user/11\n * router.createUrlTree(['/team', 33, 'user', 11]);\n * \n * // create /team/33;expand=true/user/11\n * router.createUrlTree(['/team', 33, {expand: true}, 'user', 11]);\n * \n * // you can collapse static segments like this (this works only with the first passed-in value):\n * router.createUrlTree(['/team/33/user', userId]);\n * \n * // If the first segment can contain slashes, and you do not want the router to split it, you\n * // can do the following:\n * \n * router.createUrlTree([{segmentPath: '/one/two'}]);\n * \n * // create /team/33/(user/11//right:chat)\n * router.createUrlTree(['/team', 33, {outlets: {primary: 'user/11', right: 'chat'}}]);\n * \n * // remove the right secondary node\n * router.createUrlTree(['/team', 33, {outlets: {primary: 'user/11', right: null}}]);\n * \n * // assuming the current url is `/team/33/user/11` and the route points to `user/11`\n * \n * // navigate to /team/33/user/11/details\n * router.createUrlTree(['details'], {relativeTo: route});\n * \n * // navigate to /team/33/user/22\n * router.createUrlTree(['../22'], {relativeTo: route});\n * \n * // navigate to /team/44/user/22\n * router.createUrlTree(['../../team/44/user/22'], {relativeTo: route});\n * ```\n * @param {?} commands\n * @param {?=} __1\n * @return {?}\n */\ncreateUrlTree(\n commands: any[], {relativeTo, queryParams, fragment, preserveQueryParams,\n preserveFragment}: NavigationExtras = {}): UrlTree {\n const /** @type {?} */ a = relativeTo || this.routerState.root;\n const /** @type {?} */ q = preserveQueryParams ? this.currentUrlTree.queryParams : queryParams;\n const /** @type {?} */ f = preserveFragment ? this.currentUrlTree.fragment : fragment;\n return createUrlTree(a, this.currentUrlTree, commands, q, f);\n }\n/**\n * Navigate based on the provided url. This navigation is always absolute.\n * \n * Returns a promise that:\n * - resolves to 'true' when navigation succeeds,\n * - resolves to 'false' when navigation fails,\n * - is rejected when an error happens.\n * \n * ### Usage\n * \n * ```\n * router.navigateByUrl(\"/team/33/user/11\");\n * \n * // Navigate without updating the URL\n * router.navigateByUrl(\"/team/33/user/11\", { skipLocationChange: true });\n * ```\n * \n * In opposite to `navigate`, `navigateByUrl` takes a whole URL\n * and does not apply any delta to the current one.\n * @param {?} url\n * @param {?=} extras\n * @return {?}\n */\nnavigateByUrl(url: string|UrlTree, extras: NavigationExtras = {skipLocationChange: false}):\n Promise<boolean> {\n if (url instanceof UrlTree) {\n return this.scheduleNavigation(\n this.urlHandlingStrategy.merge(url, this.rawUrlTree), 'imperative', extras);\n }\n\n const /** @type {?} */ urlTree = this.urlSerializer.parse(url);\n return this.scheduleNavigation(\n this.urlHandlingStrategy.merge(urlTree, this.rawUrlTree), 'imperative', extras);\n }\n/**\n * Navigate based on the provided array of commands and a starting point.\n * If no starting route is provided, the navigation is absolute.\n * \n * Returns a promise that:\n * - resolves to 'true' when navigation succeeds,\n * - resolves to 'false' when navigation fails,\n * - is rejected when an error happens.\n * \n * ### Usage\n * \n * ```\n * router.navigate(['team', 33, 'user', 11], {relativeTo: route});\n * \n * // Navigate without updating the URL\n * router.navigate(['team', 33, 'user', 11], {relativeTo: route, skipLocationChange: true});\n * ```\n * \n * In opposite to `navigateByUrl`, `navigate` always takes a delta that is applied to the current\n * URL.\n * @param {?} commands\n * @param {?=} extras\n * @return {?}\n */\nnavigate(commands: any[], extras: NavigationExtras = {skipLocationChange: false}):\n Promise<boolean> {\n validateCommands(commands);\n if (typeof extras.queryParams === 'object' && extras.queryParams !== null) {\n extras.queryParams = this.removeEmptyProps(extras.queryParams);\n }\n return this.navigateByUrl(this.createUrlTree(commands, extras), extras);\n }\n/**\n * Serializes a {\\@link UrlTree} into a string\n * @param {?} url\n * @return {?}\n */\nserializeUrl(url: UrlTree): string { return this.urlSerializer.serialize(url); }\n/**\n * Parses a string into a {\\@link UrlTree}\n * @param {?} url\n * @return {?}\n */\nparseUrl(url: string): UrlTree { return this.urlSerializer.parse(url); }\n/**\n * Returns whether the url is activated\n * @param {?} url\n * @param {?} exact\n * @return {?}\n */\nisActive(url: string|UrlTree, exact: boolean): boolean {\n if (url instanceof UrlTree) {\n return containsTree(this.currentUrlTree, url, exact);\n } else {\n const /** @type {?} */ urlTree = this.urlSerializer.parse(url);\n return containsTree(this.currentUrlTree, urlTree, exact);\n }\n }\n/**\n * @param {?} params\n * @return {?}\n */\nprivate removeEmptyProps(params: Params): Params {\n return Object.keys(params).reduce((result: Params, key: string) => {\n const /** @type {?} */ value: any = params[key];\n if (value !== null && value !== undefined) {\n result[key] = value;\n }\n return result;\n }, {});\n }\n/**\n * @return {?}\n */\nprivate processNavigations(): void {\n concatMap\n .call(\n this.navigations,\n (nav: NavigationParams) => {\n if (nav) {\n this.executeScheduledNavigation(nav);\n // a failed navigation should not stop the router from processing\n // further navigations => the catch\n return nav.promise.catch(() => {});\n } else {\n return /** @type {?} */(( <any>of (null)));\n }\n })\n .subscribe(() => {});\n }\n/**\n * @param {?} rawUrl\n * @param {?} source\n * @param {?} extras\n * @return {?}\n */\nprivate scheduleNavigation(rawUrl: UrlTree, source: NavigationSource, extras: NavigationExtras):\n Promise<boolean> {\n const /** @type {?} */ lastNavigation = this.navigations.value;\n\n // If the user triggers a navigation imperatively (e.g., by using navigateByUrl),\n // and that navigation results in 'replaceState' that leads to the same URL,\n // we should skip those.\n if (lastNavigation && source !== 'imperative' && lastNavigation.source === 'imperative' &&\n lastNavigation.rawUrl.toString() === rawUrl.toString()) {\n return null; // return value is not used\n }\n\n // Because of a bug in IE and Edge, the location class fires two events (popstate and\n // hashchange)\n // every single time. The second one should be ignored. Otherwise, the URL will flicker.\n if (lastNavigation && source == 'hashchange' && lastNavigation.source === 'popstate' &&\n lastNavigation.rawUrl.toString() === rawUrl.toString()) {\n return null; // return value is not used\n }\n\n let /** @type {?} */ resolve: any = null;\n let /** @type {?} */ reject: any = null;\n\n const /** @type {?} */ promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n const /** @type {?} */ id = ++this.navigationId;\n this.navigations.next({id, source, rawUrl, extras, resolve, reject, promise});\n\n // Make sure that the error is propagated even though `processNavigations` catch\n // handler does not rethrow\n return promise.catch((e: any) => Promise.reject(e));\n }\n/**\n * @param {?} __0\n * @return {?}\n */\nprivate executeScheduledNavigation({id, rawUrl, extras, resolve, reject}: NavigationParams):\n void {\n const /** @type {?} */ url = this.urlHandlingStrategy.extract(rawUrl);\n const /** @type {?} */ urlTransition = !this.navigated || url.toString() !== this.currentUrlTree.toString();\n\n if (urlTransition && this.urlHandlingStrategy.shouldProcessUrl(rawUrl)) {\n this.routerEvents.next(new NavigationStart(id, this.serializeUrl(url)));\n Promise.resolve()\n .then(\n (_) => this.runNavigate(\n url, rawUrl, extras.skipLocationChange, extras.replaceUrl, id, null))\n .then(resolve, reject);\n\n // we cannot process the current URL, but we could process the previous one =>\n // we need to do some cleanup\n } else if (\n urlTransition && this.rawUrlTree &&\n this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)) {\n this.routerEvents.next(new NavigationStart(id, this.serializeUrl(url)));\n Promise.resolve()\n .then(\n (_) => this.runNavigate(\n url, rawUrl, false, false, id,\n createEmptyState(url, this.rootComponentType).snapshot))\n .then(resolve, reject);\n\n } else {\n this.rawUrlTree = rawUrl;\n resolve(null);\n }\n }\n/**\n * @param {?} url\n * @param {?} rawUrl\n * @param {?} shouldPreventPushState\n * @param {?} shouldReplaceUrl\n * @param {?} id\n * @param {?} precreatedState\n * @return {?}\n */\nprivate runNavigate(\n url: UrlTree, rawUrl: UrlTree, shouldPreventPushState: boolean, shouldReplaceUrl: boolean,\n id: number, precreatedState: RouterStateSnapshot): Promise<boolean> {\n if (id !== this.navigationId) {\n this.location.go(this.urlSerializer.serialize(this.currentUrlTree));\n this.routerEvents.next(new NavigationCancel(\n id, this.serializeUrl(url),\n `Navigation ID ${id} is not equal to the current navigation id ${this.navigationId}`));\n return Promise.resolve(false);\n }\n\n return new Promise((resolvePromise, rejectPromise) => {\n // create an observable of the url and route state snapshot\n // this operation do not result in any side effects\n let /** @type {?} */ urlAndSnapshot$: Observable<{appliedUrl: UrlTree, snapshot: RouterStateSnapshot}>;\n if (!precreatedState) {\n const /** @type {?} */ redirectsApplied$ =\n applyRedirects(this.injector, this.configLoader, this.urlSerializer, url, this.config);\n\n urlAndSnapshot$ = mergeMap.call(redirectsApplied$, (appliedUrl: UrlTree) => {\n return map.call(\n recognize(\n this.rootComponentType, this.config, appliedUrl, this.serializeUrl(appliedUrl)),\n (snapshot: any) => {\n\n this.routerEvents.next(new RoutesRecognized(\n id, this.serializeUrl(url), this.serializeUrl(appliedUrl), snapshot));\n\n return {appliedUrl, snapshot};\n });\n });\n } else {\n urlAndSnapshot$ = of ({appliedUrl: url, snapshot: precreatedState});\n }\n\n\n // run preactivation: guards and data resolvers\n let /** @type {?} */ preActivation: PreActivation;\n const /** @type {?} */ preactivationTraverse$ = map.call(urlAndSnapshot$, ({appliedUrl, snapshot}: any) => {\n preActivation =\n new PreActivation(snapshot, this.currentRouterState.snapshot, this.injector);\n preActivation.traverse(this.outletMap);\n return {appliedUrl, snapshot};\n });\n\n const /** @type {?} */ preactivationCheckGuards =\n mergeMap.call(preactivationTraverse$, ({appliedUrl, snapshot}: any) => {\n if (this.navigationId !== id) return of (false);\n\n return map.call(preActivation.checkGuards(), (shouldActivate: boolean) => {\n return {appliedUrl: appliedUrl, snapshot: snapshot, shouldActivate: shouldActivate};\n });\n });\n\n const /** @type {?} */ preactivationResolveData$ = mergeMap.call(preactivationCheckGuards, (p: any) => {\n if (this.navigationId !== id) return of (false);\n\n if (p.shouldActivate) {\n return map.call(preActivation.resolveData(), () => p);\n } else {\n return of (p);\n }\n });\n\n\n // create router state\n // this operation has side effects => route state is being affected\n const /** @type {?} */ routerState$ =\n map.call(preactivationResolveData$, ({appliedUrl, snapshot, shouldActivate}: any) => {\n if (shouldActivate) {\n const /** @type {?} */ state =\n createRouterState(this.routeReuseStrategy, snapshot, this.currentRouterState);\n return {appliedUrl, state, shouldActivate};\n } else {\n return {appliedUrl, state: null, shouldActivate};\n }\n });\n\n\n // applied the new router state\n // this operation has side effects\n let /** @type {?} */ navigationIsSuccessful: boolean;\n const /** @type {?} */ storedState = this.currentRouterState;\n const /** @type {?} */ storedUrl = this.currentUrlTree;\n\n routerState$\n .forEach(({appliedUrl, state, shouldActivate}: any) => {\n if (!shouldActivate || id !== this.navigationId) {\n navigationIsSuccessful = false;\n return;\n }\n\n this.currentUrlTree = appliedUrl;\n this.rawUrlTree = this.urlHandlingStrategy.merge(this.currentUrlTree, rawUrl);\n\n this.currentRouterState = state;\n\n if (!shouldPreventPushState) {\n const /** @type {?} */ path = this.urlSerializer.serialize(this.rawUrlTree);\n if (this.location.isCurrentPathEqualTo(path) || shouldReplaceUrl) {\n this.location.replaceState(path);\n } else {\n this.location.go(path);\n }\n }\n\n new ActivateRoutes(this.routeReuseStrategy, state, storedState)\n .activate(this.outletMap);\n\n navigationIsSuccessful = true;\n })\n .then(\n () => {\n if (navigationIsSuccessful) {\n this.navigated = true;\n this.routerEvents.next(new NavigationEnd(\n id, this.serializeUrl(url), this.serializeUrl(this.currentUrlTree)));\n resolvePromise(true);\n } else {\n this.resetUrlToCurrentUrlTree();\n this.routerEvents.next(new NavigationCancel(id, this.serializeUrl(url), ''));\n resolvePromise(false);\n }\n },\n (e: any) => {\n if (e instanceof NavigationCancelingError) {\n this.resetUrlToCurrentUrlTree();\n this.navigated = true;\n this.routerEvents.next(\n new NavigationCancel(id, this.serializeUrl(url), e.message));\n resolvePromise(false);\n } else {\n this.routerEvents.next(new NavigationError(id, this.serializeUrl(url), e));\n try {\n resolvePromise(this.errorHandler(e));\n } catch ( /** @type {?} */ee) {\n rejectPromise(ee);\n }\n }\n\n this.currentRouterState = storedState;\n this.currentUrlTree = storedUrl;\n this.rawUrlTree = this.urlHandlingStrategy.merge(this.currentUrlTree, rawUrl);\n this.location.replaceState(this.serializeUrl(this.rawUrlTree));\n });\n });\n }\n/**\n * @return {?}\n */\nprivate resetUrlToCurrentUrlTree(): void {\n const /** @type {?} */ path = this.urlSerializer.serialize(this.rawUrlTree);\n this.location.replaceState(path);\n }\n}\n\nfunction Router_tsickle_Closure_declarations() {\n/** @type {?} */\nRouter.prototype.currentUrlTree;\n/** @type {?} */\nRouter.prototype.rawUrlTree;\n/** @type {?} */\nRouter.prototype.navigations;\n/** @type {?} */\nRouter.prototype.routerEvents;\n/** @type {?} */\nRouter.prototype.currentRouterState;\n/** @type {?} */\nRouter.prototype.locationSubscription;\n/** @type {?} */\nRouter.prototype.navigationId;\n/** @type {?} */\nRouter.prototype.configLoader;\n/**\n * Error handler that is invoked when a navigation errors.\n * \n * See {\\@link ErrorHandler} for more information.\n * @type {?}\n */\nRouter.prototype.errorHandler;\n/**\n * Indicates if at least one navigation happened.\n * @type {?}\n */\nRouter.prototype.navigated;\n/**\n * Extracts and merges URLs. Used for Angular 1 to Angular 2 migrations.\n * @type {?}\n */\nRouter.prototype.urlHandlingStrategy;\n/** @type {?} */\nRouter.prototype.routeReuseStrategy;\n/** @type {?} */\nRouter.prototype.rootComponentType;\n/** @type {?} */\nRouter.prototype.urlSerializer;\n/** @type {?} */\nRouter.prototype.outletMap;\n/** @type {?} */\nRouter.prototype.location;\n/** @type {?} */\nRouter.prototype.injector;\n/** @type {?} */\nRouter.prototype.config;\n}\n\nclass CanActivate {\n/**\n * @param {?} path\n */\nconstructor(public path: ActivatedRouteSnapshot[]) {}\n/**\n * @return {?}\n */\nget route(): ActivatedRouteSnapshot { return this.path[this.path.length - 1]; }\n}\n\nfunction CanActivate_tsickle_Closure_declarations() {\n/** @type {?} */\nCanActivate.prototype.path;\n}\n\nclass CanDeactivate {\n/**\n * @param {?} component\n * @param {?} route\n */\nconstructor(public component: Object,\npublic route: ActivatedRouteSnapshot) {}\n}\n\nfunction CanDeactivate_tsickle_Closure_declarations() {\n/** @type {?} */\nCanDeactivate.prototype.component;\n/** @type {?} */\nCanDeactivate.prototype.route;\n}\n\nexport class PreActivation {\nprivate checks: Array<CanActivate|CanDeactivate> = [];\n/**\n * @param {?} future\n * @param {?} curr\n * @param {?} injector\n */\nconstructor(\nprivate future: RouterStateSnapshot,\nprivate curr: RouterStateSnapshot,\nprivate injector: Injector) {}\n/**\n * @param {?} parentOutletMap\n * @return {?}\n */\ntraverse(parentOutletMap: RouterOutletMap): void {\n const /** @type {?} */ futureRoot = this.future._root;\n const /** @type {?} */ currRoot = this.curr ? this.curr._root : null;\n this.traverseChildRoutes(futureRoot, currRoot, parentOutletMap, [futureRoot.value]);\n }\n/**\n * @return {?}\n */\ncheckGuards(): Observable<boolean> {\n if (this.checks.length === 0) return of (true);\n const /** @type {?} */ checks$ = from(this.checks);\n const /** @type {?} */ runningChecks$ = mergeMap.call(checks$, (s: any) => {\n if (s instanceof CanActivate) {\n return andObservables(\n from([this.runCanActivateChild(s.path), this.runCanActivate(s.route)]));\n } else if (s instanceof CanDeactivate) {\n // workaround https://github.com/Microsoft/TypeScript/issues/7271\n const /** @type {?} */ s2 = /** @type {?} */(( s as CanDeactivate));\n return this.runCanDeactivate(s2.component, s2.route);\n } else {\n throw new Error('Cannot be reached');\n }\n });\n return every.call(runningChecks$, (result: any) => result === true);\n }\n/**\n * @return {?}\n */\nresolveData(): Observable<any> {\n if (this.checks.length === 0) return of (null);\n const /** @type {?} */ checks$ = from(this.checks);\n const /** @type {?} */ runningChecks$ = concatMap.call(checks$, (s: any) => {\n if (s instanceof CanActivate) {\n return this.runResolve(s.route);\n } else {\n return of (null);\n }\n });\n return reduce.call(runningChecks$, (_: any, __: any) => _);\n }\n/**\n * @param {?} futureNode\n * @param {?} currNode\n * @param {?} outletMap\n * @param {?} futurePath\n * @return {?}\n */\nprivate traverseChildRoutes(\n futureNode: TreeNode<ActivatedRouteSnapshot>, currNode: TreeNode<ActivatedRouteSnapshot>,\n outletMap: RouterOutletMap, futurePath: ActivatedRouteSnapshot[]): void {\n const /** @type {?} */ prevChildren: {[key: string]: any} = nodeChildrenAsMap(currNode);\n\n futureNode.children.forEach(c => {\n this.traverseRoutes(c, prevChildren[c.value.outlet], outletMap, futurePath.concat([c.value]));\n delete prevChildren[c.value.outlet];\n });\n forEach(\n prevChildren,\n (v: any, k: string) => this.deactiveRouteAndItsChildren(v, outletMap._outlets[k]));\n }\n/**\n * @param {?} futureNode\n * @param {?} currNode\n * @param {?} parentOutletMap\n * @param {?} futurePath\n * @return {?}\n */\ntraverseRoutes(\n futureNode: TreeNode<ActivatedRouteSnapshot>, currNode: TreeNode<ActivatedRouteSnapshot>,\n parentOutletMap: RouterOutletMap, futurePath: ActivatedRouteSnapshot[]): void {\n const /** @type {?} */ future = futureNode.value;\n const /** @type {?} */ curr = currNode ? currNode.value : null;\n const /** @type {?} */ outlet = parentOutletMap ? parentOutletMap._outlets[futureNode.value.outlet] : null;\n\n // reusing the node\n if (curr && future._routeConfig === curr._routeConfig) {\n if (!equalParamsAndUrlSegments(future, curr)) {\n this.checks.push(new CanDeactivate(outlet.component, curr), new CanActivate(futurePath));\n } else {\n // we need to set the data\n future.data = curr.data;\n future._resolvedData = curr._resolvedData;\n }\n\n // If we have a component, we need to go through an outlet.\n if (future.component) {\n this.traverseChildRoutes(\n futureNode, currNode, outlet ? outlet.outletMap : null, futurePath);\n\n // if we have a componentless route, we recurse but keep the same outlet map.\n } else {\n this.traverseChildRoutes(futureNode, currNode, parentOutletMap, futurePath);\n }\n } else {\n if (curr) {\n this.deactiveRouteAndItsChildren(currNode, outlet);\n }\n\n this.checks.push(new CanActivate(futurePath));\n // If we have a component, we need to go through an outlet.\n if (future.component) {\n this.traverseChildRoutes(futureNode, null, outlet ? outlet.outletMap : null, futurePath);\n\n // if we have a componentless route, we recurse but keep the same outlet map.\n } else {\n this.traverseChildRoutes(futureNode, null, parentOutletMap, futurePath);\n }\n }\n }\n/**\n * @param {?} route\n * @param {?} outlet\n * @return {?}\n */\nprivate deactiveRouteAndItsChildren(\n route: TreeNode<ActivatedRouteSnapshot>, outlet: RouterOutlet): void {\n const /** @type {?} */ prevChildren: {[key: string]: any} = nodeChildrenAsMap(route);\n const /** @type {?} */ r = route.value;\n\n forEach(prevChildren, (v: any, k: string) => {\n if (!r.component) {\n this.deactiveRouteAndItsChildren(v, outlet);\n } else if (!!outlet) {\n this.deactiveRouteAndItsChildren(v, outlet.outletMap._outlets[k]);\n } else {\n this.deactiveRouteAndItsChildren(v, null);\n }\n });\n\n if (!r.component) {\n this.checks.push(new CanDeactivate(null, r));\n } else if (outlet && outlet.isActivated) {\n this.checks.push(new CanDeactivate(outlet.component, r));\n } else {\n this.checks.push(new CanDeactivate(null, r));\n }\n }\n/**\n * @param {?} future\n * @return {?}\n */\nprivate runCanActivate(future: ActivatedRouteSnapshot): Observable<boolean> {\n const /** @type {?} */ canActivate = future._routeConfig ? future._routeConfig.canActivate : null;\n if (!canActivate || canActivate.length === 0) return of (true);\n const /** @type {?} */ obs = map.call(from(canActivate), (c: any) => {\n const /** @type {?} */ guard = this.getToken(c, future);\n let /** @type {?} */ observable: Observable<boolean>;\n if (guard.canActivate) {\n observable = wrapIntoObservable(guard.canActivate(future, this.future));\n } else {\n observable = wrapIntoObservable(guard(future, this.future));\n }\n return first.call(observable);\n });\n return andObservables(obs);\n }\n/**\n * @param {?} path\n * @return {?}\n */\nprivate runCanActivateChild(path: ActivatedRouteSnapshot[]): Observable<boolean> {\n const /** @type {?} */ future = path[path.length - 1];\n\n const /** @type {?} */ canActivateChildGuards = path.slice(0, path.length - 1)\n .reverse()\n .map(p => this.extractCanActivateChild(p))\n .filter(_ => _ !== null);\n\n return andObservables(map.call(from(canActivateChildGuards), (d: any) => {\n const /** @type {?} */ obs = map.call(from(d.guards), (c: any) => {\n const /** @type {?} */ guard = this.getToken(c, d.node);\n let /** @type {?} */ observable: Observable<boolean>;\n if (guard.canActivateChild) {\n observable = wrapIntoObservable(guard.canActivateChild(future, this.future));\n } else {\n observable = wrapIntoObservable(guard(future, this.future));\n }\n return first.call(observable);\n });\n return andObservables(obs);\n }));\n }\n/**\n * @param {?} p\n * @return {?}\n */\nprivate extractCanActivateChild(p: ActivatedRouteSnapshot):\n {node: ActivatedRouteSnapshot, guards: any[]} {\n const /** @type {?} */ canActivateChild = p._routeConfig ? p._routeConfig.canActivateChild : null;\n if (!canActivateChild || canActivateChild.length === 0) return null;\n return {node: p, guards: canActivateChild};\n }\n/**\n * @param {?} component\n * @param {?} curr\n * @return {?}\n */\nprivate runCanDeactivate(component: Object, curr: ActivatedRouteSnapshot): Observable<boolean> {\n const /** @type {?} */ canDeactivate = curr && curr._routeConfig ? curr._routeConfig.canDeactivate : null;\n if (!canDeactivate || canDeactivate.length === 0) return of (true);\n const /** @type {?} */ canDeactivate$ = mergeMap.call(from(canDeactivate), (c: any) => {\n const /** @type {?} */ guard = this.getToken(c, curr);\n let /** @type {?} */ observable: Observable<boolean>;\n if (guard.canDeactivate) {\n observable = wrapIntoObservable(guard.canDeactivate(component, curr, this.curr));\n } else {\n observable = wrapIntoObservable(guard(component, curr, this.curr));\n }\n return first.call(observable);\n });\n return every.call(canDeactivate$, (result: any) => result === true);\n }\n/**\n * @param {?} future\n * @return {?}\n */\nprivate runResolve(future: ActivatedRouteSnapshot): Observable<any> {\n const /** @type {?} */ resolve = future._resolve;\n return map.call(this.resolveNode(resolve, future), (resolvedData: any): any => {\n future._resolvedData = resolvedData;\n future.data = merge(future.data, inheritedParamsDataResolve(future).resolve);\n return null;\n });\n }\n/**\n * @param {?} resolve\n * @param {?} future\n * @return {?}\n */\nprivate resolveNode(resolve: ResolveData, future: ActivatedRouteSnapshot): Observable<any> {\n return waitForMap(resolve, (k, v) => {\n const /** @type {?} */ resolver = this.getToken(v, future);\n return resolver.resolve ? wrapIntoObservable(resolver.resolve(future, this.future)) :\n wrapIntoObservable(resolver(future, this.future));\n });\n }\n/**\n * @param {?} token\n * @param {?} snapshot\n * @return {?}\n */\nprivate getToken(token: any, snapshot: ActivatedRouteSnapshot): any {\n const /** @type {?} */ config = closestLoadedConfig(snapshot);\n const /** @type {?} */ injector = config ? config.injector : this.injector;\n return injector.get(token);\n }\n}\n\nfunction PreActivation_tsickle_Closure_declarations() {\n/** @type {?} */\nPreActivation.prototype.checks;\n/** @type {?} */\nPreActivation.prototype.future;\n/** @type {?} */\nPreActivation.prototype.curr;\n/** @type {?} */\nPreActivation.prototype.injector;\n}\n\nclass ActivateRoutes {\n/**\n * @param {?} routeReuseStrategy\n * @param {?} futureState\n * @param {?} currState\n */\nconstructor(\nprivate routeReuseStrategy: RouteReuseStrategy,\nprivate futureState: RouterState,\nprivate currState: RouterState) {}\n/**\n * @param {?} parentOutletMap\n * @return {?}\n */\nactivate(parentOutletMap: RouterOutletMap): void {\n const /** @type {?} */ futureRoot = this.futureState._root;\n const /** @type {?} */ currRoot = this.currState ? this.currState._root : null;\n\n this.deactivateChildRoutes(futureRoot, currRoot, parentOutletMap);\n advanceActivatedRoute(this.futureState.root);\n this.activateChildRoutes(futureRoot, currRoot, parentOutletMap);\n }\n/**\n * @param {?} futureNode\n * @param {?} currNode\n * @param {?} outletMap\n * @return {?}\n */\nprivate deactivateChildRoutes(\n futureNode: TreeNode<ActivatedRoute>, currNode: TreeNode<ActivatedRoute>,\n outletMap: RouterOutletMap): void {\n const /** @type {?} */ prevChildren: {[key: string]: any} = nodeChildrenAsMap(currNode);\n futureNode.children.forEach(c => {\n this.deactivateRoutes(c, prevChildren[c.value.outlet], outletMap);\n delete prevChildren[c.value.outlet];\n });\n forEach(prevChildren, (v: any, k: string) => this.deactiveRouteAndItsChildren(v, outletMap));\n }\n/**\n * @param {?} futureNode\n * @param {?} currNode\n * @param {?} outletMap\n * @return {?}\n */\nprivate activateChildRoutes(\n futureNode: TreeNode<ActivatedRoute>, currNode: TreeNode<ActivatedRoute>,\n outletMap: RouterOutletMap): void {\n const /** @type {?} */ prevChildren: {[key: string]: any} = nodeChildrenAsMap(currNode);\n futureNode.children.forEach(\n c => { this.activateRoutes(c, prevChildren[c.value.outlet], outletMap); });\n }\n/**\n * @param {?} futureNode\n * @param {?} currNode\n * @param {?} parentOutletMap\n * @return {?}\n */\ndeactivateRoutes(\n futureNode: TreeNode<ActivatedRoute>, currNode: TreeNode<ActivatedRoute>,\n parentOutletMap: RouterOutletMap): void {\n const /** @type {?} */ future = futureNode.value;\n const /** @type {?} */ curr = currNode ? currNode.value : null;\n\n // reusing the node\n if (future === curr) {\n // If we have a normal route, we need to go through an outlet.\n if (future.component) {\n const /** @type {?} */ outlet = getOutlet(parentOutletMap, future);\n this.deactivateChildRoutes(futureNode, currNode, outlet.outletMap);\n\n // if we have a componentless route, we recurse but keep the same outlet map.\n } else {\n this.deactivateChildRoutes(futureNode, currNode, parentOutletMap);\n }\n } else {\n if (curr) {\n this.deactiveRouteAndItsChildren(currNode, parentOutletMap);\n }\n }\n }\n/**\n * @param {?} futureNode\n * @param {?} currNode\n * @param {?} parentOutletMap\n * @return {?}\n */\nactivateRoutes(\n futureNode: TreeNode<ActivatedRoute>, currNode: TreeNode<ActivatedRoute>,\n parentOutletMap: RouterOutletMap): void {\n const /** @type {?} */ future = futureNode.value;\n const /** @type {?} */ curr = currNode ? currNode.value : null;\n\n // reusing the node\n if (future === curr) {\n // advance the route to push the parameters\n advanceActivatedRoute(future);\n\n // If we have a normal route, we need to go through an outlet.\n if (future.component) {\n const /** @type {?} */ outlet = getOutlet(parentOutletMap, future);\n this.activateChildRoutes(futureNode, currNode, outlet.outletMap);\n\n // if we have a componentless route, we recurse but keep the same outlet map.\n } else {\n this.activateChildRoutes(futureNode, currNode, parentOutletMap);\n }\n } else {\n // if we have a normal route, we need to advance the route\n // and place the component into the outlet. After that recurse.\n if (future.component) {\n advanceActivatedRoute(future);\n const /** @type {?} */ outlet = getOutlet(parentOutletMap, futureNode.value);\n\n if (this.routeReuseStrategy.shouldAttach(future.snapshot)) {\n const /** @type {?} */ stored =\n ( /** @type {?} */((<DetachedRouteHandleInternal>this.routeReuseStrategy.retrieve(future.snapshot))));\n this.routeReuseStrategy.store(future.snapshot, null);\n outlet.attach(stored.componentRef, stored.route.value);\n advanceActivatedRouteNodeAndItsChildren(stored.route);\n } else {\n const /** @type {?} */ outletMap = new RouterOutletMap();\n this.placeComponentIntoOutlet(outletMap, future, outlet);\n this.activateChildRoutes(futureNode, null, outletMap);\n }\n\n // if we have a componentless route, we recurse but keep the same outlet map.\n } else {\n advanceActivatedRoute(future);\n this.activateChildRoutes(futureNode, null, parentOutletMap);\n }\n }\n }\n/**\n * @param {?} outletMap\n * @param {?} future\n * @param {?} outlet\n * @return {?}\n */\nprivate placeComponentIntoOutlet(\n outletMap: RouterOutletMap, future: ActivatedRoute, outlet: RouterOutlet): void {\n const /** @type {?} */ resolved = /** @type {?} */(( <any[]>[{provide: ActivatedRoute, useValue: future}, {\n provide: RouterOutletMap,\n useValue: outletMap\n }]));\n\n const /** @type {?} */ config = parentLoadedConfig(future.snapshot);\n\n let /** @type {?} */ resolver: ComponentFactoryResolver = null;\n let /** @type {?} */ injector: Injector = null;\n\n if (config) {\n injector = config.injectorFactory(outlet.locationInjector);\n resolver = config.factoryResolver;\n resolved.push({provide: ComponentFactoryResolver, useValue: resolver});\n } else {\n injector = outlet.locationInjector;\n resolver = outlet.locationFactoryResolver;\n }\n\n outlet.activate(future, resolver, injector, ReflectiveInjector.resolve(resolved), outletMap);\n }\n/**\n * @param {?} route\n * @param {?} parentOutletMap\n * @return {?}\n */\nprivate deactiveRouteAndItsChildren(\n route: TreeNode<ActivatedRoute>, parentOutletMap: RouterOutletMap): void {\n if (this.routeReuseStrategy.shouldDetach(route.value.snapshot)) {\n this.detachAndStoreRouteSubtree(route, parentOutletMap);\n } else {\n this.deactiveRouteAndOutlet(route, parentOutletMap);\n }\n }\n/**\n * @param {?} route\n * @param {?} parentOutletMap\n * @return {?}\n */\nprivate detachAndStoreRouteSubtree(\n route: TreeNode<ActivatedRoute>, parentOutletMap: RouterOutletMap): void {\n const /** @type {?} */ outlet = getOutlet(parentOutletMap, route.value);\n const /** @type {?} */ componentRef = outlet.detach();\n this.routeReuseStrategy.store(route.value.snapshot, {componentRef, route});\n }\n/**\n * @param {?} route\n * @param {?} parentOutletMap\n * @return {?}\n */\nprivate deactiveRouteAndOutlet(route: TreeNode<ActivatedRoute>, parentOutletMap: RouterOutletMap):\n void {\n const /** @type {?} */ prevChildren: {[key: string]: any} = nodeChildrenAsMap(route);\n let /** @type {?} */ outlet: RouterOutlet = null;\n\n // getOutlet throws when cannot find the right outlet,\n // which can happen if an outlet was in an NgIf and was removed\n try {\n outlet = getOutlet(parentOutletMap, route.value);\n } catch ( /** @type {?} */e) {\n return;\n }\n const /** @type {?} */ childOutletMap = outlet.outletMap;\n\n forEach(prevChildren, (v: any, k: string) => {\n if (route.value.component) {\n this.deactiveRouteAndItsChildren(v, childOutletMap);\n } else {\n this.deactiveRouteAndItsChildren(v, parentOutletMap);\n }\n });\n\n if (outlet && outlet.isActivated) {\n outlet.deactivate();\n }\n }\n}\n\nfunction ActivateRoutes_tsickle_Closure_declarations() {\n/** @type {?} */\nActivateRoutes.prototype.routeReuseStrategy;\n/** @type {?} */\nActivateRoutes.prototype.futureState;\n/** @type {?} */\nActivateRoutes.prototype.currState;\n}\n\n/**\n * @param {?} node\n * @return {?}\n */\nfunction advanceActivatedRouteNodeAndItsChildren(node: TreeNode<ActivatedRoute>): void {\n advanceActivatedRoute(node.value);\n node.children.forEach(advanceActivatedRouteNodeAndItsChildren);\n}\n/**\n * @param {?} snapshot\n * @return {?}\n */\nfunction parentLoadedConfig(snapshot: ActivatedRouteSnapshot): LoadedRouterConfig {\n let /** @type {?} */ s = snapshot.parent;\n while (s) {\n const /** @type {?} */ c: any = s._routeConfig;\n if (c && c._loadedConfig) return c._loadedConfig;\n if (c && c.component) return null;\n s = s.parent;\n }\n return null;\n}\n/**\n * @param {?} snapshot\n * @return {?}\n */\nfunction closestLoadedConfig(snapshot: ActivatedRouteSnapshot): LoadedRouterConfig {\n if (!snapshot) return null;\n\n let /** @type {?} */ s = snapshot.parent;\n while (s) {\n const /** @type {?} */ c: any = s._routeConfig;\n if (c && c._loadedConfig) return c._loadedConfig;\n s = s.parent;\n }\n return null;\n}\n/**\n * @param {?} node\n * @return {?}\n */\nfunction nodeChildrenAsMap(node: TreeNode<any>) {\n return node ? node.children.reduce((m: any, c: TreeNode<any>) => {\n m[c.value.outlet] = c;\n return m;\n }, {}) : {};\n}\n/**\n * @param {?} outletMap\n * @param {?} route\n * @return {?}\n */\nfunction getOutlet(outletMap: RouterOutletMap, route: ActivatedRoute): RouterOutlet {\n const /** @type {?} */ outlet = outletMap._outlets[route.outlet];\n if (!outlet) {\n const /** @type {?} */ componentName = ( /** @type {?} */((<any>route.component))).name;\n if (route.outlet === PRIMARY_OUTLET) {\n throw new Error(`Cannot find primary outlet to load '${componentName}'`);\n } else {\n throw new Error(`Cannot find the outlet ${route.outlet} to load '${componentName}'`);\n }\n }\n return outlet;\n}\n/**\n * @param {?} commands\n * @return {?}\n */\nfunction validateCommands(commands: string[]): void {\n for (let /** @type {?} */ i = 0; i < commands.length; i++) {\n const /** @type {?} */ cmd = commands[i];\n if (cmd == null) {\n throw new Error(`The requested path contains ${cmd} segment at index ${i}`);\n }\n }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../../modules/@angular/router/src/router.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Location} from '@angular/common';\nimport {Compiler, ComponentFactoryResolver, Injector, NgModuleFactoryLoader, ReflectiveInjector, Type} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs/BehaviorSubject';\nimport {Observable} from 'rxjs/Observable';\nimport {Subject} from 'rxjs/Subject';\nimport {Subscription} from 'rxjs/Subscription';\nimport {from} from 'rxjs/observable/from';\nimport {of } from 'rxjs/observable/of';\nimport {concatMap} from 'rxjs/operator/concatMap';\nimport {every} from 'rxjs/operator/every';\nimport {first} from 'rxjs/operator/first';\nimport {map} from 'rxjs/operator/map';\nimport {mergeMap} from 'rxjs/operator/mergeMap';\nimport {reduce} from 'rxjs/operator/reduce';\n\nimport {applyRedirects} from './apply_redirects';\nimport {ResolveData, Routes, validateConfig} from './config';\nimport {createRouterState} from './create_router_state';\nimport {createUrlTree} from './create_url_tree';\nimport {RouterOutlet} from './directives/router_outlet';\nimport {recognize} from './recognize';\nimport {DetachedRouteHandle, DetachedRouteHandleInternal, RouteReuseStrategy} from './route_reuse_strategy';\nimport {LoadedRouterConfig, RouterConfigLoader} from './router_config_loader';\nimport {RouterOutletMap} from './router_outlet_map';\nimport {ActivatedRoute, ActivatedRouteSnapshot, RouterState, RouterStateSnapshot, advanceActivatedRoute, createEmptyState, equalParamsAndUrlSegments, inheritedParamsDataResolve} from './router_state';\nimport {NavigationCancelingError, PRIMARY_OUTLET, Params} from './shared';\nimport {DefaultUrlHandlingStrategy, UrlHandlingStrategy} from './url_handling_strategy';\nimport {UrlSerializer, UrlTree, containsTree, createEmptyUrlTree} from './url_tree';\nimport {andObservables, forEach, merge, waitForMap, wrapIntoObservable} from './utils/collection';\nimport {TreeNode} from './utils/tree';\n\ndeclare let Zone: any;\n\n/**\n * @whatItDoes Represents the extra options used during navigation.\n *\n * @stable\n */\nexport interface NavigationExtras {\n /**\n * Enables relative navigation from the current ActivatedRoute.\n *\n * Configuration:\n *\n * ```\n * [{\n * path: 'parent',\n * component: ParentComponent,\n * children: [{\n * path: 'list',\n * component: ListComponent\n * },{\n * path: 'child',\n * component: ChildComponent\n * }]\n * }]\n * ```\n *\n * Navigate to list route from child route:\n *\n * ```\n * @Component({...})\n * class ChildComponent {\n * constructor(private router: Router, private route: ActivatedRoute) {}\n *\n * go() {\n * this.router.navigate(['../list'], { relativeTo: this.route });\n * }\n * }\n * ```\n */\n relativeTo?: ActivatedRoute;\n\n /**\n * Sets query parameters to the URL.\n *\n * ```\n * // Navigate to /results?page=1\n * this.router.navigate(['/results'], { queryParams: { page: 1 } });\n * ```\n */\n queryParams?: Params;\n\n /**\n * Sets the hash fragment for the URL.\n *\n * ```\n * // Navigate to /results#top\n * this.router.navigate(['/results'], { fragment: 'top' });\n * ```\n */\n fragment?: string;\n\n /**\n * Preserves the query parameters for the next navigation.\n *\n * ```\n * // Preserve query params from /results?page=1 to /view?page=1\n * this.router.navigate(['/view'], { preserveQueryParams: true });\n * ```\n */\n preserveQueryParams?: boolean;\n /**\n * Preserves the fragment for the next navigation\n *\n * ```\n * // Preserve fragment from /results#top to /view#top\n * this.router.navigate(['/view'], { preserveFragment: true });\n * ```\n */\n preserveFragment?: boolean;\n /**\n * Navigates without pushing a new state into history.\n *\n * ```\n * // Navigate silently to /view\n * this.router.navigate(['/view'], { skipLocationChange: true });\n * ```\n */\n skipLocationChange?: boolean;\n /**\n * Navigates while replacing the current state in history.\n *\n * ```\n * // Navigate to /view\n * this.router.navigate(['/view'], { replaceUrl: true });\n * ```\n */\n replaceUrl?: boolean;\n}\n/**\n * \\@whatItDoes Represents an event triggered when a navigation starts.\n * \n * \\@stable\n */\nexport class NavigationStart {\n/**\n * @param {?} id\n * @param {?} url\n */\nconstructor(\npublic id: number,\npublic url: string) {}\n/**\n * \\@docsNotRequired\n * @return {?}\n */\ntoString(): string { return `NavigationStart(id: ${this.id}, url: '${this.url}')`; }\n}\n\nfunction NavigationStart_tsickle_Closure_declarations() {\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationStart.prototype.id;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationStart.prototype.url;\n}\n\n/**\n * \\@whatItDoes Represents an event triggered when a navigation ends successfully.\n * \n * \\@stable\n */\nexport class NavigationEnd {\n/**\n * @param {?} id\n * @param {?} url\n * @param {?} urlAfterRedirects\n */\nconstructor(\npublic id: number,\npublic url: string,\npublic urlAfterRedirects: string) {}\n/**\n * \\@docsNotRequired\n * @return {?}\n */\ntoString(): string {\n return `NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`;\n }\n}\n\nfunction NavigationEnd_tsickle_Closure_declarations() {\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationEnd.prototype.id;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationEnd.prototype.url;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationEnd.prototype.urlAfterRedirects;\n}\n\n/**\n * \\@whatItDoes Represents an event triggered when a navigation is canceled.\n * \n * \\@stable\n */\nexport class NavigationCancel {\n/**\n * @param {?} id\n * @param {?} url\n * @param {?} reason\n */\nconstructor(\npublic id: number,\npublic url: string,\npublic reason: string) {}\n/**\n * \\@docsNotRequired\n * @return {?}\n */\ntoString(): string { return `NavigationCancel(id: ${this.id}, url: '${this.url}')`; }\n}\n\nfunction NavigationCancel_tsickle_Closure_declarations() {\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationCancel.prototype.id;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationCancel.prototype.url;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationCancel.prototype.reason;\n}\n\n/**\n * \\@whatItDoes Represents an event triggered when a navigation fails due to an unexpected error.\n * \n * \\@stable\n */\nexport class NavigationError {\n/**\n * @param {?} id\n * @param {?} url\n * @param {?} error\n */\nconstructor(\npublic id: number,\npublic url: string,\npublic error: any) {}\n/**\n * \\@docsNotRequired\n * @return {?}\n */\ntoString(): string {\n return `NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`;\n }\n}\n\nfunction NavigationError_tsickle_Closure_declarations() {\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationError.prototype.id;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationError.prototype.url;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nNavigationError.prototype.error;\n}\n\n/**\n * \\@whatItDoes Represents an event triggered when routes are recognized.\n * \n * \\@stable\n */\nexport class RoutesRecognized {\n/**\n * @param {?} id\n * @param {?} url\n * @param {?} urlAfterRedirects\n * @param {?} state\n */\nconstructor(\npublic id: number,\npublic url: string,\npublic urlAfterRedirects: string,\npublic state: RouterStateSnapshot) {}\n/**\n * \\@docsNotRequired\n * @return {?}\n */\ntoString(): string {\n return `RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`;\n }\n}\n\nfunction RoutesRecognized_tsickle_Closure_declarations() {\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nRoutesRecognized.prototype.id;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nRoutesRecognized.prototype.url;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nRoutesRecognized.prototype.urlAfterRedirects;\n/**\n * \\@docsNotRequired\n * @type {?}\n */\nRoutesRecognized.prototype.state;\n}\n\n\n/**\n * @whatItDoes Represents a router event.\n *\n * Please see {@link NavigationStart}, {@link NavigationEnd}, {@link NavigationCancel}, {@link\n * NavigationError},\n * {@link RoutesRecognized} for more information.\n *\n * @stable\n */\nexport type Event =\n NavigationStart | NavigationEnd | NavigationCancel | NavigationError | RoutesRecognized;\n\n/**\n * @whatItDoes Error handler that is invoked when a navigation errors.\n *\n * @description\n * If the handler returns a value, the navigation promise will be resolved with this value.\n * If the handler throws an exception, the navigation promise will be rejected with\n * the exception.\n *\n * @stable\n */\nexport type ErrorHandler = (error: any) => any;\n/**\n * @param {?} error\n * @return {?}\n */\nfunction defaultErrorHandler(error: any): any {\n throw error;\n}\n\ntype NavigationSource = 'imperative' | 'popstate' | 'hashchange';\n\ntype NavigationParams = {\n id: number,\n rawUrl: UrlTree,\n extras: NavigationExtras,\n resolve: any,\n reject: any,\n promise: Promise<boolean>,\n source: NavigationSource,\n};\n\n\n/**\n * @internal\n */\nexport type RouterHook = (snapshot: RouterStateSnapshot) => Observable<void>;\n/**\n * \\@internal\n * @param {?} snapshot\n * @return {?}\n */\nfunction defaultRouterHook(snapshot: RouterStateSnapshot): Observable<void> {\n return of (null);\n}\n/**\n * Does not detach any subtrees. Reuses routes as long as their route config is the same.\n */\nexport class DefaultRouteReuseStrategy implements RouteReuseStrategy {\n/**\n * @param {?} route\n * @return {?}\n */\nshouldDetach(route: ActivatedRouteSnapshot): boolean { return false; }\n/**\n * @param {?} route\n * @param {?} detachedTree\n * @return {?}\n */\nstore(route: ActivatedRouteSnapshot, detachedTree: DetachedRouteHandle): void {}\n/**\n * @param {?} route\n * @return {?}\n */\nshouldAttach(route: ActivatedRouteSnapshot): boolean { return false; }\n/**\n * @param {?} route\n * @return {?}\n */\nretrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle { return null; }\n/**\n * @param {?} future\n * @param {?} curr\n * @return {?}\n */\nshouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\n return future.routeConfig === curr.routeConfig;\n }\n}\n/**\n * \\@whatItDoes Provides the navigation and url manipulation capabilities.\n * \n * See {\\@link Routes} for more details and examples.\n * \n * \\@ngModule RouterModule\n * \n * \\@stable\n */\nexport class Router {\nprivate currentUrlTree: UrlTree;\nprivate rawUrlTree: UrlTree;\nprivate navigations = new BehaviorSubject<NavigationParams>(null);\nprivate routerEvents = new Subject<Event>();\nprivate currentRouterState: RouterState;\nprivate locationSubscription: Subscription;\nprivate navigationId: number = 0;\nprivate configLoader: RouterConfigLoader;\n\n /**\n * Error handler that is invoked when a navigation errors.\n *\n * See {@link ErrorHandler} for more information.\n */\n errorHandler: ErrorHandler = defaultErrorHandler;\n\n\n\n /**\n * Indicates if at least one navigation happened.\n */\n navigated: boolean = false;\n\n /**\n * Extracts and merges URLs. Used for Angular 1 to Angular 2 migrations.\n * Used by RouterModule. This allows us to\n * pause the navigation either before preactivation or after it.\n * @internal\n */\n hooks: {beforePreactivation: RouterHook, afterPreactivation: RouterHook} = {\n beforePreactivation: defaultRouterHook,\n afterPreactivation: defaultRouterHook\n };\n\n /**\n * Extracts and merges URLs. Used for AngularJS to Angular migrations.\n */\n urlHandlingStrategy: UrlHandlingStrategy = new DefaultUrlHandlingStrategy();\n\n routeReuseStrategy: RouteReuseStrategy = new DefaultRouteReuseStrategy();\n/**\n * @param {?} rootComponentType\n * @param {?} urlSerializer\n * @param {?} outletMap\n * @param {?} location\n * @param {?} injector\n * @param {?} loader\n * @param {?} compiler\n * @param {?} config\n */\nconstructor(\nprivate rootComponentType: Type<any>,\nprivate urlSerializer: UrlSerializer,\nprivate outletMap: RouterOutletMap,\nprivate location: Location,\nprivate injector: Injector,\n loader: NgModuleFactoryLoader, compiler: Compiler,\npublic config: Routes) {\n this.resetConfig(config);\n this.currentUrlTree = createEmptyUrlTree();\n this.rawUrlTree = this.currentUrlTree;\n this.configLoader = new RouterConfigLoader(loader, compiler);\n this.currentRouterState = createEmptyState(this.currentUrlTree, this.rootComponentType);\n this.processNavigations();\n }\n/**\n * \\@internal \n * TODO: this should be removed once the constructor of the router made internal\n * @param {?} rootComponentType\n * @return {?}\n */\nresetRootComponentType(rootComponentType: Type<any>): void {\n this.rootComponentType = rootComponentType;\n // TODO: vsavkin router 4.0 should make the root component set to null\n // this will simplify the lifecycle of the router.\n this.currentRouterState.root.component = this.rootComponentType;\n }\n/**\n * Sets up the location change listener and performs the initial navigation.\n * @return {?}\n */\ninitialNavigation(): void {\n this.setUpLocationChangeListener();\n if (this.navigationId === 0) {\n this.navigateByUrl(this.location.path(true), {replaceUrl: true});\n }\n }\n/**\n * Sets up the location change listener.\n * @return {?}\n */\nsetUpLocationChangeListener(): void {\n // Zone.current.wrap is needed because of the issue with RxJS scheduler,\n // which does not work properly with zone.js in IE and Safari\n if (!this.locationSubscription) {\n this.locationSubscription = /** @type {?} */(( <any>this.location.subscribe(Zone.current.wrap((change: any) => {\n const /** @type {?} */ rawUrlTree = this.urlSerializer.parse(change['url']);\n const /** @type {?} */ source: NavigationSource = change['type'] === 'popstate' ? 'popstate' : 'hashchange';\n setTimeout(() => { this.scheduleNavigation(rawUrlTree, source, {replaceUrl: true}); }, 0);\n }))));\n }\n }\n/**\n * The current route state\n * @return {?}\n */\nget routerState(): RouterState { return this.currentRouterState; }\n/**\n * The current url\n * @return {?}\n */\nget url(): string { return this.serializeUrl(this.currentUrlTree); }\n/**\n * An observable of router events\n * @return {?}\n */\nget events(): Observable<Event> { return this.routerEvents; }\n/**\n * Resets the configuration used for navigation and generating links.\n * \n * ### Usage\n * \n * ```\n * router.resetConfig([\n * { path: 'team/:id', component: TeamCmp, children: [\n * { path: 'simple', component: SimpleCmp },\n * { path: 'user/:name', component: UserCmp }\n * ]}\n * ]);\n * ```\n * @param {?} config\n * @return {?}\n */\nresetConfig(config: Routes): void {\n validateConfig(config);\n this.config = config;\n }\n/**\n * \\@docsNotRequired\n * @return {?}\n */\nngOnDestroy() { this.dispose(); }\n/**\n * Disposes of the router\n * @return {?}\n */\ndispose(): void {\n if (this.locationSubscription) {\n this.locationSubscription.unsubscribe();\n this.locationSubscription = null;\n }\n }\n/**\n * Applies an array of commands to the current url tree and creates a new url tree.\n * \n * When given an activate route, applies the given commands starting from the route.\n * When not given a route, applies the given command starting from the root.\n * \n * ### Usage\n * \n * ```\n * // create /team/33/user/11\n * router.createUrlTree(['/team', 33, 'user', 11]);\n * \n * // create /team/33;expand=true/user/11\n * router.createUrlTree(['/team', 33, {expand: true}, 'user', 11]);\n * \n * // you can collapse static segments like this (this works only with the first passed-in value):\n * router.createUrlTree(['/team/33/user', userId]);\n * \n * // If the first segment can contain slashes, and you do not want the router to split it, you\n * // can do the following:\n * \n * router.createUrlTree([{segmentPath: '/one/two'}]);\n * \n * // create /team/33/(user/11//right:chat)\n * router.createUrlTree(['/team', 33, {outlets: {primary: 'user/11', right: 'chat'}}]);\n * \n * // remove the right secondary node\n * router.createUrlTree(['/team', 33, {outlets: {primary: 'user/11', right: null}}]);\n * \n * // assuming the current url is `/team/33/user/11` and the route points to `user/11`\n * \n * // navigate to /team/33/user/11/details\n * router.createUrlTree(['details'], {relativeTo: route});\n * \n * // navigate to /team/33/user/22\n * router.createUrlTree(['../22'], {relativeTo: route});\n * \n * // navigate to /team/44/user/22\n * router.createUrlTree(['../../team/44/user/22'], {relativeTo: route});\n * ```\n * @param {?} commands\n * @param {?=} __1\n * @return {?}\n */\ncreateUrlTree(\n commands: any[], {relativeTo, queryParams, fragment, preserveQueryParams,\n preserveFragment}: NavigationExtras = {}): UrlTree {\n const /** @type {?} */ a = relativeTo || this.routerState.root;\n const /** @type {?} */ q = preserveQueryParams ? this.currentUrlTree.queryParams : queryParams;\n const /** @type {?} */ f = preserveFragment ? this.currentUrlTree.fragment : fragment;\n return createUrlTree(a, this.currentUrlTree, commands, q, f);\n }\n/**\n * Navigate based on the provided url. This navigation is always absolute.\n * \n * Returns a promise that:\n * - resolves to 'true' when navigation succeeds,\n * - resolves to 'false' when navigation fails,\n * - is rejected when an error happens.\n * \n * ### Usage\n * \n * ```\n * router.navigateByUrl(\"/team/33/user/11\");\n * \n * // Navigate without updating the URL\n * router.navigateByUrl(\"/team/33/user/11\", { skipLocationChange: true });\n * ```\n * \n * In opposite to `navigate`, `navigateByUrl` takes a whole URL\n * and does not apply any delta to the current one.\n * @param {?} url\n * @param {?=} extras\n * @return {?}\n */\nnavigateByUrl(url: string|UrlTree, extras: NavigationExtras = {skipLocationChange: false}):\n Promise<boolean> {\n if (url instanceof UrlTree) {\n return this.scheduleNavigation(\n this.urlHandlingStrategy.merge(url, this.rawUrlTree), 'imperative', extras);\n }\n\n const /** @type {?} */ urlTree = this.urlSerializer.parse(url);\n return this.scheduleNavigation(\n this.urlHandlingStrategy.merge(urlTree, this.rawUrlTree), 'imperative', extras);\n }\n/**\n * Navigate based on the provided array of commands and a starting point.\n * If no starting route is provided, the navigation is absolute.\n * \n * Returns a promise that:\n * - resolves to 'true' when navigation succeeds,\n * - resolves to 'false' when navigation fails,\n * - is rejected when an error happens.\n * \n * ### Usage\n * \n * ```\n * router.navigate(['team', 33, 'user', 11], {relativeTo: route});\n * \n * // Navigate without updating the URL\n * router.navigate(['team', 33, 'user', 11], {relativeTo: route, skipLocationChange: true});\n * ```\n * \n * In opposite to `navigateByUrl`, `navigate` always takes a delta that is applied to the current\n * URL.\n * @param {?} commands\n * @param {?=} extras\n * @return {?}\n */\nnavigate(commands: any[], extras: NavigationExtras = {skipLocationChange: false}):\n Promise<boolean> {\n validateCommands(commands);\n if (typeof extras.queryParams === 'object' && extras.queryParams !== null) {\n extras.queryParams = this.removeEmptyProps(extras.queryParams);\n }\n return this.navigateByUrl(this.createUrlTree(commands, extras), extras);\n }\n/**\n * Serializes a {\\@link UrlTree} into a string\n * @param {?} url\n * @return {?}\n */\nserializeUrl(url: UrlTree): string { return this.urlSerializer.serialize(url); }\n/**\n * Parses a string into a {\\@link UrlTree}\n * @param {?} url\n * @return {?}\n */\nparseUrl(url: string): UrlTree { return this.urlSerializer.parse(url); }\n/**\n * Returns whether the url is activated\n * @param {?} url\n * @param {?} exact\n * @return {?}\n */\nisActive(url: string|UrlTree, exact: boolean): boolean {\n if (url instanceof UrlTree) {\n return containsTree(this.currentUrlTree, url, exact);\n } else {\n const /** @type {?} */ urlTree = this.urlSerializer.parse(url);\n return containsTree(this.currentUrlTree, urlTree, exact);\n }\n }\n/**\n * @param {?} params\n * @return {?}\n */\nprivate removeEmptyProps(params: Params): Params {\n return Object.keys(params).reduce((result: Params, key: string) => {\n const /** @type {?} */ value: any = params[key];\n if (value !== null && value !== undefined) {\n result[key] = value;\n }\n return result;\n }, {});\n }\n/**\n * @return {?}\n */\nprivate processNavigations(): void {\n concatMap\n .call(\n this.navigations,\n (nav: NavigationParams) => {\n if (nav) {\n this.executeScheduledNavigation(nav);\n // a failed navigation should not stop the router from processing\n // further navigations => the catch\n return nav.promise.catch(() => {});\n } else {\n return /** @type {?} */(( <any>of (null)));\n }\n })\n .subscribe(() => {});\n }\n/**\n * @param {?} rawUrl\n * @param {?} source\n * @param {?} extras\n * @return {?}\n */\nprivate scheduleNavigation(rawUrl: UrlTree, source: NavigationSource, extras: NavigationExtras):\n Promise<boolean> {\n const /** @type {?} */ lastNavigation = this.navigations.value;\n\n // If the user triggers a navigation imperatively (e.g., by using navigateByUrl),\n // and that navigation results in 'replaceState' that leads to the same URL,\n // we should skip those.\n if (lastNavigation && source !== 'imperative' && lastNavigation.source === 'imperative' &&\n lastNavigation.rawUrl.toString() === rawUrl.toString()) {\n return null; // return value is not used\n }\n\n // Because of a bug in IE and Edge, the location class fires two events (popstate and\n // hashchange)\n // every single time. The second one should be ignored. Otherwise, the URL will flicker.\n if (lastNavigation && source == 'hashchange' && lastNavigation.source === 'popstate' &&\n lastNavigation.rawUrl.toString() === rawUrl.toString()) {\n return null; // return value is not used\n }\n\n let /** @type {?} */ resolve: any = null;\n let /** @type {?} */ reject: any = null;\n\n const /** @type {?} */ promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n const /** @type {?} */ id = ++this.navigationId;\n this.navigations.next({id, source, rawUrl, extras, resolve, reject, promise});\n\n // Make sure that the error is propagated even though `processNavigations` catch\n // handler does not rethrow\n return promise.catch((e: any) => Promise.reject(e));\n }\n/**\n * @param {?} __0\n * @return {?}\n */\nprivate executeScheduledNavigation({id, rawUrl, extras, resolve, reject}: NavigationParams):\n void {\n const /** @type {?} */ url = this.urlHandlingStrategy.extract(rawUrl);\n const /** @type {?} */ urlTransition = !this.navigated || url.toString() !== this.currentUrlTree.toString();\n\n if (urlTransition && this.urlHandlingStrategy.shouldProcessUrl(rawUrl)) {\n this.routerEvents.next(new NavigationStart(id, this.serializeUrl(url)));\n Promise.resolve()\n .then(\n (_) => this.runNavigate(\n url, rawUrl, extras.skipLocationChange, extras.replaceUrl, id, null))\n .then(resolve, reject);\n\n // we cannot process the current URL, but we could process the previous one =>\n // we need to do some cleanup\n } else if (\n urlTransition && this.rawUrlTree &&\n this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)) {\n this.routerEvents.next(new NavigationStart(id, this.serializeUrl(url)));\n Promise.resolve()\n .then(\n (_) => this.runNavigate(\n url, rawUrl, false, false, id,\n createEmptyState(url, this.rootComponentType).snapshot))\n .then(resolve, reject);\n\n } else {\n this.rawUrlTree = rawUrl;\n resolve(null);\n }\n }\n/**\n * @param {?} url\n * @param {?} rawUrl\n * @param {?} shouldPreventPushState\n * @param {?} shouldReplaceUrl\n * @param {?} id\n * @param {?} precreatedState\n * @return {?}\n */\nprivate runNavigate(\n url: UrlTree, rawUrl: UrlTree, shouldPreventPushState: boolean, shouldReplaceUrl: boolean,\n id: number, precreatedState: RouterStateSnapshot): Promise<boolean> {\n if (id !== this.navigationId) {\n this.location.go(this.urlSerializer.serialize(this.currentUrlTree));\n this.routerEvents.next(new NavigationCancel(\n id, this.serializeUrl(url),\n `Navigation ID ${id} is not equal to the current navigation id ${this.navigationId}`));\n return Promise.resolve(false);\n }\n\n return new Promise((resolvePromise, rejectPromise) => {\n // create an observable of the url and route state snapshot\n // this operation do not result in any side effects\n let /** @type {?} */ urlAndSnapshot$: Observable<{appliedUrl: UrlTree, snapshot: RouterStateSnapshot}>;\n if (!precreatedState) {\n const /** @type {?} */ redirectsApplied$ =\n applyRedirects(this.injector, this.configLoader, this.urlSerializer, url, this.config);\n\n urlAndSnapshot$ = mergeMap.call(redirectsApplied$, (appliedUrl: UrlTree) => {\n return map.call(\n recognize(\n this.rootComponentType, this.config, appliedUrl, this.serializeUrl(appliedUrl)),\n (snapshot: any) => {\n\n this.routerEvents.next(new RoutesRecognized(\n id, this.serializeUrl(url), this.serializeUrl(appliedUrl), snapshot));\n\n return {appliedUrl, snapshot};\n });\n });\n } else {\n urlAndSnapshot$ = of ({appliedUrl: url, snapshot: precreatedState});\n }\n\n const /** @type {?} */ beforePreactivationDone$ = mergeMap.call(\n urlAndSnapshot$, (p: {appliedUrl: string, snapshot: RouterStateSnapshot}) => {\n return map.call(this.hooks.beforePreactivation(p.snapshot), () => p);\n });\n\n // run preactivation: guards and data resolvers\n let /** @type {?} */ preActivation: PreActivation;\n const /** @type {?} */ preactivationTraverse$ = map.call(\n beforePreactivationDone$,\n ({appliedUrl, snapshot}: {appliedUrl: string, snapshot: RouterStateSnapshot}) => {\n preActivation =\n new PreActivation(snapshot, this.currentRouterState.snapshot, this.injector);\n preActivation.traverse(this.outletMap);\n return {appliedUrl, snapshot};\n });\n\n const /** @type {?} */ preactivationCheckGuards$ = mergeMap.call(\n preactivationTraverse$,\n ({appliedUrl, snapshot}: {appliedUrl: string, snapshot: RouterStateSnapshot}) => {\n if (this.navigationId !== id) return of (false);\n\n return map.call(preActivation.checkGuards(), (shouldActivate: boolean) => {\n return {appliedUrl: appliedUrl, snapshot: snapshot, shouldActivate: shouldActivate};\n });\n });\n\n const /** @type {?} */ preactivationResolveData$ = mergeMap.call(preactivationCheckGuards$, (p: any) => {\n if (this.navigationId !== id) return of (false);\n\n if (p.shouldActivate) {\n return map.call(preActivation.resolveData(), () => p);\n } else {\n return of (p);\n }\n });\n\n const /** @type {?} */ preactivationDone$ = mergeMap.call(preactivationResolveData$, (p: any) => {\n return map.call(this.hooks.afterPreactivation(p.snapshot), () => p);\n });\n\n\n // create router state\n // this operation has side effects => route state is being affected\n const /** @type {?} */ routerState$ =\n map.call(preactivationDone$, ({appliedUrl, snapshot, shouldActivate}: any) => {\n if (shouldActivate) {\n const /** @type {?} */ state =\n createRouterState(this.routeReuseStrategy, snapshot, this.currentRouterState);\n return {appliedUrl, state, shouldActivate};\n } else {\n return {appliedUrl, state: null, shouldActivate};\n }\n });\n\n\n // applied the new router state\n // this operation has side effects\n let /** @type {?} */ navigationIsSuccessful: boolean;\n const /** @type {?} */ storedState = this.currentRouterState;\n const /** @type {?} */ storedUrl = this.currentUrlTree;\n\n routerState$\n .forEach(({appliedUrl, state, shouldActivate}: any) => {\n if (!shouldActivate || id !== this.navigationId) {\n navigationIsSuccessful = false;\n return;\n }\n\n this.currentUrlTree = appliedUrl;\n this.rawUrlTree = this.urlHandlingStrategy.merge(this.currentUrlTree, rawUrl);\n\n this.currentRouterState = state;\n\n if (!shouldPreventPushState) {\n const /** @type {?} */ path = this.urlSerializer.serialize(this.rawUrlTree);\n if (this.location.isCurrentPathEqualTo(path) || shouldReplaceUrl) {\n this.location.replaceState(path);\n } else {\n this.location.go(path);\n }\n }\n\n new ActivateRoutes(this.routeReuseStrategy, state, storedState)\n .activate(this.outletMap);\n\n navigationIsSuccessful = true;\n })\n .then(\n () => {\n if (navigationIsSuccessful) {\n this.navigated = true;\n this.routerEvents.next(new NavigationEnd(\n id, this.serializeUrl(url), this.serializeUrl(this.currentUrlTree)));\n resolvePromise(true);\n } else {\n this.resetUrlToCurrentUrlTree();\n this.routerEvents.next(new NavigationCancel(id, this.serializeUrl(url), ''));\n resolvePromise(false);\n }\n },\n (e: any) => {\n if (e instanceof NavigationCancelingError) {\n this.resetUrlToCurrentUrlTree();\n this.navigated = true;\n this.routerEvents.next(\n new NavigationCancel(id, this.serializeUrl(url), e.message));\n resolvePromise(false);\n } else {\n this.routerEvents.next(new NavigationError(id, this.serializeUrl(url), e));\n try {\n resolvePromise(this.errorHandler(e));\n } catch ( /** @type {?} */ee) {\n rejectPromise(ee);\n }\n }\n\n this.currentRouterState = storedState;\n this.currentUrlTree = storedUrl;\n this.rawUrlTree = this.urlHandlingStrategy.merge(this.currentUrlTree, rawUrl);\n this.location.replaceState(this.serializeUrl(this.rawUrlTree));\n });\n });\n }\n/**\n * @return {?}\n */\nprivate resetUrlToCurrentUrlTree(): void {\n const /** @type {?} */ path = this.urlSerializer.serialize(this.rawUrlTree);\n this.location.replaceState(path);\n }\n}\n\nfunction Router_tsickle_Closure_declarations() {\n/** @type {?} */\nRouter.prototype.currentUrlTree;\n/** @type {?} */\nRouter.prototype.rawUrlTree;\n/** @type {?} */\nRouter.prototype.navigations;\n/** @type {?} */\nRouter.prototype.routerEvents;\n/** @type {?} */\nRouter.prototype.currentRouterState;\n/** @type {?} */\nRouter.prototype.locationSubscription;\n/** @type {?} */\nRouter.prototype.navigationId;\n/** @type {?} */\nRouter.prototype.configLoader;\n/**\n * Error handler that is invoked when a navigation errors.\n * \n * See {\\@link ErrorHandler} for more information.\n * @type {?}\n */\nRouter.prototype.errorHandler;\n/**\n * Indicates if at least one navigation happened.\n * @type {?}\n */\nRouter.prototype.navigated;\n/**\n * Extracts and merges URLs. Used for Angular 1 to Angular 2 migrations.\n * Used by RouterModule. This allows us to\n * pause the navigation either before preactivation or after it.\n * \\@internal\n * @type {?}\n */\nRouter.prototype.hooks;\n/**\n * Extracts and merges URLs. Used for AngularJS to Angular migrations.\n * @type {?}\n */\nRouter.prototype.urlHandlingStrategy;\n/** @type {?} */\nRouter.prototype.routeReuseStrategy;\n/** @type {?} */\nRouter.prototype.rootComponentType;\n/** @type {?} */\nRouter.prototype.urlSerializer;\n/** @type {?} */\nRouter.prototype.outletMap;\n/** @type {?} */\nRouter.prototype.location;\n/** @type {?} */\nRouter.prototype.injector;\n/** @type {?} */\nRouter.prototype.config;\n}\n\nclass CanActivate {\n/**\n * @param {?} path\n */\nconstructor(public path: ActivatedRouteSnapshot[]) {}\n/**\n * @return {?}\n */\nget route(): ActivatedRouteSnapshot { return this.path[this.path.length - 1]; }\n}\n\nfunction CanActivate_tsickle_Closure_declarations() {\n/** @type {?} */\nCanActivate.prototype.path;\n}\n\nclass CanDeactivate {\n/**\n * @param {?} component\n * @param {?} route\n */\nconstructor(public component: Object,\npublic route: ActivatedRouteSnapshot) {}\n}\n\nfunction CanDeactivate_tsickle_Closure_declarations() {\n/** @type {?} */\nCanDeactivate.prototype.component;\n/** @type {?} */\nCanDeactivate.prototype.route;\n}\n\nexport class PreActivation {\nprivate checks: Array<CanActivate|CanDeactivate> = [];\n/**\n * @param {?} future\n * @param {?} curr\n * @param {?} injector\n */\nconstructor(\nprivate future: RouterStateSnapshot,\nprivate curr: RouterStateSnapshot,\nprivate injector: Injector) {}\n/**\n * @param {?} parentOutletMap\n * @return {?}\n */\ntraverse(parentOutletMap: RouterOutletMap): void {\n const /** @type {?} */ futureRoot = this.future._root;\n const /** @type {?} */ currRoot = this.curr ? this.curr._root : null;\n this.traverseChildRoutes(futureRoot, currRoot, parentOutletMap, [futureRoot.value]);\n }\n/**\n * @return {?}\n */\ncheckGuards(): Observable<boolean> {\n if (this.checks.length === 0) return of (true);\n const /** @type {?} */ checks$ = from(this.checks);\n const /** @type {?} */ runningChecks$ = mergeMap.call(checks$, (s: any) => {\n if (s instanceof CanActivate) {\n return andObservables(\n from([this.runCanActivateChild(s.path), this.runCanActivate(s.route)]));\n } else if (s instanceof CanDeactivate) {\n // workaround https://github.com/Microsoft/TypeScript/issues/7271\n const /** @type {?} */ s2 = /** @type {?} */(( s as CanDeactivate));\n return this.runCanDeactivate(s2.component, s2.route);\n } else {\n throw new Error('Cannot be reached');\n }\n });\n return every.call(runningChecks$, (result: any) => result === true);\n }\n/**\n * @return {?}\n */\nresolveData(): Observable<any> {\n if (this.checks.length === 0) return of (null);\n const /** @type {?} */ checks$ = from(this.checks);\n const /** @type {?} */ runningChecks$ = concatMap.call(checks$, (s: any) => {\n if (s instanceof CanActivate) {\n return this.runResolve(s.route);\n } else {\n return of (null);\n }\n });\n return reduce.call(runningChecks$, (_: any, __: any) => _);\n }\n/**\n * @param {?} futureNode\n * @param {?} currNode\n * @param {?} outletMap\n * @param {?} futurePath\n * @return {?}\n */\nprivate traverseChildRoutes(\n futureNode: TreeNode<ActivatedRouteSnapshot>, currNode: TreeNode<ActivatedRouteSnapshot>,\n outletMap: RouterOutletMap, futurePath: ActivatedRouteSnapshot[]): void {\n const /** @type {?} */ prevChildren: {[key: string]: any} = nodeChildrenAsMap(currNode);\n\n futureNode.children.forEach(c => {\n this.traverseRoutes(c, prevChildren[c.value.outlet], outletMap, futurePath.concat([c.value]));\n delete prevChildren[c.value.outlet];\n });\n forEach(\n prevChildren,\n (v: any, k: string) => this.deactiveRouteAndItsChildren(v, outletMap._outlets[k]));\n }\n/**\n * @param {?} futureNode\n * @param {?} currNode\n * @param {?} parentOutletMap\n * @param {?} futurePath\n * @return {?}\n */\ntraverseRoutes(\n futureNode: TreeNode<ActivatedRouteSnapshot>, currNode: TreeNode<ActivatedRouteSnapshot>,\n parentOutletMap: RouterOutletMap, futurePath: ActivatedRouteSnapshot[]): void {\n const /** @type {?} */ future = futureNode.value;\n const /** @type {?} */ curr = currNode ? currNode.value : null;\n const /** @type {?} */ outlet = parentOutletMap ? parentOutletMap._outlets[futureNode.value.outlet] : null;\n\n // reusing the node\n if (curr && future._routeConfig === curr._routeConfig) {\n if (!equalParamsAndUrlSegments(future, curr)) {\n this.checks.push(new CanDeactivate(outlet.component, curr), new CanActivate(futurePath));\n } else {\n // we need to set the data\n future.data = curr.data;\n future._resolvedData = curr._resolvedData;\n }\n\n // If we have a component, we need to go through an outlet.\n if (future.component) {\n this.traverseChildRoutes(\n futureNode, currNode, outlet ? outlet.outletMap : null, futurePath);\n\n // if we have a componentless route, we recurse but keep the same outlet map.\n } else {\n this.traverseChildRoutes(futureNode, currNode, parentOutletMap, futurePath);\n }\n } else {\n if (curr) {\n this.deactiveRouteAndItsChildren(currNode, outlet);\n }\n\n this.checks.push(new CanActivate(futurePath));\n // If we have a component, we need to go through an outlet.\n if (future.component) {\n this.traverseChildRoutes(futureNode, null, outlet ? outlet.outletMap : null, futurePath);\n\n // if we have a componentless route, we recurse but keep the same outlet map.\n } else {\n this.traverseChildRoutes(futureNode, null, parentOutletMap, futurePath);\n }\n }\n }\n/**\n * @param {?} route\n * @param {?} outlet\n * @return {?}\n */\nprivate deactiveRouteAndItsChildren(\n route: TreeNode<ActivatedRouteSnapshot>, outlet: RouterOutlet): void {\n const /** @type {?} */ prevChildren: {[key: string]: any} = nodeChildrenAsMap(route);\n const /** @type {?} */ r = route.value;\n\n forEach(prevChildren, (v: any, k: string) => {\n if (!r.component) {\n this.deactiveRouteAndItsChildren(v, outlet);\n } else if (!!outlet) {\n this.deactiveRouteAndItsChildren(v, outlet.outletMap._outlets[k]);\n } else {\n this.deactiveRouteAndItsChildren(v, null);\n }\n });\n\n if (!r.component) {\n this.checks.push(new CanDeactivate(null, r));\n } else if (outlet && outlet.isActivated) {\n this.checks.push(new CanDeactivate(outlet.component, r));\n } else {\n this.checks.push(new CanDeactivate(null, r));\n }\n }\n/**\n * @param {?} future\n * @return {?}\n */\nprivate runCanActivate(future: ActivatedRouteSnapshot): Observable<boolean> {\n const /** @type {?} */ canActivate = future._routeConfig ? future._routeConfig.canActivate : null;\n if (!canActivate || canActivate.length === 0) return of (true);\n const /** @type {?} */ obs = map.call(from(canActivate), (c: any) => {\n const /** @type {?} */ guard = this.getToken(c, future);\n let /** @type {?} */ observable: Observable<boolean>;\n if (guard.canActivate) {\n observable = wrapIntoObservable(guard.canActivate(future, this.future));\n } else {\n observable = wrapIntoObservable(guard(future, this.future));\n }\n return first.call(observable);\n });\n return andObservables(obs);\n }\n/**\n * @param {?} path\n * @return {?}\n */\nprivate runCanActivateChild(path: ActivatedRouteSnapshot[]): Observable<boolean> {\n const /** @type {?} */ future = path[path.length - 1];\n\n const /** @type {?} */ canActivateChildGuards = path.slice(0, path.length - 1)\n .reverse()\n .map(p => this.extractCanActivateChild(p))\n .filter(_ => _ !== null);\n\n return andObservables(map.call(from(canActivateChildGuards), (d: any) => {\n const /** @type {?} */ obs = map.call(from(d.guards), (c: any) => {\n const /** @type {?} */ guard = this.getToken(c, d.node);\n let /** @type {?} */ observable: Observable<boolean>;\n if (guard.canActivateChild) {\n observable = wrapIntoObservable(guard.canActivateChild(future, this.future));\n } else {\n observable = wrapIntoObservable(guard(future, this.future));\n }\n return first.call(observable);\n });\n return andObservables(obs);\n }));\n }\n/**\n * @param {?} p\n * @return {?}\n */\nprivate extractCanActivateChild(p: ActivatedRouteSnapshot):\n {node: ActivatedRouteSnapshot, guards: any[]} {\n const /** @type {?} */ canActivateChild = p._routeConfig ? p._routeConfig.canActivateChild : null;\n if (!canActivateChild || canActivateChild.length === 0) return null;\n return {node: p, guards: canActivateChild};\n }\n/**\n * @param {?} component\n * @param {?} curr\n * @return {?}\n */\nprivate runCanDeactivate(component: Object, curr: ActivatedRouteSnapshot): Observable<boolean> {\n const /** @type {?} */ canDeactivate = curr && curr._routeConfig ? curr._routeConfig.canDeactivate : null;\n if (!canDeactivate || canDeactivate.length === 0) return of (true);\n const /** @type {?} */ canDeactivate$ = mergeMap.call(from(canDeactivate), (c: any) => {\n const /** @type {?} */ guard = this.getToken(c, curr);\n let /** @type {?} */ observable: Observable<boolean>;\n if (guard.canDeactivate) {\n observable = wrapIntoObservable(guard.canDeactivate(component, curr, this.curr));\n } else {\n observable = wrapIntoObservable(guard(component, curr, this.curr));\n }\n return first.call(observable);\n });\n return every.call(canDeactivate$, (result: any) => result === true);\n }\n/**\n * @param {?} future\n * @return {?}\n */\nprivate runResolve(future: ActivatedRouteSnapshot): Observable<any> {\n const /** @type {?} */ resolve = future._resolve;\n return map.call(this.resolveNode(resolve, future), (resolvedData: any): any => {\n future._resolvedData = resolvedData;\n future.data = merge(future.data, inheritedParamsDataResolve(future).resolve);\n return null;\n });\n }\n/**\n * @param {?} resolve\n * @param {?} future\n * @return {?}\n */\nprivate resolveNode(resolve: ResolveData, future: ActivatedRouteSnapshot): Observable<any> {\n return waitForMap(resolve, (k, v) => {\n const /** @type {?} */ resolver = this.getToken(v, future);\n return resolver.resolve ? wrapIntoObservable(resolver.resolve(future, this.future)) :\n wrapIntoObservable(resolver(future, this.future));\n });\n }\n/**\n * @param {?} token\n * @param {?} snapshot\n * @return {?}\n */\nprivate getToken(token: any, snapshot: ActivatedRouteSnapshot): any {\n const /** @type {?} */ config = closestLoadedConfig(snapshot);\n const /** @type {?} */ injector = config ? config.injector : this.injector;\n return injector.get(token);\n }\n}\n\nfunction PreActivation_tsickle_Closure_declarations() {\n/** @type {?} */\nPreActivation.prototype.checks;\n/** @type {?} */\nPreActivation.prototype.future;\n/** @type {?} */\nPreActivation.prototype.curr;\n/** @type {?} */\nPreActivation.prototype.injector;\n}\n\nclass ActivateRoutes {\n/**\n * @param {?} routeReuseStrategy\n * @param {?} futureState\n * @param {?} currState\n */\nconstructor(\nprivate routeReuseStrategy: RouteReuseStrategy,\nprivate futureState: RouterState,\nprivate currState: RouterState) {}\n/**\n * @param {?} parentOutletMap\n * @return {?}\n */\nactivate(parentOutletMap: RouterOutletMap): void {\n const /** @type {?} */ futureRoot = this.futureState._root;\n const /** @type {?} */ currRoot = this.currState ? this.currState._root : null;\n\n this.deactivateChildRoutes(futureRoot, currRoot, parentOutletMap);\n advanceActivatedRoute(this.futureState.root);\n this.activateChildRoutes(futureRoot, currRoot, parentOutletMap);\n }\n/**\n * @param {?} futureNode\n * @param {?} currNode\n * @param {?} outletMap\n * @return {?}\n */\nprivate deactivateChildRoutes(\n futureNode: TreeNode<ActivatedRoute>, currNode: TreeNode<ActivatedRoute>,\n outletMap: RouterOutletMap): void {\n const /** @type {?} */ prevChildren: {[key: string]: any} = nodeChildrenAsMap(currNode);\n futureNode.children.forEach(c => {\n this.deactivateRoutes(c, prevChildren[c.value.outlet], outletMap);\n delete prevChildren[c.value.outlet];\n });\n forEach(prevChildren, (v: any, k: string) => this.deactiveRouteAndItsChildren(v, outletMap));\n }\n/**\n * @param {?} futureNode\n * @param {?} currNode\n * @param {?} outletMap\n * @return {?}\n */\nprivate activateChildRoutes(\n futureNode: TreeNode<ActivatedRoute>, currNode: TreeNode<ActivatedRoute>,\n outletMap: RouterOutletMap): void {\n const /** @type {?} */ prevChildren: {[key: string]: any} = nodeChildrenAsMap(currNode);\n futureNode.children.forEach(\n c => { this.activateRoutes(c, prevChildren[c.value.outlet], outletMap); });\n }\n/**\n * @param {?} futureNode\n * @param {?} currNode\n * @param {?} parentOutletMap\n * @return {?}\n */\ndeactivateRoutes(\n futureNode: TreeNode<ActivatedRoute>, currNode: TreeNode<ActivatedRoute>,\n parentOutletMap: RouterOutletMap): void {\n const /** @type {?} */ future = futureNode.value;\n const /** @type {?} */ curr = currNode ? currNode.value : null;\n\n // reusing the node\n if (future === curr) {\n // If we have a normal route, we need to go through an outlet.\n if (future.component) {\n const /** @type {?} */ outlet = getOutlet(parentOutletMap, future);\n this.deactivateChildRoutes(futureNode, currNode, outlet.outletMap);\n\n // if we have a componentless route, we recurse but keep the same outlet map.\n } else {\n this.deactivateChildRoutes(futureNode, currNode, parentOutletMap);\n }\n } else {\n if (curr) {\n this.deactiveRouteAndItsChildren(currNode, parentOutletMap);\n }\n }\n }\n/**\n * @param {?} futureNode\n * @param {?} currNode\n * @param {?} parentOutletMap\n * @return {?}\n */\nactivateRoutes(\n futureNode: TreeNode<ActivatedRoute>, currNode: TreeNode<ActivatedRoute>,\n parentOutletMap: RouterOutletMap): void {\n const /** @type {?} */ future = futureNode.value;\n const /** @type {?} */ curr = currNode ? currNode.value : null;\n\n // reusing the node\n if (future === curr) {\n // advance the route to push the parameters\n advanceActivatedRoute(future);\n\n // If we have a normal route, we need to go through an outlet.\n if (future.component) {\n const /** @type {?} */ outlet = getOutlet(parentOutletMap, future);\n this.activateChildRoutes(futureNode, currNode, outlet.outletMap);\n\n // if we have a componentless route, we recurse but keep the same outlet map.\n } else {\n this.activateChildRoutes(futureNode, currNode, parentOutletMap);\n }\n } else {\n // if we have a normal route, we need to advance the route\n // and place the component into the outlet. After that recurse.\n if (future.component) {\n advanceActivatedRoute(future);\n const /** @type {?} */ outlet = getOutlet(parentOutletMap, futureNode.value);\n\n if (this.routeReuseStrategy.shouldAttach(future.snapshot)) {\n const /** @type {?} */ stored =\n ( /** @type {?} */((<DetachedRouteHandleInternal>this.routeReuseStrategy.retrieve(future.snapshot))));\n this.routeReuseStrategy.store(future.snapshot, null);\n outlet.attach(stored.componentRef, stored.route.value);\n advanceActivatedRouteNodeAndItsChildren(stored.route);\n } else {\n const /** @type {?} */ outletMap = new RouterOutletMap();\n this.placeComponentIntoOutlet(outletMap, future, outlet);\n this.activateChildRoutes(futureNode, null, outletMap);\n }\n\n // if we have a componentless route, we recurse but keep the same outlet map.\n } else {\n advanceActivatedRoute(future);\n this.activateChildRoutes(futureNode, null, parentOutletMap);\n }\n }\n }\n/**\n * @param {?} outletMap\n * @param {?} future\n * @param {?} outlet\n * @return {?}\n */\nprivate placeComponentIntoOutlet(\n outletMap: RouterOutletMap, future: ActivatedRoute, outlet: RouterOutlet): void {\n const /** @type {?} */ resolved = /** @type {?} */(( <any[]>[{provide: ActivatedRoute, useValue: future}, {\n provide: RouterOutletMap,\n useValue: outletMap\n }]));\n\n const /** @type {?} */ config = parentLoadedConfig(future.snapshot);\n\n let /** @type {?} */ resolver: ComponentFactoryResolver = null;\n let /** @type {?} */ injector: Injector = null;\n\n if (config) {\n injector = config.injectorFactory(outlet.locationInjector);\n resolver = config.factoryResolver;\n resolved.push({provide: ComponentFactoryResolver, useValue: resolver});\n } else {\n injector = outlet.locationInjector;\n resolver = outlet.locationFactoryResolver;\n }\n\n outlet.activate(future, resolver, injector, ReflectiveInjector.resolve(resolved), outletMap);\n }\n/**\n * @param {?} route\n * @param {?} parentOutletMap\n * @return {?}\n */\nprivate deactiveRouteAndItsChildren(\n route: TreeNode<ActivatedRoute>, parentOutletMap: RouterOutletMap): void {\n if (this.routeReuseStrategy.shouldDetach(route.value.snapshot)) {\n this.detachAndStoreRouteSubtree(route, parentOutletMap);\n } else {\n this.deactiveRouteAndOutlet(route, parentOutletMap);\n }\n }\n/**\n * @param {?} route\n * @param {?} parentOutletMap\n * @return {?}\n */\nprivate detachAndStoreRouteSubtree(\n route: TreeNode<ActivatedRoute>, parentOutletMap: RouterOutletMap): void {\n const /** @type {?} */ outlet = getOutlet(parentOutletMap, route.value);\n const /** @type {?} */ componentRef = outlet.detach();\n this.routeReuseStrategy.store(route.value.snapshot, {componentRef, route});\n }\n/**\n * @param {?} route\n * @param {?} parentOutletMap\n * @return {?}\n */\nprivate deactiveRouteAndOutlet(route: TreeNode<ActivatedRoute>, parentOutletMap: RouterOutletMap):\n void {\n const /** @type {?} */ prevChildren: {[key: string]: any} = nodeChildrenAsMap(route);\n let /** @type {?} */ outlet: RouterOutlet = null;\n\n // getOutlet throws when cannot find the right outlet,\n // which can happen if an outlet was in an NgIf and was removed\n try {\n outlet = getOutlet(parentOutletMap, route.value);\n } catch ( /** @type {?} */e) {\n return;\n }\n const /** @type {?} */ childOutletMap = outlet.outletMap;\n\n forEach(prevChildren, (v: any, k: string) => {\n if (route.value.component) {\n this.deactiveRouteAndItsChildren(v, childOutletMap);\n } else {\n this.deactiveRouteAndItsChildren(v, parentOutletMap);\n }\n });\n\n if (outlet && outlet.isActivated) {\n outlet.deactivate();\n }\n }\n}\n\nfunction ActivateRoutes_tsickle_Closure_declarations() {\n/** @type {?} */\nActivateRoutes.prototype.routeReuseStrategy;\n/** @type {?} */\nActivateRoutes.prototype.futureState;\n/** @type {?} */\nActivateRoutes.prototype.currState;\n}\n\n/**\n * @param {?} node\n * @return {?}\n */\nfunction advanceActivatedRouteNodeAndItsChildren(node: TreeNode<ActivatedRoute>): void {\n advanceActivatedRoute(node.value);\n node.children.forEach(advanceActivatedRouteNodeAndItsChildren);\n}\n/**\n * @param {?} snapshot\n * @return {?}\n */\nfunction parentLoadedConfig(snapshot: ActivatedRouteSnapshot): LoadedRouterConfig {\n let /** @type {?} */ s = snapshot.parent;\n while (s) {\n const /** @type {?} */ c: any = s._routeConfig;\n if (c && c._loadedConfig) return c._loadedConfig;\n if (c && c.component) return null;\n s = s.parent;\n }\n return null;\n}\n/**\n * @param {?} snapshot\n * @return {?}\n */\nfunction closestLoadedConfig(snapshot: ActivatedRouteSnapshot): LoadedRouterConfig {\n if (!snapshot) return null;\n\n let /** @type {?} */ s = snapshot.parent;\n while (s) {\n const /** @type {?} */ c: any = s._routeConfig;\n if (c && c._loadedConfig) return c._loadedConfig;\n s = s.parent;\n }\n return null;\n}\n/**\n * @param {?} node\n * @return {?}\n */\nfunction nodeChildrenAsMap(node: TreeNode<any>) {\n return node ? node.children.reduce((m: any, c: TreeNode<any>) => {\n m[c.value.outlet] = c;\n return m;\n }, {}) : {};\n}\n/**\n * @param {?} outletMap\n * @param {?} route\n * @return {?}\n */\nfunction getOutlet(outletMap: RouterOutletMap, route: ActivatedRoute): RouterOutlet {\n const /** @type {?} */ outlet = outletMap._outlets[route.outlet];\n if (!outlet) {\n const /** @type {?} */ componentName = ( /** @type {?} */((<any>route.component))).name;\n if (route.outlet === PRIMARY_OUTLET) {\n throw new Error(`Cannot find primary outlet to load '${componentName}'`);\n } else {\n throw new Error(`Cannot find the outlet ${route.outlet} to load '${componentName}'`);\n }\n }\n return outlet;\n}\n/**\n * @param {?} commands\n * @return {?}\n */\nfunction validateCommands(commands: string[]): void {\n for (let /** @type {?} */ i = 0; i < commands.length; i++) {\n const /** @type {?} */ cmd = commands[i];\n if (cmd == null) {\n throw new Error(`The requested path contains ${cmd} segment at index ${i}`);\n }\n }\n}\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"]}
|
package/src/router_module.d.ts
CHANGED
|
@@ -11,7 +11,6 @@ import { Route, Routes } from './config';
|
|
|
11
11
|
import { RouteReuseStrategy } from './route_reuse_strategy';
|
|
12
12
|
import { ErrorHandler, Router } from './router';
|
|
13
13
|
import { RouterOutletMap } from './router_outlet_map';
|
|
14
|
-
import { RouterPreloader } from './router_preloader';
|
|
15
14
|
import { ActivatedRoute } from './router_state';
|
|
16
15
|
import { UrlHandlingStrategy } from './url_handling_strategy';
|
|
17
16
|
import { UrlSerializer } from './url_tree';
|
|
@@ -114,6 +113,31 @@ export declare function provideForRootGuard(router: Router): any;
|
|
|
114
113
|
* @stable
|
|
115
114
|
*/
|
|
116
115
|
export declare function provideRoutes(routes: Routes): any;
|
|
116
|
+
/**
|
|
117
|
+
* @whatItDoes Represents an option to configure when the initial navigation is performed.
|
|
118
|
+
*
|
|
119
|
+
* @description
|
|
120
|
+
* * 'enabled' - the initial navigation starts before the root component is created.
|
|
121
|
+
* The bootstrap is blocked until the initial navigation is complete.
|
|
122
|
+
* * 'disabled' - the initial navigation is not performed. The location listener is set up before
|
|
123
|
+
* the root component gets created.
|
|
124
|
+
* * 'legacy_enabled'- the initial navigation starts after the root component has been created.
|
|
125
|
+
* The bootstrap is not blocked until the initial navigation is complete. @deprecated
|
|
126
|
+
* * 'legacy_disabled'- the initial navigation is not performed. The location listener is set up
|
|
127
|
+
* after @deprecated
|
|
128
|
+
* the root component gets created.
|
|
129
|
+
* * `true` - same as 'legacy_enabled'. @deprecated
|
|
130
|
+
* * `false` - same as 'legacy_disabled'. @deprecated
|
|
131
|
+
*
|
|
132
|
+
* The 'enabled' option should be used for applications unless there is a reason to have
|
|
133
|
+
* more control over when the router starts its initial navigation due to some complex
|
|
134
|
+
* initialization logic. In this case, 'disabled' should be used.
|
|
135
|
+
*
|
|
136
|
+
* The 'legacy_enabled' and 'legacy_disabled' should not be used for new applications.
|
|
137
|
+
*
|
|
138
|
+
* @experimental
|
|
139
|
+
*/
|
|
140
|
+
export declare type InitialNavigation = boolean | 'enabled' | 'disabled' | 'legacy_enabled' | 'legacy_disabled';
|
|
117
141
|
/**
|
|
118
142
|
* @whatItDoes Represents options to configure the router.
|
|
119
143
|
*
|
|
@@ -131,7 +155,7 @@ export interface ExtraOptions {
|
|
|
131
155
|
/**
|
|
132
156
|
* Disables the initial navigation.
|
|
133
157
|
*/
|
|
134
|
-
initialNavigation?:
|
|
158
|
+
initialNavigation?: InitialNavigation;
|
|
135
159
|
/**
|
|
136
160
|
* A custom error handler.
|
|
137
161
|
*/
|
|
@@ -143,17 +167,44 @@ export interface ExtraOptions {
|
|
|
143
167
|
}
|
|
144
168
|
export declare function setupRouter(ref: ApplicationRef, urlSerializer: UrlSerializer, outletMap: RouterOutletMap, location: Location, injector: Injector, loader: NgModuleFactoryLoader, compiler: Compiler, config: Route[][], opts?: ExtraOptions, urlHandlingStrategy?: UrlHandlingStrategy, routeReuseStrategy?: RouteReuseStrategy): Router;
|
|
145
169
|
export declare function rootRoute(router: Router): ActivatedRoute;
|
|
146
|
-
|
|
170
|
+
/**
|
|
171
|
+
* To initialize the router properly we need to do in two steps:
|
|
172
|
+
*
|
|
173
|
+
* We need to start the navigation in a APP_INITIALIZER to block the bootstrap if
|
|
174
|
+
* a resolver or a guards executes asynchronously. Second, we need to actually run
|
|
175
|
+
* activation in a BOOTSTRAP_LISTENER. We utilize the afterPreactivation
|
|
176
|
+
* hook provided by the router to do that.
|
|
177
|
+
*
|
|
178
|
+
* The router navigation starts, reaches the point when preactivation is done, and then
|
|
179
|
+
* pauses. It waits for the hook to be resolved. We then resolve it only in a bootstrap listener.
|
|
180
|
+
*/
|
|
181
|
+
export declare class RouterInitializer {
|
|
182
|
+
private injector;
|
|
183
|
+
private initNavigation;
|
|
184
|
+
private resultOfPreactivationDone;
|
|
185
|
+
constructor(injector: Injector);
|
|
186
|
+
appInitializer(): Promise<any>;
|
|
187
|
+
bootstrapListener(bootstrappedComponentRef: ComponentRef<any>): void;
|
|
188
|
+
private isLegacyEnabled(opts);
|
|
189
|
+
private isLegacyDisabled(opts);
|
|
190
|
+
}
|
|
191
|
+
export declare function getAppInitializer(r: RouterInitializer): any;
|
|
192
|
+
export declare function getBootstrapListener(r: RouterInitializer): any;
|
|
147
193
|
/**
|
|
148
194
|
* A token for the router initializer that will be called after the app is bootstrapped.
|
|
149
195
|
*
|
|
150
196
|
* @experimental
|
|
151
197
|
*/
|
|
152
198
|
export declare const ROUTER_INITIALIZER: OpaqueToken;
|
|
153
|
-
export declare function provideRouterInitializer(): ({
|
|
199
|
+
export declare function provideRouterInitializer(): (typeof RouterInitializer | {
|
|
200
|
+
provide: any;
|
|
201
|
+
multi: boolean;
|
|
202
|
+
useFactory: (r: RouterInitializer) => any;
|
|
203
|
+
deps: typeof RouterInitializer[];
|
|
204
|
+
} | {
|
|
154
205
|
provide: OpaqueToken;
|
|
155
|
-
useFactory: (
|
|
156
|
-
deps:
|
|
206
|
+
useFactory: (r: RouterInitializer) => any;
|
|
207
|
+
deps: typeof RouterInitializer[];
|
|
157
208
|
} | {
|
|
158
209
|
provide: OpaqueToken;
|
|
159
210
|
multi: boolean;
|