minsky-kit
Version:
Kit of components for MINSKY web agency
46 lines (34 loc) • 1.15 kB
JavaScript
// imports
import Component from 'minsky-kit/js/components/Component';
import Accordion from 'minsky-kit/js/components/Accordion';
// private statics
// class definition
export default class AccordionGroup extends Component {
// constructor
constructor (args = {}, objectName = 'AccordionGroup') {
args.debug = args.debug || false;
// super
super(args, objectName);
// set properties
this.group = args.group || (`${Date.now()}-${Math.round(Math.random() * 1000)}`).toString(16);
this.Accordion = args.Accordion || Accordion;
this.accordions = Array.from(this.$el.querySelectorAll('.accordion:not(.accordion--ready)')).map(($acc) => new this.Accordion({
el: $acc,
group: this.group,
}));
}
// methods
refresh () {
this.accordions.forEach((acc) => acc.refresh());
}
destroy () {
// destroy instances
this.accordions.forEach((acc) => acc.destroy());
this.accordions.length = 0;
// super destroy
super.destroy();
}
// getters & setters
}
// Utils
// Event handlers