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) 1.58 kB
"use strict";const t=require("vue"),o=require("../../preview.const.js"),p=require("../../preview.interface.js"),c=require("../../utils/utils.js"),h={key:0,class:"vfp-loading"},g=t.defineComponent({__name:"index",props:{file:{default:()=>null},url:{default:()=>null},name:{},width:{default:()=>"100%"},height:{default:()=>"100%"},overflow:{default:()=>"auto"}},emits:["rendered","error"],setup(r,{emit:f}){const n=r,s=f,i=t.ref(!0),u=t.shallowRef(o.PreviewRules[p.PreviewType.NONE]);function m(e){const l=o.PreviewRules[o.getPreviewTypeByFileType(c.getFileType(e,n.name))];l&&(i.value=!0,u.value={...l,name:c.getFileName(e,n.name)})}function v(e,l){const a=o.PreviewRules[o.getPreviewTypeByFileType(e)];a&&(i.value=!0,u.value={...a,name:l})}async function d(e){const l=c.getFileTypeFromUrl(e,n.name),a=c.getFileNameFromUrl(e,n.name);v(l,a)}function w(){i.value=!1,s("rendered")}function y(e){i.value=!1,s("error",e)}return t.watch(()=>n.file,e=>{e&&m(e)},{immediate:!0}),t.watch(()=>n.url,e=>{e&&!n.file&&d(e)},{immediate:!0}),(e,l)=>(t.openBlock(),t.createElementBlock("div",{class:"vue-files-preview",style:t.normalizeStyle({width:r.width,height:r.height,overflow:r.overflow})},[i.value?(t.openBlock(),t.createElementBlock("div",h,[...l[0]||(l[0]=[t.createElementVNode("div",{class:"vfp-spinner"},null,-1)])])):t.createCommentVNode("",!0),(t.openBlock(),t.createBlock(t.resolveDynamicComponent(u.value.component),{name:u.value.name,file:r.file,url:r.url,onRendered:w,onError:y},null,40,["name","file","url"]))],4))}});module.exports=g; //# sourceMappingURL=index.vue2.js.map