pdfjs-dist 2.0.943 → 2.4.456

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 (192) 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 +8286 -14230
  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 +25500 -26628
  9. package/build/pdf.worker.js.map +1 -1
  10. package/build/pdf.worker.min.js +22 -1
  11. package/es5/build/pdf.js +25473 -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 +57878 -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 +407 -0
  29. package/es5/web/pdf_viewer.js +7757 -0
  30. package/es5/web/pdf_viewer.js.map +1 -0
  31. package/image_decoders/pdf.image_decoders.js +2887 -4094
  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 +855 -778
  36. package/lib/core/arithmetic_decoder.js +325 -311
  37. package/lib/core/bidi.js +117 -50
  38. package/lib/core/ccitt.js +251 -89
  39. package/lib/core/ccitt_stream.js +26 -16
  40. package/lib/core/cff_parser.js +525 -197
  41. package/lib/core/charsets.js +6 -5
  42. package/lib/core/chunked_stream.js +541 -406
  43. package/lib/core/cmap.js +368 -253
  44. package/lib/core/colorspace.js +781 -800
  45. package/lib/core/core_utils.js +152 -0
  46. package/lib/core/crypto.js +609 -422
  47. package/lib/core/document.js +649 -481
  48. package/lib/core/encodings.js +33 -24
  49. package/lib/core/evaluator.js +1471 -736
  50. package/lib/core/font_renderer.js +289 -149
  51. package/lib/core/fonts.js +1067 -413
  52. package/lib/core/function.js +517 -287
  53. package/lib/core/glyphlist.js +4529 -4527
  54. package/lib/core/image.js +232 -114
  55. package/lib/core/image_utils.js +94 -0
  56. package/lib/core/jbig2.js +711 -342
  57. package/lib/core/jbig2_stream.js +31 -19
  58. package/lib/core/jpeg_stream.js +151 -26
  59. package/lib/core/jpg.js +433 -181
  60. package/lib/core/jpx.js +551 -143
  61. package/lib/core/jpx_stream.js +40 -28
  62. package/lib/core/metrics.js +2931 -2931
  63. package/lib/core/murmurhash3.js +104 -97
  64. package/lib/core/obj.js +1561 -1053
  65. package/lib/core/operator_list.js +192 -64
  66. package/lib/core/parser.js +1162 -864
  67. package/lib/core/pattern.js +224 -75
  68. package/lib/core/pdf_manager.js +154 -285
  69. package/lib/core/primitives.js +145 -69
  70. package/lib/core/ps_parser.js +212 -162
  71. package/lib/core/standard_fonts.js +245 -244
  72. package/lib/core/stream.js +353 -81
  73. package/lib/core/type1_parser.js +218 -68
  74. package/lib/core/unicode.js +1682 -1655
  75. package/lib/core/worker.js +233 -302
  76. package/lib/core/worker_stream.js +168 -0
  77. package/lib/display/annotation_layer.js +808 -862
  78. package/lib/display/api.js +1778 -1462
  79. package/lib/display/api_compatibility.js +14 -9
  80. package/lib/display/canvas.js +463 -140
  81. package/lib/display/content_disposition.js +86 -58
  82. package/lib/display/display_utils.js +524 -0
  83. package/lib/display/fetch_stream.js +202 -274
  84. package/lib/display/font_loader.js +311 -333
  85. package/lib/display/metadata.js +98 -88
  86. package/lib/display/network.js +343 -347
  87. package/lib/display/network_utils.js +46 -26
  88. package/lib/display/node_stream.js +326 -404
  89. package/lib/display/pattern_helper.js +168 -69
  90. package/lib/display/svg.js +1296 -885
  91. package/lib/display/text_layer.js +229 -103
  92. package/lib/display/transport_stream.js +290 -250
  93. package/lib/display/webgl.js +116 -83
  94. package/lib/display/worker_options.js +6 -5
  95. package/lib/display/xml_parser.js +358 -337
  96. package/lib/examples/node/domstubs.js +95 -39
  97. package/lib/pdf.js +49 -31
  98. package/lib/pdf.worker.js +7 -5
  99. package/lib/shared/compatibility.js +3 -145
  100. package/lib/shared/is_node.js +8 -7
  101. package/lib/shared/message_handler.js +367 -314
  102. package/lib/shared/util.js +421 -415
  103. package/lib/test/unit/annotation_spec.js +1570 -690
  104. package/lib/test/unit/api_spec.js +855 -493
  105. package/lib/test/unit/bidi_spec.js +12 -12
  106. package/lib/test/unit/cff_parser_spec.js +88 -61
  107. package/lib/test/unit/clitests_helper.js +9 -12
  108. package/lib/test/unit/cmap_spec.js +140 -88
  109. package/lib/test/unit/colorspace_spec.js +204 -152
  110. package/lib/test/unit/core_utils_spec.js +211 -0
  111. package/lib/test/unit/crypto_spec.js +194 -182
  112. package/lib/test/unit/custom_spec.js +50 -64
  113. package/lib/test/unit/display_svg_spec.js +53 -38
  114. package/lib/test/unit/display_utils_spec.js +263 -0
  115. package/lib/test/unit/document_spec.js +17 -22
  116. package/lib/test/unit/encodings_spec.js +15 -57
  117. package/lib/test/unit/evaluator_spec.js +90 -83
  118. package/lib/test/unit/fetch_stream_spec.js +111 -0
  119. package/lib/test/unit/function_spec.js +219 -205
  120. package/lib/test/unit/jasmine-boot.js +68 -39
  121. package/lib/test/unit/message_handler_spec.js +187 -160
  122. package/lib/test/unit/metadata_spec.js +87 -34
  123. package/lib/test/unit/murmurhash3_spec.js +13 -13
  124. package/lib/test/unit/network_spec.js +26 -59
  125. package/lib/test/unit/network_utils_spec.js +187 -121
  126. package/lib/test/unit/node_stream_spec.js +98 -90
  127. package/lib/test/unit/parser_spec.js +173 -131
  128. package/lib/test/unit/pdf_find_controller_spec.js +148 -67
  129. package/lib/test/unit/pdf_find_utils_spec.js +35 -34
  130. package/lib/test/unit/pdf_history_spec.js +45 -33
  131. package/lib/test/unit/primitives_spec.js +161 -126
  132. package/lib/test/unit/stream_spec.js +22 -15
  133. package/lib/test/unit/test_utils.js +149 -98
  134. package/lib/test/unit/testreporter.js +36 -18
  135. package/lib/test/unit/type1_parser_spec.js +46 -44
  136. package/lib/test/unit/ui_utils_spec.js +388 -372
  137. package/lib/test/unit/unicode_spec.js +49 -46
  138. package/lib/test/unit/util_spec.js +144 -248
  139. package/lib/web/annotation_layer_builder.js +75 -95
  140. package/lib/web/app.js +1538 -1147
  141. package/lib/web/app_options.js +116 -104
  142. package/lib/web/base_viewer.js +950 -775
  143. package/lib/web/chromecom.js +217 -225
  144. package/lib/web/debugger.js +236 -148
  145. package/lib/web/download_manager.js +50 -50
  146. package/lib/web/firefox_print_service.js +51 -33
  147. package/lib/web/firefoxcom.js +225 -352
  148. package/lib/web/genericcom.js +30 -93
  149. package/lib/web/genericl10n.js +26 -143
  150. package/lib/web/grab_to_pan.js +57 -33
  151. package/lib/web/interfaces.js +105 -232
  152. package/lib/web/overlay_manager.js +73 -227
  153. package/lib/web/password_prompt.js +44 -62
  154. package/lib/web/pdf_attachment_viewer.js +118 -123
  155. package/lib/web/pdf_cursor_tools.js +89 -93
  156. package/lib/web/pdf_document_properties.js +242 -281
  157. package/lib/web/pdf_find_bar.js +157 -163
  158. package/lib/web/pdf_find_controller.js +598 -454
  159. package/lib/web/pdf_find_utils.js +32 -16
  160. package/lib/web/pdf_history.js +481 -355
  161. package/lib/web/pdf_link_service.js +355 -323
  162. package/lib/web/pdf_outline_viewer.js +167 -152
  163. package/lib/web/pdf_page_view.js +511 -457
  164. package/lib/web/pdf_presentation_mode.js +347 -335
  165. package/lib/web/pdf_print_service.js +133 -103
  166. package/lib/web/pdf_rendering_queue.js +98 -100
  167. package/lib/web/pdf_sidebar.js +323 -299
  168. package/lib/web/pdf_sidebar_resizer.js +107 -108
  169. package/lib/web/pdf_single_page_viewer.js +94 -146
  170. package/lib/web/pdf_thumbnail_view.js +319 -269
  171. package/lib/web/pdf_thumbnail_viewer.js +219 -199
  172. package/lib/web/pdf_viewer.component.js +111 -32
  173. package/lib/web/pdf_viewer.js +61 -101
  174. package/lib/web/preferences.js +87 -272
  175. package/lib/web/secondary_toolbar.js +207 -220
  176. package/lib/web/text_layer_builder.js +322 -322
  177. package/lib/web/toolbar.js +227 -180
  178. package/lib/web/ui_utils.js +476 -421
  179. package/lib/web/view_history.js +59 -208
  180. package/lib/web/viewer_compatibility.js +9 -6
  181. package/package.json +2 -9
  182. package/web/pdf_viewer.css +36 -22
  183. package/web/pdf_viewer.js +4407 -4516
  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 -441
  189. package/lib/shared/streams_polyfill.js +0 -39
  190. package/lib/shared/url_polyfill.js +0 -50
  191. package/lib/test/unit/dom_utils_spec.js +0 -89
  192. package/lib/web/dom_events.js +0 -140
