PageSourceSearch

https://elysiatools.com/_next/static/chunks/7118.e0d3ec9fe90bd3fd.js

js elysiatools.com collected 2026-09-24 13:49:47 UTC 123,246 bytes, 6 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7118],{20810:(e,t,r)=>{r.d(t,{pq:()=>m,QF:()=>s,XS:()=>p,e5:()=>l,LV:()=>b,MA:()=>c,R_:()=>d}),new WeakMap;let a=new WeakMap,i=new WeakMap,o=e=>!!e&&1===e.nodeType,n=(e,t)=>{if(!(null==e?void 0:e.querySelectorAll))return[];let r=Array.from(e.querySelectorAll(t));for(let a of(o(e)&&e.shadowRoot&&r.push(...n(e.shadowRoot,t)),Array.from(e.querySelectorAll("*"))))a.shadowRoot&&r.push(...n(a.shadowRoot,t));return r},l=(e,t)=>{a.set(e,t),e.dataset.viewerZoomProvider=e.dataset.viewerZoomProvider||"custom",e.__flyfishViewerZoomProvider=t},d=e=>{e&&(a.delete(e),delete e.dataset.viewerZoomProvider,delete e.__flyfishViewerZoomProvider)},s=e=>{if(!e)return null;let t=o(e)?a.get(e)||e.__flyfishViewerZoomProvider:null;if(t)return t;let r=n(e,"[data-viewer-zoom-provider]")[0];return r&&(a.get(r)||r.__flyfishViewerZoomProvider)||null},p=(e,t)=>{i.set(e,t),e.dataset.viewerViewStateProvider=e.dataset.viewerViewStateProvider||"custom",e.__flyfishViewerViewStateProvider=t},c=e=>{e&&(i.delete(e),delete e.dataset.viewerViewStateProvider,delete e.__flyfishViewerViewStateProvider)},m=e=>{if(!e)return null;let t=o(e)?i.get(e)||e.__flyfishViewerViewStateProvider:null;if(t&&(!o(e)||"generic"!==e.dataset.viewerViewStateProvider))return t;let r=n(e,"[data-viewer-view-state-provider]"),a=r.find(e=>"generic"!==e.dataset.viewerViewStateProvider),l=r.find(e=>"generic"===e.dataset.viewerViewStateProvider),d=a||l;return d?i.get(d)||d.__flyfishViewerViewStateProvider||null:t||null},u=["auto","scroll","overlay"],g=e=>Math.max(0,e.scrollHeight-e.clientHeight),h=(e,t={})=>{var r,a;let i=null!=(r=t.minScrollRange)?r:2;if(g(e)<=i)return!1;let o=null==(a=e.ownerDocument)?void 0:a.defaultView,n=(null==o?void 0:o.getComputedStyle)?o:"undefined"!=typeof window?window:void 0;if(!(null==n?void 0:n.getComputedStyle))return!1;let l=n.getComputedStyle(e),d=l.overflowY||l.overflow;return(t.overflowValues||u).includes(d)},b=(e,t={})=>{if(!e)return null;let r=t.preferredSelector||"[data-viewer-scroll-container], .pdf-wrapper",a=t.candidateSelector||"div, section, article, pre",i=e.querySelector(r);return i&&h(i,t)?i:h(e,t)?e:Array.from(e.querySelectorAll(a)).filter(e=>h(e,t)).sort((e,t)=>g(t)-g(e))[0]||i||e}},29737:(e,t,r)=>{r.d(t,{Nx:()=>s,li:()=>l,Ck:()=>d});let a="zh-CN",i="en-US",o=Object.freeze({"zh-CN":{"toolbar.zoomGroup":"缩放控制","toolbar.zoomOut":"缩小预览","toolbar.zoomIn":"放大预览","toolbar.zoomReset":"还原比例","toolbar.download":"下载","toolbar.downloadTitle":"下载原始文件","toolbar.print":"打印","toolbar.printTitle":"打印完整渲染内容","toolbar.printDirect":"直接打印","toolbar.printMask":"掩膜打印","toolbar.printMaskTitle":"遮盖敏感区域后再打印","toolbar.printMaskAdd":"添加掩膜","toolbar.printMaskClear":"清空","toolbar.printMaskCancel":"取消","toolbar.printMaskConfirm":"确认打印","toolbar.printMaskHint":"拖拽绘制黑色遮盖块,可删除后继续调整","toolbar.exportHtml":"HTML","toolbar.exportHtmlTitle":"导出当前渲染后的 HTML","toolbar.search":"搜索","toolbar.searchPlaceholder":"搜索文档","toolbar.searchPrevious":"上一个匹配","toolbar.searchNext":"下一个匹配","toolbar.searchClear":"清除搜索","toolbar.theme":"主题","toolbar.themeToLight":"切换为浅色模式","toolbar.themeToDark":"切换为深色模式","state.ready.title":"预览完成","state.ready.message":"文件内容已完成渲染。","state.empty.title":"暂无文件","state.empty.message":"请选择文件或提供可访问的文件地址后开始预览。","state.unsupported.install.title":"需要装配预览能力","state.unsupported.install.message":"{extension} 格式已在支持矩阵中,但当前项目尚未装配 {rendererLabel} renderer。","state.unsupported.install.description":"推荐安装 {presetPackage},通过 options.preset / options.renderers 注入对应能力{rendererTip};Vite 项目也可以使用 @file-viewer/vite-plugin 自动发现已安装 preset。","state.unsupported.title":"暂不支持在线预览","state.unsupported.message":"不支持{extension}格式的在线预览,请下载后预览或转换为支持的格式。","state.unsupported.description":"支持 Office、PDF、OFD、Typst、压缩包、邮件、OLB/DRA、CAD、地理数据、3D 模型、Excalidraw、draw.io、EPUB、UMD、Markdown、代码/文本、图片、音视频、字体和数据资产的在线预览","state.error.title":"预览失败","preview.downloading":"正在下载文件资源...","preview.streamingPdf":"正在建立 PDF 流式预览...","preview.reading":"正在解析文件内容...","error.download":"下载失败","error.print":"打印失败","error.exportHtml":"导出 HTML 失败","error.noDownloadSource":"当前没有可下载的源文件","error.noExportContent":"当前没有可导出的预览内容","error.printUnavailable":"当前文件类型不支持完整打印,请下载原文件后在本地应用中打印","error.printWindowBlocked":"浏览器拦截了打印窗口","error.remoteDownload":"文件下载失败","error.localRead":"读取文件异常","error.load":"加载文件异常","error.stream":"加载 PDF 流式预览异常","error.beforeOperation":"操作前置校验失败","error.unknown":"未知错误","error.blobUnavailable":"当前运行环境不支持 Blob,无法读取文件内容。","error.sourceUnsupported":"不支持当前文件来源输入。","error.fileReadArrayBuffer":"读取文件二进制内容失败。","error.fileReadDataUrl":"读取文件 Data URL 失败。","error.fileReadText":"读取文件文本内容失败。","error.imageDataUrlRead":"读取图片数据失败。","operation.download":"下载原始文件","operation.print":"打印完整渲染内容","operation.exportHtml":"导出渲染 HTML","operation.zoomIn":"放大预览","operation.zoomOut":"缩小预览","operation.zoomReset":"还原预览比例","pdf.toolbar.toggleNavigation":"切换导航窗格","pdf.toolbar.previousPage":"上一页","pdf.toolbar.nextPage":"下一页","pdf.toolbar.fitWidth":"适合宽度","pdf.toolbar.zoomOut":"缩小","pdf.toolbar.zoomIn":"放大","pdf.toolbar.rotateLeft":"向左旋转","pdf.toolbar.rotateRight":"向右旋转","pdf.nav.typeLabel":"PDF 导航类型","pdf.nav.pagesTab":"页面","pdf.nav.outlineTab":"目录","pdf.nav.pagesTitle":"页面导航","pdf.nav.outlineTitle":"目录导航","pdf.nav.pageCount":"{count} 页","pdf.nav.itemCount":"{count} 项","pdf.nav.pageLabel":"第 {page} 页","pdf.nav.outlineEmpty":"当前 PDF 没有可用目录","pdf.nav.outlineFallbackTitle":"目录 {index}","pdf.thumbnail.alt":"第 {page} 页缩略图","pdf.state.loading":"正在加载 PDF...","pdf.error.browserWindow":"PDF 预览需要浏览器窗口","pdf.error.missingSource":"PDF 缺少可读取的数据源","pdf.error.loadFailed":"PDF 加载失败","pdf.error.notLoaded":"PDF 尚未加载完成,请稍后再试","pdf.error.unloaded":"PDF 已卸载,无法继续打印","pdf.error.canvasUnavailable":"当前浏览器无法创建 PDF 打印画布","pdf.export.pageTitle":"{title} - 第 {page} 页","spreadsheet.loading.kicker":"Excel 表格","spreadsheet.loading.title":"正在解析 Excel 工作簿","spreadsheet.loading.hint":"正在准备工作表、样式和大数据视口,请稍候。","spreadsheet.loading.streaming":"正在平滑补充可视区数据","spreadsheet.tabs.ariaLabel":"工作表列表","spreadsheet.state.parsingWorkbook":"正在解析 Excel 工作簿,请耐心等待...","spreadsheet.state.preparingSheet":"正在准备工作表内容...","spreadsheet.state.preparingSheetNamed":"正在准备「{name}」...","spreadsheet.state.cachedRows":"已缓存 {cached} / {total}
1 行","spreadsheet.state.rows":"共 {rows} 行,按视口预取平滑加载","spreadsheet.state.rowsAndColumns":"共 {rows} 行,{cols} 列,按视口预取平滑加载","spreadsheet.error.parseFailed":"Excel 解析失败","spreadsheet.error.workerFailed":"Excel Worker 运行失败","word.error.invalidDocx":"文件不是有效的 DOCX/OOXML 压缩包,可能下载不完整或被服务端错误内容替换,请重新上传或检查文件源。","word.error.missingOdfContent":"ODF 文件缺少 content.xml。","word.error.odfXmlParseFailed":"ODF XML 解析失败。","word.title.rtf":"RTF 文档预览","word.title.openDocumentPresentation":"OpenDocument 演示文稿预览","word.title.openDocumentText":"OpenDocument 文档预览","word.page.fallback":"第 {page} 页","word.page.empty":"该页没有可提取文本","word.body":"正文","word.body.empty":"没有提取到可读文本","ofd.state.loading":"正在解析 OFD...","ofd.error.empty":"OFD 文件中没有可渲染的文档","ofd.error.parseFailed":"OFD 文件解析失败","presentation.state.loading":"正在解析 PPTX...","presentation.error.title":"PPTX 预览失败","presentation.error.parseFailed":"PPTX 解析失败","presentation.ppt.state.loading":"正在解析 PowerPoint 97–2003...","presentation.ppt.error.title":"PPT 预览失败","presentation.ppt.error.parseFailed":"无法解析这个 PPT 文件。","presentation.ppt.error.assetHint":"请检查 @file-viewer/ppt 模块、pptWasmUrl、application/wasm MIME 类型、Web Crypto 和 CSP 配置。","archive.error.nestedUnsupported":"不支持 .{type} 格式的在线预览,请下载后预览或转换为支持的格式","archive.loading.readingDirectory":"正在读取压缩包目录...","archive.loading.readingDirectoryHint":"大文件会在 Worker 中解析,避免阻塞主线程。","archive.
1search.placeholder":"筛选压缩包内文件","archive.sidebar.hide":"隐藏压缩包文件列表","archive.sidebar.show":"显示压缩包文件列表","archive.preview.title":"压缩包内预览","archive.preview.chooseFile":"请选择一个文件","archive.preview.downloadFile":"下载文件","archive.error.title":"压缩包预览提示","archive.stats.summary":"{count} 个文件 \xb7 {size} \xb7 {previewable} 个可直接预览","archive.warning.encrypted":"检测到加密内容,输入正确密码后即可预览;密码仅在当前会话中传递给 libarchive Worker。","archive.password.title":"请输入压缩包密码","archive.password.description":"该压缩包包含加密内容,需要密码才能继续读取目录或预览内部文件。","archive.password.placeholder":"压缩包密码","archive.password.invalid":"密码不正确或无法解密,请重新输入。","archive.password.required":"请输入密码后继续。","archive.password.cancel":"取消","archive.password.confirm":"解锁预览","archive.error.passwordRequired":"已取消输入密码,无法预览加密压缩包。","archive.error.encryptedRequiresWorker":"该压缩包包含加密内容,需要发布 libarchive Worker/WASM 后才能在线解密预览。","archive.empty.title":"选择左侧文件即可预览","archive.empty.message":"压缩包只读取目录;文件内容会在点击后按需解压,并在体积允许时缓存到 IndexedDB。","archive.loading.initializingCandidate":"正在初始化 {label}...","archive.loading.initializingCandidateHint":"如果当前服务器没有正确发布 Worker/WASM,会自动切换兼容模式。","archive.error.candidateInitTimeout":"{label} 初始化超时","archive.error.encryptedCheckTimeout":"{label} 加密检测超时","archive.loading.directoryReadyHint":"目录读取完成后,点击内部文件才会按需解压。","archive.error.candidateReadTimeout":"{label} 读取目录超时","archive.loading.workerFallback":"Worker 不可用,正在切换 ZIP/TAR 兼容模式...","archive.loading.workerFallbackHint":"兼容模式无需额外静态 Worker,适合手机 WebView 或本地临时服务器。","archive.notice.workerFallback":"当前环境的 libarchive Worker 未能启动,已自动切换到 ZIP/TAR/GZIP 兼容模式。RAR、7z 等格式仍建议发布 vendor/libarchive/worker-bundle.js 与 libarchive.wasm。","archive.error.tooLarge":"压缩包体积 {size} 超过安全上限 {limit},请下载后在本地解压。","archive.loading.initializingWorker":"正在初始化压缩包解析 Worker...","archive.loading.initializingWorkerHint":"大文件会在 Worker 中解析,避免阻塞主线程。","archive.error.workerInitFailed":"压缩包 Worker 初始化失败","archive.error.workerUnsupported":"当前浏览器不支持 Web Worker。","archive.error.indexedDbUnavailable":"IndexedDB 不可用","archive.error.entryTooLarge":"压缩包内文件 {name} 体积 {size} 超过预览上限 {limit}。","archive.loading.extracting":"正在按需解压 {name}...","archive.loading.rendering":"正在渲染 {name}...","archive.loading.exporting":"正在导出 {name}...","media.audio.title":"音频预览","media.audio.description":"使用浏览器原生播放器打开,兼容性取决于当前浏览器支持的音频编码。","media.audio.unsupported":"当前浏览器不支持音频播放。","media.video.title":"视频预览","media.video.unsupported":"当前浏览器不支持该视频格式。","media.video.hlsHint":"HLS 会优先使用原始 URL 加载分片;如果传入的是本地单文件清单,请确保分片地址可被浏览器访问。","media.midi.title":"MIDI 文件","media.midi.loading":"正在解析 MIDI 轨道...","media.midi.trackHeader":"轨道","media.midi.instrumentHeader":"乐器","media.midi.channelHeader":"通道","media.midi.noteCountHeader":"音符数","media.midi.durationHeader":"时长","media.midi.durationStat":"时长","media.midi.trackStat":"轨道","media.midi.noteStat":"音符","media.midi.parseFailed":"MIDI 解析失败","email.mbox.subject":"{filename} \xb7 第 1 封","email.mbox.summary":"MBOX 共识别 {count} 封邮件,当前展示第 1 封。","email.error.title":"邮件预览提示","email.meta.from":"发件人","email.meta.to":"收件人","email.meta.cc":"抄送","email.meta.date":"时间","email.tabs.text":"正文","email.tabs.headers":"头信息","email.attachments.title":"附件","email.attachments.empty":"暂无附件","email.attachments.download":"下载附件","email.attachments.opening":"正在打开附件 {name}...","email.attachments.nestedUnavailable":"当前运行环境未提供附件嵌套预览入口ï¼
1Œè¯·ä¸‹è½½ {name} 后查看。","email.loading.parsing":"正在解析邮件...","data.font.sample":"Flyfish Viewer 轻量预览 AaBbCc 1234567890","data.error.fontFaceUnsupported":"当前浏览器不支持 FontFace API","data.title.font":"字体文件预览","data.title.sqlite":"SQLite 数据库预览","data.title.parquet":"Parquet 列式数据预览","data.title.avro":"Avro 对象容器预览","data.title.wasm":"WebAssembly 模块预览","data.title.eps":"EPS 矢量文件摘要","data.title.ai":"Illustrator 文件摘要","data.title.webarchive":"WebArchive 摘要预览","data.title.summary":"数据资产摘要","data.label.format":"格式","data.label.size":"大小","data.label.rendering":"渲染方式","data.label.objects":"对象数","data.label.sampleTable":"示例表","data.label.rows":"行数","data.label.columns":"列数","data.label.sampleRows":"示例行","data.label.imports":"导入","data.label.exports":"导出","data.label.magic":"Magic","data.label.note":"说明","data.label.container":"容器","data.value.schemaRead":"已读取","data.value.schemaUnread":"未读取","data.note.aiSummary":"非 PDF-compatible AI 按摘要展示","data.note.postscriptSummary":"PostScript 摘要展示","data.note.webarchive":"安全提取可读片段,不执行网页脚本","data.image.alt":"资产预览","psd.title":"PSD 图层预览","psd.action.fit":"适合","psd.action.showAll":"全显","psd.action.hideAll":"全隐","psd.layers.title":"图层","psd.layers.redrawable":"{count} 可重绘","psd.layers.empty":"未发现可展示图层,使用合成图预览。","psd.layers.hidden":"隐藏","drawing.error.viewerLoadFailed":"diagrams.net viewer 加载失败","drawing.error.excalidrawEmpty":"Excalidraw 文件中没有可预览图元","drawing.error.excalidrawTimeout":"Excalidraw SVG 导出超时,自动切换 rough.js 兼容渲染","drawing.error.drawioParseFailed":"Draw.io XML 解析失败:{message}","drawing.error.drawioNoModel":"当前 Draw.io 文件没有可直接渲染的 mxGraphModel。","drawing.error.drawioNoElements":"当前 Draw.io 文件没有可预览图元。","drawing.error.viewerInitFailed":"diagrams.net viewer 未正确初始化","drawing.error.drawioTimeout":"diagrams.net 官方 Viewer 加载超时,自动切换本地 SVG 预览","drawing.error.svgParseFailed":"SVG 解析失败","drawing.error.plantumlRenderFailed":"PlantUML SVG 渲染失败:{status}","drawing.title.excalidraw":"Excalidraw SVG 预览","drawing.title.mermaid":"Mermaid SVG 预览","drawing.title.plantuml":"PlantUML SVG 预览","drawing.title.drawio":"Draw.io 离线 SVG 预览","drawing.toolbar.zoomOut":"缩小","drawing.toolbar.zoomIn":"放大","drawing.toolbar.fit":"适合","drawing.toolbar.fitWidth":"适合宽度","drawing.state.loading":"正在加载绘图预览...","text.code.loadingHighlight":"正在加载高亮...","text.code.indexingLargeFile":"正在建立大文件索引 {progress}%","text.code.virtualized":"大文件 \xb7 虚拟滚动 \xb7 已关闭高亮","text.code.firstSegment":"首段","text.code.previousSegment":"上一段","text.code.nextSegment":"下一段","text.code.lastSegment":"末段","ebook.toc":"目录","ebook.reading":"阅读中","ebook.itemCount":"{count} 项","epub.title":"EPUB 电子书","epub.previousPage":"上一页","epub.nextPage":"下一页","epub.loading":"正在解析 EPUB...","epub.chapterFallback":"章节 {index}","epub.renderIncomplete":"EPUB 正文渲染未完成,请刷新后重试","umd.title":"UMD 电子书","umd.previousChapter":"上一章","umd.nextChapter":"下一章","umd.loading":"正在解析 UMD...","umd.emptyContent":"未解析到正文内容","umd.chapterFallback":"章节 {index}","umd.galleryFallback":"图集 {index}
1","umd.warningBodyTooShort":"UMD 正文长度小于声明长度,文件可能不完整","umd.error.unexpectedEnd":"UMD 文件结构不完整,读取时遇到意外结尾","umd.error.invalidFile":"不是有效的 UMD 电子书文件","typst.summaryRenderer":"Typst WASM 渲染器","typst.pageSummary.empty":"0 页","typst.pageSummary.ready":"{count} 页 / {width} x {height} pt","typst.status.compiling":"正在编译","typst.status.failed":"编译失败","typst.status.rendered":"已渲染","typst.loading.title":"正在解析 Typst","typst.loading.hint":"加载编译器并生成页面预览...","typst.error.title":"Typst 渲染失败","typst.error.timeout":"Typst WASM / 字体加载或编译超过 {seconds} 秒","typst.error.timeoutHint":"请检查 Typst compiler WASM、renderer WASM、字体目录的下载速度和缓存策略;弱网或跨境部署可通过 options.typst.renderTimeoutMs 调大浏览器端加载/编译超时。","typst.error.assetHint":"Typst 需要本地 compiler / renderer WASM 和字体目录。请运行 file-viewer-copy-assets,或配置 options.typst.compilerWasmUrl / options.typst.rendererWasmUrl / options.typst.fontAssetsUrl,并确认服务器以 application/wasm 返回 WASM。","typst.error.svgParseFailed":"Typst SVG 解析失败","typst.error.wasmLoadFailed":"Typst WASM 加载失败","xmind.toolbar.zoomOut":"缩小","xmind.toolbar.zoomIn":"放大","xmind.toolbar.fit":"适合","xmind.toolbar.fitTitle":"适配画布","xmind.state.loading":"正在解析 XMind 脑图...","xmind.stats.nodes":"节点","xmind.stats.depth":"层级","xmind.stats.theme":"主题","xmind.stats.template":"模板","xmind.badge.paused":"暂停","xmind.badge.collapsed":"折叠","xmind.badge.floating":"浮动","xmind.badge.summary":"概要","xmind.badge.callout":"标注","xmind.imageResource":"图片资源: {name}","xmind.error.unrecognized":"无法识别 XMind 文件: ZIP 中未找到 content.json 或 content.xml","xmind.error.noCanvas":"XMind 文件中没有可预览的画布","cad.toolbar.fit":"适配","cad.toolbar.zoomOut":"缩小","cad.toolbar.zoomIn":"放大","cad.layers.title":"图层","cad.layers.count":"{count} 项","cad.layers.merged":"{name}(已合并 {count} 个同名图层)","cad.inspector.title":"结构","cad.inspector.entities":"实体","cad.inspector.blocks":"块","cad.inspector.pages":"页面","cad.inspector.drawn":"绘制","cad.state.loadingViewer":"正在加载 CAD 预览器...","cad.state.parsing":"正在解析 CAD...","cad.error.parseFailed":"CAD 文件解析失败","image.alt":"图片","image.lightbox.alt":"图片预览","image.lightbox.close":"关闭图片预览","gitBundle.error.invalid":"当前文件不是标准 Git bundle。","gitBundle.error.missingPack":"Git bundle header 后未找到 PACK 数据。","gitBundle.notice.delta":"当前 bundle 包含 delta 压缩对象。预览器已在浏览器端解析常规 OFS_DELTA / REF_DELTA;若仍有缺失文件,通常是包体过大、对象过多或依赖外部 prerequisite。","gitBundle.title.history":"历史记录","gitBundle.title.fileTree":"文件树","gitBundle.file.choose":"选择文件查看内容","gitBundle.file.noTree":"当前 bundle 的 tree/blob 可能被 delta 压缩,暂未解析到可展开文件。","gitBundle.file.none":"未解析到文件","gitBundle.history.empty":"当前 bundle 未解析到 commit 对象,仅展示 refs 和 pack 摘要。","gitBundle.toolbar.summary":"{commits} commits \xb7 {files} files","gitBundle.meta.bundle":"Bundle","gitBundle.meta.refs":"Refs","gitBundle.meta.commits":"Commits","gitBundle.meta.objects":"Objects","gitBundle.meta.deltas":"Deltas","gitBundle.meta.objectFormat":"Object format","gitBundle.meta.objectTypes":"Object types","geo.error.unrecognized":"无法识别的 GeoJSON 数据","geo.error.xmlParseFailed":"XML 解析失败","geo.error.unsupported":"不支持 .{type} 地理格式","geo.title":"地理数据预览","geo.featureCount":"要素数","geo.bounds":"范围","geo.geometryTypes":"几何类型","geo.aria":"地理数据 SVG 预览","geo.loading":"正在解析地理数据...","geo.projection":"坐标系","geo.engine":"渲染引擎","geo.basemap":"底图","geo.basemap.offline":"离线空底图","geo.basemap.custom":"自定义瓦片","geo.engine.maplibre":"MapLibre 矢量地图","geo.engine.svg":"SVG 后备预览","geo.error.projection":"地理坐标转换失败:{reason}","geo.action.fit":"适配范围","model.toolbar.fit":"适配","model.toolbar.rotate":"旋转","model.toolbar.wireframe":"线框","model.toolbar.grid":"网格","model.toolbar.axes":"坐标","model.state.loadingSummary":"æ­£å
1œ¨åŠ è½½æ¨¡åž‹","model.state.loading":"正在解析 3D 模型...","model.state.loaded":"模型已加载","model.state.parseFailed":"模型解析失败","model.summary.meshes":"{count} 个网格","model.summary.points":"{count} 个点云","model.error.daeEmpty":"DAE 模型未解析出有效场景","model.error.unsupported":"暂不支持 .{type} 模型格式","model.error.parseFailed":"{type} 模型解析失败","model.notice.signature":"检测到文件签名: {signature}。","loading.generic.label":"文件内容","loading.generic.hint":"正在整理内容结构并生成预览。","loading.word.label":"Word 文档","loading.word.hint":"正在准备分页、文本样式和文档结构。","loading.wordWorker.hint":"正在通过 Worker 准备文档结构、文本样式和分页结果。","loading.sheet.label":"Excel 表格","loading.sheet.hint":"正在准备工作表、样式和可视区数据。","loading.csv.label":"表格数据","loading.csv.hint":"正在准备行列数据和基础样式。","loading.presentation.label":"PPT 演示文稿","loading.presentation.hint":"正在构建幻灯片布局和媒体内容。","loading.pdf.label":"PDF 文档","loading.pdf.hint":"正在载入页面位图、文本层和缩放视图。","loading.ofd.label":"OFD 版式文件","loading.ofd.hint":"正在解析国产版式文档和页面对象。","loading.archive.label":"压缩包","loading.archive.hint":"正在启动 Worker 并读取压缩包目录。","loading.email.label":"邮件文件","loading.email.hint":"正在解析邮件头、正文和附件。","loading.msg.hint":"正在解析 Outlook 邮件和附件。","loading.eda.label":"EDA 文件","loading.eda.hint":"正在读取 EDA 容器结构和可读属性。","loading.cad.label":"CAD 图纸","loading.cad.hint":"正在准备 CAD 图层、几何对象和画布视图。","loading.dwg.hint":"正在通过 Worker 加载 DWG 几何和 LibreDWG WASM。","loading.dwf.hint":"正在加载 DWF native renderer 与 W2D/W3D 图形。","loading.dwfx.hint":"正在加载 DWFx/XPS native renderer 与页面图形。","loading.xps.hint":"正在加载 XPS native renderer 与嵌入字体。","loading.drawio.label":"draw.io 图纸","loading.drawio.hint":"正在解析图元、连线和 SVG 预览。","loading.excalidraw.label":"Excalidraw 图纸","loading.excalidraw.hint":"正在解析手绘图元并生成安全 SVG。","loading.epub.label":"EPUB 电子书","loading.epub.hint":"正在解析目录、章节资源和阅读分页。","loading.umd.label":"UMD 电子书","loading.umd.hint":"正在解析移动电子书结构、目录和压缩正文。","loading.image.label":"图片文件","loading.image.hint":"正在解码像素数据并生成预览。","loading.video.label":"视频文件","loading.video.hint":"正在准备媒体资源和播放组件。","loading.audio.label":"音频文件","loading.audio.hint":"正在准备音频资源和播放控件。"},"en-US":{"toolbar.zoomGroup":"Zoom controls","toolbar.zoomOut":"Zoom out","toolbar.zoomIn":"Zoom in","toolbar.zoomReset":"Reset zoom","toolbar.download":"Download","toolbar.downloadTitle":"Download the original file","toolbar.print":"Print","toolbar.printTitle":"Print the complete rendered document","toolbar.printDirect":"Print now","toolbar.printMask":"Mask & print","toolbar.printMaskTitle":"Cover sensitive areas before printing","toolbar.printMaskAdd":"Add mask","toolbar.printMaskClear":"Clear","toolbar.printMaskCancel":"Cancel","toolbar.printMaskConfirm":"Print","toolbar.printMaskHint":"Drag to draw black cover blocks. Delete and adjust as needed.","toolbar.exportHtml":"HTML","toolbar.exportHtmlTitle":"Export the rendered HTML","toolbar.search":"Search","toolbar.searchPlaceholder":"Search document","toolbar.searchPrevious":"Previous match","toolbar.searchNext":"Next match","toolbar.searchClear":"Clear search","toolbar.theme":"Theme","toolbar.themeToLight":"Switch to light mode","toolbar.themeToDark":"Switch to dark mode","state.ready.title":"Preview ready","state.ready.message":"The file has been rendered.","state.empty.title":"No file selected","state.empty.message":"Choose a file or provide an accessible URL to start previewing.","state.unsupported.install.title":"Preview capability required","state.unsupported.install.message":"{extension} is in the supported matrix, but {rendererLabel}
1 renderer is not assembled in this project.","state.unsupported.install.description":"Install {presetPackage} and pass the capability through options.preset / options.renderers{rendererTip}. Vite projects can also use @file-viewer/vite-plugin to auto-discover installed presets.","state.unsupported.title":"Online preview is not supported yet","state.unsupported.message":"{extension} cannot be previewed online. Download it or convert it to a supported format.","state.unsupported.description":"Supports online preview for Office, PDF, OFD, Typst, archives, email, OLB/DRA, CAD, geospatial data, 3D models, Excalidraw, draw.io, EPUB, UMD, Markdown, code/text, images, audio/video, fonts, and structured data assets.","state.error.title":"Preview failed","preview.downloading":"Downloading file resources...","preview.streamingPdf":"Preparing streaming PDF preview...","preview.reading":"Parsing file content...","error.download":"Download failed","error.print":"Print failed","error.exportHtml":"HTML export failed","error.noDownloadSource":"There is no original file source to download.","error.noExportContent":"There is no rendered preview content to export.","error.printUnavailable":"This file type does not support full-document printing. Download the original file and print it locally.","error.printWindowBlocked":"The browser blocked the print window.","error.remoteDownload":"File download failed","error.localRead":"Failed to read local file","error.load":"Failed to load file","error.stream":"Failed to load streaming PDF preview","error.beforeOperation":"Before-operation check failed","error.unknown":"Unknown error","error.blobUnavailable":"Blob is not available in the current execution environment.","error.sourceUnsupported":"Unsupported file source input.","error.fileReadArrayBuffer":"Failed to read the file as an ArrayBuffer.","error.fileReadDataUrl":"Failed to read the file as a data URL.","error.fileReadText":"Failed to read the file as text.","error.imageDataUrlRead":"Unable to read image data URL.","operation.download":"Download original file","operation.print":"Print complete rendered content","operation.exportHtml":"Export rendered HTML","operation.zoomIn":"Zoom in","operation.zoomOut":"Zoom out","operation.zoomReset":"Reset preview zoom","pdf.toolbar.toggleNavigation":"Toggle navigation pane","pdf.toolbar.previousPage":"Previous page","pdf.toolbar.nextPage":"Next page","pdf.toolbar.fitWidth":"Fit to width","pdf.toolbar.zoomOut":"Zoom out","pdf.toolbar.zoomIn":"Zoom in","pdf.toolbar.rotateLeft":"Rotate left","pdf.toolbar.rotateRight":"Rotate right","pdf.nav.typeLabel":"PDF navigation type","pdf.nav.pagesTab":"Pages","pdf.nav.outlineTab":"Outline","pdf.nav.pagesTitle":"Page navigation","pdf.nav.outlineTitle":"Outline navigation","pdf.nav.pageCount":"{count} pages","pdf.nav.itemCount":"{count} items","pdf.nav.pageLabel":"Page {page}","pdf.nav.outlineEmpty":"This PDF has no available outline.","pdf.nav.outlineFallbackTitle":"Outline {index}","pdf.thumbnail.alt":"Page {page} thumbnail","pdf.state.loading":"Loading PDF...","pdf.error.browserWindow":"PDF preview requires a browser window","pdf.error.missingSource":"PDF has no readable data source","pdf.error.loadFailed":"Failed to load PDF","pdf.error.notLoaded":"The PDF is not loaded yet. Please try again later.","pdf.error.unloaded":"The PDF has been unloaded and cannot continue printing.","pdf.error.canvasUnavailable":"This browser cannot create a PDF print canvas.","pdf.export.pageTitle":"{title} - Page {page}","spreadsheet.loading.kicker":"Excel workbook","spreadsheet.loading.title":"Parsing Excel workbook","spreadsheet.loading.hint":"Preparing worksheets, styles, and virtualized viewport data.","spreadsheet.loading.streaming":"Loading visible worksheet data","spreadsheet.tabs.ariaLabel":"Worksheet list","spreadsheet.state.parsingWorkbook":"Parsing the Excel workbook. Please wait...","spreadsheet.state.preparingSheet":"Preparing worksheet content...","spreadsheet.state.preparingSheetNamed":"Preparing “{name}”...","spreadsheet.state.cachedRows":"Cached {cached} / {total} rows","spreadsheet.state.rows":"{rows} rows, loading smoothly by viewport","spreadsheet.state.rowsAndColumns":"{rows} rows, {cols} columns, loading smoothly by viewport","spreadsheet.error.parseFailed":"Failed to parse Excel","spreadsheet.error.workerFailed":"Excel Worker failed","word.error.invali
1dDocx":"The file is not a valid DOCX/OOXML package. It may be incomplete or replaced by an error response from the server. Upload it again or check the file source.","word.error.missingOdfContent":"The ODF file is missing content.xml.","word.error.odfXmlParseFailed":"Failed to parse ODF XML.","word.title.rtf":"RTF document preview","word.title.openDocumentPresentation":"OpenDocument presentation preview","word.title.openDocumentText":"OpenDocument document preview","word.page.fallback":"Page {page}","word.page.empty":"No extractable text on this page","word.body":"Body","word.body.empty":"No readable text was extracted","ofd.state.loading":"Parsing OFD...","ofd.error.empty":"The OFD file has no renderable document.","ofd.error.parseFailed":"Failed to parse OFD file","presentation.state.loading":"Parsing PPTX...","presentation.error.title":"PPTX preview failed","presentation.error.parseFailed":"Failed to parse PPTX","presentation.ppt.state.loading":"Parsing PowerPoint 97–2003...","presentation.ppt.error.title":"PPT preview failed","presentation.ppt.error.parseFailed":"This PPT file could not be parsed.","presentation.ppt.error.assetHint":"Check the @file-viewer/ppt module, pptWasmUrl, application/wasm MIME type, Web Crypto, and CSP settings.","archive.error.nestedUnsupported":".{type} cannot be previewed online. Download it or convert it to a supported format.","archive.loading.readingDirectory":"Reading archive directory...","archive.loading.readingDirectoryHint":"Large files are parsed in a Worker to keep the main thread responsive.","archive.search.placeholder":"Filter files inside the archive","archive.sidebar.hide":"Hide archive file list","archive.sidebar.show":"Show archive file list","archive.preview.title":"Archive entry preview","archive.preview.chooseFile":"Choose a file","archive.preview.downloadFile":"Download file","archive.error.title":"Archive preview notice","archive.stats.summary":"{count} files \xb7 {size} \xb7 {previewable} directly previewable","archive.warning.encrypted":"Encrypted content was detected. Enter the correct password to preview it; the password is passed only to the libarchive Worker for this session.","archive.password.title":"Enter archive password","archive.password.description":"This archive contains encrypted content. A password is required to read the directory or preview entries.","archive.password.placeholder":"Archive password","archive.password.invalid":"The password is incorrect or the entry could not be decrypted. Try again.","archive.password.required":"Enter a password to continue.","archive.password.cancel":"Cancel","archive.password.confirm":"Unlock preview","archive.error.passwordRequired":"Password entry was cancelled, so the encrypted archive cannot be previewed.","archive.error.encryptedRequiresWorker":"This archive contains encrypted content and requires the libarchive Worker/WASM assets for online decryption.","archive.empty.title":"Choose a file from the left to preview","archive.empty.message":"The archive directory is read first. File contents are extracted on demand and cached in IndexedDB when size allows.","archive.loading.initializingCandidate":"Initializing {label}...","archive.loading.initializingCandidateHint":"If the server does not publish Worker/WASM assets correctly, the viewer falls back automatically.","archive.error.candidateInitTimeout":"{label} initialization timed out","archive.error.encryptedCheckTimeout":"{label} encryption check timed out","archive.loading.directoryReadyHint":"After the directory is ready, click an entry to extract it on demand.","archive.error.candidateReadTimeout":"{label} directory read timed out","archive.loading.workerFallback":"Worker unavailable. Switching to ZIP/TAR compatibility mode...","archive.loading.workerFallbackHint":"Compatibility mode needs no static Worker and works well in mobile WebViews or temporary local servers.","archive.notice.workerFallback":"The libarchive Worker could not start in this environment, so ZIP/TAR/GZIP compatibility mode is active. RAR, 7z, and similar formats should still publish vend
1or/libarchive/worker-bundle.js and libarchive.wasm.","archive.error.tooLarge":"Archive size {size} exceeds the safety limit {limit}. Download and extract it locally.","archive.loading.initializingWorker":"Initializing archive parsing Worker...","archive.loading.initializingWorkerHint":"Large files are parsed in a Worker to keep the main thread responsive.","archive.error.workerInitFailed":"Archive Worker initialization failed","archive.error.workerUnsupported":"This browser does not support Web Workers.","archive.error.indexedDbUnavailable":"IndexedDB is unavailable","archive.error.entryTooLarge":"Entry {name} is {size}, exceeding the preview limit {limit}.","archive.loading.extracting":"Extracting {name} on demand...","archive.loading.rendering":"Rendering {name}...","archive.loading.exporting":"Exporting {name}...","media.audio.title":"Audio preview","media.audio.description":"Opened with the browser-native audio player. Codec support depends on the current browser.","media.audio.unsupported":"This browser does not support audio playback.","media.video.title":"Video preview","media.video.unsupported":"This browser does not support this video format.","media.video.hlsHint":"HLS prefers the original URL for segment loading. If the input is a local single-file playlist, make sure segment URLs are reachable by the browser.","media.midi.title":"MIDI file","media.midi.loading":"Parsing MIDI tracks...","media.midi.trackHeader":"Track","media.midi.instrumentHeader":"Instrument","media.midi.channelHeader":"Channel","media.midi.noteCountHeader":"Notes","media.midi.durationHeader":"Duration","media.midi.durationStat":"Duration","media.midi.trackStat":"Tracks","media.midi.noteStat":"Notes","media.midi.parseFailed":"Failed to parse MIDI","email.mbox.subject":"{filename} \xb7 message 1","email.mbox.summary":"Detected {count} messages in the MBOX archive. Showing message 1.","email.error.title":"Email preview notice","email.meta.from":"From","email.meta.to":"To","email.meta.cc":"Cc","email.meta.date":"Date","email.tabs.text":"Body","email.tabs.headers":"Headers","email.attachments.title":"Attachments","email.attachments.empty":"No attachments","email.attachments.download":"Download attachment","email.attachments.opening":"Opening attachment {name}...","email.attachments.nestedUnavailable":"Nested attachment preview is not available in this environment. Download {name} to inspect it.","email.loading.parsing":"Parsing email...","data.font.sample":"Flyfish Viewer preview AaBbCc 1234567890","data.error.fontFaceUnsupported":"This browser does not support the FontFace API","data.title.font":"Font file preview","data.title.sqlite":"SQLite database preview","data.title.parquet":"Parquet columnar data preview","data.title.avro":"Avro object c
1ontainer preview","data.title.wasm":"WebAssembly module preview","data.title.eps":"EPS vector file summary","data.title.ai":"Illustrator file summary","data.title.webarchive":"WebArchive summary preview","data.title.summary":"Data asset summary","data.label.format":"Format","data.label.size":"Size","data.label.rendering":"Renderer","data.label.objects":"Objects","data.label.sampleTable":"Sample table","data.label.rows":"Rows","data.label.columns":"Columns","data.label.sampleRows":"Sample rows","data.label.imports":"Imports","data.label.exports":"Exports","data.label.magic":"Magic","data.label.note":"Note","data.label.container":"Container","data.value.schemaRead":"Read","data.value.schemaUnread":"Not read","data.note.aiSummary":"Non PDF-compatible AI is shown as a safe summary.","data.note.postscriptSummary":"PostScript summary preview","data.note.webarchive":"Readable fragments are extracted safely. Web scripts are not executed.","data.image.alt":"Asset preview","psd.title":"PSD layer preview","psd.action.fit":"Fit","psd.action.showAll":"Show all","psd.action.hideAll":"Hide all","psd.layers.title":"Layers","psd.layers.redrawable":"{count} redrawable","psd.layers.empty":"No displayable layers were found. Showing the composite image.","psd.layers.hidden":"hidden","drawing.error.viewerLoadFailed":"Failed to load the diagrams.net viewer","drawing.error.excalidrawEmpty":"This Excalidraw file has no previewable elements","drawing.error.excalidrawTimeout":"Excalidraw SVG export timed out. Falling back to the rough.js renderer.","drawing.error.drawioParseFailed":"Failed to parse Draw.io XML: {message}","drawing.error.drawioNoModel":"This Draw.io file has no directly renderable mxGraphModel.","drawing.error.drawioNoElements":"This Draw.io file has no previewable elements.","drawing.error.viewerInitFailed":"The diagrams.net viewer was not initialized correctly","drawing.error.drawioTimeout":"Official diagrams.net Viewer timed out. Falling back to the local SVG preview.","drawing.error.svgParseFailed":"Failed to parse SVG","drawing.error.plantumlRenderFailed":"Failed to render PlantUML SVG: {status}","drawing.title.excalidraw":"Excalidraw SVG preview","drawing.title.mermaid":"Mermaid SVG preview","drawing.title.plantuml":"PlantUML SVG preview","drawing.title.drawio":"Draw.io offline SVG preview","drawing.toolbar.zoomOut":"Zoom out","drawing.toolbar.zoomIn":"Zoom in","drawing.toolbar.fit":"Fit","drawing.toolbar.fitWidth":"Fit width","drawing.state.loading":"Loading drawing preview...","text.code.loadingHighlight":"Loading syntax highlighting...","text.code.indexingLargeFile":"Indexing large file {progress}%","text.code.virtualized":"Large file \xb7 virtual scrolling \xb7 highlighting off","text.code.firstSegment":"First segment","text.code.previousSegment":"Previous segment","text.code.nextSegment":"Next segment","text.code.lastSegment":"Last segment","ebook.toc":"Table of contents","ebook.reading":"Reading","ebook.itemCount":"{count} items","epub.title":"EPUB ebook","epub.previousPage":"Previous","epub.nextPage":"Next","epub.loading":"Parsing EPUB...","epub.chapterFallback":"Chapter {index}","epub.renderIncomplete":"EPUB content did not finish rendering. Refresh and try again.","umd.title":"UMD ebook","umd.previousChapter":"Previous chapter","umd.nextChapter":"Next chapter","umd.loading":"Parsing UMD...","umd.emptyContent":"No readable body content was parsed.","umd.chapterFallback":"Chapter {index}","umd.galleryFallback":"Gallery {index}","umd.warningBodyTooShort":"The UMD body is shorter than declared and may be incomplete.","umd.error.unexpectedEnd":"The UMD structure is incomplete and ended unexpectedly.","umd.error.invalidFile":"This is not a valid UMD ebook file.","typst.summaryRenderer":"Typst WASM renderer","typst.pageSummary.empty":"0 pages","typst.pageSummary.ready":"{count} pages / {width} x {height} pt","typst.status.compiling":"Compiling","typst.status.failed":"Compilation failed","typst.status.rendered":"Rendered","typst.loading.title":"Parsing Typst","typst.loading.hint":"Loading the compiler and generating page previews...","typst.error.title":"Typst render failed","typst.error.timeout":"Typst WASM / font loading or compilation exceeded {seconds} seconds","typst.error.timeoutHint":"Check the download speed and cache strategy for the Typst compiler WASM, renderer WASM, and font directory. On weak networks or cross-region deployments, increase options.typst.renderTimeoutMs.","typst.error.assetHint":"Typst requires local compiler / renderer WASM files and a font directory. Run file-viewer-copy-assets, or configure options.typst.compilerWasmUrl / o
1ptions.typst.rendererWasmUrl / options.typst.fontAssetsUrl, and make sure the server returns WASM with application/wasm.","typst.error.svgParseFailed":"Failed to parse Typst SVG","typst.error.wasmLoadFailed":"Failed to load Typst WASM","xmind.toolbar.zoomOut":"Zoom out","xmind.toolbar.zoomIn":"Zoom in","xmind.toolbar.fit":"Fit","xmind.toolbar.fitTitle":"Fit canvas","xmind.state.loading":"Parsing XMind mind map...","xmind.stats.nodes":"Nodes","xmind.stats.depth":"Depth","xmind.stats.theme":"Theme","xmind.stats.template":"Template","xmind.badge.paused":"Paused","xmind.badge.collapsed":"Collapsed","xmind.badge.floating":"Floating","xmind.badge.summary":"Summary","xmind.badge.callout":"Callout","xmind.imageResource":"Image resource: {name}","xmind.error.unrecognized":"Unrecognized XMind file: content.json or content.xml was not found in the ZIP package.","xmind.error.noCanvas":"This XMind file has no previewable canvas.","cad.toolbar.fit":"Fit","cad.toolbar.zoomOut":"Zoom out","cad.toolbar.zoomIn":"Zoom in","cad.layers.title":"Layers","cad.layers.count":"{count} items","cad.layers.merged":"{name} ({count} merged layers)","cad.inspector.title":"Structure","cad.inspector.entities":"Entities","cad.inspector.blocks":"Blocks","cad.inspector.pages":"Pages","cad.inspector.drawn":"Drawn","cad.state.loadingViewer":"Loading CAD viewer...","cad.state.parsing":"Parsing CAD...","cad.error.parseFailed":"Failed to parse CAD file","image.alt":"Image","image.lightbox.alt":"Image preview","image.lightbox.close":"Close image preview","gitBundle.error.invalid":"This file is not a valid Git bundle.","gitBundle.error.missingPack":"No PACK data was found after the Git bundle header.","gitBundle.notice.delta":"This bundle contains delta-compressed objects. The viewer resolves common OFS_DELTA / REF_DELTA objects in the browser. Missing files usually indicate a very large bundle, too many objects, or an external prerequisite.","gitBundle.title.history":"History","gitBundle.title.fileTree":"File tree","gitBundle.file.choose":"Select a file to inspect","gitBundle.file.noTree":"The tree/blob objects in this bundle may be delta-compressed, and no expandable files were parsed.","gitBundle.file.none":"No files parsed","gitBundle.history.empty":"No commit objects were parsed. Showing refs and pack summary only.","gitBundle.toolbar.summary":"{commits} commits \xb7 {files} files","gitBundle.meta.bundle":"Bundle","gitBundle.meta.refs":"Refs","gitBundle.meta.commits":"Commits","gitBundle.meta.objects":"Objects","gitBundle.meta.deltas":"Deltas","gitBundle.meta.objectFormat":"Object format","gitBundle.meta.objectTypes":"Object types","geo.error.unrecognized":"Unrecognized GeoJSON data","geo.error.xmlParseFailed":"Failed to parse XML","geo.error.unsupported":".{type} geospatial format is not supported","geo.title":"Geospatial preview","geo.featureCount":"Features","geo.bounds":"Bounds","geo.geometryTypes":"Geometry types","geo.aria":"Geospatial SVG preview","geo.loading":"Parsing geospatial data...","geo.projection":"Projection","geo.engine":"Renderer","geo.basemap":"Basemap","geo.basemap.offline":"Offline empty basemap","geo.basemap.custom":"Custom tiles","geo.engine.maplibre":"MapLibre vector map","geo.engine.svg":"SVG fallback","geo.error.projection":"Geospatial projection failed: {reason}","geo.action.fit":"Fit bounds","model.toolbar.fit":"Fit","model.toolbar.rotate":"Rotate","model.toolbar.wireframe":"Wireframe","model.toolbar.grid":"Grid","model.toolbar.axes":"Axes","model.state.loadingSummary":"Loading model","model.state.loading":"Parsing 3D model...","model.state.loaded":"Model loaded","model.state.parseFailed":"Failed to parse model","model.summary.meshes":"{count} meshes","model.summary.points":"{count} point clouds","model.error.daeEmpty":"The DAE model did not contain a valid scene.","model.error.unsupported":".{type} model format is not supported yet","model.error.parseFailed":"Failed to parse {type} model","model.notice.signature":"Detected file signature: {signature}.","loading.generic.label":"File content","loading.generic.hint":"Preparing content structure and preview.","loading.word.label":"Word document","loading.word.hint":"Preparing document structure, text styles, and layout.","loading.wordWorker.hint":"Preparing document structure, text styles, and layout in a Worker.","loading.sheet.label":"Excel workbook","loading.sheet.hint":"Preparing worksheets, styles, and viewport data.","loading.csv.label":"Tabular data","loading.csv.hint":"Preparing rows, columns, and basic styling.","loading.presentation.label":"PowerPoint deck","loading.presentation.hint":"Building slide layout and media content.","loading.pdf.label":"PDF document","loading.pdf.hint":"Loading page bitmaps, text layers, and zoom view.","loading.ofd.label":"OFD layout document","loading.ofd.hint":"Parsing OFD pages and layout objects.","loading.archive.label":"Archive","loading.archive.hint":"Starting Worker and reading archive entries.","loading.email.label":"Email file","loading.email.hint":"Parsing message headers, body, and attachments.","loading.msg.hint":"Parsing Outlook message and attachments.","loading.eda.label":"E
1DA file","loading.eda.hint":"Reading EDA container structure and properties.","loading.cad.label":"CAD drawing","loading.cad.hint":"Preparing CAD layers, geometry, and canvas view.","loading.dwg.hint":"Loading DWG geometry and LibreDWG WASM in a Worker.","loading.dwf.hint":"Loading native DWF renderer and W2D/W3D graphics.","loading.dwfx.hint":"Loading native DWFx/XPS renderer and page graphics.","loading.xps.hint":"Loading native XPS renderer and embedded fonts.","loading.drawio.label":"draw.io diagram","loading.drawio.hint":"Parsing shapes, connectors, and SVG preview.","loading.excalidraw.label":"Excalidraw scene","loading.excalidraw.hint":"Parsing hand-drawn elements and generating safe SVG.","loading.epub.label":"EPUB ebook","loading.epub.hint":"Parsing table of contents, chapter resources, and reading pages.","loading.umd.label":"UMD ebook","loading.umd.hint":"Parsing mobile ebook metadata, table of contents, and compressed chapters.","loading.image.label":"Image file","loading.image.hint":"Decoding pixels and generating preview.","loading.video.label":"Video file","loading.video.hint":"Preparing media resource and player.","loading.audio.label":"Audio file","loading.audio.hint":"Preparing audio resource and playback controls."},"ja-JP":{"toolbar.zoomGroup":"ズーム操作","toolbar.zoomOut":"縮小","toolbar.zoomIn":"拡大","toolbar.zoomReset":"倍率をリセット","toolbar.download":"ダウンロード","toolbar.downloadTitle":"元のファイルをダウンロード","toolbar.print":"印刷","toolbar.printTitle":"レンダリング済みの全内容を印刷","toolbar.printDirect":"直接印刷","toolbar.printMask":"マスクして印刷","toolbar.printMaskTitle":"機密領域を隠してから印刷","toolbar.printMaskAdd":"マスクを追加","toolbar.printMaskClear":"クリア","toolbar.printMaskCancel":"キャンセル","toolbar.printMaskConfirm":"印刷を確定","toolbar.printMaskHint":"ドラッグして黒いマスクを描画します。削除して再調整できます。","toolbar.exportHtml":"HTML","toolbar.exportHtmlTitle":"現在のレンダリング結果を HTML として書き出す","toolbar.search":"検索","toolbar.searchPlaceholder":"ドキュメントを検索","toolbar.searchPrevious":"前の一致","toolbar.searchNext":"次の一致","toolbar.searchClear":"検索をクリア","toolbar.theme":"テーマ","toolbar.themeToLight":"ライトモードに切り替え","toolbar.themeToDark":"ダークモードに切り替え","state.ready.title":"プレビュー完了","state.ready.message":"ファイルのレンダリングが完了しました。","state.empty.title":"ファイルがありません","state.empty.message":"ファイルを選択するか、アクセス可能な URL を指定してプレビューを開始してください。","state.unsupported.install.title":"プレビュー機能の追加が必要です","state.unsupported.install.message":"{extension}は対応表に含まれていますが、このプロジェクトには {rendererLabel} renderer がまだ組み込まれていません。","state.unsupported.install.description":"{presetPackage} をインストールし、options.preset / options.renderers から対応機能を渡してください{rendererTip}。Vite プロジェクトでは @file-viewer/vite-plugin によるインストール済み preset の自動検出も利用できます。","state.unsupported.title":"オンラインプレビューには未対応ã
1§ã™","state.unsupported.message":"{extension}はオンラインでプレビューできません。ダウンロードするか、対応形式へ変換してください。","state.unsupported.description":"Office、PDF、OFD、Typst、圧縮ファイル、メール、OLB/DRA、CAD、地理空間データ、3D モデル、Excalidraw、draw.io、EPUB、UMD、Markdown、コード/テキスト、画像、音声/動画、フォント、構造化データ資産のオンラインプレビューに対応しています。","state.error.title":"プレビューに失敗しました","preview.downloading":"ファイルをダウンロードしています...","preview.streamingPdf":"PDF ストリーミングプレビューを準備しています...","preview.reading":"ファイル内容を解析しています...","error.download":"ダウンロードに失敗しました","error.print":"印刷に失敗しました","error.exportHtml":"HTML の書き出しに失敗しました","error.noDownloadSource":"ダウンロード可能な元ファイルがありません","error.noExportContent":"書き出し可能なプレビュー内容がありません","error.printUnavailable":"このファイル形式は文書全体の印刷に対応していません。元ファイルをダウンロードし、ローカルアプリで印刷してください。","error.printWindowBlocked":"ブラウザーによって印刷ウィンドウがブロックされました","error.remoteDownload":"ファイルのダウンロードに失敗しました","error.localRead":"ローカルファイルの読み込みに失敗しました","error.load":"ファイルの読み込みに失敗しました","error.stream":"PDF ストリーミングプレビューの読み込みに失敗しました","error.beforeOperation":"操作前の検証に失敗しました","error.unknown":"不明なエラー","error.blobUnavailable":"現在の実行環境では Blob を利用できないため、ファイル内容を読み込めません。","error.sourceUnsupported":"このファイル入力元には対応していません。","error.fileReadArrayBuffer":"ファイルのバイナリ内容を読み込めませんでした。","error.fileReadDataUrl":"ファイルの Data URL を読み込めませんでした。","error.fileReadText":"ファイルのテキスト内容を読み込めませんでした。","error.imageDataUrlRead":"画像データを読み込めませんでした。","operation.download":"元ファイルをダウンロード","operation.print":"レンダリング済みの全内容を印刷","operation.exportHtml":"レンダリング結果を HTML として書き出す","operation.zoomIn":"プレビューを拡大","operation.zoomOut":"プレビューを縮小","operation.zoomReset":"プレビュー倍率をリセット","pdf.toolbar.toggleNavigation":"ナビゲーションペインを切り替え","pdf.toolbar.previousPage":"前のページ","pdf.toolbar.nextPage":"次のページ","pdf.toolbar.fitWidth":"幅に合わせる","pdf.toolbar.zoomOut":"縮小","pdf.toolbar.zoomIn":"拡大","pdf.toolbar.rotateLeft":"左に回転","pdf.toolbar.rotateRight":"右に回転","pdf.nav.typeLabel":"PDF ナビゲーションの種類","pdf.nav.pagesTab":"ページ","pdf.nav.outlineTab":"目次","pdf.nav.pagesTitle":"ページナビゲーション","pdf.nav.outlineTitle":"目次ナビゲーション","pdf.nav.pageCount":"{count} ページ","pdf.nav.itemCount":"{count} ä»¶","pdf.nav.pageLabel":"{page} ページ","pdf.nav.outlineEmpty":"この PDF には利用可能な目次がありません","pdf.nav.outlineFallbackTitle":"目次 {index}","pdf.thumbnail.alt":"{page} ページのサムネイル","pdf.state.loading":"PDF を読み込んでいます...","pdf.error.browserWindow":"PDF プレビューにはブラウザーウィンドウが必要です","pdf.error.missingSource":"PDF に読み取り可能なデータソースがありません","pdf.error.loadFailed":"PDF の読み込みに失敗しました","pdf.error.notLoaded":"PDF の読み込みがまだ完了していません。しばらくしてから再試行してください。","pdf.error.unloaded":"PDF はアンロードされているため、印刷を続行できません","pdf.error.canvasUnavailable":"このブラウザーでは PDF 印刷用キャンバスを作成できません","pdf.export.pageTitle":"{title} - {page} ページ","spreadsheet.loading.kicker":"Excel ワークブック","spreadsheet.loading.title":"Excel ワークブックを解析しています","spreadsheet.loading.hint":"ワークシート、スタイル、大規模ãƒ
1‡ãƒ¼ã‚¿ç”¨ãƒ“ューポートを準備しています。","spreadsheet.loading.streaming":"表示範囲のデータを順次読み込んでいます","spreadsheet.tabs.ariaLabel":"ワークシート一覧","spreadsheet.state.parsingWorkbook":"Excel ワークブックを解析しています。しばらくお待ちください...","spreadsheet.state.preparingSheet":"ワークシート内容を準備しています...","spreadsheet.state.preparingSheetNamed":"「{name}」を準備しています...","spreadsheet.state.cachedRows":"{cached} / {total} 行をキャッシュ済み","spreadsheet.state.rows":"全 {rows} 行をビューポートに応じて順次読み込みます","spreadsheet.state.rowsAndColumns":"全 {rows} 行、{cols} 列をビューポートに応じて順次読み込みます","spreadsheet.error.parseFailed":"Excel の解析に失敗しました","spreadsheet.error.workerFailed":"Excel Worker の実行に失敗しました","word.error.invalidDocx":"有効な DOCX/OOXML パッケージではありません。ダウンロードが不完全か、サーバーのエラー応答に置き換わった可能性があります。再アップロードするかファイル元を確認してください。","word.error.missingOdfContent":"ODF ファイルに content.xml がありません。","word.error.odfXmlParseFailed":"ODF XML の解析に失敗しました。","word.title.rtf":"RTF 文書プレビュー","word.title.openDocumentPresentation":"OpenDocument プレゼンテーションプレビュー","word.title.openDocumentText":"OpenDocument 文書プレビュー","word.page.fallback":"{page} ページ","word.page.empty":"このページから抽出できるテキストはありません","word.body":"本文","word.body.empty":"読み取り可能なテキストを抽出できませんでした","ofd.state.loading":"OFD を解析しています...","ofd.error.empty":"OFD ファイルにレンダリング可能な文書がありません","ofd.error.parseFailed":"OFD ファイルの解析に失敗しました","presentation.state.loading":"PPTX を解析しています...","presentation.error.title":"PPTX プレビューに失敗しました","presentation.error.parseFailed":"PPTX の解析に失敗しました","presentation.ppt.state.loading":"PowerPoint 97–2003 を解析しています...","presentation.ppt.error.title":"PPT プレビューに失敗しました","presentation.ppt.error.parseFailed":"この PPT ファイルを解析できませんでした。","presentation.ppt.error.assetHint":"@file-viewer/ppt モジュール、pptWasmUrl、application/wasm MIME タイプ、Web Crypto、CSP 設定を確認してください。","archive.error.nestedUnsupported":".{type} 形式はオンラインでプレビューできません。ダウンロードするか、対応形式へ変換してください。","archive.loading.readingDirectory":"圧縮ファイルのディレクトリを読み込んでいます...","archive.loading.readingDirectoryHint":"大きなファイルは Worker で解析し、メインスレッドのブロックを防ぎます。","archive.
1search.placeholder":"圧縮ファイル内を絞り込み","archive.sidebar.hide":"ファイル一覧を非表示","archive.sidebar.show":"ファイル一覧を表示","archive.preview.title":"圧縮ファイル内プレビュー","archive.preview.chooseFile":"ファイルを選択してください","archive.preview.downloadFile":"ファイルをダウンロード","archive.error.title":"圧縮ファイルプレビューのお知らせ","archive.stats.summary":"{count} ファイル \xb7 {size} \xb7 直接プレビュー可能 {previewable} 件","archive.warning.encrypted":"暗号化された内容を検出しました。正しいパスワードを入力するとプレビューできます。パスワードはこのセッション中だけ libarchive Worker に渡されます。","archive.password.title":"圧縮ファイルのパスワードを入力","archive.password.description":"この圧縮ファイルには暗号化された内容があります。ディレクトリの読み込みや内部ファイルのプレビューを続けるにはパスワードが必要です。","archive.password.placeholder":"圧縮ファイルのパスワード","archive.password.invalid":"パスワードが正しくないか、復号できませんでした。再入力してください。","archive.password.required":"続行するにはパスワードを入力してください。","archive.password.cancel":"キャンセル","archive.password.confirm":"ロックを解除してプレビュー","archive.error.passwordRequired":"パスワード入力がキャンセルされたため、暗号化された圧縮ファイルをプレビューできません。","archive.error.encryptedRequiresWorker":"この圧縮ファイルのオンライン復号プレビューには libarchive Worker/WASM の配布が必要です。","archive.empty.title":"左側のファイルを選択してプレビュー","archive.empty.message":"最初にディレクトリのみを読み取ります。ファイル内容はクリック時にオンデマンドで展開し、容量が許す場合は IndexedDB にキャッシュします。","archive.loading.initializingCandidate":"{label} を初期化しています...","archive.loading.initializingCandidateHint":"サーバーで Worker/WASM が正しく配布されていない場合は、自動的に互換モードへ切り替えます。","archive.error.candidateInitTimeout":"{label} の初期化がタイムアウトしました","archive.error.encryptedCheckTimeout":"{label} の暗号化チェックがタイムアウトしました","archive.loading.directoryReadyHint":"ディレクトリの読み込み後、内部ファイルをクリックするとオンデマンドで展開します。","archive.error.candidateReadTimeout":"{label} のディレクトリ読み込みがタイムアウトしました","archive.loading.workerFallback":"Worker を利用できないため、ZIP/TAR 互換モードへ切り替えています...","archive.loading.workerFallbackHint":"互換モードは追加の静的 Worker を必要とせず、モバイル WebView や一時的なローカルサーバーにも適しています。","archive.notice.workerFallback":"この環境では libarchive Worker を起動できなかったため、ZIP/TAR/GZIP 互換モードへ自動的に切り替えました。RAR、7z などでは vendor/libarchive/worker-bundle.js と libarchive.wasm の配布を推奨します。","archive.error.tooLarge":"圧縮ファイルのサイズ {size} が安全上限 {limit} を超えています。ダウンロードしてローカルで展開してください。","archive.loading.initializingWorker":"圧縮ファイル解析 Worker を初期化しています...","archive.loading.initializingWorkerHint":"大きなファイルは Worker で解析し、メインスレッドのブロックを防ぎます。","archive.error.workerInitFailed":"圧縮ファイル Worker の初期化に失敗しました","archive.error.workerUnsupported":"このブラウザーは Web Worker に対応していません。","archive.error.indexedDbUnavailable":"IndexedDB を利用できません","archive.error.entryTooLarge":"圧縮ファイル内の {name} は {size} で、プレビュー上限 {limit} を超えています。","archive.loading.extracting":"{name} をオンデマンドで展開しています...","archive.loading.rendering":"{name} をレンダリングしています...","archive.loading.exporting":"{name} を書き出しています...","media.audio.title":"音声プレビュー","media.audio.description":"ブラウザー標準プレーヤーで開きます。互換性は現在のブラウザーが対応する音声コーデックに依存します。","media.audio.unsupported":"このブラウザーは音声再生に対応していません。","media.video.title":"動画プレビュー","media.video.unsupported":"このブラウザーはこの動画形式に対応していません。","media.video.hlsHint":"HLS はセグメント読み込みに元の URL を優先します。ローカルの単一ファイルプレイリストを渡す場合は、セグメント URL にブラウザーからアクセスできることを確認してください。","media.midi.title":"MIDI ファイル","media.midi.loading":"MIDI トラックを解析しています...","media.midi.trackHeader":"トラック","media.midi.instrumentHeader":"楽器","media.midi.channelHeader":"チャンネル","media.midi.noteCountHeader":"ノート数","media.midi.durationHeader":"長さ","media.midi.durationStat":"長さ","media.midi.trackStat":"トラック","media.midi.noteStat":"ノート","media.midi.parseFailed":"MIDI の解析に失敗しました","email.mbox.subject":"{filename} \xb7 1 通目","email.mbox.summary":"MBOX から {count} 通のメールを検出しました。現在は 1 通目を表示しています。","email.error.title":"メールプレビューのお知らせ","email.meta.from":"差出人","email.meta.to":"宛先","email.meta.cc":"Cc","email.meta.date":"日時","email.tabs.text":"本文","email.tabs.headers":"ヘッダー","email.attachments.title":"添付ファイル","email.attachments.empty":"添付ファイルはありません","email.attachments.download":"添付ファイルをダウンロード","email.attachments.opening":"添付ファイル {name} を開いています...","email.attachments.nestedUnavailable":"この
1実行環境では添付ファイルの入れ子プレビューを利用できません。{name} をダウンロードして確認してください。","email.loading.parsing":"メールを解析しています...","data.font.sample":"Flyfish Viewer 日本語プレビュー AaBbCc 1234567890","data.error.fontFaceUnsupported":"このブラウザーは FontFace API に対応していません","data.title.font":"フォントファイルプレビュー","data.title.sqlite":"SQLite データベースプレビュー","data.title.parquet":"Parquet 列指向データプレビュー","data.title.avro":"Avro オブジェクトコンテナプレビュー","data.title.wasm":"WebAssembly モジュールプレビュー","data.title.eps":"EPS ベクターファイル概要","data.title.ai":"Illustrator ファイル概要","data.title.webarchive":"WebArchive 概要プレビュー","data.title.summary":"データ資産概要","data.label.format":"形式","data.label.size":"サイズ","data.label.rendering":"レンダラー","data.label.objects":"オブジェクト","data.label.sampleTable":"サンプルテーブル","data.label.rows":"行","data.label.columns":"列","data.label.sampleRows":"サンプル行","data.label.imports":"インポート","data.label.exports":"エクスポート","data.label.magic":"マジック","data.label.note":"注記","data.label.container":"コンテナ","data.value.schemaRead":"読み込み済み","data.value.schemaUnread":"未読み込み","data.note.aiSummary":"PDF 互換でない AI は安全な概要として表示します。","data.note.postscriptSummary":"PostScript の概要プレビュー","data.note.webarchive":"読み取り可能な断片を安全に抽出します。Web スクリプトは実行しません。","data.image.alt":"資産プレビュー","psd.title":"PSD レイヤープレビュー","psd.action.fit":"全体表示","psd.action.showAll":"すべて表示","psd.action.hideAll":"すべて非表示","psd.layers.title":"レイヤー","psd.layers.redrawable":"再描画可能 {count} 件","psd.layers.empty":"表示可能なレイヤーがありません。合成画像を表示します。","psd.layers.hidden":"非表示","drawing.error.viewerLoadFailed":"diagrams.net viewer の読み込みに失敗しました","drawing.error.excalidrawEmpty":"この Excalidraw ファイルにはプレビュー可能な要素がありません","drawing.error.excalidrawTimeout":"Excalidraw の SVG 書き出しがタイムアウトしたため、rough.js レンダラーへ切り替えます。","drawing.error.drawioParseFailed":"Draw.io XML の解析に失敗しました:{message}","drawing.error.drawioNoModel":"この Draw.io ファイルには直接レンダリング可能な mxGraphModel がありません。","drawing.error.drawioNoElements":"この Draw.io ファイルにはプレビュー可能な要素がありません。","drawing.error.viewerInitFailed":"diagrams.net viewer が正しく初期化されませんでした","drawing.error.drawioTimeout":"diagrams.net 公式 Viewer がタイムアウトしたため、ローカル SVG プレビューへ切り替えます。","drawing.error.svgParseFailed":"SVG の解析に失敗しました","drawing.error.plantumlRenderFailed":"PlantUML SVG のレンダリングに失敗しました:{status}","drawing.title.excalidraw":"Excalidraw SVG プレビュー","drawing.title.mermaid":"Mermaid SVG プレビュー","drawing.title.plantuml":"PlantUML SVG プレビュー","drawing.title.drawio":"Draw.io オフライン SVG プレビュー","drawing.toolbar.zoomOut":"縮小","drawing.toolbar.zoomIn":"拡大","drawing.toolbar.fit":"全体表示","drawing.toolbar.fitWidth":"幅に合わせる","drawing.state.loading":"図面プレビューを読み込んでいます...","text.code.loadingHighlight":"シンタックスハイライトを読み込んでいます...","text.code.indexingLargeFile":"大きなファイルを索引化しています {progress}%","text.code.virtualized":"大きなファイル \xb7 仮想スクロール \xb7 ハイライト無効","text.code.firstSegment":"先頭セグメント","text.code.previousSegment":"前のセグメント","text.code.nextSegment":"次のセグメント","text.code.lastSegment":"末尾セグメント","ebook.toc":"目次","ebook.reading":"読書中","ebook.itemCount":"{count} 件","epub.title":"EPUB 電子書籍","epub.previousPage":"前へ","epub.nextPage":"次へ","epub.loading":"EPUB を解析しています...","epub.chapterFallback":"第 {index} 章","epub.renderIncomplete":"EPUB 本文のレンダリングが完了しませんでした。更新して再試
1行してください。","umd.title":"UMD 電子書籍","umd.previousChapter":"前の章","umd.nextChapter":"次の章","umd.loading":"UMD を解析しています...","umd.emptyContent":"読み取り可能な本文を解析できませんでした","umd.chapterFallback":"第 {index} 章","umd.galleryFallback":"ギャラリー {index}","umd.warningBodyTooShort":"UMD 本文が宣言された長さより短く、不完全な可能性があります","umd.error.unexpectedEnd":"UMD 構造が不完全で、予期せず終了しました","umd.error.invalidFile":"有効な UMD 電子書籍ファイルではありません","typst.summaryRenderer":"Typst WASM レンダラー","typst.pageSummary.empty":"0 ページ","typst.pageSummary.ready":"{count} ページ / {width} x {height} pt","typst.status.compiling":"コンパイル中","typst.status.failed":"コンパイル失敗","typst.status.rendered":"レンダリング済み","typst.loading.title":"Typst を解析しています","typst.loading.hint":"コンパイラーを読み込み、ページプレビューを生成しています...","typst.error.title":"Typst のレンダリングに失敗しました","typst.error.timeout":"Typst WASM / フォントの読み込みまたはコンパイルが {seconds} 秒を超えました","typst.error.timeoutHint":"Typst compiler WASM、renderer WASM、フォントディレクトリのダウンロード速度とキャッシュ戦略を確認してください。低速回線やリージョンをまたぐ配信では options.typst.renderTimeoutMs を増やしてください。","typst.error.assetHint":"Typst にはローカルの compiler / renderer WASM とフォントディレクトリが必要です。file-viewer-copy-assets を実行するか、options.typst.compilerWasmUrl / options.typst.rendererWasmUrl / options.typst.fontAssetsUrl を設定し、サーバーが WASM を application/wasm で返すことを確認してください。","typst.error.svgParseFailed":"Typst SVG の解析に失敗しました","typst.error.wasmLoadFailed":"Typst WASM の読み込みに失敗しました","xmind.toolbar.zoomOut":"縮小","xmind.toolbar.zoomIn":"拡大","xmind.toolbar.fit":"全体表示","xmind.toolbar.fitTitle":"キャンバス全体を表示","xmind.state.loading":"XMind マインドマップを解析しています...","xmind.stats.nodes":"ノード","xmind.stats.depth":"深さ","xmind.stats.theme":"テーマ","xmind.stats.template":"テンプレート","xmind.badge.paused":"一時停止","xmind.badge.collapsed":"折りたたみ","xmind.badge.floating":"フローティング","xmind.badge.summary":"サマリー","xmind.badge.callout":"吹き出し","xmind.imageResource":"画像リソース:{name}","xmind.error.unrecognized":"XMind ファイルを認識できません。ZIP パッケージ内に content.json または content.xml がありません。","xmind.error.noCanvas":"この XMind ファイルにはプレビュー可能なキャンバスがありません","cad.toolbar.fit":"全体表示","cad.toolbar.zoomOut":"縮小","cad.toolbar.zoomIn":"拡大","cad.layers.title":"レイヤー","cad.layers.count":"{count} 件","cad.layers.merged":"{name}(同名レイヤー {count} 件を統合)","cad.inspector.title":"構造","cad.inspector.entities":"エンティティ","cad.inspector.blocks":"ブロック","cad.inspector.pages":"ページ","cad.inspector.drawn":"描画済み","cad.state.loadingViewer":"CAD ビューアーを読み込んでいます...","cad.state.parsing":"CAD を解析しています...","cad.error.parseFailed":"CAD ファイルの解析に失敗しました","image.alt":"画像","image.lightbox.alt":"画像プレビュー","image.lightbox.close":"画像プレビューを閉じる","gitBundle.error.invalid":"有効な Git bundle ファイルではありません。","gitBundle.error.missingPack":"Git bundle ヘッダーの後に PACK データがありません。","gitBundle.notice.delta":"この bundle には delta 圧縮オブジェクトが含まれています。ビューアーは一般的な OFS_DELTA / REF_DELTA をブラウザー内で解決します。ファイルが不足する場合は、bundle が非常に大きい、オブジェクト数が多い、または外部 prerequisite が必要な可能性があります。","gitBundle.title.history":"履歴","gitBundle.title.fileTree":"ファイルツリー","gitBundle.file.choose":"確認するファイルを選択","gitBundle.file.noTree":"この bundle の tree/blob オブジェクトは delta 圧縮されている可能性があり、展開可能なファイルを解析できませんでした。","gitBundle.file.none":"解析済みファイルはありません","gitBundle.history.empty":"commit オブジェクトを解析できませんでした。refs と pack の概要のみ表示します。","gitBundle.toolbar.summary":"{commits} コミット \xb7 {files} ファイル","gitBundle.meta.bundle":"Bundle","gitBundle.meta.refs":"Refs","gitBundle.meta.commits":"コミット","gitBundle.meta.objects":"オブジェクト","gitBundle.meta.deltas":"Delta","gitBundle.meta.objectFormat":"オブジェクト形式","gitBundle.meta.objectTypes":"オブジェクト種類","geo.error.unrecognized":"GeoJSON データを認識できません","geo.error.xmlParseFailed":"XML の解析に失敗しました","geo.error.unsupported":".{type} 地理空間形式には対応していません","geo.title":"地理空間データプレビュー","geo.featureCount":"フィーチャー数","geo.bounds":"範囲","geo.geometryTypes":"ジオメトリ種類","geo.aria":"地理空間 SVG プレビュー","geo.loading":"地理空間データを解析しています...","geo.projection":"座標系","geo.engine":"レンダラー","geo.basemap":"ベースマップ","geo.basemap.offline":"オフライン空ベースマップ","geo.basemap.custom":"カスタムタイル","geo.engine.maplibre":"MapLibre ベクターマップ","geo.engine.svg":"SVG フォールバック","geo.error.projection":"地理座標の変換に失敗しました:{reason}","geo.action.fit":"範囲に合わせる","model.toolbar.fit":"全体表示","model.toolbar.rotate":"回転","model.toolbar.wireframe":"ワイヤーフレーム","model.toolbar.grid":"グリッド","model.toolbar.axes":"軸","model.state.loadingSummary":"モデルを読み込んでいます","model.state.loading":"3D モデルを解析しています...","model.state.loaded":"モデルを読み込みました","model.state.parseFailed":"モデルの解析に失敗しました","model.summary.meshes":"{count} メッシュ","model.summary.points":"{count} 点群","model.error.daeEmpty":"DAE モデルに有効なシーンがありません","model.error.unsupported":".{type} モデル形式にはまだ対応していません","model.error.parseFailed":"{type} モデルの解析に失敗しました","model.notice.signature":"ファイルシグネチャを検出しました:{signature}。","loading.generic.label":"ファイル内容","loading.generic.hint":"内容構造とプレビューを準備しています。","loading.word.label":"Word 文書","loading.word.hint":"文書構造、テキストスタイル、レイアウトを準備しています。","loading.wordWorker.hint":"Worker で文書構造、テキストスタイル、レイアウトを準備しています。","loading.sheet.label":"Excel ワークブック","loading.sheet.hint":"ワークシート、スタイル、ビューポートデータを準備しています。","loading.csv.label":"表形式データ","loading.csv.hint":"行、列、基本スタイルを準備しています。","loading.presentation.label":"PowerPoint プレゼンテーション","loading.presentation.hint":"スライドレイアウトとメディア内容を構築しています。","loading.pdf.label":"PDF 文書","loading.pdf.hint":"ページ画像、テキストレイヤー、ズーム表示を読み込んでいます。","loading.ofd.label":"OFD レイアウト文書","loading.ofd.hint":"OFD ページとレイアウトオブジェクトを解析しています。","loading.archive.label":"圧縮ファイル","loading.archive.hint":"Worker を起動し、圧縮ファイル内の項目を読み込んでいます。","loading.email.label":"メールファイル","loading.email.hint":"メールヘッダー、本文、添付ファイルを解析しています。","loading.msg.hint":"Outlook メッセージと添付ファイルを解析しています。","loading.eda.label":"E
1DA ファイル","loading.eda.hint":"EDA コンテナ構造とプロパティを読み込んでいます。","loading.cad.label":"CAD 図面","loading.cad.hint":"CAD レイヤー、ジオメトリ、キャンバス表示を準備しています。","loading.dwg.hint":"Worker で DWG ジオメトリと LibreDWG WASM を読み込んでいます。","loading.dwf.hint":"ネイティブ DWF レンダラーと W2D/W3D グラフィックスを読み込んでいます。","loading.dwfx.hint":"ネイティブ DWFx/XPS レンダラーとページグラフィックスを読み込んでいます。","loading.xps.hint":"ネイティブ XPS レンダラーと埋め込みフォントを読み込んでいます。","loading.drawio.label":"draw.io ダイアグラム","loading.drawio.hint":"図形、コネクター、SVG プレビューを解析しています。","loading.excalidraw.label":"Excalidraw シーン","loading.excalidraw.hint":"手描き要素を解析し、安全な SVG を生成しています。","loading.epub.label":"EPUB 電子書籍","loading.epub.hint":"目次、章リソース、読書ページを解析しています。","loading.umd.label":"UMD 電子書籍","loading.umd.hint":"モバイル電子書籍のメタデータ、目次、圧縮された章を解析しています。","loading.image.label":"画像ファイル","loading.image.hint":"ピクセルをデコードしてプレビューを生成しています。","loading.video.label":"動画ファイル","loading.video.hint":"メディアリソースとプレーヤーを準備しています。","loading.audio.label":"音声ファイル","loading.audio.hint":"音声リソースと再生コントロールを準備しています。"}}),n=e=>{let t=String(e||"").trim().replace(/_/g,"-").toLowerCase();if(t){if("zh"===t||t.startsWith("zh-"))return"zh-CN";if("ja"===t||t.startsWith("ja-"))return"ja-JP";if("en"===t||t.startsWith("en-"))return"en-US"}},l=e=>{var t;return(e=>{if(e&&"auto"!==e)return n(e)||i;let t=(()=>{let e="undefined"!=typeof window?window.navigator:void 0;return e?Array.from(new Set([...Array.isArray(e.languages)?e.languages:[],e.language].filter(e=>"string"==typeof e&&!!e.trim()))):[]})();for(let e of t){let t=n(e);if(t)return t}return t.length>0?i:a})((null==(t=null==e?void 0:e.i18n)?void 0:t.locale)||(null==e?void 0:e.locale))},d=(e,t,r={})=>{let n=l(e),d=(e=>{var t;return(null==(t=null==e?void 0:e.i18n)?void 0:t.messages)||(null==e?void 0:e.messages)})(e);return((e,t={})=>e.replace(/\{([a-zA-Z0-9_.-]+)\}/g,(e,r)=>{let a=t[r];return null==a?"":String(a)}))(("function"==typeof d?d(t,r,n):null==d?void 0:d[t])||o[n][t]||o[i][t]||o[a][t],r)},s=e=>(t,r)=>d(e,t,r)},40811:(e,t,r)=>{r.d(t,{QN:()=>g,_L:()=>b,k_:()=>u,yh:()=>h});let a={BGNLIB:1,LIBNAME:2,UNITS:3,BGNSTR:5,STRNAME:6,ENDSTR:7,BOUNDARY:8,PATH:9,SREF:10,AREF:11,TEXT:12,LAYER:13,DATATYPE:14,WIDTH:15,XY:16,ENDEL:17,SNAME:18,COLROW:19,TEXTTYPE:22,STRING:25},i=["#5eead4","#93c5fd","#c4b5fd","#f9a8d4","#fde68a","#86efac","#fdba74","#67e8f9"],o=e=>e.replace(/\u0000/g,"").replace(/[^\S\r\n]+/g," ").replace(/\r\n/g,"\n").trim(),n=(e,t)=>{let r=e[t]<<8|e[t+1];return 32768&r?r-65536:r},l=(e,t)=>e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3],d=(e,t,r)=>o(new TextDecoder("utf-8",{fatal:!1}).decode(e.slice(t,t+r)).replace(/\u0000+$/g,"")),s=e=>{let t=Number(e);return Number.isFinite(t)?t:void 0},p=(e,t)=>{let r=e[t];if(!r)return 0;let a=0;for(let r=1;r<8;r+=1)a+=e[t+r]/256**r;return(128&r?-1:1)*a*16**((127&r)-64)},c=(e,t,r)=>{let a=[];for(let i=t;i+7<t+r;i+=8)a.push({x:l(e,i),y:l(e,i+4)});return a},m=(e,t)=>{let r=e;return t.forEach(e=>{if(Number.isFinite(e.x)&&Number.isFinite(e.y)){if(!r){r={minX:e.x,minY:e.y,maxX:e.x,maxY:e.y};return}r.minX=Math.min(r.minX,e.x),r.minY=Math.min(r.minY,e.y),r.maxX=Math.max(r.maxX,e.x),r.maxY=Math.max(r.maxY,e.y)}}),r},u=e=>{let t,r,i,o=[],s=[],u=[],g="",h="",b=null,f=()=>{if(!b||!b.xy.length){b=null;return}s.length<2500?(s.push(b),i=m(i,b.xy)):u.length||u.push("Layout contains more than 2500 elements; only the first 2500 are rendered to protect browser memory."),b=null};for(let i=0;i+3<e.length;){let s=e[i]<<8|e[i+1],m=e[i+2];if(s<4||i+s>
1e.length){u.push(`GDSII record has an invalid length at offset ${i}; geometry parsing stopped safely.`);break}let w=i+4,y=s-4;switch(m){case a.BGNLIB:h="";break;case a.LIBNAME:g=d(e,w,y);break;case a.UNITS:y>=16&&(t=p(e,w),r=p(e,w+8));break;case a.BGNSTR:f(),h="";break;case a.STRNAME:(h=d(e,w,y))&&!o.includes(h)&&o.push(h);break;case a.ENDSTR:f(),h="";break;case a.BOUNDARY:f(),b={kind:"boundary",structure:h||"STRUCTURE",xy:[]};break;case a.PATH:f(),b={kind:"path",structure:h||"STRUCTURE",xy:[]};break;case a.TEXT:f(),b={kind:"text",structure:h||"STRUCTURE",xy:[]};break;case a.SREF:f(),b={kind:"sref",structure:h||"STRUCTURE",xy:[]};break;case a.AREF:f(),b={kind:"aref",structure:h||"STRUCTURE",xy:[]};break;case a.LAYER:b&&y>=2&&(b.layer=n(e,w));break;case a.DATATYPE:case a.TEXTTYPE:b&&y>=2&&(b.datatype=n(e,w));break;case a.WIDTH:b&&y>=4&&(b.width=Math.abs(l(e,w)));break;case a.XY:b&&(b.xy=c(e,w,y));break;case a.SNAME:b&&(b.reference=d(e,w,y));break;case a.STRING:b&&(b.text=d(e,w,y));break;case a.COLROW:b&&y>=4&&(b.text=`${b.text||""} ${n(e,w)}x${n(e,w+2)}`.trim());break;case a.ENDEL:f()}i+=s}if(f(),o.length||s.length||g)return{format:"gdsii",libraryName:g,userUnit:t,databaseUnit:r,structureCount:o.length,structures:o,elements:s,bounds:i,warnings:u}},g=e=>{let t,r;if(!(e=>{let t=e.slice(0,Math.min(e.length,4096));if(!t.length)return!1;let r=0;for(let e of t)(9===e||10===e||13===e||e>=32&&e<=126)&&(r+=1);return r/t.length>.9})(e))return;let a=new TextDecoder("utf-8",{fatal:!1}).decode(e);if(!/%SEMI-OASIS/i.test(a)&&!/\bOASIS\b/i.test(a))return;let i=[],n=[],l=["Parsed an ASCII OASIS-like structure fixture. Full SEMI binary OASIS geometry requires the dedicated layout kernel path."],d={structure:"TOP"},p=e=>{n.push(e),r=m(r,e.xy)};if(a.split(/\r?\n/).forEach(e=>{let r=e.trim();if(!r||r.startsWith("#"))return;let a=r.split(/\s+/),n=(a[0]||"").toUpperCase();if("START"===n){let e=r.match(/\bunit=([0-9.eE+-]+)/);t=s(null==e?void 0:e[1]);return}if("CELL"===n){d.structure=a[1]||`CELL_${i.length+1}`,i.includes(d.structure)||i.push(d.structure);return}if("LAYER"===n){d.layer=s(a[1]);let e=a.findIndex(e=>"DATATYPE"===e.toUpperCase());d.datatype=s(a[e+1]);return}if("RECT"===n){let e=s(a[1]),t=s(a[2]),i=s(a[3]),o=s(a[4]);return[e,t,i,o].some(e=>void 0===e)?void l.push(`Skipped malformed RECT record: ${r}`):void p({kind:"boundary",structure:d.structure,layer:d.layer,datatype:d.datatype,xy:[{x:e,y:t},{x:e+i,y:t},{x:e+i,y:t+o},{x:e,y:t+o},{x:e,y:t}]})}if("PATH"===n||"POLYGON"===n){let e=a.slice(1).map(s);if(e.length<4||e.some(e=>void 0===e))return void l.push(`Skipped malformed ${n} record: ${r}`);let t=[];for(let r=0;r+1<e.length;r+=2)t.push({x:e[r],y:e[r+1]});return"POLYGON"===n&&t.length>=3&&t.push({...t[0]}),void p({kind:"PATH"===n?"path":"boundary",structure:d.structure,layer:d.layer,datatype:d.datatype,xy:t})}if("TEXT"===n){let e=s(a[1]),t=s(a[2]);if(void 0===e||void 0===t)return void l.push(`Skipped malformed TEXT record: ${r}`);p({kind:"text",structure:d.structure,layer:d.layer,datatype:d.datatype,text:o((e=>{var t;return(null==(t=e.match(/"([^"]+)"/))?void 0:t[1])||e.split(/\s+/).slice(3).join(" ")})(r)),xy:[{x:e,y:t}]})}}),n.length||i.length)return{format:"oasis",libraryName:"OASIS text fixture",userUnit:t,structureCount:i.length||1,structures:i.length?i:[d.structure],elements:n,bounds:r,warnings:l}},h=(e,t={})=>{var r,a,o;let n=[],l=[],d=[],s=[],p=[],c=(null==(r=t.palette)?void 0:r.length)?t.palette:i,m=null!=(a=t.maxElements)?a:18e3,u=null!=(o=t.maxLabels)?o:600,g=e.bounds;if("gdsii"!==e.format||!g)return{format:"gdsii",elementCount:0,triangleVertices:new Float32Array,lineVertices:new Float32Array,pointVertices:new Float32Array,labels:p,bounds:g,warnings:["WebGL batches are currently generated for parsed GDSII geometry only."]};let h=Math.max(1,g.maxX-g.minX),b=Math.max(1,g.maxY-g.minY),f=e=>({x:(e.x-g.minX)/h*2-1,y:(e.y-g.minY)/b*2-1}),w=(e,t,r)=>{let a=f(t);e.push(a.x,a.y,r.r,r.g,r.b)},y=(e,t,r)=>{w(d,e,r),w(d,t,r)},v=e.elements.slice(0,m);return e.elements.length>m&&n.push(`Layout contains ${e.elements.length} elements; WebGL preview batched the first ${m}
1 elements to protect browser memory.`),v.forEach(e=>{let t=((e,t)=>{let r=(e=>{let t=e.trim().replace(/^#/,"");return/^[0-9a-f]{3}$/i.test(t)?t.split("").map(e=>`${e}${e}`).join(""):/^[0-9a-f]{6}$/i.test(t)?t:"5eead4"})(t[(Number.isFinite(e)?Math.abs(Number(e)):0)%t.length]||i[0]);return{r:parseInt(r.slice(0,2),16)/255,g:parseInt(r.slice(2,4),16)/255,b:parseInt(r.slice(4,6),16)/255}})(e.layer,c),r=(e=>{if(e.length<2)return[...e];let t=e[0],r=e[e.length-1];return t.x===r.x&&t.y===r.y?e.slice(0,-1):[...e]})(e.xy);if(("boundary"===e.kind||"aref"===e.kind)&&r.length>=3){for(let e=1;e<r.length-1;e+=1)w(l,r[0],t),w(l,r[e],t),w(l,r[e+1],t);for(let e=0;e<r.length;e+=1)y(r[e],r[(e+1)%r.length],t);return}if("path"===e.kind&&r.length>=2){for(let e=0;e<r.length-1;e+=1)y(r[e],r[e+1],t);return}let a=r[0];if(!a)return;w(s,a,t);let o=e.text||e.reference;if(o&&p.length<u){let t=f(a);p.push({text:o,layer:e.layer,x:a.x,y:a.y,clipX:t.x,clipY:t.y})}}),p.length>=u&&n.push(`Only the first ${u} layout labels are shown in the WebGL overlay.`),{format:"gdsii",elementCount:v.length,triangleVertices:new Float32Array(l),lineVertices:new Float32Array(d),pointVertices:new Float32Array(s),labels:p,bounds:g,warnings:n}},b=e=>{let t=new TextDecoder("ascii",{fatal:!1}).decode(e.slice(0,Math.min(24,e.length))).includes("OASIS");return{format:"oasis",magicFound:t,byteLength:e.byteLength,warnings:[t?"OASIS header detected. Full cell repetition expansion and geometry rendering is reserved for the dedicated WASM/WebGL layout engine boundary.":"OASIS header was not detected in the first bytes. The file may be wrapped, compressed, encrypted, or use a proprietary exchange container."]}}},51463:(e,t,r)=>{r.d(t,{A:()=>D});var a=r(40811);let i=[208,207,17,224,161,177,26,225],o=e=>e.replace(/\u0000/g,"").replace(/[^\S\r\n]+/g," ").replace(/\r\n/g,"\n").trim(),n=(e,t=180)=>{let r=new Set,a=[];return e.forEach(e=>{[...(e=>{let t=[],r="";for(let a of e){if(a>=32&&a<=126){r+=String.fromCharCode(a);continue}r.length>=4&&t.push(r),r=""}return r.length>=4&&t.push(r),t})(e),...(e=>{let t=[],r="";for(let a=0;a+1<e.length;a+=2){let i=e[a];if(0===e[a+1]&&i>=32&&i<=126){r+=String.fromCharCode(i);continue}r.length>=4&&t.push(r),r=""}return r.length>=4&&t.push(r),t})(e)].forEach(e=>{let i=o(e);!i||i.length<4||r.has(i)||a.length>=t||(r.add(i),a.push(i))})}),a},l={"zh-CN":{oasisFixture:"已识别为 OASIS 文本结构夹具,并在浏览器端解析几何预览和结构索引;真实 SEMI 二进制 OASIS 仍走安全索引与后续独立内核路线。",gdsLayout:"已识别为标准 GDSII 二进制版图记录,并在浏览器端解析几何预览和结构索引。",cfbContainer:"已识别为 Microsoft Compound File / OLE2 复合文档容器,并在浏览器端解析目录与流。",binaryIndex:"未识别为 CFB 容器,已使用二进制字符串索引模式展示可读信息。",coverage:"已索引 {streams} 个条目、{strings} 个可读字符串、{entities} 个 EDA 结构候选。",layout:"已解析 {layout}: {structures} 个 structure、{elements} 个几何/引用/文本元素,可在版图预览面板中拖动查看。",layoutOasisName:"OASIS 文本结构",layoutGdsName:"GDSII 版图",titleOrcadSymbolLibrary:"OrCAD Capture 元件符号库",titleOlbBinaryLibrary:"OLB 二进制库",titleOrcadDrawingLibrary:"OrCAD / Allegro 图纸库",titleDraBinaryDrawing:"DRA 二进制图纸",titleLayoutStructure:"{type} 版图结构",noSymbol:"未发现明确的元件符号候选,文件可能使用了私有二进制编码或需要专业工具导出 ASCII/XML 后再检查。",noFootprint:"未发现明确的封装、图形或 padstack 候选,文件可能使用了私有二进制数据库编码。",noGds:"未发现明确的 GDSII 版图结构候选。文件可能不是标准 GDSII 二进制或使用了专有封装。",noOasis:"未发现明确的 OASIS 版图结构候选。OASIS 完整几何浏览通常需要专业版图库或独立 WASM/TS 内核,当前前端包会安全展示头部、字符串、属性和二进制结构线索。",maxStreams:"仅展示前 {count} 个 CFB 项,完整文件仍可下载后在专业 EDA 工具中打开。",binaryFallback:"该文件不是标准 CFB 容器,已退化为安全的二进制字符串索引预览。"},"en-US":{oasisFixture:"Detected an OASIS text fixture and parsed geometry preview plus structure indexes in the browser. Full SEMI binary OASIS still follows the safe index and dedicated-kernel path.",gdsLayout:"Detected standard GDSII binary layout records and parsed geometry preview plus structure indexes in the browser.",cfbContainer:"Detected a Microsoft Compound File / OLE2 container and parsed its directory and streams in the browser.",binaryIndex:"This file is not recognized as a CFB container, so readable information is shown through a safe binary string index.",coverage:"Indexed {streams} entries, {strings} readable strings, and {entities} EDA structure candidates.",layout:"Parsed {layout}: {structures} structures and {elements} geometry/reference/text elements. Drag the layout preview panel to inspect it.",layoutOasisName:"OASIS text fixture",layoutGdsName:"GDSII layout",titleOrcadSymbol
1Library:"OrCAD Capture Symbol Library",titleOlbBinaryLibrary:"OLB Binary Library",titleOrcadDrawingLibrary:"OrCAD / Allegro Drawing Library",titleDraBinaryDrawing:"DRA Binary Drawing",titleLayoutStructure:"{type} Layout Structure",noSymbol:"No clear component-symbol candidates were found. The file may use private binary encoding or need ASCII/XML export from a professional tool.",noFootprint:"No clear footprint, drawing, or padstack candidates were found. The file may use private binary database encoding.",noGds:"No clear GDSII layout structure candidates were found. The file may not be standard GDSII binary or may use a proprietary wrapper.",noOasis:"No clear OASIS layout structure candidates were found. Full OASIS geometry browsing usually needs a professional layout library or dedicated WASM/TS kernel; this frontend package safely exposes headers, strings, properties, and binary clues.",maxStreams:"Only the first {count} CFB entries are shown. Download the full file and open it in a professional EDA tool for complete inspection.",binaryFallback:"This file is not a standard CFB container, so it falls back to a safe binary string index preview."},"ja-JP":{oasisFixture:"OASIS テキスト fixture を認識し、ブラウザー内で幾何プレビューと構造索引を解析しました。完全な SEMI バイナリ OASIS は安全な索引と専用カーネルの経路を使用します。",gdsLayout:"標準 GDSII バイナリレイアウトレコードを認識し、ブラウザー内で幾何プレビューと構造索引を解析しました。",cfbContainer:"Microsoft Compound File / OLE2 コンテナーを認識し、ブラウザー内でディレクトリとストリームを解析しました。",binaryIndex:"CFB コンテナーとして認識できなかったため、安全なバイナリ文字列索引で可読情報を表示します。",coverage:"{streams} 件の項目、{strings}
1 件の可読文字列、{entities} 件の EDA 構造候補を索引化しました。",layout:"{layout} を解析しました:構造 {structures} 件、幾何・参照・テキスト要素 {elements} 件。レイアウトプレビューパネルをドラッグして確認できます。",layoutOasisName:"OASIS テキスト構造",layoutGdsName:"GDSII レイアウト",titleOrcadSymbolLibrary:"OrCAD Capture シンボルライブラリ",titleOlbBinaryLibrary:"OLB バイナリライブラリ",titleOrcadDrawingLibrary:"OrCAD / Allegro 図面ライブラリ",titleDraBinaryDrawing:"DRA バイナリ図面",titleLayoutStructure:"{type} レイアウト構造",noSymbol:"明確なコンポーネントシンボル候補を検出できませんでした。独自バイナリエンコーディングの可能性があるため、専門ツールから ASCII/XML を書き出して確認してください。",noFootprint:"明確なフットプリント、図形、Padstack 候補を検出できませんでした。独自バイナリデータベース形式の可能性があります。",noGds:"明確な GDSII レイアウト構造候補を検出できませんでした。標準 GDSII バイナリではないか、独自ラッパーを使用している可能性があります。",noOasis:"明確な OASIS レイアウト構造候補を検出できませんでした。完全な OASIS 幾何プレビューには専門ライブラリまたは専用 WASM/TS カーネルが必要です。このフロントエンドパッケージはヘッダー、文字列、プロパティ、バイナリ構造の手掛かりを安全に表示します。",maxStreams:"安全上の理由から、先頭 {count} 件の CFB 項目だけを表示します。完全な確認にはファイルをダウンロードして専門 EDA ツールで開いてください。",binaryFallback:"標準 CFB コンテナーではないため、安全なバイナリ文字列索引プレビューへ切り替えました。"}},d=(e,t,r={})=>{let a=l[e]?.[t]||l["en-US"][t]||t;return Object.entries(r).reduce((e,[t,r])=>e.replace(RegExp(`\\{${t}\\}`,"g"),String(r)),a)},s=e=>new Uint8Array(e),p=(e,t,r=1/0)=>{let a=o(t);!a||e.includes(a)||e.length>=r||e.push(a)},c=/^\s*([A-Za-z][A-Za-z0-9_. /#-]{1,56})\s*[:=]\s*(.{1,240})\s*$/,m=/\b([A-Za-z][A-Za-z0-9_. /#-]{1,56})\s*=\s*([^;\n\r|]{1,240})/g,u=(e,t,r,a,i)=>{if(e.length>=420)return;let n=o(r).replace(/\s+/g," "),l=o(a);if(!n||!l)return;let d=`${i}\u0000${n.toLowerCase()}\u0000${l}`;t.has(d)||(t.add(d),e.push({key:n,value:l,source:i}))},g=(e,t)=>{let r=t.map(e=>e.toLowerCase());return e.some(e=>r.includes(e.key.toLowerCase()))},h=(e,t)=>{let r=t.map(e=>e.toLowerCase());return e.find(e=>r.includes(e.key.toLowerCase()))?.value},b=(e,t,r,a,i,n,l)=>{let d=o(`${t}
2${r}
3${a}
4${i.join("\n")}`).toLowerCase();if("/"===d||"/"===t)return"root";if("storage"===l&&/(^|\/)(library|libraries)(\/|$)/i.test(t))return"library";if(/(header|version|source|author|metadata|property|properties)/.test(d))return g(n,["Name","Pins","Footprint","Padstack"])?"property":"metadata";if("olb"===e){if(/(^|\/)(symbols?|parts?)(\/|$)/.test(d)||g(n,["Pins","Footprint","PCB Footprint","Part Number"]))return"symbol";if(/(^|\/)(library|capture|orcad)(\/|$)/.test(d))return"library"}if("dra"===e){if(/(padstack|pad stack|thermal|antipad|drill)/.test(d)||g(n,["Padstack","Drill"]))return"padstack";if(/(footprint|package|psm|bsm|fsm|ssm|symbol)/.test(d))return"footprint";if(/(route|net|via|ratsnest)/.test(d))return"net";if(/(line |arc |circle|shape|outline|silk|place_bound|assembly|soldermask|pastemask)/.test(d))return"geometry";if(/(drawing|units|layers?|constraint|allegro)/.test(d)||g(n,["Units","Layers"]))return"drawing"}if("gds"===e||"oas"===e||"oasis"===e){if(/(cell|structure|strname|sref|aref|boundary|path|polygon|layer|datatype|text|xy|gds|oas|oasis|layout)/.test(d))return"geometry";if(/(library|libname|units|precision|technology|property|properties)/.test(d))return"metadata"}return n.length?"property":"storage"===l?"library":"unknown"},f=(e,t,r,a,i,l)=>{if("storage"===i||!l){let o=b(e,t,r,"",[],[],i);return{path:t,name:r,size:a,kind:i,role:o,strings:[],properties:[]}}let d=(e=>{if(!e.length)return!1;let t=e.slice(0,Math.min(e.length,4096)),r=0,a=0;for(let e of t)0===e&&(a+=1),(9===e||10===e||13===e||e>=32&&e<=126||e>=128)&&(r+=1);return r/t.length>.82||a/t.length>.25})(l)?(e=>{let t=e.slice(0,Math.min(e.length,4096));if(!t.length)return"";try{let e=0,r=0;for(let a=0;a<t.length;a+=1)0===t[a]&&(a%2==0?r+=1:e+=1);let a=e>t.length/5&&e>2*r?new TextDecoder("utf-16le",{fatal:!1}):new TextDecoder("utf-8",{fatal:!1});return o(a.decode(t))}catch{return""}})(l):"",s=n([l],24),p=((e,t,r)=>{let a=[],i=new Set;
4return[e,...t].filter(Boolean).forEach(e=>{for(let t of(o(e).split(/\n|[|;]/).forEach(e=>{let t=e.match(c);t&&u(a,i,t[1],t[2],r)}),e.matchAll(m)))u(a,i,t[1],t[2],r)}),a})(d,s,t),g=b(e,t,r,d,s,p,d?"text":"binary");return{path:t,name:r,size:a,kind:d?"text":"binary",role:g,sample:d,hex:d?void 0:(e=>{let t=e.slice(0,Math.min(e.length,192)),r=[];for(let e=0;e<t.length;e+=16){let a=t.slice(e,e+16),i=Array.from(a).map(e=>e.toString(16).padStart(2,"0")).join(" "),o=Array.from(a).map(e=>e>=32&&e<=126?String.fromCharCode(e):".").join("");r.push(`${e.toString(16).padStart(8,"0")}  ${i.padEnd(47)}  ${o}`)}return r.join("\n")})(l),strings:s,properties:p}},w=e=>{e.children.sort((e,t)=>e.children.length!==t.children.length?t.children.length-e.children.length:e.name.localeCompare(t.name)),e.children.forEach(w)},y=e=>{if(!e)return[];let t=[];return e.split(/[,/;| ]+/).forEach(e=>{/^[A-Za-z0-9_.+-]+$/.test(e)&&p(t,e,64)}),t},v=(e,t)=>{let r=new Set(e.map(e=>`${e.key.toLowerCase()}\u0000${e.value}`));t.forEach(t=>{let a=`${t.key.toLowerCase()}\u0000${t.value}`;r.has(a)||(r.add(a),e.push(t))})},x=(e,t,r,a,i,o,n,l,s)=>{let c=i.reduce((e,t)=>e+t.size,0),m=((e,t)=>{let r=new Map;return e.forEach(e=>{let a=((e,t)=>"olb"===t?"symbol"===e.role&&"storage"!==e.kind?"symbol":null:"gds"===t||"oas"===t||"oasis"===t?"geometry"===e.role||"metadata"===e.role?"drawing":null:"padstack"===e.role?"padstack":"footprint"===e.role||"geometry"===e.role&&/\/footprint\//i.test(e.path)?"footprint":"drawing"===e.role?"drawing":null)(e,t);if(!a)return;let i=((e,t)=>{if("footprint"===t){let t=e.path.match(/^(.+?\/Footprint)(?:\/|$)/i);return t?.[1]||e.path}if("drawing"===t){let t=e.path.match(/^(.+?\/Drawing)(?:\/|$)/i);return t?.[1]||e.path}return e.path})(e,a),o=`${a}:${i.toLowerCase()}`,n=r.get(o)||{id:o,name:((e,t,r)=>{let a=h(e.properties,["Name","Part","Part Name","Symbol","Device","Footprint","PCB Footprint","Package","Padstack","Pad Stack","Drawing"]);if(a)return a;let i=(e=>{let t=e.split("/").filter(Boolean);return t[t.length-1]||e||"/"})(r).replace(/\.[a-z0-9]+$/i,"");return i&&"/"!==i?i:t.toUpperCase()})(e,a,i),role:a,path:i,streamCount:0,byteLength:0,properties:[],pins:[],layers:[],keywords:[]};n.streamCount+=1,n.byteLength+=e.size,v(n.properties,e.properties),y(h(e.properties,["Pins","Pin","Pin Numbers"])).forEach(e=>
4p(n.pins,e,96)),y(h(e.properties,["Layers","Layer"])).forEach(e=>p(n.layers,e,64)),((e,t)=>{let r=[],a=`${e.path}
5${e.sample||""}
6${e.strings.join("\n")}`.toLowerCase();return("symbol"===t?["pins","footprint","pspice","part","symbol"]:["units","layers","padstack","drill","outline","route","constraint","shape","place_bound"]).forEach(e=>{a.includes(e)&&p(r,e,12)}),r})(e,a).forEach(e=>p(n.keywords,e,16)),n.description||=h(n.properties,["Description","Desc"]),n.footprint||=h(n.properties,["Footprint","PCB Footprint","Package"]),r.set(o,n)}),Array.from(r.values()).sort((e,t)=>{let r={symbol:0,footprint:1,padstack:2,drawing:3};return(r[e.role]??9)-(r[t.role]??9)||e.name.localeCompare(t.name)})})(i,t),u=(e=>{let t=[];return e.forEach(e=>{("metadata"===e.role||"library"===e.role||"drawing"===e.role)&&v(t,e.properties)}),t.slice(0,80)})(i),g=((e,t,r,a,i,o,n,l)=>{let s=o.map((e,t)=>({level:"warning",code:`warning-${t+1}`,message:e}));s.push({level:"info",code:"parser",message:n?"oasis"===n.format?d(l,"oasisFixture"):d(l,"gdsLayout"):"cfb"===t?d(l,"cfbContainer"):d(l,"binaryIndex")}),s.push({level:"info",code:"coverage",message:d(l,"coverage",{streams:r.length,strings:i.length,entities:a.length})}),n&&s.push({level:"info",code:`${n.format}-layout`,message:d(l,"layout",{layout:d(l,"oasis"===n.format?"layoutOasisName":"layoutGdsName"),structures:n.structureCount,elements:n.elements.length})});let p="olb"===e&&!a.some(e=>"symbol"===e.role),c="dra"===e&&!a.some(e=>"footprint"===e.role||"padstack"===e.role),m=("gds"===e||"oas"===e||"oasis"===e)&&!n&&!a.some(e=>"drawing"===e.role);return(p||c||m)&&s.push({level:"warning",code:"domain-candidates",message:"olb"===e?d(l,"noSymbol"):"dra"===e?d(l,"noFootprint"):"gds"===e?d(l,"noGds"):d(l,"noOasis")}),s})(t,r,i,m,o,n,l,s);return{type:t,parser:r,title:"olb"===t?d(s,"cfb"===r?"titleOrcadSymbolLibrary":"titleOlbBinaryLibrary"):"dra"===t?d(s,"cfb"===r?"titleOrcadDrawingLibrary":"titleDraBinaryDrawing"):d(s,"titleLayoutStructure",{type:t.toUpperCase()}),byteLength:e.byteLength,streamCount:a,totalStreamBytes:c,streams:i,tree:((e,t)=>{let r={id:`${t}:root`,path:"/",name:t.toUpperCase(),kind:"storage",role:"root",size:0,children:[]},a=new Map([["/",r]]);return e.forEach(e=>{let i=e.path.split("/").filter(Boolean),o=r,n="";i.forEach((r,l)=>{n+=`/${r}`;let d=l===i.length-1,s=a.get(n);s||(s={id:`${t}:${n}`,path:n,name:r,kind:d?e.kind:"storage",role:d?e.role:b(t,n,r,"",[],[],"storage"),size:d?e.size:0,children:[]},a.set(n,s),o.children.push(s)),d&&(s.kind=e.kind,s.role=e.role,s.size=e.size),o=s})}),w(r),r.children})(i,t),entities:m,metadata:u,strings:o,warnings:n,diagnostics:g,stats:((e,t,r,a,i)=>{let o={textStreams:e.filter(e=>"text"===e.kind).length,binaryStreams:e.filter(e=>"binary"===e.kind).length,storageEntries:e.filter(e=>"storage"===e.kind).length,propertyCount:e.reduce((e,t)=>e+t.properties.length,0),stringCount:r.length,symbolCount:t.filter(e=>"symbol"===e.role).length,footprintCount:t.filter(e=>"footprint"===e.role).length,padstackCount:t.filter(e=>"padstack"===e.role).length,confidence:"low"};return i?.elements.length||"cfb"===a&&t.length&&o.propertyCount?o.confidence="high":("cfb"===a||r.length||o.propertyCount)&&(o.confidence="medium"),o})(i,m,o,r,l),layout:l}},k=async(e,t,a)=>{let i=(await Promise.all([r.e(5983),r.e(4183)]).then(r.t.bind(r,55983,19))).parse(s(e),{type:"array"}),o=i.FileIndex.map((e,t)=>({entry:e,path:i.FullPaths[t]||e.name})).filter(e=>5!==e.entry.type&&"/"!==e.path&&e.entry.name).slice(0,200),l=[],p=o.map(({entry:e,path:r})=>{if(1===e.type)return f(t,r,e.name,e.size||0,"storage");let a=(e=>e instanceof Uint8Array?e:new Uint8Array(e))(e.content||[]);return l.push(a),f(t,r,e.name,e.size||a.byteLength||0,"binary",a)}),c=o.length>=200?[d(a,"maxStreams",{count:200})]:[];return x(e,t,"cfb",i.FileIndex.length,p,n(l),c,void 0,a)},S=(e,t,r)=>{let i=s(e),o=f(t,`${t}.${t}`,`${t}.${t}`,e.byteLength,"binary",i),l="gds"===t?(0,a.k_)(i):"oas"===t||"oasis"===t?(0,a.QN)(i):void 0,p="oas"===t||"oasis"===t?(0,a._L)(i):void 0,c=l?l.warnings:p?p.warnings:[d(r,"binaryFallback")];return x(e,t,"binary",1,[o],n([i]),c,l,r)},D=async(e,t="olb",r={})=>{let a,o=r.locale||"zh-CN",n="dra"===t?"dra":"gds"===t||"oas"===t||"oasis"===t?t:"olb";if(a=s(e),!i.every((e,t)=>a[t]===e))return S(e,n,o);try{return await k(e,n,o)}catch(r){let t=S(e,n,o);return t.warnings.unshift(r instanceof Error?r.message:String(r)),t.diagnostics.unshift({level:"warning",code:"cfb-parse-failed",message:r instanceof Error?r.message:String(r)}),t}}},57118:(e,t,r)=>{r.r(t),r.d(t,{default:()=>s,edaRenderer:()=>d,edaRendererDefinition:()=>n,parseEdaFile:()=>i.A,renderFileViewerEda:()=>l});var a=r(93153),i=r(51463);let o=a.D$s.find(e=>"eda"===e.id);if(!o)throw Error("@file-viewer/renderer-eda could not locate the shared EDA renderer definition.");let n=o,l=(e,t,a,i)=>r.e(2786).then(r.bind(r,80405)).then(({default:r})=>r(e,t,a,i)),d={id:"file-viewer-renderer-eda",label:"Flyfish File Viewer EDA renderer",definitions:[n],handlers:[{rendererId:n.id,handler:l}]},s=d},75440:(e,t,r)=>{r.d(t,{_w:()=>a}),r(20810);let a=()=>{let e=new Set;
6return{emit(){e.forEach(e=>e())},subscribe:t=>(e.add(t),()=>{e.delete(t)})}}},93153:(e,t,r)=>{r.d(t,{D$s:()=>l,lic:()=>u.li});Symbol("automatic-file-viewer-asset-base");let a=["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"],i=["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"],o=["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"],n=["gif","jpg","jpeg","bmp","tiff","tif","png","svg","webp","avif","ico","heic","heif","jxl"],l=[{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-binary",label:"PowerPoint 97–2003",category:"office",extensions:["ppt"],async:!0,capabilities:{download:!0,print:"adapter",exportHtml:"adapter",zoom:"provider",search:!1}},{id:"office-presentation",label:"PowerPoint OpenXML",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","tsv","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:a,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:i,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:n,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:o,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","
6wasm","parquet","avro","webarchive"],async:!0,capabilities:{download:!0,print:!1,exportHtml:!0,zoom:!1,search:!0}}];Object.freeze(Array.from(new Set(l.flatMap(e=>e.extensions))).sort());var d=r(20810);r(75440);var s=r(97166);let p=e=>{var t;return(null==(t=e.ownerDocument)?void 0:t.defaultView)||("undefined"!=typeof window?window:void 0)},c=e=>{let t=p(e);return new Promise(e=>{if(null==t?void 0:t.requestAnimationFrame)return void t.requestAnimationFrame(()=>e());setTimeout(e,16)})},m=(e,t,r)=>Number.isFinite(e)?Number(e):Number.isFinite(t)?Number(t)*r:void 0;var u=r(29737);let g=e=>e.trim().replace(/^\./,"").toLowerCase(),h=(e=l)=>{let t=new Map,r=new Map,a=e=>{let a=(e=>({...e,extensions:e.extensions.map(g)}))(e),i=t.get(a.id);i&&i.extensions.forEach(e=>{var t;(null==(t=r.get(e))?void 0:t.id)===i.id&&r.delete(e)}),t.set(a.id,a),a.extensions.forEach(e=>{let t=r.get(e);if(t&&t.id!==a.id)throw Error(`File extension "${e}" is already registered by renderer "${t.id}".`);r.set(e,a)})};return e.forEach(a),{register:a,unregister(e){let a=t.get(e);return!!a&&(a.extensions.forEach(t=>{var a;(null==(a=r.get(t))?void 0:a.id)===e&&r.delete(t)}),t.delete(e),!0)},getById:e=>t.get(e),getByExtension:e=>r.get(g(e)),hasExtension:e=>r.has(g(e)),list:()=>Array.from(t.values()),listExtensions:()=>Array.from(r.keys()).sort()}},b=({registry:e=h(l),handlers:t,fallbackHandler:r,fallbackKey:a="error"})=>{let i=Array.from(t).reduce((e,t)=>(e.set(t.rendererId,t.handler),e),new Map),o=new Map,n=[];e.list().forEach(e=>{let t=i.get(e.id);if(!t)return void n.push(e.id);e.extensions.forEach(e=>{o.set(g(e),t)})}),r&&a&&o.set(g(a),r);let d=e=>o.get(g(e));return{handlersByRendererId:i,handlersByExtension:o,missingRendererIds:n,get:d,resolve:e=>d(e)||(a?d(a):void 0),has:e=>o.has(g(e)),listExtensions:()=>Array.from(o.keys()).sort()}};Object.freeze({download:!1,print:!1,exportHtml:!1,zoom:!1,zoomIn:!1,zoomOut:!1,zoomReset:!1}),[...o,...n],[...a,...i],Object.freeze({downloading:"正在下载文件资源...",streamingPdf:"正在建立 PDF 流式预览...",reading:"正在解析文件内容..."});let f=Object.freeze({accent:"#5f6f82",soft:"rgba(95, 111, 130, 0.12)",badge:"DOC",label:"文件内容",hint:"正在整理内容结构并生成预览。"}),w={"office-word-openxml":"@file-viewer/renderer-word","office-word-binary":"@file-viewer/renderer-word","office-presentation-binary":"@file-viewer/renderer-presentation","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"},y=new Set(["office-word-openxml","office-word-binary","office-presentation-binary","office-presentation","open-document","spreadsheet-openxml","pdf","ofd"]),v=new Set(["image","markdown","code","video","audio"]),x=new Set(["typst","archive","eda","cad","model","geo","drawing","mindmap","data-asset"]),k=({state:e,extension:t="",title:r,message:a,description:i,theme:o=f,recoverable:n})=>({state:e,extension:g(t),title:r,message:a,description:i,theme:o,recoverable:n}),S=e=>e&&"object"==typeof e?"function"==typeof e.unmount?e.unmount():"function"==typeof e.$destroy?e.$destroy():"function"==typeof e.destroy?e.destroy():void 0:void 0,D=({source:e,surface:t,options:r,signal:a,registerExportAdapter:i,registerThumbnailAdapter:o,renderContext:n})=>({filename:e.filename,url:e.url,streamUrl:e.url,signal:a,options:r,surface:t,registerExportAdapter
6:i,registerThumbnailAdapter:o,...n}),P=[{rendererId:"image",handler:async(e,t,a,i)=>{let{default:o}=await r.e(4733).then(r.bind(r,64733));return o(e,t,a,i)}}],F=["image"],T=P.filter(e=>F.includes(e.rendererId)),A=l.filter(e=>F.includes(e.id)),C=async(e,t,r,a)=>{let i=((e="",t=f,r)=>{let a=((e,t)=>{let r=g(e);if(r)return`.${r}`;let a=(0,u.li)(t);return"zh-CN"===a?"当前文件":"ja-JP"===a?"現在のファイル":"current file"})(e,r),i=((e="")=>{let t=g(e),r=l.find(e=>e.extensions.map(g).includes(t));if(!r)return null;let a=(e=>y.has(e.id)?{packageName:"@file-viewer/preset-office",vitePreset:"office",label:"Office preset"}:x.has(e.id)?{packageName:"@file-viewer/preset-engineering",vitePreset:"engineering",label:"Engineering preset"}:v.has(e.id)?{packageName:"@file-viewer/preset-lite",vitePreset:"lite",label:"Lite preset"}:{packageName:"@file-viewer/preset-all",vitePreset:"all",label:"Full preset"})(r);return{extension:t,rendererId:r.id,rendererLabel:r.label,rendererCategory:r.category,rendererPackage:w[r.id],presetPackage:a.packageName,vitePreset:a.vitePreset,presetLabel:a.label}})(e);if(i){let o=(0,u.li)(r),n=i.rendererPackage?"zh-CN"===o?`;如果需要极致裁剪,也可以只安装 ${i.rendererPackage}`:"ja-JP"===o?`;厳密に最小構成へ絞る場合は ${i.rendererPackage} のみをインストールすることもできます`:`; for a strict custom cut, install only ${i.rendererPackage}`:"";return k({state:"unsupported",extension:e,title:(0,u.Ck)(r,"state.unsupported.install.title"),message:(0,u.Ck)(r,"state.unsupported.install.message",{extension:a,rendererLabel:i.rendererLabel}),description:(0,u.Ck)(r,"state.unsupported.install.description",{extension:a,rendererLabel:i.rendererLabel,presetPackage:i.presetPackage,vitePreset:i.vitePreset,rendererTip:n}),theme:t,recoverable:!0})}return k({state:"unsupported",extension:e,title:(0,u.Ck)(r,"state.unsupported.title"),message:(0,u.Ck)(r,"state.unsupported.message",{extension:a}),description:(0,u.Ck)(r,"state.unsupported.description"),theme:t,recoverable:!0})})(r,void 0,null==a?void 0:a.options),o=document.createElement("div");o.style.textAlign="center",o.style.marginTop="80px";let n=document.createElement("div");if(n.textContent=i.message,o.appendChild(n),i.description){let e=document.createElement("div");e.textContent=i.description,o.appendChild(e)}return t.replaceChildren(o),{$el:t,unmount(){}}},M=((e={})=>{let t=e.builtinRenderers||"all",r=(({definitions:e=l,handlers:t,getTarget:r,createContext:a,destroy:i})=>{let o=h(e),n=b({registry:o,handlers:t});return{registry:h(o.list().map(e=>{let t=n.handlersByRendererId.get(e.id);return t?{...e,load:(({handler:e,rendererId:t,getTarget:r=e=>e.surface.container,createContext:a=D,destroy:i})=>async o=>{let{source:n}=o;if(!n.buffer)throw Error("FileRenderHandler renderer requires an ArrayBuffer source.");let l=r(o),u=a(o),g=await e(n.buffer,l,n.extension,u),h=(0,d.pq)(l),b=h?null:(({host:e,renderer:t,scrollTarget:r})=>{var a,i;let o=(()=>{let e=new Set;return{emit(t){e.forEach(e=>e(t))},subscribe:t=>(e.add(t),()=>{e.delete(t)})}})(),n=p(e),l=!1,u=0,g=0,h=null,b=()=>"function"==typeof r?r()||e:r||(0,d.LV)(e)||e,f=()=>(0,d.QF)(e),w=()=>{var e,r;let a=null==(r=null==(e=f())?void 0:e.getState)?void 0:r.call(e),i=b();return{renderer:t,scale:null==a?void 0:a.scale,zoom:a,scroll:i?(e=>{let t=Math.max(0,e.scrollHeight-e.clientHeight),r=Math.max(0,e.scrollWidth-e.clientWidth);return{top:e.scrollTop||0,left:e.scrollLeft||0,width:e.scrollWidth||0,height:e.scrollHeight||0,clientWidth:e.clientWidth||0,clientHeight:e.clientHeight||0,topRatio:t>0?(e.scrollTop||0)/t:0,leftRatio:r>0?(e.scrollLeft||0)/r:0}})(i):void 0}},y=(e,t="viewer")=>{if(l)return w();let r=w();return o.emit(((e,t={})=>({state:(e=>e?{...e,zoom:e.zoom?{...e.zoom}:void 0,scroll:e.scroll?{...e.scroll}:void 0,navigation:e.navigation?{...e.navigation}:void 0,extra:e.extra?{...e.extra}:void 0}:null)(e)||{},action:t.action||"init",source:t.source||"viewer",timestamp:t.timestamp||Date.now()}))(r,{action:e,source:t})),r},v=()=>{g=Math.max(g,Date.now()+180)},x=e=>{if(!e)return;let t=b(),r=Math.max(0,t.scrollHeight-t.clientHeight),a=Math.max(0,t.scrollWidth-t.clientWidth),i=m(e.top,e.topRatio,r),o=m(e.left,e.leftRatio,a);v(),void 0!==i&&(t.scrollTop=Math.min(Math.max(0,i),r)),void 0!==o&&(t.scrollLeft=Math.min(Math.max(0,o),a))},k=()=>{l||Date.now()<g||u||(u=((null==n?void 0:n.requestAnimationFrame)||(e=>setTimeout(()=>e(Date.now()),16)))(()=>{u=0,y("scroll","user")}))},S={getState:w,async applyState(t,r={}){var a,i;let o=r.source||"api",n=r.action||"restore",l=!1!==r.notify,d=f(),s=Number(null!=(a=t.scale)?a:null==(i=t.zoom)?void 0:i.scale);return(v(),Number.isFinite(s)&&(null==d?void 0:d.setZoom)&&await d.setZoom(s),await c(e),x(t.scroll),await c(e),x(t.scroll),l)?y(n,o):w()},fit:async t=>{var r,a,i,o;
6let n=f();if(null==n?void 0:n.fit)return n.fit(t);if(!(null==n?void 0:n.setZoom))return{applied:!1,mode:t.mode,resize:t.resize,source:t.source,reason:"zoom-provider-unavailable",provider:"view-state"};let l=n.getState(),d=Number(l.scale)>0?Number(l.scale):1,p=b(),m=t.viewportWidth||p.clientWidth||e.clientWidth,u=t.viewportHeight||p.clientHeight||e.clientHeight,g=Math.max(p.scrollWidth||0,e.scrollWidth||0,(null==(r=p.getBoundingClientRect)?void 0:r.call(p).width)||0),h=Math.max(p.scrollHeight||0,e.scrollHeight||0,(null==(a=p.getBoundingClientRect)?void 0:a.call(p).height)||0),w=(0,s._y)({mode:t.mode,viewportWidth:m,viewportHeight:u,contentWidth:g/d,contentHeight:h/d,currentScale:d,minScale:null!=(i=t.minScale)?i:l.minScale,maxScale:null!=(o=t.maxScale)?o:l.maxScale});if(!w)return{applied:!1,mode:t.mode,resize:t.resize,source:t.source,reason:"unmeasurable",provider:"view-state"};v(),await n.setZoom(w),await c(e);let x=y("fit",t.source);return{applied:!0,mode:t.mode,resize:t.resize,scale:w,source:t.source,provider:"view-state",state:x}},subscribe:o.subscribe};e.dataset.viewerViewStateProvider="generic",(0,d.XS)(e,S),null==(a=e.addEventListener)||a.call(e,"scroll",k,{capture:!0,passive:!0});let D=f();return h=(null==(i=null==D?void 0:D.subscribe)?void 0:i.call(D,()=>{y("zoom-change","viewer")}))||null,{provider:S,destroy(){var t;l=!0,null==h||h(),h=null,u&&(null==n?void 0:n.cancelAnimationFrame)&&n.cancelAnimationFrame(u),u=0,null==(t=e.removeEventListener)||t.call(e,"scroll",k,!0),(0,d.MA)(e)}}})({host:l,renderer:t||n.extension}),f=h||(null==b?void 0:b.provider)||null;return o.options.initialViewState&&(null==f?void 0:f.applyState)&&await f.applyState(o.options.initialViewState,{action:"restore",source:"initial"}),((e,t)=>({rendered:e,destroy:()=>t?t():S(e)}))(g,()=>{try{null==b||b.destroy()}finally{return i?i(g,o):S(g)}})})({handler:t,rendererId:e.id,getTarget:r,createContext:a,destroy:i})}:e})),dispatcher:n,missingRendererIds:n.missingRendererIds}})({definitions:(e=>"none"===e?[]:"lite"===e?A:l)(t),handlers:(e=>"none"===e?[]:"lite"===e?T:P)(t)});return{...r,dispatcher:b({registry:r.registry,handlers:P,fallbackHandler:C})}})();M.registry,M.dispatcher,M.missingRendererIds},97166:(e,t,r)=>{r.d(t,{_y:()=>a}),r(20810);let a=({mode:e,viewportWidth:t,viewportHeight:r,contentWidth:a,contentHeight:i,minScale:o,maxScale:n})=>{if(t<=0||r<=0||a<=0||i<=0)return;let l=t/a,d=r/i,s=Math.min(l,d),p=Math.max(l,d),c=(()=>{switch(e){case"cover":return p;case"width":return l;case"height":return d;case"actual":return 1;case"scale-down":return Math.min(1,s);default:return s}})();if(Number.isFinite(c)&&!(c<=0))return((e,t,r)=>{let a=e;return Number.isFinite(t)&&(a=Math.max(Number(t),a)),Number.isFinite(r)&&(a=Math.min(Number(r),a)),a})(c,o,n)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.