@7niao/doc-previewer 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/LICENSE +15 -0
  2. package/README.md +217 -2
  3. package/dist/assets/ArchiveRenderer-BZsm87A2.js +514 -0
  4. package/dist/assets/CadRenderer-DQiBmk71.js +1838 -0
  5. package/dist/assets/DocxRenderer-6BCR0R9L.js +3173 -0
  6. package/dist/assets/GisRenderer-BQ_T-z1A.js +9758 -0
  7. package/dist/assets/ImageRenderer-D1SFZkV3.js +24 -0
  8. package/dist/assets/MediaRenderer-DKj0V7cL.js +66 -0
  9. package/dist/assets/Model3dRenderer-DDk-HsYP.js +1966 -0
  10. package/dist/assets/OfdRenderer-1kDqHPDa.js +67 -0
  11. package/dist/assets/PdfRenderer-DuZpWPAu.js +16370 -0
  12. package/dist/assets/PptxRenderer-BSoVSGOz.js +48492 -0
  13. package/dist/assets/TextRenderer-pKpgA2wF.js +38 -0
  14. package/dist/assets/UnsupportedRenderer-CnjuGXg3.js +29 -0
  15. package/dist/assets/XlsxRenderer-Bohk5iIA.js +16257 -0
  16. package/dist/assets/_plugin-vue_export-helper-Djzt4Yr7.js +7 -0
  17. package/dist/assets/createLucideIcon-C_l8giLP.js +91 -0
  18. package/dist/assets/dom-Ba50_9e0.js +93 -0
  19. package/dist/assets/dwg2dxf-wasm-DO6Y5cnM.js +2148 -0
  20. package/dist/assets/file-question-mark-D7iJe3UN.js +21 -0
  21. package/dist/assets/jszip.min-OjSHaKmg.js +3039 -0
  22. package/dist/assets/ofd.es-CauEO04U.js +24255 -0
  23. package/dist/assets/rolldown-runtime-CwxnZyOB.js +22 -0
  24. package/dist/assets/three.module-B04XcvCz.js +12454 -0
  25. package/dist/assets/types-CVtHVd2P.js +168 -0
  26. package/dist/index.js +725 -0
  27. package/dist/libarchive/libarchive.wasm +0 -0
  28. package/dist/libarchive/worker-bundle.js +6 -0
  29. package/dist/style.css +2 -0
  30. package/dist/types/FileViewer.vue.d.ts +48 -0
  31. package/dist/types/components/PreviewToolbar.vue.d.ts +33 -0
  32. package/dist/types/composables/useFullscreen.d.ts +6 -0
  33. package/dist/types/composables/usePreviewSource.d.ts +14 -0
  34. package/dist/types/index.d.ts +4 -0
  35. package/dist/types/renderers/ArchiveRenderer.vue.d.ts +18 -0
  36. package/dist/types/renderers/CadRenderer.vue.d.ts +29 -0
  37. package/dist/types/renderers/DocxRenderer.vue.d.ts +16 -0
  38. package/dist/types/renderers/GisRenderer.vue.d.ts +26 -0
  39. package/dist/types/renderers/ImageRenderer.vue.d.ts +16 -0
  40. package/dist/types/renderers/MediaRenderer.vue.d.ts +17 -0
  41. package/dist/types/renderers/Model3dRenderer.vue.d.ts +29 -0
  42. package/dist/types/renderers/OfdRenderer.vue.d.ts +16 -0
  43. package/dist/types/renderers/PdfRenderer.vue.d.ts +16 -0
  44. package/dist/types/renderers/PptxRenderer.vue.d.ts +16 -0
  45. package/dist/types/renderers/TextRenderer.vue.d.ts +16 -0
  46. package/dist/types/renderers/UnsupportedRenderer.vue.d.ts +14 -0
  47. package/dist/types/renderers/XlsxRenderer.vue.d.ts +16 -0
  48. package/dist/types/types.d.ts +51 -0
  49. package/dist/types/utils/detect.d.ts +10 -0
  50. package/dist/types/utils/dom.d.ts +13 -0
  51. package/dist/types/vendor/asn1js-stub.d.ts +10 -0
  52. package/package.json +77 -3
