PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` import store from '@/Store' export default function () { store.registerHook('message.received', (message, component) => { let response = message.response if (! response.effects.download) return // We need to use window.webkitURL so downloads work on iOS Safari. let urlObject = window.webkitURL || window.URL let url = urlObject.createObjectURL( base64toBlob(response.effects.download.content, response.effects.download.contentType) ) let invisibleLink = document.createElement('a') invisibleLink.style.display = 'none' invisibleLink.href = url invisibleLink.download = response.effects.download.name document.body.appendChild(invisibleLink) invisibleLink.click() setTimeout(function() { urlObject.revokeObjectURL(url) }, 0); }) } function base64toBlob(b64Data, contentType = '', sliceSize = 512) { const byteCharacters = atob(b64Data) const byteArrays = [] if (contentType === null) contentType = '' for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) { let slice = byteCharacters.slice(offset, offset + sliceSize) let byteNumbers = new Array(slice.length) for (let i = 0; i < slice.length; i++) { byteNumbers[i] = slice.charCodeAt(i) } let byteArray = new Uint8Array(byteNumbers) byteArrays.push(byteArray) } return new Blob(byteArrays, { type: contentType }); }