UNPKG

@chayns-components/core

Version:

A set of beautiful React components for developing your own applications with chayns.

63 lines (62 loc) 2.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isValidFileType = exports.hasDuplicate = exports.getIconByMimeType = exports.getHumanSize = exports.filterDuplicateFileUrls = exports.filterDuplicateFile = exports.MIME_TYPE_MAPPING = void 0; const hasDuplicate = (items, newItem, comparator) => items.some(item => comparator(item, newItem)); exports.hasDuplicate = hasDuplicate; const filterDuplicateFile = ({ files, newFile }) => hasDuplicate(files, newFile, (a, b) => a.name === b.name && a.size === b.size); exports.filterDuplicateFile = filterDuplicateFile; const filterDuplicateFileUrls = ({ files, newFile }) => hasDuplicate(files, newFile, (a, b) => a === b); exports.filterDuplicateFileUrls = filterDuplicateFileUrls; const getHumanSize = bytes => { const FILE_SIZE_UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']; let size = bytes || 0; let unitIndex = 0; while (size >= 1024) { size /= 1024; unitIndex += 1; } size = Math.round(size * 10) / 10; return `${size.toString().replace('.', ',')} ${FILE_SIZE_UNITS[unitIndex] ?? ''}`; }; exports.getHumanSize = getHumanSize; const isValidFileType = ({ types, file }) => { const allowedTypesArray = types.split(',').map(type => type.trim()); const fileType = file.type; return allowedTypesArray.some(type => { if (type.endsWith('/*')) { const baseType = type.slice(0, -2); // remove '/*' return fileType.startsWith(baseType); } return fileType === type; }); }; exports.isValidFileType = isValidFileType; const MIME_TYPE_MAPPING = exports.MIME_TYPE_MAPPING = { // Haupttypen 'application/pdf': 'fa fa-file-pdf', 'application/zip': 'fa fa-file-archive', 'application/msword': 'fa fa-file-word', 'application/vnd.ms-excel': 'fa fa-file-excel', // Typen mit Wildcards 'application/vnd.openxmlformats-officedocument.': 'fa fa-file-word', 'application/x-': 'fa fa-file-archive', // Addiere nur spezifische Fälle 'text/pdf': 'fa fa-file-pdf' }; const getIconByMimeType = mimeType => { const matchedType = Object.keys(MIME_TYPE_MAPPING).find(type => mimeType === null || mimeType === void 0 ? void 0 : mimeType.startsWith(type)); return MIME_TYPE_MAPPING[matchedType] || 'fa fa-file'; }; exports.getIconByMimeType = getIconByMimeType; //# sourceMappingURL=file.js.map