123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- 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
- };
|