{"version":3,"file":"modal-De_4F5T-.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('.modal__close-btn'),\n modalContainer: this.el.querySelector('.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,CAAA,CAE5E,CAEA,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,CACH,CAEA,WAAY,CACT,KAAK,GAAyB,aAAa,OAAQ,MAAM,EACjD,SAAA,KAAK,MAAM,SAAW,QACjC,CAEA,cAAcC,EAAc,CACrBA,EAAM,OAAuB,UAAU,SAAS,OAAO,GAC1D,KAAK,WAAW,CAEpB,CAEA,YAAa,CACV,KAAK,GAAyB,SACtB,SAAA,KAAK,MAAM,SAAW,MACjC,CACF"}