import {
  Component,
  ContentChild,
  Input,
  QueryList,
  ViewChildren
} from '@angular/core';
@Component({
  selector: 'content-child',
  template: `
  
    Active
  `
})
export class ContentChildComponent {
  active = false;
  activate() {
    this.active = !this.active;
  }
}
////////////////////
// #docregion content
@Component({
  selector: 'view-child',
  template: `
  
    {{hero.name}}
    
  
`,
  styles: ['.active {font-weight: bold; background-color: skyblue;}']
})
export class ViewChildComponent {
  @Input() hero: any;
  active = false;
  @ContentChild(ContentChildComponent) content: ContentChildComponent;
  activate() {
    this.active = !this.active;
    this.content.activate();
  }
}
// #enddocregion content
////////////////////
// #docregion view
@Component({
  selector: 'hero-queries',
  template: `
    
      
    
    
  `
})
export class HeroQueriesComponent {
  active = false;
  heroData = [
    {id: 1, name: 'Windstorm'},
    {id: 2, name: 'LaughingGas'}
  ];
  @ViewChildren(ViewChildComponent) views: QueryList;
  activate() {
    this.active = !this.active;
    this.views.forEach(
      view => view.activate()
    );
  }
  // #docregion defined-property
  get buttonLabel() {
    return this.active ? 'Deactivate' : 'Activate';
  }
  // #enddocregion defined-property
}
// #enddocregion view