teamsync-pdf-viewer 1.0.3 → 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.
Files changed (44) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/LICENSE +96 -1
  3. package/README.md +166 -165
  4. package/dist/src/annotations/types.d.ts +45 -0
  5. package/dist/src/components/AboutModal.d.ts +6 -0
  6. package/dist/src/components/AnnotationContextMenu.d.ts +17 -0
  7. package/dist/src/components/DocumentViewer.d.ts +47 -0
  8. package/dist/src/components/Header.d.ts +35 -0
  9. package/dist/src/components/InsertLinkModal.d.ts +10 -0
  10. package/dist/src/components/LeftSidebar.d.ts +10 -0
  11. package/dist/src/components/PageContextMenu.d.ts +20 -0
  12. package/dist/src/components/PageRenderer.d.ts +40 -0
  13. package/dist/src/components/SettingsModal.d.ts +8 -0
  14. package/dist/src/components/Sidebar.d.ts +18 -0
  15. package/dist/src/components/TeamSyncViewer.d.ts +35 -0
  16. package/dist/src/components/TextSelectionMenu.d.ts +18 -0
  17. package/dist/src/core/ViewerInstance.d.ts +92 -0
  18. package/dist/src/core/busContext.d.ts +3 -0
  19. package/dist/src/core/createWebViewer.d.ts +5 -0
  20. package/dist/src/core/eventBus.d.ts +25 -0
  21. package/dist/src/core/export.d.ts +20 -0
  22. package/dist/src/core/pdfAssets.d.ts +27 -0
  23. package/dist/src/core/types.d.ts +103 -0
  24. package/dist/src/hooks/usePdfSearch.d.ts +23 -0
  25. package/dist/src/hooks/useShortcuts.d.ts +13 -0
  26. package/dist/src/hooks/useViewerBus.d.ts +7 -0
  27. package/dist/src/index.d.ts +20 -0
  28. package/dist/src/plugins/index.d.ts +1 -0
  29. package/dist/src/plugins/types.d.ts +26 -0
  30. package/dist/src/utils/findRegexRedactions.d.ts +6 -0
  31. package/dist/src/utils/rotationUtils.d.ts +32 -0
  32. package/dist/style.css +2 -0
  33. package/dist/teamsync-pdf-viewer.js +5086 -0
  34. package/dist/teamsync-pdf-viewer.js.map +1 -0
  35. package/package.json +48 -15
  36. package/dist/TeamSync.pdf +0 -0
  37. package/dist/ThirdPartyNotices.txt +0 -639
  38. package/dist/favicon.svg +0 -16
  39. package/dist/icons.svg +0 -24
  40. package/dist/index.d.ts +0 -1
  41. package/dist/teamsync-pdf-viewer.css +0 -2
  42. package/dist/teamsync-pdf-viewer.es.js +0 -51524
  43. package/dist/teamsync-pdf-viewer.umd.cjs +0 -327
  44. package/dist/webviewer.js +0 -92
package/dist/webviewer.js DELETED
@@ -1,92 +0,0 @@
1
- /**
2
- * © 2026 AngelBot Ai Pvt Ltd. All rights reserved.
3
- */
4
- /**
5
- * Drop-in replacement for Legacy WebViewer wrapper.
6
- */
7
- export default function WebViewer(options, viewerElement) {
8
- return new Promise((resolve, reject) => {
9
- // 1. Create the iframe
10
- const iframe = document.createElement('iframe');
11
- iframe.style.width = '100%';
12
- iframe.style.height = '100%';
13
- iframe.style.border = 'none';
14
-
15
- // 2. Construct the URL to our built Vite app (index.html)
16
- const basePath = options.path || '/lib';
17
- iframe.src = `${basePath}/index.html`;
18
- viewerElement.appendChild(iframe);
19
-
20
- // 3. Establish the Mock Legacy Instance API
21
- const instance = {
22
- iframeWindow: iframe.contentWindow,
23
- UI: {
24
- setTheme: (theme) => iframe.contentWindow.postMessage({ type: 'UI_SET_THEME', theme }, '*'),
25
- openElements: (elements) => iframe.contentWindow.postMessage({ type: 'UI_OPEN_ELEMENTS', elements }, '*'),
26
- closeElements: (elements) => iframe.contentWindow.postMessage({ type: 'UI_CLOSE_ELEMENTS', elements }, '*'),
27
- enableElements: (elements) => iframe.contentWindow.postMessage({ type: 'UI_OPEN_ELEMENTS', elements }, '*'),
28
- disableElements: (elements) => iframe.contentWindow.postMessage({ type: 'UI_CLOSE_ELEMENTS', elements }, '*'),
29
- setActiveLeftPanel: (panel) => iframe.contentWindow.postMessage({ type: 'UI_SET_ACTIVE_LEFT_PANEL', panel }, '*')
30
- },
31
- Core: {
32
- annotationManager: {
33
- exportAnnotations: () => {
34
- return new Promise((res) => {
35
- const listener = (event) => {
36
- if (event.source !== iframe.contentWindow) return;
37
- if (event.data.type === 'EXPORT_ANNOTATIONS_RESULT') {
38
- window.removeEventListener('message', listener);
39
- res(event.data.annotations);
40
- }
41
- };
42
- window.addEventListener('message', listener);
43
- iframe.contentWindow.postMessage({ type: 'CORE_EXPORT_ANNOTATIONS' }, '*');
44
- });
45
- }
46
- },
47
- documentViewer: {
48
- getDocument: () => ({
49
- getFileData: () => {
50
- return new Promise((res) => {
51
- const listener = (event) => {
52
- if (event.source !== iframe.contentWindow) return;
53
- if (event.data.type === 'GET_FILE_DATA_RESULT') {
54
- window.removeEventListener('message', listener);
55
- res(event.data.data);
56
- }
57
- };
58
- window.addEventListener('message', listener);
59
- iframe.contentWindow.postMessage({ type: 'CORE_GET_FILE_DATA' }, '*');
60
- });
61
- }
62
- })
63
- }
64
- }
65
- };
66
-
67
- // Wait for the React app inside the iframe to signal it is ready
68
- const messageListener = (event) => {
69
- if (event.source !== iframe.contentWindow) return;
70
-
71
- if (event.data === 'VIEWER_READY') {
72
- // Prepare options (stringify regexes since they can't be cloned directly via postMessage)
73
- const serializedOptions = {
74
- ...options,
75
- regexRedactions: options.regexRedactions
76
- ? options.regexRedactions.map(r => r.toString())
77
- : []
78
- };
79
-
80
- iframe.contentWindow.postMessage({
81
- type: 'INIT',
82
- options: serializedOptions
83
- }, '*');
84
- } else if (event.data === 'VIEWER_INITIALIZED') {
85
- window.removeEventListener('message', messageListener);
86
- resolve(instance);
87
- }
88
- };
89
-
90
- window.addEventListener('message', messageListener);
91
- });
92
- }