@eternalheart/react-file-preview 1.0.4 → 1.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.
@@ -3,6 +3,8 @@ interface ImageRendererProps {
3
3
  zoom: number;
4
4
  rotation: number;
5
5
  onZoomChange?: (zoom: number) => void;
6
+ onNaturalWidthChange?: (width: number) => void;
7
+ onNaturalHeightChange?: (height: number) => void;
6
8
  }
7
9
  export declare const ImageRenderer: React.FC<ImageRendererProps>;
8
10
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ImageRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/ImageRenderer.tsx"],"names":[],"mappings":"AAGA,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2HtD,CAAC"}
1
+ {"version":3,"file":"ImageRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/ImageRenderer.tsx"],"names":[],"mappings":"AAGA,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAkItD,CAAC"}
@@ -0,0 +1,6 @@
1
+ interface MsgRendererProps {
2
+ url: string;
3
+ }
4
+ export declare const MsgRenderer: React.FC<MsgRendererProps>;
5
+ export {};
6
+ //# sourceMappingURL=MsgRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MsgRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/MsgRenderer.tsx"],"names":[],"mappings":"AAKA,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;CACb;AAoDD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAwJlD,CAAC"}
@@ -7,6 +7,7 @@ interface PdfRendererProps {
7
7
  currentPage: number;
8
8
  onPageChange: (page: number) => void;
9
9
  onTotalPagesChange: (total: number) => void;
10
+ onPageWidthChange?: (width: number) => void;
10
11
  }
11
12
  export declare const PdfRenderer: React.FC<PdfRendererProps>;
12
13
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"PdfRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/PdfRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,6CAA6C,CAAC;AACrD,OAAO,uCAAuC,CAAC;AAG/C,OAAO,oBAAoB,CAAC;AAE5B,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAyIlD,CAAC"}
1
+ {"version":3,"file":"PdfRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/PdfRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,6CAA6C,CAAC;AACrD,OAAO,uCAAuC,CAAC;AAG/C,OAAO,oBAAoB,CAAC;AAE5B,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgJlD,CAAC"}
@@ -1,5 +1,7 @@
1
1
  interface PptxRendererProps {
2
2
  url: string;
3
+ /** 是否平铺展示所有页面,默认 true */
4
+ tiled?: boolean;
3
5
  }
4
6
  export declare const PptxRenderer: React.FC<PptxRendererProps>;
5
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"PptxRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/PptxRenderer.tsx"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2QpD,CAAC"}
1
+ {"version":3,"file":"PptxRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/PptxRenderer.tsx"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,yBAAyB;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA2UpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"XlsxRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/XlsxRenderer.tsx"],"names":[],"mappings":"AAGA,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6GpD,CAAC"}
1
+ {"version":3,"file":"XlsxRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/XlsxRenderer.tsx"],"names":[],"mappings":"AAMA,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAsOpD,CAAC"}
package/lib/types.d.ts CHANGED
@@ -13,7 +13,7 @@ export interface PreviewFile {
13
13
  size?: number;
14
14
  }
15
15
  export type PreviewFileInput = File | PreviewFileLink | string;
