@vaadin-component-factory/vcf-pdf-viewer 3.0.2 → 3.2.0
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/package.json +22 -16
- package/pdfjs/dist/event_utils.js +207 -0
- package/pdfjs/dist/genericl10n.js +2395 -0
- package/pdfjs/dist/message_handler.js +325 -190
- package/pdfjs/dist/node_stream.js +2 -494
- package/pdfjs/dist/node_stream2.js +1754 -0
- package/pdfjs/dist/pdf.js +19294 -11168
- package/pdfjs/dist/pdf.worker.js +23 -0
- package/pdfjs/dist/pdf_link_service.js +222 -378
- package/pdfjs/dist/pdf_rendering_queue.js +61 -62
- package/pdfjs/dist/pdf_thumbnail_viewer.js +214 -399
- package/pdfjs/dist/pdf_viewer.js +3432 -2295
- package/pdfjs/dist/ui_utils.js +209 -480
- package/pdfjs/dist/util.js +382 -568
- package/pdfjs/dist/worker.js +41580 -42492
- package/src/vcf-pdf-viewer.js +175 -19
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import './pdf.js';
|
|
2
|
-
import {
|
|
2
|
+
import { RenderingStates } from './ui_utils.js';
|
|
3
|
+
import { R as RenderingCancelledException } from './node_stream2.js';
|
|
3
4
|
import './util.js';
|
|
4
5
|
import './message_handler.js';
|
|
5
6
|
|
|
@@ -18,91 +19,83 @@ import './message_handler.js';
|
|
|
18
19
|
* limitations under the License.
|
|
19
20
|
*/
|
|
20
21
|
const CLEANUP_TIMEOUT = 30000;
|
|
21
|
-
|
|
22
|
-
INITIAL: 0,
|
|
23
|
-
RUNNING: 1,
|
|
24
|
-
PAUSED: 2,
|
|
25
|
-
FINISHED: 3
|
|
26
|
-
};
|
|
22
|
+
|
|
27
23
|
/**
|
|
28
24
|
* Controls rendering of the views for pages and thumbnails.
|
|
29
25
|
*/
|
|
30
|
-
|
|
31
26
|
class PDFRenderingQueue {
|
|
32
27
|
constructor() {
|
|
33
28
|
this.pdfViewer = null;
|
|
34
29
|
this.pdfThumbnailViewer = null;
|
|
35
30
|
this.onIdle = null;
|
|
36
31
|
this.highestPriorityPage = null;
|
|
32
|
+
/** @type {number} */
|
|
37
33
|
this.idleTimeout = null;
|
|
38
34
|
this.printing = false;
|
|
39
35
|
this.isThumbnailViewEnabled = false;
|
|
36
|
+
if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) {
|
|
37
|
+
Object.defineProperty(this, "hasViewer", {
|
|
38
|
+
value: () => !!this.pdfViewer
|
|
39
|
+
});
|
|
40
|
+
}
|
|
40
41
|
}
|
|
42
|
+
|
|
41
43
|
/**
|
|
42
44
|
* @param {PDFViewer} pdfViewer
|
|
43
45
|
*/
|
|
44
|
-
|
|
45
|
-
|
|
46
46
|
setViewer(pdfViewer) {
|
|
47
47
|
this.pdfViewer = pdfViewer;
|
|
48
48
|
}
|
|
49
|
+
|
|
49
50
|
/**
|
|
50
51
|
* @param {PDFThumbnailViewer} pdfThumbnailViewer
|
|
51
52
|
*/
|
|
52
|
-
|
|
53
|
-
|
|
54
53
|
setThumbnailViewer(pdfThumbnailViewer) {
|
|
55
54
|
this.pdfThumbnailViewer = pdfThumbnailViewer;
|
|
56
55
|
}
|
|
56
|
+
|
|
57
57
|
/**
|
|
58
58
|
* @param {IRenderableView} view
|
|
59
59
|
* @returns {boolean}
|
|
60
60
|
*/
|
|
61
|
-
|
|
62
|
-
|
|
63
61
|
isHighestPriority(view) {
|
|
64
62
|
return this.highestPriorityPage === view.renderingId;
|
|
65
63
|
}
|
|
64
|
+
|
|
66
65
|
/**
|
|
67
66
|
* @param {Object} currentlyVisiblePages
|
|
68
67
|
*/
|
|
69
|
-
|
|
70
|
-
|
|
71
68
|
renderHighestPriority(currentlyVisiblePages) {
|
|
69
|
+
var _this$pdfThumbnailVie;
|
|
72
70
|
if (this.idleTimeout) {
|
|
73
71
|
clearTimeout(this.idleTimeout);
|
|
74
72
|
this.idleTimeout = null;
|
|
75
|
-
}
|
|
76
|
-
|
|
73
|
+
}
|
|
77
74
|
|
|
75
|
+
// Pages have a higher priority than thumbnails, so check them first.
|
|
78
76
|
if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {
|
|
79
77
|
return;
|
|
80
|
-
} // No pages needed rendering, so check thumbnails.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) {
|
|
84
|
-
if (this.pdfThumbnailViewer.forceRendering()) {
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
78
|
}
|
|
88
|
-
|
|
79
|
+
// No pages needed rendering, so check thumbnails.
|
|
80
|
+
if (this.isThumbnailViewEnabled && (_this$pdfThumbnailVie = this.pdfThumbnailViewer) !== null && _this$pdfThumbnailVie !== void 0 && _this$pdfThumbnailVie.forceRendering()) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
89
83
|
if (this.printing) {
|
|
90
84
|
// If printing is currently ongoing do not reschedule cleanup.
|
|
91
85
|
return;
|
|
92
86
|
}
|
|
93
|
-
|
|
94
87
|
if (this.onIdle) {
|
|
95
88
|
this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);
|
|
96
89
|
}
|
|
97
90
|
}
|
|
91
|
+
|
|
98
92
|
/**
|
|
99
93
|
* @param {Object} visible
|
|
100
94
|
* @param {Array} views
|
|
101
95
|
* @param {boolean} scrolledDown
|
|
96
|
+
* @param {boolean} [preRenderExtra]
|
|
102
97
|
*/
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
getHighestPriority(visible, views, scrolledDown) {
|
|
98
|
+
getHighestPriority(visible, views, scrolledDown, preRenderExtra = false) {
|
|
106
99
|
/**
|
|
107
100
|
* The state has changed. Figure out which page has the highest priority to
|
|
108
101
|
* render next (if any).
|
|
@@ -112,48 +105,62 @@ class PDFRenderingQueue {
|
|
|
112
105
|
* 2. if last scrolled down, the page after the visible pages, or
|
|
113
106
|
* if last scrolled up, the page before the visible pages
|
|
114
107
|
*/
|
|
115
|
-
const visibleViews = visible.views
|
|
116
|
-
|
|
117
|
-
|
|
108
|
+
const visibleViews = visible.views,
|
|
109
|
+
numVisible = visibleViews.length;
|
|
118
110
|
if (numVisible === 0) {
|
|
119
111
|
return null;
|
|
120
112
|
}
|
|
121
|
-
|
|
122
|
-
for (let i = 0; i < numVisible; ++i) {
|
|
113
|
+
for (let i = 0; i < numVisible; i++) {
|
|
123
114
|
const view = visibleViews[i].view;
|
|
124
|
-
|
|
125
115
|
if (!this.isViewFinished(view)) {
|
|
126
116
|
return view;
|
|
127
117
|
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
118
|
+
}
|
|
119
|
+
const firstId = visible.first.id,
|
|
120
|
+
lastId = visible.last.id;
|
|
121
|
+
|
|
122
|
+
// All the visible views have rendered; try to handle any "holes" in the
|
|
123
|
+
// page layout (can happen e.g. with spreadModes at higher zoom levels).
|
|
124
|
+
if (lastId - firstId + 1 > numVisible) {
|
|
125
|
+
const visibleIds = visible.ids;
|
|
126
|
+
for (let i = 1, ii = lastId - firstId; i < ii; i++) {
|
|
127
|
+
const holeId = scrolledDown ? firstId + i : lastId - i;
|
|
128
|
+
if (visibleIds.has(holeId)) {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
const holeView = views[holeId - 1];
|
|
132
|
+
if (!this.isViewFinished(holeView)) {
|
|
133
|
+
return holeView;
|
|
134
|
+
}
|
|
136
135
|
}
|
|
137
|
-
}
|
|
138
|
-
const previousPageIndex = visible.first.id - 2;
|
|
136
|
+
}
|
|
139
137
|
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
// All the visible views have rendered; try to render next/previous page.
|
|
139
|
+
// (IDs start at 1, so no need to add 1 when `scrolledDown === true`.)
|
|
140
|
+
let preRenderIndex = scrolledDown ? lastId : firstId - 2;
|
|
141
|
+
let preRenderView = views[preRenderIndex];
|
|
142
|
+
if (preRenderView && !this.isViewFinished(preRenderView)) {
|
|
143
|
+
return preRenderView;
|
|
144
|
+
}
|
|
145
|
+
if (preRenderExtra) {
|
|
146
|
+
preRenderIndex += scrolledDown ? 1 : -1;
|
|
147
|
+
preRenderView = views[preRenderIndex];
|
|
148
|
+
if (preRenderView && !this.isViewFinished(preRenderView)) {
|
|
149
|
+
return preRenderView;
|
|
142
150
|
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
151
|
+
}
|
|
152
|
+
// Everything that needs to be rendered has been.
|
|
146
153
|
return null;
|
|
147
154
|
}
|
|
155
|
+
|
|
148
156
|
/**
|
|
149
157
|
* @param {IRenderableView} view
|
|
150
158
|
* @returns {boolean}
|
|
151
159
|
*/
|
|
152
|
-
|
|
153
|
-
|
|
154
160
|
isViewFinished(view) {
|
|
155
161
|
return view.renderingState === RenderingStates.FINISHED;
|
|
156
162
|
}
|
|
163
|
+
|
|
157
164
|
/**
|
|
158
165
|
* Render a page or thumbnail view. This calls the appropriate function
|
|
159
166
|
* based on the views state. If the view is already rendered it will return
|
|
@@ -161,22 +168,17 @@ class PDFRenderingQueue {
|
|
|
161
168
|
*
|
|
162
169
|
* @param {IRenderableView} view
|
|
163
170
|
*/
|
|
164
|
-
|
|
165
|
-
|
|
166
171
|
renderView(view) {
|
|
167
172
|
switch (view.renderingState) {
|
|
168
173
|
case RenderingStates.FINISHED:
|
|
169
174
|
return false;
|
|
170
|
-
|
|
171
175
|
case RenderingStates.PAUSED:
|
|
172
176
|
this.highestPriorityPage = view.renderingId;
|
|
173
177
|
view.resume();
|
|
174
178
|
break;
|
|
175
|
-
|
|
176
179
|
case RenderingStates.RUNNING:
|
|
177
180
|
this.highestPriorityPage = view.renderingId;
|
|
178
181
|
break;
|
|
179
|
-
|
|
180
182
|
case RenderingStates.INITIAL:
|
|
181
183
|
this.highestPriorityPage = view.renderingId;
|
|
182
184
|
view.draw().finally(() => {
|
|
@@ -185,15 +187,12 @@ class PDFRenderingQueue {
|
|
|
185
187
|
if (reason instanceof RenderingCancelledException) {
|
|
186
188
|
return;
|
|
187
189
|
}
|
|
188
|
-
|
|
189
190
|
console.error(`renderView: "${reason}"`);
|
|
190
191
|
});
|
|
191
192
|
break;
|
|
192
193
|
}
|
|
193
|
-
|
|
194
194
|
return true;
|
|
195
195
|
}
|
|
196
|
-
|
|
197
196
|
}
|
|
198
197
|
|
|
199
|
-
export { PDFRenderingQueue
|
|
198
|
+
export { PDFRenderingQueue };
|