vue-files-preview
Version:
A tool for previewing files such as doc, excel, pdf, image, markdown, txt, audio, and video and so on.
61 lines (60 loc) • 1.56 kB
JavaScript
import { getPreviewTypeByFileType as d, textFilePreviewTypeList as o, arrayBufferPreviewTypeList as l, imagePreviewTypeList as f, pdfPreviewTypeList as u, videoPreviewTypeList as b } from "../preview.const.mjs";
function p(e) {
const t = e.name, n = t.lastIndexOf(".");
return t.substring(n + 1);
}
function L(e) {
const t = e.name, n = t.lastIndexOf(".");
return t.substring(0, n);
}
function m(e) {
const t = d(p(e)), n = y(t);
return new Promise((i) => {
const r = e, a = new FileReader();
switch (n) {
case "text":
a.readAsText(r), a.onload = () => {
i(a.result);
};
break;
case "arrayBuffer":
a.readAsArrayBuffer(r), a.onload = () => {
i(a.result);
};
break;
case "image":
i(window.URL.createObjectURL(r));
break;
case "pdf": {
const c = new Blob([r], { type: "application/pdf" }), s = URL.createObjectURL(c);
i(s);
break;
}
case "video": {
const c = URL.createObjectURL(new Blob([r], { type: "video/mp4" }));
i(c);
break;
}
default:
i(window.URL.createObjectURL(r));
break;
}
});
}
function y(e) {
const t = {
text: o.includes(e),
arrayBuffer: l.includes(e),
image: f.includes(e),
pdf: u.includes(e),
video: b.includes(e)
};
return Object.keys(t).find((n) => t[n]);
}
export {
L as getFileName,
m as getFileRenderByFile,
y as getFileRenderType,
p as getFileType
};
//# sourceMappingURL=utils.mjs.map