File

projects/rebirth-ng/src/lib/panel/panel.component.ts

Implements

OnInit OnDestroy

Metadata

exportAs panel
selector re-panel,re-accordion-item
templateUrl ./panel.component.html

Index

Properties
Methods
Inputs
Outputs

Constructor

constructor(panelGroup: PanelGroup, rebirthNGConfig: RebirthNGConfig)
Parameters :
Name Type Optional
panelGroup PanelGroup no
rebirthNGConfig RebirthNGConfig no

Inputs

closable

Type: boolean

collapsable

Type: boolean

cssClass

Type: string

id
isCollapsed

Default value: false

type

Type: "default" | "primary" | "success" | "info" | "warning" | "danger"

Default value: 'default'

Outputs

close $event type: EventEmitter
collapse $event type: EventEmitter

Methods

ngOnDestroy
ngOnDestroy()
Returns : void
ngOnInit
ngOnInit()
Returns : void
onClose
onClose($event: Event)
Parameters :
Name Type Optional
$event Event no
Returns : void
onCollapse
onCollapse()
Returns : void

Properties

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">&times;</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>
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""