UNPKG

cloudhub-components

Version:
98 lines (77 loc) 3.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } var resizer = function resizer(file, maxSize) { /* Utility function to convert a canvas to a BLOB */ var dataURLToBlob = function dataURLToBlob(dataURL) { var BASE64_MARKER = ';base64,'; if (dataURL.indexOf(BASE64_MARKER) == -1) { var _parts = dataURL.split(','); var _contentType = _parts[0].split(':')[1]; var _raw = _parts[1]; return new Blob([_raw], { type: _contentType }); } var parts = dataURL.split(BASE64_MARKER); var contentType = parts[0].split(':')[1]; var raw = window.atob(parts[1]); var rawLength = raw.length; var uInt8Array = new Uint8Array(rawLength); for (var i = 0; i < rawLength; ++i) { uInt8Array[i] = raw.charCodeAt(i); } return new Blob([uInt8Array], _objectSpread(_objectSpread({}, file), {}, { type: contentType })); }; /* End Utility function to convert a canvas to a BLOB */ // Ensure it's an image return new Promise(function (resolve) { if (file.type.match(/image.*/)) { // Load the image var reader = new FileReader(); reader.onload = function (readerEvent) { var image = new Image(); image.onload = function (imageEvent) { // Resize the image var canvas = document.createElement('canvas'); var width = image.width; var height = image.height; if (width > height) { if (width > maxSize) { height *= maxSize / width; width = maxSize; } } else if (height > maxSize) { width *= maxSize / height; height = maxSize; } canvas.width = width; canvas.height = height; canvas.getContext('2d').drawImage(image, 0, 0, width, height); var dataUrl = canvas.toDataURL('image/jpeg'); var resizedImage = dataURLToBlob(dataUrl); var newname = file.name.split('.')[0]; resizedImage.lastModified = file.lastModified; resizedImage.lastModifiedDate = file.lastModifiedDate; resizedImage.name = "".concat(newname, ".jpg"); resizedImage.uid = file.uid; resizedImage.percent = 0; // resizedImage.originFileObj = file; resolve(resizedImage); }; image.src = readerEvent.target.result; }; reader.readAsDataURL(file); } else { resolve(null); } }); }; var _default = resizer; exports.default = _default;