UNPKG

vue-files-preview-inno

Version:

A tool for previewing files such as doc, excel, pdf, image, markdown, txt, audio, and video and so on.

3 lines (2 loc) 4.02 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../preview.const.js"),b={mp4:"video/mp4",webm:"video/webm",ogg:"video/ogg",mkv:"video/x-matroska",avi:"video/x-msvideo",mpeg:"video/mpeg",flv:"video/x-flv",mov:"video/quicktime",wmv:"video/x-ms-wmv"},f={"image/svg+xml":"svg","image/png":"png","image/jpeg":"jpg","image/gif":"gif","image/webp":"webp","image/bmp":"bmp","image/x-icon":"ico","image/vnd.microsoft.icon":"ico","application/pdf":"pdf","text/plain":"txt","text/markdown":"md","text/html":"html","text/css":"css","text/javascript":"js","application/javascript":"js","application/json":"json","application/xml":"xml","text/xml":"xml","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","application/vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","application/msword":"doc","application/vnd.ms-excel":"xls","application/vnd.ms-powerpoint":"ppt","application/epub+zip":"epub","video/mp4":"mp4","video/webm":"webm","video/ogg":"ogg","video/quicktime":"mov","audio/mpeg":"mp3","audio/wav":"wav","audio/ogg":"ogg","audio/flac":"flac","application/vnd.ms-outlook":"msg"};function u(e){if(!e)return"";if(f[e])return f[e];const n=e.split("/");return n.length===2?n[1].replace(/^x-/,""):""}function l(e,n){if("name"in e&&e.name){const t=e.name.lastIndexOf(".");if(t!==-1)return e.name.substring(t+1)}if(n){const t=n.lastIndexOf(".");if(t!==-1)return n.substring(t+1)}return u(e.type)}function v(e,n){if("name"in e&&e.name){const t=e.name.lastIndexOf(".");return t===-1?e.name:e.name.substring(0,t)}if(n){const t=n.lastIndexOf(".");return t===-1?n:n.substring(0,t)}return""}function d(e){try{return decodeURIComponent(e)}catch{return e}}function g(e,n){try{const t=new URL(e,window.location.origin),s=d(t.pathname),o=s.lastIndexOf(".");if(o!==-1){const r=s.substring(o+1).toLowerCase().split("?")[0].split("#")[0];if(r)return r}}catch{const t=d(e),s=t.lastIndexOf(".");if(s!==-1){const i=t.substring(s+1).toLowerCase().split("?")[0].split("#")[0];if(i)return i}}if(n){const t=n.lastIndexOf(".");if(t!==-1)return n.substring(t+1).toLowerCase()}return""}function w(e,n){try{const t=new URL(e,window.location.origin),s=d(t.pathname),o=s.lastIndexOf("/"),i=s.substring(o+1),r=i.lastIndexOf("."),c=r===-1?i:i.substring(0,r);if(c)return c}catch{const t=e.lastIndexOf("/"),s=d(e.substring(t+1).split("?")[0].split("#")[0]),o=s.lastIndexOf("."),i=o===-1?s:s.substring(0,o);if(i)return i}if(n){const t=n.lastIndexOf(".");return t===-1?n:n.substring(0,t)}return""}async function y(e,n){const t=g(e),s=a.getPreviewTypeByFileType(t),o=m(s);if(o==="image"||o==="video"||o==="pdf")return e;const i=await fetch(e);if(!i.ok)throw new Error(`Failed to fetch file: ${i.status} ${i.statusText}`);return o==="text"?await i.text():o==="arrayBuffer"?await i.arrayBuffer():e}function F(e,n){const t=a.getPreviewTypeByFileType(l(e,n)),s=m(t);return new Promise(o=>{const i=e,r=new FileReader;switch(s){case"text":r.readAsText(i),r.onload=()=>{o(r.result)};break;case"arrayBuffer":r.readAsArrayBuffer(i),r.onload=()=>{o(r.result)};break;case"image":o(window.URL.createObjectURL(i));break;case"pdf":{const c=new Blob([i],{type:"application/pdf"}),p=URL.createObjectURL(c);o(p);break}case"video":{const c=l(e,n),p=b[c]||e.type||"video/mp4",x=URL.createObjectURL(new Blob([i],{type:p}));o(x);break}default:o(window.URL.createObjectURL(i));break}})}function m(e){const n={text:a.textFilePreviewTypeList.includes(e),arrayBuffer:a.arrayBufferPreviewTypeList.includes(e),image:a.imagePreviewTypeList.includes(e),pdf:a.pdfPreviewTypeList.includes(e),video:a.videoPreviewTypeList.includes(e)};return Object.keys(n).find(t=>n[t])}exports.getExtFromMimeType=u;exports.getFileName=v;exports.getFileNameFromUrl=w;exports.getFileRenderByFile=F;exports.getFileRenderByUrl=y;exports.getFileRenderType=m;exports.getFileType=l;exports.getFileTypeFromUrl=g; //# sourceMappingURL=utils.js.map