@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.
- package/README.md +194 -63
- package/dist/PDFHighlightViewer.d.ts +31 -24
- package/dist/PDFHighlightViewer.d.ts.map +1 -1
- package/dist/PDFHighlightViewer.js +332 -292
- package/dist/PDFHighlightViewer.js.map +1 -1
- package/dist/api.d.ts +7 -12
- package/dist/api.d.ts.map +1 -1
- package/dist/core/interaction-handler.d.ts +1 -1
- package/dist/core/interaction-handler.d.ts.map +1 -1
- package/dist/core/interaction-handler.js +43 -31
- package/dist/core/interaction-handler.js.map +1 -1
- package/dist/core/performance-optimizer.d.ts +3 -3
- package/dist/core/performance-optimizer.d.ts.map +1 -1
- package/dist/core/performance-optimizer.js +7 -8
- package/dist/core/performance-optimizer.js.map +1 -1
- package/dist/core/text-segmentation.d.ts +8 -7
- package/dist/core/text-segmentation.d.ts.map +1 -1
- package/dist/core/text-segmentation.js +101 -133
- package/dist/core/text-segmentation.js.map +1 -1
- package/dist/core/unified-layer-builder.d.ts +7 -8
- package/dist/core/unified-layer-builder.d.ts.map +1 -1
- package/dist/core/unified-layer-builder.js +124 -174
- package/dist/core/unified-layer-builder.js.map +1 -1
- package/dist/index.d.ts +1 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -44
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +32 -48
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/highlight-adapter.d.ts +2 -30
- package/dist/utils/highlight-adapter.d.ts.map +1 -1
- package/dist/utils/highlight-adapter.js +21 -197
- package/dist/utils/highlight-adapter.js.map +1 -1
- package/package.json +1 -1
- package/dist/core/style-manager.d.ts +0 -88
- package/dist/core/style-manager.d.ts.map +0 -1
- package/dist/core/style-manager.js +0 -413
- package/dist/core/style-manager.js.map +0 -1
package/dist/types.d.ts
CHANGED
|
@@ -6,6 +6,18 @@ export interface BBox {
|
|
|
6
6
|
y2: number;
|
|
7
7
|
page: number;
|
|
8
8
|
}
|
|
9
|
+
export interface PageBBoxRef {
|
|
10
|
+
id: string;
|
|
11
|
+
page: number;
|
|
12
|
+
bboxIndex: number;
|
|
13
|
+
bbox: BoundingBox;
|
|
14
|
+
}
|
|
15
|
+
export interface HighlightsIndex {
|
|
16
|
+
highlights: InputHighlightData[];
|
|
17
|
+
byId: Map<string, InputHighlightData>;
|
|
18
|
+
pages: Record<string, PageBBoxRef[]>;
|
|
19
|
+
occurrences: PageBBoxRef[];
|
|
20
|
+
}
|
|
9
21
|
export interface HighlightStyle {
|
|
10
22
|
backgroundColor: string;
|
|
11
23
|
borderColor?: string;
|
|
@@ -54,27 +66,6 @@ export interface BoundingBox {
|
|
|
54
66
|
x2: number;
|
|
55
67
|
y2: number;
|
|
56
68
|
}
|
|
57
|
-
export interface TermOccurrence {
|
|
58
|
-
termId: string;
|
|
59
|
-
coordinates: BoundingBox[];
|
|
60
|
-
}
|
|
61
|
-
export interface TermMetadata {
|
|
62
|
-
term: string;
|
|
63
|
-
category: string;
|
|
64
|
-
frequency: number;
|
|
65
|
-
aliases: string[];
|
|
66
|
-
relatedTerms: string[];
|
|
67
|
-
pages: number[];
|
|
68
|
-
explanations: {
|
|
69
|
-
page: number;
|
|
70
|
-
coordinates: BoundingBox;
|
|
71
|
-
text: string;
|
|
72
|
-
}[];
|
|
73
|
-
}
|
|
74
|
-
export type HighlightData = Record<string, {
|
|
75
|
-
pages: Record<string, TermOccurrence[]>;
|
|
76
|
-
terms: Record<string, TermMetadata>;
|
|
77
|
-
}>;
|
|
78
69
|
export interface TextContent {
|
|
79
70
|
items: TextItem[];
|
|
80
71
|
styles: any;
|
|
@@ -93,7 +84,7 @@ export interface Segment {
|
|
|
93
84
|
hasHighlight: boolean;
|
|
94
85
|
highlightInfo?: {
|
|
95
86
|
termId: string;
|
|
96
|
-
|
|
87
|
+
style?: HighlightStyle;
|
|
97
88
|
};
|
|
98
89
|
transform: number[];
|
|
99
90
|
fontName: string;
|
|
@@ -104,7 +95,6 @@ export interface AnalysisResult {
|
|
|
104
95
|
start: number;
|
|
105
96
|
end: number;
|
|
106
97
|
termId: string;
|
|
107
|
-
category: string;
|
|
108
98
|
}[];
|
|
109
99
|
}
|
|
110
100
|
export type InteractionIntent = 'highlight-interact' | 'text-select' | 'auto';
|
|
@@ -120,7 +110,7 @@ export interface SelectionState {
|
|
|
120
110
|
y: number;
|
|
121
111
|
} | null;
|
|
122
112
|
selectedText: string;
|
|
123
|
-
overlappingHighlights:
|
|
113
|
+
overlappingHighlights: PageBBoxRef[];
|
|
124
114
|
}
|
|
125
115
|
export interface TextRange {
|
|
126
116
|
startPage: number;
|
|
@@ -131,32 +121,33 @@ export interface TextRange {
|
|
|
131
121
|
export interface SelectionWithMetadata {
|
|
132
122
|
text: string;
|
|
133
123
|
pages: number[];
|
|
134
|
-
highlights:
|
|
124
|
+
highlights: PageBBoxRef[];
|
|
135
125
|
context: string;
|
|
136
126
|
range: TextRange;
|
|
137
127
|
}
|
|
138
128
|
export interface HighlightHoverEvent {
|
|
139
129
|
termId: string;
|
|
140
|
-
category: string;
|
|
141
|
-
coordinates: BoundingBox;
|
|
142
130
|
pageNumber: number;
|
|
131
|
+
bboxIndex?: number;
|
|
132
|
+
bbox?: BoundingBox;
|
|
133
|
+
highlight?: InputHighlightData;
|
|
143
134
|
mouseEvent: MouseEvent;
|
|
144
135
|
}
|
|
145
136
|
export interface HighlightClickEvent {
|
|
146
137
|
termId: string;
|
|
147
|
-
category: string;
|
|
148
|
-
coordinates: BoundingBox;
|
|
149
138
|
pageNumber: number;
|
|
139
|
+
bboxIndex?: number;
|
|
140
|
+
bbox?: BoundingBox;
|
|
141
|
+
highlight?: InputHighlightData;
|
|
150
142
|
mouseEvent: MouseEvent;
|
|
151
143
|
}
|
|
152
144
|
export interface HighlightSelectEvent {
|
|
153
145
|
termId: string;
|
|
154
|
-
|
|
155
|
-
occurrences: TermOccurrence[];
|
|
146
|
+
occurrences: PageBBoxRef[];
|
|
156
147
|
}
|
|
157
148
|
export interface TextSelectionEvent {
|
|
158
149
|
text: string;
|
|
159
|
-
highlights:
|
|
150
|
+
highlights: PageBBoxRef[];
|
|
160
151
|
range: Range;
|
|
161
152
|
pageNumbers: number[];
|
|
162
153
|
}
|
|
@@ -166,8 +157,8 @@ export interface SelectionCopyEvent {
|
|
|
166
157
|
}
|
|
167
158
|
export interface SelectionHighlightEvent {
|
|
168
159
|
text: string;
|
|
169
|
-
|
|
170
|
-
|
|
160
|
+
termId: string;
|
|
161
|
+
highlight: InputHighlightData;
|
|
171
162
|
}
|
|
172
163
|
export interface PageChangeEvent {
|
|
173
164
|
currentPage: number;
|
|
@@ -188,17 +179,6 @@ export interface PerformanceWarningEvent {
|
|
|
188
179
|
message: string;
|
|
189
180
|
metrics: any;
|
|
190
181
|
}
|
|
191
|
-
export interface CategoryStyle {
|
|
192
|
-
backgroundColor: string;
|
|
193
|
-
borderColor: string;
|
|
194
|
-
opacity?: number;
|
|
195
|
-
hoverOpacity?: number;
|
|
196
|
-
pulseAnimation?: boolean;
|
|
197
|
-
}
|
|
198
|
-
export interface CategoryStyleManager {
|
|
199
|
-
registerCategory(name: string, style: CategoryStyle): void;
|
|
200
|
-
getComputedStyle(termId: string, state: 'default' | 'hover' | 'selected'): React.CSSProperties;
|
|
201
|
-
}
|
|
202
182
|
export interface MemoryMetrics {
|
|
203
183
|
pages: number;
|
|
204
184
|
highlights: number;
|
|
@@ -219,7 +199,6 @@ export interface UserAction {
|
|
|
219
199
|
}
|
|
220
200
|
export interface HighlightAnalytics {
|
|
221
201
|
totalHighlights: number;
|
|
222
|
-
categoryBreakdown: Record<string, number>;
|
|
223
202
|
mostViewedPages: number[];
|
|
224
203
|
interactionHeatmap: Record<number, number>;
|
|
225
204
|
averageTimePerPage: number;
|
|
@@ -228,7 +207,6 @@ export interface Page {
|
|
|
228
207
|
pageNumber: number;
|
|
229
208
|
canvas?: HTMLCanvasElement;
|
|
230
209
|
textContent?: TextContent;
|
|
231
|
-
highlights?: TermOccurrence[];
|
|
232
210
|
rendered: boolean;
|
|
233
211
|
loading: boolean;
|
|
234
212
|
viewport?: any;
|
|
@@ -236,7 +214,7 @@ export interface Page {
|
|
|
236
214
|
}
|
|
237
215
|
export interface HighlightsConfig {
|
|
238
216
|
enableMultilineHover?: boolean;
|
|
239
|
-
|
|
217
|
+
defaultStyle?: HighlightStyle;
|
|
240
218
|
}
|
|
241
219
|
export interface ViewerOptions {
|
|
242
220
|
enableTextSelection?: boolean;
|
|
@@ -259,6 +237,12 @@ export interface HeavyTask {
|
|
|
259
237
|
data: any;
|
|
260
238
|
pageNumber?: number;
|
|
261
239
|
}
|
|
240
|
+
export interface SpatialHit {
|
|
241
|
+
termId: string;
|
|
242
|
+
pageNumber: number;
|
|
243
|
+
bboxIndex: number;
|
|
244
|
+
coordinates: BoundingBox;
|
|
245
|
+
}
|
|
262
246
|
export interface RTree {
|
|
263
247
|
insert(bounds: BoundingBox, data: any): void;
|
|
264
248
|
search(bounds: BoundingBox): any[];
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAE1D,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,GAAG,EAAE,IAAI,EAAE,CAAC;IACZ,IAAI,EAAE,IAAI,EAAE,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACtE,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACrE,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAClE,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACjE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,oBAAoB,CAClB,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,MAAM,GACtB;QACD,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export
|
|
3
|
-
export interface AdapterOptions {
|
|
4
|
-
categoryResolver?: (highlight: InputHighlightData) => string;
|
|
5
|
-
termNameResolver?: (highlight: InputHighlightData) => string;
|
|
6
|
-
groupByStyle?: boolean;
|
|
7
|
-
useTooltipAsTermName?: boolean;
|
|
8
|
-
defaultCategory?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare function adaptHighlightData(inputData: InputHighlightData[], options?: AdapterOptions): HighlightData;
|
|
11
|
-
export declare function extractCategoryStyles(inputData: InputHighlightData[], options?: AdapterOptions): Map<string, CategoryStyle>;
|
|
12
|
-
/**
|
|
13
|
-
* Validate input highlight data structure
|
|
14
|
-
* Useful for debugging and error handling
|
|
15
|
-
*
|
|
16
|
-
* @param inputData - Data to validate
|
|
17
|
-
* @returns Object with validation result and any errors found
|
|
18
|
-
*/
|
|
19
|
-
export declare function validateInputData(inputData: unknown): {
|
|
20
|
-
valid: boolean;
|
|
21
|
-
errors: string[];
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* Merge multiple HighlightData objects into one
|
|
25
|
-
* Useful when loading highlights from multiple sources
|
|
26
|
-
*
|
|
27
|
-
* @param highlightDataArray - Array of HighlightData objects to merge
|
|
28
|
-
* @returns Merged HighlightData object
|
|
29
|
-
*/
|
|
30
|
-
export declare function mergeHighlightData(...highlightDataArray: HighlightData[]): HighlightData;
|
|
1
|
+
import { InputHighlightData, HighlightsIndex } from '../types';
|
|
2
|
+
export declare function buildHighlightsIndex(highlights: InputHighlightData[]): HighlightsIndex;
|
|
31
3
|
//# sourceMappingURL=highlight-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlight-adapter.d.ts","sourceRoot":"","sources":["../../src/utils/highlight-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"highlight-adapter.d.ts","sourceRoot":"","sources":["../../src/utils/highlight-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAA4B,MAAM,UAAU,CAAC;AAEzF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,kBAAkB,EAAE,GAAG,eAAe,CAiCtF"}
|
|
@@ -1,202 +1,26 @@
|
|
|
1
|
-
export function
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
category = defaultCategory;
|
|
18
|
-
}
|
|
19
|
-
let termName;
|
|
20
|
-
if (termNameResolver) {
|
|
21
|
-
termName = termNameResolver(highlight);
|
|
22
|
-
}
|
|
23
|
-
else if (useTooltipAsTermName && highlight.tooltipText) {
|
|
24
|
-
termName = highlight.tooltipText;
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
termName = highlight.id;
|
|
28
|
-
}
|
|
29
|
-
if (!result[category]) {
|
|
30
|
-
result[category] = {
|
|
31
|
-
pages: {},
|
|
32
|
-
terms: {},
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
if (highlight.style && !categoryStyles.has(category)) {
|
|
36
|
-
categoryStyles.set(category, {
|
|
37
|
-
backgroundColor: highlight.style.backgroundColor,
|
|
38
|
-
borderColor: highlight.style.borderColor || highlight.style.backgroundColor,
|
|
39
|
-
opacity: highlight.style.opacity,
|
|
40
|
-
hoverOpacity: highlight.style.hoverOpacity,
|
|
41
|
-
pulseAnimation: highlight.style.pulseAnimation,
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
const pageGroups = new Map();
|
|
45
|
-
highlight.bboxes.forEach((bbox) => {
|
|
46
|
-
const { page, ...coords } = bbox;
|
|
47
|
-
if (!pageGroups.has(page)) {
|
|
48
|
-
pageGroups.set(page, []);
|
|
49
|
-
}
|
|
50
|
-
pageGroups.get(page).push(coords);
|
|
51
|
-
});
|
|
52
|
-
const allPages = [];
|
|
53
|
-
pageGroups.forEach((coordinates, pageNumber) => {
|
|
54
|
-
allPages.push(pageNumber);
|
|
55
|
-
const pageKey = pageNumber.toString();
|
|
56
|
-
if (!result[category].pages[pageKey]) {
|
|
57
|
-
result[category].pages[pageKey] = [];
|
|
58
|
-
}
|
|
59
|
-
// Add term occurrence to this page
|
|
60
|
-
const termOccurrence = {
|
|
61
|
-
termId: highlight.id,
|
|
62
|
-
coordinates,
|
|
63
|
-
};
|
|
64
|
-
result[category].pages[pageKey].push(termOccurrence);
|
|
65
|
-
});
|
|
66
|
-
if (!result[category].terms[highlight.id]) {
|
|
67
|
-
result[category].terms[highlight.id] = {
|
|
68
|
-
term: termName,
|
|
69
|
-
category,
|
|
70
|
-
frequency: pageGroups.size,
|
|
71
|
-
aliases: [],
|
|
72
|
-
relatedTerms: [],
|
|
73
|
-
pages: allPages,
|
|
74
|
-
explanations: highlight.tooltipText
|
|
75
|
-
? allPages.map((page) => ({
|
|
76
|
-
page,
|
|
77
|
-
coordinates: pageGroups.get(page)[0],
|
|
78
|
-
text: highlight.tooltipText,
|
|
79
|
-
}))
|
|
80
|
-
: [],
|
|
1
|
+
export function buildHighlightsIndex(highlights) {
|
|
2
|
+
const byId = new Map();
|
|
3
|
+
const pages = {};
|
|
4
|
+
const occurrences = [];
|
|
5
|
+
for (const h of highlights) {
|
|
6
|
+
byId.set(h.id, h);
|
|
7
|
+
for (let bboxIndex = 0; bboxIndex < h.bboxes.length; bboxIndex++) {
|
|
8
|
+
const b = h.bboxes[bboxIndex];
|
|
9
|
+
const bbox = { x1: b.x1, y1: b.y1, x2: b.x2, y2: b.y2 };
|
|
10
|
+
const ref = {
|
|
11
|
+
id: h.id,
|
|
12
|
+
page: b.page,
|
|
13
|
+
bboxIndex,
|
|
14
|
+
bbox,
|
|
81
15
|
};
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
16
|
+
const key = String(b.page);
|
|
17
|
+
(pages[key] ?? (pages[key] = [])).push(ref);
|
|
18
|
+
occurrences.push(ref);
|
|
85
19
|
}
|
|
86
|
-
});
|
|
87
|
-
return result;
|
|
88
|
-
}
|
|
89
|
-
export function extractCategoryStyles(inputData, options = {}) {
|
|
90
|
-
const { defaultCategory = 'default', groupByStyle = true, categoryResolver } = options;
|
|
91
|
-
const styles = new Map();
|
|
92
|
-
inputData.forEach((highlight) => {
|
|
93
|
-
if (!highlight.style)
|
|
94
|
-
return;
|
|
95
|
-
let category;
|
|
96
|
-
if (categoryResolver) {
|
|
97
|
-
category = categoryResolver(highlight);
|
|
98
|
-
}
|
|
99
|
-
else if (highlight.metadata?.category) {
|
|
100
|
-
category = highlight.metadata.category;
|
|
101
|
-
}
|
|
102
|
-
else if (groupByStyle) {
|
|
103
|
-
category = highlight.style.backgroundColor || defaultCategory;
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
category = defaultCategory;
|
|
107
|
-
}
|
|
108
|
-
if (!styles.has(category)) {
|
|
109
|
-
styles.set(category, {
|
|
110
|
-
backgroundColor: highlight.style.backgroundColor,
|
|
111
|
-
borderColor: highlight.style.borderColor || highlight.style.backgroundColor,
|
|
112
|
-
opacity: highlight.style.opacity,
|
|
113
|
-
hoverOpacity: highlight.style.hoverOpacity,
|
|
114
|
-
pulseAnimation: highlight.style.pulseAnimation,
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
return styles;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Validate input highlight data structure
|
|
122
|
-
* Useful for debugging and error handling
|
|
123
|
-
*
|
|
124
|
-
* @param inputData - Data to validate
|
|
125
|
-
* @returns Object with validation result and any errors found
|
|
126
|
-
*/
|
|
127
|
-
export function validateInputData(inputData) {
|
|
128
|
-
const errors = [];
|
|
129
|
-
if (!Array.isArray(inputData)) {
|
|
130
|
-
errors.push('Input data must be an array');
|
|
131
|
-
return { valid: false, errors };
|
|
132
20
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
if (!Array.isArray(item.bboxes)) {
|
|
138
|
-
errors.push(`Item ${index}: 'bboxes' must be an array`);
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
item.bboxes.forEach((bbox, bboxIndex) => {
|
|
142
|
-
const requiredProps = ['x1', 'y1', 'x2', 'y2', 'page'];
|
|
143
|
-
requiredProps.forEach((prop) => {
|
|
144
|
-
if (typeof bbox[prop] !== 'number') {
|
|
145
|
-
errors.push(`Item ${index}, bbox ${bboxIndex}: '${prop}' must be a number`);
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
if (item.style) {
|
|
151
|
-
if (!item.style.backgroundColor) {
|
|
152
|
-
errors.push(`Item ${index}: style.backgroundColor is required when style is provided`);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
return {
|
|
157
|
-
valid: errors.length === 0,
|
|
158
|
-
errors,
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Merge multiple HighlightData objects into one
|
|
163
|
-
* Useful when loading highlights from multiple sources
|
|
164
|
-
*
|
|
165
|
-
* @param highlightDataArray - Array of HighlightData objects to merge
|
|
166
|
-
* @returns Merged HighlightData object
|
|
167
|
-
*/
|
|
168
|
-
export function mergeHighlightData(...highlightDataArray) {
|
|
169
|
-
const result = {};
|
|
170
|
-
highlightDataArray.forEach((data) => {
|
|
171
|
-
Object.entries(data).forEach(([category, categoryData]) => {
|
|
172
|
-
if (!result[category]) {
|
|
173
|
-
result[category] = {
|
|
174
|
-
pages: {},
|
|
175
|
-
terms: {},
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
Object.entries(categoryData.pages).forEach(([pageKey, occurrences]) => {
|
|
179
|
-
if (!result[category].pages[pageKey]) {
|
|
180
|
-
result[category].pages[pageKey] = [];
|
|
181
|
-
}
|
|
182
|
-
result[category].pages[pageKey].push(...occurrences);
|
|
183
|
-
});
|
|
184
|
-
Object.entries(categoryData.terms).forEach(([termId, termData]) => {
|
|
185
|
-
if (!result[category].terms[termId]) {
|
|
186
|
-
result[category].terms[termId] = termData;
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
result[category].terms[termId].pages = [
|
|
190
|
-
...new Set([...result[category].terms[termId].pages, ...termData.pages]),
|
|
191
|
-
];
|
|
192
|
-
result[category].terms[termId].explanations = [
|
|
193
|
-
...result[category].terms[termId].explanations,
|
|
194
|
-
...termData.explanations,
|
|
195
|
-
];
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
return result;
|
|
21
|
+
const cmp = (a, b) => a.page - b.page || a.bbox.y1 - b.bbox.y1 || a.bbox.x1 - b.bbox.x1;
|
|
22
|
+
occurrences.sort(cmp);
|
|
23
|
+
Object.keys(pages).forEach((k) => pages[k].sort(cmp));
|
|
24
|
+
return { highlights, byId, pages, occurrences };
|
|
201
25
|
}
|
|
202
26
|
//# sourceMappingURL=highlight-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"highlight-adapter.js","sourceRoot":"","sources":["../../src/utils/highlight-adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"highlight-adapter.js","sourceRoot":"","sources":["../../src/utils/highlight-adapter.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,UAAgC;IACnE,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8B,CAAC;IACnD,MAAM,KAAK,GAAkC,EAAE,CAAC;IAChD,MAAM,WAAW,GAAkB,EAAE,CAAC;IAEtC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAElB,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;YACjE,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAE9B,MAAM,IAAI,GAAgB,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YAErE,MAAM,GAAG,GAAgB;gBACvB,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,SAAS;gBACT,IAAI;aACL,CAAC;YAEF,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,KAAK,CAAC,GAAG,MAAT,KAAK,CAAC,GAAG,IAAM,EAAE,EAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,CAAc,EAAE,CAAc,EAAE,EAAE,CAC7C,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IAEpE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAEtD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;AAClD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { CategoryStyle, CategoryStyleManager as ICategoryStyleManager } from '../types';
|
|
2
|
-
export declare class CategoryStyleManager implements ICategoryStyleManager {
|
|
3
|
-
private styles;
|
|
4
|
-
private styleSheet;
|
|
5
|
-
private styleElement;
|
|
6
|
-
constructor();
|
|
7
|
-
/**
|
|
8
|
-
* Initialize CSS style sheet for dynamic styles
|
|
9
|
-
*/
|
|
10
|
-
private initializeStyleSheet;
|
|
11
|
-
/**
|
|
12
|
-
* Register default category styles
|
|
13
|
-
*/
|
|
14
|
-
private registerDefaultCategories;
|
|
15
|
-
/**
|
|
16
|
-
* Register a new category style
|
|
17
|
-
*/
|
|
18
|
-
registerCategory(name: string, style: CategoryStyle): void;
|
|
19
|
-
/**
|
|
20
|
-
* Update existing category style
|
|
21
|
-
*/
|
|
22
|
-
updateCategoryStyle(name: string, partialStyle: Partial<CategoryStyle>): void;
|
|
23
|
-
/**
|
|
24
|
-
* Ensure CategoryStyle has all required properties
|
|
25
|
-
*/
|
|
26
|
-
private ensureCompleteStyle;
|
|
27
|
-
/**
|
|
28
|
-
* Generate and inject CSS for a category
|
|
29
|
-
*/
|
|
30
|
-
private updateStyleSheet;
|
|
31
|
-
/**
|
|
32
|
-
* Generate CSS rules for a category
|
|
33
|
-
*/
|
|
34
|
-
private generateCSSRules;
|
|
35
|
-
/**
|
|
36
|
-
* Remove existing CSS rules for a category
|
|
37
|
-
*/
|
|
38
|
-
private removeRulesForCategory;
|
|
39
|
-
/**
|
|
40
|
-
* Get computed style for a term
|
|
41
|
-
*/
|
|
42
|
-
getComputedStyle(termId: string, state?: 'default' | 'hover' | 'selected'): React.CSSProperties;
|
|
43
|
-
/**
|
|
44
|
-
* Get category for a term (simplified implementation)
|
|
45
|
-
*/
|
|
46
|
-
private getCategoryForTerm;
|
|
47
|
-
/**
|
|
48
|
-
* Darken a color (utility function)
|
|
49
|
-
*/
|
|
50
|
-
private darkenColor;
|
|
51
|
-
/**
|
|
52
|
-
* Get all registered categories
|
|
53
|
-
*/
|
|
54
|
-
getCategories(): string[];
|
|
55
|
-
/**
|
|
56
|
-
* Get style for a category
|
|
57
|
-
*/
|
|
58
|
-
getCategoryStyle(category: string): CategoryStyle | undefined;
|
|
59
|
-
/**
|
|
60
|
-
* Apply theme (light/dark)
|
|
61
|
-
*/
|
|
62
|
-
applyTheme(theme: 'light' | 'dark'): void;
|
|
63
|
-
/**
|
|
64
|
-
* Enable/disable animations globally
|
|
65
|
-
*/
|
|
66
|
-
setAnimationsEnabled(enabled: boolean): void;
|
|
67
|
-
/**
|
|
68
|
-
* Remove CSS rule by content
|
|
69
|
-
*/
|
|
70
|
-
private removeRuleByContent;
|
|
71
|
-
/**
|
|
72
|
-
* Export current styles as CSS string
|
|
73
|
-
*/
|
|
74
|
-
exportStyles(): string;
|
|
75
|
-
/**
|
|
76
|
-
* Import styles from CSS string
|
|
77
|
-
*/
|
|
78
|
-
importStyles(cssString: string): void;
|
|
79
|
-
/**
|
|
80
|
-
* Reset all styles to defaults
|
|
81
|
-
*/
|
|
82
|
-
resetToDefaults(): void;
|
|
83
|
-
/**
|
|
84
|
-
* Destroy style manager and clean up
|
|
85
|
-
*/
|
|
86
|
-
destroy(): void;
|
|
87
|
-
}
|
|
88
|
-
//# sourceMappingURL=style-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"style-manager.d.ts","sourceRoot":"","sources":["../../src/core/style-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAExF,qBAAa,oBAAqB,YAAW,qBAAqB;IAChE,OAAO,CAAC,MAAM,CAAoC;IAClD,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,YAAY,CAAiC;;IAOrD;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA2DjC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAa1D;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAa7E;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+ExB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA+B9B;;OAEG;IACH,gBAAgB,CACd,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,SAAS,GAAG,OAAO,GAAG,UAAsB,GAClD,KAAK,CAAC,aAAa;IAqCtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI7D;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI;IAczC;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IA2B5C;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,YAAY,IAAI,MAAM;IAKtB;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAMrC;;OAEG;IACH,eAAe,IAAI,IAAI;IAQvB;;OAEG;IACH,OAAO,IAAI,IAAI;CAQhB"}
|