pdfjs-dist 2.1.266 → 2.5.207

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 (191) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/README.md +4 -0
  3. package/bower.json +1 -1
  4. package/build/pdf.js +8382 -18492
  5. package/build/pdf.js.map +1 -1
  6. package/build/pdf.min.js +22 -1
  7. package/build/pdf.worker.entry.js +5 -3
  8. package/build/pdf.worker.js +20417 -29816
  9. package/build/pdf.worker.js.map +1 -1
  10. package/build/pdf.worker.min.js +22 -1
  11. package/es5/build/pdf.js +25688 -0
  12. package/es5/build/pdf.js.map +1 -0
  13. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  14. package/es5/build/pdf.worker.js +58239 -0
  15. package/es5/build/pdf.worker.js.map +1 -0
  16. package/es5/web/images/annotation-check.svg +11 -0
  17. package/es5/web/images/annotation-comment.svg +16 -0
  18. package/es5/web/images/annotation-help.svg +26 -0
  19. package/es5/web/images/annotation-insert.svg +10 -0
  20. package/es5/web/images/annotation-key.svg +11 -0
  21. package/es5/web/images/annotation-newparagraph.svg +11 -0
  22. package/es5/web/images/annotation-noicon.svg +7 -0
  23. package/es5/web/images/annotation-note.svg +42 -0
  24. package/es5/web/images/annotation-paragraph.svg +16 -0
  25. package/es5/web/images/loading-icon.gif +0 -0
  26. package/es5/web/images/shadow.png +0 -0
  27. package/es5/web/images/texture.png +0 -0
  28. package/es5/web/pdf_viewer.css +403 -0
  29. package/es5/web/pdf_viewer.js +7742 -0
  30. package/es5/web/pdf_viewer.js.map +1 -0
  31. package/image_decoders/pdf.image_decoders.js +1475 -4897
  32. package/image_decoders/pdf.image_decoders.js.map +1 -1
  33. package/image_decoders/pdf.image_decoders.min.js +22 -1
  34. package/lib/README.md +7 -0
  35. package/lib/core/annotation.js +750 -899
  36. package/lib/core/arithmetic_decoder.js +81 -97
  37. package/lib/core/bidi.js +54 -46
  38. package/lib/core/ccitt.js +88 -81
  39. package/lib/core/ccitt_stream.js +15 -14
  40. package/lib/core/cff_parser.js +235 -183
  41. package/lib/core/charsets.js +4 -4
  42. package/lib/core/chunked_stream.js +447 -542
  43. package/lib/core/cmap.js +222 -264
  44. package/lib/core/colorspace.js +699 -863
  45. package/lib/core/core_utils.js +152 -0
  46. package/lib/core/crypto.js +379 -437
  47. package/lib/core/document.js +573 -660
  48. package/lib/core/encodings.js +15 -15
  49. package/lib/core/evaluator.js +1103 -868
  50. package/lib/core/font_renderer.js +135 -178
  51. package/lib/core/fonts.js +570 -491
  52. package/lib/core/function.js +291 -288
  53. package/lib/core/glyphlist.js +4527 -4526
  54. package/lib/core/image.js +145 -149
  55. package/lib/core/image_utils.js +170 -0
  56. package/lib/core/jbig2.js +325 -316
  57. package/lib/core/jbig2_stream.js +18 -17
  58. package/lib/core/jpeg_stream.js +21 -26
  59. package/lib/core/jpg.js +284 -232
  60. package/lib/core/jpx.js +161 -143
  61. package/lib/core/jpx_stream.js +28 -28
  62. package/lib/core/metrics.js +2929 -2929
  63. package/lib/core/murmurhash3.js +90 -101
  64. package/lib/core/obj.js +1183 -1157
  65. package/lib/core/operator_list.js +99 -67
  66. package/lib/core/parser.js +972 -911
  67. package/lib/core/pattern.js +87 -70
  68. package/lib/core/pdf_manager.js +150 -315
  69. package/lib/core/primitives.js +83 -56
  70. package/lib/core/ps_parser.js +175 -214
  71. package/lib/core/standard_fonts.js +237 -236
  72. package/lib/core/stream.js +94 -74
  73. package/lib/core/type1_parser.js +87 -69
  74. package/lib/core/unicode.js +1654 -1654
  75. package/lib/core/worker.js +193 -390
  76. package/lib/core/worker_stream.js +168 -0
  77. package/lib/display/annotation_layer.js +741 -972
  78. package/lib/display/api.js +1500 -1791
  79. package/lib/display/api_compatibility.js +12 -17
  80. package/lib/display/canvas.js +165 -165
  81. package/lib/display/content_disposition.js +40 -59
  82. package/lib/display/display_utils.js +515 -0
  83. package/lib/display/fetch_stream.js +183 -298
  84. package/lib/display/font_loader.js +273 -413
  85. package/lib/display/metadata.js +86 -98
  86. package/lib/display/network.js +266 -359
  87. package/lib/display/network_utils.js +25 -18
  88. package/lib/display/node_stream.js +285 -458
  89. package/lib/display/pattern_helper.js +113 -65
  90. package/lib/display/svg.js +1166 -901
  91. package/lib/display/text_layer.js +156 -132
  92. package/lib/display/transport_stream.js +262 -278
  93. package/lib/display/webgl.js +70 -83
  94. package/lib/display/worker_options.js +3 -3
  95. package/lib/display/xml_parser.js +303 -392
  96. package/lib/examples/node/domstubs.js +40 -37
  97. package/lib/pdf.js +226 -59
  98. package/lib/pdf.worker.js +14 -6
  99. package/lib/shared/compatibility.js +3 -246
  100. package/lib/shared/is_node.js +7 -6
  101. package/lib/shared/message_handler.js +327 -332
  102. package/lib/shared/util.js +266 -416
  103. package/lib/test/unit/annotation_spec.js +1555 -701
  104. package/lib/test/unit/api_spec.js +802 -604
  105. package/lib/test/unit/bidi_spec.js +7 -7
  106. package/lib/test/unit/cff_parser_spec.js +84 -69
  107. package/lib/test/unit/clitests_helper.js +7 -9
  108. package/lib/test/unit/cmap_spec.js +74 -76
  109. package/lib/test/unit/colorspace_spec.js +166 -161
  110. package/lib/test/unit/core_utils_spec.js +211 -0
  111. package/lib/test/unit/crypto_spec.js +181 -181
  112. package/lib/test/unit/custom_spec.js +20 -22
  113. package/lib/test/unit/display_svg_spec.js +34 -39
  114. package/lib/test/unit/display_utils_spec.js +263 -0
  115. package/lib/test/unit/document_spec.js +16 -21
  116. package/lib/test/unit/encodings_spec.js +12 -34
  117. package/lib/test/unit/evaluator_spec.js +83 -83
  118. package/lib/test/unit/fetch_stream_spec.js +111 -0
  119. package/lib/test/unit/function_spec.js +206 -204
  120. package/lib/test/unit/jasmine-boot.js +46 -30
  121. package/lib/test/unit/message_handler_spec.js +173 -159
  122. package/lib/test/unit/metadata_spec.js +69 -69
  123. package/lib/test/unit/murmurhash3_spec.js +12 -12
  124. package/lib/test/unit/network_spec.js +13 -61
  125. package/lib/test/unit/network_utils_spec.js +183 -119
  126. package/lib/test/unit/node_stream_spec.js +78 -92
  127. package/lib/test/unit/parser_spec.js +172 -114
  128. package/lib/test/unit/pdf_find_controller_spec.js +55 -86
  129. package/lib/test/unit/pdf_find_utils_spec.js +32 -32
  130. package/lib/test/unit/pdf_history_spec.js +32 -32
  131. package/lib/test/unit/primitives_spec.js +140 -125
  132. package/lib/test/unit/stream_spec.js +16 -14
  133. package/lib/test/unit/test_utils.js +131 -143
  134. package/lib/test/unit/testreporter.js +19 -19
  135. package/lib/test/unit/type1_parser_spec.js +42 -42
  136. package/lib/test/unit/ui_utils_spec.js +297 -459
  137. package/lib/test/unit/unicode_spec.js +38 -38
  138. package/lib/test/unit/util_spec.js +121 -305
  139. package/lib/web/annotation_layer_builder.js +66 -103
  140. package/lib/web/app.js +1328 -1214
  141. package/lib/web/app_options.js +105 -107
  142. package/lib/web/base_viewer.js +824 -838
  143. package/lib/web/chromecom.js +165 -252
  144. package/lib/web/debugger.js +149 -205
  145. package/lib/web/download_manager.js +39 -55
  146. package/lib/web/firefox_print_service.js +37 -27
  147. package/lib/web/firefoxcom.js +212 -363
  148. package/lib/web/genericcom.js +26 -108
  149. package/lib/web/genericl10n.js +24 -153
  150. package/lib/web/grab_to_pan.js +32 -30
  151. package/lib/web/interfaces.js +80 -254
  152. package/lib/web/overlay_manager.js +70 -246
  153. package/lib/web/password_prompt.js +38 -64
  154. package/lib/web/pdf_attachment_viewer.js +113 -131
  155. package/lib/web/pdf_cursor_tools.js +75 -102
  156. package/lib/web/pdf_document_properties.js +221 -306
  157. package/lib/web/pdf_find_bar.js +136 -170
  158. package/lib/web/pdf_find_controller.js +491 -548
  159. package/lib/web/pdf_find_utils.js +13 -13
  160. package/lib/web/pdf_history.js +397 -406
  161. package/lib/web/pdf_link_service.js +304 -348
  162. package/lib/web/pdf_outline_viewer.js +140 -175
  163. package/lib/web/pdf_page_view.js +452 -523
  164. package/lib/web/pdf_presentation_mode.js +308 -357
  165. package/lib/web/pdf_print_service.js +90 -104
  166. package/lib/web/pdf_rendering_queue.js +84 -108
  167. package/lib/web/pdf_sidebar.js +276 -306
  168. package/lib/web/pdf_sidebar_resizer.js +92 -119
  169. package/lib/web/pdf_single_page_viewer.js +77 -126
  170. package/lib/web/pdf_thumbnail_view.js +276 -297
  171. package/lib/web/pdf_thumbnail_viewer.js +186 -206
  172. package/lib/web/pdf_viewer.component.js +20 -21
  173. package/lib/web/pdf_viewer.js +55 -115
  174. package/lib/web/preferences.js +82 -286
  175. package/lib/web/secondary_toolbar.js +164 -196
  176. package/lib/web/text_layer_builder.js +282 -339
  177. package/lib/web/toolbar.js +217 -210
  178. package/lib/web/ui_utils.js +267 -420
  179. package/lib/web/view_history.js +52 -226
  180. package/lib/web/viewer_compatibility.js +21 -6
  181. package/package.json +2 -9
  182. package/web/pdf_viewer.css +35 -25
  183. package/web/pdf_viewer.js +3489 -4855
  184. package/web/pdf_viewer.js.map +1 -1
  185. package/webpack.js +14 -5
  186. package/external/streams/streams-lib.js +0 -3962
  187. package/external/url/url-lib.js +0 -627
  188. package/lib/display/dom_utils.js +0 -494
  189. package/lib/shared/streams_polyfill.js +0 -43
  190. package/lib/shared/url_polyfill.js +0 -56
  191. package/lib/test/unit/dom_utils_spec.js +0 -89
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2018 Mozilla Foundation
5
+ * Copyright 2020 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -26,43 +26,43 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.PDFPrintService = PDFPrintService;
28
28
 
