You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
819 B
27 lines
819 B
import 'intl'; |
|
import 'intl/locale-data/jsonp/en'; |
|
import 'core-js/features/object/assign'; |
|
import 'core-js/features/object/values'; |
|
import 'core-js/features/symbol'; |
|
import 'core-js/features/promise/finally'; |
|
import { decode as decodeBase64 } from '../utils/base64'; |
|
|
|
if (!HTMLCanvasElement.prototype.toBlob) { |
|
const BASE64_MARKER = ';base64,'; |
|
|
|
Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', { |
|
value(callback: BlobCallback, type = 'image/png', quality: any) { |
|
const dataURL = this.toDataURL(type, quality); |
|
let data; |
|
|
|
if (dataURL.indexOf(BASE64_MARKER) >= 0) { |
|
const [, base64] = dataURL.split(BASE64_MARKER); |
|
data = decodeBase64(base64); |
|
} else { |
|
[, data] = dataURL.split(','); |
|
} |
|
|
|
callback(new Blob([data], { type })); |
|
}, |
|
}); |
|
}
|
|
|