{"version":3,"file":"modal-Dubkqy0A.js","sources":["../../src/scripts/modules/modal.ts"],"sourcesContent":["import { Component } from '@verndale/core';\n\nclass Modal extends Component {\n  setupDefaults() {\n    this.dom = {\n      triggers: document.querySelectorAll('[data-modal-trigger]'),\n      close: this.el.querySelector<HTMLButtonElement>('.modal__close-btn'),\n      modalContainer: this.el.querySelector<HTMLButtonElement>('.modal__inner')\n    };\n  }\n\n  addListeners() {\n    if ((this.dom.triggers as NodeList).length) {\n      [...(this.dom.triggers as NodeList)].forEach(trigger => {\n        if ((trigger as HTMLElement).dataset.modalTrigger === this.el.dataset.modalId) {\n          trigger.addEventListener('click', this.openModal.bind(this));\n        }\n      });\n    }\n    (this.dom.close as HTMLButtonElement)?.addEventListener('click', this.closeModal.bind(this));\n    this.el.addEventListener('click', this.handleOverlay.bind(this));\n\n    document.addEventListener('keydown', e => {\n      if (e.key === 'Escape') {\n        this.closeModal();\n      }\n    });\n  }\n\n  openModal() {\n    (this.el as HTMLDialogElement).setAttribute('open', 'true');\n    document.body.style.overflow = 'hidden';\n  }\n\n  handleOverlay(event: Event) {\n    if ((event.target as HTMLElement).classList.contains('modal')) {\n      this.closeModal();\n    }\n  }\n\n  closeModal() {\n    (this.el as HTMLDialogElement).remove();\n    document.body.style.overflow = 'auto';\n  }\n}\n\nexport default Modal;\n"],"names":["Modal","Component","trigger","_a","e","event"],"mappings":"yCAEA,MAAMA,UAAcC,CAAU,CAC5B,eAAgB,CACd,KAAK,IAAM,CACT,SAAU,SAAS,iBAAiB,sBAAsB,EAC1D,MAAO,KAAK,GAAG,cAAiC,mBAAmB,EACnE,eAAgB,KAAK,GAAG,cAAiC,eAAe,CAC1E,CAAA,CAGF,cAAe,OACR,KAAK,IAAI,SAAsB,QAClC,CAAC,GAAI,KAAK,IAAI,QAAqB,EAAE,QAAmBC,GAAA,CACjDA,EAAwB,QAAQ,eAAiB,KAAK,GAAG,QAAQ,SACpEA,EAAQ,iBAAiB,QAAS,KAAK,UAAU,KAAK,IAAI,CAAC,CAC7D,CACD,GAEFC,EAAA,KAAK,IAAI,QAAT,MAAAA,EAAsC,iBAAiB,QAAS,KAAK,WAAW,KAAK,IAAI,GAC1F,KAAK,GAAG,iBAAiB,QAAS,KAAK,cAAc,KAAK,IAAI,CAAC,EAEtD,SAAA,iBAAiB,UAAgBC,GAAA,CACpCA,EAAE,MAAQ,UACZ,KAAK,WAAW,CAClB,CACD,CAAA,CAGH,WAAY,CACT,KAAK,GAAyB,aAAa,OAAQ,MAAM,EACjD,SAAA,KAAK,MAAM,SAAW,QAAA,CAGjC,cAAcC,EAAc,CACrBA,EAAM,OAAuB,UAAU,SAAS,OAAO,GAC1D,KAAK,WAAW,CAClB,CAGF,YAAa,CACV,KAAK,GAAyB,OAAO,EAC7B,SAAA,KAAK,MAAM,SAAW,MAAA,CAEnC"}