29
- var _ui_utils = require("./ui_utils");
29
+ var _ui_utils = require("./ui_utils.js");
30
30
 
31
- var _app = require("./app");
31
+ var _app = require("./app.js");
32
32
 
33
- var _pdf = require("../pdf");
33
+ var _app_options = require("./app_options.js");
34
34
 
35
- var activeService = null;
36
- var overlayManager = null;
35
+ let activeService = null;
36
+ let overlayManager = null;
37
37
 
38
38
  function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) {
39
- var scratchCanvas = activeService.scratchCanvas;
40
- var PRINT_RESOLUTION = 150;
41
- var PRINT_UNITS = PRINT_RESOLUTION / 72.0;
39
+ const scratchCanvas = activeService.scratchCanvas;
40
+ const PRINT_RESOLUTION = _app_options.AppOptions.get("printResolution") || 150;
41
+ const PRINT_UNITS = PRINT_RESOLUTION / 72.0;
42
42
  scratchCanvas.width = Math.floor(size.width * PRINT_UNITS);
43
43
  scratchCanvas.height = Math.floor(size.height * PRINT_UNITS);
44
- var width = Math.floor(size.width * _ui_utils.CSS_UNITS) + 'px';
45
- var height = Math.floor(size.height * _ui_utils.CSS_UNITS) + 'px';
46
- var ctx = scratchCanvas.getContext('2d');
44
+ const width = Math.floor(size.width * _ui_utils.CSS_UNITS) + "px";
45
+ const height = Math.floor(size.height * _ui_utils.CSS_UNITS) + "px";
46
+ const ctx = scratchCanvas.getContext("2d");
47
47
  ctx.save();
48
- ctx.fillStyle = 'rgb(255, 255, 255)';
48
+ ctx.fillStyle = "rgb(255, 255, 255)";
49
49
  ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height);
