@l1yp/file-viewer 0.1.0

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 (373) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +134 -0
  3. package/dist/FileViewer.js +7 -0
  4. package/dist/FileViewer.vue.d.ts +37 -0
  5. package/dist/FileViewer.vue_vue_type_script_setup_true_lang.js +103 -0
  6. package/dist/_virtual/_plugin-vue_export-helper.js +8 -0
  7. package/dist/components/AppxViewer.js +7 -0
  8. package/dist/components/AppxViewer.vue.d.ts +18 -0
  9. package/dist/components/AppxViewer.vue_vue_type_script_setup_true_lang.js +174 -0
  10. package/dist/components/ArchiveBrowser.js +7 -0
  11. package/dist/components/ArchiveBrowser.vue.d.ts +18 -0
  12. package/dist/components/ArchiveBrowser.vue_vue_type_script_setup_true_lang.js +279 -0
  13. package/dist/components/AudioViewer.js +7 -0
  14. package/dist/components/AudioViewer.vue.d.ts +21 -0
  15. package/dist/components/AudioViewer.vue_vue_type_script_setup_true_lang.js +201 -0
  16. package/dist/components/BinObjBrowser.js +7 -0
  17. package/dist/components/BinObjBrowser.vue.d.ts +19 -0
  18. package/dist/components/BinObjBrowser.vue_vue_type_script_setup_true_lang.js +141 -0
  19. package/dist/components/CertViewer.js +7 -0
  20. package/dist/components/CertViewer.vue.d.ts +17 -0
  21. package/dist/components/CertViewer.vue_vue_type_script_setup_true_lang.js +251 -0
  22. package/dist/components/ClassViewer.js +7 -0
  23. package/dist/components/ClassViewer.vue.d.ts +15 -0
  24. package/dist/components/ClassViewer.vue_vue_type_script_setup_true_lang.js +164 -0
  25. package/dist/components/CodeBlock.js +7 -0
  26. package/dist/components/CodeBlock.vue.d.ts +17 -0
  27. package/dist/components/CodeBlock.vue_vue_type_script_setup_true_lang.js +79 -0
  28. package/dist/components/CodeView.js +7 -0
  29. package/dist/components/CodeView.vue.d.ts +21 -0
  30. package/dist/components/CodeView.vue_vue_type_script_setup_true_lang.js +180 -0
  31. package/dist/components/CsvViewer.js +7 -0
  32. package/dist/components/CsvViewer.vue.d.ts +26 -0
  33. package/dist/components/CsvViewer.vue_vue_type_script_setup_true_lang.js +187 -0
  34. package/dist/components/DicomViewer.js +7 -0
  35. package/dist/components/DicomViewer.vue.d.ts +30 -0
  36. package/dist/components/DicomViewer.vue_vue_type_script_setup_true_lang.js +362 -0
  37. package/dist/components/DocxViewer.js +7 -0
  38. package/dist/components/DocxViewer.vue.d.ts +19 -0
  39. package/dist/components/DocxViewer.vue_vue_type_script_setup_true_lang.js +59 -0
  40. package/dist/components/DrawioViewer.js +7 -0
  41. package/dist/components/DrawioViewer.vue.d.ts +16 -0
  42. package/dist/components/DrawioViewer.vue_vue_type_script_setup_true_lang.js +38 -0
  43. package/dist/components/DxfViewer.js +7 -0
  44. package/dist/components/DxfViewer.vue.d.ts +14 -0
  45. package/dist/components/DxfViewer.vue_vue_type_script_setup_true_lang.js +239 -0
  46. package/dist/components/EbookViewer.js +7 -0
  47. package/dist/components/EbookViewer.vue.d.ts +22 -0
  48. package/dist/components/EbookViewer.vue_vue_type_script_setup_true_lang.js +170 -0
  49. package/dist/components/EmlViewer.js +7 -0
  50. package/dist/components/EmlViewer.vue.d.ts +21 -0
  51. package/dist/components/EmlViewer.vue_vue_type_script_setup_true_lang.js +193 -0
  52. package/dist/components/EplViewer.js +7 -0
  53. package/dist/components/EplViewer.vue.d.ts +19 -0
  54. package/dist/components/EplViewer.vue_vue_type_script_setup_true_lang.js +201 -0
  55. package/dist/components/FileViewerBody.js +7 -0
  56. package/dist/components/FileViewerBody.vue.d.ts +47 -0
  57. package/dist/components/FileViewerBody.vue_vue_type_script_setup_true_lang.js +599 -0
  58. package/dist/components/FileViewerPanel.js +7 -0
  59. package/dist/components/FileViewerPanel.vue.d.ts +3 -0
  60. package/dist/components/FileViewerPanel.vue_vue_type_script_setup_true_lang.js +207 -0
  61. package/dist/components/FontViewer.js +7 -0
  62. package/dist/components/FontViewer.vue.d.ts +17 -0
  63. package/dist/components/FontViewer.vue_vue_type_script_setup_true_lang.js +120 -0
  64. package/dist/components/FrontmatterCard.js +7 -0
  65. package/dist/components/FrontmatterCard.vue.d.ts +11 -0
  66. package/dist/components/FrontmatterCard.vue_vue_type_script_setup_true_lang.js +30 -0
  67. package/dist/components/GeoViewer.js +7 -0
  68. package/dist/components/GeoViewer.vue.d.ts +17 -0
  69. package/dist/components/GeoViewer.vue_vue_type_script_setup_true_lang.js +255 -0
  70. package/dist/components/HarViewer.js +7 -0
  71. package/dist/components/HarViewer.vue.d.ts +20 -0
  72. package/dist/components/HarViewer.vue_vue_type_script_setup_true_lang.js +322 -0
  73. package/dist/components/HexViewer.js +7 -0
  74. package/dist/components/HexViewer.vue.d.ts +22 -0
  75. package/dist/components/HexViewer.vue_vue_type_script_setup_true_lang.js +121 -0
  76. package/dist/components/HprofViewer.js +7 -0
  77. package/dist/components/HprofViewer.vue.d.ts +27 -0
  78. package/dist/components/HprofViewer.vue_vue_type_script_setup_true_lang.js +561 -0
  79. package/dist/components/ImageLightbox.js +7 -0
  80. package/dist/components/ImageLightbox.vue.d.ts +3 -0
  81. package/dist/components/ImageLightbox.vue_vue_type_script_setup_true_lang.js +86 -0
  82. package/dist/components/InlineText.d.ts +29 -0
  83. package/dist/components/InlineText.js +21 -0
  84. package/dist/components/JksViewer.js +7 -0
  85. package/dist/components/JksViewer.vue.d.ts +22 -0
  86. package/dist/components/JksViewer.vue_vue_type_script_setup_true_lang.js +353 -0
  87. package/dist/components/JsonlViewer.js +7 -0
  88. package/dist/components/JsonlViewer.vue.d.ts +15 -0
  89. package/dist/components/JsonlViewer.vue_vue_type_script_setup_true_lang.js +103 -0
  90. package/dist/components/LogViewer.js +7 -0
  91. package/dist/components/LogViewer.vue.d.ts +29 -0
  92. package/dist/components/LogViewer.vue_vue_type_script_setup_true_lang.js +670 -0
  93. package/dist/components/LrcViewer.js +7 -0
  94. package/dist/components/LrcViewer.vue.d.ts +17 -0
  95. package/dist/components/LrcViewer.vue_vue_type_script_setup_true_lang.js +106 -0
  96. package/dist/components/MarkdownTable.js +7 -0
  97. package/dist/components/MarkdownTable.vue.d.ts +19 -0
  98. package/dist/components/MarkdownTable.vue_vue_type_script_setup_true_lang.js +71 -0
  99. package/dist/components/MarkdownText.d.ts +30 -0
  100. package/dist/components/MarkdownText.js +21 -0
  101. package/dist/components/MhtViewer.js +7 -0
  102. package/dist/components/MhtViewer.vue.d.ts +22 -0
  103. package/dist/components/MhtViewer.vue_vue_type_script_setup_true_lang.js +112 -0
  104. package/dist/components/MindMapView.js +7 -0
  105. package/dist/components/MindMapView.vue.d.ts +23 -0
  106. package/dist/components/MindMapView.vue_vue_type_script_setup_true_lang.js +337 -0
  107. package/dist/components/MissingDependency.js +7 -0
  108. package/dist/components/MissingDependency.vue.d.ts +17 -0
  109. package/dist/components/MissingDependency.vue_vue_type_script_setup_true_lang.js +37 -0
  110. package/dist/components/ModelViewer.js +7 -0
  111. package/dist/components/ModelViewer.vue.d.ts +18 -0
  112. package/dist/components/ModelViewer.vue_vue_type_script_setup_true_lang.js +157 -0
  113. package/dist/components/MsiViewer.js +7 -0
  114. package/dist/components/MsiViewer.vue.d.ts +19 -0
  115. package/dist/components/MsiViewer.vue_vue_type_script_setup_true_lang.js +136 -0
  116. package/dist/components/NotebookViewer.js +7 -0
  117. package/dist/components/NotebookViewer.vue.d.ts +20 -0
  118. package/dist/components/NotebookViewer.vue_vue_type_script_setup_true_lang.js +125 -0
  119. package/dist/components/PdfViewer.js +7 -0
  120. package/dist/components/PdfViewer.vue.d.ts +19 -0
  121. package/dist/components/PdfViewer.vue_vue_type_script_setup_true_lang.js +114 -0
  122. package/dist/components/PptxViewer.js +7 -0
  123. package/dist/components/PptxViewer.vue.d.ts +20 -0
  124. package/dist/components/PptxViewer.vue_vue_type_script_setup_true_lang.js +73 -0
  125. package/dist/components/PsdViewer.js +7 -0
  126. package/dist/components/PsdViewer.vue.d.ts +15 -0
  127. package/dist/components/PsdViewer.vue_vue_type_script_setup_true_lang.js +218 -0
  128. package/dist/components/QmcAudioViewer.js +7 -0
  129. package/dist/components/QmcAudioViewer.vue.d.ts +18 -0
  130. package/dist/components/QmcAudioViewer.vue_vue_type_script_setup_true_lang.js +92 -0
  131. package/dist/components/RasterViewer.js +7 -0
  132. package/dist/components/RasterViewer.vue.d.ts +21 -0
  133. package/dist/components/RasterViewer.vue_vue_type_script_setup_true_lang.js +161 -0
  134. package/dist/components/RtfViewer.js +7 -0
  135. package/dist/components/RtfViewer.vue.d.ts +21 -0
  136. package/dist/components/RtfViewer.vue_vue_type_script_setup_true_lang.js +66 -0
  137. package/dist/components/SevenZipBrowser.js +7 -0
  138. package/dist/components/SevenZipBrowser.vue.d.ts +13 -0
  139. package/dist/components/SevenZipBrowser.vue_vue_type_script_setup_true_lang.js +366 -0
  140. package/dist/components/SqliteViewer.js +7 -0
  141. package/dist/components/SqliteViewer.vue.d.ts +18 -0
  142. package/dist/components/SqliteViewer.vue_vue_type_script_setup_true_lang.js +186 -0
  143. package/dist/components/SubtitleViewer.js +7 -0
  144. package/dist/components/SubtitleViewer.vue.d.ts +15 -0
  145. package/dist/components/SubtitleViewer.vue_vue_type_script_setup_true_lang.js +48 -0
  146. package/dist/components/XlsxChart.js +7 -0
  147. package/dist/components/XlsxChart.vue.d.ts +14 -0
  148. package/dist/components/XlsxChart.vue_vue_type_script_setup_true_lang.js +240 -0
  149. package/dist/components/XlsxViewer.js +7 -0
  150. package/dist/components/XlsxViewer.vue.d.ts +22 -0
  151. package/dist/components/XlsxViewer.vue_vue_type_script_setup_true_lang.js +814 -0
  152. package/dist/components/XmindViewer.js +7 -0
  153. package/dist/components/XmindViewer.vue.d.ts +13 -0
  154. package/dist/components/XmindViewer.vue_vue_type_script_setup_true_lang.js +48 -0
  155. package/dist/components/ZipBrowser.js +7 -0
  156. package/dist/components/ZipBrowser.vue.d.ts +14 -0
  157. package/dist/components/ZipBrowser.vue_vue_type_script_setup_true_lang.js +326 -0
  158. package/dist/components/ZoomImage.js +7 -0
  159. package/dist/components/ZoomImage.vue.d.ts +29 -0
  160. package/dist/components/ZoomImage.vue_vue_type_script_setup_true_lang.js +147 -0
  161. package/dist/components/epl/EplCodeBlock.js +7 -0
  162. package/dist/components/epl/EplCodeBlock.vue.d.ts +15 -0
  163. package/dist/components/epl/EplCodeBlock.vue_vue_type_script_setup_true_lang.js +72 -0
  164. package/dist/components/epl/EplDoc.js +7 -0
  165. package/dist/components/epl/EplDoc.vue.d.ts +19 -0
  166. package/dist/components/epl/EplDoc.vue_vue_type_script_setup_true_lang.js +327 -0
  167. package/dist/components/epl/EplMethod.js +7 -0
  168. package/dist/components/epl/EplMethod.vue.d.ts +14 -0
  169. package/dist/components/epl/EplMethod.vue_vue_type_script_setup_true_lang.js +100 -0
  170. package/dist/components/epl/EplResource.js +7 -0
  171. package/dist/components/epl/EplResource.vue.d.ts +15 -0
  172. package/dist/components/epl/EplResource.vue_vue_type_script_setup_true_lang.js +204 -0
  173. package/dist/components/epl/EplTree.js +7 -0
  174. package/dist/components/epl/EplTree.vue.d.ts +27 -0
  175. package/dist/components/epl/EplTree.vue_vue_type_script_setup_true_lang.js +123 -0
  176. package/dist/components/epl/EplVarTable.js +7 -0
  177. package/dist/components/epl/EplVarTable.vue.d.ts +21 -0
  178. package/dist/components/epl/EplVarTable.vue_vue_type_script_setup_true_lang.js +60 -0
  179. package/dist/components/epl/docTypes.d.ts +12 -0
  180. package/dist/components/epl/numbering.d.ts +21 -0
  181. package/dist/components/epl/numbering.js +14 -0
  182. package/dist/components/icons/Icon.js +7 -0
  183. package/dist/components/icons/Icon.vue.d.ts +14 -0
  184. package/dist/components/icons/Icon.vue_vue_type_script_setup_true_lang.js +33 -0
  185. package/dist/components/icons/iconPaths.d.ts +60 -0
  186. package/dist/components/icons/iconPaths.js +54 -0
  187. package/dist/components/optionalViewer.d.ts +14 -0
  188. package/dist/components/optionalViewer.js +37 -0
  189. package/dist/components/ui/ClampBlock.d.ts +82 -0
  190. package/dist/components/ui/ClampBlock.js +63 -0
  191. package/dist/composables/useFileViewer.d.ts +428 -0
  192. package/dist/composables/useFileViewer.js +27 -0
  193. package/dist/composables/useLightbox.d.ts +33 -0
  194. package/dist/composables/useLightbox.js +17 -0
  195. package/dist/composables/useLogRules.d.ts +47 -0
  196. package/dist/composables/useLogRules.js +74 -0
  197. package/dist/index.d.ts +44 -0
  198. package/dist/index.js +30 -0
  199. package/dist/lib/aes.d.ts +25 -0
  200. package/dist/lib/aes.js +99 -0
  201. package/dist/lib/appx.d.ts +66 -0
  202. package/dist/lib/appx.js +112 -0
  203. package/dist/lib/archive.d.ts +29 -0
  204. package/dist/lib/asn1.d.ts +47 -0
  205. package/dist/lib/asn1.js +122 -0
  206. package/dist/lib/binobj.d.ts +69 -0
  207. package/dist/lib/binobj.js +430 -0
  208. package/dist/lib/brotli.d.ts +14 -0
  209. package/dist/lib/brotli.js +16 -0
  210. package/dist/lib/bzip2.d.ts +14 -0
  211. package/dist/lib/bzip2.js +161 -0
  212. package/dist/lib/classfile.d.ts +72 -0
  213. package/dist/lib/classfile.js +210 -0
  214. package/dist/lib/codePreview.d.ts +22 -0
  215. package/dist/lib/codePreview.js +27 -0
  216. package/dist/lib/codefold.d.ts +14 -0
  217. package/dist/lib/codefold.js +30 -0
  218. package/dist/lib/codeformat.d.ts +21 -0
  219. package/dist/lib/codeformat.js +130 -0
  220. package/dist/lib/csv.d.ts +19 -0
  221. package/dist/lib/csv.js +74 -0
  222. package/dist/lib/des.d.ts +17 -0
  223. package/dist/lib/des.js +928 -0
  224. package/dist/lib/diagram.d.ts +5 -0
  225. package/dist/lib/diagram.js +479 -0
  226. package/dist/lib/dicom.d.ts +69 -0
  227. package/dist/lib/dicom.js +442 -0
  228. package/dist/lib/dicomCodecs.d.ts +28 -0
  229. package/dist/lib/dicomCodecs.js +156 -0
  230. package/dist/lib/dicomRender.d.ts +46 -0
  231. package/dist/lib/dicomRender.js +114 -0
  232. package/dist/lib/dxf.d.ts +86 -0
  233. package/dist/lib/dxf.js +399 -0
  234. package/dist/lib/eml.d.ts +40 -0
  235. package/dist/lib/eml.js +46 -0
  236. package/dist/lib/encoding.d.ts +28 -0
  237. package/dist/lib/encoding.js +44 -0
  238. package/dist/lib/epl/code/ast.d.ts +150 -0
  239. package/dist/lib/epl/code/codeDataParser.d.ts +3 -0
  240. package/dist/lib/epl/code/codeDataParser.js +330 -0
  241. package/dist/lib/epl/code/codeLines.d.ts +20 -0
  242. package/dist/lib/epl/code/codeLines.js +191 -0
  243. package/dist/lib/epl/code/structures.d.ts +86 -0
  244. package/dist/lib/epl/code/textCode.d.ts +29 -0
  245. package/dist/lib/epl/code/textCode.js +150 -0
  246. package/dist/lib/epl/code/variable.d.ts +25 -0
  247. package/dist/lib/epl/eplDocument.d.ts +21 -0
  248. package/dist/lib/epl/eplDocument.js +36 -0
  249. package/dist/lib/epl/imageList.d.ts +28 -0
  250. package/dist/lib/epl/imageList.js +66 -0
  251. package/dist/lib/epl/index.d.ts +53 -0
  252. package/dist/lib/epl/index.js +45 -0
  253. package/dist/lib/epl/io/binaryReader.d.ts +56 -0
  254. package/dist/lib/epl/io/binaryReader.js +119 -0
  255. package/dist/lib/epl/io/encoding.d.ts +16 -0
  256. package/dist/lib/epl/io/encoding.js +27 -0
  257. package/dist/lib/epl/model/eplSystemId.d.ts +64 -0
  258. package/dist/lib/epl/model/eplSystemId.js +16 -0
  259. package/dist/lib/epl/model/section.d.ts +46 -0
  260. package/dist/lib/epl/names/eplLibData.js +39 -0
  261. package/dist/lib/epl/names/idToNameMap.d.ts +33 -0
  262. package/dist/lib/epl/names/idToNameMap.js +130 -0
  263. package/dist/lib/epl/names/libNameProvider.d.ts +15 -0
  264. package/dist/lib/epl/names/libNameProvider.js +18 -0
  265. package/dist/lib/epl/program.d.ts +120 -0
  266. package/dist/lib/epl/program.js +134 -0
  267. package/dist/lib/epl/projectFileReader.d.ts +23 -0
  268. package/dist/lib/epl/projectFileReader.js +65 -0
  269. package/dist/lib/epl/sections/code.d.ts +20 -0
  270. package/dist/lib/epl/sections/esystemInfo.d.ts +14 -0
  271. package/dist/lib/epl/sections/losable.d.ts +11 -0
  272. package/dist/lib/epl/sections/projectConfig.d.ts +23 -0
  273. package/dist/lib/epl/sections/resource.d.ts +57 -0
  274. package/dist/lib/fb2.d.ts +14 -0
  275. package/dist/lib/fb2.js +62 -0
  276. package/dist/lib/fileType.d.ts +315 -0
  277. package/dist/lib/fileType.js +800 -0
  278. package/dist/lib/fonts.d.ts +8 -0
  279. package/dist/lib/fonts.js +4 -0
  280. package/dist/lib/format.d.ts +16 -0
  281. package/dist/lib/format.js +38 -0
  282. package/dist/lib/frontmatter.d.ts +13 -0
  283. package/dist/lib/frontmatter.js +23 -0
  284. package/dist/lib/geo.d.ts +30 -0
  285. package/dist/lib/geo.js +235 -0
  286. package/dist/lib/har.d.ts +171 -0
  287. package/dist/lib/har.js +397 -0
  288. package/dist/lib/highlight.d.ts +18 -0
  289. package/dist/lib/highlight.js +34 -0
  290. package/dist/lib/highlightLangs.d.ts +15 -0
  291. package/dist/lib/highlightLangs.js +93 -0
  292. package/dist/lib/hprof.d.ts +211 -0
  293. package/dist/lib/hprof.js +709 -0
  294. package/dist/lib/ipynb.d.ts +48 -0
  295. package/dist/lib/ipynb.js +130 -0
  296. package/dist/lib/jks.d.ts +86 -0
  297. package/dist/lib/jks.js +167 -0
  298. package/dist/lib/jsonl.d.ts +29 -0
  299. package/dist/lib/jsonl.js +24 -0
  300. package/dist/lib/lrc.d.ts +32 -0
  301. package/dist/lib/lrc.js +84 -0
  302. package/dist/lib/lzma.d.ts +70 -0
  303. package/dist/lib/lzma.js +204 -0
  304. package/dist/lib/markdown/blocks.d.ts +9 -0
  305. package/dist/lib/markdown/blocks.js +221 -0
  306. package/dist/lib/markdown/index.d.ts +3 -0
  307. package/dist/lib/markdown/inline.d.ts +33 -0
  308. package/dist/lib/markdown/inline.js +84 -0
  309. package/dist/lib/markdown/math.d.ts +5 -0
  310. package/dist/lib/markdown/math.js +25 -0
  311. package/dist/lib/markdown/segmentize.d.ts +11 -0
  312. package/dist/lib/markdown/segmentize.js +28 -0
  313. package/dist/lib/markdown/styles.d.ts +26 -0
  314. package/dist/lib/markdown/styles.js +135 -0
  315. package/dist/lib/mht.d.ts +51 -0
  316. package/dist/lib/mht.js +122 -0
  317. package/dist/lib/midi.d.ts +28 -0
  318. package/dist/lib/midi.js +84 -0
  319. package/dist/lib/mime.d.ts +82 -0
  320. package/dist/lib/mime.js +151 -0
  321. package/dist/lib/mindmap.d.ts +51 -0
  322. package/dist/lib/mindmap.js +113 -0
  323. package/dist/lib/mobi.d.ts +15 -0
  324. package/dist/lib/mobi.js +68 -0
  325. package/dist/lib/msi.d.ts +50 -0
  326. package/dist/lib/msi.js +332 -0
  327. package/dist/lib/optionalDep.d.ts +26 -0
  328. package/dist/lib/optionalDep.js +20 -0
  329. package/dist/lib/pkcs12.d.ts +56 -0
  330. package/dist/lib/pkcs12.js +356 -0
  331. package/dist/lib/qmc.d.ts +50 -0
  332. package/dist/lib/qmc.js +213 -0
  333. package/dist/lib/rar.d.ts +16 -0
  334. package/dist/lib/rar.js +40 -0
  335. package/dist/lib/rawPreview.d.ts +12 -0
  336. package/dist/lib/rawPreview.js +54 -0
  337. package/dist/lib/rc2.d.ts +12 -0
  338. package/dist/lib/rc2.js +298 -0
  339. package/dist/lib/resolveInput.d.ts +22 -0
  340. package/dist/lib/resolveInput.js +55 -0
  341. package/dist/lib/rtf.d.ts +53 -0
  342. package/dist/lib/rtf.js +413 -0
  343. package/dist/lib/sevenZip.d.ts +82 -0
  344. package/dist/lib/sevenZip.js +395 -0
  345. package/dist/lib/sha1.d.ts +24 -0
  346. package/dist/lib/sha1.js +53 -0
  347. package/dist/lib/sha256.d.ts +21 -0
  348. package/dist/lib/sha256.js +119 -0
  349. package/dist/lib/speechAudio.d.ts +36 -0
  350. package/dist/lib/speechAudio.js +85 -0
  351. package/dist/lib/sqlite.d.ts +38 -0
  352. package/dist/lib/sqlite.js +104 -0
  353. package/dist/lib/subtitle.d.ts +26 -0
  354. package/dist/lib/subtitle.js +99 -0
  355. package/dist/lib/tarball.d.ts +20 -0
  356. package/dist/lib/tarball.js +248 -0
  357. package/dist/lib/viewerFormats.d.ts +35 -0
  358. package/dist/lib/viewerFormats.js +83 -0
  359. package/dist/lib/viewerKind.d.ts +36 -0
  360. package/dist/lib/viewerKind.js +233 -0
  361. package/dist/lib/x509.d.ts +68 -0
  362. package/dist/lib/x509.js +267 -0
  363. package/dist/lib/xlsx.d.ts +55 -0
  364. package/dist/lib/xlsx.js +321 -0
  365. package/dist/lib/xlsxCharts.d.ts +34 -0
  366. package/dist/lib/xlsxCharts.js +152 -0
  367. package/dist/lib/xmind.d.ts +6 -0
  368. package/dist/lib/xmind.js +124 -0
  369. package/dist/lib/zip.d.ts +56 -0
  370. package/dist/lib/zip.js +169 -0
  371. package/dist/style.css +2 -0
  372. package/dist/types.d.ts +42 -0
  373. package/package.json +128 -0
