diff --git a/bower.json b/bower.json index e2cbff61..691e4caf 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "aurelia-router", - "version": "1.3.0", + "version": "1.4.0", "description": "A powerful client-side router.", "keywords": [ "aurelia", diff --git a/dist/amd/aurelia-router.js b/dist/amd/aurelia-router.js index af0d59da..53dc9a12 100644 --- a/dist/amd/aurelia-router.js +++ b/dist/amd/aurelia-router.js @@ -57,7 +57,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _createClass = function () { @@ -81,7 +81,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen function _normalizeAbsolutePath(path, hasPushState) { - var absolute = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var absolute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (!hasPushState && path[0] !== '#') { path = '#' + path; @@ -296,7 +296,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen NavigationInstruction.prototype.getBaseUrl = function getBaseUrl() { var _this = this; - var fragment = this.fragment; + var fragment = decodeURI(this.fragment); if (fragment === '') { var nonEmptyRoute = this.router.routes.find(function (route) { @@ -308,18 +308,17 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen } if (!this.params) { - return fragment; + return encodeURI(fragment); } var wildcardName = this.getWildCardName(); var path = this.params[wildcardName] || ''; if (!path) { - return fragment; + return encodeURI(fragment); } - path = encodeURI(path); - return fragment.substr(0, fragment.lastIndexOf(path)); + return encodeURI(fragment.substr(0, fragment.lastIndexOf(path))); }; NavigationInstruction.prototype._commitChanges = function _commitChanges(waitToSwap) { @@ -349,17 +348,20 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen } if (viewPortInstruction.strategy === activationStrategy.replace) { - if (waitToSwap) { - delaySwaps.push({ viewPort: viewPort, viewPortInstruction: viewPortInstruction }); - } - - loads.push(viewPort.process(viewPortInstruction, waitToSwap).then(function (x) { - if (viewPortInstruction.childNavigationInstruction) { - return viewPortInstruction.childNavigationInstruction._commitChanges(); + if (viewPortInstruction.childNavigationInstruction && viewPortInstruction.childNavigationInstruction.parentCatchHandler) { + loads.push(viewPortInstruction.childNavigationInstruction._commitChanges()); + } else { + if (waitToSwap) { + delaySwaps.push({ viewPort: viewPort, viewPortInstruction: viewPortInstruction }); } + loads.push(viewPort.process(viewPortInstruction, waitToSwap).then(function (x) { + if (viewPortInstruction.childNavigationInstruction) { + return viewPortInstruction.childNavigationInstruction._commitChanges(); + } - return undefined; - })); + return undefined; + })); + } } else { if (viewPortInstruction.childNavigationInstruction) { loads.push(viewPortInstruction.childNavigationInstruction._commitChanges(waitToSwap)); @@ -389,7 +391,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen }; NavigationInstruction.prototype._buildTitle = function _buildTitle() { - var separator = arguments.length <= 0 || arguments[0] === undefined ? ' | ' : arguments[0]; + var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' | '; var title = ''; var childTitles = []; @@ -460,7 +462,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen var Redirect = exports.Redirect = function () { function Redirect(url) { - var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; @@ -483,8 +485,8 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen var RedirectToRoute = exports.RedirectToRoute = function () { function RedirectToRoute(route) { - var params = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; - var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; @@ -556,9 +558,9 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen if (Array.isArray(config.route)) { for (var i = 0, ii = config.route.length; i < ii; ++i) { - var current = Object.assign({}, config); - current.route = config.route[i]; - routeConfigs.push(current); + var _current = Object.assign({}, config); + _current.route = config.route[i]; + routeConfigs.push(_current); } } else { routeConfigs.push(Object.assign({}, config)); @@ -612,9 +614,9 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen var pipelineProvider = router.pipelineProvider; for (var _i2 = 0, _ii2 = pipelineSteps.length; _i2 < _ii2; ++_i2) { - var _pipelineSteps$_i = pipelineSteps[_i2]; - var _name = _pipelineSteps$_i.name; - var step = _pipelineSteps$_i.step; + var _pipelineSteps$_i = pipelineSteps[_i2], + _name = _pipelineSteps$_i.name, + step = _pipelineSteps$_i.step; pipelineProvider.addStep(_name, step); } @@ -713,11 +715,11 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen }); } - for (var _viewPortName in config.viewPorts) { - plan[_viewPortName] = { - name: _viewPortName, + for (var viewPortName in config.viewPorts) { + plan[viewPortName] = { + name: viewPortName, strategy: activationStrategy.replace, - config: instruction.config.viewPorts[_viewPortName] + config: instruction.config.viewPorts[viewPortName] }; } @@ -882,7 +884,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen }; Router.prototype.generate = function generate(name, params) { - var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var hasRoute = this._recognizer.hasRoute(name); if ((!this.isConfigured || !hasRoute) && this.parent) { @@ -1008,11 +1010,11 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen var nav = this.navigation; for (var i = 0, length = nav.length; i < length; i++) { - var current = nav[i]; - if (!current.config.href) { - current.href = _createRootedPath(current.relativeHref, this.baseUrl, this.history._hasPushState); + var _current2 = nav[i]; + if (!_current2.config.href) { + _current2.href = _createRootedPath(_current2.relativeHref, this.baseUrl, this.history._hasPushState); } else { - current.href = _normalizeAbsolutePath(current.config.href, this.history._hasPushState); + _current2.href = _normalizeAbsolutePath(_current2.config.href, this.history._hasPushState); } } }; @@ -1025,8 +1027,8 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen }; Router.prototype._createNavigationInstruction = function _createNavigationInstruction() { - var url = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; - var parentInstruction = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1]; + var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; + var parentInstruction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var fragment = url; var queryString = ''; @@ -1072,15 +1074,50 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen } else if (this.catchAllHandler) { var _instruction2 = new NavigationInstruction(Object.assign({}, instructionInit, { params: { path: fragment }, - queryParams: results && results.queryParams, + queryParams: results ? results.queryParams : {}, config: null })); return evaluateNavigationStrategy(_instruction2, this.catchAllHandler); + } else if (this.parent) { + var _router = this._parentCatchAllHandler(this.parent); + + if (_router) { + var newParentInstruction = this._findParentInstructionFromRouter(_router, parentInstruction); + + var _instruction3 = new NavigationInstruction(Object.assign({}, instructionInit, { + params: { path: fragment }, + queryParams: results ? results.queryParams : {}, + router: _router, + parentInstruction: newParentInstruction, + parentCatchHandler: true, + config: null })); + + return evaluateNavigationStrategy(_instruction3, _router.catchAllHandler); + } } return Promise.reject(new Error('Route not found: ' + url)); }; + Router.prototype._findParentInstructionFromRouter = function _findParentInstructionFromRouter(router, instruction) { + if (instruction.router === router) { + instruction.fragment = router.baseUrl; + return instruction; + } else if (instruction.parentInstruction) { + return this._findParentInstructionFromRouter(router, instruction.parentInstruction); + } + return undefined; + }; + + Router.prototype._parentCatchAllHandler = function _parentCatchAllHandler(router) { + if (router.catchAllHandler) { + return router; + } else if (router.parent) { + return this._parentCatchAllHandler(router.parent); + } + return false; + }; + Router.prototype._createRouteConfig = function _createRouteConfig(config, instruction) { var _this7 = this; @@ -1151,7 +1188,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen } CanDeactivatePreviousStep.prototype.run = function run(navigationInstruction, next) { - return processDeactivatable(navigationInstruction.plan, 'canDeactivate', next); + return processDeactivatable(navigationInstruction, 'canDeactivate', next); }; return CanDeactivatePreviousStep; @@ -1175,7 +1212,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen } DeactivatePreviousStep.prototype.run = function run(navigationInstruction, next) { - return processDeactivatable(navigationInstruction.plan, 'deactivate', next, true); + return processDeactivatable(navigationInstruction, 'deactivate', next, true); }; return DeactivatePreviousStep; @@ -1193,7 +1230,8 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen return ActivateNextStep; }(); - function processDeactivatable(plan, callbackName, next, ignoreResult) { + function processDeactivatable(navigationInstruction, callbackName, next, ignoreResult) { + var plan = navigationInstruction.plan; var infos = findDeactivatable(plan, callbackName); var i = infos.length; @@ -1209,7 +1247,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen if (i--) { try { var viewModel = infos[i]; - var _result = viewModel[callbackName](); + var _result = viewModel[callbackName](navigationInstruction); return processPotential(_result, inspect, next.cancel); } catch (error) { return next.cancel(error); @@ -1223,7 +1261,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen } function findDeactivatable(plan, callbackName) { - var list = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; + var list = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; for (var viewPortName in plan) { var _viewPortPlan = plan[viewPortName]; @@ -1237,10 +1275,10 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen } } - if (_viewPortPlan.childNavigationInstruction) { - findDeactivatable(_viewPortPlan.childNavigationInstruction.plan, callbackName, list); - } else if (prevComponent) { + if (_viewPortPlan.strategy === activationStrategy.replace && prevComponent) { addPreviousDeactivatable(prevComponent, callbackName, list); + } else if (_viewPortPlan.childNavigationInstruction) { + findDeactivatable(_viewPortPlan.childNavigationInstruction.plan, callbackName, list); } } @@ -1285,19 +1323,13 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen if (i < length) { try { - var _ret3 = function () { - var _current$viewModel; - - var current = infos[i]; - var result = (_current$viewModel = current.viewModel)[callbackName].apply(_current$viewModel, current.lifecycleArgs); - return { - v: processPotential(result, function (val) { - return inspect(val, current.router); - }, next.cancel) - }; - }(); - - if ((typeof _ret3 === 'undefined' ? 'undefined' : _typeof(_ret3)) === "object") return _ret3.v; + var _current3$viewModel; + + var _current3 = infos[i]; + var _result2 = (_current3$viewModel = _current3.viewModel)[callbackName].apply(_current3$viewModel, _current3.lifecycleArgs); + return processPotential(_result2, function (val) { + return inspect(val, _current3.router); + }, next.cancel); } catch (error) { return next.cancel(error); } @@ -1310,7 +1342,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen } function findActivatable(navigationInstruction, callbackName) { - var list = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; + var list = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; var router = arguments[3]; var plan = navigationInstruction.plan; @@ -1388,35 +1420,29 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen } if (obj && typeof obj.subscribe === 'function') { - var _ret4 = function () { - var obs = obj; - return { - v: new SafeSubscription(function (sub) { - return obs.subscribe({ - next: function next() { - if (sub.subscribed) { - sub.unsubscribe(); - resolve(obj); - } - }, - error: function error(_error) { - if (sub.subscribed) { - sub.unsubscribe(); - reject(_error); - } - }, - complete: function complete() { - if (sub.subscribed) { - sub.unsubscribe(); - resolve(obj); - } - } - }); - }) - }; - }(); - - if ((typeof _ret4 === 'undefined' ? 'undefined' : _typeof(_ret4)) === "object") return _ret4.v; + var obs = obj; + return new SafeSubscription(function (sub) { + return obs.subscribe({ + next: function next() { + if (sub.subscribed) { + sub.unsubscribe(); + resolve(obj); + } + }, + error: function error(_error) { + if (sub.subscribed) { + sub.unsubscribe(); + reject(_error); + } + }, + complete: function complete() { + if (sub.subscribed) { + sub.unsubscribe(); + resolve(obj); + } + } + }); + }); } try { @@ -1466,7 +1492,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen } function determineWhatToLoad(navigationInstruction) { - var toLoad = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1]; + var toLoad = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var plan = navigationInstruction.plan; @@ -1523,27 +1549,21 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen var lifecycleArgs = navigationInstruction.lifecycleArgs; return routeLoader.loadRoute(router, config, navigationInstruction).then(function (component) { - var viewModel = component.viewModel; - var childContainer = component.childContainer; + var viewModel = component.viewModel, + childContainer = component.childContainer; component.router = router; component.config = config; if ('configureRouter' in viewModel) { - var _ret5 = function () { - var childRouter = childContainer.getChildRouter(); - component.childRouter = childRouter; + var childRouter = childContainer.getChildRouter(); + component.childRouter = childRouter; - return { - v: childRouter.configure(function (c) { - return viewModel.configureRouter.apply(viewModel, [c, childRouter].concat(lifecycleArgs)); - }).then(function () { - return component; - }) - }; - }(); - - if ((typeof _ret5 === 'undefined' ? 'undefined' : _typeof(_ret5)) === "object") return _ret5.v; + return childRouter.configure(function (c) { + return viewModel.configureRouter.apply(viewModel, [c, childRouter].concat(lifecycleArgs)); + }).then(function () { + return component; + }); } return component; @@ -1619,7 +1639,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen }; PipelineProvider.prototype._clearSteps = function _clearSteps() { - var name = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var slot = this._findStep(name); if (slot) { @@ -1687,33 +1707,21 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen _Router.prototype.registerViewPort.call(this, viewPort, name); if (!this.isActive) { - var _ret6 = function () { - var viewModel = _this12._findViewModel(viewPort); - if ('configureRouter' in viewModel) { - if (!_this12.isConfigured) { - var _ret7 = function () { - var resolveConfiguredPromise = _this12._resolveConfiguredPromise; - _this12._resolveConfiguredPromise = function () {}; - return { - v: { - v: _this12.configure(function (config) { - return viewModel.configureRouter(config, _this12); - }).then(function () { - _this12.activate(); - resolveConfiguredPromise(); - }) - } - }; - }(); - - if ((typeof _ret7 === 'undefined' ? 'undefined' : _typeof(_ret7)) === "object") return _ret7.v; - } - } else { - _this12.activate(); + var viewModel = this._findViewModel(viewPort); + if ('configureRouter' in viewModel) { + if (!this.isConfigured) { + var resolveConfiguredPromise = this._resolveConfiguredPromise; + this._resolveConfiguredPromise = function () {}; + return this.configure(function (config) { + return viewModel.configureRouter(config, _this12); + }).then(function () { + _this12.activate(); + resolveConfiguredPromise(); + }); } - }(); - - if ((typeof _ret6 === 'undefined' ? 'undefined' : _typeof(_ret6)) === "object") return _ret6.v; + } else { + this.activate(); + } } else { this._dequeueInstruction(); } @@ -1750,7 +1758,7 @@ define(['exports', 'aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depen AppRouter.prototype._dequeueInstruction = function _dequeueInstruction() { var _this14 = this; - var instructionCount = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0]; + var instructionCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; return Promise.resolve().then(function () { if (_this14.isNavigating && !instructionCount) { diff --git a/dist/aurelia-router.d.ts b/dist/aurelia-router.d.ts index 0b720e50..4dd9e3e4 100644 --- a/dist/aurelia-router.d.ts +++ b/dist/aurelia-router.d.ts @@ -167,7 +167,7 @@ export declare interface RouteConfig { * Add to specify an activation strategy if it is always the same and you do not want that * to be in your view-model code. Available values are 'replace' and 'invoke-lifecycle'. */ - activationStrategy?: string; + activationStrategy?: 'no-change' | 'invoke-lifecycle' | 'replace'; /** * specifies the file name of a layout view to use. @@ -261,7 +261,7 @@ export declare interface RoutableComponentDetermineActivationStrategy { * Implement this hook if you want to give hints to the router about the activation strategy, when reusing * a view model for different routes. Available values are 'replace' and 'invoke-lifecycle'. */ - determineActivationStrategy(params: any, routeConfig: RouteConfig, navigationInstruction: NavigationInstruction): string; + determineActivationStrategy(params: any, routeConfig: RouteConfig, navigationInstruction: NavigationInstruction): 'no-change' | 'invoke-lifecycle' | 'replace'; } /** @@ -278,6 +278,30 @@ export declare interface ConfiguresRouter { configureRouter(config: RouterConfiguration, router: Router): Promise | PromiseLike | void; } +/** +* An optional interface describing the available activation strategies. +*/ +/** +* An optional interface describing the available activation strategies. +*/ +export declare interface ActivationStrategy { + + /** + * Reuse the existing view model, without invoking Router lifecycle hooks. + */ + noChange: 'no-change'; + + /** + * Reuse the existing view model, invoking Router lifecycle hooks. + */ + invokeLifecycle: 'invoke-lifecycle'; + + /** + * Replace the existing view model, invoking Router lifecycle hooks. + */ + replace: 'replace'; +} + /** * When a navigation command is encountered, the current navigation * will be cancelled and control will be passed to the navigation @@ -500,6 +524,11 @@ export declare function isNavigationCommand(obj: any): boolean; * Used during the activation lifecycle to cause a redirect. */ export declare class Redirect { + + /** + * @param url The URL fragment to use as the navigation destination. + * @param options The navigation options. + */ constructor(url: string, options?: any); /** @@ -519,11 +548,14 @@ export declare class Redirect { /** * Used during the activation lifecycle to cause a redirect to a named route. - * @param route The name of the route. - * @param params The parameters to be sent to the activation method. - * @param options The options to use for navigation. */ export declare class RedirectToRoute { + + /** + * @param route The name of the route. + * @param params The parameters to be sent to the activation method. + * @param options The options to use for navigation. + */ constructor(route: string, params?: any, options?: any); /** @@ -638,7 +670,7 @@ export declare class RouterConfiguration { /** * The strategy to use when activating modules during navigation. */ -export declare const activationStrategy: any; +export declare const activationStrategy: ActivationStrategy; export declare class BuildNavigationPlanStep { run(navigationInstruction: NavigationInstruction, next: Function): any; } diff --git a/dist/aurelia-router.js b/dist/aurelia-router.js index 9b88ef9a..9c70030d 100644 --- a/dist/aurelia-router.js +++ b/dist/aurelia-router.js @@ -349,7 +349,7 @@ export class NavigationInstruction { * Gets the instruction's base URL, accounting for wildcard route parameters. */ getBaseUrl(): string { - let fragment = this.fragment; + let fragment = decodeURI(this.fragment); if (fragment === '') { let nonEmptyRoute = this.router.routes.find(route => { @@ -362,18 +362,17 @@ export class NavigationInstruction { } if (!this.params) { - return fragment; + return encodeURI(fragment); } let wildcardName = this.getWildCardName(); let path = this.params[wildcardName] || ''; if (!path) { - return fragment; + return encodeURI(fragment); } - path = encodeURI(path); - return fragment.substr(0, fragment.lastIndexOf(path)); + return encodeURI(fragment.substr(0, fragment.lastIndexOf(path))); } _commitChanges(waitToSwap: boolean) { @@ -401,17 +400,20 @@ export class NavigationInstruction { } if (viewPortInstruction.strategy === activationStrategy.replace) { - if (waitToSwap) { - delaySwaps.push({viewPort, viewPortInstruction}); - } - - loads.push(viewPort.process(viewPortInstruction, waitToSwap).then((x) => { - if (viewPortInstruction.childNavigationInstruction) { - return viewPortInstruction.childNavigationInstruction._commitChanges(); + if (viewPortInstruction.childNavigationInstruction && viewPortInstruction.childNavigationInstruction.parentCatchHandler) { + loads.push(viewPortInstruction.childNavigationInstruction._commitChanges()); + } else { + if (waitToSwap) { + delaySwaps.push({viewPort, viewPortInstruction}); } + loads.push(viewPort.process(viewPortInstruction, waitToSwap).then((x) => { + if (viewPortInstruction.childNavigationInstruction) { + return viewPortInstruction.childNavigationInstruction._commitChanges(); + } - return undefined; - })); + return undefined; + })); + } } else { if (viewPortInstruction.childNavigationInstruction) { loads.push(viewPortInstruction.childNavigationInstruction._commitChanges(waitToSwap)); @@ -614,7 +616,7 @@ interface RouteConfig { * Add to specify an activation strategy if it is always the same and you do not want that * to be in your view-model code. Available values are 'replace' and 'invoke-lifecycle'. */ - activationStrategy?: string; + activationStrategy?: 'no-change' | 'invoke-lifecycle'| 'replace'; /** * specifies the file name of a layout view to use. @@ -689,7 +691,7 @@ interface RoutableComponentDetermineActivationStrategy { * Implement this hook if you want to give hints to the router about the activation strategy, when reusing * a view model for different routes. Available values are 'replace' and 'invoke-lifecycle'. */ - determineActivationStrategy: (params: any, routeConfig: RouteConfig, navigationInstruction: NavigationInstruction) => string; + determineActivationStrategy: (params: any, routeConfig: RouteConfig, navigationInstruction: NavigationInstruction) => 'no-change' | 'invoke-lifecycle'| 'replace'; } /** @@ -702,6 +704,24 @@ interface ConfiguresRouter { configureRouter(config: RouterConfiguration, router: Router): Promise|PromiseLike|void; } +/** +* An optional interface describing the available activation strategies. +*/ +interface ActivationStrategy { + /** + * Reuse the existing view model, without invoking Router lifecycle hooks. + */ + noChange: 'no-change'; + /** + * Reuse the existing view model, invoking Router lifecycle hooks. + */ + invokeLifecycle: 'invoke-lifecycle'; + /** + * Replace the existing view model, invoking Router lifecycle hooks. + */ + replace: 'replace'; +} + /** * When a navigation command is encountered, the current navigation * will be cancelled and control will be passed to the navigation @@ -725,6 +745,10 @@ export function isNavigationCommand(obj: any): boolean { * Used during the activation lifecycle to cause a redirect. */ export class Redirect { + /** + * @param url The URL fragment to use as the navigation destination. + * @param options The navigation options. + */ constructor(url: string, options: any = {}) { this.url = url; this.options = Object.assign({ trigger: true, replace: true }, options); @@ -753,11 +777,13 @@ export class Redirect { /** * Used during the activation lifecycle to cause a redirect to a named route. - * @param route The name of the route. - * @param params The parameters to be sent to the activation method. - * @param options The options to use for navigation. */ export class RedirectToRoute { + /** + * @param route The name of the route. + * @param params The parameters to be sent to the activation method. + * @param options The options to use for navigation. + */ constructor(route: string, params: any = {}, options: any = {}) { this.route = route; this.params = params; @@ -965,7 +991,7 @@ export class RouterConfiguration { /** * The strategy to use when activating modules during navigation. */ -export const activationStrategy = { +export const activationStrategy: ActivationStrategy = { noChange: 'no-change', invokeLifecycle: 'invoke-lifecycle', replace: 'replace' @@ -1536,16 +1562,52 @@ export class Router { } else if (this.catchAllHandler) { let instruction = new NavigationInstruction(Object.assign({}, instructionInit, { params: { path: fragment }, - queryParams: results && results.queryParams, + queryParams: results ? results.queryParams : {}, config: null // config will be created by the catchAllHandler })); return evaluateNavigationStrategy(instruction, this.catchAllHandler); + } else if (this.parent) { + let router = this._parentCatchAllHandler(this.parent); + + if (router) { + let newParentInstruction = this._findParentInstructionFromRouter(router, parentInstruction); + + let instruction = new NavigationInstruction(Object.assign({}, instructionInit, { + params: { path: fragment }, + queryParams: results ? results.queryParams : {}, + router: router, + parentInstruction: newParentInstruction, + parentCatchHandler: true, + config: null // config will be created by the chained parent catchAllHandler + })); + + return evaluateNavigationStrategy(instruction, router.catchAllHandler); + } } return Promise.reject(new Error(`Route not found: ${url}`)); } + _findParentInstructionFromRouter(router: Router, instruction: NavigationInstruction): NavigationInstruction { + if (instruction.router === router) { + instruction.fragment = router.baseUrl; //need to change the fragment in case of a redirect instead of moduleId + return instruction; + } else if (instruction.parentInstruction) { + return this._findParentInstructionFromRouter(router, instruction.parentInstruction); + } + return undefined; + } + + _parentCatchAllHandler(router): Function|Boolean { + if (router.catchAllHandler) { + return router; + } else if (router.parent) { + return this._parentCatchAllHandler(router.parent); + } + return false; + } + _createRouteConfig(config, instruction) { return Promise.resolve(config) .then(c => { @@ -1602,7 +1664,7 @@ function evaluateNavigationStrategy(instruction: NavigationInstruction, evaluato export class CanDeactivatePreviousStep { run(navigationInstruction: NavigationInstruction, next: Function) { - return processDeactivatable(navigationInstruction.plan, 'canDeactivate', next); + return processDeactivatable(navigationInstruction, 'canDeactivate', next); } } @@ -1614,7 +1676,7 @@ export class CanActivateNextStep { export class DeactivatePreviousStep { run(navigationInstruction: NavigationInstruction, next: Function) { - return processDeactivatable(navigationInstruction.plan, 'deactivate', next, true); + return processDeactivatable(navigationInstruction, 'deactivate', next, true); } } @@ -1624,7 +1686,8 @@ export class ActivateNextStep { } } -function processDeactivatable(plan, callbackName, next, ignoreResult) { +function processDeactivatable(navigationInstruction: NavigationInstruction, callbackName: string, next: Funcion, ignoreResult: boolean) { + const plan = navigationInstruction.plan; let infos = findDeactivatable(plan, callbackName); let i = infos.length; //query from inside out @@ -1640,7 +1703,7 @@ function processDeactivatable(plan, callbackName, next, ignoreResult) { if (i--) { try { let viewModel = infos[i]; - let result = viewModel[callbackName](); + let result = viewModel[callbackName](navigationInstruction); return processPotential(result, inspect, next.cancel); } catch (error) { return next.cancel(error); @@ -1668,10 +1731,10 @@ function findDeactivatable(plan, callbackName, list: Array = []): Array< } } - if (viewPortPlan.childNavigationInstruction) { - findDeactivatable(viewPortPlan.childNavigationInstruction.plan, callbackName, list); - } else if (prevComponent) { + if (viewPortPlan.strategy === activationStrategy.replace && prevComponent) { addPreviousDeactivatable(prevComponent, callbackName, list); + } else if (viewPortPlan.childNavigationInstruction) { + findDeactivatable(viewPortPlan.childNavigationInstruction.plan, callbackName, list); } } diff --git a/dist/commonjs/aurelia-router.js b/dist/commonjs/aurelia-router.js index ded01dfb..02d39a4d 100644 --- a/dist/commonjs/aurelia-router.js +++ b/dist/commonjs/aurelia-router.js @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.AppRouter = exports.PipelineProvider = exports.LoadRouteStep = exports.RouteLoader = exports.ActivateNextStep = exports.DeactivatePreviousStep = exports.CanActivateNextStep = exports.CanDeactivatePreviousStep = exports.Router = exports.BuildNavigationPlanStep = exports.activationStrategy = exports.RouterConfiguration = exports.RedirectToRoute = exports.Redirect = exports.NavModel = exports.NavigationInstruction = exports.CommitChangesStep = exports.Pipeline = exports.pipelineStatus = undefined; -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -36,7 +36,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" function _normalizeAbsolutePath(path, hasPushState) { - var absolute = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var absolute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (!hasPushState && path[0] !== '#') { path = '#' + path; @@ -251,7 +251,7 @@ var NavigationInstruction = exports.NavigationInstruction = function () { NavigationInstruction.prototype.getBaseUrl = function getBaseUrl() { var _this = this; - var fragment = this.fragment; + var fragment = decodeURI(this.fragment); if (fragment === '') { var nonEmptyRoute = this.router.routes.find(function (route) { @@ -263,18 +263,17 @@ var NavigationInstruction = exports.NavigationInstruction = function () { } if (!this.params) { - return fragment; + return encodeURI(fragment); } var wildcardName = this.getWildCardName(); var path = this.params[wildcardName] || ''; if (!path) { - return fragment; + return encodeURI(fragment); } - path = encodeURI(path); - return fragment.substr(0, fragment.lastIndexOf(path)); + return encodeURI(fragment.substr(0, fragment.lastIndexOf(path))); }; NavigationInstruction.prototype._commitChanges = function _commitChanges(waitToSwap) { @@ -304,17 +303,20 @@ var NavigationInstruction = exports.NavigationInstruction = function () { } if (viewPortInstruction.strategy === activationStrategy.replace) { - if (waitToSwap) { - delaySwaps.push({ viewPort: viewPort, viewPortInstruction: viewPortInstruction }); - } - - loads.push(viewPort.process(viewPortInstruction, waitToSwap).then(function (x) { - if (viewPortInstruction.childNavigationInstruction) { - return viewPortInstruction.childNavigationInstruction._commitChanges(); + if (viewPortInstruction.childNavigationInstruction && viewPortInstruction.childNavigationInstruction.parentCatchHandler) { + loads.push(viewPortInstruction.childNavigationInstruction._commitChanges()); + } else { + if (waitToSwap) { + delaySwaps.push({ viewPort: viewPort, viewPortInstruction: viewPortInstruction }); } + loads.push(viewPort.process(viewPortInstruction, waitToSwap).then(function (x) { + if (viewPortInstruction.childNavigationInstruction) { + return viewPortInstruction.childNavigationInstruction._commitChanges(); + } - return undefined; - })); + return undefined; + })); + } } else { if (viewPortInstruction.childNavigationInstruction) { loads.push(viewPortInstruction.childNavigationInstruction._commitChanges(waitToSwap)); @@ -344,7 +346,7 @@ var NavigationInstruction = exports.NavigationInstruction = function () { }; NavigationInstruction.prototype._buildTitle = function _buildTitle() { - var separator = arguments.length <= 0 || arguments[0] === undefined ? ' | ' : arguments[0]; + var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' | '; var title = ''; var childTitles = []; @@ -415,7 +417,7 @@ function isNavigationCommand(obj) { var Redirect = exports.Redirect = function () { function Redirect(url) { - var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; @@ -438,8 +440,8 @@ var Redirect = exports.Redirect = function () { var RedirectToRoute = exports.RedirectToRoute = function () { function RedirectToRoute(route) { - var params = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; - var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; @@ -511,9 +513,9 @@ var RouterConfiguration = exports.RouterConfiguration = function () { if (Array.isArray(config.route)) { for (var i = 0, ii = config.route.length; i < ii; ++i) { - var current = Object.assign({}, config); - current.route = config.route[i]; - routeConfigs.push(current); + var _current = Object.assign({}, config); + _current.route = config.route[i]; + routeConfigs.push(_current); } } else { routeConfigs.push(Object.assign({}, config)); @@ -567,9 +569,9 @@ var RouterConfiguration = exports.RouterConfiguration = function () { var pipelineProvider = router.pipelineProvider; for (var _i2 = 0, _ii2 = pipelineSteps.length; _i2 < _ii2; ++_i2) { - var _pipelineSteps$_i = pipelineSteps[_i2]; - var _name = _pipelineSteps$_i.name; - var step = _pipelineSteps$_i.step; + var _pipelineSteps$_i = pipelineSteps[_i2], + _name = _pipelineSteps$_i.name, + step = _pipelineSteps$_i.step; pipelineProvider.addStep(_name, step); } @@ -668,11 +670,11 @@ function _buildNavigationPlan(instruction, forceLifecycleMinimum) { }); } - for (var _viewPortName in config.viewPorts) { - plan[_viewPortName] = { - name: _viewPortName, + for (var viewPortName in config.viewPorts) { + plan[viewPortName] = { + name: viewPortName, strategy: activationStrategy.replace, - config: instruction.config.viewPorts[_viewPortName] + config: instruction.config.viewPorts[viewPortName] }; } @@ -837,7 +839,7 @@ var Router = exports.Router = function () { }; Router.prototype.generate = function generate(name, params) { - var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var hasRoute = this._recognizer.hasRoute(name); if ((!this.isConfigured || !hasRoute) && this.parent) { @@ -963,11 +965,11 @@ var Router = exports.Router = function () { var nav = this.navigation; for (var i = 0, length = nav.length; i < length; i++) { - var current = nav[i]; - if (!current.config.href) { - current.href = _createRootedPath(current.relativeHref, this.baseUrl, this.history._hasPushState); + var _current2 = nav[i]; + if (!_current2.config.href) { + _current2.href = _createRootedPath(_current2.relativeHref, this.baseUrl, this.history._hasPushState); } else { - current.href = _normalizeAbsolutePath(current.config.href, this.history._hasPushState); + _current2.href = _normalizeAbsolutePath(_current2.config.href, this.history._hasPushState); } } }; @@ -980,8 +982,8 @@ var Router = exports.Router = function () { }; Router.prototype._createNavigationInstruction = function _createNavigationInstruction() { - var url = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; - var parentInstruction = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1]; + var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; + var parentInstruction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var fragment = url; var queryString = ''; @@ -1027,15 +1029,50 @@ var Router = exports.Router = function () { } else if (this.catchAllHandler) { var _instruction2 = new NavigationInstruction(Object.assign({}, instructionInit, { params: { path: fragment }, - queryParams: results && results.queryParams, + queryParams: results ? results.queryParams : {}, config: null })); return evaluateNavigationStrategy(_instruction2, this.catchAllHandler); + } else if (this.parent) { + var _router = this._parentCatchAllHandler(this.parent); + + if (_router) { + var newParentInstruction = this._findParentInstructionFromRouter(_router, parentInstruction); + + var _instruction3 = new NavigationInstruction(Object.assign({}, instructionInit, { + params: { path: fragment }, + queryParams: results ? results.queryParams : {}, + router: _router, + parentInstruction: newParentInstruction, + parentCatchHandler: true, + config: null })); + + return evaluateNavigationStrategy(_instruction3, _router.catchAllHandler); + } } return Promise.reject(new Error('Route not found: ' + url)); }; + Router.prototype._findParentInstructionFromRouter = function _findParentInstructionFromRouter(router, instruction) { + if (instruction.router === router) { + instruction.fragment = router.baseUrl; + return instruction; + } else if (instruction.parentInstruction) { + return this._findParentInstructionFromRouter(router, instruction.parentInstruction); + } + return undefined; + }; + + Router.prototype._parentCatchAllHandler = function _parentCatchAllHandler(router) { + if (router.catchAllHandler) { + return router; + } else if (router.parent) { + return this._parentCatchAllHandler(router.parent); + } + return false; + }; + Router.prototype._createRouteConfig = function _createRouteConfig(config, instruction) { var _this7 = this; @@ -1106,7 +1143,7 @@ var CanDeactivatePreviousStep = exports.CanDeactivatePreviousStep = function () } CanDeactivatePreviousStep.prototype.run = function run(navigationInstruction, next) { - return processDeactivatable(navigationInstruction.plan, 'canDeactivate', next); + return processDeactivatable(navigationInstruction, 'canDeactivate', next); }; return CanDeactivatePreviousStep; @@ -1130,7 +1167,7 @@ var DeactivatePreviousStep = exports.DeactivatePreviousStep = function () { } DeactivatePreviousStep.prototype.run = function run(navigationInstruction, next) { - return processDeactivatable(navigationInstruction.plan, 'deactivate', next, true); + return processDeactivatable(navigationInstruction, 'deactivate', next, true); }; return DeactivatePreviousStep; @@ -1148,7 +1185,8 @@ var ActivateNextStep = exports.ActivateNextStep = function () { return ActivateNextStep; }(); -function processDeactivatable(plan, callbackName, next, ignoreResult) { +function processDeactivatable(navigationInstruction, callbackName, next, ignoreResult) { + var plan = navigationInstruction.plan; var infos = findDeactivatable(plan, callbackName); var i = infos.length; @@ -1164,7 +1202,7 @@ function processDeactivatable(plan, callbackName, next, ignoreResult) { if (i--) { try { var viewModel = infos[i]; - var _result = viewModel[callbackName](); + var _result = viewModel[callbackName](navigationInstruction); return processPotential(_result, inspect, next.cancel); } catch (error) { return next.cancel(error); @@ -1178,7 +1216,7 @@ function processDeactivatable(plan, callbackName, next, ignoreResult) { } function findDeactivatable(plan, callbackName) { - var list = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; + var list = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; for (var viewPortName in plan) { var _viewPortPlan = plan[viewPortName]; @@ -1192,10 +1230,10 @@ function findDeactivatable(plan, callbackName) { } } - if (_viewPortPlan.childNavigationInstruction) { - findDeactivatable(_viewPortPlan.childNavigationInstruction.plan, callbackName, list); - } else if (prevComponent) { + if (_viewPortPlan.strategy === activationStrategy.replace && prevComponent) { addPreviousDeactivatable(prevComponent, callbackName, list); + } else if (_viewPortPlan.childNavigationInstruction) { + findDeactivatable(_viewPortPlan.childNavigationInstruction.plan, callbackName, list); } } @@ -1240,19 +1278,13 @@ function processActivatable(navigationInstruction, callbackName, next, ignoreRes if (i < length) { try { - var _ret3 = function () { - var _current$viewModel; - - var current = infos[i]; - var result = (_current$viewModel = current.viewModel)[callbackName].apply(_current$viewModel, current.lifecycleArgs); - return { - v: processPotential(result, function (val) { - return inspect(val, current.router); - }, next.cancel) - }; - }(); - - if ((typeof _ret3 === 'undefined' ? 'undefined' : _typeof(_ret3)) === "object") return _ret3.v; + var _current3$viewModel; + + var _current3 = infos[i]; + var _result2 = (_current3$viewModel = _current3.viewModel)[callbackName].apply(_current3$viewModel, _current3.lifecycleArgs); + return processPotential(_result2, function (val) { + return inspect(val, _current3.router); + }, next.cancel); } catch (error) { return next.cancel(error); } @@ -1265,7 +1297,7 @@ function processActivatable(navigationInstruction, callbackName, next, ignoreRes } function findActivatable(navigationInstruction, callbackName) { - var list = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; + var list = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; var router = arguments[3]; var plan = navigationInstruction.plan; @@ -1343,35 +1375,29 @@ function processPotential(obj, resolve, reject) { } if (obj && typeof obj.subscribe === 'function') { - var _ret4 = function () { - var obs = obj; - return { - v: new SafeSubscription(function (sub) { - return obs.subscribe({ - next: function next() { - if (sub.subscribed) { - sub.unsubscribe(); - resolve(obj); - } - }, - error: function error(_error) { - if (sub.subscribed) { - sub.unsubscribe(); - reject(_error); - } - }, - complete: function complete() { - if (sub.subscribed) { - sub.unsubscribe(); - resolve(obj); - } - } - }); - }) - }; - }(); - - if ((typeof _ret4 === 'undefined' ? 'undefined' : _typeof(_ret4)) === "object") return _ret4.v; + var obs = obj; + return new SafeSubscription(function (sub) { + return obs.subscribe({ + next: function next() { + if (sub.subscribed) { + sub.unsubscribe(); + resolve(obj); + } + }, + error: function error(_error) { + if (sub.subscribed) { + sub.unsubscribe(); + reject(_error); + } + }, + complete: function complete() { + if (sub.subscribed) { + sub.unsubscribe(); + resolve(obj); + } + } + }); + }); } try { @@ -1421,7 +1447,7 @@ function loadNewRoute(routeLoader, navigationInstruction) { } function determineWhatToLoad(navigationInstruction) { - var toLoad = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1]; + var toLoad = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var plan = navigationInstruction.plan; @@ -1478,27 +1504,21 @@ function loadComponent(routeLoader, navigationInstruction, config) { var lifecycleArgs = navigationInstruction.lifecycleArgs; return routeLoader.loadRoute(router, config, navigationInstruction).then(function (component) { - var viewModel = component.viewModel; - var childContainer = component.childContainer; + var viewModel = component.viewModel, + childContainer = component.childContainer; component.router = router; component.config = config; if ('configureRouter' in viewModel) { - var _ret5 = function () { - var childRouter = childContainer.getChildRouter(); - component.childRouter = childRouter; + var childRouter = childContainer.getChildRouter(); + component.childRouter = childRouter; - return { - v: childRouter.configure(function (c) { - return viewModel.configureRouter.apply(viewModel, [c, childRouter].concat(lifecycleArgs)); - }).then(function () { - return component; - }) - }; - }(); - - if ((typeof _ret5 === 'undefined' ? 'undefined' : _typeof(_ret5)) === "object") return _ret5.v; + return childRouter.configure(function (c) { + return viewModel.configureRouter.apply(viewModel, [c, childRouter].concat(lifecycleArgs)); + }).then(function () { + return component; + }); } return component; @@ -1574,7 +1594,7 @@ var PipelineProvider = exports.PipelineProvider = function () { }; PipelineProvider.prototype._clearSteps = function _clearSteps() { - var name = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var slot = this._findStep(name); if (slot) { @@ -1642,33 +1662,21 @@ var AppRouter = exports.AppRouter = function (_Router) { _Router.prototype.registerViewPort.call(this, viewPort, name); if (!this.isActive) { - var _ret6 = function () { - var viewModel = _this12._findViewModel(viewPort); - if ('configureRouter' in viewModel) { - if (!_this12.isConfigured) { - var _ret7 = function () { - var resolveConfiguredPromise = _this12._resolveConfiguredPromise; - _this12._resolveConfiguredPromise = function () {}; - return { - v: { - v: _this12.configure(function (config) { - return viewModel.configureRouter(config, _this12); - }).then(function () { - _this12.activate(); - resolveConfiguredPromise(); - }) - } - }; - }(); - - if ((typeof _ret7 === 'undefined' ? 'undefined' : _typeof(_ret7)) === "object") return _ret7.v; - } - } else { - _this12.activate(); + var viewModel = this._findViewModel(viewPort); + if ('configureRouter' in viewModel) { + if (!this.isConfigured) { + var resolveConfiguredPromise = this._resolveConfiguredPromise; + this._resolveConfiguredPromise = function () {}; + return this.configure(function (config) { + return viewModel.configureRouter(config, _this12); + }).then(function () { + _this12.activate(); + resolveConfiguredPromise(); + }); } - }(); - - if ((typeof _ret6 === 'undefined' ? 'undefined' : _typeof(_ret6)) === "object") return _ret6.v; + } else { + this.activate(); + } } else { this._dequeueInstruction(); } @@ -1705,7 +1713,7 @@ var AppRouter = exports.AppRouter = function (_Router) { AppRouter.prototype._dequeueInstruction = function _dequeueInstruction() { var _this14 = this; - var instructionCount = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0]; + var instructionCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; return Promise.resolve().then(function () { if (_this14.isNavigating && !instructionCount) { diff --git a/dist/es2015/aurelia-router.js b/dist/es2015/aurelia-router.js index 6d6fea5b..0ad5a318 100644 --- a/dist/es2015/aurelia-router.js +++ b/dist/es2015/aurelia-router.js @@ -201,7 +201,7 @@ export let NavigationInstruction = class NavigationInstruction { } getBaseUrl() { - let fragment = this.fragment; + let fragment = decodeURI(this.fragment); if (fragment === '') { let nonEmptyRoute = this.router.routes.find(route => { @@ -213,18 +213,17 @@ export let NavigationInstruction = class NavigationInstruction { } if (!this.params) { - return fragment; + return encodeURI(fragment); } let wildcardName = this.getWildCardName(); let path = this.params[wildcardName] || ''; if (!path) { - return fragment; + return encodeURI(fragment); } - path = encodeURI(path); - return fragment.substr(0, fragment.lastIndexOf(path)); + return encodeURI(fragment.substr(0, fragment.lastIndexOf(path))); } _commitChanges(waitToSwap) { @@ -248,21 +247,24 @@ export let NavigationInstruction = class NavigationInstruction { let viewPort = router.viewPorts[viewPortName]; if (!viewPort) { - throw new Error(`There was no router-view found in the view for ${ viewPortInstruction.moduleId }.`); + throw new Error(`There was no router-view found in the view for ${viewPortInstruction.moduleId}.`); } if (viewPortInstruction.strategy === activationStrategy.replace) { - if (waitToSwap) { - delaySwaps.push({ viewPort, viewPortInstruction }); - } - - loads.push(viewPort.process(viewPortInstruction, waitToSwap).then(x => { - if (viewPortInstruction.childNavigationInstruction) { - return viewPortInstruction.childNavigationInstruction._commitChanges(); + if (viewPortInstruction.childNavigationInstruction && viewPortInstruction.childNavigationInstruction.parentCatchHandler) { + loads.push(viewPortInstruction.childNavigationInstruction._commitChanges()); + } else { + if (waitToSwap) { + delaySwaps.push({ viewPort, viewPortInstruction }); } + loads.push(viewPort.process(viewPortInstruction, waitToSwap).then(x => { + if (viewPortInstruction.childNavigationInstruction) { + return viewPortInstruction.childNavigationInstruction._commitChanges(); + } - return undefined; - })); + return undefined; + })); + } } else { if (viewPortInstruction.childNavigationInstruction) { loads.push(viewPortInstruction.childNavigationInstruction._commitChanges(waitToSwap)); @@ -529,7 +531,7 @@ export function _buildNavigationPlan(instruction, forceLifecycleMinimum) { let prevViewPortInstruction = prev.viewPortInstructions[viewPortName]; let nextViewPortConfig = config.viewPorts[viewPortName]; - if (!nextViewPortConfig) throw new Error(`Invalid Route Config: Configuration for viewPort "${ viewPortName }" was not found for route: "${ instruction.config.route }."`); + if (!nextViewPortConfig) throw new Error(`Invalid Route Config: Configuration for viewPort "${viewPortName}" was not found for route: "${instruction.config.route}."`); let viewPortPlan = plan[viewPortName] = { name: viewPortName, @@ -738,12 +740,12 @@ export let Router = class Router { } if (!hasRoute) { - throw new Error(`A route with name '${ name }' could not be found. Check that \`name: '${ name }'\` was specified in the route's config.`); + throw new Error(`A route with name '${name}' could not be found. Check that \`name: '${name}'\` was specified in the route's config.`); } let path = this._recognizer.generate(name, params); let rootedPath = _createRootedPath(path, this.baseUrl, this.history._hasPushState, options.absolute); - return options.absolute ? `${ this.history.getAbsoluteRoot() }${ rootedPath }` : rootedPath; + return options.absolute ? `${this.history.getAbsoluteRoot()}${rootedPath}` : rootedPath; } createNavModel(config) { @@ -787,7 +789,7 @@ export let Router = class Router { delete config.settings; let withChild = JSON.parse(JSON.stringify(config)); config.settings = settings; - withChild.route = `${ path }/*childRoute`; + withChild.route = `${path}/*childRoute`; withChild.hasChildRouter = true; this._childRecognizer.add({ path: withChild.route, @@ -913,13 +915,48 @@ export let Router = class Router { } else if (this.catchAllHandler) { let instruction = new NavigationInstruction(Object.assign({}, instructionInit, { params: { path: fragment }, - queryParams: results && results.queryParams, + queryParams: results ? results.queryParams : {}, config: null })); return evaluateNavigationStrategy(instruction, this.catchAllHandler); + } else if (this.parent) { + let router = this._parentCatchAllHandler(this.parent); + + if (router) { + let newParentInstruction = this._findParentInstructionFromRouter(router, parentInstruction); + + let instruction = new NavigationInstruction(Object.assign({}, instructionInit, { + params: { path: fragment }, + queryParams: results ? results.queryParams : {}, + router: router, + parentInstruction: newParentInstruction, + parentCatchHandler: true, + config: null })); + + return evaluateNavigationStrategy(instruction, router.catchAllHandler); + } + } + + return Promise.reject(new Error(`Route not found: ${url}`)); + } + + _findParentInstructionFromRouter(router, instruction) { + if (instruction.router === router) { + instruction.fragment = router.baseUrl; + return instruction; + } else if (instruction.parentInstruction) { + return this._findParentInstructionFromRouter(router, instruction.parentInstruction); } + return undefined; + } - return Promise.reject(new Error(`Route not found: ${ url }`)); + _parentCatchAllHandler(router) { + if (router.catchAllHandler) { + return router; + } else if (router.parent) { + return this._parentCatchAllHandler(router.parent); + } + return false; } _createRouteConfig(config, instruction) { @@ -975,7 +1012,7 @@ function evaluateNavigationStrategy(instruction, evaluator, context) { export let CanDeactivatePreviousStep = class CanDeactivatePreviousStep { run(navigationInstruction, next) { - return processDeactivatable(navigationInstruction.plan, 'canDeactivate', next); + return processDeactivatable(navigationInstruction, 'canDeactivate', next); } }; @@ -987,7 +1024,7 @@ export let CanActivateNextStep = class CanActivateNextStep { export let DeactivatePreviousStep = class DeactivatePreviousStep { run(navigationInstruction, next) { - return processDeactivatable(navigationInstruction.plan, 'deactivate', next, true); + return processDeactivatable(navigationInstruction, 'deactivate', next, true); } }; @@ -997,7 +1034,8 @@ export let ActivateNextStep = class ActivateNextStep { } }; -function processDeactivatable(plan, callbackName, next, ignoreResult) { +function processDeactivatable(navigationInstruction, callbackName, next, ignoreResult) { + const plan = navigationInstruction.plan; let infos = findDeactivatable(plan, callbackName); let i = infos.length; @@ -1013,7 +1051,7 @@ function processDeactivatable(plan, callbackName, next, ignoreResult) { if (i--) { try { let viewModel = infos[i]; - let result = viewModel[callbackName](); + let result = viewModel[callbackName](navigationInstruction); return processPotential(result, inspect, next.cancel); } catch (error) { return next.cancel(error); @@ -1039,10 +1077,10 @@ function findDeactivatable(plan, callbackName, list = []) { } } - if (viewPortPlan.childNavigationInstruction) { - findDeactivatable(viewPortPlan.childNavigationInstruction.plan, callbackName, list); - } else if (prevComponent) { + if (viewPortPlan.strategy === activationStrategy.replace && prevComponent) { addPreviousDeactivatable(prevComponent, callbackName, list); + } else if (viewPortPlan.childNavigationInstruction) { + findDeactivatable(viewPortPlan.childNavigationInstruction.plan, callbackName, list); } } @@ -1341,7 +1379,7 @@ export let PipelineProvider = class PipelineProvider { found.steps.push(step); } } else { - throw new Error(`Invalid pipeline slot name: ${ name }.`); + throw new Error(`Invalid pipeline slot name: ${name}.`); } } @@ -1468,7 +1506,7 @@ export let AppRouter = class AppRouter extends Router { if (!instructionCount) { this.events.publish('router:navigation:processing', { instruction }); } else if (instructionCount === this.maxInstructionCount - 1) { - logger.error(`${ instructionCount + 1 } navigation instructions have been attempted without success. Restoring last known good location.`); + logger.error(`${instructionCount + 1} navigation instructions have been attempted without success. Restoring last known good location.`); restorePreviousLocation(this); return this._dequeueInstruction(instructionCount + 1); } else if (instructionCount > this.maxInstructionCount) { @@ -1508,7 +1546,7 @@ export let AppRouter = class AppRouter extends Router { function processResult(instruction, result, instructionCount, router) { if (!(result && 'completed' in result && 'output' in result)) { result = result || {}; - result.output = new Error(`Expected router pipeline to return a navigation result, but got [${ JSON.stringify(result) }] instead.`); + result.output = new Error(`Expected router pipeline to return a navigation result, but got [${JSON.stringify(result)}] instead.`); } let finalResult = null; @@ -1550,7 +1588,7 @@ function resolveInstruction(instruction, result, isInnerInstruction, router) { eventName = 'success'; } - router.events.publish(`router:navigation:${ eventName }`, eventArgs); + router.events.publish(`router:navigation:${eventName}`, eventArgs); router.events.publish('router:navigation:complete', eventArgs); } else { router.events.publish('router:navigation:child:complete', eventArgs); diff --git a/dist/native-modules/aurelia-router.js b/dist/native-modules/aurelia-router.js index 9293a169..3fa5f8e1 100644 --- a/dist/native-modules/aurelia-router.js +++ b/dist/native-modules/aurelia-router.js @@ -1,4 +1,4 @@ -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); @@ -15,7 +15,7 @@ import { History } from 'aurelia-history'; import { EventAggregator } from 'aurelia-event-aggregator'; export function _normalizeAbsolutePath(path, hasPushState) { - var absolute = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var absolute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (!hasPushState && path[0] !== '#') { path = '#' + path; @@ -230,7 +230,7 @@ export var NavigationInstruction = function () { NavigationInstruction.prototype.getBaseUrl = function getBaseUrl() { var _this = this; - var fragment = this.fragment; + var fragment = decodeURI(this.fragment); if (fragment === '') { var nonEmptyRoute = this.router.routes.find(function (route) { @@ -242,18 +242,17 @@ export var NavigationInstruction = function () { } if (!this.params) { - return fragment; + return encodeURI(fragment); } var wildcardName = this.getWildCardName(); var path = this.params[wildcardName] || ''; if (!path) { - return fragment; + return encodeURI(fragment); } - path = encodeURI(path); - return fragment.substr(0, fragment.lastIndexOf(path)); + return encodeURI(fragment.substr(0, fragment.lastIndexOf(path))); }; NavigationInstruction.prototype._commitChanges = function _commitChanges(waitToSwap) { @@ -283,17 +282,20 @@ export var NavigationInstruction = function () { } if (viewPortInstruction.strategy === activationStrategy.replace) { - if (waitToSwap) { - delaySwaps.push({ viewPort: viewPort, viewPortInstruction: viewPortInstruction }); - } - - loads.push(viewPort.process(viewPortInstruction, waitToSwap).then(function (x) { - if (viewPortInstruction.childNavigationInstruction) { - return viewPortInstruction.childNavigationInstruction._commitChanges(); + if (viewPortInstruction.childNavigationInstruction && viewPortInstruction.childNavigationInstruction.parentCatchHandler) { + loads.push(viewPortInstruction.childNavigationInstruction._commitChanges()); + } else { + if (waitToSwap) { + delaySwaps.push({ viewPort: viewPort, viewPortInstruction: viewPortInstruction }); } + loads.push(viewPort.process(viewPortInstruction, waitToSwap).then(function (x) { + if (viewPortInstruction.childNavigationInstruction) { + return viewPortInstruction.childNavigationInstruction._commitChanges(); + } - return undefined; - })); + return undefined; + })); + } } else { if (viewPortInstruction.childNavigationInstruction) { loads.push(viewPortInstruction.childNavigationInstruction._commitChanges(waitToSwap)); @@ -323,7 +325,7 @@ export var NavigationInstruction = function () { }; NavigationInstruction.prototype._buildTitle = function _buildTitle() { - var separator = arguments.length <= 0 || arguments[0] === undefined ? ' | ' : arguments[0]; + var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' | '; var title = ''; var childTitles = []; @@ -394,7 +396,7 @@ export function isNavigationCommand(obj) { export var Redirect = function () { function Redirect(url) { - var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; @@ -417,8 +419,8 @@ export var Redirect = function () { export var RedirectToRoute = function () { function RedirectToRoute(route) { - var params = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; - var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; @@ -490,9 +492,9 @@ export var RouterConfiguration = function () { if (Array.isArray(config.route)) { for (var i = 0, ii = config.route.length; i < ii; ++i) { - var current = Object.assign({}, config); - current.route = config.route[i]; - routeConfigs.push(current); + var _current = Object.assign({}, config); + _current.route = config.route[i]; + routeConfigs.push(_current); } } else { routeConfigs.push(Object.assign({}, config)); @@ -546,9 +548,9 @@ export var RouterConfiguration = function () { var pipelineProvider = router.pipelineProvider; for (var _i2 = 0, _ii2 = pipelineSteps.length; _i2 < _ii2; ++_i2) { - var _pipelineSteps$_i = pipelineSteps[_i2]; - var _name = _pipelineSteps$_i.name; - var step = _pipelineSteps$_i.step; + var _pipelineSteps$_i = pipelineSteps[_i2], + _name = _pipelineSteps$_i.name, + step = _pipelineSteps$_i.step; pipelineProvider.addStep(_name, step); } @@ -647,11 +649,11 @@ export function _buildNavigationPlan(instruction, forceLifecycleMinimum) { }); } - for (var _viewPortName in config.viewPorts) { - plan[_viewPortName] = { - name: _viewPortName, + for (var viewPortName in config.viewPorts) { + plan[viewPortName] = { + name: viewPortName, strategy: activationStrategy.replace, - config: instruction.config.viewPorts[_viewPortName] + config: instruction.config.viewPorts[viewPortName] }; } @@ -816,7 +818,7 @@ export var Router = function () { }; Router.prototype.generate = function generate(name, params) { - var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var hasRoute = this._recognizer.hasRoute(name); if ((!this.isConfigured || !hasRoute) && this.parent) { @@ -942,11 +944,11 @@ export var Router = function () { var nav = this.navigation; for (var i = 0, length = nav.length; i < length; i++) { - var current = nav[i]; - if (!current.config.href) { - current.href = _createRootedPath(current.relativeHref, this.baseUrl, this.history._hasPushState); + var _current2 = nav[i]; + if (!_current2.config.href) { + _current2.href = _createRootedPath(_current2.relativeHref, this.baseUrl, this.history._hasPushState); } else { - current.href = _normalizeAbsolutePath(current.config.href, this.history._hasPushState); + _current2.href = _normalizeAbsolutePath(_current2.config.href, this.history._hasPushState); } } }; @@ -959,8 +961,8 @@ export var Router = function () { }; Router.prototype._createNavigationInstruction = function _createNavigationInstruction() { - var url = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; - var parentInstruction = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1]; + var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; + var parentInstruction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var fragment = url; var queryString = ''; @@ -1006,15 +1008,50 @@ export var Router = function () { } else if (this.catchAllHandler) { var _instruction2 = new NavigationInstruction(Object.assign({}, instructionInit, { params: { path: fragment }, - queryParams: results && results.queryParams, + queryParams: results ? results.queryParams : {}, config: null })); return evaluateNavigationStrategy(_instruction2, this.catchAllHandler); + } else if (this.parent) { + var _router = this._parentCatchAllHandler(this.parent); + + if (_router) { + var newParentInstruction = this._findParentInstructionFromRouter(_router, parentInstruction); + + var _instruction3 = new NavigationInstruction(Object.assign({}, instructionInit, { + params: { path: fragment }, + queryParams: results ? results.queryParams : {}, + router: _router, + parentInstruction: newParentInstruction, + parentCatchHandler: true, + config: null })); + + return evaluateNavigationStrategy(_instruction3, _router.catchAllHandler); + } } return Promise.reject(new Error('Route not found: ' + url)); }; + Router.prototype._findParentInstructionFromRouter = function _findParentInstructionFromRouter(router, instruction) { + if (instruction.router === router) { + instruction.fragment = router.baseUrl; + return instruction; + } else if (instruction.parentInstruction) { + return this._findParentInstructionFromRouter(router, instruction.parentInstruction); + } + return undefined; + }; + + Router.prototype._parentCatchAllHandler = function _parentCatchAllHandler(router) { + if (router.catchAllHandler) { + return router; + } else if (router.parent) { + return this._parentCatchAllHandler(router.parent); + } + return false; + }; + Router.prototype._createRouteConfig = function _createRouteConfig(config, instruction) { var _this7 = this; @@ -1085,7 +1122,7 @@ export var CanDeactivatePreviousStep = function () { } CanDeactivatePreviousStep.prototype.run = function run(navigationInstruction, next) { - return processDeactivatable(navigationInstruction.plan, 'canDeactivate', next); + return processDeactivatable(navigationInstruction, 'canDeactivate', next); }; return CanDeactivatePreviousStep; @@ -1109,7 +1146,7 @@ export var DeactivatePreviousStep = function () { } DeactivatePreviousStep.prototype.run = function run(navigationInstruction, next) { - return processDeactivatable(navigationInstruction.plan, 'deactivate', next, true); + return processDeactivatable(navigationInstruction, 'deactivate', next, true); }; return DeactivatePreviousStep; @@ -1127,7 +1164,8 @@ export var ActivateNextStep = function () { return ActivateNextStep; }(); -function processDeactivatable(plan, callbackName, next, ignoreResult) { +function processDeactivatable(navigationInstruction, callbackName, next, ignoreResult) { + var plan = navigationInstruction.plan; var infos = findDeactivatable(plan, callbackName); var i = infos.length; @@ -1143,7 +1181,7 @@ function processDeactivatable(plan, callbackName, next, ignoreResult) { if (i--) { try { var viewModel = infos[i]; - var _result = viewModel[callbackName](); + var _result = viewModel[callbackName](navigationInstruction); return processPotential(_result, inspect, next.cancel); } catch (error) { return next.cancel(error); @@ -1157,7 +1195,7 @@ function processDeactivatable(plan, callbackName, next, ignoreResult) { } function findDeactivatable(plan, callbackName) { - var list = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; + var list = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; for (var viewPortName in plan) { var _viewPortPlan = plan[viewPortName]; @@ -1171,10 +1209,10 @@ function findDeactivatable(plan, callbackName) { } } - if (_viewPortPlan.childNavigationInstruction) { - findDeactivatable(_viewPortPlan.childNavigationInstruction.plan, callbackName, list); - } else if (prevComponent) { + if (_viewPortPlan.strategy === activationStrategy.replace && prevComponent) { addPreviousDeactivatable(prevComponent, callbackName, list); + } else if (_viewPortPlan.childNavigationInstruction) { + findDeactivatable(_viewPortPlan.childNavigationInstruction.plan, callbackName, list); } } @@ -1219,19 +1257,13 @@ function processActivatable(navigationInstruction, callbackName, next, ignoreRes if (i < length) { try { - var _ret3 = function () { - var _current$viewModel; - - var current = infos[i]; - var result = (_current$viewModel = current.viewModel)[callbackName].apply(_current$viewModel, current.lifecycleArgs); - return { - v: processPotential(result, function (val) { - return inspect(val, current.router); - }, next.cancel) - }; - }(); - - if ((typeof _ret3 === 'undefined' ? 'undefined' : _typeof(_ret3)) === "object") return _ret3.v; + var _current3$viewModel; + + var _current3 = infos[i]; + var _result2 = (_current3$viewModel = _current3.viewModel)[callbackName].apply(_current3$viewModel, _current3.lifecycleArgs); + return processPotential(_result2, function (val) { + return inspect(val, _current3.router); + }, next.cancel); } catch (error) { return next.cancel(error); } @@ -1244,7 +1276,7 @@ function processActivatable(navigationInstruction, callbackName, next, ignoreRes } function findActivatable(navigationInstruction, callbackName) { - var list = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; + var list = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; var router = arguments[3]; var plan = navigationInstruction.plan; @@ -1322,35 +1354,29 @@ function processPotential(obj, resolve, reject) { } if (obj && typeof obj.subscribe === 'function') { - var _ret4 = function () { - var obs = obj; - return { - v: new SafeSubscription(function (sub) { - return obs.subscribe({ - next: function next() { - if (sub.subscribed) { - sub.unsubscribe(); - resolve(obj); - } - }, - error: function error(_error) { - if (sub.subscribed) { - sub.unsubscribe(); - reject(_error); - } - }, - complete: function complete() { - if (sub.subscribed) { - sub.unsubscribe(); - resolve(obj); - } - } - }); - }) - }; - }(); - - if ((typeof _ret4 === 'undefined' ? 'undefined' : _typeof(_ret4)) === "object") return _ret4.v; + var obs = obj; + return new SafeSubscription(function (sub) { + return obs.subscribe({ + next: function next() { + if (sub.subscribed) { + sub.unsubscribe(); + resolve(obj); + } + }, + error: function error(_error) { + if (sub.subscribed) { + sub.unsubscribe(); + reject(_error); + } + }, + complete: function complete() { + if (sub.subscribed) { + sub.unsubscribe(); + resolve(obj); + } + } + }); + }); } try { @@ -1400,7 +1426,7 @@ function loadNewRoute(routeLoader, navigationInstruction) { } function determineWhatToLoad(navigationInstruction) { - var toLoad = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1]; + var toLoad = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var plan = navigationInstruction.plan; @@ -1457,27 +1483,21 @@ function loadComponent(routeLoader, navigationInstruction, config) { var lifecycleArgs = navigationInstruction.lifecycleArgs; return routeLoader.loadRoute(router, config, navigationInstruction).then(function (component) { - var viewModel = component.viewModel; - var childContainer = component.childContainer; + var viewModel = component.viewModel, + childContainer = component.childContainer; component.router = router; component.config = config; if ('configureRouter' in viewModel) { - var _ret5 = function () { - var childRouter = childContainer.getChildRouter(); - component.childRouter = childRouter; + var childRouter = childContainer.getChildRouter(); + component.childRouter = childRouter; - return { - v: childRouter.configure(function (c) { - return viewModel.configureRouter.apply(viewModel, [c, childRouter].concat(lifecycleArgs)); - }).then(function () { - return component; - }) - }; - }(); - - if ((typeof _ret5 === 'undefined' ? 'undefined' : _typeof(_ret5)) === "object") return _ret5.v; + return childRouter.configure(function (c) { + return viewModel.configureRouter.apply(viewModel, [c, childRouter].concat(lifecycleArgs)); + }).then(function () { + return component; + }); } return component; @@ -1553,7 +1573,7 @@ export var PipelineProvider = function () { }; PipelineProvider.prototype._clearSteps = function _clearSteps() { - var name = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var slot = this._findStep(name); if (slot) { @@ -1621,33 +1641,21 @@ export var AppRouter = function (_Router) { _Router.prototype.registerViewPort.call(this, viewPort, name); if (!this.isActive) { - var _ret6 = function () { - var viewModel = _this12._findViewModel(viewPort); - if ('configureRouter' in viewModel) { - if (!_this12.isConfigured) { - var _ret7 = function () { - var resolveConfiguredPromise = _this12._resolveConfiguredPromise; - _this12._resolveConfiguredPromise = function () {}; - return { - v: { - v: _this12.configure(function (config) { - return viewModel.configureRouter(config, _this12); - }).then(function () { - _this12.activate(); - resolveConfiguredPromise(); - }) - } - }; - }(); - - if ((typeof _ret7 === 'undefined' ? 'undefined' : _typeof(_ret7)) === "object") return _ret7.v; - } - } else { - _this12.activate(); + var viewModel = this._findViewModel(viewPort); + if ('configureRouter' in viewModel) { + if (!this.isConfigured) { + var resolveConfiguredPromise = this._resolveConfiguredPromise; + this._resolveConfiguredPromise = function () {}; + return this.configure(function (config) { + return viewModel.configureRouter(config, _this12); + }).then(function () { + _this12.activate(); + resolveConfiguredPromise(); + }); } - }(); - - if ((typeof _ret6 === 'undefined' ? 'undefined' : _typeof(_ret6)) === "object") return _ret6.v; + } else { + this.activate(); + } } else { this._dequeueInstruction(); } @@ -1684,7 +1692,7 @@ export var AppRouter = function (_Router) { AppRouter.prototype._dequeueInstruction = function _dequeueInstruction() { var _this14 = this; - var instructionCount = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0]; + var instructionCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; return Promise.resolve().then(function () { if (_this14.isNavigating && !instructionCount) { diff --git a/dist/system/aurelia-router.js b/dist/system/aurelia-router.js index d6a713bb..307864c1 100644 --- a/dist/system/aurelia-router.js +++ b/dist/system/aurelia-router.js @@ -32,7 +32,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende function _normalizeAbsolutePath(path, hasPushState) { - var absolute = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var absolute = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; if (!hasPushState && path[0] !== '#') { path = '#' + path; @@ -168,11 +168,11 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende }); } - for (var _viewPortName in config.viewPorts) { - plan[_viewPortName] = { - name: _viewPortName, + for (var viewPortName in config.viewPorts) { + plan[viewPortName] = { + name: viewPortName, strategy: activationStrategy.replace, - config: instruction.config.viewPorts[_viewPortName] + config: instruction.config.viewPorts[viewPortName] }; } @@ -269,7 +269,8 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende }); } - function processDeactivatable(plan, callbackName, next, ignoreResult) { + function processDeactivatable(navigationInstruction, callbackName, next, ignoreResult) { + var plan = navigationInstruction.plan; var infos = findDeactivatable(plan, callbackName); var i = infos.length; @@ -285,7 +286,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende if (i--) { try { var viewModel = infos[i]; - var _result = viewModel[callbackName](); + var _result = viewModel[callbackName](navigationInstruction); return processPotential(_result, inspect, next.cancel); } catch (error) { return next.cancel(error); @@ -299,7 +300,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende } function findDeactivatable(plan, callbackName) { - var list = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; + var list = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; for (var viewPortName in plan) { var _viewPortPlan = plan[viewPortName]; @@ -313,10 +314,10 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende } } - if (_viewPortPlan.childNavigationInstruction) { - findDeactivatable(_viewPortPlan.childNavigationInstruction.plan, callbackName, list); - } else if (prevComponent) { + if (_viewPortPlan.strategy === activationStrategy.replace && prevComponent) { addPreviousDeactivatable(prevComponent, callbackName, list); + } else if (_viewPortPlan.childNavigationInstruction) { + findDeactivatable(_viewPortPlan.childNavigationInstruction.plan, callbackName, list); } } @@ -361,19 +362,13 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende if (i < length) { try { - var _ret3 = function () { - var _current$viewModel; - - var current = infos[i]; - var result = (_current$viewModel = current.viewModel)[callbackName].apply(_current$viewModel, current.lifecycleArgs); - return { - v: processPotential(result, function (val) { - return inspect(val, current.router); - }, next.cancel) - }; - }(); + var _current3$viewModel; - if ((typeof _ret3 === 'undefined' ? 'undefined' : _typeof(_ret3)) === "object") return _ret3.v; + var _current3 = infos[i]; + var _result2 = (_current3$viewModel = _current3.viewModel)[callbackName].apply(_current3$viewModel, _current3.lifecycleArgs); + return processPotential(_result2, function (val) { + return inspect(val, _current3.router); + }, next.cancel); } catch (error) { return next.cancel(error); } @@ -386,7 +381,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende } function findActivatable(navigationInstruction, callbackName) { - var list = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; + var list = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; var router = arguments[3]; var plan = navigationInstruction.plan; @@ -438,35 +433,29 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende } if (obj && typeof obj.subscribe === 'function') { - var _ret4 = function () { - var obs = obj; - return { - v: new SafeSubscription(function (sub) { - return obs.subscribe({ - next: function next() { - if (sub.subscribed) { - sub.unsubscribe(); - resolve(obj); - } - }, - error: function error(_error) { - if (sub.subscribed) { - sub.unsubscribe(); - reject(_error); - } - }, - complete: function complete() { - if (sub.subscribed) { - sub.unsubscribe(); - resolve(obj); - } - } - }); - }) - }; - }(); - - if ((typeof _ret4 === 'undefined' ? 'undefined' : _typeof(_ret4)) === "object") return _ret4.v; + var obs = obj; + return new SafeSubscription(function (sub) { + return obs.subscribe({ + next: function next() { + if (sub.subscribed) { + sub.unsubscribe(); + resolve(obj); + } + }, + error: function error(_error) { + if (sub.subscribed) { + sub.unsubscribe(); + reject(_error); + } + }, + complete: function complete() { + if (sub.subscribed) { + sub.unsubscribe(); + resolve(obj); + } + } + }); + }); } try { @@ -486,7 +475,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende } function determineWhatToLoad(navigationInstruction) { - var toLoad = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1]; + var toLoad = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; var plan = navigationInstruction.plan; @@ -543,27 +532,21 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende var lifecycleArgs = navigationInstruction.lifecycleArgs; return routeLoader.loadRoute(router, config, navigationInstruction).then(function (component) { - var viewModel = component.viewModel; - var childContainer = component.childContainer; + var viewModel = component.viewModel, + childContainer = component.childContainer; component.router = router; component.config = config; if ('configureRouter' in viewModel) { - var _ret5 = function () { - var childRouter = childContainer.getChildRouter(); - component.childRouter = childRouter; - - return { - v: childRouter.configure(function (c) { - return viewModel.configureRouter.apply(viewModel, [c, childRouter].concat(lifecycleArgs)); - }).then(function () { - return component; - }) - }; - }(); + var childRouter = childContainer.getChildRouter(); + component.childRouter = childRouter; - if ((typeof _ret5 === 'undefined' ? 'undefined' : _typeof(_ret5)) === "object") return _ret5.v; + return childRouter.configure(function (c) { + return viewModel.configureRouter.apply(viewModel, [c, childRouter].concat(lifecycleArgs)); + }).then(function () { + return component; + }); } return component; @@ -652,7 +635,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; _createClass = function () { @@ -843,7 +826,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende NavigationInstruction.prototype.getBaseUrl = function getBaseUrl() { var _this = this; - var fragment = this.fragment; + var fragment = decodeURI(this.fragment); if (fragment === '') { var nonEmptyRoute = this.router.routes.find(function (route) { @@ -855,18 +838,17 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende } if (!this.params) { - return fragment; + return encodeURI(fragment); } var wildcardName = this.getWildCardName(); var path = this.params[wildcardName] || ''; if (!path) { - return fragment; + return encodeURI(fragment); } - path = encodeURI(path); - return fragment.substr(0, fragment.lastIndexOf(path)); + return encodeURI(fragment.substr(0, fragment.lastIndexOf(path))); }; NavigationInstruction.prototype._commitChanges = function _commitChanges(waitToSwap) { @@ -896,17 +878,20 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende } if (viewPortInstruction.strategy === activationStrategy.replace) { - if (waitToSwap) { - delaySwaps.push({ viewPort: viewPort, viewPortInstruction: viewPortInstruction }); - } - - loads.push(viewPort.process(viewPortInstruction, waitToSwap).then(function (x) { - if (viewPortInstruction.childNavigationInstruction) { - return viewPortInstruction.childNavigationInstruction._commitChanges(); + if (viewPortInstruction.childNavigationInstruction && viewPortInstruction.childNavigationInstruction.parentCatchHandler) { + loads.push(viewPortInstruction.childNavigationInstruction._commitChanges()); + } else { + if (waitToSwap) { + delaySwaps.push({ viewPort: viewPort, viewPortInstruction: viewPortInstruction }); } + loads.push(viewPort.process(viewPortInstruction, waitToSwap).then(function (x) { + if (viewPortInstruction.childNavigationInstruction) { + return viewPortInstruction.childNavigationInstruction._commitChanges(); + } - return undefined; - })); + return undefined; + })); + } } else { if (viewPortInstruction.childNavigationInstruction) { loads.push(viewPortInstruction.childNavigationInstruction._commitChanges(waitToSwap)); @@ -936,7 +921,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende }; NavigationInstruction.prototype._buildTitle = function _buildTitle() { - var separator = arguments.length <= 0 || arguments[0] === undefined ? ' | ' : arguments[0]; + var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' | '; var title = ''; var childTitles = []; @@ -1002,7 +987,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende _export('Redirect', Redirect = function () { function Redirect(url) { - var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; @@ -1027,8 +1012,8 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende _export('RedirectToRoute', RedirectToRoute = function () { function RedirectToRoute(route) { - var params = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; - var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; @@ -1102,9 +1087,9 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende if (Array.isArray(config.route)) { for (var i = 0, ii = config.route.length; i < ii; ++i) { - var current = Object.assign({}, config); - current.route = config.route[i]; - routeConfigs.push(current); + var _current = Object.assign({}, config); + _current.route = config.route[i]; + routeConfigs.push(_current); } } else { routeConfigs.push(Object.assign({}, config)); @@ -1158,9 +1143,9 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende var pipelineProvider = router.pipelineProvider; for (var _i2 = 0, _ii2 = pipelineSteps.length; _i2 < _ii2; ++_i2) { - var _pipelineSteps$_i = pipelineSteps[_i2]; - var _name = _pipelineSteps$_i.name; - var step = _pipelineSteps$_i.step; + var _pipelineSteps$_i = pipelineSteps[_i2], + _name = _pipelineSteps$_i.name, + step = _pipelineSteps$_i.step; pipelineProvider.addStep(_name, step); } @@ -1296,7 +1281,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende }; Router.prototype.generate = function generate(name, params) { - var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var hasRoute = this._recognizer.hasRoute(name); if ((!this.isConfigured || !hasRoute) && this.parent) { @@ -1422,11 +1407,11 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende var nav = this.navigation; for (var i = 0, length = nav.length; i < length; i++) { - var current = nav[i]; - if (!current.config.href) { - current.href = _createRootedPath(current.relativeHref, this.baseUrl, this.history._hasPushState); + var _current2 = nav[i]; + if (!_current2.config.href) { + _current2.href = _createRootedPath(_current2.relativeHref, this.baseUrl, this.history._hasPushState); } else { - current.href = _normalizeAbsolutePath(current.config.href, this.history._hasPushState); + _current2.href = _normalizeAbsolutePath(_current2.config.href, this.history._hasPushState); } } }; @@ -1439,8 +1424,8 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende }; Router.prototype._createNavigationInstruction = function _createNavigationInstruction() { - var url = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; - var parentInstruction = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1]; + var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; + var parentInstruction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; var fragment = url; var queryString = ''; @@ -1486,15 +1471,50 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende } else if (this.catchAllHandler) { var _instruction2 = new NavigationInstruction(Object.assign({}, instructionInit, { params: { path: fragment }, - queryParams: results && results.queryParams, + queryParams: results ? results.queryParams : {}, config: null })); return evaluateNavigationStrategy(_instruction2, this.catchAllHandler); + } else if (this.parent) { + var _router = this._parentCatchAllHandler(this.parent); + + if (_router) { + var newParentInstruction = this._findParentInstructionFromRouter(_router, parentInstruction); + + var _instruction3 = new NavigationInstruction(Object.assign({}, instructionInit, { + params: { path: fragment }, + queryParams: results ? results.queryParams : {}, + router: _router, + parentInstruction: newParentInstruction, + parentCatchHandler: true, + config: null })); + + return evaluateNavigationStrategy(_instruction3, _router.catchAllHandler); + } } return Promise.reject(new Error('Route not found: ' + url)); }; + Router.prototype._findParentInstructionFromRouter = function _findParentInstructionFromRouter(router, instruction) { + if (instruction.router === router) { + instruction.fragment = router.baseUrl; + return instruction; + } else if (instruction.parentInstruction) { + return this._findParentInstructionFromRouter(router, instruction.parentInstruction); + } + return undefined; + }; + + Router.prototype._parentCatchAllHandler = function _parentCatchAllHandler(router) { + if (router.catchAllHandler) { + return router; + } else if (router.parent) { + return this._parentCatchAllHandler(router.parent); + } + return false; + }; + Router.prototype._createRouteConfig = function _createRouteConfig(config, instruction) { var _this7 = this; @@ -1538,7 +1558,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende } CanDeactivatePreviousStep.prototype.run = function run(navigationInstruction, next) { - return processDeactivatable(navigationInstruction.plan, 'canDeactivate', next); + return processDeactivatable(navigationInstruction, 'canDeactivate', next); }; return CanDeactivatePreviousStep; @@ -1566,7 +1586,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende } DeactivatePreviousStep.prototype.run = function run(navigationInstruction, next) { - return processDeactivatable(navigationInstruction.plan, 'deactivate', next, true); + return processDeactivatable(navigationInstruction, 'deactivate', next, true); }; return DeactivatePreviousStep; @@ -1717,7 +1737,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende }; PipelineProvider.prototype._clearSteps = function _clearSteps() { - var name = arguments.length <= 0 || arguments[0] === undefined ? '' : arguments[0]; + var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; var slot = this._findStep(name); if (slot) { @@ -1787,33 +1807,21 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende _Router.prototype.registerViewPort.call(this, viewPort, name); if (!this.isActive) { - var _ret6 = function () { - var viewModel = _this12._findViewModel(viewPort); - if ('configureRouter' in viewModel) { - if (!_this12.isConfigured) { - var _ret7 = function () { - var resolveConfiguredPromise = _this12._resolveConfiguredPromise; - _this12._resolveConfiguredPromise = function () {}; - return { - v: { - v: _this12.configure(function (config) { - return viewModel.configureRouter(config, _this12); - }).then(function () { - _this12.activate(); - resolveConfiguredPromise(); - }) - } - }; - }(); - - if ((typeof _ret7 === 'undefined' ? 'undefined' : _typeof(_ret7)) === "object") return _ret7.v; - } - } else { - _this12.activate(); + var viewModel = this._findViewModel(viewPort); + if ('configureRouter' in viewModel) { + if (!this.isConfigured) { + var resolveConfiguredPromise = this._resolveConfiguredPromise; + this._resolveConfiguredPromise = function () {}; + return this.configure(function (config) { + return viewModel.configureRouter(config, _this12); + }).then(function () { + _this12.activate(); + resolveConfiguredPromise(); + }); } - }(); - - if ((typeof _ret6 === 'undefined' ? 'undefined' : _typeof(_ret6)) === "object") return _ret6.v; + } else { + this.activate(); + } } else { this._dequeueInstruction(); } @@ -1850,7 +1858,7 @@ System.register(['aurelia-logging', 'aurelia-route-recognizer', 'aurelia-depende AppRouter.prototype._dequeueInstruction = function _dequeueInstruction() { var _this14 = this; - var instructionCount = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0]; + var instructionCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; return Promise.resolve().then(function () { if (_this14.isNavigating && !instructionCount) { diff --git a/dist/system/index.js b/dist/system/index.js index dec43452..33218b98 100644 --- a/dist/system/index.js +++ b/dist/system/index.js @@ -8,7 +8,7 @@ System.register(['./aurelia-router'], function (_export, _context) { var _exportObj = {}; for (var _key in _aureliaRouter) { - if (_key !== "default" && key !== "__esModule") _exportObj[_key] = _aureliaRouter[_key]; + if (_key !== "default" && _key !== "__esModule") _exportObj[_key] = _aureliaRouter[_key]; } _export(_exportObj); diff --git a/doc/CHANGELOG.md b/doc/CHANGELOG.md index 47338d65..826f3050 100644 --- a/doc/CHANGELOG.md +++ b/doc/CHANGELOG.md @@ -1,3 +1,22 @@ + +# [1.4.0](https://github.com/aurelia/router/compare/1.3.0...1.4.0) (2017-10-02) + + +### Bug Fixes + +* **activation:** Deactivate child viewModels when replacing a parent ([f73b6d5](https://github.com/aurelia/router/commit/f73b6d5)) +* **router:** fix NavigationInstructionInit's queryParams ([1266b0b](https://github.com/aurelia/router/commit/1266b0b)) +* **router:** getBaseUrl() to return correct URL for encodable chars ([0ef12f6](https://github.com/aurelia/router/commit/0ef12f6)) + + +### Features + +* **activation:** call can/Deactivate with navigationInstructions ([3d3c444](https://github.com/aurelia/router/commit/3d3c444)), closes [#493](https://github.com/aurelia/router/issues/493) +* **router:** enable parent chain unknown route handlers ([f692bcb](https://github.com/aurelia/router/commit/f692bcb)) +* **type declarations:** Refine the type ([638aef4](https://github.com/aurelia/router/commit/638aef4)) + + + # [1.3.0](https://github.com/aurelia/router/compare/1.2.1...v1.3.0) (2017-04-05) diff --git a/doc/api.json b/doc/api.json index e9991bea..43e0f85c 100644 --- a/doc/api.json +++ b/doc/api.json @@ -1 +1 @@ -{"name":"aurelia-router","children":[{"id":313,"name":"ActivateNextStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":314,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":315,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":316,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":317,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"instrinct","name":"any"}}]}],"groups":[{"title":"Methods","kind":2048,"children":[314]}]},{"id":352,"name":"AppRouter","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"The main application router."},"children":[{"id":355,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":356,"name":"new AppRouter","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":357,"name":"container","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Container"}},{"id":358,"name":"history","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"History"}},{"id":359,"name":"pipelineProvider","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"PipelineProvider","id":334}},{"id":360,"name":"events","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"EventAggregator"}}],"type":{"type":"reference","name":"AppRouter","id":352},"overwrites":{"type":"reference","name":"Router.__constructor","id":240}}],"overwrites":{"type":"reference","name":"Router.__constructor","id":240}},{"id":379,"name":"baseUrl","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The [[Router]]'s current base URL, typically based on the [[Router.currentInstruction]]."},"type":{"type":"instrinct","name":"string"},"inheritedFrom":{"type":"reference","name":"Router.baseUrl","id":227}},{"id":375,"name":"container","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"Container"},"inheritedFrom":{"type":"reference","name":"Router.container","id":223}},{"id":385,"name":"currentInstruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The currently active navigation instruction."},"type":{"type":"reference","name":"NavigationInstruction","id":108},"inheritedFrom":{"type":"reference","name":"Router.currentInstruction","id":233}},{"id":376,"name":"history","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"History"},"inheritedFrom":{"type":"reference","name":"Router.history","id":224}},{"id":380,"name":"isConfigured","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] has been configured."},"type":{"type":"instrinct","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.isConfigured","id":228}},{"id":382,"name":"isExplicitNavigation","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] is navigating due to explicit call to navigate function(s)."},"type":{"type":"instrinct","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.isExplicitNavigation","id":230}},{"id":383,"name":"isExplicitNavigationBack","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] is navigating due to explicit call to navigateBack function."},"type":{"type":"instrinct","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.isExplicitNavigationBack","id":231}},{"id":381,"name":"isNavigating","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] is currently processing a navigation."},"type":{"type":"instrinct","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.isNavigating","id":229}},{"id":392,"name":"isRoot","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Gets a value indicating whether or not this [[Router]] is the root in the router tree. I.e., it has no parent."},"type":{"type":"instrinct","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.isRoot","id":246}},{"id":384,"name":"navigation","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The navigation models for routes that specified [[RouteConfig.nav]]."},"type":{"type":"reference","isArray":true,"name":"NavModel","id":139},"inheritedFrom":{"type":"reference","name":"Router.navigation","id":232}},{"id":387,"name":"options","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"instrinct","name":"any"},"inheritedFrom":{"type":"reference","name":"Router.options","id":235}},{"id":386,"name":"parent","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The parent router, or null if this instance is not a child router."},"type":{"type":"reference","name":"Router","id":222},"inheritedFrom":{"type":"reference","name":"Router.parent","id":234}},{"id":378,"name":"routes","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","isArray":true,"name":"RouteConfig","id":33},"inheritedFrom":{"type":"reference","name":"Router.routes","id":226}},{"id":388,"name":"transformTitle","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Extension point to transform the document title before it is built and displayed.\nBy default, child routers delegate to the parent router, and the app router\nreturns the title unchanged."},"type":{"type":"reflection","declaration":{"id":389,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":390,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":391,"name":"title","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"instrinct","name":"string"}}]}},"inheritedFrom":{"type":"reference","name":"Router.transformTitle","id":236}},{"id":377,"name":"viewPorts","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"Object"},"inheritedFrom":{"type":"reference","name":"Router.viewPorts","id":225}},{"id":370,"name":"activate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":371,"name":"activate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Activates the router. This instructs the router to begin listening for history changes and processing instructions.","tags":[{"tag":"params","text":"options The set of options to activate the router with.\n"}]},"parameters":[{"id":372,"name":"options","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Object"}}],"type":{"type":"instrinct","name":"void"}}]},{"id":423,"name":"addRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":424,"name":"addRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Registers a new route with the router."},"parameters":[{"id":425,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The [[RouteConfig]]."},"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":426,"name":"navModel","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The [[NavModel]] to use for the route. May be omitted for single-pattern routes.\n"},"type":{"type":"reference","name":"NavModel","id":139}}],"type":{"type":"instrinct","name":"void"},"inheritedFrom":{"type":"reference","name":"Router.addRoute","id":281}}],"inheritedFrom":{"type":"reference","name":"Router.addRoute","id":281}},{"id":395,"name":"configure","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":396,"name":"configure","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Configures the router."},"parameters":[{"id":397,"name":"callbackOrConfig","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The [[RouterConfiguration]] or a callback that takes a [[RouterConfiguration]].\n"},"type":{"type":"union","types":[{"type":"reference","name":"RouterConfiguration","id":177},{"type":"reflection","declaration":{"id":398,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":399,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":400,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouterConfiguration","id":177}}],"type":{"type":"reference","name":"RouterConfiguration","id":177}}]}}]}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"void"}]},"inheritedFrom":{"type":"reference","name":"Router.configure","id":253}}],"inheritedFrom":{"type":"reference","name":"Router.configure","id":253}},{"id":412,"name":"createChild","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":413,"name":"createChild","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Creates a child router of the current router.","returns":"The new child Router.\n"},"parameters":[{"id":414,"name":"container","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The [[Container]] to provide to the child router. Uses the current [[Router]]'s [[Container]] if unspecified."},"type":{"type":"reference","name":"Container"}}],"type":{"type":"reference","name":"Router","id":222},"inheritedFrom":{"type":"reference","name":"Router.createChild","id":270}}],"inheritedFrom":{"type":"reference","name":"Router.createChild","id":270}},{"id":420,"name":"createNavModel","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":421,"name":"createNavModel","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Creates a [[NavModel]] for the specified route config."},"parameters":[{"id":422,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The route config.\n"},"type":{"type":"reference","name":"RouteConfig","id":33}}],"type":{"type":"reference","name":"NavModel","id":139},"inheritedFrom":{"type":"reference","name":"Router.createNavModel","id":278}}],"inheritedFrom":{"type":"reference","name":"Router.createNavModel","id":278}},{"id":373,"name":"deactivate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":374,"name":"deactivate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Deactivates the router."},"type":{"type":"instrinct","name":"void"}}]},{"id":393,"name":"ensureConfigured","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":394,"name":"ensureConfigured","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Returns a Promise that resolves when the router is configured."},"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"void"}]},"inheritedFrom":{"type":"reference","name":"Router.ensureConfigured","id":251}}],"inheritedFrom":{"type":"reference","name":"Router.ensureConfigured","id":251}},{"id":415,"name":"generate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":416,"name":"generate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Generates a URL fragment matching the specified route pattern.","returns":"A string containing the generated URL fragment.\n"},"parameters":[{"id":417,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route whose pattern should be used to generate the fragment."},"type":{"type":"instrinct","name":"string"}},{"id":418,"name":"params","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The route params to be used to populate the route pattern."},"type":{"type":"instrinct","name":"any"}},{"id":419,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"string"},"inheritedFrom":{"type":"reference","name":"Router.generate","id":273}}],"inheritedFrom":{"type":"reference","name":"Router.generate","id":273}},{"id":433,"name":"handleUnknownRoutes","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":434,"name":"handleUnknownRoutes","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Register a handler to use when the incoming URL fragment doesn't match any registered routes."},"parameters":[{"id":435,"name":"config","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The moduleId, or a function that selects the moduleId, or a [[RouteConfig]].\n"},"type":{"type":"union","types":[{"type":"instrinct","name":"string"},{"type":"reference","name":"Function"},{"type":"reference","name":"RouteConfig","id":33}]}}],"type":{"type":"instrinct","name":"void"},"inheritedFrom":{"type":"reference","name":"Router.handleUnknownRoutes","id":291}}],"inheritedFrom":{"type":"reference","name":"Router.handleUnknownRoutes","id":291}},{"id":430,"name":"hasOwnRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":431,"name":"hasOwnRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets a value indicating whether or not this [[Router]] has a route registered with the specified name."},"parameters":[{"id":432,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route to check.\n"},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"instrinct","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.hasOwnRoute","id":288}}],"inheritedFrom":{"type":"reference","name":"Router.hasOwnRoute","id":288}},{"id":427,"name":"hasRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":428,"name":"hasRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets a value indicating whether or not this [[Router]] or one of its ancestors has a route registered with the specified name."},"parameters":[{"id":429,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route to check.\n"},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"instrinct","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.hasRoute","id":285}}],"inheritedFrom":{"type":"reference","name":"Router.hasRoute","id":285}},{"id":363,"name":"loadUrl","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":364,"name":"loadUrl","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Loads the specified URL."},"parameters":[{"id":365,"name":"url","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The URL fragment to load.\n"},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"reference","name":"NavigationInstruction","id":108}]}}]},{"id":401,"name":"navigate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":402,"name":"navigate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Navigates to a new location."},"parameters":[{"id":403,"name":"fragment","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The URL fragment to use as the navigation destination."},"type":{"type":"instrinct","name":"string"}},{"id":404,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The navigation options.\n"},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.navigate","id":259}}],"inheritedFrom":{"type":"reference","name":"Router.navigate","id":259}},{"id":410,"name":"navigateBack","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":411,"name":"navigateBack","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Navigates back to the most recent location in history."},"type":{"type":"instrinct","name":"void"},"inheritedFrom":{"type":"reference","name":"Router.navigateBack","id":268}}],"inheritedFrom":{"type":"reference","name":"Router.navigateBack","id":268}},{"id":405,"name":"navigateToRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":406,"name":"navigateToRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Navigates to a new location corresponding to the route and params specified. Equivallent to [[Router.generate]] followed\nby [[Router.navigate]]."},"parameters":[{"id":407,"name":"route","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route to use when generating the navigation location."},"type":{"type":"instrinct","name":"string"}},{"id":408,"name":"params","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The route parameters to be used when populating the route pattern."},"type":{"type":"instrinct","name":"any"}},{"id":409,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The navigation options.\n"},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.navigateToRoute","id":263}}],"inheritedFrom":{"type":"reference","name":"Router.navigateToRoute","id":263}},{"id":438,"name":"refreshNavigation","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":439,"name":"refreshNavigation","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Updates the navigation routes with hrefs relative to the current location.\nNote: This method will likely move to a plugin in a future release."},"type":{"type":"instrinct","name":"void"},"inheritedFrom":{"type":"reference","name":"Router.refreshNavigation","id":296}}],"inheritedFrom":{"type":"reference","name":"Router.refreshNavigation","id":296}},{"id":366,"name":"registerViewPort","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":367,"name":"registerViewPort","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Registers a viewPort to be used as a rendering target for activated routes."},"parameters":[{"id":368,"name":"viewPort","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The viewPort."},"type":{"type":"instrinct","name":"any"}},{"id":369,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the viewPort. 'default' if unspecified.\n"},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"any"}]},"overwrites":{"type":"reference","name":"Router.registerViewPort","id":247}}],"overwrites":{"type":"reference","name":"Router.registerViewPort","id":247}},{"id":361,"name":"reset","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":362,"name":"reset","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Fully resets the router's internal state. Primarily used internally by the framework when multiple calls to setRoot are made.\nUse with caution (actually, avoid using this). Do not use this to simply change your navigation model."},"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"Router.reset","id":244}}],"overwrites":{"type":"reference","name":"Router.reset","id":244}},{"id":436,"name":"updateTitle","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":437,"name":"updateTitle","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Updates the document title using the current navigation instruction."},"type":{"type":"instrinct","name":"void"},"inheritedFrom":{"type":"reference","name":"Router.updateTitle","id":294}}],"inheritedFrom":{"type":"reference","name":"Router.updateTitle","id":294}},{"id":353,"name":"inject","kind":2048,"kindString":"Method","flags":{"isStatic":true,"isExported":true},"signatures":[{"id":354,"name":"inject","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"any"}}]}],"groups":[{"title":"Constructors","kind":512,"children":[355]},{"title":"Properties","kind":1024,"children":[379,375,385,376,380,382,383,381,392,384,387,386,378,388,377]},{"title":"Methods","kind":2048,"children":[370,423,395,412,420,373,393,415,433,430,427,363,401,410,405,438,366,361,436,353]}],"extendedTypes":[{"type":"reference","name":"Router","id":222}]},{"id":217,"name":"BuildNavigationPlanStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":218,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":219,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":220,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":221,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"instrinct","name":"any"}}]}],"groups":[{"title":"Methods","kind":2048,"children":[218]}]},{"id":303,"name":"CanActivateNextStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":304,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":305,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":306,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":307,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"instrinct","name":"any"}}]}],"groups":[{"title":"Methods","kind":2048,"children":[304]}]},{"id":298,"name":"CanDeactivatePreviousStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":299,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":300,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":301,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":302,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"instrinct","name":"any"}}]}],"groups":[{"title":"Methods","kind":2048,"children":[299]}]},{"id":103,"name":"CommitChangesStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":104,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":105,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":106,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":107,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"instrinct","name":"any"}}]}],"groups":[{"title":"Methods","kind":2048,"children":[104]}]},{"id":308,"name":"DeactivatePreviousStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":309,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":310,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":311,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":312,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"instrinct","name":"any"}}]}],"groups":[{"title":"Methods","kind":2048,"children":[309]}]},{"id":324,"name":"LoadRouteStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":327,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":328,"name":"new LoadRouteStep","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":329,"name":"routeLoader","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouteLoader","id":318}}],"type":{"type":"reference","name":"LoadRouteStep","id":324}}]},{"id":330,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":331,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":332,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":333,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"instrinct","name":"any"}}]},{"id":325,"name":"inject","kind":2048,"kindString":"Method","flags":{"isStatic":true,"isExported":true},"signatures":[{"id":326,"name":"inject","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"any"}}]}],"groups":[{"title":"Constructors","kind":512,"children":[327]},{"title":"Methods","kind":2048,"children":[330,325]}]},{"id":139,"name":"NavModel","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"Class for storing and interacting with a route's navigation settings."},"children":[{"id":147,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":148,"name":"new NavModel","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":149,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Router","id":222}},{"id":150,"name":"relativeHref","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"reference","name":"NavModel","id":139}}]},{"id":145,"name":"config","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The route config."},"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":142,"name":"href","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"This nav item's absolute href."},"type":{"type":"instrinct","name":"string"}},{"id":140,"name":"isActive","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if this nav item is currently active."},"type":{"type":"instrinct","name":"boolean"}},{"id":143,"name":"relativeHref","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"This nav item's relative href."},"type":{"type":"instrinct","name":"string"}},{"id":146,"name":"router","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The router associated with this navitation model."},"type":{"type":"reference","name":"Router","id":222}},{"id":144,"name":"settings","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Data attached to the route at configuration time."},"type":{"type":"instrinct","name":"any"}},{"id":141,"name":"title","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The title."},"type":{"type":"instrinct","name":"string"}},{"id":151,"name":"setTitle","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":152,"name":"setTitle","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Sets the route's title and updates document.title.\n If the a navigation is in progress, the change will be applied\n to document.title when the navigation completes."},"parameters":[{"id":153,"name":"title","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The new title.\n"},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"instrinct","name":"void"}}]}],"groups":[{"title":"Constructors","kind":512,"children":[147]},{"title":"Properties","kind":1024,"children":[145,142,140,143,146,144,141]},{"title":"Methods","kind":2048,"children":[151]}]},{"id":108,"name":"NavigationInstruction","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"Class used to represent an instruction during a navigation."},"children":[{"id":120,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":121,"name":"new NavigationInstruction","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":122,"name":"init","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstructionInit","id":23}}],"type":{"type":"reference","name":"NavigationInstruction","id":108}}]},{"id":113,"name":"config","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The route config for the route matching this instruction."},"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":109,"name":"fragment","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The URL fragment."},"type":{"type":"instrinct","name":"string"}},{"id":119,"name":"options","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"Object"}},{"id":111,"name":"params","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Parameters extracted from the route pattern."},"type":{"type":"instrinct","name":"any"}},{"id":114,"name":"parentInstruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The parent instruction, if this instruction was created by a child router."},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":118,"name":"plan","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"Object"}},{"id":115,"name":"previousInstruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The instruction being replaced by this instruction in the current router."},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":112,"name":"queryParams","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Parameters extracted from the query string."},"type":{"type":"instrinct","name":"any"}},{"id":110,"name":"queryString","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The query string."},"type":{"type":"instrinct","name":"string"}},{"id":117,"name":"router","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The router instance."},"type":{"type":"reference","name":"Router","id":222}},{"id":116,"name":"viewPortInstructions","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"viewPort instructions to used activation."},"type":{"type":"instrinct","name":"any"}},{"id":127,"name":"addViewPortInstruction","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":128,"name":"addViewPortInstruction","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a viewPort instruction."},"parameters":[{"id":129,"name":"viewPortName","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"string"}},{"id":130,"name":"strategy","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"string"}},{"id":131,"name":"moduleId","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"string"}},{"id":132,"name":"component","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"}}]},{"id":123,"name":"getAllInstructions","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":124,"name":"getAllInstructions","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets an array containing this instruction and all child instructions for the current navigation."},"type":{"type":"reference","name":"Array","typeArguments":[{"type":"reference","name":"NavigationInstruction","id":108}]}}]},{"id":125,"name":"getAllPreviousInstructions","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":126,"name":"getAllPreviousInstructions","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets an array containing the instruction and all child instructions for the previous navigation.\nPrevious instructions are no longer available after navigation completes."},"type":{"type":"reference","name":"Array","typeArguments":[{"type":"reference","name":"NavigationInstruction","id":108}]}}]},{"id":137,"name":"getBaseUrl","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":138,"name":"getBaseUrl","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets the instruction's base URL, accounting for wildcard route parameters."},"type":{"type":"instrinct","name":"string"}}]},{"id":133,"name":"getWildCardName","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":134,"name":"getWildCardName","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets the name of the route pattern's wildcard parameter, if applicable."},"type":{"type":"instrinct","name":"string"}}]},{"id":135,"name":"getWildcardPath","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":136,"name":"getWildcardPath","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets the path and query string created by filling the route\npattern's wildcard parameter with the matching param."},"type":{"type":"instrinct","name":"string"}}]}],"groups":[{"title":"Constructors","kind":512,"children":[120]},{"title":"Properties","kind":1024,"children":[113,109,119,111,114,118,115,112,110,117,116]},{"title":"Methods","kind":2048,"children":[127,123,125,137,133,135]}]},{"id":95,"name":"Pipeline","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"The class responsible for managing and processing the navigation pipeline."},"children":[{"id":96,"name":"steps","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The pipeline steps."},"type":{"type":"reference","name":"Array","typeArguments":[{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}]}},{"id":97,"name":"addStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":98,"name":"addStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step to the pipeline."},"parameters":[{"id":99,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The pipeline step.\n"},"type":{"type":"reference","name":"PipelineStep","id":13}}],"type":{"type":"reference","name":"Pipeline","id":95}}]},{"id":100,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":101,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Runs the pipeline."},"parameters":[{"id":102,"name":"instruction","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The navigation instruction to process.\n"},"type":{"type":"reference","name":"NavigationInstruction","id":108}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"reference","name":"PipelineResult","id":18}]}}]}],"groups":[{"title":"Properties","kind":1024,"children":[96]},{"title":"Methods","kind":2048,"children":[97,100]}]},{"id":334,"name":"PipelineProvider","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"Class responsible for creating the navigation pipeline."},"children":[{"id":337,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":338,"name":"new PipelineProvider","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":339,"name":"container","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Container"}}],"type":{"type":"reference","name":"PipelineProvider","id":334}}]},{"id":342,"name":"addStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":343,"name":"addStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step into the pipeline at a known slot location."},"parameters":[{"id":344,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"string"}},{"id":345,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"PipelineStep","id":13}}],"type":{"type":"instrinct","name":"void"}}]},{"id":340,"name":"createPipeline","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":341,"name":"createPipeline","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Create the navigation pipeline."},"type":{"type":"reference","name":"Pipeline","id":95}}]},{"id":346,"name":"removeStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":347,"name":"removeStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Removes a step from a slot in the pipeline"},"parameters":[{"id":348,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"string"}},{"id":349,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"PipelineStep","id":13}}],"type":{"type":"instrinct","name":"any"}}]},{"id":350,"name":"reset","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":351,"name":"reset","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Resets all pipeline slots"},"type":{"type":"instrinct","name":"any"}}]},{"id":335,"name":"inject","kind":2048,"kindString":"Method","flags":{"isStatic":true,"isExported":true},"signatures":[{"id":336,"name":"inject","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"any"}}]}],"groups":[{"title":"Constructors","kind":512,"children":[337]},{"title":"Methods","kind":2048,"children":[342,340,346,350,335]}]},{"id":154,"name":"Redirect","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"Used during the activation lifecycle to cause a redirect."},"children":[{"id":155,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":156,"name":"new Redirect","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":157,"name":"url","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"string"}},{"id":158,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"reference","name":"Redirect","id":154}}]},{"id":162,"name":"navigate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":163,"name":"navigate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Called by the navigation pipeline to navigate."},"parameters":[{"id":164,"name":"appRouter","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The router to be redirected.\n"},"type":{"type":"reference","name":"Router","id":222}}],"type":{"type":"instrinct","name":"void"}}]},{"id":159,"name":"setRouter","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":160,"name":"setRouter","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Called by the activation system to set the child router."},"parameters":[{"id":161,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The router.\n"},"type":{"type":"reference","name":"Router","id":222}}],"type":{"type":"instrinct","name":"void"}}]}],"groups":[{"title":"Constructors","kind":512,"children":[155]},{"title":"Methods","kind":2048,"children":[162,159]}]},{"id":165,"name":"RedirectToRoute","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"Used during the activation lifecycle to cause a redirect to a named route.","tags":[{"tag":"param","text":"The name of the route.","param":"route"},{"tag":"param","text":"The parameters to be sent to the activation method.","param":"params"},{"tag":"param","text":"The options to use for navigation.\n","param":"options"}]},"children":[{"id":166,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":167,"name":"new RedirectToRoute","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":168,"name":"route","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"string"}},{"id":169,"name":"params","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":170,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"reference","name":"RedirectToRoute","id":165}}]},{"id":174,"name":"navigate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":175,"name":"navigate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Called by the navigation pipeline to navigate."},"parameters":[{"id":176,"name":"appRouter","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The router to be redirected.\n"},"type":{"type":"reference","name":"Router","id":222}}],"type":{"type":"instrinct","name":"void"}}]},{"id":171,"name":"setRouter","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":172,"name":"setRouter","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Called by the activation system to set the child router."},"parameters":[{"id":173,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The router.\n"},"type":{"type":"reference","name":"Router","id":222}}],"type":{"type":"instrinct","name":"void"}}]}],"groups":[{"title":"Constructors","kind":512,"children":[166]},{"title":"Methods","kind":2048,"children":[174,171]}]},{"id":318,"name":"RouteLoader","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":319,"name":"loadRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":320,"name":"loadRoute","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":321,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"any"}},{"id":322,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"any"}},{"id":323,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"}}]}],"groups":[{"title":"Methods","kind":2048,"children":[319]}]},{"id":222,"name":"Router","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"The primary class responsible for handling routing and navigation.","tags":[{"tag":"class","text":"Router"},{"tag":"constructor","text":"\n"}]},"children":[{"id":240,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"comment":{},"signatures":[{"id":241,"name":"new Router","kind":16384,"kindString":"Constructor signature","flags":{},"comment":{},"parameters":[{"id":242,"name":"container","kind":32768,"kindString":"Parameter","flags":{},"comment":{"shortText":"The [[Container]] to use when child routers."},"type":{"type":"reference","name":"Container"}},{"id":243,"name":"history","kind":32768,"kindString":"Parameter","flags":{},"comment":{"shortText":"The [[History]] implementation to delegate navigation requests to.\n"},"type":{"type":"reference","name":"History"}}],"type":{"type":"reference","name":"Router","id":222}}]},{"id":227,"name":"baseUrl","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The [[Router]]'s current base URL, typically based on the [[Router.currentInstruction]]."},"type":{"type":"instrinct","name":"string"}},{"id":223,"name":"container","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"Container"}},{"id":233,"name":"currentInstruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The currently active navigation instruction."},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":224,"name":"history","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"History"}},{"id":228,"name":"isConfigured","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] has been configured."},"type":{"type":"instrinct","name":"boolean"}},{"id":230,"name":"isExplicitNavigation","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] is navigating due to explicit call to navigate function(s)."},"type":{"type":"instrinct","name":"boolean"}},{"id":231,"name":"isExplicitNavigationBack","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] is navigating due to explicit call to navigateBack function."},"type":{"type":"instrinct","name":"boolean"}},{"id":229,"name":"isNavigating","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] is currently processing a navigation."},"type":{"type":"instrinct","name":"boolean"}},{"id":246,"name":"isRoot","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Gets a value indicating whether or not this [[Router]] is the root in the router tree. I.e., it has no parent."},"type":{"type":"instrinct","name":"boolean"}},{"id":232,"name":"navigation","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The navigation models for routes that specified [[RouteConfig.nav]]."},"type":{"type":"reference","isArray":true,"name":"NavModel","id":139}},{"id":235,"name":"options","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"instrinct","name":"any"}},{"id":234,"name":"parent","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The parent router, or null if this instance is not a child router."},"type":{"type":"reference","name":"Router","id":222}},{"id":226,"name":"routes","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","isArray":true,"name":"RouteConfig","id":33}},{"id":236,"name":"transformTitle","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Extension point to transform the document title before it is built and displayed.\nBy default, child routers delegate to the parent router, and the app router\nreturns the title unchanged."},"type":{"type":"reflection","declaration":{"id":237,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":238,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":239,"name":"title","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"instrinct","name":"string"}}]}}},{"id":225,"name":"viewPorts","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"Object"}},{"id":281,"name":"addRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":282,"name":"addRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Registers a new route with the router."},"parameters":[{"id":283,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The [[RouteConfig]]."},"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":284,"name":"navModel","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The [[NavModel]] to use for the route. May be omitted for single-pattern routes.\n"},"type":{"type":"reference","name":"NavModel","id":139}}],"type":{"type":"instrinct","name":"void"}}]},{"id":253,"name":"configure","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":254,"name":"configure","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Configures the router."},"parameters":[{"id":255,"name":"callbackOrConfig","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The [[RouterConfiguration]] or a callback that takes a [[RouterConfiguration]].\n"},"type":{"type":"union","types":[{"type":"reference","name":"RouterConfiguration","id":177},{"type":"reflection","declaration":{"id":256,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":257,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":258,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouterConfiguration","id":177}}],"type":{"type":"reference","name":"RouterConfiguration","id":177}}]}}]}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"void"}]}}]},{"id":270,"name":"createChild","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":271,"name":"createChild","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Creates a child router of the current router.","returns":"The new child Router.\n"},"parameters":[{"id":272,"name":"container","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The [[Container]] to provide to the child router. Uses the current [[Router]]'s [[Container]] if unspecified."},"type":{"type":"reference","name":"Container"}}],"type":{"type":"reference","name":"Router","id":222}}]},{"id":278,"name":"createNavModel","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":279,"name":"createNavModel","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Creates a [[NavModel]] for the specified route config."},"parameters":[{"id":280,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The route config.\n"},"type":{"type":"reference","name":"RouteConfig","id":33}}],"type":{"type":"reference","name":"NavModel","id":139}}]},{"id":251,"name":"ensureConfigured","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":252,"name":"ensureConfigured","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Returns a Promise that resolves when the router is configured."},"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"void"}]}}]},{"id":273,"name":"generate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":274,"name":"generate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Generates a URL fragment matching the specified route pattern.","returns":"A string containing the generated URL fragment.\n"},"parameters":[{"id":275,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route whose pattern should be used to generate the fragment."},"type":{"type":"instrinct","name":"string"}},{"id":276,"name":"params","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The route params to be used to populate the route pattern."},"type":{"type":"instrinct","name":"any"}},{"id":277,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"string"}}]},{"id":291,"name":"handleUnknownRoutes","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":292,"name":"handleUnknownRoutes","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Register a handler to use when the incoming URL fragment doesn't match any registered routes."},"parameters":[{"id":293,"name":"config","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The moduleId, or a function that selects the moduleId, or a [[RouteConfig]].\n"},"type":{"type":"union","types":[{"type":"instrinct","name":"string"},{"type":"reference","name":"Function"},{"type":"reference","name":"RouteConfig","id":33}]}}],"type":{"type":"instrinct","name":"void"}}]},{"id":288,"name":"hasOwnRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":289,"name":"hasOwnRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets a value indicating whether or not this [[Router]] has a route registered with the specified name."},"parameters":[{"id":290,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route to check.\n"},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"instrinct","name":"boolean"}}]},{"id":285,"name":"hasRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":286,"name":"hasRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets a value indicating whether or not this [[Router]] or one of its ancestors has a route registered with the specified name."},"parameters":[{"id":287,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route to check.\n"},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"instrinct","name":"boolean"}}]},{"id":259,"name":"navigate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":260,"name":"navigate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Navigates to a new location."},"parameters":[{"id":261,"name":"fragment","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The URL fragment to use as the navigation destination."},"type":{"type":"instrinct","name":"string"}},{"id":262,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The navigation options.\n"},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"boolean"}}]},{"id":268,"name":"navigateBack","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":269,"name":"navigateBack","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Navigates back to the most recent location in history."},"type":{"type":"instrinct","name":"void"}}]},{"id":263,"name":"navigateToRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":264,"name":"navigateToRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Navigates to a new location corresponding to the route and params specified. Equivallent to [[Router.generate]] followed\nby [[Router.navigate]]."},"parameters":[{"id":265,"name":"route","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route to use when generating the navigation location."},"type":{"type":"instrinct","name":"string"}},{"id":266,"name":"params","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The route parameters to be used when populating the route pattern."},"type":{"type":"instrinct","name":"any"}},{"id":267,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The navigation options.\n"},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"boolean"}}]},{"id":296,"name":"refreshNavigation","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":297,"name":"refreshNavigation","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Updates the navigation routes with hrefs relative to the current location.\nNote: This method will likely move to a plugin in a future release."},"type":{"type":"instrinct","name":"void"}}]},{"id":247,"name":"registerViewPort","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":248,"name":"registerViewPort","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Registers a viewPort to be used as a rendering target for activated routes."},"parameters":[{"id":249,"name":"viewPort","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The viewPort."},"type":{"type":"instrinct","name":"any"}},{"id":250,"name":"name","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The name of the viewPort. 'default' if unspecified.\n"},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"instrinct","name":"void"}}]},{"id":244,"name":"reset","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":245,"name":"reset","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Fully resets the router's internal state. Primarily used internally by the framework when multiple calls to setRoot are made.\nUse with caution (actually, avoid using this). Do not use this to simply change your navigation model."},"type":{"type":"instrinct","name":"any"}}]},{"id":294,"name":"updateTitle","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":295,"name":"updateTitle","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Updates the document title using the current navigation instruction."},"type":{"type":"instrinct","name":"void"}}]}],"groups":[{"title":"Constructors","kind":512,"children":[240]},{"title":"Properties","kind":1024,"children":[227,223,233,224,228,230,231,229,246,232,235,234,226,236,225]},{"title":"Methods","kind":2048,"children":[281,253,270,278,251,273,291,288,285,259,268,263,296,247,244,294]}],"extendedBy":[{"type":"reference","name":"AppRouter","id":352}]},{"id":177,"name":"RouterConfiguration","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"Class used to configure a [[Router]] instance.","tags":[{"tag":"constructor","text":"\n"}]},"children":[{"id":178,"name":"instructions","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"instrinct","name":"any"}},{"id":179,"name":"options","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"instrinct","name":"any"}},{"id":180,"name":"pipelineSteps","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"Array","typeArguments":[{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}]}},{"id":181,"name":"title","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"instrinct","name":"string"}},{"id":182,"name":"unknownRouteConfig","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"instrinct","name":"any"}},{"id":187,"name":"addAuthorizeStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":188,"name":"addAuthorizeStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step to be run during the [[Router]]'s authorize pipeline slot.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":189,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The pipeline step."},"type":{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":177}}]},{"id":183,"name":"addPipelineStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":184,"name":"addPipelineStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step to be run during the [[Router]]'s navigation pipeline.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":185,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the pipeline slot to insert the step into."},"type":{"type":"instrinct","name":"string"}},{"id":186,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The pipeline step."},"type":{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":177}}]},{"id":196,"name":"addPostRenderStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":197,"name":"addPostRenderStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step to be run during the [[Router]]'s postRender pipeline slot.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":198,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The pipeline step."},"type":{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":177}}]},{"id":190,"name":"addPreActivateStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":191,"name":"addPreActivateStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step to be run during the [[Router]]'s preActivate pipeline slot.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":192,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The pipeline step."},"type":{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":177}}]},{"id":193,"name":"addPreRenderStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":194,"name":"addPreRenderStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step to be run during the [[Router]]'s preRender pipeline slot.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":195,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The pipeline step."},"type":{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":177}}]},{"id":214,"name":"exportToRouter","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":215,"name":"exportToRouter","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Applies the current configuration to the specified [[Router]]."},"parameters":[{"id":216,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The [[Router]] to apply the configuration to.\n"},"type":{"type":"reference","name":"Router","id":222}}],"type":{"type":"instrinct","name":"void"}}]},{"id":199,"name":"fallbackRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":200,"name":"fallbackRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Configures a route that will be used if there is no previous location available on navigation cancellation.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":201,"name":"fragment","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The URL fragment to use as the navigation destination."},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"reference","name":"RouterConfiguration","id":177}}]},{"id":202,"name":"map","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":203,"name":"map","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Maps one or more routes to be registered with the router.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":204,"name":"route","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The [[RouteConfig]] to map, or an array of [[RouteConfig]] to map."},"type":{"type":"union","types":[{"type":"reference","name":"RouteConfig","id":33},{"type":"reference","isArray":true,"name":"RouteConfig","id":33}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":177}}]},{"id":205,"name":"mapRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":206,"name":"mapRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Maps a single route to be registered with the router.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":207,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouteConfig","id":33}}],"type":{"type":"reference","name":"RouterConfiguration","id":177}}]},{"id":208,"name":"mapUnknownRoutes","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":209,"name":"mapUnknownRoutes","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Registers an unknown route handler to be run when the URL fragment doesn't match any registered routes.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":210,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"A string containing a moduleId to load, or a [[RouteConfig]], or a function that takes the\n [[NavigationInstruction]] and selects a moduleId to load."},"type":{"type":"union","types":[{"type":"instrinct","name":"string"},{"type":"reference","name":"RouteConfig","id":33},{"type":"reflection","declaration":{"id":211,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":212,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":213,"name":"instruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":108}}],"type":{"type":"union","types":[{"type":"instrinct","name":"string"},{"type":"reference","name":"RouteConfig","id":33},{"type":"reference","name":"Promise","typeArguments":[{"type":"union","types":[{"type":"instrinct","name":"string"},{"type":"reference","name":"RouteConfig","id":33}]}]}]}}]}}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":177}}]}],"groups":[{"title":"Properties","kind":1024,"children":[178,179,180,181,182]},{"title":"Methods","kind":2048,"children":[187,183,196,190,193,214,199,202,205,208]}]},{"id":80,"name":"ConfiguresRouter","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"An optional interface describing the router configuration convention."},"children":[{"id":81,"name":"configureRouter","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":82,"name":"configureRouter","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Implement this hook if you want to configure a router."},"parameters":[{"id":83,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouterConfiguration","id":177}},{"id":84,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Router","id":222}}],"type":{"type":"union","types":[{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"void"}]},{"type":"reference","name":"PromiseLike","typeArguments":[{"type":"instrinct","name":"void"}]},{"type":"instrinct","name":"void"}]}}]}],"groups":[{"title":"Methods","kind":2048,"children":[81]}]},{"id":89,"name":"IObservable","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"A basic interface for an Observable type"},"children":[{"id":90,"name":"subscribe","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":91,"name":"subscribe","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"reference","name":"ISubscription","id":92}}]}],"groups":[{"title":"Methods","kind":2048,"children":[90]}]},{"id":92,"name":"ISubscription","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"A basic interface for a Subscription to an Observable"},"children":[{"id":93,"name":"unsubscribe","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":94,"name":"unsubscribe","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"void"}}]}],"groups":[{"title":"Methods","kind":2048,"children":[93]}]},{"id":85,"name":"NavigationCommand","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"When a navigation command is encountered, the current navigation\nwill be cancelled and control will be passed to the navigation\ncommand so it can determine the correct action."},"children":[{"id":86,"name":"navigate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":87,"name":"navigate","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":88,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Router","id":222}}],"type":{"type":"instrinct","name":"void"}}]}],"groups":[{"title":"Methods","kind":2048,"children":[86]}]},{"id":23,"name":"NavigationInstructionInit","kind":256,"kindString":"Interface","flags":{"isExported":true},"children":[{"id":28,"name":"config","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":24,"name":"fragment","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"instrinct","name":"string"}},{"id":32,"name":"options","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"Object"}},{"id":26,"name":"params","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"Object"}},{"id":29,"name":"parentInstruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":30,"name":"previousInstruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":27,"name":"queryParams","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"Object"}},{"id":25,"name":"queryString","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"instrinct","name":"string"}},{"id":31,"name":"router","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"Router","id":222}}],"groups":[{"title":"Properties","kind":1024,"children":[28,24,32,26,29,30,27,25,31]}]},{"id":2,"name":"Next","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"A callback to indicate when pipeline processing should advance to the next step\nor be aborted."},"signatures":[{"id":12,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Indicates the successful completion of the pipeline step."},"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"any"}]}}],"children":[{"id":6,"name":"cancel","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":7,"name":"cancel","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Indicates that the pipeline should cancel processing."},"parameters":[{"id":8,"name":"result","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"any"}]}}]},{"id":3,"name":"complete","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":4,"name":"complete","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Indicates the successful completion of the entire pipeline."},"parameters":[{"id":5,"name":"result","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"any"}]}}]},{"id":9,"name":"reject","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":10,"name":"reject","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Indicates that pipeline processing has failed and should be stopped."},"parameters":[{"id":11,"name":"result","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"any"}]}}]}],"groups":[{"title":"Methods","kind":2048,"children":[6,3,9]}]},{"id":18,"name":"PipelineResult","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"The result of a pipeline run."},"children":[{"id":22,"name":"completed","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"instrinct","name":"boolean"}},{"id":20,"name":"instruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":21,"name":"output","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"instrinct","name":"any"}},{"id":19,"name":"status","kind":1024,"kindString":"Property","flags":{"isExported":true},"type":{"type":"instrinct","name":"string"}}],"groups":[{"title":"Properties","kind":1024,"children":[22,20,21,19]}]},{"id":13,"name":"PipelineStep","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"A step to be run during processing of the pipeline."},"children":[{"id":14,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":15,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Execute the pipeline step. The step should invoke next(), next.complete(),\nnext.cancel(), or next.reject() to allow the pipeline to continue."},"parameters":[{"id":16,"name":"instruction","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The navigation instruction."},"type":{"type":"reference","name":"NavigationInstruction","id":108}},{"id":17,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The next step in the pipeline.\n"},"type":{"type":"reference","name":"Next","id":2}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"any"}]}}]}],"groups":[{"title":"Methods","kind":2048,"children":[14]}]},{"id":62,"name":"RoutableComponentActivate","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"An optional interface describing the activate convention."},"children":[{"id":63,"name":"activate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":64,"name":"activate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Implement this hook if you want to perform custom logic just before your view-model is displayed.\nYou can optionally return a promise to tell the router to wait to bind and attach the view until\nafter you finish your work."},"parameters":[{"id":65,"name":"params","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"any"}},{"id":66,"name":"routeConfig","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":67,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":108}}],"type":{"type":"union","types":[{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"void"}]},{"type":"reference","name":"PromiseLike","typeArguments":[{"type":"instrinct","name":"void"}]},{"type":"reference","name":"IObservable","id":89},{"type":"instrinct","name":"void"}]}}]}],"groups":[{"title":"Methods","kind":2048,"children":[63]}]},{"id":56,"name":"RoutableComponentCanActivate","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"An optional interface describing the canActivate convention."},"children":[{"id":57,"name":"canActivate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":58,"name":"canActivate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Implement this hook if you want to control whether or not your view-model can be navigated to.\nReturn a boolean value, a promise for a boolean value, or a navigation command."},"parameters":[{"id":59,"name":"params","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"any"}},{"id":60,"name":"routeConfig","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":61,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":108}}],"type":{"type":"union","types":[{"type":"instrinct","name":"boolean"},{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"boolean"}]},{"type":"reference","name":"PromiseLike","typeArguments":[{"type":"instrinct","name":"boolean"}]},{"type":"reference","name":"NavigationCommand","id":85},{"type":"reference","name":"Promise","typeArguments":[{"type":"reference","name":"NavigationCommand","id":85}]},{"type":"reference","name":"PromiseLike","typeArguments":[{"type":"reference","name":"NavigationCommand","id":85}]}]}}]}],"groups":[{"title":"Methods","kind":2048,"children":[57]}]},{"id":68,"name":"RoutableComponentCanDeactivate","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"An optional interface describing the canDeactivate convention."},"children":[{"id":69,"name":"canDeactivate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":70,"name":"canDeactivate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Implement this hook if you want to control whether or not the router can navigate away from your\nview-model when moving to a new route. Return a boolean value, a promise for a boolean value,\nor a navigation command."},"type":{"type":"union","types":[{"type":"instrinct","name":"boolean"},{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"boolean"}]},{"type":"reference","name":"PromiseLike","typeArguments":[{"type":"instrinct","name":"boolean"}]},{"type":"reference","name":"NavigationCommand","id":85}]}}]}],"groups":[{"title":"Methods","kind":2048,"children":[69]}]},{"id":71,"name":"RoutableComponentDeactivate","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"An optional interface describing the deactivate convention."},"children":[{"id":72,"name":"deactivate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":73,"name":"deactivate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Implement this hook if you want to perform custom logic when your view-model is being\nnavigated away from. You can optionally return a promise to tell the router to wait until\nafter you finish your work."},"type":{"type":"union","types":[{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"void"}]},{"type":"reference","name":"PromiseLike","typeArguments":[{"type":"instrinct","name":"void"}]},{"type":"reference","name":"IObservable","id":89},{"type":"instrinct","name":"void"}]}}]}],"groups":[{"title":"Methods","kind":2048,"children":[72]}]},{"id":74,"name":"RoutableComponentDetermineActivationStrategy","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"An optional interface describing the determineActivationStrategy convention."},"children":[{"id":75,"name":"determineActivationStrategy","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":76,"name":"determineActivationStrategy","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Implement this hook if you want to give hints to the router about the activation strategy, when reusing\na view model for different routes. Available values are 'replace' and 'invoke-lifecycle'."},"parameters":[{"id":77,"name":"params","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"any"}},{"id":78,"name":"routeConfig","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":79,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":108}}],"type":{"type":"instrinct","name":"string"}}]}],"groups":[{"title":"Methods","kind":2048,"children":[75]}]},{"id":33,"name":"RouteConfig","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"A configuration object that describes a route."},"indexSignature":[{"id":54,"name":"__index","kind":8192,"kindString":"Index signature","flags":{},"comment":{"shortText":"A configuration object that describes a route."},"parameters":[{"id":55,"name":"x","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"instrinct","name":"any"}}],"children":[{"id":50,"name":"activationStrategy","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"Add to specify an activation strategy if it is always the same and you do not want that\nto be in your view-model code. Available values are 'replace' and 'invoke-lifecycle'."},"type":{"type":"instrinct","name":"string"}},{"id":49,"name":"caseSensitive","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"When true is specified, this route will be case sensitive."},"type":{"type":"instrinct","name":"boolean"}},{"id":45,"name":"generationUsesHref","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"Indicates that when route generation is done for this route, it should just take the literal value of the href property."},"type":{"type":"instrinct","name":"boolean"}},{"id":44,"name":"href","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"The URL fragment to use in nav models. If unspecified, the [[RouteConfig.route]] will be used.\nHowever, if the [[RouteConfig.route]] contains dynamic segments, this property must be specified."},"type":{"type":"instrinct","name":"string"}},{"id":53,"name":"layoutModel","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"specifies the model parameter to pass to the layout view model's `activate` function."},"type":{"type":"instrinct","name":"string"}},{"id":51,"name":"layoutView","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"specifies the file name of a layout view to use."},"type":{"type":"instrinct","name":"string"}},{"id":52,"name":"layoutViewModel","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"specifies the moduleId of the view model to use with the layout view."},"type":{"type":"instrinct","name":"string"}},{"id":36,"name":"moduleId","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"The moduleId of the view model that should be activated for this route."},"type":{"type":"instrinct","name":"string"}},{"id":35,"name":"name","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"A unique name for the route that may be used to identify the route when generating URL fragments.\nRequired when this route should support URL generation, such as with [[Router.generate]] or\nthe route-href custom attribute."},"type":{"type":"instrinct","name":"string"}},{"id":43,"name":"nav","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"When specified, this route will be included in the [[Router.navigation]] nav model. Useful for\ndynamically generating menus or other navigation elements. When a number is specified, that value\nwill be used as a sort order."},"type":{"type":"union","types":[{"type":"instrinct","name":"boolean"},{"type":"instrinct","name":"number"}]}},{"id":48,"name":"navModel","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"The navigation model for storing and interacting with the route's navigation settings."},"type":{"type":"reference","name":"NavModel","id":139}},{"id":38,"name":"navigationStrategy","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"A function that can be used to dynamically select the module or modules to activate.\nThe function is passed the current [[NavigationInstruction]], and should configure\ninstruction.config with the desired moduleId, viewPorts, or redirect."},"type":{"type":"reflection","declaration":{"id":39,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":40,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":41,"name":"instruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":108}}],"type":{"type":"union","types":[{"type":"reference","name":"Promise","typeArguments":[{"type":"instrinct","name":"void"}]},{"type":"instrinct","name":"void"}]}}]}}},{"id":37,"name":"redirect","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"A URL fragment to redirect to when this route is matched."},"type":{"type":"instrinct","name":"string"}},{"id":34,"name":"route","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The route pattern to match against incoming URL fragments, or an array of patterns."},"type":{"type":"union","types":[{"type":"instrinct","name":"string"},{"type":"instrinct","isArray":true,"name":"string"}]}},{"id":47,"name":"settings","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"Arbitrary data to attach to the route. This can be used to attached custom data needed by components\nlike pipeline steps and activated modules."},"type":{"type":"instrinct","name":"any"}},{"id":46,"name":"title","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"The document title to set when this route is active."},"type":{"type":"instrinct","name":"string"}},{"id":42,"name":"viewPorts","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"The view ports to target when activating this route. If unspecified, the target moduleId is loaded\ninto the default viewPort (the viewPort with name 'default'). The viewPorts object should have keys\nwhose property names correspond to names used by elements. The values should be objects\nspecifying the moduleId to load into that viewPort. The values may optionally include properties related to layout:\n`layoutView`, `layoutViewModel` and `layoutModel`."},"type":{"type":"instrinct","name":"any"}}],"groups":[{"title":"Properties","kind":1024,"children":[50,49,45,44,53,51,52,36,35,43,48,38,37,34,47,46,42]}]},{"id":444,"name":"activationStrategy","kind":32,"kindString":"Variable","flags":{"isExported":true},"comment":{"shortText":"The strategy to use when activating modules during navigation."},"type":{"type":"instrinct","name":"any"}},{"id":440,"name":"pipelineStatus","kind":32,"kindString":"Variable","flags":{"isExported":true},"comment":{"shortText":"The status of a Pipeline."},"type":{"type":"instrinct","name":"any"}},{"id":441,"name":"isNavigationCommand","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":442,"name":"isNavigationCommand","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Determines if the provided object is a navigation command.\nA navigation command is anything with a navigate method."},"parameters":[{"id":443,"name":"obj","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The object to check.\n"},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"boolean"}}]}],"groups":[{"title":"Classes","kind":128,"children":[313,352,217,303,298,103,308,324,139,108,95,334,154,165,318,222,177]},{"title":"Interfaces","kind":256,"children":[80,89,92,85,23,2,18,13,62,56,68,71,74,33]},{"title":"Variables","kind":32,"children":[444,440]},{"title":"Functions","kind":64,"children":[441]}]} \ No newline at end of file +{"name":"aurelia-router","children":[{"id":317,"name":"ActivateNextStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":318,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":319,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":320,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":321,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":872,"character":5}]}],"groups":[{"title":"Methods","kind":2048,"children":[318]}],"sources":[{"fileName":"aurelia-router.d.ts","line":871,"character":37}]},{"id":356,"name":"AppRouter","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"The main application router."},"children":[{"id":359,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":360,"name":"new AppRouter","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":361,"name":"container","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Container"}},{"id":362,"name":"history","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"History"}},{"id":363,"name":"pipelineProvider","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"PipelineProvider","id":338}},{"id":364,"name":"events","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"EventAggregator"}}],"type":{"type":"reference","name":"AppRouter","id":356},"overwrites":{"type":"reference","name":"Router.__constructor","id":244}}],"sources":[{"fileName":"aurelia-router.d.ts","line":915,"character":23}],"overwrites":{"type":"reference","name":"Router.__constructor","id":244}},{"id":383,"name":"baseUrl","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The [[Router]]'s current base URL, typically based on the [[Router.currentInstruction]]."},"sources":[{"fileName":"aurelia-router.d.ts","line":693,"character":9}],"type":{"type":"intrinsic","name":"string"},"inheritedFrom":{"type":"reference","name":"Router.baseUrl","id":231}},{"id":379,"name":"container","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":685,"character":11}],"type":{"type":"reference","name":"Container"},"inheritedFrom":{"type":"reference","name":"Router.container","id":227}},{"id":389,"name":"currentInstruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The currently active navigation instruction."},"sources":[{"fileName":"aurelia-router.d.ts","line":723,"character":20}],"type":{"type":"reference","name":"NavigationInstruction","id":112},"inheritedFrom":{"type":"reference","name":"Router.currentInstruction","id":237}},{"id":380,"name":"history","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":686,"character":9}],"type":{"type":"reference","name":"History"},"inheritedFrom":{"type":"reference","name":"Router.history","id":228}},{"id":384,"name":"isConfigured","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] has been configured."},"sources":[{"fileName":"aurelia-router.d.ts","line":698,"character":14}],"type":{"type":"intrinsic","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.isConfigured","id":232}},{"id":386,"name":"isExplicitNavigation","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] is navigating due to explicit call to navigate function(s)."},"sources":[{"fileName":"aurelia-router.d.ts","line":708,"character":22}],"type":{"type":"intrinsic","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.isExplicitNavigation","id":234}},{"id":387,"name":"isExplicitNavigationBack","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] is navigating due to explicit call to navigateBack function."},"sources":[{"fileName":"aurelia-router.d.ts","line":713,"character":26}],"type":{"type":"intrinsic","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.isExplicitNavigationBack","id":235}},{"id":385,"name":"isNavigating","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] is currently processing a navigation."},"sources":[{"fileName":"aurelia-router.d.ts","line":703,"character":14}],"type":{"type":"intrinsic","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.isNavigating","id":233}},{"id":396,"name":"isRoot","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Gets a value indicating whether or not this [[Router]] is the root in the router tree. I.e., it has no parent."},"sources":[{"fileName":"aurelia-router.d.ts","line":753,"character":8}],"type":{"type":"intrinsic","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.isRoot","id":250}},{"id":388,"name":"navigation","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The navigation models for routes that specified [[RouteConfig.nav]]."},"sources":[{"fileName":"aurelia-router.d.ts","line":718,"character":12}],"type":{"type":"array","elementType":{"type":"reference","name":"NavModel","id":143}},"inheritedFrom":{"type":"reference","name":"Router.navigation","id":236}},{"id":391,"name":"options","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":729,"character":9}],"type":{"type":"intrinsic","name":"any"},"inheritedFrom":{"type":"reference","name":"Router.options","id":239}},{"id":390,"name":"parent","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The parent router, or null if this instance is not a child router."},"sources":[{"fileName":"aurelia-router.d.ts","line":728,"character":8}],"type":{"type":"reference","name":"Router","id":226},"inheritedFrom":{"type":"reference","name":"Router.parent","id":238}},{"id":382,"name":"routes","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":688,"character":8}],"type":{"type":"array","elementType":{"type":"reference","name":"RouteConfig","id":33}},"inheritedFrom":{"type":"reference","name":"Router.routes","id":230}},{"id":392,"name":"transformTitle","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Extension point to transform the document title before it is built and displayed.\nBy default, child routers delegate to the parent router, and the app router\nreturns the title unchanged."},"sources":[{"fileName":"aurelia-router.d.ts","line":736,"character":16}],"type":{"type":"reflection","declaration":{"id":393,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":394,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":395,"name":"title","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"string"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":736,"character":17}]}},"inheritedFrom":{"type":"reference","name":"Router.transformTitle","id":240}},{"id":381,"name":"viewPorts","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":687,"character":11}],"type":{"type":"reference","name":"Object"},"inheritedFrom":{"type":"reference","name":"Router.viewPorts","id":229}},{"id":374,"name":"activate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":375,"name":"activate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Activates the router. This instructs the router to begin listening for history changes and processing instructions.","tags":[{"tag":"params","text":"options The set of options to activate the router with.\n"}]},"parameters":[{"id":376,"name":"options","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Object"}}],"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":944,"character":10}]},{"id":427,"name":"addRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":428,"name":"addRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Registers a new route with the router."},"parameters":[{"id":429,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The [[RouteConfig]]."},"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":430,"name":"navModel","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The [[NavModel]] to use for the route. May be omitted for single-pattern routes.\n"},"type":{"type":"reference","name":"NavModel","id":143}}],"type":{"type":"intrinsic","name":"void"},"inheritedFrom":{"type":"reference","name":"Router.addRoute","id":285}}],"sources":[{"fileName":"aurelia-router.d.ts","line":828,"character":10}],"inheritedFrom":{"type":"reference","name":"Router.addRoute","id":285}},{"id":399,"name":"configure","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":400,"name":"configure","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Configures the router."},"parameters":[{"id":401,"name":"callbackOrConfig","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The [[RouterConfiguration]] or a callback that takes a [[RouterConfiguration]].\n"},"type":{"type":"union","types":[{"type":"reference","name":"RouterConfiguration","id":181},{"type":"reflection","declaration":{"id":402,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":403,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":404,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouterConfiguration","id":181}}],"type":{"type":"reference","name":"RouterConfiguration","id":181}}],"sources":[{"fileName":"aurelia-router.d.ts","line":773,"character":51}]}}]}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"void"}]},"inheritedFrom":{"type":"reference","name":"Router.configure","id":257}}],"sources":[{"fileName":"aurelia-router.d.ts","line":773,"character":11}],"inheritedFrom":{"type":"reference","name":"Router.configure","id":257}},{"id":416,"name":"createChild","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":417,"name":"createChild","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Creates a child router of the current router.","returns":"The new child Router.\n"},"parameters":[{"id":418,"name":"container","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The [[Container]] to provide to the child router. Uses the current [[Router]]'s [[Container]] if unspecified."},"type":{"type":"reference","name":"Container"}}],"type":{"type":"reference","name":"Router","id":226},"inheritedFrom":{"type":"reference","name":"Router.createChild","id":274}}],"sources":[{"fileName":"aurelia-router.d.ts","line":804,"character":13}],"inheritedFrom":{"type":"reference","name":"Router.createChild","id":274}},{"id":424,"name":"createNavModel","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":425,"name":"createNavModel","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Creates a [[NavModel]] for the specified route config."},"parameters":[{"id":426,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The route config.\n"},"type":{"type":"reference","name":"RouteConfig","id":33}}],"type":{"type":"reference","name":"NavModel","id":143},"inheritedFrom":{"type":"reference","name":"Router.createNavModel","id":282}}],"sources":[{"fileName":"aurelia-router.d.ts","line":820,"character":16}],"inheritedFrom":{"type":"reference","name":"Router.createNavModel","id":282}},{"id":377,"name":"deactivate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":378,"name":"deactivate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Deactivates the router."},"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":949,"character":12}]},{"id":397,"name":"ensureConfigured","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":398,"name":"ensureConfigured","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Returns a Promise that resolves when the router is configured."},"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"void"}]},"inheritedFrom":{"type":"reference","name":"Router.ensureConfigured","id":255}}],"sources":[{"fileName":"aurelia-router.d.ts","line":766,"character":18}],"inheritedFrom":{"type":"reference","name":"Router.ensureConfigured","id":255}},{"id":419,"name":"generate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":420,"name":"generate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Generates a URL fragment matching the specified route pattern.","returns":"A string containing the generated URL fragment.\n"},"parameters":[{"id":421,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route whose pattern should be used to generate the fragment."},"type":{"type":"intrinsic","name":"string"}},{"id":422,"name":"params","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The route params to be used to populate the route pattern."},"type":{"type":"intrinsic","name":"any"}},{"id":423,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"string"},"inheritedFrom":{"type":"reference","name":"Router.generate","id":277}}],"sources":[{"fileName":"aurelia-router.d.ts","line":813,"character":10}],"inheritedFrom":{"type":"reference","name":"Router.generate","id":277}},{"id":437,"name":"handleUnknownRoutes","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":438,"name":"handleUnknownRoutes","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Register a handler to use when the incoming URL fragment doesn't match any registered routes."},"parameters":[{"id":439,"name":"config","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The moduleId, or a function that selects the moduleId, or a [[RouteConfig]].\n"},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"Function"},{"type":"reference","name":"RouteConfig","id":33}]}}],"type":{"type":"intrinsic","name":"void"},"inheritedFrom":{"type":"reference","name":"Router.handleUnknownRoutes","id":295}}],"sources":[{"fileName":"aurelia-router.d.ts","line":849,"character":21}],"inheritedFrom":{"type":"reference","name":"Router.handleUnknownRoutes","id":295}},{"id":434,"name":"hasOwnRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":435,"name":"hasOwnRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets a value indicating whether or not this [[Router]] has a route registered with the specified name."},"parameters":[{"id":436,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route to check.\n"},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.hasOwnRoute","id":292}}],"sources":[{"fileName":"aurelia-router.d.ts","line":842,"character":13}],"inheritedFrom":{"type":"reference","name":"Router.hasOwnRoute","id":292}},{"id":431,"name":"hasRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":432,"name":"hasRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets a value indicating whether or not this [[Router]] or one of its ancestors has a route registered with the specified name."},"parameters":[{"id":433,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route to check.\n"},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.hasRoute","id":289}}],"sources":[{"fileName":"aurelia-router.d.ts","line":835,"character":10}],"inheritedFrom":{"type":"reference","name":"Router.hasRoute","id":289}},{"id":367,"name":"loadUrl","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":368,"name":"loadUrl","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Loads the specified URL."},"parameters":[{"id":369,"name":"url","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The URL fragment to load.\n"},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"reference","name":"NavigationInstruction","id":112}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":929,"character":9}]},{"id":405,"name":"navigate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":406,"name":"navigate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Navigates to a new location."},"parameters":[{"id":407,"name":"fragment","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The URL fragment to use as the navigation destination."},"type":{"type":"intrinsic","name":"string"}},{"id":408,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The navigation options.\n"},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.navigate","id":263}}],"sources":[{"fileName":"aurelia-router.d.ts","line":781,"character":10}],"inheritedFrom":{"type":"reference","name":"Router.navigate","id":263}},{"id":414,"name":"navigateBack","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":415,"name":"navigateBack","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Navigates back to the most recent location in history."},"type":{"type":"intrinsic","name":"void"},"inheritedFrom":{"type":"reference","name":"Router.navigateBack","id":272}}],"sources":[{"fileName":"aurelia-router.d.ts","line":796,"character":14}],"inheritedFrom":{"type":"reference","name":"Router.navigateBack","id":272}},{"id":409,"name":"navigateToRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":410,"name":"navigateToRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Navigates to a new location corresponding to the route and params specified. Equivallent to [[Router.generate]] followed\nby [[Router.navigate]]."},"parameters":[{"id":411,"name":"route","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route to use when generating the navigation location."},"type":{"type":"intrinsic","name":"string"}},{"id":412,"name":"params","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The route parameters to be used when populating the route pattern."},"type":{"type":"intrinsic","name":"any"}},{"id":413,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The navigation options.\n"},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"boolean"},"inheritedFrom":{"type":"reference","name":"Router.navigateToRoute","id":267}}],"sources":[{"fileName":"aurelia-router.d.ts","line":791,"character":17}],"inheritedFrom":{"type":"reference","name":"Router.navigateToRoute","id":267}},{"id":442,"name":"refreshNavigation","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":443,"name":"refreshNavigation","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Updates the navigation routes with hrefs relative to the current location.\nNote: This method will likely move to a plugin in a future release."},"type":{"type":"intrinsic","name":"void"},"inheritedFrom":{"type":"reference","name":"Router.refreshNavigation","id":300}}],"sources":[{"fileName":"aurelia-router.d.ts","line":860,"character":19}],"inheritedFrom":{"type":"reference","name":"Router.refreshNavigation","id":300}},{"id":370,"name":"registerViewPort","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":371,"name":"registerViewPort","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Registers a viewPort to be used as a rendering target for activated routes."},"parameters":[{"id":372,"name":"viewPort","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The viewPort."},"type":{"type":"intrinsic","name":"any"}},{"id":373,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the viewPort. 'default' if unspecified.\n"},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"any"}]},"overwrites":{"type":"reference","name":"Router.registerViewPort","id":251}}],"sources":[{"fileName":"aurelia-router.d.ts","line":937,"character":18}],"overwrites":{"type":"reference","name":"Router.registerViewPort","id":251}},{"id":365,"name":"reset","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":366,"name":"reset","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Fully resets the router's internal state. Primarily used internally by the framework when multiple calls to setRoot are made.\nUse with caution (actually, avoid using this). Do not use this to simply change your navigation model."},"type":{"type":"intrinsic","name":"any"},"overwrites":{"type":"reference","name":"Router.reset","id":248}}],"sources":[{"fileName":"aurelia-router.d.ts","line":922,"character":7}],"overwrites":{"type":"reference","name":"Router.reset","id":248}},{"id":440,"name":"updateTitle","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":441,"name":"updateTitle","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Updates the document title using the current navigation instruction."},"type":{"type":"intrinsic","name":"void"},"inheritedFrom":{"type":"reference","name":"Router.updateTitle","id":298}}],"sources":[{"fileName":"aurelia-router.d.ts","line":854,"character":13}],"inheritedFrom":{"type":"reference","name":"Router.updateTitle","id":298}},{"id":357,"name":"inject","kind":2048,"kindString":"Method","flags":{"isStatic":true,"isExported":true},"signatures":[{"id":358,"name":"inject","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":915,"character":15}]}],"groups":[{"title":"Constructors","kind":512,"children":[359]},{"title":"Properties","kind":1024,"children":[383,379,389,380,384,386,387,385,396,388,391,390,382,392,381]},{"title":"Methods","kind":2048,"children":[374,427,399,416,424,377,397,419,437,434,431,367,405,414,409,442,370,365,440,357]}],"sources":[{"fileName":"aurelia-router.d.ts","line":914,"character":30}],"extendedTypes":[{"type":"reference","name":"Router","id":226}]},{"id":221,"name":"BuildNavigationPlanStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":222,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":223,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":224,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":225,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":675,"character":5}]}],"groups":[{"title":"Methods","kind":2048,"children":[222]}],"sources":[{"fileName":"aurelia-router.d.ts","line":674,"character":44}]},{"id":307,"name":"CanActivateNextStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":308,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":309,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":310,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":311,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":866,"character":5}]}],"groups":[{"title":"Methods","kind":2048,"children":[308]}],"sources":[{"fileName":"aurelia-router.d.ts","line":865,"character":40}]},{"id":302,"name":"CanDeactivatePreviousStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":303,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":304,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":305,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":306,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":863,"character":5}]}],"groups":[{"title":"Methods","kind":2048,"children":[303]}],"sources":[{"fileName":"aurelia-router.d.ts","line":862,"character":46}]},{"id":107,"name":"CommitChangesStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":108,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":109,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":110,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":111,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":369,"character":5}]}],"groups":[{"title":"Methods","kind":2048,"children":[108]}],"sources":[{"fileName":"aurelia-router.d.ts","line":368,"character":38}]},{"id":312,"name":"DeactivatePreviousStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":313,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":314,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":315,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":316,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":869,"character":5}]}],"groups":[{"title":"Methods","kind":2048,"children":[313]}],"sources":[{"fileName":"aurelia-router.d.ts","line":868,"character":43}]},{"id":328,"name":"LoadRouteStep","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":331,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":332,"name":"new LoadRouteStep","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":333,"name":"routeLoader","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouteLoader","id":322}}],"type":{"type":"reference","name":"LoadRouteStep","id":328}}],"sources":[{"fileName":"aurelia-router.d.ts","line":878,"character":23}]},{"id":334,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":335,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":336,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":337,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Function"}}],"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":880,"character":5}]},{"id":329,"name":"inject","kind":2048,"kindString":"Method","flags":{"isStatic":true,"isExported":true},"signatures":[{"id":330,"name":"inject","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":878,"character":15}]}],"groups":[{"title":"Constructors","kind":512,"children":[331]},{"title":"Methods","kind":2048,"children":[334,329]}],"sources":[{"fileName":"aurelia-router.d.ts","line":877,"character":34}]},{"id":143,"name":"NavModel","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"Class for storing and interacting with a route's navigation settings."},"children":[{"id":151,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":152,"name":"new NavModel","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":153,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Router","id":226}},{"id":154,"name":"relativeHref","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","name":"NavModel","id":143}}],"sources":[{"fileName":"aurelia-router.d.ts","line":496,"character":17}]},{"id":149,"name":"config","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The route config."},"sources":[{"fileName":"aurelia-router.d.ts","line":491,"character":8}],"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":146,"name":"href","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"This nav item's absolute href."},"sources":[{"fileName":"aurelia-router.d.ts","line":476,"character":6}],"type":{"type":"intrinsic","name":"string"}},{"id":144,"name":"isActive","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if this nav item is currently active."},"sources":[{"fileName":"aurelia-router.d.ts","line":466,"character":10}],"type":{"type":"intrinsic","name":"boolean"}},{"id":147,"name":"relativeHref","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"This nav item's relative href."},"sources":[{"fileName":"aurelia-router.d.ts","line":481,"character":14}],"type":{"type":"intrinsic","name":"string"}},{"id":150,"name":"router","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The router associated with this navitation model."},"sources":[{"fileName":"aurelia-router.d.ts","line":496,"character":8}],"type":{"type":"reference","name":"Router","id":226}},{"id":148,"name":"settings","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Data attached to the route at configuration time."},"sources":[{"fileName":"aurelia-router.d.ts","line":486,"character":10}],"type":{"type":"intrinsic","name":"any"}},{"id":145,"name":"title","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The title."},"sources":[{"fileName":"aurelia-router.d.ts","line":471,"character":7}],"type":{"type":"intrinsic","name":"string"}},{"id":155,"name":"setTitle","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":156,"name":"setTitle","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Sets the route's title and updates document.title.\n If the a navigation is in progress, the change will be applied\n to document.title when the navigation completes."},"parameters":[{"id":157,"name":"title","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The new title.\n"},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":506,"character":10}]}],"groups":[{"title":"Constructors","kind":512,"children":[151]},{"title":"Properties","kind":1024,"children":[149,146,144,147,150,148,145]},{"title":"Methods","kind":2048,"children":[155]}],"sources":[{"fileName":"aurelia-router.d.ts","line":461,"character":29}]},{"id":112,"name":"NavigationInstruction","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"Class used to represent an instruction during a navigation."},"children":[{"id":124,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":125,"name":"new NavigationInstruction","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":126,"name":"init","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstructionInit","id":23}}],"type":{"type":"reference","name":"NavigationInstruction","id":112}}],"sources":[{"fileName":"aurelia-router.d.ts","line":422,"character":18}]},{"id":117,"name":"config","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The route config for the route matching this instruction."},"sources":[{"fileName":"aurelia-router.d.ts","line":400,"character":8}],"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":113,"name":"fragment","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The URL fragment."},"sources":[{"fileName":"aurelia-router.d.ts","line":380,"character":10}],"type":{"type":"intrinsic","name":"string"}},{"id":123,"name":"options","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":422,"character":9}],"type":{"type":"reference","name":"Object"}},{"id":115,"name":"params","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Parameters extracted from the route pattern."},"sources":[{"fileName":"aurelia-router.d.ts","line":390,"character":8}],"type":{"type":"intrinsic","name":"any"}},{"id":118,"name":"parentInstruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The parent instruction, if this instruction was created by a child router."},"sources":[{"fileName":"aurelia-router.d.ts","line":405,"character":19}],"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":122,"name":"plan","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":421,"character":6}],"type":{"type":"reference","name":"Object"}},{"id":119,"name":"previousInstruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The instruction being replaced by this instruction in the current router."},"sources":[{"fileName":"aurelia-router.d.ts","line":410,"character":21}],"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":116,"name":"queryParams","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Parameters extracted from the query string."},"sources":[{"fileName":"aurelia-router.d.ts","line":395,"character":13}],"type":{"type":"intrinsic","name":"any"}},{"id":114,"name":"queryString","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The query string."},"sources":[{"fileName":"aurelia-router.d.ts","line":385,"character":13}],"type":{"type":"intrinsic","name":"string"}},{"id":121,"name":"router","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The router instance."},"sources":[{"fileName":"aurelia-router.d.ts","line":420,"character":8}],"type":{"type":"reference","name":"Router","id":226}},{"id":120,"name":"viewPortInstructions","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"viewPort instructions to used activation."},"sources":[{"fileName":"aurelia-router.d.ts","line":415,"character":22}],"type":{"type":"intrinsic","name":"any"}},{"id":131,"name":"addViewPortInstruction","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":132,"name":"addViewPortInstruction","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a viewPort instruction."},"parameters":[{"id":133,"name":"viewPortName","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"}},{"id":134,"name":"strategy","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"}},{"id":135,"name":"moduleId","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"}},{"id":136,"name":"component","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":439,"character":24}]},{"id":127,"name":"getAllInstructions","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":128,"name":"getAllInstructions","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets an array containing this instruction and all child instructions for the current navigation."},"type":{"type":"reference","name":"Array","typeArguments":[{"type":"reference","name":"NavigationInstruction","id":112}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":428,"character":20}]},{"id":129,"name":"getAllPreviousInstructions","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":130,"name":"getAllPreviousInstructions","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets an array containing the instruction and all child instructions for the previous navigation.\nPrevious instructions are no longer available after navigation completes."},"type":{"type":"reference","name":"Array","typeArguments":[{"type":"reference","name":"NavigationInstruction","id":112}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":434,"character":28}]},{"id":141,"name":"getBaseUrl","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":142,"name":"getBaseUrl","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets the instruction's base URL, accounting for wildcard route parameters."},"type":{"type":"intrinsic","name":"string"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":455,"character":12}]},{"id":137,"name":"getWildCardName","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":138,"name":"getWildCardName","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets the name of the route pattern's wildcard parameter, if applicable."},"type":{"type":"intrinsic","name":"string"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":444,"character":17}]},{"id":139,"name":"getWildcardPath","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":140,"name":"getWildcardPath","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets the path and query string created by filling the route\npattern's wildcard parameter with the matching param."},"type":{"type":"intrinsic","name":"string"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":450,"character":17}]}],"groups":[{"title":"Constructors","kind":512,"children":[124]},{"title":"Properties","kind":1024,"children":[117,113,123,115,118,122,119,116,114,121,120]},{"title":"Methods","kind":2048,"children":[131,127,129,141,137,139]}],"sources":[{"fileName":"aurelia-router.d.ts","line":375,"character":42}]},{"id":99,"name":"Pipeline","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"The class responsible for managing and processing the navigation pipeline."},"children":[{"id":100,"name":"steps","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The pipeline steps."},"sources":[{"fileName":"aurelia-router.d.ts","line":352,"character":7}],"type":{"type":"reference","name":"Array","typeArguments":[{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}]}},{"id":101,"name":"addStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":102,"name":"addStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step to the pipeline."},"parameters":[{"id":103,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The pipeline step.\n"},"type":{"type":"reference","name":"PipelineStep","id":13}}],"type":{"type":"reference","name":"Pipeline","id":99}}],"sources":[{"fileName":"aurelia-router.d.ts","line":359,"character":9}]},{"id":104,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":105,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Runs the pipeline."},"parameters":[{"id":106,"name":"instruction","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The navigation instruction to process.\n"},"type":{"type":"reference","name":"NavigationInstruction","id":112}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"reference","name":"PipelineResult","id":18}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":366,"character":5}]}],"groups":[{"title":"Properties","kind":1024,"children":[100]},{"title":"Methods","kind":2048,"children":[101,104]}],"sources":[{"fileName":"aurelia-router.d.ts","line":347,"character":29}]},{"id":338,"name":"PipelineProvider","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"Class responsible for creating the navigation pipeline."},"children":[{"id":341,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":342,"name":"new PipelineProvider","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":343,"name":"container","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Container"}}],"type":{"type":"reference","name":"PipelineProvider","id":338}}],"sources":[{"fileName":"aurelia-router.d.ts","line":887,"character":23}]},{"id":346,"name":"addStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":347,"name":"addStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step into the pipeline at a known slot location."},"parameters":[{"id":348,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"}},{"id":349,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"PipelineStep","id":13}}],"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":898,"character":9}]},{"id":344,"name":"createPipeline","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":345,"name":"createPipeline","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Create the navigation pipeline."},"type":{"type":"reference","name":"Pipeline","id":99}}],"sources":[{"fileName":"aurelia-router.d.ts","line":893,"character":16}]},{"id":350,"name":"removeStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":351,"name":"removeStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Removes a step from a slot in the pipeline"},"parameters":[{"id":352,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"}},{"id":353,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"PipelineStep","id":13}}],"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":903,"character":12}]},{"id":354,"name":"reset","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":355,"name":"reset","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Resets all pipeline slots"},"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":908,"character":7}]},{"id":339,"name":"inject","kind":2048,"kindString":"Method","flags":{"isStatic":true,"isExported":true},"signatures":[{"id":340,"name":"inject","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":887,"character":15}]}],"groups":[{"title":"Constructors","kind":512,"children":[341]},{"title":"Methods","kind":2048,"children":[346,344,350,354,339]}],"sources":[{"fileName":"aurelia-router.d.ts","line":886,"character":37}]},{"id":158,"name":"Redirect","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"Used during the activation lifecycle to cause a redirect."},"children":[{"id":159,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"comment":{},"signatures":[{"id":160,"name":"new Redirect","kind":16384,"kindString":"Constructor signature","flags":{},"comment":{},"parameters":[{"id":161,"name":"url","kind":32768,"kindString":"Parameter","flags":{},"comment":{"shortText":"The URL fragment to use as the navigation destination."},"type":{"type":"intrinsic","name":"string"}},{"id":162,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"shortText":"The navigation options.\n"},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"reference","name":"Redirect","id":158}}],"sources":[{"fileName":"aurelia-router.d.ts","line":526,"character":31}]},{"id":166,"name":"navigate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":167,"name":"navigate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Called by the navigation pipeline to navigate."},"parameters":[{"id":168,"name":"appRouter","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The router to be redirected.\n"},"type":{"type":"reference","name":"Router","id":226}}],"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":546,"character":10}]},{"id":163,"name":"setRouter","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":164,"name":"setRouter","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Called by the activation system to set the child router."},"parameters":[{"id":165,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The router.\n"},"type":{"type":"reference","name":"Router","id":226}}],"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":539,"character":11}]}],"groups":[{"title":"Constructors","kind":512,"children":[159]},{"title":"Methods","kind":2048,"children":[166,163]}],"sources":[{"fileName":"aurelia-router.d.ts","line":526,"character":29}]},{"id":169,"name":"RedirectToRoute","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"Used during the activation lifecycle to cause a redirect to a named route."},"children":[{"id":170,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"comment":{},"signatures":[{"id":171,"name":"new RedirectToRoute","kind":16384,"kindString":"Constructor signature","flags":{},"comment":{},"parameters":[{"id":172,"name":"route","kind":32768,"kindString":"Parameter","flags":{},"comment":{"shortText":"The name of the route."},"type":{"type":"intrinsic","name":"string"}},{"id":173,"name":"params","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"shortText":"The parameters to be sent to the activation method."},"type":{"type":"intrinsic","name":"any"}},{"id":174,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"shortText":"The options to use for navigation.\n"},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"reference","name":"RedirectToRoute","id":169}}],"sources":[{"fileName":"aurelia-router.d.ts","line":552,"character":38}]},{"id":178,"name":"navigate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":179,"name":"navigate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Called by the navigation pipeline to navigate."},"parameters":[{"id":180,"name":"appRouter","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The router to be redirected.\n"},"type":{"type":"reference","name":"Router","id":226}}],"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":573,"character":10}]},{"id":175,"name":"setRouter","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":176,"name":"setRouter","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Called by the activation system to set the child router."},"parameters":[{"id":177,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The router.\n"},"type":{"type":"reference","name":"Router","id":226}}],"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":566,"character":11}]}],"groups":[{"title":"Constructors","kind":512,"children":[170]},{"title":"Methods","kind":2048,"children":[178,175]}],"sources":[{"fileName":"aurelia-router.d.ts","line":552,"character":36}]},{"id":322,"name":"RouteLoader","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":323,"name":"loadRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":324,"name":"loadRoute","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":325,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"any"}},{"id":326,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"any"}},{"id":327,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":875,"character":11}]}],"groups":[{"title":"Methods","kind":2048,"children":[323]}],"sources":[{"fileName":"aurelia-router.d.ts","line":874,"character":32}]},{"id":226,"name":"Router","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"The primary class responsible for handling routing and navigation.","tags":[{"tag":"class","text":"Router"},{"tag":"constructor","text":"\n"}]},"children":[{"id":244,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"comment":{},"signatures":[{"id":245,"name":"new Router","kind":16384,"kindString":"Constructor signature","flags":{},"comment":{},"parameters":[{"id":246,"name":"container","kind":32768,"kindString":"Parameter","flags":{},"comment":{"shortText":"The [[Container]] to use when child routers."},"type":{"type":"reference","name":"Container"}},{"id":247,"name":"history","kind":32768,"kindString":"Parameter","flags":{},"comment":{"shortText":"The [[History]] implementation to delegate navigation requests to.\n"},"type":{"type":"reference","name":"History"}}],"type":{"type":"reference","name":"Router","id":226}}],"sources":[{"fileName":"aurelia-router.d.ts","line":736,"character":46}]},{"id":231,"name":"baseUrl","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The [[Router]]'s current base URL, typically based on the [[Router.currentInstruction]]."},"sources":[{"fileName":"aurelia-router.d.ts","line":693,"character":9}],"type":{"type":"intrinsic","name":"string"}},{"id":227,"name":"container","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":685,"character":11}],"type":{"type":"reference","name":"Container"}},{"id":237,"name":"currentInstruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The currently active navigation instruction."},"sources":[{"fileName":"aurelia-router.d.ts","line":723,"character":20}],"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":228,"name":"history","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":686,"character":9}],"type":{"type":"reference","name":"History"}},{"id":232,"name":"isConfigured","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] has been configured."},"sources":[{"fileName":"aurelia-router.d.ts","line":698,"character":14}],"type":{"type":"intrinsic","name":"boolean"}},{"id":234,"name":"isExplicitNavigation","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] is navigating due to explicit call to navigate function(s)."},"sources":[{"fileName":"aurelia-router.d.ts","line":708,"character":22}],"type":{"type":"intrinsic","name":"boolean"}},{"id":235,"name":"isExplicitNavigationBack","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] is navigating due to explicit call to navigateBack function."},"sources":[{"fileName":"aurelia-router.d.ts","line":713,"character":26}],"type":{"type":"intrinsic","name":"boolean"}},{"id":233,"name":"isNavigating","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"True if the [[Router]] is currently processing a navigation."},"sources":[{"fileName":"aurelia-router.d.ts","line":703,"character":14}],"type":{"type":"intrinsic","name":"boolean"}},{"id":250,"name":"isRoot","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Gets a value indicating whether or not this [[Router]] is the root in the router tree. I.e., it has no parent."},"sources":[{"fileName":"aurelia-router.d.ts","line":753,"character":8}],"type":{"type":"intrinsic","name":"boolean"}},{"id":236,"name":"navigation","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The navigation models for routes that specified [[RouteConfig.nav]]."},"sources":[{"fileName":"aurelia-router.d.ts","line":718,"character":12}],"type":{"type":"array","elementType":{"type":"reference","name":"NavModel","id":143}}},{"id":239,"name":"options","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":729,"character":9}],"type":{"type":"intrinsic","name":"any"}},{"id":238,"name":"parent","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The parent router, or null if this instance is not a child router."},"sources":[{"fileName":"aurelia-router.d.ts","line":728,"character":8}],"type":{"type":"reference","name":"Router","id":226}},{"id":230,"name":"routes","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":688,"character":8}],"type":{"type":"array","elementType":{"type":"reference","name":"RouteConfig","id":33}}},{"id":240,"name":"transformTitle","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Extension point to transform the document title before it is built and displayed.\nBy default, child routers delegate to the parent router, and the app router\nreturns the title unchanged."},"sources":[{"fileName":"aurelia-router.d.ts","line":736,"character":16}],"type":{"type":"reflection","declaration":{"id":241,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":242,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":243,"name":"title","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"string"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":736,"character":17}]}}},{"id":229,"name":"viewPorts","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":687,"character":11}],"type":{"type":"reference","name":"Object"}},{"id":285,"name":"addRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":286,"name":"addRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Registers a new route with the router."},"parameters":[{"id":287,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The [[RouteConfig]]."},"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":288,"name":"navModel","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The [[NavModel]] to use for the route. May be omitted for single-pattern routes.\n"},"type":{"type":"reference","name":"NavModel","id":143}}],"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":828,"character":10}]},{"id":257,"name":"configure","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":258,"name":"configure","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Configures the router."},"parameters":[{"id":259,"name":"callbackOrConfig","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The [[RouterConfiguration]] or a callback that takes a [[RouterConfiguration]].\n"},"type":{"type":"union","types":[{"type":"reference","name":"RouterConfiguration","id":181},{"type":"reflection","declaration":{"id":260,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":261,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":262,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouterConfiguration","id":181}}],"type":{"type":"reference","name":"RouterConfiguration","id":181}}],"sources":[{"fileName":"aurelia-router.d.ts","line":773,"character":51}]}}]}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"void"}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":773,"character":11}]},{"id":274,"name":"createChild","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":275,"name":"createChild","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Creates a child router of the current router.","returns":"The new child Router.\n"},"parameters":[{"id":276,"name":"container","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The [[Container]] to provide to the child router. Uses the current [[Router]]'s [[Container]] if unspecified."},"type":{"type":"reference","name":"Container"}}],"type":{"type":"reference","name":"Router","id":226}}],"sources":[{"fileName":"aurelia-router.d.ts","line":804,"character":13}]},{"id":282,"name":"createNavModel","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":283,"name":"createNavModel","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Creates a [[NavModel]] for the specified route config."},"parameters":[{"id":284,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The route config.\n"},"type":{"type":"reference","name":"RouteConfig","id":33}}],"type":{"type":"reference","name":"NavModel","id":143}}],"sources":[{"fileName":"aurelia-router.d.ts","line":820,"character":16}]},{"id":255,"name":"ensureConfigured","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":256,"name":"ensureConfigured","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Returns a Promise that resolves when the router is configured."},"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"void"}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":766,"character":18}]},{"id":277,"name":"generate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":278,"name":"generate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Generates a URL fragment matching the specified route pattern.","returns":"A string containing the generated URL fragment.\n"},"parameters":[{"id":279,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route whose pattern should be used to generate the fragment."},"type":{"type":"intrinsic","name":"string"}},{"id":280,"name":"params","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The route params to be used to populate the route pattern."},"type":{"type":"intrinsic","name":"any"}},{"id":281,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"string"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":813,"character":10}]},{"id":295,"name":"handleUnknownRoutes","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":296,"name":"handleUnknownRoutes","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Register a handler to use when the incoming URL fragment doesn't match any registered routes."},"parameters":[{"id":297,"name":"config","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The moduleId, or a function that selects the moduleId, or a [[RouteConfig]].\n"},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"Function"},{"type":"reference","name":"RouteConfig","id":33}]}}],"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":849,"character":21}]},{"id":292,"name":"hasOwnRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":293,"name":"hasOwnRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets a value indicating whether or not this [[Router]] has a route registered with the specified name."},"parameters":[{"id":294,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route to check.\n"},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"boolean"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":842,"character":13}]},{"id":289,"name":"hasRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":290,"name":"hasRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets a value indicating whether or not this [[Router]] or one of its ancestors has a route registered with the specified name."},"parameters":[{"id":291,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route to check.\n"},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"boolean"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":835,"character":10}]},{"id":263,"name":"navigate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":264,"name":"navigate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Navigates to a new location."},"parameters":[{"id":265,"name":"fragment","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The URL fragment to use as the navigation destination."},"type":{"type":"intrinsic","name":"string"}},{"id":266,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The navigation options.\n"},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"boolean"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":781,"character":10}]},{"id":272,"name":"navigateBack","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":273,"name":"navigateBack","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Navigates back to the most recent location in history."},"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":796,"character":14}]},{"id":267,"name":"navigateToRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":268,"name":"navigateToRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Navigates to a new location corresponding to the route and params specified. Equivallent to [[Router.generate]] followed\nby [[Router.navigate]]."},"parameters":[{"id":269,"name":"route","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the route to use when generating the navigation location."},"type":{"type":"intrinsic","name":"string"}},{"id":270,"name":"params","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The route parameters to be used when populating the route pattern."},"type":{"type":"intrinsic","name":"any"}},{"id":271,"name":"options","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The navigation options.\n"},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"boolean"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":791,"character":17}]},{"id":300,"name":"refreshNavigation","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":301,"name":"refreshNavigation","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Updates the navigation routes with hrefs relative to the current location.\nNote: This method will likely move to a plugin in a future release."},"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":860,"character":19}]},{"id":251,"name":"registerViewPort","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":252,"name":"registerViewPort","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Registers a viewPort to be used as a rendering target for activated routes."},"parameters":[{"id":253,"name":"viewPort","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The viewPort."},"type":{"type":"intrinsic","name":"any"}},{"id":254,"name":"name","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The name of the viewPort. 'default' if unspecified.\n"},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":761,"character":18}]},{"id":248,"name":"reset","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":249,"name":"reset","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Fully resets the router's internal state. Primarily used internally by the framework when multiple calls to setRoot are made.\nUse with caution (actually, avoid using this). Do not use this to simply change your navigation model."},"type":{"type":"intrinsic","name":"any"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":748,"character":7}]},{"id":298,"name":"updateTitle","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":299,"name":"updateTitle","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Updates the document title using the current navigation instruction."},"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":854,"character":13}]}],"groups":[{"title":"Constructors","kind":512,"children":[244]},{"title":"Properties","kind":1024,"children":[231,227,237,228,232,234,235,233,250,236,239,238,230,240,229]},{"title":"Methods","kind":2048,"children":[285,257,274,282,255,277,295,292,289,263,272,267,300,251,248,298]}],"sources":[{"fileName":"aurelia-router.d.ts","line":684,"character":27}],"extendedBy":[{"type":"reference","name":"AppRouter","id":356}]},{"id":181,"name":"RouterConfiguration","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"Class used to configure a [[Router]] instance.","tags":[{"tag":"constructor","text":"\n"}]},"children":[{"id":182,"name":"instructions","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":582,"character":14}],"type":{"type":"intrinsic","name":"any"}},{"id":183,"name":"options","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":583,"character":9}],"type":{"type":"intrinsic","name":"any"}},{"id":184,"name":"pipelineSteps","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":584,"character":15}],"type":{"type":"reference","name":"Array","typeArguments":[{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}]}},{"id":185,"name":"title","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":585,"character":7}],"type":{"type":"intrinsic","name":"string"}},{"id":186,"name":"unknownRouteConfig","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":586,"character":20}],"type":{"type":"intrinsic","name":"any"}},{"id":191,"name":"addAuthorizeStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":192,"name":"addAuthorizeStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step to be run during the [[Router]]'s authorize pipeline slot.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":193,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The pipeline step."},"type":{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":181}}],"sources":[{"fileName":"aurelia-router.d.ts","line":603,"character":18}]},{"id":187,"name":"addPipelineStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":188,"name":"addPipelineStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step to be run during the [[Router]]'s navigation pipeline.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":189,"name":"name","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The name of the pipeline slot to insert the step into."},"type":{"type":"intrinsic","name":"string"}},{"id":190,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The pipeline step."},"type":{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":181}}],"sources":[{"fileName":"aurelia-router.d.ts","line":595,"character":17}]},{"id":200,"name":"addPostRenderStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":201,"name":"addPostRenderStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step to be run during the [[Router]]'s postRender pipeline slot.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":202,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The pipeline step."},"type":{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":181}}],"sources":[{"fileName":"aurelia-router.d.ts","line":627,"character":19}]},{"id":194,"name":"addPreActivateStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":195,"name":"addPreActivateStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step to be run during the [[Router]]'s preActivate pipeline slot.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":196,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The pipeline step."},"type":{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":181}}],"sources":[{"fileName":"aurelia-router.d.ts","line":611,"character":20}]},{"id":197,"name":"addPreRenderStep","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":198,"name":"addPreRenderStep","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a step to be run during the [[Router]]'s preRender pipeline slot.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":199,"name":"step","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The pipeline step."},"type":{"type":"union","types":[{"type":"reference","name":"Function"},{"type":"reference","name":"PipelineStep","id":13}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":181}}],"sources":[{"fileName":"aurelia-router.d.ts","line":619,"character":18}]},{"id":218,"name":"exportToRouter","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":219,"name":"exportToRouter","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Applies the current configuration to the specified [[Router]]."},"parameters":[{"id":220,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The [[Router]] to apply the configuration to.\n"},"type":{"type":"reference","name":"Router","id":226}}],"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":667,"character":16}]},{"id":203,"name":"fallbackRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":204,"name":"fallbackRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Configures a route that will be used if there is no previous location available on navigation cancellation.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":205,"name":"fragment","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The URL fragment to use as the navigation destination."},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"reference","name":"RouterConfiguration","id":181}}],"sources":[{"fileName":"aurelia-router.d.ts","line":635,"character":15}]},{"id":206,"name":"map","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":207,"name":"map","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Maps one or more routes to be registered with the router.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":208,"name":"route","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The [[RouteConfig]] to map, or an array of [[RouteConfig]] to map."},"type":{"type":"union","types":[{"type":"reference","name":"RouteConfig","id":33},{"type":"array","elementType":{"type":"reference","name":"RouteConfig","id":33}}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":181}}],"sources":[{"fileName":"aurelia-router.d.ts","line":643,"character":5}]},{"id":209,"name":"mapRoute","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":210,"name":"mapRoute","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Maps a single route to be registered with the router.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":211,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouteConfig","id":33}}],"type":{"type":"reference","name":"RouterConfiguration","id":181}}],"sources":[{"fileName":"aurelia-router.d.ts","line":651,"character":10}]},{"id":212,"name":"mapUnknownRoutes","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":213,"name":"mapUnknownRoutes","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Registers an unknown route handler to be run when the URL fragment doesn't match any registered routes.","tags":[{"tag":"chainable","text":"\n"}]},"parameters":[{"id":214,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"A string containing a moduleId to load, or a [[RouteConfig]], or a function that takes the\n [[NavigationInstruction]] and selects a moduleId to load."},"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"RouteConfig","id":33},{"type":"reflection","declaration":{"id":215,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":216,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":217,"name":"instruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":112}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"RouteConfig","id":33},{"type":"reference","name":"Promise","typeArguments":[{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"reference","name":"RouteConfig","id":33}]}]}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":660,"character":49}]}}]}}],"type":{"type":"reference","name":"RouterConfiguration","id":181}}],"sources":[{"fileName":"aurelia-router.d.ts","line":660,"character":18}]}],"groups":[{"title":"Properties","kind":1024,"children":[182,183,184,185,186]},{"title":"Methods","kind":2048,"children":[191,187,200,194,197,218,203,206,209,212]}],"sources":[{"fileName":"aurelia-router.d.ts","line":581,"character":40}]},{"id":85,"name":"ActivationStrategy","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"An optional interface describing the available activation strategies."},"children":[{"id":87,"name":"invokeLifecycle","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Reuse the existing view model, invoking Router lifecycle hooks."},"sources":[{"fileName":"aurelia-router.d.ts","line":297,"character":17}],"type":{"type":"stringLiteral","value":"invoke-lifecycle"}},{"id":86,"name":"noChange","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Reuse the existing view model, without invoking Router lifecycle hooks."},"sources":[{"fileName":"aurelia-router.d.ts","line":292,"character":10}],"type":{"type":"stringLiteral","value":"no-change"}},{"id":88,"name":"replace","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"Replace the existing view model, invoking Router lifecycle hooks."},"sources":[{"fileName":"aurelia-router.d.ts","line":302,"character":9}],"type":{"type":"stringLiteral","value":"replace"}}],"groups":[{"title":"Properties","kind":1024,"children":[87,86,88]}],"sources":[{"fileName":"aurelia-router.d.ts","line":287,"character":43}]},{"id":80,"name":"ConfiguresRouter","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"An optional interface describing the router configuration convention."},"children":[{"id":81,"name":"configureRouter","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":82,"name":"configureRouter","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Implement this hook if you want to configure a router."},"parameters":[{"id":83,"name":"config","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouterConfiguration","id":181}},{"id":84,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Router","id":226}}],"type":{"type":"union","types":[{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"void"}]},{"type":"reference","name":"PromiseLike","typeArguments":[{"type":"intrinsic","name":"void"}]},{"type":"intrinsic","name":"void"}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":278,"character":17}]}],"groups":[{"title":"Methods","kind":2048,"children":[81]}],"sources":[{"fileName":"aurelia-router.d.ts","line":273,"character":41}]},{"id":93,"name":"IObservable","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"A basic interface for an Observable type"},"children":[{"id":94,"name":"subscribe","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":95,"name":"subscribe","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"reference","name":"ISubscription","id":96}}],"sources":[{"fileName":"aurelia-router.d.ts","line":323,"character":11}]}],"groups":[{"title":"Methods","kind":2048,"children":[94]}],"sources":[{"fileName":"aurelia-router.d.ts","line":322,"character":36}]},{"id":96,"name":"ISubscription","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"A basic interface for a Subscription to an Observable"},"children":[{"id":97,"name":"unsubscribe","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":98,"name":"unsubscribe","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":333,"character":13}]}],"groups":[{"title":"Methods","kind":2048,"children":[97]}],"sources":[{"fileName":"aurelia-router.d.ts","line":332,"character":38}]},{"id":89,"name":"NavigationCommand","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"When a navigation command is encountered, the current navigation\nwill be cancelled and control will be passed to the navigation\ncommand so it can determine the correct action."},"children":[{"id":90,"name":"navigate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":91,"name":"navigate","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":92,"name":"router","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Router","id":226}}],"type":{"type":"intrinsic","name":"void"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":316,"character":10}]}],"groups":[{"title":"Methods","kind":2048,"children":[90]}],"sources":[{"fileName":"aurelia-router.d.ts","line":315,"character":42}]},{"id":23,"name":"NavigationInstructionInit","kind":256,"kindString":"Interface","flags":{"isExported":true},"children":[{"id":28,"name":"config","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":77,"character":8}],"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":24,"name":"fragment","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":73,"character":10}],"type":{"type":"intrinsic","name":"string"}},{"id":32,"name":"options","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":81,"character":9}],"type":{"type":"reference","name":"Object"}},{"id":26,"name":"params","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":75,"character":8}],"type":{"type":"reference","name":"Object"}},{"id":29,"name":"parentInstruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":78,"character":19}],"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":30,"name":"previousInstruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":79,"character":21}],"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":27,"name":"queryParams","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":76,"character":13}],"type":{"type":"reference","name":"Object"}},{"id":25,"name":"queryString","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":74,"character":13}],"type":{"type":"intrinsic","name":"string"}},{"id":31,"name":"router","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":80,"character":8}],"type":{"type":"reference","name":"Router","id":226}}],"groups":[{"title":"Properties","kind":1024,"children":[28,24,32,26,29,30,27,25,31]}],"sources":[{"fileName":"aurelia-router.d.ts","line":72,"character":50}]},{"id":2,"name":"Next","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"A callback to indicate when pipeline processing should advance to the next step\nor be aborted."},"signatures":[{"id":12,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Indicates the successful completion of the pipeline step."},"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"any"}]}}],"children":[{"id":6,"name":"cancel","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":7,"name":"cancel","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Indicates that the pipeline should cancel processing."},"parameters":[{"id":8,"name":"result","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"any"}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":29,"character":8}]},{"id":3,"name":"complete","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":4,"name":"complete","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Indicates the successful completion of the entire pipeline."},"parameters":[{"id":5,"name":"result","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"any"}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":24,"character":10}]},{"id":9,"name":"reject","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":10,"name":"reject","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Indicates that pipeline processing has failed and should be stopped."},"parameters":[{"id":11,"name":"result","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"any"}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":34,"character":8}]}],"groups":[{"title":"Methods","kind":2048,"children":[6,3,9]}],"sources":[{"fileName":"aurelia-router.d.ts","line":19,"character":29}]},{"id":18,"name":"PipelineResult","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"The result of a pipeline run."},"children":[{"id":22,"name":"completed","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":70,"character":11}],"type":{"type":"intrinsic","name":"boolean"}},{"id":20,"name":"instruction","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":68,"character":13}],"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":21,"name":"output","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":69,"character":8}],"type":{"type":"intrinsic","name":"any"}},{"id":19,"name":"status","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-router.d.ts","line":67,"character":8}],"type":{"type":"intrinsic","name":"string"}}],"groups":[{"title":"Properties","kind":1024,"children":[22,20,21,19]}],"sources":[{"fileName":"aurelia-router.d.ts","line":66,"character":39}]},{"id":13,"name":"PipelineStep","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"A step to be run during processing of the pipeline."},"children":[{"id":14,"name":"run","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":15,"name":"run","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Execute the pipeline step. The step should invoke next(), next.complete(),\nnext.cancel(), or next.reject() to allow the pipeline to continue."},"parameters":[{"id":16,"name":"instruction","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The navigation instruction."},"type":{"type":"reference","name":"NavigationInstruction","id":112}},{"id":17,"name":"next","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The next step in the pipeline.\n"},"type":{"type":"reference","name":"Next","id":2}}],"type":{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"any"}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":57,"character":5}]}],"groups":[{"title":"Methods","kind":2048,"children":[14]}],"sources":[{"fileName":"aurelia-router.d.ts","line":48,"character":37}]},{"id":62,"name":"RoutableComponentActivate","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"An optional interface describing the activate convention."},"children":[{"id":63,"name":"activate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":64,"name":"activate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Implement this hook if you want to perform custom logic just before your view-model is displayed.\nYou can optionally return a promise to tell the router to wait to bind and attach the view until\nafter you finish your work."},"parameters":[{"id":65,"name":"params","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"any"}},{"id":66,"name":"routeConfig","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":67,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":112}}],"type":{"type":"union","types":[{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"void"}]},{"type":"reference","name":"PromiseLike","typeArguments":[{"type":"intrinsic","name":"void"}]},{"type":"reference","name":"IObservable","id":93},{"type":"intrinsic","name":"void"}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":217,"character":10}]}],"groups":[{"title":"Methods","kind":2048,"children":[63]}],"sources":[{"fileName":"aurelia-router.d.ts","line":210,"character":50}]},{"id":56,"name":"RoutableComponentCanActivate","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"An optional interface describing the canActivate convention."},"children":[{"id":57,"name":"canActivate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":58,"name":"canActivate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Implement this hook if you want to control whether or not your view-model can be navigated to.\nReturn a boolean value, a promise for a boolean value, or a navigation command."},"parameters":[{"id":59,"name":"params","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"any"}},{"id":60,"name":"routeConfig","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":61,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":112}}],"type":{"type":"union","types":[{"type":"intrinsic","name":"boolean"},{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"boolean"}]},{"type":"reference","name":"PromiseLike","typeArguments":[{"type":"intrinsic","name":"boolean"}]},{"type":"reference","name":"NavigationCommand","id":89},{"type":"reference","name":"Promise","typeArguments":[{"type":"reference","name":"NavigationCommand","id":89}]},{"type":"reference","name":"PromiseLike","typeArguments":[{"type":"reference","name":"NavigationCommand","id":89}]}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":201,"character":13}]}],"groups":[{"title":"Methods","kind":2048,"children":[57]}],"sources":[{"fileName":"aurelia-router.d.ts","line":195,"character":53}]},{"id":68,"name":"RoutableComponentCanDeactivate","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"An optional interface describing the canDeactivate convention."},"children":[{"id":69,"name":"canDeactivate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":70,"name":"canDeactivate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Implement this hook if you want to control whether or not the router can navigate away from your\nview-model when moving to a new route. Return a boolean value, a promise for a boolean value,\nor a navigation command."},"type":{"type":"union","types":[{"type":"intrinsic","name":"boolean"},{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"boolean"}]},{"type":"reference","name":"PromiseLike","typeArguments":[{"type":"intrinsic","name":"boolean"}]},{"type":"reference","name":"NavigationCommand","id":89}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":233,"character":15}]}],"groups":[{"title":"Methods","kind":2048,"children":[69]}],"sources":[{"fileName":"aurelia-router.d.ts","line":226,"character":55}]},{"id":71,"name":"RoutableComponentDeactivate","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"An optional interface describing the deactivate convention."},"children":[{"id":72,"name":"deactivate","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":73,"name":"deactivate","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Implement this hook if you want to perform custom logic when your view-model is being\nnavigated away from. You can optionally return a promise to tell the router to wait until\nafter you finish your work."},"type":{"type":"union","types":[{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"void"}]},{"type":"reference","name":"PromiseLike","typeArguments":[{"type":"intrinsic","name":"void"}]},{"type":"reference","name":"IObservable","id":93},{"type":"intrinsic","name":"void"}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":249,"character":12}]}],"groups":[{"title":"Methods","kind":2048,"children":[72]}],"sources":[{"fileName":"aurelia-router.d.ts","line":242,"character":52}]},{"id":74,"name":"RoutableComponentDetermineActivationStrategy","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"An optional interface describing the determineActivationStrategy convention."},"children":[{"id":75,"name":"determineActivationStrategy","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":76,"name":"determineActivationStrategy","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Implement this hook if you want to give hints to the router about the activation strategy, when reusing\na view model for different routes. Available values are 'replace' and 'invoke-lifecycle'."},"parameters":[{"id":77,"name":"params","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"any"}},{"id":78,"name":"routeConfig","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"RouteConfig","id":33}},{"id":79,"name":"navigationInstruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":112}}],"type":{"type":"union","types":[{"type":"stringLiteral","value":"no-change"},{"type":"stringLiteral","value":"invoke-lifecycle"},{"type":"stringLiteral","value":"replace"}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":264,"character":29}]}],"groups":[{"title":"Methods","kind":2048,"children":[75]}],"sources":[{"fileName":"aurelia-router.d.ts","line":258,"character":69}]},{"id":33,"name":"RouteConfig","kind":256,"kindString":"Interface","flags":{"isExported":true},"comment":{"shortText":"A configuration object that describes a route."},"indexSignature":[{"id":54,"name":"__index","kind":8192,"kindString":"Index signature","flags":{},"comment":{"shortText":"A configuration object that describes a route."},"parameters":[{"id":55,"name":"x","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"intrinsic","name":"string"}}],"type":{"type":"intrinsic","name":"any"}}],"children":[{"id":50,"name":"activationStrategy","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"Add to specify an activation strategy if it is always the same and you do not want that\nto be in your view-model code. Available values are 'replace' and 'invoke-lifecycle'."},"sources":[{"fileName":"aurelia-router.d.ts","line":170,"character":20}],"type":{"type":"union","types":[{"type":"stringLiteral","value":"no-change"},{"type":"stringLiteral","value":"invoke-lifecycle"},{"type":"stringLiteral","value":"replace"}]}},{"id":49,"name":"caseSensitive","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"When true is specified, this route will be case sensitive."},"sources":[{"fileName":"aurelia-router.d.ts","line":164,"character":15}],"type":{"type":"intrinsic","name":"boolean"}},{"id":45,"name":"generationUsesHref","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"Indicates that when route generation is done for this route, it should just take the literal value of the href property."},"sources":[{"fileName":"aurelia-router.d.ts","line":143,"character":20}],"type":{"type":"intrinsic","name":"boolean"}},{"id":44,"name":"href","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"The URL fragment to use in nav models. If unspecified, the [[RouteConfig.route]] will be used.\nHowever, if the [[RouteConfig.route]] contains dynamic segments, this property must be specified."},"sources":[{"fileName":"aurelia-router.d.ts","line":138,"character":6}],"type":{"type":"intrinsic","name":"string"}},{"id":53,"name":"layoutModel","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"specifies the model parameter to pass to the layout view model's `activate` function."},"sources":[{"fileName":"aurelia-router.d.ts","line":185,"character":13}],"type":{"type":"intrinsic","name":"string"}},{"id":51,"name":"layoutView","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"specifies the file name of a layout view to use."},"sources":[{"fileName":"aurelia-router.d.ts","line":175,"character":12}],"type":{"type":"intrinsic","name":"string"}},{"id":52,"name":"layoutViewModel","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"specifies the moduleId of the view model to use with the layout view."},"sources":[{"fileName":"aurelia-router.d.ts","line":180,"character":17}],"type":{"type":"intrinsic","name":"string"}},{"id":36,"name":"moduleId","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"The moduleId of the view model that should be activated for this route."},"sources":[{"fileName":"aurelia-router.d.ts","line":104,"character":10}],"type":{"type":"intrinsic","name":"string"}},{"id":35,"name":"name","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"A unique name for the route that may be used to identify the route when generating URL fragments.\nRequired when this route should support URL generation, such as with [[Router.generate]] or\nthe route-href custom attribute."},"sources":[{"fileName":"aurelia-router.d.ts","line":99,"character":6}],"type":{"type":"intrinsic","name":"string"}},{"id":43,"name":"nav","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"When specified, this route will be included in the [[Router.navigation]] nav model. Useful for\ndynamically generating menus or other navigation elements. When a number is specified, that value\nwill be used as a sort order."},"sources":[{"fileName":"aurelia-router.d.ts","line":132,"character":5}],"type":{"type":"union","types":[{"type":"intrinsic","name":"boolean"},{"type":"intrinsic","name":"number"}]}},{"id":48,"name":"navModel","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"The navigation model for storing and interacting with the route's navigation settings."},"sources":[{"fileName":"aurelia-router.d.ts","line":159,"character":10}],"type":{"type":"reference","name":"NavModel","id":143}},{"id":38,"name":"navigationStrategy","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"A function that can be used to dynamically select the module or modules to activate.\nThe function is passed the current [[NavigationInstruction]], and should configure\ninstruction.config with the desired moduleId, viewPorts, or redirect."},"sources":[{"fileName":"aurelia-router.d.ts","line":116,"character":20}],"type":{"type":"reflection","declaration":{"id":39,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":40,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":41,"name":"instruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"NavigationInstruction","id":112}}],"type":{"type":"union","types":[{"type":"reference","name":"Promise","typeArguments":[{"type":"intrinsic","name":"void"}]},{"type":"intrinsic","name":"void"}]}}],"sources":[{"fileName":"aurelia-router.d.ts","line":116,"character":22}]}}},{"id":37,"name":"redirect","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"A URL fragment to redirect to when this route is matched."},"sources":[{"fileName":"aurelia-router.d.ts","line":109,"character":10}],"type":{"type":"intrinsic","name":"string"}},{"id":34,"name":"route","kind":1024,"kindString":"Property","flags":{"isExported":true},"comment":{"shortText":"The route pattern to match against incoming URL fragments, or an array of patterns."},"sources":[{"fileName":"aurelia-router.d.ts","line":92,"character":7}],"type":{"type":"union","types":[{"type":"intrinsic","name":"string"},{"type":"array","elementType":{"type":"intrinsic","name":"string"}}]}},{"id":47,"name":"settings","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"Arbitrary data to attach to the route. This can be used to attached custom data needed by components\nlike pipeline steps and activated modules."},"sources":[{"fileName":"aurelia-router.d.ts","line":154,"character":10}],"type":{"type":"intrinsic","name":"any"}},{"id":46,"name":"title","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"The document title to set when this route is active."},"sources":[{"fileName":"aurelia-router.d.ts","line":148,"character":7}],"type":{"type":"intrinsic","name":"string"}},{"id":42,"name":"viewPorts","kind":1024,"kindString":"Property","flags":{"isExported":true,"isOptional":true},"comment":{"shortText":"The view ports to target when activating this route. If unspecified, the target moduleId is loaded\ninto the default viewPort (the viewPort with name 'default'). The viewPorts object should have keys\nwhose property names correspond to names used by elements. The values should be objects\nspecifying the moduleId to load into that viewPort. The values may optionally include properties related to layout:\n`layoutView`, `layoutViewModel` and `layoutModel`."},"sources":[{"fileName":"aurelia-router.d.ts","line":125,"character":11}],"type":{"type":"intrinsic","name":"any"}}],"groups":[{"title":"Properties","kind":1024,"children":[50,49,45,44,53,51,52,36,35,43,48,38,37,34,47,46,42]}],"sources":[{"fileName":"aurelia-router.d.ts","line":87,"character":36}]},{"id":448,"name":"activationStrategy","kind":32,"kindString":"Variable","flags":{"isExported":true},"comment":{"shortText":"The strategy to use when activating modules during navigation."},"sources":[{"fileName":"aurelia-router.d.ts","line":673,"character":39}],"type":{"type":"reference","name":"ActivationStrategy","id":85}},{"id":444,"name":"pipelineStatus","kind":32,"kindString":"Variable","flags":{"isExported":true},"comment":{"shortText":"The status of a Pipeline."},"sources":[{"fileName":"aurelia-router.d.ts","line":339,"character":35}],"type":{"type":"intrinsic","name":"any"}},{"id":445,"name":"isNavigationCommand","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":446,"name":"isNavigationCommand","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Determines if the provided object is a navigation command.\nA navigation command is anything with a navigate method."},"parameters":[{"id":447,"name":"obj","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The object to check.\n"},"type":{"type":"intrinsic","name":"any"}}],"type":{"type":"intrinsic","name":"boolean"}}],"sources":[{"fileName":"aurelia-router.d.ts","line":521,"character":43}]}],"groups":[{"title":"Classes","kind":128,"children":[317,356,221,307,302,107,312,328,143,112,99,338,158,169,322,226,181]},{"title":"Interfaces","kind":256,"children":[85,80,93,96,89,23,2,18,13,62,56,68,71,74,33]},{"title":"Variables","kind":32,"children":[448,444]},{"title":"Functions","kind":64,"children":[445]}]} \ No newline at end of file diff --git a/package.json b/package.json index 25ff638a..45698758 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aurelia-router", - "version": "1.3.0", + "version": "1.4.0", "description": "A powerful client-side router.", "keywords": [ "aurelia",