50
50
  ctx.restore();
51
51
  return pdfDocument.getPage(pageNumber).then(function (pdfPage) {
52
- var renderContext = {
52
+ const renderContext = {
53
53
  canvasContext: ctx,
54
54
  transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0],
55
55
  viewport: pdfPage.getViewport({
56
56
  scale: 1,
57
57
  rotation: size.rotation
58
58
  }),
59
- intent: 'print'
59
+ intent: "print"
60
60
  };
61
61
  return pdfPage.render(renderContext).promise;
62
62
  }).then(function () {
63
63
  return {
64
- width: width,
65
- height: height
64
+ width,
65
+ height
66
66
  };
67
67
  });
68
68
  }
@@ -72,35 +72,38 @@ function PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n) {
72
72
  this.pagesOverview = pagesOverview;
73
73
  this.printContainer = printContainer;
74
74
  this.l10n = l10n || _ui_utils.NullL10n;
75
- this.disableCreateObjectURL = pdfDocument.loadingParams['disableCreateObjectURL'];
75
+ this.disableCreateObjectURL = _app_options.AppOptions.get("disableCreateObjectURL");
76
76
  this.currentPage = -1;
77
- this.scratchCanvas = document.createElement('canvas');
77
+ this.scratchCanvas = document.createElement("canvas");
78
78
  }
