{"version":3,"sources":["components/modal.js"],"names":["dmx","Component","initialData","visible","attributes","nobackdrop","type","Boolean","default","nocloseonclick","nokeyboard","nofocus","show","methods","toggle","this","_instance","hide","update","handleUpdate","events","Event","shown","hidden","init","node","addEventListener","dispatchEvent","bind","set","bootstrap","Modal","backdrop","props","keyboard","focus","requestAnimationFrame","destroy","dispose","performUpdate","updatedProps","has","$node"],"mappings":";;;;;;AAAAA,IAAAC,UAAA,YAAA,CAEAC,YAAA,CACAC,SAAA,GAGAC,WAAA,CACAC,WAAA,CACAC,KAAAC,QACAC,SAAA,GAGAC,eAAA,CACAH,KAAAC,QACAC,SAAA,GAGAE,WAAA,CACAJ,KAAAC,QACAC,SAAA,GAGAG,QAAA,CACAL,KAAAC,QACAC,SAAA,GAGAI,KAAA,CACAN,KAAAC,QACAC,SAAA,IAIAK,QAAA,CACAC,SACAC,KAAAC,UAAAF,QACA,EAEAF,OACAG,KAAAC,UAAAJ,MACA,EAEAK,OACAF,KAAAC,UAAAC,MACA,EAEAC,SACAH,KAAAC,UAAAG,cACA,GAGAC,OAAA,CACAR,KAAAS,MACAC,MAAAD,MACAJ,KAAAI,MACAE,OAAAF,OAGAG,KAAAC,GACAA,EAAAC,iBAAA,gBAAAX,KAAAY,cAAAC,KAAAb,KAAA,SACAU,EAAAC,iBAAA,iBAAAX,KAAAY,cAAAC,KAAAb,KAAA,UACAU,EAAAC,iBAAA,gBAAAX,KAAAY,cAAAC,KAAAb,KAAA,SACAU,EAAAC,iBAAA,kBAAAX,KAAAY,cAAAC,KAAAb,KAAA,WAEAU,EAAAC,iBAAA,iBAAA,KAAAX,KAAAc,IAAA,WAAA,EAAA,IACAJ,EAAAC,iBAAA,mBAAA,KAAAX,KAAAc,IAAA,WAAA,EAAA,IAEAd,KAAAC,UAAA,IAAAc,UAAAC,MAAAN,EAAA,CACAO,UAAAjB,KAAAkB,MAAA5B,YAAAU,KAAAkB,MAAAxB,eAAA,UAAAM,KAAAkB,MAAA5B,WACA6B,UAAAnB,KAAAkB,MAAAvB,WACAyB,OAAApB,KAAAkB,MAAAtB,UAGAI,KAAAkB,MAAArB,MACAwB,uBAAA,KACArB,KAAAC,UAAAJ,OACAG,KAAAc,IAAA,WAAA,EAAA,GAGA,EAEAQ,UACAtB,KAAAC,UAAAsB,SACA,EAEAC,cAAAC,IACAA,EAAAC,IAAA,eAAAD,EAAAC,IAAA,mBAAAD,EAAAC,IAAA,eAAAD,EAAAC,IAAA,cACA1B,KAAAC,UAAAsB,UACAvB,KAAAC,UAAA,IAAAc,UAAAC,MAAAhB,KAAA2B,MAAA,CACAV,UAAAjB,KAAAkB,MAAA5B,YAAAU,KAAAkB,MAAAxB,eAAA,UAAAM,KAAAkB,MAAA5B,WACA6B,UAAAnB,KAAAkB,MAAAvB,WACAyB,OAAApB,KAAAkB,MAAAtB,WAIA6B,EAAAC,IAAA,SACA1B,KAAAC,UAAAD,KAAAkB,MAAArB,KAAA,OAAA,SAEA","file":"dmxBootstrap5Modal.js","sourcesContent":["dmx.Component('bs5-modal', {\r\n\r\n initialData: {\r\n visible: false,\r\n },\r\n\r\n attributes: {\r\n nobackdrop: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n nocloseonclick: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n nokeyboard: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n nofocus: {\r\n type: Boolean,\r\n default: false\r\n },\r\n\r\n show: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n\r\n methods: {\r\n toggle () {\r\n this._instance.toggle();\r\n },\r\n\r\n show () {\r\n this._instance.show();\r\n },\r\n\r\n hide () {\r\n this._instance.hide();\r\n },\r\n\r\n update () {\r\n this._instance.handleUpdate();\r\n }\r\n },\r\n\r\n events: {\r\n show: Event,\r\n shown: Event,\r\n hide: Event,\r\n hidden: Event\r\n },\r\n\r\n init (node) {\r\n node.addEventListener('show.bs.modal', this.dispatchEvent.bind(this, 'show'));\r\n node.addEventListener('shown.bs.modal', this.dispatchEvent.bind(this, 'shown'));\r\n node.addEventListener('hide.bs.modal', this.dispatchEvent.bind(this, 'hide'));\r\n node.addEventListener('hidden.bs.modal', this.dispatchEvent.bind(this, 'hidden'));\r\n\r\n node.addEventListener('show.bs.modal', () => { this.set('visible', true); });\r\n node.addEventListener('hidden.bs.modal', () => { this.set('visible', false); });\r\n\r\n this._instance = new bootstrap.Modal(node, {\r\n backdrop: !this.props.nobackdrop && this.props.nocloseonclick ? 'static' : !this.props.nobackdrop,\r\n keyboard: !this.props.nokeyboard,\r\n focus: !this.props.nofocus,\r\n });\r\n\r\n if (this.props.show) {\r\n requestAnimationFrame(() => {\r\n this._instance.show();\r\n this.set('visible', true);\r\n });\r\n }\r\n },\r\n\r\n destroy () {\r\n this._instance.dispose();\r\n },\r\n\r\n performUpdate (updatedProps) {\r\n if (updatedProps.has('nobackdrop') || updatedProps.has('nocloseonclick') || updatedProps.has('nokeyboard') || updatedProps.has('nofocus')) {\r\n this._instance.dispose();\r\n this._instance = new bootstrap.Modal(this.$node, {\r\n backdrop: !this.props.nobackdrop && this.props.nocloseonclick ? 'static' : !this.props.nobackdrop,\r\n keyboard: !this.props.nokeyboard,\r\n focus: !this.props.nofocus,\r\n });\r\n }\r\n \r\n if (updatedProps.has('show')) {\r\n this._instance[this.props.show ? 'show' : 'hide']();\r\n }\r\n },\r\n\r\n});\r\n"]}