react-pdf-highlighter-plus 1.0.3 → 1.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 (85) hide show
  1. package/dist/esm/index.d.ts +1348 -19
  2. package/dist/esm/index.js +3557 -18
  3. package/dist/esm/index.js.map +1 -1
  4. package/package.json +3 -2
  5. package/dist/esm/components/AreaHighlight.d.ts +0 -82
  6. package/dist/esm/components/AreaHighlight.js +0 -109
  7. package/dist/esm/components/AreaHighlight.js.map +0 -1
  8. package/dist/esm/components/DrawingCanvas.d.ts +0 -48
  9. package/dist/esm/components/DrawingCanvas.js +0 -277
  10. package/dist/esm/components/DrawingCanvas.js.map +0 -1
  11. package/dist/esm/components/DrawingHighlight.d.ts +0 -70
  12. package/dist/esm/components/DrawingHighlight.js +0 -164
  13. package/dist/esm/components/DrawingHighlight.js.map +0 -1
  14. package/dist/esm/components/FreetextHighlight.d.ts +0 -112
  15. package/dist/esm/components/FreetextHighlight.js +0 -193
  16. package/dist/esm/components/FreetextHighlight.js.map +0 -1
  17. package/dist/esm/components/HighlightLayer.d.ts +0 -49
  18. package/dist/esm/components/HighlightLayer.js +0 -37
  19. package/dist/esm/components/HighlightLayer.js.map +0 -1
  20. package/dist/esm/components/ImageHighlight.d.ts +0 -63
  21. package/dist/esm/components/ImageHighlight.js +0 -65
  22. package/dist/esm/components/ImageHighlight.js.map +0 -1
  23. package/dist/esm/components/MonitoredHighlightContainer.d.ts +0 -37
  24. package/dist/esm/components/MonitoredHighlightContainer.js +0 -42
  25. package/dist/esm/components/MonitoredHighlightContainer.js.map +0 -1
  26. package/dist/esm/components/MouseMonitor.d.ts +0 -34
  27. package/dist/esm/components/MouseMonitor.js +0 -30
  28. package/dist/esm/components/MouseMonitor.js.map +0 -1
  29. package/dist/esm/components/MouseSelection.d.ts +0 -66
  30. package/dist/esm/components/MouseSelection.js +0 -122
  31. package/dist/esm/components/MouseSelection.js.map +0 -1
  32. package/dist/esm/components/PdfHighlighter.d.ts +0 -184
  33. package/dist/esm/components/PdfHighlighter.js +0 -410
  34. package/dist/esm/components/PdfHighlighter.js.map +0 -1
  35. package/dist/esm/components/PdfLoader.d.ts +0 -55
  36. package/dist/esm/components/PdfLoader.js +0 -57
  37. package/dist/esm/components/PdfLoader.js.map +0 -1
  38. package/dist/esm/components/ShapeCanvas.d.ts +0 -51
  39. package/dist/esm/components/ShapeCanvas.js +0 -205
  40. package/dist/esm/components/ShapeCanvas.js.map +0 -1
  41. package/dist/esm/components/ShapeHighlight.d.ts +0 -107
  42. package/dist/esm/components/ShapeHighlight.js +0 -140
  43. package/dist/esm/components/ShapeHighlight.js.map +0 -1
  44. package/dist/esm/components/SignaturePad.d.ts +0 -40
  45. package/dist/esm/components/SignaturePad.js +0 -138
  46. package/dist/esm/components/SignaturePad.js.map +0 -1
  47. package/dist/esm/components/TextHighlight.d.ts +0 -93
  48. package/dist/esm/components/TextHighlight.js +0 -115
  49. package/dist/esm/components/TextHighlight.js.map +0 -1
  50. package/dist/esm/components/TipContainer.d.ts +0 -27
  51. package/dist/esm/components/TipContainer.js +0 -58
  52. package/dist/esm/components/TipContainer.js.map +0 -1
  53. package/dist/esm/contexts/HighlightContext.d.ts +0 -44
  54. package/dist/esm/contexts/HighlightContext.js +0 -16
  55. package/dist/esm/contexts/HighlightContext.js.map +0 -1
  56. package/dist/esm/contexts/PdfHighlighterContext.d.ts +0 -89
  57. package/dist/esm/contexts/PdfHighlighterContext.js +0 -16
  58. package/dist/esm/contexts/PdfHighlighterContext.js.map +0 -1
  59. package/dist/esm/lib/coordinates.d.ts +0 -16
  60. package/dist/esm/lib/coordinates.js +0 -69
  61. package/dist/esm/lib/coordinates.js.map +0 -1
  62. package/dist/esm/lib/export-pdf.d.ts +0 -81
  63. package/dist/esm/lib/export-pdf.js +0 -511
  64. package/dist/esm/lib/export-pdf.js.map +0 -1
  65. package/dist/esm/lib/get-bounding-rect.d.ts +0 -3
  66. package/dist/esm/lib/get-bounding-rect.js +0 -35
  67. package/dist/esm/lib/get-bounding-rect.js.map +0 -1
  68. package/dist/esm/lib/get-client-rects.d.ts +0 -3
  69. package/dist/esm/lib/get-client-rects.js +0 -43
  70. package/dist/esm/lib/get-client-rects.js.map +0 -1
  71. package/dist/esm/lib/group-highlights-by-page.d.ts +0 -6
  72. package/dist/esm/lib/group-highlights-by-page.js +0 -23
  73. package/dist/esm/lib/group-highlights-by-page.js.map +0 -1
  74. package/dist/esm/lib/optimize-client-rects.d.ts +0 -3
  75. package/dist/esm/lib/optimize-client-rects.js +0 -65
  76. package/dist/esm/lib/optimize-client-rects.js.map +0 -1
  77. package/dist/esm/lib/pdfjs-dom.d.ts +0 -9
  78. package/dist/esm/lib/pdfjs-dom.js +0 -55
  79. package/dist/esm/lib/pdfjs-dom.js.map +0 -1
  80. package/dist/esm/lib/screenshot.d.ts +0 -4
  81. package/dist/esm/lib/screenshot.js +0 -24
  82. package/dist/esm/lib/screenshot.js.map +0 -1
  83. package/dist/esm/types.d.ts +0 -213
  84. package/dist/esm/types.js +0 -2
  85. 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,3 +0,0 @@