79
79
 
80
80
  PDFPrintService.prototype = {
81
- layout: function layout() {
81
+ layout() {
82
82
  this.throwIfInactive();
83
- var body = document.querySelector('body');
84
- body.setAttribute('data-pdfjsprinting', true);
85
- var hasEqualPageSizes = this.pagesOverview.every(function (size) {
83
+ const body = document.querySelector("body");
84
+ body.setAttribute("data-pdfjsprinting", true);
85
+ const hasEqualPageSizes = this.pagesOverview.every(function (size) {
86
86
  return size.width === this.pagesOverview[0].width && size.height === this.pagesOverview[0].height;
87
87
  }, this);
88
88
 
89
89
  if (!hasEqualPageSizes) {
90
- console.warn('Not all pages have the same size. The printed ' + 'result may be incorrect!');
90
+ console.warn("Not all pages have the same size. The printed " + "result may be incorrect!");
91
91
  }
92
92
 
93
- this.pageStyleSheet = document.createElement('style');
94
- var pageSize = this.pagesOverview[0];
95
- this.pageStyleSheet.textContent = '@supports ((size:A4) and (size:1pt 1pt)) {' + '@page { size: ' + pageSize.width + 'pt ' + pageSize.height + 'pt;}' + '}';
93
+ this.pageStyleSheet = document.createElement("style");
94
+ const pageSize = this.pagesOverview[0];
95
+ this.pageStyleSheet.textContent = "@supports ((size:A4) and (size:1pt 1pt)) {" + "@page { size: " + pageSize.width + "pt " + pageSize.height + "pt;}" + "}";
96
96
  body.appendChild(this.pageStyleSheet);
97
97
  },
98
- destroy: function destroy() {
98
+
99
+ destroy() {
99
100
  if (activeService !== this) {
100
101
  return;
101
102
  }
102
103
 
103
- this.printContainer.textContent = '';
104
+ this.printContainer.textContent = "";
105
+ const body = document.querySelector("body");
106
+ body.removeAttribute("data-pdfjsprinting");
104
107
 
105
108
  if (this.pageStyleSheet) {
106
109
  this.pageStyleSheet.remove();
@@ -111,52 +114,52 @@ PDFPrintService.prototype = {
111
114
  this.scratchCanvas = null;
112
115
  activeService = null;
113
116
  ensureOverlay().then(function () {
114
- if (overlayManager.active !== 'printServiceOverlay') {
117
+ if (overlayManager.active !== "printServiceOverlay") {
115
118
  return;
116
119
  }
117
120
 
118
- overlayManager.close('printServiceOverlay');
121
+ overlayManager.close("printServiceOverlay");
119
122
  });
120
123
  },
121
- renderPages: function renderPages() {
122
- var _this = this;
123
124
 
124
- var pageCount = this.pagesOverview.length;
125
+ renderPages() {
126
+ const pageCount = this.pagesOverview.length;
125
127
 
126
- var renderNextPage = function renderNextPage(resolve, reject) {
127
- _this.throwIfInactive();
128
+ const renderNextPage = (resolve, reject) => {
129
+ this.throwIfInactive();
128
130
 
129
- if (++_this.currentPage >= pageCount) {
130
- renderProgress(pageCount, pageCount, _this.l10n);
131
+ if (++this.currentPage >= pageCount) {
132
+ renderProgress(pageCount, pageCount, this.l10n);
131
133
  resolve();
132
134
  return;
133
135
  }
134
136
 
135
- var index = _this.currentPage;
136
- renderProgress(index, pageCount, _this.l10n);
137
- renderPage(_this, _this.pdfDocument, index + 1, _this.pagesOverview[index]).then(_this.useRenderedPage.bind(_this)).then(function () {
137
+ const index = this.currentPage;
138
+ renderProgress(index, pageCount, this.l10n);
139
+ renderPage(this, this.pdfDocument, index + 1, this.pagesOverview[index]).then(this.useRenderedPage.bind(this)).then(function () {
138
140
  renderNextPage(resolve, reject);
139
141
  }, reject);
140
142
  };
141
143
 
142
144
  return new Promise(renderNextPage);
143
145
  },
144
- useRenderedPage: function useRenderedPage(printItem) {
146
+
147
+ useRenderedPage(printItem) {
145
148
  this.throwIfInactive();
146
- var img = document.createElement('img');
149
+ const img = document.createElement("img");
147
150
  img.style.width = printItem.width;
148
151
  img.style.height = printItem.height;
149
- var scratchCanvas = this.scratchCanvas;
152
+ const scratchCanvas = this.scratchCanvas;
150
153
 
151
- if ('toBlob' in scratchCanvas && !this.disableCreateObjectURL) {
154
+ if ("toBlob" in scratchCanvas && !this.disableCreateObjectURL) {
152
155
  scratchCanvas.toBlob(function (blob) {
153
- img.src = _pdf.URL.createObjectURL(blob);
156
+ img.src = URL.createObjectURL(blob);
154
157
  });
155
158
  } else {
156
159
  img.src = scratchCanvas.toDataURL();
157
160
  }
158
161
 
159
- var wrapper = document.createElement('div');
162
+ const wrapper = document.createElement("div");
160
163
  wrapper.appendChild(img);
161
164
  this.printContainer.appendChild(wrapper);
162
165
  return new Promise(function (resolve, reject) {
@@ -164,13 +167,12 @@ PDFPrintService.prototype = {
164
167
  img.onerror = reject;
165
168
  });
166
169
  },
167
- performPrint: function performPrint() {
168
- var _this2 = this;
169
170
 
171
+ performPrint() {
170
172
  this.throwIfInactive();
171
- return new Promise(function (resolve) {
172
- setTimeout(function () {
173
- if (!_this2.active) {
173
+ return new Promise(resolve => {
174
+ setTimeout(() => {
175
+ if (!this.active) {
174
176
  resolve();
175
177
  return;
176
178
  }
@@ -185,40 +187,41 @@ PDFPrintService.prototype = {
185
187
  return this === activeService;
186
188
  },
187
189
 
188
- throwIfInactive: function throwIfInactive() {
190
+ throwIfInactive() {
189
191
  if (!this.active) {
190
- throw new Error('This print request was cancelled or completed.');
192
+ throw new Error("This print request was cancelled or completed.");
191
193
  }
192
194
  }
195
+
193
196
  };
194
- var print = window.print;
197
+ const print = window.print;
195
198
 
196
- window.print = function print() {
199
+ window.print = function () {
197
200
  if (activeService) {
198
- console.warn('Ignored window.print() because of a pending print job.');
201
+ console.warn("Ignored window.print() because of a pending print job.");
199
202
  return;
200
203
  }
201
204
 
202
205
  ensureOverlay().then(function () {
203
206
  if (activeService) {
204
- overlayManager.open('printServiceOverlay');
207
+ overlayManager.open("printServiceOverlay");
205
208
  }
206
209
  });
207
210
 
208
211
  try {
209
- dispatchEvent('beforeprint');
212
+ dispatchEvent("beforeprint");
210
213
  } finally {
211
214
  if (!activeService) {
212
- console.error('Expected print service to be initialized.');
215
+ console.error("Expected print service to be initialized.");
213
216
  ensureOverlay().then(function () {
214
- if (overlayManager.active === 'printServiceOverlay') {
215
- overlayManager.close('printServiceOverlay');
217
+ if (overlayManager.active === "printServiceOverlay") {
218
+ overlayManager.close("printServiceOverlay");
216
219
  }
217
220
  });
218
221
  return;
219
222
  }
220
223
 
221
- var activeServiceOnEntry = activeService;
224
+ const activeServiceOnEntry = activeService;
222
225
  activeService.renderPages().then(function () {
223
226
  return activeServiceOnEntry.performPrint();
224
227
  }).catch(function () {}).then(function () {
@@ -230,40 +233,34 @@ window.print = function print() {
230
233
  };
231
234
 
232
235
  function dispatchEvent(eventType) {
233
- var event = document.createEvent('CustomEvent');
234
- event.initCustomEvent(eventType, false, false, 'custom');
236
+ const event = document.createEvent("CustomEvent");
237
+ event.initCustomEvent(eventType, false, false, "custom");
235
238
  window.dispatchEvent(event);
236
239
  }
237
240
 
238
241
  function abort() {
239
242
  if (activeService) {
240
243
  activeService.destroy();
241
- dispatchEvent('afterprint');
244
+ dispatchEvent("afterprint");
242
245
  }
243
246
  }
244
247
 
245
248
  function renderProgress(index, total, l10n) {
246
- var progressContainer = document.getElementById('printServiceOverlay');
247
- var progress = Math.round(100 * index / total);
248
- var progressBar = progressContainer.querySelector('progress');
249
- var progressPerc = progressContainer.querySelector('.relative-progress');
249
+ const progressContainer = document.getElementById("printServiceOverlay");
250
+ const progress = Math.round(100 * index / total);
251
+ const progressBar = progressContainer.querySelector("progress");
252
+ const progressPerc = progressContainer.querySelector(".relative-progress");
250
253
  progressBar.value = progress;
251
- l10n.get('print_progress_percent', {
252
- progress: progress
253
- }, progress + '%').then(function (msg) {
254
+ l10n.get("print_progress_percent", {
255
+ progress
256
+ }, progress + "%").then(msg => {
254
257
  progressPerc.textContent = msg;
255
258
  });
256
259
  }
257
260
 
258
- var hasAttachEvent = !!document.attachEvent;
259
- window.addEventListener('keydown', function (event) {
261
+ window.addEventListener("keydown", function (event) {
260
262
  if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) {
261
263
  window.print();
262
-
263
- if (hasAttachEvent) {
264
- return;
265
- }
266
-
267
264
  event.preventDefault();
268
265
 
269
266
  if (event.stopImmediatePropagation) {
@@ -271,45 +268,32 @@ window.addEventListener('keydown', function (event) {
271
268
  } else {
272
269
  event.stopPropagation();
273
270
  }
274
-
275
- return;
276
271
  }
277
272
  }, true);
278
273
 
279
- if (hasAttachEvent) {
280
- document.attachEvent('onkeydown', function (event) {
281
- event = event || window.event;
282
-
283
- if (event.keyCode === 80 && event.ctrlKey) {
284
- event.keyCode = 0;
285
- return false;
286
- }
287
- });
288
- }
289
-
290
- if ('onbeforeprint' in window) {
291
- var stopPropagationIfNeeded = function stopPropagationIfNeeded(event) {
292
- if (event.detail !== 'custom' && event.stopImmediatePropagation) {
274
+ if ("onbeforeprint" in window) {
275
+ const stopPropagationIfNeeded = function (event) {
276
+ if (event.detail !== "custom" && event.stopImmediatePropagation) {
293
277
  event.stopImmediatePropagation();
294
278
  }
295
279
  };
296
280
 
297
- window.addEventListener('beforeprint', stopPropagationIfNeeded);
298
- window.addEventListener('afterprint', stopPropagationIfNeeded);
281
+ window.addEventListener("beforeprint", stopPropagationIfNeeded);
282
+ window.addEventListener("afterprint", stopPropagationIfNeeded);
299
283
  }
300
284
 
301
- var overlayPromise;
285
+ let overlayPromise;
302
286
 
303
287
  function ensureOverlay() {
304
288
  if (!overlayPromise) {
305
289
  overlayManager = _app.PDFViewerApplication.overlayManager;
306
290
 
307
291
  if (!overlayManager) {
308
- throw new Error('The overlay manager has not yet been initialized.');
292
+ throw new Error("The overlay manager has not yet been initialized.");
309
293
  }
310
294
 
311
- overlayPromise = overlayManager.register('printServiceOverlay', document.getElementById('printServiceOverlay'), abort, true);
312
- document.getElementById('printCancel').onclick = abort;
295
+ overlayPromise = overlayManager.register("printServiceOverlay", document.getElementById("printServiceOverlay"), abort, true);
296
+ document.getElementById("printCancel").onclick = abort;
313
297
  }
314
298
 
315
299
  return overlayPromise;
@@ -317,12 +301,14 @@ function ensureOverlay() {
317
301
 
318
302
  _app.PDFPrintServiceFactory.instance = {
319
303
  supportsPrinting: true,
320
- createPrintService: function createPrintService(pdfDocument, pagesOverview, printContainer, l10n) {
304
+
305
+ createPrintService(pdfDocument, pagesOverview, printContainer, l10n) {
321
306
  if (activeService) {
322
- throw new Error('The print service is created and active.');
307
+ throw new Error("The print service is created and active.");
323
308
  }
324
309
 
325
310
  activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n);
326
311
  return activeService;
327
312
  }
313
+
328
314
  };
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2018 Mozilla Foundation
5
+ * Copyright 2020 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -25,15 +25,8 @@ Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
27
  exports.PDFRenderingQueue = exports.RenderingStates = void 0;
28
-
29
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
30
-
31
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
32
-
33
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
34
-
35
- var CLEANUP_TIMEOUT = 30000;
36
- var RenderingStates = {
28
+ const CLEANUP_TIMEOUT = 30000;
29
+ const RenderingStates = {
37
30
  INITIAL: 0,
38
31
  RUNNING: 1,
39
32
  PAUSED: 2,
@@ -41,12 +34,8 @@ var RenderingStates = {
41
34
  };
42
35
  exports.RenderingStates = RenderingStates;
43
36
 
44
- var PDFRenderingQueue =
45
- /*#__PURE__*/
46
- function () {
47
- function PDFRenderingQueue() {
48
- _classCallCheck(this, PDFRenderingQueue);
49
-
37
+ class PDFRenderingQueue {
38
+ constructor() {
50
39
  this.pdfViewer = null;
51
40
  this.pdfThumbnailViewer = null;
52
41
  this.onIdle = null;
@@ -56,120 +45,107 @@ function () {
56
45
  this.isThumbnailViewEnabled = false;
57
46
  }
58
47
 
59
- _createClass(PDFRenderingQueue, [{
60
- key: "setViewer",
61
- value: function setViewer(pdfViewer) {
62
- this.pdfViewer = pdfViewer;
63
- }
64
- }, {
65
- key: "setThumbnailViewer",
66
- value: function setThumbnailViewer(pdfThumbnailViewer) {
67
- this.pdfThumbnailViewer = pdfThumbnailViewer;
68
- }
69
- }, {
70
- key: "isHighestPriority",
71
- value: function isHighestPriority(view) {
72
- return this.highestPriorityPage === view.renderingId;
73
- }
74
- }, {
75
- key: "renderHighestPriority",
76
- value: function renderHighestPriority(currentlyVisiblePages) {
77
- if (this.idleTimeout) {
78
- clearTimeout(this.idleTimeout);
79
- this.idleTimeout = null;
80
- }
81
-
82
- if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {
83
- return;
84
- }
48
+ setViewer(pdfViewer) {
49
+ this.pdfViewer = pdfViewer;
50
+ }
85
51
 
86
- if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) {
87
- if (this.pdfThumbnailViewer.forceRendering()) {
88
- return;
89
- }
90
- }
52
+ setThumbnailViewer(pdfThumbnailViewer) {
53
+ this.pdfThumbnailViewer = pdfThumbnailViewer;
54
+ }
91
55
 
92
- if (this.printing) {
93
- return;
94
- }
56
+ isHighestPriority(view) {
57
+ return this.highestPriorityPage === view.renderingId;
58
+ }
95
59
 
96
- if (this.onIdle) {
97
- this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);
98
- }
60
+ renderHighestPriority(currentlyVisiblePages) {
61
+ if (this.idleTimeout) {
62
+ clearTimeout(this.idleTimeout);
63
+ this.idleTimeout = null;
99
64
  }
100
- }, {
101
- key: "getHighestPriority",
102
- value: function getHighestPriority(visible, views, scrolledDown) {
103
- var visibleViews = visible.views;
104
- var numVisible = visibleViews.length;
105
65
 
106
- if (numVisible === 0) {
107
- return false;
108
- }
109
-
110
- for (var i = 0; i < numVisible; ++i) {
111
- var view = visibleViews[i].view;
66
+ if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {
67
+ return;
68
+ }
112
69
 
113
- if (!this.isViewFinished(view)) {
114
- return view;
115
- }
70
+ if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) {
71
+ if (this.pdfThumbnailViewer.forceRendering()) {
72
+ return;
116
73
  }
74
+ }
117
75
 
118
- if (scrolledDown) {
119
- var nextPageIndex = visible.last.id;
76
+ if (this.printing) {
77
+ return;
78
+ }
120
79
 
121
- if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) {
122
- return views[nextPageIndex];
123
- }
124
- } else {
125
- var previousPageIndex = visible.first.id - 2;
80
+ if (this.onIdle) {
81
+ this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);
82
+ }
83
+ }
126
84
 
127
- if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) {
128
- return views[previousPageIndex];
129
- }
130
- }
85
+ getHighestPriority(visible, views, scrolledDown) {
86
+ const visibleViews = visible.views;
87
+ const numVisible = visibleViews.length;
131
88
 
89
+ if (numVisible === 0) {
132
90
  return null;
133
91
  }
134
- }, {
135
- key: "isViewFinished",
136
- value: function isViewFinished(view) {
137
- return view.renderingState === RenderingStates.FINISHED;
92
+
93
+ for (let i = 0; i < numVisible; ++i) {
94
+ const view = visibleViews[i].view;
95
+
96
+ if (!this.isViewFinished(view)) {
97
+ return view;
98
+ }
138
99
  }
139
- }, {
140
- key: "renderView",
141
- value: function renderView(view) {
142
- var _this = this;
143
100
 
144
- switch (view.renderingState) {
145
- case RenderingStates.FINISHED:
146
- return false;
101
+ if (scrolledDown) {
102
+ const nextPageIndex = visible.last.id;
147
103
 
148
- case RenderingStates.PAUSED:
149
- this.highestPriorityPage = view.renderingId;
150
- view.resume();
151
- break;
104
+ if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) {
105
+ return views[nextPageIndex];
106
+ }
107
+ } else {
108
+ const previousPageIndex = visible.first.id - 2;
152
109
 
153
- case RenderingStates.RUNNING:
154
- this.highestPriorityPage = view.renderingId;
155
- break;
110
+ if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) {
111
+ return views[previousPageIndex];
112
+ }
113
+ }
156
114
 
157
- case RenderingStates.INITIAL:
158
- this.highestPriorityPage = view.renderingId;
115
+ return null;
116
+ }
159
117
 
160
- var continueRendering = function continueRendering() {
161
- _this.renderHighestPriority();
162
- };
118
+ isViewFinished(view) {
119
+ return view.renderingState === RenderingStates.FINISHED;
120
+ }
163
121
 
164
- view.draw().then(continueRendering, continueRendering);
165
- break;
166
- }
122
+ renderView(view) {
123
+ switch (view.renderingState) {
124
+ case RenderingStates.FINISHED:
125
+ return false;
167
126
 
168
- return true;
127
+ case RenderingStates.PAUSED:
128
+ this.highestPriorityPage = view.renderingId;
129
+ view.resume();
130
+ break;
131
+
132
+ case RenderingStates.RUNNING:
133
+ this.highestPriorityPage = view.renderingId;
134
+ break;
135
+
136
+ case RenderingStates.INITIAL:
137
+ this.highestPriorityPage = view.renderingId;
138
+ view.draw().finally(() => {
139
+ this.renderHighestPriority();
140
+ }).catch(reason => {
141
+ console.error(`renderView: "${reason}"`);
142
+ });
143
+ break;
169
144
  }
170
- }]);
171
145
 
172
- return PDFRenderingQueue;
173
- }();
146
+ return true;
147
+ }
148
+
149
+ }
174
150
 
175
151
  exports.PDFRenderingQueue = PDFRenderingQueue;