@flyfish-group/file-viewer3 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/README.md +16 -10
  2. package/dist/components/AudioViewer.js +1 -0
  3. package/dist/components/CadViewer.js +1 -1
  4. package/dist/components/CodeViewer.js +1 -1
  5. package/dist/components/DrawingViewer.js +1 -0
  6. package/dist/components/EpubViewer.js +1 -0
  7. package/dist/components/ImageViewer.js +1 -1
  8. package/dist/components/MarkdownViewer.js +1 -1
  9. package/dist/components/OfdViewer.js +1 -1
  10. package/dist/components/PdfView.js +1 -1
  11. package/dist/components/PptxRender.js +1 -1
  12. package/dist/components/UmdViewer.js +1 -0
  13. package/dist/components/XlsxTable.js +1 -1
  14. package/dist/components/_plugin-vue_export-helper.js +1 -1
  15. package/dist/components/ar-SA-G6X2FPQ2.js +1 -0
  16. package/dist/components/arc.js +1 -0
  17. package/dist/components/architecture-7EHR7CIX.js +1 -0
  18. package/dist/components/architectureDiagram-3BPJPVTR.js +1 -0
  19. package/dist/components/asyncToGenerator.js +1 -1
  20. package/dist/components/az-AZ-76LH7QW2.js +1 -0
  21. package/dist/components/bg-BG-XCXSNQG7.js +1 -0
  22. package/dist/components/blockDiagram-GPEHLZMM.js +1 -0
  23. package/dist/components/bn-BD-2XOGV67Q.js +1 -0
  24. package/dist/components/c4Diagram-AAUBKEIU.js +1 -0
  25. package/dist/components/ca-ES-6MX7JW3Y.js +1 -0
  26. package/dist/components/channel.js +1 -0
  27. package/dist/components/chunk-2J33WTMH.js +1 -0
  28. package/dist/components/chunk-3OPIFGDE.js +1 -0
  29. package/dist/components/chunk-4BX2VUAB.js +1 -0
  30. package/dist/components/chunk-55IACEB6.js +1 -0
  31. package/dist/components/chunk-5ZQYHXKU.js +1 -0
  32. package/dist/components/chunk-6U3AYISY.js +1 -0
  33. package/dist/components/chunk-727SXJPM.js +1 -0
  34. package/dist/components/chunk-AGHRB4JF.js +1 -0
  35. package/dist/components/chunk-AQP2D5EJ.js +1 -0
  36. package/dist/components/chunk-BSJP7CBP.js +1 -0
  37. package/dist/components/chunk-CSCIHK7Q.js +1 -0
  38. package/dist/components/chunk-EIO257PC.js +1837 -0
  39. package/dist/components/chunk-FMBD7UC4.js +1 -0
  40. package/dist/components/chunk-K2UTITRG.js +1 -0
  41. package/dist/components/chunk-KSCS5N6A.js +1 -0
  42. package/dist/components/chunk-L5ZTLDWV.js +1 -0
  43. package/dist/components/chunk-LZXEDZCA.js +1 -0
  44. package/dist/components/chunk-ND2GUHAM.js +1 -0
  45. package/dist/components/chunk-NZK2D7GU.js +1 -0
  46. package/dist/components/chunk-O5CBEL6O.js +1 -0
  47. package/dist/components/chunk-QZHKN3VN.js +1 -0
  48. package/dist/components/chunk-SRAX5OIU.js +1 -0
  49. package/dist/components/chunk-WU5MYG2G.js +1 -0
  50. package/dist/components/chunk-XPW4576I.js +1 -0
  51. package/dist/components/chunk-Z3N5DIM6.js +1 -0
  52. package/dist/components/chunk-ZUYEQ4TG.js +1 -0
  53. package/dist/components/chunk.js +1 -1
  54. package/dist/components/classDiagram-4FO5ZUOK.js +1 -0
  55. package/dist/components/classDiagram-v2-Q7XG4LA2.js +1 -0
  56. package/dist/components/cose-bilkent-S5V4N54A.js +1 -0
  57. package/dist/components/cs-CZ-2BRQDIVT.js +1 -0
  58. package/dist/components/cytoscape.esm.js +1 -0
  59. package/dist/components/da-DK-5WZEPLOC.js +1 -0
  60. package/dist/components/dagre-BM42HDAG.js +1 -0
  61. package/dist/components/dagre.js +1 -0
  62. package/dist/components/de-DE-XR44H4JA.js +1 -0
  63. package/dist/components/defaultLocale.js +1 -0
  64. package/dist/components/defineProperty.js +1 -0
  65. package/dist/components/diagram-2AECGRRQ.js +1 -0
  66. package/dist/components/diagram-5GNKFQAL.js +1 -0
  67. package/dist/components/diagram-KO2AKTUF.js +1 -0
  68. package/dist/components/diagram-LMA3HP47.js +1 -0
  69. package/dist/components/diagram-OG6HWLK6.js +1 -0
  70. package/dist/components/directory-open-01563666.js +1 -0
  71. package/dist/components/directory-open-4ed118d0.js +1 -0
  72. package/dist/components/dist.js +1 -1
  73. package/dist/components/dist2.js +1 -0
  74. package/dist/components/dist3.js +1 -0
  75. package/dist/components/docx-preview.js +1 -1
  76. package/dist/components/el-GR-BZB4AONW.js +1 -0
  77. package/dist/components/en-B4ZKOASM.js +1 -0
  78. package/dist/components/erDiagram-TEJ5UH35.js +1 -0
  79. package/dist/components/es-ES-U4NZUMDT.js +1 -0
  80. package/dist/components/eu-ES-A7QVB2H4.js +1 -0
  81. package/dist/components/eventmodeling-FCH6USID.js +1 -0
  82. package/dist/components/fa-IR-HGAKTJCU.js +1 -0
  83. package/dist/components/fi-FI-Z5N7JZ37.js +1 -0
  84. package/dist/components/file-open-002ab408.js +1 -0
  85. package/dist/components/file-open-7c801643.js +1 -0
  86. package/dist/components/file-save-3189631c.js +1 -0
  87. package/dist/components/file-save-745eba88.js +1 -0
  88. package/dist/components/flowDiagram-I6XJVG4X.js +1 -0
  89. package/dist/components/fr-FR-RHASNOE6.js +1 -0
  90. package/dist/components/ganttDiagram-6RSMTGT7.js +1 -0
  91. package/dist/components/gitGraph-WXDBUCRP.js +1 -0
  92. package/dist/components/gitGraphDiagram-PVQCEYII.js +1 -0
  93. package/dist/components/gl-ES-HMX3MZ6V.js +1 -0
  94. package/dist/components/graphlib.js +1 -0
  95. package/dist/components/he-IL-6SHJWFNN.js +1 -0
  96. package/dist/components/hi-IN-IWLTKZ5I.js +1 -0
  97. package/dist/components/hu-HU-A5ZG7DT2.js +1 -0
  98. package/dist/components/id-ID-SAP4L64H.js +1 -0
  99. package/dist/components/image-GAAHSSAO.js +1 -0
  100. package/dist/components/image-blob-reduce.esm.js +1 -0
  101. package/dist/components/info-J43DQDTF.js +1 -0
  102. package/dist/components/infoDiagram-5YYISTIA.js +1 -0
  103. package/dist/components/init.js +1 -0
  104. package/dist/components/ishikawaDiagram-YF4QCWOH.js +1 -0
  105. package/dist/components/it-IT-JPQ66NNP.js +1 -0
  106. package/dist/components/ja-JP-DBVTYXUO.js +1 -0
  107. package/dist/components/journeyDiagram-JHISSGLW.js +1 -0
  108. package/dist/components/jszip.min.js +1 -1
  109. package/dist/components/kaa-6HZHGXH3.js +1 -0
  110. package/dist/components/kab-KAB-ZGHBKWFO.js +1 -0
  111. package/dist/components/kanban-definition-UN3LZRKU.js +1 -0
  112. package/dist/components/katex.js +1 -0
  113. package/dist/components/kk-KZ-P5N5QNE5.js +1 -0
  114. package/dist/components/km-KH-HSX4SM5Z.js +1 -0
  115. package/dist/components/ko-KR-MTYHY66A.js +1 -0
  116. package/dist/components/ku-TR-6OUDTVRD.js +1 -0
  117. package/dist/components/linear.js +1 -0
  118. package/dist/components/lt-LT-XHIRWOB4.js +1 -0
  119. package/dist/components/lv-LV-5QDEKY6T.js +1 -0
  120. package/dist/components/mermaid-parser.core.js +1 -0
  121. package/dist/components/mindmap-definition-RKZ34NQL.js +1 -0
  122. package/dist/components/mr-IN-CRQNXWMA.js +1 -0
  123. package/dist/components/my-MM-5M5IBNSE.js +1 -0
  124. package/dist/components/nb-NO-T6EIAALU.js +1 -0
  125. package/dist/components/nl-NL-IS3SIHDZ.js +1 -0
  126. package/dist/components/nn-NO-6E72VCQL.js +1 -0
  127. package/dist/components/objectSpread2.js +1 -1
  128. package/dist/components/objectWithoutProperties.js +1 -0
  129. package/dist/components/oc-FR-POXYY2M6.js +1 -0
  130. package/dist/components/ofd.js +1 -1
  131. package/dist/components/ordinal.js +1 -0
  132. package/dist/components/pa-IN-N4M65BXN.js +1 -0
  133. package/dist/components/packet-YPE3B663.js +1 -0
  134. package/dist/components/percentages-BXMCSKIN.js +1 -0
  135. package/dist/components/pica.js +1 -0
  136. package/dist/components/pie-LRSECV5Y.js +1 -0
  137. package/dist/components/pie.js +1 -0
  138. package/dist/components/pieDiagram-4H26LBE5.js +1 -0
  139. package/dist/components/pl-PL-T2D74RX3.js +1 -0
  140. package/dist/components/prod.js +1 -0
  141. package/dist/components/pt-BR-5N22H2LF.js +1 -0
  142. package/dist/components/pt-PT-UZXXM6DQ.js +1 -0
  143. package/dist/components/quadrantDiagram-W4KKPZXB.js +1 -0
  144. package/dist/components/radar-GUYGQ44K.js +1 -0
  145. package/dist/components/requirementDiagram-4Y6WPE33.js +1 -0
  146. package/dist/components/ro-RO-JPDTUUEW.js +1 -0
  147. package/dist/components/rough.esm.js +1 -0
  148. package/dist/components/roundRect.js +1 -0
  149. package/dist/components/ru-RU-B4JR7IUQ.js +1 -0
  150. package/dist/components/sankeyDiagram-5OEKKPKP.js +1 -0
  151. package/dist/components/sequenceDiagram-3UESZ5HK.js +1 -0
  152. package/dist/components/si-LK-N5RQ5JYF.js +1 -0
  153. package/dist/components/sk-SK-C5VTKIMK.js +1 -0
  154. package/dist/components/sl-SI-NN7IZMDC.js +1 -0
  155. package/dist/components/src.js +1 -0
  156. package/dist/components/src2.js +1 -0
  157. package/dist/components/stateDiagram-AJRCARHV.js +1 -0
  158. package/dist/components/stateDiagram-v2-BHNVJYJU.js +1 -0
  159. package/dist/components/subset-shared.chunk.js +1 -0
  160. package/dist/components/subset-worker.chunk.js +1 -0
  161. package/dist/components/sv-SE-XGPEYMSR.js +1 -0
  162. package/dist/components/ta-IN-2NMHFXQM.js +1 -0
  163. package/dist/components/th-TH-HPSO5L25.js +1 -0
  164. package/dist/components/time.js +1 -0
  165. package/dist/components/timeline-definition-PNZ67QCA.js +1 -0
  166. package/dist/components/tr-TR-DEFEU3FU.js +1 -0
  167. package/dist/components/treeView-BLDUP644.js +1 -0
  168. package/dist/components/treemap-LRROVOQU.js +1 -0
  169. package/dist/components/uk-UA-QMV73CPH.js +1 -0
  170. package/dist/components/use.js +1 -1
  171. package/dist/components/util.js +1 -0
  172. package/dist/components/vennDiagram-CIIHVFJN.js +1 -0
  173. package/dist/components/vi-VN-M7AON7JQ.js +1 -0
  174. package/dist/components/wardley-L42UT6IY.js +1 -0
  175. package/dist/components/wardleyDiagram-YWT4CUSO.js +1 -0
  176. package/dist/components/worker-ref.js +1 -1
  177. package/dist/components/wrapAsyncGenerator.js +1 -1
  178. package/dist/components/xychartDiagram-2RQKCTM6.js +1 -0
  179. package/dist/components/zh-CN-LNUGB5OW.js +1 -0
  180. package/dist/components/zh-HK-E62DVLB3.js +1 -0
  181. package/dist/components/zh-TW-RAJ6MFWO.js +1 -0
  182. package/dist/file-viewer3.css +1 -1
  183. package/dist/index.mjs +1 -1
  184. package/dist/index.umd.js +4737 -1
  185. package/dist/src/package/common/worker-ref.d.ts +1 -1
  186. package/dist/src/package/vendors/audio/AudioViewer.vue.d.ts +7 -0
  187. package/dist/src/package/vendors/audio/index.d.ts +7 -0
  188. package/dist/src/package/vendors/drawing/DrawingViewer.vue.d.ts +15 -0
  189. package/dist/src/package/vendors/drawing/index.d.ts +7 -0
  190. package/dist/src/package/vendors/ebook/EpubViewer.vue.d.ts +6 -0
  191. package/dist/src/package/vendors/ebook/index.d.ts +7 -0
  192. package/dist/src/package/vendors/umd/UmdViewer.vue.d.ts +6 -0
  193. package/dist/src/package/vendors/umd/index.d.ts +7 -0
  194. package/dist/src/package/vendors/umd/parser.d.ts +30 -0
  195. package/dist/worker/pdf.worker.js +50 -1
  196. package/dist/worker/pptx.worker.js +1 -1
  197. package/dist/worker/sheet.worker.js +1 -1
  198. package/package.json +23 -3
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Flyfish Viewer
2
2
 
