| 
									
										
										
										
											2015-12-03 16:14:34 -08:00
										 |  |  | import {TEMPLATE_TRANSFORMS} from 'angular2/compiler'; | 
					
						
							|  |  |  | import {Provider} from 'angular2/core'; | 
					
						
							|  |  |  | import {RouterLinkTransform} from 'angular2/src/router/router_link_transform'; | 
					
						
							|  |  |  | import {CONST_EXPR} from 'angular2/src/facade/lang'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export {RouterLinkTransform} from 'angular2/src/router/router_link_transform'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Enables the router link DSL. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Warning. This feature is experimental and can change. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * To enable the transformer pass the router link DSL provider to `bootstrap`. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * ## Example: | 
					
						
							|  |  |  |  * ```
 | 
					
						
							|  |  |  |  * import {bootstrap} from 'angular2/platform/browser'; | 
					
						
							|  |  |  |  * import {ROUTER_LINK_DSL_PROVIDER} from 'angular2/router/router_link_dsl'; | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * bootstrap(CustomApp, [ROUTER_LINK_DSL_PROVIDER]); | 
					
						
							|  |  |  |  * ```
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * The DSL allows you to express router links as follows: | 
					
						
							|  |  |  |  * ```
 | 
					
						
							|  |  |  |  * <a [routerLink]="route:User"> <!-- Same as <a [routerLink]="['User']"> --> | 
					
						
							|  |  |  |  * <a [routerLink]="route:/User"> <!-- Same as <a [routerLink]="['User']"> --> | 
					
						
							|  |  |  |  * <a [routerLink]="route:./User"> <!-- Same as <a [routerLink]="['./User']"> --> | 
					
						
							|  |  |  |  * <a [routerLink]="./User(id: value, name: 'Bob')"> <!-- Same as <a [routerLink]="['./User', {id:
 | 
					
						
							|  |  |  |  * value, name: 'Bob'}]"> --> | 
					
						
							|  |  |  |  * <a [routerLink]="/User/Modal"> <!-- Same as <a [routerLink]="['/User', 'Modal']"> --> | 
					
						
							|  |  |  |  * <a [routerLink]="User[Modal]"> <!-- Same as <a [routerLink]="['User', ['Modal']]"> --> | 
					
						
							|  |  |  |  * ```
 | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2015-12-15 09:42:27 -08:00
										 |  |  | export const ROUTER_LINK_DSL_PROVIDER = | 
					
						
							|  |  |  |     CONST_EXPR(new Provider(TEMPLATE_TRANSFORMS, {useClass: RouterLinkTransform, multi: true})); |