react-pdf-highlighter-plus 1.0.2 → 1.0.4
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/dist/esm/index.css +1221 -0
- package/dist/esm/index.css.map +1 -0
- package/dist/esm/index.d.ts +1348 -19
- package/dist/esm/index.js +3558 -18
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/style/style.css +13 -0
- package/package.json +3 -2
- package/dist/esm/components/AreaHighlight.d.ts +0 -82
- package/dist/esm/components/AreaHighlight.js +0 -109
- package/dist/esm/components/AreaHighlight.js.map +0 -1
- package/dist/esm/components/DrawingCanvas.d.ts +0 -48
- package/dist/esm/components/DrawingCanvas.js +0 -277
- package/dist/esm/components/DrawingCanvas.js.map +0 -1
- package/dist/esm/components/DrawingHighlight.d.ts +0 -70
- package/dist/esm/components/DrawingHighlight.js +0 -164
- package/dist/esm/components/DrawingHighlight.js.map +0 -1
- package/dist/esm/components/FreetextHighlight.d.ts +0 -112
- package/dist/esm/components/FreetextHighlight.js +0 -193
- package/dist/esm/components/FreetextHighlight.js.map +0 -1
- package/dist/esm/components/HighlightLayer.d.ts +0 -49
- package/dist/esm/components/HighlightLayer.js +0 -37
- package/dist/esm/components/HighlightLayer.js.map +0 -1
- package/dist/esm/components/ImageHighlight.d.ts +0 -63
- package/dist/esm/components/ImageHighlight.js +0 -65
- package/dist/esm/components/ImageHighlight.js.map +0 -1
- package/dist/esm/components/MonitoredHighlightContainer.d.ts +0 -37
- package/dist/esm/components/MonitoredHighlightContainer.js +0 -42
- package/dist/esm/components/MonitoredHighlightContainer.js.map +0 -1
- package/dist/esm/components/MouseMonitor.d.ts +0 -34
- package/dist/esm/components/MouseMonitor.js +0 -30
- package/dist/esm/components/MouseMonitor.js.map +0 -1
- package/dist/esm/components/MouseSelection.d.ts +0 -66
- package/dist/esm/components/MouseSelection.js +0 -122
- package/dist/esm/components/MouseSelection.js.map +0 -1
- package/dist/esm/components/PdfHighlighter.d.ts +0 -184
- package/dist/esm/components/PdfHighlighter.js +0 -410
- package/dist/esm/components/PdfHighlighter.js.map +0 -1
- package/dist/esm/components/PdfLoader.d.ts +0 -55
- package/dist/esm/components/PdfLoader.js +0 -57
- package/dist/esm/components/PdfLoader.js.map +0 -1
- package/dist/esm/components/ShapeCanvas.d.ts +0 -51
- package/dist/esm/components/ShapeCanvas.js +0 -205
- package/dist/esm/components/ShapeCanvas.js.map +0 -1
- package/dist/esm/components/ShapeHighlight.d.ts +0 -107
- package/dist/esm/components/ShapeHighlight.js +0 -140
- package/dist/esm/components/ShapeHighlight.js.map +0 -1
- package/dist/esm/components/SignaturePad.d.ts +0 -40
- package/dist/esm/components/SignaturePad.js +0 -138
- package/dist/esm/components/SignaturePad.js.map +0 -1
- package/dist/esm/components/TextHighlight.d.ts +0 -93
- package/dist/esm/components/TextHighlight.js +0 -115
- package/dist/esm/components/TextHighlight.js.map +0 -1
- package/dist/esm/components/TipContainer.d.ts +0 -27
- package/dist/esm/components/TipContainer.js +0 -58
- package/dist/esm/components/TipContainer.js.map +0 -1
- package/dist/esm/contexts/HighlightContext.d.ts +0 -44
- package/dist/esm/contexts/HighlightContext.js +0 -16
- package/dist/esm/contexts/HighlightContext.js.map +0 -1
- package/dist/esm/contexts/PdfHighlighterContext.d.ts +0 -89
- package/dist/esm/contexts/PdfHighlighterContext.js +0 -16
- package/dist/esm/contexts/PdfHighlighterContext.js.map +0 -1
- package/dist/esm/lib/coordinates.d.ts +0 -16
- package/dist/esm/lib/coordinates.js +0 -69
- package/dist/esm/lib/coordinates.js.map +0 -1
- package/dist/esm/lib/export-pdf.d.ts +0 -81
- package/dist/esm/lib/export-pdf.js +0 -511
- package/dist/esm/lib/export-pdf.js.map +0 -1
- package/dist/esm/lib/get-bounding-rect.d.ts +0 -3
- package/dist/esm/lib/get-bounding-rect.js +0 -35
- package/dist/esm/lib/get-bounding-rect.js.map +0 -1
- package/dist/esm/lib/get-client-rects.d.ts +0 -3
- package/dist/esm/lib/get-client-rects.js +0 -43
- package/dist/esm/lib/get-client-rects.js.map +0 -1
- package/dist/esm/lib/group-highlights-by-page.d.ts +0 -6
- package/dist/esm/lib/group-highlights-by-page.js +0 -23
- package/dist/esm/lib/group-highlights-by-page.js.map +0 -1
- package/dist/esm/lib/optimize-client-rects.d.ts +0 -3
- package/dist/esm/lib/optimize-client-rects.js +0 -65
- package/dist/esm/lib/optimize-client-rects.js.map +0 -1
- package/dist/esm/lib/pdfjs-dom.d.ts +0 -9
- package/dist/esm/lib/pdfjs-dom.js +0 -55
- package/dist/esm/lib/pdfjs-dom.js.map +0 -1
- package/dist/esm/lib/screenshot.d.ts +0 -4
- package/dist/esm/lib/screenshot.js +0 -24
- package/dist/esm/lib/screenshot.js.map +0 -1
- package/dist/esm/types.d.ts +0 -213
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"group-highlights-by-page.js","sourceRoot":"","sources":["../../../src/lib/group-highlights-by-page.ts"],"names":[],"mappings":"AAMA,MAAM,qBAAqB,GAAG,CAC5B,UAAoD,EACjC,EAAE,CACrB,UAAU,CAAC,MAAM,CAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE;IACtD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,WAAW,GAAG;QAClB,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU;QAC1C,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;KAChE,CAAC;IAEF,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACjC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,qBAAqB,GAAG;YAC5B,GAAG,SAAS;YACZ,QAAQ,EAAE;gBACR,GAAG,SAAS,CAAC,QAAQ;gBACrB,KAAK,EAAE,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CACpC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CACzC;aACF;SACF,CAAC;QACF,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC,EAAE,EAAE,CAAC,CAAC;AAET,eAAe,qBAAqB,CAAC"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
const sort = (rects) => rects.sort((A, B) => {
|
|
2
|
-
const top = (A.pageNumber || 0) * A.top - (B.pageNumber || 0) * B.top;
|
|
3
|
-
if (top === 0) {
|
|
4
|
-
return A.left - B.left;
|
|
5
|
-
}
|
|
6
|
-
return top;
|
|
7
|
-
});
|
|
8
|
-
const overlaps = (A, B) => A.pageNumber === B.pageNumber &&
|
|
9
|
-
A.left <= B.left &&
|
|
10
|
-
B.left <= A.left + A.width;
|
|
11
|
-
const sameLine = (A, B, yMargin = 5) => A.pageNumber === B.pageNumber &&
|
|
12
|
-
Math.abs(A.top - B.top) < yMargin &&
|
|
13
|
-
Math.abs(A.height - B.height) < yMargin;
|
|
14
|
-
const inside = (A, B) => A.pageNumber === B.pageNumber &&
|
|
15
|
-
A.top > B.top &&
|
|
16
|
-
A.left > B.left &&
|
|
17
|
-
A.top + A.height < B.top + B.height &&
|
|
18
|
-
A.left + A.width < B.left + B.width;
|
|
19
|
-
const nextTo = (A, B, xMargin = 10) => {
|
|
20
|
-
const Aright = A.left + A.width;
|
|
21
|
-
const Bright = B.left + B.width;
|
|
22
|
-
return (A.pageNumber === B.pageNumber &&
|
|
23
|
-
A.left <= B.left &&
|
|
24
|
-
Aright <= Bright &&
|
|
25
|
-
B.left - Aright <= xMargin);
|
|
26
|
-
};
|
|
27
|
-
const extendWidth = (A, B) => {
|
|
28
|
-
// extend width of A to cover B
|
|
29
|
-
A.width = Math.max(B.width - A.left + B.left, A.width);
|
|
30
|
-
};
|
|
31
|
-
const optimizeClientRects = (clientRects) => {
|
|
32
|
-
const rects = sort(clientRects);
|
|
33
|
-
const toRemove = new Set();
|
|
34
|
-
const firstPass = rects.filter((rect) => {
|
|
35
|
-
return rects.every((otherRect) => {
|
|
36
|
-
return !inside(rect, otherRect);
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
let passCount = 0;
|
|
40
|
-
while (passCount <= 2) {
|
|
41
|
-
firstPass.forEach((A) => {
|
|
42
|
-
firstPass.forEach((B) => {
|
|
43
|
-
if (A === B || toRemove.has(A) || toRemove.has(B)) {
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
if (!sameLine(A, B)) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
if (overlaps(A, B)) {
|
|
50
|
-
extendWidth(A, B);
|
|
51
|
-
A.height = Math.max(A.height, B.height);
|
|
52
|
-
toRemove.add(B);
|
|
53
|
-
}
|
|
54
|
-
if (nextTo(A, B)) {
|
|
55
|
-
extendWidth(A, B);
|
|
56
|
-
toRemove.add(B);
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
passCount += 1;
|
|
61
|
-
}
|
|
62
|
-
return firstPass.filter((rect) => !toRemove.has(rect));
|
|
63
|
-
};
|
|
64
|
-
export default optimizeClientRects;
|
|
65
|
-
//# sourceMappingURL=optimize-client-rects.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"optimize-client-rects.js","sourceRoot":"","sources":["../../../src/lib/optimize-client-rects.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Page } from "../types";
|
|
2
|
-
export declare const getDocument: (elm: any) => Document;
|
|
3
|
-
export declare const getWindow: (elm: any) => typeof window;
|
|
4
|
-
export declare const isHTMLElement: (elm: any) => boolean;
|
|
5
|
-
export declare const isHTMLCanvasElement: (elm: any) => boolean;
|
|
6
|
-
export declare const asElement: (x: any) => HTMLElement;
|
|
7
|
-
export declare const getPageFromElement: (target: HTMLElement) => Page | null;
|
|
8
|
-
export declare const getPagesFromRange: (range: Range) => Page[];
|
|
9
|
-
export declare const findOrCreateContainerLayer: (container: HTMLElement, className: string) => Element | null;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
export const getDocument = (elm) => (elm || {}).ownerDocument || document;
|
|
2
|
-
export const getWindow = (elm) => (getDocument(elm) || {}).defaultView || window;
|
|
3
|
-
export const isHTMLElement = (elm) => elm instanceof HTMLElement || elm instanceof getWindow(elm).HTMLElement;
|
|
4
|
-
export const isHTMLCanvasElement = (elm) => elm instanceof HTMLCanvasElement ||
|
|
5
|
-
elm instanceof getWindow(elm).HTMLCanvasElement;
|
|
6
|
-
export const asElement = (x) => x;
|
|
7
|
-
export const getPageFromElement = (target) => {
|
|
8
|
-
const node = asElement(target.closest(".page"));
|
|
9
|
-
if (!node || !isHTMLElement(node)) {
|
|
10
|
-
return null;
|
|
11
|
-
}
|
|
12
|
-
const number = Number(asElement(node).dataset.pageNumber);
|
|
13
|
-
return { node, number };
|
|
14
|
-
};
|
|
15
|
-
export const getPagesFromRange = (range) => {
|
|
16
|
-
const startParentElement = range.startContainer.parentElement;
|
|
17
|
-
const endParentElement = range.endContainer.parentElement;
|
|
18
|
-
if (!isHTMLElement(startParentElement) || !isHTMLElement(endParentElement)) {
|
|
19
|
-
return [];
|
|
20
|
-
}
|
|
21
|
-
const startPage = getPageFromElement(asElement(startParentElement));
|
|
22
|
-
const endPage = getPageFromElement(asElement(endParentElement));
|
|
23
|
-
if (!startPage?.number || !endPage?.number) {
|
|
24
|
-
return [];
|
|
25
|
-
}
|
|
26
|
-
if (startPage.number === endPage.number) {
|
|
27
|
-
return [startPage];
|
|
28
|
-
}
|
|
29
|
-
if (startPage.number === endPage.number - 1) {
|
|
30
|
-
return [startPage, endPage];
|
|
31
|
-
}
|
|
32
|
-
const pages = [];
|
|
33
|
-
let currentPageNumber = startPage.number;
|
|
34
|
-
const document = startPage.node.ownerDocument;
|
|
35
|
-
while (currentPageNumber <= endPage.number) {
|
|
36
|
-
const currentPage = getPageFromElement(document.querySelector(`[data-page-number='${currentPageNumber}'`));
|
|
37
|
-
if (currentPage) {
|
|
38
|
-
pages.push(currentPage);
|
|
39
|
-
}
|
|
40
|
-
currentPageNumber++;
|
|
41
|
-
}
|
|
42
|
-
return pages;
|
|
43
|
-
};
|
|
44
|
-
export const findOrCreateContainerLayer = (container, className) => {
|
|
45
|
-
const doc = getDocument(container);
|
|
46
|
-
let layer = container.querySelector(`.${className}`);
|
|
47
|
-
// To ensure predictable zIndexing, wait until the pdfjs element has children.
|
|
48
|
-
if (!layer && container.children.length) {
|
|
49
|
-
layer = doc.createElement("div");
|
|
50
|
-
layer.className = className;
|
|
51
|
-
container.appendChild(layer);
|
|
52
|
-
}
|
|
53
|
-
return layer;
|
|
54
|
-
};
|
|
55
|
-
//# sourceMappingURL=pdfjs-dom.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pdfjs-dom.js","sourceRoot":"","sources":["../../../src/lib/pdfjs-dom.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { isHTMLCanvasElement } from "./pdfjs-dom";
|
|
2
|
-
const getAreaAsPng = (canvas, position) => {
|
|
3
|
-
const { left, top, width, height } = position;
|
|
4
|
-
const doc = canvas ? canvas.ownerDocument : null;
|
|
5
|
-
// @TODO: cache this?
|
|
6
|
-
const newCanvas = doc && doc.createElement("canvas");
|
|
7
|
-
if (!newCanvas || !isHTMLCanvasElement(newCanvas)) {
|
|
8
|
-
return "";
|
|
9
|
-
}
|
|
10
|
-
newCanvas.width = width;
|
|
11
|
-
newCanvas.height = height;
|
|
12
|
-
const newCanvasContext = newCanvas.getContext("2d");
|
|
13
|
-
if (!newCanvasContext || !canvas) {
|
|
14
|
-
return "";
|
|
15
|
-
}
|
|
16
|
-
const dpr = window.devicePixelRatio;
|
|
17
|
-
newCanvasContext.drawImage(canvas, left * dpr, top * dpr, width * dpr, height * dpr, 0, 0, width, height);
|
|
18
|
-
return newCanvas.toDataURL("image/png");
|
|
19
|
-
};
|
|
20
|
-
const screenshot = (position, pageNumber, viewer) => {
|
|
21
|
-
return getAreaAsPng(viewer.getPageView(pageNumber - 1).canvas, position);
|
|
22
|
-
};
|
|
23
|
-
export default screenshot;
|
|
24
|
-
//# sourceMappingURL=screenshot.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../../src/lib/screenshot.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,YAAY,GAAG,CAAC,MAAyB,EAAE,QAAc,EAAU,EAAE;IACzE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;IAE9C,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,qBAAqB;IACrB,MAAM,SAAS,GAAG,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAErD,IAAI,CAAC,SAAS,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC;QAClD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;IACxB,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;IAE1B,MAAM,gBAAgB,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,CAAC,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,GAAG,GAAW,MAAM,CAAC,gBAAgB,CAAC;IAE5C,gBAAgB,CAAC,SAAS,CACxB,MAAM,EACN,IAAI,GAAG,GAAG,EACV,GAAG,GAAG,GAAG,EACT,KAAK,GAAG,GAAG,EACX,MAAM,GAAG,GAAG,EACZ,CAAC,EACD,CAAC,EACD,KAAK,EACL,MAAM,CACP,CAAC;IAEF,OAAO,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,QAAc,EAAE,UAAkB,EAAE,MAAiB,EAAE,EAAE;IAC3E,OAAO,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC3E,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
package/dist/esm/types.d.ts
DELETED
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
import { ReactNode } from "react";
|
|
2
|
-
import { Root } from "react-dom/client";
|
|
3
|
-
/**
|
|
4
|
-
* A rectangle as measured by the viewport.
|
|
5
|
-
*
|
|
6
|
-
* @category Type
|
|
7
|
-
*/
|
|
8
|
-
export type LTWH = {
|
|
9
|
-
/** The x coordinate of the top-left of the rectangle. */
|
|
10
|
-
left: number;
|
|
11
|
-
/** The y coordinate of the top-left of the rectangle. */
|
|
12
|
-
top: number;
|
|
13
|
-
/** Width of the rectangle, relative to top left of the viewport. */
|
|
14
|
-
width: number;
|
|
15
|
-
/** Height of the rectangle, relative to top left of the viewport. */
|
|
16
|
-
height: number;
|
|
17
|
-
};
|
|
18
|
-
/** @category Type */
|
|
19
|
-
export type LTWHP = LTWH & {
|
|
20
|
-
/** 1-Indexed page number */
|
|
21
|
-
pageNumber: number;
|
|
22
|
-
};
|
|
23
|
-
/**
|
|
24
|
-
* "scaled" means that data structure stores (0, 1) coordinates.
|
|
25
|
-
* for clarity reasons I decided not to store actual (0, 1) coordinates but
|
|
26
|
-
* provide width and height, so user can compute ratio himself if needed
|
|
27
|
-
*
|
|
28
|
-
* @category Type
|
|
29
|
-
* @author Artem Tyurin <artem.tyurin@gmail.com>
|
|
30
|
-
*/
|
|
31
|
-
export type Scaled = {
|
|
32
|
-
x1: number;
|
|
33
|
-
y1: number;
|
|
34
|
-
x2: number;
|
|
35
|
-
y2: number;
|
|
36
|
-
width: number;
|
|
37
|
-
height: number;
|
|
38
|
-
/** 1-Indexed page number */
|
|
39
|
-
pageNumber: number;
|
|
40
|
-
};
|
|
41
|
-
/**
|
|
42
|
-
* Position of a Highlight relative to the viewport.
|
|
43
|
-
*
|
|
44
|
-
* @category Type
|
|
45
|
-
*/
|
|
46
|
-
export type ViewportPosition = {
|
|
47
|
-
/** Bounding rectangle for the entire highlight. */
|
|
48
|
-
boundingRect: LTWHP;
|
|
49
|
-
/** For text highlights, the rectangular highlights for each block of text. */
|
|
50
|
-
rects: Array<LTWHP>;
|
|
51
|
-
};
|
|
52
|
-
/**
|
|
53
|
-
* Position of a Highlight with normalised coordinates.
|
|
54
|
-
*
|
|
55
|
-
* @category Type
|
|
56
|
-
*/
|
|
57
|
-
export type ScaledPosition = {
|
|
58
|
-
/** Bounding rectangle for the entire highlight. */
|
|
59
|
-
boundingRect: Scaled;
|
|
60
|
-
/** For text highlights, the rectangular highlights for each block of text. */
|
|
61
|
-
rects: Array<Scaled>;
|
|
62
|
-
/** Rarely applicable property of whether coordinates should be in PDF coordinate space. */
|
|
63
|
-
usePdfCoordinates?: boolean;
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* A point in a drawing stroke.
|
|
67
|
-
*
|
|
68
|
-
* @category Type
|
|
69
|
-
*/
|
|
70
|
-
export type DrawingPoint = {
|
|
71
|
-
x: number;
|
|
72
|
-
y: number;
|
|
73
|
-
};
|
|
74
|
-
/**
|
|
75
|
-
* A stroke in a drawing, with its own color and width.
|
|
76
|
-
*
|
|
77
|
-
* @category Type
|
|
78
|
-
*/
|
|
79
|
-
export type DrawingStroke = {
|
|
80
|
-
points: DrawingPoint[];
|
|
81
|
-
color: string;
|
|
82
|
-
width: number;
|
|
83
|
-
};
|
|
84
|
-
/**
|
|
85
|
-
* Shape types for shape annotations.
|
|
86
|
-
*
|
|
87
|
-
* @category Type
|
|
88
|
-
*/
|
|
89
|
-
export type ShapeType = "rectangle" | "circle" | "arrow";
|
|
90
|
-
/**
|
|
91
|
-
* Shape data for shape highlights.
|
|
92
|
-
*
|
|
93
|
-
* @category Type
|
|
94
|
-
*/
|
|
95
|
-
export type ShapeData = {
|
|
96
|
-
shapeType: ShapeType;
|
|
97
|
-
strokeColor: string;
|
|
98
|
-
strokeWidth: number;
|
|
99
|
-
/** For arrows: start point as percentage of bounding box (0-1) */
|
|
100
|
-
startPoint?: {
|
|
101
|
-
x: number;
|
|
102
|
-
y: number;
|
|
103
|
-
};
|
|
104
|
-
/** For arrows: end point as percentage of bounding box (0-1) */
|
|
105
|
-
endPoint?: {
|
|
106
|
-
x: number;
|
|
107
|
-
y: number;
|
|
108
|
-
};
|
|
109
|
-
};
|
|
110
|
-
/**
|
|
111
|
-
* The content of a highlight
|
|
112
|
-
*
|
|
113
|
-
* @category Type
|
|
114
|
-
*/
|
|
115
|
-
export type Content = {
|
|
116
|
-
text?: string;
|
|
117
|
-
image?: string;
|
|
118
|
-
/** For drawing highlights, store the stroke data for later editing */
|
|
119
|
-
strokes?: DrawingStroke[];
|
|
120
|
-
/** For shape highlights, store the shape data */
|
|
121
|
-
shape?: ShapeData;
|
|
122
|
-
};
|
|
123
|
-
/**
|
|
124
|
-
* What type the highlight is. This is the ideal way to determine whether to
|
|
125
|
-
* render it in an AreaHighlight or TextHighlight.
|
|
126
|
-
*
|
|
127
|
-
* @category Type
|
|
128
|
-
*/
|
|
129
|
-
export type HighlightType = "text" | "area" | "freetext" | "image" | "drawing" | "shape";
|
|
130
|
-
/**
|
|
131
|
-
* This represents a selected (text/mouse) area that has been turned into a
|
|
132
|
-
* highlight. If you are storing highlights, they should be stored as this type.
|
|
133
|
-
*
|
|
134
|
-
* @category Type
|
|
135
|
-
*/
|
|
136
|
-
export interface Highlight {
|
|
137
|
-
id: string;
|
|
138
|
-
/**
|
|
139
|
-
* This property is planned to be non-optional in future.
|
|
140
|
-
*/
|
|
141
|
-
type?: HighlightType;
|
|
142
|
-
/**
|
|
143
|
-
* @deprecated If you want your highlight to store content after being a
|
|
144
|
-
* GhostHighlight, you should create your own interface extended off this. If
|
|
145
|
-
* you are currently using this property to determine what kind of highlight
|
|
146
|
-
* to render, please use {@link type}.
|
|
147
|
-
*/
|
|
148
|
-
content?: Content;
|
|
149
|
-
position: ScaledPosition;
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* This represents a temporary highlight and is ideal as an intermediary between
|
|
153
|
-
* a selection and a highlight.
|
|
154
|
-
*
|
|
155
|
-
* @category Type
|
|
156
|
-
*/
|
|
157
|
-
export interface GhostHighlight extends Required<Omit<Highlight, "id">> {
|
|
158
|
-
content: Content;
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* This represents a rendered highlight, with its position defined by the page
|
|
162
|
-
* viewport.
|
|
163
|
-
*
|
|
164
|
-
* @category Type
|
|
165
|
-
*/
|
|
166
|
-
export type ViewportHighlight<T extends Highlight = Highlight> = Omit<T, "position"> & {
|
|
167
|
-
position: ViewportPosition;
|
|
168
|
-
};
|
|
169
|
-
/**
|
|
170
|
-
* An area or text selection in a PDF Document.
|
|
171
|
-
*
|
|
172
|
-
* @category Type
|
|
173
|
-
*/
|
|
174
|
-
export type PdfSelection = GhostHighlight & {
|
|
175
|
-
/** Convert the current selection into a temporary highlight */
|
|
176
|
-
makeGhostHighlight(): GhostHighlight;
|
|
177
|
-
};
|
|
178
|
-
/**
|
|
179
|
-
* A PDF.js page representation. This is the reference type for every page in the PdfHighlighter.
|
|
180
|
-
*
|
|
181
|
-
* @category Type
|
|
182
|
-
*/
|
|
183
|
-
export type Page = {
|
|
184
|
-
node: HTMLElement;
|
|
185
|
-
/** 1-Index page number */
|
|
186
|
-
number: number;
|
|
187
|
-
};
|
|
188
|
-
/**
|
|
189
|
-
* All the DOM refs for a group of highlights on one page
|
|
190
|
-
*
|
|
191
|
-
* @category Type
|
|
192
|
-
*/
|
|
193
|
-
export type HighlightBindings = {
|
|
194
|
-
reactRoot: Root;
|
|
195
|
-
container: Element;
|
|
196
|
-
textLayer: HTMLElement;
|
|
197
|
-
};
|
|
198
|
-
/**
|
|
199
|
-
* A popup that can be viewed inside a PdfHighlighter.
|
|
200
|
-
*
|
|
201
|
-
* @category Type
|
|
202
|
-
*/
|
|
203
|
-
export type Tip = {
|
|
204
|
-
position: ViewportPosition;
|
|
205
|
-
content: ReactNode;
|
|
206
|
-
};
|
|
207
|
-
/**
|
|
208
|
-
* The accepted scale values by the PDF.js viewer.
|
|
209
|
-
* Numeric entries accept floats, e.g. 1.2 = 120%
|
|
210
|
-
*
|
|
211
|
-
* @category Type
|
|
212
|
-
*/
|
|
213
|
-
export type PdfScaleValue = "page-actual" | "page-width" | "page-height" | "page-fit" | "auto" | number;
|
package/dist/esm/types.js
DELETED
package/dist/esm/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|