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.

Files changed (158) hide show
  1. package/README.md +3 -3
  2. package/bower.json +1 -1
  3. package/build/pdf.js +2050 -1087
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +1 -1
  6. package/build/pdf.worker.js +18219 -10436
  7. package/build/pdf.worker.js.map +1 -1
  8. package/build/pdf.worker.min.js +1 -1
  9. package/es5/build/pdf.d.ts +1 -0
  10. package/es5/build/pdf.js +6623 -6654
  11. package/es5/build/pdf.js.map +1 -1
  12. package/es5/build/pdf.min.js +1 -1
  13. package/es5/build/pdf.worker.js +20815 -13888
  14. package/es5/build/pdf.worker.js.map +1 -1
  15. package/es5/build/pdf.worker.min.js +1 -1
  16. package/es5/image_decoders/pdf.image_decoders.js +3817 -4946
  17. package/es5/image_decoders/pdf.image_decoders.js.map +1 -1
  18. package/es5/image_decoders/pdf.image_decoders.min.js +1 -1
  19. package/es5/web/pdf_viewer.css +18 -15
  20. package/es5/web/pdf_viewer.js +1094 -514
  21. package/es5/web/pdf_viewer.js.map +1 -1
  22. package/image_decoders/pdf.image_decoders.js +774 -168
  23. package/image_decoders/pdf.image_decoders.js.map +1 -1
  24. package/image_decoders/pdf.image_decoders.min.js +1 -1
  25. package/lib/core/annotation.js +556 -108
  26. package/lib/core/cff_parser.js +7 -1
  27. package/lib/core/charsets.js +1 -1
  28. package/lib/core/cmap.js +20 -1
  29. package/lib/core/core_utils.js +162 -3
  30. package/lib/core/crypto.js +1 -1
  31. package/lib/core/default_appearance.js +132 -0
  32. package/lib/core/document.js +115 -9
  33. package/lib/core/encodings.js +1 -1
  34. package/lib/core/evaluator.js +168 -74
  35. package/lib/core/fonts.js +97 -11
  36. package/lib/core/function.js +5 -10
  37. package/lib/core/glyphlist.js +11 -4529
  38. package/lib/core/image_utils.js +30 -1
  39. package/lib/core/jpg.js +1 -1
  40. package/lib/core/jpx.js +5 -5
  41. package/lib/core/murmurhash3.js +1 -1
  42. package/lib/core/obj.js +123 -39
  43. package/lib/core/pattern.js +4 -4
  44. package/lib/core/primitives.js +24 -5
  45. package/lib/core/standard_fonts.js +1 -1
  46. package/lib/core/stream.js +5 -1
  47. package/lib/core/unicode.js +15 -1387
  48. package/lib/core/worker.js +58 -17
  49. package/lib/core/writer.js +68 -4
  50. package/lib/display/annotation_layer.js +712 -119
  51. package/lib/display/annotation_storage.js +21 -4
  52. package/lib/display/api.js +88 -18
  53. package/lib/display/canvas.js +414 -375
  54. package/lib/display/display_utils.js +11 -4
  55. package/lib/display/fetch_stream.js +3 -3
  56. package/lib/display/font_loader.js +2 -3
  57. package/lib/display/metadata.js +54 -20
  58. package/lib/display/node_stream.js +1 -1
  59. package/lib/display/optional_content_config.js +1 -1
  60. package/lib/display/pattern_helper.js +109 -113
  61. package/lib/display/svg.js +5 -5
  62. package/lib/display/text_layer.js +54 -54
  63. package/lib/display/transport_stream.js +4 -4
  64. package/lib/display/webgl.js +65 -68
  65. package/lib/examples/node/domstubs.js +9 -4
  66. package/lib/pdf.js +2 -2
  67. package/lib/pdf.sandbox.js +311 -0
  68. package/lib/pdf.worker.js +2 -2
  69. package/lib/shared/scripting_utils.js +84 -0
  70. package/lib/shared/util.js +129 -14
  71. package/lib/{display → shared}/xml_parser.js +112 -4
  72. package/lib/test/unit/annotation_spec.js +831 -109
  73. package/lib/test/unit/annotation_storage_spec.js +28 -10
  74. package/lib/test/unit/api_spec.js +190 -160
  75. package/lib/test/unit/bidi_spec.js +6 -6
  76. package/lib/test/unit/cff_parser_spec.js +73 -73
  77. package/lib/test/unit/clitests_helper.js +2 -0
  78. package/lib/test/unit/cmap_spec.js +48 -74
  79. package/lib/test/unit/core_utils_spec.js +34 -0
  80. package/lib/test/unit/crypto_spec.js +162 -199
  81. package/lib/test/unit/custom_spec.js +7 -18
  82. package/lib/test/unit/default_appearance_spec.js +54 -0
  83. package/lib/test/unit/display_svg_spec.js +24 -19
  84. package/lib/test/unit/display_utils_spec.js +1 -1
  85. package/lib/test/unit/document_spec.js +187 -20
  86. package/lib/test/unit/evaluator_spec.js +30 -30
  87. package/lib/test/unit/function_spec.js +165 -165
  88. package/lib/test/unit/jasmine-boot.js +52 -53
  89. package/lib/test/unit/metadata_spec.js +2 -2
  90. package/lib/test/unit/murmurhash3_spec.js +29 -16
  91. package/lib/test/unit/network_spec.js +21 -21
  92. package/lib/test/unit/pdf_find_controller_spec.js +131 -69
  93. package/lib/test/unit/pdf_find_utils_spec.js +10 -10
  94. package/lib/test/unit/scripting_spec.js +1104 -0
  95. package/lib/test/unit/stream_spec.js +8 -8
  96. package/lib/test/unit/test_utils.js +16 -19
  97. package/lib/test/unit/testreporter.js +11 -4
  98. package/lib/test/unit/type1_parser_spec.js +23 -23
  99. package/lib/test/unit/ui_utils_spec.js +78 -35
  100. package/lib/test/unit/unicode_spec.js +7 -7
  101. package/lib/test/unit/util_spec.js +26 -3
  102. package/lib/test/unit/writer_spec.js +16 -1
  103. package/lib/test/unit/xml_spec.js +117 -0
  104. package/lib/web/annotation_layer_builder.js +18 -6
  105. package/lib/web/app.js +579 -161
  106. package/lib/web/app_options.js +14 -0
  107. package/lib/web/base_tree_viewer.js +50 -0
  108. package/lib/web/base_viewer.js +350 -14
  109. package/lib/web/chromecom.js +9 -1
  110. package/lib/web/debugger.js +1 -2
  111. package/lib/web/download_manager.js +0 -15
  112. package/lib/web/firefox_print_service.js +6 -4
  113. package/lib/web/firefoxcom.js +84 -69
  114. package/lib/web/generic_scripting.js +55 -0
  115. package/lib/web/genericcom.js +9 -1
  116. package/lib/web/grab_to_pan.js +1 -1
  117. package/lib/web/interfaces.js +9 -3
  118. package/lib/web/pdf_attachment_viewer.js +1 -3
  119. package/lib/web/pdf_cursor_tools.js +20 -13
  120. package/lib/web/pdf_document_properties.js +48 -61
  121. package/lib/web/pdf_find_bar.js +1 -3
  122. package/lib/web/pdf_find_controller.js +58 -12
  123. package/lib/web/pdf_history.js +43 -21
  124. package/lib/web/pdf_layer_viewer.js +1 -9
  125. package/lib/web/pdf_link_service.js +108 -78
  126. package/lib/web/pdf_outline_viewer.js +166 -10
  127. package/lib/web/pdf_page_view.js +14 -14
  128. package/lib/web/pdf_presentation_mode.js +21 -31
  129. package/lib/web/pdf_rendering_queue.js +8 -1
  130. package/lib/web/pdf_sidebar.js +62 -107
  131. package/lib/web/pdf_sidebar_resizer.js +11 -21
  132. package/lib/web/pdf_single_page_viewer.js +8 -0
  133. package/lib/web/pdf_thumbnail_view.js +26 -26
  134. package/lib/web/pdf_thumbnail_viewer.js +13 -2
  135. package/lib/web/pdf_viewer.component.js +2 -2
  136. package/lib/web/pdf_viewer.js +3 -1
  137. package/lib/web/preferences.js +33 -44
  138. package/lib/web/text_layer_builder.js +2 -9
  139. package/lib/web/ui_utils.js +78 -46
  140. package/lib/web/viewer_compatibility.js +1 -2
  141. package/package.json +4 -1
  142. package/types/display/annotation_layer.d.ts +18 -3
  143. package/types/display/api.d.ts +110 -54
  144. package/types/display/canvas.d.ts +1 -1
  145. package/types/display/display_utils.d.ts +96 -95
  146. package/types/display/fetch_stream.d.ts +2 -2
  147. package/types/display/metadata.d.ts +4 -0
  148. package/types/display/pattern_helper.d.ts +1 -1
  149. package/types/display/text_layer.d.ts +7 -7
  150. package/types/display/transport_stream.d.ts +1 -1
  151. package/types/shared/scripting_utils.d.ts +12 -0
  152. package/types/shared/util.d.ts +281 -250
  153. package/types/shared/xml_parser.d.ts +64 -0
  154. package/web/pdf_viewer.css +18 -15
  155. package/web/pdf_viewer.js +809 -408
  156. package/web/pdf_viewer.js.map +1 -1
  157. package/webpack.js +1 -1
  158. 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.navigateTo(dest);
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
- const hidden = count < 0 && Math.abs(count) === items.length;
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
- if (hasAnyNesting) {
171
- this.container.classList.add("treeWithDeepNesting");
172
- this._lastToggleIsShow = fragment.querySelectorAll(".treeItemsHidden").length === 0;
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.container.appendChild(fragment);
331
+ this._pageNumberToDestHashCapability.resolve(pageNumberToDestHash.size > 0 ? pageNumberToDestHash : null);
176
332
 
177
- this._dispatchEvent(outlineCount);
333
+ return this._pageNumberToDestHashCapability.promise;
178
334
  }
