pdfjs-dist 2.0.489 → 2.2.228
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pdfjs-dist might be problematic. Click here for more details.
- package/CODE_OF_CONDUCT.md +15 -0
- package/bower.json +1 -1
- package/build/pdf.js +18515 -11402
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +48266 -37137
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/external/url/url-lib.js +627 -0
- package/image_decoders/pdf.image_decoders.js +11350 -0
- package/image_decoders/pdf.image_decoders.js.map +1 -0
- package/image_decoders/pdf.image_decoders.min.js +1 -0
- package/lib/core/annotation.js +587 -242
- package/lib/core/arithmetic_decoder.js +275 -245
- package/lib/core/bidi.js +65 -6
- package/lib/core/ccitt.js +173 -18
- package/lib/core/ccitt_stream.js +15 -6
- package/lib/core/cff_parser.js +433 -61
- package/lib/core/charsets.js +5 -4
- package/lib/core/chunked_stream.js +400 -152
- package/lib/core/cmap.js +326 -87
- package/lib/core/colorspace.js +874 -594
- package/lib/core/core_utils.js +147 -0
- package/lib/core/crypto.js +290 -45
- package/lib/core/document.js +560 -268
- package/lib/core/encodings.js +19 -10
- package/lib/core/evaluator.js +1005 -360
- package/lib/core/font_renderer.js +331 -97
- package/lib/core/fonts.js +812 -195
- package/lib/core/function.js +284 -71
- package/lib/core/glyphlist.js +4 -3
- package/lib/core/image.js +169 -62
- package/lib/core/image_utils.js +111 -0
- package/lib/core/jbig2.js +479 -66
- package/lib/core/jbig2_stream.js +19 -8
- package/lib/core/jpeg_stream.js +38 -13
- package/lib/core/jpg.js +253 -29
- package/lib/core/jpx.js +396 -6
- package/lib/core/jpx_stream.js +18 -6
- package/lib/core/metrics.js +15 -15
- package/lib/core/murmurhash3.js +56 -34
- package/lib/core/obj.js +1354 -488
- package/lib/core/operator_list.js +144 -31
- package/lib/core/parser.js +539 -191
- package/lib/core/pattern.js +148 -14
- package/lib/core/pdf_manager.js +323 -133
- package/lib/core/primitives.js +111 -24
- package/lib/core/ps_parser.js +134 -45
- package/lib/core/standard_fonts.js +17 -17
- package/lib/core/stream.js +313 -34
- package/lib/core/type1_parser.js +143 -13
- package/lib/core/unicode.js +32 -5
- package/lib/core/worker.js +217 -190
- package/lib/core/worker_stream.js +277 -0
- package/lib/display/annotation_layer.js +450 -133
- package/lib/display/api.js +1597 -784
- package/lib/display/api_compatibility.js +11 -13
- package/lib/display/canvas.js +360 -44
- package/lib/display/content_disposition.js +83 -32
- package/lib/display/display_utils.js +747 -0
- package/lib/display/fetch_stream.js +221 -90
- package/lib/display/font_loader.js +468 -236
- package/lib/display/metadata.js +38 -16
- package/lib/display/network.js +635 -428
- package/lib/display/network_utils.js +32 -19
- package/lib/display/node_stream.js +367 -175
- package/lib/display/pattern_helper.js +81 -31
- package/lib/display/svg.js +1235 -519
- package/lib/display/text_layer.js +153 -29
- package/lib/display/transport_stream.js +345 -94
- package/lib/display/webgl.js +64 -18
- package/lib/display/worker_options.js +5 -4
- package/lib/display/xml_parser.js +166 -53
- package/lib/examples/node/domstubs.js +60 -4
- package/lib/pdf.js +36 -14
- package/lib/pdf.worker.js +5 -3
- package/lib/shared/compatibility.js +158 -564
- package/lib/shared/global_scope.js +2 -2
- package/lib/shared/is_node.js +4 -4
- package/lib/shared/message_handler.js +521 -0
- package/lib/shared/streams_polyfill.js +21 -17
- package/lib/shared/url_polyfill.js +56 -0
- package/lib/shared/util.js +243 -710
- package/lib/test/unit/annotation_spec.js +870 -401
- package/lib/test/unit/api_spec.js +657 -345
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +54 -11
- package/lib/test/unit/clitests_helper.js +10 -8
- package/lib/test/unit/cmap_spec.js +95 -41
- package/lib/test/unit/colorspace_spec.js +115 -63
- package/lib/test/unit/core_utils_spec.js +191 -0
- package/lib/test/unit/crypto_spec.js +17 -5
- package/lib/test/unit/custom_spec.js +43 -55
- package/lib/test/unit/display_svg_spec.js +34 -18
- package/lib/test/unit/display_utils_spec.js +273 -0
- package/lib/test/unit/document_spec.js +8 -13
- package/lib/test/unit/encodings_spec.js +25 -45
- package/lib/test/unit/evaluator_spec.js +38 -15
- package/lib/test/unit/fetch_stream_spec.js +109 -0
- package/lib/test/unit/function_spec.js +17 -5
- package/lib/test/unit/jasmine-boot.js +33 -20
- package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
- package/lib/test/unit/metadata_spec.js +71 -11
- package/lib/test/unit/murmurhash3_spec.js +3 -3
- package/lib/test/unit/network_spec.js +19 -54
- package/lib/test/unit/network_utils_spec.js +91 -14
- package/lib/test/unit/node_stream_spec.js +56 -32
- package/lib/test/unit/parser_spec.js +162 -71
- package/lib/test/unit/pdf_find_controller_spec.js +230 -0
- package/lib/test/unit/pdf_find_utils_spec.js +63 -0
- package/lib/test/unit/pdf_history_spec.js +21 -9
- package/lib/test/unit/primitives_spec.js +53 -20
- package/lib/test/unit/stream_spec.js +12 -4
- package/lib/test/unit/test_utils.js +273 -56
- package/lib/test/unit/testreporter.js +21 -3
- package/lib/test/unit/type1_parser_spec.js +8 -6
- package/lib/test/unit/ui_utils_spec.js +454 -16
- package/lib/test/unit/unicode_spec.js +18 -15
- package/lib/test/unit/util_spec.js +87 -128
- package/lib/web/annotation_layer_builder.js +39 -22
- package/lib/web/app.js +1290 -588
- package/lib/web/app_options.js +100 -62
- package/lib/web/base_viewer.js +511 -182
- package/lib/web/chromecom.js +261 -117
- package/lib/web/debugger.js +166 -22
- package/lib/web/download_manager.js +32 -13
- package/lib/web/firefox_print_service.js +20 -10
- package/lib/web/firefoxcom.js +315 -80
- package/lib/web/genericcom.js +89 -30
- package/lib/web/genericl10n.js +142 -30
- package/lib/web/grab_to_pan.js +28 -4
- package/lib/web/interfaces.js +170 -47
- package/lib/web/overlay_manager.js +235 -85
- package/lib/web/password_prompt.js +22 -14
- package/lib/web/pdf_attachment_viewer.js +38 -18
- package/lib/web/pdf_cursor_tools.js +39 -16
- package/lib/web/pdf_document_properties.js +255 -136
- package/lib/web/pdf_find_bar.js +84 -40
- package/lib/web/pdf_find_controller.js +495 -184
- package/lib/web/pdf_find_utils.js +111 -0
- package/lib/web/pdf_history.js +190 -53
- package/lib/web/pdf_link_service.js +138 -77
- package/lib/web/pdf_outline_viewer.js +122 -46
- package/lib/web/pdf_page_view.js +191 -67
- package/lib/web/pdf_presentation_mode.js +99 -34
- package/lib/web/pdf_print_service.js +61 -13
- package/lib/web/pdf_rendering_queue.js +28 -9
- package/lib/web/pdf_sidebar.js +141 -81
- package/lib/web/pdf_sidebar_resizer.js +42 -16
- package/lib/web/pdf_single_page_viewer.js +74 -66
- package/lib/web/pdf_thumbnail_view.js +104 -33
- package/lib/web/pdf_thumbnail_viewer.js +66 -26
- package/lib/web/pdf_viewer.component.js +112 -32
- package/lib/web/pdf_viewer.js +91 -52
- package/lib/web/preferences.js +284 -89
- package/lib/web/secondary_toolbar.js +165 -40
- package/lib/web/text_layer_builder.js +134 -59
- package/lib/web/toolbar.js +78 -43
- package/lib/web/ui_utils.js +462 -136
- package/lib/web/view_history.js +215 -67
- package/lib/web/viewer_compatibility.js +4 -13
- package/package.json +5 -4
- package/web/pdf_viewer.css +79 -11
- package/web/pdf_viewer.js +6107 -3748
- package/web/pdf_viewer.js.map +1 -1
- package/lib/display/dom_utils.js +0 -309
- package/lib/test/unit/dom_utils_spec.js +0 -89
- package/lib/test/unit/fonts_spec.js +0 -81
- package/lib/web/dom_events.js +0 -137
package/lib/web/base_viewer.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 2019 Mozilla Foundation
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -19,79 +19,106 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
-
exports.BaseViewer =
|
27
|
+
exports.BaseViewer = void 0;
|
28
28
|
|
29
|
-
var
|
29
|
+
var _ui_utils = require("./ui_utils");
|
30
30
|
|
31
|
-
var
|
31
|
+
var _pdf_rendering_queue = require("./pdf_rendering_queue");
|
32
32
|
|
33
|
-
var
|
33
|
+
var _annotation_layer_builder = require("./annotation_layer_builder");
|
34
34
|
|
35
|
-
var
|
35
|
+
var _pdf = require("../pdf");
|
36
36
|
|
37
|
-
var
|
37
|
+
var _pdf_page_view = require("./pdf_page_view");
|
38
38
|
|
39
|
-
var
|
39
|
+
var _pdf_link_service = require("./pdf_link_service");
|
40
40
|
|
41
|
-
var
|
41
|
+
var _text_layer_builder = require("./text_layer_builder");
|
42
42
|
|
43
|
-
|
43
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
44
44
|
|
45
|
-
var
|
45
|
+
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); } }
|
46
46
|
|
47
|
-
function
|
47
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
48
48
|
|
49
49
|
var DEFAULT_CACHE_SIZE = 10;
|
50
|
+
|
50
51
|
function PDFPageViewBuffer(size) {
|
51
52
|
var data = [];
|
53
|
+
|
52
54
|
this.push = function (view) {
|
53
55
|
var i = data.indexOf(view);
|
56
|
+
|
54
57
|
if (i >= 0) {
|
55
58
|
data.splice(i, 1);
|
56
59
|
}
|
60
|
+
|
57
61
|
data.push(view);
|
62
|
+
|
58
63
|
if (data.length > size) {
|
59
64
|
data.shift().destroy();
|
60
65
|
}
|
61
66
|
};
|
62
|
-
|
67
|
+
|
68
|
+
this.resize = function (newSize, pagesToKeep) {
|
63
69
|
size = newSize;
|
70
|
+
|
71
|
+
if (pagesToKeep) {
|
72
|
+
var pageIdsToKeep = new Set();
|
73
|
+
|
74
|
+
for (var i = 0, iMax = pagesToKeep.length; i < iMax; ++i) {
|
75
|
+
pageIdsToKeep.add(pagesToKeep[i].id);
|
76
|
+
}
|
77
|
+
|
78
|
+
(0, _ui_utils.moveToEndOfArray)(data, function (page) {
|
79
|
+
return pageIdsToKeep.has(page.id);
|
80
|
+
});
|
81
|
+
}
|
82
|
+
|
64
83
|
while (data.length > size) {
|
65
84
|
data.shift().destroy();
|
66
85
|
}
|
67
86
|
};
|
68
87
|
}
|
88
|
+
|
69
89
|
function isSameScale(oldScale, newScale) {
|
70
90
|
if (newScale === oldScale) {
|
71
91
|
return true;
|
72
92
|
}
|
93
|
+
|
73
94
|
if (Math.abs(newScale - oldScale) < 1e-15) {
|
74
95
|
return true;
|
75
96
|
}
|
97
|
+
|
76
98
|
return false;
|
77
99
|
}
|
78
100
|
|
79
|
-
var BaseViewer =
|
101
|
+
var BaseViewer =
|
102
|
+
/*#__PURE__*/
|
103
|
+
function () {
|
80
104
|
function BaseViewer(options) {
|
105
|
+
var _this = this;
|
106
|
+
|
81
107
|
_classCallCheck(this, BaseViewer);
|
82
108
|
|
83
109
|
if (this.constructor === BaseViewer) {
|
84
110
|
throw new Error('Cannot initialize BaseViewer.');
|
85
111
|
}
|
112
|
+
|
86
113
|
this._name = this.constructor.name;
|
87
114
|
this.container = options.container;
|
88
115
|
this.viewer = options.viewer || options.container.firstElementChild;
|
89
|
-
this.eventBus = options.eventBus || (0,
|
116
|
+
this.eventBus = options.eventBus || (0, _ui_utils.getGlobalEventBus)();
|
90
117
|
this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService();
|
91
118
|
this.downloadManager = options.downloadManager || null;
|
119
|
+
this.findController = options.findController || null;
|
92
120
|
this.removePageBorders = options.removePageBorders || false;
|
93
121
|
this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;
|
94
|
-
this.enhanceTextSelection = options.enhanceTextSelection || false;
|
95
122
|
this.imageResourcesPath = options.imageResourcesPath || '';
|
96
123
|
this.renderInteractiveForms = options.renderInteractiveForms || false;
|
97
124
|
this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;
|
@@ -101,27 +128,37 @@ var BaseViewer = function () {
|
|
101
128
|
this.maxCanvasPixels = options.maxCanvasPixels;
|
102
129
|
this.l10n = options.l10n || _ui_utils.NullL10n;
|
103
130
|
this.defaultRenderingQueue = !options.renderingQueue;
|
131
|
+
|
104
132
|
if (this.defaultRenderingQueue) {
|
105
133
|
this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue();
|
106
134
|
this.renderingQueue.setViewer(this);
|
107
135
|
} else {
|
108
136
|
this.renderingQueue = options.renderingQueue;
|
109
137
|
}
|
138
|
+
|
110
139
|
this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this));
|
111
140
|
this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN;
|
141
|
+
|
112
142
|
this._resetView();
|
143
|
+
|
113
144
|
if (this.removePageBorders) {
|
114
145
|
this.viewer.classList.add('removePageBorders');
|
115
146
|
}
|
147
|
+
|
148
|
+
Promise.resolve().then(function () {
|
149
|
+
_this.eventBus.dispatch('baseviewerinit', {
|
150
|
+
source: _this
|
151
|
+
});
|
152
|
+
});
|
116
153
|
}
|
117
154
|
|
118
155
|
_createClass(BaseViewer, [{
|
119
|
-
key:
|
156
|
+
key: "getPageView",
|
120
157
|
value: function getPageView(index) {
|
121
158
|
return this._pages[index];
|
122
159
|
}
|
123
160
|
}, {
|
124
|
-
key:
|
161
|
+
key: "_setCurrentPageNumber",
|
125
162
|
value: function _setCurrentPageNumber(val) {
|
126
163
|
var resetCurrentPageView = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
127
164
|
|
@@ -129,111 +166,144 @@ var BaseViewer = function () {
|
|
129
166
|
if (resetCurrentPageView) {
|
130
167
|
this._resetCurrentPageView();
|
131
168
|
}
|
132
|
-
|
169
|
+
|
170
|
+
return true;
|
133
171
|
}
|
172
|
+
|
134
173
|
if (!(0 < val && val <= this.pagesCount)) {
|
135
|
-
|
136
|
-
return;
|
174
|
+
return false;
|
137
175
|
}
|
138
|
-
|
176
|
+
|
177
|
+
this._currentPageNumber = val;
|
178
|
+
this.eventBus.dispatch('pagechanging', {
|
139
179
|
source: this,
|
140
180
|
pageNumber: val,
|
141
181
|
pageLabel: this._pageLabels && this._pageLabels[val - 1]
|
142
|
-
};
|
143
|
-
|
144
|
-
this.eventBus.dispatch('pagechanging', arg);
|
145
|
-
this.eventBus.dispatch('pagechange', arg);
|
182
|
+
});
|
183
|
+
|
146
184
|
if (resetCurrentPageView) {
|
147
185
|
this._resetCurrentPageView();
|
148
186
|
}
|
187
|
+
|
188
|
+
return true;
|
149
189
|
}
|
150
190
|
}, {
|
151
|
-
key:
|
191
|
+
key: "setDocument",
|
152
192
|
value: function setDocument(pdfDocument) {
|
153
|
-
var
|
193
|
+
var _this2 = this;
|
154
194
|
|
155
195
|
if (this.pdfDocument) {
|
156
196
|
this._cancelRendering();
|
197
|
+
|
157
198
|
this._resetView();
|
199
|
+
|
200
|
+
if (this.findController) {
|
201
|
+
this.findController.setDocument(null);
|
202
|
+
}
|
158
203
|
}
|
204
|
+
|
159
205
|
this.pdfDocument = pdfDocument;
|
206
|
+
|
160
207
|
if (!pdfDocument) {
|
161
208
|
return;
|
162
209
|
}
|
210
|
+
|
163
211
|
var pagesCount = pdfDocument.numPages;
|
164
212
|
var pagesCapability = (0, _pdf.createPromiseCapability)();
|
165
213
|
this.pagesPromise = pagesCapability.promise;
|
166
214
|
pagesCapability.promise.then(function () {
|
167
|
-
|
168
|
-
|
169
|
-
|
215
|
+
_this2._pageViewsReady = true;
|
216
|
+
|
217
|
+
_this2.eventBus.dispatch('pagesloaded', {
|
218
|
+
source: _this2,
|
170
219
|
pagesCount: pagesCount
|
171
220
|
});
|
172
221
|
});
|
173
|
-
var isOnePageRenderedResolved = false;
|
174
222
|
var onePageRenderedCapability = (0, _pdf.createPromiseCapability)();
|
175
223
|
this.onePageRendered = onePageRenderedCapability.promise;
|
224
|
+
|
176
225
|
var bindOnAfterAndBeforeDraw = function bindOnAfterAndBeforeDraw(pageView) {
|
177
226
|
pageView.onBeforeDraw = function () {
|
178
|
-
|
227
|
+
_this2._buffer.push(pageView);
|
179
228
|
};
|
229
|
+
|
180
230
|
pageView.onAfterDraw = function () {
|
181
|
-
if (!
|
182
|
-
isOnePageRenderedResolved = true;
|
231
|
+
if (!onePageRenderedCapability.settled) {
|
183
232
|
onePageRenderedCapability.resolve();
|
184
233
|
}
|
185
234
|
};
|
186
235
|
};
|
236
|
+
|
187
237
|
var firstPagePromise = pdfDocument.getPage(1);
|
188
238
|
this.firstPagePromise = firstPagePromise;
|
189
239
|
firstPagePromise.then(function (pdfPage) {
|
190
|
-
var scale =
|
191
|
-
var viewport = pdfPage.getViewport(
|
240
|
+
var scale = _this2.currentScale;
|
241
|
+
var viewport = pdfPage.getViewport({
|
242
|
+
scale: scale * _ui_utils.CSS_UNITS
|
243
|
+
});
|
244
|
+
|
192
245
|
for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) {
|
193
246
|
var textLayerFactory = null;
|
194
|
-
|
195
|
-
|
247
|
+
|
248
|
+
if (_this2.textLayerMode !== _ui_utils.TextLayerMode.DISABLE) {
|
249
|
+
textLayerFactory = _this2;
|
196
250
|
}
|
251
|
+
|
197
252
|
var pageView = new _pdf_page_view.PDFPageView({
|
198
|
-
container:
|
199
|
-
eventBus:
|
253
|
+
container: _this2._setDocumentViewerElement,
|
254
|
+
eventBus: _this2.eventBus,
|
200
255
|
id: pageNum,
|
201
256
|
scale: scale,
|
202
257
|
defaultViewport: viewport.clone(),
|
203
|
-
renderingQueue:
|
258
|
+
renderingQueue: _this2.renderingQueue,
|
204
259
|
textLayerFactory: textLayerFactory,
|
205
|
-
textLayerMode:
|
206
|
-
annotationLayerFactory:
|
207
|
-
imageResourcesPath:
|
208
|
-
renderInteractiveForms:
|
209
|
-
renderer:
|
210
|
-
enableWebGL:
|
211
|
-
useOnlyCssZoom:
|
212
|
-
maxCanvasPixels:
|
213
|
-
l10n:
|
260
|
+
textLayerMode: _this2.textLayerMode,
|
261
|
+
annotationLayerFactory: _this2,
|
262
|
+
imageResourcesPath: _this2.imageResourcesPath,
|
263
|
+
renderInteractiveForms: _this2.renderInteractiveForms,
|
264
|
+
renderer: _this2.renderer,
|
265
|
+
enableWebGL: _this2.enableWebGL,
|
266
|
+
useOnlyCssZoom: _this2.useOnlyCssZoom,
|
267
|
+
maxCanvasPixels: _this2.maxCanvasPixels,
|
268
|
+
l10n: _this2.l10n
|
214
269
|
});
|
215
270
|
bindOnAfterAndBeforeDraw(pageView);
|
216
|
-
|
271
|
+
|
272
|
+
_this2._pages.push(pageView);
|
217
273
|
}
|
274
|
+
|
275
|
+
if (_this2._spreadMode !== _ui_utils.SpreadMode.NONE) {
|
276
|
+
_this2._updateSpreadMode();
|
277
|
+
}
|
278
|
+
|
218
279
|
onePageRenderedCapability.promise.then(function () {
|
280
|
+
if (_this2.findController) {
|
281
|
+
_this2.findController.setDocument(pdfDocument);
|
282
|
+
}
|
283
|
+
|
219
284
|
if (pdfDocument.loadingParams['disableAutoFetch']) {
|
220
285
|
pagesCapability.resolve();
|
221
286
|
return;
|
222
287
|
}
|
288
|
+
|
223
289
|
var getPagesLeft = pagesCount;
|
224
290
|
|
225
291
|
var _loop = function _loop(_pageNum) {
|
226
292
|
pdfDocument.getPage(_pageNum).then(function (pdfPage) {
|
227
|
-
var pageView =
|
293
|
+
var pageView = _this2._pages[_pageNum - 1];
|
294
|
+
|
228
295
|
if (!pageView.pdfPage) {
|
229
296
|
pageView.setPdfPage(pdfPage);
|
230
297
|
}
|
231
|
-
|
298
|
+
|
299
|
+
_this2.linkService.cachePageRef(_pageNum, pdfPage.ref);
|
300
|
+
|
232
301
|
if (--getPagesLeft === 0) {
|
233
302
|
pagesCapability.resolve();
|
234
303
|
}
|
235
304
|
}, function (reason) {
|
236
|
-
console.error(
|
305
|
+
console.error("Unable to get page ".concat(_pageNum, " to initialize viewer"), reason);
|
306
|
+
|
237
307
|
if (--getPagesLeft === 0) {
|
238
308
|
pagesCapability.resolve();
|
239
309
|
}
|
@@ -244,31 +314,34 @@ var BaseViewer = function () {
|
|
244
314
|
_loop(_pageNum);
|
245
315
|
}
|
246
316
|
});
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
}
|
251
|
-
|
252
|
-
|
317
|
+
|
318
|
+
_this2.eventBus.dispatch('pagesinit', {
|
319
|
+
source: _this2
|
320
|
+
});
|
321
|
+
|
322
|
+
if (_this2.defaultRenderingQueue) {
|
323
|
+
_this2.update();
|
253
324
|
}
|
254
|
-
})
|
325
|
+
})["catch"](function (reason) {
|
255
326
|
console.error('Unable to initialize viewer', reason);
|
256
327
|
});
|
257
328
|
}
|
258
329
|
}, {
|
259
|
-
key:
|
330
|
+
key: "setPageLabels",
|
260
331
|
value: function setPageLabels(labels) {
|
261
332
|
if (!this.pdfDocument) {
|
262
333
|
return;
|
263
334
|
}
|
335
|
+
|
264
336
|
if (!labels) {
|
265
337
|
this._pageLabels = null;
|
266
|
-
} else if (!(labels
|
338
|
+
} else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) {
|
267
339
|
this._pageLabels = null;
|
268
|
-
console.error(this._name
|
340
|
+
console.error("".concat(this._name, ".setPageLabels: Invalid page labels."));
|
269
341
|
} else {
|
270
342
|
this._pageLabels = labels;
|
271
343
|
}
|
344
|
+
|
272
345
|
for (var i = 0, ii = this._pages.length; i < ii; i++) {
|
273
346
|
var pageView = this._pages[i];
|
274
347
|
var label = this._pageLabels && this._pageLabels[i];
|
@@ -276,7 +349,7 @@ var BaseViewer = function () {
|
|
276
349
|
}
|
277
350
|
}
|
278
351
|
}, {
|
279
|
-
key:
|
352
|
+
key: "_resetView",
|
280
353
|
value: function _resetView() {
|
281
354
|
this._pages = [];
|
282
355
|
this._currentPageNumber = 1;
|
@@ -288,215 +361,267 @@ var BaseViewer = function () {
|
|
288
361
|
this._pagesRotation = 0;
|
289
362
|
this._pagesRequests = [];
|
290
363
|
this._pageViewsReady = false;
|
364
|
+
this._scrollMode = _ui_utils.ScrollMode.VERTICAL;
|
365
|
+
this._spreadMode = _ui_utils.SpreadMode.NONE;
|
291
366
|
this.viewer.textContent = '';
|
367
|
+
|
368
|
+
this._updateScrollMode();
|
292
369
|
}
|
293
370
|
}, {
|
294
|
-
key:
|
371
|
+
key: "_scrollUpdate",
|
295
372
|
value: function _scrollUpdate() {
|
296
373
|
if (this.pagesCount === 0) {
|
297
374
|
return;
|
298
375
|
}
|
376
|
+
|
299
377
|
this.update();
|
300
378
|
}
|
301
379
|
}, {
|
302
|
-
key:
|
380
|
+
key: "_scrollIntoView",
|
303
381
|
value: function _scrollIntoView(_ref) {
|
304
382
|
var pageDiv = _ref.pageDiv,
|
305
383
|
_ref$pageSpot = _ref.pageSpot,
|
306
|
-
pageSpot = _ref$pageSpot ===
|
384
|
+
pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot,
|
307
385
|
_ref$pageNumber = _ref.pageNumber,
|
308
|
-
pageNumber = _ref$pageNumber ===
|
309
|
-
|
310
|
-
throw new Error('Not implemented: _scrollIntoView');
|
311
|
-
}
|
312
|
-
}, {
|
313
|
-
key: '_setScaleDispatchEvent',
|
314
|
-
value: function _setScaleDispatchEvent(newScale, newValue) {
|
315
|
-
var preset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
316
|
-
|
317
|
-
var arg = {
|
318
|
-
source: this,
|
319
|
-
scale: newScale,
|
320
|
-
presetValue: preset ? newValue : undefined
|
321
|
-
};
|
322
|
-
this.eventBus.dispatch('scalechanging', arg);
|
323
|
-
this.eventBus.dispatch('scalechange', arg);
|
386
|
+
pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber;
|
387
|
+
(0, _ui_utils.scrollIntoView)(pageDiv, pageSpot);
|
324
388
|
}
|
325
389
|
}, {
|
326
|
-
key:
|
390
|
+
key: "_setScaleUpdatePages",
|
327
391
|
value: function _setScaleUpdatePages(newScale, newValue) {
|
328
392
|
var noScroll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
329
393
|
var preset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
330
|
-
|
331
394
|
this._currentScaleValue = newValue.toString();
|
395
|
+
|
332
396
|
if (isSameScale(this._currentScale, newScale)) {
|
333
397
|
if (preset) {
|
334
|
-
this.
|
398
|
+
this.eventBus.dispatch('scalechanging', {
|
399
|
+
source: this,
|
400
|
+
scale: newScale,
|
401
|
+
presetValue: newValue
|
402
|
+
});
|
335
403
|
}
|
404
|
+
|
336
405
|
return;
|
337
406
|
}
|
407
|
+
|
338
408
|
for (var i = 0, ii = this._pages.length; i < ii; i++) {
|
339
409
|
this._pages[i].update(newScale);
|
340
410
|
}
|
411
|
+
|
341
412
|
this._currentScale = newScale;
|
413
|
+
|
342
414
|
if (!noScroll) {
|
343
415
|
var page = this._currentPageNumber,
|
344
|
-
dest
|
416
|
+
dest;
|
417
|
+
|
345
418
|
if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) {
|
346
419
|
page = this._location.pageNumber;
|
347
|
-
dest = [null, {
|
420
|
+
dest = [null, {
|
421
|
+
name: 'XYZ'
|
422
|
+
}, this._location.left, this._location.top, null];
|
348
423
|
}
|
424
|
+
|
349
425
|
this.scrollPageIntoView({
|
350
426
|
pageNumber: page,
|
351
427
|
destArray: dest,
|
352
428
|
allowNegativeOffset: true
|
353
429
|
});
|
354
430
|
}
|
355
|
-
|
431
|
+
|
432
|
+
this.eventBus.dispatch('scalechanging', {
|
433
|
+
source: this,
|
434
|
+
scale: newScale,
|
435
|
+
presetValue: preset ? newValue : undefined
|
436
|
+
});
|
437
|
+
|
356
438
|
if (this.defaultRenderingQueue) {
|
357
439
|
this.update();
|
358
440
|
}
|
359
441
|
}
|
360
442
|
}, {
|
361
|
-
key:
|
443
|
+
key: "_setScale",
|
362
444
|
value: function _setScale(value) {
|
363
445
|
var noScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
364
|
-
|
365
446
|
var scale = parseFloat(value);
|
447
|
+
|
366
448
|
if (scale > 0) {
|
367
449
|
this._setScaleUpdatePages(scale, value, noScroll, false);
|
368
450
|
} else {
|
369
451
|
var currentPage = this._pages[this._currentPageNumber - 1];
|
452
|
+
|
370
453
|
if (!currentPage) {
|
371
454
|
return;
|
372
455
|
}
|
373
|
-
|
374
|
-
var
|
456
|
+
|
457
|
+
var noPadding = this.isInPresentationMode || this.removePageBorders;
|
458
|
+
var hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING;
|
459
|
+
var vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING;
|
460
|
+
|
461
|
+
if (!noPadding && this._isScrollModeHorizontal) {
|
462
|
+
var _ref2 = [vPadding, hPadding];
|
463
|
+
hPadding = _ref2[0];
|
464
|
+
vPadding = _ref2[1];
|
465
|
+
}
|
466
|
+
|
375
467
|
var pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale;
|
376
468
|
var pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale;
|
469
|
+
|
377
470
|
switch (value) {
|
378
471
|
case 'page-actual':
|
379
472
|
scale = 1;
|
380
473
|
break;
|
474
|
+
|
381
475
|
case 'page-width':
|
382
476
|
scale = pageWidthScale;
|
383
477
|
break;
|
478
|
+
|
384
479
|
case 'page-height':
|
385
480
|
scale = pageHeightScale;
|
386
481
|
break;
|
482
|
+
|
387
483
|
case 'page-fit':
|
388
484
|
scale = Math.min(pageWidthScale, pageHeightScale);
|
389
485
|
break;
|
486
|
+
|
390
487
|
case 'auto':
|
391
488
|
var horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale);
|
392
489
|
scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale);
|
393
490
|
break;
|
491
|
+
|
394
492
|
default:
|
395
|
-
console.error(this._name
|
493
|
+
console.error("".concat(this._name, "._setScale: \"").concat(value, "\" is an unknown zoom value."));
|
396
494
|
return;
|
397
495
|
}
|
496
|
+
|
398
497
|
this._setScaleUpdatePages(scale, value, noScroll, true);
|
399
498
|
}
|
400
499
|
}
|
401
500
|
}, {
|
402
|
-
key:
|
501
|
+
key: "_resetCurrentPageView",
|
403
502
|
value: function _resetCurrentPageView() {
|
404
503
|
if (this.isInPresentationMode) {
|
405
504
|
this._setScale(this._currentScaleValue, true);
|
406
505
|
}
|
506
|
+
|
407
507
|
var pageView = this._pages[this._currentPageNumber - 1];
|
408
|
-
|
508
|
+
|
509
|
+
this._scrollIntoView({
|
510
|
+
pageDiv: pageView.div
|
511
|
+
});
|
409
512
|
}
|
410
513
|
}, {
|
411
|
-
key:
|
412
|
-
value: function scrollPageIntoView(
|
514
|
+
key: "scrollPageIntoView",
|
515
|
+
value: function scrollPageIntoView(_ref3) {
|
516
|
+
var pageNumber = _ref3.pageNumber,
|
517
|
+
_ref3$destArray = _ref3.destArray,
|
518
|
+
destArray = _ref3$destArray === void 0 ? null : _ref3$destArray,
|
519
|
+
_ref3$allowNegativeOf = _ref3.allowNegativeOffset,
|
520
|
+
allowNegativeOffset = _ref3$allowNegativeOf === void 0 ? false : _ref3$allowNegativeOf;
|
521
|
+
|
413
522
|
if (!this.pdfDocument) {
|
414
523
|
return;
|
415
524
|
}
|
416
|
-
|
417
|
-
var
|
418
|
-
|
419
|
-
if (
|
420
|
-
this.
|
525
|
+
|
526
|
+
var pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1];
|
527
|
+
|
528
|
+
if (!pageView) {
|
529
|
+
console.error("".concat(this._name, ".scrollPageIntoView: ") + "\"".concat(pageNumber, "\" is not a valid pageNumber parameter."));
|
421
530
|
return;
|
422
531
|
}
|
423
|
-
|
424
|
-
if (!
|
425
|
-
|
532
|
+
|
533
|
+
if (this.isInPresentationMode || !destArray) {
|
534
|
+
this._setCurrentPageNumber(pageNumber, true);
|
535
|
+
|
426
536
|
return;
|
427
537
|
}
|
538
|
+
|
428
539
|
var x = 0,
|
429
540
|
y = 0;
|
430
541
|
var width = 0,
|
431
542
|
height = 0,
|
432
|
-
widthScale
|
433
|
-
heightScale
|
543
|
+
widthScale,
|
544
|
+
heightScale;
|
434
545
|
var changeOrientation = pageView.rotation % 180 === 0 ? false : true;
|
435
546
|
var pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _ui_utils.CSS_UNITS;
|
436
547
|
var pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _ui_utils.CSS_UNITS;
|
437
548
|
var scale = 0;
|
438
|
-
|
549
|
+
|
550
|
+
switch (destArray[1].name) {
|
439
551
|
case 'XYZ':
|
440
|
-
x =
|
441
|
-
y =
|
442
|
-
scale =
|
552
|
+
x = destArray[2];
|
553
|
+
y = destArray[3];
|
554
|
+
scale = destArray[4];
|
443
555
|
x = x !== null ? x : 0;
|
444
556
|
y = y !== null ? y : pageHeight;
|
445
557
|
break;
|
558
|
+
|
446
559
|
case 'Fit':
|
447
560
|
case 'FitB':
|
448
561
|
scale = 'page-fit';
|
449
562
|
break;
|
563
|
+
|
450
564
|
case 'FitH':
|
451
565
|
case 'FitBH':
|
452
|
-
y =
|
566
|
+
y = destArray[2];
|
453
567
|
scale = 'page-width';
|
568
|
+
|
454
569
|
if (y === null && this._location) {
|
455
570
|
x = this._location.left;
|
456
571
|
y = this._location.top;
|
457
572
|
}
|
573
|
+
|
458
574
|
break;
|
575
|
+
|
459
576
|
case 'FitV':
|
460
577
|
case 'FitBV':
|
461
|
-
x =
|
578
|
+
x = destArray[2];
|
462
579
|
width = pageWidth;
|
463
580
|
height = pageHeight;
|
464
581
|
scale = 'page-height';
|
465
582
|
break;
|
583
|
+
|
466
584
|
case 'FitR':
|
467
|
-
x =
|
468
|
-
y =
|
469
|
-
width =
|
470
|
-
height =
|
585
|
+
x = destArray[2];
|
586
|
+
y = destArray[3];
|
587
|
+
width = destArray[4] - x;
|
588
|
+
height = destArray[5] - y;
|
471
589
|
var hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING;
|
472
590
|
var vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING;
|
473
591
|
widthScale = (this.container.clientWidth - hPadding) / width / _ui_utils.CSS_UNITS;
|
474
592
|
heightScale = (this.container.clientHeight - vPadding) / height / _ui_utils.CSS_UNITS;
|
475
593
|
scale = Math.min(Math.abs(widthScale), Math.abs(heightScale));
|
476
594
|
break;
|
595
|
+
|
477
596
|
default:
|
478
|
-
console.error(this._name
|
597
|
+
console.error("".concat(this._name, ".scrollPageIntoView: ") + "\"".concat(destArray[1].name, "\" is not a valid destination type."));
|
479
598
|
return;
|
480
599
|
}
|
600
|
+
|
481
601
|
if (scale && scale !== this._currentScale) {
|
482
602
|
this.currentScaleValue = scale;
|
483
603
|
} else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) {
|
484
604
|
this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE;
|
485
605
|
}
|
486
|
-
|
606
|
+
|
607
|
+
if (scale === 'page-fit' && !destArray[4]) {
|
487
608
|
this._scrollIntoView({
|
488
609
|
pageDiv: pageView.div,
|
489
610
|
pageNumber: pageNumber
|
490
611
|
});
|
612
|
+
|
491
613
|
return;
|
492
614
|
}
|
615
|
+
|
493
616
|
var boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)];
|
494
617
|
var left = Math.min(boundingRect[0][0], boundingRect[1][0]);
|
495
618
|
var top = Math.min(boundingRect[0][1], boundingRect[1][1]);
|
619
|
+
|
496
620
|
if (!allowNegativeOffset) {
|
497
621
|
left = Math.max(left, 0);
|
498
622
|
top = Math.max(top, 0);
|
499
623
|
}
|
624
|
+
|
500
625
|
this._scrollIntoView({
|
501
626
|
pageDiv: pageView.div,
|
502
627
|
pageSpot: {
|
@@ -507,13 +632,7 @@ var BaseViewer = function () {
|
|
507
632
|
});
|
508
633
|
}
|
509
634
|
}, {
|
510
|
-
key:
|
511
|
-
value: function _resizeBuffer(numVisiblePages) {
|
512
|
-
var suggestedCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1);
|
513
|
-
this._buffer.resize(suggestedCacheSize);
|
514
|
-
}
|
515
|
-
}, {
|
516
|
-
key: '_updateLocation',
|
635
|
+
key: "_updateLocation",
|
517
636
|
value: function _updateLocation(firstPage) {
|
518
637
|
var currentScale = this._currentScale;
|
519
638
|
var currentScaleValue = this._currentScaleValue;
|
@@ -537,27 +656,93 @@ var BaseViewer = function () {
|
|
537
656
|
};
|
538
657
|
}
|
539
658
|
}, {
|
540
|
-
key:
|
659
|
+
key: "_updateHelper",
|
660
|
+
value: function _updateHelper(visiblePages) {
|
661
|
+
throw new Error('Not implemented: _updateHelper');
|
662
|
+
}
|
663
|
+
}, {
|
664
|
+
key: "update",
|
541
665
|
value: function update() {
|
542
|
-
|
666
|
+
var visible = this._getVisiblePages();
|
667
|
+
|
668
|
+
var visiblePages = visible.views,
|
669
|
+
numVisiblePages = visiblePages.length;
|
670
|
+
|
671
|
+
if (numVisiblePages === 0) {
|
672
|
+
return;
|
673
|
+
}
|
674
|
+
|
675
|
+
var newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1);
|
676
|
+
|
677
|
+
this._buffer.resize(newCacheSize, visiblePages);
|
678
|
+
|
679
|
+
this.renderingQueue.renderHighestPriority(visible);
|
680
|
+
|
681
|
+
this._updateHelper(visiblePages);
|
682
|
+
|
683
|
+
this._updateLocation(visible.first);
|
684
|
+
|
685
|
+
this.eventBus.dispatch('updateviewarea', {
|
686
|
+
source: this,
|
687
|
+
location: this._location
|
688
|
+
});
|
543
689
|
}
|
544
690
|
}, {
|
545
|
-
key:
|
691
|
+
key: "containsElement",
|
546
692
|
value: function containsElement(element) {
|
547
693
|
return this.container.contains(element);
|
548
694
|
}
|
549
695
|
}, {
|
550
|
-
key:
|
696
|
+
key: "focus",
|
551
697
|
value: function focus() {
|
552
698
|
this.container.focus();
|
553
699
|
}
|
554
700
|
}, {
|
555
|
-
key:
|
701
|
+
key: "_getCurrentVisiblePage",
|
702
|
+
value: function _getCurrentVisiblePage() {
|
703
|
+
if (!this.pagesCount) {
|
704
|
+
return {
|
705
|
+
views: []
|
706
|
+
};
|
707
|
+
}
|
708
|
+
|
709
|
+
var pageView = this._pages[this._currentPageNumber - 1];
|
710
|
+
var element = pageView.div;
|
711
|
+
var view = {
|
712
|
+
id: pageView.id,
|
713
|
+
x: element.offsetLeft + element.clientLeft,
|
714
|
+
y: element.offsetTop + element.clientTop,
|
715
|
+
view: pageView
|
716
|
+
};
|
717
|
+
return {
|
718
|
+
first: view,
|
719
|
+
last: view,
|
720
|
+
views: [view]
|
721
|
+
};
|
722
|
+
}
|
723
|
+
}, {
|
724
|
+
key: "_getVisiblePages",
|
556
725
|
value: function _getVisiblePages() {
|
557
|
-
|
726
|
+
return (0, _ui_utils.getVisibleElements)(this.container, this._pages, true, this._isScrollModeHorizontal);
|
558
727
|
}
|
559
728
|
}, {
|
560
|
-
key:
|
729
|
+
key: "isPageVisible",
|
730
|
+
value: function isPageVisible(pageNumber) {
|
731
|
+
if (!this.pdfDocument) {
|
732
|
+
return false;
|
733
|
+
}
|
734
|
+
|
735
|
+
if (this.pageNumber < 1 || pageNumber > this.pagesCount) {
|
736
|
+
console.error("".concat(this._name, ".isPageVisible: \"").concat(pageNumber, "\" is out of bounds."));
|
737
|
+
return false;
|
738
|
+
}
|
739
|
+
|
740
|
+
return this._getVisiblePages().views.some(function (view) {
|
741
|
+
return view.id === pageNumber;
|
742
|
+
});
|
743
|
+
}
|
744
|
+
}, {
|
745
|
+
key: "cleanup",
|
561
746
|
value: function cleanup() {
|
562
747
|
for (var i = 0, ii = this._pages.length; i < ii; i++) {
|
563
748
|
if (this._pages[i] && this._pages[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) {
|
@@ -566,7 +751,7 @@ var BaseViewer = function () {
|
|
566
751
|
}
|
567
752
|
}
|
568
753
|
}, {
|
569
|
-
key:
|
754
|
+
key: "_cancelRendering",
|
570
755
|
value: function _cancelRendering() {
|
571
756
|
for (var i = 0, ii = this._pages.length; i < ii; i++) {
|
572
757
|
if (this._pages[i]) {
|
@@ -575,57 +760,58 @@ var BaseViewer = function () {
|
|
575
760
|
}
|
576
761
|
}
|
577
762
|
}, {
|
578
|
-
key:
|
763
|
+
key: "_ensurePdfPageLoaded",
|
579
764
|
value: function _ensurePdfPageLoaded(pageView) {
|
580
|
-
var
|
765
|
+
var _this3 = this;
|
581
766
|
|
582
767
|
if (pageView.pdfPage) {
|
583
768
|
return Promise.resolve(pageView.pdfPage);
|
584
769
|
}
|
770
|
+
|
585
771
|
var pageNumber = pageView.id;
|
772
|
+
|
586
773
|
if (this._pagesRequests[pageNumber]) {
|
587
774
|
return this._pagesRequests[pageNumber];
|
588
775
|
}
|
776
|
+
|
589
777
|
var promise = this.pdfDocument.getPage(pageNumber).then(function (pdfPage) {
|
590
778
|
if (!pageView.pdfPage) {
|
591
779
|
pageView.setPdfPage(pdfPage);
|
592
780
|
}
|
593
|
-
|
781
|
+
|
782
|
+
_this3._pagesRequests[pageNumber] = null;
|
594
783
|
return pdfPage;
|
595
|
-
})
|
784
|
+
})["catch"](function (reason) {
|
596
785
|
console.error('Unable to get page for page view', reason);
|
597
|
-
|
786
|
+
_this3._pagesRequests[pageNumber] = null;
|
598
787
|
});
|
599
788
|
this._pagesRequests[pageNumber] = promise;
|
600
789
|
return promise;
|
601
790
|
}
|
602
791
|
}, {
|
603
|
-
key:
|
792
|
+
key: "forceRendering",
|
604
793
|
value: function forceRendering(currentlyVisiblePages) {
|
605
|
-
var
|
794
|
+
var _this4 = this;
|
606
795
|
|
607
796
|
var visiblePages = currentlyVisiblePages || this._getVisiblePages();
|
608
|
-
|
797
|
+
|
798
|
+
var scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down;
|
799
|
+
var pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead);
|
800
|
+
|
609
801
|
if (pageView) {
|
610
802
|
this._ensurePdfPageLoaded(pageView).then(function () {
|
611
|
-
|
803
|
+
_this4.renderingQueue.renderView(pageView);
|
612
804
|
});
|
805
|
+
|
613
806
|
return true;
|
614
807
|
}
|
808
|
+
|
615
809
|
return false;
|
616
810
|
}
|
617
811
|
}, {
|
618
|
-
key:
|
619
|
-
value: function getPageTextContent(pageIndex) {
|
620
|
-
return this.pdfDocument.getPage(pageIndex + 1).then(function (page) {
|
621
|
-
return page.getTextContent({ normalizeWhitespace: true });
|
622
|
-
});
|
623
|
-
}
|
624
|
-
}, {
|
625
|
-
key: 'createTextLayerBuilder',
|
812
|
+
key: "createTextLayerBuilder",
|
626
813
|
value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) {
|
627
814
|
var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
628
|
-
|
629
815
|
return new _text_layer_builder.TextLayerBuilder({
|
630
816
|
textLayerDiv: textLayerDiv,
|
631
817
|
eventBus: this.eventBus,
|
@@ -636,12 +822,11 @@ var BaseViewer = function () {
|
|
636
822
|
});
|
637
823
|
}
|
638
824
|
}, {
|
639
|
-
key:
|
825
|
+
key: "createAnnotationLayerBuilder",
|
640
826
|
value: function createAnnotationLayerBuilder(pageDiv, pdfPage) {
|
641
827
|
var imageResourcesPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
|
642
828
|
var renderInteractiveForms = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
643
829
|
var l10n = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _ui_utils.NullL10n;
|
644
|
-
|
645
830
|
return new _annotation_layer_builder.AnnotationLayerBuilder({
|
646
831
|
pageDiv: pageDiv,
|
647
832
|
pdfPage: pdfPage,
|
@@ -653,29 +838,29 @@ var BaseViewer = function () {
|
|
653
838
|
});
|
654
839
|
}
|
655
840
|
}, {
|
656
|
-
key:
|
657
|
-
value: function setFindController(findController) {
|
658
|
-
this.findController = findController;
|
659
|
-
}
|
660
|
-
}, {
|
661
|
-
key: 'getPagesOverview',
|
841
|
+
key: "getPagesOverview",
|
662
842
|
value: function getPagesOverview() {
|
663
843
|
var pagesOverview = this._pages.map(function (pageView) {
|
664
|
-
var viewport = pageView.pdfPage.getViewport(
|
844
|
+
var viewport = pageView.pdfPage.getViewport({
|
845
|
+
scale: 1
|
846
|
+
});
|
665
847
|
return {
|
666
848
|
width: viewport.width,
|
667
849
|
height: viewport.height,
|
668
850
|
rotation: viewport.rotation
|
669
851
|
};
|
670
852
|
});
|
853
|
+
|
671
854
|
if (!this.enablePrintAutoRotate) {
|
672
855
|
return pagesOverview;
|
673
856
|
}
|
857
|
+
|
674
858
|
var isFirstPagePortrait = (0, _ui_utils.isPortraitOrientation)(pagesOverview[0]);
|
675
859
|
return pagesOverview.map(function (size) {
|
676
860
|
if (isFirstPagePortrait === (0, _ui_utils.isPortraitOrientation)(size)) {
|
677
861
|
return size;
|
678
862
|
}
|
863
|
+
|
679
864
|
return {
|
680
865
|
width: size.height,
|
681
866
|
height: size.width,
|
@@ -684,17 +869,81 @@ var BaseViewer = function () {
|
|
684
869
|
});
|
685
870
|
}
|
686
871
|
}, {
|
687
|
-
key:
|
872
|
+
key: "_updateScrollMode",
|
873
|
+
value: function _updateScrollMode() {
|
874
|
+
var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
875
|
+
var scrollMode = this._scrollMode,
|
876
|
+
viewer = this.viewer;
|
877
|
+
viewer.classList.toggle('scrollHorizontal', scrollMode === _ui_utils.ScrollMode.HORIZONTAL);
|
878
|
+
viewer.classList.toggle('scrollWrapped', scrollMode === _ui_utils.ScrollMode.WRAPPED);
|
879
|
+
|
880
|
+
if (!this.pdfDocument || !pageNumber) {
|
881
|
+
return;
|
882
|
+
}
|
883
|
+
|
884
|
+
if (this._currentScaleValue && isNaN(this._currentScaleValue)) {
|
885
|
+
this._setScale(this._currentScaleValue, true);
|
886
|
+
}
|
887
|
+
|
888
|
+
this._setCurrentPageNumber(pageNumber, true);
|
889
|
+
|
890
|
+
this.update();
|
891
|
+
}
|
892
|
+
}, {
|
893
|
+
key: "_updateSpreadMode",
|
894
|
+
value: function _updateSpreadMode() {
|
895
|
+
var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
896
|
+
|
897
|
+
if (!this.pdfDocument) {
|
898
|
+
return;
|
899
|
+
}
|
900
|
+
|
901
|
+
var viewer = this.viewer,
|
902
|
+
pages = this._pages;
|
903
|
+
viewer.textContent = '';
|
904
|
+
|
905
|
+
if (this._spreadMode === _ui_utils.SpreadMode.NONE) {
|
906
|
+
for (var i = 0, iMax = pages.length; i < iMax; ++i) {
|
907
|
+
viewer.appendChild(pages[i].div);
|
908
|
+
}
|
909
|
+
} else {
|
910
|
+
var parity = this._spreadMode - 1;
|
911
|
+
var spread = null;
|
912
|
+
|
913
|
+
for (var _i = 0, _iMax = pages.length; _i < _iMax; ++_i) {
|
914
|
+
if (spread === null) {
|
915
|
+
spread = document.createElement('div');
|
916
|
+
spread.className = 'spread';
|
917
|
+
viewer.appendChild(spread);
|
918
|
+
} else if (_i % 2 === parity) {
|
919
|
+
spread = spread.cloneNode(false);
|
920
|
+
viewer.appendChild(spread);
|
921
|
+
}
|
922
|
+
|
923
|
+
spread.appendChild(pages[_i].div);
|
924
|
+
}
|
925
|
+
}
|
926
|
+
|
927
|
+
if (!pageNumber) {
|
928
|
+
return;
|
929
|
+
}
|
930
|
+
|
931
|
+
this._setCurrentPageNumber(pageNumber, true);
|
932
|
+
|
933
|
+
this.update();
|
934
|
+
}
|
935
|
+
}, {
|
936
|
+
key: "pagesCount",
|
688
937
|
get: function get() {
|
689
938
|
return this._pages.length;
|
690
939
|
}
|
691
940
|
}, {
|
692
|
-
key:
|
941
|
+
key: "pageViewsReady",
|
693
942
|
get: function get() {
|
694
943
|
return this._pageViewsReady;
|
695
944
|
}
|
696
945
|
}, {
|
697
|
-
key:
|
946
|
+
key: "currentPageNumber",
|
698
947
|
get: function get() {
|
699
948
|
return this._currentPageNumber;
|
700
949
|
},
|
@@ -702,42 +951,57 @@ var BaseViewer = function () {
|
|
702
951
|
if (!Number.isInteger(val)) {
|
703
952
|
throw new Error('Invalid page number.');
|
704
953
|
}
|
954
|
+
|
705
955
|
if (!this.pdfDocument) {
|
706
956
|
return;
|
707
957
|
}
|
708
|
-
|
958
|
+
|
959
|
+
if (!this._setCurrentPageNumber(val, true)) {
|
960
|
+
console.error("".concat(this._name, ".currentPageNumber: \"").concat(val, "\" is not a valid page."));
|
961
|
+
}
|
709
962
|
}
|
710
963
|
}, {
|
711
|
-
key:
|
964
|
+
key: "currentPageLabel",
|
712
965
|
get: function get() {
|
713
966
|
return this._pageLabels && this._pageLabels[this._currentPageNumber - 1];
|
714
967
|
},
|
715
968
|
set: function set(val) {
|
716
|
-
|
969
|
+
if (!this.pdfDocument) {
|
970
|
+
return;
|
971
|
+
}
|
972
|
+
|
973
|
+
var page = val | 0;
|
974
|
+
|
717
975
|
if (this._pageLabels) {
|
718
976
|
var i = this._pageLabels.indexOf(val);
|
977
|
+
|
719
978
|
if (i >= 0) {
|
720
|
-
|
979
|
+
page = i + 1;
|
721
980
|
}
|
722
981
|
}
|
723
|
-
|
982
|
+
|
983
|
+
if (!this._setCurrentPageNumber(page, true)) {
|
984
|
+
console.error("".concat(this._name, ".currentPageLabel: \"").concat(val, "\" is not a valid page."));
|
985
|
+
}
|
724
986
|
}
|
725
987
|
}, {
|
726
|
-
key:
|
988
|
+
key: "currentScale",
|
727
989
|
get: function get() {
|
728
990
|
return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE;
|
729
991
|
},
|
730
992
|
set: function set(val) {
|
731
993
|
if (isNaN(val)) {
|
732
|
-
throw new Error('Invalid numeric scale');
|
994
|
+
throw new Error('Invalid numeric scale.');
|
733
995
|
}
|
996
|
+
|
734
997
|
if (!this.pdfDocument) {
|
735
998
|
return;
|
736
999
|
}
|
1000
|
+
|
737
1001
|
this._setScale(val, false);
|
738
1002
|
}
|
739
1003
|
}, {
|
740
|
-
key:
|
1004
|
+
key: "currentScaleValue",
|
741
1005
|
get: function get() {
|
742
1006
|
return this._currentScaleValue;
|
743
1007
|
},
|
@@ -745,10 +1009,11 @@ var BaseViewer = function () {
|
|
745
1009
|
if (!this.pdfDocument) {
|
746
1010
|
return;
|
747
1011
|
}
|
1012
|
+
|
748
1013
|
this._setScale(val, false);
|
749
1014
|
}
|
750
1015
|
}, {
|
751
|
-
key:
|
1016
|
+
key: "pagesRotation",
|
752
1017
|
get: function get() {
|
753
1018
|
return this._pagesRotation;
|
754
1019
|
},
|
@@ -756,62 +1021,126 @@ var BaseViewer = function () {
|
|
756
1021
|
if (!(0, _ui_utils.isValidRotation)(rotation)) {
|
757
1022
|
throw new Error('Invalid pages rotation angle.');
|
758
1023
|
}
|
1024
|
+
|
759
1025
|
if (!this.pdfDocument) {
|
760
1026
|
return;
|
761
1027
|
}
|
1028
|
+
|
762
1029
|
if (this._pagesRotation === rotation) {
|
763
1030
|
return;
|
764
1031
|
}
|
1032
|
+
|
765
1033
|
this._pagesRotation = rotation;
|
766
1034
|
var pageNumber = this._currentPageNumber;
|
1035
|
+
|
767
1036
|
for (var i = 0, ii = this._pages.length; i < ii; i++) {
|
768
1037
|
var pageView = this._pages[i];
|
769
1038
|
pageView.update(pageView.scale, rotation);
|
770
1039
|
}
|
1040
|
+
|
771
1041
|
if (this._currentScaleValue) {
|
772
1042
|
this._setScale(this._currentScaleValue, true);
|
773
1043
|
}
|
1044
|
+
|
774
1045
|
this.eventBus.dispatch('rotationchanging', {
|
775
1046
|
source: this,
|
776
1047
|
pagesRotation: rotation,
|
777
1048
|
pageNumber: pageNumber
|
778
1049
|
});
|
1050
|
+
|
779
1051
|
if (this.defaultRenderingQueue) {
|
780
1052
|
this.update();
|
781
1053
|
}
|
782
1054
|
}
|
783
1055
|
}, {
|
784
|
-
key:
|
1056
|
+
key: "_setDocumentViewerElement",
|
785
1057
|
get: function get() {
|
786
1058
|
throw new Error('Not implemented: _setDocumentViewerElement');
|
787
1059
|
}
|
788
1060
|
}, {
|
789
|
-
key:
|
1061
|
+
key: "_isScrollModeHorizontal",
|
1062
|
+
get: function get() {
|
1063
|
+
return this.isInPresentationMode ? false : this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL;
|
1064
|
+
}
|
1065
|
+
}, {
|
1066
|
+
key: "isInPresentationMode",
|
790
1067
|
get: function get() {
|
791
1068
|
return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN;
|
792
1069
|
}
|
793
1070
|
}, {
|
794
|
-
key:
|
1071
|
+
key: "isChangingPresentationMode",
|
795
1072
|
get: function get() {
|
796
1073
|
return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING;
|
797
1074
|
}
|
798
1075
|
}, {
|
799
|
-
key:
|
1076
|
+
key: "isHorizontalScrollbarEnabled",
|
800
1077
|
get: function get() {
|
801
1078
|
return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth;
|
802
1079
|
}
|
803
1080
|
}, {
|
804
|
-
key:
|
1081
|
+
key: "isVerticalScrollbarEnabled",
|
1082
|
+
get: function get() {
|
1083
|
+
return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight;
|
1084
|
+
}
|
1085
|
+
}, {
|
1086
|
+
key: "hasEqualPageSizes",
|
805
1087
|
get: function get() {
|
806
1088
|
var firstPageView = this._pages[0];
|
1089
|
+
|
807
1090
|
for (var i = 1, ii = this._pages.length; i < ii; ++i) {
|
808
1091
|
var pageView = this._pages[i];
|
1092
|
+
|
809
1093
|
if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) {
|
810
1094
|
return false;
|
811
1095
|
}
|
812
1096
|
}
|
1097
|
+
|
813
1098
|
return true;
|
814
1099
|
}
|
1100
|
+
}, {
|
1101
|
+
key: "scrollMode",
|
1102
|
+
get: function get() {
|
1103
|
+
return this._scrollMode;
|
1104
|
+
},
|
1105
|
+
set: function set(mode) {
|
1106
|
+
if (this._scrollMode === mode) {
|
1107
|
+
return;
|
1108
|
+
}
|
1109
|
+
|
1110
|
+
if (!(0, _ui_utils.isValidScrollMode)(mode)) {
|
1111
|
+
throw new Error("Invalid scroll mode: ".concat(mode));
|
1112
|
+
}
|
1113
|
+
|
1114
|
+
this._scrollMode = mode;
|
1115
|
+
this.eventBus.dispatch('scrollmodechanged', {
|
1116
|
+
source: this,
|
1117
|
+
mode: mode
|
1118
|
+
});
|
1119
|
+
|
1120
|
+
this._updateScrollMode(this._currentPageNumber);
|
1121
|
+
}
|
1122
|
+
}, {
|
1123
|
+
key: "spreadMode",
|
1124
|
+
get: function get() {
|
1125
|
+
return this._spreadMode;
|
1126
|
+
},
|
1127
|
+
set: function set(mode) {
|
1128
|
+
if (this._spreadMode === mode) {
|
1129
|
+
return;
|
1130
|
+
}
|
1131
|
+
|
1132
|
+
if (!(0, _ui_utils.isValidSpreadMode)(mode)) {
|
1133
|
+
throw new Error("Invalid spread mode: ".concat(mode));
|
1134
|
+
}
|
1135
|
+
|
1136
|
+
this._spreadMode = mode;
|
1137
|
+
this.eventBus.dispatch('spreadmodechanged', {
|
1138
|
+
source: this,
|
1139
|
+
mode: mode
|
1140
|
+
});
|
1141
|
+
|
1142
|
+
this._updateSpreadMode(this._currentPageNumber);
|
1143
|
+
}
|
815
1144
|
}]);
|
816
1145
|
|
817
1146
|
return BaseViewer;
|