@file-viewer/web 2.1.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(P){Object.defineProperties(P,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var Ve=Object.defineProperty,N=(e,t)=>()=>(e&&(t=e(e=0)),t),Yt=(e,t)=>{let r={};for(var n in e)Ve(r,n,{get:e[n],enumerable:!0});return t||Ve(r,Symbol.toStringTag,{value:"Module"}),r},ke=["zip","zipx","7z","rar","tar","gz","gzip","tgz","bz2","bzip2","tbz","tbz2","xz","txz","lzma","zst","tzst","cab","ar","cpio","iso","xar","lha","lzh","jar","war","ear","apk","cbz","cbr"],$e=["glb","gltf","obj","stl","ply","fbx","dae","3ds","3mf","amf","usd","usda","usdc","usdz","kmz","step","stp","iges","igs","ifc","3dm","brep","pcd","wrl","vrml","xyz","vtk","vtp"],De=["txt","json","js","mjs","cjs","css","java","py","html","htm","jsx","ts","tsx","xml","log","vue","yaml","yml","ini","sh","bash","sql","go","rs","php","c","cpp","cc","h","hpp","cs","diff","patch","bundle","bdl","jsonc","json5","ipynb","toml","proto","hcl","tex","gv","http","react","rb","swift","kt"],Me=["gif","jpg","jpeg","bmp","tiff","tif","png","svg","webp","avif","ico","heic","heif","jxl"],W=[{id:"office-word-openxml",label:"Word OpenXML",category:"office",extensions:["docx","docm","dotx","dotm"],async:!0,capabilities:{download:!0,print:"adapter",exportHtml:"adapter",zoom:"provider",search:!0}},{id:"office-word-binary",label:"Word Binary",category:"office",extensions:["doc","dot"],async:!0,capabilities:{download:!0,print:"adapter",exportHtml:"adapter",zoom:"provider",search:!0}},{id:"office-presentation",label:"PowerPoint",category:"office",extensions:["pptx","pptm","potx","potm","ppsx","ppsm"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"open-document",label:"Open Document",category:"office",extensions:["rtf","odt","odp"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"spreadsheet-openxml",label:"Spreadsheet",category:"office",extensions:["xlsx","xltx","xlsm","xlsb","xls","xlt","xltm","csv","ods","fods","numbers"],async:!0,capabilities:{download:!0,print:!1,exportHtml:!1,zoom:"provider",search:!0}},{id:"pdf",label:"PDF",category:"document",extensions:["pdf"],async:!0,capabilities:{download:!0,print:"adapter",exportHtml:"adapter",zoom:"provider",search:"provider"}},{id:"ofd",label:"OFD",category:"document",extensions:["ofd"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"typst",label:"Typst",category:"document",extensions:["typ","typst"],async:!0,capabilities:{download:!0,print:"adapter",exportHtml:"adapter",zoom:"provider",search:!0}},{id:"archive",label:"Archive",category:"archive",extensions:ke,async:!0,capabilities:{download:!0,print:!1,exportHtml:!1,zoom:!1,search:!0}},{id:"email",label:"Email",category:"email",extensions:["eml","msg","mbox"],async:!0,capabilities:{download:!0,print:!1,exportHtml:!0,zoom:!1,search:!0}},{id:"eda",label:"EDA",category:"eda",extensions:["olb","dra","gds","oas","oasis"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:!1,search:!0}},{id:"cad",label:"CAD",category:"cad",extensions:["dxf","dwg","dwf","dwfx","xps"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!1}},{id:"model",label:"3D Model",category:"model",extensions:$e,async:!0,capabilities:{download:!0,print:!1,exportHtml:!1,zoom:"provider",search:!1}},{id:"geo",label:"Geospatial",category:"geo",extensions:["geojson","kml","gpx","shp"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"drawing",label:"Drawing",category:"drawing",extensions:["excalidraw","drawio","dio","mermaid","mmd","plantuml","puml"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"mindmap",label:"Mind Map",category:"mindmap",extensions:["xmind"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"epub",label:"EPUB",category:"ebook",extensions:["epub"],async:!0,capabilities:{download:!0,print:!1,exportHtml:!0,zoom:!1,search:"provider"}},{id:"umd",label:"UMD",category:"ebook",extensions:["umd"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"image",label:"Image",category:"image",extensions:Me,async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!1}},{id:"markdown",label:"Markdown",category:"markdown",extensions:["md","markdown"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:!1,search:!0}},{id:"code",label:"Code and Text",category:"code",extensions:De,async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:!1,search:!0}},{id:"video",label:"Video",category:"media",extensions:["mp4","webm","m3u8"],async:!0,capabilities:{download:!0,print:!1,exportHtml:!1,zoom:!1,search:!1}},{id:"audio",label:"Audio",category:"media",extensions:["mp3","mpeg","wav","ogg","oga","opus","m4a","aac","flac","weba","midi","mid"],async:!0,capabilities:{download:!0,print:!1,exportHtml:!1,zoom:!1,search:!1}},{id:"data-asset",label:"Data Asset",category:"asset",extensions:["ttf","otf","woff","woff2","psd","ai","eps","sqlite","wasm","parquet","avro","webarchive"],async:!0,capabilities:{download:!0,print:!1,exportHtml:!0,zoom:!1,search:!0}}],Dn=Object.freeze(Array.from(new Set(W.flatMap(e=>e.extensions))).sort()),Jt,Gt,Kt,ve,Pe,oe,Ne,He,ie=N((()=>{Jt=1,Gt=1200,Kt=160,ve=(e={})=>{var t,r,n;const o=Number.isFinite(e.scale)&&e.scale?Number(e.scale):1;return{scale:o,label:e.label||`${Math.round(o*100)}%`,canZoomIn:(t=e.canZoomIn)!==null&&t!==void 0?t:!1,canZoomOut:(r=e.canZoomOut)!==null&&r!==void 0?r:!1,canReset:(n=e.canReset)!==null&&n!==void 0?n:!1,minScale:e.minScale,maxScale:e.maxScale}},Pe=e=>e===!1?{enabled:!1}:e===!0||e===void 0?{}:e,oe=(e="")=>({query:e,total:0,currentIndex:-1,current:null,matches:[]}),Ne=e=>e===!1?{enabled:!1,collectText:!1}:e===!0||e===void 0?{}:e,He=(e,t)=>{var r;const n=Ne(t);if(n.enabled===!1||n.collectText===!1)return[];const o=Math.max(200,n.chunkSize||1200),a=Math.max(0,Math.min(o-1,(r=n.chunkOverlap)!==null&&r!==void 0?r:160)),l=Math.max(0,n.maxTextLength||0),i=[];return e.forEach(s=>{const p=l?s.text.slice(0,l):s.text;if(!p)return;if(p.length<=o){i.push({id:`${s.id}-chunk-1`,text:p,anchor:s,startLine:s.line,endLine:s.line});return}let m=0,g=1;for(;m<p.length;){const v=p.slice(m,m+o);if(i.push({id:`${s.id}-chunk-${g}`,text:v,anchor:s,startLine:s.line,endLine:s.line}),m+o>=p.length)break;m+=o-a,g+=1}}),i}})),Be,Ue,me,fe,Ze,We,je,qe,Xe,he,Ye,Je,Ge,Qt=N((()=>{Be=["[data-viewer-anchor-id]",".pdfViewer .page",".docx-wrapper section",".docx p",".docx li",".docx table",".markdown-body h1",".markdown-body h2",".markdown-body h3",".markdown-body h4",".markdown-body h5",".markdown-body h6",".markdown-body p",".markdown-body li",".markdown-body pre",".markdown-body table","article h1","article h2","article h3","article h4","article h5","article h6","article p","article li","article pre","article table","pre code","p","li","tr","h1","h2","h3","h4","h5","h6","pre","table"].join(","),Ue=[".viewer-actions",".viewer-watermark",".state-panel",".pdf-toolbar",".pdf-nav-pane",".flyfish-search-match"].join(","),me=e=>typeof CSS!="undefined"&&typeof CSS.escape=="function"?CSS.escape(e):e.replace(/["\\]/g,"\\$&"),fe=(e,t=160)=>{const r=e.replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t-1)}…`:r},Ze=e=>{const t=e.getBoundingClientRect();return t.width>0||t.height>0},We=e=>!!e.closest(Ue),je=e=>{const t=e.closest("[data-page-number], [data-page]"),r=(t==null?void 0:t.dataset.pageNumber)||(t==null?void 0:t.dataset.page),n=r?Number.parseInt(r,10):NaN;return Number.isFinite(n)?n:void 0},qe=e=>e.matches(".pdfViewer .page, [data-page-number], [data-page]")?"page":e.matches("p, li, tr, pre, code")?"line":"block",Xe=(e,t)=>{let r=e.parentElement;for(;r;){if(t.has(r))return!0;r=r.parentElement}return!1},he=e=>{if(!e)return[];const t=e.getBoundingClientRect(),r=new Set,n=[];return Array.from(e.querySelectorAll(Be)).forEach(o=>{if(We(o)||!Ze(o))return;const a=fe(o.textContent||"",1e3);if(!a||Xe(o,r)&&!o.matches("p, li, tr, pre, code"))return;r.add(o);const l=o.dataset.viewerAnchorId||`viewer-anchor-${n.length+1}`;o.dataset.viewerAnchorId=l,o.dataset.viewerLine=String(n.length+1);const i=o.getBoundingClientRect();n.push({id:l,index:n.length,line:n.length+1,type:qe(o),label:fe(a,96),text:a,page:je(o),top:i.top-t.top+e.scrollTop,left:i.left-t.left+e.scrollLeft,width:i.width,height:i.height})}),n},Ye=(e,t,r)=>{if(!e)return null;const n=e.closest("[data-viewer-anchor-id]");if(n!=null&&n.dataset.viewerAnchorId){const i=t.find(s=>s.id===n.dataset.viewerAnchorId);if(i)return i}if(!r)return null;const o=r.getBoundingClientRect(),a=e.getBoundingClientRect().top-o.top+r.scrollTop;let l=null;for(const i of t){if(i.top<=a+1){l=i;continue}break}return l},Je=(e,t)=>{if(!e||!t.length)return null;const r=e.scrollTop+e.clientHeight*.42;let n=t[0];for(const o of t){if(o.top<=r){n=o;continue}break}return n},Ge=(e,t)=>{if(!e||t===null||t===void 0)return!1;const r=typeof t=="object"?`[data-viewer-anchor-id="${me(t.id)}"]`:typeof t=="number"?`[data-viewer-line="${t}"]`:`[data-viewer-anchor-id="${me(t)}"]`,n=e.querySelector(r);return n?(n.scrollIntoView({block:"center",inline:"nearest"}),!0):typeof t=="object"?(e.scrollTo({top:Math.max(0,t.top-e.clientHeight*.18),left:Math.max(0,Math.min(t.left,e.scrollWidth-e.clientWidth)),behavior:"smooth"}),!0):!1}})),ge,J,Ke,Qe,et,tt,er=N((()=>{ge=new WeakMap,J=new WeakMap,Ke=e=>{if(!e)return null;const t=ge.get(e)||e.__flyfishViewerSearchProvider;if(t)return t;const r=e.querySelector("[data-viewer-search-provider]");return r&&(ge.get(r)||r.__flyfishViewerSearchProvider)||null},Qe=(e,t)=>{J.set(e,t),e.dataset.viewerZoomProvider=e.dataset.viewerZoomProvider||"custom",e.__flyfishViewerZoomProvider=t},et=e=>{e&&(J.delete(e),delete e.dataset.viewerZoomProvider,delete e.__flyfishViewerZoomProvider)},tt=e=>{if(!e)return null;const t=J.get(e)||e.__flyfishViewerZoomProvider;if(t)return t;const r=e.querySelector("[data-viewer-zoom-provider]");return r&&(J.get(r)||r.__flyfishViewerZoomProvider)||null}})),tr,rr,rt,ae,le,nt,nr=N((()=>{tr="[data-viewer-scroll-container], .pdf-wrapper",rr="div, section, article, pre",rt=["auto","scroll","overlay"],ae=e=>Math.max(0,e.scrollHeight-e.clientHeight),le=(e,t={})=>{var r,n;const o=(r=t.minScrollRange)!==null&&r!==void 0?r:2;if(ae(e)<=o)return!1;const a=(n=e.ownerDocument)===null||n===void 0?void 0:n.defaultView,l=a!=null&&a.getComputedStyle?a:typeof window!="undefined"?window:void 0;if(!(l!=null&&l.getComputedStyle))return!1;const i=l.getComputedStyle(e),s=i.overflowY||i.overflow;return(t.overflowValues||rt).includes(s)},nt=(e,t={})=>{if(!e)return null;const r=t.preferredSelector||"[data-viewer-scroll-container], .pdf-wrapper",n=t.candidateSelector||"div, section, article, pre",o=e.querySelector(r);return o&&le(o,t)?o:le(e,t)?e:Array.from(e.querySelectorAll(n)).filter(a=>le(a,t)).sort((a,l)=>ae(l)-ae(a))[0]||o||e}})),G=N((()=>{Qt(),er(),nr()}));G(),ie();var Mn="flyfish-search-match",Pn="flyfish-search-match--active",Nn=1e3,or=["script","style","textarea","input","select","button",".viewer-actions",".viewer-watermark",".state-panel",".pdf-toolbar",".pdf-nav-pane",".flyfish-search-match",".textLayer",".annotationLayer",".xfaLayer","svg","canvas","iframe","video","audio"].join(","),ot=e=>({...e,anchor:e.anchor?{...e.anchor}:null}),it=e=>({query:e.query,total:e.total,currentIndex:e.currentIndex,current:e.current?ot(e.current):null,matches:e.matches.map(ot)}),at=(e,t)=>{const r=it(t);return e.query=r.query,e.total=r.total,e.currentIndex=r.currentIndex,e.current=r.current,e.matches=r.matches,e},we=(e,t)=>(e.anchors.value=t.anchors,at(e.state,t.state),e.state),ir=(e,t)=>(t.observe(),we(e,t)),K=async(e,t,r)=>(await r(),we(e,t)),ar=(e,t)=>(t.destroy(),we(e,t)),lr=(e,t)=>({observe(){return ir(e,t)},async refreshAnchors(){return await K(e,t,()=>t.refreshAnchors()),e.anchors.value},async search(r){return K(e,t,()=>t.search(r))},async next(){return K(e,t,()=>t.next())},async previous(){return K(e,t,()=>t.previous())},async clear(){return K(e,t,()=>t.clear())},destroy(){return ar(e,t)}}),lt=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),sr=e=>e.replace(/\s+/g," ").trim(),cr=(e,t)=>{const r=t.wholeWord?`\\b${lt(e)}\\b`:lt(e);return new RegExp(r,t.caseSensitive?"g":"gi")},dr=e=>e.map(({element:t,...r})=>r),ur=e=>{const t=e.parentNode;if(t){for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e),t.normalize()}},st=(e,t)=>{const r=e.parentElement;return!r||r.closest(or)?!0:!t.contains(r)||!e.data.trim()},be=(e,t)=>{const r=e.ownerDocument.defaultView,n=(r==null?void 0:r.NodeFilter)||(typeof NodeFilter!="undefined"?NodeFilter:void 0);return n?n[t]:t==="SHOW_TEXT"?4:t==="FILTER_REJECT"?2:1},pr=e=>{const t=[],r=e.ownerDocument.createTreeWalker(e,be(e,"SHOW_TEXT"),{acceptNode(o){return st(o,e)?be(e,"FILTER_REJECT"):be(e,"FILTER_ACCEPT")}});let n=r.nextNode();for(;n;)st(n,e)||t.push(n),n=r.nextNode();return t},vr=e=>{var t,r;return((r=(t=e==null?void 0:e.ownerDocument)===null||t===void 0?void 0:t.defaultView)===null||r===void 0?void 0:r.MutationObserver)||(typeof MutationObserver!="undefined"?MutationObserver:void 0)},mr=e=>{var t;return((t=e==null?void 0:e.ownerDocument)===null||t===void 0?void 0:t.defaultView)||(typeof window!="undefined"?window:void 0)},fr=e=>{if(Math.max(0,e.scrollHeight-e.clientHeight)<=2)return!1;const t=e.ownerDocument.defaultView||(typeof window!="undefined"?window:void 0);if(!(t!=null&&t.getComputedStyle))return!0;const r=t.getComputedStyle(e),n=r.overflowY||r.overflow;return["auto","scroll","overlay","visible"].includes(n)},hr=({root:e,options:t,waitForDomUpdate:r,preferredScrollContainer:n})=>{let o=[],a=[];const l=new Set,i=oe();let s=null,p=!1,m=null,g=!1;const v=()=>Pe(t==null?void 0:t()),y=()=>{const d=dr(a);i.total=d.length,i.currentIndex=d.length?Math.max(0,Math.min(i.currentIndex,d.length-1)):-1,i.current=i.currentIndex>=0?d[i.currentIndex]:null,i.matches=d},A=d=>at(i,d),c=()=>{Array.from(l).forEach(ur),l.clear(),a=[],i.total=0,i.currentIndex=-1,i.current=null,i.matches=[]},f=async(d,h=i.query)=>{var b;const x=Ke(e());return x?(c(),A(await d(x)||((b=x.getState)===null||b===void 0?void 0:b.call(x))||oe(h))):null},S=()=>{s==null||s.disconnect(),s=null},_=d=>{const h=e()||null,b=(n==null?void 0:n())||null;if(b&&(b===d||b.contains(d)))return b;let x=d.parentElement;for(;x;){if(fr(x))return x;if(x===h)break;x=x.parentElement}return h},F=d=>{const h=_(d);if(!h){d.scrollIntoView({block:"center",inline:"nearest"});return}const b=h.scrollLeft,x=h.getBoundingClientRect(),O=d.getBoundingClientRect(),k=O.top-x.top+h.scrollTop-h.clientHeight/2+O.height/2,Z=Math.max(0,h.scrollHeight-h.clientHeight),$=Math.max(0,Math.min(k,Z));typeof h.scrollTo=="function"?h.scrollTo({top:$,left:b,behavior:"auto"}):(h.scrollTop=$,h.scrollLeft=b),h.scrollLeft=b},X=(d,h=!0)=>{const b=v();if(!a.length)return y(),i;const x=(d%a.length+a.length)%a.length;a.forEach(k=>{k.element.classList.remove(b.activeClassName||"flyfish-search-match--active")});const O=a[x];return O.element.classList.add(b.activeClassName||"flyfish-search-match--active"),i.currentIndex=x,y(),h&&F(O.element),i},u=(d,h,b,x)=>{var O;const k=e();if(!k)return;const Z=v(),$=d.data;let M=0,T;const Y=d.ownerDocument.createDocumentFragment();let D=!1;for(h.lastIndex=0;(T=h.exec($))&&x.length<b;){if(!T[0]){h.lastIndex+=1;continue}T.index>M&&Y.appendChild(d.ownerDocument.createTextNode($.slice(M,T.index)));const z=d.ownerDocument.createElement("mark");z.className=Z.className||"flyfish-search-match",z.textContent=T[0],z.dataset.searchMatchId=`viewer-search-match-${x.length+1}`,l.add(z),Y.appendChild(z),D=!0;const L=Ye(d.parentElement,o,k);x.push({id:z.dataset.searchMatchId,index:x.length,text:T[0],anchor:L,line:L==null?void 0:L.line,page:L==null?void 0:L.page,element:z}),M=T.index+T[0].length}D&&(M<$.length&&Y.appendChild(d.ownerDocument.createTextNode($.slice(M))),(O=d.parentNode)===null||O===void 0||O.replaceChild(Y,d))},w=()=>{S();const d=e(),h=vr(d);!p||!d||!h||(s=new h(V),s.observe(d,{childList:!0,subtree:!0,characterData:!0}))},E=()=>{if(!p)return;const d=mr(e());if(d!=null&&d.setTimeout){d.setTimeout(w,0);return}setTimeout(w,0)},I=async(d,h=0)=>{const b=sr(d),x=v();i.query=b,S(),g=!0;try{c();const O=e();if(!b||x.enabled===!1||!O){const D=await f(z=>{var L;return(L=z.clear)===null||L===void 0?void 0:L.call(z)},b);return D||i}const k=await f(D=>D.search(b,x),b);if(k)return k;await(r==null?void 0:r());const Z=e();if(!Z)return i;o=he(Z);const $=cr(b,x),M=Math.max(1,x.maxMatches||1e3),T=[],Y=pr(Z);for(const D of Y){if(T.length>=M)break;u(D,$,M,T)}a=T,y(),T.length&&X(h,!0)}finally{g=!1,E()}return i},V=()=>{var d;const h=v();!i.query||g||h.enabled===!1||(m!==null&&clearTimeout(m),m=setTimeout(()=>{m=null,I(i.query,Math.max(0,i.currentIndex))},(d=h.debounce)!==null&&d!==void 0?d:180))};return{get anchors(){return o},state:i,getInternalMatches:()=>a,observe(){p=!0,w()},async refreshAnchors(){return await(r==null?void 0:r()),o=he(e()||null),o},search:d=>I(d,0),next:async()=>await f(d=>{var h,b;return((h=d.next)===null||h===void 0?void 0:h.call(d))||((b=d.getState)===null||b===void 0?void 0:b.call(d))})||X(i.currentIndex+1),previous:async()=>await f(d=>{var h,b;return((h=d.previous)===null||h===void 0?void 0:h.call(d))||((b=d.getState)===null||b===void 0?void 0:b.call(d))})||X(i.currentIndex-1),clear:async()=>{i.query="",S(),g=!0;try{c();const d=await f(h=>{var b;return(b=h.clear)===null||b===void 0?void 0:b.call(h)},"");return d||i}finally{g=!1,E()}},destroy(){p=!1,S(),m!==null&&(clearTimeout(m),m=null),c()}}};ie(),G();var ct=e=>it(e),gr=({root:e,anchors:t})=>Je(e||null,t),wr=({root:e,searchTarget:t,searchOptions:r,waitForDomUpdate:n,preferredScrollContainer:o,getAiOptions:a,onSearchChange:l,onLocationChange:i})=>{let s=null;const p=lr(t,hr({root:e,options:r,waitForDomUpdate:n,preferredScrollContainer:()=>{var m,g;return(g=(m=o==null?void 0:o())!==null&&m!==void 0?m:s==null?void 0:s.getScrollContainer())!==null&&g!==void 0?g:null}}));return s=xr({root:e,searchController:{getAnchors:()=>t.anchors.value,getSearchState:()=>t.state,observe:p.observe,refreshAnchors:p.refreshAnchors,search:p.search,clear:p.clear,next:p.next,previous:p.previous},getAiOptions:a,onSearchChange:l,onLocationChange:i}),{...s,destroyDocumentFeatures:p.destroy}},br=({state:e,onChange:t})=>{const r=ct(e);return t==null||t(r),!0},yr=({anchor:e,onChange:t})=>(t==null||t(e),!0),xr=({root:e,searchController:t,getAiOptions:r,onSearchChange:n,onLocationChange:o})=>{const a=()=>e()||null,l=()=>t.getAnchors(),i=()=>ct(t.getSearchState()),s=()=>{const c=i();return br({state:c,onChange:n}),c},p=()=>gr({root:a(),anchors:l()}),m=()=>{const c=p();return yr({anchor:c,onChange:o}),c},g=c=>(c==null?void 0:c.notify)===!1?p():m(),v=async c=>{t.observe();const f=await t.refreshAnchors();return g(c),f},y=async c=>(l().length||await v(c),l()),A=(c,f)=>{const S=Ge(a(),c);return g(f),S};return{refreshDocumentIndex:v,async clearDocumentState(){return await t.clear(),i()},getScrollContainer(){return nt(a())},async searchDocument(c){return await t.search(c),s()},async clearDocumentSearch(){return await t.clear(),s()},async nextSearchResult(){return await t.next(),m(),s()},async previousSearchResult(){return await t.previous(),m(),s()},getSearchState:i,async collectDocumentAnchors(c){return await v(c),l()},getCurrentDocumentAnchor:p,scrollToLoadedAnchor:A,async scrollToAnchor(c,f){return await y(f),A(c,f)},async scrollToLine(c,f){return await y(f),A(c,f)},getDocumentTextChunks(c){return He(l(),c!=null?c:r==null?void 0:r())}}},Q,ee,dt,ut,pt,ye=N((()=>{ie(),G(),Q=e=>({scale:e.scale,label:e.label,canZoomIn:e.canZoomIn,canZoomOut:e.canZoomOut,canReset:e.canReset,minScale:e.minScale,maxScale:e.maxScale}),ee=(e,t)=>{const r=ve(t||{});return e.scale=r.scale,e.label=r.label,e.canZoomIn=r.canZoomIn,e.canZoomOut=r.canZoomOut,e.canReset=r.canReset,e.minScale=r.minScale,e.maxScale=r.maxScale,e},dt=()=>{const e=new Set;return{emit(){e.forEach(t=>t())},subscribe(t){return e.add(t),()=>{e.delete(t)}}}},ut=e=>{var t,r;return((r=(t=e==null?void 0:e.ownerDocument)===null||t===void 0?void 0:t.defaultView)===null||r===void 0?void 0:r.MutationObserver)||(typeof MutationObserver!="undefined"?MutationObserver:void 0)},pt=({root:e,enabled:t,beforeZoom:r})=>{let n=null,o=null,a=null;const l=ve(),i=()=>{o==null||o(),o=null,n=null,ee(l,null)},s=()=>{var g,v;if((t==null?void 0:t())===!1)return i(),null;const y=tt(e());return y!==n&&(o==null||o(),n=y,o=((g=y==null?void 0:y.subscribe)===null||g===void 0?void 0:g.call(y,()=>{ee(l,y.getState())}))||null),ee(l,((v=y==null?void 0:y.getState)===null||v===void 0?void 0:v.call(y))||null),y},p=()=>{a==null||a.disconnect(),a=null},m=async(g,v)=>{const y=s();return!y||r&&await r(g)===!1||ee(l,await v(y)||y.getState()),Q(l)};return{get provider(){return n},state:l,hasProvider(){return!!s()},refreshProvider:s,observe(){p();const g=e(),v=ut(g);if(!g||!v){s();return}a=new v(()=>{s()}),a.observe(g,{childList:!0,subtree:!0}),s()},clearProvider:i,getState(){return Q(l)},zoomIn:()=>m("zoom-in",g=>g.zoomIn()),zoomOut:()=>m("zoom-out",g=>g.zoomOut()),resetZoom:()=>m("zoom-reset",g=>g.resetZoom()),destroy(){p(),i()}}}}));ye();var vt=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),Er=`
|
|
1
|
+
(function(P){Object.defineProperties(P,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var Ve=Object.defineProperty,N=(e,t)=>()=>(e&&(t=e(e=0)),t),Yt=(e,t)=>{let r={};for(var n in e)Ve(r,n,{get:e[n],enumerable:!0});return t||Ve(r,Symbol.toStringTag,{value:"Module"}),r},ke=["zip","zipx","7z","rar","tar","gz","gzip","tgz","bz2","bzip2","tbz","tbz2","xz","txz","lzma","zst","tzst","cab","ar","cpio","iso","xar","lha","lzh","jar","war","ear","apk","cbz","cbr"],$e=["glb","gltf","obj","stl","ply","fbx","dae","3ds","3mf","amf","usd","usda","usdc","usdz","kmz","step","stp","iges","igs","ifc","3dm","brep","pcd","wrl","vrml","xyz","vtk","vtp"],De=["txt","json","js","mjs","cjs","css","java","py","html","htm","jsx","ts","tsx","xml","log","vue","yaml","yml","ini","sh","bash","sql","go","rs","php","c","cpp","cc","h","hpp","cs","diff","patch","bundle","bdl","jsonc","json5","ipynb","toml","proto","hcl","tex","gv","http","react","rb","swift","kt"],Me=["gif","jpg","jpeg","bmp","tiff","tif","png","svg","webp","avif","ico","heic","heif","jxl"],W=[{id:"office-word-openxml",label:"Word OpenXML",category:"office",extensions:["docx","docm","dotx","dotm"],async:!0,capabilities:{download:!0,print:"adapter",exportHtml:"adapter",zoom:"provider",search:!0}},{id:"office-word-binary",label:"Word Binary",category:"office",extensions:["doc","dot"],async:!0,capabilities:{download:!0,print:"adapter",exportHtml:"adapter",zoom:"provider",search:!0}},{id:"office-presentation",label:"PowerPoint",category:"office",extensions:["pptx","pptm","potx","potm","ppsx","ppsm"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"open-document",label:"Open Document",category:"office",extensions:["rtf","odt","odp"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"spreadsheet-openxml",label:"Spreadsheet",category:"office",extensions:["xlsx","xltx","xlsm","xlsb","xls","xlt","xltm","csv","ods","fods","numbers"],async:!0,capabilities:{download:!0,print:!1,exportHtml:!1,zoom:"provider",search:!0}},{id:"pdf",label:"PDF",category:"document",extensions:["pdf"],async:!0,capabilities:{download:!0,print:"adapter",exportHtml:"adapter",zoom:"provider",search:"provider"}},{id:"ofd",label:"OFD",category:"document",extensions:["ofd"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"typst",label:"Typst",category:"document",extensions:["typ","typst"],async:!0,capabilities:{download:!0,print:"adapter",exportHtml:"adapter",zoom:"provider",search:!0}},{id:"archive",label:"Archive",category:"archive",extensions:ke,async:!0,capabilities:{download:!0,print:!1,exportHtml:!1,zoom:!1,search:!0}},{id:"email",label:"Email",category:"email",extensions:["eml","msg","mbox"],async:!0,capabilities:{download:!0,print:!1,exportHtml:!0,zoom:!1,search:!0}},{id:"eda",label:"EDA",category:"eda",extensions:["olb","dra","gds","oas","oasis"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:!1,search:!0}},{id:"cad",label:"CAD",category:"cad",extensions:["dxf","dwg","dwf","dwfx","xps"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!1}},{id:"model",label:"3D Model",category:"model",extensions:$e,async:!0,capabilities:{download:!0,print:!1,exportHtml:!1,zoom:"provider",search:!1}},{id:"geo",label:"Geospatial",category:"geo",extensions:["geojson","kml","gpx","shp"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"drawing",label:"Drawing",category:"drawing",extensions:["excalidraw","drawio","dio","mermaid","mmd","plantuml","puml"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"mindmap",label:"Mind Map",category:"mindmap",extensions:["xmind"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"epub",label:"EPUB",category:"ebook",extensions:["epub"],async:!0,capabilities:{download:!0,print:!1,exportHtml:!0,zoom:!1,search:"provider"}},{id:"umd",label:"UMD",category:"ebook",extensions:["umd"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!0}},{id:"image",label:"Image",category:"image",extensions:Me,async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:"provider",search:!1}},{id:"markdown",label:"Markdown",category:"markdown",extensions:["md","markdown"],async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:!1,search:!0}},{id:"code",label:"Code and Text",category:"code",extensions:De,async:!0,capabilities:{download:!0,print:!0,exportHtml:!0,zoom:!1,search:!0}},{id:"video",label:"Video",category:"media",extensions:["mp4","webm","m3u8"],async:!0,capabilities:{download:!0,print:!1,exportHtml:!1,zoom:!1,search:!1}},{id:"audio",label:"Audio",category:"media",extensions:["mp3","mpeg","wav","ogg","oga","opus","m4a","aac","flac","weba","midi","mid"],async:!0,capabilities:{download:!0,print:!1,exportHtml:!1,zoom:!1,search:!1}},{id:"data-asset",label:"Data Asset",category:"asset",extensions:["ttf","otf","woff","woff2","psd","ai","eps","sqlite","wasm","parquet","avro","webarchive"],async:!0,capabilities:{download:!0,print:!1,exportHtml:!0,zoom:!1,search:!0}}],Pn=Object.freeze(Array.from(new Set(W.flatMap(e=>e.extensions))).sort()),Jt,Gt,Kt,ve,Pe,oe,Ne,He,ie=N((()=>{Jt=1,Gt=1200,Kt=160,ve=(e={})=>{var t,r,n;const o=Number.isFinite(e.scale)&&e.scale?Number(e.scale):1;return{scale:o,label:e.label||`${Math.round(o*100)}%`,canZoomIn:(t=e.canZoomIn)!==null&&t!==void 0?t:!1,canZoomOut:(r=e.canZoomOut)!==null&&r!==void 0?r:!1,canReset:(n=e.canReset)!==null&&n!==void 0?n:!1,minScale:e.minScale,maxScale:e.maxScale}},Pe=e=>e===!1?{enabled:!1}:e===!0||e===void 0?{}:e,oe=(e="")=>({query:e,total:0,currentIndex:-1,current:null,matches:[]}),Ne=e=>e===!1?{enabled:!1,collectText:!1}:e===!0||e===void 0?{}:e,He=(e,t)=>{var r;const n=Ne(t);if(n.enabled===!1||n.collectText===!1)return[];const o=Math.max(200,n.chunkSize||1200),a=Math.max(0,Math.min(o-1,(r=n.chunkOverlap)!==null&&r!==void 0?r:160)),l=Math.max(0,n.maxTextLength||0),i=[];return e.forEach(s=>{const p=l?s.text.slice(0,l):s.text;if(!p)return;if(p.length<=o){i.push({id:`${s.id}-chunk-1`,text:p,anchor:s,startLine:s.line,endLine:s.line});return}let m=0,g=1;for(;m<p.length;){const v=p.slice(m,m+o);if(i.push({id:`${s.id}-chunk-${g}`,text:v,anchor:s,startLine:s.line,endLine:s.line}),m+o>=p.length)break;m+=o-a,g+=1}}),i}})),Be,Ue,me,fe,Ze,We,je,qe,Xe,he,Ye,Je,Ge,Qt=N((()=>{Be=["[data-viewer-anchor-id]",".pdfViewer .page",".docx-wrapper section",".docx p",".docx li",".docx table",".markdown-body h1",".markdown-body h2",".markdown-body h3",".markdown-body h4",".markdown-body h5",".markdown-body h6",".markdown-body p",".markdown-body li",".markdown-body pre",".markdown-body table","article h1","article h2","article h3","article h4","article h5","article h6","article p","article li","article pre","article table","pre code","p","li","tr","h1","h2","h3","h4","h5","h6","pre","table"].join(","),Ue=[".viewer-actions",".viewer-watermark",".state-panel",".pdf-toolbar",".pdf-nav-pane",".flyfish-search-match"].join(","),me=e=>typeof CSS!="undefined"&&typeof CSS.escape=="function"?CSS.escape(e):e.replace(/["\\]/g,"\\$&"),fe=(e,t=160)=>{const r=e.replace(/\s+/g," ").trim();return r.length>t?`${r.slice(0,t-1)}…`:r},Ze=e=>{const t=e.getBoundingClientRect();return t.width>0||t.height>0},We=e=>!!e.closest(Ue),je=e=>{const t=e.closest("[data-page-number], [data-page]"),r=(t==null?void 0:t.dataset.pageNumber)||(t==null?void 0:t.dataset.page),n=r?Number.parseInt(r,10):NaN;return Number.isFinite(n)?n:void 0},qe=e=>e.matches(".pdfViewer .page, [data-page-number], [data-page]")?"page":e.matches("p, li, tr, pre, code")?"line":"block",Xe=(e,t)=>{let r=e.parentElement;for(;r;){if(t.has(r))return!0;r=r.parentElement}return!1},he=e=>{if(!e)return[];const t=e.getBoundingClientRect(),r=new Set,n=[];return Array.from(e.querySelectorAll(Be)).forEach(o=>{if(We(o)||!Ze(o))return;const a=fe(o.textContent||"",1e3);if(!a||Xe(o,r)&&!o.matches("p, li, tr, pre, code"))return;r.add(o);const l=o.dataset.viewerAnchorId||`viewer-anchor-${n.length+1}`;o.dataset.viewerAnchorId=l,o.dataset.viewerLine=String(n.length+1);const i=o.getBoundingClientRect();n.push({id:l,index:n.length,line:n.length+1,type:qe(o),label:fe(a,96),text:a,page:je(o),top:i.top-t.top+e.scrollTop,left:i.left-t.left+e.scrollLeft,width:i.width,height:i.height})}),n},Ye=(e,t,r)=>{if(!e)return null;const n=e.closest("[data-viewer-anchor-id]");if(n!=null&&n.dataset.viewerAnchorId){const i=t.find(s=>s.id===n.dataset.viewerAnchorId);if(i)return i}if(!r)return null;const o=r.getBoundingClientRect(),a=e.getBoundingClientRect().top-o.top+r.scrollTop;let l=null;for(const i of t){if(i.top<=a+1){l=i;continue}break}return l},Je=(e,t)=>{if(!e||!t.length)return null;const r=e.scrollTop+e.clientHeight*.42;let n=t[0];for(const o of t){if(o.top<=r){n=o;continue}break}return n},Ge=(e,t)=>{if(!e||t===null||t===void 0)return!1;const r=typeof t=="object"?`[data-viewer-anchor-id="${me(t.id)}"]`:typeof t=="number"?`[data-viewer-line="${t}"]`:`[data-viewer-anchor-id="${me(t)}"]`,n=e.querySelector(r);return n?(n.scrollIntoView({block:"center",inline:"nearest"}),!0):typeof t=="object"?(e.scrollTo({top:Math.max(0,t.top-e.clientHeight*.18),left:Math.max(0,Math.min(t.left,e.scrollWidth-e.clientWidth)),behavior:"smooth"}),!0):!1}})),ge,J,Ke,Qe,et,tt,er=N((()=>{ge=new WeakMap,J=new WeakMap,Ke=e=>{if(!e)return null;const t=ge.get(e)||e.__flyfishViewerSearchProvider;if(t)return t;const r=e.querySelector("[data-viewer-search-provider]");return r&&(ge.get(r)||r.__flyfishViewerSearchProvider)||null},Qe=(e,t)=>{J.set(e,t),e.dataset.viewerZoomProvider=e.dataset.viewerZoomProvider||"custom",e.__flyfishViewerZoomProvider=t},et=e=>{e&&(J.delete(e),delete e.dataset.viewerZoomProvider,delete e.__flyfishViewerZoomProvider)},tt=e=>{if(!e)return null;const t=J.get(e)||e.__flyfishViewerZoomProvider;if(t)return t;const r=e.querySelector("[data-viewer-zoom-provider]");return r&&(J.get(r)||r.__flyfishViewerZoomProvider)||null}})),tr,rr,rt,ae,le,nt,nr=N((()=>{tr="[data-viewer-scroll-container], .pdf-wrapper",rr="div, section, article, pre",rt=["auto","scroll","overlay"],ae=e=>Math.max(0,e.scrollHeight-e.clientHeight),le=(e,t={})=>{var r,n;const o=(r=t.minScrollRange)!==null&&r!==void 0?r:2;if(ae(e)<=o)return!1;const a=(n=e.ownerDocument)===null||n===void 0?void 0:n.defaultView,l=a!=null&&a.getComputedStyle?a:typeof window!="undefined"?window:void 0;if(!(l!=null&&l.getComputedStyle))return!1;const i=l.getComputedStyle(e),s=i.overflowY||i.overflow;return(t.overflowValues||rt).includes(s)},nt=(e,t={})=>{if(!e)return null;const r=t.preferredSelector||"[data-viewer-scroll-container], .pdf-wrapper",n=t.candidateSelector||"div, section, article, pre",o=e.querySelector(r);return o&&le(o,t)?o:le(e,t)?e:Array.from(e.querySelectorAll(n)).filter(a=>le(a,t)).sort((a,l)=>ae(l)-ae(a))[0]||o||e}})),G=N((()=>{Qt(),er(),nr()}));G(),ie();var Nn="flyfish-search-match",Hn="flyfish-search-match--active",Bn=1e3,or=["script","style","textarea","input","select","button",".viewer-actions",".viewer-watermark",".state-panel",".pdf-toolbar",".pdf-nav-pane",".flyfish-search-match",".textLayer",".annotationLayer",".xfaLayer","svg","canvas","iframe","video","audio"].join(","),ot=e=>({...e,anchor:e.anchor?{...e.anchor}:null}),it=e=>({query:e.query,total:e.total,currentIndex:e.currentIndex,current:e.current?ot(e.current):null,matches:e.matches.map(ot)}),at=(e,t)=>{const r=it(t);return e.query=r.query,e.total=r.total,e.currentIndex=r.currentIndex,e.current=r.current,e.matches=r.matches,e},we=(e,t)=>(e.anchors.value=t.anchors,at(e.state,t.state),e.state),ir=(e,t)=>(t.observe(),we(e,t)),K=async(e,t,r)=>(await r(),we(e,t)),ar=(e,t)=>(t.destroy(),we(e,t)),lr=(e,t)=>({observe(){return ir(e,t)},async refreshAnchors(){return await K(e,t,()=>t.refreshAnchors()),e.anchors.value},async search(r){return K(e,t,()=>t.search(r))},async next(){return K(e,t,()=>t.next())},async previous(){return K(e,t,()=>t.previous())},async clear(){return K(e,t,()=>t.clear())},destroy(){return ar(e,t)}}),lt=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),sr=e=>e.replace(/\s+/g," ").trim(),cr=(e,t)=>{const r=t.wholeWord?`\\b${lt(e)}\\b`:lt(e);return new RegExp(r,t.caseSensitive?"g":"gi")},dr=e=>e.map(({element:t,...r})=>r),ur=e=>{const t=e.parentNode;if(t){for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e),t.normalize()}},st=(e,t)=>{const r=e.parentElement;return!r||r.closest(or)?!0:!t.contains(r)||!e.data.trim()},be=(e,t)=>{const r=e.ownerDocument.defaultView,n=(r==null?void 0:r.NodeFilter)||(typeof NodeFilter!="undefined"?NodeFilter:void 0);return n?n[t]:t==="SHOW_TEXT"?4:t==="FILTER_REJECT"?2:1},pr=e=>{const t=[],r=e.ownerDocument.createTreeWalker(e,be(e,"SHOW_TEXT"),{acceptNode(o){return st(o,e)?be(e,"FILTER_REJECT"):be(e,"FILTER_ACCEPT")}});let n=r.nextNode();for(;n;)st(n,e)||t.push(n),n=r.nextNode();return t},vr=e=>{var t,r;return((r=(t=e==null?void 0:e.ownerDocument)===null||t===void 0?void 0:t.defaultView)===null||r===void 0?void 0:r.MutationObserver)||(typeof MutationObserver!="undefined"?MutationObserver:void 0)},mr=e=>{var t;return((t=e==null?void 0:e.ownerDocument)===null||t===void 0?void 0:t.defaultView)||(typeof window!="undefined"?window:void 0)},fr=e=>{if(Math.max(0,e.scrollHeight-e.clientHeight)<=2)return!1;const t=e.ownerDocument.defaultView||(typeof window!="undefined"?window:void 0);if(!(t!=null&&t.getComputedStyle))return!0;const r=t.getComputedStyle(e),n=r.overflowY||r.overflow;return["auto","scroll","overlay","visible"].includes(n)},hr=({root:e,options:t,waitForDomUpdate:r,preferredScrollContainer:n})=>{let o=[],a=[];const l=new Set,i=oe();let s=null,p=!1,m=null,g=!1;const v=()=>Pe(t==null?void 0:t()),y=()=>{const d=dr(a);i.total=d.length,i.currentIndex=d.length?Math.max(0,Math.min(i.currentIndex,d.length-1)):-1,i.current=i.currentIndex>=0?d[i.currentIndex]:null,i.matches=d},A=d=>at(i,d),c=()=>{Array.from(l).forEach(ur),l.clear(),a=[],i.total=0,i.currentIndex=-1,i.current=null,i.matches=[]},f=async(d,h=i.query)=>{var b;const x=Ke(e());return x?(c(),A(await d(x)||((b=x.getState)===null||b===void 0?void 0:b.call(x))||oe(h))):null},S=()=>{s==null||s.disconnect(),s=null},_=d=>{const h=e()||null,b=(n==null?void 0:n())||null;if(b&&(b===d||b.contains(d)))return b;let x=d.parentElement;for(;x;){if(fr(x))return x;if(x===h)break;x=x.parentElement}return h},F=d=>{const h=_(d);if(!h){d.scrollIntoView({block:"center",inline:"nearest"});return}const b=h.scrollLeft,x=h.getBoundingClientRect(),O=d.getBoundingClientRect(),k=O.top-x.top+h.scrollTop-h.clientHeight/2+O.height/2,Z=Math.max(0,h.scrollHeight-h.clientHeight),$=Math.max(0,Math.min(k,Z));typeof h.scrollTo=="function"?h.scrollTo({top:$,left:b,behavior:"auto"}):(h.scrollTop=$,h.scrollLeft=b),h.scrollLeft=b},X=(d,h=!0)=>{const b=v();if(!a.length)return y(),i;const x=(d%a.length+a.length)%a.length;a.forEach(k=>{k.element.classList.remove(b.activeClassName||"flyfish-search-match--active")});const O=a[x];return O.element.classList.add(b.activeClassName||"flyfish-search-match--active"),i.currentIndex=x,y(),h&&F(O.element),i},u=(d,h,b,x)=>{var O;const k=e();if(!k)return;const Z=v(),$=d.data;let M=0,T;const Y=d.ownerDocument.createDocumentFragment();let D=!1;for(h.lastIndex=0;(T=h.exec($))&&x.length<b;){if(!T[0]){h.lastIndex+=1;continue}T.index>M&&Y.appendChild(d.ownerDocument.createTextNode($.slice(M,T.index)));const z=d.ownerDocument.createElement("mark");z.className=Z.className||"flyfish-search-match",z.textContent=T[0],z.dataset.searchMatchId=`viewer-search-match-${x.length+1}`,l.add(z),Y.appendChild(z),D=!0;const L=Ye(d.parentElement,o,k);x.push({id:z.dataset.searchMatchId,index:x.length,text:T[0],anchor:L,line:L==null?void 0:L.line,page:L==null?void 0:L.page,element:z}),M=T.index+T[0].length}D&&(M<$.length&&Y.appendChild(d.ownerDocument.createTextNode($.slice(M))),(O=d.parentNode)===null||O===void 0||O.replaceChild(Y,d))},w=()=>{S();const d=e(),h=vr(d);!p||!d||!h||(s=new h(V),s.observe(d,{childList:!0,subtree:!0,characterData:!0}))},E=()=>{if(!p)return;const d=mr(e());if(d!=null&&d.setTimeout){d.setTimeout(w,0);return}setTimeout(w,0)},I=async(d,h=0)=>{const b=sr(d),x=v();i.query=b,S(),g=!0;try{c();const O=e();if(!b||x.enabled===!1||!O){const D=await f(z=>{var L;return(L=z.clear)===null||L===void 0?void 0:L.call(z)},b);return D||i}const k=await f(D=>D.search(b,x),b);if(k)return k;await(r==null?void 0:r());const Z=e();if(!Z)return i;o=he(Z);const $=cr(b,x),M=Math.max(1,x.maxMatches||1e3),T=[],Y=pr(Z);for(const D of Y){if(T.length>=M)break;u(D,$,M,T)}a=T,y(),T.length&&X(h,!0)}finally{g=!1,E()}return i},V=()=>{var d;const h=v();!i.query||g||h.enabled===!1||(m!==null&&clearTimeout(m),m=setTimeout(()=>{m=null,I(i.query,Math.max(0,i.currentIndex))},(d=h.debounce)!==null&&d!==void 0?d:180))};return{get anchors(){return o},state:i,getInternalMatches:()=>a,observe(){p=!0,w()},async refreshAnchors(){return await(r==null?void 0:r()),o=he(e()||null),o},search:d=>I(d,0),next:async()=>await f(d=>{var h,b;return((h=d.next)===null||h===void 0?void 0:h.call(d))||((b=d.getState)===null||b===void 0?void 0:b.call(d))})||X(i.currentIndex+1),previous:async()=>await f(d=>{var h,b;return((h=d.previous)===null||h===void 0?void 0:h.call(d))||((b=d.getState)===null||b===void 0?void 0:b.call(d))})||X(i.currentIndex-1),clear:async()=>{i.query="",S(),g=!0;try{c();const d=await f(h=>{var b;return(b=h.clear)===null||b===void 0?void 0:b.call(h)},"");return d||i}finally{g=!1,E()}},destroy(){p=!1,S(),m!==null&&(clearTimeout(m),m=null),c()}}};ie(),G();var ct=e=>it(e),gr=({root:e,anchors:t})=>Je(e||null,t),wr=({root:e,searchTarget:t,searchOptions:r,waitForDomUpdate:n,preferredScrollContainer:o,getAiOptions:a,onSearchChange:l,onLocationChange:i})=>{let s=null;const p=lr(t,hr({root:e,options:r,waitForDomUpdate:n,preferredScrollContainer:()=>{var m,g;return(g=(m=o==null?void 0:o())!==null&&m!==void 0?m:s==null?void 0:s.getScrollContainer())!==null&&g!==void 0?g:null}}));return s=xr({root:e,searchController:{getAnchors:()=>t.anchors.value,getSearchState:()=>t.state,observe:p.observe,refreshAnchors:p.refreshAnchors,search:p.search,clear:p.clear,next:p.next,previous:p.previous},getAiOptions:a,onSearchChange:l,onLocationChange:i}),{...s,destroyDocumentFeatures:p.destroy}},br=({state:e,onChange:t})=>{const r=ct(e);return t==null||t(r),!0},yr=({anchor:e,onChange:t})=>(t==null||t(e),!0),xr=({root:e,searchController:t,getAiOptions:r,onSearchChange:n,onLocationChange:o})=>{const a=()=>e()||null,l=()=>t.getAnchors(),i=()=>ct(t.getSearchState()),s=()=>{const c=i();return br({state:c,onChange:n}),c},p=()=>gr({root:a(),anchors:l()}),m=()=>{const c=p();return yr({anchor:c,onChange:o}),c},g=c=>(c==null?void 0:c.notify)===!1?p():m(),v=async c=>{t.observe();const f=await t.refreshAnchors();return g(c),f},y=async c=>(l().length||await v(c),l()),A=(c,f)=>{const S=Ge(a(),c);return g(f),S};return{refreshDocumentIndex:v,async clearDocumentState(){return await t.clear(),i()},getScrollContainer(){return nt(a())},async searchDocument(c){return await t.search(c),s()},async clearDocumentSearch(){return await t.clear(),s()},async nextSearchResult(){return await t.next(),m(),s()},async previousSearchResult(){return await t.previous(),m(),s()},getSearchState:i,async collectDocumentAnchors(c){return await v(c),l()},getCurrentDocumentAnchor:p,scrollToLoadedAnchor:A,async scrollToAnchor(c,f){return await y(f),A(c,f)},async scrollToLine(c,f){return await y(f),A(c,f)},getDocumentTextChunks(c){return He(l(),c!=null?c:r==null?void 0:r())}}},Q,ee,dt,ut,pt,ye=N((()=>{ie(),G(),Q=e=>({scale:e.scale,label:e.label,canZoomIn:e.canZoomIn,canZoomOut:e.canZoomOut,canReset:e.canReset,minScale:e.minScale,maxScale:e.maxScale}),ee=(e,t)=>{const r=ve(t||{});return e.scale=r.scale,e.label=r.label,e.canZoomIn=r.canZoomIn,e.canZoomOut=r.canZoomOut,e.canReset=r.canReset,e.minScale=r.minScale,e.maxScale=r.maxScale,e},dt=()=>{const e=new Set;return{emit(){e.forEach(t=>t())},subscribe(t){return e.add(t),()=>{e.delete(t)}}}},ut=e=>{var t,r;return((r=(t=e==null?void 0:e.ownerDocument)===null||t===void 0?void 0:t.defaultView)===null||r===void 0?void 0:r.MutationObserver)||(typeof MutationObserver!="undefined"?MutationObserver:void 0)},pt=({root:e,enabled:t,beforeZoom:r})=>{let n=null,o=null,a=null;const l=ve(),i=()=>{o==null||o(),o=null,n=null,ee(l,null)},s=()=>{var g,v;if((t==null?void 0:t())===!1)return i(),null;const y=tt(e());return y!==n&&(o==null||o(),n=y,o=((g=y==null?void 0:y.subscribe)===null||g===void 0?void 0:g.call(y,()=>{ee(l,y.getState())}))||null),ee(l,((v=y==null?void 0:y.getState)===null||v===void 0?void 0:v.call(y))||null),y},p=()=>{a==null||a.disconnect(),a=null},m=async(g,v)=>{const y=s();return!y||r&&await r(g)===!1||ee(l,await v(y)||y.getState()),Q(l)};return{get provider(){return n},state:l,hasProvider(){return!!s()},refreshProvider:s,observe(){p();const g=e(),v=ut(g);if(!g||!v){s();return}a=new v(()=>{s()}),a.observe(g,{childList:!0,subtree:!0}),s()},clearProvider:i,getState(){return Q(l)},zoomIn:()=>m("zoom-in",g=>g.zoomIn()),zoomOut:()=>m("zoom-out",g=>g.zoomOut()),resetZoom:()=>m("zoom-reset",g=>g.resetZoom()),destroy(){p(),i()}}}}));ye();var vt=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),Er=`
|
|
2
2
|
* { box-sizing: border-box; }
|
|
3
3
|
html, body { margin: 0; min-height: 100%; background: #f2f4f7; color: #172033; font-family: Aptos, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
|
|
4
4
|
body { padding: 24px; }
|
|
@@ -283,7 +283,7 @@
|
|
|
283
283
|
</main>
|
|
284
284
|
${i}
|
|
285
285
|
</body>
|
|
286
|
-
</html>`},xe=(e,t)=>{const r=URL.createObjectURL(e),n=document.createElement("a");n.href=r,n.download=t,n.rel="noopener",document.body.appendChild(n),n.click(),n.remove(),window.setTimeout(()=>URL.revokeObjectURL(r),4e3)},_r=(e,t)=>{const r=document.createElement("a");r.href=e,r.download=t,r.rel="noopener",r.target="_blank",document.body.appendChild(r),r.click(),r.remove()},Ar=(e,t)=>{const r=Array.from(e.querySelectorAll("canvas"));Array.from(t.querySelectorAll("canvas")).forEach((n,o)=>{const a=r[o];if(a)try{const l=document.createElement("img");l.src=a.toDataURL("image/png"),l.alt="rendered canvas",l.style.maxWidth="100%",l.style.display="block",l.style.margin="0 auto",n.replaceWith(l)}catch{}})},Fr=e=>new Promise(t=>{const r=e||(typeof window!="undefined"?window:void 0);if(!r||typeof r.requestAnimationFrame!="function"){(r!=null&&r.setTimeout?r.setTimeout.bind(r):globalThis.setTimeout.bind(globalThis))(()=>t(),0);return}const n=r.requestAnimationFrame.bind(r);n(()=>{n(()=>t())})}),Cr=async e=>{const t=Array.from(e.querySelectorAll("img"));await Promise.all(t.map(async r=>{if(!r.complete){if("decode"in r)try{await r.decode();return}catch{}await new Promise(n=>{r.addEventListener("load",()=>n(),{once:!0}),r.addEventListener("error",()=>n(),{once:!0})})}}))},Rr=async e=>{const{document:t}=e;t.readyState!=="complete"&&await new Promise(r=>{e.addEventListener("load",()=>r(),{once:!0}),e.setTimeout(()=>r(),1200)}),await Promise.all(Array.from(t.images).map(async r=>{if(!r.complete){if("decode"in r)try{await r.decode();return}catch{}await new Promise(n=>{r.addEventListener("load",()=>n(),{once:!0}),r.addEventListener("error",()=>n(),{once:!0}),e.setTimeout(()=>n(),1500)})}})),await new Promise(r=>{e.requestAnimationFrame(()=>{e.requestAnimationFrame(()=>r())})})},ft=async(e,t)=>t.mode!=="print"||!(e!=null&&e.printStyle)?"":typeof e.printStyle=="function"?await e.printStyle(t):e.printStyle,Ir=async(e,t)=>{var r;await((r=t==null?void 0:t.beforeSnapshot)===null||r===void 0?void 0:r.call(t)),await Fr(),await Cr(e)},Tr=async({source:e,mode:t="export",title:r,adapter:n=null,watermarkInlineStyle:o=""})=>{const a={mode:t,title:r},l=n==null?void 0:n.toHtml;if(l){const p=await l(a),m=await ft(n,a);return mt({contentHtml:p,includeDocumentStyles:n.includeDocumentStyles!==!1,printStyle:m,title:r,watermarkInlineStyle:o})}await Ir(e,n);const i=e.cloneNode(!0);Ar(e,i);const s=await ft(n,a);return mt({contentHtml:i.innerHTML,printStyle:s,title:r,watermarkInlineStyle:o})},j="preview.bin",C=e=>e.trim().replace(/^\./,"").toLowerCase(),Or=e=>{try{return decodeURIComponent(e)}catch{return e}},te=e=>{const t=e.split(/[?#]/)[0]||e,r=t.lastIndexOf(".");return r===-1?"":C(t.slice(r+1))},H=(e,t=j)=>{const r=(e||"").split(/[?#]/)[0].trim();if(!r)return t;const n=Math.max(r.lastIndexOf("/"),r.lastIndexOf("\\"));return Or(n===-1?r:r.slice(n+1))},Lr=e=>e.file?"file":e.buffer?"buffer":e.url?"url":"empty",ht=e=>e&&"name"in e&&typeof e.name=="string"?e.name:void 0,zr=({filename:e,file:t,url:r,fallback:n=""})=>{if(e)return H(e,n);const o=ht(t);return o?H(o,n):r?H(r,n):n},gt=e=>{const t=Lr(e),r=H(e.filename||ht(e.file)||e.url,e.type?`preview.${C(e.type)}`:j),n=C(e.type||te(r)),o=typeof e.size=="number"?e.size:e.file?e.file.size:e.buffer?e.buffer.byteLength:void 0;return{kind:t,filename:r,extension:n,url:e.url,file:e.file,buffer:e.buffer,size:o}},wt=(e,t=j)=>{if(typeof File!="undefined"&&e instanceof File)return e;const r=H(t||"preview.bin");if(typeof Blob!="undefined"&&e instanceof Blob)return new File([e],r,{type:e.type});if(e instanceof ArrayBuffer)return new File([e],r,{});throw new Error("Unsupported file source input.")},bt=async e=>typeof e.arrayBuffer=="function"?e.arrayBuffer():new Promise((t,r)=>{const n=new FileReader;n.onload=o=>{var a;const l=(a=o.target)===null||a===void 0?void 0:a.result;if(l instanceof ArrayBuffer){t(l);return}r(new Error("Failed to read file as ArrayBuffer."))},n.onerror=o=>r(o),n.readAsArrayBuffer(e)}),yt="file-viewer-preview",Ee="preview",xt=j,Vr=e=>e&&"name"in e&&typeof e.name=="string"?e.name:"",kr=e=>e&&typeof e.type=="string"?e.type:"",$r=({buffer:e=null,file:t=null,url:r=null,filename:n=null,mimeType:o=null}={})=>({buffer:e,file:t,url:r,filename:n,mimeType:o||kr(t)||null}),se=(e,t=Ee)=>(e==null?void 0:e.filename)||t,Dr=(e,t=Ee)=>{var r;return $r({buffer:e==null?void 0:e.buffer,file:e==null?void 0:e.file,url:e==null?void 0:e.url,filename:se(e,t),mimeType:(r=e==null?void 0:e.file)===null||r===void 0?void 0:r.type})},Mr=(e,t="preview")=>e.filename||Vr(e.file)||t,B=({filename:e,source:t,fallback:r=yt})=>e||(t?Mr(t,""):"")||r,Pr=e=>!!e.buffer||!!e.file||!!e.url,Se=async(e,t)=>e?await e(t):!0,Et=async(e,{source:t,title:r,filename:n,adapter:o=null,watermarkInlineStyle:a})=>{if(!t)throw new Error("当前没有可导出的预览内容");return Tr({source:t,mode:e,title:B({filename:r||n,fallback:yt}),adapter:o,watermarkInlineStyle:a})},Nr=async({source:e,filename:t,beforeOperation:r,throwOnMissingSource:n=!0})=>{var o;if(!Pr(e)){if(n)throw new Error("当前没有可下载的源文件");return!1}if(!await Se(r,"download"))return!1;const a=B({filename:t,source:e,fallback:xt});return e.buffer?(xe(new Blob([e.buffer],{type:e.mimeType||((o=e.file)===null||o===void 0?void 0:o.type)||"application/octet-stream"}),a),!0):e.file?(xe(e.file,a),!0):(_r(e.url,a),!0)},Hr=async({download:e=!0,filename:t,beforeOperation:r,...n})=>{if(!await Se(r,"export-html"))return"";const o=await Et("export",{...n,filename:t});if(e!==!1){const a=B({filename:t||n.title,fallback:Ee});xe(new Blob([o],{type:"text/html;charset=utf-8"}),`${a}.rendered.html`)}return o},Br=async({autoPrint:e=!0,beforeOperation:t,openWindow:r,printAvailable:n=!0,printWindow:o,...a})=>{if(!n)throw new Error("当前文件类型不支持完整打印,请下载原文件后在本地应用中打印");if(!await Se(t,"print"))return!1;const l=await Et("print",a),i=o||(r==null?void 0:r())||(typeof window!="undefined"?window.open("","_blank"):null);if(!i)throw new Error("浏览器拦截了打印窗口");return i.document.open(),i.document.write(l),i.document.close(),i.focus(),await Rr(i),e!==!1&&i.print(),!0},Ur=e=>({...e,extensions:e.extensions.map(C)}),ce=(e=W)=>{const t=new Map,r=new Map,n=o=>{const a=Ur(o),l=t.get(a.id);l&&l.extensions.forEach(i=>{var s;((s=r.get(i))===null||s===void 0?void 0:s.id)===l.id&&r.delete(i)}),t.set(a.id,a),a.extensions.forEach(i=>{const s=r.get(i);if(s&&s.id!==a.id)throw new Error(`File extension "${i}" is already registered by renderer "${s.id}".`);r.set(i,a)})};return e.forEach(n),{register:n,unregister(o){const a=t.get(o);return a?(a.extensions.forEach(l=>{var i;((i=r.get(l))===null||i===void 0?void 0:i.id)===o&&r.delete(l)}),t.delete(o),!0):!1},getById(o){return t.get(o)},getByExtension(o){return r.get(C(o))},hasExtension(o){return r.has(C(o))},list(){return Array.from(t.values())},listExtensions(){return Array.from(r.keys()).sort()}}},Zr=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&Array.isArray(e.renderers),_e=e=>e?Array.isArray(e)?e.flatMap(t=>_e(t)):Zr(e)?_e(e.renderers):[e]:[],Wr=async({registry:e,plugins:t,registerHandler:r})=>{var n,o,a;for(const l of t)(n=l.definitions)===null||n===void 0||n.forEach(i=>{e.register(i)}),(o=l.handlers)===null||o===void 0||o.forEach(i=>{r==null||r(i)}),await((a=l.install)===null||a===void 0?void 0:a.call(l,{registry:e,registerHandler:r}));return e},St=({registry:e=ce(W),handlers:t,fallbackHandler:r,fallbackKey:n="error"})=>{const o=Array.from(t).reduce((s,p)=>(s.set(p.rendererId,p.handler),s),new Map),a=new Map,l=[];e.list().forEach(s=>{const p=o.get(s.id);if(!p){l.push(s.id);return}s.extensions.forEach(m=>{a.set(C(m),p)})}),r&&n&&a.set(C(n),r);const i=s=>a.get(C(s));return{handlersByRendererId:o,handlersByExtension:a,missingRendererIds:l,get:i,resolve(s){return i(s)||(n?i(n):void 0)},has(s){return a.has(C(s))},listExtensions(){return Array.from(a.keys()).sort()}}},_t=Object.freeze({download:!1,print:!1,exportHtml:!1,zoom:!1,zoomIn:!1,zoomOut:!1,zoomReset:!1}),q=e=>e===!0||e==="adapter"||e==="provider",jr=(e,t)=>{var r,n,o,a,l,i,s,p;return e?{download:((r=e.capabilities)===null||r===void 0?void 0:r.download)!==!1,print:q((n=e.capabilities)===null||n===void 0?void 0:n.print),exportHtml:q((o=e.capabilities)===null||o===void 0?void 0:o.exportHtml),zoom:q((a=e.capabilities)===null||a===void 0?void 0:a.zoom),zoomIn:q((l=e.capabilities)===null||l===void 0?void 0:l.zoom),zoomOut:q((i=e.capabilities)===null||i===void 0?void 0:i.zoom),zoomReset:q((s=e.capabilities)===null||s===void 0?void 0:s.zoom),...(p=t==null?void 0:t.getAvailability)===null||p===void 0?void 0:p.call(t)}:{..._t}},qr=e=>({..._t,download:C(e).length>0}),Hn=["pptx","pptm","potx","potm","ppsx","ppsm","ofd","dxf","dwg","dwf","dwfx","xps","excalidraw","drawio","dio","mermaid","mmd","plantuml","puml","umd","md","markdown","olb","dra",...De,...Me],Bn=["xlsx","xltx","xlsm","xlsb","xls","xlt","xltm","csv","ods","fods","numbers",...ke,"eml","msg","epub","mp4","mp3","mpeg","wav","ogg","oga","opus","m4a","aac","flac","weba",...$e],Xr={"load-start":"onLoadStart","load-complete":"onLoadComplete","unload-start":"onUnloadStart","unload-complete":"onUnloadComplete"},Yr={download:"下载原始文件",print:"打印完整渲染内容","export-html":"导出渲染 HTML","zoom-in":"放大预览","zoom-out":"缩小预览","zoom-reset":"还原预览比例"},Jr=({phase:e,version:t,source:r,filename:n,file:o,url:a,size:l,bufferSize:i,startedAt:s,duration:p,timestamp:m,reason:g})=>{var v;const y=H((o==null?void 0:o.name)||n||a||""),A=m!=null?m:Date.now();return{phase:e,type:te(y),filename:y,source:r,url:a,file:o||void 0,size:(v=l!=null?l:o==null?void 0:o.size)!==null&&v!==void 0?v:i,version:t,timestamp:A,duration:p!=null?p:e==="load-complete"&&typeof s=="number"?A-s:void 0,reason:g}},At=({phase:e,source:t,version:r,startedAt:n,timestamp:o,reason:a})=>{const l=o!=null?o:Date.now();return Jr({phase:e,filename:t.filename,source:t.kind,url:t.url,file:typeof File!="undefined"&&t.file instanceof File?t.file:void 0,size:t.size,version:r,timestamp:l,duration:e.endsWith("complete")&&typeof n=="number"?l-n:void 0,reason:a})},Gr=(e,t,r=Date.now())=>{const{phase:n,...o}=t;return{...o,operation:e,label:Yr[e],timestamp:r}},Kr=e=>Xr[e],Qr=async(e,t,r)=>{const n=t==null?void 0:t[Kr(e.phase)];if(n)try{await n(e)}catch(o){r==null||r(o,e)}},en=(e,t)=>{const r=e==null?void 0:e.toolbar;if(!r||typeof r!="object")return[e==null?void 0:e.beforeOperation];const n=t==="download"?r.beforeDownload:t==="print"?r.beforePrint:t==="export-html"?r.beforeExportHtml:void 0;return[e==null?void 0:e.beforeOperation,r.beforeOperation,n]},tn=async({context:e,options:t,onBefore:r,onCancel:n,onError:o})=>{r==null||r(e);try{for(const a of en(t,e.operation))if(a&&await a(e)===!1)return n==null||n(e),!1}catch(a){return o==null||o(a,e),n==null||n(e),!1}return!0},Un=Object.freeze({downloading:"正在下载文件资源...",streamingPdf:"正在建立 PDF 流式预览...",reading:"正在解析文件内容..."}),Ft=Object.freeze({accent:"#5f6f82",soft:"rgba(95, 111, 130, 0.12)",badge:"DOC",label:"文件内容",hint:"正在整理内容结构并生成预览。"}),rn="支持 Office、PDF、OFD、Typst、压缩包、邮件、OLB/DRA、CAD、地理数据、3D 模型、Excalidraw、draw.io、EPUB、UMD、Markdown、代码/文本、图片、音视频、字体和数据资产的在线预览",nn=e=>{const t=C(e);return t?`.${t}`:"当前"},on=({state:e,extension:t="",title:r,message:n,description:o,theme:a=Ft,recoverable:l})=>({state:e,extension:C(t),title:r,message:n,description:o,theme:a,recoverable:l}),Ct=(e="",t=Ft)=>on({state:"unsupported",extension:e,title:"暂不支持在线预览",message:`不支持${nn(e)}格式的在线预览,请下载后预览或转换为支持的格式。`,description:rn,theme:t,recoverable:!0}),an=()=>{let e=0,t=null;return{get version(){return e},createVersion(){return e+=1,t==null||t.abort(),t=null,e},isCurrent(r){return r===e},createAbortController(){return t=typeof AbortController=="function"?new AbortController:null,t},clearAbortController(r){t===r&&(t=null)},abort(){t==null||t.abort(),t=null}}},ln=(e=an())=>({requestController:e,getCurrentVersion:()=>e.version,isCurrentRequest:t=>e.isCurrent(t)}),sn=()=>({session:null,exportAdapter:null}),re=(e,t)=>{var r,n;return"session"in t&&(e.session=(r=t.session)!==null&&r!==void 0?r:null),"exportAdapter"in t&&(e.exportAdapter=(n=t.exportAdapter)!==null&&n!==void 0?n:null),e},cn=(e,t)=>({rendered:e,destroy:()=>t?t():Rt(e)}),Rt=e=>{if(!e||typeof e!="object")return;const t=e;if(typeof t.unmount=="function")return t.unmount();if(typeof t.$destroy=="function")return t.$destroy();if(typeof t.destroy=="function")return t.destroy()},dn=({source:e,options:t,registerExportAdapter:r,renderContext:n})=>({filename:e.filename,url:e.url,streamUrl:e.url,options:t,registerExportAdapter:r,...n}),It=({handler:e,getTarget:t=o=>o.surface.container,createContext:r=dn,destroy:n})=>async o=>{const{source:a}=o;if(!a.buffer)throw new Error("FileRenderHandler renderer requires an ArrayBuffer source.");const l=t(o),i=await e(a.buffer,l,a.extension,r(o));return cn(i,()=>n?n(i,o):Rt(i))},un=({definitions:e=W,handlers:t,getTarget:r,createContext:n,destroy:o})=>{const a=ce(e),l=St({registry:a,handlers:t});return{registry:ce(a.list().map(i=>{const s=l.handlersByRendererId.get(i.id);return s?{...i,load:It({handler:s,getTarget:r,createContext:n,destroy:o})}:i})),dispatcher:l,missingRendererIds:l.missingRendererIds}},pn=Yt({default:()=>vn});async function vn(e,t,r){const n=await kt(e,r);let o=1,a=0;const l=dt(),i=document.createElement("div");i.className="image-viewer",i.dataset.viewerZoomProvider="image";const s=document.createElement("div");s.className="image-stage";const p=document.createElement("img");p.alt="图片",p.src=n,s.append(p),i.append(s);const m=Dt(n),g=()=>m.open();p.addEventListener("click",g),document.body.append(m.element);const v=()=>{a=i.clientHeight||0,Ae(p,a,o),l.emit()},y=new ResizeObserver(v);y.observe(i);const A=()=>({scale:o,label:`${Math.round(o*100)}%`,canZoomIn:o<5,canZoomOut:o>.1,canReset:o!==1,minScale:.1,maxScale:5}),c=f=>(o=$t(f),Ae(p,a,o),l.emit(),A());return Qe(i,{zoomIn:()=>c(o+.15),zoomOut:()=>c(o-.15),resetZoom:()=>c(1),setZoom:c,getState:A,subscribe:l.subscribe}),t.replaceChildren(Lt(),i),v(),{$el:t,unmount(){et(i),y.disconnect(),p.removeEventListener("click",g),m.destroy(),t.replaceChildren()}}}var Tt,Ot,Lt,zt,Vt,kt,$t,Ae,Dt,mn=N((()=>{G(),Tt={avif:"image/avif",bmp:"image/bmp",gif:"image/gif",heic:"image/heic",heif:"image/heif",ico:"image/x-icon",jxl:"image/jxl",jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",svg:"image/svg+xml",tif:"image/tiff",tiff:"image/tiff",webp:"image/webp"},Ot=`
|
|
286
|
+
</html>`},xe=(e,t)=>{const r=URL.createObjectURL(e),n=document.createElement("a");n.href=r,n.download=t,n.rel="noopener",document.body.appendChild(n),n.click(),n.remove(),window.setTimeout(()=>URL.revokeObjectURL(r),4e3)},_r=(e,t)=>{const r=document.createElement("a");r.href=e,r.download=t,r.rel="noopener",r.target="_blank",document.body.appendChild(r),r.click(),r.remove()},Ar=(e,t)=>{const r=Array.from(e.querySelectorAll("canvas"));Array.from(t.querySelectorAll("canvas")).forEach((n,o)=>{const a=r[o];if(a)try{const l=document.createElement("img");l.src=a.toDataURL("image/png"),l.alt="rendered canvas",l.style.maxWidth="100%",l.style.display="block",l.style.margin="0 auto",n.replaceWith(l)}catch{}})},Fr=e=>new Promise(t=>{const r=e||(typeof window!="undefined"?window:void 0);if(!r||typeof r.requestAnimationFrame!="function"){(r!=null&&r.setTimeout?r.setTimeout.bind(r):globalThis.setTimeout.bind(globalThis))(()=>t(),0);return}const n=r.requestAnimationFrame.bind(r);n(()=>{n(()=>t())})}),Cr=async e=>{const t=Array.from(e.querySelectorAll("img"));await Promise.all(t.map(async r=>{if(!r.complete){if("decode"in r)try{await r.decode();return}catch{}await new Promise(n=>{r.addEventListener("load",()=>n(),{once:!0}),r.addEventListener("error",()=>n(),{once:!0})})}}))},Rr=async e=>{const{document:t}=e;t.readyState!=="complete"&&await new Promise(r=>{e.addEventListener("load",()=>r(),{once:!0}),e.setTimeout(()=>r(),1200)}),await Promise.all(Array.from(t.images).map(async r=>{if(!r.complete){if("decode"in r)try{await r.decode();return}catch{}await new Promise(n=>{r.addEventListener("load",()=>n(),{once:!0}),r.addEventListener("error",()=>n(),{once:!0}),e.setTimeout(()=>n(),1500)})}})),await new Promise(r=>{e.requestAnimationFrame(()=>{e.requestAnimationFrame(()=>r())})})},ft=async(e,t)=>t.mode!=="print"||!(e!=null&&e.printStyle)?"":typeof e.printStyle=="function"?await e.printStyle(t):e.printStyle,Ir=async(e,t)=>{var r;await((r=t==null?void 0:t.beforeSnapshot)===null||r===void 0?void 0:r.call(t)),await Fr(),await Cr(e)},Tr=async({source:e,mode:t="export",title:r,adapter:n=null,watermarkInlineStyle:o=""})=>{const a={mode:t,title:r},l=n==null?void 0:n.toHtml;if(l){const p=await l(a),m=await ft(n,a);return mt({contentHtml:p,includeDocumentStyles:n.includeDocumentStyles!==!1,printStyle:m,title:r,watermarkInlineStyle:o})}await Ir(e,n);const i=e.cloneNode(!0);Ar(e,i);const s=await ft(n,a);return mt({contentHtml:i.innerHTML,printStyle:s,title:r,watermarkInlineStyle:o})},j="preview.bin",C=e=>e.trim().replace(/^\./,"").toLowerCase(),Or=e=>{try{return decodeURIComponent(e)}catch{return e}},te=e=>{const t=e.split(/[?#]/)[0]||e,r=t.lastIndexOf(".");return r===-1?"":C(t.slice(r+1))},H=(e,t=j)=>{const r=(e||"").split(/[?#]/)[0].trim();if(!r)return t;const n=Math.max(r.lastIndexOf("/"),r.lastIndexOf("\\"));return Or(n===-1?r:r.slice(n+1))},Lr=e=>e.file?"file":e.buffer?"buffer":e.url?"url":"empty",ht=e=>e&&"name"in e&&typeof e.name=="string"?e.name:void 0,zr=({filename:e,file:t,url:r,fallback:n=""})=>{if(e)return H(e,n);const o=ht(t);return o?H(o,n):r?H(r,n):n},gt=e=>{const t=Lr(e),r=H(e.filename||ht(e.file)||e.url,e.type?`preview.${C(e.type)}`:j),n=C(e.type||te(r)),o=typeof e.size=="number"?e.size:e.file?e.file.size:e.buffer?e.buffer.byteLength:void 0;return{kind:t,filename:r,extension:n,url:e.url,file:e.file,buffer:e.buffer,size:o}},wt=(e,t=j)=>{if(typeof File!="undefined"&&e instanceof File)return e;const r=H(t||"preview.bin");if(typeof Blob!="undefined"&&e instanceof Blob)return new File([e],r,{type:e.type});if(e instanceof ArrayBuffer)return new File([e],r,{});throw new Error("Unsupported file source input.")},bt=async e=>typeof e.arrayBuffer=="function"?e.arrayBuffer():new Promise((t,r)=>{const n=new FileReader;n.onload=o=>{var a;const l=(a=o.target)===null||a===void 0?void 0:a.result;if(l instanceof ArrayBuffer){t(l);return}r(new Error("Failed to read file as ArrayBuffer."))},n.onerror=o=>r(o),n.readAsArrayBuffer(e)}),yt="file-viewer-preview",Ee="preview",xt=j,Vr=e=>e&&"name"in e&&typeof e.name=="string"?e.name:"",kr=e=>e&&typeof e.type=="string"?e.type:"",$r=({buffer:e=null,file:t=null,url:r=null,filename:n=null,mimeType:o=null}={})=>({buffer:e,file:t,url:r,filename:n,mimeType:o||kr(t)||null}),se=(e,t=Ee)=>(e==null?void 0:e.filename)||t,Dr=(e,t=Ee)=>{var r;return $r({buffer:e==null?void 0:e.buffer,file:e==null?void 0:e.file,url:e==null?void 0:e.url,filename:se(e,t),mimeType:(r=e==null?void 0:e.file)===null||r===void 0?void 0:r.type})},Mr=(e,t="preview")=>e.filename||Vr(e.file)||t,B=({filename:e,source:t,fallback:r=yt})=>e||(t?Mr(t,""):"")||r,Pr=e=>!!e.buffer||!!e.file||!!e.url,Se=async(e,t)=>e?await e(t):!0,Et=async(e,{source:t,title:r,filename:n,adapter:o=null,watermarkInlineStyle:a})=>{if(!t)throw new Error("当前没有可导出的预览内容");return Tr({source:t,mode:e,title:B({filename:r||n,fallback:yt}),adapter:o,watermarkInlineStyle:a})},Nr=async({source:e,filename:t,beforeOperation:r,throwOnMissingSource:n=!0})=>{var o;if(!Pr(e)){if(n)throw new Error("当前没有可下载的源文件");return!1}if(!await Se(r,"download"))return!1;const a=B({filename:t,source:e,fallback:xt});return e.buffer?(xe(new Blob([e.buffer],{type:e.mimeType||((o=e.file)===null||o===void 0?void 0:o.type)||"application/octet-stream"}),a),!0):e.file?(xe(e.file,a),!0):(_r(e.url,a),!0)},Hr=async({download:e=!0,filename:t,beforeOperation:r,...n})=>{if(!await Se(r,"export-html"))return"";const o=await Et("export",{...n,filename:t});if(e!==!1){const a=B({filename:t||n.title,fallback:Ee});xe(new Blob([o],{type:"text/html;charset=utf-8"}),`${a}.rendered.html`)}return o},Br=async({autoPrint:e=!0,beforeOperation:t,openWindow:r,printAvailable:n=!0,printWindow:o,...a})=>{if(!n)throw new Error("当前文件类型不支持完整打印,请下载原文件后在本地应用中打印");if(!await Se(t,"print"))return!1;const l=await Et("print",a),i=o||(r==null?void 0:r())||(typeof window!="undefined"?window.open("","_blank"):null);if(!i)throw new Error("浏览器拦截了打印窗口");return i.document.open(),i.document.write(l),i.document.close(),i.focus(),await Rr(i),e!==!1&&i.print(),!0},Ur=e=>({...e,extensions:e.extensions.map(C)}),ce=(e=W)=>{const t=new Map,r=new Map,n=o=>{const a=Ur(o),l=t.get(a.id);l&&l.extensions.forEach(i=>{var s;((s=r.get(i))===null||s===void 0?void 0:s.id)===l.id&&r.delete(i)}),t.set(a.id,a),a.extensions.forEach(i=>{const s=r.get(i);if(s&&s.id!==a.id)throw new Error(`File extension "${i}" is already registered by renderer "${s.id}".`);r.set(i,a)})};return e.forEach(n),{register:n,unregister(o){const a=t.get(o);return a?(a.extensions.forEach(l=>{var i;((i=r.get(l))===null||i===void 0?void 0:i.id)===o&&r.delete(l)}),t.delete(o),!0):!1},getById(o){return t.get(o)},getByExtension(o){return r.get(C(o))},hasExtension(o){return r.has(C(o))},list(){return Array.from(t.values())},listExtensions(){return Array.from(r.keys()).sort()}}},Zr=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&Array.isArray(e.renderers),_e=e=>e?Array.isArray(e)?e.flatMap(t=>_e(t)):Zr(e)?_e(e.renderers):[e]:[],Wr=async({registry:e,plugins:t,registerHandler:r})=>{var n,o,a;for(const l of t)(n=l.definitions)===null||n===void 0||n.forEach(i=>{e.register(i)}),(o=l.handlers)===null||o===void 0||o.forEach(i=>{r==null||r(i)}),await((a=l.install)===null||a===void 0?void 0:a.call(l,{registry:e,registerHandler:r}));return e},St=({registry:e=ce(W),handlers:t,fallbackHandler:r,fallbackKey:n="error"})=>{const o=Array.from(t).reduce((s,p)=>(s.set(p.rendererId,p.handler),s),new Map),a=new Map,l=[];e.list().forEach(s=>{const p=o.get(s.id);if(!p){l.push(s.id);return}s.extensions.forEach(m=>{a.set(C(m),p)})}),r&&n&&a.set(C(n),r);const i=s=>a.get(C(s));return{handlersByRendererId:o,handlersByExtension:a,missingRendererIds:l,get:i,resolve(s){return i(s)||(n?i(n):void 0)},has(s){return a.has(C(s))},listExtensions(){return Array.from(a.keys()).sort()}}},_t=Object.freeze({download:!1,print:!1,exportHtml:!1,zoom:!1,zoomIn:!1,zoomOut:!1,zoomReset:!1}),q=e=>e===!0||e==="adapter"||e==="provider",jr=(e,t)=>{var r,n,o,a,l,i,s,p;return e?{download:((r=e.capabilities)===null||r===void 0?void 0:r.download)!==!1,print:q((n=e.capabilities)===null||n===void 0?void 0:n.print),exportHtml:q((o=e.capabilities)===null||o===void 0?void 0:o.exportHtml),zoom:q((a=e.capabilities)===null||a===void 0?void 0:a.zoom),zoomIn:q((l=e.capabilities)===null||l===void 0?void 0:l.zoom),zoomOut:q((i=e.capabilities)===null||i===void 0?void 0:i.zoom),zoomReset:q((s=e.capabilities)===null||s===void 0?void 0:s.zoom),...(p=t==null?void 0:t.getAvailability)===null||p===void 0?void 0:p.call(t)}:{..._t}},qr=e=>({..._t,download:C(e).length>0}),Un=["pptx","pptm","potx","potm","ppsx","ppsm","ofd","dxf","dwg","dwf","dwfx","xps","excalidraw","drawio","dio","mermaid","mmd","plantuml","puml","umd","md","markdown","olb","dra",...De,...Me],Zn=["xlsx","xltx","xlsm","xlsb","xls","xlt","xltm","csv","ods","fods","numbers",...ke,"eml","msg","epub","mp4","mp3","mpeg","wav","ogg","oga","opus","m4a","aac","flac","weba",...$e],Xr={"load-start":"onLoadStart","load-complete":"onLoadComplete","unload-start":"onUnloadStart","unload-complete":"onUnloadComplete"},Yr={download:"下载原始文件",print:"打印完整渲染内容","export-html":"导出渲染 HTML","zoom-in":"放大预览","zoom-out":"缩小预览","zoom-reset":"还原预览比例"},Jr=({phase:e,version:t,source:r,filename:n,file:o,url:a,size:l,bufferSize:i,startedAt:s,duration:p,timestamp:m,reason:g})=>{var v;const y=H((o==null?void 0:o.name)||n||a||""),A=m!=null?m:Date.now();return{phase:e,type:te(y),filename:y,source:r,url:a,file:o||void 0,size:(v=l!=null?l:o==null?void 0:o.size)!==null&&v!==void 0?v:i,version:t,timestamp:A,duration:p!=null?p:e==="load-complete"&&typeof s=="number"?A-s:void 0,reason:g}},At=({phase:e,source:t,version:r,startedAt:n,timestamp:o,reason:a})=>{const l=o!=null?o:Date.now();return Jr({phase:e,filename:t.filename,source:t.kind,url:t.url,file:typeof File!="undefined"&&t.file instanceof File?t.file:void 0,size:t.size,version:r,timestamp:l,duration:e.endsWith("complete")&&typeof n=="number"?l-n:void 0,reason:a})},Gr=(e,t,r=Date.now())=>{const{phase:n,...o}=t;return{...o,operation:e,label:Yr[e],timestamp:r}},Kr=e=>Xr[e],Qr=async(e,t,r)=>{const n=t==null?void 0:t[Kr(e.phase)];if(n)try{await n(e)}catch(o){r==null||r(o,e)}},en=(e,t)=>{const r=e==null?void 0:e.toolbar;if(!r||typeof r!="object")return[e==null?void 0:e.beforeOperation];const n=t==="download"?r.beforeDownload:t==="print"?r.beforePrint:t==="export-html"?r.beforeExportHtml:void 0;return[e==null?void 0:e.beforeOperation,r.beforeOperation,n]},tn=(e,t)=>(e==null?void 0:e[t])!==!1,rn=(e,t)=>!e||typeof e!="object"?!0:tn(e.permissions,t),nn=async({context:e,options:t,onBefore:r,onCancel:n,onError:o})=>{r==null||r(e);try{if(!rn(t==null?void 0:t.toolbar,e.operation))return n==null||n(e),!1;for(const a of en(t,e.operation))if(a&&await a(e)===!1)return n==null||n(e),!1}catch(a){return o==null||o(a,e),n==null||n(e),!1}return!0},Wn=Object.freeze({downloading:"正在下载文件资源...",streamingPdf:"正在建立 PDF 流式预览...",reading:"正在解析文件内容..."}),Ft=Object.freeze({accent:"#5f6f82",soft:"rgba(95, 111, 130, 0.12)",badge:"DOC",label:"文件内容",hint:"正在整理内容结构并生成预览。"}),on="支持 Office、PDF、OFD、Typst、压缩包、邮件、OLB/DRA、CAD、地理数据、3D 模型、Excalidraw、draw.io、EPUB、UMD、Markdown、代码/文本、图片、音视频、字体和数据资产的在线预览",an=e=>{const t=C(e);return t?`.${t}`:"当前"},ln=({state:e,extension:t="",title:r,message:n,description:o,theme:a=Ft,recoverable:l})=>({state:e,extension:C(t),title:r,message:n,description:o,theme:a,recoverable:l}),Ct=(e="",t=Ft)=>ln({state:"unsupported",extension:e,title:"暂不支持在线预览",message:`不支持${an(e)}格式的在线预览,请下载后预览或转换为支持的格式。`,description:on,theme:t,recoverable:!0}),sn=()=>{let e=0,t=null;return{get version(){return e},createVersion(){return e+=1,t==null||t.abort(),t=null,e},isCurrent(r){return r===e},createAbortController(){return t=typeof AbortController=="function"?new AbortController:null,t},clearAbortController(r){t===r&&(t=null)},abort(){t==null||t.abort(),t=null}}},cn=(e=sn())=>({requestController:e,getCurrentVersion:()=>e.version,isCurrentRequest:t=>e.isCurrent(t)}),dn=()=>({session:null,exportAdapter:null}),re=(e,t)=>{var r,n;return"session"in t&&(e.session=(r=t.session)!==null&&r!==void 0?r:null),"exportAdapter"in t&&(e.exportAdapter=(n=t.exportAdapter)!==null&&n!==void 0?n:null),e},un=(e,t)=>({rendered:e,destroy:()=>t?t():Rt(e)}),Rt=e=>{if(!e||typeof e!="object")return;const t=e;if(typeof t.unmount=="function")return t.unmount();if(typeof t.$destroy=="function")return t.$destroy();if(typeof t.destroy=="function")return t.destroy()},pn=({source:e,options:t,registerExportAdapter:r,renderContext:n})=>({filename:e.filename,url:e.url,streamUrl:e.url,options:t,registerExportAdapter:r,...n}),It=({handler:e,getTarget:t=o=>o.surface.container,createContext:r=pn,destroy:n})=>async o=>{const{source:a}=o;if(!a.buffer)throw new Error("FileRenderHandler renderer requires an ArrayBuffer source.");const l=t(o),i=await e(a.buffer,l,a.extension,r(o));return un(i,()=>n?n(i,o):Rt(i))},vn=({definitions:e=W,handlers:t,getTarget:r,createContext:n,destroy:o})=>{const a=ce(e),l=St({registry:a,handlers:t});return{registry:ce(a.list().map(i=>{const s=l.handlersByRendererId.get(i.id);return s?{...i,load:It({handler:s,getTarget:r,createContext:n,destroy:o})}:i})),dispatcher:l,missingRendererIds:l.missingRendererIds}},mn=Yt({default:()=>fn});async function fn(e,t,r){const n=await kt(e,r);let o=1,a=0;const l=dt(),i=document.createElement("div");i.className="image-viewer",i.dataset.viewerZoomProvider="image";const s=document.createElement("div");s.className="image-stage";const p=document.createElement("img");p.alt="图片",p.src=n,s.append(p),i.append(s);const m=Dt(n),g=()=>m.open();p.addEventListener("click",g),document.body.append(m.element);const v=()=>{a=i.clientHeight||0,Ae(p,a,o),l.emit()},y=new ResizeObserver(v);y.observe(i);const A=()=>({scale:o,label:`${Math.round(o*100)}%`,canZoomIn:o<5,canZoomOut:o>.1,canReset:o!==1,minScale:.1,maxScale:5}),c=f=>(o=$t(f),Ae(p,a,o),l.emit(),A());return Qe(i,{zoomIn:()=>c(o+.15),zoomOut:()=>c(o-.15),resetZoom:()=>c(1),setZoom:c,getState:A,subscribe:l.subscribe}),t.replaceChildren(Lt(),i),v(),{$el:t,unmount(){et(i),y.disconnect(),p.removeEventListener("click",g),m.destroy(),t.replaceChildren()}}}var Tt,Ot,Lt,zt,Vt,kt,$t,Ae,Dt,hn=N((()=>{G(),Tt={avif:"image/avif",bmp:"image/bmp",gif:"image/gif",heic:"image/heic",heif:"image/heif",ico:"image/x-icon",jxl:"image/jxl",jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",svg:"image/svg+xml",tif:"image/tiff",tiff:"image/tiff",webp:"image/webp"},Ot=`
|
|
287
287
|
.image-viewer{position:relative;width:100%;height:100%;overflow:auto;background:#eef1f4;box-sizing:border-box}
|
|
288
288
|
.image-stage{min-width:100%;min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}
|
|
289
289
|
.image-stage img{display:block;width:auto;max-width:none;margin:0 auto;border:0;box-shadow:0 18px 48px rgba(15,23,42,.16);background:#fff;cursor:zoom-in}
|
|
@@ -294,4 +294,4 @@
|
|
|
294
294
|
.file-viewer[data-viewer-theme='dark'] .image-viewer{background:#101820}
|
|
295
295
|
@media (prefers-color-scheme:dark){.file-viewer[data-viewer-theme='system'] .image-viewer{background:#101820}}
|
|
296
296
|
@media (max-width:767px){.image-stage{padding:12px}.image-lightbox{padding:16px}.image-lightbox button{top:12px;right:12px}}
|
|
297
|
-
`,Lt=()=>{const e=document.createElement("style");return e.textContent=Ot,e},zt=e=>Tt[(e||"").trim().toLowerCase()]||"image/*",Vt=async e=>await new Promise((t,r)=>{const n=new FileReader;n.onload=o=>{var a;const l=(a=o.target)===null||a===void 0?void 0:a.result;if(typeof l=="string"){t(l);return}r(new Error("Unable to read image data URL."))},n.onerror=()=>r(n.error||new Error("Unable to read image data URL.")),n.readAsDataURL(e)}),kt=async(e,t)=>{const r=(t||"").trim().toLowerCase();if(r==="heic"||r==="heif")throw new Error("HEIC/HEIF image conversion has moved out of @file-viewer/core. Install and pass @file-viewer/renderer-image, or use @file-viewer/preset-all.");return Vt(new Blob([e],{type:zt(r)}))},$t=e=>Math.min(5,Math.max(.1,Number(e.toFixed(2)))),Ae=(e,t,r)=>{if(t>0){e.style.height=`${Math.max(1,Math.round(t*r))}px`;return}e.style.height=`${r*100}%`},Dt=e=>{const t=document.createElement("div");t.className="image-lightbox",t.hidden=!0,t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true");const r=document.createElement("img");r.alt="Preview image",r.src=e;const n=document.createElement("button");n.type="button",n.setAttribute("aria-label","Close image preview"),n.textContent="x";const o=()=>{t.hidden=!0};return n.addEventListener("click",o),r.addEventListener("click",o),t.addEventListener("click",a=>{a.target===t&&o()}),t.append(r,n),{element:t,open(){t.hidden=!1},destroy(){n.removeEventListener("click",o),r.removeEventListener("click",o),t.remove()}}}})),fn=e=>({$el:e,unmount(){}}),Fe=[{rendererId:"image",handler:async(e,t,r)=>{const{default:n}=await Promise.resolve().then(()=>(mn(),pn));return n(e,t,r)}}],Mt=["image"],hn=Fe.filter(e=>Mt.includes(e.rendererId)),gn=W.filter(e=>Mt.includes(e.id)),wn=e=>e==="none"?[]:e==="lite"?gn:W,bn=e=>e==="none"?[]:e==="lite"?hn:Fe,yn=async(e,t,r)=>{const n=Ct(r),o=document.createElement("div");o.style.textAlign="center",o.style.marginTop="80px";const a=document.createElement("div");if(a.textContent=n.message,o.appendChild(a),n.description){const l=document.createElement("div");l.textContent=n.description,o.appendChild(l)}return t.replaceChildren(o),fn(t)},Pt=(e={})=>{const t=e.builtinRenderers||"all",r=un({definitions:wn(t),handlers:bn(t)});return{...r,dispatcher:St({registry:r.registry,handlers:Fe,fallbackHandler:yn})}},Ce=Pt(),Nt=Ce.registry,Zn=Ce.dispatcher,Wn=Ce.missingRendererIds,de=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),xn=e=>`url("data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}")`,U=(e,t,r,n)=>Math.min(n,Math.max(r,typeof e=="number"&&Number.isFinite(e)?e:t)),En=e=>e?e===!0?{enabled:!0,text:"Flyfish Viewer"}:e.enabled===!1||!e.text&&!e.image?null:{enabled:!0,...e}:null,Sn=e=>{const t=U(e.gapX,260,96,800),r=U(e.gapY,180,80,800),n=U(e.width,e.image?160:220,32,t),o=U(e.height,(e.image,72),24,r),a=U(e.rotate,-24,-75,75),l=U(e.opacity,.18,.02,.8),i=(t-n)/2,s=(r-o)/2,p=t/2,m=r/2;if(e.image)return`<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${r}" viewBox="0 0 ${t} ${r}"><g opacity="${l}" transform="rotate(${a} ${p} ${m})"><image href="${de(e.image)}" x="${i}" y="${s}" width="${n}" height="${o}" preserveAspectRatio="xMidYMid meet"/></g></svg>`;const g=de(e.text||"Flyfish Viewer"),v=U(e.fontSize,20,10,72);return`<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${r}" viewBox="0 0 ${t} ${r}"><g opacity="${l}" transform="rotate(${a} ${p} ${m})"><text x="${p}" y="${m}" text-anchor="middle" dominant-baseline="middle" fill="${de(e.color||"#355070")}" font-family="${de(e.fontFamily||"Aptos, 'Segoe UI', sans-serif")}" font-size="${v}" font-weight="700">${g}</text></g></svg>`},_n=e=>{const t=En(e);return t?xn(Sn(t)):""},An=e=>{const t=_n(e);return t?`position:absolute;inset:0;pointer-events:none;background-image:${t};background-repeat:repeat;z-index:20;`:""};ie(),ye();var ne=async(e,t,r,n,o,a,l)=>{const i=At({phase:r,source:n,version:o,timestamp:Date.now(),startedAt:a,reason:l});await Qr(i,e.hooks,s=>{throw s}),t==null||t({type:r,payload:i})},Ht=(e,t)=>t.rendererMode==="replace"?ce([]):e.registry?e.registry:Pt({builtinRenderers:t.builtinRenderers}).registry,Fn=(e,t)=>{const r=e.ownerDocument,n=Ct(t),o=r.createElement("div");o.className="file-viewer-missing-renderer",o.style.cssText=["display:flex","min-height:260px","height:100%","align-items:center","justify-content:center","padding:32px","box-sizing:border-box","text-align:center","color:#64748b",'font:14px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif'].join(";");const a=r.createElement("div"),l=r.createElement("strong");l.textContent=n.message,l.style.cssText="display:block;margin-bottom:8px;color:#172033;font-size:16px;";const i=r.createElement("p");i.textContent=n.description||"当前内置 renderer 配置没有加载该格式。请安装并传入对应 @file-viewer/renderer-* 包,或使用 @file-viewer/preset-all。",i.style.cssText="max-width:520px;margin:0;",a.append(l,i),o.append(a),e.replaceChildren(o)},Cn=(e,t={})=>{let r=t.options||{},n=Ht(t,r),o,a=r.rendererMode||"extend",l=r.builtinRenderers||"all",i=null;const s=sn(),p=ln(),m={anchors:{value:[]},state:oe()},g=async()=>{const u=r.rendererMode||"extend",w=r.renderers,E=r.builtinRenderers||"all";if(u===a&&w===o&&E===l)return;n=Ht(t,r),a=u,o=w,l=E;const I=_e(w);if(!I.length)return;await Wr({registry:n,plugins:I,registerHandler:d=>{const h=n.getById(d.rendererId);h&&n.register({...h,load:It({handler:d.handler,getTarget:b=>b.surface.container})})}})},v=()=>At({phase:"load-complete",source:i||gt({}),version:p.getCurrentVersion(),timestamp:Date.now()}),y=async u=>tn({context:Gr(u,v()),options:r,onBefore:w=>{var E;(E=t.onEvent)===null||E===void 0||E.call(t,{type:"operation-before",payload:w})},onCancel:w=>{var E;(E=t.onEvent)===null||E===void 0||E.call(t,{type:"operation-cancel",payload:w})},onError(w){throw w}}),A=u=>typeof u=="string"?u:An(r.watermark),c=u=>{const w=u||(i==null?void 0:i.extension)||"",E=n.getByExtension(w);return E?jr(E,s.session):qr(w)},f=()=>{var u;(u=t.onEvent)===null||u===void 0||u.call(t,{type:"operation-availability-change",payload:c()})},S=(u=_.getState())=>{var w;(w=t.onEvent)===null||w===void 0||w.call(t,{type:"zoom-change",payload:u})},_=pt({root:()=>e,beforeZoom:y}),F=wr({root:()=>e,searchTarget:m,searchOptions:()=>r.search,getAiOptions:()=>r.ai,onSearchChange:u=>{var w;(w=t.onEvent)===null||w===void 0||w.call(t,{type:"search-change",payload:u})},onLocationChange:u=>{var w;(w=t.onEvent)===null||w===void 0||w.call(t,{type:"location-change",payload:u})}});_.observe();const X=async(u="replace")=>{var w,E;if(!i)return;const I=i,V=Date.now(),d=p.getCurrentVersion();await ne(r,t.onEvent,"unload-start",I,d,V,u),await((E=(w=s.session)===null||w===void 0?void 0:w.destroy)===null||E===void 0?void 0:E.call(w)),i=null,re(s,{session:null,exportAdapter:null}),await F.clearDocumentState(),_.clearProvider(),f(),S(),await ne(r,t.onEvent,"unload-complete",I,d,V,u)};return{container:e,async load(u){await X("replace"),await g();const w=gt(u);i=w;const E=p.requestController.createVersion(),I=n.getByExtension(w.extension),V=Date.now();if(await ne(r,t.onEvent,"load-start",w,E,V),!(I!=null&&I.load))return Fn(e,w.extension),re(s,{session:null}),f(),S(),await ne(r,t.onEvent,"load-complete",w,E,V),null;const d=await I.load({source:w,surface:{container:e},options:r,signal:t.signal,registerExportAdapter:h=>{re(s,{exportAdapter:h})}});return re(s,{session:d}),_.refreshProvider(),await F.refreshDocumentIndex({notify:!1}),f(),S(),await ne(r,t.onEvent,"load-complete",w,E,V),d},async destroy(u="component-unmount"){await X(u),F.destroyDocumentFeatures(),_.destroy()},updateOptions(u){r={...r,...u}},getCapabilities(u){return c(u)},getRenderer(u){return n.getByExtension(u||(i==null?void 0:i.extension)||"")},getSource(){return i},registerExportAdapter(u){re(s,{exportAdapter:u})},getExportAdapter(){return s.exportAdapter},async download(u={}){const w=Dr(i);await Nr({source:w,filename:u.filename||B({source:w,fallback:xt}),beforeOperation:y})},async exportHtml(u={}){return Hr({source:e,adapter:s.exportAdapter,download:u.download,filename:u.filename||B({filename:se(i),fallback:"preview"}),title:u.title||B({filename:se(i),fallback:"file-viewer-preview"}),watermarkInlineStyle:A(u.watermarkInlineStyle),beforeOperation:y})},async print(u={}){await Br({source:e,adapter:s.exportAdapter,autoPrint:u.autoPrint,openWindow:u.openWindow,printWindow:u.printWindow,title:u.title||B({filename:se(i),fallback:"file-viewer-preview"}),watermarkInlineStyle:A(u.watermarkInlineStyle),printAvailable:c().print,beforeOperation:y})},async zoomIn(){const u=await _.zoomIn();return S(u),u},async zoomOut(){const u=await _.zoomOut();return S(u),u},async resetZoom(){const u=await _.resetZoom();return S(u),u},getZoomState(){return _.getState()},search(u){return F.searchDocument(u)},nextSearchResult(){return F.nextSearchResult()},previousSearchResult(){return F.previousSearchResult()},clearSearch(){return F.clearDocumentSearch()},getSearchState(){return F.getSearchState()},collectDocumentAnchors(){return F.collectDocumentAnchors({notify:!1})},getCurrentDocumentAnchor(){return F.getCurrentDocumentAnchor()},scrollToDocumentAnchor(u){return F.scrollToLoadedAnchor(u)},scrollToLine(u){return F.scrollToLine(u)},getDocumentTextChunks(u){return F.getDocumentTextChunks(u)}}};ye(),G();var Rn=()=>typeof window!="undefined"&&typeof document!="undefined",Re=(e={})=>!!(e.url||e.file||e.buffer),Ie=(e={})=>({url:e.url,file:e.file,buffer:e.buffer,filename:e.filename||e.name,name:e.name,type:e.type,size:e.size}),In=()=>typeof fetch=="function",Tn=async({url:e,signal:t})=>{if(!In())throw new Error("fetch is not available in the current environment.");const r=await fetch(e,{signal:t});if(!r.ok)throw new Error(`Failed to fetch file: ${r.status} ${r.statusText}`);return r.blob()},On=e=>H(e.filename||e.name||zr({file:e.file,url:e.url,fallback:"preview.bin"}),e.type?`preview.${e.type}`:j),Ln=async(e,t={})=>{const r=On(e),n=e.type||te(r);if(e.buffer){var o;return{buffer:e.buffer,filename:r,type:n,size:(o=e.size)!==null&&o!==void 0?o:e.buffer.byteLength,url:e.url}}if(e.file){var a;const i=wt(e.file,r);return{file:i,buffer:await bt(i),filename:i.name||r,type:n||te(i.name),size:(a=e.size)!==null&&a!==void 0?a:i.size,url:e.url}}if(e.url){var l;const i=await(t.fetchFile||Tn)({url:e.url,signal:t.signal,source:e});if(!i)throw new Error("Downloaded file is empty.");const s=wt(i,r);return{file:s,buffer:await bt(s),filename:s.name||r,type:n||te(s.name),size:(l=e.size)!==null&&l!==void 0?l:s.size,url:e.url}}return{filename:r,type:n}},Bt=(e,t)=>({load(r){var n,o;return(n=(o=e())===null||o===void 0?void 0:o.load(r))!==null&&n!==void 0?n:Promise.resolve()},update(r){var n,o;return(n=(o=e())===null||o===void 0?void 0:o.update(r))!==null&&n!==void 0?n:Promise.resolve()},reload(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.reload())!==null&&r!==void 0?r:Promise.resolve()},destroy(){t()},getController:e,getApi(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.getApi())!==null&&r!==void 0?r:null},downloadOriginalFile(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.downloadOriginalFile())!==null&&r!==void 0?r:Promise.resolve()},printRenderedHtml(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.printRenderedHtml())!==null&&r!==void 0?r:Promise.resolve()},exportRenderedHtml(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.exportRenderedHtml())!==null&&r!==void 0?r:Promise.resolve()},zoomIn(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.zoomIn())!==null&&r!==void 0?r:Promise.resolve(null)},zoomOut(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.zoomOut())!==null&&r!==void 0?r:Promise.resolve(null)},resetZoom(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.resetZoom())!==null&&r!==void 0?r:Promise.resolve(null)},searchDocument(r){var n,o;return(n=(o=e())===null||o===void 0?void 0:o.searchDocument(r))!==null&&n!==void 0?n:Promise.resolve(null)},clearDocumentSearch(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.clearDocumentSearch())!==null&&r!==void 0?r:Promise.resolve(null)},nextSearchResult(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.nextSearchResult())!==null&&r!==void 0?r:Promise.resolve(null)},previousSearchResult(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.previousSearchResult())!==null&&r!==void 0?r:Promise.resolve(null)},collectDocumentAnchors(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.collectDocumentAnchors())!==null&&r!==void 0?r:Promise.resolve([])},scrollToAnchor(r){var n,o;return(n=(o=e())===null||o===void 0?void 0:o.scrollToAnchor(r))!==null&&n!==void 0?n:Promise.resolve(!1)},scrollToLine(r){var n,o;return(n=(o=e())===null||o===void 0?void 0:o.scrollToLine(r))!==null&&n!==void 0?n:Promise.resolve(!1)},getDocumentTextChunks(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.getDocumentTextChunks())!==null&&r!==void 0?r:[]},getOperationAvailability(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.getOperationAvailability())!==null&&r!==void 0?r:null},getZoomState(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.getZoomState())!==null&&r!==void 0?r:null},getSearchState(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.getSearchState())!==null&&r!==void 0?r:null},getState(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.getState())!==null&&r!==void 0?r:null},subscribe(r){var n,o;return(n=(o=e())===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:(()=>{})}}),R=async(e,t,r)=>e?t(e):r,zn=e=>!!(e&&typeof e=="object"&&e.name==="AbortError"),Ut=(e,t={},r={})=>{if(!Rn())throw new Error("Flyfish File Viewer can only be mounted in a browser DOM environment.");let n=!1,o=t,a=Re(o)?Ie(o):null,l=null;const i=new Set,s={loading:!1,ready:!1,error:null,lastEvent:null,lifecycle:null,availability:null,search:null,zoom:null,location:null},p=()=>({...s,search:s.search?{...s.search,matches:[...s.search.matches]}:null}),m=c=>{var f;const S=p();(f=o.onStateChange)===null||f===void 0||f.call(o,S,c),i.forEach(_=>_(S,c))},g=c=>{var f;s.lastEvent=c,c.type==="load-start"?(s.loading=!0,s.ready=!1,s.error=null,s.lifecycle=c.payload):c.type==="load-complete"?(s.loading=!1,s.ready=!0,s.lifecycle=c.payload):c.type==="unload-start"?(s.loading=!0,s.ready=!1,s.lifecycle=c.payload):c.type==="unload-complete"?(s.loading=!1,s.ready=!1,s.lifecycle=c.payload):c.type==="operation-availability-change"?s.availability=c.payload:c.type==="search-change"?s.search=c.payload:c.type==="location-change"?s.location=c.payload:c.type==="zoom-change"&&(s.zoom=c.payload),(f=o.onEvent)===null||f===void 0||f.call(o,c),m(c)},v=Cn(e,{registry:r.registry,options:o.options,onEvent:g}),y=()=>{l==null||l.abort(),l=null},A=async c=>{y(),a=c,l=typeof AbortController!="undefined"?new AbortController:null;const f=l;try{s.loading=!0,s.error=null,m();const _=await Ln(c,{fetchFile:r.fetchFile,signal:f==null?void 0:f.signal});return await v.load(_)}catch(_){var S;if(zn(_)&&(f!=null&&f.signal.aborted))return null;throw s.loading=!1,s.ready=!1,s.error=_,m(),(S=r.onError)===null||S===void 0||S.call(r,_,c),_}finally{l===f&&(l=null)}};return a&&A(a),{container:e,async load(c){n||(o=c,v.updateOptions(o.options||{}),Re(o)&&await A(Ie(o)))},async update(c={}){var f;n||(o={...o,...c,options:(f=c.options)!==null&&f!==void 0?f:o.options},v.updateOptions(o.options||{}),Re(o)?await A(Ie(o)):(a=null,await v.load({filename:j})))},async reload(){n||a&&await A(a)},destroy(){n||(n=!0,y(),v.destroy("component-unmount"),e.innerHTML="")},getApi(){return v},downloadOriginalFile(){return R(v,c=>c.download(),void 0)},printRenderedHtml(){return R(v,c=>c.print(),void 0)},exportRenderedHtml(){return R(v,c=>c.exportHtml({download:!0}).then(()=>{}),void 0)},zoomIn(){return R(v,c=>c.zoomIn(),null)},zoomOut(){return R(v,c=>c.zoomOut(),null)},resetZoom(){return R(v,c=>c.resetZoom(),null)},searchDocument(c){return R(v,f=>f.search(c),null)},clearDocumentSearch(){return R(v,c=>c.clearSearch(),null)},nextSearchResult(){return R(v,c=>c.nextSearchResult(),null)},previousSearchResult(){return R(v,c=>c.previousSearchResult(),null)},collectDocumentAnchors(){return R(v,c=>c.collectDocumentAnchors(),[])},scrollToAnchor(c){return R(v,f=>f.scrollToDocumentAnchor(c),!1)},scrollToLine(c){return R(v,f=>f.scrollToLine(c),!1)},getDocumentTextChunks(){return v.getDocumentTextChunks()},getOperationAvailability(){return v.getCapabilities()},getZoomState(){return v.getZoomState()},getSearchState(){return v.getSearchState()},getState(){return p()},subscribe(c){return i.add(c),c(p()),()=>{i.delete(c)}}}},Te="flyfish-file-viewer",Vn=typeof HTMLElement=="undefined"?class{}:HTMLElement,kn=["src","url","filename","name","type","size","theme","toolbar","toolbar-position","watermark","search","options"],Oe=e=>{if(e===null)return;const t=e.trim().toLowerCase();if(!t||["true","1","yes","on"].includes(t))return!0;if(["false","0","no","off"].includes(t))return!1},Zt=e=>{if(e===null||e.trim()==="")return;const t=Number(e);return Number.isFinite(t)?t:void 0},ue=e=>{if(!e)return;const t=e.trim();if(!(!t||t[0]!=="{"&&t[0]!=="["))try{return JSON.parse(t)}catch(r){console.warn("[file-viewer-web] Failed to parse JSON attribute.",r);return}},Wt=(...e)=>{const t=e.filter(Boolean);if(t.length)return Object.assign({},...t)},Le=(e,t)=>({...e,...t,options:t.options===void 0?e.options:Wt(e.options,t.options)}),jt=(e,t)=>{for(const r of new Set(e.filter(Boolean)))r==null||r(t)},$n=e=>`viewer-${e.type}`,pe=class extends Vn{constructor(...e){super(...e),this.mountNode=null,this.controller=null,this.pendingUpdate=!1,this.mountOptions={},this.internalCoreOptions={}}static get observedAttributes(){return[...kn]}get src(){return this.mountOptions.url||this.getAttribute("src")||this.getAttribute("url")||void 0}set src(e){this.setMountOptions({url:e||void 0})}get url(){return this.src}set url(e){this.setMountOptions({url:e||void 0})}get file(){return this.mountOptions.file}set file(e){this.setMountOptions({file:e})}get buffer(){return this.mountOptions.buffer}set buffer(e){this.setMountOptions({buffer:e})}get name(){return this.mountOptions.name||this.getAttribute("name")||void 0}set name(e){this.setMountOptions({name:e||void 0})}get filename(){return this.mountOptions.filename||this.getAttribute("filename")||this.name}set filename(e){this.setMountOptions({filename:e||void 0})}get type(){return this.mountOptions.type||this.getAttribute("type")||void 0}set type(e){this.setMountOptions({type:e||void 0})}get size(){var e;return(e=this.mountOptions.size)!==null&&e!==void 0?e:Zt(this.getAttribute("size"))}set size(e){this.setMountOptions({size:e})}get options(){return this.mountOptions.options}set options(e){this.setMountOptions({options:e})}get source(){return{...this.mountOptions,coreOptions:this.internalCoreOptions}}set source(e){const{coreOptions:t,...r}=e||{};this.mountOptions=r,this.internalCoreOptions=t||{},this.remountOrUpdate()}get coreOptions(){return this.internalCoreOptions}set coreOptions(e){this.internalCoreOptions=e||{},this.remount()}connectedCallback(){this.mount()}disconnectedCallback(){this.destroy()}attributeChangedCallback(e,t,r){t!==r&&this.scheduleUpdate()}async load(e){var t;this.mountOptions=Le(this.mountOptions,e),!this.controller&&this.isConnected&&this.mount(),await((t=this.controller)===null||t===void 0?void 0:t.load(this.createEffectiveMountOptions()))}async update(e={}){var t;if(this.mountOptions=Le(this.mountOptions,e),!this.controller&&this.isConnected){this.mount();return}await((t=this.controller)===null||t===void 0?void 0:t.update(this.createEffectiveMountOptions()))}reload(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.reload())!==null&&e!==void 0?e:Promise.resolve()}destroy(){var e;(e=this.controller)===null||e===void 0||e.destroy(),this.controller=null,this.mountNode&&(this.mountNode.innerHTML=""),this.pendingUpdate=!1}getController(){return this.controller}getApi(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.getApi())!==null&&e!==void 0?e:null}downloadOriginalFile(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.downloadOriginalFile())!==null&&e!==void 0?e:Promise.resolve()}printRenderedHtml(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.printRenderedHtml())!==null&&e!==void 0?e:Promise.resolve()}exportRenderedHtml(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.exportRenderedHtml())!==null&&e!==void 0?e:Promise.resolve()}zoomIn(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.zoomIn())!==null&&e!==void 0?e:Promise.resolve(null)}zoomOut(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.zoomOut())!==null&&e!==void 0?e:Promise.resolve(null)}resetZoom(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.resetZoom())!==null&&e!==void 0?e:Promise.resolve(null)}searchDocument(e){var t,r;return(t=(r=this.controller)===null||r===void 0?void 0:r.searchDocument(e))!==null&&t!==void 0?t:Promise.resolve(null)}clearDocumentSearch(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.clearDocumentSearch())!==null&&e!==void 0?e:Promise.resolve(null)}nextSearchResult(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.nextSearchResult())!==null&&e!==void 0?e:Promise.resolve(null)}previousSearchResult(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.previousSearchResult())!==null&&e!==void 0?e:Promise.resolve(null)}collectDocumentAnchors(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.collectDocumentAnchors())!==null&&e!==void 0?e:Promise.resolve([])}scrollToAnchor(e){var t,r;return(t=(r=this.controller)===null||r===void 0?void 0:r.scrollToAnchor(e))!==null&&t!==void 0?t:Promise.resolve(!1)}scrollToLine(e){var t,r;return(t=(r=this.controller)===null||r===void 0?void 0:r.scrollToLine(e))!==null&&t!==void 0?t:Promise.resolve(!1)}getDocumentTextChunks(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.getDocumentTextChunks())!==null&&e!==void 0?e:[]}getOperationAvailability(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.getOperationAvailability())!==null&&e!==void 0?e:null}getZoomState(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.getZoomState())!==null&&e!==void 0?e:null}getSearchState(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.getSearchState())!==null&&e!==void 0?e:null}getState(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.getState())!==null&&e!==void 0?e:null}subscribe(e){var t,r;return(t=(r=this.controller)===null||r===void 0?void 0:r.subscribe(e))!==null&&t!==void 0?t:(()=>{})}setMountOptions(e){this.mountOptions=Le(this.mountOptions,e),this.scheduleUpdate()}mount(){if(this.controller||!this.isConnected)return;const e=this.ensureMountNode();try{this.controller=Ut(e,this.createEffectiveMountOptions(),{registry:Nt,...this.internalCoreOptions}),this.dispatchTypedEvent("viewer-ready",{controller:this.controller})}catch(t){throw this.dispatchError(t),t}}remount(){this.isConnected&&(this.destroy(),this.mount())}remountOrUpdate(){this.controller?this.update():this.isConnected&&this.mount()}ensureMountNode(){if(this.mountNode)return this.mountNode;const e=document.createElement("div");return e.className="file-viewer-web-host",e.style.width="100%",e.style.height="100%",e.style.minWidth="0",e.style.minHeight="0",this.mountNode=e,this.appendChild(e),this.style.display||(this.style.display="block"),e}createEffectiveMountOptions(){const e=this.readAttributeMountOptions(),t=this.mountOptions,r=[e.onEvent,t.onEvent],n=[e.onStateChange,t.onStateChange];return{...e,...t,options:Wt(e.options,t.options),onEvent:o=>{jt(r,o),this.dispatchViewerEvent(o)},onStateChange:(o,a)=>{jt(n.map(l=>l?i=>l(i,a):void 0),o),this.dispatchTypedEvent("viewer-state-change",{state:o,event:a})}}}readAttributeMountOptions(){const e=this.getAttribute("src")||this.getAttribute("url")||void 0,t=this.getAttribute("filename")||void 0,r=this.getAttribute("name")||void 0,n=this.getAttribute("type")||void 0,o=Zt(this.getAttribute("size")),a=this.readAttributeViewerOptions();return{...e?{url:e}:{},...t?{filename:t}:{},...r?{name:r}:{},...n?{type:n}:{},...o===void 0?{}:{size:o},...a?{options:a}:{}}}readAttributeViewerOptions(){const e=ue(this.getAttribute("options"))||{},t=this.getAttribute("theme");t&&(e.theme=t);const r=this.getAttribute("toolbar"),n=ue(r),o=Oe(r);n!==void 0?e.toolbar=n:o!==void 0&&(e.toolbar=o);const a=this.getAttribute("toolbar-position");a&&(e.toolbar={...typeof e.toolbar=="object"&&e.toolbar?e.toolbar:{},position:a});const l=this.getAttribute("watermark"),i=ue(l),s=Oe(l);i!==void 0?e.watermark=i:s!==void 0?e.watermark=s:l&&(e.watermark={enabled:!0,text:l});const p=this.getAttribute("search"),m=ue(p),g=Oe(p);return m!==void 0?e.search=m:g!==void 0&&(e.search=g),Object.keys(e).length?e:void 0}scheduleUpdate(){!this.isConnected||!this.controller||this.pendingUpdate||(this.pendingUpdate=!0,queueMicrotask(()=>{this.pendingUpdate=!1,this.controller&&this.controller.update(this.createEffectiveMountOptions()).catch(e=>{this.dispatchError(e)})}))}dispatchViewerEvent(e){this.dispatchTypedEvent("viewer-event",e),this.dispatchTypedEvent($n(e),e)}dispatchError(e){this.dispatchTypedEvent("viewer-error",{error:e})}dispatchTypedEvent(e,t){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:t}))}},ze=(e=Te)=>{if(typeof window=="undefined"||!window.customElements)return;const t=window.customElements.get(e);return t||(window.customElements.define(e,pe),pe)},qt=(e,t={},r={})=>Ut(e,t,{registry:Nt,...r}),Xt={createViewerControllerHandle:Bt,defineFileViewerElement:ze,FileViewerElement:pe,FILE_VIEWER_ELEMENT_TAG:Te,mountViewer:qt};typeof window!="undefined"&&(window.FlyfishFileViewerWeb=Xt,ze()),P.FILE_VIEWER_ELEMENT_TAG=Te,P.FileViewerElement=pe,P.createViewerControllerHandle=Bt,P.default=Xt,P.defineFileViewerElement=ze,P.mountViewer=qt})(this.FlyfishFileViewerWeb=this.FlyfishFileViewerWeb||{});
|
|
297
|
+
`,Lt=()=>{const e=document.createElement("style");return e.textContent=Ot,e},zt=e=>Tt[(e||"").trim().toLowerCase()]||"image/*",Vt=async e=>await new Promise((t,r)=>{const n=new FileReader;n.onload=o=>{var a;const l=(a=o.target)===null||a===void 0?void 0:a.result;if(typeof l=="string"){t(l);return}r(new Error("Unable to read image data URL."))},n.onerror=()=>r(n.error||new Error("Unable to read image data URL.")),n.readAsDataURL(e)}),kt=async(e,t)=>{const r=(t||"").trim().toLowerCase();if(r==="heic"||r==="heif")throw new Error("HEIC/HEIF image conversion has moved out of @file-viewer/core. Install and pass @file-viewer/renderer-image, or use @file-viewer/preset-all.");return Vt(new Blob([e],{type:zt(r)}))},$t=e=>Math.min(5,Math.max(.1,Number(e.toFixed(2)))),Ae=(e,t,r)=>{if(t>0){e.style.height=`${Math.max(1,Math.round(t*r))}px`;return}e.style.height=`${r*100}%`},Dt=e=>{const t=document.createElement("div");t.className="image-lightbox",t.hidden=!0,t.setAttribute("role","dialog"),t.setAttribute("aria-modal","true");const r=document.createElement("img");r.alt="Preview image",r.src=e;const n=document.createElement("button");n.type="button",n.setAttribute("aria-label","Close image preview"),n.textContent="x";const o=()=>{t.hidden=!0};return n.addEventListener("click",o),r.addEventListener("click",o),t.addEventListener("click",a=>{a.target===t&&o()}),t.append(r,n),{element:t,open(){t.hidden=!1},destroy(){n.removeEventListener("click",o),r.removeEventListener("click",o),t.remove()}}}})),gn=e=>({$el:e,unmount(){}}),Fe=[{rendererId:"image",handler:async(e,t,r)=>{const{default:n}=await Promise.resolve().then(()=>(hn(),mn));return n(e,t,r)}}],Mt=["image"],wn=Fe.filter(e=>Mt.includes(e.rendererId)),bn=W.filter(e=>Mt.includes(e.id)),yn=e=>e==="none"?[]:e==="lite"?bn:W,xn=e=>e==="none"?[]:e==="lite"?wn:Fe,En=async(e,t,r)=>{const n=Ct(r),o=document.createElement("div");o.style.textAlign="center",o.style.marginTop="80px";const a=document.createElement("div");if(a.textContent=n.message,o.appendChild(a),n.description){const l=document.createElement("div");l.textContent=n.description,o.appendChild(l)}return t.replaceChildren(o),gn(t)},Pt=(e={})=>{const t=e.builtinRenderers||"all",r=vn({definitions:yn(t),handlers:xn(t)});return{...r,dispatcher:St({registry:r.registry,handlers:Fe,fallbackHandler:En})}},Ce=Pt(),Nt=Ce.registry,jn=Ce.dispatcher,qn=Ce.missingRendererIds,de=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),Sn=e=>`url("data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}")`,U=(e,t,r,n)=>Math.min(n,Math.max(r,typeof e=="number"&&Number.isFinite(e)?e:t)),_n=e=>e?e===!0?{enabled:!0,text:"Flyfish Viewer"}:e.enabled===!1||!e.text&&!e.image?null:{enabled:!0,...e}:null,An=e=>{const t=U(e.gapX,260,96,800),r=U(e.gapY,180,80,800),n=U(e.width,e.image?160:220,32,t),o=U(e.height,(e.image,72),24,r),a=U(e.rotate,-24,-75,75),l=U(e.opacity,.18,.02,.8),i=(t-n)/2,s=(r-o)/2,p=t/2,m=r/2;if(e.image)return`<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${r}" viewBox="0 0 ${t} ${r}"><g opacity="${l}" transform="rotate(${a} ${p} ${m})"><image href="${de(e.image)}" x="${i}" y="${s}" width="${n}" height="${o}" preserveAspectRatio="xMidYMid meet"/></g></svg>`;const g=de(e.text||"Flyfish Viewer"),v=U(e.fontSize,20,10,72);return`<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${r}" viewBox="0 0 ${t} ${r}"><g opacity="${l}" transform="rotate(${a} ${p} ${m})"><text x="${p}" y="${m}" text-anchor="middle" dominant-baseline="middle" fill="${de(e.color||"#355070")}" font-family="${de(e.fontFamily||"Aptos, 'Segoe UI', sans-serif")}" font-size="${v}" font-weight="700">${g}</text></g></svg>`},Fn=e=>{const t=_n(e);return t?Sn(An(t)):""},Cn=e=>{const t=Fn(e);return t?`position:absolute;inset:0;pointer-events:none;background-image:${t};background-repeat:repeat;z-index:20;`:""};ie(),ye();var ne=async(e,t,r,n,o,a,l)=>{const i=At({phase:r,source:n,version:o,timestamp:Date.now(),startedAt:a,reason:l});await Qr(i,e.hooks,s=>{throw s}),t==null||t({type:r,payload:i})},Ht=(e,t)=>t.rendererMode==="replace"?ce([]):e.registry?e.registry:Pt({builtinRenderers:t.builtinRenderers}).registry,Rn=(e,t)=>{const r=e.ownerDocument,n=Ct(t),o=r.createElement("div");o.className="file-viewer-missing-renderer",o.style.cssText=["display:flex","min-height:260px","height:100%","align-items:center","justify-content:center","padding:32px","box-sizing:border-box","text-align:center","color:#64748b",'font:14px/1.6 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif'].join(";");const a=r.createElement("div"),l=r.createElement("strong");l.textContent=n.message,l.style.cssText="display:block;margin-bottom:8px;color:#172033;font-size:16px;";const i=r.createElement("p");i.textContent=n.description||"当前内置 renderer 配置没有加载该格式。请安装并传入对应 @file-viewer/renderer-* 包,或使用 @file-viewer/preset-all。",i.style.cssText="max-width:520px;margin:0;",a.append(l,i),o.append(a),e.replaceChildren(o)},In=(e,t={})=>{let r=t.options||{},n=Ht(t,r),o,a=r.rendererMode||"extend",l=r.builtinRenderers||"all",i=null;const s=dn(),p=cn(),m={anchors:{value:[]},state:oe()},g=async()=>{const u=r.rendererMode||"extend",w=r.renderers,E=r.builtinRenderers||"all";if(u===a&&w===o&&E===l)return;n=Ht(t,r),a=u,o=w,l=E;const I=_e(w);if(!I.length)return;await Wr({registry:n,plugins:I,registerHandler:d=>{const h=n.getById(d.rendererId);h&&n.register({...h,load:It({handler:d.handler,getTarget:b=>b.surface.container})})}})},v=()=>At({phase:"load-complete",source:i||gt({}),version:p.getCurrentVersion(),timestamp:Date.now()}),y=async u=>nn({context:Gr(u,v()),options:r,onBefore:w=>{var E;(E=t.onEvent)===null||E===void 0||E.call(t,{type:"operation-before",payload:w})},onCancel:w=>{var E;(E=t.onEvent)===null||E===void 0||E.call(t,{type:"operation-cancel",payload:w})},onError(w){throw w}}),A=u=>typeof u=="string"?u:Cn(r.watermark),c=u=>{const w=u||(i==null?void 0:i.extension)||"",E=n.getByExtension(w);return E?jr(E,s.session):qr(w)},f=()=>{var u;(u=t.onEvent)===null||u===void 0||u.call(t,{type:"operation-availability-change",payload:c()})},S=(u=_.getState())=>{var w;(w=t.onEvent)===null||w===void 0||w.call(t,{type:"zoom-change",payload:u})},_=pt({root:()=>e,beforeZoom:y}),F=wr({root:()=>e,searchTarget:m,searchOptions:()=>r.search,getAiOptions:()=>r.ai,onSearchChange:u=>{var w;(w=t.onEvent)===null||w===void 0||w.call(t,{type:"search-change",payload:u})},onLocationChange:u=>{var w;(w=t.onEvent)===null||w===void 0||w.call(t,{type:"location-change",payload:u})}});_.observe();const X=async(u="replace")=>{var w,E;if(!i)return;const I=i,V=Date.now(),d=p.getCurrentVersion();await ne(r,t.onEvent,"unload-start",I,d,V,u),await((E=(w=s.session)===null||w===void 0?void 0:w.destroy)===null||E===void 0?void 0:E.call(w)),i=null,re(s,{session:null,exportAdapter:null}),await F.clearDocumentState(),_.clearProvider(),f(),S(),await ne(r,t.onEvent,"unload-complete",I,d,V,u)};return{container:e,async load(u){await X("replace"),await g();const w=gt(u);i=w;const E=p.requestController.createVersion(),I=n.getByExtension(w.extension),V=Date.now();if(await ne(r,t.onEvent,"load-start",w,E,V),!(I!=null&&I.load))return Rn(e,w.extension),re(s,{session:null}),f(),S(),await ne(r,t.onEvent,"load-complete",w,E,V),null;const d=await I.load({source:w,surface:{container:e},options:r,signal:t.signal,registerExportAdapter:h=>{re(s,{exportAdapter:h})}});return re(s,{session:d}),_.refreshProvider(),await F.refreshDocumentIndex({notify:!1}),f(),S(),await ne(r,t.onEvent,"load-complete",w,E,V),d},async destroy(u="component-unmount"){await X(u),F.destroyDocumentFeatures(),_.destroy()},updateOptions(u){r={...r,...u}},getCapabilities(u){return c(u)},getRenderer(u){return n.getByExtension(u||(i==null?void 0:i.extension)||"")},getSource(){return i},registerExportAdapter(u){re(s,{exportAdapter:u})},getExportAdapter(){return s.exportAdapter},async download(u={}){const w=Dr(i);await Nr({source:w,filename:u.filename||B({source:w,fallback:xt}),beforeOperation:y})},async exportHtml(u={}){return Hr({source:e,adapter:s.exportAdapter,download:u.download,filename:u.filename||B({filename:se(i),fallback:"preview"}),title:u.title||B({filename:se(i),fallback:"file-viewer-preview"}),watermarkInlineStyle:A(u.watermarkInlineStyle),beforeOperation:y})},async print(u={}){await Br({source:e,adapter:s.exportAdapter,autoPrint:u.autoPrint,openWindow:u.openWindow,printWindow:u.printWindow,title:u.title||B({filename:se(i),fallback:"file-viewer-preview"}),watermarkInlineStyle:A(u.watermarkInlineStyle),printAvailable:c().print,beforeOperation:y})},async zoomIn(){const u=await _.zoomIn();return S(u),u},async zoomOut(){const u=await _.zoomOut();return S(u),u},async resetZoom(){const u=await _.resetZoom();return S(u),u},getZoomState(){return _.getState()},search(u){return F.searchDocument(u)},nextSearchResult(){return F.nextSearchResult()},previousSearchResult(){return F.previousSearchResult()},clearSearch(){return F.clearDocumentSearch()},getSearchState(){return F.getSearchState()},collectDocumentAnchors(){return F.collectDocumentAnchors({notify:!1})},getCurrentDocumentAnchor(){return F.getCurrentDocumentAnchor()},scrollToDocumentAnchor(u){return F.scrollToLoadedAnchor(u)},scrollToLine(u){return F.scrollToLine(u)},getDocumentTextChunks(u){return F.getDocumentTextChunks(u)}}};ye(),G();var Tn=()=>typeof window!="undefined"&&typeof document!="undefined",Re=(e={})=>!!(e.url||e.file||e.buffer),Ie=(e={})=>({url:e.url,file:e.file,buffer:e.buffer,filename:e.filename||e.name,name:e.name,type:e.type,size:e.size}),On=()=>typeof fetch=="function",Ln=async({url:e,signal:t})=>{if(!On())throw new Error("fetch is not available in the current environment.");const r=await fetch(e,{signal:t});if(!r.ok)throw new Error(`Failed to fetch file: ${r.status} ${r.statusText}`);return r.blob()},zn=e=>H(e.filename||e.name||zr({file:e.file,url:e.url,fallback:"preview.bin"}),e.type?`preview.${e.type}`:j),Vn=async(e,t={})=>{const r=zn(e),n=e.type||te(r);if(e.buffer){var o;return{buffer:e.buffer,filename:r,type:n,size:(o=e.size)!==null&&o!==void 0?o:e.buffer.byteLength,url:e.url}}if(e.file){var a;const i=wt(e.file,r);return{file:i,buffer:await bt(i),filename:i.name||r,type:n||te(i.name),size:(a=e.size)!==null&&a!==void 0?a:i.size,url:e.url}}if(e.url){var l;const i=await(t.fetchFile||Ln)({url:e.url,signal:t.signal,source:e});if(!i)throw new Error("Downloaded file is empty.");const s=wt(i,r);return{file:s,buffer:await bt(s),filename:s.name||r,type:n||te(s.name),size:(l=e.size)!==null&&l!==void 0?l:s.size,url:e.url}}return{filename:r,type:n}},Bt=(e,t)=>({load(r){var n,o;return(n=(o=e())===null||o===void 0?void 0:o.load(r))!==null&&n!==void 0?n:Promise.resolve()},update(r){var n,o;return(n=(o=e())===null||o===void 0?void 0:o.update(r))!==null&&n!==void 0?n:Promise.resolve()},reload(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.reload())!==null&&r!==void 0?r:Promise.resolve()},destroy(){t()},getController:e,getApi(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.getApi())!==null&&r!==void 0?r:null},downloadOriginalFile(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.downloadOriginalFile())!==null&&r!==void 0?r:Promise.resolve()},printRenderedHtml(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.printRenderedHtml())!==null&&r!==void 0?r:Promise.resolve()},exportRenderedHtml(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.exportRenderedHtml())!==null&&r!==void 0?r:Promise.resolve()},zoomIn(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.zoomIn())!==null&&r!==void 0?r:Promise.resolve(null)},zoomOut(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.zoomOut())!==null&&r!==void 0?r:Promise.resolve(null)},resetZoom(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.resetZoom())!==null&&r!==void 0?r:Promise.resolve(null)},searchDocument(r){var n,o;return(n=(o=e())===null||o===void 0?void 0:o.searchDocument(r))!==null&&n!==void 0?n:Promise.resolve(null)},clearDocumentSearch(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.clearDocumentSearch())!==null&&r!==void 0?r:Promise.resolve(null)},nextSearchResult(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.nextSearchResult())!==null&&r!==void 0?r:Promise.resolve(null)},previousSearchResult(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.previousSearchResult())!==null&&r!==void 0?r:Promise.resolve(null)},collectDocumentAnchors(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.collectDocumentAnchors())!==null&&r!==void 0?r:Promise.resolve([])},scrollToAnchor(r){var n,o;return(n=(o=e())===null||o===void 0?void 0:o.scrollToAnchor(r))!==null&&n!==void 0?n:Promise.resolve(!1)},scrollToLine(r){var n,o;return(n=(o=e())===null||o===void 0?void 0:o.scrollToLine(r))!==null&&n!==void 0?n:Promise.resolve(!1)},getDocumentTextChunks(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.getDocumentTextChunks())!==null&&r!==void 0?r:[]},getOperationAvailability(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.getOperationAvailability())!==null&&r!==void 0?r:null},getZoomState(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.getZoomState())!==null&&r!==void 0?r:null},getSearchState(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.getSearchState())!==null&&r!==void 0?r:null},getState(){var r,n;return(r=(n=e())===null||n===void 0?void 0:n.getState())!==null&&r!==void 0?r:null},subscribe(r){var n,o;return(n=(o=e())===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:(()=>{})}}),R=async(e,t,r)=>e?t(e):r,kn=e=>!!(e&&typeof e=="object"&&e.name==="AbortError"),Ut=(e,t={},r={})=>{if(!Tn())throw new Error("Flyfish File Viewer can only be mounted in a browser DOM environment.");let n=!1,o=t,a=Re(o)?Ie(o):null,l=null;const i=new Set,s={loading:!1,ready:!1,error:null,lastEvent:null,lifecycle:null,availability:null,search:null,zoom:null,location:null},p=()=>({...s,search:s.search?{...s.search,matches:[...s.search.matches]}:null}),m=c=>{var f;const S=p();(f=o.onStateChange)===null||f===void 0||f.call(o,S,c),i.forEach(_=>_(S,c))},g=c=>{var f;s.lastEvent=c,c.type==="load-start"?(s.loading=!0,s.ready=!1,s.error=null,s.lifecycle=c.payload):c.type==="load-complete"?(s.loading=!1,s.ready=!0,s.lifecycle=c.payload):c.type==="unload-start"?(s.loading=!0,s.ready=!1,s.lifecycle=c.payload):c.type==="unload-complete"?(s.loading=!1,s.ready=!1,s.lifecycle=c.payload):c.type==="operation-availability-change"?s.availability=c.payload:c.type==="search-change"?s.search=c.payload:c.type==="location-change"?s.location=c.payload:c.type==="zoom-change"&&(s.zoom=c.payload),(f=o.onEvent)===null||f===void 0||f.call(o,c),m(c)},v=In(e,{registry:r.registry,options:o.options,onEvent:g}),y=()=>{l==null||l.abort(),l=null},A=async c=>{y(),a=c,l=typeof AbortController!="undefined"?new AbortController:null;const f=l;try{s.loading=!0,s.error=null,m();const _=await Vn(c,{fetchFile:r.fetchFile,signal:f==null?void 0:f.signal});return await v.load(_)}catch(_){var S;if(kn(_)&&(f!=null&&f.signal.aborted))return null;throw s.loading=!1,s.ready=!1,s.error=_,m(),(S=r.onError)===null||S===void 0||S.call(r,_,c),_}finally{l===f&&(l=null)}};return a&&A(a),{container:e,async load(c){n||(o=c,v.updateOptions(o.options||{}),Re(o)&&await A(Ie(o)))},async update(c={}){var f;n||(o={...o,...c,options:(f=c.options)!==null&&f!==void 0?f:o.options},v.updateOptions(o.options||{}),Re(o)?await A(Ie(o)):(a=null,await v.load({filename:j})))},async reload(){n||a&&await A(a)},destroy(){n||(n=!0,y(),v.destroy("component-unmount"),e.innerHTML="")},getApi(){return v},downloadOriginalFile(){return R(v,c=>c.download(),void 0)},printRenderedHtml(){return R(v,c=>c.print(),void 0)},exportRenderedHtml(){return R(v,c=>c.exportHtml({download:!0}).then(()=>{}),void 0)},zoomIn(){return R(v,c=>c.zoomIn(),null)},zoomOut(){return R(v,c=>c.zoomOut(),null)},resetZoom(){return R(v,c=>c.resetZoom(),null)},searchDocument(c){return R(v,f=>f.search(c),null)},clearDocumentSearch(){return R(v,c=>c.clearSearch(),null)},nextSearchResult(){return R(v,c=>c.nextSearchResult(),null)},previousSearchResult(){return R(v,c=>c.previousSearchResult(),null)},collectDocumentAnchors(){return R(v,c=>c.collectDocumentAnchors(),[])},scrollToAnchor(c){return R(v,f=>f.scrollToDocumentAnchor(c),!1)},scrollToLine(c){return R(v,f=>f.scrollToLine(c),!1)},getDocumentTextChunks(){return v.getDocumentTextChunks()},getOperationAvailability(){return v.getCapabilities()},getZoomState(){return v.getZoomState()},getSearchState(){return v.getSearchState()},getState(){return p()},subscribe(c){return i.add(c),c(p()),()=>{i.delete(c)}}}},Te="flyfish-file-viewer",$n=typeof HTMLElement=="undefined"?class{}:HTMLElement,Dn=["src","url","filename","name","type","size","theme","toolbar","toolbar-position","watermark","search","options"],Oe=e=>{if(e===null)return;const t=e.trim().toLowerCase();if(!t||["true","1","yes","on"].includes(t))return!0;if(["false","0","no","off"].includes(t))return!1},Zt=e=>{if(e===null||e.trim()==="")return;const t=Number(e);return Number.isFinite(t)?t:void 0},ue=e=>{if(!e)return;const t=e.trim();if(!(!t||t[0]!=="{"&&t[0]!=="["))try{return JSON.parse(t)}catch(r){console.warn("[file-viewer-web] Failed to parse JSON attribute.",r);return}},Wt=(...e)=>{const t=e.filter(Boolean);if(t.length)return Object.assign({},...t)},Le=(e,t)=>({...e,...t,options:t.options===void 0?e.options:Wt(e.options,t.options)}),jt=(e,t)=>{for(const r of new Set(e.filter(Boolean)))r==null||r(t)},Mn=e=>`viewer-${e.type}`,pe=class extends $n{constructor(...e){super(...e),this.mountNode=null,this.controller=null,this.pendingUpdate=!1,this.mountOptions={},this.internalCoreOptions={}}static get observedAttributes(){return[...Dn]}get src(){return this.mountOptions.url||this.getAttribute("src")||this.getAttribute("url")||void 0}set src(e){this.setMountOptions({url:e||void 0})}get url(){return this.src}set url(e){this.setMountOptions({url:e||void 0})}get file(){return this.mountOptions.file}set file(e){this.setMountOptions({file:e})}get buffer(){return this.mountOptions.buffer}set buffer(e){this.setMountOptions({buffer:e})}get name(){return this.mountOptions.name||this.getAttribute("name")||void 0}set name(e){this.setMountOptions({name:e||void 0})}get filename(){return this.mountOptions.filename||this.getAttribute("filename")||this.name}set filename(e){this.setMountOptions({filename:e||void 0})}get type(){return this.mountOptions.type||this.getAttribute("type")||void 0}set type(e){this.setMountOptions({type:e||void 0})}get size(){var e;return(e=this.mountOptions.size)!==null&&e!==void 0?e:Zt(this.getAttribute("size"))}set size(e){this.setMountOptions({size:e})}get options(){return this.mountOptions.options}set options(e){this.setMountOptions({options:e})}get source(){return{...this.mountOptions,coreOptions:this.internalCoreOptions}}set source(e){const{coreOptions:t,...r}=e||{};this.mountOptions=r,this.internalCoreOptions=t||{},this.remountOrUpdate()}get coreOptions(){return this.internalCoreOptions}set coreOptions(e){this.internalCoreOptions=e||{},this.remount()}connectedCallback(){this.mount()}disconnectedCallback(){this.destroy()}attributeChangedCallback(e,t,r){t!==r&&this.scheduleUpdate()}async load(e){var t;this.mountOptions=Le(this.mountOptions,e),!this.controller&&this.isConnected&&this.mount(),await((t=this.controller)===null||t===void 0?void 0:t.load(this.createEffectiveMountOptions()))}async update(e={}){var t;if(this.mountOptions=Le(this.mountOptions,e),!this.controller&&this.isConnected){this.mount();return}await((t=this.controller)===null||t===void 0?void 0:t.update(this.createEffectiveMountOptions()))}reload(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.reload())!==null&&e!==void 0?e:Promise.resolve()}destroy(){var e;(e=this.controller)===null||e===void 0||e.destroy(),this.controller=null,this.mountNode&&(this.mountNode.innerHTML=""),this.pendingUpdate=!1}getController(){return this.controller}getApi(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.getApi())!==null&&e!==void 0?e:null}downloadOriginalFile(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.downloadOriginalFile())!==null&&e!==void 0?e:Promise.resolve()}printRenderedHtml(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.printRenderedHtml())!==null&&e!==void 0?e:Promise.resolve()}exportRenderedHtml(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.exportRenderedHtml())!==null&&e!==void 0?e:Promise.resolve()}zoomIn(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.zoomIn())!==null&&e!==void 0?e:Promise.resolve(null)}zoomOut(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.zoomOut())!==null&&e!==void 0?e:Promise.resolve(null)}resetZoom(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.resetZoom())!==null&&e!==void 0?e:Promise.resolve(null)}searchDocument(e){var t,r;return(t=(r=this.controller)===null||r===void 0?void 0:r.searchDocument(e))!==null&&t!==void 0?t:Promise.resolve(null)}clearDocumentSearch(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.clearDocumentSearch())!==null&&e!==void 0?e:Promise.resolve(null)}nextSearchResult(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.nextSearchResult())!==null&&e!==void 0?e:Promise.resolve(null)}previousSearchResult(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.previousSearchResult())!==null&&e!==void 0?e:Promise.resolve(null)}collectDocumentAnchors(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.collectDocumentAnchors())!==null&&e!==void 0?e:Promise.resolve([])}scrollToAnchor(e){var t,r;return(t=(r=this.controller)===null||r===void 0?void 0:r.scrollToAnchor(e))!==null&&t!==void 0?t:Promise.resolve(!1)}scrollToLine(e){var t,r;return(t=(r=this.controller)===null||r===void 0?void 0:r.scrollToLine(e))!==null&&t!==void 0?t:Promise.resolve(!1)}getDocumentTextChunks(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.getDocumentTextChunks())!==null&&e!==void 0?e:[]}getOperationAvailability(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.getOperationAvailability())!==null&&e!==void 0?e:null}getZoomState(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.getZoomState())!==null&&e!==void 0?e:null}getSearchState(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.getSearchState())!==null&&e!==void 0?e:null}getState(){var e,t;return(e=(t=this.controller)===null||t===void 0?void 0:t.getState())!==null&&e!==void 0?e:null}subscribe(e){var t,r;return(t=(r=this.controller)===null||r===void 0?void 0:r.subscribe(e))!==null&&t!==void 0?t:(()=>{})}setMountOptions(e){this.mountOptions=Le(this.mountOptions,e),this.scheduleUpdate()}mount(){if(this.controller||!this.isConnected)return;const e=this.ensureMountNode();try{this.controller=Ut(e,this.createEffectiveMountOptions(),{registry:Nt,...this.internalCoreOptions}),this.dispatchTypedEvent("viewer-ready",{controller:this.controller})}catch(t){throw this.dispatchError(t),t}}remount(){this.isConnected&&(this.destroy(),this.mount())}remountOrUpdate(){this.controller?this.update():this.isConnected&&this.mount()}ensureMountNode(){if(this.mountNode)return this.mountNode;const e=document.createElement("div");return e.className="file-viewer-web-host",e.style.width="100%",e.style.height="100%",e.style.minWidth="0",e.style.minHeight="0",this.mountNode=e,this.appendChild(e),this.style.display||(this.style.display="block"),e}createEffectiveMountOptions(){const e=this.readAttributeMountOptions(),t=this.mountOptions,r=[e.onEvent,t.onEvent],n=[e.onStateChange,t.onStateChange];return{...e,...t,options:Wt(e.options,t.options),onEvent:o=>{jt(r,o),this.dispatchViewerEvent(o)},onStateChange:(o,a)=>{jt(n.map(l=>l?i=>l(i,a):void 0),o),this.dispatchTypedEvent("viewer-state-change",{state:o,event:a})}}}readAttributeMountOptions(){const e=this.getAttribute("src")||this.getAttribute("url")||void 0,t=this.getAttribute("filename")||void 0,r=this.getAttribute("name")||void 0,n=this.getAttribute("type")||void 0,o=Zt(this.getAttribute("size")),a=this.readAttributeViewerOptions();return{...e?{url:e}:{},...t?{filename:t}:{},...r?{name:r}:{},...n?{type:n}:{},...o===void 0?{}:{size:o},...a?{options:a}:{}}}readAttributeViewerOptions(){const e=ue(this.getAttribute("options"))||{},t=this.getAttribute("theme");t&&(e.theme=t);const r=this.getAttribute("toolbar"),n=ue(r),o=Oe(r);n!==void 0?e.toolbar=n:o!==void 0&&(e.toolbar=o);const a=this.getAttribute("toolbar-position");a&&(e.toolbar={...typeof e.toolbar=="object"&&e.toolbar?e.toolbar:{},position:a});const l=this.getAttribute("watermark"),i=ue(l),s=Oe(l);i!==void 0?e.watermark=i:s!==void 0?e.watermark=s:l&&(e.watermark={enabled:!0,text:l});const p=this.getAttribute("search"),m=ue(p),g=Oe(p);return m!==void 0?e.search=m:g!==void 0&&(e.search=g),Object.keys(e).length?e:void 0}scheduleUpdate(){!this.isConnected||!this.controller||this.pendingUpdate||(this.pendingUpdate=!0,queueMicrotask(()=>{this.pendingUpdate=!1,this.controller&&this.controller.update(this.createEffectiveMountOptions()).catch(e=>{this.dispatchError(e)})}))}dispatchViewerEvent(e){this.dispatchTypedEvent("viewer-event",e),this.dispatchTypedEvent(Mn(e),e)}dispatchError(e){this.dispatchTypedEvent("viewer-error",{error:e})}dispatchTypedEvent(e,t){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:t}))}},ze=(e=Te)=>{if(typeof window=="undefined"||!window.customElements)return;const t=window.customElements.get(e);return t||(window.customElements.define(e,pe),pe)},qt=(e,t={},r={})=>Ut(e,t,{registry:Nt,...r}),Xt={createViewerControllerHandle:Bt,defineFileViewerElement:ze,FileViewerElement:pe,FILE_VIEWER_ELEMENT_TAG:Te,mountViewer:qt};typeof window!="undefined"&&(window.FlyfishFileViewerWeb=Xt,ze()),P.FILE_VIEWER_ELEMENT_TAG=Te,P.FileViewerElement=pe,P.createViewerControllerHandle=Bt,P.default=Xt,P.defineFileViewerElement=ze,P.mountViewer=qt})(this.FlyfishFileViewerWeb=this.FlyfishFileViewerWeb||{});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@file-viewer/web",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Standard pure web component package for Flyfish File Viewer",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"README.en.md"
|
|
68
68
|
],
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@file-viewer/core": "^2.1.
|
|
70
|
+
"@file-viewer/core": "^2.1.1"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"@types/node": "^25.8.0",
|
|
@@ -20241,33 +20241,46 @@ var $_ = {
|
|
|
20241
20241
|
message: e instanceof Error ? e.message : String(e)
|
|
20242
20242
|
}
|
|
20243
20243
|
}), nv = (e) => {
|
|
20244
|
+
var t;
|
|
20245
|
+
return ((e == null || (t = e["!drawings"]) == null ? void 0 : t.images) || []).reduce((e, t) => {
|
|
20246
|
+
var n, r, i, a, o, s;
|
|
20247
|
+
let c = t.anchor, l = Number((n = c == null || (r = c.to) == null ? void 0 : r.row) == null ? c == null || (i = c.from) == null ? void 0 : i.row : n), u = Number((a = c == null || (o = c.to) == null ? void 0 : o.col) == null ? c == null || (s = c.from) == null ? void 0 : s.col : a);
|
|
20248
|
+
return {
|
|
20249
|
+
rowCount: Number.isFinite(l) ? Math.max(e.rowCount, l + 1) : e.rowCount,
|
|
20250
|
+
colCount: Number.isFinite(u) ? Math.max(e.colCount, u + 1) : e.colCount
|
|
20251
|
+
};
|
|
20252
|
+
}, {
|
|
20253
|
+
rowCount: 0,
|
|
20254
|
+
colCount: 0
|
|
20255
|
+
});
|
|
20256
|
+
}, rv = (e) => {
|
|
20244
20257
|
var t;
|
|
20245
20258
|
let n = e.workbook;
|
|
20246
20259
|
if (!(n != null && n.SheetNames)) return [];
|
|
20247
20260
|
let r = ((t = n.Workbook) == null ? void 0 : t.Sheets) || [];
|
|
20248
20261
|
return e.sheets = n.SheetNames.reduce((e, t, i) => {
|
|
20249
20262
|
var a;
|
|
20250
|
-
let o = n.Sheets[t], s = o == null ? void 0 : o["!ref"];
|
|
20251
|
-
if (!s) return e;
|
|
20252
|
-
let
|
|
20263
|
+
let o = n.Sheets[t], s = o == null ? void 0 : o["!ref"], c = nv(o);
|
|
20264
|
+
if (!s && !c.rowCount && !c.colCount) return e;
|
|
20265
|
+
let l = s ? Dg.decode_range(s) : Dg.decode_range("A1");
|
|
20253
20266
|
return e.push({
|
|
20254
20267
|
id: e.length,
|
|
20255
20268
|
name: t,
|
|
20256
20269
|
hidden: !!((a = r[i]) != null && a.Hidden),
|
|
20257
|
-
rowCount:
|
|
20258
|
-
colCount:
|
|
20270
|
+
rowCount: Math.max(l.e.r + 1, c.rowCount),
|
|
20271
|
+
colCount: Math.max(l.e.c + 1, c.colCount)
|
|
20259
20272
|
}), e;
|
|
20260
20273
|
}, []), [{
|
|
20261
20274
|
type: "sheets",
|
|
20262
20275
|
payload: { sheets: e.sheets }
|
|
20263
20276
|
}];
|
|
20264
|
-
},
|
|
20277
|
+
}, iv = (e, t) => {
|
|
20265
20278
|
try {
|
|
20266
|
-
return e.workbook = sg(t, $_),
|
|
20279
|
+
return e.workbook = sg(t, $_), rv(e);
|
|
20267
20280
|
} catch (e) {
|
|
20268
20281
|
return [tv(e)];
|
|
20269
20282
|
}
|
|
20270
|
-
},
|
|
20283
|
+
}, av = (e, t = {}) => {
|
|
20271
20284
|
let { sheet: n, startRow: r = 0, pageSize: i = 500, sessionId: a = 0 } = t;
|
|
20272
20285
|
try {
|
|
20273
20286
|
var o;
|
|
@@ -20298,22 +20311,22 @@ var $_ = {
|
|
|
20298
20311
|
startRow: r
|
|
20299
20312
|
})];
|
|
20300
20313
|
}
|
|
20301
|
-
},
|
|
20314
|
+
}, ov = (e, t) => {
|
|
20302
20315
|
switch (t.type) {
|
|
20303
20316
|
case "parseWorkbook":
|
|
20304
20317
|
var n;
|
|
20305
|
-
return
|
|
20306
|
-
case "parseSheet": return
|
|
20318
|
+
return iv(e, (n = t.payload) == null ? void 0 : n.workbook);
|
|
20319
|
+
case "parseSheet": return av(e, t.payload);
|
|
20307
20320
|
default: return [];
|
|
20308
20321
|
}
|
|
20309
|
-
},
|
|
20310
|
-
if (
|
|
20322
|
+
}, sv = typeof self > "u" ? null : self;
|
|
20323
|
+
if (sv) {
|
|
20311
20324
|
let e = ev();
|
|
20312
|
-
|
|
20313
|
-
|
|
20314
|
-
|
|
20325
|
+
sv.onmessage = async (t) => {
|
|
20326
|
+
ov(e, t.data).forEach((e) => {
|
|
20327
|
+
sv.postMessage(e);
|
|
20315
20328
|
});
|
|
20316
|
-
},
|
|
20329
|
+
}, sv.onerror = (e) => {
|
|
20317
20330
|
console.error(e);
|
|
20318
20331
|
};
|
|
20319
20332
|
}
|