Files
fad_oa/ruoyi-ui/public/file-viewer/assets/OfdViewer-IhXBAdUl.js

2 lines
2.3 KiB
JavaScript

const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ofd-roCNaEHA.js","./package-Bop5TfAT.js","./runtime-core.esm-bundler-DO-WTVbd.js","./package-OvxnQO7z.css","./jszip.min-CoyCHGS6.js"])))=>i.map(i=>d[i]);
import{h as e,r as t}from"./package-Bop5TfAT.js";import{D as n,X as r,_ as i,f as a,g as o,h as s,i as c,o as l,s as u,y as d}from"./runtime-core.esm-bundler-DO-WTVbd.js";var f={key:0,class:`ofd-state`},p={key:1,class:`ofd-state error`},m=e(a({__name:`OfdViewer`,props:{data:{}},setup(e){let a=e,m=n(null),h=n(null),g=n(`loading`),_=n(``),v=!1,y=0,b=null,x=0,S=0,C=null,w=()=>{let e=m.value;if(e)for(;e.firstChild;)e.removeChild(e.firstChild)},T=e=>new Promise((t,n)=>{e.parseOfdDocument({ofd:a.data,success:e=>t(e),fail:e=>n(e)})}),E=async e=>(C||=T(e).then(e=>{let t=e[0];if(!t)throw Error(`OFD 文件中没有可渲染的文档`);return t}),C),D=e=>e instanceof Error?e.message:typeof e==`string`?e:JSON.stringify(e),O=(e,t)=>{let n=document.createDocumentFragment();t.forEach(e=>{e.classList.add(`ofd-page`),n.appendChild(e)}),e.appendChild(n)},k=()=>{let e=h.value?.getBoundingClientRect().width||m.value?.getBoundingClientRect().width||0;return Math.max(Math.floor(e-48),240)},A=async e=>{let n=await t(()=>import(`./ofd-roCNaEHA.js`),__vite__mapDeps([0,1,2,3,4]),import.meta.url),r=await E(n);return v?[]:Promise.resolve(n.renderOfd(e,r))},j=async(e={})=>{let t=m.value;if(!t)return;let n=e.force??!1,r=e.showLoading??!1,i=k();if(!n&&g.value===`ready`&&Math.abs(i-S)<8)return;let a=++y;(r||g.value!==`ready`)&&(g.value=`loading`,w()),_.value=``;try{await s();let e=await A(i);if(v||a!==y)return;w(),O(t,e),S=i,g.value=`ready`}catch(e){if(v||a!==y)return;console.error(e),g.value=`error`,_.value=D(e)||`OFD 文件解析失败`}},M=()=>{!h.value||b||(b=new ResizeObserver(()=>{window.clearTimeout(x),x=window.setTimeout(()=>{v||j({showLoading:!1})},180)}),b.observe(h.value))};return i(()=>{j({force:!0,showLoading:!0}).finally(()=>{M()})}),o(()=>{v=!0,y+=1,window.clearTimeout(x),b?.disconnect(),b=null,w()}),(e,t)=>(d(),u(`div`,{ref_key:`viewer`,ref:h,class:`ofd-viewer`},[g.value===`loading`?(d(),u(`div`,f,`正在解析 OFD...`)):g.value===`error`?(d(),u(`div`,p,r(_.value),1)):l(``,!0),c(`div`,{ref_key:`stage`,ref:m,class:`ofd-stage`},null,512)],512))}}),[[`__scopeId`,`data-v-48238ef6`]]);export{m as default};