@epam/pdf-highlighter-kit 0.0.3 → 0.0.5

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 (38) hide show
  1. package/README.md +194 -63
  2. package/dist/PDFHighlightViewer.d.ts +31 -24
  3. package/dist/PDFHighlightViewer.d.ts.map +1 -1
  4. package/dist/PDFHighlightViewer.js +332 -292
  5. package/dist/PDFHighlightViewer.js.map +1 -1
  6. package/dist/api.d.ts +7 -12
  7. package/dist/api.d.ts.map +1 -1
  8. package/dist/core/interaction-handler.d.ts +1 -1
  9. package/dist/core/interaction-handler.d.ts.map +1 -1
  10. package/dist/core/interaction-handler.js +43 -31
  11. package/dist/core/interaction-handler.js.map +1 -1
  12. package/dist/core/performance-optimizer.d.ts +3 -3
  13. package/dist/core/performance-optimizer.d.ts.map +1 -1
  14. package/dist/core/performance-optimizer.js +7 -8
  15. package/dist/core/performance-optimizer.js.map +1 -1
  16. package/dist/core/text-segmentation.d.ts +8 -7
  17. package/dist/core/text-segmentation.d.ts.map +1 -1
  18. package/dist/core/text-segmentation.js +101 -133
  19. package/dist/core/text-segmentation.js.map +1 -1
  20. package/dist/core/unified-layer-builder.d.ts +7 -8
  21. package/dist/core/unified-layer-builder.d.ts.map +1 -1
  22. package/dist/core/unified-layer-builder.js +124 -174
  23. package/dist/core/unified-layer-builder.js.map +1 -1
  24. package/dist/index.d.ts +1 -11
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +0 -44
  27. package/dist/index.js.map +1 -1
  28. package/dist/types.d.ts +32 -48
  29. package/dist/types.d.ts.map +1 -1
  30. package/dist/utils/highlight-adapter.d.ts +2 -30
  31. package/dist/utils/highlight-adapter.d.ts.map +1 -1
  32. package/dist/utils/highlight-adapter.js +21 -197
  33. package/dist/utils/highlight-adapter.js.map +1 -1
  34. package/package.json +1 -1
  35. package/dist/core/style-manager.d.ts +0 -88
  36. package/dist/core/style-manager.d.ts.map +0 -1
  37. package/dist/core/style-manager.js +0 -413
  38. package/dist/core/style-manager.js.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,13 @@
1
- # PDF Highlight Viewer
1
+ <div align="center">
2
+ <h1>PDF Highlight Viewer</h1>
3
+ <p>High-performance PDF viewer with intelligent highlighting and text selection capabilities for web applications.</p>
2
4
 
