{"version":3,"sources":["scripts/mn-dialog.class.js"],"names":["MnDialog","self","_this","_ret","_classCallCheck","this","setCard","setOpenEvents","setCloseEvents","_possibleConstructorReturn","putInCard","element","card","appendChild","cardClass","cssClass","indexOf","_this2","document","createElement","classList","add","Array","from","filter","forEach","remove","children","insertBefore","firstChild","_this3","addEventListener","event","target","matches","id","open","stopPropagation","_this4","close","keyCode","clickOutside","closest","clickOutsideDisabled","contains","scrollTop","window","MnBackdrop","show","body","previousDialog","querySelector","hide","value","_this5","dialogs","querySelectorAll","dialog","HTMLElement","customElements","define"],"mappings":"sxCAAMA,SAAAA,SAAAA,cACJ,QAAAA,UAAYC,MAAM,GAAAC,OAAAC,IAMhB,OANgBC,iBAAAC,KAAAL,UAChBC,KAAAA,MAAAA,2BAAAA,MAAAA,SAAAA,WAAAA,OAAAA,eAAAA,WAAAA,KAAAA,KAAaA,OACbC,MAAKI,UACLJ,MAAKK,gBACLL,MAAKM,iBAELL,KAAOF,KAAPQ,2BAAAP,MAAAC,qGAkCA,QAASO,WAAUC,SACjBC,KAAKC,YAAYF,SAKnB,QAASG,WAAUC,UAQjB,OANE,gBACA,WAGgCC,QAAQD,WAAa,EA9BjD,GAAAE,QAAAZ,KACFO,KAAOM,SAASC,cAAc,MAEpCP,MAAKQ,UAAUC,IAAI,WAEnBC,MACGC,KAAKlB,KAAKe,WACVI,OAAOV,WAEPW,QAAQ,SAAAV,UACPE,OAAKG,UAAUM,OAAOX,UACtBH,KAAKQ,UAAUC,IAAIN,YAGvBO,MACGC,KAAKlB,KAAKsB,UACVF,QAAQf,WAMXL,KAAKuB,aAAahB,KAAMP,KAAKwB,oDAcf,GAAAC,QAAAzB,IACda,UAASa,iBAAiB,QAAS,SAAAC,OAC7BA,MAAMC,OAAOC,QAAb,uBAA4CJ,OAAKK,GAAjD,QACFL,OAAKM,OACLJ,MAAMK,8DAKK,GAAAC,QAAAjC,IACfa,UAASa,iBAAiB,QAAS,SAAAC,OAC7BA,MAAMC,OAAOC,QAAQ,0BACvBI,OAAKC,QACLP,MAAMK,qBAIVnB,SAASa,iBAAiB,QAAS,SAAAC,OACH,KAAlBA,MAAMQ,SAGhBF,OAAKC,UAITlC,KAAK0B,iBAAiB,QAAS,SAAAC,OAC7B,GAAMS,eAAgBT,MAAMC,OAAOS,QAAQ,YACrCC,qBAAuBL,OAAKlB,UAAUwB,SAAS,wBAEjDH,gBAAiBE,sBACnBL,OAAKC,yCAMTlC,KAAKwC,UAAY,EACjBC,OAAOC,WAAWC,MAAMf,OAAQ5B,OAChCa,SAAS+B,KAAK7B,UAAUC,IAAI,oBAE5B,IAAM6B,gBAAiBhC,SAASiC,cAAc,oBAC1CD,iBACFA,eAAe9B,UAAUM,OAAO,WAElCrB,KAAKe,UAAUC,IAAI,2CAInByB,OAAOC,WAAWK,MAAMnB,OAAQ5B,OAChCa,SAAS+B,KAAK7B,UAAUM,OAAO,qBAC/BrB,KAAKe,UAAUM,OAAO,kDAnGJ2B,OAAO,GAAAC,QAAAjD,KACnBkD,QAAUrC,SAASsC,iBAAiB,YAC1CnD,MAAKsC,sBAAwBU,MAE7B/B,MACGC,KAAKgC,SACL9B,QAAQ,SAAAgC,QACPH,OAAKX,qBACDc,OAAOrC,UAAUC,IAAI,yBACrBoC,OAAOrC,UAAUM,OAAO,yCAnBbgC,YAiHvBZ,QAAOa,eAAeC,OAAO,YAAa5D,UAC1C8C,OAAO9C,SAAWA","file":"mn-dialog.js","sourcesContent":["class MnDialog extends HTMLElement {\n constructor(self) {\n self = super(self)\n this.setCard()\n this.setOpenEvents()\n this.setCloseEvents()\n\n return self\n }\n\n static clickOutside(value) {\n const dialogs = document.querySelectorAll('mn-dialog')\n this.clickOutsideDisabled = !value\n\n Array\n .from(dialogs)\n .forEach(dialog => {\n this.clickOutsideDisabled\n ? dialog.classList.add('disable-click-outside')\n : dialog.classList.remove('disable-click-outside')\n })\n }\n\n setCard() {\n const card = document.createElement('div')\n\n card.classList.add('mn-card')\n\n Array\n .from(this.classList)\n .filter(cardClass)\n // assign classes to card\n .forEach(cssClass => {\n this.classList.remove(cssClass)\n card.classList.add(cssClass)\n })\n\n Array\n .from(this.children)\n .forEach(putInCard)\n\n function putInCard(element) {\n card.appendChild(element)\n }\n\n this.insertBefore(card, this.firstChild)\n\n function cardClass(cssClass) {\n const validClasses = [\n 'padding-title',\n 'padding'\n ]\n\n const isValidClass = validClasses.indexOf(cssClass) > -1\n\n return isValidClass\n }\n }\n\n setOpenEvents() {\n document.addEventListener('click', event => {\n if (event.target.matches(`button[open-dialog=\"${this.id}\"]`)) {\n this.open()\n event.stopPropagation()\n }\n })\n }\n\n setCloseEvents() {\n document.addEventListener('click', event => {\n if (event.target.matches('button[close-dialog]')) {\n this.close()\n event.stopPropagation()\n }\n })\n\n document.addEventListener('keyup', event => {\n const esc = event.keyCode === 27\n\n if (esc) {\n this.close()\n }\n })\n\n this.addEventListener('click', event => {\n const clickOutside = !event.target.closest('.mn-card')\n const clickOutsideDisabled = this.classList.contains('disable-click-outside')\n\n if (clickOutside && !clickOutsideDisabled) {\n this.close()\n }\n })\n }\n\n open() {\n this.scrollTop = 0\n window.MnBackdrop.show({target: this})\n document.body.classList.add('mn-dialog-visible')\n\n const previousDialog = document.querySelector('mn-dialog.visible')\n if (previousDialog) {\n previousDialog.classList.remove('visible')\n }\n this.classList.add('visible')\n }\n\n close() {\n window.MnBackdrop.hide({target: this})\n document.body.classList.remove('mn-dialog-visible')\n this.classList.remove('visible')\n }\n}\n\nwindow.customElements.define('mn-dialog', MnDialog)\nwindow.MnDialog = MnDialog\n"]}