coreui-angular-ex-dev
Version:
CoreUI Components Library for Angular
38 lines (30 loc) • 910 B
text/typescript
import { Injectable } from '@angular/core';
import { AccordionItemComponent } from './accordion-item/accordion-item.component';
()
export class AccordionService {
items: AccordionItemComponent[] = [];
alwaysOpen = false;
constructor() { }
addItem(item: AccordionItemComponent): void {
this.items.push(item);
}
removeItem(item: AccordionItemComponent): void {
const index = this.items.indexOf(item);
if (index !== -1) {
this.items.splice(index, 1);
}
}
toggleItem(item: AccordionItemComponent): void {
item.visible = !item.visible;
this.closeOtherItems(item);
}
closeOtherItems(openItem: AccordionItemComponent): void {
if (!this.alwaysOpen) {
this.items.forEach((item: AccordionItemComponent) => {
if (item !== openItem) {
item.visible = false;
}
});
}
}
}