3
- High-performance PDF viewer with intelligent highlighting and text selection capabilities for web applications.
5
+ [![npm version](https://img.shields.io/npm/v/@epam/pdf-highlighter-kit)](https://www.npmjs.com/package/@epam/pdf-highlighter-kit) [![License](https://img.shields.io/badge/License-Apache--2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/epam/pdf-highlighter-kit/pulls)
6
+
7
+ <p>An open-source project by <strong>BadgerDoc</strong> <img src="./logo.svg" alt="BadgerDoc" width="22" height="21" style="vertical-align: middle; margin-bottom: 3px;"></p>
8
+ </div>
9
+
10
+ ---
4
11
 
5
12
  ## Installation
6
13
 
@@ -8,17 +15,21 @@ High-performance PDF viewer with intelligent highlighting and text selection cap
8
15
  npm install @epam/pdf-highlighter-kit pdfjs-dist
9
16
  ```
10
17
 
18
+ > Peer dependency: `pdfjs-dist` (see Requirements).
19
+
11
20
  ## Quick Start
12
21
 
13
- ```typescript
22
+ ```ts
14
23
  import { PDFHighlightViewer } from '@epam/pdf-highlighter-kit';
24
+ import type { InputHighlightData } from '@epam/pdf-highlighter-kit';
15
25
  import '@epam/pdf-highlighter-kit/styles/pdf-highlight-viewer.css';
16
26
 
17
27
  // Create viewer instance
18
28
  const viewer = new PDFHighlightViewer();
19
29
 
20
30
  // Initialize with container element
21
- const container = document.getElementById('pdf-container');
31
+ const container = document.getElementById('pdf-container') as HTMLElement;
32
+
22
33
  await viewer.init(container, {
23
34
  enableTextSelection: true,
24
35
  enableVirtualScrolling: true,
@@ -30,34 +41,73 @@ await viewer.init(container, {
30
41
  // Load PDF document
31
42
  await viewer.loadPDF('/path/to/document.pdf');
32
43
 
33
- // Add highlights
34
- viewer.loadHighlights({
35
- category1: {
36
- pages: {
37
- '1': [
38
- {
39
- termId: 'term-001',
40
- coordinates: [{ x1: 100, y1: 200, x2: 300, y2: 220 }],
41
- },
42
- ],
44
+ // Highlights
45
+ const highlights: InputHighlightData[] = [
46
+ {
47
+ id: 'term-001',
48
+ bboxes: [
49
+ // page is 1-based
50
+ { page: 1, x1: 100, y1: 200, x2: 300, y2: 220 },
51
+ { page: 3, x1: 80, y1: 140, x2: 260, y2: 160 },
52
+ ],
53
+ style: {
54
+ backgroundColor: '#ffeb3b',
55
+ opacity: 0.3,
56
+ borderColor: '#d4c400',
57
+ borderWidth: '1px',
43
58
  },
44
- terms: {
45
- 'term-001': {
46
- term: 'Important Term',
47
- category: 'category1',
48
- frequency: 5,
49
- pages: [1, 3, 7],
50
- },
59
+ tooltipText: 'Important Term',
60
+ metadata: {
61
+ frequency: 5,
62
+ tags: ['important', 'glossary'],
51
63
  },
52
64
  },
53
- });
65
+ ];
66
+
67
+ viewer.loadHighlights(highlights);
68
+
69
+ // Navigate to a highlight occurrence
70
+ viewer.goToHighlight('term-001', 0);
71
+ ```
72
+
73
+ ## Data Model
74
+
75
+ ### `InputHighlightData`
76
+
77
+ Each highlight carries its own style. No categories are required.
78
+
79
+ ```ts
80
+ export interface BBox {
81
+ x1: number;
82
+ y1: number;
83
+ x2: number;
84
+ y2: number;
85
+ page: number;
86
+ }
87
+
88
+ export interface HighlightStyle {
89
+ backgroundColor: string;
90
+ borderColor?: string;
91
+ borderWidth?: string;
92
+ opacity?: number;
93
+ hoverOpacity?: number;
94
+ pulseAnimation?: boolean;
95
+ }
96
+
97
+ export interface InputHighlightData {
98
+ id: string;
99
+ bboxes: BBox[];
100
+ style?: HighlightStyle;
101
+ tooltipText?: string;
102
+ metadata?: Record<string, any>;
103
+ }
54
104
  ```
55
105
 
56
106
  ## Configuration Options
57
107
 
58
108
  ### ViewerConfig
59
109
 
60
- ```typescript
110
+ ```ts
61
111
  interface ViewerConfig {
62
112
  // Enable text selection functionality
63
113
  enableTextSelection?: boolean;
@@ -74,11 +124,16 @@ interface ViewerConfig {
74
124
  // Interaction mode: 'select' | 'highlight' | 'hybrid'
75
125
  interactionMode?: 'select' | 'highlight' | 'hybrid';
76
126
 
77
- // Custom styles configuration
127
+ // Custom styles configuration (viewer/selection CSS). Highlight styles are per-highlight.
78
128
  customStyles?: StyleConfig;
79
129
 
80
130
  // PDF.js worker source URL
81
131
  workerSrc?: string;
132
+
133
+ // Highlight UI config (style is per highlight)
134
+ highlightsConfig?: {
135
+ enableMultilineHover?: boolean;
136
+ };
82
137
  }
83
138
  ```
84
139
 
@@ -94,13 +149,36 @@ Initialize the viewer with a container element and optional configuration.
94
149
 
95
150
  Load a PDF document from URL or ArrayBuffer.
96
151
 
97
- #### `loadHighlights(highlights: HighlightData): void`
152
+ #### `loadHighlights(highlights: InputHighlightData[]): void`
153
+
154
+ Replace current highlights with the provided list.
155
+
156
+ #### `addHighlight(highlight: InputHighlightData): void`
157
+
158
+ Add a single highlight (incremental update).
159
+
160
+ #### `removeHighlight(termId: string): void`
161
+
162
+ Remove highlight by its `id`.
98
163
 
99
- Load highlight data to display in the PDF.
164
+ #### `updateHighlightStyle(termId: string, stylePatch: Partial<HighlightStyle>): void`
165
+
166
+ Update highlight style by id (patch merge).
167
+
168
+ #### `goToHighlight(termId: string, bboxIndex?: number): void`
169
+
170
+ Navigate to a specific highlight occurrence. `bboxIndex` defaults to `0`.
171
+
172
+ #### `nextHighlight(termId?: string): void` / `previousHighlight(termId?: string): void`
173
+
174
+ Navigate across highlight occurrences:
175
+
176
+ - without `termId` → across all highlights in document order
177
+ - with `termId` → only within that highlight’s occurrences
100
178
 
101
179
  #### `goToPage(pageNumber: number): void`
102
180
 
103
- Navigate to a specific page.
181
+ Navigate to a specific page (1-based).
104
182
 
105
183
  #### `zoomIn(): void` / `zoomOut(): void`
106
184
 
@@ -110,46 +188,95 @@ Zoom in or out of the PDF.
110
188
 
111
189
  Set a specific zoom level (e.g., 1.0 for 100%, 1.5 for 150%).
112
190
 
113
- #### `search(query: string): Promise<SearchResult[]>`
114
-
115
- Search for text in the PDF document.
116
-
117
191
  #### `destroy(): void`
118
192
 
119
193
  Clean up and destroy the viewer instance.
120
194
 
121
- ### Events
195
+ ## Events
122
196
 
123
197
  The viewer emits various events that you can listen to:
124
198
 
125
- ```typescript
126
- viewer.on('pageChange', (pageNumber: number) => {
127
- console.log('Current page:', pageNumber);
199
+ ```ts
200
+ viewer.addEventListener('initialized', () => {
201
+ console.log('Viewer initialized');
202
+ });
203
+
204
+ viewer.addEventListener('pdfLoaded', (e) => {
205
+ console.log('PDF loaded. Total pages:', e.totalPages);
206
+ });
207
+
208
+ viewer.addEventListener('pageChanged', (e) => {
209
+ console.log('Current page:', e.pageNumber);
210
+ });
211
+
212
+ viewer.addEventListener('zoomChanged', (e) => {
213
+ console.log('Zoom changed:', e.scale);
214
+ });
215
+
216
+ viewer.addEventListener('renderComplete', (e) => {
217
+ console.log('Page rendered:', e.pageNumber);
218
+ });
219
+
220
+ viewer.addEventListener('renderError', (e) => {
221
+ console.error('Render error:', e.pageNumber, e.error);
222
+ });
223
+
224
+ viewer.addEventListener('highlightsLoaded', (e) => {
225
+ console.log('Highlights loaded:', e.data?.length ?? 0);
226
+ });
227
+
228
+ viewer.addEventListener('highlightHover', (e) => {
229
+ console.log('Highlight hover:', e.termId, 'page', e.pageNumber, 'bbox', e.bboxIndex);
128
230
  });
129
231
 
130
- viewer.on('textSelected', (selection: SelectionData) => {
131
- console.log('Text selected:', selection.text);
232
+ viewer.addEventListener('highlightBlur', (e) => {
233
+ console.log('Highlight blur:', e.termId);
132
234
  });
133
235
 
134
- viewer.on('highlightClick', (highlight: HighlightInfo) => {
135
- console.log('Highlight clicked:', highlight.term);
236
+ viewer.addEventListener('highlightClick', (e) => {
237
+ console.log('Highlight clicked:', e.termId, 'page', e.pageNumber, 'bbox', e.bboxIndex);
238
+ });
239
+
240
+ viewer.addEventListener('navigationComplete', (e) => {
241
+ console.log('Navigation complete:', e.termId, e.pageNumber, e.occurrenceIndex);
242
+ });
243
+
244
+ viewer.addEventListener('selectionChanged', (e) => {
245
+ console.log('Text selected:', e.text);
246
+ console.log('Pages:', e.pageNumbers);
247
+ console.log('Overlapping highlights:', e.highlights); // array of bbox refs
248
+ });
249
+
250
+ viewer.addEventListener('selectionHighlighted', (e) => {
251
+ console.log('Selection highlighted:', e.termId);
252
+ });
253
+
254
+ viewer.addEventListener('error', (e) => {
255
+ console.error('Viewer error:', e);
136
256
  });
137
257
  ```
138
258
 
139
- ## Advanced Usage
259
+ > Event payload fields may include `termId`, `pageNumber`, `bboxIndex`, and `bbox` depending on event type.
140
260
 
141
- ### Custom Styling
261
+ ## Advanced Usage
142
262
 
143
- ```typescript
144
- const viewer = new PDFHighlightViewer();
145
- await viewer.init(container, {
146
- customStyles: {
147
- highlightColor: '#ffeb3b',
148
- highlightOpacity: 0.3,
149
- selectionColor: '#2196f3',
150
- selectionOpacity: 0.4,
263
+ ### Custom Styling (per highlight)
264
+
265
+ ```ts
266
+ const highlight: InputHighlightData = {
267
+ id: 'note-001',
268
+ bboxes: [{ page: 2, x1: 120, y1: 330, x2: 420, y2: 355 }],
269
+ style: {
270
+ backgroundColor: '#ffd54f',
271
+ opacity: 0.25,
272
+ borderColor: '#ff8f00',
273
+ borderWidth: '1px',
274
+ hoverOpacity: 0.6,
151
275
  },
152
- });
276
+ tooltipText: 'My note',
277
+ };
278
+
279
+ viewer.addHighlight(highlight);
153
280
  ```
154
281
 
155
282
  ### React Integration
@@ -157,9 +284,16 @@ await viewer.init(container, {
157
284
  ```tsx
158
285
  import { useEffect, useRef } from 'react';
159
286
  import { PDFHighlightViewer } from '@epam/pdf-highlighter-kit';
287
+ import type { InputHighlightData } from '@epam/pdf-highlighter-kit';
160
288
  import '@epam/pdf-highlighter-kit/styles/pdf-highlight-viewer.css';
161
289
 
162
- function PDFViewer({ pdfUrl, highlights }) {
290
+ export function PDFViewer({
291
+ pdfUrl,
292
+ highlights,
293
+ }: {
294
+ pdfUrl: string;
295
+ highlights: InputHighlightData[];
296
+ }) {
163
297
  const containerRef = useRef<HTMLDivElement>(null);
164
298
  const viewerRef = useRef<PDFHighlightViewer | null>(null);
165
299
 
@@ -169,27 +303,24 @@ function PDFViewer({ pdfUrl, highlights }) {
169
303
  const viewer = new PDFHighlightViewer();
170
304
  viewerRef.current = viewer;
171
305
 
172
- viewer
173
- .init(containerRef.current, {
306
+ (async () => {
307
+ await viewer.init(containerRef.current!, {
174
308
  enableTextSelection: true,
175
309
  enableVirtualScrolling: true,
176
- })
177
- .then(() => {
178
- viewer.loadPDF(pdfUrl);
179
- if (highlights) {
180
- viewer.loadHighlights(highlights);
181
- }
182
310
  });
183
311
 
312
+ await viewer.loadPDF(pdfUrl);
313
+ viewer.loadHighlights(highlights);
314
+ })();
315
+
184
316
  return () => {
185
317
  viewer.destroy();
318
+ viewerRef.current = null;
186
319
  };
187
320
  }, [pdfUrl]);
188
321
 
189
322
  useEffect(() => {
190
- if (viewerRef.current && highlights) {
191
- viewerRef.current.loadHighlights(highlights);
192
- }
323
+ viewerRef.current?.loadHighlights(highlights);
193
324
  }, [highlights]);
194
325
 
195
326
  return <div ref={containerRef} style={{ width: '100%', height: '100vh' }} />;
@@ -216,4 +347,4 @@ Contributions are welcome! Please feel free to submit a Pull Request.
216
347
 
217
348
  ## Support
218
349
 
219
- For issues and questions, please use the [GitHub Issues](https://github.com/epam/pdf-highlighter-kit/issues) page.
350
+ For issues and questions, please use the GitHub Issues page.
@@ -1,22 +1,22 @@
1
1
  import { PDFHighlightViewer as IPDFHighlightViewer } from './api';
2
- import { ViewerOptions, HighlightData, TermOccurrence, CategoryStyle, TextRange, SelectionWithMetadata, PerformanceMetrics, HighlightAnalytics, AccessibilityFeatures, InteractionMode, TermMetadata, InputHighlightData } from './types';
2
+ import { ViewerOptions, TextRange, SelectionWithMetadata, PerformanceMetrics, HighlightAnalytics, AccessibilityFeatures, InteractionMode, InputHighlightData, HighlightStyle } from './types';
3
3
  export declare class PDFHighlightViewer implements IPDFHighlightViewer {
4
4
  private pdfEngine;
5
5
  private viewportManager;
6
6
  private layerBuilder;
7
7
  private interactionHandler;
8
8
  private performanceOptimizer;
9
- private styleManager;
10
9
  private container;
11
10
  private pdfContainer;
12
11
  private pageContainers;
13
12
  private options;
14
- private highlightData;
13
+ private highlightsIndex;
15
14
  private currentPage;
16
15
  private currentScale;
17
16
  private totalPages;
18
17
  private selectedTermId;
19
18
  private isInitialized;
19
+ private navIndex;
20
20
  private pageDimensions;
21
21
  private defaultPageHeight;
22
22
  private eventListeners;
@@ -36,6 +36,7 @@ export declare class PDFHighlightViewer implements IPDFHighlightViewer {
36
36
  * Setup scroll handling for virtual viewport management
37
37
  */
38
38
  private setupScrollHandling;
39
+ private getPageScrollTop;
39
40
  /**
40
41
  * Handle scroll events for virtual viewport management
41
42
  */
@@ -65,6 +66,7 @@ export declare class PDFHighlightViewer implements IPDFHighlightViewer {
65
66
  * Load initial pages (simple and reliable)
66
67
  */
67
68
  private loadInitialPages;
69
+ private renderAllPagesBatched;
68
70
  /**
69
71
  * Render a specific page
70
72
  */
@@ -94,11 +96,10 @@ export declare class PDFHighlightViewer implements IPDFHighlightViewer {
94
96
  * Check if text selection is currently enabled
95
97
  */
96
98
  isTextSelectionEnabled(): boolean;
97
- loadHighlights(data: HighlightData | InputHighlightData[]): void;
98
- addHighlight(pageNumber: number, highlight: TermOccurrence): void;
99
+ loadHighlights(data: InputHighlightData[]): void;
100
+ addHighlight(highlight: InputHighlightData): void;
99
101
  removeHighlight(termId: string): void;
100
- updateHighlightStyle(category: string, style: Partial<CategoryStyle>): void;
101
- getHighlightsForPage(pageNumber: number): TermOccurrence[];
102
+ updateHighlightStyle(termId: string, stylePatch: Partial<HighlightStyle>): void;
102
103
  /**
103
104
  * Update unified layer for a specific page
104
105
  */
@@ -119,16 +120,14 @@ export declare class PDFHighlightViewer implements IPDFHighlightViewer {
119
120
  clearSelection: () => void;
120
121
  selectText: (range: TextRange) => void;
121
122
  copySelection: (format?: "plain" | "formatted" | "citation") => void;
122
- createHighlightFromSelection: (category: string) => TermOccurrence | null;
123
+ createHighlightFromSelection: (style?: HighlightStyle) => InputHighlightData | null;
123
124
  };
125
+ private getNavOccurrences;
124
126
  goToHighlight(termId: string, occurrenceIndex?: number): void;
125
- nextHighlight(category?: string): void;
126
- previousHighlight(category?: string): void;
127
+ nextHighlight(): void;
128
+ previousHighlight(): void;
127
129
  goToCoordinate(pageNumber: number, x: number, y: number): void;
128
- searchTerms(query: string): TermMetadata[];
129
- filterByCategory(categories: string[]): void;
130
- highlightSearchResults(query: string): void;
131
- clearSearchResults(): void;
130
+ searchHighlights(query: string): InputHighlightData[];
132
131
  setInteractionMode(mode: InteractionMode): void;
133
132
  getInteractionMode(): InteractionMode;
134
133
  getPerformanceMetrics(): PerformanceMetrics;
@@ -161,22 +160,17 @@ export declare class PDFHighlightViewer implements IPDFHighlightViewer {
161
160
  };
162
161
  };
163
162
  refresh(): void;
163
+ private refreshHighlightLayerForPage;
164
164
  /**
165
165
  * Add highlights to a rendered page
166
166
  */
167
167
  private addHighlightsToPage;
168
+ private getHighlightById;
169
+ private getHighlightStyle;
168
170
  /**
169
171
  * Update highlights colors for specified page
170
172
  * */
171
173
  updateHighlightsStyles(pageNumber: number, hoveredIds?: string[]): void;
172
- /**
173
- * Get highlight color
174
- */
175
- private getHighlightColor;
176
- /**
177
- * Get color for highlight category
178
- */
179
- private getCategoryColor;
180
174
  /**
181
175
  * Build spatial index for a specific page
182
176
  */
@@ -186,11 +180,24 @@ export declare class PDFHighlightViewer implements IPDFHighlightViewer {
186
180
  */
187
181
  private buildAllSpatialIndices;
188
182
  /**
189
- * Get highlight count for a page
183
+ * Get the number of highlights on a given page.
184
+ *
185
+ * This reads from the precomputed `highlightsIndex.pages` map, which stores
186
+ * arrays of highlight references keyed by the page number as a string.
187
+ * If there are no references for the requested page, an empty array is used,
188
+ * and the method returns 0.
189
+ *
190
+ * @param pageNumber - The 1-based page number to count highlights for.
191
+ * @returns The total number of highlight references on the page.
190
192
  */
191
193
  private getHighlightCountForPage;
192
194
  /**
193
- * Update analytics data
195
+ * Update analytics information based on the current highlights index.
196
+ *
197
+ * This method recalculates the total number of highlights by reading the
198
+ * length of `this.highlightsIndex.highlights` and updates the
199
+ * `this.analytics` object with the new `totalHighlights` value, while
200
+ * preserving all other existing analytics properties.
194
201
  */
195
202
  private updateAnalytics;
196
203
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PDFHighlightViewer.d.ts","sourceRoot":"","sources":["../src/PDFHighlightViewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PDFHighlightViewer.d.ts","sourceRoot":"","sources":["../src/PDFHighlightViewer.ts"],"names":[],"mappings":"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"}