vue-pdfjs-headless 4.3.1 → 4.3.3
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/index.d.ts +0 -50
- package/dist/index.js +13 -26
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -3,19 +3,12 @@ import * as PdfJs from "pdfjs-dist";
|
|
|
3
3
|
import { PDFDocumentLoadingTask, PDFDocumentProxy, PageViewport } from "pdfjs-dist";
|
|
4
4
|
import * as PdfJsViewer from "pdfjs-dist/web/pdf_viewer.mjs";
|
|
5
5
|
import { PDFViewer } from "pdfjs-dist/web/pdf_viewer.mjs";
|
|
6
|
-
//#region src/models/PdfApi.d.ts
|
|
7
6
|
export type PdfApi = Pick<typeof PdfJs, "getDocument" | "GlobalWorkerOptions" | "PasswordResponses">;
|
|
8
|
-
//#endregion
|
|
9
|
-
//#region src/models/PdfDocumentParameters.d.ts
|
|
10
7
|
export type PdfDocumentParameters = Partial<Parameters<PdfApi["getDocument"]>[0]>;
|
|
11
|
-
//#endregion
|
|
12
|
-
//#region src/models/PdfLoadingProgress.d.ts
|
|
13
8
|
export interface PdfLoadingProgress {
|
|
14
9
|
loaded: number;
|
|
15
10
|
total: number;
|
|
16
11
|
}
|
|
17
|
-
//#endregion
|
|
18
|
-
//#region src/models/PdfDocumentState.d.ts
|
|
19
12
|
export interface PdfDocumentState {
|
|
20
13
|
isFailed: Ref<boolean>;
|
|
21
14
|
isPasswordRequested: Ref<boolean>;
|
|
@@ -24,8 +17,6 @@ export interface PdfDocumentState {
|
|
|
24
17
|
progress: Ref<PdfLoadingProgress>;
|
|
25
18
|
submitPassword: (password: string) => void;
|
|
26
19
|
}
|
|
27
|
-
//#endregion
|
|
28
|
-
//#region src/models/PdfRenderer.d.ts
|
|
29
20
|
export interface PdfRenderer {
|
|
30
21
|
api: PdfApi;
|
|
31
22
|
cMapUrl: string;
|
|
@@ -33,19 +24,13 @@ export interface PdfRenderer {
|
|
|
33
24
|
wasmUrl: string;
|
|
34
25
|
workerSrc: string;
|
|
35
26
|
}
|
|
36
|
-
//#endregion
|
|
37
|
-
//#region src/models/PdfSource.d.ts
|
|
38
27
|
export type PdfSource = File | string | Uint8Array;
|
|
39
|
-
//#endregion
|
|
40
|
-
//#region src/composables/usePdfDocument.d.ts
|
|
41
28
|
interface UsePdfDocumentOptions {
|
|
42
29
|
parameters?: PdfDocumentParameters;
|
|
43
30
|
renderer: MaybeRefOrGetter<PdfRenderer | undefined>;
|
|
44
31
|
source: MaybeRefOrGetter<PdfSource | undefined>;
|
|
45
32
|
}
|
|
46
33
|
export declare const usePdfDocument: ({ parameters, renderer, source }: UsePdfDocumentOptions) => PdfDocumentState;
|
|
47
|
-
//#endregion
|
|
48
|
-
//#region src/composables/usePdfPage.d.ts
|
|
49
34
|
interface UsePdfPageOptions {
|
|
50
35
|
canvas: MaybeRefOrGetter<HTMLCanvasElement | undefined>;
|
|
51
36
|
isVisible?: MaybeRefOrGetter<boolean>;
|
|
@@ -53,43 +38,29 @@ interface UsePdfPageOptions {
|
|
|
53
38
|
pdfDocument: MaybeRefOrGetter<PDFDocumentProxy | undefined>;
|
|
54
39
|
}
|
|
55
40
|
export declare const usePdfPage: ({ canvas, isVisible, pageNumber, pdfDocument }: UsePdfPageOptions) => void;
|
|
56
|
-
//#endregion
|
|
57
|
-
//#region src/models/PdfThumbnail.d.ts
|
|
58
41
|
export interface PdfThumbnail {
|
|
59
42
|
canvas: ShallowRef<HTMLCanvasElement | undefined>;
|
|
60
43
|
isCurrent: ComputedRef<boolean>;
|
|
61
44
|
isVisible: Ref<boolean>;
|
|
62
45
|
pageNumber: number;
|
|
63
46
|
}
|
|
64
|
-
//#endregion
|
|
65
|
-
//#region src/composables/usePdfThumbnails.d.ts
|
|
66
47
|
interface UsePdfThumbnailsOptions {
|
|
67
48
|
currentPageNumber: MaybeRefOrGetter<number>;
|
|
68
49
|
pdfDocument: MaybeRefOrGetter<PDFDocumentProxy | undefined>;
|
|
69
50
|
root: MaybeRefOrGetter<HTMLElement | undefined>;
|
|
70
51
|
}
|
|
71
52
|
export declare const usePdfThumbnails: ({ currentPageNumber, pdfDocument, root }: UsePdfThumbnailsOptions) => ShallowRef<PdfThumbnail[]>;
|
|
72
|
-
//#endregion
|
|
73
|
-
//#region src/models/PdfViewerApi.d.ts
|
|
74
53
|
export type PdfViewerApi = Pick<typeof PdfJsViewer, "EventBus" | "FindState" | "LinkTarget" | "PDFFindController" | "PDFLinkService" | "PDFViewer">;
|
|
75
|
-
//#endregion
|
|
76
|
-
//#region src/models/PdfMatchesCount.d.ts
|
|
77
54
|
export interface PdfMatchesCount {
|
|
78
55
|
current: number;
|
|
79
56
|
total: number;
|
|
80
57
|
}
|
|
81
|
-
//#endregion
|
|
82
|
-
//#region src/models/PdfOutline.d.ts
|
|
83
58
|
export type PdfOutline = NonNullable<Awaited<ReturnType<PDFDocumentProxy["getOutline"]>>>;
|
|
84
|
-
//#endregion
|
|
85
|
-
//#region src/models/PdfPageOverlay.d.ts
|
|
86
59
|
export interface PdfPageOverlay {
|
|
87
60
|
element: HTMLElement;
|
|
88
61
|
pageNumber: number;
|
|
89
62
|
viewport: PageViewport;
|
|
90
63
|
}
|
|
91
|
-
//#endregion
|
|
92
|
-
//#region src/models/PdfViewerState.d.ts
|
|
93
64
|
export interface PdfViewerState {
|
|
94
65
|
actualSize: () => void;
|
|
95
66
|
currentPageNumber: Ref<number>;
|
|
@@ -120,8 +91,6 @@ export interface PdfViewerState {
|
|
|
120
91
|
zoomIn: () => void;
|
|
121
92
|
zoomOut: () => void;
|
|
122
93
|
}
|
|
123
|
-
//#endregion
|
|
124
|
-
//#region src/composables/usePdfViewer.d.ts
|
|
125
94
|
interface UsePdfViewerOptions {
|
|
126
95
|
container: MaybeRefOrGetter<HTMLDivElement | undefined>;
|
|
127
96
|
highlightTerms?: MaybeRefOrGetter<string[]>;
|
|
@@ -130,15 +99,11 @@ interface UsePdfViewerOptions {
|
|
|
130
99
|
viewerApi: MaybeRefOrGetter<PdfViewerApi | undefined>;
|
|
131
100
|
}
|
|
132
101
|
export declare const usePdfViewer: ({ container, highlightTerms, pdfDocument, viewer, viewerApi }: UsePdfViewerOptions) => PdfViewerState;
|
|
133
|
-
//#endregion
|
|
134
|
-
//#region src/composables/usePdfZoomGesture.d.ts
|
|
135
102
|
interface UsePdfZoomGestureOptions {
|
|
136
103
|
container: MaybeRefOrGetter<HTMLDivElement | undefined>;
|
|
137
104
|
getViewer: () => PDFViewer | undefined;
|
|
138
105
|
}
|
|
139
106
|
export declare const usePdfZoomGesture: ({ container, getViewer }: UsePdfZoomGestureOptions) => void;
|
|
140
|
-
//#endregion
|
|
141
|
-
//#region src/services/constants.d.ts
|
|
142
107
|
export declare const PDF_MAX_CANVAS_AREA = 16777216;
|
|
143
108
|
export declare const PDF_MIN_SCALE = .1;
|
|
144
109
|
export declare const PDF_MAX_SCALE = 10;
|
|
@@ -150,11 +115,7 @@ export declare const PDF_PRINT_CLASS = "pdf-print";
|
|
|
150
115
|
export declare const PDF_MIME_TYPE = "application/pdf";
|
|
151
116
|
export declare const PDF_PRINT_STYLE: string;
|
|
152
117
|
export declare const PDF_WHEEL_ZOOM_DIVISOR = 500;
|
|
153
|
-
//#endregion
|
|
154
|
-
//#region src/services/destroyLoadingTask.d.ts
|
|
155
118
|
export declare const destroyLoadingTask: (task: PDFDocumentLoadingTask) => void;
|
|
156
|
-
//#endregion
|
|
157
|
-
//#region src/services/getCanvasScale.d.ts
|
|
158
119
|
interface Props {
|
|
159
120
|
cssWidth: number;
|
|
160
121
|
pageHeight: number;
|
|
@@ -162,28 +123,17 @@ interface Props {
|
|
|
162
123
|
pixelRatio: number;
|
|
163
124
|
}
|
|
164
125
|
export declare const getCanvasScale: ({ cssWidth, pageHeight, pageWidth, pixelRatio }: Props) => number;
|
|
165
|
-
//#endregion
|
|
166
|
-
//#region src/services/getSourceParameters.d.ts
|
|
167
126
|
export declare const getSourceParameters: (source: PdfSource) => Promise<{
|
|
168
127
|
data: Uint8Array;
|
|
169
128
|
} | {
|
|
170
129
|
url: string;
|
|
171
130
|
}>;
|
|
172
|
-
//#endregion
|
|
173
|
-
//#region src/services/getZoomedScroll.d.ts
|
|
174
131
|
export declare const getZoomedScroll: ({ point, ratio, scroll }: {
|
|
175
132
|
point: number;
|
|
176
133
|
ratio: number;
|
|
177
134
|
scroll: number;
|
|
178
135
|
}) => number;
|
|
179
|
-
//#endregion
|
|
180
|
-
//#region src/services/loadPdfDocument.d.ts
|
|
181
136
|
export declare const loadPdfDocument: (renderer: PdfRenderer, source: PdfSource, parameters: PdfDocumentParameters) => Promise<PDFDocumentLoadingTask>;
|
|
182
|
-
//#endregion
|
|
183
|
-
//#region src/services/renderPrintImage.d.ts
|
|
184
137
|
export declare const renderPrintImage: (pdfDocument: PDFDocumentProxy, pageNumber: number) => Promise<HTMLImageElement>;
|
|
185
|
-
//#endregion
|
|
186
|
-
//#region src/services/renderPrintSheets.d.ts
|
|
187
138
|
export declare const renderPrintSheets: (pdfDocument: PDFDocumentProxy, checkIsCancelled: () => boolean) => Promise<HTMLDivElement | undefined>;
|
|
188
|
-
//#endregion
|
|
189
139
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import { downloadFile, getResultAsync, getSynchronizedFunction, noop } from "@esposter/shared";
|
|
2
2
|
import { computed, effectScope, onScopeDispose, ref, shallowRef, toValue, watch } from "vue";
|
|
3
|
-
|
|
3
|
+
// src/services/destroyLoadingTask.ts
|
|
4
4
|
const destroyLoadingTask = getSynchronizedFunction(async (task) => {
|
|
5
5
|
await task.destroy();
|
|
6
6
|
});
|
|
7
|
-
|
|
8
|
-
//#region src/services/getSourceParameters.ts
|
|
7
|
+
// src/services/getSourceParameters.ts
|
|
9
8
|
const getSourceParameters = async (source) => {
|
|
10
9
|
if (typeof source === "string") return { url: source };
|
|
11
10
|
if (source instanceof File) return { data: new Uint8Array(await source.arrayBuffer()) };
|
|
12
11
|
return { data: new Uint8Array(source) };
|
|
13
12
|
};
|
|
14
|
-
|
|
15
|
-
//#region src/services/loadPdfDocument.ts
|
|
13
|
+
// src/services/loadPdfDocument.ts
|
|
16
14
|
const loadPdfDocument = async (renderer, source, parameters) => {
|
|
17
15
|
renderer.api.GlobalWorkerOptions.workerSrc = renderer.workerSrc;
|
|
18
16
|
const sourceParameters = await getSourceParameters(source);
|
|
@@ -25,8 +23,7 @@ const loadPdfDocument = async (renderer, source, parameters) => {
|
|
|
25
23
|
...sourceParameters
|
|
26
24
|
});
|
|
27
25
|
};
|
|
28
|
-
|
|
29
|
-
//#region src/composables/usePdfDocument.ts
|
|
26
|
+
// src/composables/usePdfDocument.ts
|
|
30
27
|
const EMPTY_PROGRESS = {
|
|
31
28
|
loaded: 0,
|
|
32
29
|
total: 0
|
|
@@ -101,8 +98,7 @@ const usePdfDocument = ({ parameters = {}, renderer, source }) => {
|
|
|
101
98
|
submitPassword
|
|
102
99
|
};
|
|
103
100
|
};
|
|
104
|
-
|
|
105
|
-
//#region src/services/constants.ts
|
|
101
|
+
// src/services/constants.ts
|
|
106
102
|
const PDF_MAX_CANVAS_AREA = 16777216;
|
|
107
103
|
const PDF_MIN_SCALE = .1;
|
|
108
104
|
const PDF_MAX_SCALE = 10;
|
|
@@ -114,15 +110,13 @@ const PDF_PRINT_CLASS = "pdf-print";
|
|
|
114
110
|
const PDF_MIME_TYPE = "application/pdf";
|
|
115
111
|
const PDF_PRINT_STYLE = `@page { margin: 3mm } .${PDF_PRINT_CLASS} { display: none } .${PDF_PRINT_CLASS} img { display: block; page-break-after: always; width: 100% } @media print { .${PDF_PRINT_CLASS} { display: block } body > :not(.${PDF_PRINT_CLASS}) { display: none !important } }`;
|
|
116
112
|
const PDF_WHEEL_ZOOM_DIVISOR = 500;
|
|
117
|
-
|
|
118
|
-
//#region src/services/getCanvasScale.ts
|
|
113
|
+
// src/services/getCanvasScale.ts
|
|
119
114
|
const getCanvasScale = ({ cssWidth, pageHeight, pageWidth, pixelRatio }) => {
|
|
120
115
|
const scale = cssWidth / pageWidth * pixelRatio;
|
|
121
116
|
if (pageWidth * pageHeight * scale ** 2 <= 16777216) return scale;
|
|
122
117
|
return Math.sqrt(PDF_MAX_CANVAS_AREA / (pageWidth * pageHeight));
|
|
123
118
|
};
|
|
124
|
-
|
|
125
|
-
//#region src/composables/usePdfPage.ts
|
|
119
|
+
// src/composables/usePdfPage.ts
|
|
126
120
|
const usePdfPage = ({ canvas, isVisible = true, pageNumber, pdfDocument }) => {
|
|
127
121
|
let cssWidth = 0;
|
|
128
122
|
let loadGeneration = 0;
|
|
@@ -196,8 +190,7 @@ const usePdfPage = ({ canvas, isVisible = true, pageNumber, pdfDocument }) => {
|
|
|
196
190
|
cancelRender();
|
|
197
191
|
});
|
|
198
192
|
};
|
|
199
|
-
|
|
200
|
-
//#region src/composables/usePdfThumbnails.ts
|
|
193
|
+
// src/composables/usePdfThumbnails.ts
|
|
201
194
|
const usePdfThumbnails = ({ currentPageNumber, pdfDocument, root }) => {
|
|
202
195
|
const thumbnails = shallowRef([]);
|
|
203
196
|
const rows = /* @__PURE__ */ new Map();
|
|
@@ -251,11 +244,9 @@ const usePdfThumbnails = ({ currentPageNumber, pdfDocument, root }) => {
|
|
|
251
244
|
onScopeDispose(disposeThumbnails);
|
|
252
245
|
return thumbnails;
|
|
253
246
|
};
|
|
254
|
-
|
|
255
|
-
//#region src/services/getZoomedScroll.ts
|
|
247
|
+
// src/services/getZoomedScroll.ts
|
|
256
248
|
const getZoomedScroll = ({ point, ratio, scroll }) => (scroll + point) * ratio - point;
|
|
257
|
-
|
|
258
|
-
//#region src/composables/usePdfZoomGesture.ts
|
|
249
|
+
// src/composables/usePdfZoomGesture.ts
|
|
259
250
|
const usePdfZoomGesture = ({ container, getViewer }) => {
|
|
260
251
|
const abortController = new AbortController();
|
|
261
252
|
const pointers = /* @__PURE__ */ new Map();
|
|
@@ -351,8 +342,7 @@ const usePdfZoomGesture = ({ container, getViewer }) => {
|
|
|
351
342
|
abortController.abort();
|
|
352
343
|
});
|
|
353
344
|
};
|
|
354
|
-
|
|
355
|
-
//#region src/services/renderPrintImage.ts
|
|
345
|
+
// src/services/renderPrintImage.ts
|
|
356
346
|
const renderPrintImage = async (pdfDocument, pageNumber) => {
|
|
357
347
|
const page = await pdfDocument.getPage(pageNumber);
|
|
358
348
|
const { height, width } = page.getViewport({ scale: 1 });
|
|
@@ -374,8 +364,7 @@ const renderPrintImage = async (pdfDocument, pageNumber) => {
|
|
|
374
364
|
image.src = canvas.toDataURL("image/png");
|
|
375
365
|
return image;
|
|
376
366
|
};
|
|
377
|
-
|
|
378
|
-
//#region src/services/renderPrintSheets.ts
|
|
367
|
+
// src/services/renderPrintSheets.ts
|
|
379
368
|
const renderPrintSheets = async (pdfDocument, checkIsCancelled) => {
|
|
380
369
|
const style = window.document.createElement("style");
|
|
381
370
|
style.textContent = PDF_PRINT_STYLE;
|
|
@@ -392,8 +381,7 @@ const renderPrintSheets = async (pdfDocument, checkIsCancelled) => {
|
|
|
392
381
|
await renderBatch(1);
|
|
393
382
|
return checkIsCancelled() ? void 0 : printRoot;
|
|
394
383
|
};
|
|
395
|
-
|
|
396
|
-
//#region src/composables/usePdfViewer.ts
|
|
384
|
+
// src/composables/usePdfViewer.ts
|
|
397
385
|
const usePdfViewer = ({ container, highlightTerms = [], pdfDocument, viewer, viewerApi }) => {
|
|
398
386
|
const currentPageNumber = ref(0);
|
|
399
387
|
const isFullscreen = ref(false);
|
|
@@ -663,5 +651,4 @@ const usePdfViewer = ({ container, highlightTerms = [], pdfDocument, viewer, vie
|
|
|
663
651
|
zoomOut
|
|
664
652
|
};
|
|
665
653
|
};
|
|
666
|
-
//#endregion
|
|
667
654
|
export { PDF_FULL_TURN, PDF_MAX_CANVAS_AREA, PDF_MAX_SCALE, PDF_MIME_TYPE, PDF_MIN_SCALE, PDF_PRINT_BATCH_SIZE, PDF_PRINT_CLASS, PDF_PRINT_SCALE, PDF_PRINT_STYLE, PDF_ROTATION_STEP, PDF_WHEEL_ZOOM_DIVISOR, destroyLoadingTask, getCanvasScale, getSourceParameters, getZoomedScroll, loadPdfDocument, renderPrintImage, renderPrintSheets, usePdfDocument, usePdfPage, usePdfThumbnails, usePdfViewer, usePdfZoomGesture };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vue-pdfjs-headless",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.3",
|
|
4
4
|
"description": "Headless Vue composables over pdfjs-dist: a document's loading, a page's drawing and the viewer's state, with no styling and no renderer of its own.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"headless",
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
"typecheck": "tsc"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@esposter/shared": "4.3.
|
|
49
|
+
"@esposter/shared": "4.3.3"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@esposter/configuration": "4.3.
|
|
52
|
+
"@esposter/configuration": "4.3.3",
|
|
53
53
|
"@vue/test-utils": "^2.5.1",
|
|
54
54
|
"happy-dom": "^21.0.4",
|
|
55
55
|
"tsdown": "^0.23.1"
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"pdfjs-dist": "^6.4.299",
|
|
59
59
|
"vue": "^3.5.44"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "955bbc130ad9b28877fd4ae8efc73a045141ce01"
|
|
62
62
|
}
|