@shahajimbhosle/local-doc-viewer 1.0.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 (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +161 -0
  3. package/dist/DocumentViewer.d.ts +3 -0
  4. package/dist/DocumentViewer.d.ts.map +1 -0
  5. package/dist/components/Toolbar.d.ts +23 -0
  6. package/dist/components/Toolbar.d.ts.map +1 -0
  7. package/dist/index.css +1 -0
  8. package/dist/index.d.ts +4 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +59332 -0
  11. package/dist/index.umd.cjs +257 -0
  12. package/dist/renderers/CsvRenderer.d.ts +3 -0
  13. package/dist/renderers/CsvRenderer.d.ts.map +1 -0
  14. package/dist/renderers/DocxRenderer.d.ts +3 -0
  15. package/dist/renderers/DocxRenderer.d.ts.map +1 -0
  16. package/dist/renderers/ImageRenderer.d.ts +3 -0
  17. package/dist/renderers/ImageRenderer.d.ts.map +1 -0
  18. package/dist/renderers/LegacyPptRenderer.d.ts +3 -0
  19. package/dist/renderers/LegacyPptRenderer.d.ts.map +1 -0
  20. package/dist/renderers/MarkdownRenderer.d.ts +3 -0
  21. package/dist/renderers/MarkdownRenderer.d.ts.map +1 -0
  22. package/dist/renderers/MediaRenderer.d.ts +3 -0
  23. package/dist/renderers/MediaRenderer.d.ts.map +1 -0
  24. package/dist/renderers/PdfRenderer.d.ts +3 -0
  25. package/dist/renderers/PdfRenderer.d.ts.map +1 -0
  26. package/dist/renderers/PptxRenderer.d.ts +3 -0
  27. package/dist/renderers/PptxRenderer.d.ts.map +1 -0
  28. package/dist/renderers/SpreadsheetRenderer.d.ts +3 -0
  29. package/dist/renderers/SpreadsheetRenderer.d.ts.map +1 -0
  30. package/dist/renderers/TextRenderer.d.ts +3 -0
  31. package/dist/renderers/TextRenderer.d.ts.map +1 -0
  32. package/dist/renderers/UnsupportedRenderer.d.ts +3 -0
  33. package/dist/renderers/UnsupportedRenderer.d.ts.map +1 -0
  34. package/dist/renderers/index.d.ts +15 -0
  35. package/dist/renderers/index.d.ts.map +1 -0
  36. package/dist/types.d.ts +121 -0
  37. package/dist/types.d.ts.map +1 -0
  38. package/dist/utils/highlight.d.ts +4 -0
  39. package/dist/utils/highlight.d.ts.map +1 -0
  40. package/dist/utils/mime.d.ts +8 -0
  41. package/dist/utils/mime.d.ts.map +1 -0
  42. package/dist/utils/sanitize.d.ts +3 -0
  43. package/dist/utils/sanitize.d.ts.map +1 -0
  44. package/dist/utils/source.d.ts +14 -0
  45. package/dist/utils/source.d.ts.map +1 -0
  46. package/dist/utils/xls.d.ts +10 -0
  47. package/dist/utils/xls.d.ts.map +1 -0
  48. package/dist/utils/xlsx.d.ts +28 -0
  49. package/dist/utils/xlsx.d.ts.map +1 -0
  50. package/package.json +66 -0
@@ -0,0 +1,3 @@
1
+ import { DocumentRenderer } from '../types';
2
+ export declare const CsvRenderer: DocumentRenderer;
3
+ //# sourceMappingURL=CsvRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CsvRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/CsvRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,UAAU,CAAC;AA+FxE,eAAO,MAAM,WAAW,EAAE,gBAMzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DocumentRenderer } from '../types';
2
+ export declare const DocxRenderer: DocumentRenderer;
3
+ //# sourceMappingURL=DocxRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocxRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/DocxRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,UAAU,CAAC;AAkQxE,eAAO,MAAM,YAAY,EAAE,gBAQ1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DocumentRenderer } from '../types';
2
+ export declare const ImageRenderer: DocumentRenderer;
3
+ //# sourceMappingURL=ImageRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/ImageRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,UAAU,CAAC;AAoExE,eAAO,MAAM,aAAa,EAAE,gBAM3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DocumentRenderer } from '../types';
2
+ export declare const LegacyPptRenderer: DocumentRenderer;
3
+ //# sourceMappingURL=LegacyPptRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LegacyPptRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/LegacyPptRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,UAAU,CAAC;AAmCxE,eAAO,MAAM,iBAAiB,EAAE,gBAY/B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DocumentRenderer } from '../types';
2
+ export declare const MarkdownRenderer: DocumentRenderer;
3
+ //# sourceMappingURL=MarkdownRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/MarkdownRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,UAAU,CAAC;AA0DxE,eAAO,MAAM,gBAAgB,EAAE,gBAM9B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DocumentRenderer } from '../types';
2
+ export declare const MediaRenderer: DocumentRenderer;
3
+ //# sourceMappingURL=MediaRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/MediaRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,UAAU,CAAC;AAwBxE,eAAO,MAAM,aAAa,EAAE,gBAM3B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DocumentRenderer } from '../types';
2
+ export declare const PdfRenderer: DocumentRenderer;
3
+ //# sourceMappingURL=PdfRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PdfRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/PdfRenderer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,UAAU,CAAC;AA6TjF,eAAO,MAAM,WAAW,EAAE,gBAMzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DocumentRenderer } from '../types';
2
+ export declare const PptxRenderer: DocumentRenderer;
3
+ //# sourceMappingURL=PptxRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PptxRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/PptxRenderer.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAkC,MAAM,UAAU,CAAC;AAikBjF,eAAO,MAAM,YAAY,EAAE,gBAY1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DocumentRenderer } from '../types';
2
+ export declare const SpreadsheetRenderer: DocumentRenderer;
3
+ //# sourceMappingURL=SpreadsheetRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpreadsheetRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/SpreadsheetRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,UAAU,CAAC;AAkQxE,eAAO,MAAM,mBAAmB,EAAE,gBAUjC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DocumentRenderer } from '../types';
2
+ export declare const TextRenderer: DocumentRenderer;
3
+ //# sourceMappingURL=TextRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/TextRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,UAAU,CAAC;AA2ExE,eAAO,MAAM,YAAY,EAAE,gBAM1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DocumentRenderer } from '../types';
2
+ export declare const UnsupportedRenderer: DocumentRenderer;
3
+ //# sourceMappingURL=UnsupportedRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnsupportedRenderer.d.ts","sourceRoot":"","sources":["../../src/renderers/UnsupportedRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,UAAU,CAAC;AAgCxE,eAAO,MAAM,mBAAmB,EAAE,gBAMjC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { DocumentRenderer } from '../types';
2
+ import { CsvRenderer } from './CsvRenderer';
3
+ import { DocxRenderer } from './DocxRenderer';
4
+ import { ImageRenderer } from './ImageRenderer';
5
+ import { LegacyPptRenderer } from './LegacyPptRenderer';
6
+ import { MarkdownRenderer } from './MarkdownRenderer';
7
+ import { MediaRenderer } from './MediaRenderer';
8
+ import { PdfRenderer } from './PdfRenderer';
9
+ import { PptxRenderer } from './PptxRenderer';
10
+ import { SpreadsheetRenderer } from './SpreadsheetRenderer';
11
+ import { TextRenderer } from './TextRenderer';
12
+ import { UnsupportedRenderer } from './UnsupportedRenderer';
13
+ export declare const builtInRenderers: DocumentRenderer[];
14
+ export { CsvRenderer, DocxRenderer, ImageRenderer, LegacyPptRenderer, MarkdownRenderer, MediaRenderer, PdfRenderer, PptxRenderer, SpreadsheetRenderer, TextRenderer, UnsupportedRenderer, };
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,EAY9C,CAAC;AAEF,OAAO,EACL,WAAW,EACX,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,GACpB,CAAC"}
@@ -0,0 +1,121 @@
1
+ import { ComponentType, CSSProperties, ReactNode, RefObject } from 'react';
2
+ export type BinaryDocumentData = ArrayBuffer | Uint8Array;
3
+ export type DocumentSource = File | Blob | BinaryDocumentData | string | {
4
+ blob?: Blob;
5
+ data?: File | Blob | BinaryDocumentData;
6
+ url?: string;
7
+ fileName?: string;
8
+ mimeType?: string;
9
+ };
10
+ export type FitMode = 'manual' | 'width' | 'page';
11
+ export interface ResolvedDocument {
12
+ blob: Blob;
13
+ arrayBuffer: ArrayBuffer;
14
+ objectUrl: string;
15
+ fileName: string;
16
+ mimeType: string;
17
+ extension: string;
18
+ byteLength: number;
19
+ sourceKind: 'blob' | 'buffer' | 'url';
20
+ originalUrl?: string;
21
+ }
22
+ export interface SearchStats {
23
+ totalMatches?: number;
24
+ currentPageMatches?: number;
25
+ isSearching?: boolean;
26
+ message?: string;
27
+ }
28
+ export interface DocumentInfo {
29
+ title?: string;
30
+ pageCount?: number;
31
+ rendererId?: string;
32
+ rendererLabel?: string;
33
+ warnings?: string[];
34
+ }
35
+ export interface ViewerRuntimeState {
36
+ page: number;
37
+ pageCount?: number;
38
+ zoom: number;
39
+ rotation: number;
40
+ fitMode: FitMode;
41
+ searchTerm: string;
42
+ }
43
+ export interface RendererActions {
44
+ setPage: (page: number) => void;
45
+ setPageCount: (pageCount?: number) => void;
46
+ setDocumentInfo: (info: Partial<DocumentInfo>) => void;
47
+ setSearchStats: (stats: SearchStats) => void;
48
+ reportError: (error: unknown) => void;
49
+ }
50
+ export interface DocumentRendererProps {
51
+ file: ResolvedDocument;
52
+ state: ViewerRuntimeState;
53
+ actions: RendererActions;
54
+ controls: ResolvedDocumentViewerControls;
55
+ labels: DocumentViewerLabels;
56
+ viewportRef: RefObject<HTMLDivElement>;
57
+ }
58
+ export interface DocumentRenderer {
59
+ id: string;
60
+ label: string;
61
+ priority?: number;
62
+ canRender: (file: ResolvedDocument) => boolean | number;
63
+ Component: ComponentType<DocumentRendererProps>;
64
+ }
65
+ export interface DocumentViewerControls {
66
+ toolbar?: boolean;
67
+ fileName?: boolean;
68
+ pageNavigation?: boolean;
69
+ zoom?: boolean;
70
+ fit?: boolean;
71
+ rotate?: boolean;
72
+ search?: boolean;
73
+ print?: boolean;
74
+ download?: boolean;
75
+ fullscreen?: boolean;
76
+ thumbnails?: boolean;
77
+ }
78
+ export type ResolvedDocumentViewerControls = Required<DocumentViewerControls>;
79
+ export interface DocumentViewerLabels {
80
+ openFile: string;
81
+ previousPage: string;
82
+ nextPage: string;
83
+ page: string;
84
+ of: string;
85
+ zoomOut: string;
86
+ zoomIn: string;
87
+ resetZoom: string;
88
+ fitWidth: string;
89
+ fitPage: string;
90
+ rotateLeft: string;
91
+ rotateRight: string;
92
+ search: string;
93
+ print: string;
94
+ download: string;
95
+ fullscreen: string;
96
+ exitFullscreen: string;
97
+ unsupportedTitle: string;
98
+ noDocument: string;
99
+ loading: string;
100
+ }
101
+ export interface DocumentViewerProps {
102
+ source?: DocumentSource | null;
103
+ fileName?: string;
104
+ mimeType?: string;
105
+ className?: string;
106
+ style?: CSSProperties;
107
+ height?: number | string;
108
+ renderers?: DocumentRenderer[];
109
+ allowRemoteUrls?: boolean;
110
+ fetchCredentials?: RequestCredentials;
111
+ minZoom?: number;
112
+ maxZoom?: number;
113
+ initialZoom?: number;
114
+ initialPage?: number;
115
+ controls?: DocumentViewerControls;
116
+ labels?: Partial<DocumentViewerLabels>;
117
+ emptyState?: ReactNode;
118
+ onLoad?: (info: DocumentInfo, file: ResolvedDocument) => void;
119
+ onError?: (error: Error) => void;
120
+ }
121
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { ReactNode } from 'react';
2
+ export declare function countMatches(text: string, query: string): number;
3
+ export declare function highlightText(text: string, query: string): ReactNode;
4
+ //# sourceMappingURL=highlight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlight.d.ts","sourceRoot":"","sources":["../../src/utils/highlight.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAqBpE"}
@@ -0,0 +1,8 @@
1
+ export declare const mimeByExtension: Record<string, string>;
2
+ export declare function extensionFromName(fileName?: string): string;
3
+ export declare function fileNameFromUrl(url: string): string;
4
+ export declare function inferMimeType(fileName?: string, fallback?: string): string;
5
+ export declare function extensionFromMimeType(mimeType?: string): string;
6
+ export declare function isTextLikeMime(mimeType: string): boolean;
7
+ export declare function isOfficeExtension(extension: string): boolean;
8
+ //# sourceMappingURL=mime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mime.d.ts","sourceRoot":"","sources":["../../src/utils/mime.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAoClD,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,QAAQ,SAAK,GAAG,MAAM,CAQvD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQnD;AAED,wBAAgB,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,SAA6B,GAAG,MAAM,CAG9F;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,SAAK,GAAG,MAAM,CAK3D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAQxD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE5D"}
@@ -0,0 +1,3 @@
1
+ export declare function sanitizeHtml(html: string): string;
2
+ export declare function htmlToText(html: string): string;
3
+ //# sourceMappingURL=sanitize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"AASA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAwBjD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI/C"}
@@ -0,0 +1,14 @@
1
+ import { DocumentSource, ResolvedDocument } from '../types';
2
+ export interface ResolveDocumentSourceOptions {
3
+ fileName?: string;
4
+ mimeType?: string;
5
+ allowRemoteUrls?: boolean;
6
+ fetchCredentials?: RequestCredentials;
7
+ signal?: AbortSignal;
8
+ }
9
+ export declare class DocumentSourceError extends Error {
10
+ constructor(message: string);
11
+ }
12
+ export declare function resolveDocumentSource(source: DocumentSource, options?: ResolveDocumentSourceOptions): Promise<ResolvedDocument>;
13
+ export declare function toError(error: unknown): Error;
14
+ //# sourceMappingURL=source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/utils/source.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjE,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IACtC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AA8LD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,gBAAgB,CAAC,CA4D3B;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,CAM7C"}
@@ -0,0 +1,10 @@
1
+ export type XlsCell = string | number | boolean | Date | null;
2
+ export interface ParsedXlsSheet {
3
+ name: string;
4
+ rows: XlsCell[][];
5
+ }
6
+ export interface ParsedXlsWorkbook {
7
+ sheets: ParsedXlsSheet[];
8
+ }
9
+ export declare function parseXlsWorkbook(arrayBuffer: ArrayBuffer): ParsedXlsWorkbook;
10
+ //# sourceMappingURL=xls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xls.d.ts","sourceRoot":"","sources":["../../src/utils/xls.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAqXD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,WAAW,GAAG,iBAAiB,CAI5E"}
@@ -0,0 +1,28 @@
1
+ export type SpreadsheetCellValue = string | number | boolean | Date | null;
2
+ export interface SpreadsheetCellStyle {
3
+ backgroundColor?: string;
4
+ color?: string;
5
+ fontStyle?: string;
6
+ fontWeight?: string;
7
+ textDecoration?: string;
8
+ }
9
+ export interface SpreadsheetComment {
10
+ author?: string;
11
+ text: string;
12
+ date?: string;
13
+ kind: 'comment' | 'note';
14
+ }
15
+ export interface ParsedSpreadsheetCell {
16
+ value: SpreadsheetCellValue;
17
+ style?: SpreadsheetCellStyle;
18
+ comments?: SpreadsheetComment[];
19
+ }
20
+ export interface ParsedXlsxSheet {
21
+ name: string;
22
+ rows: ParsedSpreadsheetCell[][];
23
+ }
24
+ export interface ParsedXlsxWorkbook {
25
+ sheets: ParsedXlsxSheet[];
26
+ }
27
+ export declare function parseXlsxWorkbook(arrayBuffer: ArrayBuffer): Promise<ParsedXlsxWorkbook>;
28
+ //# sourceMappingURL=xlsx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xlsx.d.ts","sourceRoot":"","sources":["../../src/utils/xlsx.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3E,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,qBAAqB,EAAE,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAymBD,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAqD7F"}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "@shahajimbhosle/local-doc-viewer",
3
+ "version": "1.0.0",
4
+ "description": "Privacy-first React document viewer with local-only rendering and extensible client-side renderers.",
5
+ "type": "module",
6
+ "main": "./dist/index.umd.cjs",
7
+ "module": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js",
13
+ "require": "./dist/index.umd.cjs"
14
+ },
15
+ "./style.css": "./dist/style.css"
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "README.md",
20
+ "LICENSE"
21
+ ],
22
+ "scripts": {
23
+ "dev": "vite --host 0.0.0.0",
24
+ "build": "tsc -p tsconfig.build.json && vite build",
25
+ "typecheck": "tsc -p tsconfig.json --noEmit",
26
+ "test": "npm run typecheck",
27
+ "preview": "vite preview --host 0.0.0.0"
28
+ },
29
+ "keywords": [
30
+ "react",
31
+ "document-viewer",
32
+ "pdf",
33
+ "docx",
34
+ "xlsx",
35
+ "pptx",
36
+ "privacy",
37
+ "local-first"
38
+ ],
39
+ "license": "MIT",
40
+ "peerDependencies": {
41
+ "react": ">=18.2.0",
42
+ "react-dom": ">=18.2.0"
43
+ },
44
+ "dependencies": {
45
+ "chart.js": "^4.5.1",
46
+ "docx-preview": "^0.4.0",
47
+ "dompurify": "^3.2.5",
48
+ "jszip": "^3.10.1",
49
+ "lucide-react": "^0.468.0",
50
+ "marked": "^14.1.4",
51
+ "pdfjs-dist": "^4.8.69",
52
+ "pptxviewjs": "^1.1.9"
53
+ },
54
+ "devDependencies": {
55
+ "@types/dompurify": "^3.0.5",
56
+ "@types/react": "^18.3.12",
57
+ "@types/react-dom": "^18.3.1",
58
+ "@vitejs/plugin-react": "^4.3.3",
59
+ "typescript": "^5.7.2",
60
+ "vite": "^6.0.1",
61
+ "vite-plugin-dts": "^4.3.0"
62
+ },
63
+ "sideEffects": [
64
+ "**/*.css"
65
+ ]
66
+ }