@@ -0,0 +1,180 @@
1
+ import { fileExt as e } from "../lib/fileType.js";
2
+ import { escapeHtml as t, highlightCode as n, highlightLines as ee } from "../lib/highlight.js";
3
+ import { computeFoldRegions as te } from "../lib/codefold.js";
4
+ import { canFormat as ne, formatCode as r } from "../lib/codeformat.js";
5
+ import { langLabel as re, searchLangs as ie } from "../lib/highlightLangs.js";
6
+ import i from "./icons/Icon.js";
7
+ import { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createVNode as d, defineComponent as f, normalizeClass as p, onBeforeUnmount as m, openBlock as h, reactive as ae, ref as g, renderList as _, toDisplayString as v, unref as oe, vModelText as se, watch as y, withDirectives as ce } from "vue";
8
+ //#region src/components/CodeView.vue?vue&type=script&setup=true&lang.ts
9
+ var le = { class: "cv" }, ue = { class: "cv__tools" }, de = ["aria-expanded"], fe = {
10
+ key: 0,
11
+ class: "cv__langpop",
12
+ role: "menu"
13
+ }, pe = { class: "cv__langlist" }, me = ["aria-checked"], he = ["aria-checked", "onClick"], ge = { class: "cv__langitem-label" }, _e = {
14
+ key: 1,
15
+ class: "cv__langempty"
16
+ }, ve = ["disabled", "title"], ye = {
17
+ key: 0,
18
+ class: "cv__scroll cv__scroll--blob"
19
+ }, b = { class: "cv__codewrap" }, x = {
20
+ class: "cv__gutter",
21
+ "aria-hidden": "true"
22
+ }, S = { class: "cv__codecol" }, C = { class: "cv__pre" }, w = ["innerHTML"], T = {
23
+ key: 1,
24
+ class: "cv__scroll"
25
+ }, E = { class: "cv__rows" }, D = { class: "cv__gut" }, O = ["title", "onClick"], k = {
26
+ key: 1,
27
+ class: "cv__fold cv__fold--empty"
28
+ }, A = { class: "cv__ln" }, j = ["innerHTML"], M = ["title", "onClick"], N = 4e3, P = /*@__PURE__*/ f({
29
+ __name: "CodeView",
30
+ props: {
31
+ code: {},
32
+ lang: {},
33
+ name: {}
34
+ },
35
+ setup(f) {
36
+ let P = f, F = g(null), I = o(() => F.value ?? P.lang), L = g(null), R = g(!1), z = g(!1), B = o(() => L.value ?? P.code), V = o(() => e(P.name ?? "")), be = o(() => ne(V.value, I.value)), xe = o(() => B.value.split("\n")), H = o(() => xe.value.length), Se = o(() => H.value <= N), Ce = o(() => ee(B.value, I.value)), U = o(() => te(B.value)), W = ae(/* @__PURE__ */ new Set());
37
+ y(() => [P.code, P.lang], () => {
38
+ L.value = null, z.value = !1, F.value = null;
39
+ }), y(B, () => W.clear());
40
+ let G = g(!1), K = g(null), q = g(""), J = o(() => ie(q.value));
41
+ function Y(e) {
42
+ F.value = e, G.value = !1, q.value = "";
43
+ }
44
+ function X(e) {
45
+ K.value && !K.value.contains(e.target) && (G.value = !1);
46
+ }
47
+ function Z(e) {
48
+ e.key === "Escape" && (G.value = !1);
49
+ }
50
+ y(G, (e) => {
51
+ typeof document > "u" || (e ? (document.addEventListener("click", X), document.addEventListener("keydown", Z)) : (document.removeEventListener("click", X), document.removeEventListener("keydown", Z)));
52
+ }), m(() => {
53
+ typeof document > "u" || (document.removeEventListener("click", X), document.removeEventListener("keydown", Z));
54
+ });
55
+ let Q;
56
+ async function we() {
57
+ if (L.value != null) {
58
+ L.value = null;
59
+ return;
60
+ }
61
+ if (!R.value) {
62
+ R.value = !0, z.value = !1;
63
+ try {
64
+ L.value = await r(P.code, {
65
+ ext: V.value,
66
+ lang: I.value
67
+ });
68
+ } catch {
69
+ z.value = !0, clearTimeout(Q), Q = setTimeout(() => z.value = !1, 2200);
70
+ } finally {
71
+ R.value = !1;
72
+ }
73
+ }
74
+ }
75
+ let Te = o(() => {
76
+ let e = [], t = H.value, n = 0;
77
+ for (; n < t;) {
78
+ e.push(n);
79
+ let t = W.has(n) ? U.value.get(n) : void 0;
80
+ n = t == null ? n + 1 : t + 1;
81
+ }
82
+ return e;
83
+ });
84
+ function $(e) {
85
+ W.has(e) ? W.delete(e) : W.add(e);
86
+ }
87
+ let Ee = o(() => I.value ? n(B.value, I.value) : t(B.value)), De = o(() => Array.from({ length: H.value }, (e, t) => t + 1).join("\n"));
88
+ return (e, t) => (h(), l("div", le, [u("div", ue, [u("div", {
89
+ ref_key: "langMenuRef",
90
+ ref: K,
91
+ class: "cv__lang"
92
+ }, [u("button", {
93
+ type: "button",
94
+ class: p(["cv__toolbtn", { "cv__toolbtn--on": G.value }]),
95
+ title: "高亮语言 —— 选择用哪种语言着色(自动识别不准时手动指定)",
96
+ "aria-haspopup": !0,
97
+ "aria-expanded": G.value,
98
+ onClick: t[0] ||= (e) => G.value = !G.value
99
+ }, [d(i, {
100
+ name: "code",
101
+ size: 12
102
+ }), u("span", null, v(oe(re)(I.value)), 1)], 10, de), G.value ? (h(), l("div", fe, [ce(u("input", {
103
+ "onUpdate:modelValue": t[1] ||= (e) => q.value = e,
104
+ class: "cv__langsearch",
105
+ type: "text",
106
+ placeholder: "搜索语言…",
107
+ spellcheck: "false",
108
+ autocomplete: "off"
109
+ }, null, 512), [[se, q.value]]), u("div", pe, [
110
+ q.value ? c("", !0) : (h(), l("button", {
111
+ key: 0,
112
+ type: "button",
113
+ class: p(["cv__langitem", { "cv__langitem--on": I.value === "" }]),
114
+ role: "menuitemradio",
115
+ "aria-checked": I.value === "",
116
+ onClick: t[2] ||= (e) => Y("")
117
+ }, [t[3] ||= u("span", { class: "cv__langitem-label" }, "纯文本(无高亮)", -1), I.value === "" ? (h(), s(i, {
118
+ key: 0,
119
+ name: "check",
120
+ size: 14,
121
+ class: "cv__langitem-check"
122
+ })) : c("", !0)], 10, me)),
123
+ (h(!0), l(a, null, _(J.value, (e) => (h(), l("button", {
124
+ key: e.id,
125
+ type: "button",
126
+ class: p(["cv__langitem", { "cv__langitem--on": I.value === e.id }]),
127
+ role: "menuitemradio",
128
+ "aria-checked": I.value === e.id,
129
+ onClick: (t) => Y(e.id)
130
+ }, [u("span", ge, v(e.label), 1), I.value === e.id ? (h(), s(i, {
131
+ key: 0,
132
+ name: "check",
133
+ size: 14,
134
+ class: "cv__langitem-check"
135
+ })) : c("", !0)], 10, he))), 128)),
136
+ q.value && !J.value.length ? (h(), l("p", _e, "无匹配语言")) : c("", !0)
137
+ ])])) : c("", !0)], 512), be.value ? (h(), l("button", {
138
+ key: 0,
139
+ type: "button",
140
+ class: p(["cv__toolbtn cv__fmt", {
141
+ "cv__toolbtn--on": L.value != null,
142
+ "cv__fmt--err": z.value
143
+ }]),
144
+ disabled: R.value,
145
+ title: z.value ? "格式化失败:源码可能无法解析" : L.value == null ? "用 Prettier 格式化" : "还原为原始格式",
146
+ onClick: we
147
+ }, v(z.value ? "格式化失败" : R.value ? "格式化中…" : L.value == null ? "格式化" : "还原"), 11, ve)) : c("", !0)]), Se.value ? (h(), l("div", T, [u("div", E, [(h(!0), l(a, null, _(Te.value, (e) => (h(), l("div", {
148
+ key: e,
149
+ class: "cv__row"
150
+ }, [
151
+ u("span", D, [U.value.has(e) ? (h(), l("button", {
152
+ key: 0,
153
+ type: "button",
154
+ class: "cv__fold",
155
+ title: W.has(e) ? "展开" : "折叠",
156
+ onClick: (t) => $(e)
157
+ }, [d(i, {
158
+ name: "chevronRight",
159
+ size: 12,
160
+ class: p({ "cv__fold--open": !W.has(e) })
161
+ }, null, 8, ["class"])], 8, O)) : (h(), l("span", k)), u("span", A, v(e + 1), 1)]),
162
+ u("code", {
163
+ class: "cv__code hljs",
164
+ innerHTML: Ce.value[e]
165
+ }, null, 8, j),
166
+ W.has(e) ? (h(), l("button", {
167
+ key: 0,
168
+ type: "button",
169
+ class: "cv__ellipsis",
170
+ title: `展开折叠的 ${(U.value.get(e) ?? e) - e} 行`,
171
+ onClick: (t) => $(e)
172
+ }, " ⋯ ", 8, M)) : c("", !0)
173
+ ]))), 128))])])) : (h(), l("div", ye, [u("div", b, [u("pre", x, v(De.value), 1), u("div", S, [u("pre", C, [u("code", {
174
+ class: "hljs",
175
+ innerHTML: Ee.value
176
+ }, null, 8, w)])])])]))]));
177
+ }
178
+ });
179
+ //#endregion
180
+ export { P as default };
@@ -0,0 +1,7 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./CsvViewer.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region src/components/CsvViewer.vue
5
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-19d40e74"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Side-viewer CSV / TSV table. Consumes the text the panel already fetched (CSV is plain text — no second
3
+ * download, same as the subtitle / geo viewers) and parses it with the hand-rolled RFC 4180 parser
4
+ * (see lib/csv.ts: quoted fields, doubled-quote escaping, embedded delimiters/newlines, delimiter sniffing).
5
+ *
6
+ * The first row can be treated as a header (toggle). Cell text is rendered via mustache, so Vue escapes it —
7
+ * a cell containing `<script>` or other markup is shown literally, never executed. Only small CSVs reach here
8
+ * (larger ones stream through the log viewer, see isCsvFile / isLogFile); even so the body is capped at the
9
+ * first {@link RENDER_CAP} rows until you ask for all, so a dense file doesn't paint tens of thousands of
10
+ * cells up front.
11
+ *
12
+ * Three affordances on top of the plain table:
13
+ * - hover a cell (delegated `mouseover` on the scroll box) and, after a short intent delay, a floating popover
14
+ * shows the cell's full text — the table cells clip with ellipsis, the popover doesn't;
15
+ * - the popover is reachable: it overlaps the cell's bottom edge and cancels its own hide timer on enter, so you
16
+ * can move the mouse in to select text or hit 「复制」 (writes the exact cell string to the clipboard);
17
+ * - drag the thin handle on a column header's right edge to resize that column. Widths default to a cheap
18
+ * content-based estimate ({@link autoWidths}); a fixed table layout makes the drag pixel-exact.
19
+ */
20
+ type __VLS_Props = {
21
+ text: string;
22
+ name: string;
23
+ };
24
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
+ declare const _default: typeof __VLS_export;
26
+ export default _default;
@@ -0,0 +1,187 @@
1
+ import { fileExt as e } from "../lib/fileType.js";
2
+ import { parseCsv as t } from "../lib/csv.js";
3
+ import { Fragment as n, Teleport as r, computed as i, createBlock as ee, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, defineComponent as l, normalizeClass as u, normalizeStyle as d, onBeforeUnmount as te, openBlock as f, ref as p, renderList as m, toDisplayString as h, vModelCheckbox as g, watch as _, withDirectives as v, withModifiers as y } from "vue";
4
+ //#region src/components/CsvViewer.vue?vue&type=script&setup=true&lang.ts
5
+ var b = { class: "csv" }, x = { class: "csv__bar" }, ne = { class: "csv__count" }, re = { class: "csv__delim" }, ie = { class: "csv__toggle" }, ae = { class: "csv__th-text" }, oe = ["onMousedown"], se = { class: "csv__rownum" }, ce = {
6
+ key: 1,
7
+ class: "csv__empty"
8
+ }, le = {
9
+ key: 2,
10
+ class: "csv__capnote"
11
+ }, ue = { class: "csv-pop__text" }, de = { class: "csv-pop__foot" }, S = 1e3, fe = 48, C = 56, pe = 360, me = 120, he = 7, ge = 130, _e = 160, w = /*@__PURE__*/ l({
12
+ __name: "CsvViewer",
13
+ props: {
14
+ text: {},
15
+ name: {}
16
+ },
17
+ setup(l) {
18
+ let w = l, T = i(() => t(w.text, e(w.name))), E = p(!0), D = p(!1), O = i(() => {
19
+ switch (T.value.delimiter) {
20
+ case " ": return "Tab";
21
+ case ";": return "分号";
22
+ case "|": return "竖线";
23
+ default: return "逗号";
24
+ }
25
+ }), k = i(() => Array.from({ length: T.value.cols }, (e, t) => t)), A = i(() => k.value.map((e) => E.value ? T.value.rows[0]?.[e] ?? "" : P(e))), j = i(() => E.value ? T.value.rows.slice(1) : T.value.rows), M = i(() => D.value ? j.value : j.value.slice(0, S)), N = i(() => !D.value && j.value.length > S);
26
+ function P(e) {
27
+ let t = "", n = e;
28
+ do
29
+ t = String.fromCharCode(65 + n % 26) + t, n = Math.floor(n / 26) - 1;
30
+ while (n >= 0);
31
+ return t;
32
+ }
33
+ function F(e) {
34
+ return E.value ? e + 2 : e + 1;
35
+ }
36
+ function I(e) {
37
+ let t = 0;
38
+ for (let n = 0; n < e.length; n++) {
39
+ let r = e.charCodeAt(n);
40
+ t += r >= 4352 && r <= 4447 || r >= 11904 && r <= 42191 || r >= 44032 && r <= 55203 || r >= 63744 && r <= 64255 || r >= 65280 && r <= 65376 || r >= 65504 && r <= 65510 ? 2 : 1;
41
+ }
42
+ return t;
43
+ }
44
+ let ve = i(() => {
45
+ let e = T.value.cols, t = T.value.rows, n = Array.from({ length: e }).fill(C), r = Math.min(t.length, me);
46
+ for (let i = 0; i < r; i++) {
47
+ let r = t[i];
48
+ if (r) for (let t = 0; t < e; t++) {
49
+ let e = r[t];
50
+ if (!e) continue;
51
+ let i = Math.min(pe, Math.max(C, I(e) * he + 22));
52
+ i > n[t] && (n[t] = i);
53
+ }
54
+ }
55
+ return n;
56
+ }), L = p([]);
57
+ _(() => w.text, () => {
58
+ L.value = Array.from({ length: T.value.cols }).fill(null);
59
+ }, { immediate: !0 });
60
+ let R = i(() => k.value.map((e) => L.value[e] ?? ve.value[e] ?? C)), z = i(() => {
61
+ let e = String(Math.max(1, T.value.rows.length)).length;
62
+ return Math.max(46, 20 + e * 8);
63
+ }), ye = i(() => z.value + R.value.reduce((e, t) => e + t, 0)), B = p(!1), V = -1, H = 0, U = 0;
64
+ function be(e, t) {
65
+ V = e, H = t.clientX, U = R.value[e], B.value = !0, $(), window.addEventListener("mousemove", W), window.addEventListener("mouseup", G), document.body.style.userSelect = "none", document.body.style.cursor = "col-resize";
66
+ }
67
+ function W(e) {
68
+ V < 0 || (L.value[V] = Math.max(fe, Math.round(U + (e.clientX - H))));
69
+ }
70
+ function G() {
71
+ V = -1, B.value = !1, window.removeEventListener("mousemove", W), window.removeEventListener("mouseup", G), document.body.style.userSelect = "", document.body.style.cursor = "";
72
+ }
73
+ let K = p(null), q = p(!1), J, Y, X = null;
74
+ function Z(e, t) {
75
+ let n = e.getBoundingClientRect(), r = n.left;
76
+ r + 440 > window.innerWidth - 8 && (r = Math.max(8, window.innerWidth - 8 - 440)), K.value = {
77
+ text: t,
78
+ left: r,
79
+ top: n.bottom - 1
80
+ }, q.value = !1;
81
+ }
82
+ function xe(e) {
83
+ let t = e.querySelector(".csv__th-text") ?? e;
84
+ return t.scrollWidth - t.clientWidth > 1 || t.scrollHeight - t.clientHeight > 1;
85
+ }
86
+ function Se(e) {
87
+ if (B.value) return;
88
+ let t = e.target.closest(".csv__cell");
89
+ if (!t || t === X) return;
90
+ X = t, J &&= (clearTimeout(J), void 0);
91
+ let n = t.textContent ?? "";
92
+ if (!n || !xe(t)) {
93
+ Q();
94
+ return;
95
+ }
96
+ Y &&= (clearTimeout(Y), void 0), K.value ? Z(t, n) : J = setTimeout(() => Z(t, n), ge);
97
+ }
98
+ function Q() {
99
+ J &&= (clearTimeout(J), void 0), Y && clearTimeout(Y), Y = setTimeout(() => {
100
+ K.value = null, X = null, Y = void 0;
101
+ }, _e);
102
+ }
103
+ function Ce() {
104
+ Y &&= (clearTimeout(Y), void 0);
105
+ }
106
+ function $() {
107
+ J &&= (clearTimeout(J), void 0), Y &&= (clearTimeout(Y), void 0), K.value = null, X = null;
108
+ }
109
+ async function we() {
110
+ if (K.value) try {
111
+ await navigator.clipboard.writeText(K.value.text), q.value = !0;
112
+ } catch {
113
+ q.value = !1;
114
+ }
115
+ }
116
+ return te(() => {
117
+ $(), G();
118
+ }), (e, t) => (f(), o("div", b, [
119
+ s("div", x, [
120
+ s("span", ne, h(T.value.rows.length) + " 行 · " + h(T.value.cols) + " 列", 1),
121
+ s("span", re, "分隔符:" + h(O.value), 1),
122
+ s("label", ie, [v(s("input", {
123
+ "onUpdate:modelValue": t[0] ||= (e) => E.value = e,
124
+ type: "checkbox"
125
+ }, null, 512), [[g, E.value]]), t[2] ||= c(" 首行为表头 ", -1)]),
126
+ t[3] ||= s("span", { class: "csv__spacer" }, null, -1),
127
+ N.value ? (f(), o("button", {
128
+ key: 0,
129
+ type: "button",
130
+ class: "csv__more",
131
+ onClick: t[1] ||= (e) => D.value = !0
132
+ }, " 显示全部 " + h(j.value.length) + " 行 ", 1)) : a("", !0)
133
+ ]),
134
+ s("div", {
135
+ class: "csv__scroll",
136
+ onMouseover: Se,
137
+ onMouseleave: Q
138
+ }, [T.value.rows.length ? (f(), o("table", {
139
+ key: 0,
140
+ class: "csv__table",
141
+ style: d({ width: ye.value + "px" })
142
+ }, [
143
+ s("colgroup", null, [s("col", { style: d({ width: z.value + "px" }) }, null, 4), (f(!0), o(n, null, m(k.value, (e) => (f(), o("col", {
144
+ key: e,
145
+ style: d({ width: R.value[e] + "px" })
146
+ }, null, 4))), 128))]),
147
+ s("thead", null, [s("tr", null, [t[4] ||= s("th", {
148
+ class: "csv__rownum csv__corner",
149
+ "aria-hidden": "true"
150
+ }, null, -1), (f(!0), o(n, null, m(k.value, (e) => (f(), o("th", {
151
+ key: e,
152
+ class: u(["csv__th", {
153
+ csv__cell: E.value,
154
+ "csv__th--auto": !E.value
155
+ }])
156
+ }, [s("span", ae, h(A.value[e]), 1), s("span", {
157
+ class: "csv__resize",
158
+ title: "拖动调整列宽",
159
+ onMousedown: y((t) => be(e, t), ["prevent", "stop"])
160
+ }, null, 40, oe)], 2))), 128))])]),
161
+ s("tbody", null, [(f(!0), o(n, null, m(M.value, (e, t) => (f(), o("tr", {
162
+ key: t,
163
+ class: "csv__tr"
164
+ }, [s("td", se, h(F(t)), 1), (f(!0), o(n, null, m(k.value, (t) => (f(), o("td", {
165
+ key: t,
166
+ class: "csv__td csv__cell"
167
+ }, h(e[t] ?? ""), 1))), 128))]))), 128))])
168
+ ], 4)) : (f(), o("p", ce, "空文件")), N.value ? (f(), o("p", le, " 已显示前 " + h(S) + " 行,共 " + h(j.value.length) + " 行 —— 点上方「显示全部」加载其余。 ", 1)) : a("", !0)], 32),
169
+ (f(), ee(r, { to: "body" }, [K.value ? (f(), o("div", {
170
+ key: 0,
171
+ class: "csv-pop",
172
+ style: d({
173
+ left: K.value.left + "px",
174
+ top: K.value.top + "px"
175
+ }),
176
+ onMouseenter: Ce,
177
+ onMouseleave: Q
178
+ }, [s("div", ue, h(K.value.text), 1), s("div", de, [s("button", {
179
+ type: "button",
180
+ class: "csv-pop__copy",
181
+ onClick: we
182
+ }, h(q.value ? "已复制" : "复制"), 1)])], 36)) : a("", !0)]))
183
+ ]));
184
+ }
185
+ });
186
+ //#endregion
187
+ export { w as default };
@@ -0,0 +1,7 @@
1
+ import e from "../_virtual/_plugin-vue_export-helper.js";
2
+ import t from "./DicomViewer.vue_vue_type_script_setup_true_lang.js";
3
+ /* empty css */
4
+ //#region src/components/DicomViewer.vue
5
+ var n = /*#__PURE__*/ e(t, [["__scopeId", "data-v-36f5a4c5"]]);
6
+ //#endregion
7
+ export { n as default };
@@ -0,0 +1,30 @@
1
+ import { type DicomSlice } from '@/lib/dicom';
2
+ /**
3
+ * The side viewer's DICOM (.dcm) mode: fetch a medical image's bytes, parse + decode it entirely in-browser
4
+ * (see lib/dicom.ts → lib/dicomCodecs.ts → lib/dicomRender.ts), and draw it to a canvas with the controls a
5
+ * basic medical viewer needs:
6
+ * - window/level (brightness/contrast): left-drag on the image — horizontal = width, vertical = center.
7
+ * - frames: a slider for multi-frame series (each frame decoded on demand).
8
+ * - invert / zoom (wheel or buttons) / fit / reset.
9
+ * Grayscale (CT/MR/X-ray — MONOCHROME1/2) is the primary path; RGB and palette-colour images render too.
10
+ * The bytes come from the same download endpoint as any other file and never leave the browser.
11
+ *
12
+ * Two frame sources, unified behind {@link framePixelsAt}:
13
+ * • single file (`url`) — frames come from that one file (multi-frame DICOM, e.g. enhanced CT / US cine);
14
+ * • series stack (`slices`) — a list of independent single-frame DICOM files browsed as one scrollable
15
+ * series (the classic "one folder = one series, one file per slice" hospital export). The wheel/cine
16
+ * then steps through *files*. Decoded frames are cached + background-prefetched either way.
17
+ */
18
+ type __VLS_Props = {
19
+ url?: string;
20
+ name: string;
21
+ /** Single-file: that file's size. Stack: the whole series' total bytes (just for the info strip). */
22
+ size?: number;
23
+ /** Series-stack mode: independent DICOM files browsed as one series. Takes precedence over `url`. */
24
+ slices?: DicomSlice[];
25
+ /** Initial slice index in stack mode (the file the user actually clicked). */
26
+ start?: number;
27
+ };
28
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
+ declare const _default: typeof __VLS_export;
30
+ export default _default;