stylescape
Version:
Stylescape is a visual identity framework developed by Scape Agency.
33 lines • 1.11 kB
JavaScript
export class ExclusiveDetails {
constructor(selector) {
this.detailsElements = document.querySelectorAll(selector);
this.bindEvents();
}
bindEvents() {
this.detailsElements.forEach((details) => {
details.addEventListener('click', (e) => this.handleDetailsClick(e, details));
});
document.addEventListener('click', (e) => this.handleClickOutside(e));
}
handleDetailsClick(event, details) {
event.stopPropagation();
this.detailsElements.forEach((otherDetails) => {
if (otherDetails !== details) {
otherDetails.removeAttribute('open');
}
});
}
handleClickOutside(event) {
const target = event.target;
const isClickInside = Array.from(this.detailsElements).some((details) => details.contains(target));
if (!isClickInside) {
this.closeAll();
}
}
closeAll() {
this.detailsElements.forEach((details) => {
details.removeAttribute('open');
});
}
}
//# sourceMappingURL=ExclusiveDetails.js.map