UNPKG

16.5 kBSource Map (JSON)View Raw
1{"version":3,"file":"instruction.js","sourceRoot":"","sources":["../../../../modules/@angular/router-deprecated/src/instruction.ts"],"names":[],"mappings":"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","sourcesContent":["import {PromiseWrapper} from '../src/facade/async';\nimport {StringMapWrapper} from '../src/facade/collection';\nimport {isBlank, isPresent, normalizeBlank} from '../src/facade/lang';\n\n\n\n/**\n * `RouteParams` is an immutable map of parameters for the given route\n * based on the url matcher and optional parameters for that route.\n *\n * You can inject `RouteParams` into the constructor of a component to use it.\n *\n * ### Example\n *\n * ```\n * import {Component} from '@angular/core';\n * import {bootstrap} from '@angular/platform-browser/browser';\n * import {Router, ROUTER_DIRECTIVES, ROUTER_PROVIDERS, RouteConfig, RouteParams} from\n * 'angular2/router';\n *\n * @Component({directives: [ROUTER_DIRECTIVES]})\n * @RouteConfig([\n * {path: '/user/:id', component: UserCmp, name: 'UserCmp'},\n * ])\n * class AppCmp {}\n *\n * @Component({ template: 'user: {{id}}' })\n * class UserCmp {\n * id: string;\n * constructor(params: RouteParams) {\n * this.id = params.get('id');\n * }\n * }\n *\n * bootstrap(AppCmp, ROUTER_PROVIDERS);\n * ```\n */\nexport class RouteParams {\n constructor(public params: {[key: string]: string}) {}\n\n get(param: string): string { return normalizeBlank(StringMapWrapper.get(this.params, param)); }\n}\n\n/**\n * `RouteData` is an immutable map of additional data you can configure in your {@link Route}.\n *\n * You can inject `RouteData` into the constructor of a component to use it.\n *\n * ### Example\n *\n * ```\n * import {Component} from '@angular/core';\n * import {bootstrap} from '@angular/platform-browser/browser';\n * import {Router, ROUTER_DIRECTIVES, ROUTER_PROVIDERS, RouteConfig, RouteData} from\n * 'angular2/router';\n *\n * @Component({directives: [ROUTER_DIRECTIVES]})\n * @RouteConfig([\n * {path: '/user/:id', component: UserCmp, name: 'UserCmp', data: {isAdmin: true}},\n * ])\n * class AppCmp {}\n *\n * @Component({\n * ...,\n * template: 'user: {{isAdmin}}'\n * })\n * class UserCmp {\n * string: isAdmin;\n * constructor(data: RouteData) {\n * this.isAdmin = data.get('isAdmin');\n * }\n * }\n *\n * bootstrap(AppCmp, ROUTER_PROVIDERS);\n * ```\n */\nexport class RouteData {\n constructor(public data: {[key: string]: any} = /*@ts2dart_const*/ {}) {}\n\n get(key: string): any { return normalizeBlank(StringMapWrapper.get(this.data, key)); }\n}\n\nexport var BLANK_ROUTE_DATA = new RouteData();\n\n/**\n * `Instruction` is a tree of {@link ComponentInstruction}s with all the information needed\n * to transition each component in the app to a given route, including all auxiliary routes.\n *\n * `Instruction`s can be created using {@link Router#generate}, and can be used to\n * perform route changes with {@link Router#navigateByInstruction}.\n *\n * ### Example\n *\n * ```\n * import {Component} from '@angular/core';\n * import {bootstrap} from '@angular/platform-browser/browser';\n * import {Router, ROUTER_DIRECTIVES, ROUTER_PROVIDERS, RouteConfig} from\n * '@angular/router-deprecated';\n *\n * @Component({directives: [ROUTER_DIRECTIVES]})\n * @RouteConfig([\n * {...},\n * ])\n * class AppCmp {\n * constructor(router: Router) {\n * var instruction = router.generate(['/MyRoute']);\n * router.navigateByInstruction(instruction);\n * }\n * }\n *\n * bootstrap(AppCmp, ROUTER_PROVIDERS);\n * ```\n */\nexport abstract class Instruction {\n constructor(\n public component: ComponentInstruction, public child: Instruction,\n public auxInstruction: {[key: string]: Instruction}) {}\n\n get urlPath(): string { return isPresent(this.component) ? this.component.urlPath : ''; }\n\n get urlParams(): string[] { return isPresent(this.component) ? this.component.urlParams : []; }\n\n get specificity(): string {\n var total = '';\n if (isPresent(this.component)) {\n total += this.component.specificity;\n }\n if (isPresent(this.child)) {\n total += this.child.specificity;\n }\n return total;\n }\n\n abstract resolveComponent(): Promise<ComponentInstruction>;\n\n /**\n * converts the instruction into a URL string\n */\n toRootUrl(): string { return this.toUrlPath() + this.toUrlQuery(); }\n\n /** @internal */\n _toNonRootUrl(): string {\n return this._stringifyPathMatrixAuxPrefixed() +\n (isPresent(this.child) ? this.child._toNonRootUrl() : '');\n }\n\n toUrlQuery(): string { return this.urlParams.length > 0 ? ('?' + this.urlParams.join('&')) : ''; }\n\n /**\n * Returns a new instruction that shares the state of the existing instruction, but with\n * the given child {@link Instruction} replacing the existing child.\n */\n replaceChild(child: Instruction): Instruction {\n return new ResolvedInstruction(this.component, child, this.auxInstruction);\n }\n\n /**\n * If the final URL for the instruction is ``\n */\n toUrlPath(): string {\n return this.urlPath + this._stringifyAux() +\n (isPresent(this.child) ? this.child._toNonRootUrl() : '');\n }\n\n // default instructions override these\n toLinkUrl(): string {\n return this.urlPath + this._stringifyAux() +\n (isPresent(this.child) ? this.child._toLinkUrl() : '') + this.toUrlQuery();\n }\n\n // this is the non-root version (called recursively)\n /** @internal */\n _toLinkUrl(): string {\n return this._stringifyPathMatrixAuxPrefixed() +\n (isPresent(this.child) ? this.child._toLinkUrl() : '');\n }\n\n /** @internal */\n _stringifyPathMatrixAuxPrefixed(): string {\n var primary = this._stringifyPathMatrixAux();\n if (primary.length > 0) {\n primary = '/' + primary;\n }\n return primary;\n }\n\n /** @internal */\n _stringifyMatrixParams(): string {\n return this.urlParams.length > 0 ? (';' + this.urlParams.join(';')) : '';\n }\n\n /** @internal */\n _stringifyPathMatrixAux(): string {\n if (isBlank(this.component) && isBlank(this.urlPath)) {\n return '';\n }\n return this.urlPath + this._stringifyMatrixParams() + this._stringifyAux();\n }\n\n /** @internal */\n _stringifyAux(): string {\n var routes: any[] /** TODO #9100 */ = [];\n StringMapWrapper.forEach(this.auxInstruction, (auxInstruction: Instruction, _: string) => {\n routes.push(auxInstruction._stringifyPathMatrixAux());\n });\n if (routes.length > 0) {\n return '(' + routes.join('//') + ')';\n }\n return '';\n }\n}\n\n\n/**\n * a resolved instruction has an outlet instruction for itself, but maybe not for...\n */\nexport class ResolvedInstruction extends Instruction {\n constructor(\n component: ComponentInstruction, child: Instruction,\n auxInstruction: {[key: string]: Instruction}) {\n super(component, child, auxInstruction);\n }\n\n resolveComponent(): Promise<ComponentInstruction> {\n return PromiseWrapper.resolve(this.component);\n }\n}\n\n\n/**\n * Represents a resolved default route\n */\nexport class DefaultInstruction extends ResolvedInstruction {\n constructor(component: ComponentInstruction, child: DefaultInstruction) {\n super(component, child, {});\n }\n\n toLinkUrl(): string { return ''; }\n\n /** @internal */\n _toLinkUrl(): string { return ''; }\n}\n\n\n/**\n * Represents a component that may need to do some redirection or lazy loading at a later time.\n */\nexport class UnresolvedInstruction extends Instruction {\n constructor(\n private _resolver: () => Promise<Instruction>, private _urlPath: string = '',\n private _urlParams: string[] = /*@ts2dart_const*/[]) {\n super(null, null, {});\n }\n\n get urlPath(): string {\n if (isPresent(this.component)) {\n return this.component.urlPath;\n }\n if (isPresent(this._urlPath)) {\n return this._urlPath;\n }\n return '';\n }\n\n get urlParams(): string[] {\n if (isPresent(this.component)) {\n return this.component.urlParams;\n }\n if (isPresent(this._urlParams)) {\n return this._urlParams;\n }\n return [];\n }\n\n resolveComponent(): Promise<ComponentInstruction> {\n if (isPresent(this.component)) {\n return PromiseWrapper.resolve(this.component);\n }\n return this._resolver().then((instruction: Instruction) => {\n this.child = isPresent(instruction) ? instruction.child : null;\n return this.component = isPresent(instruction) ? instruction.component : null;\n });\n }\n}\n\n\nexport class RedirectInstruction extends ResolvedInstruction {\n constructor(\n component: ComponentInstruction, child: Instruction,\n auxInstruction: {[key: string]: Instruction}, private _specificity: string) {\n super(component, child, auxInstruction);\n }\n\n get specificity(): string { return this._specificity; }\n}\n\n\n/**\n * A `ComponentInstruction` represents the route state for a single component.\n *\n * `ComponentInstructions` is a public API. Instances of `ComponentInstruction` are passed\n * to route lifecycle hooks, like {@link CanActivate}.\n *\n * `ComponentInstruction`s are [hash consed](https://en.wikipedia.org/wiki/Hash_consing). You should\n * never construct one yourself with \"new.\" Instead, rely on router's internal recognizer to\n * construct `ComponentInstruction`s.\n *\n * You should not modify this object. It should be treated as immutable.\n */\nexport class ComponentInstruction {\n reuse: boolean = false;\n public routeData: RouteData;\n\n /**\n * @internal\n */\n constructor(\n public urlPath: string, public urlParams: string[], data: RouteData,\n public componentType: any /** TODO #9100 */, public terminal: boolean,\n public specificity: string, public params: {[key: string]: string} = null,\n public routeName: string) {\n this.routeData = isPresent(data) ? data : BLANK_ROUTE_DATA;\n }\n}\n"]}
\No newline at end of file