UNPKG

@privateid/ultra-web-sdk-alpha

Version:
84 lines 4.09 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { proxy } from 'comlink'; import { callbackTypeEnum, createCallback } from '../../../../createCallback'; import { printLogs } from '../../global/shared.utils'; import { ultraCompareEmbeddings } from '../../../../utils'; import { CANVAS_RELEASE_DIMENSION, IMAGE_EXPORT_FORMAT, DOWNLOAD_IMAGE_TYPE, FILE_EXTENSION, DOWNLOAD_DELAY_TIMEOUT, } from './document.constants'; export const releaseCanvas = (canvasElement) => { const canvas = canvasElement; try { printLogs('STARTING TO RELEASE CANVAS', ''); canvas.width = CANVAS_RELEASE_DIMENSION; canvas.height = CANVAS_RELEASE_DIMENSION; const ctx = canvas.getContext('2d', { willReadFrequently: true }); if (ctx) { ctx.clearRect(0, 0, CANVAS_RELEASE_DIMENSION, CANVAS_RELEASE_DIMENSION); } printLogs('CANVAS RELEASED', ''); } catch (e) { printLogs(`CLEARING CANVAS: `, e, 'ERROR'); } }; // TODO: This Compare embeddings should be using the Wasm Service export const compareEmbeddings = (embeddingsA, embeddingsB, callback, config = {}, encryptData = false) => __awaiter(void 0, void 0, void 0, function* () { let configuration = Object.assign({}, config); if (encryptData) { configuration = Object.assign(Object.assign({}, configuration), { encrypt_compare_result: true }); } printLogs(`ULTRA COMPARE: `, { embeddingsA, embeddingsB, config: JSON.stringify(configuration), ex: proxy(createCallback({ type: callbackTypeEnum.compareEmbeddings, callbackFunction: callback })), }); const result = yield ultraCompareEmbeddings(embeddingsA, embeddingsB, JSON.stringify(configuration), proxy(createCallback({ type: callbackTypeEnum.compareEmbeddings, callbackFunction: callback }))); return result; }); export const createImages = (images, title, action) => __awaiter(void 0, void 0, void 0, function* () { const promises = images.map((content) => new Promise((resolve) => __awaiter(void 0, void 0, void 0, function* () { const canvas = document.createElement('canvas'); canvas.width = content.width; canvas.height = content.height; const context = canvas.getContext('2d'); context.putImageData(content, 0, 0); const blob = yield new Promise((resolve) => canvas.toBlob(resolve, IMAGE_EXPORT_FORMAT)); const base64 = yield blobToBase64(blob); const url = URL.createObjectURL(blob); resolve({ url, base64 }); }))); const data = yield Promise.all(promises); const a = document.createElement('a'); for (let i = 0; i < data.length; i++) { // if(!iOS()) { // eslint-disable-next-line no-loop-func yield new Promise((resolve) => { a.href = data[i].url; a.type = DOWNLOAD_IMAGE_TYPE; a.download = `${title}_${action ? 'enroll' : 'predict'}${FILE_EXTENSION}`; document.body.appendChild(a); a.click(); setTimeout(() => { resolve(); }, DOWNLOAD_DELAY_TIMEOUT); }); // } // postImages(data[i].base64); } }); export function blobToBase64(blob) { return new Promise((resolve) => { const reader = new FileReader(); reader.onloadend = () => resolve(reader.result); reader.readAsDataURL(blob); }); } //# sourceMappingURL=document.utils.js.map