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.

1 lines 3.26 kB
{"version":3,"file":"index.vue2.mjs","sources":["../../../../../../packages/preview/supports/code-preview/index.vue"],"sourcesContent":["<script lang='ts' setup>\nimport {ref, shallowRef, watch} from 'vue'\nimport {Codemirror} from 'vue-codemirror'\nimport {javascript} from '@codemirror/lang-javascript'\nimport {json} from '@codemirror/lang-json'\nimport {html} from '@codemirror/lang-html'\nimport {xml} from '@codemirror/lang-xml'\nimport {oneDark} from '@codemirror/theme-one-dark'\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)\n\nconst emit = defineEmits<{\n rendered: []\n error: [error: Error]\n}>()\n\nconst code = ref()\nconst extensions = [javascript(), json(), html(), xml(), oneDark]\n// Codemirror EditorView instance ref\nconst codeViewer = shallowRef()\n\nfunction handleReady(payload): void {\n codeViewer.value = payload.view\n emit('rendered')\n}\n\nwatch(\n () => props.file,\n (file) => {\n if (file) {\n getFileRenderByFile(file).then((render) => {\n code.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 code.value = render\n }).catch((e: Error) => {\n emit('error', e)\n })\n }\n },\n {immediate: true},\n)\n</script>\n\n<template>\n <div class=\"code-preview\">\n <Codemirror\n v-model=\"code\" :autofocus=\"true\" :indent-with-tab=\"true\" :tab-size=\"2\"\n :extensions=\"extensions\" @ready=\"handleReady\"\n />\n </div>\n</template>\n\n<style scoped lang='scss'>\n.code-preview {\n min-height: 100vh;\n background-color: #282c34;\n overflow: auto;\n}\n</style>\n"],"names":["props","__props","emit","__emit","code","ref","extensions","javascript","json","html","xml","oneDark","codeViewer","shallowRef","handleReady","payload","watch","file","getFileRenderByFile","render","url","getFileRenderByUrl","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_unref","Codemirror","$event"],"mappings":";;;;;;;;;;;;;;;;;AAWA,UAAMA,IAAQC,GAQRC,IAAOC,GAKPC,IAAOC,EAAA,GACPC,IAAa,CAACC,KAAcC,EAAA,GAAQC,EAAA,GAAQC,EAAA,GAAOC,CAAO,GAE1DC,IAAaC,EAAA;AAEnB,aAASC,EAAYC,GAAe;AAClC,MAAAH,EAAW,QAAQG,EAAQ,MAC3Bb,EAAK,UAAU;AAAA,IACjB;AAEA,WAAAc;AAAA,MACE,MAAMhB,EAAM;AAAA,MACZ,CAACiB,MAAS;AACR,QAAIA,KACFC,EAAoBD,CAAI,EAAE,KAAK,CAACE,MAAW;AACzC,UAAAf,EAAK,QAAQe;AAAA,QACf,CAAC,EAAE,MAAM,CAAC,MAAa;AACrB,UAAAjB,EAAK,SAAS,CAAC;AAAA,QACjB,CAAC;AAAA,MAEL;AAAA,MACA,EAAC,WAAW,GAAA;AAAA,IAAI,GAGlBc;AAAA,MACE,MAAMhB,EAAM;AAAA,MACZ,CAACoB,MAAQ;AACP,QAAIA,KAAO,CAACpB,EAAM,QAChBqB,EAAmBD,CAAG,EAAE,KAAK,CAACD,MAAW;AACvC,UAAAf,EAAK,QAAQe;AAAA,QACf,CAAC,EAAE,MAAM,CAAC,MAAa;AACrB,UAAAjB,EAAK,SAAS,CAAC;AAAA,QACjB,CAAC;AAAA,MAEL;AAAA,MACA,EAAC,WAAW,GAAA;AAAA,IAAI,cAKhBoB,EAAA,GAAAC,EAKM,OALNC,GAKM;AAAA,MAJJC,EAGEC,EAAAC,CAAA,GAAA;AAAA,oBAFSvB,EAAA;AAAA,sDAAAA,EAAI,QAAAwB;AAAA,QAAG,WAAW;AAAA,QAAO,mBAAiB;AAAA,QAAO,YAAU;AAAA,QACnE,YAAAtB;AAAA,QAAyB,SAAOQ;AAAA,MAAA;;;;"}