UNPKG

@ussebastian/kitdigital

Version:

Kit Digital de la Universidad San Sebastián

49 lines (41 loc) 1.26 kB
export default class ComponentAccordion { constructor(el) { this.rootNode = el; const getAttr = (attribute) => this.rootNode.getAttribute(attribute); this.modalId = getAttr('data-uss-modal-id'); const closeBtn = document.createElement('button'); closeBtn.addEventListener('click', () => { this.closeModal(); }); closeBtn.classList.add('uss-modal__close-btn'); closeBtn.innerHTML = '<i class="uss-icon uss-icon--sm ri-close-line"></i>'; this.rootNode.appendChild(closeBtn); this.triggers = document.querySelectorAll(`[data-uss-modal-target="${this.modalId}"]`); } openModal() { this.rootNode.showModal(); } closeModal() { this.rootNode.close(); } setCloseOnClickButtons() { this.rootNode.querySelectorAll('[data-uss-modal-close-on-click]').forEach((btn) => { btn.addEventListener('click', () => { this.closeModal(); }); this.rootNode.addEventListener('click', (e) => { if (e.target === this.rootNode) { this.closeModal(); } }); }); } init() { this.triggers.forEach((trigger) => { trigger.addEventListener('click', () => { this.openModal(); }); }); this.setCloseOnClickButtons(); } }