pdfjs-dist 2.6.347 → 2.7.570
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.
Potentially problematic release.
This version of pdfjs-dist might be problematic. Click here for more details.
- package/README.md +3 -3
- package/bower.json +1 -1
- package/build/pdf.js +2050 -1087
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +18219 -10436
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/es5/build/pdf.d.ts +1 -0
- package/es5/build/pdf.js +6623 -6654
- package/es5/build/pdf.js.map +1 -1
- package/es5/build/pdf.min.js +1 -1
- package/es5/build/pdf.worker.js +20815 -13888
- package/es5/build/pdf.worker.js.map +1 -1
- package/es5/build/pdf.worker.min.js +1 -1
- package/es5/image_decoders/pdf.image_decoders.js +3817 -4946
- package/es5/image_decoders/pdf.image_decoders.js.map +1 -1
- package/es5/image_decoders/pdf.image_decoders.min.js +1 -1
- package/es5/web/pdf_viewer.css +18 -15
- package/es5/web/pdf_viewer.js +1094 -514
- package/es5/web/pdf_viewer.js.map +1 -1
- package/image_decoders/pdf.image_decoders.js +774 -168
- package/image_decoders/pdf.image_decoders.js.map +1 -1
- package/image_decoders/pdf.image_decoders.min.js +1 -1
- package/lib/core/annotation.js +556 -108
- package/lib/core/cff_parser.js +7 -1
- package/lib/core/charsets.js +1 -1
- package/lib/core/cmap.js +20 -1
- package/lib/core/core_utils.js +162 -3
- package/lib/core/crypto.js +1 -1
- package/lib/core/default_appearance.js +132 -0
- package/lib/core/document.js +115 -9
- package/lib/core/encodings.js +1 -1
- package/lib/core/evaluator.js +168 -74
- package/lib/core/fonts.js +97 -11
- package/lib/core/function.js +5 -10
- package/lib/core/glyphlist.js +11 -4529
- package/lib/core/image_utils.js +30 -1
- package/lib/core/jpg.js +1 -1
- package/lib/core/jpx.js +5 -5
- package/lib/core/murmurhash3.js +1 -1
- package/lib/core/obj.js +123 -39
- package/lib/core/pattern.js +4 -4
- package/lib/core/primitives.js +24 -5
- package/lib/core/standard_fonts.js +1 -1
- package/lib/core/stream.js +5 -1
- package/lib/core/unicode.js +15 -1387
- package/lib/core/worker.js +58 -17
- package/lib/core/writer.js +68 -4
- package/lib/display/annotation_layer.js +712 -119
- package/lib/display/annotation_storage.js +21 -4
- package/lib/display/api.js +88 -18
- package/lib/display/canvas.js +414 -375
- package/lib/display/display_utils.js +11 -4
- package/lib/display/fetch_stream.js +3 -3
- package/lib/display/font_loader.js +2 -3
- package/lib/display/metadata.js +54 -20
- package/lib/display/node_stream.js +1 -1
- package/lib/display/optional_content_config.js +1 -1
- package/lib/display/pattern_helper.js +109 -113
- package/lib/display/svg.js +5 -5
- package/lib/display/text_layer.js +54 -54
- package/lib/display/transport_stream.js +4 -4
- package/lib/display/webgl.js +65 -68
- package/lib/examples/node/domstubs.js +9 -4
- package/lib/pdf.js +2 -2
- package/lib/pdf.sandbox.js +311 -0
- package/lib/pdf.worker.js +2 -2
- package/lib/shared/scripting_utils.js +84 -0
- package/lib/shared/util.js +129 -14
- package/lib/{display → shared}/xml_parser.js +112 -4
- package/lib/test/unit/annotation_spec.js +831 -109
- package/lib/test/unit/annotation_storage_spec.js +28 -10
- package/lib/test/unit/api_spec.js +190 -160
- package/lib/test/unit/bidi_spec.js +6 -6
- package/lib/test/unit/cff_parser_spec.js +73 -73
- package/lib/test/unit/clitests_helper.js +2 -0
- package/lib/test/unit/cmap_spec.js +48 -74
- package/lib/test/unit/core_utils_spec.js +34 -0
- package/lib/test/unit/crypto_spec.js +162 -199
- package/lib/test/unit/custom_spec.js +7 -18
- package/lib/test/unit/default_appearance_spec.js +54 -0
- package/lib/test/unit/display_svg_spec.js +24 -19
- package/lib/test/unit/display_utils_spec.js +1 -1
- package/lib/test/unit/document_spec.js +187 -20
- package/lib/test/unit/evaluator_spec.js +30 -30
- package/lib/test/unit/function_spec.js +165 -165
- package/lib/test/unit/jasmine-boot.js +52 -53
- package/lib/test/unit/metadata_spec.js +2 -2
- package/lib/test/unit/murmurhash3_spec.js +29 -16
- package/lib/test/unit/network_spec.js +21 -21
- package/lib/test/unit/pdf_find_controller_spec.js +131 -69
- package/lib/test/unit/pdf_find_utils_spec.js +10 -10
- package/lib/test/unit/scripting_spec.js +1104 -0
- package/lib/test/unit/stream_spec.js +8 -8
- package/lib/test/unit/test_utils.js +16 -19
- package/lib/test/unit/testreporter.js +11 -4
- package/lib/test/unit/type1_parser_spec.js +23 -23
- package/lib/test/unit/ui_utils_spec.js +78 -35
- package/lib/test/unit/unicode_spec.js +7 -7
- package/lib/test/unit/util_spec.js +26 -3
- package/lib/test/unit/writer_spec.js +16 -1
- package/lib/test/unit/xml_spec.js +117 -0
- package/lib/web/annotation_layer_builder.js +18 -6
- package/lib/web/app.js +579 -161
- package/lib/web/app_options.js +14 -0
- package/lib/web/base_tree_viewer.js +50 -0
- package/lib/web/base_viewer.js +350 -14
- package/lib/web/chromecom.js +9 -1
- package/lib/web/debugger.js +1 -2
- package/lib/web/download_manager.js +0 -15
- package/lib/web/firefox_print_service.js +6 -4
- package/lib/web/firefoxcom.js +84 -69
- package/lib/web/generic_scripting.js +55 -0
- package/lib/web/genericcom.js +9 -1
- package/lib/web/grab_to_pan.js +1 -1
- package/lib/web/interfaces.js +9 -3
- package/lib/web/pdf_attachment_viewer.js +1 -3
- package/lib/web/pdf_cursor_tools.js +20 -13
- package/lib/web/pdf_document_properties.js +48 -61
- package/lib/web/pdf_find_bar.js +1 -3
- package/lib/web/pdf_find_controller.js +58 -12
- package/lib/web/pdf_history.js +43 -21
- package/lib/web/pdf_layer_viewer.js +1 -9
- package/lib/web/pdf_link_service.js +108 -78
- package/lib/web/pdf_outline_viewer.js +166 -10
- package/lib/web/pdf_page_view.js +14 -14
- package/lib/web/pdf_presentation_mode.js +21 -31
- package/lib/web/pdf_rendering_queue.js +8 -1
- package/lib/web/pdf_sidebar.js +62 -107
- package/lib/web/pdf_sidebar_resizer.js +11 -21
- package/lib/web/pdf_single_page_viewer.js +8 -0
- package/lib/web/pdf_thumbnail_view.js +26 -26
- package/lib/web/pdf_thumbnail_viewer.js +13 -2
- package/lib/web/pdf_viewer.component.js +2 -2
- package/lib/web/pdf_viewer.js +3 -1
- package/lib/web/preferences.js +33 -44
- package/lib/web/text_layer_builder.js +2 -9
- package/lib/web/ui_utils.js +78 -46
- package/lib/web/viewer_compatibility.js +1 -2
- package/package.json +4 -1
- package/types/display/annotation_layer.d.ts +18 -3
- package/types/display/api.d.ts +110 -54
- package/types/display/canvas.d.ts +1 -1
- package/types/display/display_utils.d.ts +96 -95
- package/types/display/fetch_stream.d.ts +2 -2
- package/types/display/metadata.d.ts +4 -0
- package/types/display/pattern_helper.d.ts +1 -1
- package/types/display/text_layer.d.ts +7 -7
- package/types/display/transport_stream.d.ts +1 -1
- package/types/shared/scripting_utils.d.ts +12 -0
- package/types/shared/util.d.ts +281 -250
- package/types/shared/xml_parser.d.ts +64 -0
- package/web/pdf_viewer.css +18 -15
- package/web/pdf_viewer.js +809 -408
- package/web/pdf_viewer.js.map +1 -1
- package/webpack.js +1 -1
- package/types/display/xml_parser.d.ts +0 -35
@@ -30,23 +30,43 @@ var _pdf = require("../pdf");
|
|
30
30
|
|
31
31
|
var _base_tree_viewer = require("./base_tree_viewer.js");
|
32
32
|
|
33
|
+
var _ui_utils = require("./ui_utils.js");
|
34
|
+
|
33
35
|
class PDFOutlineViewer extends _base_tree_viewer.BaseTreeViewer {
|
34
36
|
constructor(options) {
|
35
37
|
super(options);
|
36
38
|
this.linkService = options.linkService;
|
37
39
|
|
38
40
|
this.eventBus._on("toggleoutlinetree", this._toggleAllTreeItems.bind(this));
|
41
|
+
|
42
|
+
this.eventBus._on("currentoutlineitem", this._currentOutlineItem.bind(this));
|
43
|
+
|
44
|
+
this.eventBus._on("pagechanging", evt => {
|
45
|
+
this._currentPageNumber = evt.pageNumber;
|
46
|
+
});
|
47
|
+
|
48
|
+
this.eventBus._on("pagesloaded", evt => {
|
49
|
+
this._isPagesLoaded = !!evt.pagesCount;
|
50
|
+
});
|
51
|
+
|
52
|
+
this.eventBus._on("sidebarviewchanged", evt => {
|
53
|
+
this._sidebarView = evt.view;
|
54
|
+
});
|
39
55
|
}
|
40
56
|
|
41
57
|
reset() {
|
42
58
|
super.reset();
|
43
59
|
this._outline = null;
|
60
|
+
this._pageNumberToDestHashCapability = null;
|
61
|
+
this._currentPageNumber = 1;
|
62
|
+
this._isPagesLoaded = false;
|
44
63
|
}
|
45
64
|
|
46
65
|
_dispatchEvent(outlineCount) {
|
47
66
|
this.eventBus.dispatch("outlineloaded", {
|
48
67
|
source: this,
|
49
|
-
outlineCount
|
68
|
+
outlineCount,
|
69
|
+
enableCurrentOutlineItemButton: outlineCount > 0 && !this._pdfDocument?.loadingParams.disableAutoFetch
|
50
70
|
});
|
51
71
|
}
|
52
72
|
|
@@ -71,9 +91,11 @@ class PDFOutlineViewer extends _base_tree_viewer.BaseTreeViewer {
|
|
71
91
|
|
72
92
|
element.href = linkService.getDestinationHash(dest);
|
73
93
|
|
74
|
-
element.onclick =
|
94
|
+
element.onclick = evt => {
|
95
|
+
this._updateCurrentTreeItem(evt.target.parentNode);
|
96
|
+
|
75
97
|
if (dest) {
|
76
|
-
linkService.
|
98
|
+
linkService.goToDestination(dest);
|
77
99
|
}
|
78
100
|
|
79
101
|
return false;
|
@@ -97,7 +119,31 @@ class PDFOutlineViewer extends _base_tree_viewer.BaseTreeViewer {
|
|
97
119
|
count,
|
98
120
|
items
|
99
121
|
}) {
|
100
|
-
|
122
|
+
let hidden = false;
|
123
|
+
|
124
|
+
if (count < 0) {
|
125
|
+
let totalCount = items.length;
|
126
|
+
|
127
|
+
if (totalCount > 0) {
|
128
|
+
const queue = [...items];
|
129
|
+
|
130
|
+
while (queue.length > 0) {
|
131
|
+
const {
|
132
|
+
count: nestedCount,
|
133
|
+
items: nestedItems
|
134
|
+
} = queue.shift();
|
135
|
+
|
136
|
+
if (nestedCount > 0 && nestedItems.length > 0) {
|
137
|
+
totalCount += nestedItems.length;
|
138
|
+
queue.push(...nestedItems);
|
139
|
+
}
|
140
|
+
}
|
141
|
+
}
|
142
|
+
|
143
|
+
if (Math.abs(count) === totalCount) {
|
144
|
+
hidden = true;
|
145
|
+
}
|
146
|
+
}
|
101
147
|
|
102
148
|
super._addToggleButton(div, hidden);
|
103
149
|
}
|
@@ -111,13 +157,15 @@ class PDFOutlineViewer extends _base_tree_viewer.BaseTreeViewer {
|
|
111
157
|
}
|
112
158
|
|
113
159
|
render({
|
114
|
-
outline
|
160
|
+
outline,
|
161
|
+
pdfDocument
|
115
162
|
}) {
|
116
163
|
if (this._outline) {
|
117
164
|
this.reset();
|
118
165
|
}
|
119
166
|
|
120
167
|
this._outline = outline || null;
|
168
|
+
this._pdfDocument = pdfDocument || null;
|
121
169
|
|
122
170
|
if (!outline) {
|
123
171
|
this._dispatchEvent(0);
|
@@ -167,14 +215,122 @@ class PDFOutlineViewer extends _base_tree_viewer.BaseTreeViewer {
|
|
167
215
|
}
|
168
216
|
}
|
169
217
|
|
170
|
-
|
171
|
-
|
172
|
-
|
218
|
+
this._finishRendering(fragment, outlineCount, hasAnyNesting);
|
219
|
+
}
|
220
|
+
|
221
|
+
async _currentOutlineItem() {
|
222
|
+
if (!this._isPagesLoaded) {
|
223
|
+
throw new Error("_currentOutlineItem: All pages have not been loaded.");
|
224
|
+
}
|
225
|
+
|
226
|
+
if (!this._outline || !this._pdfDocument) {
|
227
|
+
return;
|
228
|
+
}
|
229
|
+
|
230
|
+
const pageNumberToDestHash = await this._getPageNumberToDestHash(this._pdfDocument);
|
231
|
+
|
232
|
+
if (!pageNumberToDestHash) {
|
233
|
+
return;
|
234
|
+
}
|
235
|
+
|
236
|
+
this._updateCurrentTreeItem(null);
|
237
|
+
|
238
|
+
if (this._sidebarView !== _ui_utils.SidebarView.OUTLINE) {
|
239
|
+
return;
|
240
|
+
}
|
241
|
+
|
242
|
+
for (let i = this._currentPageNumber; i > 0; i--) {
|
243
|
+
const destHash = pageNumberToDestHash.get(i);
|
244
|
+
|
245
|
+
if (!destHash) {
|
246
|
+
continue;
|
247
|
+
}
|
248
|
+
|
249
|
+
const linkElement = this.container.querySelector(`a[href="${destHash}"]`);
|
250
|
+
|
251
|
+
if (!linkElement) {
|
252
|
+
continue;
|
253
|
+
}
|
254
|
+
|
255
|
+
this._scrollToCurrentTreeItem(linkElement.parentNode);
|
256
|
+
|
257
|
+
break;
|
258
|
+
}
|
259
|
+
}
|
260
|
+
|
261
|
+
async _getPageNumberToDestHash(pdfDocument) {
|
262
|
+
if (this._pageNumberToDestHashCapability) {
|
263
|
+
return this._pageNumberToDestHashCapability.promise;
|
264
|
+
}
|
265
|
+
|
266
|
+
this._pageNumberToDestHashCapability = (0, _pdf.createPromiseCapability)();
|
267
|
+
const pageNumberToDestHash = new Map(),
|
268
|
+
pageNumberNesting = new Map();
|
269
|
+
const queue = [{
|
270
|
+
nesting: 0,
|
271
|
+
items: this._outline
|
272
|
+
}];
|
273
|
+
|
274
|
+
while (queue.length > 0) {
|
275
|
+
const levelData = queue.shift(),
|
276
|
+
currentNesting = levelData.nesting;
|
277
|
+
|
278
|
+
for (const {
|
279
|
+
dest,
|
280
|
+
items
|
281
|
+
} of levelData.items) {
|
282
|
+
let explicitDest, pageNumber;
|
283
|
+
|
284
|
+
if (typeof dest === "string") {
|
285
|
+
explicitDest = await pdfDocument.getDestination(dest);
|
286
|
+
|
287
|
+
if (pdfDocument !== this._pdfDocument) {
|
288
|
+
return null;
|
289
|
+
}
|
290
|
+
} else {
|
291
|
+
explicitDest = dest;
|
292
|
+
}
|
293
|
+
|
294
|
+
if (Array.isArray(explicitDest)) {
|
295
|
+
const [destRef] = explicitDest;
|
296
|
+
|
297
|
+
if (typeof destRef === "object") {
|
298
|
+
pageNumber = this.linkService._cachedPageNumber(destRef);
|
299
|
+
|
300
|
+
if (!pageNumber) {
|
301
|
+
try {
|
302
|
+
pageNumber = (await pdfDocument.getPageIndex(destRef)) + 1;
|
303
|
+
|
304
|
+
if (pdfDocument !== this._pdfDocument) {
|
305
|
+
return null;
|
306
|
+
}
|
307
|
+
|
308
|
+
this.linkService.cachePageRef(pageNumber, destRef);
|
309
|
+
} catch (ex) {}
|
310
|
+
}
|
311
|
+
} else if (Number.isInteger(destRef)) {
|
312
|
+
pageNumber = destRef + 1;
|
313
|
+
}
|
314
|
+
|
315
|
+
if (Number.isInteger(pageNumber) && (!pageNumberToDestHash.has(pageNumber) || currentNesting > pageNumberNesting.get(pageNumber))) {
|
316
|
+
const destHash = this.linkService.getDestinationHash(dest);
|
317
|
+
pageNumberToDestHash.set(pageNumber, destHash);
|
318
|
+
pageNumberNesting.set(pageNumber, currentNesting);
|
319
|
+
}
|
320
|
+
}
|
321
|
+
|
322
|
+
if (items.length > 0) {
|
323
|
+
queue.push({
|
324
|
+
nesting: currentNesting + 1,
|
325
|
+
items
|
326
|
+
});
|
327
|
+
}
|
328
|
+
}
|
173
329
|
}
|
174
330
|
|
175
|
-
this.
|
331
|
+
this._pageNumberToDestHashCapability.resolve(pageNumberToDestHash.size > 0 ? pageNumberToDestHash : null);
|
176
332
|
|
177
|
-
this.
|
333
|
+
return this._pageNumberToDestHashCapability.promise;
|
178
334
|
}
|
179
335
|
|
180
336
|
}
|
package/lib/web/pdf_page_view.js
CHANGED
@@ -48,7 +48,6 @@ class PDFPageView {
|
|
48
48
|
this.scale = options.scale || _ui_utils.DEFAULT_SCALE;
|
49
49
|
this.viewport = defaultViewport;
|
50
50
|
this.pdfPageRotate = defaultViewport.rotation;
|
51
|
-
this._annotationStorage = options.annotationStorage || null;
|
52
51
|
this._optionalContentConfigPromise = options.optionalContentConfigPromise || null;
|
53
52
|
this.hasRestrictedScaling = false;
|
54
53
|
this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;
|
@@ -63,11 +62,12 @@ class PDFPageView {
|
|
63
62
|
this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;
|
64
63
|
this.enableWebGL = options.enableWebGL || false;
|
65
64
|
this.l10n = options.l10n || _ui_utils.NullL10n;
|
65
|
+
this.enableScripting = options.enableScripting || false;
|
66
66
|
this.paintTask = null;
|
67
67
|
this.paintedViewportMap = new WeakMap();
|
68
68
|
this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;
|
69
69
|
this.resume = null;
|
70
|
-
this.
|
70
|
+
this._renderError = null;
|
71
71
|
this.annotationLayer = null;
|
72
72
|
this.textLayer = null;
|
73
73
|
this.zoomLayer = null;
|
@@ -88,7 +88,6 @@ class PDFPageView {
|
|
88
88
|
scale: this.scale * _ui_utils.CSS_UNITS,
|
89
89
|
rotation: totalRotation
|
90
90
|
});
|
91
|
-
this.stats = pdfPage.stats;
|
92
91
|
this.reset();
|
93
92
|
}
|
94
93
|
|
@@ -206,7 +205,8 @@ class PDFPageView {
|
|
206
205
|
source: this,
|
207
206
|
pageNumber: this.id,
|
208
207
|
cssTransform: true,
|
209
|
-
timestamp: performance.now()
|
208
|
+
timestamp: performance.now(),
|
209
|
+
error: this._renderError
|
210
210
|
});
|
211
211
|
return;
|
212
212
|
}
|
@@ -228,7 +228,8 @@ class PDFPageView {
|
|
228
228
|
source: this,
|
229
229
|
pageNumber: this.id,
|
230
230
|
cssTransform: true,
|
231
|
-
timestamp: performance.now()
|
231
|
+
timestamp: performance.now(),
|
232
|
+
error: this._renderError
|
232
233
|
});
|
233
234
|
return;
|
234
235
|
}
|
@@ -281,8 +282,7 @@ class PDFPageView {
|
|
281
282
|
scaleY = width / height;
|
282
283
|
}
|
283
284
|
|
284
|
-
|
285
|
-
target.style.transform = cssTransform;
|
285
|
+
target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`;
|
286
286
|
|
287
287
|
if (this.textLayer) {
|
288
288
|
const textLayerViewport = this.textLayer.viewport;
|
@@ -322,7 +322,7 @@ class PDFPageView {
|
|
322
322
|
break;
|
323
323
|
}
|
324
324
|
|
325
|
-
textLayerDiv.style.transform =
|
325
|
+
textLayerDiv.style.transform = `rotate(${textAbsRotation}deg) ` + `scale(${scale}) ` + `translate(${transX}, ${transY})`;
|
326
326
|
textLayerDiv.style.transformOrigin = "0% 0%";
|
327
327
|
}
|
328
328
|
|
@@ -414,16 +414,17 @@ class PDFPageView {
|
|
414
414
|
};
|
415
415
|
}
|
416
416
|
|
417
|
-
const finishPaintTask = async error => {
|
417
|
+
const finishPaintTask = async (error = null) => {
|
418
418
|
if (paintTask === this.paintTask) {
|
419
419
|
this.paintTask = null;
|
420
420
|
}
|
421
421
|
|
422
422
|
if (error instanceof _pdf.RenderingCancelledException) {
|
423
|
-
this.
|
423
|
+
this._renderError = null;
|
424
424
|
return;
|
425
425
|
}
|
426
426
|
|
427
|
+
this._renderError = error;
|
427
428
|
this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;
|
428
429
|
|
429
430
|
if (this.loadingIconDiv) {
|
@@ -433,13 +434,12 @@ class PDFPageView {
|
|
433
434
|
|
434
435
|
this._resetZoomLayer(true);
|
435
436
|
|
436
|
-
this.error = error;
|
437
|
-
this.stats = pdfPage.stats;
|
438
437
|
this.eventBus.dispatch("pagerendered", {
|
439
438
|
source: this,
|
440
439
|
pageNumber: this.id,
|
441
440
|
cssTransform: false,
|
442
|
-
timestamp: performance.now()
|
441
|
+
timestamp: performance.now(),
|
442
|
+
error: this._renderError
|
443
443
|
});
|
444
444
|
|
445
445
|
if (error) {
|
@@ -466,7 +466,7 @@ class PDFPageView {
|
|
466
466
|
|
467
467
|
if (this.annotationLayerFactory) {
|
468
468
|
if (!this.annotationLayer) {
|
469
|
-
this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage,
|
469
|
+
this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, null, this.imageResourcesPath, this.renderInteractiveForms, this.l10n, this.enableScripting, null, null);
|
470
470
|
}
|
471
471
|
|
472
472
|
this._renderAnnotationLayer();
|
@@ -99,8 +99,6 @@ class PDFPresentationMode {
|
|
99
99
|
this.container.mozRequestFullScreen();
|
100
100
|
} else if (this.container.webkitRequestFullscreen) {
|
101
101
|
this.container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
|
102
|
-
} else if (this.container.msRequestFullscreen) {
|
103
|
-
this.container.msRequestFullscreen();
|
104
102
|
} else {
|
105
103
|
return false;
|
106
104
|
}
|
@@ -137,7 +135,7 @@ class PDFPresentationMode {
|
|
137
135
|
|
138
136
|
this._resetMouseScrollState();
|
139
137
|
|
140
|
-
const success = totalDelta > 0 ? this.
|
138
|
+
const success = totalDelta > 0 ? this.pdfViewer.previousPage() : this.pdfViewer.nextPage();
|
141
139
|
|
142
140
|
if (success) {
|
143
141
|
this.mouseScrollTimeStamp = currentTime;
|
@@ -146,36 +144,30 @@ class PDFPresentationMode {
|
|
146
144
|
}
|
147
145
|
|
148
146
|
get isFullscreen() {
|
149
|
-
return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen
|
147
|
+
return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen);
|
150
148
|
}
|
151
149
|
|
152
|
-
|
153
|
-
|
150
|
+
_notifyStateChange() {
|
151
|
+
let state = _ui_utils.PresentationModeState.NORMAL;
|
154
152
|
|
155
|
-
if (
|
156
|
-
|
153
|
+
if (this.switchInProgress) {
|
154
|
+
state = _ui_utils.PresentationModeState.CHANGING;
|
155
|
+
} else if (this.active) {
|
156
|
+
state = _ui_utils.PresentationModeState.FULLSCREEN;
|
157
157
|
}
|
158
158
|
|
159
|
-
this.
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
_goToNextPage() {
|
164
|
-
const page = this.pdfViewer.currentPageNumber;
|
159
|
+
this.eventBus.dispatch("presentationmodechanged", {
|
160
|
+
source: this,
|
161
|
+
state,
|
165
162
|
|
166
|
-
|
167
|
-
|
168
|
-
|
163
|
+
get active() {
|
164
|
+
throw new Error("Deprecated parameter: `active`, please use `state` instead.");
|
165
|
+
},
|
169
166
|
|
170
|
-
|
171
|
-
|
172
|
-
|
167
|
+
get switchInProgress() {
|
168
|
+
throw new Error("Deprecated parameter: `switchInProgress`, please use `state` instead.");
|
169
|
+
}
|
173
170
|
|
174
|
-
_notifyStateChange() {
|
175
|
-
this.eventBus.dispatch("presentationmodechanged", {
|
176
|
-
source: this,
|
177
|
-
active: this.active,
|
178
|
-
switchInProgress: !!this.switchInProgress
|
179
171
|
});
|
180
172
|
}
|
181
173
|
|
@@ -261,9 +253,9 @@ class PDFPresentationMode {
|
|
261
253
|
evt.preventDefault();
|
262
254
|
|
263
255
|
if (evt.shiftKey) {
|
264
|
-
this.
|
256
|
+
this.pdfViewer.previousPage();
|
265
257
|
} else {
|
266
|
-
this.
|
258
|
+
this.pdfViewer.nextPage();
|
267
259
|
}
|
268
260
|
}
|
269
261
|
}
|
@@ -348,9 +340,9 @@ class PDFPresentationMode {
|
|
348
340
|
}
|
349
341
|
|
350
342
|
if (delta > 0) {
|
351
|
-
this.
|
343
|
+
this.pdfViewer.previousPage();
|
352
344
|
} else if (delta < 0) {
|
353
|
-
this.
|
345
|
+
this.pdfViewer.nextPage();
|
354
346
|
}
|
355
347
|
|
356
348
|
break;
|
@@ -408,14 +400,12 @@ class PDFPresentationMode {
|
|
408
400
|
window.addEventListener("fullscreenchange", this.fullscreenChangeBind);
|
409
401
|
window.addEventListener("mozfullscreenchange", this.fullscreenChangeBind);
|
410
402
|
window.addEventListener("webkitfullscreenchange", this.fullscreenChangeBind);
|
411
|
-
window.addEventListener("MSFullscreenChange", this.fullscreenChangeBind);
|
412
403
|
}
|
413
404
|
|
414
405
|
_removeFullscreenChangeListeners() {
|
415
406
|
window.removeEventListener("fullscreenchange", this.fullscreenChangeBind);
|
416
407
|
window.removeEventListener("mozfullscreenchange", this.fullscreenChangeBind);
|
417
408
|
window.removeEventListener("webkitfullscreenchange", this.fullscreenChangeBind);
|
418
|
-
window.removeEventListener("MSFullscreenChange", this.fullscreenChangeBind);
|
419
409
|
delete this.fullscreenChangeBind;
|
420
410
|
}
|
421
411
|
|
@@ -24,7 +24,10 @@
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
-
exports.
|
27
|
+
exports.RenderingStates = exports.PDFRenderingQueue = void 0;
|
28
|
+
|
29
|
+
var _pdf = require("../pdf");
|
30
|
+
|
28
31
|
const CLEANUP_TIMEOUT = 30000;
|
29
32
|
const RenderingStates = {
|
30
33
|
INITIAL: 0,
|
@@ -138,6 +141,10 @@ class PDFRenderingQueue {
|
|
138
141
|
view.draw().finally(() => {
|
139
142
|
this.renderHighestPriority();
|
140
143
|
}).catch(reason => {
|
144
|
+
if (reason instanceof _pdf.RenderingCancelledException) {
|
145
|
+
return;
|
146
|
+
}
|
147
|
+
|
141
148
|
console.error(`renderView: "${reason}"`);
|
142
149
|
});
|
143
150
|
break;
|