import { toArray, createNamespace, isFunction } from "../utils/index.mjs"; const [name, bem, t] = createNamespace("uploader"); function readFileContent(file, resultType) { return new Promise((resolve) => { if (resultType === "file") { resolve(); return; } const reader = new FileReader(); reader.onload = (event) => { resolve(event.target.result); }; if (resultType === "dataUrl") { reader.readAsDataURL(file); } else if (resultType === "text") { reader.readAsText(file); } }); } function isOversize(items, maxSize) { return toArray(items).some((item) => { if (item.file) { if (isFunction(maxSize)) { return maxSize(item.file); } return item.file.size > +maxSize; } return false; }); } function filterFiles(items, maxSize) { const valid = []; const invalid = []; items.forEach((item) => { if (isOversize(item, maxSize)) { invalid.push(item); } else { valid.push(item); } }); return { valid, invalid }; } const IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg|avif)/i; const isImageUrl = (url) => IMAGE_REGEXP.test(url); function isImageFile(item) { if (item.isImage) { return true; } if (item.file && item.file.type) { return item.file.type.indexOf("image") === 0; } if (item.url) { return isImageUrl(item.url); } if (typeof item.content === "string") { return item.content.indexOf("data:image") === 0; } return false; } export { bem, filterFiles, isImageFile, isImageUrl, isOversize, name, readFileContent, t };