1
- import type { LTWHP } from "../types.js";
2
- declare const optimizeClientRects: (clientRects: Array<LTWHP>) => Array<LTWHP>;
3
- export default optimizeClientRects;
@@ -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":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAQ,EAAY,EAAE,CAChD,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,aAAa,IAAI,QAAQ,CAAC;AAExC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAQ,EAAiB,EAAE,CACnD,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAQ,EAAE,EAAE,CACxC,GAAG,YAAY,WAAW,IAAI,GAAG,YAAY,SAAS,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC;AAE1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,GAAQ,EAAE,EAAE,CAC9C,GAAG,YAAY,iBAAiB;IAChC,GAAG,YAAY,SAAS,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC;AAElD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAM,EAAe,EAAE,CAAC,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAmB,EAAe,EAAE;IACrE,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAEhD,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE1D,OAAO,EAAE,IAAI,EAAE,MAAM,EAAU,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAY,EAAU,EAAE;IACxD,MAAM,kBAAkB,GAAG,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC;IAC9D,MAAM,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAAC,aAAa,CAAC;IAE1D,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC3E,OAAO,EAAY,CAAC;IACtB,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,kBAAkB,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEhE,IAAI,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC3C,OAAO,EAAY,CAAC;IACtB,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;QACxC,OAAO,CAAC,SAAS,CAAW,CAAC;IAC/B,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,SAAS,EAAE,OAAO,CAAW,CAAC;IACxC,CAAC;IAED,MAAM,KAAK,GAAW,EAAE,CAAC;IAEzB,IAAI,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC;IAEzC,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC;IAE9C,OAAO,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,kBAAkB,CACpC,QAAQ,CAAC,aAAa,CACpB,sBAAsB,iBAAiB,GAAG,CAC5B,CACjB,CAAC;QACF,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1B,CAAC;QACD,iBAAiB,EAAE,CAAC;IACtB,CAAC;IAED,OAAO,KAAe,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,SAAsB,EACtB,SAAiB,EACjB,EAAE;IACF,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC;IAErD,8EAA8E;IAC9E,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxC,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;QAC5B,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -1,4 +0,0 @@
1
- import { PDFViewer } from "pdfjs-dist/types/web/pdf_viewer";
2
- import type { LTWH } from "../types";
3
- declare const screenshot: (position: LTWH, pageNumber: number, viewer: PDFViewer) => string;
4
- export default screenshot;
@@ -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"}
@@ -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
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}