projects/rebirth-ng/src/lib/panel/panel.component.ts
| exportAs | panel | 
            
| selector | re-panel,re-accordion-item | 
            
| templateUrl | ./panel.component.html | 
            
                        Properties | 
                
                        Methods | 
                
                        Inputs | 
                
                        Outputs | 
                
constructor(panelGroup: PanelGroup, rebirthNGConfig: RebirthNGConfig)
                     | 
                |||||||||
| 
                             
                                    Parameters :
                                     
                    
  | 
                
                        
                        closable
                     | 
                    
                             
                            Type:      | 
                
                        
                        collapsable
                     | 
                    
                             
                            Type:      | 
                
                        
                        cssClass
                     | 
                    
                             
                            Type:      | 
                
                        
                        id
                     | 
                    |
                        
                        isCollapsed
                     | 
                    
                         
                            Default value:   | 
                
                        
                        type
                     | 
                    
                             
                            Type:     
                            Default value:   | 
                
                        
                        close
                     | 
                    
                        $event type:    EventEmitter
                     | 
                
                        
                        collapse
                     | 
                    
                        $event type:    EventEmitter
                     | 
                
| ngOnDestroy | 
ngOnDestroy()
                     | 
                
| 
                             
                                Returns :      
                    void
                             | 
                
| ngOnInit | 
ngOnInit()
                     | 
                
| 
                             
                                Returns :      
                    void
                             | 
                
| onClose | ||||||
onClose($event: Event)
                     | 
                ||||||
| 
                             
                                    Parameters :
                                     
                            
 
                                Returns :      
                                void
                             | 
                
| onCollapse | 
onCollapse()
                     | 
                
| 
                             
                                Returns :      
                    void
                             | 
                
| panelBody | 
                        panelBody:     
                     | 
                
                            Decorators : ContentChild
                         | 
                    
| panelFooter | 
                        panelFooter:     
                     | 
                
                            Decorators : ContentChild
                         | 
                    
| panelHeader | 
                        panelHeader:     
                     | 
                
                            Decorators : ContentChild
                         | 
                    
import { Component, Input, Output, EventEmitter, Optional, OnInit, Host, OnDestroy, ContentChild } from '@angular/core';
import { PanelGroup } from './panel-group.model';
import { RebirthNGConfig } from '../rebirth-ng.config';
import { stopPropagationIfExist } from '../utils/dom-utils';
import { PanelHeaderComponent } from './panel-header.component';
import { PanelBodyComponent } from './panel-body.component';
import { PanelFooterComponent } from './panel-footer.component';
@Component({
  selector: 're-panel,re-accordion-item',
  templateUrl: './panel.component.html',
  exportAs: 'panel'
})
export class PanelComponent implements OnInit, OnDestroy {
  @Input() id;
  @Input() type: 'default' | 'primary' | 'success' | 'info' | 'warning' | 'danger' = 'default';
  @Input() closable: boolean;
  @Input() collapsable: boolean;
  @Input() isCollapsed = false;
  @Input() cssClass: string;
  @Output() close = new EventEmitter<PanelComponent>();
  @Output() collapse = new EventEmitter<boolean>();
  @ContentChild(PanelHeaderComponent) panelHeader;
  @ContentChild(PanelBodyComponent) panelBody;
  @ContentChild(PanelFooterComponent) panelFooter;
  constructor(@Optional() @Host() private  panelGroup: PanelGroup, rebirthNGConfig: RebirthNGConfig) {
    this.type = <any>rebirthNGConfig.panel.type;
    this.closable = rebirthNGConfig.panel.closable;
    this.collapsable = rebirthNGConfig.panel.collapsable;
  }
  ngOnInit(): void {
    if (this.panelGroup) {
      this.panelGroup.$addItem(this);
    }
  }
  onClose($event: Event) {
    stopPropagationIfExist($event);
    this.close.emit(this);
  }
  onCollapse() {
    if (this.collapsable) {
      this.isCollapsed = !this.isCollapsed;
      this.collapse.emit(this.isCollapsed);
    }
  }
  ngOnDestroy(): void {
    if (this.panelGroup) {
      this.panelGroup.$removeItem(this);
    }
  }
}
    <div class="panel panel-{{type}} {{cssClass}}" [ngClass]="{'panel-open': !isCollapsed}">
  <div class="panel-heading" (click)="onCollapse()" [ngStyle]="{cursor: collapsable ? 'pointer' :'inherit'}"
       *ngIf="panelHeader">
    <button type="button" class="close" *ngIf="closable" aria-label="Close" (click)="onClose($event)">
      <span aria-hidden="true">×</span>
    </button>
    <ng-content select="re-panel-header,re-accordion-header"></ng-content>
  </div>
  <div class="panel-body collapse" [ngClass]="{in: !isCollapsed}">
    <ng-content select="re-panel-body,re-accordion-body"></ng-content>
  </div>
  <div class="panel-footer" *ngIf="panelFooter">
    <ng-content select="re-panel-footer,re-accordion-footer"></ng-content>
  </div>
</div>