@flyfish-group/file-viewer-web 2.1.1 → 2.1.2
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(N){Object.defineProperties(N,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var ke=Object.defineProperty,H=(e,t)=>()=>(e&&(t=e(e=0)),t),Yt=(e,t)=>{let r={};for(var n in e)ke(r,n,{get:e[n],enumerable:!0});return t||ke(r,Symbol.toStringTag,{value:"Module"}),r},Ce=["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"],De=["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"],Me=["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"],Pe=["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:Ce,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:De,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:Pe,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:Me,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}}],Nn=Object.freeze(Array.from(new Set(W.flatMap(e=>e.extensions))).sort()),Jt,Gt,Kt,pe,Ne,ie,He,$e,oe=H((()=>{Jt=1,Gt=1200,Kt=160,pe=(e={})=>{var t,r,n;const i=Number.isFinite(e.scale)&&e.scale?Number(e.scale):1;return{scale:i,label:e.label||`${Math.round(i*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}},Ne=e=>e===!1?{enabled:!1}:e===!0||e===void 0?{}:e,ie=(e="")=>({query:e,total:0,currentIndex:-1,current:null,matches:[]}),He=e=>e===!1?{enabled:!1,collectText:!1}:e===!0||e===void 0?{}:e,$e=(e,t)=>{var r;const n=He(t);if(n.enabled===!1||n.collectText===!1)return[];const i=Math.max(200,n.chunkSize||1200),o=Math.max(0,Math.min(i-1,(r=n.chunkOverlap)!==null&&r!==void 0?r:160)),l=Math.max(0,n.maxTextLength||0),a=[];return e.forEach(s=>{const v=l?s.text.slice(0,l):s.text;if(!v)return;if(v.length<=i){a.push({id:`${s.id}-chunk-1`,text:v,anchor:s,startLine:s.line,endLine:s.line});return}let m=0,h=1;for(;m<v.length;){const p=v.slice(m,m+i);if(a.push({id:`${s.id}-chunk-${h}`,text:p,anchor:s,startLine:s.line,endLine:s.line}),m+i>=v.length)break;m+=i-o,h+=1}}),a}})),Be,Ue,me,fe,Ze,We,je,qe,Xe,he,Ye,Je,Ge,Qt=H((()=>{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(i=>{if(We(i)||!Ze(i))return;const o=fe(i.textContent||"",1e3);if(!o||Xe(i,r)&&!i.matches("p, li, tr, pre, code"))return;r.add(i);const l=i.dataset.viewerAnchorId||`viewer-anchor-${n.length+1}`;i.dataset.viewerAnchorId=l,i.dataset.viewerLine=String(n.length+1);const a=i.getBoundingClientRect();n.push({id:l,index:n.length,line:n.length+1,type:qe(i),label:fe(o,96),text:o,page:je(i),top:a.top-t.top+e.scrollTop,left:a.left-t.left+e.scrollLeft,width:a.width,height:a.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 a=t.find(s=>s.id===n.dataset.viewerAnchorId);if(a)return a}if(!r)return null;const i=r.getBoundingClientRect(),o=e.getBoundingClientRect().top-i.top+r.scrollTop;let l=null;for(const a of t){if(a.top<=o+1){l=a;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 i of t){if(i.top<=r){n=i;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}})),we,J,Ke,Qe,et,tt,er=H((()=>{we=new WeakMap,J=new WeakMap,Ke=e=>{if(!e)return null;const t=we.get(e)||e.__flyfishViewerSearchProvider;if(t)return t;const r=e.querySelector("[data-viewer-search-provider]");return r&&(we.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=H((()=>{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 i=(r=t.minScrollRange)!==null&&r!==void 0?r:2;if(ae(e)<=i)return!1;const o=(n=e.ownerDocument)===null||n===void 0?void 0:n.defaultView,l=o!=null&&o.getComputedStyle?o:typeof window!="undefined"?window:void 0;if(!(l!=null&&l.getComputedStyle))return!1;const a=l.getComputedStyle(e),s=a.overflowY||a.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",i=e.querySelector(r);return i&&le(i,t)?i:le(e,t)?e:Array.from(e.querySelectorAll(n)).filter(o=>le(o,t)).sort((o,l)=>ae(l)-ae(o))[0]||i||e}})),G=H((()=>{Qt(),er(),nr()}));G(),oe();var Hn="flyfish-search-match",$n="flyfish-search-match--active",Bn=1e3,ir=["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(","),it=e=>({...e,anchor:e.anchor?{...e.anchor}:null}),ot=e=>({query:e.query,total:e.total,currentIndex:e.currentIndex,current:e.current?it(e.current):null,matches:e.matches.map(it)}),at=(e,t)=>{const r=ot(t);return e.query=r.query,e.total=r.total,e.currentIndex=r.currentIndex,e.current=r.current,e.matches=r.matches,e},ge=(e,t)=>(e.anchors.value=t.anchors,at(e.state,t.state),e.state),or=(e,t)=>(t.observe(),ge(e,t)),K=async(e,t,r)=>(await r(),ge(e,t)),ar=(e,t)=>(t.destroy(),ge(e,t)),lr=(e,t)=>({observe(){return or(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(),dr=(e,t)=>{const r=t.wholeWord?`\\b${lt(e)}\\b`:lt(e);return new RegExp(r,t.caseSensitive?"g":"gi")},cr=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(ir)?!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},vr=e=>{const t=[],r=e.ownerDocument.createTreeWalker(e,be(e,"SHOW_TEXT"),{acceptNode(i){return st(i,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},pr=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 i=[],o=[];const l=new Set,a=ie();let s=null,v=!1,m=null,h=!1;const p=()=>Ne(t==null?void 0:t()),y=()=>{const c=cr(o);a.total=c.length,a.currentIndex=c.length?Math.max(0,Math.min(a.currentIndex,c.length-1)):-1,a.current=a.currentIndex>=0?c[a.currentIndex]:null,a.matches=c},A=c=>at(a,c),d=()=>{Array.from(l).forEach(ur),l.clear(),o=[],a.total=0,a.currentIndex=-1,a.current=null,a.matches=[]},g=async(c,f=a.query)=>{var b;const x=Ke(e());return x?(d(),A(await c(x)||((b=x.getState)===null||b===void 0?void 0:b.call(x))||ie(f))):null},E=()=>{s==null||s.disconnect(),s=null},S=c=>{const f=e()||null,b=(n==null?void 0:n())||null;if(b&&(b===c||b.contains(c)))return b;let x=c.parentElement;for(;x;){if(fr(x))return x;if(x===f)break;x=x.parentElement}return f},F=c=>{const f=S(c);if(!f){c.scrollIntoView({block:"center",inline:"nearest"});return}const b=f.scrollLeft,x=f.getBoundingClientRect(),L=c.getBoundingClientRect(),C=L.top-x.top+f.scrollTop-f.clientHeight/2+L.height/2,Z=Math.max(0,f.scrollHeight-f.clientHeight),D=Math.max(0,Math.min(C,Z));typeof f.scrollTo=="function"?f.scrollTo({top:D,left:b,behavior:"auto"}):(f.scrollTop=D,f.scrollLeft=b),f.scrollLeft=b},X=(c,f=!0)=>{const b=p();if(!o.length)return y(),a;const x=(c%o.length+o.length)%o.length;o.forEach(C=>{C.element.classList.remove(b.activeClassName||"flyfish-search-match--active")});const L=o[x];return L.element.classList.add(b.activeClassName||"flyfish-search-match--active"),a.currentIndex=x,y(),f&&F(L.element),a},u=(c,f,b,x)=>{var L;const C=e();if(!C)return;const Z=p(),D=c.data;let P=0,z;const Y=c.ownerDocument.createDocumentFragment();let M=!1;for(f.lastIndex=0;(z=f.exec(D))&&x.length<b;){if(!z[0]){f.lastIndex+=1;continue}z.index>P&&Y.appendChild(c.ownerDocument.createTextNode(D.slice(P,z.index)));const V=c.ownerDocument.createElement("mark");V.className=Z.className||"flyfish-search-match",V.textContent=z[0],V.dataset.searchMatchId=`viewer-search-match-${x.length+1}`,l.add(V),Y.appendChild(V),M=!0;const O=Ye(c.parentElement,i,C);x.push({id:V.dataset.searchMatchId,index:x.length,text:z[0],anchor:O,line:O==null?void 0:O.line,page:O==null?void 0:O.page,element:V}),P=z.index+z[0].length}M&&(P<D.length&&Y.appendChild(c.ownerDocument.createTextNode(D.slice(P))),(L=c.parentNode)===null||L===void 0||L.replaceChild(Y,c))},w=()=>{E();const c=e(),f=pr(c);!v||!c||!f||(s=new f(k),s.observe(c,{childList:!0,subtree:!0,characterData:!0}))},_=()=>{if(!v)return;const c=mr(e());if(c!=null&&c.setTimeout){c.setTimeout(w,0);return}setTimeout(w,0)},T=async(c,f=0)=>{const b=sr(c),x=p();a.query=b,E(),h=!0;try{d();const L=e();if(!b||x.enabled===!1||!L){const M=await g(V=>{var O;return(O=V.clear)===null||O===void 0?void 0:O.call(V)},b);return M||a}const C=await g(M=>M.search(b,x),b);if(C)return C;await(r==null?void 0:r());const Z=e();if(!Z)return a;i=he(Z);const D=dr(b,x),P=Math.max(1,x.maxMatches||1e3),z=[],Y=vr(Z);for(const M of Y){if(z.length>=P)break;u(M,D,P,z)}o=z,y(),z.length&&X(f,!0)}finally{h=!1,_()}return a},k=()=>{var c;const f=p();!a.query||h||f.enabled===!1||(m!==null&&clearTimeout(m),m=setTimeout(()=>{m=null,T(a.query,Math.max(0,a.currentIndex))},(c=f.debounce)!==null&&c!==void 0?c:180))};return{get anchors(){return i},state:a,getInternalMatches:()=>o,observe(){v=!0,w()},async refreshAnchors(){return await(r==null?void 0:r()),i=he(e()||null),i},search:c=>T(c,0),next:async()=>await g(c=>{var f,b;return((f=c.next)===null||f===void 0?void 0:f.call(c))||((b=c.getState)===null||b===void 0?void 0:b.call(c))})||X(a.currentIndex+1),previous:async()=>await g(c=>{var f,b;return((f=c.previous)===null||f===void 0?void 0:f.call(c))||((b=c.getState)===null||b===void 0?void 0:b.call(c))})||X(a.currentIndex-1),clear:async()=>{a.query="",E(),h=!0;try{d();const c=await g(f=>{var b;return(b=f.clear)===null||b===void 0?void 0:b.call(f)},"");return c||a}finally{h=!1,_()}},destroy(){v=!1,E(),m!==null&&(clearTimeout(m),m=null),d()}}};oe(),G();var dt=e=>ot(e),wr=({root:e,anchors:t})=>Je(e||null,t),gr=({root:e,searchTarget:t,searchOptions:r,waitForDomUpdate:n,preferredScrollContainer:i,getAiOptions:o,onSearchChange:l,onLocationChange:a})=>{let s=null;const v=lr(t,hr({root:e,options:r,waitForDomUpdate:n,preferredScrollContainer:()=>{var m,h;return(h=(m=i==null?void 0:i())!==null&&m!==void 0?m:s==null?void 0:s.getScrollContainer())!==null&&h!==void 0?h:null}}));return s=xr({root:e,searchController:{getAnchors:()=>t.anchors.value,getSearchState:()=>t.state,observe:v.observe,refreshAnchors:v.refreshAnchors,search:v.search,clear:v.clear,next:v.next,previous:v.previous},getAiOptions:o,onSearchChange:l,onLocationChange:a}),{...s,destroyDocumentFeatures:v.destroy}},br=({state:e,onChange:t})=>{const r=dt(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:i})=>{const o=()=>e()||null,l=()=>t.getAnchors(),a=()=>dt(t.getSearchState()),s=()=>{const d=a();return br({state:d,onChange:n}),d},v=()=>wr({root:o(),anchors:l()}),m=()=>{const d=v();return yr({anchor:d,onChange:i}),d},h=d=>(d==null?void 0:d.notify)===!1?v():m(),p=async d=>{t.observe();const g=await t.refreshAnchors();return h(d),g},y=async d=>(l().length||await p(d),l()),A=(d,g)=>{const E=Ge(o(),d);return h(g),E};return{refreshDocumentIndex:p,async clearDocumentState(){return await t.clear(),a()},getScrollContainer(){return nt(o())},async searchDocument(d){return await t.search(d),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:a,async collectDocumentAnchors(d){return await p(d),l()},getCurrentDocumentAnchor:v,scrollToLoadedAnchor:A,async scrollToAnchor(d,g){return await y(g),A(d,g)},async scrollToLine(d,g){return await y(g),A(d,g)},getDocumentTextChunks(d){return $e(l(),d!=null?d:r==null?void 0:r())}}},Q,ee,ct,ut,vt,ye=H((()=>{oe(),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=pe(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},ct=()=>{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)},vt=({root:e,enabled:t,beforeZoom:r})=>{let n=null,i=null,o=null;const l=pe(),a=()=>{i==null||i(),i=null,n=null,ee(l,null)},s=()=>{var h,p;if((t==null?void 0:t())===!1)return a(),null;const y=tt(e());return y!==n&&(i==null||i(),n=y,i=((h=y==null?void 0:y.subscribe)===null||h===void 0?void 0:h.call(y,()=>{ee(l,y.getState())}))||null),ee(l,((p=y==null?void 0:y.getState)===null||p===void 0?void 0:p.call(y))||null),y},v=()=>{o==null||o.disconnect(),o=null},m=async(h,p)=>{const y=s();return!y||r&&await r(h)===!1||ee(l,await p(y)||y.getState()),Q(l)};return{get provider(){return n},state:l,hasProvider(){return!!s()},refreshProvider:s,observe(){v();const h=e(),p=ut(h);if(!h||!p){s();return}o=new p(()=>{s()}),o.observe(h,{childList:!0,subtree:!0}),s()},clearProvider:a,getState(){return Q(l)},zoomIn:()=>m("zoom-in",h=>h.zoomIn()),zoomOut:()=>m("zoom-out",h=>h.zoomOut()),resetZoom:()=>m("zoom-reset",h=>h.resetZoom()),destroy(){v(),a()}}}}));ye();var pt=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),Er=`
|
|
1
|
+
(function(H){Object.defineProperties(H,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var Ce=Object.defineProperty,$=(e,t)=>()=>(e&&(t=e(e=0)),t),Qt=(e,t)=>{let r={};for(var n in e)Ce(r,n,{get:e[n],enumerable:!0});return t||Ce(r,Symbol.toStringTag,{value:"Module"}),r},De=["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"],Me=["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"],Pe=["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"],Ne=["gif","jpg","jpeg","bmp","tiff","tif","png","svg","webp","avif","ico","heic","heif","jxl"],B=[{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:De,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:Me,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:Ne,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:Pe,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}}],Jn=Object.freeze(Array.from(new Set(B.flatMap(e=>e.extensions))).sort()),er,tr,rr,pe,He,ie,$e,Be,oe=$((()=>{er=1,tr=1200,rr=160,pe=(e={})=>{var t,r,n;const i=Number.isFinite(e.scale)&&e.scale?Number(e.scale):1;return{scale:i,label:e.label||`${Math.round(i*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}},He=e=>e===!1?{enabled:!1}:e===!0||e===void 0?{}:e,ie=(e="")=>({query:e,total:0,currentIndex:-1,current:null,matches:[]}),$e=e=>e===!1?{enabled:!1,collectText:!1}:e===!0||e===void 0?{}:e,Be=(e,t)=>{var r;const n=$e(t);if(n.enabled===!1||n.collectText===!1)return[];const i=Math.max(200,n.chunkSize||1200),o=Math.max(0,Math.min(i-1,(r=n.chunkOverlap)!==null&&r!==void 0?r:160)),l=Math.max(0,n.maxTextLength||0),a=[];return e.forEach(s=>{const c=l?s.text.slice(0,l):s.text;if(!c)return;if(c.length<=i){a.push({id:`${s.id}-chunk-1`,text:c,anchor:s,startLine:s.line,endLine:s.line});return}let p=0,h=1;for(;p<c.length;){const m=c.slice(p,p+i);if(a.push({id:`${s.id}-chunk-${h}`,text:m,anchor:s,startLine:s.line,endLine:s.line}),p+i>=c.length)break;p+=i-o,h+=1}}),a}})),Ue,Ze,me,fe,We,je,qe,Xe,Ye,he,Je,Ge,Ke,nr=$((()=>{Ue=["[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(","),Ze=[".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},We=e=>{const t=e.getBoundingClientRect();return t.width>0||t.height>0},je=e=>!!e.closest(Ze),qe=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},Xe=e=>e.matches(".pdfViewer .page, [data-page-number], [data-page]")?"page":e.matches("p, li, tr, pre, code")?"line":"block",Ye=(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(Ue)).forEach(i=>{if(je(i)||!We(i))return;const o=fe(i.textContent||"",1e3);if(!o||Ye(i,r)&&!i.matches("p, li, tr, pre, code"))return;r.add(i);const l=i.dataset.viewerAnchorId||`viewer-anchor-${n.length+1}`;i.dataset.viewerAnchorId=l,i.dataset.viewerLine=String(n.length+1);const a=i.getBoundingClientRect();n.push({id:l,index:n.length,line:n.length+1,type:Xe(i),label:fe(o,96),text:o,page:qe(i),top:a.top-t.top+e.scrollTop,left:a.left-t.left+e.scrollLeft,width:a.width,height:a.height})}),n},Je=(e,t,r)=>{if(!e)return null;const n=e.closest("[data-viewer-anchor-id]");if(n!=null&&n.dataset.viewerAnchorId){const a=t.find(s=>s.id===n.dataset.viewerAnchorId);if(a)return a}if(!r)return null;const i=r.getBoundingClientRect(),o=e.getBoundingClientRect().top-i.top+r.scrollTop;let l=null;for(const a of t){if(a.top<=o+1){l=a;continue}break}return l},Ge=(e,t)=>{if(!e||!t.length)return null;const r=e.scrollTop+e.clientHeight*.42;let n=t[0];for(const i of t){if(i.top<=r){n=i;continue}break}return n},Ke=(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}})),we,J,Qe,et,tt,rt,ir=$((()=>{we=new WeakMap,J=new WeakMap,Qe=e=>{if(!e)return null;const t=we.get(e)||e.__flyfishViewerSearchProvider;if(t)return t;const r=e.querySelector("[data-viewer-search-provider]");return r&&(we.get(r)||r.__flyfishViewerSearchProvider)||null},et=(e,t)=>{J.set(e,t),e.dataset.viewerZoomProvider=e.dataset.viewerZoomProvider||"custom",e.__flyfishViewerZoomProvider=t},tt=e=>{e&&(J.delete(e),delete e.dataset.viewerZoomProvider,delete e.__flyfishViewerZoomProvider)},rt=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}})),or,ar,nt,ae,le,it,lr=$((()=>{or="[data-viewer-scroll-container], .pdf-wrapper",ar="div, section, article, pre",nt=["auto","scroll","overlay"],ae=e=>Math.max(0,e.scrollHeight-e.clientHeight),le=(e,t={})=>{var r,n;const i=(r=t.minScrollRange)!==null&&r!==void 0?r:2;if(ae(e)<=i)return!1;const o=(n=e.ownerDocument)===null||n===void 0?void 0:n.defaultView,l=o!=null&&o.getComputedStyle?o:typeof window!="undefined"?window:void 0;if(!(l!=null&&l.getComputedStyle))return!1;const a=l.getComputedStyle(e),s=a.overflowY||a.overflow;return(t.overflowValues||nt).includes(s)},it=(e,t={})=>{if(!e)return null;const r=t.preferredSelector||"[data-viewer-scroll-container], .pdf-wrapper",n=t.candidateSelector||"div, section, article, pre",i=e.querySelector(r);return i&&le(i,t)?i:le(e,t)?e:Array.from(e.querySelectorAll(n)).filter(o=>le(o,t)).sort((o,l)=>ae(l)-ae(o))[0]||i||e}})),G=$((()=>{nr(),ir(),lr()}));G(),oe();var Gn="flyfish-search-match",Kn="flyfish-search-match--active",Qn=1e3,sr=["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}),at=e=>({query:e.query,total:e.total,currentIndex:e.currentIndex,current:e.current?ot(e.current):null,matches:e.matches.map(ot)}),lt=(e,t)=>{const r=at(t);return e.query=r.query,e.total=r.total,e.currentIndex=r.currentIndex,e.current=r.current,e.matches=r.matches,e},ge=(e,t)=>(e.anchors.value=t.anchors,lt(e.state,t.state),e.state),dr=(e,t)=>(t.observe(),ge(e,t)),K=async(e,t,r)=>(await r(),ge(e,t)),cr=(e,t)=>(t.destroy(),ge(e,t)),ur=(e,t)=>({observe(){return dr(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 cr(e,t)}}),st=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),vr=e=>e.replace(/\s+/g," ").trim(),pr=(e,t)=>{const r=t.wholeWord?`\\b${st(e)}\\b`:st(e);return new RegExp(r,t.caseSensitive?"g":"gi")},mr=e=>e.map(({element:t,...r})=>r),fr=e=>{const t=e.parentNode;if(t){for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e),t.normalize()}},dt=(e,t)=>{const r=e.parentElement;return!r||r.closest(sr)?!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},hr=e=>{const t=[],r=e.ownerDocument.createTreeWalker(e,be(e,"SHOW_TEXT"),{acceptNode(i){return dt(i,e)?be(e,"FILTER_REJECT"):be(e,"FILTER_ACCEPT")}});let n=r.nextNode();for(;n;)dt(n,e)||t.push(n),n=r.nextNode();return t},wr=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)},gr=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)},br=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)},yr=({root:e,options:t,waitForDomUpdate:r,preferredScrollContainer:n})=>{let i=[],o=[];const l=new Set,a=ie();let s=null,c=!1,p=null,h=!1;const m=()=>He(t==null?void 0:t()),y=()=>{const u=mr(o);a.total=u.length,a.currentIndex=u.length?Math.max(0,Math.min(a.currentIndex,u.length-1)):-1,a.current=a.currentIndex>=0?u[a.currentIndex]:null,a.matches=u},S=u=>lt(a,u),d=()=>{Array.from(l).forEach(fr),l.clear(),o=[],a.total=0,a.currentIndex=-1,a.current=null,a.matches=[]},b=async(u,f=a.query)=>{var w;const x=Qe(e());return x?(d(),S(await u(x)||((w=x.getState)===null||w===void 0?void 0:w.call(x))||ie(f))):null},_=()=>{s==null||s.disconnect(),s=null},R=u=>{const f=e()||null,w=(n==null?void 0:n())||null;if(w&&(w===u||w.contains(u)))return w;let x=u.parentElement;for(;x;){if(br(x))return x;if(x===f)break;x=x.parentElement}return f},P=u=>{const f=R(u);if(!f){u.scrollIntoView({block:"center",inline:"nearest"});return}const w=f.scrollLeft,x=f.getBoundingClientRect(),V=u.getBoundingClientRect(),L=V.top-x.top+f.scrollTop-f.clientHeight/2+V.height/2,C=Math.max(0,f.scrollHeight-f.clientHeight),z=Math.max(0,Math.min(L,C));typeof f.scrollTo=="function"?f.scrollTo({top:z,left:w,behavior:"auto"}):(f.scrollTop=z,f.scrollLeft=w),f.scrollLeft=w},k=(u,f=!0)=>{const w=m();if(!o.length)return y(),a;const x=(u%o.length+o.length)%o.length;o.forEach(L=>{L.element.classList.remove(w.activeClassName||"flyfish-search-match--active")});const V=o[x];return V.element.classList.add(w.activeClassName||"flyfish-search-match--active"),a.currentIndex=x,y(),f&&P(V.element),a},F=(u,f,w,x)=>{var V;const L=e();if(!L)return;const C=m(),z=u.data;let N=0,T;const Y=u.ownerDocument.createDocumentFragment();let M=!1;for(f.lastIndex=0;(T=f.exec(z))&&x.length<w;){if(!T[0]){f.lastIndex+=1;continue}T.index>N&&Y.appendChild(u.ownerDocument.createTextNode(z.slice(N,T.index)));const D=u.ownerDocument.createElement("mark");D.className=C.className||"flyfish-search-match",D.textContent=T[0],D.dataset.searchMatchId=`viewer-search-match-${x.length+1}`,l.add(D),Y.appendChild(D),M=!0;const O=Je(u.parentElement,i,L);x.push({id:D.dataset.searchMatchId,index:x.length,text:T[0],anchor:O,line:O==null?void 0:O.line,page:O==null?void 0:O.page,element:D}),N=T.index+T[0].length}M&&(N<z.length&&Y.appendChild(u.ownerDocument.createTextNode(z.slice(N))),(V=u.parentNode)===null||V===void 0||V.replaceChild(Y,u))},X=()=>{_();const u=e(),f=wr(u);!c||!u||!f||(s=new f(E),s.observe(u,{childList:!0,subtree:!0,characterData:!0}))},v=()=>{if(!c)return;const u=gr(e());if(u!=null&&u.setTimeout){u.setTimeout(X,0);return}setTimeout(X,0)},g=async(u,f=0)=>{const w=vr(u),x=m();a.query=w,_(),h=!0;try{d();const V=e();if(!w||x.enabled===!1||!V){const M=await b(D=>{var O;return(O=D.clear)===null||O===void 0?void 0:O.call(D)},w);return M||a}const L=await b(M=>M.search(w,x),w);if(L)return L;await(r==null?void 0:r());const C=e();if(!C)return a;i=he(C);const z=pr(w,x),N=Math.max(1,x.maxMatches||1e3),T=[],Y=hr(C);for(const M of Y){if(T.length>=N)break;F(M,z,N,T)}o=T,y(),T.length&&k(f,!0)}finally{h=!1,v()}return a},E=()=>{var u;const f=m();!a.query||h||f.enabled===!1||(p!==null&&clearTimeout(p),p=setTimeout(()=>{p=null,g(a.query,Math.max(0,a.currentIndex))},(u=f.debounce)!==null&&u!==void 0?u:180))};return{get anchors(){return i},state:a,getInternalMatches:()=>o,observe(){c=!0,X()},async refreshAnchors(){return await(r==null?void 0:r()),i=he(e()||null),i},search:u=>g(u,0),next:async()=>await b(u=>{var f,w;return((f=u.next)===null||f===void 0?void 0:f.call(u))||((w=u.getState)===null||w===void 0?void 0:w.call(u))})||k(a.currentIndex+1),previous:async()=>await b(u=>{var f,w;return((f=u.previous)===null||f===void 0?void 0:f.call(u))||((w=u.getState)===null||w===void 0?void 0:w.call(u))})||k(a.currentIndex-1),clear:async()=>{a.query="",_(),h=!0;try{d();const u=await b(f=>{var w;return(w=f.clear)===null||w===void 0?void 0:w.call(f)},"");return u||a}finally{h=!1,v()}},destroy(){c=!1,_(),p!==null&&(clearTimeout(p),p=null),d()}}};oe(),G();var ct=e=>at(e),xr=({root:e,anchors:t})=>Ge(e||null,t),Er=({root:e,searchTarget:t,searchOptions:r,waitForDomUpdate:n,preferredScrollContainer:i,getAiOptions:o,onSearchChange:l,onLocationChange:a})=>{let s=null;const c=ur(t,yr({root:e,options:r,waitForDomUpdate:n,preferredScrollContainer:()=>{var p,h;return(h=(p=i==null?void 0:i())!==null&&p!==void 0?p:s==null?void 0:s.getScrollContainer())!==null&&h!==void 0?h:null}}));return s=Ar({root:e,searchController:{getAnchors:()=>t.anchors.value,getSearchState:()=>t.state,observe:c.observe,refreshAnchors:c.refreshAnchors,search:c.search,clear:c.clear,next:c.next,previous:c.previous},getAiOptions:o,onSearchChange:l,onLocationChange:a}),{...s,destroyDocumentFeatures:c.destroy}},_r=({state:e,onChange:t})=>{const r=ct(e);return t==null||t(r),!0},Sr=({anchor:e,onChange:t})=>(t==null||t(e),!0),Ar=({root:e,searchController:t,getAiOptions:r,onSearchChange:n,onLocationChange:i})=>{const o=()=>e()||null,l=()=>t.getAnchors(),a=()=>ct(t.getSearchState()),s=()=>{const d=a();return _r({state:d,onChange:n}),d},c=()=>xr({root:o(),anchors:l()}),p=()=>{const d=c();return Sr({anchor:d,onChange:i}),d},h=d=>(d==null?void 0:d.notify)===!1?c():p(),m=async d=>{t.observe();const b=await t.refreshAnchors();return h(d),b},y=async d=>(l().length||await m(d),l()),S=(d,b)=>{const _=Ke(o(),d);return h(b),_};return{refreshDocumentIndex:m,async clearDocumentState(){return await t.clear(),a()},getScrollContainer(){return it(o())},async searchDocument(d){return await t.search(d),s()},async clearDocumentSearch(){return await t.clear(),s()},async nextSearchResult(){return await t.next(),p(),s()},async previousSearchResult(){return await t.previous(),p(),s()},getSearchState:a,async collectDocumentAnchors(d){return await m(d),l()},getCurrentDocumentAnchor:c,scrollToLoadedAnchor:S,async scrollToAnchor(d,b){return await y(b),S(d,b)},async scrollToLine(d,b){return await y(b),S(d,b)},getDocumentTextChunks(d){return Be(l(),d!=null?d:r==null?void 0:r())}}},Q,ee,ut,vt,pt,ye=$((()=>{oe(),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=pe(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},ut=()=>{const e=new Set;return{emit(){e.forEach(t=>t())},subscribe(t){return e.add(t),()=>{e.delete(t)}}}},vt=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,i=null,o=null;const l=pe(),a=()=>{i==null||i(),i=null,n=null,ee(l,null)},s=()=>{var h,m;if((t==null?void 0:t())===!1)return a(),null;const y=rt(e());return y!==n&&(i==null||i(),n=y,i=((h=y==null?void 0:y.subscribe)===null||h===void 0?void 0:h.call(y,()=>{ee(l,y.getState())}))||null),ee(l,((m=y==null?void 0:y.getState)===null||m===void 0?void 0:m.call(y))||null),y},c=()=>{o==null||o.disconnect(),o=null},p=async(h,m)=>{const y=s();return!y||r&&await r(h)===!1||ee(l,await m(y)||y.getState()),Q(l)};return{get provider(){return n},state:l,hasProvider(){return!!s()},refreshProvider:s,observe(){c();const h=e(),m=vt(h);if(!h||!m){s();return}o=new m(()=>{s()}),o.observe(h,{childList:!0,subtree:!0}),s()},clearProvider:a,getState(){return Q(l)},zoomIn:()=>p("zoom-in",h=>h.zoomIn()),zoomOut:()=>p("zoom-out",h=>h.zoomOut()),resetZoom:()=>p("zoom-reset",h=>h.resetZoom()),destroy(){c(),a()}}}}));ye();var mt=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),Fr=`
|
|
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; }
|
|
@@ -266,15 +266,15 @@
|
|
|
266
266
|
box-shadow: none !important;
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
|
-
`,
|
|
270
|
-
`),
|
|
269
|
+
`,Rr=()=>Array.from(document.querySelectorAll('style, link[rel="stylesheet"]')).map(e=>e instanceof HTMLStyleElement?`<style>${e.textContent||""}</style>`:e.href?`<link rel="stylesheet" href="${mt(e.href)}" />`:"").filter(Boolean).join(`
|
|
270
|
+
`),ft=({contentHtml:e,includeDocumentStyles:t=!0,printStyle:r="",title:n,watermarkInlineStyle:i=""})=>{const o=i?`<div class="viewer-export-watermark" style="${i}"></div>`:"",l=t?Rr():"",a=r?`<style data-viewer-print-style>${r}</style>`:"";return`<!doctype html>
|
|
271
271
|
<html lang="zh-CN">
|
|
272
272
|
<head>
|
|
273
273
|
<meta charset="utf-8" />
|
|
274
274
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
275
|
-
<title>${
|
|
275
|
+
<title>${mt(n)}</title>
|
|
276
276
|
${l}
|
|
277
|
-
<style>${
|
|
277
|
+
<style>${Fr}</style>
|
|
278
278
|
</head>
|
|
279
279
|
<body>
|
|
280
280
|
<main class="viewer-export-shell">
|
|
@@ -283,7 +283,7 @@
|
|
|
283
283
|
</main>
|
|
284
284
|
${a}
|
|
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)},Sr=(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,i)=>{const o=r[i];if(o)try{const l=document.createElement("img");l.src=o.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())})}),Rr=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})})}}))},Ir=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,Tr=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 Rr(e)},zr=async({source:e,mode:t="export",title:r,adapter:n=null,watermarkInlineStyle:i=""})=>{const o={mode:t,title:r},l=n==null?void 0:n.toHtml;if(l){const v=await l(o),m=await ft(n,o);return mt({contentHtml:v,includeDocumentStyles:n.includeDocumentStyles!==!1,printStyle:m,title:r,watermarkInlineStyle:i})}await Tr(e,n);const a=e.cloneNode(!0);Ar(e,a);const s=await ft(n,o);return mt({contentHtml:a.innerHTML,printStyle:s,title:r,watermarkInlineStyle:i})},j="preview.bin",R=e=>e.trim().replace(/^\./,"").toLowerCase(),Lr=e=>{try{return decodeURIComponent(e)}catch{return e}},te=e=>{const t=e.split(/[?#]/)[0]||e,r=t.lastIndexOf(".");return r===-1?"":R(t.slice(r+1))},$=(e,t=j)=>{const r=(e||"").split(/[?#]/)[0].trim();if(!r)return t;const n=Math.max(r.lastIndexOf("/"),r.lastIndexOf("\\"));return Lr(n===-1?r:r.slice(n+1))},Or=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,Vr=({filename:e,file:t,url:r,fallback:n=""})=>{if(e)return $(e,n);const i=ht(t);return i?$(i,n):r?$(r,n):n},wt=e=>{const t=Or(e),r=$(e.filename||ht(e.file)||e.url,e.type?`preview.${R(e.type)}`:j),n=R(e.type||te(r)),i=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:i}},gt=(e,t=j)=>{if(typeof File!="undefined"&&e instanceof File)return e;const r=$(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=i=>{var o;const l=(o=i.target)===null||o===void 0?void 0:o.result;if(l instanceof ArrayBuffer){t(l);return}r(new Error("Failed to read file as ArrayBuffer."))},n.onerror=i=>r(i),n.readAsArrayBuffer(e)}),yt="file-viewer-preview",Ee="preview",xt=j,kr=e=>e&&"name"in e&&typeof e.name=="string"?e.name:"",Cr=e=>e&&typeof e.type=="string"?e.type:"",Dr=({buffer:e=null,file:t=null,url:r=null,filename:n=null,mimeType:i=null}={})=>({buffer:e,file:t,url:r,filename:n,mimeType:i||Cr(t)||null}),se=(e,t=Ee)=>(e==null?void 0:e.filename)||t,Mr=(e,t=Ee)=>{var r;return Dr({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})},Pr=(e,t="preview")=>e.filename||kr(e.file)||t,B=({filename:e,source:t,fallback:r=yt})=>e||(t?Pr(t,""):"")||r,Nr=e=>!!e.buffer||!!e.file||!!e.url,_e=async(e,t)=>e?await e(t):!0,Et=async(e,{source:t,title:r,filename:n,adapter:i=null,watermarkInlineStyle:o})=>{if(!t)throw new Error("当前没有可导出的预览内容");return zr({source:t,mode:e,title:B({filename:r||n,fallback:yt}),adapter:i,watermarkInlineStyle:o})},Hr=async({source:e,filename:t,beforeOperation:r,throwOnMissingSource:n=!0})=>{var i;if(!Nr(e)){if(n)throw new Error("当前没有可下载的源文件");return!1}if(!await _e(r,"download"))return!1;const o=B({filename:t,source:e,fallback:xt});return e.buffer?(xe(new Blob([e.buffer],{type:e.mimeType||((i=e.file)===null||i===void 0?void 0:i.type)||"application/octet-stream"}),o),!0):e.file?(xe(e.file,o),!0):(Sr(e.url,o),!0)},$r=async({download:e=!0,filename:t,beforeOperation:r,...n})=>{if(!await _e(r,"export-html"))return"";const i=await Et("export",{...n,filename:t});if(e!==!1){const o=B({filename:t||n.title,fallback:Ee});xe(new Blob([i],{type:"text/html;charset=utf-8"}),`${o}.rendered.html`)}return i},Br=async({autoPrint:e=!0,beforeOperation:t,openWindow:r,printAvailable:n=!0,printWindow:i,...o})=>{if(!n)throw new Error("当前文件类型不支持完整打印,请下载原文件后在本地应用中打印");if(!await _e(t,"print"))return!1;const l=await Et("print",o),a=i||(r==null?void 0:r())||(typeof window!="undefined"?window.open("","_blank"):null);if(!a)throw new Error("浏览器拦截了打印窗口");return a.document.open(),a.document.write(l),a.document.close(),a.focus(),await Ir(a),e!==!1&&a.print(),!0},Ur=e=>({...e,extensions:e.extensions.map(R)}),de=(e=W)=>{const t=new Map,r=new Map,n=i=>{const o=Ur(i),l=t.get(o.id);l&&l.extensions.forEach(a=>{var s;((s=r.get(a))===null||s===void 0?void 0:s.id)===l.id&&r.delete(a)}),t.set(o.id,o),o.extensions.forEach(a=>{const s=r.get(a);if(s&&s.id!==o.id)throw new Error(`File extension "${a}" is already registered by renderer "${s.id}".`);r.set(a,o)})};return e.forEach(n),{register:n,unregister(i){const o=t.get(i);return o?(o.extensions.forEach(l=>{var a;((a=r.get(l))===null||a===void 0?void 0:a.id)===i&&r.delete(l)}),t.delete(i),!0):!1},getById(i){return t.get(i)},getByExtension(i){return r.get(R(i))},hasExtension(i){return r.has(R(i))},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),Se=e=>e?Array.isArray(e)?e.flatMap(t=>Se(t)):Zr(e)?Se(e.renderers):[e]:[],Wr=async({registry:e,plugins:t,registerHandler:r})=>{var n,i,o;for(const l of t)(n=l.definitions)===null||n===void 0||n.forEach(a=>{e.register(a)}),(i=l.handlers)===null||i===void 0||i.forEach(a=>{r==null||r(a)}),await((o=l.install)===null||o===void 0?void 0:o.call(l,{registry:e,registerHandler:r}));return e},_t=({registry:e=de(W),handlers:t,fallbackHandler:r,fallbackKey:n="error"})=>{const i=Array.from(t).reduce((s,v)=>(s.set(v.rendererId,v.handler),s),new Map),o=new Map,l=[];e.list().forEach(s=>{const v=i.get(s.id);if(!v){l.push(s.id);return}s.extensions.forEach(m=>{o.set(R(m),v)})}),r&&n&&o.set(R(n),r);const a=s=>o.get(R(s));return{handlersByRendererId:i,handlersByExtension:o,missingRendererIds:l,get:a,resolve(s){return a(s)||(n?a(n):void 0)},has(s){return o.has(R(s))},listExtensions(){return Array.from(o.keys()).sort()}}},St=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,i,o,l,a,s,v;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((i=e.capabilities)===null||i===void 0?void 0:i.exportHtml),zoom:q((o=e.capabilities)===null||o===void 0?void 0:o.zoom),zoomIn:q((l=e.capabilities)===null||l===void 0?void 0:l.zoom),zoomOut:q((a=e.capabilities)===null||a===void 0?void 0:a.zoom),zoomReset:q((s=e.capabilities)===null||s===void 0?void 0:s.zoom),...(v=t==null?void 0:t.getAvailability)===null||v===void 0?void 0:v.call(t)}:{...St}},qr=e=>({...St,download:R(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",...Me,...Pe],Zn=["xlsx","xltx","xlsm","xlsb","xls","xlt","xltm","csv","ods","fods","numbers",...Ce,"eml","msg","epub","mp4","mp3","mpeg","wav","ogg","oga","opus","m4a","aac","flac","weba",...De],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:i,url:o,size:l,bufferSize:a,startedAt:s,duration:v,timestamp:m,reason:h})=>{var p;const y=$((i==null?void 0:i.name)||n||o||""),A=m!=null?m:Date.now();return{phase:e,type:te(y),filename:y,source:r,url:o,file:i||void 0,size:(p=l!=null?l:i==null?void 0:i.size)!==null&&p!==void 0?p:a,version:t,timestamp:A,duration:v!=null?v:e==="load-complete"&&typeof s=="number"?A-s:void 0,reason:h}},At=({phase:e,source:t,version:r,startedAt:n,timestamp:i,reason:o})=>{const l=i!=null?i: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:o})},Gr=(e,t,r=Date.now())=>{const{phase:n,...i}=t;return{...i,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(i){r==null||r(i,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:i})=>{r==null||r(e);try{if(!rn(t==null?void 0:t.toolbar,e.operation))return n==null||n(e),!1;for(const o of en(t,e.operation))if(o&&await o(e)===!1)return n==null||n(e),!1}catch(o){return i==null||i(o,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=R(e);return t?`.${t}`:"当前"},ln=({state:e,extension:t="",title:r,message:n,description:i,theme:o=Ft,recoverable:l})=>({state:e,extension:R(t),title:r,message:n,description:i,theme:o,recoverable:l}),Rt=(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}}},dn=(e=sn())=>({requestController:e,getCurrentVersion:()=>e.version,isCurrentRequest:t=>e.isCurrent(t)}),cn=()=>({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():It(e)}),It=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()},vn=({source:e,options:t,registerExportAdapter:r,renderContext:n})=>({filename:e.filename,url:e.url,streamUrl:e.url,options:t,registerExportAdapter:r,...n}),Tt=({handler:e,getTarget:t=i=>i.surface.container,createContext:r=vn,destroy:n})=>async i=>{const{source:o}=i;if(!o.buffer)throw new Error("FileRenderHandler renderer requires an ArrayBuffer source.");const l=t(i),a=await e(o.buffer,l,o.extension,r(i));return un(a,()=>n?n(a,i):It(a))},pn=({definitions:e=W,handlers:t,getTarget:r,createContext:n,destroy:i})=>{const o=de(e),l=_t({registry:o,handlers:t});return{registry:de(o.list().map(a=>{const s=l.handlersByRendererId.get(a.id);return s?{...a,load:Tt({handler:s,getTarget:r,createContext:n,destroy:i})}:a})),dispatcher:l,missingRendererIds:l.missingRendererIds}},mn=Yt({default:()=>fn});async function fn(e,t,r){const n=await Ct(e,r);let i=1,o=0;const l=ct(),a=document.createElement("div");a.className="image-viewer",a.dataset.viewerZoomProvider="image";const s=document.createElement("div");s.className="image-stage";const v=document.createElement("img");v.alt="图片",v.src=n,s.append(v),a.append(s);const m=Mt(n),h=()=>m.open();v.addEventListener("click",h),document.body.append(m.element);const p=()=>{o=a.clientHeight||0,Ae(v,o,i),l.emit()},y=new ResizeObserver(p);y.observe(a);const A=()=>({scale:i,label:`${Math.round(i*100)}%`,canZoomIn:i<5,canZoomOut:i>.1,canReset:i!==1,minScale:.1,maxScale:5}),d=g=>(i=Dt(g),Ae(v,o,i),l.emit(),A());return Qe(a,{zoomIn:()=>d(i+.15),zoomOut:()=>d(i-.15),resetZoom:()=>d(1),setZoom:d,getState:A,subscribe:l.subscribe}),t.replaceChildren(Ot(),a),p(),{$el:t,unmount(){et(a),y.disconnect(),v.removeEventListener("click",h),m.destroy(),t.replaceChildren()}}}var zt,Lt,Ot,Vt,kt,Ct,Dt,Ae,Mt,hn=H((()=>{G(),zt={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"},Lt=`
|
|
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)},Ir=(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()},kr=(e,t)=>{const r=Array.from(e.querySelectorAll("canvas"));Array.from(t.querySelectorAll("canvas")).forEach((n,i)=>{const o=r[i];if(o)try{const l=document.createElement("img");l.src=o.toDataURL("image/png"),l.alt="rendered canvas",l.style.maxWidth="100%",l.style.display="block",l.style.margin="0 auto",n.replaceWith(l)}catch{}})},Tr=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())})}),Vr=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})})}}))},Lr=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())})})},ht=async(e,t)=>t.mode!=="print"||!(e!=null&&e.printStyle)?"":typeof e.printStyle=="function"?await e.printStyle(t):e.printStyle,zr=async(e,t)=>{var r;await((r=t==null?void 0:t.beforeSnapshot)===null||r===void 0?void 0:r.call(t)),await Tr(),await Vr(e)},Or=async({source:e,mode:t="export",title:r,adapter:n=null,watermarkInlineStyle:i=""})=>{const o={mode:t,title:r},l=n==null?void 0:n.toHtml;if(l){const c=await l(o),p=await ht(n,o);return ft({contentHtml:c,includeDocumentStyles:n.includeDocumentStyles!==!1,printStyle:p,title:r,watermarkInlineStyle:i})}await zr(e,n);const a=e.cloneNode(!0);kr(e,a);const s=await ht(n,o);return ft({contentHtml:a.innerHTML,printStyle:s,title:r,watermarkInlineStyle:i})},j="preview.bin",A=e=>e.trim().replace(/^\./,"").toLowerCase(),Cr=e=>{try{return decodeURIComponent(e)}catch{return e}},te=e=>{const t=e.split(/[?#]/)[0]||e,r=t.lastIndexOf(".");return r===-1?"":A(t.slice(r+1))},U=(e,t=j)=>{const r=(e||"").split(/[?#]/)[0].trim();if(!r)return t;const n=Math.max(r.lastIndexOf("/"),r.lastIndexOf("\\"));return Cr(n===-1?r:r.slice(n+1))},Dr=e=>e.file?"file":e.buffer?"buffer":e.url?"url":"empty",wt=e=>e&&"name"in e&&typeof e.name=="string"?e.name:void 0,Mr=({filename:e,file:t,url:r,fallback:n=""})=>{if(e)return U(e,n);const i=wt(t);return i?U(i,n):r?U(r,n):n},gt=e=>{const t=Dr(e),r=U(e.filename||wt(e.file)||e.url,e.type?`preview.${A(e.type)}`:j),n=A(e.type||te(r)),i=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:i}},bt=(e,t=j)=>{if(typeof File!="undefined"&&e instanceof File)return e;const r=U(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.")},yt=async e=>typeof e.arrayBuffer=="function"?e.arrayBuffer():new Promise((t,r)=>{const n=new FileReader;n.onload=i=>{var o;const l=(o=i.target)===null||o===void 0?void 0:o.result;if(l instanceof ArrayBuffer){t(l);return}r(new Error("Failed to read file as ArrayBuffer."))},n.onerror=i=>r(i),n.readAsArrayBuffer(e)}),xt="file-viewer-preview",Ee="preview",Et=j,Pr=e=>e&&"name"in e&&typeof e.name=="string"?e.name:"",Nr=e=>e&&typeof e.type=="string"?e.type:"",Hr=({buffer:e=null,file:t=null,url:r=null,filename:n=null,mimeType:i=null}={})=>({buffer:e,file:t,url:r,filename:n,mimeType:i||Nr(t)||null}),se=(e,t=Ee)=>(e==null?void 0:e.filename)||t,$r=(e,t=Ee)=>{var r;return Hr({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})},Br=(e,t="preview")=>e.filename||Pr(e.file)||t,Z=({filename:e,source:t,fallback:r=xt})=>e||(t?Br(t,""):"")||r,Ur=e=>!!e.buffer||!!e.file||!!e.url,_e=async(e,t)=>e?await e(t):!0,_t=async(e,{source:t,title:r,filename:n,adapter:i=null,watermarkInlineStyle:o})=>{if(!t)throw new Error("当前没有可导出的预览内容");return Or({source:t,mode:e,title:Z({filename:r||n,fallback:xt}),adapter:i,watermarkInlineStyle:o})},Zr=async({source:e,filename:t,beforeOperation:r,throwOnMissingSource:n=!0})=>{var i;if(!Ur(e)){if(n)throw new Error("当前没有可下载的源文件");return!1}if(!await _e(r,"download"))return!1;const o=Z({filename:t,source:e,fallback:Et});return e.buffer?(xe(new Blob([e.buffer],{type:e.mimeType||((i=e.file)===null||i===void 0?void 0:i.type)||"application/octet-stream"}),o),!0):e.file?(xe(e.file,o),!0):(Ir(e.url,o),!0)},Wr=async({download:e=!0,filename:t,beforeOperation:r,...n})=>{if(!await _e(r,"export-html"))return"";const i=await _t("export",{...n,filename:t});if(e!==!1){const o=Z({filename:t||n.title,fallback:Ee});xe(new Blob([i],{type:"text/html;charset=utf-8"}),`${o}.rendered.html`)}return i},jr=async({autoPrint:e=!0,beforeOperation:t,openWindow:r,printAvailable:n=!0,printWindow:i,...o})=>{if(!n)throw new Error("当前文件类型不支持完整打印,请下载原文件后在本地应用中打印");if(!await _e(t,"print"))return!1;const l=await _t("print",o),a=i||(r==null?void 0:r())||(typeof window!="undefined"?window.open("","_blank"):null);if(!a)throw new Error("浏览器拦截了打印窗口");return a.document.open(),a.document.write(l),a.document.close(),a.focus(),await Lr(a),e!==!1&&a.print(),!0},Se="__flyfish_file_viewer_auto_renderer_presets__",St=()=>{const e=globalThis;return e[Se]||(e[Se]={version:0,presets:new Map}),e[Se]},qr=e=>({...e,extensions:e.extensions.map(A)}),de=(e=B)=>{const t=new Map,r=new Map,n=i=>{const o=qr(i),l=t.get(o.id);l&&l.extensions.forEach(a=>{var s;((s=r.get(a))===null||s===void 0?void 0:s.id)===l.id&&r.delete(a)}),t.set(o.id,o),o.extensions.forEach(a=>{const s=r.get(a);if(s&&s.id!==o.id)throw new Error(`File extension "${a}" is already registered by renderer "${s.id}".`);r.set(a,o)})};return e.forEach(n),{register:n,unregister(i){const o=t.get(i);return o?(o.extensions.forEach(l=>{var a;((a=r.get(l))===null||a===void 0?void 0:a.id)===i&&r.delete(l)}),t.delete(i),!0):!1},getById(i){return t.get(i)},getByExtension(i){return r.get(A(i))},hasExtension(i){return r.has(A(i))},list(){return Array.from(t.values())},listExtensions(){return Array.from(r.keys()).sort()}}},Xr=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&Array.isArray(e.renderers),Ae=e=>e?Array.isArray(e)?e.flatMap(t=>Ae(t)):Xr(e)?Ae(e.renderers):[e]:[],Yr=()=>Array.from(St().presets.values()).map(e=>e.input),Jr=()=>St().version,Gr=async({registry:e,plugins:t,registerHandler:r})=>{var n,i,o;for(const l of t)(n=l.definitions)===null||n===void 0||n.forEach(a=>{e.register(a)}),(i=l.handlers)===null||i===void 0||i.forEach(a=>{r==null||r(a)}),await((o=l.install)===null||o===void 0?void 0:o.call(l,{registry:e,registerHandler:r}));return e},At=({registry:e=de(B),handlers:t,fallbackHandler:r,fallbackKey:n="error"})=>{const i=Array.from(t).reduce((s,c)=>(s.set(c.rendererId,c.handler),s),new Map),o=new Map,l=[];e.list().forEach(s=>{const c=i.get(s.id);if(!c){l.push(s.id);return}s.extensions.forEach(p=>{o.set(A(p),c)})}),r&&n&&o.set(A(n),r);const a=s=>o.get(A(s));return{handlersByRendererId:i,handlersByExtension:o,missingRendererIds:l,get:a,resolve(s){return a(s)||(n?a(n):void 0)},has(s){return o.has(A(s))},listExtensions(){return Array.from(o.keys()).sort()}}},Ft=Object.freeze({download:!1,print:!1,exportHtml:!1,zoom:!1,zoomIn:!1,zoomOut:!1,zoomReset:!1}),q=e=>e===!0||e==="adapter"||e==="provider",Kr=(e,t)=>{var r,n,i,o,l,a,s,c;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((i=e.capabilities)===null||i===void 0?void 0:i.exportHtml),zoom:q((o=e.capabilities)===null||o===void 0?void 0:o.zoom),zoomIn:q((l=e.capabilities)===null||l===void 0?void 0:l.zoom),zoomOut:q((a=e.capabilities)===null||a===void 0?void 0:a.zoom),zoomReset:q((s=e.capabilities)===null||s===void 0?void 0:s.zoom),...(c=t==null?void 0:t.getAvailability)===null||c===void 0?void 0:c.call(t)}:{...Ft}},Qr=e=>({...Ft,download:A(e).length>0}),ei=["pptx","pptm","potx","potm","ppsx","ppsm","ofd","dxf","dwg","dwf","dwfx","xps","excalidraw","drawio","dio","mermaid","mmd","plantuml","puml","umd","md","markdown","olb","dra",...Pe,...Ne],ti=["xlsx","xltx","xlsm","xlsb","xls","xlt","xltm","csv","ods","fods","numbers",...De,"eml","msg","epub","mp4","mp3","mpeg","wav","ogg","oga","opus","m4a","aac","flac","weba",...Me],en={"load-start":"onLoadStart","load-complete":"onLoadComplete","unload-start":"onUnloadStart","unload-complete":"onUnloadComplete"},tn={download:"下载原始文件",print:"打印完整渲染内容","export-html":"导出渲染 HTML","zoom-in":"放大预览","zoom-out":"缩小预览","zoom-reset":"还原预览比例"},rn=({phase:e,version:t,source:r,filename:n,file:i,url:o,size:l,bufferSize:a,startedAt:s,duration:c,timestamp:p,reason:h})=>{var m;const y=U((i==null?void 0:i.name)||n||o||""),S=p!=null?p:Date.now();return{phase:e,type:te(y),filename:y,source:r,url:o,file:i||void 0,size:(m=l!=null?l:i==null?void 0:i.size)!==null&&m!==void 0?m:a,version:t,timestamp:S,duration:c!=null?c:e==="load-complete"&&typeof s=="number"?S-s:void 0,reason:h}},Rt=({phase:e,source:t,version:r,startedAt:n,timestamp:i,reason:o})=>{const l=i!=null?i:Date.now();return rn({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:o})},nn=(e,t,r=Date.now())=>{const{phase:n,...i}=t;return{...i,operation:e,label:tn[e],timestamp:r}},on=e=>en[e],an=async(e,t,r)=>{const n=t==null?void 0:t[on(e.phase)];if(n)try{await n(e)}catch(i){r==null||r(i,e)}},ln=(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]},sn=(e,t)=>(e==null?void 0:e[t])!==!1,dn=(e,t)=>!e||typeof e!="object"?!0:sn(e.permissions,t),cn=async({context:e,options:t,onBefore:r,onCancel:n,onError:i})=>{r==null||r(e);try{if(!dn(t==null?void 0:t.toolbar,e.operation))return n==null||n(e),!1;for(const o of ln(t,e.operation))if(o&&await o(e)===!1)return n==null||n(e),!1}catch(o){return i==null||i(o,e),n==null||n(e),!1}return!0},ri=Object.freeze({downloading:"正在下载文件资源...",streamingPdf:"正在建立 PDF 流式预览...",reading:"正在解析文件内容..."}),It=Object.freeze({accent:"#5f6f82",soft:"rgba(95, 111, 130, 0.12)",badge:"DOC",label:"文件内容",hint:"正在整理内容结构并生成预览。"}),un="支持 Office、PDF、OFD、Typst、压缩包、邮件、OLB/DRA、CAD、地理数据、3D 模型、Excalidraw、draw.io、EPUB、UMD、Markdown、代码/文本、图片、音视频、字体和数据资产的在线预览",vn=e=>{const t=A(e);return t?`.${t}`:"当前"},pn={"office-word-openxml":"@file-viewer/renderer-word","office-word-binary":"@file-viewer/renderer-word","office-presentation":"@file-viewer/renderer-presentation","open-document":"@file-viewer/renderer-word","spreadsheet-openxml":"@file-viewer/renderer-spreadsheet",pdf:"@file-viewer/renderer-pdf",ofd:"@file-viewer/renderer-ofd",typst:"@file-viewer/renderer-typst",archive:"@file-viewer/renderer-archive",email:"@file-viewer/renderer-email",eda:"@file-viewer/renderer-eda",cad:"@file-viewer/renderer-cad",model:"@file-viewer/renderer-3d",geo:"@file-viewer/renderer-geo",drawing:"@file-viewer/renderer-drawing",mindmap:"@file-viewer/renderer-mindmap",epub:"@file-viewer/renderer-epub",umd:"@file-viewer/renderer-epub",image:"@file-viewer/renderer-image",markdown:"@file-viewer/renderer-text",code:"@file-viewer/renderer-text",video:"@file-viewer/renderer-media",audio:"@file-viewer/renderer-media","data-asset":"@file-viewer/renderer-data"},mn=new Set(["office-word-openxml","office-word-binary","office-presentation","open-document","spreadsheet-openxml","pdf","ofd"]),fn=new Set(["image","markdown","code","video","audio"]),hn=new Set(["typst","archive","eda","cad","model","geo","drawing","mindmap","data-asset"]),wn=e=>mn.has(e.id)?{packageName:"@file-viewer/preset-office",vitePreset:"office",label:"Office preset"}:hn.has(e.id)?{packageName:"@file-viewer/preset-engineering",vitePreset:"engineering",label:"Engineering preset"}:fn.has(e.id)?{packageName:"@file-viewer/preset-lite",vitePreset:"lite",label:"Lite preset"}:{packageName:"@file-viewer/preset-all",vitePreset:"all",label:"Full preset"},gn=(e="")=>{const t=A(e),r=B.find(i=>i.extensions.map(A).includes(t));if(!r)return null;const n=wn(r);return{extension:t,rendererId:r.id,rendererLabel:r.label,rendererCategory:r.category,rendererPackage:pn[r.id],presetPackage:n.packageName,vitePreset:n.vitePreset,presetLabel:n.label}},kt=({state:e,extension:t="",title:r,message:n,description:i,theme:o=It,recoverable:l})=>({state:e,extension:A(t),title:r,message:n,description:i,theme:o,recoverable:l}),Tt=(e="",t=It)=>{const r=vn(e),n=gn(e);if(n){const i=n.rendererPackage?`;如果需要极致裁剪,也可以只安装 ${n.rendererPackage}`:"";return kt({state:"unsupported",extension:e,title:"需要装配预览能力",message:`${r} 格式已在支持矩阵中,但当前项目尚未装配 ${n.rendererLabel} renderer。`,description:`推荐安装 ${n.presetPackage} 并启用 @file-viewer/vite-plugin(preset: '${n.vitePreset}' 或 preset: 'auto')${i},也可以通过 options.renderers 手动传入对应 renderer。`,theme:t,recoverable:!0})}return kt({state:"unsupported",extension:e,title:"暂不支持在线预览",message:`不支持${r}格式的在线预览,请下载后预览或转换为支持的格式。`,description:un,theme:t,recoverable:!0})},bn=()=>{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}}},yn=(e=bn())=>({requestController:e,getCurrentVersion:()=>e.version,isCurrentRequest:t=>e.isCurrent(t)}),xn=()=>({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},En=(e,t)=>({rendered:e,destroy:()=>t?t():Vt(e)}),Vt=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()},_n=({source:e,options:t,registerExportAdapter:r,renderContext:n})=>({filename:e.filename,url:e.url,streamUrl:e.url,options:t,registerExportAdapter:r,...n}),Lt=({handler:e,getTarget:t=i=>i.surface.container,createContext:r=_n,destroy:n})=>async i=>{const{source:o}=i;if(!o.buffer)throw new Error("FileRenderHandler renderer requires an ArrayBuffer source.");const l=t(i),a=await e(o.buffer,l,o.extension,r(i));return En(a,()=>n?n(a,i):Vt(a))},Sn=({definitions:e=B,handlers:t,getTarget:r,createContext:n,destroy:i})=>{const o=de(e),l=At({registry:o,handlers:t});return{registry:de(o.list().map(a=>{const s=l.handlersByRendererId.get(a.id);return s?{...a,load:Lt({handler:s,getTarget:r,createContext:n,destroy:i})}:a})),dispatcher:l,missingRendererIds:l.missingRendererIds}},An=Qt({default:()=>Fn});async function Fn(e,t,r){const n=await Pt(e,r);let i=1,o=0;const l=ut(),a=document.createElement("div");a.className="image-viewer",a.dataset.viewerZoomProvider="image";const s=document.createElement("div");s.className="image-stage";const c=document.createElement("img");c.alt="图片",c.src=n,s.append(c),a.append(s);const p=Ht(n),h=()=>p.open();c.addEventListener("click",h),document.body.append(p.element);const m=()=>{o=a.clientHeight||0,Fe(c,o,i),l.emit()},y=new ResizeObserver(m);y.observe(a);const S=()=>({scale:i,label:`${Math.round(i*100)}%`,canZoomIn:i<5,canZoomOut:i>.1,canReset:i!==1,minScale:.1,maxScale:5}),d=b=>(i=Nt(b),Fe(c,o,i),l.emit(),S());return et(a,{zoomIn:()=>d(i+.15),zoomOut:()=>d(i-.15),resetZoom:()=>d(1),setZoom:d,getState:S,subscribe:l.subscribe}),t.replaceChildren(Ct(),a),m(),{$el:t,unmount(){tt(a),y.disconnect(),c.removeEventListener("click",h),p.destroy(),t.replaceChildren()}}}var zt,Ot,Ct,Dt,Mt,Pt,Nt,Fe,Ht,Rn=$((()=>{G(),zt={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
|
-
`,Ot=()=>{const e=document.createElement("style");return e.textContent=Lt,e},Vt=e=>zt[(e||"").trim().toLowerCase()]||"image/*",kt=async e=>await new Promise((t,r)=>{const n=new FileReader;n.onload=i=>{var o;const l=(o=i.target)===null||o===void 0?void 0:o.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)}),Ct=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 kt(new Blob([e],{type:Vt(r)}))},Dt=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}%`},Mt=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 i=()=>{t.hidden=!0};return n.addEventListener("click",i),r.addEventListener("click",i),t.addEventListener("click",o=>{o.target===t&&i()}),t.append(r,n),{element:t,open(){t.hidden=!1},destroy(){n.removeEventListener("click",i),r.removeEventListener("click",i),t.remove()}}}})),wn=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)}}],Pt=["image"],gn=Fe.filter(e=>Pt.includes(e.rendererId)),bn=W.filter(e=>Pt.includes(e.id)),yn=e=>e==="none"?[]:e==="lite"?bn:W,xn=e=>e==="none"?[]:e==="lite"?gn:Fe,En=async(e,t,r)=>{const n=Rt(r),i=document.createElement("div");i.style.textAlign="center",i.style.marginTop="80px";const o=document.createElement("div");if(o.textContent=n.message,i.appendChild(o),n.description){const l=document.createElement("div");l.textContent=n.description,i.appendChild(l)}return t.replaceChildren(i),wn(t)},Nt=(e={})=>{const t=e.builtinRenderers||"all",r=pn({definitions:yn(t),handlers:xn(t)});return{...r,dispatcher:_t({registry:r.registry,handlers:Fe,fallbackHandler:En})}},Re=Nt(),Ht=Re.registry,jn=Re.dispatcher,qn=Re.missingRendererIds,ce=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),_n=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)),Sn=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),i=U(e.height,(e.image,72),24,r),o=U(e.rotate,-24,-75,75),l=U(e.opacity,.18,.02,.8),a=(t-n)/2,s=(r-i)/2,v=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(${o} ${v} ${m})"><image href="${ce(e.image)}" x="${a}" y="${s}" width="${n}" height="${i}" preserveAspectRatio="xMidYMid meet"/></g></svg>`;const h=ce(e.text||"Flyfish Viewer"),p=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(${o} ${v} ${m})"><text x="${v}" y="${m}" text-anchor="middle" dominant-baseline="middle" fill="${ce(e.color||"#355070")}" font-family="${ce(e.fontFamily||"Aptos, 'Segoe UI', sans-serif")}" font-size="${p}" font-weight="700">${h}</text></g></svg>`},Fn=e=>{const t=Sn(e);return t?_n(An(t)):""},Rn=e=>{const t=Fn(e);return t?`position:absolute;inset:0;pointer-events:none;background-image:${t};background-repeat:repeat;z-index:20;`:""};oe(),ye();var ne=async(e,t,r,n,i,o,l)=>{const a=At({phase:r,source:n,version:i,timestamp:Date.now(),startedAt:o,reason:l});await Qr(a,e.hooks,s=>{throw s}),t==null||t({type:r,payload:a})},$t=(e,t)=>t.rendererMode==="replace"?de([]):e.registry?e.registry:Nt({builtinRenderers:t.builtinRenderers}).registry,In=(e,t)=>{const r=e.ownerDocument,n=Rt(t),i=r.createElement("div");i.className="file-viewer-missing-renderer",i.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 o=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 a=r.createElement("p");a.textContent=n.description||"当前内置 renderer 配置没有加载该格式。请安装并传入对应 @file-viewer/renderer-* 包,或使用 @file-viewer/preset-all。",a.style.cssText="max-width:520px;margin:0;",o.append(l,a),i.append(o),e.replaceChildren(i)},Tn=(e,t={})=>{let r=t.options||{},n=$t(t,r),i,o=r.rendererMode||"extend",l=r.builtinRenderers||"all",a=null;const s=cn(),v=dn(),m={anchors:{value:[]},state:ie()},h=async()=>{const u=r.rendererMode||"extend",w=r.renderers,_=r.builtinRenderers||"all";if(u===o&&w===i&&_===l)return;n=$t(t,r),o=u,i=w,l=_;const T=Se(w);if(!T.length)return;await Wr({registry:n,plugins:T,registerHandler:c=>{const f=n.getById(c.rendererId);f&&n.register({...f,load:Tt({handler:c.handler,getTarget:b=>b.surface.container})})}})},p=()=>At({phase:"load-complete",source:a||wt({}),version:v.getCurrentVersion(),timestamp:Date.now()}),y=async u=>nn({context:Gr(u,p()),options:r,onBefore:w=>{var _;(_=t.onEvent)===null||_===void 0||_.call(t,{type:"operation-before",payload:w})},onCancel:w=>{var _;(_=t.onEvent)===null||_===void 0||_.call(t,{type:"operation-cancel",payload:w})},onError(w){throw w}}),A=u=>typeof u=="string"?u:Rn(r.watermark),d=u=>{const w=u||(a==null?void 0:a.extension)||"",_=n.getByExtension(w);return _?jr(_,s.session):qr(w)},g=()=>{var u;(u=t.onEvent)===null||u===void 0||u.call(t,{type:"operation-availability-change",payload:d()})},E=(u=S.getState())=>{var w;(w=t.onEvent)===null||w===void 0||w.call(t,{type:"zoom-change",payload:u})},S=vt({root:()=>e,beforeZoom:y}),F=gr({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})}});S.observe();const X=async(u="replace")=>{var w,_;if(!a)return;const T=a,k=Date.now(),c=v.getCurrentVersion();await ne(r,t.onEvent,"unload-start",T,c,k,u),await((_=(w=s.session)===null||w===void 0?void 0:w.destroy)===null||_===void 0?void 0:_.call(w)),a=null,re(s,{session:null,exportAdapter:null}),await F.clearDocumentState(),S.clearProvider(),g(),E(),await ne(r,t.onEvent,"unload-complete",T,c,k,u)};return{container:e,async load(u){await X("replace"),await h();const w=wt(u);a=w;const _=v.requestController.createVersion(),T=n.getByExtension(w.extension),k=Date.now();if(await ne(r,t.onEvent,"load-start",w,_,k),!(T!=null&&T.load))return In(e,w.extension),re(s,{session:null}),g(),E(),await ne(r,t.onEvent,"load-complete",w,_,k),null;const c=await T.load({source:w,surface:{container:e},options:r,signal:t.signal,registerExportAdapter:f=>{re(s,{exportAdapter:f})}});return re(s,{session:c}),S.refreshProvider(),await F.refreshDocumentIndex({notify:!1}),g(),E(),await ne(r,t.onEvent,"load-complete",w,_,k),c},async destroy(u="component-unmount"){await X(u),F.destroyDocumentFeatures(),S.destroy()},updateOptions(u){r={...r,...u}},getCapabilities(u){return d(u)},getRenderer(u){return n.getByExtension(u||(a==null?void 0:a.extension)||"")},getSource(){return a},registerExportAdapter(u){re(s,{exportAdapter:u})},getExportAdapter(){return s.exportAdapter},async download(u={}){const w=Mr(a);await Hr({source:w,filename:u.filename||B({source:w,fallback:xt}),beforeOperation:y})},async exportHtml(u={}){return $r({source:e,adapter:s.exportAdapter,download:u.download,filename:u.filename||B({filename:se(a),fallback:"preview"}),title:u.title||B({filename:se(a),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(a),fallback:"file-viewer-preview"}),watermarkInlineStyle:A(u.watermarkInlineStyle),printAvailable:d().print,beforeOperation:y})},async zoomIn(){const u=await S.zoomIn();return E(u),u},async zoomOut(){const u=await S.zoomOut();return E(u),u},async resetZoom(){const u=await S.resetZoom();return E(u),u},getZoomState(){return S.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 zn=()=>typeof window!="undefined"&&typeof document!="undefined",Ie=(e={})=>!!(e.url||e.file||e.buffer),Te=(e={})=>({url:e.url,file:e.file,buffer:e.buffer,filename:e.filename||e.name,name:e.name,type:e.type,size:e.size}),Ln=()=>typeof fetch=="function",On=async({url:e,signal:t})=>{if(!Ln())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()},Vn=e=>$(e.filename||e.name||Vr({file:e.file,url:e.url,fallback:"preview.bin"}),e.type?`preview.${e.type}`:j),kn=async(e,t={})=>{var r,n,i;const o=Vn(e),l=e.type||te(o);if(e.buffer)return{buffer:e.buffer,filename:o,type:l,size:(r=e.size)!==null&&r!==void 0?r:e.buffer.byteLength,url:e.url};if(e.file){const a=gt(e.file,o);return{file:a,buffer:await bt(a),filename:a.name||o,type:l||te(a.name),size:(n=e.size)!==null&&n!==void 0?n:a.size,url:e.url}}if(e.url){const a=await(t.fetchFile||On)({url:e.url,signal:t.signal,source:e});if(!a)throw new Error("Downloaded file is empty.");const s=gt(a,o);return{file:s,buffer:await bt(s),filename:s.name||o,type:l||te(s.name),size:(i=e.size)!==null&&i!==void 0?i:s.size,url:e.url}}return{filename:o,type:l}},Bt=(e,t)=>({load(r){var n,i;return(i=(n=e())===null||n===void 0?void 0:n.load(r))!==null&&i!==void 0?i:Promise.resolve()},update(r){var n,i;return(i=(n=e())===null||n===void 0?void 0:n.update(r))!==null&&i!==void 0?i:Promise.resolve()},reload(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.reload())!==null&&n!==void 0?n:Promise.resolve()},destroy(){t()},getController:e,getApi(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.getApi())!==null&&n!==void 0?n:null},downloadOriginalFile(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.downloadOriginalFile())!==null&&n!==void 0?n:Promise.resolve()},printRenderedHtml(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.printRenderedHtml())!==null&&n!==void 0?n:Promise.resolve()},exportRenderedHtml(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.exportRenderedHtml())!==null&&n!==void 0?n:Promise.resolve()},zoomIn(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.zoomIn())!==null&&n!==void 0?n:Promise.resolve(null)},zoomOut(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.zoomOut())!==null&&n!==void 0?n:Promise.resolve(null)},resetZoom(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.resetZoom())!==null&&n!==void 0?n:Promise.resolve(null)},searchDocument(r){var n,i;return(i=(n=e())===null||n===void 0?void 0:n.searchDocument(r))!==null&&i!==void 0?i:Promise.resolve(null)},clearDocumentSearch(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.clearDocumentSearch())!==null&&n!==void 0?n:Promise.resolve(null)},nextSearchResult(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.nextSearchResult())!==null&&n!==void 0?n:Promise.resolve(null)},previousSearchResult(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.previousSearchResult())!==null&&n!==void 0?n:Promise.resolve(null)},collectDocumentAnchors(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.collectDocumentAnchors())!==null&&n!==void 0?n:Promise.resolve([])},scrollToAnchor(r){var n,i;return(i=(n=e())===null||n===void 0?void 0:n.scrollToAnchor(r))!==null&&i!==void 0?i:Promise.resolve(!1)},scrollToLine(r){var n,i;return(i=(n=e())===null||n===void 0?void 0:n.scrollToLine(r))!==null&&i!==void 0?i:Promise.resolve(!1)},getDocumentTextChunks(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.getDocumentTextChunks())!==null&&n!==void 0?n:[]},getOperationAvailability(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.getOperationAvailability())!==null&&n!==void 0?n:null},getZoomState(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.getZoomState())!==null&&n!==void 0?n:null},getSearchState(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.getSearchState())!==null&&n!==void 0?n:null},getState(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.getState())!==null&&n!==void 0?n:null},subscribe(r){var n,i;return(i=(n=e())===null||n===void 0?void 0:n.subscribe(r))!==null&&i!==void 0?i:(()=>{})}}),I=async(e,t,r)=>e?t(e):r,Cn=e=>!!(e&&typeof e=="object"&&e.name==="AbortError"),Ut=(e,t={},r={})=>{if(!zn())throw new Error("Flyfish File Viewer can only be mounted in a browser DOM environment.");let n=!1,i=t,o=Ie(i)?Te(i):null,l=null;const a=new Set,s={loading:!1,ready:!1,error:null,lastEvent:null,lifecycle:null,availability:null,search:null,zoom:null,location:null},v=()=>({...s,search:s.search?{...s.search,matches:[...s.search.matches]}:null}),m=d=>{var g;const E=v();(g=i.onStateChange)===null||g===void 0||g.call(i,E,d),a.forEach(S=>S(E,d))},h=d=>{var g;s.lastEvent=d,d.type==="load-start"?(s.loading=!0,s.ready=!1,s.error=null,s.lifecycle=d.payload):d.type==="load-complete"?(s.loading=!1,s.ready=!0,s.lifecycle=d.payload):d.type==="unload-start"?(s.loading=!0,s.ready=!1,s.lifecycle=d.payload):d.type==="unload-complete"?(s.loading=!1,s.ready=!1,s.lifecycle=d.payload):d.type==="operation-availability-change"?s.availability=d.payload:d.type==="search-change"?s.search=d.payload:d.type==="location-change"?s.location=d.payload:d.type==="zoom-change"&&(s.zoom=d.payload),(g=i.onEvent)===null||g===void 0||g.call(i,d),m(d)},p=Tn(e,{registry:r.registry,options:i.options,onEvent:h}),y=()=>{l==null||l.abort(),l=null},A=async d=>{var g;y(),o=d,l=typeof AbortController!="undefined"?new AbortController:null;const E=l;try{s.loading=!0,s.error=null,m();const S=await kn(d,{fetchFile:r.fetchFile,signal:E==null?void 0:E.signal});return await p.load(S)}catch(S){if(Cn(S)&&(E!=null&&E.signal.aborted))return null;throw s.loading=!1,s.ready=!1,s.error=S,m(),(g=r.onError)===null||g===void 0||g.call(r,S,d),S}finally{l===E&&(l=null)}};return o&&A(o),{container:e,async load(d){n||(i=d,p.updateOptions(i.options||{}),Ie(i)&&await A(Te(i)))},async update(d={}){var g;n||(i={...i,...d,options:(g=d.options)!==null&&g!==void 0?g:i.options},p.updateOptions(i.options||{}),Ie(i)?await A(Te(i)):(o=null,await p.load({filename:j})))},async reload(){n||o&&await A(o)},destroy(){n||(n=!0,y(),p.destroy("component-unmount"),e.innerHTML="")},getApi(){return p},downloadOriginalFile(){return I(p,d=>d.download(),void 0)},printRenderedHtml(){return I(p,d=>d.print(),void 0)},exportRenderedHtml(){return I(p,d=>d.exportHtml({download:!0}).then(()=>{}),void 0)},zoomIn(){return I(p,d=>d.zoomIn(),null)},zoomOut(){return I(p,d=>d.zoomOut(),null)},resetZoom(){return I(p,d=>d.resetZoom(),null)},searchDocument(d){return I(p,g=>g.search(d),null)},clearDocumentSearch(){return I(p,d=>d.clearSearch(),null)},nextSearchResult(){return I(p,d=>d.nextSearchResult(),null)},previousSearchResult(){return I(p,d=>d.previousSearchResult(),null)},collectDocumentAnchors(){return I(p,d=>d.collectDocumentAnchors(),[])},scrollToAnchor(d){return I(p,g=>g.scrollToDocumentAnchor(d),!1)},scrollToLine(d){return I(p,g=>g.scrollToLine(d),!1)},getDocumentTextChunks(){return p.getDocumentTextChunks()},getOperationAvailability(){return p.getCapabilities()},getZoomState(){return p.getZoomState()},getSearchState(){return p.getSearchState()},getState(){return v()},subscribe(d){return a.add(d),d(v()),()=>{a.delete(d)}}}},ze="flyfish-file-viewer",Dn=typeof HTMLElement=="undefined"?class{}:HTMLElement,Mn=["src","url","filename","name","type","size","theme","toolbar","toolbar-position","watermark","search","options"],Le=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)},Oe=(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)},Pn=e=>`viewer-${e.type}`,ve=class extends Dn{constructor(){super(...arguments),this.mountNode=null,this.controller=null,this.pendingUpdate=!1,this.mountOptions={},this.internalCoreOptions={}}static get observedAttributes(){return[...Mn]}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=Oe(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=Oe(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(t=(e=this.controller)===null||e===void 0?void 0:e.reload())!==null&&t!==void 0?t: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(t=(e=this.controller)===null||e===void 0?void 0:e.getApi())!==null&&t!==void 0?t:null}downloadOriginalFile(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.downloadOriginalFile())!==null&&t!==void 0?t:Promise.resolve()}printRenderedHtml(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.printRenderedHtml())!==null&&t!==void 0?t:Promise.resolve()}exportRenderedHtml(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.exportRenderedHtml())!==null&&t!==void 0?t:Promise.resolve()}zoomIn(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.zoomIn())!==null&&t!==void 0?t:Promise.resolve(null)}zoomOut(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.zoomOut())!==null&&t!==void 0?t:Promise.resolve(null)}resetZoom(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.resetZoom())!==null&&t!==void 0?t:Promise.resolve(null)}searchDocument(e){var t,r;return(r=(t=this.controller)===null||t===void 0?void 0:t.searchDocument(e))!==null&&r!==void 0?r:Promise.resolve(null)}clearDocumentSearch(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.clearDocumentSearch())!==null&&t!==void 0?t:Promise.resolve(null)}nextSearchResult(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.nextSearchResult())!==null&&t!==void 0?t:Promise.resolve(null)}previousSearchResult(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.previousSearchResult())!==null&&t!==void 0?t:Promise.resolve(null)}collectDocumentAnchors(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.collectDocumentAnchors())!==null&&t!==void 0?t:Promise.resolve([])}scrollToAnchor(e){var t,r;return(r=(t=this.controller)===null||t===void 0?void 0:t.scrollToAnchor(e))!==null&&r!==void 0?r:Promise.resolve(!1)}scrollToLine(e){var t,r;return(r=(t=this.controller)===null||t===void 0?void 0:t.scrollToLine(e))!==null&&r!==void 0?r:Promise.resolve(!1)}getDocumentTextChunks(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.getDocumentTextChunks())!==null&&t!==void 0?t:[]}getOperationAvailability(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.getOperationAvailability())!==null&&t!==void 0?t:null}getZoomState(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.getZoomState())!==null&&t!==void 0?t:null}getSearchState(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.getSearchState())!==null&&t!==void 0?t:null}getState(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.getState())!==null&&t!==void 0?t:null}subscribe(e){var t,r;return(r=(t=this.controller)===null||t===void 0?void 0:t.subscribe(e))!==null&&r!==void 0?r:(()=>{})}setMountOptions(e){this.mountOptions=Oe(this.mountOptions,e),this.scheduleUpdate()}mount(){if(this.controller||!this.isConnected)return;const e=this.ensureMountNode();try{this.controller=Ut(e,this.createEffectiveMountOptions(),{registry:Ht,...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:i=>{jt(r,i),this.dispatchViewerEvent(i)},onStateChange:(i,o)=>{jt(n.map(l=>l?a=>l(a,o):void 0),i),this.dispatchTypedEvent("viewer-state-change",{state:i,event:o})}}}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,i=Zt(this.getAttribute("size")),o=this.readAttributeViewerOptions();return{...e?{url:e}:{},...t?{filename:t}:{},...r?{name:r}:{},...n?{type:n}:{},...i===void 0?{}:{size:i},...o?{options:o}:{}}}readAttributeViewerOptions(){const e=ue(this.getAttribute("options"))||{},t=this.getAttribute("theme");t&&(e.theme=t);const r=this.getAttribute("toolbar"),n=ue(r),i=Le(r);n!==void 0?e.toolbar=n:i!==void 0&&(e.toolbar=i);const o=this.getAttribute("toolbar-position");o&&(e.toolbar={...typeof e.toolbar=="object"&&e.toolbar?e.toolbar:{},position:o});const l=this.getAttribute("watermark"),a=ue(l),s=Le(l);a!==void 0?e.watermark=a:s!==void 0?e.watermark=s:l&&(e.watermark={enabled:!0,text:l});const v=this.getAttribute("search"),m=ue(v),h=Le(v);return m!==void 0?e.search=m:h!==void 0&&(e.search=h),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(Pn(e),e)}dispatchError(e){this.dispatchTypedEvent("viewer-error",{error:e})}dispatchTypedEvent(e,t){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:t}))}},Ve=(e=ze)=>{if(typeof window=="undefined"||!window.customElements)return;const t=window.customElements.get(e);return t||(window.customElements.define(e,ve),ve)},qt=(e,t={},r={})=>Ut(e,t,{registry:Ht,...r}),Xt={createViewerControllerHandle:Bt,defineFileViewerElement:Ve,FileViewerElement:ve,FILE_VIEWER_ELEMENT_TAG:ze,mountViewer:qt};typeof window!="undefined"&&(window.FlyfishFileViewerWeb=Xt,Ve()),N.FILE_VIEWER_ELEMENT_TAG=ze,N.FileViewerElement=ve,N.createViewerControllerHandle=Bt,N.default=Xt,N.defineFileViewerElement=Ve,N.mountViewer=qt})(this.FlyfishFileViewerWeb=this.FlyfishFileViewerWeb||{});
|
|
297
|
+
`,Ct=()=>{const e=document.createElement("style");return e.textContent=Ot,e},Dt=e=>zt[(e||"").trim().toLowerCase()]||"image/*",Mt=async e=>await new Promise((t,r)=>{const n=new FileReader;n.onload=i=>{var o;const l=(o=i.target)===null||o===void 0?void 0:o.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)}),Pt=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 Mt(new Blob([e],{type:Dt(r)}))},Nt=e=>Math.min(5,Math.max(.1,Number(e.toFixed(2)))),Fe=(e,t,r)=>{if(t>0){e.style.height=`${Math.max(1,Math.round(t*r))}px`;return}e.style.height=`${r*100}%`},Ht=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 i=()=>{t.hidden=!0};return n.addEventListener("click",i),r.addEventListener("click",i),t.addEventListener("click",o=>{o.target===t&&i()}),t.append(r,n),{element:t,open(){t.hidden=!1},destroy(){n.removeEventListener("click",i),r.removeEventListener("click",i),t.remove()}}}})),In=e=>({$el:e,unmount(){}}),Re=[{rendererId:"image",handler:async(e,t,r)=>{const{default:n}=await Promise.resolve().then(()=>(Rn(),An));return n(e,t,r)}}],$t=["image"],kn=Re.filter(e=>$t.includes(e.rendererId)),Tn=B.filter(e=>$t.includes(e.id)),Vn=e=>e==="none"?[]:e==="lite"?Tn:B,Ln=e=>e==="none"?[]:e==="lite"?kn:Re,zn=async(e,t,r)=>{const n=Tt(r),i=document.createElement("div");i.style.textAlign="center",i.style.marginTop="80px";const o=document.createElement("div");if(o.textContent=n.message,i.appendChild(o),n.description){const l=document.createElement("div");l.textContent=n.description,i.appendChild(l)}return t.replaceChildren(i),In(t)},Bt=(e={})=>{const t=e.builtinRenderers||"all",r=Sn({definitions:Vn(t),handlers:Ln(t)});return{...r,dispatcher:At({registry:r.registry,handlers:Re,fallbackHandler:zn})}},Ie=Bt(),Ut=Ie.registry,ni=Ie.dispatcher,ii=Ie.missingRendererIds,ce=e=>e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),On=e=>`url("data:image/svg+xml;charset=utf-8,${encodeURIComponent(e)}")`,W=(e,t,r,n)=>Math.min(n,Math.max(r,typeof e=="number"&&Number.isFinite(e)?e:t)),Cn=e=>e?e===!0?{enabled:!0,text:"Flyfish Viewer"}:e.enabled===!1||!e.text&&!e.image?null:{enabled:!0,...e}:null,Dn=e=>{const t=W(e.gapX,260,96,800),r=W(e.gapY,180,80,800),n=W(e.width,e.image?160:220,32,t),i=W(e.height,(e.image,72),24,r),o=W(e.rotate,-24,-75,75),l=W(e.opacity,.18,.02,.8),a=(t-n)/2,s=(r-i)/2,c=t/2,p=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(${o} ${c} ${p})"><image href="${ce(e.image)}" x="${a}" y="${s}" width="${n}" height="${i}" preserveAspectRatio="xMidYMid meet"/></g></svg>`;const h=ce(e.text||"Flyfish Viewer"),m=W(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(${o} ${c} ${p})"><text x="${c}" y="${p}" text-anchor="middle" dominant-baseline="middle" fill="${ce(e.color||"#355070")}" font-family="${ce(e.fontFamily||"Aptos, 'Segoe UI', sans-serif")}" font-size="${m}" font-weight="700">${h}</text></g></svg>`},Mn=e=>{const t=Cn(e);return t?On(Dn(t)):""},Pn=e=>{const t=Mn(e);return t?`position:absolute;inset:0;pointer-events:none;background-image:${t};background-repeat:repeat;z-index:20;`:""};oe(),ye();var ne=async(e,t,r,n,i,o,l)=>{const a=Rt({phase:r,source:n,version:i,timestamp:Date.now(),startedAt:o,reason:l});await an(a,e.hooks,s=>{throw s}),t==null||t({type:r,payload:a})},Zt=(e,t)=>t.rendererMode==="replace"?de([]):e.registry?e.registry:Bt({builtinRenderers:t.builtinRenderers}).registry,Wt=e=>{const t=e.autoRenderers;return typeof t=="boolean"?t:(t==null?void 0:t.enabled)!==void 0?t.enabled:(e.rendererMode||"extend")!=="replace"},Nn=(e,t)=>{const r=e.ownerDocument,n=Tt(t),i=r.createElement("div");i.className="file-viewer-missing-renderer",i.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 o=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 a=r.createElement("p");a.textContent=n.description||"当前内置 renderer 配置没有加载该格式。请安装并传入对应 @file-viewer/renderer-* 包,或使用 @file-viewer/preset-all。",a.style.cssText="max-width:520px;margin:0;",o.append(l,a),i.append(o),e.replaceChildren(i)},Hn=(e,t={})=>{let r=t.options||{},n=Zt(t,r),i,o=r.rendererMode||"extend",l=r.builtinRenderers||"all",a=Wt(r),s=-1,c=null;const p=xn(),h=yn(),m={anchors:{value:[]},state:ie()},y=async()=>{const v=r.rendererMode||"extend",g=r.renderers,E=r.builtinRenderers||"all",u=Wt(r),f=u?Jr():0;if(v===o&&g===i&&E===l&&u===a&&f===s)return;n=Zt(t,r),o=v,i=g,l=E,a=u,s=f;const w=[];u&&w.push(...Yr()),g&&w.push(g);const x=Ae(w);if(!x.length)return;await Gr({registry:n,plugins:x,registerHandler:L=>{const C=n.getById(L.rendererId);C&&n.register({...C,load:Lt({handler:L.handler,getTarget:z=>z.surface.container})})}})},S=()=>Rt({phase:"load-complete",source:c||gt({}),version:h.getCurrentVersion(),timestamp:Date.now()}),d=async v=>cn({context:nn(v,S()),options:r,onBefore:g=>{var E;(E=t.onEvent)===null||E===void 0||E.call(t,{type:"operation-before",payload:g})},onCancel:g=>{var E;(E=t.onEvent)===null||E===void 0||E.call(t,{type:"operation-cancel",payload:g})},onError(g){throw g}}),b=v=>typeof v=="string"?v:Pn(r.watermark),_=v=>{const g=v||(c==null?void 0:c.extension)||"",E=n.getByExtension(g);return E?Kr(E,p.session):Qr(g)},R=()=>{var v;(v=t.onEvent)===null||v===void 0||v.call(t,{type:"operation-availability-change",payload:_()})},P=(v=k.getState())=>{var g;(g=t.onEvent)===null||g===void 0||g.call(t,{type:"zoom-change",payload:v})},k=pt({root:()=>e,beforeZoom:d}),F=Er({root:()=>e,searchTarget:m,searchOptions:()=>r.search,getAiOptions:()=>r.ai,onSearchChange:v=>{var g;(g=t.onEvent)===null||g===void 0||g.call(t,{type:"search-change",payload:v})},onLocationChange:v=>{var g;(g=t.onEvent)===null||g===void 0||g.call(t,{type:"location-change",payload:v})}});k.observe();const X=async(v="replace")=>{var g,E;if(!c)return;const u=c,f=Date.now(),w=h.getCurrentVersion();await ne(r,t.onEvent,"unload-start",u,w,f,v),await((E=(g=p.session)===null||g===void 0?void 0:g.destroy)===null||E===void 0?void 0:E.call(g)),c=null,re(p,{session:null,exportAdapter:null}),await F.clearDocumentState(),k.clearProvider(),R(),P(),await ne(r,t.onEvent,"unload-complete",u,w,f,v)};return{container:e,async load(v){await X("replace"),await y();const g=gt(v);c=g;const E=h.requestController.createVersion(),u=n.getByExtension(g.extension),f=Date.now();if(await ne(r,t.onEvent,"load-start",g,E,f),!(u!=null&&u.load))return Nn(e,g.extension),re(p,{session:null}),R(),P(),await ne(r,t.onEvent,"load-complete",g,E,f),null;const w=await u.load({source:g,surface:{container:e},options:r,signal:t.signal,registerExportAdapter:x=>{re(p,{exportAdapter:x})}});return re(p,{session:w}),k.refreshProvider(),await F.refreshDocumentIndex({notify:!1}),R(),P(),await ne(r,t.onEvent,"load-complete",g,E,f),w},async destroy(v="component-unmount"){await X(v),F.destroyDocumentFeatures(),k.destroy()},updateOptions(v){r={...r,...v}},getCapabilities(v){return _(v)},getRenderer(v){return n.getByExtension(v||(c==null?void 0:c.extension)||"")},getSource(){return c},registerExportAdapter(v){re(p,{exportAdapter:v})},getExportAdapter(){return p.exportAdapter},async download(v={}){const g=$r(c);await Zr({source:g,filename:v.filename||Z({source:g,fallback:Et}),beforeOperation:d})},async exportHtml(v={}){return Wr({source:e,adapter:p.exportAdapter,download:v.download,filename:v.filename||Z({filename:se(c),fallback:"preview"}),title:v.title||Z({filename:se(c),fallback:"file-viewer-preview"}),watermarkInlineStyle:b(v.watermarkInlineStyle),beforeOperation:d})},async print(v={}){await jr({source:e,adapter:p.exportAdapter,autoPrint:v.autoPrint,openWindow:v.openWindow,printWindow:v.printWindow,title:v.title||Z({filename:se(c),fallback:"file-viewer-preview"}),watermarkInlineStyle:b(v.watermarkInlineStyle),printAvailable:_().print,beforeOperation:d})},async zoomIn(){const v=await k.zoomIn();return P(v),v},async zoomOut(){const v=await k.zoomOut();return P(v),v},async resetZoom(){const v=await k.resetZoom();return P(v),v},getZoomState(){return k.getState()},search(v){return F.searchDocument(v)},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(v){return F.scrollToLoadedAnchor(v)},scrollToLine(v){return F.scrollToLine(v)},getDocumentTextChunks(v){return F.getDocumentTextChunks(v)}}};ye(),G();var $n=()=>typeof window!="undefined"&&typeof document!="undefined",ke=(e={})=>!!(e.url||e.file||e.buffer),Te=(e={})=>({url:e.url,file:e.file,buffer:e.buffer,filename:e.filename||e.name,name:e.name,type:e.type,size:e.size}),Bn=()=>typeof fetch=="function",Un=async({url:e,signal:t})=>{if(!Bn())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=>U(e.filename||e.name||Mr({file:e.file,url:e.url,fallback:"preview.bin"}),e.type?`preview.${e.type}`:j),Wn=async(e,t={})=>{var r,n,i;const o=Zn(e),l=e.type||te(o);if(e.buffer)return{buffer:e.buffer,filename:o,type:l,size:(r=e.size)!==null&&r!==void 0?r:e.buffer.byteLength,url:e.url};if(e.file){const a=bt(e.file,o);return{file:a,buffer:await yt(a),filename:a.name||o,type:l||te(a.name),size:(n=e.size)!==null&&n!==void 0?n:a.size,url:e.url}}if(e.url){const a=await(t.fetchFile||Un)({url:e.url,signal:t.signal,source:e});if(!a)throw new Error("Downloaded file is empty.");const s=bt(a,o);return{file:s,buffer:await yt(s),filename:s.name||o,type:l||te(s.name),size:(i=e.size)!==null&&i!==void 0?i:s.size,url:e.url}}return{filename:o,type:l}},jt=(e,t)=>({load(r){var n,i;return(i=(n=e())===null||n===void 0?void 0:n.load(r))!==null&&i!==void 0?i:Promise.resolve()},update(r){var n,i;return(i=(n=e())===null||n===void 0?void 0:n.update(r))!==null&&i!==void 0?i:Promise.resolve()},reload(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.reload())!==null&&n!==void 0?n:Promise.resolve()},destroy(){t()},getController:e,getApi(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.getApi())!==null&&n!==void 0?n:null},downloadOriginalFile(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.downloadOriginalFile())!==null&&n!==void 0?n:Promise.resolve()},printRenderedHtml(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.printRenderedHtml())!==null&&n!==void 0?n:Promise.resolve()},exportRenderedHtml(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.exportRenderedHtml())!==null&&n!==void 0?n:Promise.resolve()},zoomIn(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.zoomIn())!==null&&n!==void 0?n:Promise.resolve(null)},zoomOut(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.zoomOut())!==null&&n!==void 0?n:Promise.resolve(null)},resetZoom(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.resetZoom())!==null&&n!==void 0?n:Promise.resolve(null)},searchDocument(r){var n,i;return(i=(n=e())===null||n===void 0?void 0:n.searchDocument(r))!==null&&i!==void 0?i:Promise.resolve(null)},clearDocumentSearch(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.clearDocumentSearch())!==null&&n!==void 0?n:Promise.resolve(null)},nextSearchResult(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.nextSearchResult())!==null&&n!==void 0?n:Promise.resolve(null)},previousSearchResult(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.previousSearchResult())!==null&&n!==void 0?n:Promise.resolve(null)},collectDocumentAnchors(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.collectDocumentAnchors())!==null&&n!==void 0?n:Promise.resolve([])},scrollToAnchor(r){var n,i;return(i=(n=e())===null||n===void 0?void 0:n.scrollToAnchor(r))!==null&&i!==void 0?i:Promise.resolve(!1)},scrollToLine(r){var n,i;return(i=(n=e())===null||n===void 0?void 0:n.scrollToLine(r))!==null&&i!==void 0?i:Promise.resolve(!1)},getDocumentTextChunks(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.getDocumentTextChunks())!==null&&n!==void 0?n:[]},getOperationAvailability(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.getOperationAvailability())!==null&&n!==void 0?n:null},getZoomState(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.getZoomState())!==null&&n!==void 0?n:null},getSearchState(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.getSearchState())!==null&&n!==void 0?n:null},getState(){var r,n;return(n=(r=e())===null||r===void 0?void 0:r.getState())!==null&&n!==void 0?n:null},subscribe(r){var n,i;return(i=(n=e())===null||n===void 0?void 0:n.subscribe(r))!==null&&i!==void 0?i:(()=>{})}}),I=async(e,t,r)=>e?t(e):r,jn=e=>!!(e&&typeof e=="object"&&e.name==="AbortError"),qt=(e,t={},r={})=>{if(!$n())throw new Error("Flyfish File Viewer can only be mounted in a browser DOM environment.");let n=!1,i=t,o=ke(i)?Te(i):null,l=null;const a=new Set,s={loading:!1,ready:!1,error:null,lastEvent:null,lifecycle:null,availability:null,search:null,zoom:null,location:null},c=()=>({...s,search:s.search?{...s.search,matches:[...s.search.matches]}:null}),p=d=>{var b;const _=c();(b=i.onStateChange)===null||b===void 0||b.call(i,_,d),a.forEach(R=>R(_,d))},h=d=>{var b;s.lastEvent=d,d.type==="load-start"?(s.loading=!0,s.ready=!1,s.error=null,s.lifecycle=d.payload):d.type==="load-complete"?(s.loading=!1,s.ready=!0,s.lifecycle=d.payload):d.type==="unload-start"?(s.loading=!0,s.ready=!1,s.lifecycle=d.payload):d.type==="unload-complete"?(s.loading=!1,s.ready=!1,s.lifecycle=d.payload):d.type==="operation-availability-change"?s.availability=d.payload:d.type==="search-change"?s.search=d.payload:d.type==="location-change"?s.location=d.payload:d.type==="zoom-change"&&(s.zoom=d.payload),(b=i.onEvent)===null||b===void 0||b.call(i,d),p(d)},m=Hn(e,{registry:r.registry,options:i.options,onEvent:h}),y=()=>{l==null||l.abort(),l=null},S=async d=>{var b;y(),o=d,l=typeof AbortController!="undefined"?new AbortController:null;const _=l;try{s.loading=!0,s.error=null,p();const R=await Wn(d,{fetchFile:r.fetchFile,signal:_==null?void 0:_.signal});return await m.load(R)}catch(R){if(jn(R)&&(_!=null&&_.signal.aborted))return null;throw s.loading=!1,s.ready=!1,s.error=R,p(),(b=r.onError)===null||b===void 0||b.call(r,R,d),R}finally{l===_&&(l=null)}};return o&&S(o),{container:e,async load(d){n||(i=d,m.updateOptions(i.options||{}),ke(i)&&await S(Te(i)))},async update(d={}){var b;n||(i={...i,...d,options:(b=d.options)!==null&&b!==void 0?b:i.options},m.updateOptions(i.options||{}),ke(i)?await S(Te(i)):(o=null,await m.load({filename:j})))},async reload(){n||o&&await S(o)},destroy(){n||(n=!0,y(),m.destroy("component-unmount"),e.innerHTML="")},getApi(){return m},downloadOriginalFile(){return I(m,d=>d.download(),void 0)},printRenderedHtml(){return I(m,d=>d.print(),void 0)},exportRenderedHtml(){return I(m,d=>d.exportHtml({download:!0}).then(()=>{}),void 0)},zoomIn(){return I(m,d=>d.zoomIn(),null)},zoomOut(){return I(m,d=>d.zoomOut(),null)},resetZoom(){return I(m,d=>d.resetZoom(),null)},searchDocument(d){return I(m,b=>b.search(d),null)},clearDocumentSearch(){return I(m,d=>d.clearSearch(),null)},nextSearchResult(){return I(m,d=>d.nextSearchResult(),null)},previousSearchResult(){return I(m,d=>d.previousSearchResult(),null)},collectDocumentAnchors(){return I(m,d=>d.collectDocumentAnchors(),[])},scrollToAnchor(d){return I(m,b=>b.scrollToDocumentAnchor(d),!1)},scrollToLine(d){return I(m,b=>b.scrollToLine(d),!1)},getDocumentTextChunks(){return m.getDocumentTextChunks()},getOperationAvailability(){return m.getCapabilities()},getZoomState(){return m.getZoomState()},getSearchState(){return m.getSearchState()},getState(){return c()},subscribe(d){return a.add(d),d(c()),()=>{a.delete(d)}}}},Ve="flyfish-file-viewer",qn=typeof HTMLElement=="undefined"?class{}:HTMLElement,Xn=["src","url","filename","name","type","size","theme","toolbar","toolbar-position","watermark","search","options"],Le=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},Xt=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}},Yt=(...e)=>{const t=e.filter(Boolean);if(t.length)return Object.assign({},...t)},ze=(e,t)=>({...e,...t,options:t.options===void 0?e.options:Yt(e.options,t.options)}),Jt=(e,t)=>{for(const r of new Set(e.filter(Boolean)))r==null||r(t)},Yn=e=>`viewer-${e.type}`,ve=class extends qn{constructor(){super(...arguments),this.mountNode=null,this.controller=null,this.pendingUpdate=!1,this.mountOptions={},this.internalCoreOptions={}}static get observedAttributes(){return[...Xn]}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:Xt(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=ze(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=ze(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(t=(e=this.controller)===null||e===void 0?void 0:e.reload())!==null&&t!==void 0?t: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(t=(e=this.controller)===null||e===void 0?void 0:e.getApi())!==null&&t!==void 0?t:null}downloadOriginalFile(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.downloadOriginalFile())!==null&&t!==void 0?t:Promise.resolve()}printRenderedHtml(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.printRenderedHtml())!==null&&t!==void 0?t:Promise.resolve()}exportRenderedHtml(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.exportRenderedHtml())!==null&&t!==void 0?t:Promise.resolve()}zoomIn(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.zoomIn())!==null&&t!==void 0?t:Promise.resolve(null)}zoomOut(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.zoomOut())!==null&&t!==void 0?t:Promise.resolve(null)}resetZoom(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.resetZoom())!==null&&t!==void 0?t:Promise.resolve(null)}searchDocument(e){var t,r;return(r=(t=this.controller)===null||t===void 0?void 0:t.searchDocument(e))!==null&&r!==void 0?r:Promise.resolve(null)}clearDocumentSearch(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.clearDocumentSearch())!==null&&t!==void 0?t:Promise.resolve(null)}nextSearchResult(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.nextSearchResult())!==null&&t!==void 0?t:Promise.resolve(null)}previousSearchResult(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.previousSearchResult())!==null&&t!==void 0?t:Promise.resolve(null)}collectDocumentAnchors(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.collectDocumentAnchors())!==null&&t!==void 0?t:Promise.resolve([])}scrollToAnchor(e){var t,r;return(r=(t=this.controller)===null||t===void 0?void 0:t.scrollToAnchor(e))!==null&&r!==void 0?r:Promise.resolve(!1)}scrollToLine(e){var t,r;return(r=(t=this.controller)===null||t===void 0?void 0:t.scrollToLine(e))!==null&&r!==void 0?r:Promise.resolve(!1)}getDocumentTextChunks(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.getDocumentTextChunks())!==null&&t!==void 0?t:[]}getOperationAvailability(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.getOperationAvailability())!==null&&t!==void 0?t:null}getZoomState(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.getZoomState())!==null&&t!==void 0?t:null}getSearchState(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.getSearchState())!==null&&t!==void 0?t:null}getState(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.getState())!==null&&t!==void 0?t:null}subscribe(e){var t,r;return(r=(t=this.controller)===null||t===void 0?void 0:t.subscribe(e))!==null&&r!==void 0?r:(()=>{})}setMountOptions(e){this.mountOptions=ze(this.mountOptions,e),this.scheduleUpdate()}mount(){if(this.controller||!this.isConnected)return;const e=this.ensureMountNode();try{this.controller=qt(e,this.createEffectiveMountOptions(),{registry:Ut,...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:Yt(e.options,t.options),onEvent:i=>{Jt(r,i),this.dispatchViewerEvent(i)},onStateChange:(i,o)=>{Jt(n.map(l=>l?a=>l(a,o):void 0),i),this.dispatchTypedEvent("viewer-state-change",{state:i,event:o})}}}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,i=Xt(this.getAttribute("size")),o=this.readAttributeViewerOptions();return{...e?{url:e}:{},...t?{filename:t}:{},...r?{name:r}:{},...n?{type:n}:{},...i===void 0?{}:{size:i},...o?{options:o}:{}}}readAttributeViewerOptions(){const e=ue(this.getAttribute("options"))||{},t=this.getAttribute("theme");t&&(e.theme=t);const r=this.getAttribute("toolbar"),n=ue(r),i=Le(r);n!==void 0?e.toolbar=n:i!==void 0&&(e.toolbar=i);const o=this.getAttribute("toolbar-position");o&&(e.toolbar={...typeof e.toolbar=="object"&&e.toolbar?e.toolbar:{},position:o});const l=this.getAttribute("watermark"),a=ue(l),s=Le(l);a!==void 0?e.watermark=a:s!==void 0?e.watermark=s:l&&(e.watermark={enabled:!0,text:l});const c=this.getAttribute("search"),p=ue(c),h=Le(c);return p!==void 0?e.search=p:h!==void 0&&(e.search=h),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(Yn(e),e)}dispatchError(e){this.dispatchTypedEvent("viewer-error",{error:e})}dispatchTypedEvent(e,t){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:t}))}},Oe=(e=Ve)=>{if(typeof window=="undefined"||!window.customElements)return;const t=window.customElements.get(e);return t||(window.customElements.define(e,ve),ve)},Gt=(e,t={},r={})=>qt(e,t,{registry:Ut,...r}),Kt={createViewerControllerHandle:jt,defineFileViewerElement:Oe,FileViewerElement:ve,FILE_VIEWER_ELEMENT_TAG:Ve,mountViewer:Gt};typeof window!="undefined"&&(window.FlyfishFileViewerWeb=Kt,Oe()),H.FILE_VIEWER_ELEMENT_TAG=Ve,H.FileViewerElement=ve,H.createViewerControllerHandle=jt,H.default=Kt,H.defineFileViewerElement=Oe,H.mountViewer=Gt})(this.FlyfishFileViewerWeb=this.FlyfishFileViewerWeb||{});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flyfish-group/file-viewer-web",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Private-deploy pure web component for Flyfish Viewer",
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"README.en.md"
|
|
68
68
|
],
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@file-viewer/web": "^2.1.
|
|
70
|
+
"@file-viewer/web": "^2.1.2"
|
|
71
71
|
},
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"@types/node": "^25.8.0",
|