pdfjs-dist 2.3.200 → 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 (185) hide show
  1. package/README.md +4 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +6499 -17971
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +22 -1
  6. package/build/pdf.worker.entry.js +5 -3
  7. package/build/pdf.worker.js +19303 -29896
  8. package/build/pdf.worker.js.map +1 -1
  9. package/build/pdf.worker.min.js +22 -1
  10. package/es5/build/pdf.js +25473 -0
  11. package/es5/build/pdf.js.map +1 -0
  12. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  13. package/es5/build/pdf.worker.js +57878 -0
  14. package/es5/build/pdf.worker.js.map +1 -0
  15. package/es5/web/images/annotation-check.svg +11 -0
  16. package/es5/web/images/annotation-comment.svg +16 -0
  17. package/es5/web/images/annotation-help.svg +26 -0
  18. package/es5/web/images/annotation-insert.svg +10 -0
  19. package/es5/web/images/annotation-key.svg +11 -0
  20. package/es5/web/images/annotation-newparagraph.svg +11 -0
  21. package/es5/web/images/annotation-noicon.svg +7 -0
  22. package/es5/web/images/annotation-note.svg +42 -0
  23. package/es5/web/images/annotation-paragraph.svg +16 -0
  24. package/es5/web/images/loading-icon.gif +0 -0
  25. package/es5/web/images/shadow.png +0 -0
  26. package/es5/web/images/texture.png +0 -0
  27. package/es5/web/pdf_viewer.css +407 -0
  28. package/es5/web/pdf_viewer.js +7757 -0
  29. package/es5/web/pdf_viewer.js.map +1 -0
  30. package/image_decoders/pdf.image_decoders.js +1333 -4839
  31. package/image_decoders/pdf.image_decoders.js.map +1 -1
  32. package/image_decoders/pdf.image_decoders.min.js +22 -1
  33. package/lib/README.md +7 -0
  34. package/lib/core/annotation.js +683 -1066
  35. package/lib/core/arithmetic_decoder.js +81 -97
  36. package/lib/core/bidi.js +54 -46
  37. package/lib/core/ccitt.js +88 -81
  38. package/lib/core/ccitt_stream.js +15 -14
  39. package/lib/core/cff_parser.js +196 -193
  40. package/lib/core/charsets.js +4 -4
  41. package/lib/core/chunked_stream.js +441 -569
  42. package/lib/core/cmap.js +220 -279
  43. package/lib/core/colorspace.js +699 -863
  44. package/lib/core/core_utils.js +59 -80
  45. package/lib/core/crypto.js +379 -437
  46. package/lib/core/document.js +564 -673
  47. package/lib/core/encodings.js +15 -15
  48. package/lib/core/evaluator.js +983 -889
  49. package/lib/core/font_renderer.js +128 -171
  50. package/lib/core/fonts.js +451 -400
  51. package/lib/core/function.js +289 -285
  52. package/lib/core/glyphlist.js +4527 -4527
  53. package/lib/core/image.js +138 -117
  54. package/lib/core/image_utils.js +46 -63
  55. package/lib/core/jbig2.js +324 -332
  56. package/lib/core/jbig2_stream.js +18 -17
  57. package/lib/core/jpeg_stream.js +133 -24
  58. package/lib/core/jpg.js +238 -210
  59. package/lib/core/jpx.js +158 -157
  60. package/lib/core/jpx_stream.js +28 -28
  61. package/lib/core/metrics.js +2928 -2928
  62. package/lib/core/murmurhash3.js +87 -102
  63. package/lib/core/obj.js +1111 -1302
  64. package/lib/core/operator_list.js +55 -42
  65. package/lib/core/parser.js +956 -987
  66. package/lib/core/pattern.js +69 -69
  67. package/lib/core/pdf_manager.js +149 -316
  68. package/lib/core/primitives.js +45 -77
  69. package/lib/core/ps_parser.js +175 -214
  70. package/lib/core/standard_fonts.js +237 -236
  71. package/lib/core/stream.js +83 -77
  72. package/lib/core/type1_parser.js +78 -68
  73. package/lib/core/unicode.js +1654 -1654
  74. package/lib/core/worker.js +148 -196
  75. package/lib/core/worker_stream.js +101 -210
  76. package/lib/display/annotation_layer.js +733 -1155
  77. package/lib/display/api.js +1539 -1928
  78. package/lib/display/api_compatibility.js +10 -8
  79. package/lib/display/canvas.js +159 -158
  80. package/lib/display/content_disposition.js +36 -55
  81. package/lib/display/display_utils.js +298 -551
  82. package/lib/display/fetch_stream.js +181 -305
  83. package/lib/display/font_loader.js +273 -416
  84. package/lib/display/metadata.js +86 -98
  85. package/lib/display/network.js +376 -511
  86. package/lib/display/network_utils.js +20 -19
  87. package/lib/display/node_stream.js +276 -460
  88. package/lib/display/pattern_helper.js +76 -44
  89. package/lib/display/svg.js +1137 -1405
  90. package/lib/display/text_layer.js +75 -82
  91. package/lib/display/transport_stream.js +236 -374
  92. package/lib/display/webgl.js +70 -83
  93. package/lib/display/worker_options.js +3 -3
  94. package/lib/display/xml_parser.js +303 -392
  95. package/lib/examples/node/domstubs.js +37 -37
  96. package/lib/pdf.js +22 -21
  97. package/lib/pdf.worker.js +5 -5
  98. package/lib/shared/compatibility.js +2 -251
  99. package/lib/shared/is_node.js +7 -6
  100. package/lib/shared/message_handler.js +222 -194
  101. package/lib/shared/util.js +269 -405
  102. package/lib/test/unit/annotation_spec.js +1089 -1014
  103. package/lib/test/unit/api_spec.js +617 -544
  104. package/lib/test/unit/bidi_spec.js +7 -7
  105. package/lib/test/unit/cff_parser_spec.js +63 -62
  106. package/lib/test/unit/clitests_helper.js +7 -9
  107. package/lib/test/unit/cmap_spec.js +84 -86
  108. package/lib/test/unit/colorspace_spec.js +154 -154
  109. package/lib/test/unit/core_utils_spec.js +125 -105
  110. package/lib/test/unit/crypto_spec.js +181 -181
  111. package/lib/test/unit/custom_spec.js +22 -24
  112. package/lib/test/unit/display_svg_spec.js +35 -36
  113. package/lib/test/unit/display_utils_spec.js +139 -149
  114. package/lib/test/unit/document_spec.js +16 -16
  115. package/lib/test/unit/encodings_spec.js +12 -34
  116. package/lib/test/unit/evaluator_spec.js +81 -95
  117. package/lib/test/unit/fetch_stream_spec.js +30 -30
  118. package/lib/test/unit/function_spec.js +206 -204
  119. package/lib/test/unit/jasmine-boot.js +48 -32
  120. package/lib/test/unit/message_handler_spec.js +172 -162
  121. package/lib/test/unit/metadata_spec.js +69 -69
  122. package/lib/test/unit/murmurhash3_spec.js +12 -12
  123. package/lib/test/unit/network_spec.js +12 -12
  124. package/lib/test/unit/network_utils_spec.js +152 -152
  125. package/lib/test/unit/node_stream_spec.js +74 -90
  126. package/lib/test/unit/parser_spec.js +107 -113
  127. package/lib/test/unit/pdf_find_controller_spec.js +55 -86
  128. package/lib/test/unit/pdf_find_utils_spec.js +32 -32
  129. package/lib/test/unit/pdf_history_spec.js +32 -32
  130. package/lib/test/unit/primitives_spec.js +117 -115
  131. package/lib/test/unit/stream_spec.js +16 -14
  132. package/lib/test/unit/test_utils.js +119 -285
  133. package/lib/test/unit/testreporter.js +19 -19
  134. package/lib/test/unit/type1_parser_spec.js +41 -41
  135. package/lib/test/unit/ui_utils_spec.js +318 -426
  136. package/lib/test/unit/unicode_spec.js +42 -42
  137. package/lib/test/unit/util_spec.js +122 -143
  138. package/lib/web/annotation_layer_builder.js +66 -103
  139. package/lib/web/app.js +1166 -1196
  140. package/lib/web/app_options.js +61 -77
  141. package/lib/web/base_viewer.js +804 -850
  142. package/lib/web/chromecom.js +164 -249
  143. package/lib/web/debugger.js +149 -205
  144. package/lib/web/download_manager.js +38 -57
  145. package/lib/web/firefox_print_service.js +35 -30
  146. package/lib/web/firefoxcom.js +175 -374
  147. package/lib/web/genericcom.js +26 -108
  148. package/lib/web/genericl10n.js +24 -153
  149. package/lib/web/grab_to_pan.js +30 -30
  150. package/lib/web/interfaces.js +80 -258
  151. package/lib/web/overlay_manager.js +70 -246
  152. package/lib/web/password_prompt.js +38 -64
  153. package/lib/web/pdf_attachment_viewer.js +105 -130
  154. package/lib/web/pdf_cursor_tools.js +75 -102
  155. package/lib/web/pdf_document_properties.js +227 -376
  156. package/lib/web/pdf_find_bar.js +137 -171
  157. package/lib/web/pdf_find_controller.js +492 -549
  158. package/lib/web/pdf_find_utils.js +13 -13
  159. package/lib/web/pdf_history.js +395 -406
  160. package/lib/web/pdf_link_service.js +302 -349
  161. package/lib/web/pdf_outline_viewer.js +148 -209
  162. package/lib/web/pdf_page_view.js +449 -507
  163. package/lib/web/pdf_presentation_mode.js +304 -357
  164. package/lib/web/pdf_print_service.js +90 -104
  165. package/lib/web/pdf_rendering_queue.js +87 -108
  166. package/lib/web/pdf_sidebar.js +264 -304
  167. package/lib/web/pdf_sidebar_resizer.js +92 -119
  168. package/lib/web/pdf_single_page_viewer.js +77 -126
  169. package/lib/web/pdf_thumbnail_view.js +276 -297
  170. package/lib/web/pdf_thumbnail_viewer.js +186 -206
  171. package/lib/web/pdf_viewer.component.js +20 -21
  172. package/lib/web/pdf_viewer.js +55 -115
  173. package/lib/web/preferences.js +66 -273
  174. package/lib/web/secondary_toolbar.js +164 -196
  175. package/lib/web/text_layer_builder.js +284 -317
  176. package/lib/web/toolbar.js +216 -211
  177. package/lib/web/ui_utils.js +303 -404
  178. package/lib/web/view_history.js +49 -222
  179. package/lib/web/viewer_compatibility.js +7 -5
  180. package/package.json +2 -9
  181. package/web/pdf_viewer.css +25 -18
  182. package/web/pdf_viewer.js +3481 -4764
  183. package/web/pdf_viewer.js.map +1 -1
  184. package/webpack.js +14 -5
  185. package/lib/shared/streams_polyfill.js +0 -43
@@ -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 2019 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.
@@ -28,128 +28,41 @@ exports.getDocument = getDocument;
28
28
  exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;
29
29
  exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;
30
30
 
31
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
31
+ var _util = require("../shared/util.js");
32
32
 
33
- var _util = require("../shared/util");
33
+ var _display_utils = require("./display_utils.js");
34
34
 
35
- var _display_utils = require("./display_utils");
35
+ var _font_loader = require("./font_loader.js");
36
36
 
37
- var _font_loader = require("./font_loader");
37
+ var _api_compatibility = require("./api_compatibility.js");
38
38
 
39
- var _api_compatibility = require("./api_compatibility");
39
+ var _canvas = require("./canvas.js");
40
40
 
41
- var _canvas = require("./canvas");
41
+ var _worker_options = require("./worker_options.js");
42
42
 
43
- var _global_scope = _interopRequireDefault(require("../shared/global_scope"));
43
+ var _is_node = require("../shared/is_node.js");
44
44
 
45
- var _worker_options = require("./worker_options");
45
+ var _message_handler = require("../shared/message_handler.js");
46
46
 
47
- var _message_handler = require("../shared/message_handler");
47
+ var _metadata = require("./metadata.js");
48
48
 
49
- var _metadata = require("./metadata");
49
+ var _transport_stream = require("./transport_stream.js");
50
50
 
51
- var _transport_stream = require("./transport_stream");
51
+ var _webgl = require("./webgl.js");
52
52
 
53
- var _webgl = require("./webgl");
54
-
55
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
56
-
57
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
58
-
59
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
60
-
61
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
62
-
63
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
64
-
65
- function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
66
-
67
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
68
-
69
- function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
70
-
71
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
72
-
73
- function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
74
-
75
- function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
76
-
77
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
78
-
79
- 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); } }
80
-
81
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
82
-
83
- function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
84
-
85
- var DEFAULT_RANGE_CHUNK_SIZE = 65536;
86
- var RENDERING_CANCELLED_TIMEOUT = 100;
87
- var isWorkerDisabled = false;
88
- var fallbackWorkerSrc;
89
- var fakeWorkerFilesLoader = null;
90
- {
91
- var useRequireEnsure = false;
92
-
93
- if (typeof window === 'undefined') {
94
- isWorkerDisabled = true;
95
-
96
- if (typeof require.ensure === 'undefined') {
97
- require.ensure = require('node-ensure');
98
- }
99
-
100
- useRequireEnsure = true;
101
- } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') {
102
- useRequireEnsure = true;
103
- }
104
-
105
- if (typeof requirejs !== 'undefined' && requirejs.toUrl) {
106
- fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');
107
- }
108
-
109
- var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load;
110
- fakeWorkerFilesLoader = useRequireEnsure ? function () {
111
- return new Promise(function (resolve, reject) {
112
- require.ensure([], function () {
113
- try {
114
- var worker;
115
- worker = require('../pdf.worker.js');
116
- resolve(worker.WorkerMessageHandler);
117
- } catch (ex) {
118
- reject(ex);
119
- }
120
- }, reject, 'pdfjsWorker');
121
- });
122
- } : dynamicLoaderSupported ? function () {
123
- return new Promise(function (resolve, reject) {
124
- requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) {
125
- try {
126
- resolve(worker.WorkerMessageHandler);
127
- } catch (ex) {
128
- reject(ex);
129
- }
130
- }, reject);
131
- });
132
- } : null;
133
-
134
- if (!fallbackWorkerSrc && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && 'currentScript' in document) {
135
- var pdfjsFilePath = document.currentScript && document.currentScript.src;
136
-
137
- if (pdfjsFilePath) {
138
- fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2');
139
- }
140
- }
141
- }
142
- var createPDFNetworkStream;
53
+ const DEFAULT_RANGE_CHUNK_SIZE = 65536;
54
+ const RENDERING_CANCELLED_TIMEOUT = 100;
55
+ let createPDFNetworkStream;
143
56
 
144
57
  function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {
145
58
  createPDFNetworkStream = pdfNetworkStreamFactory;
146
59
  }
147
60
 
