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