File

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

Extends

PanelGroup

Metadata

exportAs accordion
providers { : , : (() => ) }
selector re-accordion
templateUrl ./accordion.component.html

Index

Properties
Methods
Inputs
Outputs

Constructor

constructor(rebirthNGConfig: RebirthNGConfig)
Parameters :
Name Type Optional
rebirthNGConfig RebirthNGConfig no

Inputs

closable

Type: boolean

keepOneItem

Type: boolean

cssClass

Type: string

Inherited from PanelGroup
Defined in PanelGroup:6
type

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

Inherited from PanelGroup
Defined in PanelGroup:5

Outputs

close $event type: EventEmitter

Methods

Protected initPanel
initPanel(panel: PanelComponent)
Parameters :
Name Type Optional
panel PanelComponent no
Returns : void
Private keepOnePanelOpen
keepOnePanelOpen(panel: )
Parameters :
Name Optional
panel no
Returns : void
toggle
toggle(panel: PanelComponent)
Parameters :
Name Type Optional
panel PanelComponent no
Returns : void
toggleById
toggleById(id: )
Parameters :
Name Optional
id no
Returns : void
$addItem
$addItem(panel: PanelComponent)
Inherited from PanelGroup
Defined in PanelGroup:9
Parameters :
Name Type Optional
panel PanelComponent no
Returns : void
$removeItem
$removeItem(panel: PanelComponent)
Inherited from PanelGroup
Defined in PanelGroup:24
Parameters :
Name Type Optional
panel PanelComponent no
Returns : void
$removeItemById
$removeItemById(id: )
Inherited from PanelGroup
Defined in PanelGroup:19
Parameters :
Name Optional
id no
Returns : void
Protected initPanel
initPanel(panel: PanelComponent)
Inherited from PanelGroup
Defined in PanelGroup:37
Parameters :
Name Type Optional
panel PanelComponent no
Returns : any
Private removeItemByIndex
removeItemByIndex(index: number)
Inherited from PanelGroup
Defined in PanelGroup:31
Parameters :
Name Type Optional
index number no
Returns : void

Properties

panels
panels: PanelComponent[]
Type : PanelComponent[]
Default value : []
Inherited from PanelGroup
Defined in PanelGroup:7
import { Component, Input, forwardRef, Output, EventEmitter } from '@angular/core';
import { PanelComponent } from '../panel/panel.component';
import { PanelGroup } from '../panel/panel-group.model';
import { RebirthNGConfig } from '../rebirth-ng.config';

@Component({
  selector: 're-accordion',
  templateUrl: './accordion.component.html',
  exportAs: 'accordion',
  providers: [{ provide: PanelGroup, useExisting: forwardRef(() => AccordionComponent) }],
})
export class AccordionComponent extends PanelGroup {
  @Input() keepOneItem: boolean;
  @Input() closable: boolean;
  @Output() close = new EventEmitter<PanelComponent>();

  constructor(rebirthNGConfig: RebirthNGConfig) {
    super();
    this.keepOneItem = rebirthNGConfig.accordion.keepOneItem;
    this.closable = rebirthNGConfig.accordion.closable;
    this.type = <any>rebirthNGConfig.accordion.type;
  }

  protected initPanel(panel: PanelComponent) {
    panel.collapsable = true;
    panel.isCollapsed = true;
    panel.closable = this.closable;
    panel.close.subscribe(item => this.close.emit(item));
    panel.collapse.subscribe(collapse => {
      if (!collapse) {
        this.keepOnePanelOpen(panel);
      }
    });
  }

  toggleById(id) {
    const panel = this.panels.find(item => item.id === id);
    this.toggle(panel);
  }

  toggle(panel: PanelComponent) {
    if (panel) {
      panel.onCollapse();
    }
  }


  private keepOnePanelOpen(panel) {
    if (this.keepOneItem) {
      this.panels.forEach(item => {
        if (item !== panel) {
          item.isCollapsed = true;
        }
      });
    }
  }
}
<div role="tablist" class="panel-group">
  <ng-content></ng-content>
</div>
Legend
Html element
Component
Html element with directive

results matching ""

    No results matching ""