UNPKG

@ussebastian/kitdigital

Version:

Kit Digital de la Universidad San Sebastián

3 lines (2 loc) 1.06 kB
/*! @ussebastian/kitdigital v0.21.0 | MIT (c) Asimov Consultores SpA - 2025 */ class t{constructor(t){this.rootNode=t;this.modalId=(t=>this.rootNode.getAttribute(t))("data-uss-modal-id");const o=document.createElement("button");o.addEventListener("click",(()=>{this.closeModal()})),o.classList.add("uss-modal__close-btn"),o.innerHTML='<i class="uss-icon uss-icon--sm ri-close-line"></i>',this.rootNode.appendChild(o),this.triggers=document.querySelectorAll(`[data-uss-modal-target="${this.modalId}"]`),this.rootNode.setAttribute("aria-modal","true"),this.rootNode.setAttribute("role","dialog")}openModal(){this.rootNode.showModal()}closeModal(){this.rootNode.close()}setCloseOnClickButtons(){this.rootNode.querySelectorAll("[data-uss-modal-close-on-click]").forEach((t=>{t.addEventListener("click",(()=>{this.closeModal()})),this.rootNode.addEventListener("click",(t=>{t.target===this.rootNode&&this.closeModal()}))}))}mount(){this.triggers.forEach((t=>{t.addEventListener("click",(()=>{this.openModal()}))})),this.setCloseOnClickButtons()}}export{t as Modal};