vue-files-preview-inno
Version:
A tool for previewing files such as doc, excel, pdf, image, markdown, txt, audio, and video and so on.
1 lines • 2.77 kB
Source Map (JSON)
{"version":3,"file":"index.vue2.mjs","sources":["../../../../../../packages/preview/supports/pic-preview/index.vue"],"sourcesContent":["<script lang='ts' setup>\nimport {ref, watch} from 'vue'\nimport type {PreviewProps} from '../../preview.interface'\nimport {getFileRenderByFile, getFileRenderByUrl} from '../../utils/utils'\n\nconst props = withDefaults(\n defineProps<PreviewProps>(),\n {\n url: () => null,\n file: () => null,\n },\n)\nconst emit = defineEmits<{\n rendered: []\n error: [error: Error]\n}>()\n\nconst fileRender = ref(null)\nwatch(\n () => props.file,\n (file) => {\n if (file) {\n getFileRenderByFile(file).then((render) => {\n fileRender.value = render\n }).catch((e: Error) => {\n emit('error', e)\n })\n }\n },\n {immediate: true},\n)\n\nwatch(\n () => props.url,\n (url) => {\n if (url && !props.file) {\n getFileRenderByUrl(url).then((render) => {\n fileRender.value = render\n }).catch((e: Error) => {\n emit('error', e)\n })\n }\n },\n {immediate: true},\n)\n\nfunction onImageLoad(): void {\n emit('rendered')\n}\n\nfunction onImageError(): void {\n emit('error', new Error('Image load failed'))\n}\n</script>\n\n<template>\n <div class=\"pic-preview\">\n <img :src=\"fileRender\" alt=\"\" crossorigin=\"anonymous\" @load=\"onImageLoad\" @error=\"onImageError\">\n </div>\n</template>\n\n<style scoped lang='scss'>\n.pic-preview {\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n\n img {\n max-width: 100%;\n max-height: 100%;\n object-fit: contain;\n }\n}\n</style>\n"],"names":["props","__props","emit","__emit","fileRender","ref","watch","file","getFileRenderByFile","render","url","getFileRenderByUrl","onImageLoad","onImageError","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode"],"mappings":";;;;;;;;;;;AAKA,UAAMA,IAAQC,GAORC,IAAOC,GAKPC,IAAaC,EAAI,IAAI;AAC3B,IAAAC;AAAA,MACE,MAAMN,EAAM;AAAA,MACZ,CAACO,MAAS;AACR,QAAIA,KACFC,EAAoBD,CAAI,EAAE,KAAK,CAACE,MAAW;AACzC,UAAAL,EAAW,QAAQK;AAAA,QACrB,CAAC,EAAE,MAAM,CAAC,MAAa;AACrB,UAAAP,EAAK,SAAS,CAAC;AAAA,QACjB,CAAC;AAAA,MAEL;AAAA,MACA,EAAC,WAAW,GAAA;AAAA,IAAI,GAGlBI;AAAA,MACE,MAAMN,EAAM;AAAA,MACZ,CAACU,MAAQ;AACP,QAAIA,KAAO,CAACV,EAAM,QAChBW,EAAmBD,CAAG,EAAE,KAAK,CAACD,MAAW;AACvC,UAAAL,EAAW,QAAQK;AAAA,QACrB,CAAC,EAAE,MAAM,CAAC,MAAa;AACrB,UAAAP,EAAK,SAAS,CAAC;AAAA,QACjB,CAAC;AAAA,MAEL;AAAA,MACA,EAAC,WAAW,GAAA;AAAA,IAAI;AAGlB,aAASU,IAAoB;AAC3B,MAAAV,EAAK,UAAU;AAAA,IACjB;AAEA,aAASW,IAAqB;AAC5B,MAAAX,EAAK,SAAS,IAAI,MAAM,mBAAmB,CAAC;AAAA,IAC9C;sBAIEY,EAAA,GAAAC,EAEM,OAFNC,GAEM;AAAA,MADJC,EAAgG,OAAA;AAAA,QAA1F,KAAKb,EAAA;AAAA,QAAY,KAAI;AAAA,QAAG,aAAY;AAAA,QAAa,QAAMQ;AAAA,QAAc,SAAOC;AAAA,MAAA;;;;"}