|
|
- import 'intl';
- import 'intl/locale-data/jsonp/en';
- import 'es6-symbol/implement';
- import includes from 'array-includes';
- import assign from 'object-assign';
- import values from 'object.values';
- import isNaN from 'is-nan';
- import { decode as decodeBase64 } from './base64';
-
- if (!Array.prototype.includes) {
- includes.shim();
- }
-
- if (!Object.assign) {
- Object.assign = assign;
- }
-
- if (!Object.values) {
- values.shim();
- }
-
- if (!Number.isNaN) {
- Number.isNaN = isNaN;
- }
-
- if (!HTMLCanvasElement.prototype.toBlob) {
- const BASE64_MARKER = ';base64,';
-
- Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {
- value(callback, type = 'image/png', quality) {
- 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 }));
- },
- });
- }
|