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.
Files changed (88) hide show
  1. package/dist/esm/index.css +1221 -0
  2. package/dist/esm/index.css.map +1 -0
  3. package/dist/esm/index.d.ts +1348 -19
  4. package/dist/esm/index.js +3558 -18
  5. package/dist/esm/index.js.map +1 -1
  6. package/dist/esm/style/style.css +13 -0
  7. package/package.json +3 -2
  8. package/dist/esm/components/AreaHighlight.d.ts +0 -82
  9. package/dist/esm/components/AreaHighlight.js +0 -109
  10. package/dist/esm/components/AreaHighlight.js.map +0 -1
  11. package/dist/esm/components/DrawingCanvas.d.ts +0 -48
  12. package/dist/esm/components/DrawingCanvas.js +0 -277
  13. package/dist/esm/components/DrawingCanvas.js.map +0 -1
  14. package/dist/esm/components/DrawingHighlight.d.ts +0 -70
  15. package/dist/esm/components/DrawingHighlight.js +0 -164
  16. package/dist/esm/components/DrawingHighlight.js.map +0 -1
  17. package/dist/esm/components/FreetextHighlight.d.ts +0 -112
  18. package/dist/esm/components/FreetextHighlight.js +0 -193
  19. package/dist/esm/components/FreetextHighlight.js.map +0 -1
  20. package/dist/esm/components/HighlightLayer.d.ts +0 -49
  21. package/dist/esm/components/HighlightLayer.js +0 -37
  22. package/dist/esm/components/HighlightLayer.js.map +0 -1
  23. package/dist/esm/components/ImageHighlight.d.ts +0 -63
  24. package/dist/esm/components/ImageHighlight.js +0 -65
  25. package/dist/esm/components/ImageHighlight.js.map +0 -1
  26. package/dist/esm/components/MonitoredHighlightContainer.d.ts +0 -37
  27. package/dist/esm/components/MonitoredHighlightContainer.js +0 -42
  28. package/dist/esm/components/MonitoredHighlightContainer.js.map +0 -1
  29. package/dist/esm/components/MouseMonitor.d.ts +0 -34
  30. package/dist/esm/components/MouseMonitor.js +0 -30
  31. package/dist/esm/components/MouseMonitor.js.map +0 -1
  32. package/dist/esm/components/MouseSelection.d.ts +0 -66
  33. package/dist/esm/components/MouseSelection.js +0 -122
  34. package/dist/esm/components/MouseSelection.js.map +0 -1
  35. package/dist/esm/components/PdfHighlighter.d.ts +0 -184
  36. package/dist/esm/components/PdfHighlighter.js +0 -410
  37. package/dist/esm/components/PdfHighlighter.js.map +0 -1
  38. package/dist/esm/components/PdfLoader.d.ts +0 -55
  39. package/dist/esm/components/PdfLoader.js +0 -57
  40. package/dist/esm/components/PdfLoader.js.map +0 -1
  41. package/dist/esm/components/ShapeCanvas.d.ts +0 -51
  42. package/dist/esm/components/ShapeCanvas.js +0 -205
  43. package/dist/esm/components/ShapeCanvas.js.map +0 -1
  44. package/dist/esm/components/ShapeHighlight.d.ts +0 -107
  45. package/dist/esm/components/ShapeHighlight.js +0 -140
  46. package/dist/esm/components/ShapeHighlight.js.map +0 -1
  47. package/dist/esm/components/SignaturePad.d.ts +0 -40
  48. package/dist/esm/components/SignaturePad.js +0 -138
  49. package/dist/esm/components/SignaturePad.js.map +0 -1
  50. package/dist/esm/components/TextHighlight.d.ts +0 -93
  51. package/dist/esm/components/TextHighlight.js +0 -115
  52. package/dist/esm/components/TextHighlight.js.map +0 -1
  53. package/dist/esm/components/TipContainer.d.ts +0 -27
  54. package/dist/esm/components/TipContainer.js +0 -58
  55. package/dist/esm/components/TipContainer.js.map +0 -1
  56. package/dist/esm/contexts/HighlightContext.d.ts +0 -44
  57. package/dist/esm/contexts/HighlightContext.js +0 -16
  58. package/dist/esm/contexts/HighlightContext.js.map +0 -1
  59. package/dist/esm/contexts/PdfHighlighterContext.d.ts +0 -89
  60. package/dist/esm/contexts/PdfHighlighterContext.js +0 -16
  61. package/dist/esm/contexts/PdfHighlighterContext.js.map +0 -1
  62. package/dist/esm/lib/coordinates.d.ts +0 -16
  63. package/dist/esm/lib/coordinates.js +0 -69
  64. package/dist/esm/lib/coordinates.js.map +0 -1
  65. package/dist/esm/lib/export-pdf.d.ts +0 -81
  66. package/dist/esm/lib/export-pdf.js +0 -511
  67. package/dist/esm/lib/export-pdf.js.map +0 -1
  68. package/dist/esm/lib/get-bounding-rect.d.ts +0 -3
  69. package/dist/esm/lib/get-bounding-rect.js +0 -35
  70. package/dist/esm/lib/get-bounding-rect.js.map +0 -1
  71. package/dist/esm/lib/get-client-rects.d.ts +0 -3
  72. package/dist/esm/lib/get-client-rects.js +0 -43
  73. package/dist/esm/lib/get-client-rects.js.map +0 -1
  74. package/dist/esm/lib/group-highlights-by-page.d.ts +0 -6
  75. package/dist/esm/lib/group-highlights-by-page.js +0 -23
  76. package/dist/esm/lib/group-highlights-by-page.js.map +0 -1
  77. package/dist/esm/lib/optimize-client-rects.d.ts +0 -3
  78. package/dist/esm/lib/optimize-client-rects.js +0 -65
  79. package/dist/esm/lib/optimize-client-rects.js.map +0 -1
  80. package/dist/esm/lib/pdfjs-dom.d.ts +0 -9
  81. package/dist/esm/lib/pdfjs-dom.js +0 -55
  82. package/dist/esm/lib/pdfjs-dom.js.map +0 -1
  83. package/dist/esm/lib/screenshot.d.ts +0 -4
  84. package/dist/esm/lib/screenshot.js +0 -24
  85. package/dist/esm/lib/screenshot.js.map +0 -1
  86. package/dist/esm/types.d.ts +0 -213
  87. package/dist/esm/types.js +0 -2
  88. 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":"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"}
@@ -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":""}