import {
  Component,
  ViewChildren,
  ContentChild,
  QueryList,
  Input,
  NgModule
} from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
@Component({
  selector: 'active-label',
  template: `
    Active
  `
})
class ActiveLabelComponent {
  active: boolean;
  activate() {
    this.active = true;
  }
}
// #docregion content
@Component({
  selector: 'a-hero',
  template: `
    {{hero.name}}
    
  
`
})
class HeroComponent {
  @Input() hero: any;
  active: boolean;
  @ContentChild(ActiveLabelComponent)
  label: ActiveLabelComponent;
  activate() {
    this.active = true;
    this.label.activate();
  }
}
// #enddocregion content
// #docregion view
@Component({
  selector: 'heroes-queries',
  template: `
    
      
    
    
  `
})
class HeroesQueriesComponent {
  heroData = [
    {id: 1, name: 'Windstorm'},
    {id: 2, name: 'Superman'}
  ];
  @ViewChildren(HeroComponent)
  heroCmps: QueryList;
  activate() {
    this.heroCmps.forEach(
      (cmp) => cmp.activate()
    );
  }
}
// #enddocregion view
@NgModule({
  imports: [ BrowserModule ],
  declarations: [
    HeroesQueriesComponent,
    HeroComponent,
    ActiveLabelComponent
  ],
  bootstrap: [ HeroesQueriesComponent ]
})
export class HeroesQueriesModule { }