aurelia-bootstrap
Version:
Bootstrap components written in Aurelia.
42 lines (33 loc) • 1.03 kB
JavaScript
import {children, bindable, BindingEngine, inject} from "aurelia-framework";
import {bootstrapOptions} from "../utils/bootstrap-options";
(BindingEngine)
export class AubsAccordionCustomElement {
closeOthers = bootstrapOptions.accordionCloseOthers;
('aubs-accordion-group') groups = [];
toggledListeners = [];
constructor(bindingEngine){
this.bindingEngine = bindingEngine;
this.bootstrapOptions = bootstrapOptions;
}
detached(){
this.disposeListeners();
}
register(accordionGroup){
this.groups.push(accordionGroup);
}
disposeListeners(){
for(let listener of this.toggledListeners){
listener.dispose();
}
this.toggledListeners = [];
}
groupToggled(group) {
if (group.isOpen && this.closeOthers) {
for (let next of this.groups) {
if (next !== group) {
next.isOpen = false;
}
}
}
}
}