@@ -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.
@@ -19,126 +19,147 @@
19
19
  * @licend The above is the entire license notice for the
20
20
  * Javascript code in this page
21
21
  */
22
- 'use strict';
22
+ "use strict";
23
23
 
24
24
  Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
- exports.PDFPrintService = undefined;
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
+
35
+ let activeService = null;
36
+ let overlayManager = null;
34
37
 
35
- var activeService = null;
36
- var overlayManager = null;
37
38
  function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) {
38
- var scratchCanvas = activeService.scratchCanvas;
39
- var PRINT_RESOLUTION = 150;
40
- 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;
41
42
  scratchCanvas.width = Math.floor(size.width * PRINT_UNITS);
42
43
  scratchCanvas.height = Math.floor(size.height * PRINT_UNITS);
43
- var width = Math.floor(size.width * _ui_utils.CSS_UNITS) + 'px';
44
- var height = Math.floor(size.height * _ui_utils.CSS_UNITS) + 'px';
45
- 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");
46
47
  ctx.save();
47
- ctx.fillStyle = 'rgb(255, 255, 255)';
48
+ ctx.fillStyle = "rgb(255, 255, 255)";
48
49
  ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height);
49
50
  ctx.restore();
50
51
  return pdfDocument.getPage(pageNumber).then(function (pdfPage) {
51
- var renderContext = {
52
+ const renderContext = {
52
53
  canvasContext: ctx,
53
54
  transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0],
54
- viewport: pdfPage.getViewport(1, size.rotation),
55
- intent: 'print'
55
+ viewport: pdfPage.getViewport({
56
+ scale: 1,
57
+ rotation: size.rotation
58
+ }),
59
+ intent: "print"
56
60
  };
57
61
  return pdfPage.render(renderContext).promise;
58
62
  }).then(function () {
59
63
  return {
60
- width: width,
61
- height: height
64
+ width,
65
+ height
62
66
  };
63
67
  });
