{"version":3,"sources":["../src/file.ts"],"sourcesContent":["\nexport function blobToBase64 (blob : Blob) : Promise<string>\n{\n    return new Promise((resolve, reject) =>\n    {\n        const reader = new FileReader();\n        reader.readAsDataURL(blob);\n        reader.onload = () => \n            {\n                var base64data = reader.result;\n                if (typeof base64data === 'string') {resolve(base64data);}\n                else                                {resolve('');}\n            }\n        reader.onerror = error => reject(error);\n    })\n}\n\nexport async function downloadStream (data : string, headers : Headers) : Promise<void>\n{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n    var contentDisposition = headers.get('content-disposition');\n\tvar filename = contentDispositionGetFileName(contentDisposition ?? '');\n    var mimeType = headers.get('content-type');\n\t\n\t// Create link\n\tvar blob = new Blob([data], { type: mimeType ?? '' });\n\t\n    var link = document.createElement('a');\n    const blobUrl = window.URL.createObjectURL(blob);\n    link.href = blobUrl;\n    link.download = filename;\n\n\t// Download\n    document.body.appendChild(link);\n    link.click();\n    document.body.removeChild(link);\n    \n    // clean up Url\n    window.URL.revokeObjectURL(blobUrl);\n}\n\nfunction contentDispositionGetFileName (contentDisposition : string) : string\n{\n    var filename = '';\n\n    if (contentDisposition && contentDisposition.indexOf('attachment') !== -1) \n    {\n        var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n        var matches = filenameRegex.exec(contentDisposition);\n        if (matches != null && matches[1]) \n        { \n          filename = matches[1].replace(/['\"]/g, '');\n        }\n    }\n    \n    return filename;\n}\n\nexport function print (data : string, dataType : 'base64'|'blob', mimeType : string = '') : void\n{\t\t\n    var content : Uint8Array|string = '';\n\tif \t\t(dataType === 'base64') {content = base64ToArrayBuffer(data);}\n\telse if (dataType  === 'blob')   {content = data;}\n\t\n \tconst blob = new Blob([content], {type: mimeType});\n \tconst url = window.URL.createObjectURL(blob);\n\t\n\tprint_(url).then(()=>\n\t{\n\t\twindow.URL.revokeObjectURL(url);\n\t});\n}\n\nfunction print_ (relativeUrl : string) : Promise<boolean>\n{\t\t\n\treturn new Promise( (resolve) =>\n\t{\n\t\tlet pdfFrame = document.body.appendChild(document.createElement('iframe'));\n\t    pdfFrame.style.display = 'none';\n\t    pdfFrame.onload = ( () =>\n\t    {\n\t\t\tvoid pdfFrame.contentWindow?.print();\n\t\t\tresolve(true);\n\t\t});\n\t    pdfFrame.src = relativeUrl; \n    });   \n}\n\nexport function base64ToArrayBuffer (data : string) : Uint8Array\n{\n    const bString = atob(data);\n    const bLength = bString.length;\n    let bytes = new Uint8Array(bLength);\n    for (let i = 0; i < bLength; i++) {\n        const ascii = bString.charCodeAt(i);\n        bytes[i] = ascii;\n    }\n    return bytes;\n}\n\nexport async function fileExists (url : string) : Promise<boolean>\n{\t\n\treturn (await fetch(url, {method: \"HEAD\"})).ok;\n}"],"mappings":";AACO,SAAS,aAAc,MAC9B;AACI,SAAO,IAAI,QAAQ,CAAC,SAAS,WAC7B;AACI,UAAM,SAAS,IAAI,WAAW;AAC9B,WAAO,cAAc,IAAI;AACzB,WAAO,SAAS,MACZ;AACI,UAAI,aAAa,OAAO;AACxB,UAAI,OAAO,eAAe,UAAU;AAAC,gBAAQ,UAAU;AAAA,MAAE,OACrB;AAAC,gBAAQ,EAAE;AAAA,MAAE;AAAA,IACrD;AACJ,WAAO,UAAU,WAAS,OAAO,KAAK;AAAA,EAC1C,CAAC;AACL;AAEA,eAAsB,eAAgB,MAAe,SACrD;AACI,MAAI,qBAAqB,QAAQ,IAAI,qBAAqB;AAC7D,MAAI,WAAW,8BAA8B,sBAAsB,EAAE;AAClE,MAAI,WAAW,QAAQ,IAAI,cAAc;AAG5C,MAAI,OAAO,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,MAAM,YAAY,GAAG,CAAC;AAEjD,MAAI,OAAO,SAAS,cAAc,GAAG;AACrC,QAAM,UAAU,OAAO,IAAI,gBAAgB,IAAI;AAC/C,OAAK,OAAO;AACZ,OAAK,WAAW;AAGhB,WAAS,KAAK,YAAY,IAAI;AAC9B,OAAK,MAAM;AACX,WAAS,KAAK,YAAY,IAAI;AAG9B,SAAO,IAAI,gBAAgB,OAAO;AACtC;AAEA,SAAS,8BAA+B,oBACxC;AACI,MAAI,WAAW;AAEf,MAAI,sBAAsB,mBAAmB,QAAQ,YAAY,MAAM,IACvE;AACI,QAAI,gBAAgB;AACpB,QAAI,UAAU,cAAc,KAAK,kBAAkB;AACnD,QAAI,WAAW,QAAQ,QAAQ,CAAC,GAChC;AACE,iBAAW,QAAQ,CAAC,EAAE,QAAQ,SAAS,EAAE;AAAA,IAC3C;AAAA,EACJ;AAEA,SAAO;AACX;AAEO,SAAS,MAAO,MAAe,UAA4B,WAAoB,IACtF;AACI,MAAI,UAA8B;AACrC,MAAM,aAAa,UAAU;AAAC,cAAU,oBAAoB,IAAI;AAAA,EAAE,WACzD,aAAc,QAAU;AAAC,cAAU;AAAA,EAAK;AAEhD,QAAM,OAAO,IAAI,KAAK,CAAC,OAAO,GAAG,EAAC,MAAM,SAAQ,CAAC;AACjD,QAAM,MAAM,OAAO,IAAI,gBAAgB,IAAI;AAE5C,SAAO,GAAG,EAAE,KAAK,MACjB;AACC,WAAO,IAAI,gBAAgB,GAAG;AAAA,EAC/B,CAAC;AACF;AAEA,SAAS,OAAQ,aACjB;AACC,SAAO,IAAI,QAAS,CAAC,YACrB;AACC,QAAI,WAAW,SAAS,KAAK,YAAY,SAAS,cAAc,QAAQ,CAAC;AACtE,aAAS,MAAM,UAAU;AACzB,aAAS,SAAW,MACpB;AACF,WAAK,SAAS,eAAe,MAAM;AACnC,cAAQ,IAAI;AAAA,IACb;AACG,aAAS,MAAM;AAAA,EAChB,CAAC;AACL;AAEO,SAAS,oBAAqB,MACrC;AACI,QAAM,UAAU,KAAK,IAAI;AACzB,QAAM,UAAU,QAAQ;AACxB,MAAI,QAAQ,IAAI,WAAW,OAAO;AAClC,WAAS,IAAI,GAAG,IAAI,SAAS,KAAK;AAC9B,UAAM,QAAQ,QAAQ,WAAW,CAAC;AAClC,UAAM,CAAC,IAAI;AAAA,EACf;AACA,SAAO;AACX;AAEA,eAAsB,WAAY,KAClC;AACC,UAAQ,MAAM,MAAM,KAAK,EAAC,QAAQ,OAAM,CAAC,GAAG;AAC7C;","names":[]}