angular4-collapsible
Version:
Angular 2 / 4 Materialize CSS collapsible components
46 lines (35 loc) • 1.3 kB
text/typescript
import { Injectable } from '@angular/core';
import { CollapsibleTableComponent } from './collapsible-table.component';
import { CollapsibleHeaderComponent } from './collapsible-header.component';
import { CollapsibleBodyComponent } from './collapsible-body.component';
()
export class CollapsibleService {
type: 'accordion' | 'expandable';
collapsibleTable: CollapsibleTableComponent;
headers: Array<CollapsibleHeaderComponent> = new Array<CollapsibleHeaderComponent>();
bodies: Array<CollapsibleBodyComponent> = new Array<CollapsibleBodyComponent>();
getType() {
return this.type;
}
setType(type: 'accordion' | 'expandable') {
this.type = type;
}
getCollapsibleTable(): CollapsibleTableComponent {
return this.collapsibleTable;
}
setCollapsibleTable(table: CollapsibleTableComponent) {
this.collapsibleTable = table;
}
addListHeader(header: CollapsibleHeaderComponent): void {
this.headers.push(header);
}
addListBody(body: CollapsibleBodyComponent): void {
this.bodies.push(body);
}
collapseAll(): void {
this.bodies.forEach((item) => {
item.expanded = false;
item.expandedState = item.expanded.toString();
});
}
}