64
68
  }
69
+
65
70
  function PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n) {
66
71
  this.pdfDocument = pdfDocument;
67
72
  this.pagesOverview = pagesOverview;
68
73
  this.printContainer = printContainer;
69
74
  this.l10n = l10n || _ui_utils.NullL10n;
70
- this.disableCreateObjectURL = pdfDocument.loadingParams['disableCreateObjectURL'];
75
+ this.disableCreateObjectURL = pdfDocument.loadingParams["disableCreateObjectURL"];
71
76
  this.currentPage = -1;
72
- this.scratchCanvas = document.createElement('canvas');
77
+ this.scratchCanvas = document.createElement("canvas");
73
78
  }
79
+
74
80
  PDFPrintService.prototype = {
75
- layout: function layout() {
81
+ layout() {
76
82
  this.throwIfInactive();
77
- var body = document.querySelector('body');
78
- body.setAttribute('data-pdfjsprinting', true);
79
- 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) {
80
86
  return size.width === this.pagesOverview[0].width && size.height === this.pagesOverview[0].height;
81
87
  }, this);
88
+
82
89
  if (!hasEqualPageSizes) {
83
- 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!");
84
91
  }
85
- this.pageStyleSheet = document.createElement('style');
86
- var pageSize = this.pagesOverview[0];
87
- this.pageStyleSheet.textContent = '@supports ((size:A4) and (size:1pt 1pt)) {' + '@page { size: ' + pageSize.width + 'pt ' + pageSize.height + 'pt;}' + '}';
92
+
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;}" + "}";
88
96
  body.appendChild(this.pageStyleSheet);
