| 
									
										
										
										
											2016-03-26 12:18:13 -04:00
										 |  |  | // #docplaster
 | 
					
						
							|  |  |  | // #docregion
 | 
					
						
							| 
									
										
										
										
											2016-05-03 14:06:32 +02:00
										 |  |  | import { OpaqueToken } from '@angular/core'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import { Hero }        from './hero'; | 
					
						
							|  |  |  | import { HeroService } from './hero.service'; | 
					
						
							| 
									
										
										
										
											2016-03-26 12:18:13 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | // #docregion runners-up
 | 
					
						
							|  |  |  | export const RUNNERS_UP = new OpaqueToken('RunnersUp'); | 
					
						
							|  |  |  | // #docregion runners-up
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // #docregion factory-synopsis
 | 
					
						
							|  |  |  | export function runnersUpFactory(take: number) { | 
					
						
							|  |  |  |   return (winner: Hero, heroService: HeroService): string => { | 
					
						
							|  |  |  |     /* ... */ | 
					
						
							|  |  |  | // #enddocregion factory-synopsis
 | 
					
						
							|  |  |  |     return heroService | 
					
						
							|  |  |  |           .getAllHeroes() | 
					
						
							|  |  |  |           .filter((hero) => hero.name !== winner.name) | 
					
						
							|  |  |  |           .map(hero => hero.name) | 
					
						
							|  |  |  |           .slice(0, Math.max(0, take)) | 
					
						
							|  |  |  |           .join(', '); | 
					
						
							|  |  |  | // #docregion factory-synopsis
 | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | // #enddocregion factory-synopsis
 |