16
- export type FileType = 'image' | 'pdf' | 'docx' | 'xlsx' | 'pptx' | 'video' | 'audio' | 'markdown' | 'text' | 'unsupported';
16
+ export type FileType = 'image' | 'pdf' | 'docx' | 'xlsx' | 'pptx' | 'msg' | 'video' | 'audio' | 'markdown' | 'text' | 'unsupported';
17
17
  export interface ToolbarAction {
18
18
  icon: React.ReactNode;
19
19
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,eAAe,GAAG,MAAM,CAAC;AAE/D,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,OAAO,GACP,OAAO,GACP,UAAU,GACV,MAAM,GACN,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,cAAc;IAE7B,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;IAErC,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;CAChD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,eAAe,GAAG,MAAM,CAAC;AAE/D,MAAM,MAAM,QAAQ,GAChB,OAAO,GACP,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,KAAK,GACL,OAAO,GACP,OAAO,GACP,UAAU,GACV,MAAM,GACN,aAAa,CAAC;AAElB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,cAAc;IAE7B,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC;IAErC,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC;CAChD"}
@@ -0,0 +1,46 @@
1
+ import type { Workbook } from 'exceljs';
2
+ interface XCellStyle {
3
+ align?: 'left' | 'center' | 'right';
4
+ valign?: 'top' | 'middle' | 'bottom';
5
+ font?: {
6
+ name?: string;
7
+ size?: number;
8
+ bold?: boolean;
9
+ italic?: boolean;
10
+ };
11
+ bgcolor?: string;
12
+ textwrap?: boolean;
13
+ color?: string;
14
+ strike?: boolean;
15
+ underline?: boolean;
16
+ border?: {
17
+ top?: string[];
18
+ right?: string[];
19
+ bottom?: string[];
20
+ left?: string[];
21
+ };
22
+ }
23
+ interface XCellData {
24
+ text: string;
25
+ style?: number;
26
+ merge?: [number, number];
27
+ }
28
+ interface XRowData {
29
+ height?: number;
30
+ cells: Record<string, XCellData>;
31
+ }
32
+ interface XSheetData {
33
+ name: string;
34
+ styles?: XCellStyle[];
35
+ merges?: string[];
36
+ rows?: Record<string, XRowData>;
37
+ cols?: Record<string, {
38
+ width?: number;
39
+ } | number>;
40
+ }
41
+ /**
42
+ * 将 exceljs Workbook 转换为 x-data-spreadsheet 数据格式
43
+ */
44
+ export declare function convertWorkbookToSpreadsheetData(workbook: Workbook): XSheetData[];
45
+ export {};
46
+ //# sourceMappingURL=excelDataConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excelDataConverter.d.ts","sourceRoot":"","sources":["../../src/utils/excelDataConverter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAgD,MAAM,SAAS,CAAC;AAGtF,UAAU,UAAU;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CACH;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1B;AAED,UAAU,QAAQ;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAClC;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,CAAC;CACpD;AAmTD;;GAEG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,QAAQ,GACjB,UAAU,EAAE,CA4Ed"}
@@ -1 +1 @@
1
- {"version":3,"file":"fileNormalizer.d.ts","sourceRoot":"","sources":["../../src/utils/fileNormalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAyFzD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,GAAE,MAAU,GAAG,WAAW,CA+BrF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAExE"}
1
+ {"version":3,"file":"fileNormalizer.d.ts","sourceRoot":"","sources":["../../src/utils/fileNormalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AA0FzD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,GAAE,MAAU,GAAG,WAAW,CA+BrF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,WAAW,EAAE,CAExE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eternalheart/react-file-preview",
3
- "version": "1.0.4",
3
+ "version": "1.1.0",
4
4
  "description": "A modern, feature-rich file preview component for React with support for images, videos, audio, PDFs, Office documents (Word, Excel, PowerPoint), Markdown, and code files.",
5
5
  "type": "module",
6
6
  "main": "./lib/index.cjs",
@@ -58,7 +58,7 @@
58
58
  },
59
59
  "scripts": {
60
60
  "build": "vite build && tsc --project tsconfig.json",
61
- "dev": "vite build --watch",
61
+ "dev": "vite build --watch --emptyOutDir false",
62
62
  "prepublishOnly": "pnpm build",
63
63
  "version:patch": "npm version patch",
64
64
  "version:minor": "npm version minor",
@@ -73,9 +73,11 @@
73
73
  "react-dom": "^18.0.0"
74
74
  },
75
75
  "dependencies": {
76
+ "@kenjiuno/msgreader": "^1.28.0",
76
77
  "@types/react-syntax-highlighter": "^15.5.13",
77
78
  "@videojs-player/react": "^1.0.0",
78
79
  "docx-preview": "^0.3.2",
80
+ "exceljs": "^4.4.0",
79
81
  "framer-motion": "^11.11.17",
80
82
  "lucide-react": "^0.460.0",
81
83
  "mammoth": "^1.8.0",
@@ -86,7 +88,7 @@
86
88
  "react-syntax-highlighter": "^16.1.0",
87
89
  "remark-gfm": "^4.0.1",
88
90
  "video.js": "^8.23.4",
89
- "xlsx": "^0.18.5"
91
+ "x-data-spreadsheet": "^1.1.9"
90
92
  },
91
93
  "devDependencies": {
92
94
  "@types/node": "^24.10.1",
@@ -95,6 +97,7 @@
95
97
  "@vitejs/plugin-react": "^4.3.4",
96
98
  "autoprefixer": "^10.4.20",
97
99
  "postcss": "^8.4.49",
100
+ "postcss-prefix-selector": "^2.1.1",
98
101
  "react": "^18.3.1",
99
102
  "react-dom": "^18.3.1",
100
103
  "tailwindcss": "^3.4.18",
@@ -102,4 +105,4 @@
102
105
  "vite": "^5.4.11",
103
106
  "vite-plugin-static-copy": "^3.1.4"
104
107
  }
105
- }
108
+ }