89
97
  },
90
- destroy: function destroy() {
98
+
99
+ destroy() {
91
100
  if (activeService !== this) {
92
101
  return;
93
102
  }
94
- this.printContainer.textContent = '';
103
+
104
+ this.printContainer.textContent = "";
105
+ const body = document.querySelector("body");
106
+ body.removeAttribute("data-pdfjsprinting");
107
+
95
108
  if (this.pageStyleSheet) {
96
109
  this.pageStyleSheet.remove();
97
110
  this.pageStyleSheet = null;
98
111
  }
112
+
99
113
  this.scratchCanvas.width = this.scratchCanvas.height = 0;
100
114
  this.scratchCanvas = null;
101
115
  activeService = null;
102
116
  ensureOverlay().then(function () {
103
- if (overlayManager.active !== 'printServiceOverlay') {
117
+ if (overlayManager.active !== "printServiceOverlay") {
104
118
  return;
105
119
  }
106
- overlayManager.close('printServiceOverlay');
120
+
121
+ overlayManager.close("printServiceOverlay");
107
122
  });
108
123
  },
109
- renderPages: function renderPages() {
110
- var _this = this;
111
-
112
- var pageCount = this.pagesOverview.length;
113
- var renderNextPage = function renderNextPage(resolve, reject) {
114
- _this.throwIfInactive();
115
- if (++_this.currentPage >= pageCount) {
116
- renderProgress(pageCount, pageCount, _this.l10n);
124
+
125
+ renderPages() {
126
+ const pageCount = this.pagesOverview.length;
127
+
128
+ const renderNextPage = (resolve, reject) => {
129
+ this.throwIfInactive();
130
+
131
+ if (++this.currentPage >= pageCount) {
132
+ renderProgress(pageCount, pageCount, this.l10n);
117
133
  resolve();
118
134
  return;
119
135
  }
120
- var index = _this.currentPage;
121
- renderProgress(index, pageCount, _this.l10n);
122
- renderPage(_this, _this.pdfDocument, index + 1, _this.pagesOverview[index]).then(_this.useRenderedPage.bind(_this)).then(function () {
136
+
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 () {
123
140
  renderNextPage(resolve, reject);
124
141
  }, reject);
125
142
  };
143
+
126
144
  return new Promise(renderNextPage);
127
145
  },
128
- useRenderedPage: function useRenderedPage(printItem) {
146
+
147
+ useRenderedPage(printItem) {
129
148
  this.throwIfInactive();
130
- var img = document.createElement('img');
149
+ const img = document.createElement("img");
131
150
  img.style.width = printItem.width;
132
151
  img.style.height = printItem.height;
133
- var scratchCanvas = this.scratchCanvas;
134
- if ('toBlob' in scratchCanvas && !this.disableCreateObjectURL) {
152
+ const scratchCanvas = this.scratchCanvas;
153
+
154
+ if ("toBlob" in scratchCanvas && !this.disableCreateObjectURL) {
135
155
  scratchCanvas.toBlob(function (blob) {
136
- img.src = _pdf.URL.createObjectURL(blob);
156
+ img.src = URL.createObjectURL(blob);
137
157
  });
138
158
  } else {
139
159
  img.src = scratchCanvas.toDataURL();
140
160
  }
141
- var wrapper = document.createElement('div');
161
+
162
+ const wrapper = document.createElement("div");
142
163
  wrapper.appendChild(img);
143
164
  this.printContainer.appendChild(wrapper);
144
165
  return new Promise(function (resolve, reject) {
@@ -146,16 +167,16 @@ PDFPrintService.prototype = {
146
167
  img.onerror = reject;
147
168
  });
148
169
  },
149
- performPrint: function performPrint() {
150
- var _this2 = this;
151
170
 
171
+ performPrint() {
152
172
  this.throwIfInactive();
153
- return new Promise(function (resolve) {
154
- setTimeout(function () {
155
- if (!_this2.active) {
173
+ return new Promise(resolve => {
174
+ setTimeout(() => {
175
+ if (!this.active) {
156
176
  resolve();
157
177
  return;
158
178
  }
179
+
159
180
  print.call(window);
160
181
  setTimeout(resolve, 20);
161
182
  }, 0);
@@ -165,36 +186,42 @@ PDFPrintService.prototype = {
165
186
  get active() {
166
187
  return this === activeService;
167
188
  },
168
- throwIfInactive: function throwIfInactive() {
189
+
190
+ throwIfInactive() {
169
191
  if (!this.active) {
170
- throw new Error('This print request was cancelled or completed.');
192
+ throw new Error("This print request was cancelled or completed.");
171
193
  }
172
194
  }
195
+
173
196
  };
174
- var print = window.print;
175
- window.print = function print() {
197
+ const print = window.print;
198
+
199
+ window.print = function () {
176
200
  if (activeService) {
177
- console.warn('Ignored window.print() because of a pending print job.');
201
+ console.warn("Ignored window.print() because of a pending print job.");
178
202
  return;
179
203
  }
204
+
180
205
  ensureOverlay().then(function () {
181
206
  if (activeService) {
182
- overlayManager.open('printServiceOverlay');
207
+ overlayManager.open("printServiceOverlay");
183
208
  }
184
209
  });
210
+
185
211
  try {
186
- dispatchEvent('beforeprint');
212
+ dispatchEvent("beforeprint");
187
213
  } finally {
188
214
  if (!activeService) {
189
- console.error('Expected print service to be initialized.');
215
+ console.error("Expected print service to be initialized.");
190
216
  ensureOverlay().then(function () {
191
- if (overlayManager.active === 'printServiceOverlay') {
192
- overlayManager.close('printServiceOverlay');
217
+ if (overlayManager.active === "printServiceOverlay") {
218
+ overlayManager.close("printServiceOverlay");
193
219
  }
194
220
  });
195
221
  return;
196
222
  }
197
- var activeServiceOnEntry = activeService;
223
+
224
+ const activeServiceOnEntry = activeService;
198
225
  activeService.renderPages().then(function () {
199
226
  return activeServiceOnEntry.performPrint();
200
227
  }).catch(function () {}).then(function () {
@@ -204,81 +231,84 @@ window.print = function print() {
204
231
  });
205
232
  }
206
233
  };
234
+
207
235
  function dispatchEvent(eventType) {
208
- var event = document.createEvent('CustomEvent');
209
- event.initCustomEvent(eventType, false, false, 'custom');
236
+ const event = document.createEvent("CustomEvent");
237
+ event.initCustomEvent(eventType, false, false, "custom");
210
238
  window.dispatchEvent(event);
211
239
  }
240
+
212
241
  function abort() {
213
242
  if (activeService) {
214
243
  activeService.destroy();
215
- dispatchEvent('afterprint');
244
+ dispatchEvent("afterprint");
216
245
  }
217
246
  }
247
+
218
248
  function renderProgress(index, total, l10n) {
219
- var progressContainer = document.getElementById('printServiceOverlay');
220
- var progress = Math.round(100 * index / total);
221
- var progressBar = progressContainer.querySelector('progress');
222
- 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");
223
253
  progressBar.value = progress;
224
- l10n.get('print_progress_percent', { progress: progress }, progress + '%').then(function (msg) {
254
+ l10n.get("print_progress_percent", {
255
+ progress
256
+ }, progress + "%").then(msg => {
225
257
  progressPerc.textContent = msg;
226
258
  });
227
259
  }
228
- var hasAttachEvent = !!document.attachEvent;
229
- window.addEventListener('keydown', function (event) {
260
+
261
+ window.addEventListener("keydown", function (event) {
230
262
  if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) {
231
263
  window.print();
232
- if (hasAttachEvent) {
233
- return;
234
- }
235
264
  event.preventDefault();
265
+
236
266
  if (event.stopImmediatePropagation) {
237
267
  event.stopImmediatePropagation();
238
268
  } else {
239
269
  event.stopPropagation();
240
270
  }
241
- return;
242
271
  }
243
272
  }, true);
244
- if (hasAttachEvent) {
245
- document.attachEvent('onkeydown', function (event) {
246
- event = event || window.event;
247
- if (event.keyCode === 80 && event.ctrlKey) {
248
- event.keyCode = 0;
249
- return false;
250
- }
251
- });
252
- }
253
- if ('onbeforeprint' in window) {
254
- var stopPropagationIfNeeded = function stopPropagationIfNeeded(event) {
255
- if (event.detail !== 'custom' && event.stopImmediatePropagation) {
273
+
274
+ if ("onbeforeprint" in window) {
275
+ const stopPropagationIfNeeded = function (event) {
276
+ if (event.detail !== "custom" && event.stopImmediatePropagation) {
256
277
  event.stopImmediatePropagation();
257
278
  }
258
279
  };
259
- window.addEventListener('beforeprint', stopPropagationIfNeeded);
260
- window.addEventListener('afterprint', stopPropagationIfNeeded);
280
+
281
+ window.addEventListener("beforeprint", stopPropagationIfNeeded);
282
+ window.addEventListener("afterprint", stopPropagationIfNeeded);
261
283
  }
262
- var overlayPromise = void 0;
284
+
285
+ let overlayPromise;
286
+
263
287
  function ensureOverlay() {
264
288
  if (!overlayPromise) {
265
289
  overlayManager = _app.PDFViewerApplication.overlayManager;
290
+
266
291
  if (!overlayManager) {
267
- throw new Error('The overlay manager has not yet been initialized.');
292
+ throw new Error("The overlay manager has not yet been initialized.");
268
293
  }
269
- overlayPromise = overlayManager.register('printServiceOverlay', document.getElementById('printServiceOverlay'), abort, true);
270
- document.getElementById('printCancel').onclick = abort;
294
+
295
+ overlayPromise = overlayManager.register("printServiceOverlay", document.getElementById("printServiceOverlay"), abort, true);
296
+ document.getElementById("printCancel").onclick = abort;
271
297
  }
298
+
272
299
  return overlayPromise;
273
300
  }
301
+
274
302
  _app.PDFPrintServiceFactory.instance = {
275
303
  supportsPrinting: true,
276
- createPrintService: function createPrintService(pdfDocument, pagesOverview, printContainer, l10n) {
304
+
305
+ createPrintService(pdfDocument, pagesOverview, printContainer, l10n) {
277
306
  if (activeService) {
278
- throw new Error('The print service is created and active.');
307
+ throw new Error("The print service is created and active.");
279
308
  }
309
+
280
310
  activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n);
281
311
  return activeService;
282
312
  }
283
- };
284
- exports.PDFPrintService = PDFPrintService;
313
+
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.
@@ -24,23 +24,18 @@
24
24
  Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
-
28
- var _createClass = function () { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
29
-
30
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
31
-
32
- var CLEANUP_TIMEOUT = 30000;
33
- var RenderingStates = {
27
+ exports.PDFRenderingQueue = exports.RenderingStates = void 0;
28
+ const CLEANUP_TIMEOUT = 30000;
29
+ const RenderingStates = {
34
30
  INITIAL: 0,
35
31
  RUNNING: 1,
36
32
  PAUSED: 2,
37
33
  FINISHED: 3
38
34
  };
35
+ exports.RenderingStates = RenderingStates;
39
36
 
40
- var PDFRenderingQueue = function () {
41
- function PDFRenderingQueue() {
42
- _classCallCheck(this, PDFRenderingQueue);
43
-
37
+ class PDFRenderingQueue {
38
+ constructor() {
44
39
  this.pdfViewer = null;
45
40
  this.pdfThumbnailViewer = null;
46
41
  this.onIdle = null;
@@ -50,104 +45,107 @@ var PDFRenderingQueue = function () {
50
45
  this.isThumbnailViewEnabled = false;
51
46
  }
52
47
 
53
- _createClass(PDFRenderingQueue, [{
54
- key: "setViewer",
55
- value: function setViewer(pdfViewer) {
56
- this.pdfViewer = pdfViewer;
57
- }
58
- }, {
59
- key: "setThumbnailViewer",
60
- value: function setThumbnailViewer(pdfThumbnailViewer) {
61
- this.pdfThumbnailViewer = pdfThumbnailViewer;
48
+ setViewer(pdfViewer) {
49
+ this.pdfViewer = pdfViewer;
50
+ }
51
+
52
+ setThumbnailViewer(pdfThumbnailViewer) {
53
+ this.pdfThumbnailViewer = pdfThumbnailViewer;
54
+ }
55
+
56
+ isHighestPriority(view) {
57
+ return this.highestPriorityPage === view.renderingId;
58
+ }
59
+
60
+ renderHighestPriority(currentlyVisiblePages) {
61
+ if (this.idleTimeout) {
62
+ clearTimeout(this.idleTimeout);
63
+ this.idleTimeout = null;
62
64
  }
63
- }, {
64
- key: "isHighestPriority",
65
- value: function isHighestPriority(view) {
66
- return this.highestPriorityPage === view.renderingId;
65
+
66
+ if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {
67
+ return;
67
68
  }
68
- }, {
69
- key: "renderHighestPriority",
70
- value: function renderHighestPriority(currentlyVisiblePages) {
71
- if (this.idleTimeout) {
72
- clearTimeout(this.idleTimeout);
73
- this.idleTimeout = null;
74
- }
75
- if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {
76
- return;
77
- }
78
- if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) {
79
- if (this.pdfThumbnailViewer.forceRendering()) {
80
- return;
81
- }
82
- }
83
- if (this.printing) {
69
+
70
+ if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) {
71
+ if (this.pdfThumbnailViewer.forceRendering()) {
84
72
  return;
85
73
  }
86
- if (this.onIdle) {
87
- this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);
88
- }
89
74
  }
90
- }, {
91
- key: "getHighestPriority",
92
- value: function getHighestPriority(visible, views, scrolledDown) {
93
- var visibleViews = visible.views;
94
- var numVisible = visibleViews.length;
95
- if (numVisible === 0) {
96
- return false;
97
- }
98
- for (var i = 0; i < numVisible; ++i) {
99
- var view = visibleViews[i].view;
100
- if (!this.isViewFinished(view)) {
101
- return view;
102
- }
103
- }
104
- if (scrolledDown) {
105
- var nextPageIndex = visible.last.id;
106
- if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) {
107
- return views[nextPageIndex];
108
- }
109
- } else {
110
- var previousPageIndex = visible.first.id - 2;
111
- if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) {
112
- return views[previousPageIndex];
113
- }
114
- }
75
+
76
+ if (this.printing) {
77
+ return;
78
+ }
79
+
80
+ if (this.onIdle) {
81
+ this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);
82
+ }
83
+ }
84
+
85
+ getHighestPriority(visible, views, scrolledDown) {
86
+ const visibleViews = visible.views;
87
+ const numVisible = visibleViews.length;
88
+
89
+ if (numVisible === 0) {
115
90
  return null;
116
91
  }
117
- }, {
118
- key: "isViewFinished",
119
- value: function isViewFinished(view) {
120
- 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
+ }
121
99
  }
122
- }, {
123
- key: "renderView",
124
- value: function renderView(view) {
125
- var _this = this;
126
-
127
- switch (view.renderingState) {
128
- case RenderingStates.FINISHED:
129
- return false;
130
- case RenderingStates.PAUSED:
131
- this.highestPriorityPage = view.renderingId;
132
- view.resume();
133
- break;
134
- case RenderingStates.RUNNING:
135
- this.highestPriorityPage = view.renderingId;
136
- break;
137
- case RenderingStates.INITIAL:
138
- this.highestPriorityPage = view.renderingId;
139
- var continueRendering = function continueRendering() {
140
- _this.renderHighestPriority();
141
- };
142
- view.draw().then(continueRendering, continueRendering);
143
- break;
100
+
101
+ if (scrolledDown) {
102
+ const nextPageIndex = visible.last.id;
103
+
104
+ if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) {
105
+ return views[nextPageIndex];
106
+ }
107
+ } else {
108
+ const previousPageIndex = visible.first.id - 2;
109
+
110
+ if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) {
111
+ return views[previousPageIndex];
144
112
  }
145
- return true;
146
113
  }
147
- }]);
148
114
 
149
- return PDFRenderingQueue;
150
- }();
115
+ return null;
116
+ }
117
+
118
+ isViewFinished(view) {
119
+ return view.renderingState === RenderingStates.FINISHED;
120
+ }
121
+
122
+ renderView(view) {
123
+ switch (view.renderingState) {
124
+ case RenderingStates.FINISHED:
125
+ return false;
126
+
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;
144
+ }
145
+
146
+ return true;
147
+ }
148
+
149
+ }
151
150
 
152
- exports.RenderingStates = RenderingStates;
153
151
  exports.PDFRenderingQueue = PDFRenderingQueue;