148
61
  function getDocument(src) {
149
- var task = new PDFDocumentLoadingTask();
150
- var source;
62
+ const task = new PDFDocumentLoadingTask();
63
+ let source;
151
64
 
152
- if (typeof src === 'string') {
65
+ if (typeof src === "string") {
153
66
  source = {
154
67
  url: src
155
68
  };
@@ -162,42 +75,42 @@ function getDocument(src) {
162
75
  range: src
163
76
  };
164
77
  } else {
165
- if (_typeof(src) !== 'object') {
166
- throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object');
78
+ if (typeof src !== "object") {
79
+ throw new Error("Invalid parameter in getDocument, " + "need either Uint8Array, string or a parameter object");
167
80
  }
168
81
 
169
82
  if (!src.url && !src.data && !src.range) {
170
- throw new Error('Invalid parameter object: need either .data, .range or .url');
83
+ throw new Error("Invalid parameter object: need either .data, .range or .url");
171
84
  }
172
85
 
173
86
  source = src;
174
87
  }
175
88
 
176
- var params = Object.create(null);
177
- var rangeTransport = null,
89
+ const params = Object.create(null);
90
+ let rangeTransport = null,
178
91
  worker = null;
179
92
 
180
- for (var key in source) {
181
- if (key === 'url' && typeof window !== 'undefined') {
93
+ for (const key in source) {
94
+ if (key === "url" && typeof window !== "undefined") {
182
95
  params[key] = new URL(source[key], window.location).href;
183
96
  continue;
184
- } else if (key === 'range') {
97
+ } else if (key === "range") {
185
98
  rangeTransport = source[key];
186
99
  continue;
187
- } else if (key === 'worker') {
100
+ } else if (key === "worker") {
188
101
  worker = source[key];
189
102
  continue;
190
- } else if (key === 'data' && !(source[key] instanceof Uint8Array)) {
191
- var pdfBytes = source[key];
103
+ } else if (key === "data" && !(source[key] instanceof Uint8Array)) {
104
+ const pdfBytes = source[key];
192
105
 
193
- if (typeof pdfBytes === 'string') {
106
+ if (typeof pdfBytes === "string") {
194
107
  params[key] = (0, _util.stringToBytes)(pdfBytes);
195
- } else if (_typeof(pdfBytes) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) {
108
+ } else if (typeof pdfBytes === "object" && pdfBytes !== null && !isNaN(pdfBytes.length)) {
196
109
  params[key] = new Uint8Array(pdfBytes);
197
110
  } else if ((0, _util.isArrayBuffer)(pdfBytes)) {
198
111
  params[key] = new Uint8Array(pdfBytes);
199
112
  } else {
200
- throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.');
113
+ throw new Error("Invalid PDF binary data: either typed array, " + "string or array-like object is expected in the " + "data property.");
201
114
  }
202
115
 
203
116
  continue;
@@ -210,7 +123,7 @@ function getDocument(src) {
210
123
  params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory;
211
124
  params.ignoreErrors = params.stopAtErrors !== true;
212
125
  params.pdfBug = params.pdfBug === true;
213
- var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding);
126
+ const NativeImageDecoderValues = Object.values(_util.NativeImageDecoding);
214
127
 
215
128
  if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {
216
129
  params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE;
@@ -220,34 +133,34 @@ function getDocument(src) {
220
133
  params.maxImageSize = -1;
221
134
  }
222
135
 
223
- if (typeof params.isEvalSupported !== 'boolean') {
136
+ if (typeof params.isEvalSupported !== "boolean") {
224
137
  params.isEvalSupported = true;
225
138
  }
226
139
 
227
- if (typeof params.disableFontFace !== 'boolean') {
140
+ if (typeof params.disableFontFace !== "boolean") {
228
141
  params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;
229
142
  }
230
143
 
231
- if (typeof params.disableRange !== 'boolean') {
144
+ if (typeof params.disableRange !== "boolean") {
232
145
  params.disableRange = false;
233
146
  }
234
147
 
235
- if (typeof params.disableStream !== 'boolean') {
148
+ if (typeof params.disableStream !== "boolean") {
236
149
  params.disableStream = false;
237
150
  }
238
151
 
239
- if (typeof params.disableAutoFetch !== 'boolean') {
152
+ if (typeof params.disableAutoFetch !== "boolean") {
240
153
  params.disableAutoFetch = false;
241
154
  }
242
155
 
243
- if (typeof params.disableCreateObjectURL !== 'boolean') {
156
+ if (typeof params.disableCreateObjectURL !== "boolean") {
244
157
  params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false;
245
158
  }
246
159
 
247
160
  (0, _util.setVerbosityLevel)(params.verbosity);
248
161
 
249
162
  if (!worker) {
250
- var workerParams = {
163
+ const workerParams = {
251
164
  verbosity: params.verbosity,
252
165
  port: _worker_options.GlobalWorkerOptions.workerPort
253
166
  };
@@ -255,18 +168,18 @@ function getDocument(src) {
255
168
  task._worker = worker;
256
169
  }
257
170
 
258
- var docId = task.docId;
171
+ const docId = task.docId;
259
172
  worker.promise.then(function () {
260
173
  if (task.destroyed) {
261
- throw new Error('Loading aborted');
174
+ throw new Error("Loading aborted");
262
175
  }
263
176
 
264
177
  return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) {
265
178
  if (task.destroyed) {
266
- throw new Error('Loading aborted');
179
+ throw new Error("Loading aborted");
267
180
  }
268
181
 
269
- var networkStream;
182
+ let networkStream;
270
183
 
271
184
  if (rangeTransport) {
272
185
  networkStream = new _transport_stream.PDFDataTransportStream({
@@ -288,19 +201,19 @@ function getDocument(src) {
288
201
  });
289
202
  }
290
203
 
291
- var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);
204
+ const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);
292
205
  messageHandler.postMessageTransfers = worker.postMessageTransfers;
293
- var transport = new WorkerTransport(messageHandler, task, networkStream, params);
206
+ const transport = new WorkerTransport(messageHandler, task, networkStream, params);
294
207
  task._transport = transport;
295
- messageHandler.send('Ready', null);
208
+ messageHandler.send("Ready", null);
296
209
  });
297
- })["catch"](task._capability.reject);
210
+ }).catch(task._capability.reject);
298
211
  return task;
299
212
  }
300
213
 
301
214
  function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
302
215
  if (worker.destroyed) {
303
- return Promise.reject(new Error('Worker was destroyed'));
216
+ return Promise.reject(new Error("Worker was destroyed"));
304
217
  }
305
218
 
306
219
  if (pdfDataRangeTransport) {
@@ -309,9 +222,9 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
309
222
  source.progressiveDone = pdfDataRangeTransport.progressiveDone;
310
223
  }
311
224
 
312
- return worker.messageHandler.sendWithPromise('GetDocRequest', {
313
- docId: docId,
314
- apiVersion: '2.3.200',
225
+ return worker.messageHandler.sendWithPromise("GetDocRequest", {
226
+ docId,
227
+ apiVersion: '2.4.456',
315
228
  source: {
316
229
  data: source.data,
317
230
  url: source.url,
@@ -330,76 +243,57 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
330
243
  isEvalSupported: source.isEvalSupported
331
244
  }).then(function (workerId) {
332
245
  if (worker.destroyed) {
333
- throw new Error('Worker was destroyed');
246
+ throw new Error("Worker was destroyed");
334
247
  }
335
248
 
336
249
  return workerId;
337
250
  });
338
251
  }
339
252
 
340
- var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {
341
- var nextDocumentId = 0;
342
-
343
- var PDFDocumentLoadingTask =
344
- /*#__PURE__*/
345
- function () {
346
- function PDFDocumentLoadingTask() {
347
- _classCallCheck(this, PDFDocumentLoadingTask);
253
+ const PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {
254
+ let nextDocumentId = 0;
348
255
 
256
+ class PDFDocumentLoadingTask {
257
+ constructor() {
349
258
  this._capability = (0, _util.createPromiseCapability)();
350
259
  this._transport = null;
351
260
  this._worker = null;
352
- this.docId = 'd' + nextDocumentId++;
261
+ this.docId = "d" + nextDocumentId++;
353
262
  this.destroyed = false;
354
263
  this.onPassword = null;
355
264
  this.onProgress = null;
356
265
  this.onUnsupportedFeature = null;
357
266
  }
358
267
 
359
- _createClass(PDFDocumentLoadingTask, [{
360
- key: "destroy",
361
- value: function destroy() {
362
- var _this = this;
268
+ get promise() {
269
+ return this._capability.promise;
270
+ }
363
271
 
364
- this.destroyed = true;
365
- var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();
366
- return transportDestroyed.then(function () {
367
- _this._transport = null;
272
+ destroy() {
273
+ this.destroyed = true;
274
+ const transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();
275
+ return transportDestroyed.then(() => {
276
+ this._transport = null;
368
277
 
369
- if (_this._worker) {
370
- _this._worker.destroy();
278
+ if (this._worker) {
279
+ this._worker.destroy();
371
280
 
372
- _this._worker = null;
373
- }
374
- });
375
- }
376
- }, {
377
- key: "then",
378
- value: function then(onFulfilled, onRejected) {
379
- (0, _display_utils.deprecated)('PDFDocumentLoadingTask.then method, ' + 'use the `promise` getter instead.');
380
- return this.promise.then.apply(this.promise, arguments);
381
- }
382
- }, {
383
- key: "promise",
384
- get: function get() {
385
- return this._capability.promise;
386
- }
387
- }]);
281
+ this._worker = null;
282
+ }
283
+ });
284
+ }
285
+
286
+ then(onFulfilled, onRejected) {
287
+ throw new Error("Removed API method: " + "PDFDocumentLoadingTask.then, use the `promise` getter instead.");
288
+ }
388
289
 
389
- return PDFDocumentLoadingTask;
390
- }();
290
+ }
391
291
 
392
292
  return PDFDocumentLoadingTask;
393
293
  }();
394
294
 
395
- var PDFDataRangeTransport =
396
- /*#__PURE__*/
397
- function () {
398
- function PDFDataRangeTransport(length, initialData) {
399
- var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
400
-
401
- _classCallCheck(this, PDFDataRangeTransport);
402
-
295
+ class PDFDataRangeTransport {
296
+ constructor(length, initialData, progressiveDone = false) {
403
297
  this.length = length;
404
298
  this.initialData = initialData;
405
299
  this.progressiveDone = progressiveDone;
@@ -410,310 +304,181 @@ function () {
410
304
  this._readyCapability = (0, _util.createPromiseCapability)();
411
305
  }
412
306
 
413
- _createClass(PDFDataRangeTransport, [{
414
- key: "addRangeListener",
415
- value: function addRangeListener(listener) {
416
- this._rangeListeners.push(listener);
417
- }
418
- }, {
419
- key: "addProgressListener",
420
- value: function addProgressListener(listener) {
421
- this._progressListeners.push(listener);
422
- }
423
- }, {
424
- key: "addProgressiveReadListener",
425
- value: function addProgressiveReadListener(listener) {
426
- this._progressiveReadListeners.push(listener);
427
- }
428
- }, {
429
- key: "addProgressiveDoneListener",
430
- value: function addProgressiveDoneListener(listener) {
431
- this._progressiveDoneListeners.push(listener);
432
- }
433
- }, {
434
- key: "onDataRange",
435
- value: function onDataRange(begin, chunk) {
436
- var _iteratorNormalCompletion = true;
437
- var _didIteratorError = false;
438
- var _iteratorError = undefined;
439
-
440
- try {
441
- for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
442
- var listener = _step.value;
443
- listener(begin, chunk);
444
- }
445
- } catch (err) {
446
- _didIteratorError = true;
447
- _iteratorError = err;
448
- } finally {
449
- try {
450
- if (!_iteratorNormalCompletion && _iterator["return"] != null) {
451
- _iterator["return"]();
452
- }
453
- } finally {
454
- if (_didIteratorError) {
455
- throw _iteratorError;
456
- }
457
- }
458
- }
459
- }
460
- }, {
461
- key: "onDataProgress",
462
- value: function onDataProgress(loaded, total) {
463
- var _this2 = this;
307
+ addRangeListener(listener) {
308
+ this._rangeListeners.push(listener);
309
+ }
464
310
 
465
- this._readyCapability.promise.then(function () {
466
- var _iteratorNormalCompletion2 = true;
467
- var _didIteratorError2 = false;
468
- var _iteratorError2 = undefined;
311
+ addProgressListener(listener) {
312
+ this._progressListeners.push(listener);
313
+ }
469
314
 
470
- try {
471
- for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
472
- var listener = _step2.value;
473
- listener(loaded, total);
474
- }
475
- } catch (err) {
476
- _didIteratorError2 = true;
477
- _iteratorError2 = err;
478
- } finally {
479
- try {
480
- if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
481
- _iterator2["return"]();
482
- }
483
- } finally {
484
- if (_didIteratorError2) {
485
- throw _iteratorError2;
486
- }
487
- }
488
- }
489
- });
490
- }
491
- }, {
492
- key: "onDataProgressiveRead",
493
- value: function onDataProgressiveRead(chunk) {
494
- var _this3 = this;
315
+ addProgressiveReadListener(listener) {
316
+ this._progressiveReadListeners.push(listener);
317
+ }
495
318
 
496
- this._readyCapability.promise.then(function () {
497
- var _iteratorNormalCompletion3 = true;
498
- var _didIteratorError3 = false;
499
- var _iteratorError3 = undefined;
319
+ addProgressiveDoneListener(listener) {
320
+ this._progressiveDoneListeners.push(listener);
321
+ }
500
322
 
501
- try {
502
- for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
503
- var listener = _step3.value;
504
- listener(chunk);
505
- }
506
- } catch (err) {
507
- _didIteratorError3 = true;
508
- _iteratorError3 = err;
509
- } finally {
510
- try {
511
- if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
512
- _iterator3["return"]();
513
- }
514
- } finally {
515
- if (_didIteratorError3) {
516
- throw _iteratorError3;
517
- }
518
- }
519
- }
520
- });
323
+ onDataRange(begin, chunk) {
324
+ for (const listener of this._rangeListeners) {
325
+ listener(begin, chunk);
521
326
  }
522
- }, {
523
- key: "onDataProgressiveDone",
524
- value: function onDataProgressiveDone() {
525
- var _this4 = this;
327
+ }
526
328
 
527
- this._readyCapability.promise.then(function () {
528
- var _iteratorNormalCompletion4 = true;
529
- var _didIteratorError4 = false;
530
- var _iteratorError4 = undefined;
329
+ onDataProgress(loaded, total) {
330
+ this._readyCapability.promise.then(() => {
331
+ for (const listener of this._progressListeners) {
332
+ listener(loaded, total);
333
+ }
334
+ });
335
+ }
531
336
 
532
- try {
533
- for (var _iterator4 = _this4._progressiveDoneListeners[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
534
- var listener = _step4.value;
535
- listener();
536
- }
537
- } catch (err) {
538
- _didIteratorError4 = true;
539
- _iteratorError4 = err;
540
- } finally {
541
- try {
542
- if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
543
- _iterator4["return"]();
544
- }
545
- } finally {
546
- if (_didIteratorError4) {
547
- throw _iteratorError4;
548
- }
549
- }
550
- }
551
- });
552
- }
553
- }, {
554
- key: "transportReady",
555
- value: function transportReady() {
556
- this._readyCapability.resolve();
557
- }
558
- }, {
559
- key: "requestDataRange",
560
- value: function requestDataRange(begin, end) {
561
- (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange');
562
- }
563
- }, {
564
- key: "abort",
565
- value: function abort() {}
566
- }]);
337
+ onDataProgressiveRead(chunk) {
338
+ this._readyCapability.promise.then(() => {
339
+ for (const listener of this._progressiveReadListeners) {
340
+ listener(chunk);
341
+ }
342
+ });
343
+ }
567
344
 
568
- return PDFDataRangeTransport;
569
- }();
345
+ onDataProgressiveDone() {
346
+ this._readyCapability.promise.then(() => {
347
+ for (const listener of this._progressiveDoneListeners) {
348
+ listener();
349
+ }
350
+ });
351
+ }
570
352
 
571
- exports.PDFDataRangeTransport = PDFDataRangeTransport;
353
+ transportReady() {
354
+ this._readyCapability.resolve();
355
+ }
356
+
357
+ requestDataRange(begin, end) {
358
+ (0, _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange");
359
+ }
360
+
361
+ abort() {}
572
362
 
573
- var PDFDocumentProxy =
574
- /*#__PURE__*/
575
- function () {
576
- function PDFDocumentProxy(pdfInfo, transport) {
577
- _classCallCheck(this, PDFDocumentProxy);
363
+ }
364
+
365
+ exports.PDFDataRangeTransport = PDFDataRangeTransport;
578
366
 
367
+ class PDFDocumentProxy {
368
+ constructor(pdfInfo, transport) {
579
369
  this._pdfInfo = pdfInfo;
580
370
  this._transport = transport;
581
371
  }
582
372
 
583
- _createClass(PDFDocumentProxy, [{
584
- key: "getPage",
585
- value: function getPage(pageNumber) {
586
- return this._transport.getPage(pageNumber);
587
- }
588
- }, {
589
- key: "getPageIndex",
590
- value: function getPageIndex(ref) {
591
- return this._transport.getPageIndex(ref);
592
- }
593
- }, {
594
- key: "getDestinations",
595
- value: function getDestinations() {
596
- return this._transport.getDestinations();
597
- }
598
- }, {
599
- key: "getDestination",
600
- value: function getDestination(id) {
601
- return this._transport.getDestination(id);
602
- }
603
- }, {
604
- key: "getPageLabels",
605
- value: function getPageLabels() {
606
- return this._transport.getPageLabels();
607
- }
608
- }, {
609
- key: "getPageLayout",
610
- value: function getPageLayout() {
611
- return this._transport.getPageLayout();
612
- }
613
- }, {
614
- key: "getPageMode",
615
- value: function getPageMode() {
616
- return this._transport.getPageMode();
617
- }
618
- }, {
619
- key: "getViewerPreferences",
620
- value: function getViewerPreferences() {
621
- return this._transport.getViewerPreferences();
622
- }
623
- }, {
624
- key: "getOpenActionDestination",
625
- value: function getOpenActionDestination() {
626
- return this._transport.getOpenActionDestination();
627
- }
628
- }, {
629
- key: "getAttachments",
630
- value: function getAttachments() {
631
- return this._transport.getAttachments();
632
- }
633
- }, {
634
- key: "getJavaScript",
635
- value: function getJavaScript() {
636
- return this._transport.getJavaScript();
637
- }
638
- }, {
639
- key: "getOutline",
640
- value: function getOutline() {
641
- return this._transport.getOutline();
642
- }
643
- }, {
644
- key: "getPermissions",
645
- value: function getPermissions() {
646
- return this._transport.getPermissions();
647
- }
648
- }, {
649
- key: "getMetadata",
650
- value: function getMetadata() {
651
- return this._transport.getMetadata();
652
- }
653
- }, {
654
- key: "getData",
655
- value: function getData() {
656
- return this._transport.getData();
657
- }
658
- }, {
659
- key: "getDownloadInfo",
660
- value: function getDownloadInfo() {
661
- return this._transport.downloadInfoCapability.promise;
662
- }
663
- }, {
664
- key: "getStats",
665
- value: function getStats() {
666
- return this._transport.getStats();
667
- }
668
- }, {
669
- key: "cleanup",
670
- value: function cleanup() {
671
- this._transport.startCleanup();
672
- }
673
- }, {
674
- key: "destroy",
675
- value: function destroy() {
676
- return this.loadingTask.destroy();
677
- }
678
- }, {
679
- key: "numPages",
680
- get: function get() {
681
- return this._pdfInfo.numPages;
682
- }
683
- }, {
684
- key: "fingerprint",
685
- get: function get() {
686
- return this._pdfInfo.fingerprint;
687
- }
688
- }, {
689
- key: "loadingParams",
690
- get: function get() {
691
- return this._transport.loadingParams;
692
- }
693
- }, {
694
- key: "loadingTask",
695
- get: function get() {
696
- return this._transport.loadingTask;
697
- }
698
- }]);
699
-
700
- return PDFDocumentProxy;
701
- }();
373
+ get numPages() {
374
+ return this._pdfInfo.numPages;
375
+ }
702
376
 
703
- exports.PDFDocumentProxy = PDFDocumentProxy;
377
+ get fingerprint() {
378
+ return this._pdfInfo.fingerprint;
379
+ }
380
+
381
+ getPage(pageNumber) {
382
+ return this._transport.getPage(pageNumber);
383
+ }
384
+
385
+ getPageIndex(ref) {
386
+ return this._transport.getPageIndex(ref);
387
+ }
388
+
389
+ getDestinations() {
390
+ return this._transport.getDestinations();
391
+ }
392
+
393
+ getDestination(id) {
394
+ return this._transport.getDestination(id);
395
+ }
396
+
397
+ getPageLabels() {
398
+ return this._transport.getPageLabels();
399
+ }
400
+
401
+ getPageLayout() {
402
+ return this._transport.getPageLayout();
403
+ }
404
+
405
+ getPageMode() {
406
+ return this._transport.getPageMode();
407
+ }
408
+
409
+ getViewerPreferences() {
410
+ return this._transport.getViewerPreferences();
411
+ }
412
+
413
+ getOpenAction() {
414
+ return this._transport.getOpenAction();
415
+ }
416
+
417
+ getOpenActionDestination() {
418
+ (0, _display_utils.deprecated)("getOpenActionDestination, use getOpenAction instead.");
419
+ return this.getOpenAction().then(function (openAction) {
420
+ return openAction && openAction.dest ? openAction.dest : null;
421
+ });
422
+ }
423
+
424
+ getAttachments() {
425
+ return this._transport.getAttachments();
426
+ }
427
+
428
+ getJavaScript() {
429
+ return this._transport.getJavaScript();
430
+ }
431
+
432
+ getOutline() {
433
+ return this._transport.getOutline();
434
+ }
435
+
436
+ getPermissions() {
437
+ return this._transport.getPermissions();
438
+ }
439
+
440
+ getMetadata() {
441
+ return this._transport.getMetadata();
442
+ }
443
+
444
+ getData() {
445
+ return this._transport.getData();
446
+ }
447
+
448
+ getDownloadInfo() {
449
+ return this._transport.downloadInfoCapability.promise;
450
+ }
451
+
452
+ getStats() {
453
+ return this._transport.getStats();
454
+ }
455
+
456
+ cleanup() {
457
+ return this._transport.startCleanup();
458
+ }
459
+
460
+ destroy() {
461
+ return this.loadingTask.destroy();
462
+ }
704
463
 
705
- var PDFPageProxy =
706
- /*#__PURE__*/
707
- function () {
708
- function PDFPageProxy(pageIndex, pageInfo, transport) {
709
- var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
464
+ get loadingParams() {
465
+ return this._transport.loadingParams;
466
+ }
467
+
468
+ get loadingTask() {
469
+ return this._transport.loadingTask;
470
+ }
471
+
472
+ }
710
473
 
711
- _classCallCheck(this, PDFPageProxy);
474
+ exports.PDFDocumentProxy = PDFDocumentProxy;
712
475
 
713
- this.pageIndex = pageIndex;
476
+ class PDFPageProxy {
477
+ constructor(pageIndex, pageInfo, transport, pdfBug = false) {
478
+ this._pageIndex = pageIndex;
714
479
  this._pageInfo = pageInfo;
715
480
  this._transport = transport;
716
- this._stats = pdfBug ? new _display_utils.StatTimer() : _display_utils.DummyStatTimer;
481
+ this._stats = pdfBug ? new _display_utils.StatTimer() : null;
717
482
  this._pdfBug = pdfBug;
718
483
  this.commonObjs = transport.commonObjs;
719
484
  this.objs = new PDFObjects();
@@ -723,642 +488,606 @@ function () {
723
488
  this.destroyed = false;
724
489
  }
725
490
 
726
- _createClass(PDFPageProxy, [{
727
- key: "getViewport",
728
- value: function getViewport() {
729
- var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
730
- scale = _ref.scale,
731
- _ref$rotation = _ref.rotation,
732
- rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation,
733
- _ref$dontFlip = _ref.dontFlip,
734
- dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip;
735
-
736
- if (arguments.length > 1 || typeof arguments[0] === 'number') {
737
- (0, _display_utils.deprecated)('getViewport is called with obsolete arguments.');
738
- scale = arguments[0];
739
- rotation = typeof arguments[1] === 'number' ? arguments[1] : this.rotate;
740
- dontFlip = typeof arguments[2] === 'boolean' ? arguments[2] : false;
741
- }
742
-
743
- return new _display_utils.PageViewport({
744
- viewBox: this.view,
745
- scale: scale,
746
- rotation: rotation,
747
- dontFlip: dontFlip
748
- });
749
- }
750
- }, {
751
- key: "getAnnotations",
752
- value: function getAnnotations() {
753
- var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
754
- _ref2$intent = _ref2.intent,
755
- intent = _ref2$intent === void 0 ? null : _ref2$intent;
756
-
757
- if (!this.annotationsPromise || this.annotationsIntent !== intent) {
758
- this.annotationsPromise = this._transport.getAnnotations(this.pageIndex, intent);
759
- this.annotationsIntent = intent;
760
- }
761
-
762
- return this.annotationsPromise;
763
- }
764
- }, {
765
- key: "render",
766
- value: function render(_ref3) {
767
- var _this5 = this;
768
-
769
- var canvasContext = _ref3.canvasContext,
770
- viewport = _ref3.viewport,
771
- _ref3$intent = _ref3.intent,
772
- intent = _ref3$intent === void 0 ? 'display' : _ref3$intent,
773
- _ref3$enableWebGL = _ref3.enableWebGL,
774
- enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL,
775
- _ref3$renderInteracti = _ref3.renderInteractiveForms,
776
- renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti,
777
- _ref3$transform = _ref3.transform,
778
- transform = _ref3$transform === void 0 ? null : _ref3$transform,
779
- _ref3$imageLayer = _ref3.imageLayer,
780
- imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer,
781
- _ref3$canvasFactory = _ref3.canvasFactory,
782
- canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory,
783
- _ref3$background = _ref3.background,
784
- background = _ref3$background === void 0 ? null : _ref3$background;
785
- var stats = this._stats;
786
- stats.time('Overall');
787
- var renderingIntent = intent === 'print' ? 'print' : 'display';
788
- this.pendingCleanup = false;
789
-
790
- if (!this.intentStates[renderingIntent]) {
791
- this.intentStates[renderingIntent] = Object.create(null);
792
- }
793
-
794
- var intentState = this.intentStates[renderingIntent];
795
-
796
- if (intentState.streamReaderCancelTimeout) {
797
- clearTimeout(intentState.streamReaderCancelTimeout);
798
- intentState.streamReaderCancelTimeout = null;
799
- }
800
-
801
- var canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory();
802
- var webGLContext = new _webgl.WebGLContext({
803
- enable: enableWebGL
804
- });
805
-
806
- if (!intentState.displayReadyCapability) {
807
- intentState.displayReadyCapability = (0, _util.createPromiseCapability)();
808
- intentState.operatorList = {
809
- fnArray: [],
810
- argsArray: [],
811
- lastChunk: false
812
- };
813
- stats.time('Page Request');
491
+ get pageNumber() {
492
+ return this._pageIndex + 1;
493
+ }
814
494
 
815
- this._pumpOperatorList({
816
- pageIndex: this.pageNumber - 1,
817
- intent: renderingIntent,
818
- renderInteractiveForms: renderInteractiveForms === true
819
- });
820
- }
495
+ get rotate() {
496
+ return this._pageInfo.rotate;
497
+ }
821
498
 
822
- var complete = function complete(error) {
823
- var i = intentState.renderTasks.indexOf(internalRenderTask);
499
+ get ref() {
500
+ return this._pageInfo.ref;
501
+ }
824
502
 
825
- if (i >= 0) {
826
- intentState.renderTasks.splice(i, 1);
827
- }
503
+ get userUnit() {
504
+ return this._pageInfo.userUnit;
505
+ }
828
506
 
829
- if (_this5.cleanupAfterRender || renderingIntent === 'print') {
830
- _this5.pendingCleanup = true;
831
- }
507
+ get view() {
508
+ return this._pageInfo.view;
509
+ }
832
510
 
833
- _this5._tryCleanup();
511
+ getViewport({
512
+ scale,
513
+ rotation = this.rotate,
514
+ offsetX = 0,
515
+ offsetY = 0,
516
+ dontFlip = false
517
+ } = {}) {
518
+ if (arguments.length > 1 || typeof arguments[0] === "number") {
519
+ throw new Error("PDFPageProxy.getViewport is called with obsolete arguments.");
520
+ }
521
+
522
+ return new _display_utils.PageViewport({
523
+ viewBox: this.view,
524
+ scale,
525
+ rotation,
526
+ offsetX,
527
+ offsetY,
528
+ dontFlip
529
+ });
530
+ }
834
531
 
835
- if (error) {
836
- internalRenderTask.capability.reject(error);
532
+ getAnnotations({
533
+ intent = null
534
+ } = {}) {
535
+ if (!this.annotationsPromise || this.annotationsIntent !== intent) {
536
+ this.annotationsPromise = this._transport.getAnnotations(this._pageIndex, intent);
537
+ this.annotationsIntent = intent;
538
+ }
837
539
 
838
- _this5._abortOperatorList({
839
- intentState: intentState,
840
- reason: error
841
- });
842
- } else {
843
- internalRenderTask.capability.resolve();
844
- }
540
+ return this.annotationsPromise;
541
+ }
845
542
 
846
- stats.timeEnd('Rendering');
847
- stats.timeEnd('Overall');
848
- };
543
+ render({
544
+ canvasContext,
545
+ viewport,
546
+ intent = "display",
547
+ enableWebGL = false,
548
+ renderInteractiveForms = false,
549
+ transform = null,
550
+ imageLayer = null,
551
+ canvasFactory = null,
552
+ background = null
553
+ }) {
554
+ if (this._stats) {
555
+ this._stats.time("Overall");
556
+ }
557
+
558
+ const renderingIntent = intent === "print" ? "print" : "display";
559
+ this.pendingCleanup = false;
849
560
 
850
- var internalRenderTask = new InternalRenderTask({
851
- callback: complete,
852
- params: {
853
- canvasContext: canvasContext,
854
- viewport: viewport,
855
- transform: transform,
856
- imageLayer: imageLayer,
857
- background: background
858
- },
859
- objs: this.objs,
860
- commonObjs: this.commonObjs,
861
- operatorList: intentState.operatorList,
862
- pageNumber: this.pageNumber,
863
- canvasFactory: canvasFactoryInstance,
864
- webGLContext: webGLContext,
865
- useRequestAnimationFrame: renderingIntent !== 'print',
866
- pdfBug: this._pdfBug
867
- });
561
+ if (!this.intentStates[renderingIntent]) {
562
+ this.intentStates[renderingIntent] = Object.create(null);
563
+ }
868
564
 
869
- if (!intentState.renderTasks) {
870
- intentState.renderTasks = [];
871
- }
565
+ const intentState = this.intentStates[renderingIntent];
872
566
 
873
- intentState.renderTasks.push(internalRenderTask);
874
- var renderTask = internalRenderTask.task;
875
- intentState.displayReadyCapability.promise.then(function (transparency) {
876
- if (_this5.pendingCleanup) {
877
- complete();
878
- return;
879
- }
567
+ if (intentState.streamReaderCancelTimeout) {
568
+ clearTimeout(intentState.streamReaderCancelTimeout);
569
+ intentState.streamReaderCancelTimeout = null;
570
+ }
880
571
 
881
- stats.time('Rendering');
882
- internalRenderTask.initializeGraphics(transparency);
883
- internalRenderTask.operatorListChanged();
884
- })["catch"](complete);
885
- return renderTask;
886
- }
887
- }, {
888
- key: "getOperatorList",
889
- value: function getOperatorList() {
890
- function operatorListChanged() {
891
- if (intentState.operatorList.lastChunk) {
892
- intentState.opListReadCapability.resolve(intentState.operatorList);
893
- var i = intentState.renderTasks.indexOf(opListTask);
894
-
895
- if (i >= 0) {
896
- intentState.renderTasks.splice(i, 1);
897
- }
898
- }
899
- }
572
+ const canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory();
573
+ const webGLContext = new _webgl.WebGLContext({
574
+ enable: enableWebGL
575
+ });
900
576
 
901
- var renderingIntent = 'oplist';
577
+ if (!intentState.displayReadyCapability) {
578
+ intentState.displayReadyCapability = (0, _util.createPromiseCapability)();
579
+ intentState.operatorList = {
580
+ fnArray: [],
581
+ argsArray: [],
582
+ lastChunk: false
583
+ };
902
584
 
903
- if (!this.intentStates[renderingIntent]) {
904
- this.intentStates[renderingIntent] = Object.create(null);
585
+ if (this._stats) {
586
+ this._stats.time("Page Request");
905
587
  }
906
588
 
907
- var intentState = this.intentStates[renderingIntent];
908
- var opListTask;
589
+ this._pumpOperatorList({
590
+ pageIndex: this._pageIndex,
591
+ intent: renderingIntent,
592
+ renderInteractiveForms: renderInteractiveForms === true
593
+ });
594
+ }
909
595
 
910
- if (!intentState.opListReadCapability) {
911
- opListTask = {};
912
- opListTask.operatorListChanged = operatorListChanged;
913
- intentState.opListReadCapability = (0, _util.createPromiseCapability)();
914
- intentState.renderTasks = [];
915
- intentState.renderTasks.push(opListTask);
916
- intentState.operatorList = {
917
- fnArray: [],
918
- argsArray: [],
919
- lastChunk: false
920
- };
596
+ const complete = error => {
597
+ const i = intentState.renderTasks.indexOf(internalRenderTask);
921
598
 
922
- this._stats.time('Page Request');
599
+ if (i >= 0) {
600
+ intentState.renderTasks.splice(i, 1);
601
+ }
923
602
 
924
- this._pumpOperatorList({
925
- pageIndex: this.pageIndex,
926
- intent: renderingIntent
927
- });
603
+ if (this.cleanupAfterRender || renderingIntent === "print") {
604
+ this.pendingCleanup = true;
928
605
  }
929
606
 
930
- return intentState.opListReadCapability.promise;
931
- }
932
- }, {
933
- key: "streamTextContent",
934
- value: function streamTextContent() {
935
- var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
936
- _ref4$normalizeWhites = _ref4.normalizeWhitespace,
937
- normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites,
938
- _ref4$disableCombineT = _ref4.disableCombineTextItems,
939
- disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT;
940
-
941
- var TEXT_CONTENT_CHUNK_SIZE = 100;
942
- return this._transport.messageHandler.sendWithStream('GetTextContent', {
943
- pageIndex: this.pageNumber - 1,
944
- normalizeWhitespace: normalizeWhitespace === true,
945
- combineTextItems: disableCombineTextItems !== true
946
- }, {
947
- highWaterMark: TEXT_CONTENT_CHUNK_SIZE,
948
- size: function size(textContent) {
949
- return textContent.items.length;
950
- }
951
- });
952
- }
953
- }, {
954
- key: "getTextContent",
955
- value: function getTextContent() {
956
- var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
957
- var readableStream = this.streamTextContent(params);
958
- return new Promise(function (resolve, reject) {
959
- function pump() {
960
- reader.read().then(function (_ref5) {
961
- var _textContent$items;
607
+ this._tryCleanup();
962
608
 
963
- var value = _ref5.value,
964
- done = _ref5.done;
609
+ if (error) {
610
+ internalRenderTask.capability.reject(error);
965
611
 
966
- if (done) {
967
- resolve(textContent);
968
- return;
969
- }
612
+ this._abortOperatorList({
613
+ intentState,
614
+ reason: error
615
+ });
616
+ } else {
617
+ internalRenderTask.capability.resolve();
618
+ }
970
619
 
971
- Object.assign(textContent.styles, value.styles);
620
+ if (this._stats) {
621
+ this._stats.timeEnd("Rendering");
972
622
 
973
- (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items));
623
+ this._stats.timeEnd("Overall");
624
+ }
625
+ };
974
626
 
975
- pump();
976
- }, reject);
977
- }
627
+ const internalRenderTask = new InternalRenderTask({
628
+ callback: complete,
629
+ params: {
630
+ canvasContext,
631
+ viewport,
632
+ transform,
633
+ imageLayer,
634
+ background
635
+ },
636
+ objs: this.objs,
637
+ commonObjs: this.commonObjs,
638
+ operatorList: intentState.operatorList,
639
+ pageIndex: this._pageIndex,
640
+ canvasFactory: canvasFactoryInstance,
641
+ webGLContext,
642
+ useRequestAnimationFrame: renderingIntent !== "print",
643
+ pdfBug: this._pdfBug
644
+ });
978
645
 
979
- var reader = readableStream.getReader();
980
- var textContent = {
981
- items: [],
982
- styles: Object.create(null)
983
- };
984
- pump();
985
- });
646
+ if (!intentState.renderTasks) {
647
+ intentState.renderTasks = [];
986
648
  }
987
- }, {
988
- key: "_destroy",
989
- value: function _destroy() {
990
- var _this6 = this;
991
-
992
- this.destroyed = true;
993
- this._transport.pageCache[this.pageIndex] = null;
994
- var waitOn = [];
995
- Object.keys(this.intentStates).forEach(function (intent) {
996
- var intentState = _this6.intentStates[intent];
997
-
998
- _this6._abortOperatorList({
999
- intentState: intentState,
1000
- reason: new Error('Page was destroyed.'),
1001
- force: true
1002
- });
1003
-
1004
- if (intent === 'oplist') {
1005
- return;
1006
- }
1007
649
 
1008
- intentState.renderTasks.forEach(function (renderTask) {
1009
- var renderCompleted = renderTask.capability.promise["catch"](function () {});
1010
- waitOn.push(renderCompleted);
1011
- renderTask.cancel();
1012
- });
1013
- });
1014
- this.objs.clear();
1015
- this.annotationsPromise = null;
1016
- this.pendingCleanup = false;
1017
- return Promise.all(waitOn);
1018
- }
1019
- }, {
1020
- key: "cleanup",
1021
- value: function cleanup() {
1022
- var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1023
- this.pendingCleanup = true;
1024
-
1025
- this._tryCleanup(resetStats);
1026
- }
1027
- }, {
1028
- key: "_tryCleanup",
1029
- value: function _tryCleanup() {
1030
- var _this7 = this;
1031
-
1032
- var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
1033
-
1034
- if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) {
1035
- var intentState = _this7.intentStates[intent];
1036
- return intentState.renderTasks.length !== 0 || !intentState.operatorList.lastChunk;
1037
- })) {
650
+ intentState.renderTasks.push(internalRenderTask);
651
+ const renderTask = internalRenderTask.task;
652
+ intentState.displayReadyCapability.promise.then(transparency => {
653
+ if (this.pendingCleanup) {
654
+ complete();
1038
655
  return;
1039
656
  }
1040
657
 
1041
- Object.keys(this.intentStates).forEach(function (intent) {
1042
- delete _this7.intentStates[intent];
1043
- });
1044
- this.objs.clear();
1045
- this.annotationsPromise = null;
1046
-
1047
- if (resetStats && this._stats instanceof _display_utils.StatTimer) {
1048
- this._stats = new _display_utils.StatTimer();
658
+ if (this._stats) {
659
+ this._stats.time("Rendering");
1049
660
  }
1050
661
 
1051
- this.pendingCleanup = false;
1052
- }
1053
- }, {
1054
- key: "_startRenderPage",
1055
- value: function _startRenderPage(transparency, intent) {
1056
- var intentState = this.intentStates[intent];
662
+ internalRenderTask.initializeGraphics(transparency);
663
+ internalRenderTask.operatorListChanged();
664
+ }).catch(complete);
665
+ return renderTask;
666
+ }
1057
667
 
1058
- if (!intentState) {
1059
- return;
668
+ getOperatorList() {
669
+ function operatorListChanged() {
670
+ if (intentState.operatorList.lastChunk) {
671
+ intentState.opListReadCapability.resolve(intentState.operatorList);
672
+ const i = intentState.renderTasks.indexOf(opListTask);
673
+
674
+ if (i >= 0) {
675
+ intentState.renderTasks.splice(i, 1);
676
+ }
1060
677
  }
678
+ }
1061
679
 
1062
- this._stats.timeEnd('Page Request');
680
+ const renderingIntent = "oplist";
1063
681
 
1064
- if (intentState.displayReadyCapability) {
1065
- intentState.displayReadyCapability.resolve(transparency);
1066
- }
682
+ if (!this.intentStates[renderingIntent]) {
683
+ this.intentStates[renderingIntent] = Object.create(null);
1067
684
  }
1068
- }, {
1069
- key: "_renderPageChunk",
1070
- value: function _renderPageChunk(operatorListChunk, intentState) {
1071
- for (var i = 0, ii = operatorListChunk.length; i < ii; i++) {
1072
- intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);
1073
- intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);
1074
- }
1075
685
 
1076
- intentState.operatorList.lastChunk = operatorListChunk.lastChunk;
686
+ const intentState = this.intentStates[renderingIntent];
687
+ let opListTask;
1077
688
 
1078
- for (var _i = 0; _i < intentState.renderTasks.length; _i++) {
1079
- intentState.renderTasks[_i].operatorListChanged();
1080
- }
689
+ if (!intentState.opListReadCapability) {
690
+ opListTask = {};
691
+ opListTask.operatorListChanged = operatorListChanged;
692
+ intentState.opListReadCapability = (0, _util.createPromiseCapability)();
693
+ intentState.renderTasks = [];
694
+ intentState.renderTasks.push(opListTask);
695
+ intentState.operatorList = {
696
+ fnArray: [],
697
+ argsArray: [],
698
+ lastChunk: false
699
+ };
1081
700
 
1082
- if (operatorListChunk.lastChunk) {
1083
- this._tryCleanup();
701
+ if (this._stats) {
702
+ this._stats.time("Page Request");
1084
703
  }
704
+
705
+ this._pumpOperatorList({
706
+ pageIndex: this._pageIndex,
707
+ intent: renderingIntent
708
+ });
1085
709
  }
1086
- }, {
1087
- key: "_pumpOperatorList",
1088
- value: function _pumpOperatorList(args) {
1089
- var _this8 = this;
1090
710
 
1091
- (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected "intent" argument.');
711
+ return intentState.opListReadCapability.promise;
712
+ }
1092
713
 
1093
- var readableStream = this._transport.messageHandler.sendWithStream('GetOperatorList', args);
714
+ streamTextContent({
715
+ normalizeWhitespace = false,
716
+ disableCombineTextItems = false
717
+ } = {}) {
718
+ const TEXT_CONTENT_CHUNK_SIZE = 100;
719
+ return this._transport.messageHandler.sendWithStream("GetTextContent", {
720
+ pageIndex: this._pageIndex,
721
+ normalizeWhitespace: normalizeWhitespace === true,
722
+ combineTextItems: disableCombineTextItems !== true
723
+ }, {
724
+ highWaterMark: TEXT_CONTENT_CHUNK_SIZE,
1094
725
 
1095
- var reader = readableStream.getReader();
1096
- var intentState = this.intentStates[args.intent];
1097
- intentState.streamReader = reader;
726
+ size(textContent) {
727
+ return textContent.items.length;
728
+ }
1098
729
 
1099
- var pump = function pump() {
1100
- reader.read().then(function (_ref6) {
1101
- var value = _ref6.value,
1102
- done = _ref6.done;
730
+ });
731
+ }
1103
732
 
733
+ getTextContent(params = {}) {
734
+ const readableStream = this.streamTextContent(params);
735
+ return new Promise(function (resolve, reject) {
736
+ function pump() {
737
+ reader.read().then(function ({
738
+ value,
739
+ done
740
+ }) {
1104
741
  if (done) {
1105
- intentState.streamReader = null;
1106
- return;
1107
- }
1108
-
1109
- if (_this8._transport.destroyed) {
742
+ resolve(textContent);
1110
743
  return;
1111
744
  }
1112
745
 
1113
- _this8._renderPageChunk(value, intentState);
1114
-
746
+ Object.assign(textContent.styles, value.styles);
747
+ textContent.items.push(...value.items);
1115
748
  pump();
1116
- }, function (reason) {
1117
- intentState.streamReader = null;
749
+ }, reject);
750
+ }
1118
751
 
1119
- if (_this8._transport.destroyed) {
1120
- return;
1121
- }
752
+ const reader = readableStream.getReader();
753
+ const textContent = {
754
+ items: [],
755
+ styles: Object.create(null)
756
+ };
757
+ pump();
758
+ });
759
+ }
1122
760
 
1123
- if (intentState.operatorList) {
1124
- intentState.operatorList.lastChunk = true;
761
+ _destroy() {
762
+ this.destroyed = true;
763
+ this._transport.pageCache[this._pageIndex] = null;
764
+ const waitOn = [];
765
+ Object.keys(this.intentStates).forEach(intent => {
766
+ const intentState = this.intentStates[intent];
767
+
768
+ this._abortOperatorList({
769
+ intentState,
770
+ reason: new Error("Page was destroyed."),
771
+ force: true
772
+ });
1125
773
 
1126
- for (var i = 0; i < intentState.renderTasks.length; i++) {
1127
- intentState.renderTasks[i].operatorListChanged();
1128
- }
774
+ if (intent === "oplist") {
775
+ return;
776
+ }
1129
777
 
1130
- _this8._tryCleanup();
1131
- }
778
+ intentState.renderTasks.forEach(function (renderTask) {
779
+ const renderCompleted = renderTask.capability.promise.catch(function () {});
780
+ waitOn.push(renderCompleted);
781
+ renderTask.cancel();
782
+ });
783
+ });
784
+ this.objs.clear();
785
+ this.annotationsPromise = null;
786
+ this.pendingCleanup = false;
787
+ return Promise.all(waitOn);
788
+ }
1132
789
 
1133
- if (intentState.displayReadyCapability) {
1134
- intentState.displayReadyCapability.reject(reason);
1135
- } else if (intentState.opListReadCapability) {
1136
- intentState.opListReadCapability.reject(reason);
1137
- } else {
1138
- throw reason;
1139
- }
1140
- });
1141
- };
790
+ cleanup(resetStats = false) {
791
+ this.pendingCleanup = true;
792
+ return this._tryCleanup(resetStats);
793
+ }
1142
794
 
1143
- pump();
795
+ _tryCleanup(resetStats = false) {
796
+ if (!this.pendingCleanup || Object.keys(this.intentStates).some(intent => {
797
+ const intentState = this.intentStates[intent];
798
+ return intentState.renderTasks.length !== 0 || !intentState.operatorList.lastChunk;
799
+ })) {
800
+ return false;
801
+ }
802
+
803
+ Object.keys(this.intentStates).forEach(intent => {
804
+ delete this.intentStates[intent];
805
+ });
806
+ this.objs.clear();
807
+ this.annotationsPromise = null;
808
+
809
+ if (resetStats && this._stats) {
810
+ this._stats = new _display_utils.StatTimer();
1144
811
  }
1145
- }, {
1146
- key: "_abortOperatorList",
1147
- value: function _abortOperatorList(_ref7) {
1148
- var _this9 = this;
1149
812
 
1150
- var intentState = _ref7.intentState,
1151
- reason = _ref7.reason,
1152
- _ref7$force = _ref7.force,
1153
- force = _ref7$force === void 0 ? false : _ref7$force;
1154
- (0, _util.assert)(reason instanceof Error, 'PDFPageProxy._abortOperatorList: Expected "reason" argument.');
813
+ this.pendingCleanup = false;
814
+ return true;
815
+ }
816
+
817
+ _startRenderPage(transparency, intent) {
818
+ const intentState = this.intentStates[intent];
1155
819
 
1156
- if (!intentState.streamReader) {
1157
- return;
1158
- }
820
+ if (!intentState) {
821
+ return;
822
+ }
823
+
824
+ if (this._stats) {
825
+ this._stats.timeEnd("Page Request");
826
+ }
827
+
828
+ if (intentState.displayReadyCapability) {
829
+ intentState.displayReadyCapability.resolve(transparency);
830
+ }
831
+ }
832
+
833
+ _renderPageChunk(operatorListChunk, intentState) {
834
+ for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {
835
+ intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);
836
+ intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);
837
+ }
838
+
839
+ intentState.operatorList.lastChunk = operatorListChunk.lastChunk;
840
+
841
+ for (let i = 0; i < intentState.renderTasks.length; i++) {
842
+ intentState.renderTasks[i].operatorListChanged();
843
+ }
844
+
845
+ if (operatorListChunk.lastChunk) {
846
+ this._tryCleanup();
847
+ }
848
+ }
849
+
850
+ _pumpOperatorList(args) {
851
+ (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected "intent" argument.');
852
+
853
+ const readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", args);
1159
854
 
1160
- if (!force) {
1161
- if (intentState.renderTasks.length !== 0) {
855
+ const reader = readableStream.getReader();
856
+ const intentState = this.intentStates[args.intent];
857
+ intentState.streamReader = reader;
858
+
859
+ const pump = () => {
860
+ reader.read().then(({
861
+ value,
862
+ done
863
+ }) => {
864
+ if (done) {
865
+ intentState.streamReader = null;
1162
866
  return;
1163
867
  }
1164
868
 
1165
- if (reason instanceof _display_utils.RenderingCancelledException) {
1166
- intentState.streamReaderCancelTimeout = setTimeout(function () {
1167
- _this9._abortOperatorList({
1168
- intentState: intentState,
1169
- reason: reason,
1170
- force: true
1171
- });
869
+ if (this._transport.destroyed) {
870
+ return;
871
+ }
872
+
873
+ this._renderPageChunk(value, intentState);
874
+
875
+ pump();
876
+ }, reason => {
877
+ intentState.streamReader = null;
1172
878
 
1173
- intentState.streamReaderCancelTimeout = null;
1174
- }, RENDERING_CANCELLED_TIMEOUT);
879
+ if (this._transport.destroyed) {
1175
880
  return;
1176
881
  }
1177
- }
1178
882
 
1179
- intentState.streamReader.cancel(new _util.AbortException(reason && reason.message));
1180
- intentState.streamReader = null;
883
+ if (intentState.operatorList) {
884
+ intentState.operatorList.lastChunk = true;
1181
885
 
1182
- if (this._transport.destroyed) {
1183
- return;
1184
- }
886
+ for (let i = 0; i < intentState.renderTasks.length; i++) {
887
+ intentState.renderTasks[i].operatorListChanged();
888
+ }
1185
889
 
1186
- Object.keys(this.intentStates).some(function (intent) {
1187
- if (_this9.intentStates[intent] === intentState) {
1188
- delete _this9.intentStates[intent];
1189
- return true;
890
+ this._tryCleanup();
1190
891
  }
1191
892
 
1192
- return false;
893
+ if (intentState.displayReadyCapability) {
894
+ intentState.displayReadyCapability.reject(reason);
895
+ } else if (intentState.opListReadCapability) {
896
+ intentState.opListReadCapability.reject(reason);
897
+ } else {
898
+ throw reason;
899
+ }
1193
900
  });
1194
- this.cleanup();
1195
- }
1196
- }, {
1197
- key: "pageNumber",
1198
- get: function get() {
1199
- return this.pageIndex + 1;
1200
- }
1201
- }, {
1202
- key: "rotate",
1203
- get: function get() {
1204
- return this._pageInfo.rotate;
1205
- }
1206
- }, {
1207
- key: "ref",
1208
- get: function get() {
1209
- return this._pageInfo.ref;
1210
- }
1211
- }, {
1212
- key: "userUnit",
1213
- get: function get() {
1214
- return this._pageInfo.userUnit;
901
+ };
902
+
903
+ pump();
904
+ }
905
+
906
+ _abortOperatorList({
907
+ intentState,
908
+ reason,
909
+ force = false
910
+ }) {
911
+ (0, _util.assert)(reason instanceof Error || typeof reason === "object" && reason !== null, 'PDFPageProxy._abortOperatorList: Expected "reason" argument.');
912
+
913
+ if (!intentState.streamReader) {
914
+ return;
1215
915
  }
1216
- }, {
1217
- key: "view",
1218
- get: function get() {
1219
- return this._pageInfo.view;
916
+
917
+ if (!force) {
918
+ if (intentState.renderTasks.length !== 0) {
919
+ return;
920
+ }
921
+
922
+ if (reason instanceof _display_utils.RenderingCancelledException) {
923
+ intentState.streamReaderCancelTimeout = setTimeout(() => {
924
+ this._abortOperatorList({
925
+ intentState,
926
+ reason,
927
+ force: true
928
+ });
929
+
930
+ intentState.streamReaderCancelTimeout = null;
931
+ }, RENDERING_CANCELLED_TIMEOUT);
932
+ return;
933
+ }
1220
934
  }
1221
- }, {
1222
- key: "stats",
1223
- get: function get() {
1224
- return this._stats instanceof _display_utils.StatTimer ? this._stats : null;
935
+
936
+ intentState.streamReader.cancel(new _util.AbortException(reason && reason.message));
937
+ intentState.streamReader = null;
938
+
939
+ if (this._transport.destroyed) {
940
+ return;
1225
941
  }
1226
- }]);
1227
942
 
1228
- return PDFPageProxy;
1229
- }();
943
+ Object.keys(this.intentStates).some(intent => {
944
+ if (this.intentStates[intent] === intentState) {
945
+ delete this.intentStates[intent];
946
+ return true;
947
+ }
1230
948
 
1231
- exports.PDFPageProxy = PDFPageProxy;
949
+ return false;
950
+ });
951
+ this.cleanup();
952
+ }
953
+
954
+ get stats() {
955
+ return this._stats;
956
+ }
1232
957
 
1233
- var LoopbackPort =
1234
- /*#__PURE__*/
1235
- function () {
1236
- function LoopbackPort() {
1237
- var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
958
+ }
1238
959
 
1239
- _classCallCheck(this, LoopbackPort);
960
+ exports.PDFPageProxy = PDFPageProxy;
1240
961
 
962
+ class LoopbackPort {
963
+ constructor(defer = true) {
1241
964
  this._listeners = [];
1242
965
  this._defer = defer;
1243
966
  this._deferred = Promise.resolve(undefined);
1244
967
  }
1245
968
 
1246
- _createClass(LoopbackPort, [{
1247
- key: "postMessage",
1248
- value: function postMessage(obj, transfers) {
1249
- var _this10 = this;
1250
-
1251
- function cloneValue(value) {
1252
- if (_typeof(value) !== 'object' || value === null) {
1253
- return value;
1254
- }
1255
-
1256
- if (cloned.has(value)) {
1257
- return cloned.get(value);
1258
- }
969
+ postMessage(obj, transfers) {
970
+ function cloneValue(value) {
971
+ if (typeof value !== "object" || value === null) {
972
+ return value;
973
+ }
1259
974
 
1260
- var buffer, result;
975
+ if (cloned.has(value)) {
976
+ return cloned.get(value);
977
+ }
1261
978
 
1262
- if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {
1263
- var transferable = transfers && transfers.includes(buffer);
979
+ let buffer, result;
1264
980
 
1265
- if (value === buffer) {
1266
- result = value;
1267
- } else if (transferable) {
1268
- result = new value.constructor(buffer, value.byteOffset, value.byteLength);
1269
- } else {
1270
- result = new value.constructor(value);
1271
- }
981
+ if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {
982
+ const transferable = transfers && transfers.includes(buffer);
1272
983
 
1273
- cloned.set(value, result);
1274
- return result;
984
+ if (transferable) {
985
+ result = new value.constructor(buffer, value.byteOffset, value.byteLength);
986
+ } else {
987
+ result = new value.constructor(value);
1275
988
  }
1276
989
 
1277
- result = Array.isArray(value) ? [] : {};
1278
990
  cloned.set(value, result);
991
+ return result;
992
+ }
1279
993
 
1280
- for (var i in value) {
1281
- var desc = void 0,
1282
- p = value;
994
+ result = Array.isArray(value) ? [] : {};
995
+ cloned.set(value, result);
1283
996
 
1284
- while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {
1285
- p = Object.getPrototypeOf(p);
1286
- }
997
+ for (const i in value) {
998
+ let desc,
999
+ p = value;
1287
1000
 
1288
- if (typeof desc.value === 'undefined') {
1289
- continue;
1290
- }
1001
+ while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {
1002
+ p = Object.getPrototypeOf(p);
1003
+ }
1291
1004
 
1292
- if (typeof desc.value === 'function') {
1293
- if (value.hasOwnProperty && value.hasOwnProperty(i)) {
1294
- throw new Error("LoopbackPort.postMessage - cannot clone: ".concat(value[i]));
1295
- }
1005
+ if (typeof desc.value === "undefined") {
1006
+ continue;
1007
+ }
1296
1008
 
1297
- continue;
1009
+ if (typeof desc.value === "function") {
1010
+ if (value.hasOwnProperty && value.hasOwnProperty(i)) {
1011
+ throw new Error(`LoopbackPort.postMessage - cannot clone: ${value[i]}`);
1298
1012
  }
1299
1013
 
1300
- result[i] = cloneValue(desc.value);
1014
+ continue;
1301
1015
  }
1302
1016
 
1303
- return result;
1017
+ result[i] = cloneValue(desc.value);
1304
1018
  }
1305
1019
 
1306
- if (!this._defer) {
1307
- this._listeners.forEach(function (listener) {
1308
- listener.call(_this10, {
1309
- data: obj
1310
- });
1020
+ return result;
1021
+ }
1022
+
1023
+ if (!this._defer) {
1024
+ this._listeners.forEach(listener => {
1025
+ listener.call(this, {
1026
+ data: obj
1311
1027
  });
1028
+ });
1312
1029
 
1313
- return;
1314
- }
1030
+ return;
1031
+ }
1315
1032
 
1316
- var cloned = new WeakMap();
1317
- var e = {
1318
- data: cloneValue(obj)
1319
- };
1033
+ const cloned = new WeakMap();
1034
+ const e = {
1035
+ data: cloneValue(obj)
1036
+ };
1320
1037
 
1321
- this._deferred.then(function () {
1322
- _this10._listeners.forEach(function (listener) {
1323
- listener.call(_this10, e);
1324
- });
1038
+ this._deferred.then(() => {
1039
+ this._listeners.forEach(listener => {
1040
+ listener.call(this, e);
1325
1041
  });
1326
- }
1327
- }, {
1328
- key: "addEventListener",
1329
- value: function addEventListener(name, listener) {
1330
- this._listeners.push(listener);
1331
- }
1332
- }, {
1333
- key: "removeEventListener",
1334
- value: function removeEventListener(name, listener) {
1335
- var i = this._listeners.indexOf(listener);
1042
+ });
1043
+ }
1336
1044
 
1337
- this._listeners.splice(i, 1);
1338
- }
1339
- }, {
1340
- key: "terminate",
1341
- value: function terminate() {
1342
- this._listeners.length = 0;
1343
- }
1344
- }]);
1045
+ addEventListener(name, listener) {
1046
+ this._listeners.push(listener);
1047
+ }
1345
1048
 
1346
- return LoopbackPort;
1347
- }();
1049
+ removeEventListener(name, listener) {
1050
+ const i = this._listeners.indexOf(listener);
1051
+
1052
+ this._listeners.splice(i, 1);
1053
+ }
1054
+
1055
+ terminate() {
1056
+ this._listeners.length = 0;
1057
+ }
1058
+
1059
+ }
1348
1060
 
1349
1061
  exports.LoopbackPort = LoopbackPort;
1350
1062
 
1351
- var PDFWorker = function PDFWorkerClosure() {
1352
- var pdfWorkerPorts = new WeakMap();
1353
- var nextFakeWorkerId = 0;
1354
- var fakeWorkerFilesLoadedCapability;
1063
+ const PDFWorker = function PDFWorkerClosure() {
1064
+ const pdfWorkerPorts = new WeakMap();
1065
+ let isWorkerDisabled = false;
1066
+ let fallbackWorkerSrc;
1067
+ let nextFakeWorkerId = 0;
1068
+ let fakeWorkerCapability;
1069
+
1070
+ if (_is_node.isNodeJS && typeof require === "function") {
1071
+ isWorkerDisabled = true;
1072
+ fallbackWorkerSrc = "../pdf.worker.js";
1073
+ } else if (typeof document === "object" && "currentScript" in document) {
1074
+ const pdfjsFilePath = document.currentScript && document.currentScript.src;
1075
+
1076
+ if (pdfjsFilePath) {
1077
+ fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, ".worker$1$2");
1078
+ }
1079
+ }
1355
1080
 
1356
- function _getWorkerSrc() {
1081
+ function getWorkerSrc() {
1357
1082
  if (_worker_options.GlobalWorkerOptions.workerSrc) {
1358
1083
  return _worker_options.GlobalWorkerOptions.workerSrc;
1359
1084
  }
1360
1085
 
1361
- if (typeof fallbackWorkerSrc !== 'undefined') {
1086
+ if (typeof fallbackWorkerSrc !== "undefined") {
1087
+ if (!_is_node.isNodeJS) {
1088
+ (0, _display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.');
1089
+ }
1090
+
1362
1091
  return fallbackWorkerSrc;
1363
1092
  }
1364
1093
 
@@ -1366,59 +1095,55 @@ var PDFWorker = function PDFWorkerClosure() {
1366
1095
  }
1367
1096
 
1368
1097
  function getMainThreadWorkerMessageHandler() {
1098
+ let mainWorkerMessageHandler;
1099
+
1369
1100
  try {
1370
- if (typeof window !== 'undefined') {
1371
- return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler;
1372
- }
1101
+ mainWorkerMessageHandler = globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler;
1373
1102
  } catch (ex) {}
1374
1103
 
1375
- return null;
1104
+ return mainWorkerMessageHandler || null;
1376
1105
  }
1377
1106
 
1378
1107
  function setupFakeWorkerGlobal() {
1379
- if (fakeWorkerFilesLoadedCapability) {
1380
- return fakeWorkerFilesLoadedCapability.promise;
1108
+ if (fakeWorkerCapability) {
1109
+ return fakeWorkerCapability.promise;
1381
1110
  }
1382
1111
 
1383
- fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)();
1384
- var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();
1112
+ fakeWorkerCapability = (0, _util.createPromiseCapability)();
1385
1113
 
1386
- if (mainWorkerMessageHandler) {
1387
- fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler);
1388
- return fakeWorkerFilesLoadedCapability.promise;
1389
- }
1114
+ const loader = async function () {
1115
+ const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();
1390
1116
 
1391
- var loader = fakeWorkerFilesLoader || function () {
1392
- return (0, _display_utils.loadScript)(_getWorkerSrc()).then(function () {
1393
- return window.pdfjsWorker.WorkerMessageHandler;
1394
- });
1117
+ if (mainWorkerMessageHandler) {
1118
+ return mainWorkerMessageHandler;
1119
+ }
1120
+
1121
+ if (_is_node.isNodeJS && typeof require === "function") {
1122
+ const worker = eval("require")(getWorkerSrc());
1123
+ return worker.WorkerMessageHandler;
1124
+ }
1125
+
1126
+ await (0, _display_utils.loadScript)(getWorkerSrc());
1127
+ return window.pdfjsWorker.WorkerMessageHandler;
1395
1128
  };
1396
1129
 
1397
- loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject);
1398
- return fakeWorkerFilesLoadedCapability.promise;
1130
+ loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject);
1131
+ return fakeWorkerCapability.promise;
1399
1132
  }
1400
1133
 
1401
1134
  function createCDNWrapper(url) {
1402
- var wrapper = 'importScripts(\'' + url + '\');';
1135
+ const wrapper = "importScripts('" + url + "');";
1403
1136
  return URL.createObjectURL(new Blob([wrapper]));
1404
1137
  }
1405
1138
 
1406
- var PDFWorker =
1407
- /*#__PURE__*/
1408
- function () {
1409
- function PDFWorker() {
1410
- var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
1411
- _ref8$name = _ref8.name,
1412
- name = _ref8$name === void 0 ? null : _ref8$name,
1413
- _ref8$port = _ref8.port,
1414
- port = _ref8$port === void 0 ? null : _ref8$port,
1415
- _ref8$verbosity = _ref8.verbosity,
1416
- verbosity = _ref8$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref8$verbosity;
1417
-
1418
- _classCallCheck(this, PDFWorker);
1419
-
1139
+ class PDFWorker {
1140
+ constructor({
1141
+ name = null,
1142
+ port = null,
1143
+ verbosity = (0, _util.getVerbosityLevel)()
1144
+ } = {}) {
1420
1145
  if (port && pdfWorkerPorts.has(port)) {
1421
- throw new Error('Cannot use more than one PDFWorker per port');
1146
+ throw new Error("Cannot use more than one PDFWorker per port");
1422
1147
  }
1423
1148
 
1424
1149
  this.name = name;
@@ -1441,215 +1166,199 @@ var PDFWorker = function PDFWorkerClosure() {
1441
1166
  this._initialize();
1442
1167
  }
1443
1168
 
1444
- _createClass(PDFWorker, [{
1445
- key: "_initializeFromPort",
1446
- value: function _initializeFromPort(port) {
1447
- this._port = port;
1448
- this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port);
1169
+ get promise() {
1170
+ return this._readyCapability.promise;
1171
+ }
1449
1172
 
1450
- this._messageHandler.on('ready', function () {});
1173
+ get port() {
1174
+ return this._port;
1175
+ }
1451
1176
 
1452
- this._readyCapability.resolve();
1453
- }
1454
- }, {
1455
- key: "_initialize",
1456
- value: function _initialize() {
1457
- var _this11 = this;
1177
+ get messageHandler() {
1178
+ return this._messageHandler;
1179
+ }
1458
1180
 
1459
- if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {
1460
- var workerSrc = _getWorkerSrc();
1181
+ _initializeFromPort(port) {
1182
+ this._port = port;
1183
+ this._messageHandler = new _message_handler.MessageHandler("main", "worker", port);
1461
1184
 
1462
- try {
1463
- if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {
1464
- workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href);
1465
- }
1185
+ this._messageHandler.on("ready", function () {});
1466
1186
 
1467
- var worker = new Worker(workerSrc);
1468
- var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker);
1187
+ this._readyCapability.resolve();
1188
+ }
1469
1189
 
1470
- var terminateEarly = function terminateEarly() {
1471
- worker.removeEventListener('error', onWorkerError);
1472
- messageHandler.destroy();
1473
- worker.terminate();
1190
+ _initialize() {
1191
+ if (typeof Worker !== "undefined" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {
1192
+ let workerSrc = getWorkerSrc();
1474
1193
 
1475
- if (_this11.destroyed) {
1476
- _this11._readyCapability.reject(new Error('Worker was destroyed'));
1477
- } else {
1478
- _this11._setupFakeWorker();
1479
- }
1480
- };
1194
+ try {
1195
+ if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {
1196
+ workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href);
1197
+ }
1481
1198
 
1482
- var onWorkerError = function onWorkerError() {
1483
- if (!_this11._webWorker) {
1484
- terminateEarly();
1485
- }
1486
- };
1199
+ const worker = new Worker(workerSrc);
1200
+ const messageHandler = new _message_handler.MessageHandler("main", "worker", worker);
1487
1201
 
1488
- worker.addEventListener('error', onWorkerError);
1489
- messageHandler.on('test', function (data) {
1490
- worker.removeEventListener('error', onWorkerError);
1202
+ const terminateEarly = () => {
1203
+ worker.removeEventListener("error", onWorkerError);
1204
+ messageHandler.destroy();
1205
+ worker.terminate();
1491
1206
 
1492
- if (_this11.destroyed) {
1493
- terminateEarly();
1494
- return;
1495
- }
1207
+ if (this.destroyed) {
1208
+ this._readyCapability.reject(new Error("Worker was destroyed"));
1209
+ } else {
1210
+ this._setupFakeWorker();
1211
+ }
1212
+ };
1496
1213
 
1497
- if (data) {
1498
- _this11._messageHandler = messageHandler;
1499
- _this11._port = worker;
1500
- _this11._webWorker = worker;
1214
+ const onWorkerError = () => {
1215
+ if (!this._webWorker) {
1216
+ terminateEarly();
1217
+ }
1218
+ };
1501
1219
 
1502
- if (!data.supportTransfers) {
1503
- _this11.postMessageTransfers = false;
1504
- }
1220
+ worker.addEventListener("error", onWorkerError);
1221
+ messageHandler.on("test", data => {
1222
+ worker.removeEventListener("error", onWorkerError);
1505
1223
 
1506
- _this11._readyCapability.resolve();
1224
+ if (this.destroyed) {
1225
+ terminateEarly();
1226
+ return;
1227
+ }
1507
1228
 
1508
- messageHandler.send('configure', {
1509
- verbosity: _this11.verbosity
1510
- });
1511
- } else {
1512
- _this11._setupFakeWorker();
1229
+ if (data) {
1230
+ this._messageHandler = messageHandler;
1231
+ this._port = worker;
1232
+ this._webWorker = worker;
1513
1233
 
1514
- messageHandler.destroy();
1515
- worker.terminate();
1234
+ if (!data.supportTransfers) {
1235
+ this.postMessageTransfers = false;
1516
1236
  }
1517
- });
1518
- messageHandler.on('ready', function (data) {
1519
- worker.removeEventListener('error', onWorkerError);
1520
1237
 
1521
- if (_this11.destroyed) {
1522
- terminateEarly();
1523
- return;
1524
- }
1238
+ this._readyCapability.resolve();
1525
1239
 
1526
- try {
1527
- sendTest();
1528
- } catch (e) {
1529
- _this11._setupFakeWorker();
1530
- }
1531
- });
1240
+ messageHandler.send("configure", {
1241
+ verbosity: this.verbosity
1242
+ });
1243
+ } else {
1244
+ this._setupFakeWorker();
1532
1245
 
1533
- var sendTest = function sendTest() {
1534
- var testObj = new Uint8Array([_this11.postMessageTransfers ? 255 : 0]);
1246
+ messageHandler.destroy();
1247
+ worker.terminate();
1248
+ }
1249
+ });
1250
+ messageHandler.on("ready", data => {
1251
+ worker.removeEventListener("error", onWorkerError);
1535
1252
 
1536
- try {
1537
- messageHandler.send('test', testObj, [testObj.buffer]);
1538
- } catch (ex) {
1539
- (0, _util.warn)('Cannot use postMessage transfers.');
1540
- testObj[0] = 0;
1541
- messageHandler.send('test', testObj);
1542
- }
1543
- };
1253
+ if (this.destroyed) {
1254
+ terminateEarly();
1255
+ return;
1256
+ }
1544
1257
 
1545
- sendTest();
1546
- return;
1547
- } catch (e) {
1548
- (0, _util.info)('The worker has been disabled.');
1549
- }
1258
+ try {
1259
+ sendTest();
1260
+ } catch (e) {
1261
+ this._setupFakeWorker();
1262
+ }
1263
+ });
1264
+
1265
+ const sendTest = () => {
1266
+ const testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]);
1267
+
1268
+ try {
1269
+ messageHandler.send("test", testObj, [testObj.buffer]);
1270
+ } catch (ex) {
1271
+ (0, _util.warn)("Cannot use postMessage transfers.");
1272
+ testObj[0] = 0;
1273
+ messageHandler.send("test", testObj);
1274
+ }
1275
+ };
1276
+
1277
+ sendTest();
1278
+ return;
1279
+ } catch (e) {
1280
+ (0, _util.info)("The worker has been disabled.");
1550
1281
  }
1282
+ }
1283
+
1284
+ this._setupFakeWorker();
1285
+ }
1551
1286
 
1552
- this._setupFakeWorker();
1287
+ _setupFakeWorker() {
1288
+ if (!isWorkerDisabled) {
1289
+ (0, _util.warn)("Setting up fake worker.");
1290
+ isWorkerDisabled = true;
1553
1291
  }
1554
- }, {
1555
- key: "_setupFakeWorker",
1556
- value: function _setupFakeWorker() {
1557
- var _this12 = this;
1558
1292
 
1559
- if (!isWorkerDisabled) {
1560
- (0, _util.warn)('Setting up fake worker.');
1561
- isWorkerDisabled = true;
1293
+ setupFakeWorkerGlobal().then(WorkerMessageHandler => {
1294
+ if (this.destroyed) {
1295
+ this._readyCapability.reject(new Error("Worker was destroyed"));
1296
+
1297
+ return;
1562
1298
  }
1563
1299
 
1564
- setupFakeWorkerGlobal().then(function (WorkerMessageHandler) {
1565
- if (_this12.destroyed) {
1566
- _this12._readyCapability.reject(new Error('Worker was destroyed'));
1300
+ const port = new LoopbackPort();
1301
+ this._port = port;
1302
+ const id = "fake" + nextFakeWorkerId++;
1303
+ const workerHandler = new _message_handler.MessageHandler(id + "_worker", id, port);
1304
+ WorkerMessageHandler.setup(workerHandler, port);
1305
+ const messageHandler = new _message_handler.MessageHandler(id, id + "_worker", port);
1306
+ this._messageHandler = messageHandler;
1567
1307
 
1568
- return;
1569
- }
1308
+ this._readyCapability.resolve();
1570
1309
 
1571
- var port = new LoopbackPort();
1572
- _this12._port = port;
1573
- var id = 'fake' + nextFakeWorkerId++;
1574
- var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port);
1575
- WorkerMessageHandler.setup(workerHandler, port);
1576
- var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port);
1577
- _this12._messageHandler = messageHandler;
1578
-
1579
- _this12._readyCapability.resolve();
1580
- })["catch"](function (reason) {
1581
- _this12._readyCapability.reject(new Error("Setting up fake worker failed: \"".concat(reason.message, "\".")));
1310
+ messageHandler.send("configure", {
1311
+ verbosity: this.verbosity
1582
1312
  });
1583
- }
1584
- }, {
1585
- key: "destroy",
1586
- value: function destroy() {
1587
- this.destroyed = true;
1313
+ }).catch(reason => {
1314
+ this._readyCapability.reject(new Error(`Setting up fake worker failed: "${reason.message}".`));
1315
+ });
1316
+ }
1588
1317
 
1589
- if (this._webWorker) {
1590
- this._webWorker.terminate();
1318
+ destroy() {
1319
+ this.destroyed = true;
1591
1320
 
1592
- this._webWorker = null;
1593
- }
1321
+ if (this._webWorker) {
1322
+ this._webWorker.terminate();
1594
1323
 
1595
- pdfWorkerPorts["delete"](this._port);
1596
- this._port = null;
1324
+ this._webWorker = null;
1325
+ }
1326
+
1327
+ pdfWorkerPorts.delete(this._port);
1328
+ this._port = null;
1597
1329
 
1598
- if (this._messageHandler) {
1599
- this._messageHandler.destroy();
1330
+ if (this._messageHandler) {
1331
+ this._messageHandler.destroy();
1600
1332
 
1601
- this._messageHandler = null;
1602
- }
1333
+ this._messageHandler = null;
1603
1334
  }
1604
- }, {
1605
- key: "promise",
1606
- get: function get() {
1607
- return this._readyCapability.promise;
1335
+ }
1336
+
1337
+ static fromPort(params) {
1338
+ if (!params || !params.port) {
1339
+ throw new Error("PDFWorker.fromPort - invalid method signature.");
1608
1340
  }
1609
- }, {
1610
- key: "port",
1611
- get: function get() {
1612
- return this._port;
1341
+
1342
+ if (pdfWorkerPorts.has(params.port)) {
1343
+ return pdfWorkerPorts.get(params.port);
1613
1344
  }
1614
- }, {
1615
- key: "messageHandler",
1616
- get: function get() {
1617
- return this._messageHandler;
1618
- }
1619
- }], [{
1620
- key: "fromPort",
1621
- value: function fromPort(params) {
1622
- if (!params || !params.port) {
1623
- throw new Error('PDFWorker.fromPort - invalid method signature.');
1624
- }
1625
1345
 
1626
- if (pdfWorkerPorts.has(params.port)) {
1627
- return pdfWorkerPorts.get(params.port);
1628
- }
1346
+ return new PDFWorker(params);
1347
+ }
1629
1348
 
1630
- return new PDFWorker(params);
1631
- }
1632
- }, {
1633
- key: "getWorkerSrc",
1634
- value: function getWorkerSrc() {
1635
- return _getWorkerSrc();
1636
- }
1637
- }]);
1349
+ static getWorkerSrc() {
1350
+ return getWorkerSrc();
1351
+ }
1638
1352
 
1639
- return PDFWorker;
1640
- }();
1353
+ }
1641
1354
 
1642
1355
  return PDFWorker;
1643
1356
  }();
1644
1357
 
1645
1358
  exports.PDFWorker = PDFWorker;
1646
1359
 
1647
- var WorkerTransport =
1648
- /*#__PURE__*/
1649
- function () {
1650
- function WorkerTransport(messageHandler, loadingTask, networkStream, params) {
1651
- _classCallCheck(this, WorkerTransport);
1652
-
1360
+ class WorkerTransport {
1361
+ constructor(messageHandler, loadingTask, networkStream, params) {
1653
1362
  this.messageHandler = messageHandler;
1654
1363
  this.loadingTask = loadingTask;
1655
1364
  this.commonObjs = new PDFObjects();
@@ -1674,747 +1383,687 @@ function () {
1674
1383
  this.setupMessageHandler();
1675
1384
  }
1676
1385
 
1677
- _createClass(WorkerTransport, [{
1678
- key: "destroy",
1679
- value: function destroy() {
1680
- var _this13 = this;
1386
+ destroy() {
1387
+ if (this.destroyCapability) {
1388
+ return this.destroyCapability.promise;
1389
+ }
1681
1390
 
1682
- if (this.destroyCapability) {
1683
- return this.destroyCapability.promise;
1684
- }
1391
+ this.destroyed = true;
1392
+ this.destroyCapability = (0, _util.createPromiseCapability)();
1685
1393
 
1686
- this.destroyed = true;
1687
- this.destroyCapability = (0, _util.createPromiseCapability)();
1394
+ if (this._passwordCapability) {
1395
+ this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback"));
1396
+ }
1688
1397
 
1689
- if (this._passwordCapability) {
1690
- this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback'));
1398
+ const waitOn = [];
1399
+ this.pageCache.forEach(function (page) {
1400
+ if (page) {
1401
+ waitOn.push(page._destroy());
1402
+ }
1403
+ });
1404
+ this.pageCache.length = 0;
1405
+ this.pagePromises.length = 0;
1406
+ const terminated = this.messageHandler.sendWithPromise("Terminate", null);
1407
+ waitOn.push(terminated);
1408
+ Promise.all(waitOn).then(() => {
1409
+ this.fontLoader.clear();
1410
+
1411
+ if (this._networkStream) {
1412
+ this._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated."));
1691
1413
  }
1692
1414
 
1693
- var waitOn = [];
1694
- this.pageCache.forEach(function (page) {
1695
- if (page) {
1696
- waitOn.push(page._destroy());
1697
- }
1698
- });
1699
- this.pageCache.length = 0;
1700
- this.pagePromises.length = 0;
1701
- var terminated = this.messageHandler.sendWithPromise('Terminate', null);
1702
- waitOn.push(terminated);
1703
- Promise.all(waitOn).then(function () {
1704
- _this13.fontLoader.clear();
1705
-
1706
- if (_this13._networkStream) {
1707
- _this13._networkStream.cancelAllRequests(new _util.AbortException('Worker was terminated.'));
1708
- }
1709
-
1710
- if (_this13.messageHandler) {
1711
- _this13.messageHandler.destroy();
1415
+ if (this.messageHandler) {
1416
+ this.messageHandler.destroy();
1417
+ this.messageHandler = null;
1418
+ }
1712
1419
 
1713
- _this13.messageHandler = null;
1714
- }
1420
+ this.destroyCapability.resolve();
1421
+ }, this.destroyCapability.reject);
1422
+ return this.destroyCapability.promise;
1423
+ }
1715
1424
 
1716
- _this13.destroyCapability.resolve();
1717
- }, this.destroyCapability.reject);
1718
- return this.destroyCapability.promise;
1719
- }
1720
- }, {
1721
- key: "setupMessageHandler",
1722
- value: function setupMessageHandler() {
1723
- var _this14 = this;
1724
-
1725
- var messageHandler = this.messageHandler,
1726
- loadingTask = this.loadingTask;
1727
- messageHandler.on('GetReader', function (data, sink) {
1728
- (0, _util.assert)(_this14._networkStream);
1729
- _this14._fullReader = _this14._networkStream.getFullReader();
1730
-
1731
- _this14._fullReader.onProgress = function (evt) {
1732
- _this14._lastProgress = {
1733
- loaded: evt.loaded,
1734
- total: evt.total
1735
- };
1425
+ setupMessageHandler() {
1426
+ const {
1427
+ messageHandler,
1428
+ loadingTask
1429
+ } = this;
1430
+ messageHandler.on("GetReader", (data, sink) => {
1431
+ (0, _util.assert)(this._networkStream);
1432
+ this._fullReader = this._networkStream.getFullReader();
1433
+
1434
+ this._fullReader.onProgress = evt => {
1435
+ this._lastProgress = {
1436
+ loaded: evt.loaded,
1437
+ total: evt.total
1736
1438
  };
1439
+ };
1737
1440
 
1738
- sink.onPull = function () {
1739
- _this14._fullReader.read().then(function (_ref9) {
1740
- var value = _ref9.value,
1741
- done = _ref9.done;
1441
+ sink.onPull = () => {
1442
+ this._fullReader.read().then(function ({
1443
+ value,
1444
+ done
1445
+ }) {
1446
+ if (done) {
1447
+ sink.close();
1448
+ return;
1449
+ }
1742
1450
 
1743
- if (done) {
1744
- sink.close();
1745
- return;
1746
- }
1451
+ (0, _util.assert)((0, _util.isArrayBuffer)(value));
1452
+ sink.enqueue(new Uint8Array(value), 1, [value]);
1453
+ }).catch(reason => {
1454
+ sink.error(reason);
1455
+ });
1456
+ };
1747
1457
 
1748
- (0, _util.assert)((0, _util.isArrayBuffer)(value));
1749
- sink.enqueue(new Uint8Array(value), 1, [value]);
1750
- })["catch"](function (reason) {
1751
- sink.error(reason);
1752
- });
1753
- };
1458
+ sink.onCancel = reason => {
1459
+ this._fullReader.cancel(reason);
1460
+ };
1461
+ });
1462
+ messageHandler.on("ReaderHeadersReady", data => {
1463
+ const headersCapability = (0, _util.createPromiseCapability)();
1464
+ const fullReader = this._fullReader;
1465
+ fullReader.headersReady.then(() => {
1466
+ if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {
1467
+ if (this._lastProgress && loadingTask.onProgress) {
1468
+ loadingTask.onProgress(this._lastProgress);
1469
+ }
1754
1470
 
1755
- sink.onCancel = function (reason) {
1756
- _this14._fullReader.cancel(reason);
1757
- };
1758
- });
1759
- messageHandler.on('ReaderHeadersReady', function (data) {
1760
- var headersCapability = (0, _util.createPromiseCapability)();
1761
- var fullReader = _this14._fullReader;
1762
- fullReader.headersReady.then(function () {
1763
- if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {
1764
- if (_this14._lastProgress && loadingTask.onProgress) {
1765
- loadingTask.onProgress(_this14._lastProgress);
1471
+ fullReader.onProgress = evt => {
1472
+ if (loadingTask.onProgress) {
1473
+ loadingTask.onProgress({
1474
+ loaded: evt.loaded,
1475
+ total: evt.total
1476
+ });
1766
1477
  }
1478
+ };
1479
+ }
1767
1480
 
1768
- fullReader.onProgress = function (evt) {
1769
- if (loadingTask.onProgress) {
1770
- loadingTask.onProgress({
1771
- loaded: evt.loaded,
1772
- total: evt.total
1773
- });
1774
- }
1775
- };
1776
- }
1481
+ headersCapability.resolve({
1482
+ isStreamingSupported: fullReader.isStreamingSupported,
1483
+ isRangeSupported: fullReader.isRangeSupported,
1484
+ contentLength: fullReader.contentLength
1485
+ });
1486
+ }, headersCapability.reject);
1487
+ return headersCapability.promise;
1488
+ });
1489
+ messageHandler.on("GetRangeReader", (data, sink) => {
1490
+ (0, _util.assert)(this._networkStream);
1777
1491
 
1778
- headersCapability.resolve({
1779
- isStreamingSupported: fullReader.isStreamingSupported,
1780
- isRangeSupported: fullReader.isRangeSupported,
1781
- contentLength: fullReader.contentLength
1782
- });
1783
- }, headersCapability.reject);
1784
- return headersCapability.promise;
1785
- });
1786
- messageHandler.on('GetRangeReader', function (data, sink) {
1787
- (0, _util.assert)(_this14._networkStream);
1492
+ const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);
1788
1493
 
1789
- var rangeReader = _this14._networkStream.getRangeReader(data.begin, data.end);
1494
+ if (!rangeReader) {
1495
+ sink.close();
1496
+ return;
1497
+ }
1790
1498
 
1791
- if (!rangeReader) {
1792
- sink.close();
1793
- return;
1794
- }
1499
+ sink.onPull = () => {
1500
+ rangeReader.read().then(function ({
1501
+ value,
1502
+ done
1503
+ }) {
1504
+ if (done) {
1505
+ sink.close();
1506
+ return;
1507
+ }
1795
1508
 
1796
- sink.onPull = function () {
1797
- rangeReader.read().then(function (_ref10) {
1798
- var value = _ref10.value,
1799
- done = _ref10.done;
1509
+ (0, _util.assert)((0, _util.isArrayBuffer)(value));
1510
+ sink.enqueue(new Uint8Array(value), 1, [value]);
1511
+ }).catch(reason => {
1512
+ sink.error(reason);
1513
+ });
1514
+ };
1800
1515
 
1801
- if (done) {
1802
- sink.close();
1803
- return;
1804
- }
1516
+ sink.onCancel = reason => {
1517
+ rangeReader.cancel(reason);
1518
+ };
1519
+ });
1520
+ messageHandler.on("GetDoc", ({
1521
+ pdfInfo
1522
+ }) => {
1523
+ this._numPages = pdfInfo.numPages;
1805
1524
 
1806
- (0, _util.assert)((0, _util.isArrayBuffer)(value));
1807
- sink.enqueue(new Uint8Array(value), 1, [value]);
1808
- })["catch"](function (reason) {
1809
- sink.error(reason);
1810
- });
1811
- };
1525
+ loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));
1526
+ });
1527
+ messageHandler.on("DocException", function (ex) {
1528
+ let reason;
1812
1529
 
1813
- sink.onCancel = function (reason) {
1814
- rangeReader.cancel(reason);
1815
- };
1816
- });
1817
- messageHandler.on('GetDoc', function (_ref11) {
1818
- var pdfInfo = _ref11.pdfInfo;
1819
- _this14._numPages = pdfInfo.numPages;
1530
+ switch (ex.name) {
1531
+ case "PasswordException":
1532
+ reason = new _util.PasswordException(ex.message, ex.code);
1533
+ break;
1820
1534
 
1821
- loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, _this14));
1822
- });
1823
- messageHandler.on('PasswordRequest', function (exception) {
1824
- _this14._passwordCapability = (0, _util.createPromiseCapability)();
1535
+ case "InvalidPDFException":
1536
+ reason = new _util.InvalidPDFException(ex.message);
1537
+ break;
1825
1538
 
1826
- if (loadingTask.onPassword) {
1827
- var updatePassword = function updatePassword(password) {
1828
- _this14._passwordCapability.resolve({
1829
- password: password
1830
- });
1831
- };
1539
+ case "MissingPDFException":
1540
+ reason = new _util.MissingPDFException(ex.message);
1541
+ break;
1832
1542
 
1833
- try {
1834
- loadingTask.onPassword(updatePassword, exception.code);
1835
- } catch (ex) {
1836
- _this14._passwordCapability.reject(ex);
1837
- }
1838
- } else {
1839
- _this14._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));
1840
- }
1543
+ case "UnexpectedResponseException":
1544
+ reason = new _util.UnexpectedResponseException(ex.message, ex.status);
1545
+ break;
1841
1546
 
1842
- return _this14._passwordCapability.promise;
1843
- });
1844
- messageHandler.on('PasswordException', function (exception) {
1845
- loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code));
1846
- });
1847
- messageHandler.on('InvalidPDF', function (exception) {
1848
- loadingTask._capability.reject(new _util.InvalidPDFException(exception.message));
1849
- });
1850
- messageHandler.on('MissingPDF', function (exception) {
1851
- loadingTask._capability.reject(new _util.MissingPDFException(exception.message));
1852
- });
1853
- messageHandler.on('UnexpectedResponse', function (exception) {
1854
- loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status));
1855
- });
1856
- messageHandler.on('UnknownError', function (exception) {
1857
- loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details));
1858
- });
1859
- messageHandler.on('DataLoaded', function (data) {
1860
- if (loadingTask.onProgress) {
1861
- loadingTask.onProgress({
1862
- loaded: data.length,
1863
- total: data.length
1864
- });
1865
- }
1547
+ case "UnknownErrorException":
1548
+ reason = new _util.UnknownErrorException(ex.message, ex.details);
1549
+ break;
1550
+ }
1866
1551
 
1867
- _this14.downloadInfoCapability.resolve(data);
1868
- });
1869
- messageHandler.on('StartRenderPage', function (data) {
1870
- if (_this14.destroyed) {
1871
- return;
1872
- }
1552
+ loadingTask._capability.reject(reason);
1553
+ });
1554
+ messageHandler.on("PasswordRequest", exception => {
1555
+ this._passwordCapability = (0, _util.createPromiseCapability)();
1873
1556
 
1874
- var page = _this14.pageCache[data.pageIndex];
1557
+ if (loadingTask.onPassword) {
1558
+ const updatePassword = password => {
1559
+ this._passwordCapability.resolve({
1560
+ password
1561
+ });
1562
+ };
1875
1563
 
1876
- page._startRenderPage(data.transparency, data.intent);
1877
- });
1878
- messageHandler.on('commonobj', function (data) {
1879
- if (_this14.destroyed) {
1880
- return;
1564
+ try {
1565
+ loadingTask.onPassword(updatePassword, exception.code);
1566
+ } catch (ex) {
1567
+ this._passwordCapability.reject(ex);
1881
1568
  }
1569
+ } else {
1570
+ this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));
1571
+ }
1882
1572
 
1883
- var _data = _slicedToArray(data, 3),
1884
- id = _data[0],
1885
- type = _data[1],
1886
- exportedData = _data[2];
1887
-
1888
- if (_this14.commonObjs.has(id)) {
1889
- return;
1890
- }
1573
+ return this._passwordCapability.promise;
1574
+ });
1575
+ messageHandler.on("DataLoaded", data => {
1576
+ if (loadingTask.onProgress) {
1577
+ loadingTask.onProgress({
1578
+ loaded: data.length,
1579
+ total: data.length
1580
+ });
1581
+ }
1891
1582
 
1892
- switch (type) {
1893
- case 'Font':
1894
- var params = _this14._params;
1583
+ this.downloadInfoCapability.resolve(data);
1584
+ });
1585
+ messageHandler.on("StartRenderPage", data => {
1586
+ if (this.destroyed) {
1587
+ return;
1588
+ }
1895
1589
 
1896
- if ('error' in exportedData) {
1897
- var exportedError = exportedData.error;
1898
- (0, _util.warn)("Error during font loading: ".concat(exportedError));
1590
+ const page = this.pageCache[data.pageIndex];
1899
1591
 
1900
- _this14.commonObjs.resolve(id, exportedError);
1592
+ page._startRenderPage(data.transparency, data.intent);
1593
+ });
1594
+ messageHandler.on("commonobj", data => {
1595
+ if (this.destroyed) {
1596
+ return;
1597
+ }
1901
1598
 
1902
- break;
1903
- }
1599
+ const [id, type, exportedData] = data;
1904
1600
 
1905
- var fontRegistry = null;
1601
+ if (this.commonObjs.has(id)) {
1602
+ return;
1603
+ }
1906
1604
 
1907
- if (params.pdfBug && _global_scope["default"].FontInspector && _global_scope["default"].FontInspector.enabled) {
1908
- fontRegistry = {
1909
- registerFont: function registerFont(font, url) {
1910
- _global_scope["default"]['FontInspector'].fontAdded(font, url);
1911
- }
1912
- };
1913
- }
1605
+ switch (type) {
1606
+ case "Font":
1607
+ const params = this._params;
1914
1608
 
1915
- var font = new _font_loader.FontFaceObject(exportedData, {
1916
- isEvalSupported: params.isEvalSupported,
1917
- disableFontFace: params.disableFontFace,
1918
- ignoreErrors: params.ignoreErrors,
1919
- onUnsupportedFeature: _this14._onUnsupportedFeature.bind(_this14),
1920
- fontRegistry: fontRegistry
1921
- });
1609
+ if ("error" in exportedData) {
1610
+ const exportedError = exportedData.error;
1611
+ (0, _util.warn)(`Error during font loading: ${exportedError}`);
1612
+ this.commonObjs.resolve(id, exportedError);
1613
+ break;
1614
+ }
1922
1615
 
1923
- _this14.fontLoader.bind(font).then(function () {
1924
- _this14.commonObjs.resolve(id, font);
1925
- }, function (reason) {
1926
- messageHandler.sendWithPromise('FontFallback', {
1927
- id: id
1928
- })["finally"](function () {
1929
- _this14.commonObjs.resolve(id, font);
1930
- });
1931
- });
1616
+ let fontRegistry = null;
1932
1617
 
1933
- break;
1618
+ if (params.pdfBug && globalThis.FontInspector && globalThis.FontInspector.enabled) {
1619
+ fontRegistry = {
1620
+ registerFont(font, url) {
1621
+ globalThis.FontInspector.fontAdded(font, url);
1622
+ }
1934
1623
 
1935
- case 'FontPath':
1936
- case 'FontType3Res':
1937
- _this14.commonObjs.resolve(id, exportedData);
1624
+ };
1625
+ }
1938
1626
 
1939
- break;
1627
+ const font = new _font_loader.FontFaceObject(exportedData, {
1628
+ isEvalSupported: params.isEvalSupported,
1629
+ disableFontFace: params.disableFontFace,
1630
+ ignoreErrors: params.ignoreErrors,
1631
+ onUnsupportedFeature: this._onUnsupportedFeature.bind(this),
1632
+ fontRegistry
1633
+ });
1634
+ this.fontLoader.bind(font).then(() => {
1635
+ this.commonObjs.resolve(id, font);
1636
+ }, reason => {
1637
+ messageHandler.sendWithPromise("FontFallback", {
1638
+ id
1639
+ }).finally(() => {
1640
+ this.commonObjs.resolve(id, font);
1641
+ });
1642
+ });
1643
+ break;
1940
1644
 
1941
- default:
1942
- throw new Error("Got unknown common object type ".concat(type));
1943
- }
1944
- });
1945
- messageHandler.on('obj', function (data) {
1946
- if (_this14.destroyed) {
1947
- return undefined;
1948
- }
1645
+ case "FontPath":
1646
+ case "FontType3Res":
1647
+ this.commonObjs.resolve(id, exportedData);
1648
+ break;
1949
1649
 
1950
- var _data2 = _slicedToArray(data, 4),
1951
- id = _data2[0],
1952
- pageIndex = _data2[1],
1953
- type = _data2[2],
1954
- imageData = _data2[3];
1650
+ default:
1651
+ throw new Error(`Got unknown common object type ${type}`);
1652
+ }
1653
+ });
1654
+ messageHandler.on("obj", data => {
1655
+ if (this.destroyed) {
1656
+ return undefined;
1657
+ }
1955
1658
 
1956
- var pageProxy = _this14.pageCache[pageIndex];
1659
+ const [id, pageIndex, type, imageData] = data;
1660
+ const pageProxy = this.pageCache[pageIndex];
1957
1661
 
1958
- if (pageProxy.objs.has(id)) {
1959
- return undefined;
1960
- }
1662
+ if (pageProxy.objs.has(id)) {
1663
+ return undefined;
1664
+ }
1961
1665
 
1962
- switch (type) {
1963
- case 'JpegStream':
1964
- return new Promise(function (resolve, reject) {
1965
- var img = new Image();
1666
+ switch (type) {
1667
+ case "JpegStream":
1668
+ return new Promise((resolve, reject) => {
1669
+ const img = new Image();
1966
1670
 
1967
- img.onload = function () {
1968
- resolve(img);
1969
- };
1671
+ img.onload = function () {
1672
+ resolve(img);
1673
+ };
1970
1674
 
1971
- img.onerror = function () {
1972
- reject(new Error('Error during JPEG image loading'));
1973
- (0, _display_utils.releaseImageResources)(img);
1974
- };
1675
+ img.onerror = function () {
1676
+ reject(new Error("Error during JPEG image loading"));
1677
+ (0, _display_utils.releaseImageResources)(img);
1678
+ };
1975
1679
 
1976
- img.src = imageData;
1977
- }).then(function (img) {
1978
- pageProxy.objs.resolve(id, img);
1979
- });
1680
+ img.src = imageData;
1681
+ }).then(img => {
1682
+ pageProxy.objs.resolve(id, img);
1683
+ });
1980
1684
 
1981
- case 'Image':
1982
- pageProxy.objs.resolve(id, imageData);
1983
- var MAX_IMAGE_SIZE_TO_STORE = 8000000;
1685
+ case "Image":
1686
+ pageProxy.objs.resolve(id, imageData);
1687
+ const MAX_IMAGE_SIZE_TO_STORE = 8000000;
1984
1688
 
1985
- if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {
1986
- pageProxy.cleanupAfterRender = true;
1987
- }
1689
+ if (imageData && "data" in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {
1690
+ pageProxy.cleanupAfterRender = true;
1691
+ }
1988
1692
 
1989
- break;
1693
+ break;
1990
1694
 
1991
- default:
1992
- throw new Error("Got unknown object type ".concat(type));
1993
- }
1695
+ default:
1696
+ throw new Error(`Got unknown object type ${type}`);
1697
+ }
1994
1698
 
1995
- return undefined;
1996
- });
1997
- messageHandler.on('DocProgress', function (data) {
1998
- if (_this14.destroyed) {
1999
- return;
2000
- }
1699
+ return undefined;
1700
+ });
1701
+ messageHandler.on("DocProgress", data => {
1702
+ if (this.destroyed) {
1703
+ return;
1704
+ }
2001
1705
 
2002
- if (loadingTask.onProgress) {
2003
- loadingTask.onProgress({
2004
- loaded: data.loaded,
2005
- total: data.total
2006
- });
2007
- }
2008
- });
2009
- messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature.bind(this));
2010
- messageHandler.on('JpegDecode', function (data) {
2011
- if (_this14.destroyed) {
2012
- return Promise.reject(new Error('Worker was destroyed'));
2013
- }
1706
+ if (loadingTask.onProgress) {
1707
+ loadingTask.onProgress({
1708
+ loaded: data.loaded,
1709
+ total: data.total
1710
+ });
1711
+ }
1712
+ });
1713
+ messageHandler.on("UnsupportedFeature", this._onUnsupportedFeature.bind(this));
1714
+ messageHandler.on("JpegDecode", data => {
1715
+ if (this.destroyed) {
1716
+ return Promise.reject(new Error("Worker was destroyed"));
1717
+ }
2014
1718
 
2015
- if (typeof document === 'undefined') {
2016
- return Promise.reject(new Error('"document" is not defined.'));
2017
- }
1719
+ if (typeof document === "undefined") {
1720
+ return Promise.reject(new Error('"document" is not defined.'));
1721
+ }
2018
1722
 
2019
- var _data3 = _slicedToArray(data, 2),
2020
- imageUrl = _data3[0],
2021
- components = _data3[1];
1723
+ const [imageUrl, components] = data;
2022
1724
 
2023
- if (components !== 3 && components !== 1) {
2024
- return Promise.reject(new Error('Only 3 components or 1 component can be returned'));
2025
- }
1725
+ if (components !== 3 && components !== 1) {
1726
+ return Promise.reject(new Error("Only 3 components or 1 component can be returned"));
1727
+ }
2026
1728
 
2027
- return new Promise(function (resolve, reject) {
2028
- var img = new Image();
2029
-
2030
- img.onload = function () {
2031
- var width = img.width,
2032
- height = img.height;
2033
- var size = width * height;
2034
- var rgbaLength = size * 4;
2035
- var buf = new Uint8ClampedArray(size * components);
2036
- var tmpCanvas = document.createElement('canvas');
2037
- tmpCanvas.width = width;
2038
- tmpCanvas.height = height;
2039
- var tmpCtx = tmpCanvas.getContext('2d');
2040
- tmpCtx.drawImage(img, 0, 0);
2041
- var data = tmpCtx.getImageData(0, 0, width, height).data;
2042
-
2043
- if (components === 3) {
2044
- for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {
2045
- buf[j] = data[i];
2046
- buf[j + 1] = data[i + 1];
2047
- buf[j + 2] = data[i + 2];
2048
- }
2049
- } else if (components === 1) {
2050
- for (var _i2 = 0, _j = 0; _i2 < rgbaLength; _i2 += 4, _j++) {
2051
- buf[_j] = data[_i2];
2052
- }
1729
+ return new Promise(function (resolve, reject) {
1730
+ const img = new Image();
1731
+
1732
+ img.onload = function () {
1733
+ const {
1734
+ width,
1735
+ height
1736
+ } = img;
1737
+ const size = width * height;
1738
+ const rgbaLength = size * 4;
1739
+ const buf = new Uint8ClampedArray(size * components);
1740
+ let tmpCanvas = document.createElement("canvas");
1741
+ tmpCanvas.width = width;
1742
+ tmpCanvas.height = height;
1743
+ let tmpCtx = tmpCanvas.getContext("2d");
1744
+ tmpCtx.drawImage(img, 0, 0);
1745
+ const data = tmpCtx.getImageData(0, 0, width, height).data;
1746
+
1747
+ if (components === 3) {
1748
+ for (let i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {
1749
+ buf[j] = data[i];
1750
+ buf[j + 1] = data[i + 1];
1751
+ buf[j + 2] = data[i + 2];
1752
+ }
1753
+ } else if (components === 1) {
1754
+ for (let i = 0, j = 0; i < rgbaLength; i += 4, j++) {
1755
+ buf[j] = data[i];
2053
1756
  }
1757
+ }
2054
1758
 
2055
- resolve({
2056
- data: buf,
2057
- width: width,
2058
- height: height
2059
- });
2060
- (0, _display_utils.releaseImageResources)(img);
2061
- tmpCanvas.width = 0;
2062
- tmpCanvas.height = 0;
2063
- tmpCanvas = null;
2064
- tmpCtx = null;
2065
- };
1759
+ resolve({
1760
+ data: buf,
1761
+ width,
1762
+ height
1763
+ });
1764
+ (0, _display_utils.releaseImageResources)(img);
1765
+ tmpCanvas.width = 0;
1766
+ tmpCanvas.height = 0;
1767
+ tmpCanvas = null;
1768
+ tmpCtx = null;
1769
+ };
2066
1770
 
2067
- img.onerror = function () {
2068
- reject(new Error('JpegDecode failed to load image'));
2069
- (0, _display_utils.releaseImageResources)(img);
2070
- };
1771
+ img.onerror = function () {
1772
+ reject(new Error("JpegDecode failed to load image"));
1773
+ (0, _display_utils.releaseImageResources)(img);
1774
+ };
2071
1775
 
2072
- img.src = imageUrl;
2073
- });
1776
+ img.src = imageUrl;
2074
1777
  });
2075
- messageHandler.on('FetchBuiltInCMap', function (data, sink) {
2076
- if (_this14.destroyed) {
2077
- sink.error(new Error('Worker was destroyed'));
1778
+ });
1779
+ messageHandler.on("FetchBuiltInCMap", (data, sink) => {
1780
+ if (this.destroyed) {
1781
+ sink.error(new Error("Worker was destroyed"));
1782
+ return;
1783
+ }
1784
+
1785
+ let fetched = false;
1786
+
1787
+ sink.onPull = () => {
1788
+ if (fetched) {
1789
+ sink.close();
2078
1790
  return;
2079
1791
  }
2080
1792
 
2081
- var fetched = false;
2082
-
2083
- sink.onPull = function () {
2084
- if (fetched) {
2085
- sink.close();
2086
- return;
2087
- }
1793
+ fetched = true;
1794
+ this.CMapReaderFactory.fetch(data).then(function (builtInCMap) {
1795
+ sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);
1796
+ }).catch(function (reason) {
1797
+ sink.error(reason);
1798
+ });
1799
+ };
1800
+ });
1801
+ }
2088
1802
 
2089
- fetched = true;
1803
+ _onUnsupportedFeature({
1804
+ featureId
1805
+ }) {
1806
+ if (this.destroyed) {
1807
+ return;
1808
+ }
2090
1809
 
2091
- _this14.CMapReaderFactory.fetch(data).then(function (builtInCMap) {
2092
- sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);
2093
- })["catch"](function (reason) {
2094
- sink.error(reason);
2095
- });
2096
- };
2097
- });
1810
+ if (this.loadingTask.onUnsupportedFeature) {
1811
+ this.loadingTask.onUnsupportedFeature(featureId);
2098
1812
  }
2099
- }, {
2100
- key: "_onUnsupportedFeature",
2101
- value: function _onUnsupportedFeature(_ref12) {
2102
- var featureId = _ref12.featureId;
1813
+ }
2103
1814
 
2104
- if (this.destroyed) {
2105
- return;
2106
- }
1815
+ getData() {
1816
+ return this.messageHandler.sendWithPromise("GetData", null);
1817
+ }
2107
1818
 
2108
- if (this.loadingTask.onUnsupportedFeature) {
2109
- this.loadingTask.onUnsupportedFeature(featureId);
2110
- }
1819
+ getPage(pageNumber) {
1820
+ if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {
1821
+ return Promise.reject(new Error("Invalid page request"));
2111
1822
  }
2112
- }, {
2113
- key: "getData",
2114
- value: function getData() {
2115
- return this.messageHandler.sendWithPromise('GetData', null);
1823
+
1824
+ const pageIndex = pageNumber - 1;
1825
+
1826
+ if (pageIndex in this.pagePromises) {
1827
+ return this.pagePromises[pageIndex];
2116
1828
  }
2117
- }, {
2118
- key: "getPage",
2119
- value: function getPage(pageNumber) {
2120
- var _this15 = this;
2121
1829
 
2122
- if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {
2123
- return Promise.reject(new Error('Invalid page request'));
1830
+ const promise = this.messageHandler.sendWithPromise("GetPage", {
1831
+ pageIndex
1832
+ }).then(pageInfo => {
1833
+ if (this.destroyed) {
1834
+ throw new Error("Transport destroyed");
2124
1835
  }
2125
1836
 
2126
- var pageIndex = pageNumber - 1;
1837
+ const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.pdfBug);
1838
+ this.pageCache[pageIndex] = page;
1839
+ return page;
1840
+ });
1841
+ this.pagePromises[pageIndex] = promise;
1842
+ return promise;
1843
+ }
2127
1844
 
2128
- if (pageIndex in this.pagePromises) {
2129
- return this.pagePromises[pageIndex];
2130
- }
1845
+ getPageIndex(ref) {
1846
+ return this.messageHandler.sendWithPromise("GetPageIndex", {
1847
+ ref
1848
+ }).catch(function (reason) {
1849
+ return Promise.reject(new Error(reason));
1850
+ });
1851
+ }
2131
1852
 
2132
- var promise = this.messageHandler.sendWithPromise('GetPage', {
2133
- pageIndex: pageIndex
2134
- }).then(function (pageInfo) {
2135
- if (_this15.destroyed) {
2136
- throw new Error('Transport destroyed');
2137
- }
1853
+ getAnnotations(pageIndex, intent) {
1854
+ return this.messageHandler.sendWithPromise("GetAnnotations", {
1855
+ pageIndex,
1856
+ intent
1857
+ });
1858
+ }
2138
1859
 
2139
- var page = new PDFPageProxy(pageIndex, pageInfo, _this15, _this15._params.pdfBug);
2140
- _this15.pageCache[pageIndex] = page;
2141
- return page;
2142
- });
2143
- this.pagePromises[pageIndex] = promise;
2144
- return promise;
2145
- }
2146
- }, {
2147
- key: "getPageIndex",
2148
- value: function getPageIndex(ref) {
2149
- return this.messageHandler.sendWithPromise('GetPageIndex', {
2150
- ref: ref
2151
- })["catch"](function (reason) {
2152
- return Promise.reject(new Error(reason));
2153
- });
2154
- }
2155
- }, {
2156
- key: "getAnnotations",
2157
- value: function getAnnotations(pageIndex, intent) {
2158
- return this.messageHandler.sendWithPromise('GetAnnotations', {
2159
- pageIndex: pageIndex,
2160
- intent: intent
2161
- });
2162
- }
2163
- }, {
2164
- key: "getDestinations",
2165
- value: function getDestinations() {
2166
- return this.messageHandler.sendWithPromise('GetDestinations', null);
2167
- }
2168
- }, {
2169
- key: "getDestination",
2170
- value: function getDestination(id) {
2171
- if (typeof id !== 'string') {
2172
- return Promise.reject(new Error('Invalid destination request.'));
2173
- }
1860
+ getDestinations() {
1861
+ return this.messageHandler.sendWithPromise("GetDestinations", null);
1862
+ }
2174
1863
 
2175
- return this.messageHandler.sendWithPromise('GetDestination', {
2176
- id: id
2177
- });
2178
- }
2179
- }, {
2180
- key: "getPageLabels",
2181
- value: function getPageLabels() {
2182
- return this.messageHandler.sendWithPromise('GetPageLabels', null);
2183
- }
2184
- }, {
2185
- key: "getPageLayout",
2186
- value: function getPageLayout() {
2187
- return this.messageHandler.sendWithPromise('GetPageLayout', null);
2188
- }
2189
- }, {
2190
- key: "getPageMode",
2191
- value: function getPageMode() {
2192
- return this.messageHandler.sendWithPromise('GetPageMode', null);
2193
- }
2194
- }, {
2195
- key: "getViewerPreferences",
2196
- value: function getViewerPreferences() {
2197
- return this.messageHandler.sendWithPromise('GetViewerPreferences', null);
2198
- }
2199
- }, {
2200
- key: "getOpenActionDestination",
2201
- value: function getOpenActionDestination() {
2202
- return this.messageHandler.sendWithPromise('GetOpenActionDestination', null);
2203
- }
2204
- }, {
2205
- key: "getAttachments",
2206
- value: function getAttachments() {
2207
- return this.messageHandler.sendWithPromise('GetAttachments', null);
2208
- }
2209
- }, {
2210
- key: "getJavaScript",
2211
- value: function getJavaScript() {
2212
- return this.messageHandler.sendWithPromise('GetJavaScript', null);
2213
- }
2214
- }, {
2215
- key: "getOutline",
2216
- value: function getOutline() {
2217
- return this.messageHandler.sendWithPromise('GetOutline', null);
2218
- }
2219
- }, {
2220
- key: "getPermissions",
2221
- value: function getPermissions() {
2222
- return this.messageHandler.sendWithPromise('GetPermissions', null);
2223
- }
2224
- }, {
2225
- key: "getMetadata",
2226
- value: function getMetadata() {
2227
- var _this16 = this;
2228
-
2229
- return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) {
2230
- return {
2231
- info: results[0],
2232
- metadata: results[1] ? new _metadata.Metadata(results[1]) : null,
2233
- contentDispositionFilename: _this16._fullReader ? _this16._fullReader.filename : null
2234
- };
2235
- });
2236
- }
2237
- }, {
2238
- key: "getStats",
2239
- value: function getStats() {
2240
- return this.messageHandler.sendWithPromise('GetStats', null);
1864
+ getDestination(id) {
1865
+ if (typeof id !== "string") {
1866
+ return Promise.reject(new Error("Invalid destination request."));
2241
1867
  }
2242
- }, {
2243
- key: "startCleanup",
2244
- value: function startCleanup() {
2245
- var _this17 = this;
2246
1868
 
2247
- this.messageHandler.sendWithPromise('Cleanup', null).then(function () {
2248
- for (var i = 0, ii = _this17.pageCache.length; i < ii; i++) {
2249
- var page = _this17.pageCache[i];
1869
+ return this.messageHandler.sendWithPromise("GetDestination", {
1870
+ id
1871
+ });
1872
+ }
2250
1873
 
2251
- if (page) {
2252
- page.cleanup();
2253
- }
2254
- }
1874
+ getPageLabels() {
1875
+ return this.messageHandler.sendWithPromise("GetPageLabels", null);
1876
+ }
2255
1877
 
2256
- _this17.commonObjs.clear();
1878
+ getPageLayout() {
1879
+ return this.messageHandler.sendWithPromise("GetPageLayout", null);
1880
+ }
2257
1881
 
2258
- _this17.fontLoader.clear();
2259
- });
2260
- }
2261
- }, {
2262
- key: "loadingParams",
2263
- get: function get() {
2264
- var params = this._params;
2265
- return (0, _util.shadow)(this, 'loadingParams', {
2266
- disableAutoFetch: params.disableAutoFetch,
2267
- disableCreateObjectURL: params.disableCreateObjectURL,
2268
- disableFontFace: params.disableFontFace,
2269
- nativeImageDecoderSupport: params.nativeImageDecoderSupport
2270
- });
2271
- }
2272
- }]);
1882
+ getPageMode() {
1883
+ return this.messageHandler.sendWithPromise("GetPageMode", null);
1884
+ }
2273
1885
 
2274
- return WorkerTransport;
2275
- }();
1886
+ getViewerPreferences() {
1887
+ return this.messageHandler.sendWithPromise("GetViewerPreferences", null);
1888
+ }
2276
1889
 
2277
- var PDFObjects =
2278
- /*#__PURE__*/
2279
- function () {
2280
- function PDFObjects() {
2281
- _classCallCheck(this, PDFObjects);
1890
+ getOpenAction() {
1891
+ return this.messageHandler.sendWithPromise("GetOpenAction", null);
1892
+ }
2282
1893
 
2283
- this._objs = Object.create(null);
1894
+ getAttachments() {
1895
+ return this.messageHandler.sendWithPromise("GetAttachments", null);
2284
1896
  }
2285
1897
 
2286
- _createClass(PDFObjects, [{
2287
- key: "_ensureObj",
2288
- value: function _ensureObj(objId) {
2289
- if (this._objs[objId]) {
2290
- return this._objs[objId];
2291
- }
1898
+ getJavaScript() {
1899
+ return this.messageHandler.sendWithPromise("GetJavaScript", null);
1900
+ }
1901
+
1902
+ getOutline() {
1903
+ return this.messageHandler.sendWithPromise("GetOutline", null);
1904
+ }
1905
+
1906
+ getPermissions() {
1907
+ return this.messageHandler.sendWithPromise("GetPermissions", null);
1908
+ }
2292
1909
 
2293
- return this._objs[objId] = {
2294
- capability: (0, _util.createPromiseCapability)(),
2295
- data: null,
2296
- resolved: false
1910
+ getMetadata() {
1911
+ return this.messageHandler.sendWithPromise("GetMetadata", null).then(results => {
1912
+ return {
1913
+ info: results[0],
1914
+ metadata: results[1] ? new _metadata.Metadata(results[1]) : null,
1915
+ contentDispositionFilename: this._fullReader ? this._fullReader.filename : null
2297
1916
  };
2298
- }
2299
- }, {
2300
- key: "get",
2301
- value: function get(objId) {
2302
- var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1917
+ });
1918
+ }
2303
1919
 
2304
- if (callback) {
2305
- this._ensureObj(objId).capability.promise.then(callback);
1920
+ getStats() {
1921
+ return this.messageHandler.sendWithPromise("GetStats", null);
1922
+ }
2306
1923
 
2307
- return null;
2308
- }
1924
+ startCleanup() {
1925
+ return this.messageHandler.sendWithPromise("Cleanup", null).then(() => {
1926
+ for (let i = 0, ii = this.pageCache.length; i < ii; i++) {
1927
+ const page = this.pageCache[i];
2309
1928
 
2310
- var obj = this._objs[objId];
1929
+ if (page) {
1930
+ const cleanupSuccessful = page.cleanup();
2311
1931
 
2312
- if (!obj || !obj.resolved) {
2313
- throw new Error("Requesting object that isn't resolved yet ".concat(objId, "."));
1932
+ if (!cleanupSuccessful) {
1933
+ throw new Error(`startCleanup: Page ${i + 1} is currently rendering.`);
1934
+ }
1935
+ }
2314
1936
  }
2315
1937
 
2316
- return obj.data;
1938
+ this.commonObjs.clear();
1939
+ this.fontLoader.clear();
1940
+ });
1941
+ }
1942
+
1943
+ get loadingParams() {
1944
+ const params = this._params;
1945
+ return (0, _util.shadow)(this, "loadingParams", {
1946
+ disableAutoFetch: params.disableAutoFetch,
1947
+ disableCreateObjectURL: params.disableCreateObjectURL,
1948
+ disableFontFace: params.disableFontFace,
1949
+ nativeImageDecoderSupport: params.nativeImageDecoderSupport
1950
+ });
1951
+ }
1952
+
1953
+ }
1954
+
1955
+ class PDFObjects {
1956
+ constructor() {
1957
+ this._objs = Object.create(null);
1958
+ }
1959
+
1960
+ _ensureObj(objId) {
1961
+ if (this._objs[objId]) {
1962
+ return this._objs[objId];
2317
1963
  }
2318
- }, {
2319
- key: "has",
2320
- value: function has(objId) {
2321
- var obj = this._objs[objId];
2322
- return obj ? obj.resolved : false;
1964
+
1965
+ return this._objs[objId] = {
1966
+ capability: (0, _util.createPromiseCapability)(),
1967
+ data: null,
1968
+ resolved: false
1969
+ };
1970
+ }
1971
+
1972
+ get(objId, callback = null) {
1973
+ if (callback) {
1974
+ this._ensureObj(objId).capability.promise.then(callback);
1975
+
1976
+ return null;
2323
1977
  }
2324
- }, {
2325
- key: "resolve",
2326
- value: function resolve(objId, data) {
2327
- var obj = this._ensureObj(objId);
2328
1978
 
2329
- obj.resolved = true;
2330
- obj.data = data;
2331
- obj.capability.resolve(data);
1979
+ const obj = this._objs[objId];
1980
+
1981
+ if (!obj || !obj.resolved) {
1982
+ throw new Error(`Requesting object that isn't resolved yet ${objId}.`);
2332
1983
  }
2333
- }, {
2334
- key: "clear",
2335
- value: function clear() {
2336
- for (var objId in this._objs) {
2337
- var data = this._objs[objId].data;
2338
1984
 
2339
- if (typeof Image !== 'undefined' && data instanceof Image) {
2340
- (0, _display_utils.releaseImageResources)(data);
2341
- }
2342
- }
1985
+ return obj.data;
1986
+ }
1987
+
1988
+ has(objId) {
1989
+ const obj = this._objs[objId];
1990
+ return obj ? obj.resolved : false;
1991
+ }
1992
+
1993
+ resolve(objId, data) {
1994
+ const obj = this._ensureObj(objId);
2343
1995
 
2344
- this._objs = Object.create(null);
1996
+ obj.resolved = true;
1997
+ obj.data = data;
1998
+ obj.capability.resolve(data);
1999
+ }
2000
+
2001
+ clear() {
2002
+ for (const objId in this._objs) {
2003
+ const {
2004
+ data
2005
+ } = this._objs[objId];
2006
+
2007
+ if (typeof Image !== "undefined" && data instanceof Image) {
2008
+ (0, _display_utils.releaseImageResources)(data);
2009
+ }
2345
2010
  }
2346
- }]);
2347
2011
 
2348
- return PDFObjects;
2349
- }();
2012
+ this._objs = Object.create(null);
2013
+ }
2350
2014
 
2351
- var RenderTask =
2352
- /*#__PURE__*/
2353
- function () {
2354
- function RenderTask(internalRenderTask) {
2355
- _classCallCheck(this, RenderTask);
2015
+ }
2356
2016
 
2017
+ class RenderTask {
2018
+ constructor(internalRenderTask) {
2357
2019
  this._internalRenderTask = internalRenderTask;
2358
2020
  this.onContinue = null;
2359
2021
  }
2360
2022
 
2361
- _createClass(RenderTask, [{
2362
- key: "cancel",
2363
- value: function cancel() {
2364
- this._internalRenderTask.cancel();
2365
- }
2366
- }, {
2367
- key: "then",
2368
- value: function then(onFulfilled, onRejected) {
2369
- (0, _display_utils.deprecated)('RenderTask.then method, use the `promise` getter instead.');
2370
- return this.promise.then.apply(this.promise, arguments);
2371
- }
2372
- }, {
2373
- key: "promise",
2374
- get: function get() {
2375
- return this._internalRenderTask.capability.promise;
2376
- }
2377
- }]);
2023
+ get promise() {
2024
+ return this._internalRenderTask.capability.promise;
2025
+ }
2378
2026
 
2379
- return RenderTask;
2380
- }();
2027
+ cancel() {
2028
+ this._internalRenderTask.cancel();
2029
+ }
2030
+
2031
+ then(onFulfilled, onRejected) {
2032
+ throw new Error("Removed API method: " + "RenderTask.then, use the `promise` getter instead.");
2033
+ }
2381
2034
 
2382
- var InternalRenderTask = function InternalRenderTaskClosure() {
2383
- var canvasInRendering = new WeakSet();
2384
-
2385
- var InternalRenderTask =
2386
- /*#__PURE__*/
2387
- function () {
2388
- function InternalRenderTask(_ref13) {
2389
- var callback = _ref13.callback,
2390
- params = _ref13.params,
2391
- objs = _ref13.objs,
2392
- commonObjs = _ref13.commonObjs,
2393
- operatorList = _ref13.operatorList,
2394
- pageNumber = _ref13.pageNumber,
2395
- canvasFactory = _ref13.canvasFactory,
2396
- webGLContext = _ref13.webGLContext,
2397
- _ref13$useRequestAnim = _ref13.useRequestAnimationFrame,
2398
- useRequestAnimationFrame = _ref13$useRequestAnim === void 0 ? false : _ref13$useRequestAnim,
2399
- _ref13$pdfBug = _ref13.pdfBug,
2400
- pdfBug = _ref13$pdfBug === void 0 ? false : _ref13$pdfBug;
2401
-
2402
- _classCallCheck(this, InternalRenderTask);
2035
+ }
2403
2036
 
2037
+ const InternalRenderTask = function InternalRenderTaskClosure() {
2038
+ const canvasInRendering = new WeakSet();
2039
+
2040
+ class InternalRenderTask {
2041
+ constructor({
2042
+ callback,
2043
+ params,
2044
+ objs,
2045
+ commonObjs,
2046
+ operatorList,
2047
+ pageIndex,
2048
+ canvasFactory,
2049
+ webGLContext,
2050
+ useRequestAnimationFrame = false,
2051
+ pdfBug = false
2052
+ }) {
2404
2053
  this.callback = callback;
2405
2054
  this.params = params;
2406
2055
  this.objs = objs;
2407
2056
  this.commonObjs = commonObjs;
2408
2057
  this.operatorListIdx = null;
2409
2058
  this.operatorList = operatorList;
2410
- this.pageNumber = pageNumber;
2059
+ this._pageIndex = pageIndex;
2411
2060
  this.canvasFactory = canvasFactory;
2412
2061
  this.webGLContext = webGLContext;
2413
2062
  this._pdfBug = pdfBug;
2414
2063
  this.running = false;
2415
2064
  this.graphicsReadyCallback = null;
2416
2065
  this.graphicsReady = false;
2417
- this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== 'undefined';
2066
+ this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== "undefined";
2418
2067
  this.cancelled = false;
2419
2068
  this.capability = (0, _util.createPromiseCapability)();
2420
2069
  this.task = new RenderTask(this);
@@ -2424,172 +2073,134 @@ var InternalRenderTask = function InternalRenderTaskClosure() {
2424
2073
  this._canvas = params.canvasContext.canvas;
2425
2074
  }
2426
2075
 
2427
- _createClass(InternalRenderTask, [{
2428
- key: "initializeGraphics",
2429
- value: function initializeGraphics() {
2430
- var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
2076
+ initializeGraphics(transparency = false) {
2077
+ if (this.cancelled) {
2078
+ return;
2079
+ }
2431
2080
 
2432
- if (this.cancelled) {
2433
- return;
2081
+ if (this._canvas) {
2082
+ if (canvasInRendering.has(this._canvas)) {
2083
+ throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use different canvas or ensure previous operations were " + "cancelled or completed.");
2434
2084
  }
2435
2085
 
2436
- if (this._canvas) {
2437
- if (canvasInRendering.has(this._canvas)) {
2438
- throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.');
2439
- }
2086
+ canvasInRendering.add(this._canvas);
2087
+ }
2440
2088
 
2441
- canvasInRendering.add(this._canvas);
2442
- }
2089
+ if (this._pdfBug && globalThis.StepperManager && globalThis.StepperManager.enabled) {
2090
+ this.stepper = globalThis.StepperManager.create(this._pageIndex);
2091
+ this.stepper.init(this.operatorList);
2092
+ this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
2093
+ }
2443
2094
 
2444
- if (this._pdfBug && _global_scope["default"].StepperManager && _global_scope["default"].StepperManager.enabled) {
2445
- this.stepper = _global_scope["default"].StepperManager.create(this.pageNumber - 1);
2446
- this.stepper.init(this.operatorList);
2447
- this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
2448
- }
2095
+ const {
2096
+ canvasContext,
2097
+ viewport,
2098
+ transform,
2099
+ imageLayer,
2100
+ background
2101
+ } = this.params;
2102
+ this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer);
2103
+ this.gfx.beginDrawing({
2104
+ transform,
2105
+ viewport,
2106
+ transparency,
2107
+ background
2108
+ });
2109
+ this.operatorListIdx = 0;
2110
+ this.graphicsReady = true;
2449
2111
 
2450
- var _this$params = this.params,
2451
- canvasContext = _this$params.canvasContext,
2452
- viewport = _this$params.viewport,
2453
- transform = _this$params.transform,
2454
- imageLayer = _this$params.imageLayer,
2455
- background = _this$params.background;
2456
- this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer);
2457
- this.gfx.beginDrawing({
2458
- transform: transform,
2459
- viewport: viewport,
2460
- transparency: transparency,
2461
- background: background
2462
- });
2463
- this.operatorListIdx = 0;
2464
- this.graphicsReady = true;
2112
+ if (this.graphicsReadyCallback) {
2113
+ this.graphicsReadyCallback();
2114
+ }
2115
+ }
2465
2116
 
2466
- if (this.graphicsReadyCallback) {
2467
- this.graphicsReadyCallback();
2468
- }
2117
+ cancel(error = null) {
2118
+ this.running = false;
2119
+ this.cancelled = true;
2120
+
2121
+ if (this.gfx) {
2122
+ this.gfx.endDrawing();
2469
2123
  }
2470
- }, {
2471
- key: "cancel",
2472
- value: function cancel() {
2473
- var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
2474
- this.running = false;
2475
- this.cancelled = true;
2476
2124
 
2477
- if (this.gfx) {
2478
- this.gfx.endDrawing();
2479
- }
2125
+ if (this._canvas) {
2126
+ canvasInRendering.delete(this._canvas);
2127
+ }
2480
2128
 
2481
- if (this._canvas) {
2482
- canvasInRendering["delete"](this._canvas);
2129
+ this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, "canvas"));
2130
+ }
2131
+
2132
+ operatorListChanged() {
2133
+ if (!this.graphicsReady) {
2134
+ if (!this.graphicsReadyCallback) {
2135
+ this.graphicsReadyCallback = this._continueBound;
2483
2136
  }
2484
2137
 
2485
- this.callback(error || new _display_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this.pageNumber), 'canvas'));
2138
+ return;
2486
2139
  }
2487
- }, {
2488
- key: "operatorListChanged",
2489
- value: function operatorListChanged() {
2490
- if (!this.graphicsReady) {
2491
- if (!this.graphicsReadyCallback) {
2492
- this.graphicsReadyCallback = this._continueBound;
2493
- }
2494
2140
 
2495
- return;
2496
- }
2141
+ if (this.stepper) {
2142
+ this.stepper.updateOperatorList(this.operatorList);
2143
+ }
2497
2144
 
2498
- if (this.stepper) {
2499
- this.stepper.updateOperatorList(this.operatorList);
2500
- }
2145
+ if (this.running) {
2146
+ return;
2147
+ }
2501
2148
 
2502
- if (this.running) {
2503
- return;
2504
- }
2149
+ this._continue();
2150
+ }
2505
2151
 
2506
- this._continue();
2152
+ _continue() {
2153
+ this.running = true;
2154
+
2155
+ if (this.cancelled) {
2156
+ return;
2507
2157
  }
2508
- }, {
2509
- key: "_continue",
2510
- value: function _continue() {
2511
- this.running = true;
2512
2158
 
2513
- if (this.cancelled) {
2514
- return;
2515
- }
2159
+ if (this.task.onContinue) {
2160
+ this.task.onContinue(this._scheduleNextBound);
2161
+ } else {
2162
+ this._scheduleNext();
2163
+ }
2164
+ }
2516
2165
 
2517
- if (this.task.onContinue) {
2518
- this.task.onContinue(this._scheduleNextBound);
2519
- } else {
2520
- this._scheduleNext();
2521
- }
2166
+ _scheduleNext() {
2167
+ if (this._useRequestAnimationFrame) {
2168
+ window.requestAnimationFrame(() => {
2169
+ this._nextBound().catch(this.cancel.bind(this));
2170
+ });
2171
+ } else {
2172
+ Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this));
2522
2173
  }
2523
- }, {
2524
- key: "_scheduleNext",
2525
- value: function _scheduleNext() {
2526
- var _this18 = this;
2174
+ }
2527
2175
 
2528
- if (this._useRequestAnimationFrame) {
2529
- window.requestAnimationFrame(function () {
2530
- _this18._nextBound()["catch"](_this18.cancel.bind(_this18));
2531
- });
2532
- } else {
2533
- Promise.resolve().then(this._nextBound)["catch"](this.cancel.bind(this));
2534
- }
2176
+ async _next() {
2177
+ if (this.cancelled) {
2178
+ return;
2535
2179
  }
2536
- }, {
2537
- key: "_next",
2538
- value: function () {
2539
- var _next2 = _asyncToGenerator(
2540
- /*#__PURE__*/
2541
- _regenerator["default"].mark(function _callee() {
2542
- return _regenerator["default"].wrap(function _callee$(_context) {
2543
- while (1) {
2544
- switch (_context.prev = _context.next) {
2545
- case 0:
2546
- if (!this.cancelled) {
2547
- _context.next = 2;
2548
- break;
2549
- }
2550
-
2551
- return _context.abrupt("return");
2552
-
2553
- case 2:
2554
- this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);
2555
-
2556
- if (this.operatorListIdx === this.operatorList.argsArray.length) {
2557
- this.running = false;
2558
-
2559
- if (this.operatorList.lastChunk) {
2560
- this.gfx.endDrawing();
2561
-
2562
- if (this._canvas) {
2563
- canvasInRendering["delete"](this._canvas);
2564
- }
2565
-
2566
- this.callback();
2567
- }
2568
- }
2569
-
2570
- case 4:
2571
- case "end":
2572
- return _context.stop();
2573
- }
2574
- }
2575
- }, _callee, this);
2576
- }));
2577
2180
 
2578
- function _next() {
2579
- return _next2.apply(this, arguments);
2580
- }
2181
+ this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);
2581
2182
 
2582
- return _next;
2583
- }()
2584
- }]);
2183
+ if (this.operatorListIdx === this.operatorList.argsArray.length) {
2184
+ this.running = false;
2185
+
2186
+ if (this.operatorList.lastChunk) {
2187
+ this.gfx.endDrawing();
2188
+
2189
+ if (this._canvas) {
2190
+ canvasInRendering.delete(this._canvas);
2191
+ }
2585
2192
 
2586
- return InternalRenderTask;
2587
- }();
2193
+ this.callback();
2194
+ }
2195
+ }
2196
+ }
2197
+
2198
+ }
2588
2199
 
2589
2200
  return InternalRenderTask;
2590
2201
  }();
2591
2202
 
2592
- var version = '2.3.200';
2203
+ const version = '2.4.456';
2593
2204
  exports.version = version;
2594
- var build = '4ae3f9fc';
2205
+ const build = '228a591c';
2595
2206
  exports.build = build;