! function(t, e) { "object" == typeof exports && "object" == typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.imageConversion = e() : t.imageConversion = e() }(this, (function() { return function(t) { var e = {}; function n(r) { if (e[r]) return e[r].exports; var o = e[r] = { i: r, l: !1, exports: {} }; return t[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports } return n.m = t, n.c = e, n.d = function(t, e, r) { n.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: r }) }, n.r = function(t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol .toStringTag, { value: "Module" }), Object.defineProperty(t, "__esModule", { value: !0 }) }, n.t = function(t, e) { if (1 & e && (t = n(t)), 8 & e) return t; if (4 & e && "object" == typeof t && t && t.__esModule) return t; var r = Object.create(null); if (n.r(r), Object.defineProperty(r, "default", { enumerable: !0, value: t }), 2 & e && "string" != typeof t) for (var o in t) n.d(r, o, function(e) { return t[e] }.bind(null, o)); return r }, n.n = function(t) { var e = t && t.__esModule ? function() { return t.default } : function() { return t }; return n.d(e, "a", e), e }, n.o = function(t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, n.p = "", n(n.s = 0) }([function(t, e, n) { "use strict"; var r; function o(t) { return ["image/png", "image/jpeg", "image/gif"].some(e => e === t) } n.r(e), n.d(e, "canvastoDataURL", (function() { return a })), n.d(e, "canvastoFile", (function() { return c })), n.d(e, "dataURLtoFile", (function() { return s })), n.d(e, "dataURLtoImage", (function() { return l })), n.d(e, "downloadFile", (function() { return d })), n.d(e, "filetoDataURL", (function() { return f })), n.d(e, "imagetoCanvas", (function() { return g })), n.d(e, "urltoBlob", (function() { return w })), n.d(e, "urltoImage", (function() { return m })), n.d(e, "compress", (function() { return p })), n.d(e, "compressAccurately", (function() { return b })), n.d(e, "EImageType", (function() { return r })), function(t) { t.PNG = "image/png", t.JPEG = "image/jpeg", t.GIF = "image/gif" }(r || (r = {})); var i = function(t, e, n, r) { return new(n || (n = Promise))((function(o, i) { function a(t) { try { u(r.next(t)) } catch (t) { i(t) } } function c(t) { try { u(r.throw(t)) } catch (t) { i(t) } } function u(t) { var e; t.done ? o(t.value) : (e = t.value, e instanceof n ? e : new n(( function(t) { t(e) }))).then(a, c) } u((r = r.apply(t, e || [])).next()) })) }; function a(t, e = .92, n = r.JPEG) { return i(this, void 0, void 0, (function*() { return o(n) || (n = r.JPEG), t.toDataURL(n, e) })) } function c(t, e = .92, n = r.JPEG) { return new Promise(r => t.toBlob(t => r(t), n, e)) } var u = function(t, e, n, r) { return new(n || (n = Promise))((function(o, i) { function a(t) { try { u(r.next(t)) } catch (t) { i(t) } } function c(t) { try { u(r.throw(t)) } catch (t) { i(t) } } function u(t) { var e; t.done ? o(t.value) : (e = t.value, e instanceof n ? e : new n(( function(t) { t(e) }))).then(a, c) } u((r = r.apply(t, e || [])).next()) })) }; function s(t, e) { return u(this, void 0, void 0, (function*() { const n = t.split(","); let r = n[0].match(/:(.*?);/)[1]; const i = atob(n[1]); let a = i.length; const c = new Uint8Array(a); for (; a--;) c[a] = i.charCodeAt(a); return o(e) && (r = e), new Blob([c], { type: r }) })) } function l(t) { return new Promise((e, n) => { const r = new Image; r.onload = () => e(r), r.onerror = () => n(new Error( "dataURLtoImage(): dataURL is illegal")), r.src = t }) } function d(t, e) { const n = document.createElement("a"); n.href = window.URL.createObjectURL(t), n.download = e || Date.now().toString(36), document.body.appendChild(n); const r = document.createEvent("MouseEvents"); r.initEvent("click", !1, !1), n.dispatchEvent(r), document.body.removeChild(n) } function f(t) { return new Promise(e => { const n = new FileReader; n.onloadend = t => e(t.target.result), n.readAsDataURL(t) }) } var h = function(t, e, n, r) { return new(n || (n = Promise))((function(o, i) { function a(t) { try { u(r.next(t)) } catch (t) { i(t) } } function c(t) { try { u(r.throw(t)) } catch (t) { i(t) } } function u(t) { var e; t.done ? o(t.value) : (e = t.value, e instanceof n ? e : new n(( function(t) { t(e) }))).then(a, c) } u((r = r.apply(t, e || [])).next()) })) }; function g(t, e = {}) { return h(this, void 0, void 0, (function*() { const n = Object.assign({}, e), r = document.createElement("canvas"), o = r.getContext("2d"); let i, a; for (const t in n) Object.prototype.hasOwnProperty.call(n, t) && (n[t] = Number(n[t])); if (n.scale) { const e = n.scale > 0 && n.scale < 10 ? n.scale : 1; a = t.width * e, i = t.height * e } else a = n.width || n.height * t.width / t.height || t.width, i = n .height || n.width * t.height / t.width || t.height; switch ([5, 6, 7, 8].some(t => t === n.orientation) ? (r.height = a, r .width = i) : (r.height = i, r.width = a), n.orientation) { case 3: o.rotate(180 * Math.PI / 180), o.drawImage(t, -r.width, -r .height, r.width, r.height); break; case 6: o.rotate(90 * Math.PI / 180), o.drawImage(t, 0, -r.width, r .height, r.width); break; case 8: o.rotate(270 * Math.PI / 180), o.drawImage(t, -r.height, 0, r .height, r.width); break; case 2: o.translate(r.width, 0), o.scale(-1, 1), o.drawImage(t, 0, 0, r .width, r.height); break; case 4: o.translate(r.width, 0), o.scale(-1, 1), o.rotate(180 * Math .PI / 180), o.drawImage(t, -r.width, -r.height, r.width, r.height); break; case 5: o.translate(r.width, 0), o.scale(-1, 1), o.rotate(90 * Math.PI / 180), o.drawImage(t, 0, -r.width, r.height, r.width); break; case 7: o.translate(r.width, 0), o.scale(-1, 1), o.rotate(270 * Math .PI / 180), o.drawImage(t, -r.height, 0, r.height, r .width); break; default: o.drawImage(t, 0, 0, r.width, r.height) } return r })) } function w(t) { return fetch(t).then(t => t.blob()) } function m(t) { return new Promise((e, n) => { const r = new Image; r.onload = () => e(r), r.onerror = () => n(new Error( "urltoImage(): Image failed to load, please check the image URL" )), r.src = t }) } var y = function(t, e, n, r) { return new(n || (n = Promise))((function(o, i) { function a(t) { try { u(r.next(t)) } catch (t) { i(t) } } function c(t) { try { u(r.throw(t)) } catch (t) { i(t) } } function u(t) { var e; t.done ? o(t.value) : (e = t.value, e instanceof n ? e : new n(( function(t) { t(e) }))).then(a, c) } u((r = r.apply(t, e || [])).next()) })) }; function p(t, e = {}) { return y(this, void 0, void 0, (function*() { if (!(t instanceof Blob)) throw new Error( "compress(): First arg must be a Blob object or a File object." ); if ("object" != typeof e && (e = Object.assign({ quality: e })), e.quality = Number(e.quality), Number.isNaN(e.quality)) return t; const n = yield f(t); let i = n.split(",")[0].match(/:(.*?);/)[1], c = r.JPEG; o(e.type) && (c = e.type, i = e.type); const u = yield l(n), d = yield g(u, Object.assign({}, e)), h = yield a( d, e.quality, c), w = yield s(h, i); return w.size > t.size ? t : w })) } function b(t, e = {}) { return y(this, void 0, void 0, (function*() { if (!(t instanceof Blob)) throw new Error( "compressAccurately(): First arg must be a Blob object or a File object." ); if ("object" != typeof e && (e = Object.assign({ size: e })), e.size = Number(e.size), Number.isNaN(e.size)) return t; if (1024 * e.size > t.size) return t; e.accuracy = Number(e.accuracy), (!e.accuracy || e.accuracy < .8 || e .accuracy > .99) && (e.accuracy = .95); const n = e.size * (2 - e.accuracy) * 1024, i = 1024 * e.size, c = e.size * e.accuracy * 1024, u = yield f(t); let d = u.split(",")[0].match(/:(.*?);/)[1], h = r.JPEG; o(e.type) && (h = e.type, d = e.type); const w = yield l(u), m = yield g(w, Object.assign({}, e)); let y, p = .5; const b = [null, null]; for (let t = 1; t <= 7; t++) { y = yield a(m, p, h); const e = .75 * y.length; if (7 === t) { (n < e || c > e) && (y = [y, ...b].filter(t => t).sort((t, e) => Math.abs(.75 * t.length - i) - Math.abs(.75 * e.length - i))[0]); break } if (n < e) b[1] = y, p -= Math.pow(.5, t + 1); else { if (!(c > e)) break; b[0] = y, p += Math.pow(.5, t + 1) } } const v = yield s(y, d); return v.size > t.size ? t : v })) } }]) }));