pdfjs-dist 2.0.489 → 2.2.228

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