3
- 把 Word、Excel、PPT、PDF 和图片稳稳带进浏览器里。
3
+ 把 Word、Excel、PPT、PDF、音频和电子书稳稳带进浏览器里。
4
4
 
5
5
  `@flyfish-group/file-viewer3` 是一款基于 Vue 3、TypeScript 和 Vite 构建的纯前端文件预览组件。Vue2.7 项目请使用同能力包 `@flyfish-group/file-viewer`。两条 npm 包线保持一致的格式覆盖、示例体验和 API 语义,在线 Demo 始终使用 `v3` 分支产物作为最新体验基准。
6
6
 
@@ -11,22 +11,22 @@
11
11
  - npm(Vue3): [@flyfish-group/file-viewer3](https://www.npmjs.com/package/@flyfish-group/file-viewer3)
12
12
  - npm(Vue2): [@flyfish-group/file-viewer](https://www.npmjs.com/package/@flyfish-group/file-viewer)
13
13
  - 公开成品仓库: [github.com/flyfish-dev/file-viewer](https://github.com/flyfish-dev/file-viewer)
14
- - 源码自助开通: [dev.flyfish.group/shop](https://dev.flyfish.group/shop)
14
+ - 源码自助开通: [https://dev.flyfish.group/shop](https://dev.flyfish.group/shop)
15
15
 
16
16
  ## 当前发布版本
17
17
 
18
18
  | 技术栈 | npm 包 | 最新版本 | 推荐分支 | 说明 |
19
19
  | --- | --- | --- | --- | --- |
20
- | Vue3 | `@flyfish-group/file-viewer3` | `1.0.8` | `v3` | 主推版本,在线 Demo 与后续上线均以此为准 |
21
- | Vue2.7 | `@flyfish-group/file-viewer` | `1.0.8` | `main` | 兼容 Vue2 项目,格式能力与 Vue3 保持一致 |
20
+ | Vue3 | `@flyfish-group/file-viewer3` | `1.0.9` | `v3` | 主推版本,在线 Demo 与后续上线均以此为准 |
21
+ | Vue2.7 | `@flyfish-group/file-viewer` | `1.0.9` | `main` | 兼容 Vue2 项目,格式能力与 Vue3 保持一致 |
22
22
 
23
23
  ![Flyfish Viewer demo](https://doc.flyfish.dev/_images/demo-main.png)
24
24
 
25
25
  ## 为什么值得接入
26
26
 
27
27
  - **纯前端 Serverless。** 文档解析和展示全部在浏览器内完成,部署简单,不依赖 Office 服务端、LibreOffice 守护进程或额外转码链路。
28
- - **格式覆盖完整。** 当前内置 59 个扩展名映射,覆盖 Word、Excel、PowerPoint、PDF、OFD、CAD、Markdown、图片、代码/文本和 MP4,能覆盖绝大多数业务附件场景。
29
- - **按需异步加载。** PDF、OFD、CADOffice、Markdown 和代码高亮渲染器都按需加载,重型解析依赖不会进入其他格式的首屏路径。
28
+ - **格式覆盖完整。** 当前内置 74 个扩展名映射,覆盖 Word、Excel、PowerPoint、PDF、OFD、CAD、Excalidraw、draw.io、EPUB、UMD、Markdown、图片、音频、代码/文本和 MP4,能覆盖绝大多数业务附件场景。
29
+ - **按需异步加载。** PDF、OFD、CAD、绘图、Office、EPUB、UMD、Markdown 和代码高亮渲染器都按需加载,重型解析依赖不会进入其他格式的首屏路径。
30
30
  - **阅读体验更像产品。** `.doc`、`.docx`、PDF 都保留灰色工作台、白色纸张、居中阅读和自适应缩放,避免“内容能打开但不好读”的落差。
31
31
  - **Demo 更适合验收。** 示例文件按文档、表格、图纸、代码、图片等类型分组展示,点击样例即可打开并自动收起选择器。
32
32
  - **Vue2 / Vue3 体验一致。** `main` 分支面向 Vue2.7,`v3` 分支面向 Vue3;两边共享完整格式覆盖、示例文件盒子、文档站和 iframe 集成体验。
@@ -35,7 +35,7 @@
35
35
 
36
36
  ## 支持格式
37
37
 
38
- 当前版本内置 59 个扩展名映射,覆盖 11 条预览链路。
38
+ 当前版本内置 74 个扩展名映射,覆盖 15 条预览链路。
39
39
 
40
40
  | 类别 | 扩展名 | 当前表现 | 适合场景 |
41
41
  | --- | --- | --- | --- |
@@ -43,14 +43,19 @@
43
43
  | Word | `doc` | `msdoc-viewer` + Word 风格页面容器 | 历史 `.doc` 老文档 |
44
44
  | Excel | `xlsx` | `styled-exceljs` + 虚拟滚动,支持尺寸、合并和常见样式 | 需要保留表格结构和样式的业务 |
45
45
  | Excel 兼容格式 | `xlsm`、`xlsb`、`xls`、`csv`、`ods`、`fods`、`numbers` | 统一解析,按格式可用信息渐进还原样式 | 老表格、轻量数据查看 |
46
- | PowerPoint | `pptx` | 浏览幻灯片内容 | 汇报材料、课件、方案 |
46
+ | PowerPoint | `pptx` | 浏览幻灯片内容,增强组合图形、主题背景、图片裁剪与 EMF 矢量图预览 | 汇报材料、课件、方案 |
47
47
  | PDF | `pdf` | 基于 `pdfjs-dist` 预览,支持缩放工具栏、页码状态和可显隐导航窗格 | 合同、票据、版式成品 |
48
48
  | OFD | `ofd` | 基于 `DLTech21/ofd.js` 仓库源码在线预览国产版式文档,避开 npm dist 授权 wasm 分支 | 电子发票、公文、归档材料 |
49
49
  | CAD | `dxf` | 基于 `@cadview/core` 预览图纸,支持缩放、平移、图层控制 | 工程图纸、二维 CAD 附件 |
50
50
  | CAD 兼容入口 | `dwg` | 提示转换为 DXF 后预览,不内置 GPL DWG 解析器 | 需要兼容上传入口的业务 |
51
+ | Excalidraw | `excalidraw` | 基于官方 `@excalidraw/excalidraw` 的 `restore` + `exportToSvg` 输出只读预览 | 白板草图、流程草稿、产品沟通图 |
52
+ | draw.io | `drawio`、`dio` | 基于官方 diagrams.net `GraphViewer` 预览 mxGraphModel / mxfile | 流程图、架构图、业务泳道图 |
53
+ | 电子书 | `epub` | 基于 `epubjs` 解析目录和章节资源,使用兼容性更好的滚动阅读 | 电子书、培训手册、长篇阅读材料 |
54
+ | 电子书 | `umd` | 按 UMD 移动电子书结构解析元数据、目录和 zlib 压缩正文 | 旧移动电子书、历史小说附件 |
51
55
  | Markdown | `md`、`markdown` | Markdown 阅读样式 | README、知识文档、说明文档 |
52
56
  | 图片 | `gif`、`jpg`、`jpeg`、`bmp`、`tiff`、`tif`、`png`、`svg`、`webp` | 原生图片浏览 | 图片附件、设计稿、Logo |
53
- | 代码/文本 | `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` | 使用 `highlight.js` 轻量高亮,HTML 按源码展示 | 日志、配置、代码片段 |
57
+ | 代码/文本 | `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` | 使用 `highlight.js` 轻量高亮,HTML 按源码展示 | 日志、配置、代码片段、接口响应 |
58
+ | 音频 | `mp3`、`mpeg`、`wav`、`ogg`、`oga`、`opus`、`m4a`、`aac`、`flac`、`weba` | 浏览器原生音频播放,带控制条和基础进度信息 | 录音、播客、语音附件、音效素材 |
54
59
  | 视频 | `mp4` | 浏览器原生视频播放 | 演示视频、录屏 |
55
60
 
56
61
  ## 三条接入路线
@@ -145,7 +150,8 @@ export default {
145
150
  - 预览器会填满父容器,请为父容器提供稳定高度
146
151
  - 使用 `url` 预览时,目标资源需要允许浏览器访问;跨域场景下需要正确配置 CORS
147
152
  - 如果下载地址本身没有明确扩展名,建议先在业务侧取回文件,再包装成 `File`
148
- - OFD、CAD、PDF、Office、Markdown 和代码高亮渲染器都按需异步加载,只有命中格式时才拉取对应代码块
153
+ - PPTX 渲染器会尽量还原常见组合图形、旋转/翻转、主题背景、图片裁剪和 EMF 矢量图片;复杂 Office 特效仍建议用真实业务文件做回归
154
+ - OFD、CAD、绘图、EPUB、UMD、PDF、Office、Markdown、音频和代码高亮渲染器都按需异步加载,只有命中格式时才拉取对应代码块
149
155
 
150
156
  ```ts
151
157
  const blob = await response.blob()
@@ -0,0 +1 @@
1
+ function b(){var ab=['1664109WsnSeY','floor','div','12352824AIvAVA','159lLvycy','metadata','20548IqzpIE','6554904sVuPIO','audio-meter','audio-viewer','value','padStart','1440368rQeqfS','2rLtlTT','audio-copy','10FIVRmj','audio/wav','259DiwUJs','163686pFRYfj','4654885qDJErq'];b=function(){return ab;};return b();}var a7=j;(function(H,I){var a6=j,J=H();while(!![]){try{var K=-parseInt(a6(0x14c))/0x1*(-parseInt(a6(0x14d))/0x2)+parseInt(a6(0x144))/0x3*(-parseInt(a6(0x146))/0x4)+-parseInt(a6(0x153))/0x5+-parseInt(a6(0x152))/0x6*(-parseInt(a6(0x151))/0x7)+parseInt(a6(0x147))/0x8+-parseInt(a6(0x154))/0x9*(parseInt(a6(0x14f))/0xa)+-parseInt(a6(0x143))/0xb;if(K===I)break;else J['push'](J['shift']());}catch(L){J['push'](J['shift']());}}}(b,0xb90f5));import{t as k}from'./_plugin-vue_export-helper.js';import{computed as q,createElementBlock as w,createElementVNode as x,defineComponent as z,normalizeStyle as A,onBeforeUnmount as B,onMounted as C,openBlock as D,ref as E,toDisplayString as F,watch as G}from'vue';var f={'class':a7(0x149)},p={'class':'audio-card'},m={'class':a7(0x14e)},h={'class':'audio-kicker'},g={'class':a7(0x148)},_={'class':'audio-progress','aria-hidden':'true'},v=['src'],y=k(z({'__name':'AudioViewer','props':{'data':{},'type':{}},'setup'(H){var a8=a7;let I=H,J=E(null),K=E(''),L=E(0x0),P=E(0x0),Q=E(!0x1),R={'aac':'audio/aac','flac':'audio/flac','m4a':'audio/mp4','mp3':'audio/mpeg','mpeg':'audio/mpeg','oga':'audio/ogg','ogg':'audio/ogg','opus':'audio/ogg;\x20codecs=opus','wav':a8(0x150),'weba':'audio/webm'},U=q(()=>I['type']['trim']()['toLowerCase']()),V=q(()=>R[U['value']]||'audio/*'),W=q(()=>U['value']['toUpperCase']()||'AUDIO'),X=q(()=>!Number['isFinite'](P['value'])||P['value']<=0x0?0x0:Math['min'](0x64,Math['max'](0x0,L['value']/P[a8(0x14a)]*0x64))),Y=a3=>{var a9=a8;if(!Number['isFinite'](a3)||a3<=0x0)return'00:00';let a4=Math['floor'](a3/0x3c),a5=Math[a9(0x155)](a3%0x3c);return String(a4)[a9(0x14b)](0x2,'0')+':'+String(a5)['padStart'](0x2,'0');},Z=()=>{var aa=a8;K['value']&&(URL['revokeObjectURL'](K['value']),K[aa(0x14a)]='');},a0=()=>{Z(),L['value']=0x0,P['value']=0x0,Q['value']=!0x1,K['value']=URL['createObjectURL'](new Blob([I['data']],{'type':V['value']}));},a1=()=>{var a3;P['value']=((a3=J['value'])==null?void 0x0:a3['duration'])||0x0,Q['value']=!0x0;},a2=()=>{var a3;L['value']=((a3=J['value'])==null?void 0x0:a3['currentTime'])||0x0;};return C(a0),G(()=>[I['data'],I['type']],a0),B(Z),(a3,a4)=>(D(),w('div',f,[x('section',p,[a4[0x2]||(a4[0x2]=x('div',{'class':'audio-art'},[x('span'),x('i')],-0x1)),x('div',m,[x('span',h,F(W['value']),0x1),a4[0x0]||(a4[0x0]=x('strong',null,'音频预览',-0x1)),a4[0x1]||(a4[0x1]=x('p',null,'使用浏览器原生播放器打开,兼容性取决于当前浏览器支持的音频编码。',-0x1))]),x(a8(0x142),g,[x('span',null,F(Y(L['value'])),0x1),x('div',_,[x('i',{'style':A({'width':X['value']+'%'})},null,0x4)]),x('span',null,F(Q['value']?Y(P['value']):'--:--'),0x1)]),x('audio',{'ref_key':'audioRef','ref':J,'class':'audio-control','src':K['value'],'controls':'','preload':a8(0x145),'onLoadedmetadata':a1,'onTimeupdate':a2},'\x20当前浏览器不支持音频播放。\x20',0x28,v)])]));}}),[['__scopeId','data-v-608bd328']]);function j(a,c){a=a-0x142;var d=b();var e=d[a];return e;}export{y as default};
@@ -1 +1 @@
1
- const af=k;(function(R,U){const ae=k,V=R();while(!![]){try{const W=-parseInt(ae(0x10c))/0x1+-parseInt(ae(0x10d))/0x2+parseInt(ae(0x11e))/0x3*(parseInt(ae(0x119))/0x4)+parseInt(ae(0x10b))/0x5*(-parseInt(ae(0x109))/0x6)+-parseInt(ae(0x114))/0x7+parseInt(ae(0x11b))/0x8*(parseInt(ae(0x120))/0x9)+parseInt(ae(0x11c))/0xa;if(W===U)break;else V['push'](V['shift']());}catch(X){V['push'](V['shift']());}}}(j,0x1e3ab));import{n as q,t}from'./asyncToGenerator.js';import{n,t as z}from'./objectSpread2.js';import{t as A}from'./_plugin-vue_export-helper.js';function k(a,b){a=a-0x108;const c=j();let d=c[a];return d;}import{Fragment as B,createCommentVNode as F,createElementBlock as G,createElementVNode as H,defineComponent as I,nextTick as J,normalizeClass as K,onBeforeUnmount as L,onMounted as M,openBlock as N,ref as O,renderList as P,toDisplayString as Q}from'vue';n(),q();function j(){const an=['4518550gbYyyd','resize','163491FLmisT','button','98595ltelkY','cad-layers','error','onClick','86370HsmPuJ','cad-tools','30uQIgts','225067llbyNj','414306yWypdd','value','ready','canvas','measure','div','isOff','351246ZlGRqT','requestRender','length','name','setTool','4mmkgBT','toUpperCase','136QiStwx'];j=function(){return an;};return j();}var v={'class':'cad-viewer'},y={'class':'cad-toolbar'},b={'class':af(0x10a)},x={'class':'cad-body'},S={'key':0x0,'class':af(0x121)},C=[af(0x108)],w={'class':'cad-canvas-wrap'},T={'key':0x0,'class':'cad-state'},E={'key':0x1,'class':'cad-state\x20error'},D=A(I({'__name':'CadViewer','props':{'data':{},'type':{}},'setup'(U){const am=af;let V=U,W=O(null),X=O([]),Y=O('pan'),Z=O('loading'),a0=O(''),a1=null,a2=null,a3={'dwg':'DWG\x20是专有\x20CAD\x20格式,当前\x20Apache\x20许可包未内置\x20GPL\x20转换器。请优先上传\x20DXF,或在业务侧转换为\x20DXF\x20后预览。'},a4=aa=>aa instanceof Error?aa['message']:typeof aa=='string'?aa:JSON['stringify'](aa),a5=aa=>{const ag=k;Y['value']=aa,a1==null||a1[ag(0x118)](aa);},a6=()=>{const ah=k;a1==null||a1[ah(0x11d)](),a1==null||a1['fitToView']();},a7=aa=>{const ai=k;let ab=aa['isOff'];a1==null||a1['setLayerVisible'](aa['name'],ab),X[ai(0x10e)]=X['value']['map'](ac=>ac['name']===aa[ai(0x117)]?z(z({},ac),{},{'isOff':!ab}):ac);},a8=(function(){var aa=t(function*(){const aj=k;let ab=W['value'];if(ab){Z['value']='loading',a0[aj(0x10e)]='';try{let {CadViewer:ac}=yield import('./dist.js');a1==null||a1['destroy'](),a1=new ac(ab,{'theme':'light','initialTool':Y[aj(0x10e)],'worker':!0x1}),a1['loadArrayBuffer'](V['data']),yield J(),a6(),X['value']=a1['getLayers'](),Z[aj(0x10e)]=aj(0x10f);}catch(ad){console[aj(0x122)](ad),Z['value']='error',a0['value']=a4(ad)||'CAD\x20图纸解析失败';}}});return function(){return aa['apply'](this,arguments);};}()),a9=(function(){var aa=t(function*(){const ak=k;let ab=V['type']['toLowerCase']();if(a3[ab]){Z['value']=ak(0x122),a0['value']=a3[ab];return;}yield a8();});return function(){return aa['apply'](this,arguments);};}());return M(()=>{a9();let aa=W['value'];aa&&(a2=new ResizeObserver(()=>{const al=k;a1==null||a1['resize'](),a1==null||a1[al(0x115)]();}),a2['observe'](aa));}),L(()=>{a2==null||a2['disconnect'](),a2=null,a1==null||a1['destroy'](),a1=null;}),(aa,ab)=>(N(),G('div',v,[H('div',y,[H(am(0x112),b,[H(am(0x11f),{'type':'button','class':K({'active':Y['value']==='pan'}),'onClick':ab[0x0]||(ab[0x0]=ac=>a5('pan'))},'平移',0x2),H('button',{'type':'button','class':K({'active':Y['value']==='select'}),'onClick':ab[0x1]||(ab[0x1]=ac=>a5('select'))},'选择',0x2),H('button',{'type':'button','class':K({'active':Y['value']==='measure'}),'onClick':ab[0x2]||(ab[0x2]=ac=>a5(am(0x111)))},'测量',0x2),H('button',{'type':'button','onClick':a6},'适配')]),H('span',null,Q(U['type'][am(0x11a)]()),0x1)]),H('div',x,[X['value'][am(0x116)]?(N(),G('aside',S,[(N(!0x0),G(B,null,P(X['value'],ac=>(N(),G('button',{'key':ac['name'],'type':'button','class':K({'muted':ac[am(0x113)]}),'onClick':ad=>a7(ac)},Q(ac['name']),0xb,C))),0x80))])):F('',!0x0),H(am(0x112),w,[H(am(0x110),{'ref_key':'canvas','ref':W},null,0x200),Z['value']==='loading'?(N(),G(am(0x112),T,'正在解析\x20CAD...')):Z['value']===am(0x122)?(N(),G('div',E,Q(a0['value']),0x1)):F('',!0x0)])])]));}}),[['__scopeId','data-v-cf49f0f1']]);export{D as default};
1
+ function k(a,b){a=a-0x1b7;const c=j();let d=c[a];return d;}const aj=k;function j(){const ak=['value','2582510ZAnvdf','message','1750554zZtTDu','error','aside','218206WLSzYx','button','342WxzBLb','13190573HmtCdl','29272nfZMnG','10nuqEeM','__scopeId','4JcZfTj','toUpperCase','CAD\x20图纸解析失败','name','2325410ySHEOy','toLowerCase','div','5660bmigil','501KOTzFY'];j=function(){return ak;};return j();}(function(R,U){const ae=k,V=R();while(!![]){try{const W=-parseInt(ae(0x1bc))/0x1+-parseInt(ae(0x1ca))/0x2*(-parseInt(ae(0x1cb))/0x3)+parseInt(ae(0x1c3))/0x4*(parseInt(ae(0x1c7))/0x5)+parseInt(ae(0x1b9))/0x6+parseInt(ae(0x1b7))/0x7+parseInt(ae(0x1c0))/0x8*(parseInt(ae(0x1be))/0x9)+parseInt(ae(0x1c1))/0xa*(-parseInt(ae(0x1bf))/0xb);if(W===U)break;else V['push'](V['shift']());}catch(X){V['push'](V['shift']());}}}(j,0x4e24a));import{n as q,t}from'./asyncToGenerator.js';import{n,t as z}from'./objectSpread2.js';import{t as A}from'./_plugin-vue_export-helper.js';import{Fragment as B,createCommentVNode as F,createElementBlock as G,createElementVNode as H,defineComponent as I,nextTick as J,normalizeClass as K,onBeforeUnmount as L,onMounted as M,openBlock as N,ref as O,renderList as P,toDisplayString as Q}from'vue';n(),q();var v={'class':'cad-viewer'},y={'class':'cad-toolbar'},b={'class':'cad-tools'},x={'class':'cad-body'},S={'key':0x0,'class':'cad-layers'},C=['onClick'],w={'class':'cad-canvas-wrap'},T={'key':0x0,'class':'cad-state'},E={'key':0x1,'class':'cad-state\x20error'},D=A(I({'__name':'CadViewer','props':{'data':{},'type':{}},'setup'(U){const af=k;let V=U,W=O(null),X=O([]),Y=O('pan'),Z=O('loading'),a0=O(''),a1=null,a2=null,a3={'dwg':'DWG\x20是专有\x20CAD\x20格式,当前\x20Apache\x20许可包未内置\x20GPL\x20转换器。请优先上传\x20DXF,或在业务侧转换为\x20DXF\x20后预览。'},a4=aa=>aa instanceof Error?aa[af(0x1b8)]:typeof aa=='string'?aa:JSON['stringify'](aa),a5=aa=>{Y['value']=aa,a1==null||a1['setTool'](aa);},a6=()=>{a1==null||a1['resize'](),a1==null||a1['fitToView']();},a7=aa=>{const ag=af;let ab=aa['isOff'];a1==null||a1['setLayerVisible'](aa['name'],ab),X['value']=X['value']['map'](ac=>ac['name']===aa[ag(0x1c6)]?z(z({},ac),{},{'isOff':!ab}):ac);},a8=(function(){var aa=t(function*(){const ah=k;let ab=W['value'];if(ab){Z[ah(0x1cc)]='loading',a0['value']='';try{let {CadViewer:ac}=yield import('./dist.js');a1==null||a1['destroy'](),a1=new ac(ab,{'theme':'light','initialTool':Y[ah(0x1cc)],'worker':!0x1}),a1['loadArrayBuffer'](V['data']),yield J(),a6(),X[ah(0x1cc)]=a1['getLayers'](),Z['value']='ready';}catch(ad){console['error'](ad),Z['value']='error',a0['value']=a4(ad)||ah(0x1c5);}}});return function(){return aa['apply'](this,arguments);};}()),a9=(function(){var aa=t(function*(){const ai=k;let ab=V['type'][ai(0x1c8)]();if(a3[ab]){Z[ai(0x1cc)]=ai(0x1ba),a0['value']=a3[ab];return;}yield a8();});return function(){return aa['apply'](this,arguments);};}());return M(()=>{a9();let aa=W['value'];aa&&(a2=new ResizeObserver(()=>{a1==null||a1['resize'](),a1==null||a1['requestRender']();}),a2['observe'](aa));}),L(()=>{a2==null||a2['disconnect'](),a2=null,a1==null||a1['destroy'](),a1=null;}),(aa,ab)=>(N(),G('div',v,[H('div',y,[H('div',b,[H(af(0x1bd),{'type':'button','class':K({'active':Y['value']==='pan'}),'onClick':ab[0x0]||(ab[0x0]=ac=>a5('pan'))},'平移',0x2),H('button',{'type':'button','class':K({'active':Y['value']==='select'}),'onClick':ab[0x1]||(ab[0x1]=ac=>a5('select'))},'选择',0x2),H('button',{'type':af(0x1bd),'class':K({'active':Y['value']==='measure'}),'onClick':ab[0x2]||(ab[0x2]=ac=>a5('measure'))},'测量',0x2),H(af(0x1bd),{'type':'button','onClick':a6},'适配')]),H('span',null,Q(U['type'][af(0x1c4)]()),0x1)]),H(af(0x1c9),x,[X['value']['length']?(N(),G(af(0x1bb),S,[(N(!0x0),G(B,null,P(X['value'],ac=>(N(),G('button',{'key':ac['name'],'type':'button','class':K({'muted':ac['isOff']}),'onClick':ad=>a7(ac)},Q(ac['name']),0xb,C))),0x80))])):F('',!0x0),H('div',w,[H('canvas',{'ref_key':'canvas','ref':W},null,0x200),Z['value']==='loading'?(N(),G('div',T,'正在解析\x20CAD...')):Z['value']==='error'?(N(),G('div',E,Q(a0['value']),0x1)):F('',!0x0)])])]));}}),[[aj(0x1c2),'data-v-cf49f0f1']]);export{D as default};