import { PagedResult } from "../classes/pagedResult"; import { isNullOrUndefined } from "util"; export function resolverBlobToBase64(data: T, field: string, aliasNameField?: string): T { let img: string; if (data && data[field]) { img = data[field].toString('base64'); if (aliasNameField) { data[aliasNameField] = 'data:image/jpeg;base64,'.concat(img); delete data[field]; } else { data[field] = 'data:image/jpeg;base64,'.concat(img); } } return data; } export function base64TotoFile(dataUrl: any, fileName: any): File { var arr = dataUrl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } return new File([u8arr], fileName, { type: mime }); } export function resize(base64, maxWidth?, maxHeight?): string { maxWidth = maxWidth ? maxWidth : 50; maxHeight = maxHeight ? maxHeight : 50; // Create and initialize two canvas var canvas = document.createElement("canvas"); var ctx = canvas.getContext("2d"); var canvasCopy = document.createElement("canvas"); var copyContext = canvasCopy.getContext("2d"); // Create original image var img = new Image(); img.src = base64; // Determine new ratio based on max size var ratio = 1; if (img.width > maxWidth) ratio = maxWidth / img.width; else if (img.height > maxHeight) ratio = maxHeight / img.height; // Draw original image in second canvas canvasCopy.width = img.width; canvasCopy.height = img.height; copyContext.drawImage(img, 0, 0); // Copy and resize second canvas to first canvas canvas.width = img.width * ratio; canvas.height = img.height * ratio; ctx.drawImage(canvasCopy, 0, 0, canvasCopy.width, canvasCopy.height, 0, 0, canvas.width, canvas.height); return canvas.toDataURL(); } export function isInvalid(image: any): { typeNotification: string, message: string, descricao: string } | boolean { if (isNullOrUndefined(image)) { return { typeNotification: 'warn', message: 'Ops!', descricao: 'Imagem é obrigatória.' }; } let lengthImg: any = (image).replace(/=/g, "").length * 0.75; let byteLength = parseInt(lengthImg); if (byteLength > 2000000) { return { typeNotification: 'warn', message: 'Ops!', descricao: 'A imagem excedeu o tamanho permitido, reduza a área selecionada.' }; } return false; } export function getImage(value: any, defaultAvatar?: boolean): string { if (isNullOrUndefined(value)) { if (defaultAvatar) { return 'https://meristes-image.s3.amazonaws.com/meristes_commun/imagem-pessoa-avatar.png'; } else { return 'https://meristes-image.s3.amazonaws.com/meristes_commun/imagem-pessoa.jpeg'; } } else { return value; } }