@@ -0,0 +1,16 @@
1
+ import type { FileViewerOptions, PreviewSource } from '../types';
2
+ type __VLS_Props = {
3
+ source: PreviewSource;
4
+ options: FileViewerOptions;
5
+ viewportWidth?: number;
6
+ viewportHeight?: number;
7
+ };
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
+ error: (message: string) => any;
10
+ ready: () => any;
11
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
12
+ onError?: ((message: string) => any) | undefined;
13
+ onReady?: (() => any) | undefined;
14
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
@@ -0,0 +1,51 @@
1
+ /** 可预览的文件类别 */
2
+ export type PreviewKind = 'image' | 'video' | 'audio' | 'pdf' | 'word' | 'excel' | 'ppt' | 'ofd' | 'archive' | 'cad' | 'model3d' | 'gis' | 'text' | 'unsupported';
3
+ /** 预览器可配置项 */
4
+ export interface FileViewerOptions {
5
+ /** 组件高度,默认 640px */
6
+ height?: string;
7
+ /** 是否显示顶部工具栏,默认 true */
8
+ toolbar?: boolean;
9
+ /** 是否显示文件名与格式信息,默认 true */
10
+ showFileInfo?: boolean;
11
+ /** 缩放范围与倍率 */
12
+ zoom?: {
13
+ min?: number;
14
+ max?: number;
15
+ step?: number;
16
+ };
17
+ /** GIS 底图瓦片地址模板,默认不加载在线底图 */
18
+ mapTiles?: string | false;
19
+ /** CAD 线条颜色,默认 #1f2937 */
20
+ cadLineColor?: string;
21
+ /** 文本预览最大字符数,默认 2MB */
22
+ textMaxLength?: number;
23
+ }
24
+ /** 交给渲染器使用的统一文件描述 */
25
+ export interface PreviewSource {
26
+ name: string;
27
+ ext: string;
28
+ mime: string;
29
+ size: number;
30
+ url: string;
31
+ /** 获取 Blob;远程地址会按需下载 */
32
+ getBlob: () => Promise<Blob>;
33
+ /** 获取 ArrayBuffer */
34
+ getArrayBuffer: () => Promise<ArrayBuffer>;
35
+ /** 获取文本内容 */
36
+ getText: () => Promise<string>;
37
+ }
38
+ /** 渲染器对外暴露的原生视图操作,用于 3D / GIS / CAD */
39
+ export interface RendererApi {
40
+ zoomIn?: () => void;
41
+ zoomOut?: () => void;
42
+ resetZoom?: () => void;
43
+ rotate?: (delta: number) => void;
44
+ print?: () => void | Promise<void>;
45
+ }
46
+ /** 压缩包条目的预览请求 */
47
+ export interface ArchiveEntryRequest {
48
+ file: File;
49
+ path: string;
50
+ }
51
+ export declare const KIND_LABELS: Record<PreviewKind, string>;
@@ -0,0 +1,10 @@
1
+ import type { PreviewKind } from '../types';
2
+ /** 取小写扩展名(无扩展名时返回空串) */
3
+ export declare function getExtension(name: string): string;
4
+ /** 根据文件名 / MIME 推断预览类型 */
5
+ export declare function detectKind(name: string, mime?: string, override?: PreviewKind): PreviewKind;
6
+ /** 由 MIME 反推一个常用扩展名,用于 Blob 没有文件名时 */
7
+ export declare function guessExtension(mime: string): string;
8
+ export declare function mimeForExtension(ext: string): string;
9
+ /** 常见格式的 MIME,用于文件选择器的 accept 属性 */
10
+ export declare const PREVIEW_ACCEPT: string;
@@ -0,0 +1,13 @@
1
+ /** 字节数转可读文本 */
2
+ export declare function formatBytes(bytes: number): string;
3
+ /** 触发浏览器下载 */
4
+ export declare function downloadBlob(blob: Blob, name: string): void;
5
+ /** 打印任意预览 DOM(图片、Office、OFD、文本、压缩包列表、GIS 矢量等) */
6
+ export declare function printElement(element: HTMLElement, options?: {
7
+ title?: string;
8
+ resetTransform?: boolean;
9
+ }): void;
10
+ /** 打印 PDF:交给浏览器内置 PDF 阅读器 */
11
+ export declare function printPdfUrl(url: string): void;
12
+ /** 打印画布快照(3D / CAD) */
13
+ export declare function printImageDataUrl(dataUrl: string, title?: string): void;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `@lapo/asn1js` 1.x 是 UMD 包,内部的相对 require 在浏览器预打包后无法解析,
3
+ * 会导致 ofd-tools 整个模块加载失败。OFD 渲染本身不依赖该库(它仅用于电子签章验签),
4
+ * 这里提供一个最小替身,保证普通 OFD 能正常渲染;涉及签章验签的能力会在调用时明确报错。
5
+ */
6
+ declare const _default: {
7
+ decode(input: string | Uint8Array): Uint8Array;
8
+ unarmor(input: string): Uint8Array;
9
+ };
10
+ export default _default;
package/package.json CHANGED
@@ -1,6 +1,80 @@
1
1
  {
2
2
  "name": "@7niao/doc-previewer",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.1.1",
4
+ "description": "开箱即用的 Vue 3 文件预览组件,支持图片、音视频、PDF、Word、Excel、PPT、OFD、CAD、3D 模型、GIS 与压缩包",
5
+ "keywords": [
6
+ "vue",
7
+ "vue3",
8
+ "file-preview",
9
+ "document-preview",
10
+ "pdf",
11
+ "docx",
12
+ "xlsx",
13
+ "pptx",
14
+ "ofd",
15
+ "dwg",
16
+ "gltf",
17
+ "gis",
18
+ "archive"
19
+ ],
20
+ "license": "ISC",
21
+ "type": "module",
22
+ "files": [
23
+ "dist"
24
+ ],
25
+ "main": "./dist/index.js",
26
+ "module": "./dist/index.js",
27
+ "types": "./dist/types/index.d.ts",
28
+ "style": "./dist/style.css",
29
+ "exports": {
30
+ ".": {
31
+ "types": "./dist/types/index.d.ts",
32
+ "import": "./dist/index.js"
33
+ },
34
+ "./style.css": "./dist/style.css",
35
+ "./package.json": "./package.json"
36
+ },
37
+ "sideEffects": [
38
+ "**/*.css"
39
+ ],
40
+ "peerDependencies": {
41
+ "vue": "^3.4.0"
42
+ },
43
+ "devDependencies": {
44
+ "@lucide/vue": "^1.66.0",
45
+ "@tmcw/togeojson": "^7.1.3",
46
+ "@types/leaflet": "^1.9.22",
47
+ "@types/node": "^24.19.2",
48
+ "@types/three": "^0.187.0",
49
+ "@vitejs/plugin-vue": "^6.0.10",
50
+ "@vue/tsconfig": "^0.9.1",
51
+ "docx": "^9.15.1",
52
+ "docx-preview": "^0.4.1",
53
+ "dwg2dxf": "^2.0.3",
54
+ "dxf-parser": "^1.1.2",
55
+ "fflate": "^0.8.3",
56
+ "leaflet": "^1.9.4",
57
+ "libarchive.js": "^2.0.2",
58
+ "ofd-tools": "^1.0.3",
59
+ "pdf-lib": "^1.17.1",
60
+ "pdfjs-dist": "^6.4.299",
61
+ "pptx-preview": "^1.0.7",
62
+ "pptxgenjs": "^4.0.1",
63
+ "shpjs": "^6.2.0",
64
+ "three": "^0.187.0",
65
+ "typescript": "~6.0.3",
66
+ "vite": "^8.3.5",
67
+ "vue": "^3.5.44",
68
+ "vue-tsc": "^3.3.13",
69
+ "xlsx": "^0.18.5"
70
+ },
71
+ "scripts": {
72
+ "dev": "vite",
73
+ "build": "pnpm build:lib",
74
+ "build:lib": "vite build --config vite.lib.config.ts && vue-tsc -p tsconfig.lib.json && cp -R public/libarchive dist/libarchive",
75
+ "build:demo": "vue-tsc -b && vite build",
76
+ "typecheck": "vue-tsc -b",
77
+ "preview": "vite preview --outDir dist-demo",
78
+ "publish:lib": "pnpm publish --access public"
79
+ }
6
80
  }