{"version":3,"file":"@files-ui-9edbd8ee.js","sources":["../../node_modules/@files-ui/react/build/index.es.js"],"sourcesContent":["function ___$insertStyle(css) {\n if (!css || typeof window === 'undefined') {\n return;\n }\n const style = document.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n document.head.appendChild(style);\n return css;\n}\n\nimport * as React from 'react';\nimport React__default from 'react';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign$1 = function() {\r\n __assign$1 = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign$1.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter$1(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator$1(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __spreadArray$1(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\n\n/**\n * Gives a XX.XX format in Bytes KB, MB, GB or TB\n * @param fileSize file size to give format in Bytes\n */\nvar fileSizeFormater = function (fileSize) {\n var result = \"\";\n if (!fileSize) {\n return undefined;\n }\n if (fileSize < 1024) {\n result = fileSize + \" Bytes\";\n }\n else {\n //KB\n if (fileSize < 1024 * 1024) {\n result = (fileSize / 1024).toFixed(2) + \" KB\";\n }\n else if (fileSize < 1024 * 1024 * 1024) {\n result = ((fileSize / 1024) / 1024).toFixed(2) + \" MB\";\n }\n else if (fileSize < 1024 * 1024 * 1024 * 1024) {\n result = (((fileSize / 1024) / 1024) / 1024).toFixed(2) + \" GB\";\n }\n else {\n result = ((((fileSize / 1024) / 1024) / 1024) / 1024).toFixed(2) + \" TB\";\n }\n }\n return result;\n};\n\n/**\n * Italian translation for Dropzone component\n */\nvar DropzoneItalian = {\n defaultLabel: \"Trascina qui i tuoi file\",\n uploadingMessage: function (amountOfFiles) { return \"Caricamento di \".concat(amountOfFiles, \" file\"); },\n uploadFinished: function (uploaded, rejected) { return \"File caricati: \".concat(uploaded, \", File rifiutati: \").concat(rejected); },\n noFilesMessage: \"Nessun file valido in attesa di essere caricato\",\n footer: {\n acceptAll: \"Tutti i tipi di file sono accettati\",\n acceptCustom: function (accept) { return \"Tipi di file consentiti: \".concat(accept); }\n },\n header: {\n uploadFilesMessage: \"Caricamento\",\n maxSizeMessage: function (maxFileSize) { return \"Dimensione massima \".concat(maxFileSize); },\n validFilesMessage: function (numberOfValidFiles, maxFiles) { return \"File \".concat(numberOfValidFiles, \"/\").concat(maxFiles); }\n },\n fakeuploadsuccess: \"Il file è stato caricato con successo \",\n fakeUploadError: \"Errore di caricamento del file\",\n};\n/**\n * Italian translation for FileItem component\n */\nvar FileItemItalian = {\n fullInfoLayer: {\n name: \"Nome: \",\n size: \"Dimensione: \",\n type: \"Tipo: \"\n },\n status: {\n preparing: \"preparazione\",\n uploading: \"In corso\",\n success: \"Successo\",\n valid: \"Valido\",\n denied: \"Non válido\",\n error: \"Errore\",\n aborted: \"Interrotto\"\n },\n};\n/**\n * Italian translation for Validation Errors\n */\nvar ValidateErrorItalian = {\n maxSizeError: function (maxSize) { return \"Il file \\u00E8 molto grande. Il tam. il massimo \\u00E8 \".concat(fileSizeFormater(maxSize)); },\n acceptError: \"Tipo di file illegale\",\n maxFileCount: function (maxFiles) { return \"Numero massimo di file (\".concat(maxFiles, \") raggiunto\"); }\n};\n\n/**\n * French translation for Dropzone component\n */\nvar DropzoneFrench = {\n defaultLabel: \"Déposez vos fichiers ici\",\n uploadingMessage: function (amountOfFiles) { return \"Envoi de \".concat(amountOfFiles, \" fichiers\"); },\n uploadFinished: function (uploaded, rejected) { return \"Fichiers t\\u00E9l\\u00E9charg\\u00E9s : \".concat(uploaded, \", Fichiers rejet\\u00E9s: \").concat(rejected); },\n noFilesMessage: \"Aucun fichier valide ne manque\",\n footer: {\n acceptAll: \"Tous types de fichiers accept\\u00E9s \",\n acceptCustom: function (accept) { return \"Types de fichier: \".concat(accept); }\n },\n header: {\n uploadFilesMessage: \"Envoyer\",\n maxSizeMessage: function (maxFileSize) { return \"Taille maximale \".concat(maxFileSize); },\n validFilesMessage: function (numberOfValidFiles, maxFiles) { return \"Fichiers \".concat(numberOfValidFiles, \"/\").concat(maxFiles); }\n },\n fakeuploadsuccess: \"Le fichier a été téléchargé avec succès\",\n fakeUploadError: \"Erreur lors du téléchargement \",\n};\n/**\n * French translation for FileItem component\n */\nvar FileItemFrench = {\n fullInfoLayer: {\n name: \"Le nom: \",\n size: \"Le taille: \",\n type: \"Le type: \"\n },\n status: {\n preparing: \"préparer\",\n uploading: \"En cours\",\n success: \"Succès\",\n valid: \"Valide\",\n denied: \"Refusé\",\n error: \"Erreur\",\n aborted: \"Interrompu\"\n },\n};\n/**\n * French translation for Validation Errors\n */\nvar ValidateErrorFrench = {\n maxSizeError: function (maxSize) { return \"Le fichier est tr\\u00E8s volumineux. Le tam. le maximum est de \".concat(fileSizeFormater(maxSize)); },\n acceptError: \"Type de fichier ill\\u00E9gal \",\n maxFileCount: function (maxFiles) { return \"Limite de fichiers atteinte (\".concat(maxFiles, \")\"); }\n};\n\n/**\n * English translation for Dropzone component\n */\nvar DropzoneEnglish = {\n defaultLabel: \"Drop your files here\",\n uploadingMessage: function (amountOfFiles) { return \"Uploading \".concat(amountOfFiles, \" files\"); },\n uploadFinished: function (uploaded, rejected) { return \"Uploaded files: \".concat(uploaded, \", Rejected files: \").concat(rejected); },\n noFilesMessage: \"There is no missing valid file to upload\",\n footer: {\n acceptAll: \"All file types accepted\",\n acceptCustom: function (accept) { return \"Allowed types: \".concat(accept); }\n },\n header: {\n uploadFilesMessage: \"Upload files\",\n maxSizeMessage: function (maxFileSize) { return \"Max file size: \".concat(maxFileSize); },\n validFilesMessage: function (numberOfValidFiles, maxFiles) { return \"Files \".concat(numberOfValidFiles, \"/\").concat(maxFiles); }\n },\n fakeuploadsuccess: \"File was successfuly uploaded\",\n fakeUploadError: \"Error on uploading. Please try again later.\",\n};\n/**\n * English translation for FileItem component\n */\nvar FileItemEnglish = {\n fullInfoLayer: {\n name: \"Name: \",\n size: \"Size: \",\n type: \"Type: \"\n },\n status: {\n preparing: \"Preparing\",\n uploading: \"Uploading\",\n success: \"Success\",\n valid: \"Valid\",\n denied: \"Not valid\",\n error: \"Error\",\n aborted: \"Aborted\"\n },\n};\n/**\n * English translation for Validation Errors\n */\nvar ValidateErrorEnglish = {\n maxSizeError: function (maxSize) {\n return \"File is too big. Max file size allowed is \".concat(fileSizeFormater(maxSize));\n },\n acceptError: \"File type is not allowed\",\n maxFileCount: function (maxFiles) {\n return \"Max amount of files (\".concat(maxFiles, \") has been reached\");\n }\n};\n\n/**\n * Spanish translation for Dropzone component\n */\nvar DropzoneSpanish = {\n defaultLabel: \"Suelta tus archivos aquí\",\n uploadingMessage: function (amountOfFiles) { return \"Subiendo \".concat(amountOfFiles, \" archivos\"); },\n uploadFinished: function (uploaded, rejected) { return \"Archivos subidos: \".concat(uploaded, \", Archivos rechazados: \").concat(rejected); },\n noFilesMessage: \"No hay archivos v\\u00E1lidos pendientes por subir\",\n footer: {\n acceptAll: \"Todos los tipos de archivo aceptados\",\n acceptCustom: function (accept) { return \"Tipo(s) de archivo permitidos: \".concat(accept); }\n },\n header: {\n uploadFilesMessage: \"Subir\",\n maxSizeMessage: function (maxFileSize) { return \"Tam. m\\u00E1ximo \".concat(maxFileSize); },\n validFilesMessage: function (numberOfValidFiles, maxFiles) { return \"Archivos \".concat(numberOfValidFiles, \"/\").concat(maxFiles); }\n },\n fakeuploadsuccess: \"El archivo se subió correctamente\",\n fakeUploadError: \"Error al subir el archivo\",\n};\n/**\n * Spanish translation for FileItem component\n */\nvar FileItemSpanish = {\n fullInfoLayer: {\n name: \"Nombre: \",\n size: \"Tamaño: \",\n type: \"Tipo: \"\n },\n status: {\n preparing: \"Preparando\",\n uploading: \"Subiendo\",\n success: \"Éxito\",\n valid: \"Válido\",\n denied: \"No válido\",\n error: \"Error\",\n aborted: \"Anulado\"\n },\n};\n/**\n * Spanish translation for Validation Errors\n */\nvar ValidateErrorSpanish = {\n maxSizeError: function (maxSize) { return \"El archivo es muy grande. El tam. m\\u00E1ximo es \".concat(fileSizeFormater(maxSize)); },\n acceptError: \"Tipo de archivo no permitido\",\n maxFileCount: function (maxFiles) { return \"Cantidad m\\u00E1xima de archivos (\".concat(maxFiles, \") alcanzada\"); }\n};\n\n/**\n * Russian translation for Dropzone component\n */\nvar DropzoneRussian = {\n defaultLabel: \"Перетащите сюда свои файлы.\",\n uploadingMessage: function (amountOfFiles) { return \"\\u0412\\u044B\\u0433\\u0440\\u0443\\u0437\\u043A\\u0430 \".concat(amountOfFiles, \" \\u0444\\u0430\\u0439\\u043B\\u043E\\u0432\"); },\n uploadFinished: function (uploaded, rejected) { return \"\\u0417\\u0430\\u0433\\u0440\\u0443\\u0436\\u0435\\u043D\\u043E \\u0444\\u0430\\u0439\\u043B\\u043E\\u0432: \".concat(uploaded, \", \\u043E\\u0442\\u043A\\u043B\\u043E\\u043D\\u0435\\u043D\\u043D\\u044B\\u0445 \\u0444\\u0430\\u0439\\u043B\\u043E\\u0432: \").concat(rejected); },\n noFilesMessage: \"\\u0414\\u0435\\u0439\\u0441\\u0442\\u0432\\u0438\\u0442\\u0435\\u043B\\u044C\\u043D\\u044B\\u0439 \\u0444\\u0430\\u0439\\u043B \\u043D\\u0435 \\u043E\\u0442\\u0441\\u0443\\u0442\\u0441\\u0442\\u0432\\u0443\\u0435\\u0442 \\u0434\\u043B\\u044F \\u0437\\u0430\\u0433\\u0440\\u0443\\u0437\\u043A\\u0438\",\n footer: {\n acceptAll: \"\\u041F\\u0440\\u0438\\u043D\\u0438\\u043C\\u0430\\u044E\\u0442\\u0441\\u044F \\u0432\\u0441\\u0435 \\u0442\\u0438\\u043F\\u044B \\u0444\\u0430\\u0439\\u043B\\u043E\\u0432 \",\n acceptCustom: function (accept) { return \"\\u0414\\u043E\\u043F\\u0443\\u0441\\u0442\\u0438\\u043C\\u044B\\u0435 \\u0442\\u0438\\u043F\\u044B: \".concat(accept); }\n },\n header: {\n uploadFilesMessage: \"Отправить\",\n maxSizeMessage: function (maxFileSize) { return \"\\u043C\\u0430\\u043A\\u0441 \\u0440\\u0430\\u0437\\u043C\\u0435\\u0440: \".concat(maxFileSize); },\n validFilesMessage: function (numberOfValidFiles, maxFiles) { return \"\\u0424\\u0430\\u0439\\u043B\\u044B \".concat(numberOfValidFiles, \"/\").concat(maxFiles); }\n },\n fakeuploadsuccess: \"Файл был успешно загружен\",\n fakeUploadError: \"Ошибка при загрузке\",\n};\n/**\n * Russian translation for FileItem component\n *\n */\nvar FileItemRussian = {\n fullInfoLayer: {\n name: \"\\u0418\\u043C\\u044F: \",\n size: \"Размер: \",\n type: \"Tип: \"\n },\n status: {\n preparing: \"подготовка\",\n uploading: \"Загрузка\",\n success: \"успех\",\n valid: \"годный\",\n denied: \"выкинутый\",\n error: \"ошибка\",\n aborted: \"прерванный\"\n },\n};\n/**\n * Russian translation for Validation Errors\n */\nvar ValidateErrorRussian = {\n maxSizeError: function (maxSize) {\n return \"\\u0424\\u0430\\u0439\\u043B \\u0441\\u043B\\u0438\\u0448\\u043A\\u043E\\u043C \\u0431\\u043E\\u043B\\u044C\\u0448\\u043E\\u0439. \\u041C\\u0430\\u043A\\u0441\\u0438\\u043C\\u0430\\u043B\\u044C\\u043D\\u043E \\u0434\\u043E\\u043F\\u0443\\u0441\\u0442\\u0438\\u043C\\u044B\\u0439 \\u0440\\u0430\\u0437\\u043C\\u0435\\u0440 \\u0444\\u0430\\u0439\\u043B\\u0430 - \".concat(fileSizeFormater(maxSize));\n },\n acceptError: \"\\u0422\\u0438\\u043F \\u0444\\u0430\\u0439\\u043B\\u0430 \\u043D\\u0435 \\u0440\\u0430\\u0437\\u0440\\u0435\\u0448\\u0435\\u043D\",\n maxFileCount: function (maxFiles) {\n return \"\\u0414\\u043E\\u0441\\u0442\\u0438\\u0433\\u043D\\u0443\\u0442\\u043E \\u043C\\u0430\\u043A\\u0441\\u0438\\u043C\\u0430\\u043B\\u044C\\u043D\\u043E\\u0435 \\u043A\\u043E\\u043B\\u0438\\u0447\\u0435\\u0441\\u0442\\u0432\\u043E \\u0444\\u0430\\u0439\\u043B\\u043E\\u0432 (\".concat(maxFiles, \")\");\n }\n};\n\n/**\n * Portuguese translation for Dropzone\n */\nvar DropzonePortuguese = {\n defaultLabel: \"Solte seus arquivos aqui \",\n uploadingMessage: function (amountOfFiles) { return \"Enviando \".concat(amountOfFiles, \" arquivos\"); },\n uploadFinished: function (uploaded, rejected) { return \"Arquivos enviados: \".concat(uploaded, \", Arquivos rejeitados: \").concat(rejected); },\n noFilesMessage: \"Nenhum arquivo v\\u00E1lido est\\u00E1 faltando para enviar\",\n footer: {\n acceptAll: \"Todos os tipos de arquivo s\\u00E3o aceitos\",\n acceptCustom: function (accept) { return \"Tipos permitidos: \".concat(accept); }\n },\n header: {\n uploadFilesMessage: \"Enviar\",\n maxSizeMessage: function (maxFileSize) { return \"Tamanho m\\u00E1ximo: \".concat(maxFileSize); },\n validFilesMessage: function (numberOfValidFiles, maxFiles) { return \"Arquivos \".concat(numberOfValidFiles, \"/\").concat(maxFiles); }\n },\n fakeuploadsuccess: \"O arquivo foi enviado com sucesso\",\n fakeUploadError: \"Erro ao enviar\",\n};\n/**\n * Portuguese translation for FileItem component\n */\nvar FileItemPortuguese = {\n fullInfoLayer: {\n name: \"Nome: \",\n size: \"Tamanho: \",\n type: \"Tipo: \"\n },\n status: {\n preparing: \"Preparando\",\n uploading: \"Enviando\",\n success: \"Êxito\",\n valid: \"válido\",\n denied: \"Negado\",\n error: \"Erro\",\n aborted: \"Abortado\"\n },\n};\n/**\n * Portuguese translation for Validation Errors\n */\nvar ValidateErrorPortuguese = {\n maxSizeError: function (maxSize) { return \"O arquivo \\u00E9 muito grande. O tamanho m\\u00E1ximo de arquivo permitido \\u00E9 \".concat(fileSizeFormater(maxSize)); },\n acceptError: \"O tipo de arquivo n\\u00E3o \\u00E9 permitido \",\n maxFileCount: function (maxFiles) { return \"Quantidade m\\u00E1xima de arquivos (\".concat(maxFiles, \") alcan\\u00E7ada\"); }\n};\n\n/**\n * English translation for Dropzone component\n */\nvar DropzoneSimplifiedChinese = {\n defaultLabel: \"将您的文件放在这里\",\n uploadingMessage: function (amountOfFiles) { return \"\\u4E0A\\u4F20 \".concat(amountOfFiles, \" \\u4E2A\\u6587\\u4EF6\"); },\n uploadFinished: function (uploaded, rejected) { return \"\\u4E0A\\u4F20\\u6587\\u4EF6\\uFF1A\".concat(uploaded, \"\\uFF0C\\u62D2\\u7EDD\\u6587\\u4EF6\\uFF1A\").concat(rejected); },\n noFilesMessage: \"\\u6CA1\\u6709\\u7F3A\\u5C11\\u8981\\u52A0\\u8F7D\\u7684\\u6709\\u6548\\u6587\\u4EF6\",\n footer: {\n acceptAll: \"\\u63A5\\u53D7\\u6240\\u6709\\u6587\\u4EF6\\u7C7B\\u578B\",\n acceptCustom: function (accept) { return \"\\u5141\\u8BB8\\u7684\\u7C7B\\u578B: \".concat(accept); }\n },\n header: {\n uploadFilesMessage: \"上传文件\",\n maxSizeMessage: function (maxFileSize) { return \"\\u6700\\u5927\\u6587\\u4EF6\\u5927\\u5C0F\\uFF1A\".concat(maxFileSize); },\n validFilesMessage: function (numberOfValidFiles, maxFiles) { return \"\\u6587\\u6863 \".concat(numberOfValidFiles, \"/\").concat(maxFiles); }\n },\n fakeuploadsuccess: \"文件已成功上传\",\n fakeUploadError: \"上传时出错\",\n};\n/**\n * Chinnese translation for FileItem component\n */\nvar FileItemSimplifiedChinese = {\n fullInfoLayer: {\n name: \"\\u6587\\u6863\\u540D\\u79F0: \",\n size: \"尺寸: \",\n type: \"文件类型: \"\n },\n status: {\n preparing: \"预加载\",\n uploading: \"上传\",\n success: \"成功\",\n valid: \"接受的文件\",\n denied: \"被拒绝的文件\",\n error: \"错误\",\n aborted: \"中止\"\n },\n};\n/**\n * English translation for Validation Errors\n */\nvar ValidateErrorSimplifiedChinese = {\n maxSizeError: function (maxSize) {\n return \"\\u6587\\u4EF6\\u592A\\u5927\\u3002 \\u5141\\u8BB8\\u7684\\u6700\\u5927\\u6587\\u4EF6\\u5927\\u5C0F\\u4E3A \".concat(fileSizeFormater(maxSize));\n },\n acceptError: \"\\u6587\\u4EF6\\u7C7B\\u578B\\u4E0D\\u5141\\u8BB8\",\n maxFileCount: function (maxFiles) {\n return \"\\u5DF2\\u8FBE\\u5230\\u6700\\u5927\\u6587\\u4EF6\\u6570 (\".concat(maxFiles, \")\");\n }\n};\n\n/**\n * English translation for Dropzone component\n */\nvar DropzoneTraditionalChinese = {\n defaultLabel: \"把你的文件放在這裡 \",\n uploadingMessage: function (amountOfFiles) { return \"\\u4E0A\\u50B3\".concat(amountOfFiles, \"\\u500B\\u6587\\u4EF6\"); },\n uploadFinished: function (uploaded, rejected) { return \"\\u4E0A\\u50B3\\u6587\\u4EF6: \".concat(uploaded, \", \\u62D2\\u7D55\\u7684\\u6587\\u4EF6\\uFF1A\").concat(rejected); },\n noFilesMessage: \"\\u6C92\\u6709\\u7F3A\\u5C11\\u8981\\u4E0A\\u50B3\\u7684\\u6709\\u6548\\u6587\\u4EF6\",\n footer: {\n acceptAll: \"\\u63A5\\u53D7\\u6240\\u6709\\u6587\\u4EF6\\u985E\\u578B\",\n acceptCustom: function (accept) { return \"\\u5141\\u8A31\\u7684\\u985E\\u578B\\uFF1A\".concat(accept); }\n },\n header: {\n uploadFilesMessage: \"上傳文件\",\n maxSizeMessage: function (maxFileSize) { return \"\\u6700\\u5927\\u6587\\u4EF6\\u5927\\u5C0F\\uFF1A\".concat(maxFileSize); },\n validFilesMessage: function (numberOfValidFiles, maxFiles) { return \" \\u6587\\u4EF6 \".concat(numberOfValidFiles, \"/\").concat(maxFiles); }\n },\n fakeuploadsuccess: \"文件已成功上傳\",\n fakeUploadError: \"上傳時出錯\",\n};\n/**\n * Chinese translation for FileItem component\n */\nvar FileItemTraditionalChinese = {\n fullInfoLayer: {\n name: \"\\u6587\\u6A94\\u540D\\u7A31: \",\n size: \"文件大小: \",\n type: \"文件類型: \"\n },\n status: {\n preparing: \"預加載\",\n uploading: \"上傳\",\n success: \"成功\",\n valid: \"有效文件\",\n denied: \"無效文件\",\n error: \"錯誤\",\n aborted: \"中止\"\n },\n};\n/**\n * English translation for Validation Errors\n */\nvar ValidateErrorTraditionalChinese = {\n maxSizeError: function (maxSize) {\n return \"\\u6587\\u4EF6\\u592A\\u5927\\u3002 \\u5141\\u8A31\\u7684\\u6700\\u5927\\u6587\\u4EF6\\u5927\\u5C0F\\u70BA \".concat(fileSizeFormater(maxSize));\n },\n acceptError: \"\\u6587\\u4EF6\\u985E\\u578B\\u4E0D\\u5141\\u8A31\",\n maxFileCount: function (maxFiles) {\n return \"\\u5DF2\\u9054\\u5230\\u6700\\u5927\\u6587\\u4EF6\\u6578 (\".concat(maxFiles, \")\");\n }\n};\n\nvar FileItemLocalizer = {\n \"ES-es\": FileItemSpanish,\n \"EN-en\": FileItemEnglish,\n \"FR-fr\": FileItemFrench,\n \"IT-it\": FileItemItalian,\n \"PT-pt\": FileItemPortuguese,\n \"RU-ru\": FileItemRussian,\n \"ZH-cn\": FileItemSimplifiedChinese,\n \"ZH-hk\": FileItemTraditionalChinese\n};\n/**\n * Secure translation through a selector\n * @param local the Localization\n * @returns a ComponentLocalizer object that contains the translation\n */\nvar FileItemLocalizerSelector = function (local) {\n switch (local) {\n case \"ES-es\": return FileItemLocalizer[\"ES-es\"];\n case \"EN-en\": return FileItemLocalizer[\"EN-en\"];\n case \"FR-fr\": return FileItemLocalizer[\"FR-fr\"];\n case \"IT-it\": return FileItemLocalizer[\"IT-it\"];\n case \"PT-pt\": return FileItemLocalizer[\"PT-pt\"];\n case \"RU-ru\": return FileItemLocalizer[\"RU-ru\"];\n case \"ZH-cn\": return FileItemLocalizer[\"ZH-cn\"];\n case \"ZH-hk\": return FileItemLocalizer[\"ZH-hk\"];\n default: return FileItemLocalizer[\"EN-en\"];\n }\n};\n\nvar DropzoneLocalizer = {\n \"ES-es\": DropzoneSpanish,\n \"EN-en\": DropzoneEnglish,\n \"FR-fr\": DropzoneFrench,\n \"IT-it\": DropzoneItalian,\n \"PT-pt\": DropzonePortuguese,\n \"RU-ru\": DropzoneRussian,\n \"ZH-cn\": DropzoneSimplifiedChinese,\n \"ZH-hk\": DropzoneTraditionalChinese\n};\n/**\n * Secure translation through a selector\n * @param local the Localization\n * @returns a ComponentLocalizer object that contains the translation\n */\nvar DropzoneLocalizerSelector = function (local) {\n switch (local) {\n case \"ES-es\": return DropzoneLocalizer[\"ES-es\"];\n case \"EN-en\": return DropzoneLocalizer[\"EN-en\"];\n case \"FR-fr\": return DropzoneLocalizer[\"FR-fr\"];\n case \"IT-it\": return DropzoneLocalizer[\"IT-it\"];\n case \"PT-pt\": return DropzoneLocalizer[\"PT-pt\"];\n case \"RU-ru\": return DropzoneLocalizer[\"RU-ru\"];\n case \"ZH-cn\": return DropzoneLocalizer[\"ZH-cn\"];\n case \"ZH-hk\": return DropzoneLocalizer[\"ZH-hk\"];\n default: return DropzoneLocalizer[\"EN-en\"];\n }\n};\n\nvar ValidateErrorLocalizer = {\n \"ES-es\": ValidateErrorSpanish,\n \"EN-en\": ValidateErrorEnglish,\n \"FR-fr\": ValidateErrorFrench,\n \"IT-it\": ValidateErrorItalian,\n \"PT-pt\": ValidateErrorPortuguese,\n \"RU-ru\": ValidateErrorRussian,\n \"ZH-cn\": ValidateErrorSimplifiedChinese,\n \"ZH-hk\": ValidateErrorTraditionalChinese,\n};\n/**\n * Secure translation through a selector\n * @param local the Localization\n * @returns a ComponentLocalizer object that contains the translation\n */\nvar ValidateErrorLocalizerSelector = function (local) {\n if (!local || ![\"ES-es\", \"EN-en\", \"FR-fr\", \"IT-it\", \"PT-pt\", \"RU-ru\", \"ZH-cn\", \"ZH-hk\"].includes(local)) {\n return ValidateErrorLocalizer[\"EN-en\"];\n }\n return ValidateErrorLocalizer[local];\n};\n\n/**\n * Reads an image (or other type) file as data URL in a promise way,\n * so you can use await.\n * It will return a string that contains the URL representation\n * @param file File or Blob object\n * @returns data URL of the file\n */\nvar readAsDataURL = function (file, onProgress, onError) {\n return new Promise(function (resolve, reject) {\n try {\n var reader_1 = new FileReader();\n reader_1.onprogress = function () {\n onProgress === null || onProgress === void 0 ? void 0 : onProgress();\n };\n reader_1.onerror = function () {\n onError === null || onError === void 0 ? void 0 : onError();\n };\n reader_1.onload = function () {\n resolve(reader_1.result);\n };\n reader_1.readAsDataURL(file);\n }\n catch (error) {\n reject(undefined);\n }\n });\n};\n/**\n * Reads a file as Text in a promise way, so you can use await.\n * If other kind of file is sent, this function will read it anyway\n * and will return a string that contains the URL representation\n * @param file File or Blob object\n * @param encoding The type of encoding such as \"base64\"\n * @returns data text of the file\n */\nvar readAsText = function (file, encoding, onProgress, onError) {\n return new Promise(function (resolve, reject) {\n try {\n var reader_2 = new FileReader();\n reader_2.onload = function () {\n resolve(reader_2.result);\n };\n reader_2.onprogress = function () {\n onProgress === null || onProgress === void 0 ? void 0 : onProgress();\n };\n reader_2.onerror = function () {\n onError === null || onError === void 0 ? void 0 : onError();\n };\n reader_2.readAsText(file, encoding ? encoding : \"base64\");\n }\n catch (error) {\n reject(undefined);\n }\n });\n};\n/**\n * Reads a file and return the raw binary data from the file.\n * @param file File or Blob object\n * @param encoding The type of encoding such as \"base64\"\n * @returns raw binary data of the file\n */\nvar readAsBinaryString = function (file, onProgress, onError) {\n return new Promise(function (resolve, reject) {\n try {\n var reader_3 = new FileReader();\n reader_3.onload = function () {\n resolve(reader_3.result);\n };\n reader_3.onprogress = function () {\n onProgress === null || onProgress === void 0 ? void 0 : onProgress();\n };\n reader_3.onerror = function () {\n onError === null || onError === void 0 ? void 0 : onError();\n };\n reader_3.readAsBinaryString(file);\n }\n catch (error) {\n reject(undefined);\n }\n });\n};\n/**\n * Reads a file and returns an ArrayBuffer representing the file's data\n * @param file File or blob object\n * @param encoding The type of encoding such as \"base64\"\n * @returns ArrayBuffer representation of the file\n */\nvar readAsArrayBuffer = function (file, onProgress, onError) {\n return new Promise(function (resolve, reject) {\n try {\n var reader_4 = new FileReader();\n reader_4.onload = function () {\n resolve(reader_4.result);\n };\n reader_4.onprogress = function () {\n onProgress === null || onProgress === void 0 ? void 0 : onProgress();\n };\n reader_4.onerror = function () {\n onError === null || onError === void 0 ? void 0 : onError();\n };\n reader_4.readAsArrayBuffer(file);\n }\n catch (error) {\n reject(undefined);\n }\n });\n};\n\n/**\n * Resize an image resolution given maxWidth and maxHeight\n *\n * Should be called with await\n * @param base64Str a string representation of an imae file\n * @param maxWidth the max width of he image\n * @param maxHeight the max height of he image\n * @returns the resized image\n */\nfunction resizeImage(base64Str, maxWidth, maxHeight) {\n if (maxWidth === void 0) { maxWidth = 135; }\n if (maxHeight === void 0) { maxHeight = 120; }\n return new Promise(function (resolve, reject) {\n try {\n var img_1 = new Image();\n img_1.src = base64Str;\n img_1.onload = function () {\n var canvas = document.createElement('canvas');\n var MAX_WIDTH = maxWidth;\n var MAX_HEIGHT = maxHeight;\n var width = img_1.width;\n var height = img_1.height;\n if (maxWidth > width && maxHeight > height) {\n resolve(base64Str);\n }\n else if (width > height) {\n if (width > MAX_WIDTH) {\n height *= MAX_WIDTH / width;\n width = MAX_WIDTH;\n }\n }\n else {\n if (height > MAX_HEIGHT) {\n width *= MAX_HEIGHT / height;\n height = MAX_HEIGHT;\n }\n }\n canvas.width = width;\n canvas.height = height;\n var ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.drawImage(img_1, 0, 0, width, height);\n resolve(canvas.toDataURL());\n }\n else {\n if (process.env.NODE_ENV === \"development\") {\n console.error(\"An error ocurred when trying to make a thumnail\");\n }\n reject(undefined);\n }\n };\n }\n catch (error) {\n if (process.env.NODE_ENV === \"development\") {\n console.error(\"An error ocurred when trying to make a thumnail\");\n }\n reject(undefined);\n }\n });\n}\n\n/**\n * Resize an image resolution given maxWidth and maxHeight\n *\n * Should be called with await\n * @param base64Str a string representation of an imae file\n * @param maxWidth the max width of he image\n * @param maxHeight the max height of he image\n * @returns the resized image\n */\nfunction getImageOrientation(imageSource) {\n return new Promise(function (resolve, reject) {\n //console.log(\"getImageOrientation imageSource\", imageSource);\n if (!imageSource || imageSource.length === 0) {\n // console.log(\"getImageOrientation rejected\", imageSource);\n reject(\"landscape\");\n return;\n }\n try {\n //console.log(\"getImageOrientation try ini\", imageSource);\n var img_1 = new Image();\n img_1.src = imageSource;\n img_1.onerror = function (ev) {\n //console.log(\"getImageOrientation There was a ne error reading\", ev);\n reject(\"landscape\");\n };\n img_1.onload = function () {\n var width = img_1.width;\n var height = img_1.height;\n if (width > height) {\n resolve(\"landscape\");\n }\n else {\n resolve(\"portrait\");\n }\n };\n }\n catch (error) {\n //console.error(\"An error ocurred when trying to get the image orientation\");\n if (process.env.NODE_ENV === \"development\") {\n console.error(\"An error ocurred when trying to get the image orientation\");\n }\n reject(\"landscape\");\n }\n });\n}\n\nvar sevenzip = \"https://user-images.githubusercontent.com/43678736/132086517-72a51a12-e403-4675-bfd7-22c23affa730.png\";\nvar aac = \"https://user-images.githubusercontent.com/43678736/132086518-7026d4f1-ea16-4ed0-89fd-37c1aa8ac3ed.png\";\nvar abw = \"https://user-images.githubusercontent.com/43678736/132086519-863c63b4-917e-4471-94ff-7e15651cc14b.png\";\nvar accdb = \"https://user-images.githubusercontent.com/43678736/132086520-9bc6aa3b-51c9-4da2-9ef7-349162b86d0b.png\";\nvar avi = \"https://user-images.githubusercontent.com/43678736/132086521-dbd6cf0d-d4d7-4b92-bb26-17e8a51a9383.png\";\nvar azw = \"https://user-images.githubusercontent.com/43678736/132086522-070f48e8-78a8-4294-8dbb-aab81525e164.png\";\nvar bmp = \"https://user-images.githubusercontent.com/43678736/132086595-90ab7f90-f87e-4900-94d9-d0b26745df48.png\";\nvar bz = \"https://user-images.githubusercontent.com/43678736/132086597-e285ad5c-613a-4679-a270-493e5be4ffd9.png\";\nvar bz2 = \"https://user-images.githubusercontent.com/43678736/132086598-623c410a-084a-4395-a448-211b2ff61cfe.png\";\nvar cda = \"https://user-images.githubusercontent.com/43678736/132086600-8b70a007-512d-4252-9c66-eabd3ddd6573.png\";\nvar csh = \"https://user-images.githubusercontent.com/43678736/132086601-e62e5d1a-d8a2-4475-a14f-85922cec9272.png\";\nvar css = \"https://user-images.githubusercontent.com/43678736/132086602-4c772934-f608-4f01-8459-c4622cee8ad5.png\";\nvar csv = \"https://user-images.githubusercontent.com/43678736/132086604-b5b019fe-572e-477e-92c2-3769a48a1304.png\";\nvar docx = \"https://user-images.githubusercontent.com/43678736/132086606-715ccb66-4702-4f7d-9b09-ac93ba17b643.png\";\nvar drawio = \"https://user-images.githubusercontent.com/43678736/132086608-bcae9d57-8e54-488c-90c4-4952ae530b5e.png\";\nvar eot = \"https://user-images.githubusercontent.com/43678736/132086618-397d6bd2-9fda-43ed-a135-cb40388c35af.png\";\nvar epub = \"https://user-images.githubusercontent.com/43678736/132086620-2586ba40-c583-4589-b1a4-8bb5b258b44d.png\";\nvar freearc = \"https://user-images.githubusercontent.com/43678736/132086621-3b95fb64-2533-4ccc-abcd-bd2beba572e9.png\";\nvar gif = \"https://user-images.githubusercontent.com/43678736/132086622-af705a0c-2b25-4ba7-8ab6-bd69ec97f7e2.png\";\nvar gzip = \"https://user-images.githubusercontent.com/43678736/132086624-89141a46-64e4-4fa0-bf69-54a0eb4d48c9.png\";\nvar html = \"https://user-images.githubusercontent.com/43678736/132086625-1b8f2652-1de0-4475-8c12-7da4a9973ffb.png\";\nvar icalendar = \"https://user-images.githubusercontent.com/43678736/132086626-38699705-1e6f-4bca-984b-03167b236faa.png\";\nvar java = \"https://user-images.githubusercontent.com/43678736/132086650-f1166246-b361-4c30-a04e-9781c555d14a.png\";\nvar jar = \"https://user-images.githubusercontent.com/43678736/132086650-f1166246-b361-4c30-a04e-9781c555d14a.png\";\nvar javascript = \"https://user-images.githubusercontent.com/43678736/132086652-4562942e-aaea-466c-968f-380fffabf3f9.png\";\nvar jpeg = \"https://user-images.githubusercontent.com/43678736/132086653-0487e7e2-1ee3-49e2-8cfe-3e20f1f7490a.png\";\nvar json = \"https://user-images.githubusercontent.com/43678736/132086656-6e96c815-e4e2-4ffd-9d71-57e9cc2450bc.png\";\nvar jsonld = \"https://user-images.githubusercontent.com/43678736/132086658-5d27d3c2-394f-43fb-b512-9b414a257875.png\";\nvar midi = \"https://user-images.githubusercontent.com/43678736/132086659-98f3ef6e-b9f3-4b6d-b18f-469b5334ba27.png\";\nvar mp3 = \"https://user-images.githubusercontent.com/43678736/132086661-a5484553-06c7-4ffa-a8f9-96b57b1b0344.png\";\nvar mp4 = \"https://user-images.githubusercontent.com/43678736/132086662-05ad1597-d5e5-4efa-833e-2876e966a745.png\";\nvar mpeg = \"https://user-images.githubusercontent.com/43678736/132086663-90c58955-f7fb-4bdb-ac53-92667d16d4a3.png\";\nvar mpkg = \"https://user-images.githubusercontent.com/43678736/132086664-9a7530e7-6d78-4ef3-a176-20cf7f57b555.png\";\nvar octet = \"https://user-images.githubusercontent.com/43678736/132086666-ab3c505d-b2c0-4177-9a06-aed5d9c39ee4.png\";\nvar odp = \"https://user-images.githubusercontent.com/43678736/132086667-6c7dcbcc-8d83-41a2-8e0a-85b09e2791ae.png\";\nvar ods = \"https://user-images.githubusercontent.com/43678736/132086668-9f246e91-cf2e-49cf-9617-e1fbb71abbbb.png\";\nvar odt = \"https://user-images.githubusercontent.com/43678736/132086669-46113762-84d1-4b32-9441-b0138ce17a5d.png\";\nvar oga = \"https://user-images.githubusercontent.com/43678736/145835364-2054509d-3448-4d34-921f-73dd6e297fc7.png\";\nvar ogv = \"https://user-images.githubusercontent.com/43678736/145835367-19172bf8-cd5a-4cbe-b512-d0de1d91f269.png\";\nvar ogx = \"https://user-images.githubusercontent.com/43678736/145835373-a57ef0f5-3968-483b-9f55-6d67e7f1dcea.png\";\nvar opus = \"https://user-images.githubusercontent.com/43678736/132086670-0f96e770-cedc-4635-a5f9-cf97894c1d7a.png\";\nvar otf = \"https://user-images.githubusercontent.com/43678736/132086671-02ad35ef-ec3a-4a65-abd5-5bf794dfcf7b.png\";\nvar pdf = \"https://user-images.githubusercontent.com/43678736/132086672-3a856fda-823d-4997-b802-c7c640e6ef44.png\";\nvar php = \"https://user-images.githubusercontent.com/43678736/132086673-0c4409ab-754e-4619-8cfa-179d0ccf1bd9.png\";\nvar png = \"https://user-images.githubusercontent.com/43678736/132086674-fdb56d02-5845-49b7-8462-6357bc963464.png\";\nvar pptx = \"https://user-images.githubusercontent.com/43678736/132086675-c879645d-acb4-41a6-ab3c-4e6c2048badb.png\";\nvar psd = \"https://user-images.githubusercontent.com/43678736/132086685-4e327c4c-a409-4b83-b36a-8d88936b314b.png\";\nvar python = \"https://user-images.githubusercontent.com/43678736/132086688-8e82fae4-3a9b-49c0-bf99-77189525514c.png\";\nvar tar = \"https://user-images.githubusercontent.com/43678736/132086689-fe1fef9f-d2db-455b-8f4b-09acd095f571.png\";\nvar rar = \"https://user-images.githubusercontent.com/43678736/132086689-fe1fef9f-d2db-455b-8f4b-09acd095f571.png\";\nvar react = \"https://user-images.githubusercontent.com/43678736/132086691-d472576b-ec6a-4332-acd2-dd6a00b72952.png\";\nvar rtf = \"https://user-images.githubusercontent.com/43678736/132086693-9d43571e-0c86-438f-b247-e2cb42e19e06.png\";\nvar sass = \"https://user-images.githubusercontent.com/43678736/132086694-4e661d6a-1118-441e-8bc3-c52fcb2133b6.png\";\nvar sh = \"https://user-images.githubusercontent.com/43678736/132086697-1d82d724-35b6-4f06-847a-3c59a5deda6e.png\";\nvar swf = \"https://user-images.githubusercontent.com/43678736/132086698-19384230-dbd7-4e05-bc69-ef4537b6aae3.png\";\nvar text = \"https://user-images.githubusercontent.com/43678736/132086699-5993a482-04f4-4915-b105-9037f527cf61.png\";\nvar tiff = \"https://user-images.githubusercontent.com/43678736/132086700-c23461c8-6819-46e1-aecd-0a1f8d3507bb.png\";\nvar ttf = \"https://user-images.githubusercontent.com/43678736/132086701-c8044c09-8d95-4af1-9410-66761001d7da.png\";\nvar typescript = \"https://user-images.githubusercontent.com/43678736/132086702-59294337-ed99-4302-badd-316b2c1ff62f.png\";\nvar vsd = \"https://user-images.githubusercontent.com/43678736/132086704-8fd51e7c-afa2-47a3-ab2f-d0bcd0ecae9f.png\";\nvar vue = \"https://user-images.githubusercontent.com/43678736/132086705-33294da1-5c0f-49f7-b890-e4857cec0a6d.png\";\nvar wav = \"https://user-images.githubusercontent.com/43678736/132086706-22f805d0-39d4-494b-824e-47dc75d05eb7.png\";\nvar webm = \"https://user-images.githubusercontent.com/43678736/132086707-e61a84de-d396-4dbf-8d1b-1d6ee19e1ac8.png\";\nvar weba = \"https://user-images.githubusercontent.com/43678736/132086707-e61a84de-d396-4dbf-8d1b-1d6ee19e1ac8.png\";\nvar webp = \"https://user-images.githubusercontent.com/43678736/132086708-21d096dd-7148-40aa-97f1-cbb099339740.png\";\nvar wma = \"https://user-images.githubusercontent.com/43678736/132086709-811d4e90-3cfa-4044-a956-aeda9c67fc92.png\";\nvar wmv = \"https://user-images.githubusercontent.com/43678736/132086710-c5479c6c-0249-4542-adad-48b0ef40b775.png\";\nvar woff = \"https://user-images.githubusercontent.com/43678736/132086711-1524a3e7-3e33-4822-a34f-ff3235404045.png\";\nvar xlsx = \"https://user-images.githubusercontent.com/43678736/132086712-17e2c491-f6e4-4586-aef6-06bcc5f4b0e5.png\";\nvar xml = \"https://user-images.githubusercontent.com/43678736/132086715-204b5a8b-9c5a-4bac-8294-9237ebc16089.png\";\nvar xul = \"https://user-images.githubusercontent.com/43678736/132086716-64511d20-58cb-45a8-85df-f4d9408b469d.png\";\nvar zip = \"https://user-images.githubusercontent.com/43678736/132086718-a8499333-6282-4820-aa1f-4d133eb54648.png\";\n\n/**\n * Looks for the first file extension\n * @param fileName file name\n * @returns the file name extension\n */\nvar getExt = function (fileName) {\n var re = /(?:\\.([^.]+))?$/;\n var result = re.exec(fileName);\n if (result) {\n return result[1];\n }\n else {\n return \"\";\n }\n};\n\nvar DEF_GEN_MIME = \"octet\";\n/**\n *\n * @param tailMime\n * @returns\n */\nvar audioSelector = function (tailMime) {\n switch (tailMime) {\n case \"aac\": return \"aac\";\n case \"midi\": return \"midi\";\n case \"x-midi\": return \"midi\";\n case \"mpeg\": return \"mpeg\"; //mp3\n case \"ogg\": return \"oga\";\n case \"opus\": return \"opus\";\n case \"wav\": return \"wav\";\n case \"webm\": return \"webm\";\n //case \"3gpp\": return \"threegp\";\n //case \"3gpp2\": return \"threegp\";\n //case \"mp3\": return \"mp3\";\n case \"wma\": return \"wma\";\n default: return DEF_GEN_MIME;\n }\n};\nvar textSelector = function (tailMime) {\n switch (tailMime) {\n case \"css\": return \"css\";\n case \"csv\": return \"csv\";\n case \"html\": return \"html\";\n case \"calendar\": return \"icalendar\";\n case \"javascript\": return \"javascript\";\n case \"x-javascript\": return \"javascript\";\n case \"plain\": return \"text\";\n case \"xml\": return \"xml\";\n default: return DEF_GEN_MIME;\n }\n};\nvar imageSelector = function (tailMime) {\n switch (tailMime) {\n case \"bmp\": return \"bmp\";\n case \"gif\": return \"gif\";\n // case \"vnd.microsoft.icon\": return \"ico\";\n //case \"ico\": return \"ico\";\n case \"jpg\": return \"jpeg\";\n case \"jpeg\": return \"jpeg\";\n case \"png\": return \"png\";\n //case \"svg+xml\": return \"svg\";\n //case \"svg\": return \"svg\";\n case \"tiff\": return \"tiff\";\n case \"webp\": return \"webp\";\n default: return DEF_GEN_MIME;\n }\n};\nvar fontSelector = function (tailMime) {\n switch (tailMime) {\n case \"otf\": return \"otf\";\n case \"ttf\": return \"ttf\";\n case \"woff\": return \"woff\";\n case \"woff2\": return \"woff\";\n default: return DEF_GEN_MIME;\n }\n};\nvar videoSelector = function (tailMime) {\n switch (tailMime) {\n case \"x-msvideo\": return \"avi\";\n case \"msvideo\": return \"avi\";\n case \"avi\": return \"avi\";\n case \"mp4\": return \"mp4\";\n case \"mpeg\": return \"mpeg\";\n case \"ogg\": return \"ogv\";\n case \"mp2t\": return \"mp2t\";\n case \"wmv\": return \"wmv\";\n case \"webm\": return \"webm\";\n // case \"3gpp\": return \"threegp\";\n // case \"3gpp2\": return \"threegp2\";\n default: return DEF_GEN_MIME;\n }\n};\n/**\n *\n * @param tailMime\n * @returns\n */\nvar applicationSelector = function (tailMime) {\n switch (tailMime) {\n case \"x-abiword\": return \"abw\";\n case \"abiword\": return \"abw\";\n case \"x-freearc\": return \"arc\";\n case \"freearc\": return \"arc\";\n case \"vnd.amazon.ebook\": return \"azw\";\n case \"octet-stream\": return \"octet\";\n case \"x-bzip\": return \"bz\";\n case \"x-bzip2\": return \"bz2\";\n case \"bzip\": return \"bz\";\n case \"bzip2\": return \"bz2\";\n case \"x-cdf\": return \"cda\";\n case \"msaccess\": return \"accdb\";\n case \"csh\": return \"csh\";\n case \"x-csh\": return \"csh\";\n case \"vnd.ms-fontobject\": return \"eot\";\n case \"epub+zip\": return \"epub\";\n case \"gzip\": return \"gzip\";\n case \"java-archive\": return \"jar\";\n case \"x-javascript\": return \"javascript\";\n case \"json\": return \"json\";\n case \"ld+json\": return \"jsonld\";\n case \"vnd.apple.installer+xml\": return \"mpkg\";\n case \"ogg\": return \"ogx\";\n case \"vnd.rar\": return \"rar\";\n case \"rtf\": return \"rtf\";\n case \"x-sh\": return \"sh\";\n case \"sh\": return \"sh\";\n case \"x-shockwave-flash\": return \"swf\";\n case \"x-tar\": return \"tar\";\n case \"x-httpd-php\": return \"php\";\n case \"vnd.visio\": return \"vsd\";\n case \"xhtml+xml\": return \"xhtml\";\n case \"xml\": return \"xml\";\n case \"vnd.mozilla.xul+xml\": return \"xul\";\n case \"vnd.openxmlformats-officedocument.wordprocessingml.document\": return \"docx\";\n case \"msword\": return \"docx\";\n case \"vnd.openxmlformats-officedocument.spreadsheetml.sheet\": return \"xlsx\";\n case \"vnd.openxmlformats-officedocument.presentationml.presentation\": return \"pptx\";\n case \"vnd.ms-powerpoint\": return \"pptx\";\n case \"vnd.oasis.opendocument.presentation\": return \"odp\";\n case \"vnd.oasis.opendocument.text\": return \"odt\";\n case \"vnd.oasis.opendocument.spreadsheet\": return \"ods\";\n case \"zip\": return \"zip\";\n case \"x-zip-compressed\": return \"zip\";\n case \"pdf\": return \"pdf\";\n default: return DEF_GEN_MIME;\n }\n};\n/**\n * Selects to wich mime type the mime type given belongs to\n * @param mimeType mime type to be searched\n * @returns the generic type,\nif not found it return \"octet\" that means generic binary file\n */\nvar mimeSelector = function (mimeType) {\n // let genericMime: string | undefined = undefined;\n if (!mimeType || !mimeType.includes(\"/\")) {\n return DEF_GEN_MIME;\n }\n var headerMime = mimeType.split(\"/\")[0];\n var tailMime = mimeType.split(\"/\")[1];\n /**\n * Every mimetype that\n * starts with: \"application/....\"\n */\n switch (headerMime) {\n case \"application\": return applicationSelector(tailMime);\n case \"audio\": return audioSelector(tailMime);\n case \"video\": return videoSelector(tailMime);\n case \"text\": return textSelector(tailMime);\n case \"image\": return imageSelector(tailMime);\n case \"font\": return fontSelector(tailMime);\n default: return DEF_GEN_MIME;\n }\n};\n/**\n * Selects to wich mapped extension\n * the given exension belongs to\n *\n * @param extension\n * @returns\n */\nvar extensionSelector = function (extension) {\n var genericMime = \"octet\";\n if (extension && extension !== \"\") {\n if (extension.includes(\"zip\") || extension.includes(\"rar\")) {\n genericMime = \"zip\";\n }\n else if (extension.includes(\"doc\")) {\n genericMime = \"docx\";\n }\n else if (extension.includes(\"xls\")) {\n genericMime = \"xlsx\";\n }\n else if (extension.includes(\"drawio\")) {\n genericMime = \"drawio\";\n }\n else if (extension.includes(\"psd\")) {\n genericMime = \"psd\";\n }\n else if (extension.includes(\"csv\")) {\n genericMime = \"csv\";\n }\n else if (extension === \"jsx\") {\n genericMime = \"react\";\n }\n else if (extension === \"py\") {\n genericMime = \"python\";\n }\n else if (extension === \"vue\") {\n genericMime = \"vue\";\n }\n else if (extension === \"java\") {\n genericMime = \"java\";\n }\n else if (extension === \"ts\") {\n genericMime = \"typescript\";\n }\n else if (extension === \"sass\" || extension === \"scss\") {\n genericMime = \"sass\";\n }\n }\n return genericMime;\n};\n/**\n * Chack for extention whether the file is code os not\n * @param extension\n * @returns\n */\nvar checkIsCode = function (extension) {\n var genericMime = \"text\";\n if (extension && extension !== \"\") {\n if (extension === \"jsx\") {\n genericMime = \"react\";\n }\n else if (extension === \"py\") {\n genericMime = \"python\";\n }\n else if (extension === \"vue\") {\n genericMime = \"vue\";\n }\n else if (extension === \"java\") {\n genericMime = \"java\";\n }\n else if (extension === \"ts\" || extension === \"tsx\") {\n genericMime = \"typescript\";\n }\n else if (extension === \"js\") {\n genericMime = \"javascript\";\n }\n else if (extension === \"xml\") {\n genericMime = \"xml\";\n }\n else if (extension === \"php\") {\n genericMime = \"php\";\n }\n }\n return genericMime;\n};\n/**\n * Looks for a suitable file icon\n * If not found, returns octet-stream url\n * @param props mime and extension from file to search\n * @returns the result file ico\n */\nvar getURLFileIco = function (file, customIcons) {\n var result = \"fallBack\";\n //if not file, return octet\n if (!file) {\n result = DEF_GEN_MIME;\n if (customIcons === null || customIcons === void 0 ? void 0 : customIcons.fallBack)\n return { url: customIcons === null || customIcons === void 0 ? void 0 : customIcons.fallBack, mimeResume: result };\n return { url: mimeUrlList[result], mimeResume: result };\n }\n else {\n result = mimeSelector(file.type);\n }\n //If plain text\n var extention = getExt(file.name);\n if (result === \"text\") {\n result = checkIsCode(extention);\n }\n //If octet stream result, second chance: file extention\n if (result === DEF_GEN_MIME) {\n result = extensionSelector(extention);\n }\n var customUrl = customIcons === null || customIcons === void 0 ? void 0 : customIcons[result];\n if (customUrl !== undefined)\n return { url: customUrl, mimeResume: result };\n return { url: mimeUrlList[result], mimeResume: result };\n};\n/**\n * Looks for a suitable file icon\n * @param props mime and extension from file to search\n * @returns the result file ico, if not found, turns octet-stream url\n */\nvar getURLFileIcoFromNameAndType = function (name, type, customIcons) {\n var result = \"octet\";\n //if not nam and type, return octet\n if (!name) {\n result = DEF_GEN_MIME;\n if (customIcons === null || customIcons === void 0 ? void 0 : customIcons.fallBack)\n return { url: customIcons === null || customIcons === void 0 ? void 0 : customIcons.fallBack, mimeResume: result };\n return { url: mimeUrlList[result], mimeResume: result };\n }\n else {\n result = mimeSelector(type);\n }\n //If plain text\n var extention = getExt(name);\n if (result === \"text\") {\n result = checkIsCode(extention);\n }\n //If octet stream result, second chance: file extention\n if (result === DEF_GEN_MIME) {\n result = extensionSelector(extention);\n }\n var customUrl = customIcons === null || customIcons === void 0 ? void 0 : customIcons[result];\n if (customUrl !== undefined)\n return { url: customUrl, mimeResume: result };\n return { url: mimeUrlList[result], mimeResume: result };\n};\nvar mimeUrlList = {\n aac: aac,\n accdb: accdb,\n abw: abw,\n arc: freearc,\n avi: avi,\n azw: azw,\n octet: octet,\n bmp: bmp,\n bz: bz,\n bz2: bz2,\n cda: cda,\n csh: csh,\n css: css,\n csv: csv,\n docx: docx,\n drawio: drawio,\n eot: eot,\n epub: epub,\n gzip: gzip,\n gif: gif,\n html: html,\n //ico: ico,\n icalendar: icalendar,\n jar: jar,\n jpeg: jpeg,\n javascript: javascript,\n json: json,\n jsonld: jsonld,\n midi: midi,\n // js: js,\n mp3: mp3,\n mp4: mp4,\n mpeg: mpeg,\n mpkg: mpkg,\n mp2t: octet,\n odp: odp,\n ods: ods,\n odt: odt,\n oga: oga,\n ogv: ogv,\n ogx: ogx,\n opus: opus,\n otf: otf,\n png: png,\n pdf: pdf,\n php: php,\n pptx: pptx,\n psd: psd,\n rar: rar,\n rtf: rtf,\n sass: sass,\n sh: sh,\n //svg: svg,\n swf: swf,\n tar: tar,\n tiff: tiff,\n ttf: ttf,\n //ts: ts,\n typescript: typescript,\n text: text,\n vsd: vsd,\n wav: wav,\n weba: weba,\n webm: webm,\n webp: webp,\n woff: woff,\n wma: wma,\n wmv: wmv,\n xhtml: html,\n xlsx: xlsx,\n xml: xml,\n xul: xul,\n zip: zip,\n // threegp: threegp,\n sevenzip: sevenzip,\n python: python,\n java: java,\n react: react,\n vue: vue,\n fallBack: octet,\n};\n\n/**\n * A class definition for ExtFile.\n * This class has the purpose to allow the creation of instances\n * of an ExtFile for performing complex operations that cannot be\n * accomplished just by using the ExtFile type.\n * For instance, it can help in changing the value of some attributes\n * across different scopes thanks to memory reference.\n */\nvar ExtFileInstance = /** @class */ (function () {\n function ExtFileInstance(extFile) {\n var id = extFile.id, file = extFile.file, name = extFile.name, size = extFile.size, type = extFile.type, imageUrl = extFile.imageUrl, valid = extFile.valid, errors = extFile.errors, uploadMessage = extFile.uploadMessage, uploadStatus = extFile.uploadStatus, progress = extFile.progress, xhr = extFile.xhr, extraData = extFile.extraData, extraUploadData = extFile.extraUploadData, serverResponse = extFile.serverResponse, downloadUrl = extFile.downloadUrl, videoUrl = extFile.videoUrl, uploadUrl = extFile.uploadUrl;\n this.id = id;\n this.file = file;\n this.name = name;\n this.size = size;\n this.type = type;\n this.imageUrl = imageUrl;\n this.valid = valid;\n this.errors = errors;\n this.uploadStatus = uploadStatus;\n this.uploadMessage = uploadMessage;\n this.progress = progress;\n this.xhr = xhr;\n this.extraData = extraData;\n this.extraUploadData = extraUploadData;\n this.serverResponse = serverResponse;\n this.downloadUrl = downloadUrl;\n this.videoUrl = videoUrl;\n this.uploadUrl = uploadUrl;\n }\n /**\n * method under construction\n */\n /* private static kamuiFile() {\n \n }\n /**\n * Copies all non undefined attributes from ExtFileInstance to a new ExtFile object\n * @param extFileInstance the instance of ExtFile\n * @returns an ExtFile object\n */\n ExtFileInstance.toExtFile = function (extFileInstance) {\n //console.log(\"before toExtFile()\", extFileInstance);\n var extFileClone = {}; // the new empty object\n var extFileInstanceKeys = Object.keys(extFileInstance);\n var extFileInstanceValues = Object.values(extFileInstance);\n // let's copy all user properties into it\n for (var i = 0; i < extFileInstanceValues.length; i++) {\n var currentValue = extFileInstanceValues[i];\n var currKey = extFileInstanceKeys[i];\n if (currentValue !== undefined) {\n extFileClone[currKey] = currentValue;\n }\n }\n //console.log(\"after toExtFile()\", extFileClone);\n //console.log(\"current extFileClone keys\",Object.keys( extFileClone).length);\n return extFileClone;\n };\n /**\n * Copies all non undefined attributes from ExtFileInstance to a new ExtFile object.\n * @returns an ExtFile object\n */\n ExtFileInstance.prototype.toExtFile = function () {\n return ExtFileInstance.toExtFile(this);\n };\n /* static mock = (id?: number): ExtFileInstance => {\n return new ExtFileInstance(\n extFileMock(id)\n );\n } */\n ExtFileInstance.hasValidUrl = function (extFile) {\n return extFile.uploadUrl && extFile.uploadUrl.length > 0;\n };\n ExtFileInstance.someValidUrl = function (extFile) {\n return extFile.some(ExtFileInstance.hasValidUrl);\n };\n return ExtFileInstance;\n}());\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\n\nvar ExtFileManager = /** @class */ (function () {\n function ExtFileManager() {\n }\n /**\n * Increases the id counter and returns the next id available.\n * @returns the next integer id available\n */\n ExtFileManager.getNextId = function () {\n ExtFileManager.nextId++;\n return ExtFileManager.nextId;\n };\n /**\n * Updates a dui file list given an id\n * @param id id of the fileList\n * @param extFiles list of DuiFiles forinitializing the array\n * @returns the id of the fileList\n */\n ExtFileManager.setFileList = function (id, extFilesInstances) {\n if (!id) {\n return 0;\n }\n else {\n ExtFileManager.fileLists[id] = __spreadArray([], extFilesInstances, true);\n return id;\n }\n };\n /**\n * Generates a new ID\n * @returns the next Id asociated with a DuiFIle list\n */\n ExtFileManager.createFileListMap = function () {\n var nextId = ExtFileManager.getNextId();\n ExtFileManager.fileLists[nextId] = [];\n return nextId;\n };\n /**\n * Deletes a list map\n * @returns the next Id asociated with a DuiFIle list\n */\n ExtFileManager.removeFileListMap = function (id) {\n if (!id) {\n return 0;\n }\n else {\n try {\n ExtFileManager.fileLists[id] = undefined;\n return id;\n }\n catch (error) {\n if (process.env.NODE_ENV === \"development\")\n console.error(\"Error on remove\", error);\n return 0;\n }\n }\n };\n /**\n *\n * @param id the id of the dropzone\n * @returns\n */\n ExtFileManager.getExtFileInstanceList = function (id) {\n try {\n if (!id) {\n return undefined;\n }\n return ExtFileManager.fileLists[id];\n }\n catch (error) {\n if (process.env.NODE_ENV === \"development\")\n console.error(\"Error on getExtFileInstanceList\", error);\n return undefined;\n }\n };\n /**\n * Updates(replaces) the extFile list on preparing stage and returns the new array.\n * Removes the non valid files if cleanOnUpload is true and validateFiles is also true\n * Then sets on preparing stage all files according to the following creiteria:\n * If theuploadStatus is diferent than \"sucess\" AND\n * then, update the files on preparing stage. Otherwise keep the extFile props.\n * Finally, updates the ExtFileInstance list on ExtFileManager.\n * @param dropzoneId the id to access the right list\n * @param localFiles the list of extFiles\n * @param validateFiles flag that indicates that validation is active or o¿not\n * @param cleanOnUpload flag to determine whther to clena the list oof non valid files or not\n * @returns a list of ExtFileInstance\n */\n ExtFileManager.setFileListMapPreparing = function (dropzoneId, localFiles, validateFiles, cleanOnUpload) {\n //console.log(\"setFileListMapPreparing before if\", dropzoneId, localFiles, cleanOnUpload);\n if (!(typeof dropzoneId === \"number\" || typeof dropzoneId === \"string\"))\n return undefined;\n //console.log(\"setFileListMapPreparing before try\", localFiles, cleanOnUpload);\n try {\n var resultExtList = [];\n //initializes the extFileLInstance list\n var temLocalFiles = __spreadArray([], localFiles, true);\n //remove non valids if cleanOnUpload is true and validateFiles is also true\n if (cleanOnUpload && validateFiles) {\n // clean on Upload is true, so non valid files must be removed\n temLocalFiles = temLocalFiles.filter(function (extFile) { return extFile.valid; });\n //console.log(\"temLocalFiles filter\", temLocalFiles);\n }\n //console.log(\"setFileListMapPreparing after remove non valids\", temLocalFiles);\n if (validateFiles) {\n // validation flag was set to true, so only valid=true files will be set to \"preparing\"\n //so, only valid files was kept in the temLocalfiles array\n //now set the preparing state only for files with uploadStatus !== \"success\"\n temLocalFiles =\n temLocalFiles\n .map(function (extFile) {\n if (extFile.uploadStatus !== \"success\" && extFile.valid) {\n return __assign(__assign({}, extFile), { uploadStatus: \"preparing\" });\n }\n else {\n return __assign({}, extFile);\n }\n });\n }\n else {\n // all files will be set to \"preparing\" whether the valid value\n // except those files with uploadStatus ===\"success\"\n temLocalFiles =\n temLocalFiles\n .map(function (extFile) {\n if (extFile.uploadStatus !== \"success\") {\n return __assign(__assign({}, extFile), { uploadStatus: \"preparing\" });\n }\n else {\n return __assign({}, extFile);\n }\n });\n }\n //console.log(\"setFileListMapPreparing result\", temLocalFiles);\n //converto to Object instances\n resultExtList = temLocalFiles.map(function (F) { return new ExtFileInstance(F); });\n //console.log(\"setFileListMapPreparing RESULT resultExtList\", resultExtList);\n var resultSet = ExtFileManager.setFileList(dropzoneId, resultExtList);\n //console.log(\"setFileListMapPreparing RESULT resultSet\", resultSet);\n return resultExtList;\n // return ExtFileManager.fileLists[dropzoneId];\n }\n catch (error) {\n if (process.env.NODE_ENV === \"development\")\n console.error(\"setFileListMapPreparing Error on get List\", error);\n return undefined;\n }\n };\n /**\n * Updates(replaces) the extFile list on preparing stage and returns the new array.\n * Removes the non valid files if cleanOnUpload is true and validateFiles is also true\n * Then sets on preparing stage all files according to the following creiteria:\n * If theuploadStatus is diferent than \"sucess\" AND\n * then, update the files on preparing stage. Otherwise keep the extFile props.\n * Finally, updates the ExtFileInstance list on ExtFileManager.\n * @param dropzoneId the id to access the right list\n * @param localFiles the list of extFiles\n * @param validateFiles flag that indicates that validation is active or o¿not\n * @param cleanOnUpload flag to determine whther to clena the list oof non valid files or not\n * @returns a list of ExtFileInstance\n */\n ExtFileManager.setFileListMapPreparing2 = function (dropzoneId, localFiles, validateFiles, cleanOnUpload) {\n ExtFileManager.setFileList(dropzoneId, localFiles.map(function (F) { return new ExtFileInstance(__assign(__assign({}, F), { uploadStatus: \"preparing\" })); }));\n return ExtFileManager.getExtFileInstanceList(dropzoneId);\n };\n ExtFileManager.nextId = 0;\n ExtFileManager.fileLists = {};\n return ExtFileManager;\n}());\n\nvar createUploadConfig = function (url, method, headers, uploadLabel, cleanonUpload) {\n return {\n url: url,\n method: method,\n headers: headers,\n uploadLabel: uploadLabel,\n cleanonUpload: cleanonUpload\n };\n};\n\n/**\n * A syntetic file creator.\n * Very useful for tests\n */\nvar SyntheticFile = /** @class */ (function () {\n function SyntheticFile() {\n }\n /**\n *\n * @param name the file name\n * @param size the file size\n * @param type the file type\n * @returns\n */\n SyntheticFile.createFile = function (name, size, type) {\n var file = new File([], name, { type: type });\n Object.defineProperty(file, \"size\", {\n get: function () {\n return size;\n },\n });\n return file;\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_aac = function (size) {\n return SyntheticFile.createFile(\"acc_audio-file-with-large-name.aac\", size ? size : 3516516, \"audio/aac\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_abw = function (size) {\n return SyntheticFile.createFile(\"abiword-file-with-large-name.abw\", size ? size : 3516516, \"application/x-abiword\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_freearc = function (size) {\n return SyntheticFile.createFile(\"freearc-file-with-large-name.arc\", size ? size : 3516516, \"application/x-freearc\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_avi = function (size) {\n return SyntheticFile.createFile(\"avi-file-with-large-name.avi\", size ? size : 3516516, \"video/x-msvideo\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_azw = function (size) {\n return SyntheticFile.createFile(\"amazon_kindle_ebook-file-with-large-name.azw\", size ? size : 3516516, \"application/vnd.amazon.ebook\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_octet = function (size) {\n return SyntheticFile.createFile(\"binary_octet_stream-file-with-large-name.bin\", size ? size : 3516516, \"application/octet-stream\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_bmp = function (size) {\n return SyntheticFile.createFile(\"bit_map-file-with-large-name.bmp\", size ? size : 3516516, \"image/bmp\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_bz = function (size) {\n return SyntheticFile.createFile(\"x_bzip-file-with-large-name.bz\", size ? size : 3516516, \"application/x-bzip\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_bz2 = function (size) {\n return SyntheticFile.createFile(\"x_bzip_2-file-with-large-name.bz2\", size ? size : 3516516, \"application/x-bzip2\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_cda = function (size) {\n return SyntheticFile.createFile(\"cd_audio-file-with-large-name.cda\", size ? size : 3516516, \"application/x-cdf\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_csh = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.csh\", size ? size : 3516516, \"application/x-csh\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_css = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.css\", size ? size : 3516516, \"text/css\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_csv = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.csv\", size ? size : 3516516, \"text/csv\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_doc = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.doc\", size ? size : 3516516, \"application/msword\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_docx = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.docx\", size ? size : 3516516, \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_eot = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.eot\", size ? size : 3516516, \"application/vnd.ms-fontobject\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_epub = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.epub\", size ? size : 3516516, \"application/epub+zip\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_gzip = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.gz\", size ? size : 3516516, \"application/gzip\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_gif = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.gif\", size ? size : 3516516, \"image/gif\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_htm = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.htm\", size ? size : 3516516, \"text/html\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_html = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.html\", size ? size : 3516516, \"text/html\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_ico = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.ico\", size ? size : 3516516, \"image/vnd.microsoft.icon\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_icalendar = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.ics\", size ? size : 3516516, \"text/calendar\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_jar = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.jar\", size ? size : 3516516, \"application/java-archive\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_jpeg = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.jpeg\", size ? size : 3516516, \"image/jpeg\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_jpg = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.jpg\", size ? size : 3516516, \"image/jpeg\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_js = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.js\", size ? size : 3516516, \"text/javascript\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_json = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.json\", size ? size : 3516516, \"application/json\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_jsonld = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.jsonld\", size ? size : 3516516, \"application/ld+json\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_mid = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.mid\", size ? size : 3516516, \"audio/midi\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_x_mid = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.mid\", size ? size : 3516516, \"audio/x-midi\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_midi = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.midi\", size ? size : 3516516, \"audio/x-midi\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_x_midi = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.midi\", size ? size : 3516516, \"audio/x-midi\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_mjs = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.mjs\", size ? size : 3516516, \"text/javascript\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_mp3 = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.mp3\", size ? size : 3516516, \"audio/mpeg\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_mp4 = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.mp4\", size ? size : 3516516, \"video/mp4\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_mpeg = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.mpeg\", size ? size : 3516516, \"video/mpeg\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_mpkg = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.mpkg\", size ? size : 3516516, \"application/vnd.apple.installer+xml\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_odp = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.odp\", size ? size : 3516516, \"application/vnd.oasis.opendocument.presentation\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_ods = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.ods\", size ? size : 3516516, \"application/vnd.oasis.opendocument.spreadsheet\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_odt = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.odt\", size ? size : 3516516, \"application/vnd.oasis.opendocument.text\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_oga = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.oga\", size ? size : 3516516, \"audio/ogg\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_ogv = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.ogv\", size ? size : 3516516, \"video/ogg\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_ogx = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.ogx\", size ? size : 3516516, \"application/ogg\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_opus = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.opus\", size ? size : 3516516, \"audio/opus\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_otf = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.otf\", size ? size : 3516516, \"font/otf\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_png = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.png\", size ? size : 3516516, \"image/png\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_pdf = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.pdf\", size ? size : 3516516, \"application/pdf\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_php = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.php\", size ? size : 3516516, \"application/x-httpd-php\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_ppt = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.ppt\", size ? size : 3516516, \"application/vnd.ms-powerpoint\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_pptx = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.pptx\", size ? size : 3516516, \"application/vnd.openxmlformats-officedocument.presentationml.presentation\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_rar = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.rar\", size ? size : 3516516, \"application/vnd.rar\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_rtf = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.rtf\", size ? size : 3516516, \"application/rtf\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_sh = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.sh\", size ? size : 3516516, \"application/x-sh\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_svg = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.svg\", size ? size : 3516516, \"image/svg+xml\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_swf = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.swf\", size ? size : 3516516, \"application/x-shockwave-flash\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_tar = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.tar\", size ? size : 3516516, \"application/x-tar\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_tif = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.tif\", size ? size : 3516516, \"image/tiff\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_tiff = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.tiff\", size ? size : 3516516, \"image/tiff\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_ts = function (size) {\n return SyntheticFile.createFile(\"mp2t_video-file-with-large-name.ts\", size ? size : 3516516, \"video/mp2t\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_ttf = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.ttf\", size ? size : 3516516, \"font/ttf\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_text = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.txt\", size ? size : 3516516, \"text/plain\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_typescript = function (size) {\n return SyntheticFile.createFile(\"typescript-file-with-large-name.ts\", size ? size : 3516516, \"text/plain\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_vsd = function (size) {\n return SyntheticFile.createFile(\"ms_visio-file-with-large-name.vsd\", size ? size : 3516516, \"application/vnd.visio\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_wav = function (size) {\n return SyntheticFile.createFile(\"wav_audio-file-with-large-name.wav\", size ? size : 3516516, \"audio/wav\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_weba = function (size) {\n return SyntheticFile.createFile(\"web_audio-file-with-large-name.weba\", size ? size : 3516516, \"audio/webm\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_webm = function (size) {\n return SyntheticFile.createFile(\"web_video-file-with-large-name.webm\", size ? size : 3516516, \"video/webm\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_webp = function (size) {\n return SyntheticFile.createFile(\"web_image-file-with-large-name.webp\", size ? size : 3516516, \"image/webp\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_woff = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.woff\", size ? size : 3516516, \"font/woff\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_woff2 = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.woff2\", size ? size : 3516516, \"font/woff2\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_xhtml = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.xhtml\", size ? size : 3516516, \"application/xhtml+xml\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_xlsx = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.xls\", size ? size : 3516516, \"application/vnd.ms-excel\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_xls = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.xlsx\", size ? size : 3516516, \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_xml = function (size) {\n return SyntheticFile.createFile(\"xml-file-with-large-name.xml\", size ? size : 3516516, \"application/xml\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_xml_txt = function (size) {\n return SyntheticFile.createFile(\"xml_plain_text-file-with-large-name.xml\", size ? size : 3516516, \"application/xml\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_xul = function (size) {\n return SyntheticFile.createFile(\"test-file-with-large-name.xul\", size ? size : 3516516, \"application/vnd.mozilla.xul+xml\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_zip = function (size) {\n return SyntheticFile.createFile(\"zip-file-with-large-name.zip\", size ? size : 3516516, \"application/zip\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_3gp = function (size) {\n return SyntheticFile.createFile(\"3gp_video-file-with-large-name.3gp\", size ? size : 3516516, \"video/3gpp\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_3gp2 = function (size) {\n return SyntheticFile.createFile(\"3gp2_video-file-with-large-name.3g2\", size ? size : 3516516, \"video/3gpp2\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_3gp_a = function (size) {\n return SyntheticFile.createFile(\"3gp_audio-file-with-large-name.3gp\", size ? size : 3516516, \"audio/3gpp\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_3gp_v = function (size) {\n return SyntheticFile.createFile(\"3gp_audio-file-with-large-name.3gp2\", size ? size : 3516516, \"audio/3gpp2\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_7z = function (size) {\n return SyntheticFile.createFile(\"seven_zip-file-with-large-name.7z\", size ? size : 3516516, \"application/x-7z-compressed\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_python = function (size) {\n return SyntheticFile.createFile(\"python-file-with-large-name.py\", size ? size : 3516516, \"text/plain\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_java = function (size) {\n return SyntheticFile.createFile(\"java-file-with-large-name.java\", size ? size : 3516516, \"text/plain\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_react = function (size) {\n return SyntheticFile.createFile(\"react_jsx-file-with-large-name.jsx\", size ? size : 3516516, \"text/plain\");\n };\n /**\n *\n * @param size the file size\n * @returns a syntetic File object instance\n */\n SyntheticFile.create_vue = function (size) {\n return SyntheticFile.createFile(\"vue-file-with-large-name.vue\", size ? size : 3516516, \"text/plain\");\n };\n /**\n * Creates an array of fake (synthetic) files\n * @param size the file size for all synthetic files\n * @returns an array of all file icon preview supported files\n */\n SyntheticFile.createFileListMiscelanious = function (size) {\n var listFile = [];\n listFile.push(SyntheticFile.create_aac(size));\n listFile.push(SyntheticFile.create_abw(size));\n listFile.push(SyntheticFile.create_freearc(size));\n listFile.push(SyntheticFile.create_avi(size));\n listFile.push(SyntheticFile.create_azw(size));\n listFile.push(SyntheticFile.create_octet(size));\n listFile.push(SyntheticFile.create_bmp(size));\n listFile.push(SyntheticFile.create_bz(size));\n listFile.push(SyntheticFile.create_bz2(size));\n listFile.push(SyntheticFile.create_cda(size));\n listFile.push(SyntheticFile.create_csh(size));\n listFile.push(SyntheticFile.create_css(size));\n listFile.push(SyntheticFile.create_csv(size));\n listFile.push(SyntheticFile.create_doc(size));\n listFile.push(SyntheticFile.create_docx(size));\n listFile.push(SyntheticFile.create_eot(size));\n listFile.push(SyntheticFile.create_epub(size));\n listFile.push(SyntheticFile.create_gzip(size));\n listFile.push(SyntheticFile.create_gif(size));\n listFile.push(SyntheticFile.create_htm(size));\n listFile.push(SyntheticFile.create_html(size));\n listFile.push(SyntheticFile.create_ico(size));\n listFile.push(SyntheticFile.create_icalendar(size));\n listFile.push(SyntheticFile.create_jar(size));\n listFile.push(SyntheticFile.create_jpeg(size));\n listFile.push(SyntheticFile.create_jpg(size));\n listFile.push(SyntheticFile.create_js(size));\n listFile.push(SyntheticFile.create_json(size));\n listFile.push(SyntheticFile.create_jsonld(size));\n listFile.push(SyntheticFile.create_mid(size));\n listFile.push(SyntheticFile.create_midi(size));\n listFile.push(SyntheticFile.create_x_mid(size));\n listFile.push(SyntheticFile.create_x_midi(size));\n listFile.push(SyntheticFile.create_mjs(size));\n listFile.push(SyntheticFile.create_mp3(size));\n listFile.push(SyntheticFile.create_mp4(size));\n listFile.push(SyntheticFile.create_mpeg(size));\n listFile.push(SyntheticFile.create_mpkg(size));\n listFile.push(SyntheticFile.create_odp(size));\n listFile.push(SyntheticFile.create_ods(size));\n listFile.push(SyntheticFile.create_odt(size));\n listFile.push(SyntheticFile.create_oga(size));\n listFile.push(SyntheticFile.create_ogv(size));\n listFile.push(SyntheticFile.create_ogx(size));\n listFile.push(SyntheticFile.create_opus(size));\n listFile.push(SyntheticFile.create_otf(size));\n listFile.push(SyntheticFile.create_png(size));\n listFile.push(SyntheticFile.create_pdf(size));\n listFile.push(SyntheticFile.create_php(size));\n listFile.push(SyntheticFile.create_ppt(size));\n listFile.push(SyntheticFile.create_pptx(size));\n listFile.push(SyntheticFile.create_rar(size));\n listFile.push(SyntheticFile.create_rtf(size));\n listFile.push(SyntheticFile.create_sh(size));\n listFile.push(SyntheticFile.create_svg(size));\n listFile.push(SyntheticFile.create_swf(size));\n listFile.push(SyntheticFile.create_tar(size));\n listFile.push(SyntheticFile.create_tif(size));\n listFile.push(SyntheticFile.create_tiff(size));\n listFile.push(SyntheticFile.create_ts(size));\n listFile.push(SyntheticFile.create_ttf(size));\n listFile.push(SyntheticFile.create_text(size));\n listFile.push(SyntheticFile.create_typescript(size));\n listFile.push(SyntheticFile.create_vsd(size));\n listFile.push(SyntheticFile.create_wav(size));\n listFile.push(SyntheticFile.create_weba(size));\n listFile.push(SyntheticFile.create_webm(size));\n listFile.push(SyntheticFile.create_webp(size));\n listFile.push(SyntheticFile.create_woff(size));\n listFile.push(SyntheticFile.create_woff2(size));\n listFile.push(SyntheticFile.create_xhtml(size));\n listFile.push(SyntheticFile.create_xlsx(size));\n listFile.push(SyntheticFile.create_xls(size));\n listFile.push(SyntheticFile.create_xml(size));\n listFile.push(SyntheticFile.create_xml_txt(size));\n listFile.push(SyntheticFile.create_xul(size));\n listFile.push(SyntheticFile.create_zip(size));\n //listFile.push(SyntheticFile.create_3gp(size));\n //listFile.push(SyntheticFile.create_3gp2(size));\n //listFile.push(SyntheticFile.create_3gp_a(size));\n //listFile.push(SyntheticFile.create_3gp_v(size));\n //listFile.push(SyntheticFile.create_7z(size));\n listFile.push(SyntheticFile.create_python(size));\n listFile.push(SyntheticFile.create_java(size));\n listFile.push(SyntheticFile.create_react(size));\n listFile.push(SyntheticFile.create_vue(size));\n return listFile;\n };\n return SyntheticFile;\n}());\n///////////////////// SHORTCUTS\n/**\n * Create a list of synthetic files with different mime types\n * @param size the file size for each synthetic file\n * @returns a list of synthetic file\n */\nvar createListOfMultiTypeFile = function (size) {\n return SyntheticFile.createFileListMiscelanious(size);\n};\n/**\n * Creates a synthetic file.\n * By default, creates a png image file\n * @param name the file name to show. By default is set to \"png-image-file-with-large-name.png\"\n * @param size the size in bytes of the file. By default this value is set to 455555\n * @param type the mime type of the file. By default is set to \"image/png\"\n * @returns\n */\nvar createSyntheticFile = function (name, size, type) {\n if (name === void 0) { name = \"png-image-file-with-large-name.png\"; }\n if (size === void 0) { size = 455555; }\n if (type === void 0) { type = \"image/png\"; }\n return SyntheticFile.createFile(name, size, type);\n};\n\n/**\n * An id generator for FileItems\n */\nvar FileIdGenerator = /** @class */ (function () {\n function FileIdGenerator() {\n }\n /**\n * Increases the id counter and returns the next id available.\n * @returns the next integer id available\n */\n FileIdGenerator.getNextId = function () {\n FileIdGenerator.nextId++;\n return FileIdGenerator.nextId;\n };\n FileIdGenerator.nextId = 0;\n return FileIdGenerator;\n}());\n\n/**\n * Converts the fileList into an array of separated ExtFile objects\n * @param fileList the FileList object given by input(event.target.files) or drop operation (event.dataTransfer)\n * @returns an array of ExtFile objects\n */\nvar fileListToExtFileArray = function (fileList) {\n var extFileArray = [];\n for (var i = 0, f = void 0; (f = fileList[i]); i++) {\n extFileArray.push({ id: FileIdGenerator.getNextId(), file: f, name: f.name, size: f.size, type: f.type });\n }\n return extFileArray;\n};\n/**\n * Converts the fileList into an array of separated ExtFile instances\n * @param fileList the FileList object given by input (event.target.files) or drop operation (event.dataTransfer)\n * @returns an array of ExtFile instances\n */\nvar fileListToExtFileInstanceArray = function (fileList) {\n var extFileArray = [];\n for (var i = 0, f = void 0; (f = fileList[i]); i++) {\n extFileArray.push(new ExtFileInstance({ id: FileIdGenerator.getNextId(), file: f, name: f.name, size: f.size, type: f.type }));\n }\n return extFileArray;\n};\n\nvar isValidateActive = function (accept, maxFileSize, maxFiles, validator) {\n return ((accept !== undefined && accept !== null) ||\n (maxFileSize !== undefined && maxFileSize !== null) ||\n (maxFiles !== undefined && maxFiles !== null) ||\n (validator !== undefined && validator !== null));\n};\n\n/**\n * The max size of the word in characters\n */\nvar DEFAULT_MAX_SIZE_WORD = 30;\n/**\n *\n * @param word the word to be shrinked\n * @returns the shrinked word\n */\nvar shrinkWord = function (word, card) {\n if (word === void 0) { word = \"\"; }\n if (card === void 0) { card = false; }\n var newWord = word;\n if (card) {\n if (word.length >= 20) {\n newWord = word.slice(0, 10) + \"...\" + word.slice(-7);\n }\n }\n else if (word.length >= DEFAULT_MAX_SIZE_WORD) {\n newWord = word.slice(0, 13) + \"...\" + word.slice(-8);\n }\n return newWord;\n};\n\n/**\n * Updates a extFile and sets its uploadStatus to \"uploading\"\n * @param extFile the extended file object\n * @returns the extended file with the uploadStatus attribute modified\n */\nvar setPrepToUploading = function (extFile) {\n //console.log(\"prepToUpload One\", extFile);\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n resolve(__assign(__assign({}, extFile), { uploadStatus: \"uploading\" }));\n }, 1500);\n });\n};\n/**\n * Updates a extFile and sets its uploadStatus to \"success\"\n * @param extFile the extended file object\n * @returns the extended file with the uploadStatus attribute modified\n */\nvar uploadOne = function (extFile) {\n //console.log(\"upload One\", extFile);\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n resolve(__assign(__assign({}, extFile), { uploadStatus: \"success\" }));\n }, 2000);\n });\n};\n/**\n * Awaits the given time before start uploading\n * @param preparingTime the time in miliseconds, by default it will wait 1.5 secs\n * @returns an empty object\n */\nvar sleepPreparing = function (preparingTime) {\n if (preparingTime === void 0) { preparingTime = 5000; }\n //console.log(\"uploadfiles preparingTime One\", preparingTime);\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n resolve();\n }, preparingTime);\n });\n};\n/**\n *\n * @param extFileInstance\n * @returns\n */\nvar prepToUploadOne = function (extFileInstance) {\n //console.log(\"prepToUpload One\", extFileInstance);\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n extFileInstance.uploadStatus = \"uploading\";\n resolve(__assign(__assign({}, extFileInstance), { uploadStatus: \"uploading\" }));\n }, 1500);\n });\n};\n/**\n *\n * @param extFileInstance\n * @returns\n */\nvar uploadOneExtFile = function (extFileInstance) {\n //console.log(\"upload One\", extFileInstance);\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n extFileInstance.uploadStatus = \"success\";\n resolve(__assign(__assign({}, extFileInstance), { uploadStatus: \"success\" }));\n }, 2000);\n });\n};\n/**\n *\n * @param extFile the extFile to upload\n * @param DropzoneLocalizer the localization\n * @returns a duiUploadResponse object that describes the result\n */\nvar fakeFuiUpload = function (extFileInstance, DropzoneLocalizer) {\n if (DropzoneLocalizer === void 0) { DropzoneLocalizer = DropzoneLocalizerSelector(\"EN-en\"); }\n var extFile = extFileInstance.toExtFile();\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n var randomNumber = Math.floor(Math.random() * 10);\n if (randomNumber % 2 === 0) {\n var success = true;\n var message = DropzoneLocalizer.fakeuploadsuccess;\n var payload = { url: \"\" };\n resolve(__assign(__assign({}, extFile), { serverResponse: { success: success, message: message, payload: payload }, uploadStatus: \"success\", uploadMessage: message }));\n }\n else {\n var success = false;\n var message = DropzoneLocalizer.fakeUploadError;\n var payload = {};\n resolve(__assign(__assign({}, extFile), { serverResponse: { success: success, message: message, payload: payload }, uploadStatus: \"error\", uploadMessage: message }));\n }\n }, 1700);\n });\n};\n\n/**\n * Random integer between min (included) and max (excluded)\n * @param min the min number\n * @param max the max number\n * @returns a random number between min (included) and max (excluded)\n */\nfunction getRandomInt(min, max) {\n if (min === void 0) { min = 0; }\n if (max === void 0) { max = 0; }\n return Math.floor(Math.random() * (max - min)) + min;\n}\n\n/**\n * Cleans the input.value attribute\n * @param inputElement\n */\nvar cleanInput = function (inputElement) {\n if (!inputElement)\n return;\n inputElement.value = \"\";\n};\n\n/**\n * If className is given, adds class name in string format to a base class name\n * @param baseClassName the base class name\n * @param className the class name to be added\n * @returns a new class name obtained by adding the second paramater\n */\nvar addClassName = function (baseClassName, className) {\n if (className)\n return \"\".concat(baseClassName, \" \").concat(className);\n return baseClassName;\n};\n\nvar isUploadAbleExtFile = function (extFile, validateFilesFlag) {\n return (!validateFilesFlag || (validateFilesFlag && extFile.valid)) && extFile.uploadStatus !== \"success\";\n};\n\n/**\n *\n * @param file\n * @param name\n * @param type\n * @param size\n * @returns the file name, type and size\n */\nvar getLocalFileItemData = function (file, name, type, size) {\n var localFileName = \"\";\n var localFileType = undefined;\n var localFileSize = undefined;\n // if file object is valid, obtain metadata from it\n // otherwise try to get file data from individual props in string format\n if (file && typeof file.name === \"string\") {\n localFileName = file.name;\n localFileType = file.type;\n localFileSize = file.size;\n }\n else if (name && typeof name === \"string\") {\n localFileName = name;\n localFileType = type;\n localFileSize = size;\n }\n return [localFileName, localFileType, localFileSize];\n};\n\n/**\n * Separate the accept string array into an array of strings separated by commas\n * @param accept the string accept array\n * @returns an array of strings in wich every item\n */\nvar separateAccept = function (accept) {\n if (!accept || accept.length === 0) {\n return [];\n }\n var commaSeparatedAccpet = accept.split(\",\").map(function (acceptItem) { return acceptItem.trim(); });\n return commaSeparatedAccpet;\n};\n\n/**\n * Checks whether a file is valid or not given an array of file extentions and mime types\n * e.g. accept = [\".doc\", \".docx\", \".xml\", \"application/msword\", \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\"]\n * @param accept the array of strings accept items\n * @param file a File object to be evaluated\n * @returns true if the mime type file is included in the accept param\n */\nvar validateAccept = function (accept, file) {\n var valid = false;\n var name = file.name, type = file.type;\n //Array(5) [ \".doc\", \".docx\", \".xml\", \"application/msword\", \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" ]\n for (var i = 0; i < accept.length; i++) {\n var acceptItem = accept[i];\n //check is not empty\n if (acceptItem.length !== 0) {\n //check extention\n if (acceptItem.charAt(0) === \".\") {\n if (acceptItem.includes(getExt(name))) {\n return true;\n }\n }\n //check mime\n // header/tail => image/png ; image/* ; audio\n if (type && type.length > 0 && acceptItem.includes(\"/\") && type.includes(\"/\")) {\n var headerMime = acceptItem.split(\"/\")[0];\n var tailMime = acceptItem.split(\"/\")[1];\n var headerMimeFile = type.split(\"/\")[0];\n var tailMimeFile = type.split(\"/\")[1];\n if (headerMime === headerMimeFile) {\n // image/*\n if (tailMime === \"*\") {\n return true;\n }\n else if (tailMime === tailMimeFile) {\n return true;\n }\n }\n }\n }\n }\n return valid;\n};\n\n/**\n *\n * @param preValidatedFiles FileList\n * @param remainingValids The number of remaining valid files\n * @param localValidator\n * @param validator\n * @param maxFiles\n * @param localization\n * @returns\n */\nvar fileListvalidator = function (preValidatedFiles, remainingValids, localValidator, validator, maxFiles, localization) {\n var output = [];\n //set a countdown when there is a limit on files\n var countdown = remainingValids;\n // get localized labels\n var ValidationErrorLocalizer = ValidateErrorLocalizerSelector(localization);\n //Iterate the File list\n for (var i = 0, f = void 0; (f = preValidatedFiles[i]); i++) {\n // Validate the file list with\n var validatedFile = validateFile(f, validator, localValidator, ValidationErrorLocalizer);\n if (validatedFile.valid) {\n //not valid due to file count limit\n var valid = countdown > 0;\n validatedFile.valid = valid;\n //add error about amount\n if (!valid) {\n var maxFileErrorMessenger = ValidationErrorLocalizer.maxFileCount;\n validatedFile.errors = validatedFile.errors\n ? __spreadArray(__spreadArray([], validatedFile.errors, true), [maxFileErrorMessenger(maxFiles || Infinity)], false) : [maxFileErrorMessenger(maxFiles || Infinity)];\n }\n countdown--;\n }\n output.push(validatedFile);\n }\n return output;\n};\n/**\n * For each ExtFile sets the valid prop of ExtFile to \"true\" or \"false\"\n * depending on the result of the individual validation.\n * It also add the list of errors.\n * @param extFileList\n * @param remainingValids\n * @param localValidatorProps\n * @param validator\n * @param maxFiles\n * @param localization\n * @returns a new ExtFile list with each item validated\n */\nvar validateExtFileList = function (extFileList, remainingValids, localValidatorProps, validator, maxFiles, localization) {\n //console.log(\"remaning valids\", remainingValids);\n var fileListResult = [];\n if (!remainingValids)\n return fileListResult;\n var remaining = remainingValids;\n var ValidationErrorLocalizer = ValidateErrorLocalizerSelector(localization);\n var maxFileErrorMessenger = ValidationErrorLocalizer.maxFileCount;\n for (var i = 0; i < extFileList.length; i++) {\n var currentExtFile = extFileList[i];\n currentExtFile = validateExtFile(currentExtFile, validator, localValidatorProps, ValidationErrorLocalizer);\n //console.log(\"validateExtFileList after validation\", currentExtFile);\n if (currentExtFile.valid) {\n //not valid due to file count limit\n var valid = remaining > 0;\n currentExtFile.valid = valid;\n //add error about amount\n if (!valid) {\n currentExtFile.errors = currentExtFile.errors\n ? __spreadArray(__spreadArray([], currentExtFile.errors, true), [maxFileErrorMessenger(maxFiles || Infinity)], false) : [maxFileErrorMessenger(maxFiles || Infinity)];\n }\n remaining--;\n }\n fileListResult.push(currentExtFile);\n }\n return fileListResult;\n};\n/**\n *\n * @param extFile\n * @param validator\n * @param validatorProps\n * @param localErrors\n * @returns\n */\nvar validateExtFile = function (extFile, validator, validatorProps, localErrors) {\n var extFileResult = __assign({}, extFile);\n var errors = [];\n //TO-DO: Add extra validation for individual props even if FIle object was not given\n if (!extFile.file) {\n return __assign({}, extFileResult);\n }\n //TO-DO: add \"overrideValidation\" prop to ignore the rest of validators like accept and maxFileSize\n if (validator) {\n var resultCustomValidation = validator(extFileResult.file);\n var errorsResult = resultCustomValidation.errors;\n if (errorsResult)\n errors.push.apply(errors, errorsResult);\n //return { ...extFileResult, ...validator(extFileResult.file as File) };\n }\n var maxFileSize = validatorProps.maxFileSize, accept = validatorProps.accept;\n //console.log(\"Validation\", maxFileSize, accept);\n //check file size\n var file = extFile.file;\n if (maxFileSize && file.size > maxFileSize) {\n var maxFileSizeErrorMessenger = localErrors.maxSizeError;\n //console.log(\"Size error\", maxFileSizeErrorMessenger(maxFileSize));\n errors.push(maxFileSizeErrorMessenger(maxFileSize));\n }\n //check file type\n if (accept && !validateAccept(separateAccept(accept), file)) {\n errors.push(localErrors.acceptError);\n }\n var isValid = errors.length === 0;\n extFileResult = __assign(__assign({}, extFileResult), { valid: isValid, errors: !isValid ? errors : undefined });\n //console.log(\"validation extFileResult\", extFileResult);\n return extFileResult;\n};\n/**\n * Function that validate whether a file is valid, or not\n * according to the Filevalidator properties\n * @param file a File object to be evaluated\n * @param validatorProps the validator object\n * @returns a FileValidated object\n */\nvar validateFile = function (file, validator, validatorProps, localErrors) {\n var idGenerated = FileIdGenerator.getNextId();\n var errors = [];\n if (validator) {\n return __assign({ id: idGenerated, file: file }, validator(file));\n }\n var maxFileSize = validatorProps.maxFileSize, accept = validatorProps.accept;\n //check file size\n if (maxFileSize && file.size > maxFileSize) {\n var maxFileSizeErrorMessenger = localErrors.maxSizeError;\n errors.push(maxFileSizeErrorMessenger(maxFileSize));\n }\n //check file type\n // const allowedTypes = accept.filter((type) => (file.type === type))\n if (accept && !validateAccept(separateAccept(accept), file)) {\n errors.push(localErrors.acceptError);\n }\n var fileResult = {\n id: idGenerated,\n file: file,\n valid: errors.length === 0,\n errors: errors\n };\n // logic here\n return fileResult;\n};\n\n/**\n * Generates a random number betwen 0 and 3\n * where\n * 0 => error\n * 1 => uploading\n * 2 => success\n * 3 => undefined\n * @returns a random upload status or undefined\n */\nvar getRandomUploadStatus = function () {\n var result = getRandomInt(0, 4);\n switch (result) {\n case 0: return \"error\";\n case 1: return \"uploading\";\n case 2: return \"success\";\n default:\n return undefined;\n }\n};\n\n/**\n * list of dumy errors in english\n */\nvar listOfErrors = [\n \"File is too big. Max file size allowed is 80mb.\",\n \"File's type is not allowed.\",\n \"Max amount of files (28) has been reached.\"\n];\n\n/**\n * Make a validated file that is ready to be used on FileItem component,\n * if valid is not set, a random operation will decide whether the file is valid or not\n * If valid is false, then the natural order is not to be uploadable and wont have upload message nor upload status\n * If valid is true, then file can be uploaded and can have upload message if the status is succes or error\n * @param file The file\n * @param valid true if it is a valid file, otherwise is false\n * @param uploadStatus the current upload status. If not given a random upload status will be set\n * @param uploadMessage the upload message after uploading\n * @returns a Vaidated File object\n */\nvar makeSyntheticExtFile = function (file, valid, uploadStatus, uploadMessage) {\n if (valid === void 0) { valid = (Math.ceil(Math.random() * 28) % 2 === 0); }\n //if valid, naturally, can be uploaded\n var errors = [];\n var newUpoadStatus = uploadStatus || getRandomUploadStatus();\n var customUploadMessage = uploadMessage || \"\";\n if (valid) {\n //we can decide according to upload status \n if (!uploadMessage) {\n switch (newUpoadStatus) {\n case \"error\":\n customUploadMessage = \"Upload failed. There was an error\";\n break;\n case \"success\":\n customUploadMessage = \"File was successfully upload\";\n break;\n default: uploadMessage = undefined;\n }\n }\n errors = undefined;\n }\n else {\n //if not valid, just show error messages\n var randInt = getRandomInt(0, 3);\n errors.push(listOfErrors[randInt]);\n newUpoadStatus = undefined;\n customUploadMessage = undefined;\n }\n //now make a File Validated instance \n var newFileValidated = {\n id: FileIdGenerator.getNextId(),\n valid: valid,\n file: file,\n uploadStatus: newUpoadStatus,\n uploadMessage: customUploadMessage,\n errors: errors\n };\n return newFileValidated;\n};\n\nvar extFileMock = function (id) {\n return {\n id: id || FileIdGenerator.getNextId(),\n name: \"fileName.ext\",\n size: 28 * 1024 * 1024,\n type: \"files-ui/mock\",\n file: createSyntheticFile(\"fileName.ext\", 28 * 1024 * 1024, \"files-ui/mock\"),\n errors: listOfErrors,\n uploadMessage: \"uploaded\",\n uploadStatus: \"preparing\",\n valid: false,\n progress: 28,\n xhr: new XMLHttpRequest(),\n extraData: {\n extraData1: \"files-ui is the best\",\n extraData2: {\n id: 1,\n name: \"files-ui.mock\"\n },\n deleted: true\n },\n downloadUrl: \"https://www.files-ui.com/mock/file-download\",\n uploadUrl: \"https://www.files-ui.com/mock/file\"\n };\n};\n\nfunction addExtraData(formData, extraData) {\n //headers\n var extraDataKeys = Object.keys(extraData || {});\n //const headerValues: string[] = Object.values(headers);\n for (var i = 0; i < extraDataKeys.length && extraData; i++) {\n //console.log(\"uploadFile extraData\", extraDataKeys[i], extraData[extraDataKeys[i]]);\n formData.append(extraDataKeys[i], extraData[extraDataKeys[i]]);\n }\n // formData.append(\"otherValue\", \"HAAAAAAAAAAAAAAa\");\n}\n\nfunction addHeaders(xhr, headers) {\n //headers\n var headerKeys = Object.keys(headers || {});\n //const headerValues: string[] = Object.values(headers);\n for (var i = 0; i < headerKeys.length && headers; i++) {\n //console.log(\"uploadFile headers\", headerKeys[i], headers[headerKeys[i]]);\n xhr.setRequestHeader(headerKeys[i], headers[headerKeys[i]]);\n }\n}\n\nvar NO_URL_MESSAGE = \"Unable to upload. A valid url was not provided\";\nvar NO_XHR_MESSAGE = \"Unable to upload. xhr object was not provided\";\n\nvar TIMEOUT_ERROR_RESPONSE = {\n success: false,\n message: \"Timeout error\",\n payload: {}\n};\nvar ABORTED_ERROR_RESPONSE = {\n success: false,\n message: \"Upload aborted\",\n payload: {}\n};\nvar JSON_PARSE_ERROR_RESPONSE = {\n success: false,\n message: \"Error when parsing JSON response\",\n payload: {}\n};\nvar UNEXPECTED_ERROR_RESPONSE = {\n success: false,\n message: \"Unexpected error\",\n payload: {}\n};\nvar NO_XHR_PROVIDED_ERROR = function (extFile) {\n return __assign(__assign({}, extFile), { uploadMessage: NO_XHR_MESSAGE, uploadStatus: \"error\", serverResponse: { success: false, } });\n};\nvar NO_URL_PROVIDED_ERROR = function (extFile) {\n return __assign(__assign({}, extFile), { uploadMessage: NO_URL_MESSAGE, uploadStatus: \"error\", serverResponse: { success: false, } });\n};\n\nvar makeServerResponse = function (success, message, payload) {\n var result = { success: success, message: message, payload: payload };\n return result;\n};\nvar JsonParseResponse = function (xhr) {\n try {\n var jsonResponse = JSON.parse(xhr.response);\n var success = (xhr.status >= 200 && xhr.status < 300) ? true : typeof jsonResponse.success === \"boolean\" ? jsonResponse.success : false;\n var message = typeof jsonResponse.message === \"string\" ? jsonResponse.message :\n success ?\n \"Upload compete!. No message from server found.\"\n : \"Error on upload. No message from server found.\";\n var payload = jsonResponse.payload || jsonResponse || {};\n var fuiResponse = {\n success: success,\n message: message,\n payload: payload\n };\n return fuiResponse;\n }\n catch (error) {\n //console.log(\"FuiUpload ERROR\", error);\n return JSON_PARSE_ERROR_RESPONSE;\n }\n};\nvar makeSuccessUploadResponse = function (extFile, responseFui) {\n return __assign(__assign({}, extFile), { serverResponse: responseFui, uploadMessage: responseFui.message, uploadStatus: \"success\" });\n};\nvar makeErrorUploadResponse = function (extFile, responseFui) {\n //console.log(\"makeErrorUploadResponse\", extFile, responseFui);\n return __assign(__assign({}, extFile), { uploadMessage: responseFui.message, uploadStatus: \"error\", serverResponse: responseFui });\n};\n\n/**\n * Uploads one formData object to a given endpoint in a promisified way\n * @param xhr XMLHTTPrequest object\n * @param method method for uploading\n * @param endpoint endpoint to upload the file\n * @param data FromData object to perform multipart form data upload\n * @param headers the set of headers\n * @returns a server response that consists on {status, payload, message}\n */\nvar uploadBlob = function (xhr, method, endpoint, data, headers) {\n if (method === void 0) { method = \"POST\"; }\n return new Promise(function (resolve, reject) {\n //console.log(\"Fui_uploadFormData uploadFile\", xhr, method, endpoint, data, headers);\n console.log(\"uploadBlob => BLOB\");\n var finalMethod = [\"POST\", \"PUT\", \"PATCH\"].includes(method.toUpperCase()) ? method : \"POST\";\n xhr.upload.onload = function () {\n //console.log(\"Fui_uploadFormData uploadFile onLoad\", xhr.readyState, xhr.response);\n };\n xhr.upload.ontimeout = function () { return resolve(TIMEOUT_ERROR_RESPONSE); };\n xhr.upload.onabort = function () {\n //console.log(\"Fui_uploadFormData ABORTEEEEDDDD\");\n resolve(ABORTED_ERROR_RESPONSE);\n };\n xhr.onloadend = function (e) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/];\n });\n }); };\n // listen for `progress` event\n //currently listening on FileItem component hook\n xhr.onreadystatechange = function (e) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n //console.log(\"Finished\", xhr);\n //console.log(\"Fui_uploadFormData uploadFile onreadystatechange e.type\", e.type);\n //console.log(\"Fui_uploadFormData uploadFile onreadystatechange\", xhr.readyState, xhr.response);\n //lastLastState = lastState;\n //lastState = xhr.readyState;\n if (xhr.readyState === 4) {\n if (xhr.response !== \"\") {\n //there is th answer\n resolve(JsonParseResponse(xhr));\n }\n else {\n //error unexpected\n resolve(ABORTED_ERROR_RESPONSE);\n }\n } //else {\n return [2 /*return*/];\n });\n }); };\n // open request\n xhr.open(finalMethod, endpoint, true);\n //add header to request\n addHeaders(xhr, headers);\n //start uploading\n //const blob:Blob = new Blob(data., { type: \"text/plain\" });\n xhr.send(data);\n });\n};\n/**\n * Uploads one formData object to a given endpoint in a promisified way\n * @param xhr XMLHTTPrequest object\n * @param method method for uploading\n * @param endpoint endpoint to upload the file\n * @param data FromData object to perform multipart form data upload\n * @param headers the set of headers\n * @returns a server response that consists on {status, payload, message}\n */\nvar uploadFormData = function (xhr, method, endpoint, data, headers) {\n if (method === void 0) { method = \"POST\"; }\n return new Promise(function (resolve, reject) {\n //console.log(\"Fui_uploadFormData uploadFile\", xhr, method, endpoint, data, headers);\n var finalMethod = [\"POST\", \"PUT\", \"PATCH\"].includes(method.toUpperCase()) ? method : \"POST\";\n /* let lastLastState: number = -1;\n let lastState: number = 0;\n let jumped: boolean = false; */\n xhr.upload.onload = function () {\n //console.log(\"Fui_uploadFormData uploadFile onLoad\", xhr.readyState, xhr.response);\n };\n xhr.upload.ontimeout = function () { return resolve(TIMEOUT_ERROR_RESPONSE); };\n xhr.upload.onabort = function () {\n //console.log(\"Fui_uploadFormData ABORTEEEEDDDD\");\n resolve(ABORTED_ERROR_RESPONSE);\n };\n xhr.onloadend = function (e) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/];\n });\n }); };\n // listen for `progress` event\n //currently listening on FileItem component hook\n xhr.onreadystatechange = function (e) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n //console.log(\"Finished\", xhr);\n //console.log(\"Fui_uploadFormData uploadFile onreadystatechange e.type\", e.type);\n //console.log(\"Fui_uploadFormData uploadFile onreadystatechange\", xhr.readyState, xhr.response);\n //lastLastState = lastState;\n //lastState = xhr.readyState;\n if (xhr.readyState === 4) {\n if (xhr.response !== \"\") {\n //there is th answer\n resolve(JsonParseResponse(xhr));\n }\n else {\n //error unexpected\n // console.log(\"Fui_uploadFormData EMPTY status\", xhr.status);\n // console.log(\"Fui_uploadFormData EMPTY readyState\", xhr.readyState);\n // console.log(\"Fui_uploadFormData EMPTY upload\", xhr.upload);\n //console.log(\"Fui_uploadFormData EMPTY abort\", xhr.abort);\n //const jumped = lastLastState - lastLastState !== 1;\n resolve(ABORTED_ERROR_RESPONSE);\n }\n }\n return [2 /*return*/];\n });\n }); };\n // open request\n xhr.open(finalMethod, endpoint, true);\n //add header to request\n addHeaders(xhr, headers);\n //start uploading\n xhr.send(data);\n });\n};\n/**\n * Method that perfomrs the upload operation for an ExtFIle\n * @param file the extended file to be uploaded\n * @param url the endpoint\n * @param urlFromExtFile a function to generate the url for each ExtFile\n * @param method the method for uploading\n * @param headers headers for request\n * @param asBlob if true, it wil upload file as blob instead of uploadint it as FormData.\n * @returns The extFile with upload values modified\n */\nvar uploadExtFile = function (extFile, url, urlFromExtFile, method, headers, uploadLabel, asBlob) { return __awaiter(void 0, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new Promise(function (resolve, reject) { return __awaiter(void 0, void 0, void 0, function () {\n var uploader, finalUrl, localMethod, fileToUpload, formData, finalExtraData, responseFui;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n _a.trys.push([0, 5, , 6]);\n uploader = extFile.xhr;\n if (!uploader) {\n resolve(NO_XHR_PROVIDED_ERROR(extFile));\n return [2 /*return*/];\n }\n finalUrl = extFile.uploadUrl || (urlFromExtFile === null || urlFromExtFile === void 0 ? void 0 : urlFromExtFile(extFile)) || url;\n if (finalUrl == undefined || finalUrl.length == 0) {\n resolve(NO_URL_PROVIDED_ERROR(extFile));\n return [2 /*return*/];\n }\n localMethod = method || \"POST\";\n fileToUpload = extFile.file;\n formData = new FormData();\n formData.append(uploadLabel || \"file\", fileToUpload);\n finalExtraData = __assign({}, extFile.extraUploadData);\n addExtraData(formData, finalExtraData);\n responseFui = void 0;\n if (!asBlob) return [3 /*break*/, 2];\n return [4 /*yield*/, uploadBlob(uploader, localMethod, finalUrl, fileToUpload, headers || {})];\n case 1:\n responseFui = _a.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, uploadFormData(uploader, localMethod, finalUrl, formData, headers || {})];\n case 3:\n responseFui = _a.sent();\n _a.label = 4;\n case 4:\n if (responseFui.success) {\n // status is true\n resolve(makeSuccessUploadResponse(extFile, responseFui));\n }\n else {\n // status is false\n resolve(makeErrorUploadResponse(extFile, responseFui));\n }\n return [3 /*break*/, 6];\n case 5:\n _a.sent();\n // on error\n //console.log(\"uploadPromiseXHR uploadPromiseXHR ERROR\", error);\n resolve(makeErrorUploadResponse(extFile, UNEXPECTED_ERROR_RESPONSE));\n return [3 /*break*/, 6];\n case 6: return [2 /*return*/];\n }\n });\n }); })];\n });\n}); };\nfunction uploadFile(file, url, method, label, headers) {\n var _this = this;\n return new Promise(function (resolve, reject) { return __awaiter(_this, void 0, void 0, function () {\n var formData, serverResponse;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n formData = new FormData();\n formData.append(label || \"file\", file);\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, uploadFormData(new XMLHttpRequest(), method, url, formData, headers)];\n case 2:\n serverResponse = _a.sent();\n resolve(serverResponse);\n return [3 /*break*/, 4];\n case 3:\n _a.sent();\n // on error\n //console.log(\"uploadPromiseXHR uploadPromiseXHR ERROR\", error);\n resolve(UNEXPECTED_ERROR_RESPONSE);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n }); });\n}\n\nvar unexpectedErrorUploadResult = function (extFile) {\n return __assign(__assign({}, extFile), { uploadMessage: \"Unexpected error\", uploadStatus: \"error\", serverResponse: {\n success: false,\n message: \"Error on upload: unexpected error \",\n payload: {},\n } });\n};\nvar unableToUploadResult = function (extFile) {\n return {\n id: extFile.id,\n uploadedFile: __assign(__assign({}, extFile), { uploadMessage: \"Unable to upload. XHR was not provided\", uploadStatus: \"error\" }),\n serverResponse: {\n success: false,\n message: \"Error on upload: Unable to upload. XHR was not provided \",\n payload: {},\n }\n };\n};\nvar completeUploadResult = function (extFile, serverResponse, uploadStatusresult) {\n return {\n id: extFile.id,\n uploadedFile: __assign(__assign({}, extFile), { uploadMessage: serverResponse.message, uploadStatus: uploadStatusresult }),\n serverResponse: serverResponse\n };\n};\n/**\n * Initializes the xhr attribute for performing uploads\n * @param extFileList the list of extended files\n * @returns the array of extFiles with the xhr attribute initialized\n */\nvar toUploadableExtFileList = function (extFileList) {\n if (!extFileList)\n return [];\n return extFileList.map(function (extFile) {\n return __assign(__assign({}, extFile), { xhr: new XMLHttpRequest() });\n });\n};\n/**\n * Updates the uploadStatus of the given extFile\n * from \"preparing\" to \"uploading\"\n * @param extFile the extended file\n * @returns the extended file with uploadStatus updated to \"uploading\"\n */\nvar instantPreparingToUploadOne = function (extFile) {\n if (extFile.uploadStatus === \"preparing\") {\n //for ExtFile instance\n extFile.uploadStatus = \"uploading\";\n //for ExtFile type\n return __assign(__assign({}, extFile), { uploadStatus: \"uploading\" });\n }\n return extFile;\n};\n/**\n * If current uploadStatus is \"preparing\" it changes it to \"uploading\".\n * Otherwise it will return the exact same input.\n * @param extFile the extended file\n * @returns the extFile with the upload status changed\n */\nvar preparingToUploadOne = function (extFile) {\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n if (extFile.uploadStatus === \"preparing\") {\n //for ExtFile instance\n extFile.uploadStatus = \"uploading\";\n //for ExtFile type\n resolve(__assign(__assign({}, extFile), { uploadStatus: \"uploading\" }));\n }\n else\n resolve(extFile);\n }, 1500);\n });\n};\n/**\n * Sleeps for 1200 miliseconds for showing a better transition\n * on uploading\n * @param time the time to sleep in miliseconds\n * @returns true is everything is ok\n */\nvar sleepTransition = function (time) {\n if (time === void 0) { time = 1500; }\n return new Promise(function (resolve, reject) {\n setTimeout(function () {\n resolve(true);\n }, time);\n });\n};\n/**\n * Removes the deleted files and updates the aborted ones with a message\n * @param arrExtFile incomming arr of extFle instances\n * @returns an array of ExtFle objects\n */\nvar sanitizeArrExtFile = function (arrExtFile) {\n return arrExtFile.filter(function (extFileInstance) { var _a; return !((_a = extFileInstance.extraData) === null || _a === void 0 ? void 0 : _a.deleted); })\n .map(function (extFileInstance) {\n if (extFileInstance.uploadStatus === \"aborted\"\n && !extFileInstance.uploadMessage) {\n // TO-DO: ad localization for this message\n extFileInstance.uploadMessage = \"Upload aborted by user\";\n //extFileInstance.uploadStatus = \"error\";\n }\n return ExtFileInstance.toExtFile(extFileInstance);\n });\n};\n/**\n *\n * @param extFileInstance\n * @param extFileobj\n */\nvar setNextUploadStatus = function (extFileInstance, extFileobj) {\n var prevStatus = extFileInstance.uploadStatus;\n var nextStstaus = extFileobj.uploadStatus;\n //console.log(\"setNextUploadStatus\", prevStatus, nextStstaus);\n //console.log(\"setNextUploadStatus\", extFileInstance.uploadMessage, extFileobj.uploadMessage);\n if (prevStatus === \"preparing\" &&\n [\"aborted\", undefined].includes(nextStstaus)) {\n extFileInstance.uploadStatus = undefined;\n extFileInstance.uploadMessage = extFileobj.uploadMessage;\n }\n else if (prevStatus === \"uploading\" &&\n [\"aborted\", undefined].includes(nextStstaus)) {\n extFileInstance.uploadStatus = \"aborted\";\n extFileInstance.uploadMessage = extFileobj.uploadMessage;\n }\n};\n\n/**\n * The full list of named Colors provided by\n * https://htmlcolorcodes.com/es/nombres-de-los-colores/\n */\nvar NAMED_COLORS = {\n //RED\n indianred: \"#CD5C5C\",\n lightcoral: \"#F08080\",\n salmon: \"#FA8072\",\n darksalmon: \"#E9967A\",\n lightsalmon: \"#FFA07A\",\n crimson: \"#DC143C\",\n red: \"#FF0000\",\n firebrick: \"#B22222\",\n darkred: \"#8B0000\",\n //PINK\n pink: \"#FFC0CB\",\n lightpink: \"#FFB6C1\",\n hotpink: \"#FF69B4\",\n deeppink: \"#FF1493\",\n mediumvioletred: \"#C71585\",\n palevioletred: \"#DB7093\",\n //ORANGE\n //\"lightsalmon: \"#FFA07A\",\n coral: \"#FF7F50\",\n tomato: \"#FF6347\",\n orangered: \"#FF4500\",\n darkorange: \"#FF8C00\",\n orange: \"#FFA500\",\n //YELLOW\n gold: \"#FFD700\",\n yellow: \"#FFFF00\",\n lightyellow: \"#FFFFE0\",\n lemonchiffon: \"#FFFACD\",\n lightgoldenrodyellow: \"#FAFAD2\",\n papayawhip: \"#FFEFD5\",\n moccasin: \"#FFE4B5\",\n peachpuff: \"#FFDAB9\",\n palegoldenrod: \"#EEE8AA\",\n khaki: \"#F0E68C\",\n darkkhaki: \"#BDB76B\",\n //PURPLE\n lavender: \"#E6E6FA\",\n thistle: \"#D8BFD8\",\n plum: \"#DDA0DD\",\n violet: \"#EE82EE\",\n orchid: \"#DA70D6\",\n fuchsia: \"#FF00FF\",\n magenta: \"#FF00FF\",\n mediumorchid: \"#BA55D3\",\n mediumpurple: \"#9370DB\",\n rebeccapurple: \"#663399\",\n blueviolet: \"#8A2BE2\",\n darkviolet: \"#9400D3\",\n darkorchid: \"#9932CC\",\n darkmagenta: \"#8B008B\",\n purple: \"#800080\",\n indigo: \"#4B0082\",\n slateblue: \"#6A5ACD\",\n darkslateblue: \"#483D8B\",\n mediumslateblue: \"#7B68EE\",\n //GREEN\n greenyellow: \"#ADFF2F\",\n chartreuse: \"#7FFF00\",\n lawngreen: \"#7CFC00\",\n lime: \"#00FF00\",\n limegreen: \"#32CD32\",\n palegreen: \"#98FB98\",\n lightgreen: \"#90EE90\",\n mediumspringgreen: \"#00FA9A\",\n springgreen: \"#00FF7F\",\n mediumseagreen: \"#3CB371\",\n seagreen: \"#2E8B57\",\n forestgreen: \"#228B22\",\n green: \"#008000\",\n darkgreen: \"#006400\",\n yellowgreen: \"#9ACD32\",\n olivedrab: \"#6B8E23\",\n olive: \"#808000\",\n darkolivegreen: \"#556B2F\",\n mediumaquamarine: \"#66CDAA\",\n darkseagreen: \"#8FBC8B\",\n lightseagreen: \"#20B2AA\",\n darkcyan: \"#008B8B\",\n teal: \"#008080\",\n //BLUE\n aqua: \"#00FFFF\",\n cyan: \"#00FFFF\",\n lightcyan: \"#E0FFFF\",\n paleturquoise: \"#AFEEEE\",\n aquamarine: \"#7FFFD4\",\n turquoise: \"#40E0D0\",\n mediumturquoise: \"#48D1CC\",\n darkturquoise: \"#00CED1\",\n cadetblue: \"#5F9EA0\",\n steelblue: \"#4682B4\",\n lightsteelblue: \"#B0C4DE\",\n powderblue: \"#B0E0E6\",\n lightblue: \"#ADD8E6\",\n skyblue: \"#87CEEB\",\n lightskyblue: \"#87CEFA\",\n deepskyblue: \"#00BFFF\",\n dodgerblue: \"#1E90FF\",\n cornflowerblue: \"#6495ED\",\n //\"mediumslateblue: \"#7B68EE\",\n royalblue: \"#4169E1\",\n blue: \"#0000FF\",\n mediumblue: \"#0000CD\",\n darkblue: \"#00008B\",\n navy: \"#000080\",\n midnightblue: \"#191970\",\n //BROWN\n cornsilk: \"#FFF8DC\",\n blanchedalmond: \"#FFEBCD\",\n bisque: \"#FFE4C4\",\n navajowhite: \"#FFDEAD\",\n wheat: \"#F5DEB3\",\n burlywood: \"#DEB887\",\n tan: \"#D2B48C\",\n rosybrown: \"#BC8F8F\",\n sandybrown: \"#F4A460\",\n goldenrod: \"#DAA520\",\n darkgoldenrod: \"#B8860B\",\n peru: \"#CD853F\",\n chocolate: \"#D2691E\",\n saddlebrown: \"#8B4513\",\n sienna: \"#A0522D\",\n brown: \"#A52A2A\",\n maroon: \"#800000\",\n //WHITE\n white: \"#FFFFFF\",\n snow: \"#FFFAFA\",\n honeydew: \"#F0FFF0\",\n mintcream: \"#F5FFFA\",\n azure: \"#F0FFFF\",\n aliceblue: \"#F0F8FF\",\n ghostwhite: \"#F8F8FF\",\n whitesmoke: \"#F5F5F5\",\n seashell: \"#FFF5EE\",\n beige: \"#F5F5DC\",\n oldlace: \"#FDF5E6\",\n floralwhite: \"#FFFAF0\",\n ivory: \"#FFFFF0\",\n antiquewhite: \"#FAEBD7\",\n linen: \"#FAF0E6\",\n lavenderblush: \"#FFF0F5\",\n mistyrose: \"#FFE4E1\",\n //GREY\n gainsboro: \"#DCDCDC\",\n lightgray: \"#D3D3D3\",\n silver: \"#C0C0C0\",\n darkgray: \"#A9A9A9\",\n gray: \"#808080\",\n dimgray: \"#696969\",\n lightslategray: \"#778899\",\n slategray: \"#708090\",\n darkslategray: \"#2F4F4F\",\n black: \"#000000\"\n};\n\n/**\n * Make the color into a darker color\n * @param colorInput\n * @returns the darked color in\n */\nvar darkerColor = function (colorInput, percentage) {\n if (percentage === void 0) { percentage = 25; }\n var darkedColor = \"\";\n var reduce = (100 - percentage) / 100;\n var component1 = 0;\n var component2 = 0;\n var component3 = 0;\n if (isHexColor(colourNameToHex(colorInput))) {\n component1 = hexTodec(colorInput.charAt(1)) * 16 + hexTodec(colorInput.charAt(2));\n component2 = hexTodec(colorInput.charAt(3)) * 16 + hexTodec(colorInput.charAt(4));\n component3 = hexTodec(colorInput.charAt(5)) * 16 + hexTodec(colorInput.charAt(6));\n darkedColor = \"rgb(\".concat(component1 * reduce, \", \").concat(component2 * reduce, \",\").concat(component3 * reduce, \")\");\n }\n else {\n if (colorInput.includes(\"rgba\")) {\n var slicer = colorInput.replace(\"rgba(\", \"\");\n var components = slicer.split(\",\");\n darkedColor = \"rgb(\".concat(parseInt(components[0], 10) * reduce, \", \").concat(parseInt(components[1], 10) * reduce, \",\").concat(parseInt(components[2], 10) * reduce, \")\");\n //return darkedColor;\n }\n else if (colorInput.includes(\"rgb\")) {\n var slicer = colorInput.replace(\"rgb(\", \"\");\n var components = slicer.split(\",\");\n darkedColor = \"rgb(\".concat(parseInt(components[0], 10) * reduce, \", \").concat(parseInt(components[1], 10) * reduce, \",\").concat(parseInt(components[2], 10) * reduce, \")\");\n // return darkedColor;\n }\n }\n return darkedColor;\n};\n/**\n * In order to managae rgba() we convert hex colors into rgba()\n * If the given color is already a rgb() color, it can add the percentage to convert it into rgba()\n *\n *\n * @param colorInput color in hex or in rgb\n * @param perc percentage for RGBA() color\n * @returns the rgba representation of a hex color\n */\nvar hexColorToRGB = function (colorInput, perc, defaultColor) {\n if (perc === void 0) { perc = 0; }\n var resultDefault = defaultColor ? defaultColor : \"rgba(255, 255, 255, 0.6)\";\n if (!colorInput) {\n return resultDefault;\n }\n //work only in uppercase\n var color = colorInput.toUpperCase();\n // is already a rgba color\n if (color.includes(\"RGBA\")) {\n return color;\n }\n //return rbg => rgba\n if (color.includes(\"RGB\")) {\n return color.replace('RGB', \"rgba\").replace(')', \", \".concat(perc, \")\"));\n }\n // if is a hex color or named color\n if (!isHexColor(colourNameToHex(color))) {\n return resultDefault;\n }\n var resultOk = \"\";\n //let strVar: string = \"\";\n var component1 = 0;\n var component2 = 0;\n var component3 = 0;\n //If passed all validations, proceed to transform\n component1 = hexTodec(color.charAt(1)) * 16 + hexTodec(color.charAt(2));\n component2 = hexTodec(color.charAt(3)) * 16 + hexTodec(color.charAt(4));\n component3 = hexTodec(color.charAt(5)) * 16 + hexTodec(color.charAt(6));\n resultOk = \"rgba(\".concat(component1, \", \").concat(component2, \",\").concat(component3, \" , \").concat(perc, \")\");\n return resultOk;\n};\n/**\n * Validates wheteher the color is hexadecimal css color\n * Example: #FF56AC\n *\n *\n * @param colorInput the color inpt to test\n * @returns true if the inputColor is a hexadecimal css color\n */\nvar isHexColor = function (colorInput) {\n // if first element is no '#' return default background color\n if (colorInput.charAt(0) !== '#') {\n return false;\n }\n // if color lenght is not exactly 7 return default\n if (colorInput.length !== 7) {\n return false;\n }\n // if one of the letters is not included in hex array return default\n for (var i = 1; i < colorInput.length; i++) {\n if (!hexArray.includes(colorInput.charAt(i))) {\n return false;\n }\n }\n return true;\n};\n/**\n * Converts a named color into hexadecimal color\n * from a list of well known namd colors if found.\n * When not given returns a \"\"\n * When not found in the list, returns the same value given\n * @param colour the named color\n * @returns The hex representation of the color or \"\" or the same color\n */\nfunction colourNameToHex(colour) {\n /**\n * When not given\n */\n if (!colour) {\n return \"\";\n }\n /**\n * when named color is found\n */\n if (NAMED_COLORS[colour.toLocaleLowerCase()] !== undefined) {\n return NAMED_COLORS[colour.toLocaleLowerCase()];\n }\n /**\n * When the named color was not found\n */\n return colour;\n}\n/**\n * hexArray & decArray\n *\n * arrays of numbers used to convert hexadecimal numbers into decimal and viceversa\n */\nvar hexArray = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'];\nvar decArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];\n/**\n * Converts hex number in string representation to decimal number\n *\n *\n * @param letter the string hex number\n * @returns a decimal number\n */\nvar hexTodec = function (letter) {\n if (hexArray.includes(letter)) {\n return decArray[hexArray.indexOf(letter)];\n }\n else {\n return 0;\n }\n};\n/**\n * Asure a base color. When not given or when given an incorrect color format\n * default color is this kind of grey #5d6475\n *\n * @param color param color given by user\n * @returns returns the same color\n */\nvar asureColor = function (color) {\n if (color !== undefined && color !== \"\") {\n return color;\n }\n else {\n return DEFAULT_FONT_COLOR;\n }\n};\n/**\n * Asure a base color. When not given or when given an incorrect color format\n * default color is this kind of grey #5d6475\n *\n * @param color param color given by user\n * @returns returns the same color\n */\nvar completeAsureColor = function (color, perc) {\n if (perc === void 0) { perc = 1; }\n return hexColorToRGB(asureColor(colourNameToHex(color)), perc);\n};\nvar DEFAULT_FONT_COLOR = \"#646c7f\";\n\nvar extFileReconcilation = function (dropzoneId, extFileIncomming) {\n var result = [];\n var arrOfExtFiles = ExtFileManager.getExtFileInstanceList(dropzoneId);\n // continue only if arrOfExtFiles exists\n if (arrOfExtFiles) {\n //different sizes means there was deleted files\n //also can be new files to be uploaded\n //needed an extra flag to allow add files in the middle of uploading process\n // if new files are added, they are added to the Manager\n // outside they were already added to the UI\n // inside Dropzone, will be needed a .next() method for manager\n // 1st allow deleted files and ignore new ones\n // reduce the arrOfExtFileInstances array\n // parecido a listas ligadas, iterar hasta encontrar null XD\n var incommingTemp = __spreadArray([], extFileIncomming, true);\n incommingTemp = incommingTemp.filter(function (F) { return (arrOfExtFiles === null || arrOfExtFiles === void 0 ? void 0 : arrOfExtFiles.findIndex(function (I) { return I.id === F.id; })) === -1; });\n //console.log(\"reconciliation incommingTemp\", incommingTemp);\n //different sizes not allowed\n if (arrOfExtFiles.length !== extFileIncomming.length || extFileIncomming.length === 0) {\n return undefined;\n }\n for (var i = 0; i < arrOfExtFiles.length; i++) {\n if ((extFileIncomming[i].uploadStatus === undefined)\n &&\n (arrOfExtFiles[i].uploadStatus === \"preparing\")) {\n //console.log(\"useDropzoneFileListUpdater onCancel i\", i);\n arrOfExtFiles[i].uploadStatus = undefined;\n }\n }\n }\n return result;\n};\n\n/**\n * Merge props that come form user and those ones that are by default\n * if incommingProps is null this returns the default props value\n *\n * @param incommingProps prop that comes from props attributoo of a React Node\n * @param defaultProps default prop defined for that React Node\n * @returns merged props\n */\nfunction mergeProps(incommingProps, defaultProps) {\n //console.log(\"incommingProps\",incommingProps);\n if (!incommingProps) {\n return defaultProps;\n }\n else {\n return __assign$1(__assign$1({}, defaultProps), incommingProps);\n }\n}\n\nvar InputHidden = function (props) {\n var onChange = props.onChange, inputRef = props.inputRef, accept = props.accept, multiple = props.multiple;\n /* function handleClick(\n evt: React.MouseEvent\n ): void {\n handleClickUtil(evt);\n } */\n return (React.createElement(React.Fragment, null,\n React.createElement(\"input\", { \"aria-label\": \"fui-hidden-input\", style: { display: \"none\" }, ref: inputRef, onChange: onChange, type: \"file\", accept: accept, multiple: multiple })));\n};\n\nvar defaultDrozoneProps = {\n clickable: true,\n behaviour: \"add\",\n disabled: false,\n dropOnLayer: true,\n uploadConfig: {},\n actionButtons: {},\n header: true,\n footer: true,\n value: [],\n //borderRadius: \"8px\"\n};\nvar DEFAULT_BORDER_RADIUS = \"8px\";\n/*\nexport interface AdvancedConfigItem {\n style?: React.CSSProperties;\n className?: string;\n}\n\nexport type DropzoneAdvancedConfig = {\n dropzoneLayer: any;\n dropzoneContainer: any;\n dropzoneLabel: any;\n}\n */\n\n___$insertStyle(\".files-ui-dropzone-children-container {\\n width: 100%;\\n flex-grow: 1;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n gap: 8px;\\n flex-wrap: wrap;\\n padding: 5px 0;\\n}\");\n\nvar DropzoneChildren = function (props) {\n var children = props.children, label = props.label, localization = props.localization;\n var isEmptyArray = Array.isArray(children) && children.length === 0;\n //console.log(\"isEmptyArray\", isEmptyArray,children);\n var DropzoneLocalizer = DropzoneLocalizerSelector(localization);\n //children will be always consider as more important\n if (children && !isEmptyArray) {\n return (React.createElement(\"div\", { className: \"files-ui-dropzone-children-container\" }, children));\n }\n else\n return (React.createElement(\"div\", { className: \"files-ui-dropzone-children-container\" },\n React.createElement(\"label\", null,\n \" \",\n label || DropzoneLocalizer.defaultLabel)));\n};\n\n/**\n * Performs stopPropagation and preventDefault functions on an drop event instance\n * @param evt drag event handler object\n */\nvar handleDropUtil = function (evt) {\n evt.stopPropagation();\n evt.preventDefault();\n};\n/**\n * Performs stopPropagation and preventDefault functions on an drop event instance\n * and also specifies that the drop effect is link\n * @param evt drag event handler object\n */\nvar handleDragUtil = function (evt) {\n evt.dataTransfer.dropEffect = \"link\";\n handleDropUtil(evt);\n};\n\n/**\n * Performs stopPropagation and preventDefault functions on an click event instance\n * @param evt click event handler object\n */\nfunction handleClickUtil(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n}\n/**\n * Click programatically an input element.\n * If the input element is null, nothing will happend\n * @param input the input element target to make a click\n */\nvar handleClickInput = function (input) {\n if (!input)\n return;\n input.click();\n};\n\nvar asureRippleColor = function (color) {\n return completeAsureColor(color, 0.4);\n};\nfunction createFuiRippleFromDiv(fuiContainerAbs, fuiContainerRel, color) {\n if (!fuiContainerRel || !fuiContainerAbs)\n return;\n fuiContainerAbs.style.display = \"block\";\n //removeRippleIfExist(fuiContainerRel, \"dui-ripple\");\n // creating the span circle ripple\n var circle = document.createElement(\"span\");\n //for searching\n circle.id = \"filesui-ripple\";\n //for styles\n circle.className = \"ripple\";\n // calculates the diameter\n var diameter = Math.max(fuiContainerRel.clientWidth, fuiContainerRel.clientHeight);\n //const rippleCircleRadius: number = diameter / 2;\n //console.log(\"w,h\", fuiContainerRel.clientWidth, fuiContainerRel.clientHeight);\n circle.style.width = circle.style.height = \"\".concat(diameter, \"px\");\n circle.style.backgroundColor = asureRippleColor(color);\n fuiContainerRel.appendChild(circle);\n //remove trash\n setTimeout(function () {\n fuiContainerAbs.style.display = \"none\";\n circle === null || circle === void 0 ? void 0 : circle.remove();\n }, 501);\n}\nfunction createRippleButton(event, variant, color) {\n var buttonAnchorDiv = event.currentTarget;\n var circle = document.createElement(\"span\");\n var diameter = Math.max(buttonAnchorDiv.clientWidth, buttonAnchorDiv.clientHeight);\n //const radius = diameter / 2;\n circle.style.width = circle.style.height = \"\".concat(diameter, \"px\");\n /* circle.style.left = `${event.clientX - radius\n }px`;\n circle.style.top = `${event.clientY - radius\n }px`; */\n circle.classList.add(\"ripple\");\n if (variant !== \"contained\") {\n circle.style.backgroundColor = asureRippleColor(color);\n }\n else {\n circle.style.backgroundColor = hexColorToRGB(\"#ffffff\", 0.4);\n }\n buttonAnchorDiv.appendChild(circle);\n setTimeout(function () {\n circle === null || circle === void 0 ? void 0 : circle.remove();\n }, 501);\n}\n\n___$insertStyle(\".filesui-disabled-root {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.38);\\n}\");\n\nvar DropzoneDisabledLayer = function (props) {\n var open = props.open, className = props.className, style = props.style;\n function handleClick(evt) {\n handleClickUtil(evt);\n }\n var handleDrag = function (evt) {\n handleDragUtil(evt);\n };\n var handleDrop = function (evt) { return __awaiter$1(void 0, void 0, void 0, function () {\n return __generator$1(this, function (_a) {\n handleDropUtil(evt);\n return [2 /*return*/];\n });\n }); };\n var finalDisabledLayerClassName = addClassName(\"filesui-disabled-root\", className);\n if (open) {\n return (React.createElement(\"div\", { style: style, className: finalDisabledLayerClassName, onDrop: handleDrop, onDragOver: handleDrag, onClick: handleClick }));\n }\n else {\n return React.createElement(React.Fragment, null);\n }\n};\n\n___$insertStyle(\"@import url(https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700,900);\\n.fui-dropzone-root {\\n width: 100%;\\n min-width: 150px;\\n min-height: 180px;\\n position: relative;\\n display: flex;\\n flex-direction: column;\\n gap: 0 8px;\\n text-rendering: optimizeLegibility;\\n font-size: 1.5em;\\n font-family: \\\"Poppins\\\", sans-serif;\\n text-align: center;\\n font-weight: 400;\\n letter-spacing: 0.02857em;\\n box-sizing: border-box;\\n word-break: normal;\\n /* &.fui-dropzone-border {\\n box-sizing: border-box;\\n\\n border: 1px dashed #0c2358;\\n border-radius: 10px;\\n &.fui-hide-border {\\n border: none;\\n }\\n } */\\n}\\n@media (max-width: 600px) {\\n .fui-dropzone-root {\\n font-size: 1.3em;\\n }\\n}\\n.fui-dropzone-root.clickable {\\n cursor: pointer;\\n}\\n\\n.files-ui-header {\\n min-height: 23px;\\n /* height: 22px;\\n position: absolute; \\n top: 0;\\n */\\n cursor: text;\\n display: flex;\\n width: 100%;\\n flex-direction: row;\\n align-items: center;\\n justify-content: flex-end;\\n font-family: inherit;\\n font-size: 1rem;\\n}\\n@media (max-width: 960px) {\\n .files-ui-header {\\n font-size: 0.8rem;\\n }\\n}\\n\\n.files-ui-footer {\\n /* border-bottom-left-radius: 8px;\\n border-bottom-right-radius: 8px; */\\n box-sizing: border-box;\\n cursor: text;\\n /* height: 23px;\\n position: absolute;\\n bottom: 0;\\n left: 0; */\\n width: 100%;\\n /* display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center; */\\n font-family: inherit;\\n padding-left: 10px;\\n font-size: 1rem;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: -webkit-box;\\n -webkit-line-clamp: 1; /* number of lines to show */\\n line-clamp: 1;\\n -webkit-box-orient: vertical;\\n text-align: left;\\n}\\n@media (max-width: 960px) {\\n .files-ui-footer {\\n padding-left: 1px;\\n font-size: 0.9rem;\\n }\\n}\");\n\n___$insertStyle(\".filesui-base-ripple-absolute {\\n position: absolute;\\n display: none;\\n width: 100%;\\n height: 100%;\\n top: 0;\\n left: 0;\\n box-sizing: border-box;\\n border-radius: 8px;\\n overflow: hidden;\\n}\\n.filesui-base-ripple-absolute .filesui-base-ripple-relative {\\n width: 100%;\\n height: 100%;\\n position: relative;\\n overflow: hidden;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n box-sizing: border-box;\\n}\\n.filesui-base-ripple-absolute .filesui-base-ripple-relative span.ripple {\\n position: absolute;\\n border-radius: 50%;\\n transform: scale(0);\\n animation: ripple 500ms linear;\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n@keyframes ripple {\\n to {\\n transform: scale(4);\\n opacity: 0;\\n }\\n}\");\n\n/**\n * Added support for literals % and px\n * @param sizeStr\n * @returns\n */\nvar parseSize = function (sizeStr) {\n if (typeof sizeStr === \"number\") {\n return sizeStr;\n }\n switch (sizeStr) {\n case \"micro\":\n return 8;\n case \"small\":\n return 15;\n case \"semi-medium\":\n return 18;\n case \"medium\":\n return 25;\n case \"large\":\n return 28;\n case \"extra-large\":\n return 32;\n default:\n return 24;\n }\n};\n\nvar Cancel = function (props) {\n var size = props.size, color = props.color, colorFill = props.colorFill, onClick = props.onClick, style = props.style, className = props.className;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n return (React.createElement(\"svg\", { style: onClick ? __assign$1({}, __assign$1({ cursor: \"pointer\" }, finalStyle)) : finalStyle, onClick: function (e) {\n handleClickUtil(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n }, xmlns: \"http://www.w3.org/2000/svg\", height: \"\".concat(finalSize, \"px\"), viewBox: \"0 0 24 24\", width: \"\".concat(finalSize, \"px\"), fill: color ? color : \"#000000\", className: className || \"\" },\n React.createElement(\"path\", { d: \"M0 0h24v24H0V0z\", fill: \"none\", opacity: \".87\" }),\n React.createElement(\"path\", { d: \"M12 4c-4.41 0-8 3.59-8 8s3.59 8 8 8 8-3.59 8-8-3.59-8-8-8zm5 11.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\", fill: colorFill ? colorFill : \"none\", opacity: \".5\" }),\n React.createElement(\"path\", { d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3.59-13L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41z\" })));\n};\n\nvar CheckCircle = function (props) {\n var size = props.size, color = props.color, colorFill = props.colorFill, onClick = props.onClick, style = props.style, className = props.className;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n return (React__default.createElement(\"svg\", { className: className || \"\", style: onClick ? __assign$1({}, __assign$1({ cursor: \"pointer\" }, finalStyle)) : finalStyle, onClick: function () { return onClick === null || onClick === void 0 ? void 0 : onClick(); }, xmlns: \"http://www.w3.org/2000/svg\", height: \"\".concat(finalSize, \"px\"), viewBox: \"0 0 24 24\", width: \"\".concat(finalSize, \"px\"), fill: color ? color : \"#000000\" },\n React__default.createElement(\"path\", { d: \"M0 0h24v24H0z\", fill: colorFill ? colorFill : \"none\" }),\n React__default.createElement(\"path\", { d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\" })));\n};\n\nvar Clean = function (props) {\n var size = props.size, color = props.color, \n //colorFill,\n onClick = props.onClick, style = props.style, className = props.className;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n return (React__default.createElement(\"svg\", { className: className || \"\", style: onClick ? __assign$1({}, __assign$1({ cursor: \"pointer\" }, finalStyle)) : finalStyle, onClick: function () { return onClick === null || onClick === void 0 ? void 0 : onClick(); }, xmlns: \"http://www.w3.org/2000/svg\", enableBackground: \"new 0 0 24 24\", height: finalSize ? \"\".concat(finalSize, \"px\") : \"24px\", viewBox: \"0 0 24 24\", width: finalSize ? \"\".concat(finalSize, \"px\") : \"24px\", fill: color ? color : \"#000000\" },\n React__default.createElement(\"g\", null,\n React__default.createElement(\"rect\", { fill: \"none\", height: finalSize || \"24\", width: finalSize || \"24\" })),\n React__default.createElement(\"g\", null,\n React__default.createElement(\"g\", null,\n React__default.createElement(\"path\", { d: \"M16,11h-1V3c0-1.1-0.9-2-2-2h-2C9.9,1,9,1.9,9,3v8H8c-2.76,0-5,2.24-5,5v7h18v-7C21,13.24,18.76,11,16,11z M11,3h2v8h-2V3 z M19,21h-2v-3c0-0.55-0.45-1-1-1s-1,0.45-1,1v3h-2v-3c0-0.55-0.45-1-1-1s-1,0.45-1,1v3H9v-3c0-0.55-0.45-1-1-1s-1,0.45-1,1v3H5 v-5c0-1.65,1.35-3,3-3h8c1.65,0,3,1.35,3,3V21z\" })))));\n};\n\nvar Clear = function (props) {\n var size = props.size, color = props.color, colorFill = props.colorFill, onClick = props.onClick, style = props.style, className = props.className;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n return (React.createElement(\"svg\", { className: className || \"\", style: onClick ? __assign$1({ cursor: \"pointer\" }, finalStyle) : finalStyle, xmlns: \"http://www.w3.org/2000/svg\", height: \"\".concat(finalSize, \"px\"), viewBox: \"0 0 24 24\", width: \"\".concat(finalSize, \"px\"), fill: color ? color : \"#000000\", onClick: function (e) {\n handleClickUtil(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n } },\n React.createElement(\"path\", { d: \"M0 0h24v24H0V0z\", fill: colorFill || \"none\" }),\n React.createElement(\"path\", { d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\" })));\n};\n\nvar CloudDone = function (props) {\n var size = props.size, color = props.color, colorFill = props.colorFill, onClick = props.onClick, style = props.style, className = props.className;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n return (React.createElement(\"svg\", { className: className || \"\", style: onClick ? __assign$1({ cursor: \"pointer\" }, finalStyle) : finalStyle, enableBackground: \"new 0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", height: \"\".concat(finalSize, \"px\"), viewBox: \"0 0 24 24\", width: \"\".concat(finalSize, \"px\"), fill: color || \"#000000\", onClick: function (e) {\n handleClickUtil(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n } },\n React.createElement(\"path\", { d: \"M0 0h24v24H0V0z\", fill: colorFill || \"none\" }),\n React.createElement(\"path\", { d: \"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4 0-2.05 1.53-3.76 3.56-3.97l1.07-.11.5-.95C8.08 7.14 9.94 6 12 6c2.62 0 4.88 1.86 5.39 4.43l.3 1.5 1.53.11c1.56.1 2.78 1.41 2.78 2.96 0 1.65-1.35 3-3 3zm-9-3.82l-2.09-2.09L6.5 13.5 10 17l6.01-6.01-1.41-1.41z\" })));\n};\n\nvar DoDisturb = function (props) {\n var size = props.size, color = props.color, \n //colorFill,\n onClick = props.onClick, style = props.style, className = props.className;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n return (React__default.createElement(\"svg\", { className: className || \"\", style: onClick ? __assign$1({}, __assign$1({ cursor: \"pointer\" }, finalStyle)) : finalStyle, onClick: function () { return onClick === null || onClick === void 0 ? void 0 : onClick(); }, xmlns: \"http://www.w3.org/2000/svg\", height: finalSize ? \"\".concat(finalSize, \"px\") : \"24px\", viewBox: \"0 0 24 24\", width: finalSize ? \"\".concat(finalSize, \"px\") : \"24px\", fill: color ? color : \"#000000\" },\n React__default.createElement(\"path\", { d: \"M0 0h24v24H0V0z\", fill: \"none\" }),\n React__default.createElement(\"path\", { d: \"M12 4c-4.41 0-8 3.59-8 8s3.59 8 8 8 8-3.59 8-8-3.59-8-8-8z\", opacity: \".4\" }),\n React__default.createElement(\"path\", { d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31C15.55 19.37 13.85 20 12 20zm6.31-3.1L7.1 5.69C8.45 4.63 10.15 4 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z\" })));\n};\n\nvar DownloadFile = function (props) {\n var size = props.size, color = props.color, colorFill = props.colorFill, onClick = props.onClick, style = props.style, className = props.className;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n return (React.createElement(\"svg\", { className: className || \"\", style: onClick ? __assign$1({ cursor: \"pointer\" }, finalStyle) : finalStyle, enableBackground: \"new 0 0 24 24\", xmlns: \"http://www.w3.org/2000/svg\", height: \"\".concat(finalSize, \"px\"), viewBox: \"0 0 24 24\", width: \"\".concat(finalSize, \"px\"), fill: color || \"#000000\", onClick: function (e) {\n handleClickUtil(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n } },\n React.createElement(\"g\", null,\n React.createElement(\"rect\", { fill: colorFill || \"none\", height: finalSize, width: finalSize })),\n React.createElement(\"g\", null,\n React.createElement(\"path\", { d: \"M18,15v3H6v-3H4v3c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2v-3H18z M17,11l-1.41-1.41L13,12.17V4h-2v8.17L8.41,9.59L7,11l5,5 L17,11z\" }))));\n};\n\nvar InfoDisney = function (props) {\n var size = props.size, color = props.color, \n //colorFill,\n onClick = props.onClick, style = props.style, className = props.className;\n var finalSize = parseSize(size) - 2;\n var finalStyle = style ? style : {};\n return (React.createElement(\"svg\", { \n //alt=\"\"\n className: className || \"\", style: onClick ? __assign$1({ cursor: \"pointer\" }, finalStyle) : finalStyle, \"aria-hidden\": \"true\", \"aria-label\": \"info\", fill: color || \"#000000\", role: \"img\", transform: \"\", version: \"1.1\", viewBox: \"0 0 36 36\", xmlns: \"http://www.w3.org/2000/svg\", height: \"\".concat(finalSize, \"px\"), width: \"\".concat(finalSize, \"px\"), onClick: function (e) {\n handleClickUtil(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n } },\n React.createElement(\"path\", { d: \"M22.378 0c2.412 0 3.618 1.642 3.618 3.523 0 2.349-2.095 4.522-4.822 4.522-2.284 0-3.616-1.35-3.553-3.582 0-1.877 1.586-4.462 4.757-4.462zM14.956 36c-1.904 0-3.299-1.174-1.967-6.343l2.185-9.166c0.38-1.465 0.443-2.054 0-2.054-0.571 0-3.040 1.012-4.504 2.011l-0.95-1.584c4.63-3.935 9.956-6.241 12.242-6.241 1.903 0 2.219 2.291 1.269 5.814l-2.504 9.634c-0.443 1.701-0.254 2.288 0.191 2.288 0.571 0 2.443-0.706 4.282-2.173l1.080 1.465c-4.504 4.585-9.423 6.349-11.324 6.349z\" })));\n};\n\nvar PlayIcon = function (props) {\n var size = props.size, color = props.color, colorFill = props.colorFill, onClick = props.onClick, style = props.style, className = props.className;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n return (React__default.createElement(\"svg\", { className: className || \"\", style: onClick ? __assign$1({ cursor: \"pointer\" }, finalStyle) : finalStyle, xmlns: \"http://www.w3.org/2000/svg\", height: \"\".concat(finalSize, \"px\"), viewBox: \"0 0 24 24\", width: \"\".concat(finalSize, \"px\"), fill: color ? color : \"#000000\", onClick: function (e) {\n handleClickUtil(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n } },\n React__default.createElement(\"path\", { d: \"M0 0h24v24H0V0z\", opacity: \".9\", fill: colorFill ? colorFill : \"none\" }),\n React__default.createElement(\"path\", { d: \"M8 5v14l11-7L8 5z\" })));\n};\n\nvar Upload = function (props) {\n var size = props.size, color = props.color, colorFill = props.colorFill, onClick = props.onClick, style = props.style, className = props.className;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n return (React__default.createElement(\"svg\", { style: onClick ? __assign$1({}, __assign$1({ cursor: \"pointer\" }, finalStyle)) : finalStyle, onClick: function () { return onClick === null || onClick === void 0 ? void 0 : onClick(); }, xmlns: \"http://www.w3.org/2000/svg\", enableBackground: \"new 0 0 24 24\", height: \"\".concat(finalSize, \"px\"), viewBox: \"0 0 24 24\", width: \"\".concat(finalSize, \"px\"), fill: color ? color : \"#000000\", className: className || \"\" },\n React__default.createElement(\"g\", null,\n React__default.createElement(\"rect\", { fill: colorFill || \"none\", height: size || \"24\", width: size || \"24\" })),\n React__default.createElement(\"g\", null,\n React__default.createElement(\"path\", { d: \"M18,15v3H6v-3H4v3c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2v-3H18z M7,9l1.41,1.41L11,7.83V16h2V7.83l2.59,2.58L17,9l-5-5L7,9z\" }))));\n};\n\nvar UploadError = function (props) {\n var size = props.size, color = props.color, colorFill = props.colorFill, onClick = props.onClick, style = props.style, className = props.className;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n return (React__default.createElement(\"svg\", { className: className || \"\", style: onClick ? __assign$1({}, __assign$1({ cursor: \"pointer\" }, finalStyle)) : finalStyle, onClick: function () { return onClick === null || onClick === void 0 ? void 0 : onClick(); }, xmlns: \"http://www.w3.org/2000/svg\", height: \"\".concat(finalSize, \"px\"), viewBox: \"0 0 24 24\", width: \"\".concat(finalSize, \"px\"), fill: color ? color : \"#000000\" },\n React__default.createElement(\"rect\", { fill: colorFill ? colorFill : \"none\", height: finalSize, width: finalSize }),\n React__default.createElement(\"path\", { d: \"M18,15.17V15h2v2.17L18,15.17z M15.41,12.59L17,11l-1.41-1.41L14,11.17L15.41,12.59z M13,10.17V4h-2v4.17L13,10.17z M21.19,21.19l-1.78-1.78L2.81,2.81L1.39,4.22l6.19,6.19L7,11l5,5l0.59-0.59L15.17,18H6v-3H4v3c0,1.1,0.9,2,2,2h11.17l2.61,2.61 L21.19,21.19z\" })));\n};\n\n___$insertStyle(\"@keyframes filesui-rotate-spin {\\n from {\\n transform: rotate(0deg);\\n }\\n to {\\n transform: rotate(360deg);\\n }\\n}\\n.filesui-rotate {\\n cursor: default;\\n}\\n\\n@media (prefers-reduced-motion: no-preference) {\\n .filesui-rotate {\\n animation: filesui-rotate-spin infinite 2s linear;\\n }\\n}\");\n\nvar UploadingProcess = function (props) {\n var size = props.size, color = props.color, \n //colorFill,\n onClick = props.onClick, style = props.style, className = props.className, spin = props.spin;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n var finalClassname = className || \"\";\n finalClassname += spin ? \"filesui-rotate\" : \"\";\n return (React__default.createElement(\"svg\", { className: finalClassname, style: onClick ? __assign$1({}, __assign$1({ cursor: \"pointer\" }, finalStyle)) : finalStyle, onClick: function () { return onClick === null || onClick === void 0 ? void 0 : onClick(); }, xmlns: \"http://www.w3.org/2000/svg\", height: finalSize ? \"\".concat(finalSize, \"px\") : \"24px\", viewBox: \"0 0 24 24\", width: finalSize ? \"\".concat(finalSize, \"px\") : \"24px\", fill: color ? color : \"#000000\" },\n React__default.createElement(\"path\", { d: \"M0 0h24v24H0V0z\", fill: \"none\" }),\n React__default.createElement(\"path\", { d: \"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z\" })));\n};\n\nvar Visibility = function (props) {\n var size = props.size, color = props.color, colorFill = props.colorFill, onClick = props.onClick, style = props.style, className = props.className;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n return (React__default.createElement(\"svg\", { className: className || \"\", style: onClick ? __assign$1({ cursor: \"pointer\" }, finalStyle) : finalStyle, xmlns: \"http://www.w3.org/2000/svg\", height: \"\".concat(finalSize, \"px\"), viewBox: \"0 0 24 24\", width: \"\".concat(finalSize, \"px\"), fill: color ? color : \"#000000\", onClick: function (e) {\n handleClickUtil(e);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n } },\n React__default.createElement(\"path\", { d: \"M0 0h24v24H0V0z\", fill: \"none\" }),\n React__default.createElement(\"path\", { d: \"M12 4c-4.41 0-8 3.59-8 8s3.59 8 8 8 8-3.59 8-8-3.59-8-8-8z\", \n //opacity=\".9\"\n fill: colorFill ? colorFill : \"none\" }),\n React__default.createElement(\"path\", { d: \"M12 4C7 4 2.73 7.11 1 11.5 2.73 15.89 7 19 12 19s9.27-3.11 11-7.5C21.27 7.11 17 4 12 4zm0 12.5c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\" })));\n};\n\nvar DropzoneHeader = function (props) {\n var maxFileSize = props.maxFileSize, numberOfValidFiles = props.numberOfValidFiles, onReset = props.onReset, onClean = props.onClean, maxFiles = props.maxFiles, onUploadStart = props.onUploadStart, isUploading = props.isUploading, urlPresent = props.urlPresent, localization = props.localization, borderRadius = props.borderRadius, style = props.style, _a = props.className, className = _a === void 0 ? \"\" : _a, resetStyles = props.resetStyles, color = props.color, _b = props.firstClassName, firstClassName = _b === void 0 ? \"\" : _b;\n var DropzoneHeaderLocalizer = DropzoneLocalizerSelector(localization).header;\n var handleClean = function () {\n onClean === null || onClean === void 0 ? void 0 : onClean();\n };\n var handleStartUploading = function () {\n onUploadStart === null || onUploadStart === void 0 ? void 0 : onUploadStart();\n };\n var makeHeader = function () {\n var result = [];\n if (onUploadStart && urlPresent && numberOfValidFiles) {\n if (isUploading) {\n result.push(React.createElement(UploadingProcess, { spin: true, color: color }));\n }\n else {\n result.push(React.createElement(React.Fragment, null,\n React.createElement(React.Fragment, null, DropzoneHeaderLocalizer.uploadFilesMessage),\n React.createElement(Upload, { color: color, onClick: handleStartUploading })));\n }\n result.push(React.createElement(React.Fragment, null,\n \",\",\n \"\\u00A0\"));\n }\n var maxFileSizeMessenger = DropzoneHeaderLocalizer.maxSizeMessage;\n var maxFileSizeFormatted = fileSizeFormater(maxFileSize);\n if (maxFileSizeFormatted) {\n result.push(maxFileSizeMessenger(maxFileSizeFormatted));\n result.push(React.createElement(React.Fragment, null,\n \",\",\n \"\\u00A0\"));\n }\n var validFileSizeMessenger = DropzoneHeaderLocalizer.validFilesMessage;\n if (maxFiles) {\n result.push(validFileSizeMessenger(numberOfValidFiles, maxFiles));\n result.push(React.createElement(React.Fragment, null,\n \",\",\n \"\\u00A0\"));\n }\n //clean not valid files on click\n if (onClean) {\n result.push(React.createElement(Clean, { color: color, onClick: handleClean, size: \"semi-medium\" }));\n }\n if (onReset) {\n result.push(React.createElement(Cancel, { color: color, onClick: function () { return onReset === null || onReset === void 0 ? void 0 : onReset(); } }));\n }\n return result;\n };\n function handleClick(evt) {\n evt.stopPropagation();\n }\n var finalClassName = resetStyles\n ? className\n : addClassName(\"files-ui-header\" + \" \" + firstClassName, className);\n var finalStyle = resetStyles\n ? style\n : __assign$1(__assign$1({}, style), { borderTopLeftRadius: borderRadius, borderTopRightRadius: borderRadius });\n //console.log(\"headerx resetStyles\", resetStyles);\n //console.log(\"headerx style\", style);\n //console.log(\"headerx finalStyle\", finalStyle);\n return (React.createElement(\"div\", { className: finalClassName, onClick: handleClick, style: finalStyle }, makeHeader().map(function (HeaderItem, index) { return (React.createElement(\"span\", { key: index, style: { display: \"flex\" } }, HeaderItem)); })));\n};\n\nvar DropzoneFooter = function (props) {\n var accept = props.accept, message = props.message, localization = props.localization, borderRadius = props.borderRadius, style = props.style, _a = props.className, className = _a === void 0 ? \"\" : _a, _b = props.resetStyles, resetStyles = _b === void 0 ? false : _b, _c = props.allowedTypesLabel, allowedTypesLabel = _c === void 0 ? true : _c, _d = props.customMessage, customMessage = _d === void 0 ? undefined : _d, _e = props.firstClassName, firstClassName = _e === void 0 ? \"\" : _e;\n var DropzoneFooterLocalizer = DropzoneLocalizerSelector(localization).footer;\n var accepCustomMessenger = DropzoneFooterLocalizer.acceptCustom;\n function handleClick(evt) {\n handleClickUtil(evt);\n }\n var finalClassName = resetStyles\n ? className\n : addClassName(\"files-ui-footer \".concat(firstClassName), className);\n var finalStyle = resetStyles\n ? style\n : __assign$1(__assign$1({}, style), { borderBotomLeftRadius: borderRadius, borderBotomRightRadius: borderRadius });\n //console.log(\"files-ui-footer\", finalStyle);\n return (React.createElement(\"div\", { className: finalClassName, onClick: handleClick, style: finalStyle }, customMessage ? (React.createElement(React.Fragment, null, customMessage)) : (React.createElement(React.Fragment, null, message\n ? message\n : !accept\n ? allowedTypesLabel\n ? DropzoneFooterLocalizer.acceptAll\n : undefined\n : accepCustomMessenger(accept)))));\n};\n\nvar DynamiCSS;\r\n(function (DynamiCSS) {\r\n /**\r\n * Inserts a stylesheet into the DOM.\r\n * When an error occurs returns an empty string\r\n * @param dynamicSheet a dyncamic sheet\r\n * @return the id of the stylesheet in string format\r\n */\r\n function insertStyleSheet(dynamicSheet) {\r\n var result_id = \"\";\r\n if (typeof window === \"undefined\") {\r\n return \"\";\r\n }\r\n if (typeof dynamicSheet === \"undefined\" || dynamicSheet === null) {\r\n return \"\";\r\n }\r\n //if already exists\r\n if (document.getElementById(dynamicSheet.id)) {\r\n return dynamicSheet.id;\r\n }\r\n result_id = dynamicSheet.id;\r\n var styleSheet = document.createElement(\"style\");\r\n styleSheet.id = result_id;\r\n styleSheet.setAttribute(\"type\", \"text/css\");\r\n var contetRaw = toRawStyleSheet(dynamicSheet.sheetRules || []) + dynamicSheet.raw || \"\";\r\n styleSheet.textContent = contetRaw;\r\n var appendResult = document.head.appendChild(styleSheet);\r\n if (!appendResult) {\r\n return \"\";\r\n }\r\n return result_id;\r\n }\r\n DynamiCSS.insertStyleSheet = insertStyleSheet;\r\n /**\r\n *\r\n * @param id the id of he style sheet\r\n * @param sheetRules the set of rules\r\n * @returns an empty string or the id\r\n */\r\n function editStyleSheet(id, sheetRules) {\r\n var result_id = \"\";\r\n if (typeof window === \"undefined\") {\r\n return \"\";\r\n }\r\n if (typeof id === \"undefined\" || id === null || sheetRules === null) {\r\n return \"\";\r\n }\r\n //if dont exists yet\r\n var styleSheet = document.getElementById(id);\r\n if (!styleSheet) {\r\n return \"\";\r\n }\r\n /* result_id = id;\r\n //var styleSheet: HTMLStyleElement = document.createElement(\"style\");\r\n styleSheet.id = result_id;\r\n styleSheet.setAttribute(\"type\", \"text/css\"); */\r\n styleSheet.textContent = toRawStyleSheet(sheetRules);\r\n return result_id;\r\n }\r\n DynamiCSS.editStyleSheet = editStyleSheet;\r\n /**\r\n * Given an id in string format, checks into the DOM whether there is a style\r\n * with the given id. If true, this function will remove the stylesheet and return the id.\r\n * If not present, will return an empty string\r\n * @param id the id of the stylesheet to remove if exists\r\n * @returns the id or an empty string\r\n */\r\n function removeStyleSheet(id) {\r\n var result_id = \"\";\r\n if (!id) {\r\n return \"\";\r\n }\r\n var htmlObject = document.getElementById(id);\r\n if (htmlObject) {\r\n document.head.removeChild(htmlObject);\r\n result_id = id;\r\n }\r\n return result_id;\r\n }\r\n DynamiCSS.removeStyleSheet = removeStyleSheet;\r\n /**\r\n * Given an id in string format, checks into the DOM whether there is a style\r\n * with the given id exists and returna boolean result\r\n * @param id the id of the stylesheet to check if exists\r\n * @returns true if the stylesheet was found\r\n */\r\n function existStyleSheet(id) {\r\n if (typeof id === \"undefined\" || id === null) {\r\n return false;\r\n }\r\n var htmlObject = document.getElementById(id);\r\n if (htmlObject) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n DynamiCSS.existStyleSheet = existStyleSheet;\r\n /**\r\n * Creates a stylesheet given a stylesheet\r\n * @param styleSheet astylesheet\r\n * @returns the new stylesheet object\r\n */\r\n function makeStyleSheet(styleSheet) {\r\n if (typeof styleSheet === \"undefined\" || styleSheet === null) {\r\n return null;\r\n }\r\n return styleSheet;\r\n }\r\n DynamiCSS.makeStyleSheet = makeStyleSheet;\r\n})(DynamiCSS || (DynamiCSS = {}));\r\n/**\r\n * Determines whether a character is upperCase or not\r\n * @param character a character\r\n * @returns true if str contains a string character\r\n */\r\nfunction isUpper(character) {\r\n if (!character)\r\n return false;\r\n return !/[a-z]/.test(character) && /[A-Z]/.test(character);\r\n}\r\n/**\r\n * Converts a rule with uppercase to a hyphen-lowercase version\r\n * @param ruleLabel the rule\r\n * @returns a hyphen-lowercase label\r\n */\r\nfunction fromUpperCaseToHyphen(ruleLabel) {\r\n var result = \"\";\r\n var charUpper = ' ';\r\n var isupper = false;\r\n for (var i = 0; i < ruleLabel.length; i++) {\r\n var currentChar = ruleLabel[i];\r\n if (isUpper(currentChar)) {\r\n charUpper = currentChar;\r\n isupper = true;\r\n break;\r\n }\r\n }\r\n //add hyphen\r\n if (isupper) {\r\n var parts = ruleLabel.split(charUpper);\r\n result = \"\".concat(parts[0], \"-\").concat(charUpper.toLowerCase()).concat(parts[1]);\r\n }\r\n else {\r\n result = ruleLabel;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Checks if the label contains the \":\" character\r\n * @param ruleLabel the rule\r\n * @returns true if the rule label corresponds to a pseudo class\r\n */\r\nfunction isPseudo(ruleLabel) {\r\n if (!ruleLabel)\r\n return false;\r\n return ruleLabel.includes(\":\");\r\n}\r\n/**\r\n *\r\n * @param className\r\n * @returns\r\n */\r\nfunction makeRawRuleLabel(className) {\r\n var result = \"\";\r\n var splitedClassName = className.trim().split(\" \");\r\n //is composed classname?\r\n if (splitedClassName.length > 1) {\r\n for (var i = 0; i < splitedClassName.length; i++) {\r\n result += \".\".concat(splitedClassName[i]);\r\n }\r\n result += \"{\\n\";\r\n }\r\n else {\r\n result += \".\".concat(className, \"{\\n\");\r\n }\r\n return result;\r\n}\r\n/**\r\n *\r\n * @param sheetRules\r\n * @returns\r\n */\r\nfunction toRawStyleSheet(sheetRules) {\r\n if (typeof sheetRules === \"undefined\" || sheetRules === null) {\r\n return \"\";\r\n }\r\n var rawStyleSheet = \"\";\r\n var nestedPseudos = [];\r\n for (var j = 0; j < sheetRules.length; j++) {\r\n var currentRule = sheetRules[j];\r\n var currnetRawRule = \"\";\r\n // currnetRawRule += `.${currentRule.className}{\\n`;\r\n currnetRawRule += makeRawRuleLabel(currentRule.className);\r\n //list of labels for rules\r\n var ruleskeys = Object.keys(currentRule.rules);\r\n for (var i = 0; i < ruleskeys.length; i++) {\r\n var currentKey = ruleskeys[i];\r\n var styleLabel = fromUpperCaseToHyphen(currentKey);\r\n //if a pseudo class found, separate it\r\n if (isPseudo(styleLabel)) {\r\n var pseudoClassName = currentRule.className + styleLabel;\r\n nestedPseudos.push({ className: pseudoClassName, rules: currentRule.rules[styleLabel] });\r\n }\r\n else {\r\n var styleRule = currentRule.rules[currentKey];\r\n currnetRawRule += \"\\t\".concat(styleLabel, \" : \").concat(styleRule, \";\\n\");\r\n }\r\n }\r\n currnetRawRule += \"}\\n\";\r\n rawStyleSheet += currnetRawRule;\r\n }\r\n //nested pseudos\r\n for (var p = 0; p < nestedPseudos.length; p++) {\r\n var currnetRawRule = \"\";\r\n var currentRule = nestedPseudos[p];\r\n var ruleskeys = Object.keys(currentRule.rules);\r\n currnetRawRule += \".\".concat(currentRule.className, \"{\\n\");\r\n for (var i = 0; i < ruleskeys.length; i++) {\r\n var currentKey = ruleskeys[i];\r\n var styleLabel = fromUpperCaseToHyphen(currentKey);\r\n var styleRule = currentRule.rules[currentKey];\r\n currnetRawRule += \"\\t\".concat(styleLabel, \" : \").concat(styleRule, \";\\n\");\r\n }\r\n currnetRawRule += \"}\\n\";\r\n rawStyleSheet += currnetRawRule;\r\n }\r\n return rawStyleSheet;\r\n}\n\nvar MaterialButtonStyleManager = /** @class */ (function () {\n function MaterialButtonStyleManager() {\n }\n /**\n * Increases the count and retrieves the next number\n * @returns the next static number in styles\n */\n MaterialButtonStyleManager.getNextId = function () {\n MaterialButtonStyleManager.nextButtonClassNameNumber++;\n //console.log(\"Id called \" + MaterialButtonStyleManager.nextButtonClassNameNumber);\n return MaterialButtonStyleManager.nextButtonClassNameNumber;\n };\n MaterialButtonStyleManager.nextButtonClassNameNumber = 0;\n /**\n *\n * @param idClassName identifyer\n * @param variant the variant of the button\n * @param disabled disabled prop\n * @param color the theme color\n * @param textColor the text color\n * @returns a DynamicSheet\n */\n MaterialButtonStyleManager.makeDynamicStyle = function (idClassName, variant, disabled, color, textColor, textDecoration) {\n //([{ variant, disabled, color, textColor, nextClassName }]);\n var styleSheet = {\n id: \"material-button-styles-\".concat(idClassName),\n // id: `dui-button-styles`,\n sheetRules: [\n {\n className: \"material-button.\".concat(variant, \"-\").concat(idClassName),\n //className: `dui-button.${variant}`,\n rules: {},\n },\n {\n className: \"material-button-root.\".concat(variant, \"-\").concat(idClassName),\n // className: `dui-button-root.${variant}`,\n rules: {},\n }\n ],\n };\n var sheetRules = styleSheet.sheetRules;\n if (!disabled) {\n switch (variant) {\n case \"contained\":\n sheetRules[0].rules = {\n color: asureColor(colourNameToHex(textColor)),\n backgroundColor: completeAsureColor(color),\n textDecoration: textDecoration\n };\n sheetRules[1].rules = {\n \":hover\": {\n backgroundColor: darkerColor(completeAsureColor(color)),\n },\n };\n break;\n case \"outlined\":\n sheetRules[0].rules = {\n border: \"1px solid \".concat(completeAsureColor(color, 0.5)),\n color: completeAsureColor(color),\n backgroundColor: \"transparent\",\n textDecoration: textDecoration\n };\n sheetRules[1].rules = {\n \":hover\": {\n border: \"1px solid \".concat(completeAsureColor(color, 1)),\n backgroundColor: completeAsureColor(color, 0.085),\n },\n };\n break;\n case \"text\":\n sheetRules[0].rules = {\n color: completeAsureColor(color),\n backgroundColor: \"transparent\",\n textDecoration: textDecoration\n };\n sheetRules[1].rules = {\n \":hover\": {\n backgroundColor: completeAsureColor(color, 0.085),\n },\n };\n break;\n }\n }\n styleSheet.sheetRules = sheetRules;\n return styleSheet;\n };\n return MaterialButtonStyleManager;\n}());\n\nvar useMaterialButtonClassName = function (variant, disabled, color, textColor, textDecoration, className, idClassName, resetStyles) {\n //console.log(\"useMaterialButtonClassName\", variant, disabled, color, textColor,\n // textDecoration, className, idClassName, resetStyles);\n var baseClassName = \"material-button-root material-button\";\n var _a = React.useState(\"\"), idStyles = _a[0], setIdStyles = _a[1];\n var _b = React.useState(false), styleInjected = _b[0], setStyleInjected = _b[1];\n var _c = React.useState(undefined), finalClassName = _c[0], setFinalClassName = _c[1];\n //const [nextClassName, setNextClassName] = React.useState(0);\n var handleInserStyle = function (idClassName, variant, disabled, color, textDecoration, textColor) {\n var finalClassName = baseClassName;\n var styleSheet = MaterialButtonStyleManager.makeDynamicStyle(idClassName, variant, disabled, color, textColor, textDecoration);\n var idStyle = \"\";\n if (!styleInjected) {\n idStyle = DynamiCSS.insertStyleSheet(styleSheet);\n //console.log(\"DynamiCSS insert\", idStyle);\n setIdStyles(idStyle);\n if (idStyle !== \"\")\n setStyleInjected(true);\n }\n else {\n //already a stylesheet associated\n DynamiCSS.editStyleSheet(idStyles, styleSheet.sheetRules || []);\n //console.log(\"DynamiCSS edit\", idStyle);\n }\n //let finalClassName = `material-button-root material-button `;\n if (!disabled) {\n //finalClassName += `${variant} ${variant}-${nextClassName}`;\n finalClassName += \" \".concat(variant, \" \").concat(variant, \"-\").concat(idClassName);\n }\n else {\n finalClassName += \" disabled\";\n }\n //classname to override styles in stylesheet\n if (className && className.length > 0) {\n finalClassName += \" \".concat(className);\n }\n //some text in className\n if (textDecoration) {\n var finalTextDecoration = textDecoration &&\n [\"uppercase\", \"capitalize\", \"lowercase\", \"none\"].includes(textDecoration === null || textDecoration === void 0 ? void 0 : textDecoration.toLowerCase()) ? textDecoration.toLowerCase() : \"uppercase\";\n finalClassName += \" \".concat(finalTextDecoration);\n }\n setFinalClassName(finalClassName);\n };\n React.useEffect(function () {\n if (!resetStyles)\n handleInserStyle(idClassName, variant, disabled, color, textDecoration, textColor);\n // eslint-disable-next-line\n }, [variant, disabled, color, textDecoration, textColor, className, idClassName, resetStyles]);\n var removeStyle = function (styleInjected, idStyles) {\n ////console.log(\"DynamiCSS removing\", styleInjected, idStyles);\n if (styleInjected) {\n /* const res = */ DynamiCSS.removeStyleSheet(idStyles);\n ////console.log(\"DynamiCSS removing res\", res);\n setStyleInjected(false);\n setIdStyles(\"\");\n }\n };\n React.useEffect(function () {\n return function () { return removeStyle(styleInjected, idStyles); };\n // eslint-disable-next-line\n }, [styleInjected, idStyles]);\n return finalClassName;\n};\n\n___$insertStyle(\"@import url(https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700,900);\\n.material-button-root {\\n border: 0;\\n cursor: pointer;\\n display: inline-flex;\\n outline: 0;\\n position: relative;\\n align-items: center;\\n vertical-align: middle;\\n justify-content: center;\\n text-decoration: none;\\n text-transform: none;\\n color: white;\\n}\\n\\n.material-button {\\n transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\\n overflow: hidden;\\n min-width: 64px;\\n box-sizing: border-box;\\n border-radius: 4px;\\n font-family: \\\"Poppins\\\", sans-serif;\\n font-size: 0.875rem;\\n font-weight: 400;\\n line-height: 1.75;\\n letter-spacing: 0.02857em;\\n}\\n\\n.material-button.uppercase {\\n text-transform: uppercase;\\n}\\n\\n.material-button.lowercase {\\n text-transform: lowercase;\\n}\\n\\n.material-button.capitalize {\\n text-transform: capitalize;\\n}\\n\\n.material-button.contained {\\n padding: 6px 16px;\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.material-button.outlined {\\n padding: 5px 15px;\\n}\\n\\n.material-button.text {\\n padding: 5px 15px;\\n}\\n\\n.material-button-root.contained:hover {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n\\n.material-button span.material-button-label {\\n width: 100%;\\n display: inherit;\\n align-items: inherit;\\n justify-content: inherit;\\n}\\n\\nspan.ripple {\\n position: absolute;\\n border-radius: 50%;\\n transform: scale(0);\\n animation: ripple 500ms linear;\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n\\n@keyframes ripple {\\n to {\\n transform: scale(4);\\n opacity: 0;\\n }\\n}\\n.material-button-root.disabled {\\n box-shadow: none;\\n cursor: default;\\n pointer-events: none;\\n background-color: rgba(0, 0, 0, 0.12);\\n color: rgba(0, 0, 0, 0.26);\\n padding: 6px 16px;\\n}\\n.material-button-root.disabled.darkmode {\\n background-color: rgba(255, 255, 255, 0.12);\\n color: rgba(255, 255, 255, 0.3);\\n}\\n\\n/* @media screen and (max-width: 600px) {\\n .material-button {\\n min-width: 30px;\\n font-size: 0.78rem;\\n line-height: 1.5;\\n letter-spacing: 0.025em;\\n }\\n .material-button.contained {\\n padding: 4px 13px;\\n }\\n .material-button.outlined {\\n padding: 4px 12px;\\n }\\n}\\n */\");\n\nvar FilesUiContext = React__default.createContext({});\n\nvar MaterialButton = function (props) {\n var disabled = props.disabled, href = props.href, textDecoration = props.textTransform, _a = props.variant, variant = _a === void 0 ? \"contained\" : _a, _b = props.color, color = _b === void 0 ? \"#1976d2\" : _b, _c = props.textColor, textColor = _c === void 0 ? \"white\" : _c, children = props.children, className = props.className, style = props.style, onClick = props.onClick, resetStyles = props.resetStyles, disableRipple = props.disableRipple, darkModeProp = props.darkMode, id = props.id, rest = __rest(props, [\"disabled\", \"href\", \"textTransform\", \"variant\", \"color\", \"textColor\", \"children\", \"className\", \"style\", \"onClick\", \"resetStyles\", \"disableRipple\", \"darkMode\", \"id\"]);\n //context\n var darkModeContext = React.useContext(FilesUiContext).darkMode;\n var darkMode = darkModeProp !== undefined ? darkModeProp : darkModeContext;\n // const idClassName = React.useId();\n var idClassName = React.useMemo(function () { return id || FileIdGenerator.getNextId() + \"\"; }, [id]);\n var materialButtonClassName = useMaterialButtonClassName(variant, disabled, color, textColor, textDecoration, className, idClassName.replace(\":\", \"\").replace(\":\", \"\"), resetStyles);\n var finalMBClassNameDarkMode = materialButtonClassName && darkMode\n ? addClassName(materialButtonClassName, \"darkmode\")\n : materialButtonClassName;\n //console.log(\"finalMBClassNameDarkMode\", finalMBClassNameDarkMode, darkMode);\n function handleClick(e) {\n e.preventDefault();\n //ripple\n if (!disableRipple)\n createRippleButton(e, variant, color);\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n }\n if (finalMBClassNameDarkMode !== undefined || resetStyles)\n return React.createElement(href ? \"a\" : \"button\", __assign$1({ className: resetStyles && className ? className : finalMBClassNameDarkMode, \"data-testid\": href ? \"dui-anchor\" : \"dui-button\", onClick: handleClick, href: href, style: style, children: React.createElement(\"span\", { className: \"material-button-label\" }, children), disabled: disabled }, rest));\n else\n return React.createElement(React.Fragment, null, \"loading styes\");\n};\n\n___$insertStyle(\".files-ui-buttons-container {\\n width: 100%;\\n box-sizing: border-box;\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n align-items: center;\\n justify-content: flex-end;\\n box-sizing: border-box;\\n gap: 10px;\\n}\\n.files-ui-buttons-container.top {\\n padding-bottom: 10px;\\n}\\n.files-ui-buttons-container.bottom {\\n padding-top: 10px;\\n}\");\n\nvar DropzoneButtons = function (props) {\n var cleanButton = props.cleanButton, abortButton = props.abortButton, containerClassName = props.className, containerStyle = props.style, deleteButton = props.deleteButton, uploadButton = props.uploadButton, \n //localization,\n onAbort = props.onAbort, onClean = props.onClean, onDelete = props.onDelete, onUpload = props.onUpload, top = props.top; props.disabled;\n var actionButtonsList = [\n cleanButton\n ? __assign$1(__assign$1({}, cleanButton), { label: cleanButton.label || \"Clean\", onClick: cleanButton.onClick || onClean }) : undefined,\n deleteButton\n ? __assign$1(__assign$1({}, deleteButton), { label: deleteButton.label || \"Delete\", onClick: deleteButton.onClick || onDelete }) : undefined,\n uploadButton\n ? __assign$1(__assign$1({}, uploadButton), { label: uploadButton.label || \"Upload\", onClick: uploadButton.onClick || onUpload }) : undefined,\n abortButton\n ? __assign$1(__assign$1({}, abortButton), { label: abortButton.label || \"Abort\", onClick: abortButton.onClick || onAbort }) : undefined,\n ].filter(function (ab) { return ab !== undefined; });\n var tailClassName = \"\".concat(top ? \" top\" : \" bottom\");\n var finalClassName = addClassName(\"files-ui-buttons-container\" + tailClassName, containerClassName);\n return (React.createElement(\"div\", { className: finalClassName, style: containerStyle }, actionButtonsList.map(function (actionButtonProps, index) {\n var disabled = actionButtonProps.disabled, children = actionButtonProps.children, label = actionButtonProps.label, resetStyles = actionButtonProps.resetStyles, className = actionButtonProps.className, style = actionButtonProps.style, onClick = actionButtonProps.onClick;\n return (React.createElement(MaterialButton, { key: index, className: className, style: style, resetStyles: resetStyles, onClick: function (evt) { return onClick === null || onClick === void 0 ? void 0 : onClick(evt); }, disabled: disabled }, children || label));\n })));\n};\n\nvar DropLayer = function (props) {\n var onDrop = props.onDrop, onDragLeave = props.onDragLeave, classNameLayer = props.className, open = props.open, style = props.style;\n //console.log(\"DropLayer\", classNameLayer);\n /* const onDragEnd = (evt: React.DragEvent) => {\n //console.log(\"Drag ended\");\n onDragLeave?.(evt);\n }; */\n return (React.createElement(\"div\", { className: classNameLayer, onDragLeave: onDragLeave, onDrop: onDrop, \n //onDragEnd={onDragEnd}\n style: style || { display: open ? undefined : \"none\" } }));\n};\n\nfunction useDropzoneClassName(dropzoneId, className, \n//isDragging: boolean,\n//header: boolean | undefined = false,\n//footer: boolean | undefined = false,\ncolor, \n//borderRadius: string | number | undefined,\nbackground, minHeight) {\n //console.log(\"useDropzoneClassName\", className, isDragging, header, footer, color, background, minHeight);\n var finalDropzoneId = (color === undefined && background === undefined && minHeight === undefined) ? \"default\" : dropzoneId.replace(\":\", \"_\").replace(\":\", \"_\");\n var baseClassName = \"fui-dropzone-root fui-dropzone-border\";\n var _a = React.useState(\"\"), idStyles = _a[0], setIdStyles = _a[1];\n var _b = React.useState(false), styleInjected = _b[0], setStyleInjected = _b[1];\n var _c = React.useState(undefined), finalClassName = _c[0], setFinalClassName = _c[1];\n var _d = React.useState(undefined), finalClassNameHeader = _d[0], setFinalClassNameHeader = _d[1];\n var _e = React.useState(undefined), finalClassNameFooter = _e[0], setFinalClassNameFooter = _e[1];\n var _f = React.useState(undefined), finalClassNameDisabled = _f[0], setFinalClassNameDisabled = _f[1];\n //const [offset, setOffset] = React.useState(0);\n var makeClassName = function (className, \n //isDragging: boolean,\n // offset: number,\n color, \n //borderRadius: string | number | undefined,\n background, minHeight) {\n var finalClassName = baseClassName;\n // better to come back to the custom stylesheet for each dropzone with the unique id\n var styleSheet = makeDynamicDropzoneStyleSheet(finalDropzoneId, \n // offset,\n //isDragging,\n color, background, minHeight);\n var idStyle = \"\";\n if (!styleInjected) {\n idStyle = DynamiCSS.insertStyleSheet(styleSheet);\n setIdStyles(idStyle);\n if (idStyle !== \"\")\n setStyleInjected(true);\n }\n else {\n //already a stylesheet associated\n DynamiCSS.editStyleSheet(idStyles, styleSheet.sheetRules || []);\n }\n finalClassName += \" files-ui-dropzone-extra-\".concat(finalDropzoneId);\n if (className) {\n finalClassName = \"\".concat(finalClassName, \" \").concat(className);\n }\n /* if (isDragging) {\n finalClassName = `${finalClassName} fui-hide-border`;\n } */\n setFinalClassName(finalClassName);\n setFinalClassNameHeader(\"files-ui-header-border-rd-\".concat(finalDropzoneId));\n setFinalClassNameFooter(\"files-ui-footer-border-rd-top-bg-color-\".concat(finalDropzoneId));\n setFinalClassNameDisabled(\"files-ui-disabled-layer-color-\".concat(finalDropzoneId));\n };\n React.useEffect(function () {\n makeClassName(className, \n //isDragging,\n //offset, \n color, \n // borderRadius, \n background, minHeight);\n // eslint-disable-next-line\n }, [className,\n //isDragging,\n // offset, \n color,\n //borderRadius, \n background, minHeight]);\n return [finalClassName, finalClassNameHeader, finalClassNameFooter, finalClassNameDisabled];\n}\nvar makeDynamicDropzoneStyleSheet = function (dropzoneId, \n// offset: number,\n//isDragging: boolean,\ncolor, background, minHeight) {\n var rootColorBorderStyle = {\n className: \"files-ui-dropzone-extra-\".concat(dropzoneId),\n rules: {\n color: completeAsureColor(color),\n border: \"1px dashed \".concat(completeAsureColor(color)),\n borderRadius: DEFAULT_BORDER_RADIUS,\n background: background,\n minHeight: typeof minHeight === \"number\" ? \"\".concat(minHeight, \"px\") : minHeight,\n },\n };\n var rootColorBorderStyleHideBorder = {\n className: \"files-ui-root-border-hide\",\n rules: {\n borderColor: \"transparent\",\n },\n };\n var headerBorderStyle = {\n className: \"files-ui-header-border-rd-\".concat(dropzoneId),\n rules: {\n \"border-top-left-radius\": DEFAULT_BORDER_RADIUS,\n \"border-top-right-radius\": DEFAULT_BORDER_RADIUS,\n },\n };\n var footerBorderStyle = {\n className: \"files-ui-footer-border-rd-top-bg-color-\".concat(dropzoneId),\n rules: {\n \"border-bottom-left-radius\": DEFAULT_BORDER_RADIUS,\n \"border-bottom-right-radius\": DEFAULT_BORDER_RADIUS,\n background: completeAsureColor(color, 0.129),\n borderTop: \"1px dotted \".concat(completeAsureColor(color))\n },\n };\n var disabledLayerStyle = {\n className: \"files-ui-disabled-layer-color-\".concat(dropzoneId),\n rules: {\n borderRadius: DEFAULT_BORDER_RADIUS,\n background: completeAsureColor(color, 0.38),\n }\n };\n var sheetRules = [\n rootColorBorderStyle,\n rootColorBorderStyleHideBorder,\n headerBorderStyle,\n footerBorderStyle,\n disabledLayerStyle\n ];\n return {\n id: \"files-dropzone-ui-style-id-\" + dropzoneId,\n sheetRules: sheetRules\n };\n};\n\n/**\n * Effect for keeping track of changes\n * update files when value changes\n * also updates the number of valid files\n * When `isUploading` is true, it only updates when value and arrOfExtFiles\n * have same lenght. Also, only updates the uploadStatus attribute\n * from \"preparing\", to undefined when onCancel() method is called in\n * FileItem component\n * @param dropzoneId the asociated dropzoneId for the corresponding array of ExtFiles in case of multiple dropzones\n * @param value the current value of the list of Files from props\n * @param isUploading\n * @returns the local list of Files\n */\nvar useDropzoneFileListUpdater = function (dropzoneId, value, isUploading, maxFileSize, accept, maxFiles, validator, localization, validateFilesFlag) {\n //console.log(\"incomming extfiles fileupdater value\", value.map(x => x.uploadStatus));\n //console.log(\"FileListUpdater\", dropzoneId, value, isUploading, maxFileSize, accept, maxFiles, validateFilesFlag);\n //state for managing the files locally\n var _a = React.useState([]), localFiles = _a[0], setLocalFiles = _a[1];\n // the current number of valid files\n var _b = React.useState(0), numberOfValidFiles = _b[0], setNumberOfValidFiles = _b[1];\n //Detect changes in the file item props when upload started\n //mostly for detecting \n React.useEffect(function () {\n var arrOfExtFiles = ExtFileManager.getExtFileInstanceList(dropzoneId);\n //console.log(\"value changed\", isUploading, value.map(F => F.uploadStatus), dropzoneId);\n // //console.log(\"value changed\", value.map(F => F.uploadStatus));\n if (!isUploading) {\n setLocalFiles(value);\n }\n else {\n // when is uploading\n if (arrOfExtFiles) {\n //lenght of the new arr can be equal or lower\n //when lower, it means a file was deleted, it will be removed only if was not uploaded\n //when same lenght it means that a file could be\n //no mather the size, it will search for the missing and the status that changed\n arrOfExtFiles.forEach(function (extFileInstance) {\n //if the current Ext file is not present anymore\n //add deleted flag\n var extFileIndex = value.findIndex(function (extFile) { return extFile.id === extFileInstance.id; });\n if (extFileIndex === -1) {\n extFileInstance.extraData = { deleted: true };\n //console.log(\"extFileUpdater not found\", extFileInstance.id);\n }\n else {\n var currExtFileObj = value[extFileIndex];\n setNextUploadStatus(extFileInstance, currExtFileObj);\n }\n });\n /*if (arrOfExtFiles.length !== value.length || value.length === 0) {\n return;\n }\n for (let i = 0; i < arrOfExtFiles.length; i++) {\n if (\n (value[i].uploadStatus === undefined)\n &&\n (arrOfExtFiles[i].uploadStatus === \"preparing\")\n ) {\n //console.log(\"useDropzoneFileListUpdater onCancel i\", i);\n arrOfExtFiles[i].uploadStatus = undefined;\n }\n } */\n }\n }\n // eslint-disable-next-line\n }, [dropzoneId, value,\n // isUploading\n ]);\n //Detect changes in validation props for re-validating files\n React.useEffect(function () {\n if (!validateFilesFlag) {\n setLocalFiles(localFiles.map(function (F) { return __assign$1(__assign$1({}, F), { valid: undefined }); }));\n return;\n }\n var localValidator = { maxFileSize: maxFileSize, accept: accept };\n var validatedExtFileList = validateExtFileList(localFiles, maxFiles ? maxFiles - numberOfValidFiles : Infinity, localValidator, validator, maxFiles, localization);\n setLocalFiles(validatedExtFileList);\n //missing dependencie localFiles was not added by purpose\n // eslint-disable-next-line\n }, [validateFilesFlag, maxFileSize, accept, maxFiles, localization]);\n // the current number of valid files\n // update number of valid files\n React.useEffect(function () {\n if (validateFilesFlag) {\n setNumberOfValidFiles(localFiles.filter(function (x) { return x.valid; }).length);\n }\n else {\n setNumberOfValidFiles(localFiles.length);\n }\n }, [localFiles, validateFilesFlag]);\n return [localFiles, numberOfValidFiles, setLocalFiles];\n};\n\nvar useFakeProgress = function (time) {\n if (time === void 0) { time = 1500; }\n var _a = React.useState(28), progress = _a[0], setProgress = _a[1];\n React.useEffect(function () {\n var updateProgress = function (currProgress) {\n if (currProgress === 100) {\n return 0;\n }\n var offset = getRandomInt(5, 24);\n var newProgress = currProgress + offset;\n if (newProgress > 100) {\n return 100;\n }\n else {\n return newProgress;\n }\n };\n var _myInterval = setInterval(function () {\n setProgress(function (_progress) { return updateProgress(_progress); });\n }, time);\n //console.log(\"useFakeProgress SET interval\", _myInterval);\n return function () {\n //console.log(\"useFakeProgress CLEAR interval\", _myInterval);\n clearInterval(_myInterval);\n };\n // eslint-disable-next-line\n }, []);\n return progress;\n};\n\nvar makeDropLayerDynamicStyle = function (dropzoneId, color) {\n return {\n id: \"files-ui-drop-layer-style-id-\" + dropzoneId,\n sheetRules: [\n {\n className: \"dropzone-layer-\".concat(dropzoneId),\n rules: {\n backgroundColor: completeAsureColor(color, 0.4),\n borderRadius: DEFAULT_BORDER_RADIUS,\n position: \"absolute\",\n left: 0,\n top: 0,\n width: \"0%\",\n height: \"0%\",\n zIndex: 20,\n border: \"0px dashed \".concat(completeAsureColor(color))\n },\n },\n {\n className: \"dropzone-layer-drag\",\n rules: {\n width: \"100%\",\n height: \"100%\",\n borderWidth: \"2px\"\n },\n }\n ],\n };\n};\n\n//const BASE_DROP_LAYER_STYLE: string = \"files-ui-styles-drop-layer\"; \n/**\n *\n * @param color\n * @param isDragging\n * @param makeClassName whether to make the classname or not\n * @returns the classname for layer\n */\nvar useDropLayerClassName = function (dropzoneId, color, \n//isDragging?: boolean,\nmakeClassName) {\n var _a = React.useState(\"\"), idStyles = _a[0], setIdStyles = _a[1];\n var _b = React.useState(false), styleInjected = _b[0], setStyleInjected = _b[1];\n var _c = React.useState(\"\"), classNameCreated = _c[0], setClassNameCreated = _c[1];\n var finalDropzoneId = (color === undefined) ? \"default\" : dropzoneId.replace(\":\", \"_\").replace(\":\", \"_\");\n React.useEffect(function () {\n ////console.log(\"useDropLayerClassName\", color, isDragging, makeClassName);\n var handleInserStyle = function (color) {\n var finalClassName = \"\";\n var styleSheet = makeDropLayerDynamicStyle(finalDropzoneId, color\n //isDragging\n );\n var idStyle = \"\";\n //console.log(\"useDropLayerClassName handleInserStyle\", color, styleSheet);\n if (finalDropzoneId === \"default\" && !styleInjected) {\n //check if already inserted\n if (DynamiCSS.existStyleSheet(\"files-ui-drop-layer-style-id-\" + finalDropzoneId)) {\n setStyleInjected(true);\n setIdStyles(\"files-ui-drop-layer-style-id-\" + finalDropzoneId);\n }\n else {\n idStyle = DynamiCSS.insertStyleSheet(styleSheet);\n setIdStyles(idStyle);\n if (idStyle !== \"\") {\n setStyleInjected(true);\n }\n }\n }\n else if (!styleInjected) {\n idStyle = DynamiCSS.insertStyleSheet(styleSheet);\n setIdStyles(idStyle);\n if (idStyle !== \"\") {\n setStyleInjected(true);\n }\n }\n else {\n //already a stylesheet associated\n DynamiCSS.editStyleSheet(idStyles, styleSheet.sheetRules || []);\n }\n finalClassName += \"dropzone-layer-\".concat(finalDropzoneId);\n /* if (isDragging) {\n finalClassName += ` dropzone-layer-drag`;\n } */\n setClassNameCreated(finalClassName);\n };\n ////console.log(\"=>\", isDragging);\n if (makeClassName) {\n handleInserStyle(color);\n }\n // eslint-disable-next-line\n }, [color,\n // isDragging,\n makeClassName]);\n return classNameCreated;\n};\n\n/**\n * Initializer hook for FileItemNeo\n * @param file The file Object\n * @param valid Whether the file is valid, not valid or not set\n * @param preview Whether to show a preview on FileItem\n * @param imageUrl The image url\n * @param xhr the xhr object\n * @param progress the current progress given by props\n * @returns an array thta contains the following properties [isImage, isVideo, url, imageSource, localProgress]\n */\nvar useFileMosaicInitializer = function (file, name, type, valid, preview, imageUrl, videoUrl, customIcons, xhr) {\n var _a = React.useState(false), isImage = _a[0], setIsImage = _a[1];\n var _b = React.useState(false), isVideo = _b[0], setIsVideo = _b[1];\n var _c = React.useState(\"\"), url = _c[0], setUrl = _c[1];\n var _d = React.useState(undefined), imageSource = _d[0], setImageSource = _d[1];\n var _e = React.useState(undefined), videoSource = _e[0], setVideoSource = _e[1];\n var _f = React.useState(false), isReady = _f[0], setIsReady = _f[1];\n var init = function (file, name, type, valid, preview, imageUrl, videoUrl, customIcons, xhr, progress) { return __awaiter$1(void 0, void 0, void 0, function () {\n var url, response, response_1;\n return __generator$1(this, function (_a) {\n switch (_a.label) {\n case 0:\n //////////////////////////////\n //console.log(\"init\", file, name, type);\n if (!file && (!name && !type))\n return [2 /*return*/];\n url = (file ? getURLFileIco(file, customIcons) :\n getURLFileIcoFromNameAndType(name, type, customIcons)).url;\n //console.log(\"init\", url);\n setUrl(url);\n if (!(imageUrl && videoUrl)) return [3 /*break*/, 1];\n setIsVideo(true);\n setImageSource(imageUrl);\n setVideoSource(videoUrl);\n setIsReady(true);\n return [2 /*return*/];\n case 1:\n if (!imageUrl) return [3 /*break*/, 2];\n setIsImage(true);\n setImageSource(imageUrl);\n setIsReady(true);\n return [2 /*return*/];\n case 2:\n if (!videoUrl) return [3 /*break*/, 3];\n setIsVideo(true);\n setVideoSource(videoUrl);\n setIsReady(true);\n return [3 /*break*/, 5];\n case 3:\n response = getHeaderAndTail(file, type);\n setIsImage(response[0] === \"image\");\n if ([\"mp4\", \"ogg\", \"webm\"].includes(response[1]))\n setIsVideo(response[0] === \"video\");\n if (!(preview &&\n (valid || typeof valid === \"undefined\" || valid === null) &&\n response[0] === \"image\")) return [3 /*break*/, 5];\n response_1 = undefined;\n if (!file) return [3 /*break*/, 5];\n return [4 /*yield*/, readAsDataURL(file)];\n case 4:\n response_1 = _a.sent();\n if (response_1) {\n setImageSource(response_1);\n }\n _a.label = 5;\n case 5:\n setIsReady(true);\n return [2 /*return*/];\n }\n });\n }); };\n ////// CLEAN UP\n React.useEffect(function () {\n init(file, name, type, valid, preview || false, imageUrl, videoUrl, customIcons);\n return function () {\n setImageSource(undefined);\n setIsImage(false);\n setIsVideo(false);\n setIsReady(false);\n };\n // eslint-disable-next-line\n }, [file, name, type, valid, preview, imageUrl, videoUrl, customIcons]);\n return [isReady, isImage, isVideo, url, imageSource, videoSource];\n};\n/* export const identifyFileSource = (file: File | undefined, name: string, fileType: string) => {\n if(!file){\n\n }\n} */\nvar getHeaderAndTail = function (file, type) {\n if (file) {\n if (file.type) {\n var splittedType = file.type.split(\"/\");\n return [splittedType[0], splittedType[1]];\n }\n else {\n return [\"octet\", \"octet\"];\n }\n }\n else {\n var splittedType = type === null || type === void 0 ? void 0 : type.split(\"/\");\n if (splittedType && splittedType.length > 1) {\n return [splittedType[0], splittedType[1]];\n }\n else {\n return [\"octet\", \"octet\"];\n }\n }\n};\n\nvar useIsUploading = function (uploadStatus) {\n var _a = React.useState(false), isUploading = _a[0], setIsUploading = _a[1];\n var _b = React.useState(uploadStatus), lastUploadStatus = _b[0], setLastUploadStatus = _b[1];\n React.useEffect(function () {\n setLastUploadStatus(uploadStatus);\n if ([\"uploading\", \"preparing\"].includes(lastUploadStatus || \"\") &&\n [\"success\", \"error\", \"aborted\"].includes(uploadStatus || \"\")) {\n setTimeout(function () {\n setIsUploading(false);\n }, 3500);\n return;\n }\n else {\n //base comparison\n setIsUploading(uploadStatus === \"preparing\" || uploadStatus === \"uploading\");\n }\n // eslint-disable-next-line\n }, [uploadStatus]);\n return isUploading;\n};\n\n/**\n * @param progress the progress given as a prop to the component\n * @param xhr the XMLHttpRequest object for AJAX operations\n * @returns the progress to be shown in the component\n */\nvar useProgress = function (progress, xhr) {\n //console.log(\"getProgress\", progress, xhr);\n var _a = React.useState(undefined), localProgress = _a[0], setLocalProgress = _a[1];\n if (progress !== undefined) {\n if (localProgress !== progress) {\n setLocalProgress(progress);\n }\n }\n else {\n if (xhr !== undefined && xhr !== null && xhr.upload.onprogress === null) {\n // xhr was given but it was not initialized the `onprogress` event\n xhr.upload.onprogress = function (event) {\n //console.log(\"getProgress progress\", progress, (event.loaded / event.total) * 100);\n setLocalProgress((event.loaded / event.total) * 100);\n };\n //initial progress value set to 0\n setLocalProgress(0);\n }\n //return undefined;\n }\n return localProgress;\n};\n\nvar isThereValidUrl = function (url, urlFunction, extFileList) {\n return ExtFileInstance.someValidUrl(extFileList || []) || urlFunction != undefined || (url != undefined && url.length > 0);\n};\n\n//import { print_manager } from \"../../../../../utils\";\n/**\n *\n * Demos:\n *\n * - [Dropzone](https://www.files-ui.com/components/dropzone)\n *\n * API:\n *\n * - [Dropzone API](https://www.files-ui.com/api/dropzone/)\n */\nvar Dropzone = function (props) {\n var _a = mergeProps(props, defaultDrozoneProps), \n //basic\n onChange = _a.onChange, _b = _a.value, value = _b === void 0 ? [] : _b, \n //validation\n accept = _a.accept, maxFileSize = _a.maxFileSize, maxFiles = _a.maxFiles, validator = _a.validator, cleanFiles = _a.cleanFiles, onClean = _a.onClean, autoClean = _a.autoClean, \n //uploading\n uploadConfig = _a.uploadConfig, fakeUpload = _a.fakeUpload, groupUpload = _a.groupUpload, onUploadStart = _a.onUploadStart, onUploadFinish = _a.onUploadFinish, \n //styling\n background = _a.background, color = _a.color, minHeight = _a.minHeight, style = _a.style, \n //textColor,\n className = _a.className, \n //label\n label = _a.label, \n //localization\n locProps = _a.localization, \n //ripple\n disableRipple = _a.disableRipple, \n //drag operations\n onDragEnter = _a.onDragEnter, onDragLeave = _a.onDragLeave, \n //action butotns\n actionButtons = _a.actionButtons, \n //drop layer\n dropOnLayer = _a.dropOnLayer, \n //header and footer\n header = _a.header, footer = _a.footer, _c = _a.headerConfig, headerConfig = _c === void 0 ? {} : _c, _d = _a.footerConfig, footerConfig = _d === void 0 ? {} : _d, \n //disabled\n disabled = _a.disabled, \n //open file dialog\n clickable = _a.clickable, \n //add or replace\n behaviour = _a.behaviour, \n //content\n children = _a.children, \n //advancedConfig,\n rest = __rest(_a, [\"onChange\", \"value\", \"accept\", \"maxFileSize\", \"maxFiles\", \"validator\", \"cleanFiles\", \"onClean\", \"autoClean\", \"uploadConfig\", \"fakeUpload\", \"groupUpload\", \"onUploadStart\", \"onUploadFinish\", \"background\", \"color\", \"minHeight\", \"style\", \"className\", \"label\", \"localization\", \"disableRipple\", \"onDragEnter\", \"onDragLeave\", \"actionButtons\", \"dropOnLayer\", \"header\", \"footer\", \"headerConfig\", \"footerConfig\", \"disabled\", \"clickable\", \"behaviour\", \"children\"]);\n //context\n var \n // darkMode: darkModeContext,\n //icons,\n locContext = React.useContext(FilesUiContext).localization;\n var localization = locProps !== undefined ? locProps : locContext;\n var _e = uploadConfig, url = _e.url, method = _e.method, headers = _e.headers, uploadLabel = _e.uploadLabel, _f = _e.cleanOnUpload, cleanOnUpload = _f === void 0 ? true : _f, _g = _e.preparingTime, preparingTime = _g === void 0 ? 1500 : _g, _h = _e.autoUpload, autoUpload = _h === void 0 ? false : _h, urlFromExtFile = _e.urlFromExtFile, _j = _e.asBlob, asBlob = _j === void 0 ? false : _j;\n var _k = actionButtons, actionButtonsPosition = _k.position, abortButton = _k.abortButton, deleteButton = _k.deleteButton, uploadButton = _k.uploadButton, cleanButton = _k.cleanButton, containerStyle = _k.style, containerClassName = _k.className;\n var styleBorderRadius = style === null || style === void 0 ? void 0 : style.borderRadius;\n var _l = headerConfig.cleanFiles, cleanFilesHeader = _l === void 0 ? true : _l, _m = headerConfig.deleteFiles, deleteFilesHeader = _m === void 0 ? true : _m, _o = headerConfig.maxFileSize, maxFileSizeHeader = _o === void 0 ? true : _o, _p = headerConfig.uploadFiles, uploadFilesHeader = _p === void 0 ? true : _p, _q = headerConfig.uploadingIcon, uploadingIconHedaer = _q === void 0 ? true : _q, _r = headerConfig.validFilesCount, validFilesCountHeader = _r === void 0 ? true : _r, customHeader = headerConfig.customHeader, classNameHeader = headerConfig.className, _s = headerConfig.resetStyles, resetStylesHeader = _s === void 0 ? false : _s, styleHeader = headerConfig.style;\n var customFooter = footerConfig.customFooter, _t = footerConfig.noMissingFilesLabel, noMissingFilesLabel = _t === void 0 ? true : _t, _u = footerConfig.uploadProgressMessage, uploadProgressMessage = _u === void 0 ? true : _u, _v = footerConfig.uploadResultMessage, uploadResultMessage = _v === void 0 ? true : _v;\n //console.log(\"Dropzone props\", dropOnLayer);\n //localizers\n var DropzoneLocalizer = DropzoneLocalizerSelector(localization);\n //ref to handle ripple\n var fuiRippleRefAbs = React.useRef(null);\n var fuiRippleRefRel = React.useRef(null);\n //ref to the hidden input tag\n var inputRef = React.useRef(null);\n //state for drag operation\n var _w = React.useState(false), isDragging = _w[0], setIsDragging = _w[1];\n //state for checking upload start\n var _x = React.useState(false), isUploading = _x[0], setIsUploading = _x[1];\n //state for message on footer\n var _y = React.useState(\"\"), localMessage = _y[0], setLocalMessage = _y[1];\n //Id for uploding through FuiFileManager\n //const dropzoneId: string | number = useDropzoneFileListID();\n // const dropzoneId: string | number = React.useId();\n var dropzoneId = React.useMemo(function () { return FileIdGenerator.getNextId() + \"\"; }, []);\n //React.useId();\n //Flag that determines whether to validate or not\n var validateFilesFlag = isValidateActive(accept, maxFileSize, maxFiles, validator);\n //state for managing the number of valid files\n //state for managing the files locally\n var _z = useDropzoneFileListUpdater(dropzoneId, value || [], isUploading, maxFileSize, accept, maxFiles, validator, localization, validateFilesFlag), localFiles = _z[0], numberOfValidFiles = _z[1], setLocalFiles = _z[2];\n /**\n * Flag that determines if component should perform upload given url\n */\n var shouldUpload = isThereValidUrl(url, urlFromExtFile, localFiles);\n /**\n * Uploads each file in the array of ExtFiles\n * First, sets all the files in preparing status and awaits `preparingTime` miliseconds.\n * If `preparingTime` is not given or its value is false or 0, there won´t be a preparing phase.\n * This is only for the first file, the rest of files will have preparing time until the file before was uploaded\n * The first file will jump from undef to \"uploading\"\n * Then onChange event will be called to update the files outside.\n *\n * If `onCancel` event ocurrs outside on any on the\n * FileItems(e.g. by clicking the cancel button on `FileItem`),\n * the extFileInstance will change its status from 'preparing' to undefined. If so,\n * after the waiting time the value of status will be found as undefined and\n * won´t perfom the upload for that file or any other that fits that condition.\n * Then, for each file sets the file in 'uploading' status.\n * Then onChange event will be called to update the files outside.\n * Then uploads the file with the `xhr` instance.\n * After that, that file recieves the new uploadStatus that can be\n * 'success', 'error' or 'aborted'\n * and onChange event will be called to update the files outside.\n * @param localFiles the list of extFiles to upload\n * @returns nothing\n */\n var uploadfiles = function (localFiles) { return __awaiter$1(void 0, void 0, void 0, function () {\n var arrOfExtFilesInstances, totalNumber, missingUpload, totalRejected, currentCountUpload, uploadingMessenger, newExtFileLocal, serverResponses, unifiedUpload, respo_1, err_1, i, currentExtFileInstance, uploadResponse, fakeProgress, uploadedFile, finishUploadMessenger;\n var _a;\n return __generator$1(this, function (_b) {\n switch (_b.label) {\n case 0:\n //set uploading flag to true\n setIsUploading(true);\n //avoid to call upload if not allowed\n // flag is already true or there isnt files\n //url was not provided\n if (isUploading || localFiles.length === 0 || !shouldUpload) {\n setIsUploading(false);\n return [2 /*return*/];\n }\n if (localFiles.length === 0) {\n setLocalMessage(DropzoneLocalizer.noFilesMessage);\n setTimeout(function () {\n setIsUploading(false);\n }, 1500);\n return [2 /*return*/];\n }\n arrOfExtFilesInstances = [];\n totalNumber = localFiles.length;\n missingUpload = localFiles.filter(function (extFile) {\n return isUploadAbleExtFile(extFile, validateFilesFlag);\n }).length;\n totalRejected = 0;\n currentCountUpload = 0;\n uploadingMessenger = DropzoneLocalizer.uploadingMessage;\n //no missing to upload\n if (!(missingUpload > 0)) {\n setTimeout(function () {\n if (noMissingFilesLabel)\n setLocalMessage(DropzoneLocalizer.noFilesMessage);\n setIsUploading(false);\n }, 1500);\n return [2 /*return*/];\n }\n if (uploadProgressMessage)\n setLocalMessage(uploadingMessenger(\"\".concat(missingUpload, \"/\").concat(totalNumber)));\n // setIsUploading(true);\n //PREPARING stage\n onUploadStart === null || onUploadStart === void 0 ? void 0 : onUploadStart(localFiles);\n arrOfExtFilesInstances =\n ExtFileManager.setFileListMapPreparing(dropzoneId, localFiles, validateFilesFlag, cleanOnUpload) || [];\n newExtFileLocal = __spreadArray$1([], arrOfExtFilesInstances, true).map(function (x) {\n return x.toExtFile();\n });\n //CHANGE (o alejo el isUploading o lo alejo para que tenga m,as tiempo antes de la respuyesta)\n // setIsUploading(true);\n handleFilesChange(newExtFileLocal, true);\n //AWAIT when preparing time is given\n //general sleep for all files\n return [4 /*yield*/, sleepPreparing(preparingTime)];\n case 1:\n //AWAIT when preparing time is given\n //general sleep for all files\n _b.sent();\n serverResponses = [];\n if (!groupUpload) return [3 /*break*/, 6];\n unifiedUpload = function (method, url, arrOfFiles) {\n arrOfExtFilesInstances.forEach(function (el) { return (el.uploadStatus = \"uploading\"); });\n handleFilesChange(sanitizeArrExtFile(arrOfExtFilesInstances), true);\n var formData = new FormData();\n for (var i = 0; i < arrOfFiles.length; i++) {\n formData.append(\"files\", arrOfFiles[i].file);\n }\n return new Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.upload.onprogress = function (e) {\n arrOfExtFilesInstances.forEach(function (el) {\n el.progress = (e.loaded / e.total) * 100;\n });\n handleFilesChange(sanitizeArrExtFile(arrOfExtFilesInstances), true);\n };\n xhr.responseType = \"json\";\n xhr.onload = function () {\n if (xhr.status >= 200 && xhr.status < 300) {\n console.log(xhr.response);\n console.log(typeof xhr.response);\n resolve(xhr.response);\n }\n else {\n reject(xhr.response);\n }\n };\n xhr.onerror = function (err) {\n reject(err);\n };\n xhr.open(method, url);\n xhr.send(formData);\n });\n };\n _b.label = 2;\n case 2:\n _b.trys.push([2, 4, , 5]);\n return [4 /*yield*/, unifiedUpload(\"POST\", url, arrOfExtFilesInstances)];\n case 3:\n respo_1 = _b.sent();\n arrOfExtFilesInstances.forEach(function (el) { return (el.uploadStatus = \"success\"); });\n arrOfExtFilesInstances.forEach(function (el) { return (el.uploadMessage = respo_1.message); });\n return [3 /*break*/, 5];\n case 4:\n err_1 = _b.sent();\n arrOfExtFilesInstances.forEach(function (el) { return (el.uploadStatus = \"error\"); });\n arrOfExtFilesInstances.forEach(function (el) { return (el.uploadMessage = err_1.message); });\n console.log(err_1);\n return [3 /*break*/, 5];\n case 5:\n handleFilesChange(sanitizeArrExtFile(arrOfExtFilesInstances), true);\n return [3 /*break*/, 21];\n case 6:\n i = 0;\n _b.label = 7;\n case 7:\n if (!(i < arrOfExtFilesInstances.length)) return [3 /*break*/, 21];\n currentExtFileInstance = arrOfExtFilesInstances[i];\n if (!(currentExtFileInstance.uploadStatus === \"preparing\" &&\n !((_a = currentExtFileInstance.extraData) === null || _a === void 0 ? void 0 : _a.deleted))) return [3 /*break*/, 19];\n //set stage to \"uploading\" in one file and notify change\n // PREPARING => UPLOADING\n return [4 /*yield*/, sleepTransition()];\n case 8:\n //set stage to \"uploading\" in one file and notify change\n // PREPARING => UPLOADING\n _b.sent();\n instantPreparingToUploadOne(currentExtFileInstance);\n //messge in footer\n if (uploadProgressMessage)\n setLocalMessage(uploadingMessenger(\"\".concat(++currentCountUpload, \"/\").concat(missingUpload)));\n //CHANGE FILES\n handleFilesChange(sanitizeArrExtFile(arrOfExtFilesInstances), true);\n uploadResponse = void 0;\n if (!fakeUpload) return [3 /*break*/, 13];\n return [4 /*yield*/, fakeFuiUpload(currentExtFileInstance, DropzoneLocalizer)];\n case 9:\n uploadResponse = _b.sent();\n fakeProgress = 0;\n _b.label = 10;\n case 10:\n if (!(fakeProgress < 100)) return [3 /*break*/, 12];\n fakeProgress += getRandomInt(21, 35);\n currentExtFileInstance.progress =\n fakeProgress > 100 ? 100 : fakeProgress;\n return [4 /*yield*/, sleepTransition(1000)];\n case 11:\n _b.sent();\n handleFilesChange(sanitizeArrExtFile(arrOfExtFilesInstances), true);\n return [3 /*break*/, 10];\n case 12: return [3 /*break*/, 16];\n case 13:\n _b.trys.push([13, 15, , 16]);\n return [4 /*yield*/, uploadExtFile(currentExtFileInstance, url, urlFromExtFile, method, headers, uploadLabel, asBlob)];\n case 14:\n uploadResponse = _b.sent();\n return [3 /*break*/, 16];\n case 15:\n _b.sent();\n uploadResponse = unexpectedErrorUploadResult(currentExtFileInstance.toExtFile());\n return [3 /*break*/, 16];\n case 16:\n uploadedFile = uploadResponse;\n //update instances\n currentExtFileInstance.uploadStatus = uploadedFile.uploadStatus;\n currentExtFileInstance.uploadMessage = uploadedFile.uploadMessage;\n if (!!(currentExtFileInstance.uploadStatus === \"aborted\")) return [3 /*break*/, 18];\n return [4 /*yield*/, sleepTransition()];\n case 17:\n _b.sent();\n _b.label = 18;\n case 18:\n handleFilesChange(sanitizeArrExtFile(arrOfExtFilesInstances), true);\n if (uploadedFile.uploadStatus === \"error\") {\n totalRejected++;\n }\n serverResponses.push(uploadResponse);\n return [3 /*break*/, 20];\n case 19:\n handleFilesChange(sanitizeArrExtFile(arrOfExtFilesInstances), true);\n _b.label = 20;\n case 20:\n i++;\n return [3 /*break*/, 7];\n case 21:\n setLocalFiles(sanitizeArrExtFile(arrOfExtFilesInstances));\n // upload group finished :D\n onUploadFinish === null || onUploadFinish === void 0 ? void 0 : onUploadFinish(serverResponses);\n finishUploadMessenger = DropzoneLocalizer.uploadFinished;\n if (uploadResultMessage)\n setLocalMessage(finishUploadMessenger(missingUpload - totalRejected, totalRejected));\n setTimeout(function () {\n setIsUploading(false);\n }, 2000);\n return [2 /*return*/];\n }\n });\n }); };\n var handleAbortUpload = function () {\n var listExtFileLocal = ExtFileManager.getExtFileInstanceList(dropzoneId);\n if (!listExtFileLocal)\n return;\n listExtFileLocal.forEach(function (extFileInstance) {\n if (extFileInstance.uploadStatus === \"uploading\" ||\n extFileInstance.uploadStatus === \"preparing\") {\n if (extFileInstance.xhr !== null && extFileInstance.xhr !== undefined)\n extFileInstance.xhr.abort();\n extFileInstance.uploadStatus = \"aborted\";\n extFileInstance.uploadMessage = \"Upload was aborted by user\";\n }\n });\n };\n //the final className\n var _0 = useDropzoneClassName(dropzoneId, className, \n //isDragging && Boolean(dropOnLayer),\n // header,\n // footer,\n color, \n //style?.borderRadius || borderRadius,\n background, minHeight), dropzoneClassName = _0[0], headerClassName = _0[1], footerClassName = _0[2], disabledLayerClassName = _0[3];\n var dropLayerClassName = useDropLayerClassName(dropzoneId, color, \n // isDragging,\n !onDragEnter && !onDragLeave);\n React.useEffect(function () {\n var localValidator = { maxFileSize: maxFileSize, accept: accept };\n var validatedFuiFileList = validateExtFileList(localFiles, maxFiles ? maxFiles - numberOfValidFiles : Infinity, localValidator, validator, maxFiles, localization);\n setLocalFiles(validatedFuiFileList);\n // eslint-disable-next-line\n }, [maxFileSize, accept, maxFiles, localization]);\n /**\n * Performs the changes in the extFile list.\n * Makes a new array of extFile according to the \"behaviour\" prop.\n * If isUploading state is not true and the behaviour props is equal to \"add\",\n * the incoming extFileList is added at the end of the current list of extFile.\n * Otherwise, the complete extFile list is replaced by the incomming extFile list\n * @param extFileList the new fileList\n * @param isUploading a flag that dscribes whther the uploading process is active or not\n */\n var handleFilesChange = function (extFileList, isUploading) {\n var finalExtFileList = behaviour === \"add\" && !isUploading\n ? __spreadArray$1(__spreadArray$1([], localFiles, true), extFileList, true) : __spreadArray$1([], extFileList, true);\n if (onChange) {\n onChange(finalExtFileList);\n }\n else {\n setLocalFiles(finalExtFileList);\n }\n if (autoUpload && !isUploading) {\n uploadfiles(finalExtFileList);\n }\n };\n /**\n * Performs the action of recieving the files when user selects the files\n * by clicking the InputButton\n * @param evt event handler for getting files from input element target\n */\n var handleChangeInput = function (evt) {\n //if (isUploading) return;\n var fileList = evt.target.files;\n var extFileListOutput = fileListToExtFileArray(fileList);\n //validate ext files\n if (validateFilesFlag) {\n extFileListOutput = outerFuiValidation(extFileListOutput);\n if (autoClean) {\n extFileListOutput = extFileListOutput.filter(function (f) { return f.valid; });\n }\n }\n //init xhr on each ext file\n if (shouldUpload)\n extFileListOutput = toUploadableExtFileList(extFileListOutput);\n // Clean input element to trigger onChange event on input\n cleanInput(inputRef.current);\n handleFilesChange(extFileListOutput);\n };\n /**\n * Performs the validation process for each FuiFile\n * outside the DropzoneNeo component file declaration\n * according to the criteria given by maxFiles and maxFileSize and accept props\n * This function calls validateFuiFileList and sets the valid prop of FuiFile to \"true\" or \"false\"\n * depending on the result of the individual validation.\n * It also add the list of errors.\n * @param fuiFileListToValidate the fuiFileList to validate\n * @returns a list of validated FuiFile list\n */\n var outerFuiValidation = function (fuiFileListToValidate) {\n var localValidator = { maxFileSize: maxFileSize, accept: accept };\n var finalNumberOfValids = numberOfValidFiles;\n if (behaviour === \"replace\") {\n //re-start number of valids\n finalNumberOfValids = 0;\n }\n var validatedFuiFileList = validateExtFileList(fuiFileListToValidate, maxFiles ? maxFiles - finalNumberOfValids : Infinity, localValidator, validator, maxFiles, localization);\n return validatedFuiFileList;\n };\n // HANDLERS for CLICK, DRAG NAD DROP\n function handleClick() {\n //handleClickUtil(evt);\n if (!clickable || disabled || isUploading)\n return;\n makeRipple();\n handleClickInput(inputRef.current);\n }\n var handleDragEnter = function (evt) {\n handleDragUtil(evt);\n if (disabled)\n return;\n setIsDragging(true);\n /* setTimeout(() => {\n setIsDragging((_isDragging) => {\n //if (_isDragging) {\n return false;\n //}\n //return true;\n });\n }, 2000); */\n //console.log(\"handleDragEnter\");\n };\n var handleDragLeave = function (evt) {\n if (disabled)\n return;\n handleDragUtil(evt);\n setIsDragging(false);\n };\n // RIPPLE\n /**\n * Creates a ripple in the middle of the main container\n */\n var makeRipple = function () {\n createFuiRippleFromDiv(fuiRippleRefAbs.current, fuiRippleRefRel.current, color);\n };\n // KAMUI => RECIEVE FILES FROM DROP OR INPUT( CLICK ), VALIDATE AND CHANGE\n /**\n * Performs the action of recieving the files when user drops the files\n * in the Dropzone container.\n * According to the given config from props, this function could\n * validate files and also start the uploading phase\n * @param evt even handler for getting files from dataTransfer\n */\n var kamui = function (evt) { return __awaiter$1(void 0, void 0, void 0, function () {\n var fileList, extFileListOutput;\n return __generator$1(this, function (_a) {\n handleDropUtil(evt);\n if (disabled)\n return [2 /*return*/];\n if (isUploading)\n return [2 /*return*/];\n if (!disableRipple)\n makeRipple();\n setIsDragging(false);\n fileList = evt.dataTransfer.files;\n extFileListOutput = fileListToExtFileArray(fileList);\n //validate extended files\n if (validateFilesFlag) {\n extFileListOutput = outerFuiValidation(extFileListOutput);\n if (autoClean) {\n extFileListOutput = extFileListOutput.filter(function (f) { return f.valid; });\n }\n }\n //init xhr on each ext file\n if (shouldUpload)\n extFileListOutput = toUploadableExtFileList(extFileListOutput);\n handleFilesChange(extFileListOutput);\n return [2 /*return*/];\n });\n }); };\n /************* HEADER & FOOTER ******** */\n /**\n * reset the complete file list\n */\n var handleReset = function () {\n if (onChange) {\n onChange([]);\n }\n else {\n setLocalFiles([]);\n }\n };\n var handleClean = function () {\n if (onClean) {\n onClean();\n }\n else if (onChange) {\n onChange(localFiles.filter(function (f) { return f.valid; }));\n }\n else {\n setLocalFiles(localFiles.filter(function (f) { return f.valid; }));\n }\n };\n var finalDropzoneClassNameBorder = !dropzoneClassName\n ? undefined\n : (isDragging && dropOnLayer) || disabled\n ? addClassName(dropzoneClassName, \"files-ui-root-border-hide\")\n : dropzoneClassName;\n var finalDropzoneClassNameBorderClickable = !finalDropzoneClassNameBorder\n ? undefined\n : clickable && !disabled\n ? addClassName(finalDropzoneClassNameBorder, \"clickable\")\n : finalDropzoneClassNameBorder;\n if (!finalDropzoneClassNameBorderClickable)\n return React.createElement(React.Fragment, null);\n return (React.createElement(React.Fragment, null,\n actionButtonsPosition === \"before\" && (React.createElement(DropzoneButtons, { disabled: disabled, abortButton: isUploading ? abortButton : undefined, onAbort: handleAbortUpload, deleteButton: deleteButton, onDelete: !isUploading ? handleReset : undefined, uploadButton: !isUploading && !autoUpload ? uploadButton : undefined, onUpload: !autoUpload ? function () { return uploadfiles(localFiles); } : undefined, cleanButton: validateFilesFlag && !isUploading && !autoClean\n ? cleanButton\n : undefined, onClean: handleClean, style: containerStyle, className: containerClassName, top: true })),\n React.createElement(\"div\", __assign$1({ style: style, className: finalDropzoneClassNameBorderClickable }, rest, { onClick: handleClick, onDragOver: handleDragEnter, onDragLeave: !dropOnLayer ? handleDragLeave : undefined, onDrop: !dropOnLayer ? kamui : undefined }),\n !disableRipple && (React.createElement(\"div\", { ref: fuiRippleRefAbs, className: \"filesui-base-ripple-absolute\", style: { borderRadius: style === null || style === void 0 ? void 0 : style.borderRadius } },\n React.createElement(\"div\", { ref: fuiRippleRefRel, className: \"filesui-base-ripple-relative\" }))),\n React.createElement(React.Fragment, null, header ? (React.createElement(React.Fragment, null, customHeader ? (React.createElement(React.Fragment, null, customHeader)) : (React.createElement(DropzoneHeader, { firstClassName: headerClassName, color: completeAsureColor(color), style: styleHeader, className: classNameHeader, resetStyles: resetStylesHeader, borderRadius: styleBorderRadius, isUploading: isUploading && uploadingIconHedaer, onReset: !isUploading && deleteFilesHeader ? handleReset : undefined, maxFileSize: maxFileSize && maxFileSizeHeader ? maxFileSize : undefined, maxFiles: maxFiles && validFilesCountHeader ? maxFiles : undefined, localization: localization, urlPresent: shouldUpload && uploadFilesHeader, onUploadStart: !autoUpload && !uploadButton\n ? function () { return uploadfiles(localFiles); }\n : undefined, numberOfValidFiles: numberOfValidFiles, \n //onClean={autoClean ? undefined : cleanButton ? undefined : onClean}\n onClean: !cleanFilesHeader || isUploading || cleanButton || autoClean\n ? undefined\n : (cleanFiles || onClean) && validateFilesFlag\n ? handleClean\n : undefined })))) : (React.createElement(React.Fragment, null))),\n React.createElement(DropzoneChildren, { label: label, localization: localization }, children),\n React.createElement(React.Fragment, null, customFooter ? (React.createElement(React.Fragment, null, customFooter)) : (React.createElement(React.Fragment, null, footer && (React.createElement(DropzoneFooter, __assign$1({ firstClassName: footerClassName, borderRadius: styleBorderRadius, accept: accept, message: isUploading ? localMessage : undefined, localization: localization }, footerConfig)))))),\n dropOnLayer && (React.createElement(DropLayer, { open: isDragging, className: !isDragging\n ? dropLayerClassName\n : \"\".concat(dropLayerClassName, \" dropzone-layer-drag\"), onDragLeave: handleDragLeave, onDrop: kamui, style: { borderRadius: style === null || style === void 0 ? void 0 : style.borderRadius } })),\n React.createElement(InputHidden, { multiple: maxFiles ? maxFiles > 1 : true, accept: accept || \"\", inputRef: inputRef, onChange: handleChangeInput }),\n React.createElement(DropzoneDisabledLayer, { open: disabled, className: disabledLayerClassName })),\n actionButtonsPosition === \"after\" && (React.createElement(DropzoneButtons, { disabled: disabled, abortButton: isUploading ? abortButton : undefined, onAbort: handleAbortUpload, deleteButton: deleteButton, onDelete: !isUploading ? handleReset : undefined, uploadButton: !isUploading && !autoUpload ? uploadButton : undefined, onUpload: !autoUpload ? function () { return uploadfiles(localFiles); } : undefined, cleanButton: validateFilesFlag && !isUploading && !autoClean\n ? cleanButton\n : undefined, onClean: handleClean, style: containerStyle, className: containerClassName, top: false }))));\n};\n\nvar defaultFileInputButtonProps = {\n textTransform: \"uppercase\",\n label: \"browse...\",\n behaviour: \"add\",\n disabled: false,\n uploadConfig: {},\n actionButtons: {},\n value: [],\n};\n\nvar FileInputButton = function (props) {\n var _a = mergeProps(props, defaultFileInputButtonProps), \n //basic\n _b = _a.value, \n //basic\n value = _b === void 0 ? [] : _b, onChange = _a.onChange, \n //validation\n accept = _a.accept, maxFileSize = _a.maxFileSize, maxFiles = _a.maxFiles, validator = _a.validator, \n //cleanFiles,\n //onClean,\n autoClean = _a.autoClean, \n //uploading\n uploadConfig = _a.uploadConfig, fakeUpload = _a.fakeUpload, onUploadStart = _a.onUploadStart, onUploadFinish = _a.onUploadFinish, \n //styling\n //background,\n //minHeight,\n color = _a.color, style = _a.style, textColor = _a.textColor, textTransform = _a.textTransform, className = _a.className, \n //label\n label = _a.label, \n //localization\n locProps = _a.localization, \n //ripple\n disableRipple = _a.disableRipple, \n //action butotns\n actionButtons = _a.actionButtons, \n //drop layer\n // dropOnLayer,\n //header and footer\n //header,\n //footer,\n //headerConfig = {},\n //footerConfig = {},\n //disabled\n disabled = _a.disabled, \n //clickable,\n //add or replace\n behaviour = _a.behaviour, \n //content\n children = _a.children, \n //advancedConfig,\n variant = _a.variant, resetStyles = _a.resetStyles, darkModeProp = _a.darkMode, rest = __rest(_a, [\"value\", \"onChange\", \"accept\", \"maxFileSize\", \"maxFiles\", \"validator\", \"autoClean\", \"uploadConfig\", \"fakeUpload\", \"onUploadStart\", \"onUploadFinish\", \"color\", \"style\", \"textColor\", \"textTransform\", \"className\", \"label\", \"localization\", \"disableRipple\", \"actionButtons\", \"disabled\", \"behaviour\", \"children\", \"variant\", \"resetStyles\", \"darkMode\"]);\n //context\n var _c = React.useContext(FilesUiContext), darkModeContext = _c.darkMode, \n //icons,\n locContext = _c.localization;\n var localization = locProps !== undefined ? locProps : locContext;\n var darkMode = darkModeProp !== undefined ? darkModeProp : darkModeContext;\n var _d = uploadConfig, url = _d.url, method = _d.method, headers = _d.headers, uploadLabel = _d.uploadLabel, _e = _d.cleanOnUpload, cleanOnUpload = _e === void 0 ? true : _e, _f = _d.preparingTime, preparingTime = _f === void 0 ? 1500 : _f, _g = _d.autoUpload, autoUpload = _g === void 0 ? false : _g, urlFromExtFile = _d.urlFromExtFile, _h = _d.asBlob, asBlob = _h === void 0 ? false : _h;\n var _j = actionButtons, actionButtonsPosition = _j.position, abortButton = _j.abortButton, deleteButton = _j.deleteButton, uploadButton = _j.uploadButton, cleanButton = _j.cleanButton, containerStyle = _j.style, containerClassName = _j.className;\n //localizers\n var DropzoneLocalizer = DropzoneLocalizerSelector(localization);\n //ref to the hidden input tag\n var inputRef = React.useRef(null);\n //state for checking upload start\n var _k = React.useState(false), isUploading = _k[0], setIsUploading = _k[1];\n //Id for uploding through FuiFileManager\n //const inputButtonId: string | number = React.useId();\n var inputButtonId = React.useMemo(function () { return FileIdGenerator.getNextId() + \"\"; }, []);\n //Flag that determines whether to validate or not\n var validateFilesFlag = isValidateActive(accept, maxFileSize, maxFiles, validator);\n //state for managing the number of valid files\n //state for managing the files locally\n var _l = useDropzoneFileListUpdater(inputButtonId, value || [], isUploading, maxFileSize, accept, maxFiles, validator, localization, validateFilesFlag), localFiles = _l[0], numberOfValidFiles = _l[1], setLocalFiles = _l[2];\n /**\n * Flag that determines if component should perform upload given url\n */\n var shouldUpload = isThereValidUrl(url, urlFromExtFile, localFiles);\n /**\n * Uploads each file in the array of ExtFiles\n * First, sets all the files in preparing status and awaits `preparingTime` miliseconds.\n * If `preparingTime` is not given or its value is false or 0, there won´t be a preparing phase.\n * This is only for the first file, the rest of files will have preparing time until the file before was uploaded\n * The first file will jump from undef to \"uploading\"\n * Then onChange event will be called to update the files outside.\n *\n * If `onCancel` event ocurrs outside on any on the\n * FileItems(e.g. by clicking the cancel button on `FileItem`),\n * the extFileInstance will change its status from 'preparing' to undefined. If so,\n * after the waiting time the value of status will be found as undefined and\n * won´t perfom the upload for that file or any other that fits that condition.\n * Then, for each file sets the file in 'uploading' status.\n * Then onChange event will be called to update the files outside.\n * Then uploads the file with the `xhr` instance.\n * After that, that file recieves the new uploadStatus that can be\n * 'success', 'error' or 'aborted'\n * and onChange event will be called to update the files outside.\n * @param localFiles the list of extFiles to upload\n * @returns nothing\n */\n var uploadfiles = function (localFiles) { return __awaiter$1(void 0, void 0, void 0, function () {\n var arrOfExtFilesInstances, missingUpload, newExtFileLocal, serverResponses, i, currentExtFileInstance, uploadResponse, fakeProgress, uploadedFile;\n var _a;\n return __generator$1(this, function (_b) {\n switch (_b.label) {\n case 0:\n //set uploading flag to true\n setIsUploading(true);\n //avoid to call upload if not allowed\n // flag is already true or there isnt files\n //url was not provided\n if (isUploading || localFiles.length === 0 || !shouldUpload) {\n setIsUploading(false);\n return [2 /*return*/];\n }\n if (localFiles.length === 0) {\n setIsUploading(false);\n return [2 /*return*/];\n }\n arrOfExtFilesInstances = [];\n missingUpload = localFiles.filter(function (extFile) {\n return isUploadAbleExtFile(extFile, validateFilesFlag);\n }).length;\n //console.log(\"upload start: missingUpload\", missingUpload);\n //no missing to upload\n if (!(missingUpload > 0)) {\n //console.log(\"upload start: noFilesMessage\", missingUpload);\n setIsUploading(false);\n return [2 /*return*/];\n }\n // setIsUploading(true);\n //PREPARING stage\n //console.log(\"validateFilesFlag\", validateFilesFlag);\n onUploadStart === null || onUploadStart === void 0 ? void 0 : onUploadStart(localFiles);\n arrOfExtFilesInstances =\n ExtFileManager.setFileListMapPreparing(inputButtonId, localFiles, validateFilesFlag, cleanOnUpload) || [];\n newExtFileLocal = __spreadArray$1([], arrOfExtFilesInstances, true).map(function (x) {\n return x.toExtFile();\n });\n //CHANGE (o alejo el isUploading o lo alejo para que tenga m,as tiempo antes de la respuyesta)\n // setIsUploading(true);\n handleFilesChange(newExtFileLocal, true);\n //console.log(\"FileManagerLog before sleep\", arrOfExtFilesInstances);\n //AWAIT when preparing time is given\n //general sleep for all files\n return [4 /*yield*/, sleepPreparing(preparingTime)];\n case 1:\n //console.log(\"FileManagerLog before sleep\", arrOfExtFilesInstances);\n //AWAIT when preparing time is given\n //general sleep for all files\n _b.sent();\n serverResponses = [];\n i = 0;\n _b.label = 2;\n case 2:\n if (!(i < arrOfExtFilesInstances.length)) return [3 /*break*/, 16];\n currentExtFileInstance = arrOfExtFilesInstances[i];\n if (!(currentExtFileInstance.uploadStatus === \"preparing\" &&\n !((_a = currentExtFileInstance.extraData) === null || _a === void 0 ? void 0 : _a.deleted))) return [3 /*break*/, 14];\n //set stage to \"uploading\" in one file and notify change\n // PREPARING => UPLOADING\n return [4 /*yield*/, sleepTransition()];\n case 3:\n //set stage to \"uploading\" in one file and notify change\n // PREPARING => UPLOADING\n _b.sent();\n instantPreparingToUploadOne(currentExtFileInstance);\n //CHANGE FILES\n handleFilesChange(sanitizeArrExtFile(arrOfExtFilesInstances), true);\n uploadResponse = void 0;\n if (!fakeUpload) return [3 /*break*/, 8];\n return [4 /*yield*/, fakeFuiUpload(currentExtFileInstance, DropzoneLocalizer)];\n case 4:\n uploadResponse = _b.sent();\n fakeProgress = 0;\n _b.label = 5;\n case 5:\n if (!(fakeProgress < 100)) return [3 /*break*/, 7];\n fakeProgress += getRandomInt(21, 35);\n currentExtFileInstance.progress =\n fakeProgress > 100 ? 100 : fakeProgress;\n return [4 /*yield*/, sleepTransition(1000)];\n case 6:\n _b.sent();\n handleFilesChange(sanitizeArrExtFile(arrOfExtFilesInstances), true);\n return [3 /*break*/, 5];\n case 7: return [3 /*break*/, 11];\n case 8:\n _b.trys.push([8, 10, , 11]);\n return [4 /*yield*/, uploadExtFile(currentExtFileInstance, url, urlFromExtFile, method, headers, uploadLabel, asBlob)];\n case 9:\n uploadResponse = _b.sent();\n return [3 /*break*/, 11];\n case 10:\n _b.sent();\n uploadResponse = unexpectedErrorUploadResult(currentExtFileInstance.toExtFile());\n return [3 /*break*/, 11];\n case 11:\n uploadedFile = uploadResponse;\n //console.log(\"fake uploadResponse uploadedFile\", uploadedFile);\n //update instances\n currentExtFileInstance.uploadStatus = uploadedFile.uploadStatus;\n currentExtFileInstance.uploadMessage = uploadedFile.uploadMessage;\n if (!!(currentExtFileInstance.uploadStatus === \"aborted\")) return [3 /*break*/, 13];\n return [4 /*yield*/, sleepTransition()];\n case 12:\n _b.sent();\n _b.label = 13;\n case 13:\n handleFilesChange(sanitizeArrExtFile(arrOfExtFilesInstances), true);\n serverResponses.push(uploadResponse);\n return [3 /*break*/, 15];\n case 14:\n handleFilesChange(sanitizeArrExtFile(arrOfExtFilesInstances), true);\n _b.label = 15;\n case 15:\n i++;\n return [3 /*break*/, 2];\n case 16:\n setLocalFiles(sanitizeArrExtFile(arrOfExtFilesInstances));\n // upload group finished :D\n onUploadFinish === null || onUploadFinish === void 0 ? void 0 : onUploadFinish(serverResponses);\n setIsUploading(false);\n return [2 /*return*/];\n }\n });\n }); };\n var handleAbortUpload = function () {\n var listExtFileLocal = ExtFileManager.getExtFileInstanceList(inputButtonId);\n //console.log(\"Aborting\", listExtFileLocal, inputButtonId);\n if (!listExtFileLocal)\n return;\n listExtFileLocal.forEach(function (extFileInstance) {\n if (extFileInstance.uploadStatus === \"uploading\" ||\n extFileInstance.uploadStatus === \"preparing\") {\n if (extFileInstance.xhr !== null && extFileInstance.xhr !== undefined)\n extFileInstance.xhr.abort();\n extFileInstance.uploadStatus = \"aborted\";\n extFileInstance.uploadMessage = \"Upload was aborted by user\";\n }\n });\n };\n React.useEffect(function () {\n var localValidator = { maxFileSize: maxFileSize, accept: accept };\n var validatedFuiFileList = validateExtFileList(localFiles, maxFiles ? maxFiles - numberOfValidFiles : Infinity, localValidator, validator, maxFiles, localization);\n setLocalFiles(validatedFuiFileList);\n // eslint-disable-next-line\n }, [maxFileSize, accept, maxFiles, localization]);\n /**\n * Performs the changes in the extFile list.\n * Makes a new array of extFile according to the \"behaviour\" prop.\n * If isUploading state is not true and the behaviour props is equal to \"add\",\n * the incoming extFileList is added at the end of the current list of extFile.\n * Otherwise, the complete extFile list is replaced by the incomming extFile list\n * @param extFileList the new fileList\n * @param isUploading a flag that dscribes whther the uploading process is active or not\n */\n var handleFilesChange = function (extFileList, isUploading) {\n var finalExtFileList = behaviour === \"add\" && !isUploading\n ? __spreadArray$1(__spreadArray$1([], localFiles, true), extFileList, true) : __spreadArray$1([], extFileList, true);\n if (onChange) {\n onChange(finalExtFileList);\n }\n else {\n setLocalFiles(finalExtFileList);\n }\n if (autoUpload && !isUploading) {\n //console.log(\"autoUpload\", finalExtFileList);\n uploadfiles(finalExtFileList);\n }\n };\n /**\n * Performs the action of recieving the files when user selects the files\n * by clicking the InputButton\n * @param evt event handler for getting files from input element target\n */\n var handleChangeInput = function (evt) {\n //if (isUploading) return;\n var fileList = evt.target.files;\n var extFileListOutput = fileListToExtFileArray(fileList);\n //validate dui files\n if (validateFilesFlag) {\n extFileListOutput = outerFuiValidation(extFileListOutput);\n if (autoClean) {\n extFileListOutput = extFileListOutput.filter(function (f) { return f.valid; });\n }\n }\n //init xhr on each ext file\n if (shouldUpload)\n extFileListOutput = toUploadableExtFileList(extFileListOutput);\n // Clean input element to trigger onChange event on input\n cleanInput(inputRef.current);\n handleFilesChange(extFileListOutput);\n };\n /**\n * Performs the validation process for each FuiFile\n * outside the DropzoneNeo component file declaration\n * according to the criteria given by maxFiles and maxFileSize and accept props\n * This function calls validateFuiFileList and sets the valid prop of FuiFile to \"true\" or \"false\"\n * depending on the result of the individual validation.\n * It also add the list of errors.\n * @param fuiFileListToValidate the fuiFileList to validate\n * @returns a list of validated FuiFile list\n */\n var outerFuiValidation = function (fuiFileListToValidate) {\n var localValidator = { maxFileSize: maxFileSize, accept: accept };\n //console.log(\"validatedFuiFileList pre\", fuiFileListToValidate);\n var finalNumberOfValids = numberOfValidFiles;\n if (behaviour === \"replace\") {\n //re-start number of valids\n finalNumberOfValids = 0;\n }\n var validatedFuiFileList = validateExtFileList(fuiFileListToValidate, maxFiles ? maxFiles - finalNumberOfValids : Infinity, localValidator, validator, maxFiles, localization);\n //console.log(\"validatedFuiFileList aft\", validatedFuiFileList);\n return validatedFuiFileList;\n };\n // HANDLERS for CLICK\n function handleClick() {\n ////console.log(\"HAAAAAAAA\");\n //handleClickUtil(evt);\n if (disabled)\n return;\n handleClickInput(inputRef.current);\n }\n /**\n * reset the complete file list\n */\n var handleReset = function () {\n if (onChange) {\n onChange([]);\n }\n else {\n setLocalFiles([]);\n }\n };\n var handleClean = function () {\n if (onChange) {\n onChange(localFiles.filter(function (f) { return f.valid; }));\n }\n else {\n setLocalFiles(localFiles.filter(function (f) { return f.valid; }));\n }\n };\n return (React.createElement(React.Fragment, null,\n actionButtonsPosition === \"before\" && (React.createElement(DropzoneButtons, { disabled: disabled, abortButton: isUploading ? abortButton : undefined, onAbort: handleAbortUpload, deleteButton: deleteButton, onDelete: !isUploading ? handleReset : undefined, uploadButton: !isUploading && !autoUpload ? uploadButton : undefined, onUpload: !autoUpload ? function () { return uploadfiles(localFiles); } : undefined, cleanButton: validateFilesFlag && !isUploading && !autoClean\n ? cleanButton\n : undefined, onClean: handleClean, style: containerStyle, className: containerClassName, top: true })),\n React.createElement(MaterialButton, __assign$1({ disabled: disabled, className: className, style: style, color: color, variant: variant, textTransform: textTransform, textColor: textColor, resetStyles: resetStyles, onClick: handleClick, disableRipple: disableRipple, darkMode: darkMode, id: inputButtonId }, rest), children || label),\n React.createElement(InputHidden, { multiple: maxFiles ? maxFiles > 1 : true, accept: accept || \"\", inputRef: inputRef, onChange: handleChangeInput }),\n actionButtonsPosition === \"after\" && (React.createElement(DropzoneButtons, { disabled: disabled, abortButton: isUploading ? abortButton : undefined, onAbort: handleAbortUpload, deleteButton: deleteButton, onDelete: !isUploading ? handleReset : undefined, uploadButton: !isUploading && !autoUpload ? uploadButton : undefined, onUpload: !autoUpload ? function () { return uploadfiles(localFiles); } : undefined, cleanButton: validateFilesFlag && !isUploading && !autoClean\n ? cleanButton\n : undefined, onClean: handleClean, style: containerStyle, className: containerClassName, top: false }))));\n};\n\n//React.HTMLProps\nvar defaultAvatarProps = {\n variant: \"square\",\n alt: \"avatar\",\n emptyLabel: \"Agregar foto\",\n changeLabel: \"Cambiar foto\",\n loadingLabel: \"Loading...\",\n readOnly: false,\n //smart: false,\n smartImgFit: \"center\",\n};\n\n___$insertStyle(\"@import url(https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700,900);\\n.fui-avatar-main-container {\\n width: 200px;\\n height: 200px;\\n position: relative;\\n background-color: transparent;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n background-color: rgba(128, 128, 128, 0.486);\\n border-radius: 10px;\\n font-family: \\\"Poppins\\\", sans-serif;\\n}\\n.fui-avatar-main-container.square {\\n border-radius: 0px;\\n}\\n.fui-avatar-main-container.circle {\\n border-radius: 50%;\\n}\\n.fui-avatar-main-container .fui-avatar-image {\\n background-repeat: no-repeat;\\n background-size: cover;\\n background-position: center;\\n}\\n.fui-avatar-main-container:hover .fui-avatar-label.hide {\\n display: flex;\\n}\\n.fui-avatar-main-container .fui-avatar-label {\\n margin: 0;\\n overflow: hidden;\\n background-color: rgba(128, 128, 128, 0.486);\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n color: white;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n text-align: center;\\n flex-direction: column;\\n}\\n.fui-avatar-main-container .fui-avatar-label.hide {\\n display: none;\\n}\\n.fui-avatar-main-container .fui-avatar-label:hover {\\n background-color: rgba(71, 71, 71, 0.74);\\n display: flex;\\n cursor: pointer;\\n}\");\n\nvar useAvatarStyle = function (avatarId, borderRadius) {\n var _a = React.useState(\"\"), idAvatarStyles = _a[0], setIdAvatarStyles = _a[1];\n var _b = React.useState(false), styleInjected = _b[0], setStyleInjected = _b[1];\n var _c = React.useState(undefined), classNameBorder = _c[0], setClassNameBorder = _c[1];\n //console.log(\"borderRadius\",borderRadius);\n /**\n * creates a dynamic css sheet for avatar\n * @param borderRadius the border radius\n * @returns a dynamic css sheet\n */\n var makeDynamicAvatarCSSRules = function (avatarId, borderRadius) {\n var finalIdStyle = !borderRadius ? \"-default\" : \"-\".concat(avatarId);\n var styleSheet = DynamiCSS.makeStyleSheet({\n id: \"fui-avatar-styles\" + finalIdStyle,\n sheetRules: [\n {\n className: \"fui-avatar-border\" + finalIdStyle,\n rules: {\n borderRadius: \"\".concat(borderRadius || \"6px\", \" !important\"),\n }\n },\n ]\n });\n return styleSheet;\n };\n React.useEffect(function () {\n return function () {\n //console.log(\"avatar, deleting init\", styleInjected, idAvatarStyles);\n if (styleInjected) {\n //console.log(\"avatar, catch css delete\");\n DynamiCSS.removeStyleSheet(idAvatarStyles);\n }\n setIdAvatarStyles(\"\");\n setStyleInjected(false);\n };\n // eslint-disable-next-line\n }, []);\n React.useEffect(function () {\n /* if (!borderRadius) {\n DynamiCSS.removeStyleSheet(idAvatarStyles);\n return;\n } */\n var idStyle = \"\";\n var styleSheet = makeDynamicAvatarCSSRules(avatarId, borderRadius);\n //check if default is in DOM\n if (!borderRadius && !styleInjected) {\n if (DynamiCSS.existStyleSheet(\"fui-avatar-styles-default\")) {\n setStyleInjected(true);\n setIdAvatarStyles(\"fui-avatar-styles-default\");\n }\n else {\n idStyle = DynamiCSS.insertStyleSheet(styleSheet);\n setIdAvatarStyles(idStyle);\n if (idStyle !== \"\") {\n setStyleInjected(true);\n }\n }\n }\n else if (!styleInjected) {\n // check if classname was added\n // if yes, edit css\n // if not insert css\n //console.log(\"avatar, no css, inserting\");\n idStyle = DynamiCSS.insertStyleSheet(styleSheet);\n //console.log(\"avatar, no css, inserted OK\", idStyle);\n setIdAvatarStyles(idStyle);\n if (idStyle !== \"\") {\n setStyleInjected(true);\n }\n }\n else {\n //console.log(\"avatar, catch css, modifiying\", idAvatarStyles);\n DynamiCSS.editStyleSheet(idAvatarStyles, styleSheet.sheetRules || []);\n }\n setClassNameBorder(\"fui-avatar-border-\" + avatarId);\n // eslint-disable-next-line\n }, [borderRadius]);\n return classNameBorder;\n};\n\nvar BasePreparingLoader = function (props) {\n var size = props.size, color = props.color, \n //colorFill,\n //onClick,\n style = props.style, \n //className,\n radius = props.radius, x = props.x, y = props.y, width = props.width;\n var finalRadius = radius || 46;\n var finalX = x || 50;\n var finalY = y || 50;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n return (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", width: \"\".concat(finalSize, \"px\"), height: \"\".concat(finalSize, \"px\"), style: finalStyle, viewBox: \"0 0 100 100\", preserveAspectRatio: \"xMidYMid\" },\n React.createElement(\"circle\", { cx: \"\".concat(finalX), cy: \"\".concat(finalY), r: \"\".concat(finalRadius), fill: \"none\", stroke: color || \"#14ff00\", strokeWidth: \"\".concat(width || 8, \"px\"), strokeDasharray: \"164.93361431346415 100.97787143782138\" },\n React.createElement(\"animateTransform\", { attributeName: \"transform\", type: \"rotate\", repeatCount: \"indefinite\", dur: \"1s\", values: \"0 \".concat(finalX, \" \").concat(finalX, \";360 \").concat(finalX, \" \").concat(finalX), keyTimes: \"0;1\" }))));\n};\n\n___$insertStyle(\".files-ui-loader-container {\\n background-color: rgba(0, 0, 0, 0.41);\\n border-radius: 50%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n overflow: hidden;\\n position: relative;\\n}\\n.files-ui-loader-container.clickable {\\n cursor: pointer;\\n}\\n.files-ui-loader-container:hover {\\n background-color: rgba(0, 0, 0, 0.61);\\n}\");\n\nvar LoaderContainer = function (props) {\n var children = props.children, className = props.className, style = props.style, size = props.size, onClick = props.onClick;\n var finalSize = size ? parseSize(size) : undefined;\n //const isClickable = onClick !== undefined;\n var finalClassName = onClick\n ? \"files-ui-loader-container clickable\"\n : \"files-ui-loader-container\";\n var handleClick = function () {\n onClick === null || onClick === void 0 ? void 0 : onClick();\n };\n return (React.createElement(\"div\", { onClick: handleClick, className: className ? \"\".concat(finalClassName, \" \").concat(className) : finalClassName, style: __assign$1(__assign$1({}, style), { height: finalSize, width: finalSize }) }, children));\n};\n\nvar InfiniteLoader = function (props) {\n var onClick = props.onClick, \n //text,\n size = props.size;\n return (React.createElement(LoaderContainer, { onClick: onClick, size: size },\n React.createElement(React.Fragment, null,\n React.createElement(BasePreparingLoader, { size: size }),\n React.createElement(\"div\", { style: {\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n } }, onClick && (React.createElement(Clear, { color: \"rgba(255,255,255,0.75)\", size: 45, onClick: onClick }))))));\n};\n\n___$insertStyle(\".files-ui-layer {\\n position: absolute;\\n left: 0;\\n top: 0;\\n width: 100%;\\n height: 100%;\\n}\");\n\nvar Layer = function (props) {\n var style = props.style, className = props.className, children = props.children, visible = props.visible, otherProps = __rest(props, [\"style\", \"className\", \"children\", \"visible\"]);\n var finalClassName = addClassName(className || \"\", \"files-ui-layer\");\n if (visible)\n return (React.createElement(\"div\", __assign$1({ className: finalClassName, style: style }, otherProps), children));\n else\n return React.createElement(React.Fragment, null);\n};\n\nvar ImagePreviewDefaultProps = {\n //width: \"100%\",\n //height: \"100%\",\n alt: \"image-preview\",\n //className: \"fui-image-preview\"\n smartImgFit: \"orientation\"\n};\n\n___$insertStyle(\".fui-image-preview {\\n position: relative;\\n border-radius: 10px;\\n}\");\n\nvar ImagePreview = function (props) {\n var _a = mergeProps(props, ImagePreviewDefaultProps), src = _a.src, alt = _a.alt, width = _a.width, height = _a.height, onError = _a.onError, \n //smart,\n smartImgFit = _a.smartImgFit, style = _a.style, className = _a.className;\n //console.log(\"ImagePreview smartImgFit\",smartImgFit);\n var _b = React.useState([undefined, undefined]), _c = _b[0], finalHeight = _c[0], finalWidth = _c[1], setfinalDimensions = _b[1];\n ////console.table({ src, alt, className, style, width, height });\n var _d = React.useState(undefined), source = _d[0], setSource = _d[1];\n /* const [orientation, setOrientation] = React.useState<\n \"landscape\" | \"portrait\" | undefined\n >(undefined); */\n var getSource = function (src) { return __awaiter$1(void 0, void 0, void 0, function () {\n var newImageSrc;\n return __generator$1(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, readAsDataURL(src)];\n case 1:\n newImageSrc = _a.sent();\n handleSetStrSource(newImageSrc);\n return [2 /*return*/];\n }\n });\n }); };\n var handleSetStrSource = function (imageSource) { return __awaiter$1(void 0, void 0, void 0, function () {\n var finalHeight, finalWidth, orientation_1;\n return __generator$1(this, function (_a) {\n switch (_a.label) {\n case 0:\n //console.log(\"handleSetStrSource\", imageSource);\n if (imageSource === \"\" || !imageSource) {\n //console.log(\"handleSetStrSource return\", imageSource);\n return [2 /*return*/];\n }\n finalHeight = undefined;\n finalWidth = undefined;\n if (!!smartImgFit) return [3 /*break*/, 1];\n //console.log(\"handleSetStrSource no imgfit\", imageSource);\n //if not given\n finalWidth = \"100%\";\n return [3 /*break*/, 4];\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, getImageOrientation(imageSource)];\n case 2:\n orientation_1 = _a.sent();\n //console.log(\"handleSetStrSource orientation obtained\", orientation);\n if (orientation_1 === \"landscape\") {\n if (smartImgFit === \"orientation\") {\n finalHeight = undefined;\n finalWidth = \"100%\";\n }\n else {\n finalHeight = \"100%\";\n finalWidth = undefined;\n }\n }\n else {\n if (smartImgFit === \"center\") {\n finalHeight = undefined;\n finalWidth = \"100%\";\n }\n else {\n finalHeight = \"100%\";\n finalWidth = undefined;\n }\n }\n return [3 /*break*/, 4];\n case 3:\n _a.sent();\n onError === null || onError === void 0 ? void 0 : onError();\n return [3 /*break*/, 4];\n case 4:\n if (height)\n finalHeight = height;\n if (width)\n finalWidth = width;\n setfinalDimensions([finalHeight, finalWidth]);\n setSource(imageSource);\n return [2 /*return*/];\n }\n });\n }); };\n React.useEffect(function () {\n //if not undefined\n if (!src)\n return;\n ////console.log(\"ImagePreview There is source :D\");\n if (typeof src === \"string\") {\n //if a url string is given, assign it directly\n handleSetStrSource(src);\n }\n else {\n //if a File object is given, check if is a supported format and read it\n var headerMime = src.type ? src.type.split(\"/\")[0] : \"octet\";\n if (headerMime === \"image\") {\n //set the image source and create the uri string if it's a supported image format\n getSource(src);\n //if not image\n }\n else {\n onError === null || onError === void 0 ? void 0 : onError();\n }\n }\n // eslint-disable-next-line\n }, [src]);\n ////console.log(\"ImagePreview\", src, source);\n /* const finalWidth: string | number | undefined =\n width || (orientation === \"landscape\" && smart ? \"100%\" : undefined);\n const finalHeight: string | number | undefined =\n height || (orientation === \"portrait\" && smart ? \"100%\" : undefined); */\n //console.log(\"Image result\", src, source, finalHeight, finalWidth);\n var handleError = function (evt) {\n //console.log(\"handleError\", onError);\n onError === null || onError === void 0 ? void 0 : onError();\n };\n return (React.createElement(React.Fragment, null, src && source && (finalHeight || finalWidth) && (React.createElement(\"img\", { \n //onLoad={handleLoad}\n style: style || {}, onClick: function (evt) {\n evt.preventDefault();\n }, width: finalWidth, height: finalHeight, src: source, alt: alt, className: className, onError: handleError }))));\n};\n\n/**\n *\n * Demos:\n *\n * - [Avatar](https://www.files-ui.com/components/avatar)\n *\n * API:\n *\n * - [Avatar API](https://www.files-ui.com/api/avatar/)\n */\nvar Avatar = function (props) {\n var _a = mergeProps(props, defaultAvatarProps), readOnly = _a.readOnly, src = _a.src, alt = _a.alt, accept = _a.accept, onChange = _a.onChange, emptyLabel = _a.emptyLabel, changeLabel = _a.changeLabel, variant = _a.variant, borderRadius = _a.borderRadius, uploadingLabel = _a.loadingLabel, isUloading = _a.isLoading, onError = _a.onError, smartImgFit = _a.smartImgFit, style = _a.style, rest = __rest(_a, [\"readOnly\", \"src\", \"alt\", \"accept\", \"onChange\", \"emptyLabel\", \"changeLabel\", \"variant\", \"borderRadius\", \"loadingLabel\", \"isLoading\", \"onError\", \"smartImgFit\", \"style\"]);\n //console.log(\"Avatar smartImgFit\", smartImgFit);\n var inputRef = React.useRef(null);\n //const avatarId = React.useId();\n var avatarId = React.useMemo(function () { return FileIdGenerator.getNextId() + \"\"; }, []);\n var finalClassNameBorder = useAvatarStyle(avatarId.replace(\":\", \"\").replace(\":\", \"\"), borderRadius);\n //console.log(\"finalClassNameBorder\", finalClassNameBorder);\n var handleClick = function () {\n var _a;\n // alert(\"Agregar fotooooooo\");\n (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.click();\n };\n var handleChangeInput = function (evt) {\n var fileList = evt.target.files;\n var fileListOutput = [];\n for (var i = 0, f = void 0; (f = fileList[i]); i++) {\n fileListOutput.push(f);\n }\n onChange === null || onChange === void 0 ? void 0 : onChange(fileListOutput[0]);\n };\n var handleError = function (evt) {\n //console.log(\"Avatar error\", evt);\n onError === null || onError === void 0 ? void 0 : onError(evt);\n };\n if (!finalClassNameBorder)\n return React.createElement(React.Fragment, null);\n else {\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", __assign$1({ className: \"fui-avatar-main-container\".concat(variant === \"circle\" ? \" circle\" : \"\", \" \").concat(finalClassNameBorder), style: style }, rest),\n isUloading ? (React.createElement(Layer, { visible: true },\n React.createElement(\"div\", { className: \"fui-avatar-label\" },\n React.createElement(InfiniteLoader, { size: 50 }),\n uploadingLabel))) : src ? (React.createElement(ImagePreview, { className: \"fui-avatar-image\", src: src, alt: alt, onError: handleError, smartImgFit: smartImgFit })) : (React.createElement(\"div\", { className: \"fui-avatar-label\" }, emptyLabel)),\n !readOnly && (React.createElement(React.Fragment, null,\n !isUloading && (React.createElement(\"div\", { className: \"fui-avatar-label hide\", onClick: handleClick }, src ? changeLabel : emptyLabel)),\n React.createElement(InputHidden, { multiple: false, accept: accept || \"image/*\", onChange: handleChangeInput, inputRef: inputRef }))))));\n }\n};\n/**\n * creates a dynamic css sheet for avatar\n * @param borderRadius the border radius\n * @returns a dynamic css sheet\n */\n/* const makeDynamicAvatarCSSRules = (\n borderRadius: string | undefined\n): DynamicSheet => {\n const styleSheet: DynamicSheet = DynamiCSS.makeStyleSheet({\n id: \"avatar-styles\",\n sheetRules: [\n {\n className: \"fui-avatar-border\",\n rules: {\n borderRadius: borderRadius,\n },\n },\n ],\n });\n return styleSheet;\n}; */\n\n___$insertStyle(\"@import url(https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700,900);\\n.files-ui-file-card-main-container {\\n border-radius: 8px;\\n color: rgba(0, 0, 0, 0.858);\\n display: flex;\\n flex-direction: row;\\n align-items: center;\\n min-height: 100px;\\n box-sizing: border-box;\\n position: relative;\\n font-size: 15px;\\n font-weight: 400;\\n width: 320px;\\n font-family: \\\"Poppins\\\", sans-serif;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container {\\n border-radius: 8px;\\n overflow: hidden;\\n width: 320px;\\n box-sizing: border-box;\\n height: 100px;\\n box-sizing: border-box;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-main-layer {\\n box-sizing: border-box;\\n position: absolute;\\n left: 0;\\n right: 0;\\n width: 100%;\\n height: 100%;\\n display: flex;\\n box-sizing: border-box;\\n align-items: center;\\n justify-content: space-between;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-main-layer .file-card-icon-plus-data {\\n display: flex;\\n align-items: center;\\n justify-content: flex-start;\\n gap: 5px;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-main-layer .file-card-icon-plus-data .file-card-icon-container {\\n width: 100px;\\n height: 100px;\\n overflow: hidden;\\n position: relative;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n box-sizing: border-box;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-main-layer .file-card-icon-plus-data .file-card-icon-container .file-card-icon-layer {\\n box-sizing: border-box;\\n position: absolute;\\n width: 100px;\\n height: 100px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n box-sizing: border-box;\\n overflow: hidden;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-main-layer .file-card-icon-plus-data .file-card-icon-container .file-card-icon-layer img {\\n background-repeat: no-repeat;\\n background-size: cover;\\n background-position: center;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-main-layer .file-card-icon-plus-data .file-card-icon-container .file-card-icon-layer.blur img {\\n filter: blur(4px);\\n width: 200%;\\n height: 200%;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-main-layer .file-card-icon-plus-data .file-card-icon-container .file-card-status-layer {\\n display: flex;\\n align-items: flex-end;\\n justify-content: flex-start;\\n padding: 5px;\\n box-sizing: border-box;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-main-layer .file-card-icon-plus-data .file-card-data {\\n padding-right: 10px;\\n box-sizing: border-box;\\n line-height: 19px;\\n font-weight: 500;\\n width: calc(100% - 100px);\\n word-break: break-all;\\n color: black;\\n display: flex;\\n flex-direction: column;\\n align-items: flex-start;\\n justify-content: center;\\n height: 100%;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-main-layer .file-card-icon-plus-data .file-card-data.dark-mode {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-main-layer .file-card-icon-plus-data .file-card-data .file-card-size {\\n font-weight: 400;\\n font-size: 0.9rem;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-main-layer .file-card-icon-plus-data .file-card-data .file-card-name {\\n font-size: 1rem;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: -webkit-box;\\n -webkit-line-clamp: 1; /* number of lines to show */\\n line-clamp: 1;\\n -webkit-box-orient: vertical;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-main-layer .file-card-icon-plus-data .file-card-data .file-card-name.not-allowed {\\n background-color: rgba(180, 16, 16, 0.7);\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-upload-layer-container {\\n cursor: default;\\n display: flex;\\n box-sizing: border-box;\\n background: linear-gradient(to right, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0.625), rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.9));\\n color: rgba(255, 255, 255, 0.8);\\n font-weight: 500;\\n font-size: 1em;\\n position: relative;\\n overflow: hidden;\\n align-items: center;\\n justify-content: flex-end;\\n height: 100%;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-info-layer-container {\\n cursor: default;\\n display: flex;\\n box-sizing: border-box;\\n background: linear-gradient(to right, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.9), rgba(0, 0, 0, 0.9));\\n color: rgba(255, 255, 255, 0.8);\\n font-weight: 500;\\n font-size: 1em;\\n overflow: hidden;\\n align-items: center;\\n justify-content: flex-end;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-info-layer-container .file-card-file-info {\\n width: calc(100% - 100px);\\n height: 100px;\\n text-align: left;\\n scrollbar-width: thin;\\n overflow: auto;\\n scrollbar-color: rgba(100, 108, 127, 0.662745098) transparent;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-info-layer-container .file-card-file-info::-webkit-scrollbar {\\n width: 9px;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-info-layer-container .file-card-file-info::-webkit-scrollbar-track {\\n background: transparent;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-info-layer-container .file-card-file-info::-webkit-scrollbar-thumb {\\n background-color: rgba(100, 108, 127, 0.662745098);\\n border-radius: 20px;\\n border: transparent;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-info-layer-container .file-card-file-info .files-ui-file-card-info-layer-header {\\n display: flex;\\n width: 100%;\\n flex-direction: row;\\n align-items: center;\\n justify-content: flex-end;\\n /* position: absolute;\\n top: 5;\\n right: 5; */\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-info-layer-container .file-card-file-info .heading {\\n font-weight: 600;\\n padding: 0 5px;\\n}\\n.files-ui-file-card-main-container .files-ui-file-card-main-layer-container .file-card-info-layer-container .file-card-file-info .label {\\n padding: 0 5px;\\n font-weight: 399;\\n}\\n.files-ui-file-card-main-container.clickable {\\n cursor: pointer;\\n}\\n\\n/* .files-ui-file-icon {\\n font-size: 0.7rem;\\n min-width: 19px;\\n min-height: 19px;\\n margin: 0;\\n padding: 2px 2px;\\n border-radius: 50%;\\n background-color: rgba(32, 33, 36, 0.65);\\n word-break: break-word;\\n box-sizing: content-box;\\n &:hover {\\n background-color: rgba(32, 33, 36, 0.85);\\n }\\n &.dark-mode {\\n background-color: rgba(154, 160, 166, 0.65);\\n &:hover {\\n background-color: rgba(154, 160, 166, 0.85);\\n }\\n }\\n} */\");\n\n___$insertStyle(\".files-ui-file-icon {\\n font-size: 0.7rem;\\n min-width: 19px;\\n min-height: 19px;\\n margin: 0;\\n padding: 2px 2px;\\n border-radius: 50%;\\n background-color: rgba(32, 33, 36, 0.65);\\n word-break: break-word;\\n box-sizing: content-box;\\n}\\n.files-ui-file-icon:hover {\\n background-color: rgba(32, 33, 36, 0.85);\\n}\\n.files-ui-file-icon.dark-mode {\\n background-color: rgba(154, 160, 166, 0.65);\\n}\\n.files-ui-file-icon.dark-mode:hover {\\n background-color: rgba(154, 160, 166, 0.85);\\n}\");\n\n___$insertStyle(\".files-ui-file-card-main-container.dark-mode {\\n color: rgba(255, 255, 255, 0.7);\\n background-color: #121212;\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-0 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 0));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-1 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.05));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-2 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.07));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-3 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.08));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-4 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.09));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-5 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.1));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-6 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.11), rgba(255, 255, 255, 0.11));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-7 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.11), rgba(255, 255, 255, 0.11));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-8 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.12));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-9 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.12));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-10 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.13));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-11 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.13));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-12 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.14));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-13 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.14));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-14 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.14));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-15 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.14));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-16 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.15));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-17 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.15));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-18 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.13), rgba(255, 255, 255, 0.15));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-19 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0.15));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-20 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.16));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-21 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.16));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-22 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.16));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-23 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.16));\\n}\\n.files-ui-file-card-main-container.dark-mode.elevation-24 {\\n background-image: linear-gradient(rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.16));\\n}\\n.files-ui-file-card-main-container.elevation-0 {\\n box-shadow: none;\\n}\\n.files-ui-file-card-main-container.elevation-1 {\\n box-shadow: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-2 {\\n box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-3 {\\n box-shadow: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px 3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-4 {\\n box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-5 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 5px 8px 0px rgba(0, 0, 0, 0.14), 0px 1px 14px 0px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-6 {\\n box-shadow: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-7 {\\n box-shadow: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), 0px 7px 10px 1px rgba(0, 0, 0, 0.14), 0px 2px 16px 1px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-8 {\\n box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-9 {\\n box-shadow: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), 0px 9px 12px 1px rgba(0, 0, 0, 0.14), 0px 3px 16px 2px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-10 {\\n box-shadow: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), 0px 10px 14px 1px rgba(0, 0, 0, 0.14), 0px 4px 18px 3px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-11 {\\n box-shadow: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), 0px 11px 15px 1px rgba(0, 0, 0, 0.14), 0px 4px 20px 3px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-12 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-13 {\\n box-shadow: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px 13px 19px 2px rgba(0, 0, 0, 0.14), 0px 5px 24px 4px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-14 {\\n box-shadow: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), 0px 14px 21px 2px rgba(0, 0, 0, 0.14), 0px 5px 26px 4px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-15 {\\n box-shadow: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), 0px 15px 22px 2px rgba(0, 0, 0, 0.14), 0px 6px 28px 5px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-16 {\\n box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-17 {\\n box-shadow: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), 0px 17px 26px 2px rgba(0, 0, 0, 0.14), 0px 6px 32px 5px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-18 {\\n box-shadow: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), 0px 18px 28px 2px rgba(0, 0, 0, 0.14), 0px 7px 34px 6px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-19 {\\n box-shadow: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), 0px 19px 29px 2px rgba(0, 0, 0, 0.14), 0px 7px 36px 6px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-20 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 20px 31px 3px rgba(0, 0, 0, 0.14), 0px 8px 38px 7px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-21 {\\n box-shadow: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), 0px 21px 33px 3px rgba(0, 0, 0, 0.14), 0px 8px 40px 7px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-22 {\\n box-shadow: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), 0px 22px 35px 3px rgba(0, 0, 0, 0.14), 0px 8px 42px 7px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-23 {\\n box-shadow: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), 0px 23px 36px 3px rgba(0, 0, 0, 0.14), 0px 9px 44px 8px rgba(0, 0, 0, 0.12);\\n}\\n.files-ui-file-card-main-container.elevation-24 {\\n box-shadow: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px 24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);\\n}\");\n\n___$insertStyle(\".file-card-right-layer-header {\\n margin-top: 3px;\\n margin-right: 3px;\\n position: absolute;\\n top: 0;\\n right: 0;\\n left: unset;\\n display: flex;\\n align-items: center;\\n justify-content: flex-end;\\n gap: 2px;\\n}\\n\\n.file-card-right-layer-footer {\\n margin-bottom: 3px;\\n margin-right: 3px;\\n left: unset;\\n position: absolute;\\n display: flex;\\n align-items: center;\\n justify-content: flex-end;\\n gap: 2px;\\n bottom: 0;\\n right: 0;\\n}\");\n\nvar FileCardRightActions = function (props) {\n var darkMode = props.darkMode, deleteIcon = props.deleteIcon, downloadIcon = props.downloadIcon, imageIcon = props.imageIcon, infoIcon = props.infoIcon, onDelete = props.onDelete, onDownload = props.onDownload, onOpenInfo = props.onOpenInfo, onSee = props.onSee, onWatch = props.onWatch, videoIcon = props.videoIcon, isActive = props.isActive, visible = props.visible;\n if (visible)\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"file-card-right-layer-header\" }, isActive && deleteIcon && (React.createElement(Clear, { className: darkMode ? \"files-ui-file-icon dark-mode\" : \"files-ui-file-icon\", color: darkMode ? \"#121212\" : \"rgba(255,255,255,0.851)\", onClick: onDelete, size: \"small\", colorFill: \"transparent\" }))),\n React.createElement(\"div\", { className: \"file-card-right-layer-footer\" }, isActive && (React.createElement(React.Fragment, null,\n imageIcon && (React.createElement(Visibility, { className: darkMode\n ? \"files-ui-file-icon dark-mode\"\n : \"files-ui-file-icon\", color: darkMode ? \"#121212\" : \"rgba(255,255,255,0.851)\", onClick: onSee, size: \"small\" })),\n videoIcon && (React.createElement(PlayIcon, { className: darkMode\n ? \"files-ui-file-icon dark-mode\"\n : \"files-ui-file-icon\", color: darkMode ? \"#121212\" : \"rgba(255,255,255,0.851)\", onClick: onWatch, size: \"small\" })),\n downloadIcon && (React.createElement(DownloadFile, { className: darkMode\n ? \"files-ui-file-icon dark-mode\"\n : \"files-ui-file-icon\", color: darkMode ? \"#121212\" : \"rgba(255,255,255,0.851)\", onClick: onDownload, size: \"small\" })),\n infoIcon && (React.createElement(InfoDisney, { className: darkMode\n ? \"files-ui-file-icon dark-mode\"\n : \"files-ui-file-icon\", onClick: onOpenInfo, color: darkMode ? \"#121212\" : \"rgba(255,255,255,0.851)\", size: \"micro\" })))))));\n return React.createElement(React.Fragment, null);\n};\n\nvar FileCardInfoLayer = function (props) {\n var \n //valid,\n localization = props.localization, onCloseInfo = props.onCloseInfo, \n // uploadStatus,\n localName = props.localName, sizeFormatted = props.sizeFormatted, localType = props.localType;\n var FileItemLocalizer = FileItemLocalizerSelector(localization);\n var _a = FileItemLocalizer.fullInfoLayer, nameLabel = _a.name, sizeLabel = _a.size, typeLabel = _a.type;\n return (React.createElement(\"div\", { className: \"file-card-file-info\" },\n React.createElement(Cancel, { style: { margin: 0, right: 5, top: 0, position: \"absolute\" }, color: \"rgba(255,255,255,0.8)\", onClick: onCloseInfo, colorFill: \"black\" }),\n React.createElement(\"div\", { className: \"heading\" }, nameLabel),\n React.createElement(\"div\", { className: \"label\" }, localName),\n React.createElement(\"div\", { className: \"heading\" }, sizeLabel),\n React.createElement(\"div\", { className: \"label\" }, sizeFormatted),\n React.createElement(\"div\", { className: \"heading\" }, typeLabel),\n React.createElement(\"div\", { className: \"label\" }, localType)));\n};\n\nvar AbortedStatus = function (props) {\n var localization = props.localization, size = props.size;\n var FileItemStatusLocalizer = FileItemLocalizerSelector(localization).status;\n return (React.createElement(React.Fragment, null,\n React.createElement(DoDisturb, { color: \"#f44336\", size: size || 65 }),\n React.createElement(\"span\", null,\n \" \",\n FileItemStatusLocalizer.aborted)));\n};\n\nvar EmptyStatus = function (props) {\n var height = props.height;\n var finalHeight = !height\n ? \"132px\"\n : typeof height === \"number\"\n ? \"\".concat(height, \"px\")\n : height;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { style: { width: \"100%\", height: finalHeight } })));\n};\n\nvar ErrorStatus = function (props) {\n var localization = props.localization, size = props.size;\n var FileItemStatusLocalizer = FileItemLocalizerSelector(localization).status;\n return (React.createElement(React.Fragment, null,\n React.createElement(Clear, { color: \"rgba(255,255,255,0.4)\", style: {\n backgroundColor: \"rgba(244, 67, 54, 0.8)\",\n borderRadius: \"50%\",\n }, size: size || 65 }),\n React.createElement(\"span\", null,\n \" \",\n FileItemStatusLocalizer.error)));\n};\n\nvar PreparingStatus = function (props) {\n var onCancel = props.onCancel, localization = props.localization, size = props.size;\n var FileItemStatusLocalizer = FileItemLocalizerSelector(localization).status;\n return (React.createElement(React.Fragment, null,\n React.createElement(InfiniteLoader, { onClick: onCancel, size: size || 65 }),\n React.createElement(\"span\", null, FileItemStatusLocalizer.preparing)));\n};\n\nvar SuccessStatus = function (props) {\n var localization = props.localization, size = props.size;\n var FileItemStatusLocalizer = FileItemLocalizerSelector(localization).status;\n return (React.createElement(React.Fragment, null,\n React.createElement(CheckCircle, { color: \"#4caf50\", size: size || 65 }),\n React.createElement(\"span\", null,\n \" \",\n FileItemStatusLocalizer.success)));\n};\n\n___$insertStyle(\"text.files-ui-text-dynamic-loader {\\n text-anchor: middle;\\n font-size: 1em;\\n fill: aliceblue;\\n}\");\n\nvar DynamicLoader = function (props) {\n var size = props.size, color = props.color, \n //colorFill,\n //onClick,\n style = props.style, \n //className,\n percentage = props.percentage, hidePerncentage = props.hidePerncentage, radius = props.radius, x = props.x, y = props.y, width = props.width, onClick = props.onClick;\n //console.table(props);\n ////console.log(\"percentage\", percentage);\n var finalRadius = radius || 28;\n var finalX = x || 30;\n var finalY = y || 30;\n var finalSize = parseSize(size);\n var finalStyle = style ? style : {};\n var circleRef = React.useRef(null);\n function setProgress(percent, myCircle, circumference) {\n myCircle.style.strokeDashoffset = \"\".concat(circumference * (1 - percent / 100));\n //myCircle.style.strokeDashoffset = `0`;\n /* let pct = document.getElementById(\"pct\");\n pct.innerHTML = percent.toFixed(0) + \"%\"; */\n }\n React.useEffect(function () {\n var myCircle = circleRef.current;\n //console.log(\"percentage useEffect\", percentage);\n if (myCircle !== null &&\n myCircle !== undefined &&\n percentage !== undefined) {\n var circumference = 2 * Math.PI * myCircle.r.baseVal.value;\n myCircle.style.strokeDasharray = \"\".concat(circumference, \" 1000\");\n setProgress(percentage >= 100 ? 100 : percentage, myCircle, circumference);\n }\n }, [percentage]);\n if (percentage !== undefined)\n return (React.createElement(LoaderContainer, { size: size },\n React.createElement(React.Fragment, null,\n React.createElement(\"svg\", { className: \"dui_svg_circle_loader\", xmlns: \"http://www.w3.org/2000/svg\", xmlnsXlink: \"http://www.w3.org/1999/xlink\", width: \"\".concat(finalSize, \"px\"), height: \"\".concat(finalSize, \"px\"), style: finalStyle },\n React.createElement(\"circle\", { style: {\n transform: \"rotate(-90deg)\",\n transformOrigin: \"center\",\n }, stroke: color || \"#14ff00\", cx: \"\".concat(finalX), cy: \"\".concat(finalY), r: \"\".concat(finalRadius), strokeWidth: \"\".concat(width || 8, \"px\"), \n //className=\"circle_loader\"\n id: \"circle\", ref: circleRef, fill: \"none\" }),\n !hidePerncentage && percentage !== undefined && (React.createElement(\"text\", { className: \"files-ui-text-dynamic-loader\", x: \"\".concat(finalX), y: \"\".concat((finalX * 7) / 6) }, \"\".concat(percentage.toFixed(0), \" %\")))),\n onClick && (React.createElement(\"div\", { style: {\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n } },\n React.createElement(Clear, { color: \"rgba(255,255,255,0.75)\", size: 45, onClick: onClick }))))));\n else {\n return React.createElement(React.Fragment, null);\n }\n};\n\n___$insertStyle(\".lds-colorbar {\\n background-color: rgba(255, 255, 255, 0.8);\\n border-radius: 4px;\\n}\\n.lds-colorbar .files-ui-text-default-loader {\\n font-size: 1.5rem;\\n font-weight: 400;\\n text-anchor: middle;\\n}\");\n\nvar UploadingStatus = function (props) {\n var localization = props.localization, size = props.size, onAbort = props.onAbort, progress = props.progress;\n var FileItemStatusLocalizer = FileItemLocalizerSelector(localization).status;\n return (React.createElement(React.Fragment, null,\n progress !== undefined ? (React.createElement(DynamicLoader, { size: 70, x: 35, y: 35, radius: 32, percentage: progress, width: 6, hidePerncentage: progress === undefined || onAbort !== undefined, onClick: onAbort })) : (React.createElement(InfiniteLoader, { onClick: onAbort, size: size || 70 })),\n React.createElement(\"span\", null,\n \" \",\n FileItemStatusLocalizer.uploading)));\n};\n\n___$insertStyle(\".files-ui-file-card-upload-layer {\\n width: 100px;\\n height: 100%;\\n color: rgba(255, 255, 255, 0.8);\\n font-weight: 500;\\n font-size: 1em;\\n position: relative;\\n overflow: hidden;\\n}\\n.files-ui-file-card-upload-layer .elevation-list-card {\\n transition: all 1.5s ease;\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-direction: column;\\n}\\n.files-ui-file-card-upload-layer .elevation-list-card .elevation-item-card {\\n width: 100%;\\n height: 100px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-direction: column;\\n padding: 0 10px;\\n box-sizing: border-box;\\n}\\n.files-ui-file-card-upload-layer .elevation-list-card .elevation-item-card span {\\n text-align: center;\\n word-break: break-word;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: -webkit-box;\\n -webkit-line-clamp: 2; /* number of lines to show */\\n line-clamp: 2;\\n -webkit-box-orient: vertical;\\n}\");\n\nvar FileCardUploadLayer = function (props) {\n var uploadStatus = props.uploadStatus, onCancel = props.onCancel, onAbort = props.onAbort, progress = props.progress, localization = props.localization;\n var elevationContainerRef = React.useRef(null);\n var listContainerStoryRef = React.useRef(null);\n var _a = React.useState([undefined]), statusHistory = _a[0], setStatusHistory = _a[1];\n React.useEffect(function () {\n setStatusHistory(function (statusHistory) {\n if (statusHistory[statusHistory.length - 1] === \"preparing\" &&\n uploadStatus === \"uploading\") {\n var tempStatusHistory = __spreadArray$1([], statusHistory, true);\n tempStatusHistory[statusHistory.length - 1] = uploadStatus;\n //replace\n return __spreadArray$1([], tempStatusHistory, true);\n }\n return __spreadArray$1(__spreadArray$1([], statusHistory, true), [uploadStatus], false);\n });\n }, [uploadStatus]);\n var elevate = function () {\n var currentElevationContainer = elevationContainerRef.current;\n var currentElevationList = listContainerStoryRef.current;\n if (currentElevationContainer === null || currentElevationList === null)\n return;\n currentElevationList.style.top =\n 0 - (statusHistory.length - 1) * 100 + \"px\";\n };\n React.useEffect(function () {\n if (statusHistory.length > 1)\n elevate();\n // eslint-disable-next-line\n }, [statusHistory.length]);\n return (React.createElement(\"div\", { className: \"elevation-layer-container\", ref: elevationContainerRef },\n React.createElement(\"div\", { className: \"elevation-list-card\", ref: listContainerStoryRef }, statusHistory.map(function (status, index) {\n switch (status) {\n case \"preparing\":\n return (React.createElement(\"div\", { className: \"elevation-item-card\", key: index + 1 },\n React.createElement(PreparingStatus, { onCancel: onCancel, localization: localization })));\n case \"uploading\":\n return (React.createElement(\"div\", { className: \"elevation-item-card\", key: index + 1 },\n React.createElement(UploadingStatus, { onAbort: onAbort, progress: progress, localization: localization })));\n case \"error\":\n return (React.createElement(\"div\", { className: \"elevation-item-card\", key: index + 1 },\n React.createElement(ErrorStatus, { size: 60, localization: localization })));\n case \"success\":\n return (React.createElement(\"div\", { className: \"elevation-item-card\", key: index + 1 },\n React.createElement(SuccessStatus, { localization: localization })));\n case \"aborted\":\n return (React.createElement(\"div\", { className: \"elevation-item-card\", key: index + 1 },\n React.createElement(AbortedStatus, { localization: localization })));\n default:\n return (React.createElement(\"div\", { className: \"elevation-item-card\", key: index + 1 },\n React.createElement(EmptyStatus, null)));\n }\n }))));\n};\n\n___$insertStyle(\".files-ui-tooltip {\\n cursor: default;\\n position: relative;\\n}\\n.files-ui-tooltip:hover {\\n z-index: 2;\\n}\\n.files-ui-tooltip:hover .files-ui-tooltiptext {\\n visibility: visible;\\n opacity: 1;\\n z-index: 2;\\n}\\n.files-ui-tooltip.card:hover {\\n z-index: 2;\\n}\\n.files-ui-tooltip.card:hover .files-ui-tooltiptext {\\n visibility: visible;\\n opacity: 1;\\n z-index: 2;\\n}\\n.files-ui-tooltip.card .files-ui-tooltiptext {\\n box-sizing: border-box;\\n font-family: \\\"Poppins\\\", sans-serif;\\n font-size: 0.8rem;\\n font-weight: 400;\\n visibility: hidden;\\n width: 200px;\\n color: #fff;\\n text-align: center;\\n border-radius: 6px;\\n padding: 2px 2px;\\n position: absolute;\\n z-index: 2;\\n left: calc(50% - 100px);\\n left: 0;\\n margin-top: 5px;\\n top: 100%;\\n opacity: 0;\\n transition: opacity 1s;\\n}\\n.files-ui-tooltip.card .files-ui-tooltiptext.not-valid-error {\\n background: linear-gradient(to top, #c62828, #d32f2f);\\n}\\n.files-ui-tooltip.card .files-ui-tooltiptext.not-valid-error::after {\\n border-color: transparent transparent #d32f2f transparent;\\n}\\n.files-ui-tooltip.card .files-ui-tooltiptext.success {\\n background: linear-gradient(to top, #1b5e20, #2e7d32);\\n}\\n.files-ui-tooltip.card .files-ui-tooltiptext.success::after {\\n border-color: transparent transparent #2e7d32 transparent;\\n}\\n.files-ui-tooltip.card .files-ui-tooltiptext::after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: 100%;\\n left: 50%;\\n margin-left: -5px;\\n border-width: 5px;\\n border-style: solid;\\n}\\n.files-ui-tooltip .files-ui-tooltiptext {\\n box-sizing: border-box;\\n font-family: \\\"Poppins\\\", sans-serif;\\n font-size: 0.8rem;\\n font-weight: 400;\\n visibility: hidden;\\n width: 132px;\\n color: #fff;\\n text-align: center;\\n border-radius: 6px;\\n padding: 2px 2px;\\n position: absolute;\\n z-index: 2;\\n left: 0;\\n opacity: 0;\\n transition: opacity 1s;\\n}\\n.files-ui-tooltip .files-ui-tooltiptext.not-valid-error {\\n background: linear-gradient(to top, #c62828, #d32f2f);\\n}\\n.files-ui-tooltip .files-ui-tooltiptext.not-valid-error::after {\\n border-color: transparent transparent #d32f2f transparent;\\n}\\n.files-ui-tooltip .files-ui-tooltiptext.success {\\n background: linear-gradient(to top, #1b5e20, #2e7d32);\\n}\\n.files-ui-tooltip .files-ui-tooltiptext.success::after {\\n border-color: transparent transparent #2e7d32 transparent;\\n}\\n.files-ui-tooltip .files-ui-tooltiptext::after {\\n content: \\\"\\\";\\n position: absolute;\\n bottom: 100%;\\n left: 50%;\\n margin-left: -5px;\\n border-width: 5px;\\n border-style: solid;\\n}\");\n\nvar Tooltip = function (props) {\n var \n //message,\n //style,\n //children,\n //color,\n uploadStatus = props.uploadStatus, valid = props.valid, errors = props.errors, \n //className,\n uploadMessage = props.uploadMessage, open = props.open;\n var _a = React.useState(undefined), statusClassName = _a[0], setSatusClassName = _a[1];\n var _b = React.useState(undefined), message = _b[0], setMessage = _b[1];\n var handleChangeStatus = function (uploadStatus, valid) {\n //higher priority\n if (uploadStatus !== undefined) {\n setMessage(uploadMessage);\n if (uploadStatus === \"success\") {\n setSatusClassName(\"success\");\n }\n else {\n setSatusClassName(\"not-valid-error\");\n }\n }\n else {\n if (valid !== undefined) {\n if (!valid) {\n setSatusClassName(\"not-valid-error\");\n setMessage(errors\n ? errors.reduce(function (acum, curr) {\n acum += \"\".concat(curr, \". \");\n return acum;\n }, \"\")\n : \"\");\n }\n }\n }\n };\n React.useEffect(function () {\n handleChangeStatus(uploadStatus, valid);\n // eslint-disable-next-line\n }, [uploadStatus, valid]);\n return (React.createElement(React.Fragment, null, open && message && statusClassName && (React.createElement(\"span\", { className: \"files-ui-tooltiptext \".concat(statusClassName) }, message))));\n};\n\nvar DownloadHidden = function (props) {\n var downloadUrl = props.downloadUrl, anchorRef = props.anchorRef, fileName = props.fileName;\n function handleClick(evt) {\n evt.stopPropagation();\n }\n if (downloadUrl)\n return (React.createElement(\"a\", { ref: anchorRef, target: \"_blank\", href: downloadUrl, download: fileName, hidden: true, rel: \"noopener noreferrer\", onClick: handleClick }, \"download_file\"));\n return React.createElement(React.Fragment, null);\n};\n\n___$insertStyle(\"@import url(https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700,900);\\n.files-ui-file-mosaic-main-container {\\n width: 132px;\\n box-sizing: border-box;\\n font-family: \\\"Poppins\\\", sans-serif;\\n font-size: 15px;\\n font-weight: 400;\\n word-break: break-word;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container {\\n width: 132px;\\n height: 132px;\\n border-radius: 8px;\\n box-sizing: border-box;\\n overflow: hidden;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-image-layer {\\n position: absolute;\\n left: 0;\\n right: 0;\\n width: 100%;\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-image-layer img {\\n background-repeat: no-repeat;\\n background-size: cover;\\n background-position: center;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-image-layer.blur img {\\n filter: blur(4px);\\n width: 200%;\\n height: 200%;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-main-layer {\\n position: absolute;\\n left: 0;\\n right: 0;\\n width: 100%;\\n height: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: space-between;\\n flex-direction: column;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-main-layer .file-mosaic-main-layer-header {\\n width: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: flex-end;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-main-layer .file-mosaic-main-layer-footer {\\n width: 100%;\\n display: flex;\\n align-items: flex-end;\\n justify-content: space-between;\\n flex-direction: row;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-main-layer .file-mosaic-main-layer-footer .file-mosaic-footer-right {\\n display: flex;\\n align-items: center;\\n flex-direction: row;\\n flex-grow: 1;\\n align-items: flex-end;\\n justify-content: flex-end;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-main-layer .file-mosaic-main-layer-footer .file-mosaic-footer-left {\\n display: flex;\\n align-items: center;\\n flex-direction: column;\\n flex-grow: 1;\\n align-items: flex-start;\\n justify-content: center;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-info-layer {\\n position: absolute;\\n left: 0;\\n right: 0;\\n text-align: left;\\n scrollbar-width: thin;\\n line-height: 1.5;\\n letter-spacing: 0.02857em;\\n font-family: \\\"Poppins\\\", sans-serif;\\n width: inherit;\\n background-color: rgba(0, 0, 0, 0.85);\\n word-break: break-word;\\n height: 100%;\\n width: 100%;\\n font-size: 0.8rem;\\n transition: all 0.5s ease 0s;\\n overflow: auto;\\n color: white;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-info-layer::-webkit-scrollbar {\\n width: 9px;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-info-layer::-webkit-scrollbar-track {\\n background: transparent;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-info-layer::-webkit-scrollbar-thumb {\\n background-color: rgba(100, 108, 127, 0.662745098);\\n border-radius: 20px;\\n border: transparent;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-info-layer .files-ui-file-mosaic-info-layer-header {\\n display: flex;\\n width: 100%;\\n flex-direction: row;\\n align-items: center;\\n justify-content: space-between;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-info-layer .heading {\\n font-weight: 600;\\n padding: 0 5px;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-icon-layer-container .files-ui-file-mosaic-info-layer .label {\\n padding: 0 5px;\\n font-weight: 399;\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-file-name {\\n margin-top: 1px;\\n height: 31px;\\n text-align: center;\\n width: 100%;\\n color: black;\\n font-size: 0.95em;\\n box-sizing: border-box;\\n line-height: 15px;\\n font-weight: 400;\\n letter-spacing: 0.07rem;\\n word-break: break-all;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: -webkit-box;\\n -webkit-line-clamp: 2; /* number of lines to show */\\n line-clamp: 2;\\n -webkit-box-orient: vertical;\\n /* display: flex;\\n align-items: center;\\n justify-content: center; */\\n}\\n.files-ui-file-mosaic-main-container .files-ui-file-mosaic-file-name.dark-mode {\\n color: rgba(255, 255, 255, 0.7);\\n}\\n.files-ui-file-mosaic-main-container.clickable {\\n cursor: pointer;\\n}\\n\\n/* .files-ui-file-icon {\\n font-size: 0.7rem;\\n min-width: 19px;\\n min-height: 19px;\\n margin: 0;\\n padding: 2px 2px;\\n border-radius: 50%;\\n background-color: rgba(32, 33, 36, 0.65);\\n word-break: break-word;\\n box-sizing: content-box;\\n &:hover {\\n background-color: rgba(32, 33, 36, 0.85);\\n }\\n &.dark-mode {\\n background-color: rgba(154, 160, 166, 0.65);\\n &:hover {\\n background-color: rgba(154, 160, 166, 0.85);\\n }\\n }\\n}\\n */\");\n\n___$insertStyle(\".files-ui-layer-container {\\n position: relative;\\n}\");\n\nvar LayerContainer = function (props) {\n var style = props.style, className = props.className, children = props.children;\n var finalClassName = addClassName(className || \"\", \"files-ui-layer-container\");\n return (React.createElement(\"div\", { className: finalClassName, style: style }, children));\n};\n\nvar FileMosaicName = function (props) {\n var fileName = props.fileName;\n if (fileName)\n return React.createElement(\"span\", null, fileName);\n else {\n return React.createElement(React.Fragment, null);\n }\n};\n\n___$insertStyle(\".files-ui-file-mosaic-upload-layer {\\n width: 100%;\\n height: 100%;\\n background-color: rgba(0, 0, 0, 0.65);\\n color: rgba(255, 255, 255, 0.8);\\n font-weight: 500;\\n font-size: 1em;\\n position: relative;\\n overflow: hidden;\\n}\\n.files-ui-file-mosaic-upload-layer .elevation-list {\\n transition: all 1.5s ease;\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 100%;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-direction: column;\\n}\\n.files-ui-file-mosaic-upload-layer .elevation-list .elevation-item {\\n width: 100%;\\n height: 132px;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n flex-direction: column;\\n padding: 0 10px;\\n box-sizing: border-box;\\n}\\n.files-ui-file-mosaic-upload-layer .elevation-list .elevation-item span {\\n text-align: center;\\n word-break: break-word;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n display: -webkit-box;\\n -webkit-line-clamp: 2; /* number of lines to show */\\n line-clamp: 2;\\n -webkit-box-orient: vertical;\\n}\");\n\nvar FileMosaicUploadLayer = function (props) {\n var uploadStatus = props.uploadStatus, onCancel = props.onCancel, onAbort = props.onAbort, progress = props.progress, localization = props.localization;\n //console.log(\"FileMosaicUploadLayer CHANGE progress\", progress, uploadStatus);\n var elevationContainerRef = React.useRef(null);\n var listContainerStoryRef = React.useRef(null);\n var _a = React.useState([undefined]), statusHistory = _a[0], setStatusHistory = _a[1];\n React.useEffect(function () {\n setStatusHistory(function (statusHistory) {\n if (statusHistory[statusHistory.length - 1] === \"preparing\" &&\n uploadStatus === \"uploading\") {\n var tempStatusHistory = __spreadArray$1([], statusHistory, true);\n tempStatusHistory[statusHistory.length - 1] = uploadStatus;\n //replace\n return __spreadArray$1([], tempStatusHistory, true);\n }\n return __spreadArray$1(__spreadArray$1([], statusHistory, true), [uploadStatus], false);\n });\n }, [uploadStatus]);\n var elevate = function () {\n var currentElevationContainer = elevationContainerRef.current;\n var currentElevationList = listContainerStoryRef.current;\n if (currentElevationContainer === null || currentElevationList === null)\n return;\n currentElevationList.style.top =\n 0 - (statusHistory.length - 1) * 132 + \"px\";\n };\n React.useEffect(function () {\n if (statusHistory.length > 1)\n elevate();\n // eslint-disable-next-line\n }, [statusHistory.length]);\n //default phase\n return (React.createElement(\"div\", { className: \"elevation-layer-container\", ref: elevationContainerRef },\n React.createElement(\"div\", { className: \"elevation-list\", ref: listContainerStoryRef }, statusHistory.map(function (status, index) {\n switch (status) {\n case \"preparing\":\n return (React.createElement(\"div\", { className: \"elevation-item\", key: index + 1 },\n React.createElement(PreparingStatus, { onCancel: onCancel, localization: localization })));\n case \"uploading\":\n return (React.createElement(\"div\", { className: \"elevation-item\", key: index + 1 },\n React.createElement(UploadingStatus, { onAbort: onAbort, progress: progress, localization: localization })));\n case \"error\":\n return (React.createElement(\"div\", { className: \"elevation-item\", key: index + 1 },\n React.createElement(ErrorStatus, { localization: localization })));\n case \"success\":\n return (React.createElement(\"div\", { className: \"elevation-item\", key: index + 1 },\n React.createElement(SuccessStatus, { localization: localization })));\n case \"aborted\":\n return (React.createElement(\"div\", { className: \"elevation-item\", key: index + 1 },\n React.createElement(AbortedStatus, { localization: localization })));\n default:\n return (React.createElement(\"div\", { className: \"elevation-item\", key: index + 1 },\n React.createElement(EmptyStatus, null)));\n }\n }))));\n};\n\nvar FileMosaicImageLayer = function (props) {\n ////console.log(\"FileMosaicImageLayer\", props);\n var imageSource = props.imageSource, url = props.url, fileName = props.fileName, card = props.card, isBlur = props.isBlur, smartImgFit = props.smartImgFit;\n var _a = React.useState(undefined), localSource = _a[0], setLocalSource = _a[1];\n var _b = React.useState(false), error = _b[0], setError = _b[1];\n //assign to localSource the imageSource or the url of the ile type\n React.useEffect(function () {\n setLocalSource(imageSource || url);\n }, [imageSource, url]);\n /**\n * When an error occurs when setting the source, the url will be used instead.\n * The url always is a valid image url\n */\n var handleError = function () {\n setError(true);\n setLocalSource(url);\n //console.log(\"FileMosaicImageLayer error\", url);\n };\n //If blur is true\n if (isBlur) {\n return (React.createElement(React.Fragment, null, !card && !error && imageSource && (React.createElement(ImagePreview, { src: localSource, alt: \"blur \".concat(fileName), smartImgFit: false }))));\n }\n return (React.createElement(React.Fragment, null,\n React.createElement(ImagePreview, { onError: handleError, src: localSource, style: { borderRadius: \"0px\" }, alt: \"preview \".concat(fileName), smartImgFit: smartImgFit })));\n};\n\n___$insertStyle(\".files-ui-file-item-status-container {\\n text-align: center;\\n font-size: 0.8rem;\\n background-color: rgba(255, 255, 255, 0.8);\\n display: flex;\\n align-items: center;\\n flex-direction: row;\\n border-radius: 4px;\\n padding: 0.5px;\\n font-weight: 400;\\n}\\n.files-ui-file-item-status-container.file-status-error {\\n color: #f44336;\\n}\\n.files-ui-file-item-status-container.file-status-ok {\\n color: #5c7a1f;\\n}\\n.files-ui-file-item-status-container.file-status-loading {\\n position: relative;\\n display: flex;\\n color: #8b6b10;\\n align-items: center;\\n justify-content: center;\\n flex-direction: column;\\n background-color: rgba(255, 255, 255, 0.7);\\n}\\n.files-ui-file-item-status-container.file-status-loading.percentage {\\n padding: 7px 4px 2px 5px;\\n}\\n.files-ui-file-item-status-container.file-status-loading .abort-button {\\n position: absolute;\\n right: -2px;\\n top: -2px;\\n}\\n.files-ui-file-item-status-container.file-status-loading .uploading-text.up {\\n margin-bottom: -22px;\\n}\\n.files-ui-file-item-status-container.file-status-loading .uploading-text.down {\\n margin-top: -20px;\\n}\\n.files-ui-file-item-status-container.file-status-loading .uploading-text p.percentage {\\n font-weight: 500;\\n}\");\n\nvar FileMosaicStatus = function (props) {\n var valid = props.valid, uploadStatus = props.uploadStatus, localization = props.localization, style = props.style;\n var FileItemStatusLocalizer = FileItemLocalizerSelector(localization).status;\n if (uploadStatus === \"success\") {\n return (React.createElement(\"div\", { className: \"files-ui-file-item-status-container file-status-ok\", style: style },\n React.createElement(CloudDone, { color: \"#4caf50\", size: \"small\", className: \"status-icon\" }),\n FileItemStatusLocalizer.success));\n }\n if (uploadStatus === \"error\" || uploadStatus === \"aborted\") {\n return (React.createElement(\"div\", { className: \"files-ui-file-item-status-container file-status-error\", style: style },\n React.createElement(UploadError, { color: \"#f44336\", size: \"semi-medium\", className: \"status-icon\" }),\n FileItemStatusLocalizer.error));\n }\n if (valid !== undefined && valid !== null) {\n if (valid) {\n return (React.createElement(\"div\", { className: \"files-ui-file-item-status-container file-status-ok\", style: style },\n React.createElement(CheckCircle, { color: \"#4caf50\", size: \"small\", className: \"status-icon\" }),\n FileItemStatusLocalizer.valid));\n }\n else {\n return (React.createElement(\"div\", { className: \"files-ui-file-item-status-container file-status-error\", style: style },\n React.createElement(DoDisturb, { color: \"#f44336\", size: \"small\", className: \"status-icon\" }),\n FileItemStatusLocalizer.denied));\n }\n }\n return React.createElement(React.Fragment, null);\n};\n\nvar FileMosaicInfoLayer = function (props) {\n var valid = props.valid, localization = props.localization, onCloseInfo = props.onCloseInfo, uploadStatus = props.uploadStatus, localName = props.localName, sizeFormatted = props.sizeFormatted, localType = props.localType;\n var FileItemLocalizer = FileItemLocalizerSelector(localization);\n var _a = FileItemLocalizer.fullInfoLayer, nameLabel = _a.name, sizeLabel = _a.size, typeLabel = _a.type;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"files-ui-file-mosaic-info-layer-header\" },\n React.createElement(Cancel\n //style={{ margin: 0, right: 0, top: 0 }}\n , { \n //style={{ margin: 0, right: 0, top: 0 }}\n color: \"rgba(255,255,255,0.8)\", onClick: onCloseInfo, colorFill: \"black\" }),\n React.createElement(FileMosaicStatus, { valid: valid, uploadStatus: uploadStatus, localization: localization })),\n React.createElement(\"div\", { className: \"heading\" }, nameLabel),\n React.createElement(\"div\", { className: \"label\" }, localName),\n React.createElement(\"div\", { className: \"heading\" }, sizeLabel),\n React.createElement(\"div\", { className: \"label\" }, sizeFormatted),\n React.createElement(\"div\", { className: \"heading\" }, typeLabel),\n React.createElement(\"div\", { className: \"label\" }, localType)));\n};\n\n___$insertStyle(\".filesui-file-item-size {\\n box-sizing: border-box;\\n font-size: 0.7rem;\\n border: 0.5px solid wheat;\\n text-align: center;\\n color: rgba(255, 255, 255, 0.89);\\n padding: 2px 1.5px;\\n border-radius: 7px;\\n background-color: rgba(32, 33, 36, 0.75);\\n min-width: 45px;\\n word-break: break-word;\\n font-family: inherit;\\n}\\n.filesui-file-item-size:hover {\\n background-color: rgba(32, 33, 36, 0.85);\\n color: rgba(255, 255, 255, 0.97);\\n}\");\n\nvar FileMosaicSize = function (props) {\n var sizeFormatted = props.sizeFormatted;\n return (React.createElement(React.Fragment, null, sizeFormatted && (React.createElement(\"div\", { className: \"filesui-file-item-size\" }, sizeFormatted))));\n};\n\nvar FileMosaicMainLayer = function (props) {\n var darkMode = props.darkMode, deleteIcon = props.deleteIcon, downloadIcon = props.downloadIcon, imageIcon = props.imageIcon, infoIcon = props.infoIcon, onDelete = props.onDelete, onDownload = props.onDownload, onOpenInfo = props.onOpenInfo, onSee = props.onSee, onWatch = props.onWatch, sizeFormatted = props.sizeFormatted, valid = props.valid, videoIcon = props.videoIcon, localization = props.localization, uploadStatus = props.uploadStatus, isActive = props.isActive;\n return (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { className: \"file-mosaic-main-layer-header\" }, isActive && deleteIcon && (React.createElement(Clear, { className: darkMode ? \"files-ui-file-icon dark-mode\" : \"files-ui-file-icon\", color: darkMode ? \"#121212\" : \"rgba(255,255,255,0.851)\", onClick: onDelete, size: \"small\", colorFill: \"transparent\" }))),\n React.createElement(\"div\", { className: \"file-mosaic-main-layer-footer\" },\n React.createElement(\"div\", { className: \"file-mosaic-footer-left\" },\n React.createElement(FileMosaicStatus, { valid: valid, uploadStatus: uploadStatus, localization: localization }),\n isActive && sizeFormatted && (React.createElement(FileMosaicSize, { sizeFormatted: sizeFormatted }))),\n React.createElement(\"div\", { className: \"file-mosaic-footer-right\" }, isActive && (React.createElement(React.Fragment, null,\n imageIcon && (React.createElement(Visibility, { className: darkMode\n ? \"files-ui-file-icon dark-mode\"\n : \"files-ui-file-icon\", color: darkMode ? \"#121212\" : \"rgba(255,255,255,0.851)\", onClick: onSee, size: \"small\" })),\n videoIcon && (React.createElement(PlayIcon, { className: darkMode\n ? \"files-ui-file-icon dark-mode\"\n : \"files-ui-file-icon\", color: darkMode ? \"#121212\" : \"rgba(255,255,255,0.851)\", onClick: onWatch, size: \"small\" })),\n downloadIcon && (React.createElement(DownloadFile, { className: darkMode\n ? \"files-ui-file-icon dark-mode\"\n : \"files-ui-file-icon\", color: darkMode ? \"#121212\" : \"rgba(255,255,255,0.851)\", onClick: onDownload, size: \"small\" })),\n infoIcon && (React.createElement(InfoDisney, { className: darkMode\n ? \"files-ui-file-icon dark-mode\"\n : \"files-ui-file-icon\", onClick: onOpenInfo, color: darkMode ? \"#121212\" : \"rgba(255,255,255,0.851)\", size: \"micro\" }))))))));\n};\n\nvar FileMosaic = function (props) {\n var style = props.style, className = props.className, file = props.file, propName = props.name, propSize = props.size, propType = props.type, id = props.id, valid = props.valid, errors = props.errors, uploadStatus = props.uploadStatus, uploadMessage = props.uploadMessage, progress = props.progress, xhr = props.xhr, locProps = props.localization, preview = props.preview, imageUrl = props.imageUrl, videoUrl = props.videoUrl, info = props.info, _a = props.backgroundBlurImage, backgroundBlurImage = _a === void 0 ? true : _a, darkModeProp = props.darkMode, _b = props.alwaysActive, alwaysActive = _b === void 0 ? true : _b, _c = props.resultOnTooltip, resultOnTooltip = _c === void 0 ? true : _c, downloadUrl = props.downloadUrl, onDelete = props.onDelete, onCancel = props.onCancel, onAbort = props.onAbort, onDownload = props.onDownload, onSee = props.onSee, onWatch = props.onWatch, onDoubleClick = props.onDoubleClick, onClick = props.onClick, onRightClick = props.onRightClick, _d = props.smartImgFit, smartImgFit = _d === void 0 ? \"orientation\" : _d;\n //context\n var _e = React.useContext(FilesUiContext), darkModeContext = _e.darkMode, icons = _e.icons, locContext = _e.localization;\n var localization = locProps !== undefined ? locProps : locContext;\n var darkMode = darkModeProp !== undefined ? darkModeProp : darkModeContext;\n ////console.log(\"globalConfig\", darkMode, icons);\n //localizers\n //ref for anchor download element\n var downloadRef = React.useRef(null);\n var finalClassName = addClassName(addClassName(\"files-ui-file-mosaic-main-container files-ui-tooltip\", className), onClick ? \"clickable\" : undefined);\n var fileMosaicFileNameClassName = darkMode\n ? \"files-ui-file-mosaic-file-name dark-mode\"\n : \"files-ui-file-mosaic-file-name\";\n // local properties from file\n var _f = getLocalFileItemData(file, propName, propType, propSize), localName = _f[0], localType = _f[1], localSize = _f[2];\n // handle progress\n var localProgress = useProgress(progress, xhr);\n ////console.log(\"FileMosaic progress localProgress \" + localProgress);\n //Initialize File Item\n var _g = useFileMosaicInitializer(file, propName, propType, valid, preview, imageUrl, videoUrl, icons), isReady = _g[0], isImage = _g[1], isVideo = _g[2], url = _g[3], imageSource = _g[4], videoSource = _g[5];\n //The size formatted and rounded in 2 decimals\n var sizeFormatted = fileSizeFormater(localSize);\n //alwaysActive\n var _h = React.useState(false), showInfo = _h[0], setShowInfo = _h[1];\n /********* ALWAYS ACTIVE LOGIC ***************/\n //state for actionOnHover\n var _j = React.useState(false), hovering = _j[0], setHovering = _j[1];\n var handleOnHoverEnter = function () {\n if (alwaysActive)\n return;\n setHovering(true);\n };\n var handleOnHoverLeave = function () {\n if (alwaysActive)\n return;\n setHovering(false);\n };\n /***************** HANDLERS **********/\n //delete file item\n var handleDelete = function () { return onDelete === null || onDelete === void 0 ? void 0 : onDelete(id); };\n //open info layer\n var handleOpenInfo = function () { return setShowInfo(true); };\n //close info layer\n var handleCloseInfo = function () { return setShowInfo(false); };\n var isUploading = useIsUploading(uploadStatus);\n React.useEffect(function () {\n ////console.log(\"Change isUploading\", isUploading);\n if (isUploading && showInfo) {\n handleCloseInfo();\n }\n // eslint-disable-next-line\n }, [isUploading]);\n /*************** CLICK ***************/\n /**\n * TO-DO: Add functionallity on click event\n * @param e event object\n */\n function handleClick(e) {\n //avoid children to trigger onClick ripple from parent\n e.stopPropagation();\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n }\n var handleDoubleClick = function (evt) {\n //alert(\"double click on file\");\n evt.preventDefault();\n onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(evt);\n };\n function handleRightClick(evt) {\n // alert(\"right click!!!!\");\n //get coordinates\n //zindex\n //create menu component\n // evt.preventDefault();\n onRightClick === null || onRightClick === void 0 ? void 0 : onRightClick(evt);\n }\n // DOWNLOAD FILE\n /**\n * onDownload, form 1\n * Trigger dowload directly performing a click on anchor element\n */\n var innerDownload = function () {\n var anchorElement = downloadRef.current;\n if (anchorElement) {\n anchorElement.click();\n }\n };\n /**\n * onDownlad, form 2\n * Handle the download triggering an outside event\n */\n var handleDownload = function () {\n if (onDownload) {\n onDownload === null || onDownload === void 0 ? void 0 : onDownload(id, downloadUrl);\n }\n else if (typeof downloadUrl == \"string\") {\n innerDownload();\n }\n };\n var handleAbort = function () {\n xhr === null || xhr === void 0 ? void 0 : xhr.abort();\n onAbort === null || onAbort === void 0 ? void 0 : onAbort(id);\n };\n if (isReady)\n return (React.createElement(\"div\", { className: finalClassName, style: style, onClick: handleClick, onMouseEnter: handleOnHoverEnter, onMouseLeave: handleOnHoverLeave, onDoubleClick: handleDoubleClick, onContextMenu: handleRightClick },\n React.createElement(LayerContainer, { className: \"files-ui-file-mosaic-icon-layer-container\", style: style },\n React.createElement(Layer, { className: \"files-ui-file-mosaic-image-layer blur\", visible: backgroundBlurImage },\n React.createElement(FileMosaicImageLayer, { imageSource: imageSource, url: url, fileName: localName, isBlur: true, smartImgFit: false })),\n React.createElement(Layer, { className: \"files-ui-file-mosaic-image-layer\", visible: true },\n React.createElement(FileMosaicImageLayer, { imageSource: imageSource, url: url, fileName: localName, isBlur: false, smartImgFit: smartImgFit })),\n React.createElement(Layer, { className: \"files-ui-file-mosaic-main-layer\", visible: !isUploading && !showInfo },\n React.createElement(FileMosaicMainLayer, { deleteIcon: onDelete !== undefined, onDelete: handleDelete, darkMode: darkMode, valid: valid, uploadStatus: uploadStatus, localization: localization, sizeFormatted: sizeFormatted, imageIcon: isImage && onSee !== undefined, onSee: function () { return onSee === null || onSee === void 0 ? void 0 : onSee(imageSource); }, videoIcon: isVideo && onWatch !== undefined, onWatch: function () { return onWatch === null || onWatch === void 0 ? void 0 : onWatch(videoSource); }, downloadIcon: onDownload !== undefined || downloadUrl !== undefined, onDownload: handleDownload, infoIcon: info !== undefined, onOpenInfo: handleOpenInfo, isActive: alwaysActive || hovering })),\n React.createElement(Layer, { className: \"files-ui-file-mosaic-info-layer\", visible: showInfo, onClick: handleClickUtil },\n React.createElement(FileMosaicInfoLayer, { onCloseInfo: handleCloseInfo, valid: valid, localization: localization, localName: localName, sizeFormatted: sizeFormatted, localType: localType })),\n React.createElement(Layer, { className: \"files-ui-file-mosaic-upload-layer\", visible: isUploading, onClick: handleClickUtil },\n React.createElement(FileMosaicUploadLayer, { uploadStatus: uploadStatus, progress: localProgress, onCancel: onCancel ? function () { return onCancel === null || onCancel === void 0 ? void 0 : onCancel(id); } : undefined, onAbort: onAbort ? handleAbort : undefined, localization: localization }))),\n React.createElement(\"div\", { className: fileMosaicFileNameClassName },\n React.createElement(FileMosaicName, { fileName: localName })),\n React.createElement(Tooltip, { open: resultOnTooltip, uploadStatus: uploadStatus, valid: valid, errors: errors, uploadMessage: uploadMessage }),\n React.createElement(DownloadHidden, { fileName: localName, anchorRef: downloadRef, downloadUrl: downloadUrl })));\n return React.createElement(React.Fragment, null);\n};\n\nvar setFinalElevation = function (elevation) {\n // let finalElevation: number = \"\";\n var finalElevation = Number(elevation);\n if (!isNaN(finalElevation)) {\n if (finalElevation > 24) {\n return 24;\n }\n else if (finalElevation < 0) {\n return 0;\n }\n else {\n return finalElevation;\n }\n }\n else {\n return 0;\n }\n};\nvar makeFileCardClassName = function (elevation, darkMode, className, clickable) {\n //console.log(\"FileCard makeFileCardClassName\", elevation, darkMode, className);\n var finalClassName = \"files-ui-file-card-main-container files-ui-tooltip card\";\n if (elevation) {\n finalClassName += \" elevation-\" + setFinalElevation(elevation);\n }\n if (darkMode) {\n finalClassName += \" dark-mode\";\n }\n if (clickable)\n finalClassName += \" clickable\";\n if (className) {\n finalClassName += \" \".concat(className);\n }\n //console.log(\"FileCard finalClassName\", finalClassName);\n return finalClassName;\n};\nvar FileCard = function (props) {\n var style = props.style, className = props.className, file = props.file, propName = props.name, propSize = props.size, propType = props.type, id = props.id, valid = props.valid, errors = props.errors, uploadStatus = props.uploadStatus, uploadMessage = props.uploadMessage, progress = props.progress, xhr = props.xhr, locProps = props.localization, preview = props.preview, imageUrl = props.imageUrl, videoUrl = props.videoUrl, info = props.info, _a = props.backgroundBlurImage, backgroundBlurImage = _a === void 0 ? true : _a, darkModeProp = props.darkMode, _b = props.alwaysActive, alwaysActive = _b === void 0 ? true : _b, _c = props.resultOnTooltip, resultOnTooltip = _c === void 0 ? true : _c, downloadUrl = props.downloadUrl, onDelete = props.onDelete, onCancel = props.onCancel, onAbort = props.onAbort, onDownload = props.onDownload, onSee = props.onSee, onWatch = props.onWatch, onDoubleClick = props.onDoubleClick, onClick = props.onClick, onRightClick = props.onRightClick, _d = props.elevation, elevation = _d === void 0 ? 4 : _d, _e = props.smartImgFit, smartImgFit = _e === void 0 ? \"orientation\" : _e;\n //context\n var _f = React.useContext(FilesUiContext), darkModeContext = _f.darkMode, icons = _f.icons, locContext = _f.localization;\n var localization = locProps !== undefined ? locProps : locContext;\n var darkMode = darkModeProp !== undefined ? darkModeProp : darkModeContext;\n //console.log(\"globalConfig\", darkMode, icons);\n //ref for anchor element\n var downloadRef = React.useRef(null);\n //className created\n var finalClassName = makeFileCardClassName(elevation, darkMode, className, onClick !== undefined);\n // local properties from file\n var _g = getLocalFileItemData(file, propName, propType, propSize), localName = _g[0], localType = _g[1], localSize = _g[2];\n // handle progress\n var localProgress = useProgress(progress, xhr);\n //Initialize File Item\n var _h = useFileMosaicInitializer(file, propName, propType, valid, preview, imageUrl, videoUrl, icons), isReady = _h[0], isImage = _h[1], isVideo = _h[2], url = _h[3], imageSource = _h[4], videoSource = _h[5];\n //The size formatted and rounded in 2 decimals\n var sizeFormatted = fileSizeFormater(localSize);\n //alwaysActive\n var _j = React.useState(false), showInfo = _j[0], setShowInfo = _j[1];\n /********* ALWAYS ACTIVE LOGIC ***************/\n //state for actionOnHover\n var _k = React.useState(false), hovering = _k[0], setHovering = _k[1];\n var handleOnHoverEnter = function () {\n if (alwaysActive)\n return;\n setHovering(true);\n };\n var handleOnHoverLeave = function () {\n if (alwaysActive)\n return;\n setHovering(false);\n };\n /***************** HANDLERS **********/\n //delete file item\n var handleDelete = function () { return onDelete === null || onDelete === void 0 ? void 0 : onDelete(id); };\n //open info layer\n var handleOpenInfo = function () { return setShowInfo(true); };\n //close info layer\n var handleCloseInfo = function () { return setShowInfo(false); };\n var isUploading = useIsUploading(uploadStatus);\n React.useEffect(function () {\n ////console.log(\"Change isUploading\", isUploading);\n if (isUploading && showInfo)\n handleCloseInfo();\n // eslint-disable-next-line\n }, [isUploading]);\n /*************** Click ***************/\n /**\n * TO-DO: Add functionallity on click event\n * @param e event object\n */\n function handleClick(e) {\n //avoid children to trigger onClick ripple from parent\n e.stopPropagation();\n onClick === null || onClick === void 0 ? void 0 : onClick(e);\n }\n var handleDoubleClick = function (evt) {\n //alert(\"double click on file\");\n evt.preventDefault();\n onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(evt);\n };\n function handleRightClick(evt) {\n // alert(\"right click!!!!\");\n //get coordinates\n //zindex\n //create menu component\n // evt.preventDefault();\n onRightClick === null || onRightClick === void 0 ? void 0 : onRightClick(evt);\n }\n // DOWNLOAD FILE\n /**\n * onDownload, form 1\n * Trigger dowload directly performing a click on anchor element\n */\n var innerDownload = function () {\n var anchorElement = downloadRef.current;\n if (anchorElement) {\n anchorElement.click();\n }\n };\n /**\n * onDownlad, form 2\n * Handle the download triggering an outside event\n */\n var handleDownload = function () {\n if (onDownload) {\n onDownload === null || onDownload === void 0 ? void 0 : onDownload(id, downloadUrl);\n }\n else if (typeof downloadUrl == \"string\") {\n innerDownload();\n }\n };\n var handleAbort = function () {\n xhr === null || xhr === void 0 ? void 0 : xhr.abort();\n onAbort === null || onAbort === void 0 ? void 0 : onAbort(id);\n };\n if (isReady) {\n return (React.createElement(\"div\", { className: finalClassName, style: style, onClick: handleClick, onMouseEnter: handleOnHoverEnter, onMouseLeave: handleOnHoverLeave, onDoubleClick: handleDoubleClick, onContextMenu: handleRightClick },\n React.createElement(LayerContainer, { className: \"files-ui-file-card-main-layer-container\" },\n React.createElement(Layer, { className: \"file-card-main-layer\", visible: true },\n React.createElement(\"div\", { className: \"file-card-icon-plus-data\" },\n React.createElement(\"div\", { className: \"file-card-icon-container\" },\n React.createElement(LayerContainer, { className: \"file-card-icon-layer\" },\n React.createElement(Layer, { className: \"file-card-icon-layer blur\", visible: backgroundBlurImage },\n React.createElement(FileMosaicImageLayer, { imageSource: imageSource, fileName: localName, url: url, isBlur: true, smartImgFit: false })),\n React.createElement(Layer, { className: \"file-card-icon-layer\", visible: true },\n React.createElement(FileMosaicImageLayer, { imageSource: imageSource, url: url, fileName: localName, isBlur: false, smartImgFit: smartImgFit })),\n React.createElement(Layer, { className: \"file-card-status-layer\", visible: true },\n React.createElement(FileMosaicStatus, { valid: valid, uploadStatus: uploadStatus, localization: localization })))),\n React.createElement(\"div\", { className: darkMode ? \"file-card-data dark-mode\" : \"file-card-data\" },\n React.createElement(\"div\", { className: \"file-card-name\" }, localName),\n React.createElement(\"div\", { className: \"file-card-size\" }, sizeFormatted),\n React.createElement(\"div\", { className: \"file-card-size\" }, shrinkWord(localType))))),\n React.createElement(Layer, { className: \"file-card-info-layer-container\", visible: showInfo, onClick: handleClickUtil },\n React.createElement(FileCardInfoLayer, { onCloseInfo: handleCloseInfo, valid: valid, localization: localization, localName: localName, sizeFormatted: sizeFormatted, localType: localType })),\n React.createElement(Layer, { className: \"file-card-upload-layer-container\", visible: isUploading, onClick: handleClickUtil },\n React.createElement(\"div\", { className: \"files-ui-file-card-upload-layer\" },\n React.createElement(FileCardUploadLayer, { uploadStatus: uploadStatus, progress: localProgress, onCancel: onCancel ? function () { return onCancel === null || onCancel === void 0 ? void 0 : onCancel(id); } : undefined, onAbort: onAbort ? handleAbort : undefined, localization: localization })))),\n React.createElement(FileCardRightActions, { deleteIcon: onDelete !== undefined, onDelete: handleDelete, darkMode: darkMode, imageIcon: isImage && onSee !== undefined, onSee: function () { return onSee === null || onSee === void 0 ? void 0 : onSee(imageSource); }, videoIcon: isVideo && onWatch !== undefined, onWatch: function () { return onWatch === null || onWatch === void 0 ? void 0 : onWatch(videoSource); }, downloadIcon: onDownload !== undefined || downloadUrl !== undefined, onDownload: handleDownload, infoIcon: info !== undefined, onOpenInfo: handleOpenInfo, isActive: alwaysActive || hovering, visible: !isUploading && !showInfo }),\n React.createElement(Tooltip, { open: resultOnTooltip, uploadStatus: uploadStatus, valid: valid, errors: errors, uploadMessage: uploadMessage }),\n React.createElement(DownloadHidden, { fileName: localName, anchorRef: downloadRef, downloadUrl: downloadUrl })));\n }\n return React.createElement(React.Fragment, null);\n};\n\n___$insertStyle(\".fui-fullscreen-container {\\n position: fixed;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n width: 100%;\\n height: 100vh;\\n top: 0;\\n left: 0;\\n background: rgba(0, 0, 0, 0.734);\\n transform: translate(100%);\\n transition: transform 0.2s ease-in-out;\\n margin: 0 !important;\\n z-index: 4000;\\n box-sizing: border-box;\\n}\\n.fui-fullscreen-container.show-fs {\\n transform: translate(0);\\n}\\n\\n.fui-fullscreen-relative-container {\\n position: relative;\\n width: 90%;\\n height: 90%;\\n overflow: hidden;\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n /* @media (max-width: 600px) {\\n width: 80%;\\n height: auto;\\n }*/\\n}\\n.fui-fullscreen-relative-container img {\\n height: 100%;\\n width: auto;\\n}\\n.fui-fullscreen-relative-container video {\\n height: 100%;\\n width: auto;\\n}\\n@media (max-width: 960px) {\\n .fui-fullscreen-relative-container {\\n height: 90%;\\n width: 100%;\\n }\\n .fui-fullscreen-relative-container video {\\n height: auto;\\n width: 100%;\\n }\\n .fui-fullscreen-relative-container img {\\n height: auto;\\n width: 100%;\\n }\\n}\\n\\n.button-full-screen {\\n position: absolute;\\n top: 0;\\n right: 0;\\n}\");\n\nvar FullScreen = function (props) {\n var open = props.open, onClose = props.onClose, children = props.children;\n function handleClose(e) {\n //avoid children to trigger onClick ripple from parent\n e.stopPropagation();\n onClose === null || onClose === void 0 ? void 0 : onClose();\n }\n React.useEffect(function () {\n var handleCloseEsc = function (evt) {\n if (evt.key === \"Escape\")\n onClose === null || onClose === void 0 ? void 0 : onClose();\n };\n //console.log(\"adding listener\");\n document.addEventListener(\"keydown\", handleCloseEsc);\n return function () {\n //console.log(\"removing listener\");\n document.removeEventListener(\"keydown\", handleCloseEsc);\n };\n // eslint-disable-next-line\n }, []);\n return (React.createElement(\"div\", { className: open ? \"fui-fullscreen-container show-fs\" : \"fui-fullscreen-container\", onClick: handleClose },\n open && (React.createElement(\"div\", { className: \"fui-fullscreen-relative-container\", onClick: handleClose }, children)),\n onClose && (React.createElement(Clear, { color: \"rgba(255,255,255,0.8)\", onClick: handleClose, colorFill: \"transparent\", className: \"button-full-screen\", size: \"extra-large\" }))));\n};\n\nvar VideoPreview = function (props) {\n var videoSrc = props.src, \n /* autoPlay, controls, */\n style = props.style, className = props.className, others = __rest(props, [\"src\", \"style\", \"className\"]);\n var videoRef = React.useRef(null);\n var _a = React.useState(undefined), source = _a[0], setSource = _a[1];\n React.useEffect(function () {\n //if not undefined\n if (!videoSrc) {\n return;\n }\n if (typeof videoSrc === \"string\") {\n //if a url string is given, assign it directly\n setSource(videoSrc);\n }\n else {\n //if a File object is given, check if is a supported format\n var headerMime = videoSrc.type ? videoSrc.type.split(\"/\")[0] : \"octet\";\n var tailMime = videoSrc.type ? videoSrc.type.split(\"/\")[1] : \"octet\";\n if (headerMime === \"video\" && [\"mp4\", \"ogg\", \"webm\"].includes(tailMime)) {\n //set the video source and create the uri string if is a supported video format\n var newVideoSrc = URL.createObjectURL(videoSrc);\n setSource(newVideoSrc);\n }\n }\n }, [videoSrc]);\n React.useEffect(function () {\n if (source && videoRef.current) {\n videoRef.current.load();\n }\n }, [source]);\n return (React.createElement(React.Fragment, null, videoSrc && source && (React.createElement(\"video\", __assign$1({ onClick: function (evt) {\n evt.preventDefault();\n }, \n //onLoadedMetadata={handleLoaded}\n id: \"files-ui-video\", \n //controls={controls}\n ref: videoRef, className: className || \"filesui-video-preview\", \n //autoPlay={autoplay}\n src: source, \n //width={\"100%\"}\n height: \"100%\", style: style }, others),\n React.createElement(\"source\", { type: \"video/webm\" }),\n React.createElement(\"source\", { type: \"video/ogg\" }),\n React.createElement(\"source\", { type: \"video/mp4\" })))));\n};\n\nvar FilesUiProvider = function (props) {\n var children = props.children, config = props.config;\n return (React.createElement(FilesUiContext.Provider, { value: config || {} }, children));\n};\n\nexport { ABORTED_ERROR_RESPONSE, Avatar, Dropzone, DropzoneEnglish, DropzoneFrench, DropzoneItalian, DropzoneLocalizer, DropzoneLocalizerSelector, DropzonePortuguese, DropzoneRussian, DropzoneSimplifiedChinese, DropzoneSpanish, DropzoneTraditionalChinese, ExtFileInstance, FileCard, FileIdGenerator, FileInputButton, FileItemEnglish, FileItemFrench, FileItemItalian, FileItemLocalizer, FileItemLocalizerSelector, FileItemPortuguese, FileItemRussian, FileItemSimplifiedChinese, FileItemSpanish, FileItemTraditionalChinese, FileMosaic, FilesUiProvider, FullScreen, ImagePreview, JSON_PARSE_ERROR_RESPONSE, JsonParseResponse, MaterialButton, NAMED_COLORS, NO_XHR_PROVIDED_ERROR, SyntheticFile, TIMEOUT_ERROR_RESPONSE, UNEXPECTED_ERROR_RESPONSE, ValidateErrorEnglish, ValidateErrorFrench, ValidateErrorItalian, ValidateErrorLocalizer, ValidateErrorLocalizerSelector, ValidateErrorPortuguese, ValidateErrorRussian, ValidateErrorSimplifiedChinese, ValidateErrorSpanish, ValidateErrorTraditionalChinese, VideoPreview, aac, abw, accdb, addClassName, addExtraData, addHeaders, asureColor, cleanInput, colourNameToHex, completeAsureColor, completeUploadResult, createListOfMultiTypeFile, createSyntheticFile, createUploadConfig, darkerColor, extFileMock, extFileReconcilation, fakeFuiUpload, fileListToExtFileArray, fileListToExtFileInstanceArray, fileListvalidator, fileSizeFormater, getExt, getImageOrientation, getLocalFileItemData, getRandomInt, getURLFileIco, getURLFileIcoFromNameAndType, hexColorToRGB, hexTodec, instantPreparingToUploadOne, isHexColor, isUploadAbleExtFile, isValidateActive, makeErrorUploadResponse, makeServerResponse, makeSuccessUploadResponse, makeSyntheticExtFile, prepToUploadOne, preparingToUploadOne, readAsArrayBuffer, readAsBinaryString, readAsDataURL, readAsText, resizeImage, sanitizeArrExtFile, separateAccept, setNextUploadStatus, setPrepToUploading, shrinkWord, sleepPreparing, sleepTransition, toUploadableExtFileList, unableToUploadResult, unexpectedErrorUploadResult, uploadExtFile, uploadFile, uploadFormData, uploadOne, uploadOneExtFile, useFakeProgress, validateAccept, validateExtFile, validateExtFileList, validateFile };\n//# sourceMappingURL=index.es.js.map\n"],"names":["___$insertStyle","css","style","__assign$1","t","s","n","p","__rest","e","i","__awaiter$1","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","rejected","result","__generator$1","body","_","f","y","g","verb","v","op","__spreadArray$1","to","from","pack","ar","fileSizeFormater","fileSize","DropzoneItalian","amountOfFiles","uploaded","accept","maxFileSize","numberOfValidFiles","maxFiles","FileItemItalian","ValidateErrorItalian","maxSize","DropzoneFrench","FileItemFrench","ValidateErrorFrench","DropzoneEnglish","FileItemEnglish","ValidateErrorEnglish","DropzoneSpanish","FileItemSpanish","ValidateErrorSpanish","DropzoneRussian","FileItemRussian","ValidateErrorRussian","DropzonePortuguese","FileItemPortuguese","ValidateErrorPortuguese","DropzoneSimplifiedChinese","FileItemSimplifiedChinese","ValidateErrorSimplifiedChinese","DropzoneTraditionalChinese","FileItemTraditionalChinese","ValidateErrorTraditionalChinese","FileItemLocalizer","FileItemLocalizerSelector","local","DropzoneLocalizer","DropzoneLocalizerSelector","ValidateErrorLocalizer","ValidateErrorLocalizerSelector","readAsDataURL","file","onProgress","onError","reader_1","getImageOrientation","imageSource","img_1","ev","width","height","sevenzip","aac","abw","accdb","avi","azw","bmp","bz","bz2","cda","csh","csv","docx","drawio","eot","epub","freearc","gif","gzip","html","icalendar","java","jar","javascript","jpeg","json","jsonld","midi","mp3","mp4","mpeg","mpkg","octet","odp","ods","odt","oga","ogv","ogx","opus","otf","pdf","php","png","pptx","psd","python","tar","rar","react","rtf","sass","sh","swf","text","tiff","ttf","typescript","vsd","vue","wav","webm","weba","webp","wma","wmv","woff","xlsx","xml","xul","zip","getExt","fileName","re","DEF_GEN_MIME","audioSelector","tailMime","textSelector","imageSelector","fontSelector","videoSelector","applicationSelector","mimeSelector","mimeType","headerMime","extensionSelector","extension","genericMime","checkIsCode","getURLFileIco","customIcons","mimeUrlList","extention","customUrl","getURLFileIcoFromNameAndType","name","type","ExtFileInstance","extFile","id","size","imageUrl","valid","errors","uploadMessage","uploadStatus","progress","xhr","extraData","extraUploadData","serverResponse","downloadUrl","videoUrl","uploadUrl","extFileInstance","extFileClone","extFileInstanceKeys","extFileInstanceValues","currentValue","currKey","__assign","__awaiter","__generator","__spreadArray","ExtFileManager","extFilesInstances","nextId","dropzoneId","localFiles","validateFiles","cleanOnUpload","resultExtList","temLocalFiles","F","resultSet","FileIdGenerator","fileListToExtFileArray","fileList","extFileArray","isValidateActive","validator","sleepPreparing","preparingTime","fakeFuiUpload","randomNumber","success","message","payload","getRandomInt","min","max","cleanInput","inputElement","addClassName","baseClassName","className","isUploadAbleExtFile","validateFilesFlag","getLocalFileItemData","localFileName","localFileType","localFileSize","separateAccept","commaSeparatedAccpet","acceptItem","validateAccept","headerMimeFile","tailMimeFile","validateExtFileList","extFileList","remainingValids","localValidatorProps","localization","fileListResult","remaining","ValidationErrorLocalizer","maxFileErrorMessenger","currentExtFile","validateExtFile","validatorProps","localErrors","extFileResult","resultCustomValidation","errorsResult","maxFileSizeErrorMessenger","isValid","addExtraData","formData","extraDataKeys","addHeaders","headers","headerKeys","NO_URL_MESSAGE","NO_XHR_MESSAGE","TIMEOUT_ERROR_RESPONSE","ABORTED_ERROR_RESPONSE","JSON_PARSE_ERROR_RESPONSE","UNEXPECTED_ERROR_RESPONSE","NO_XHR_PROVIDED_ERROR","NO_URL_PROVIDED_ERROR","JsonParseResponse","jsonResponse","fuiResponse","makeSuccessUploadResponse","responseFui","makeErrorUploadResponse","uploadBlob","method","endpoint","data","finalMethod","_a","uploadFormData","uploadExtFile","url","urlFromExtFile","uploadLabel","asBlob","uploader","finalUrl","localMethod","fileToUpload","finalExtraData","unexpectedErrorUploadResult","toUploadableExtFileList","instantPreparingToUploadOne","sleepTransition","time","sanitizeArrExtFile","arrExtFile","setNextUploadStatus","extFileobj","prevStatus","nextStstaus","NAMED_COLORS","darkerColor","colorInput","percentage","darkedColor","reduce","component1","component2","component3","isHexColor","colourNameToHex","hexTodec","slicer","components","hexColorToRGB","perc","defaultColor","resultDefault","color","resultOk","hexArray","colour","decArray","letter","asureColor","DEFAULT_FONT_COLOR","completeAsureColor","mergeProps","incommingProps","defaultProps","InputHidden","props","onChange","inputRef","multiple","React.createElement","React.Fragment","defaultDrozoneProps","DEFAULT_BORDER_RADIUS","DropzoneChildren","children","label","isEmptyArray","handleDropUtil","evt","handleDragUtil","handleClickUtil","handleClickInput","input","asureRippleColor","createFuiRippleFromDiv","fuiContainerAbs","fuiContainerRel","circle","diameter","createRippleButton","event","variant","buttonAnchorDiv","DropzoneDisabledLayer","open","handleClick","handleDrag","handleDrop","finalDisabledLayerClassName","parseSize","sizeStr","Cancel","colorFill","onClick","finalSize","finalStyle","CheckCircle","React__default","Clean","Clear","CloudDone","DoDisturb","DownloadFile","InfoDisney","PlayIcon","Upload","UploadError","UploadingProcess","spin","finalClassname","Visibility","DropzoneHeader","onReset","onClean","onUploadStart","isUploading","urlPresent","borderRadius","resetStyles","_b","firstClassName","DropzoneHeaderLocalizer","handleClean","handleStartUploading","makeHeader","maxFileSizeMessenger","maxFileSizeFormatted","validFileSizeMessenger","finalClassName","HeaderItem","index","DropzoneFooter","_c","allowedTypesLabel","_d","customMessage","_e","DropzoneFooterLocalizer","accepCustomMessenger","DynamiCSS","insertStyleSheet","dynamicSheet","result_id","styleSheet","contetRaw","toRawStyleSheet","appendResult","editStyleSheet","sheetRules","removeStyleSheet","htmlObject","existStyleSheet","makeStyleSheet","isUpper","character","fromUpperCaseToHyphen","ruleLabel","charUpper","isupper","currentChar","parts","isPseudo","makeRawRuleLabel","splitedClassName","rawStyleSheet","nestedPseudos","j","currentRule","currnetRawRule","ruleskeys","currentKey","styleLabel","pseudoClassName","styleRule","MaterialButtonStyleManager","idClassName","disabled","textColor","textDecoration","useMaterialButtonClassName","React.useState","idStyles","setIdStyles","styleInjected","setStyleInjected","setFinalClassName","handleInserStyle","idStyle","finalTextDecoration","React.useEffect","removeStyle","FilesUiContext","MaterialButton","href","disableRipple","darkModeProp","rest","darkModeContext","React.useContext","darkMode","React.useMemo","materialButtonClassName","finalMBClassNameDarkMode","DropzoneButtons","cleanButton","abortButton","containerClassName","containerStyle","deleteButton","uploadButton","onAbort","onDelete","onUpload","top","actionButtonsList","ab","tailClassName","actionButtonProps","DropLayer","onDrop","onDragLeave","classNameLayer","useDropzoneClassName","background","minHeight","finalDropzoneId","finalClassNameHeader","setFinalClassNameHeader","finalClassNameFooter","setFinalClassNameFooter","_f","finalClassNameDisabled","setFinalClassNameDisabled","makeClassName","makeDynamicDropzoneStyleSheet","rootColorBorderStyle","rootColorBorderStyleHideBorder","headerBorderStyle","footerBorderStyle","disabledLayerStyle","useDropzoneFileListUpdater","setLocalFiles","setNumberOfValidFiles","arrOfExtFiles","extFileIndex","currExtFileObj","localValidator","validatedExtFileList","x","makeDropLayerDynamicStyle","useDropLayerClassName","classNameCreated","setClassNameCreated","useFileMosaicInitializer","preview","isImage","setIsImage","isVideo","setIsVideo","setUrl","setImageSource","videoSource","setVideoSource","isReady","setIsReady","init","response","response_1","getHeaderAndTail","splittedType","useIsUploading","setIsUploading","lastUploadStatus","setLastUploadStatus","useProgress","localProgress","setLocalProgress","isThereValidUrl","urlFunction","Dropzone","cleanFiles","autoClean","uploadConfig","fakeUpload","groupUpload","onUploadFinish","locProps","onDragEnter","actionButtons","dropOnLayer","header","footer","headerConfig","footerConfig","clickable","behaviour","locContext","_g","_h","autoUpload","_j","_k","actionButtonsPosition","styleBorderRadius","_l","cleanFilesHeader","_m","deleteFilesHeader","_o","maxFileSizeHeader","_p","uploadFilesHeader","_q","uploadingIconHedaer","_r","validFilesCountHeader","customHeader","classNameHeader","_s","resetStylesHeader","styleHeader","customFooter","_t","noMissingFilesLabel","_u","uploadProgressMessage","_v","uploadResultMessage","fuiRippleRefAbs","React.useRef","fuiRippleRefRel","_w","isDragging","setIsDragging","_x","_y","localMessage","setLocalMessage","_z","shouldUpload","uploadfiles","arrOfExtFilesInstances","totalNumber","missingUpload","totalRejected","currentCountUpload","uploadingMessenger","newExtFileLocal","serverResponses","unifiedUpload","respo_1","err_1","currentExtFileInstance","uploadResponse","fakeProgress","uploadedFile","finishUploadMessenger","handleFilesChange","arrOfFiles","el","err","handleAbortUpload","listExtFileLocal","_0","dropzoneClassName","headerClassName","footerClassName","disabledLayerClassName","dropLayerClassName","validatedFuiFileList","finalExtFileList","handleChangeInput","extFileListOutput","outerFuiValidation","fuiFileListToValidate","finalNumberOfValids","makeRipple","handleDragEnter","handleDragLeave","kamui","handleReset","finalDropzoneClassNameBorder","finalDropzoneClassNameBorderClickable","BasePreparingLoader","radius","finalRadius","finalX","finalY","LoaderContainer","InfiniteLoader","Layer","visible","otherProps","ImagePreviewDefaultProps","ImagePreview","src","alt","smartImgFit","finalHeight","finalWidth","setfinalDimensions","source","setSource","getSource","newImageSrc","handleSetStrSource","orientation_1","handleError","AbortedStatus","FileItemStatusLocalizer","EmptyStatus","ErrorStatus","PreparingStatus","onCancel","SuccessStatus","DynamicLoader","hidePerncentage","circleRef","setProgress","percent","myCircle","circumference","UploadingStatus","Tooltip","statusClassName","setSatusClassName","setMessage","handleChangeStatus","acum","curr","DownloadHidden","anchorRef","LayerContainer","FileMosaicName","FileMosaicUploadLayer","elevationContainerRef","listContainerStoryRef","statusHistory","setStatusHistory","tempStatusHistory","elevate","currentElevationContainer","currentElevationList","status","FileMosaicImageLayer","card","isBlur","localSource","setLocalSource","error","setError","FileMosaicStatus","FileMosaicInfoLayer","onCloseInfo","localName","sizeFormatted","localType","nameLabel","sizeLabel","typeLabel","FileMosaicSize","FileMosaicMainLayer","deleteIcon","downloadIcon","imageIcon","infoIcon","onDownload","onOpenInfo","onSee","onWatch","videoIcon","isActive","FileMosaic","propName","propSize","propType","info","backgroundBlurImage","alwaysActive","resultOnTooltip","onDoubleClick","onRightClick","icons","downloadRef","fileMosaicFileNameClassName","localSize","showInfo","setShowInfo","hovering","setHovering","handleOnHoverEnter","handleOnHoverLeave","handleDelete","handleOpenInfo","handleCloseInfo","handleDoubleClick","handleRightClick","innerDownload","anchorElement","handleDownload","handleAbort","FullScreen","onClose","handleClose","handleCloseEsc","VideoPreview","videoSrc","others","videoRef","newVideoSrc"],"mappings":"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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAkuO,EAElvOA,EAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAkf,EAElgBA,EAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAqwQ,EAErxQA,EAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA4c,EAyC5d,IAAImsB,GAAgB,SAAUjW,EAAO,CACjC,IAAI7F,EAAe6F,EAAM,aAAcrK,EAAOqK,EAAM,KAChDkW,EAA0B5nB,GAA0B6L,CAAY,EAAE,OACtE,OAAQiG,EAAAA,cAAoBC,EAAAA,SAAgB,KACxCD,EAAmB,cAAC0C,GAAW,CAAE,MAAO,UAAW,KAAMnN,GAAQ,GAAI,EACrEyK,EAAmB,cAAC,OAAQ,KACxB,IACA8V,EAAwB,OAAO,CAAC,CAC5C,EAEIC,GAAc,SAAUnW,EAAO,CAC/B,IAAI1Q,EAAS0Q,EAAM,OACfuV,EAAejmB,EAEb,OAAOA,GAAW,SACd,GAAG,OAAOA,EAAQ,IAAI,EACtBA,EAHJ,QAIN,OAAQ8Q,EAAAA,cAAoBC,EAAAA,SAAgB,KACxCD,gBAAoB,MAAO,CAAE,MAAO,CAAE,MAAO,OAAQ,OAAQmV,EAAe,CAAA,CAAC,CACrF,EAEIa,GAAc,SAAUpW,EAAO,CAC/B,IAAI7F,EAAe6F,EAAM,aAAcrK,EAAOqK,EAAM,KAChDkW,EAA0B5nB,GAA0B6L,CAAY,EAAE,OACtE,OAAQiG,EAAAA,cAAoBC,EAAAA,SAAgB,KACxCD,EAAAA,cAAoBwC,GAAO,CAAE,MAAO,wBAAyB,MAAO,CAC5D,gBAAiB,yBACjB,aAAc,KAC9B,EAAe,KAAMjN,GAAQ,GAAI,EACzByK,EAAmB,cAAC,OAAQ,KACxB,IACA8V,EAAwB,KAAK,CAAC,CAC1C,EAEIG,GAAkB,SAAUrW,EAAO,CACnC,IAAIsW,EAAWtW,EAAM,SAAU7F,EAAe6F,EAAM,aAAcrK,EAAOqK,EAAM,KAC3EkW,EAA0B5nB,GAA0B6L,CAAY,EAAE,OACtE,OAAQiG,EAAAA,cAAoBC,EAAAA,SAAgB,KACxCD,EAAmB,cAAC0U,GAAgB,CAAE,QAASwB,EAAU,KAAM3gB,GAAQ,GAAI,EAC3EyK,EAAAA,cAAoB,OAAQ,KAAM8V,EAAwB,SAAS,CAAC,CAC5E,EAEIK,GAAgB,SAAUvW,EAAO,CACjC,IAAI7F,EAAe6F,EAAM,aAAcrK,EAAOqK,EAAM,KAChDkW,EAA0B5nB,GAA0B6L,CAAY,EAAE,OACtE,OAAQiG,EAAAA,cAAoBC,EAAAA,SAAgB,KACxCD,EAAmB,cAACqC,GAAa,CAAE,MAAO,UAAW,KAAM9M,GAAQ,GAAI,EACvEyK,EAAmB,cAAC,OAAQ,KACxB,IACA8V,EAAwB,OAAO,CAAC,CAC5C,EAEApsB,EAAgB;AAAA;AAAA;AAAA;AAAA,EAAuG,EAEvH,IAAI0sB,GAAgB,SAAUxW,EAAO,CACjC,IAAIrK,EAAOqK,EAAM,KAAMb,EAAQa,EAAM,MAGrChW,EAAQgW,EAAM,MAEd5B,EAAa4B,EAAM,WAAYyW,EAAkBzW,EAAM,gBAAiByU,EAASzU,EAAM,OAAQiM,EAAIjM,EAAM,EAAGtU,EAAIsU,EAAM,EAAG3Q,EAAQ2Q,EAAM,MAAOsC,EAAUtC,EAAM,QAG1J0U,EAAcD,GAAU,GACxBE,EAAS1I,GAAK,GACd2I,EAASlpB,GAAK,GACd6W,EAAYL,EAAUvM,CAAI,EAC1B6M,EAAaxY,GAAgB,GAC7B0sB,EAAYxF,SAAa,IAAI,EACjC,SAASyF,EAAYC,EAASC,EAAUC,EAAe,CACnDD,EAAS,MAAM,iBAAmB,GAAG,OAAOC,GAAiB,EAAIF,EAAU,IAAI,CAIlF,CAYD,OAXAtO,EAAAA,UAAgB,UAAY,CACxB,IAAIuO,EAAWH,EAAU,QAEzB,GAAIG,GAAa,MAEbzY,IAAe,OAAW,CAC1B,IAAI0Y,EAAgB,EAAI,KAAK,GAAKD,EAAS,EAAE,QAAQ,MACrDA,EAAS,MAAM,gBAAkB,GAAG,OAAOC,EAAe,OAAO,EACjEH,EAAYvY,GAAc,IAAM,IAAMA,EAAYyY,EAAUC,CAAa,CAC5E,CACT,EAAO,CAAC1Y,CAAU,CAAC,EACXA,IAAe,OACPgC,gBAAoByU,GAAiB,CAAE,KAAMlf,CAAM,EACvDyK,EAAmB,cAACC,EAAc,SAAE,KAChCD,gBAAoB,MAAO,CAAE,UAAW,wBAAyB,MAAO,6BAA8B,WAAY,+BAAgC,MAAO,GAAG,OAAOmC,EAAW,IAAI,EAAG,OAAQ,GAAG,OAAOA,EAAW,IAAI,EAAG,MAAOC,CAAY,EACxOpC,gBAAoB,SAAU,CAAE,MAAO,CAC/B,UAAW,iBACX,gBAAiB,QACpB,EAAE,OAAQjB,GAAS,UAAW,GAAI,GAAG,OAAOwV,CAAM,EAAG,GAAI,GAAG,OAAOC,CAAM,EAAG,EAAG,GAAG,OAAOF,CAAW,EAAG,YAAa,GAAG,OAAOrlB,GAAS,EAAG,IAAI,EAE/I,GAAI,SAAU,IAAKqnB,EAAW,KAAM,MAAM,CAAE,EAChD,CAACD,GAAmBrY,IAAe,QAAcgC,EAAAA,cAAoB,OAAQ,CAAE,UAAW,+BAAgC,EAAG,GAAG,OAAOuU,CAAM,EAAG,EAAG,GAAG,OAAQA,EAAS,EAAK,CAAC,CAAG,EAAE,GAAG,OAAOvW,EAAW,QAAQ,CAAC,EAAG,IAAI,CAAC,CAAE,EAC9NkE,GAAYlC,EAAmB,cAAC,MAAO,CAAE,MAAO,CACxC,SAAU,WACV,MAAO,OACP,OAAQ,OACR,QAAS,OACT,WAAY,SACZ,eAAgB,QACxC,CAAuB,EACHA,EAAAA,cAAoBwC,GAAO,CAAE,MAAO,yBAA0B,KAAM,GAAI,QAASN,CAAO,CAAE,CAAC,CAAE,CAAC,EAEnGlC,EAAmB,cAACC,WAAgB,IAAI,CAEvD,EAEAvW,EAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA+M,EAE/N,IAAIitB,GAAkB,SAAU/W,EAAO,CACnC,IAAI7F,EAAe6F,EAAM,aAAcrK,EAAOqK,EAAM,KAAM2J,EAAU3J,EAAM,QAAS/J,EAAW+J,EAAM,SAChGkW,EAA0B5nB,GAA0B6L,CAAY,EAAE,OACtE,OAAQiG,EAAAA,cAAoBC,EAAAA,SAAgB,KACxCpK,IAAa,OAAamK,EAAmB,cAACoW,GAAe,CAAE,KAAM,GAAI,EAAG,GAAI,EAAG,GAAI,OAAQ,GAAI,WAAYvgB,EAAU,MAAO,EAAG,gBAAiBA,IAAa,QAAa0T,IAAY,OAAW,QAASA,EAAS,EAAMvJ,EAAmB,cAAC0U,GAAgB,CAAE,QAASnL,EAAS,KAAMhU,GAAQ,EAAE,CAAE,EACvSyK,EAAmB,cAAC,OAAQ,KACxB,IACA8V,EAAwB,SAAS,CAAC,CAC9C,EAEApsB,EAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA0/B,EAyD1gCA,EAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA6gF,EAE7hF,IAAIktB,GAAU,SAAUhX,EAAO,CAC3B,IAKAhK,EAAegK,EAAM,aAAcnK,EAAQmK,EAAM,MAAOlK,EAASkK,EAAM,OAEvEjK,EAAgBiK,EAAM,cAAe6B,EAAO7B,EAAM,KAC9CtD,EAAKmL,EAAAA,SAAe,MAAS,EAAGoP,EAAkBva,EAAG,CAAC,EAAGwa,EAAoBxa,EAAG,CAAC,EACjFsH,EAAK6D,EAAAA,SAAe,MAAS,EAAGpP,EAAUuL,EAAG,CAAC,EAAGmT,EAAanT,EAAG,CAAC,EAClEoT,EAAqB,SAAUphB,EAAcH,EAAO,CAEhDG,IAAiB,QACjBmhB,EAAWphB,CAAa,EAEpBmhB,EADAlhB,IAAiB,UACC,UAGA,iBAHS,GAO3BH,IAAU,SACLA,IACDqhB,EAAkB,iBAAiB,EACnCC,EAAWrhB,EACLA,EAAO,OAAO,SAAUuhB,EAAMC,EAAM,CAClC,OAAAD,GAAQ,GAAG,OAAOC,EAAM,IAAI,EACrBD,CACV,EAAE,EAAE,EACH,EAAE,GAI5B,EACI/O,OAAAA,EAAAA,UAAgB,UAAY,CACxB8O,EAAmBphB,EAAcH,CAAK,CAE9C,EAAO,CAACG,EAAcH,CAAK,CAAC,EAChBuK,EAAAA,cAAoBC,EAAAA,SAAgB,KAAMwB,GAAQpJ,GAAWwe,GAAoB7W,gBAAoB,OAAQ,CAAE,UAAW,wBAAwB,OAAO6W,CAAe,CAAC,EAAIxe,CAAO,CAAE,CAClM,EAEI8e,GAAiB,SAAUvX,EAAO,CAClC,IAAI1J,EAAc0J,EAAM,YAAawX,EAAYxX,EAAM,UAAWjM,EAAWiM,EAAM,SACnF,SAAS8B,EAAYjB,EAAK,CACtBA,EAAI,gBAAe,CACtB,CACD,OAAIvK,EACQ8J,EAAmB,cAAC,IAAK,CAAE,IAAKoX,EAAW,OAAQ,SAAU,KAAMlhB,EAAa,SAAUvC,EAAU,OAAQ,GAAM,IAAK,sBAAuB,QAAS+N,GAAe,eAAe,EAC1L1B,EAAmB,cAACC,WAAgB,IAAI,CACnD,EAEAvW,EAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAq5K,EAEr6KA,EAAgB;AAAA;AAAA,EAAuD,EAEvE,IAAI2tB,GAAiB,SAAUzX,EAAO,CAClC,IAAIhW,EAAQgW,EAAM,MAAO9G,EAAY8G,EAAM,UAAWS,EAAWT,EAAM,SACnEyE,EAAiBzL,GAAaE,GAAa,GAAI,0BAA0B,EAC7E,OAAQkH,EAAmB,cAAC,MAAO,CAAE,UAAWqE,EAAgB,MAAOza,GAASyW,CAAQ,CAC5F,EAEIiX,GAAiB,SAAU1X,EAAO,CAClC,IAAIjM,EAAWiM,EAAM,SACrB,OAAIjM,EACOqM,gBAAoB,OAAQ,KAAMrM,CAAQ,EAE1CqM,EAAmB,cAACC,WAAgB,IAAI,CAEvD,EAEAvW,EAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAkhC,EAEliC,IAAI6tB,GAAwB,SAAU3X,EAAO,CACzC,IAAIhK,EAAegK,EAAM,aAAcsW,EAAWtW,EAAM,SAAU2J,EAAU3J,EAAM,QAAS/J,EAAW+J,EAAM,SAAU7F,EAAe6F,EAAM,aAEvI4X,EAAwB1G,SAAa,IAAI,EACzC2G,EAAwB3G,SAAa,IAAI,EACzCxU,EAAKmL,EAAAA,SAAe,CAAC,MAAS,CAAC,EAAGiQ,EAAgBpb,EAAG,CAAC,EAAGqb,EAAmBrb,EAAG,CAAC,EACpF4L,EAAAA,UAAgB,UAAY,CACxByP,EAAiB,SAAUD,EAAe,CACtC,GAAIA,EAAcA,EAAc,OAAS,CAAC,IAAM,aAC5C9hB,IAAiB,YAAa,CAC9B,IAAIgiB,EAAoBjsB,GAAgB,CAAE,EAAE+rB,EAAe,EAAI,EAC/D,OAAAE,EAAkBF,EAAc,OAAS,CAAC,EAAI9hB,EAEvCjK,GAAgB,CAAA,EAAIisB,EAAmB,EAAI,CACrD,CACD,OAAOjsB,GAAgBA,GAAgB,CAAA,EAAI+rB,EAAe,EAAI,EAAG,CAAC9hB,CAAY,EAAG,EAAK,CAClG,CAAS,CACT,EAAO,CAACA,CAAY,CAAC,EACjB,IAAIiiB,EAAU,UAAY,CACtB,IAAIC,EAA4BN,EAAsB,QAClDO,EAAuBN,EAAsB,QAC7CK,IAA8B,MAAQC,IAAyB,OAEnEA,EAAqB,MAAM,IACvB,GAAKL,EAAc,OAAS,GAAK,IAAM,KACnD,EACIxP,OAAAA,EAAAA,UAAgB,UAAY,CACpBwP,EAAc,OAAS,GACvBG,GAEZ,EAAO,CAACH,EAAc,MAAM,CAAC,EAEjB1X,EAAAA,cAAoB,MAAO,CAAE,UAAW,4BAA6B,IAAKwX,CAAuB,EACrGxX,EAAAA,cAAoB,MAAO,CAAE,UAAW,iBAAkB,IAAKyX,CAAuB,EAAEC,EAAc,IAAI,SAAUM,EAAQzT,EAAO,CAC/H,OAAQyT,EAAM,CACV,IAAK,YACD,OAAQhY,EAAAA,cAAoB,MAAO,CAAE,UAAW,iBAAkB,IAAKuE,EAAQ,CAAG,EAC9EvE,EAAmB,cAACiW,GAAiB,CAAE,SAAUC,EAAU,aAAcnc,CAAc,CAAA,CAAC,EAChG,IAAK,YACD,OAAQiG,EAAAA,cAAoB,MAAO,CAAE,UAAW,iBAAkB,IAAKuE,EAAQ,CAAG,EAC9EvE,gBAAoB2W,GAAiB,CAAE,QAASpN,EAAS,SAAU1T,EAAU,aAAckE,CAAc,CAAA,CAAC,EAClH,IAAK,QACD,OAAQiG,EAAAA,cAAoB,MAAO,CAAE,UAAW,iBAAkB,IAAKuE,EAAQ,CAAG,EAC9EvE,EAAAA,cAAoBgW,GAAa,CAAE,aAAcjc,CAAY,CAAE,CAAC,EACxE,IAAK,UACD,OAAQiG,EAAAA,cAAoB,MAAO,CAAE,UAAW,iBAAkB,IAAKuE,EAAQ,CAAG,EAC9EvE,EAAAA,cAAoBmW,GAAe,CAAE,aAAcpc,CAAY,CAAE,CAAC,EAC1E,IAAK,UACD,OAAQiG,EAAAA,cAAoB,MAAO,CAAE,UAAW,iBAAkB,IAAKuE,EAAQ,CAAG,EAC9EvE,EAAAA,cAAoB6V,GAAe,CAAE,aAAc9b,CAAY,CAAE,CAAC,EAC1E,QACI,OAAQiG,EAAAA,cAAoB,MAAO,CAAE,UAAW,iBAAkB,IAAKuE,EAAQ,CAAG,EAC9EvE,gBAAoB+V,GAAa,IAAI,CAAC,CACjD,CACJ,CAAA,CAAC,CAAC,CACX,EAEIkC,GAAuB,SAAUrY,EAAO,CAExC,IAAI9Q,EAAc8Q,EAAM,YAAanD,EAAMmD,EAAM,IAAKjM,EAAWiM,EAAM,SAAUsY,EAAOtY,EAAM,KAAMuY,EAASvY,EAAM,OAAQsV,EAActV,EAAM,YAC3ItD,EAAKmL,EAAAA,SAAe,MAAS,EAAG2Q,EAAc9b,EAAG,CAAC,EAAG+b,EAAiB/b,EAAG,CAAC,EAC1EsH,EAAK6D,EAAAA,SAAe,EAAK,EAAG6Q,EAAQ1U,EAAG,CAAC,EAAG2U,EAAW3U,EAAG,CAAC,EAE9DsE,EAAAA,UAAgB,UAAY,CACxBmQ,EAAevpB,GAAe2N,CAAG,CACzC,EAAO,CAAC3N,EAAa2N,CAAG,CAAC,EAKrB,IAAImZ,EAAc,UAAY,CAC1B2C,EAAS,EAAI,EACbF,EAAe5b,CAAG,CAE1B,EAEI,OAAI0b,EACQnY,EAAmB,cAACC,WAAgB,KAAM,CAACiY,GAAQ,CAACI,GAASxpB,GAAgBkR,EAAmB,cAAC+U,GAAc,CAAE,IAAKqD,EAAa,IAAK,QAAQ,OAAOzkB,CAAQ,EAAG,YAAa,GAAO,CAAE,EAE5LqM,EAAAA,cAAoBC,EAAAA,SAAgB,KACxCD,gBAAoB+U,GAAc,CAAE,QAASa,EAAa,IAAKwC,EAAa,MAAO,CAAE,aAAc,KAAK,EAAI,IAAK,WAAW,OAAOzkB,CAAQ,EAAG,YAAauhB,CAAa,CAAA,CAAC,CACjL,EAEAxrB,EAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA6sC,EAE7tC,IAAI8uB,GAAmB,SAAU5Y,EAAO,CACpC,IAAInK,EAAQmK,EAAM,MAAOhK,EAAegK,EAAM,aAAc7F,EAAe6F,EAAM,aAAchW,EAAQgW,EAAM,MACzGkW,EAA0B5nB,GAA0B6L,CAAY,EAAE,OACtE,OAAInE,IAAiB,UACToK,EAAAA,cAAoB,MAAO,CAAE,UAAW,qDAAsD,MAAOpW,CAAO,EAChHoW,gBAAoByC,GAAW,CAAE,MAAO,UAAW,KAAM,QAAS,UAAW,cAAe,EAC5FqT,EAAwB,OAAO,EAEnClgB,IAAiB,SAAWA,IAAiB,UACrCoK,EAAAA,cAAoB,MAAO,CAAE,UAAW,wDAAyD,MAAOpW,CAAO,EACnHoW,gBAAoB+C,GAAa,CAAE,MAAO,UAAW,KAAM,cAAe,UAAW,cAAe,EACpG+S,EAAwB,KAAK,EAEVrgB,GAAU,KAC7BA,EACQuK,EAAAA,cAAoB,MAAO,CAAE,UAAW,qDAAsD,MAAOpW,CAAO,EAChHoW,gBAAoBqC,GAAa,CAAE,MAAO,UAAW,KAAM,QAAS,UAAW,cAAe,EAC9FyT,EAAwB,KAAK,EAGzB9V,EAAAA,cAAoB,MAAO,CAAE,UAAW,wDAAyD,MAAOpW,CAAO,EACnHoW,gBAAoB0C,GAAW,CAAE,MAAO,UAAW,KAAM,QAAS,UAAW,cAAe,EAC5FoT,EAAwB,MAAM,EAGnC9V,EAAmB,cAACC,WAAgB,IAAI,CACnD,EAEIwY,GAAsB,SAAU7Y,EAAO,CACvC,IAAInK,EAAQmK,EAAM,MAAO7F,EAAe6F,EAAM,aAAc8Y,EAAc9Y,EAAM,YAAahK,EAAegK,EAAM,aAAc+Y,EAAY/Y,EAAM,UAAWgZ,EAAgBhZ,EAAM,cAAeiZ,EAAYjZ,EAAM,UAChN3R,EAAoBC,GAA0B6L,CAAY,EAC1DuC,EAAKrO,EAAkB,cAAe6qB,EAAYxc,EAAG,KAAMyc,EAAYzc,EAAG,KAAM0c,EAAY1c,EAAG,KACnG,OAAQ0D,EAAAA,cAAoBC,EAAAA,SAAgB,KACxCD,EAAAA,cAAoB,MAAO,CAAE,UAAW,wCAA0C,EAC9EA,EAAAA,cAAoBgC,GAElB,CAEE,MAAO,wBAAyB,QAAS0W,EAAa,UAAW,OAAO,CAAE,EAC9E1Y,gBAAoBwY,GAAkB,CAAE,MAAO/iB,EAAO,aAAcG,EAAc,aAAcmE,CAAY,CAAE,CAAC,EACnHiG,EAAAA,cAAoB,MAAO,CAAE,UAAW,SAAS,EAAI8Y,CAAS,EAC9D9Y,EAAAA,cAAoB,MAAO,CAAE,UAAW,OAAO,EAAI2Y,CAAS,EAC5D3Y,EAAAA,cAAoB,MAAO,CAAE,UAAW,SAAS,EAAI+Y,CAAS,EAC9D/Y,EAAAA,cAAoB,MAAO,CAAE,UAAW,OAAO,EAAI4Y,CAAa,EAChE5Y,EAAAA,cAAoB,MAAO,CAAE,UAAW,SAAS,EAAIgZ,CAAS,EAC9DhZ,EAAmB,cAAC,MAAO,CAAE,UAAW,OAAS,EAAE6Y,CAAS,CAAC,CACrE,EAEAnvB,EAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAAkc,EAEld,IAAIuvB,GAAiB,SAAUrZ,EAAO,CAClC,IAAIgZ,EAAgBhZ,EAAM,cAC1B,OAAQI,gBAAoBC,EAAAA,SAAgB,KAAM2Y,GAAkB5Y,EAAmB,cAAC,MAAO,CAAE,UAAW,wBAAwB,EAAI4Y,CAAa,CAAE,CAC3J,EAEIM,GAAsB,SAAUtZ,EAAO,CACvC,IAAIgJ,EAAWhJ,EAAM,SAAUuZ,EAAavZ,EAAM,WAAYwZ,EAAexZ,EAAM,aAAcyZ,EAAYzZ,EAAM,UAAW0Z,EAAW1Z,EAAM,SAAU4J,EAAW5J,EAAM,SAAU2Z,EAAa3Z,EAAM,WAAY4Z,EAAa5Z,EAAM,WAAY6Z,EAAQ7Z,EAAM,MAAO8Z,EAAU9Z,EAAM,QAASgZ,EAAgBhZ,EAAM,cAAenK,EAAQmK,EAAM,MAAO+Z,EAAY/Z,EAAM,UAAW7F,EAAe6F,EAAM,aAAchK,EAAegK,EAAM,aAAcga,EAAWha,EAAM,SAC9c,OAAQI,EAAAA,cAAoBC,EAAAA,SAAgB,KACxCD,EAAAA,cAAoB,MAAO,CAAE,UAAW,+BAA+B,EAAI4Z,GAAYT,GAAenZ,gBAAoBwC,GAAO,CAAE,UAAWoG,EAAW,+BAAiC,qBAAsB,MAAOA,EAAW,UAAY,0BAA2B,QAASY,EAAU,KAAM,QAAS,UAAW,aAAa,CAAE,CAAE,EACvUxJ,EAAAA,cAAoB,MAAO,CAAE,UAAW,+BAAiC,EACrEA,EAAAA,cAAoB,MAAO,CAAE,UAAW,yBAA2B,EAC/DA,gBAAoBwY,GAAkB,CAAE,MAAO/iB,EAAO,aAAcG,EAAc,aAAcmE,EAAc,EAC9G6f,GAAYhB,GAAkB5Y,gBAAoBiZ,GAAgB,CAAE,cAAeL,CAAe,CAAA,CAAE,EACxG5Y,gBAAoB,MAAO,CAAE,UAAW,0BAA4B,EAAE4Z,GAAa5Z,EAAAA,cAAoBC,EAAAA,SAAgB,KACnHoZ,GAAcrZ,EAAmB,cAACmD,GAAY,CAAE,UAAWyF,EACjD,+BACA,qBAAsB,MAAOA,EAAW,UAAY,0BAA2B,QAAS6Q,EAAO,KAAM,OAAO,CAAE,EACxHE,GAAc3Z,EAAmB,cAAC6C,GAAU,CAAE,UAAW+F,EAC/C,+BACA,qBAAsB,MAAOA,EAAW,UAAY,0BAA2B,QAAS8Q,EAAS,KAAM,OAAO,CAAE,EAC1HN,GAAiBpZ,EAAmB,cAAC2C,GAAc,CAAE,UAAWiG,EACtD,+BACA,qBAAsB,MAAOA,EAAW,UAAY,0BAA2B,QAAS2Q,EAAY,KAAM,OAAO,CAAE,EAC7HD,GAAatZ,EAAmB,cAAC4C,GAAY,CAAE,UAAWgG,EAChD,+BACA,qBAAsB,QAAS4Q,EAAY,MAAO5Q,EAAW,UAAY,0BAA2B,KAAM,OAAS,CAAA,CAAE,CAAE,CAAC,CAAC,CACnJ,EAEIiR,GAAa,SAAUja,EAAO,CAC9B,IAAIhW,EAAQgW,EAAM,MAAO9G,EAAY8G,EAAM,UAAWnR,EAAOmR,EAAM,KAAMka,EAAWla,EAAM,KAAMma,EAAWna,EAAM,KAAMoa,EAAWpa,EAAM,KAAMtK,EAAKsK,EAAM,GAAInK,EAAQmK,EAAM,MAAOlK,EAASkK,EAAM,OAAQhK,EAAegK,EAAM,aAAcjK,EAAgBiK,EAAM,cAAe/J,EAAW+J,EAAM,SAAU9J,EAAM8J,EAAM,IAAKuO,EAAWvO,EAAM,aAAcuM,EAAUvM,EAAM,QAASpK,EAAWoK,EAAM,SAAUzJ,EAAWyJ,EAAM,SAAUqa,EAAOra,EAAM,KAAMtD,EAAKsD,EAAM,oBAAqBsa,EAAsB5d,IAAO,OAAS,GAAOA,EAAIkM,EAAe5I,EAAM,SAAUgE,EAAKhE,EAAM,aAAcua,EAAevW,IAAO,OAAS,GAAOA,EAAIa,EAAK7E,EAAM,gBAAiBwa,EAAkB3V,IAAO,OAAS,GAAOA,EAAIvO,EAAc0J,EAAM,YAAa4J,EAAW5J,EAAM,SAAUsW,EAAWtW,EAAM,SAAU2J,EAAU3J,EAAM,QAAS2Z,EAAa3Z,EAAM,WAAY6Z,EAAQ7Z,EAAM,MAAO8Z,EAAU9Z,EAAM,QAASya,GAAgBza,EAAM,cAAesC,EAAUtC,EAAM,QAAS0a,EAAe1a,EAAM,aAAc+E,GAAK/E,EAAM,YAAasV,GAAcvQ,KAAO,OAAS,cAAgBA,GAE1hCE,GAAK8D,EAAgB,WAACP,EAAc,EAAGM,GAAkB7D,GAAG,SAAU0V,GAAQ1V,GAAG,MAAOgK,EAAahK,GAAG,aACxG9K,EAAeoU,IAAa,OAAYA,EAAWU,EACnDjG,GAAWJ,IAAiB,OAAYA,EAAeE,GAIvD8R,GAAc1J,SAAa,IAAI,EAC/BzM,GAAiBzL,GAAaA,GAAa,uDAAwDE,CAAS,EAAGoJ,EAAU,YAAc,MAAS,EAChJuY,GAA8B7R,GAC5B,2CACA,iCAEF+B,GAAK1R,GAAqBxK,EAAMqrB,EAAUE,EAAUD,CAAQ,EAAGpB,GAAYhO,GAAG,CAAC,EAAGkO,GAAYlO,GAAG,CAAC,EAAG+P,GAAY/P,GAAG,CAAC,EAErH6C,GAAgBD,GAAY1X,EAAUC,CAAG,EAGzCgZ,EAAK5C,GAAyBzd,EAAMqrB,EAAUE,EAAUvkB,EAAO0W,EAAS3W,EAAUW,EAAUokB,EAAK,EAAG3N,GAAUkC,EAAG,CAAC,EAAG1C,GAAU0C,EAAG,CAAC,EAAGxC,GAAUwC,EAAG,CAAC,EAAGrS,GAAMqS,EAAG,CAAC,EAAGhgB,GAAcggB,EAAG,CAAC,EAAGpC,GAAcoC,EAAG,CAAC,EAE3M8J,GAAgB5sB,GAAiB0uB,EAAS,EAE1C3L,GAAKtH,EAAAA,SAAe,EAAK,EAAGkT,GAAW5L,GAAG,CAAC,EAAG6L,GAAc7L,GAAG,CAAC,EAGhEE,GAAKxH,EAAAA,SAAe,EAAK,EAAGoT,GAAW5L,GAAG,CAAC,EAAG6L,GAAc7L,GAAG,CAAC,EAChE8L,GAAqB,UAAY,CAC7BZ,GAEJW,GAAY,EAAI,CACxB,EACQE,GAAqB,UAAY,CAC7Bb,GAEJW,GAAY,EAAK,CACzB,EAGQG,GAAe,UAAY,CAAE,OAAOzR,GAAa,KAA8B,OAASA,EAASlU,CAAE,CAAE,EAErG4lB,GAAiB,UAAY,CAAE,OAAON,GAAY,EAAI,CAAE,EAExDO,GAAkB,UAAY,CAAE,OAAOP,GAAY,EAAK,CAAE,EAC1DpX,GAAc2J,GAAevX,CAAY,EAC7CsS,EAAAA,UAAgB,UAAY,CAEpB1E,IAAemX,IACfQ,IAGZ,EAAO,CAAC3X,EAAW,CAAC,EAMhB,SAAS9B,GAAYvX,EAAG,CAEpBA,EAAE,gBAAe,EACjB+X,GAAY,MAAsCA,EAAQ/X,CAAC,CAC9D,CACD,IAAIixB,GAAoB,SAAU3a,EAAK,CAEnCA,EAAI,eAAc,EAClB4Z,IAAkB,MAA4CA,GAAc5Z,CAAG,CACvF,EACI,SAAS4a,GAAiB5a,EAAK,CAM3B6Z,GAAiB,MAA2CA,EAAa7Z,CAAG,CAC/E,CAMD,IAAI6a,GAAgB,UAAY,CAC5B,IAAIC,EAAgBf,GAAY,QAC5Be,GACAA,EAAc,MAAK,CAE/B,EAKQC,GAAiB,UAAY,CACzBjC,EACAA,GAAe,MAAyCA,EAAWjkB,EAAIY,CAAW,EAE7E,OAAOA,GAAe,UAC3BolB,IAEZ,EACQG,GAAc,UAAY,CAC1B3lB,GAAQ,MAAkCA,EAAI,QAC9CyT,GAAY,MAAsCA,EAAQjU,CAAE,CACpE,EACI,OAAIsX,GACQ5M,EAAAA,cAAoB,MAAO,CAAE,UAAWqE,GAAgB,MAAOza,EAAO,QAAS8X,GAAa,aAAcqZ,GAAoB,aAAcC,GAAoB,cAAeI,GAAmB,cAAeC,EAAkB,EACvOrb,EAAmB,cAACqX,GAAgB,CAAE,UAAW,4CAA6C,MAAOztB,CAAO,EACxGoW,EAAmB,cAAC2U,GAAO,CAAE,UAAW,wCAAyC,QAASuF,CAAqB,EAC3Gla,EAAAA,cAAoBiY,GAAsB,CAAE,YAAanpB,GAAa,IAAK2N,GAAK,SAAUkc,GAAW,OAAQ,GAAM,YAAa,EAAO,CAAA,CAAC,EAC5I3Y,EAAmB,cAAC2U,GAAO,CAAE,UAAW,mCAAoC,QAAS,EAAM,EACvF3U,EAAAA,cAAoBiY,GAAsB,CAAE,YAAanpB,GAAa,IAAK2N,GAAK,SAAUkc,GAAW,OAAQ,GAAO,YAAazD,EAAa,CAAA,CAAC,EACnJlV,gBAAoB2U,GAAO,CAAE,UAAW,kCAAmC,QAAS,CAACnR,IAAe,CAACmX,EAAU,EAC3G3a,EAAmB,cAACkZ,GAAqB,CAAE,WAAY1P,IAAa,OAAW,SAAUyR,GAAc,SAAUrS,GAAU,MAAOnT,EAAO,aAAcG,EAAc,aAAcmE,EAAc,cAAe6e,GAAe,UAAWxM,IAAWqN,IAAU,OAAW,MAAO,UAAY,CAAE,OAAOA,GAAU,KAA2B,OAASA,EAAM3qB,EAAW,CAAI,EAAE,UAAWwd,IAAWoN,IAAY,OAAW,QAAS,UAAY,CAAE,OAAOA,GAAY,KAA6B,OAASA,EAAQhN,EAAW,CAAE,EAAI,aAAc6M,IAAe,QAAarjB,IAAgB,OAAW,WAAYslB,GAAgB,SAAUvB,IAAS,OAAW,WAAYiB,GAAgB,SAAUf,GAAgBU,EAAQ,CAAE,CAAC,EACrsB7a,gBAAoB2U,GAAO,CAAE,UAAW,kCAAmC,QAASgG,GAAU,QAASha,EAAiB,EACpHX,EAAmB,cAACyY,GAAqB,CAAE,YAAa0C,GAAiB,MAAO1lB,EAAO,aAAcsE,EAAc,UAAW4e,GAAW,cAAeC,GAAe,UAAWC,EAAS,CAAE,CAAC,EAClM7Y,gBAAoB2U,GAAO,CAAE,UAAW,oCAAqC,QAASnR,GAAa,QAAS7C,EAAiB,EACzHX,EAAAA,cAAoBuX,GAAuB,CAAE,aAAc3hB,EAAc,SAAU4X,GAAe,SAAU0I,EAAW,UAAY,CAAE,OAAOA,GAAa,KAA8B,OAASA,EAAS5gB,CAAE,CAAE,EAAK,OAAW,QAASiU,EAAUkS,GAAc,OAAW,aAAc1hB,CAAY,CAAE,CAAC,CAAC,EAC/SiG,EAAAA,cAAoB,MAAO,CAAE,UAAWya,EAA6B,EACjEza,EAAAA,cAAoBsX,GAAgB,CAAE,SAAUqB,EAAW,CAAA,CAAC,EAChE3Y,EAAAA,cAAoB4W,GAAS,CAAE,KAAMwD,EAAiB,aAAcxkB,EAAc,MAAOH,EAAO,OAAQC,EAAQ,cAAeC,CAAa,CAAE,EAC9IqK,gBAAoBmX,GAAgB,CAAE,SAAUwB,GAAW,UAAW6B,GAAa,YAAatkB,CAAa,CAAA,CAAC,EAC/G8J,EAAmB,cAACC,WAAgB,IAAI,CACnD,EAoKAvW,EAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA+rC,EAE5sC,IAACgyB,GAAa,SAAU9b,EAAO,CAC9B,IAAI6B,EAAO7B,EAAM,KAAM+b,EAAU/b,EAAM,QAASS,EAAWT,EAAM,SACjE,SAASgc,EAAYzxB,EAAG,CAEpBA,EAAE,gBAAe,EACjBwxB,GAAY,MAAsCA,GACrD,CACDzT,OAAAA,EAAAA,UAAgB,UAAY,CACxB,IAAI2T,EAAiB,SAAUpb,EAAK,CAC5BA,EAAI,MAAQ,WACZkb,GAAY,MAAsCA,IAClE,EAEQ,gBAAS,iBAAiB,UAAWE,CAAc,EAC5C,UAAY,CAEf,SAAS,oBAAoB,UAAWA,CAAc,CAClE,CAEK,EAAE,CAAE,CAAA,EACG7b,EAAmB,cAAC,MAAO,CAAE,UAAWyB,EAAO,mCAAqC,2BAA4B,QAASma,CAAa,EAC1Ina,GAASzB,EAAAA,cAAoB,MAAO,CAAE,UAAW,oCAAqC,QAAS4b,GAAevb,CAAQ,EACtHsb,GAAY3b,EAAmB,cAACwC,GAAO,CAAE,MAAO,wBAAyB,QAASoZ,EAAa,UAAW,cAAe,UAAW,qBAAsB,KAAM,aAAa,CAAE,CAAE,CACzL,EAEIE,GAAe,SAAUlc,EAAO,CAChC,IAAImc,EAAWnc,EAAM,IAErBhW,EAAQgW,EAAM,MAAO9G,EAAY8G,EAAM,UAAWoc,EAAS9xB,GAAO0V,EAAO,CAAC,MAAO,QAAS,WAAW,CAAC,EAClGqc,EAAWnL,SAAa,IAAI,EAC5BxU,EAAKmL,EAAAA,SAAe,MAAS,EAAG6N,EAAShZ,EAAG,CAAC,EAAGiZ,EAAYjZ,EAAG,CAAC,EACpE4L,OAAAA,EAAAA,UAAgB,UAAY,CAExB,GAAK6T,EAGL,GAAI,OAAOA,GAAa,SAEpBxG,EAAUwG,CAAQ,MAEjB,CAED,IAAIxnB,EAAawnB,EAAS,KAAOA,EAAS,KAAK,MAAM,GAAG,EAAE,CAAC,EAAI,QAC3DhoB,EAAWgoB,EAAS,KAAOA,EAAS,KAAK,MAAM,GAAG,EAAE,CAAC,EAAI,QAC7D,GAAIxnB,IAAe,SAAW,CAAC,MAAO,MAAO,MAAM,EAAE,SAASR,CAAQ,EAAG,CAErE,IAAImoB,EAAc,IAAI,gBAAgBH,CAAQ,EAC9CxG,EAAU2G,CAAW,CACxB,CACJ,CACT,EAAO,CAACH,CAAQ,CAAC,EACb7T,EAAAA,UAAgB,UAAY,CACpBoN,GAAU2G,EAAS,SACnBA,EAAS,QAAQ,MAE7B,EAAO,CAAC3G,CAAM,CAAC,EACHtV,gBAAoBC,EAAAA,SAAgB,KAAM8b,GAAYzG,GAAWtV,gBAAoB,QAASnW,EAAW,CAAE,QAAS,SAAU4W,EAAK,CACnIA,EAAI,eAAc,CACrB,EAED,GAAI,iBAEJ,IAAKwb,EAAU,UAAWnjB,GAAa,wBAEvC,IAAKwc,EAEL,OAAQ,OAAQ,MAAO1rB,CAAK,EAAIoyB,CAAM,EACtChc,EAAAA,cAAoB,SAAU,CAAE,KAAM,YAAY,CAAE,EACpDA,EAAAA,cAAoB,SAAU,CAAE,KAAM,WAAW,CAAE,EACnDA,EAAmB,cAAC,SAAU,CAAE,KAAM,WAAa,CAAA,CAAC,CAAE,CAC9D","x_google_ignoreList":[0]}