// #docplaster
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { Hero } from './hero';
let nextHeroDetailId = 1;
// #docregion input-output-2
@Component({
// #enddocregion input-output-2
  selector: 'hero-detail',
  // #docregion input-output-2
  inputs: ['hero'],
  outputs: ['deleteRequest'],
  // #enddocregion input-output-2
  styles:['button { margin-left: 8px} div {margin: 8px 0} img {height:24px}'],
  // #docregion template-1
  template: `
  
     {{prefix}} {{hero?.fullName}}
    
      {{prefix}} {{hero?.fullName}}
    
    
   `
  // #enddocregion template-1
// #docregion input-output-2
})
// #enddocregion input-output-2
export class HeroDetailComponent {
// #docregion deleteRequest
  // This component make a request but it can't actually delete a hero.
  deleteRequest = new EventEmitter();
  delete() {
    this.deleteRequest.emit(this.hero);
    // #enddocregion deleteRequest
    this.lineThrough = this.lineThrough ? '' : 'line-through';
    // #docregion deleteRequest
  }
// #enddocregion deleteRequest
  hero: Hero = new Hero('','Zzzzzzzz'); // default sleeping hero
  // heroImageUrl = 'http://www.wpclipart.com/cartoon/people/hero/hero_silhoutte_T.png';
  // Public Domain terms of use: http://www.wpclipart.com/terms.html
  heroImageUrl = 'images/hero.png';
  lineThrough = '';
  @Input() prefix = '';
}
@Component({
  selector: 'big-hero-detail',
  template: `
  
     
    {{hero?.fullName}}
    First: {{hero?.firstName}}
    Last: {{hero?.lastName}}
    Birthdate: {{hero?.birthdate | date:'longDate'}}
    
    Rate/hr: {{hero?.rate | currency:'EUR'}}
    
    
   
  `
})
export class BigHeroDetailComponent extends HeroDetailComponent {
  // #docregion input-output-1
  @Input()  hero: Hero;
  @Output() deleteRequest = new EventEmitter();
  // #enddocregion input-output-1
  delete() {
    this.deleteRequest.emit(this.hero);
  }
}