179
335
 
180
336
  }
@@ -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.error = null;
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
- const cssTransform = "rotate(" + relativeRotation + "deg) " + "scale(" + scaleX + "," + scaleY + ")";
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 = "rotate(" + textAbsRotation + "deg) " + "scale(" + scale + ", " + scale + ") " + "translate(" + transX + ", " + transY + ")";
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.error = null;
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, this._annotationStorage, this.imageResourcesPath, this.renderInteractiveForms, this.l10n);
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._goToPreviousPage() : this._goToNextPage();
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 || document.msFullscreenElement);
147
+ return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen);
150
148
  }
151
149
 
152
- _goToPreviousPage() {
153
- const page = this.pdfViewer.currentPageNumber;
150
+ _notifyStateChange() {
151
+ let state = _ui_utils.PresentationModeState.NORMAL;
154
152
 
155
- if (page <= 1) {
156
- return false;
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.pdfViewer.currentPageNumber = page - 1;
160
- return true;
161
- }
162
-
163
- _goToNextPage() {
164
- const page = this.pdfViewer.currentPageNumber;
159
+ this.eventBus.dispatch("presentationmodechanged", {
160
+ source: this,
161
+ state,
165
162
 
166
- if (page >= this.pdfViewer.pagesCount) {
167
- return false;
168
- }
163
+ get active() {
164
+ throw new Error("Deprecated parameter: `active`, please use `state` instead.");
165
+ },
169
166
 
170
- this.pdfViewer.currentPageNumber = page + 1;
171
- return true;
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._goToPreviousPage();
256
+ this.pdfViewer.previousPage();
265
257
  } else {
266
- this._goToNextPage();
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._goToPreviousPage();
343
+ this.pdfViewer.previousPage();
352
344
  } else if (delta < 0) {
353
- this._goToNextPage();
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.PDFRenderingQueue = exports.RenderingStates = void 0;
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;