Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
quarto-dev
GitHub Repository: quarto-dev/quarto-cli
Path: blob/main/src/resources/formats/pdf/pdfjs/web/viewer.js
12923 views
1
/**
2
* @licstart The following is the entire license notice for the
3
* Javascript code in this page
4
*
5
* Copyright 2021 Mozilla Foundation
6
*
7
* Licensed under the Apache License, Version 2.0 (the "License");
8
* you may not use this file except in compliance with the License.
9
* You may obtain a copy of the License at
10
*
11
* http://www.apache.org/licenses/LICENSE-2.0
12
*
13
* Unless required by applicable law or agreed to in writing, software
14
* distributed under the License is distributed on an "AS IS" BASIS,
15
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
* See the License for the specific language governing permissions and
17
* limitations under the License.
18
*
19
* @licend The above is the entire license notice for the
20
* Javascript code in this page
21
*/
22
23
/******/ (() => { // webpackBootstrap
24
/******/ "use strict";
25
/******/ var __webpack_modules__ = ([
26
/* 0 */,
27
/* 1 */
28
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
29
30
31
32
Object.defineProperty(exports, "__esModule", ({
33
value: true
34
}));
35
exports.OptionKind = exports.AppOptions = void 0;
36
37
var _viewer_compatibility = __webpack_require__(2);
38
39
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
40
41
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
42
43
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); } }
44
45
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
46
47
var OptionKind = {
48
VIEWER: 0x02,
49
API: 0x04,
50
WORKER: 0x08,
51
PREFERENCE: 0x80
52
};
53
exports.OptionKind = OptionKind;
54
var defaultOptions = {
55
cursorToolOnLoad: {
56
value: 0,
57
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
58
},
59
defaultUrl: {
60
value: "compressed.tracemonkey-pldi-09.pdf",
61
kind: OptionKind.VIEWER
62
},
63
defaultZoomValue: {
64
value: "",
65
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
66
},
67
disableHistory: {
68
value: false,
69
kind: OptionKind.VIEWER
70
},
71
disablePageLabels: {
72
value: false,
73
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
74
},
75
enablePermissions: {
76
value: false,
77
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
78
},
79
enablePrintAutoRotate: {
80
value: true,
81
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
82
},
83
enableScripting: {
84
value: true,
85
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
86
},
87
enableWebGL: {
88
value: false,
89
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
90
},
91
externalLinkRel: {
92
value: "noopener noreferrer nofollow",
93
kind: OptionKind.VIEWER
94
},
95
externalLinkTarget: {
96
value: 0,
97
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
98
},
99
historyUpdateUrl: {
100
value: false,
101
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
102
},
103
ignoreDestinationZoom: {
104
value: false,
105
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
106
},
107
imageResourcesPath: {
108
value: "./images/",
109
kind: OptionKind.VIEWER
110
},
111
maxCanvasPixels: {
112
value: 16777216,
113
compatibility: _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels,
114
kind: OptionKind.VIEWER
115
},
116
pdfBugEnabled: {
117
value: false,
118
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
119
},
120
printResolution: {
121
value: 150,
122
kind: OptionKind.VIEWER
123
},
124
renderer: {
125
value: "canvas",
126
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
127
},
128
renderInteractiveForms: {
129
value: true,
130
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
131
},
132
sidebarViewOnLoad: {
133
value: -1,
134
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
135
},
136
scrollModeOnLoad: {
137
value: -1,
138
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
139
},
140
spreadModeOnLoad: {
141
value: -1,
142
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
143
},
144
textLayerMode: {
145
value: 1,
146
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
147
},
148
useOnlyCssZoom: {
149
value: false,
150
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
151
},
152
viewerCssTheme: {
153
value: 0,
154
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
155
},
156
viewOnLoad: {
157
value: 0,
158
kind: OptionKind.VIEWER + OptionKind.PREFERENCE
159
},
160
cMapPacked: {
161
value: true,
162
kind: OptionKind.API
163
},
164
cMapUrl: {
165
value: "../web/cmaps/",
166
kind: OptionKind.API
167
},
168
disableAutoFetch: {
169
value: false,
170
kind: OptionKind.API + OptionKind.PREFERENCE
171
},
172
disableFontFace: {
173
value: false,
174
kind: OptionKind.API + OptionKind.PREFERENCE
175
},
176
disableRange: {
177
value: false,
178
kind: OptionKind.API + OptionKind.PREFERENCE
179
},
180
disableStream: {
181
value: false,
182
kind: OptionKind.API + OptionKind.PREFERENCE
183
},
184
docBaseUrl: {
185
value: "",
186
kind: OptionKind.API
187
},
188
enableXfa: {
189
value: false,
190
kind: OptionKind.API
191
},
192
fontExtraProperties: {
193
value: false,
194
kind: OptionKind.API
195
},
196
isEvalSupported: {
197
value: true,
198
kind: OptionKind.API
199
},
200
maxImageSize: {
201
value: -1,
202
kind: OptionKind.API
203
},
204
pdfBug: {
205
value: false,
206
kind: OptionKind.API
207
},
208
verbosity: {
209
value: 1,
210
kind: OptionKind.API
211
},
212
workerPort: {
213
value: null,
214
kind: OptionKind.WORKER
215
},
216
workerSrc: {
217
value: "../build/pdf.worker.js",
218
kind: OptionKind.WORKER
219
}
220
};
221
{
222
defaultOptions.disablePreferences = {
223
value: false,
224
kind: OptionKind.VIEWER
225
};
226
defaultOptions.locale = {
227
value: typeof navigator !== "undefined" ? navigator.language : "en-US",
228
kind: OptionKind.VIEWER
229
};
230
defaultOptions.sandboxBundleSrc = {
231
value: "../build/pdf.sandbox.js",
232
kind: OptionKind.VIEWER
233
};
234
}
235
var userOptions = Object.create(null);
236
237
var AppOptions = /*#__PURE__*/function () {
238
function AppOptions() {
239
_classCallCheck(this, AppOptions);
240
241
throw new Error("Cannot initialize AppOptions.");
242
}
243
244
_createClass(AppOptions, null, [{
245
key: "get",
246
value: function get(name) {
247
var userOption = userOptions[name];
248
249
if (userOption !== undefined) {
250
return userOption;
251
}
252
253
var defaultOption = defaultOptions[name];
254
255
if (defaultOption !== undefined) {
256
var _defaultOption$compat;
257
258
return (_defaultOption$compat = defaultOption.compatibility) !== null && _defaultOption$compat !== void 0 ? _defaultOption$compat : defaultOption.value;
259
}
260
261
return undefined;
262
}
263
}, {
264
key: "getAll",
265
value: function getAll() {
266
var kind = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
267
var options = Object.create(null);
268
269
for (var name in defaultOptions) {
270
var _defaultOption$compat2;
271
272
var defaultOption = defaultOptions[name];
273
274
if (kind) {
275
if ((kind & defaultOption.kind) === 0) {
276
continue;
277
}
278
279
if (kind === OptionKind.PREFERENCE) {
280
var value = defaultOption.value,
281
valueType = _typeof(value);
282
283
if (valueType === "boolean" || valueType === "string" || valueType === "number" && Number.isInteger(value)) {
284
options[name] = value;
285
continue;
286
}
287
288
throw new Error("Invalid type for preference: ".concat(name));
289
}
290
}
291
292
var userOption = userOptions[name];
293
options[name] = userOption !== undefined ? userOption : (_defaultOption$compat2 = defaultOption.compatibility) !== null && _defaultOption$compat2 !== void 0 ? _defaultOption$compat2 : defaultOption.value;
294
}
295
296
return options;
297
}
298
}, {
299
key: "set",
300
value: function set(name, value) {
301
userOptions[name] = value;
302
}
303
}, {
304
key: "setAll",
305
value: function setAll(options) {
306
for (var name in options) {
307
userOptions[name] = options[name];
308
}
309
}
310
}, {
311
key: "remove",
312
value: function remove(name) {
313
delete userOptions[name];
314
}
315
}]);
316
317
return AppOptions;
318
}();
319
320
exports.AppOptions = AppOptions;
321
322
/***/ }),
323
/* 2 */
324
/***/ ((__unused_webpack_module, exports) => {
325
326
327
328
Object.defineProperty(exports, "__esModule", ({
329
value: true
330
}));
331
exports.viewerCompatibilityParams = void 0;
332
var compatibilityParams = Object.create(null);
333
{
334
var userAgent = typeof navigator !== "undefined" && navigator.userAgent || "";
335
var platform = typeof navigator !== "undefined" && navigator.platform || "";
336
var maxTouchPoints = typeof navigator !== "undefined" && navigator.maxTouchPoints || 1;
337
var isAndroid = /Android/.test(userAgent);
338
var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1;
339
var isIOSChrome = /CriOS/.test(userAgent);
340
341
(function checkOnBlobSupport() {
342
if (isIOSChrome) {
343
compatibilityParams.disableCreateObjectURL = true;
344
}
345
})();
346
347
(function checkCanvasSizeLimitation() {
348
if (isIOS || isAndroid) {
349
compatibilityParams.maxCanvasPixels = 5242880;
350
}
351
})();
352
}
353
var viewerCompatibilityParams = Object.freeze(compatibilityParams);
354
exports.viewerCompatibilityParams = viewerCompatibilityParams;
355
356
/***/ }),
357
/* 3 */
358
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
359
360
361
362
Object.defineProperty(exports, "__esModule", ({
363
value: true
364
}));
365
exports.PDFViewerApplication = exports.PDFPrintServiceFactory = exports.DefaultExternalServices = void 0;
366
367
var _regenerator = _interopRequireDefault(__webpack_require__(4));
368
369
var _ui_utils = __webpack_require__(6);
370
371
var _app_options = __webpack_require__(1);
372
373
var _pdfjsLib = __webpack_require__(7);
374
375
var _pdf_cursor_tools = __webpack_require__(8);
376
377
var _pdf_rendering_queue = __webpack_require__(10);
378
379
var _overlay_manager = __webpack_require__(11);
380
381
var _password_prompt = __webpack_require__(12);
382
383
var _pdf_attachment_viewer = __webpack_require__(13);
384
385
var _pdf_document_properties = __webpack_require__(15);
386
387
var _pdf_find_bar = __webpack_require__(16);
388
389
var _pdf_find_controller = __webpack_require__(17);
390
391
var _pdf_history = __webpack_require__(19);
392
393
var _pdf_layer_viewer = __webpack_require__(20);
394
395
var _pdf_link_service = __webpack_require__(21);
396
397
var _pdf_outline_viewer = __webpack_require__(22);
398
399
var _pdf_presentation_mode = __webpack_require__(23);
400
401
var _pdf_scripting_manager = __webpack_require__(24);
402
403
var _pdf_sidebar = __webpack_require__(25);
404
405
var _pdf_sidebar_resizer = __webpack_require__(26);
406
407
var _pdf_thumbnail_viewer = __webpack_require__(27);
408
409
var _pdf_viewer = __webpack_require__(29);
410
411
var _secondary_toolbar = __webpack_require__(36);
412
413
var _toolbar = __webpack_require__(38);
414
415
var _viewer_compatibility = __webpack_require__(2);
416
417
var _view_history = __webpack_require__(39);
418
419
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
420
421
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
422
423
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
424
425
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
426
427
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
428
429
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
430
431
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
432
433
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
434
435
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
436
437
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
438
439
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
440
441
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
442
443
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
444
445
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
446
447
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); } }
448
449
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
450
451
var DEFAULT_SCALE_DELTA = 1.1;
452
var DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000;
453
var FORCE_PAGES_LOADED_TIMEOUT = 10000;
454
var WHEEL_ZOOM_DISABLED_TIMEOUT = 1000;
455
var ENABLE_PERMISSIONS_CLASS = "enablePermissions";
456
var ViewOnLoad = {
457
UNKNOWN: -1,
458
PREVIOUS: 0,
459
INITIAL: 1
460
};
461
var ViewerCssTheme = {
462
AUTOMATIC: 0,
463
LIGHT: 1,
464
DARK: 2
465
};
466
var KNOWN_VERSIONS = ["1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2.0", "2.1", "2.2", "2.3"];
467
var KNOWN_GENERATORS = ["acrobat distiller", "acrobat pdfwriter", "adobe livecycle", "adobe pdf library", "adobe photoshop", "ghostscript", "tcpdf", "cairo", "dvipdfm", "dvips", "pdftex", "pdfkit", "itext", "prince", "quarkxpress", "mac os x", "microsoft", "openoffice", "oracle", "luradocument", "pdf-xchange", "antenna house", "aspose.cells", "fpdf"];
468
469
var DefaultExternalServices = /*#__PURE__*/function () {
470
function DefaultExternalServices() {
471
_classCallCheck(this, DefaultExternalServices);
472
473
throw new Error("Cannot initialize DefaultExternalServices.");
474
}
475
476
_createClass(DefaultExternalServices, null, [{
477
key: "updateFindControlState",
478
value: function updateFindControlState(data) {}
479
}, {
480
key: "updateFindMatchesCount",
481
value: function updateFindMatchesCount(data) {}
482
}, {
483
key: "initPassiveLoading",
484
value: function initPassiveLoading(callbacks) {}
485
}, {
486
key: "fallback",
487
value: function () {
488
var _fallback = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(data) {
489
return _regenerator["default"].wrap(function _callee$(_context) {
490
while (1) {
491
switch (_context.prev = _context.next) {
492
case 0:
493
case "end":
494
return _context.stop();
495
}
496
}
497
}, _callee);
498
}));
499
500
function fallback(_x) {
501
return _fallback.apply(this, arguments);
502
}
503
504
return fallback;
505
}()
506
}, {
507
key: "reportTelemetry",
508
value: function reportTelemetry(data) {}
509
}, {
510
key: "createDownloadManager",
511
value: function createDownloadManager(options) {
512
throw new Error("Not implemented: createDownloadManager");
513
}
514
}, {
515
key: "createPreferences",
516
value: function createPreferences() {
517
throw new Error("Not implemented: createPreferences");
518
}
519
}, {
520
key: "createL10n",
521
value: function createL10n(options) {
522
throw new Error("Not implemented: createL10n");
523
}
524
}, {
525
key: "createScripting",
526
value: function createScripting(options) {
527
throw new Error("Not implemented: createScripting");
528
}
529
}, {
530
key: "supportsIntegratedFind",
531
get: function get() {
532
return (0, _pdfjsLib.shadow)(this, "supportsIntegratedFind", false);
533
}
534
}, {
535
key: "supportsDocumentFonts",
536
get: function get() {
537
return (0, _pdfjsLib.shadow)(this, "supportsDocumentFonts", true);
538
}
539
}, {
540
key: "supportedMouseWheelZoomModifierKeys",
541
get: function get() {
542
return (0, _pdfjsLib.shadow)(this, "supportedMouseWheelZoomModifierKeys", {
543
ctrlKey: true,
544
metaKey: true
545
});
546
}
547
}, {
548
key: "isInAutomation",
549
get: function get() {
550
return (0, _pdfjsLib.shadow)(this, "isInAutomation", false);
551
}
552
}]);
553
554
return DefaultExternalServices;
555
}();
556
557
exports.DefaultExternalServices = DefaultExternalServices;
558
var PDFViewerApplication = {
559
initialBookmark: document.location.hash.substring(1),
560
_initializedCapability: (0, _pdfjsLib.createPromiseCapability)(),
561
fellback: false,
562
appConfig: null,
563
pdfDocument: null,
564
pdfLoadingTask: null,
565
printService: null,
566
pdfViewer: null,
567
pdfThumbnailViewer: null,
568
pdfRenderingQueue: null,
569
pdfPresentationMode: null,
570
pdfDocumentProperties: null,
571
pdfLinkService: null,
572
pdfHistory: null,
573
pdfSidebar: null,
574
pdfSidebarResizer: null,
575
pdfOutlineViewer: null,
576
pdfAttachmentViewer: null,
577
pdfLayerViewer: null,
578
pdfCursorTools: null,
579
pdfScriptingManager: null,
580
store: null,
581
downloadManager: null,
582
overlayManager: null,
583
preferences: null,
584
toolbar: null,
585
secondaryToolbar: null,
586
eventBus: null,
587
l10n: null,
588
isInitialViewSet: false,
589
downloadComplete: false,
590
isViewerEmbedded: window.parent !== window,
591
url: "",
592
baseUrl: "",
593
externalServices: DefaultExternalServices,
594
_boundEvents: Object.create(null),
595
documentInfo: null,
596
metadata: null,
597
_contentDispositionFilename: null,
598
_contentLength: null,
599
triggerDelayedFallback: null,
600
_saveInProgress: false,
601
_wheelUnusedTicks: 0,
602
_idleCallbacks: new Set(),
603
initialize: function initialize(appConfig) {
604
var _this = this;
605
606
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
607
var appContainer;
608
return _regenerator["default"].wrap(function _callee2$(_context2) {
609
while (1) {
610
switch (_context2.prev = _context2.next) {
611
case 0:
612
_this.preferences = _this.externalServices.createPreferences();
613
_this.appConfig = appConfig;
614
_context2.next = 4;
615
return _this._readPreferences();
616
617
case 4:
618
_context2.next = 6;
619
return _this._parseHashParameters();
620
621
case 6:
622
_this._forceCssTheme();
623
624
_context2.next = 9;
625
return _this._initializeL10n();
626
627
case 9:
628
if (_this.isViewerEmbedded && _app_options.AppOptions.get("externalLinkTarget") === _pdfjsLib.LinkTarget.NONE) {
629
_app_options.AppOptions.set("externalLinkTarget", _pdfjsLib.LinkTarget.TOP);
630
}
631
632
_context2.next = 12;
633
return _this._initializeViewerComponents();
634
635
case 12:
636
_this.bindEvents();
637
638
_this.bindWindowEvents();
639
640
appContainer = appConfig.appContainer || document.documentElement;
641
642
_this.l10n.translate(appContainer).then(function () {
643
_this.eventBus.dispatch("localized", {
644
source: _this
645
});
646
});
647
648
_this._initializedCapability.resolve();
649
650
case 17:
651
case "end":
652
return _context2.stop();
653
}
654
}
655
}, _callee2);
656
}))();
657
},
658
_readPreferences: function _readPreferences() {
659
var _this2 = this;
660
661
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
662
return _regenerator["default"].wrap(function _callee3$(_context3) {
663
while (1) {
664
switch (_context3.prev = _context3.next) {
665
case 0:
666
if (!_app_options.AppOptions.get("disablePreferences")) {
667
_context3.next = 2;
668
break;
669
}
670
671
return _context3.abrupt("return");
672
673
case 2:
674
_context3.prev = 2;
675
_context3.t0 = _app_options.AppOptions;
676
_context3.next = 6;
677
return _this2.preferences.getAll();
678
679
case 6:
680
_context3.t1 = _context3.sent;
681
682
_context3.t0.setAll.call(_context3.t0, _context3.t1);
683
684
_context3.next = 13;
685
break;
686
687
case 10:
688
_context3.prev = 10;
689
_context3.t2 = _context3["catch"](2);
690
console.error("_readPreferences: \"".concat(_context3.t2 === null || _context3.t2 === void 0 ? void 0 : _context3.t2.message, "\"."));
691
692
case 13:
693
case "end":
694
return _context3.stop();
695
}
696
}
697
}, _callee3, null, [[2, 10]]);
698
}))();
699
},
700
_parseHashParameters: function _parseHashParameters() {
701
var _this3 = this;
702
703
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
704
var hash, hashParams, waitOn, viewer, enabled;
705
return _regenerator["default"].wrap(function _callee4$(_context4) {
706
while (1) {
707
switch (_context4.prev = _context4.next) {
708
case 0:
709
if (_app_options.AppOptions.get("pdfBugEnabled")) {
710
_context4.next = 2;
711
break;
712
}
713
714
return _context4.abrupt("return", undefined);
715
716
case 2:
717
hash = document.location.hash.substring(1);
718
719
if (hash) {
720
_context4.next = 5;
721
break;
722
}
723
724
return _context4.abrupt("return", undefined);
725
726
case 5:
727
hashParams = (0, _ui_utils.parseQueryString)(hash), waitOn = [];
728
729
if ("disableworker" in hashParams && hashParams.disableworker === "true") {
730
waitOn.push(loadFakeWorker());
731
}
732
733
if ("disablerange" in hashParams) {
734
_app_options.AppOptions.set("disableRange", hashParams.disablerange === "true");
735
}
736
737
if ("disablestream" in hashParams) {
738
_app_options.AppOptions.set("disableStream", hashParams.disablestream === "true");
739
}
740
741
if ("disableautofetch" in hashParams) {
742
_app_options.AppOptions.set("disableAutoFetch", hashParams.disableautofetch === "true");
743
}
744
745
if ("disablefontface" in hashParams) {
746
_app_options.AppOptions.set("disableFontFace", hashParams.disablefontface === "true");
747
}
748
749
if ("disablehistory" in hashParams) {
750
_app_options.AppOptions.set("disableHistory", hashParams.disablehistory === "true");
751
}
752
753
if ("webgl" in hashParams) {
754
_app_options.AppOptions.set("enableWebGL", hashParams.webgl === "true");
755
}
756
757
if ("verbosity" in hashParams) {
758
_app_options.AppOptions.set("verbosity", hashParams.verbosity | 0);
759
}
760
761
if (!("textlayer" in hashParams)) {
762
_context4.next = 23;
763
break;
764
}
765
766
_context4.t0 = hashParams.textlayer;
767
_context4.next = _context4.t0 === "off" ? 18 : _context4.t0 === "visible" ? 20 : _context4.t0 === "shadow" ? 20 : _context4.t0 === "hover" ? 20 : 23;
768
break;
769
770
case 18:
771
_app_options.AppOptions.set("textLayerMode", _ui_utils.TextLayerMode.DISABLE);
772
773
return _context4.abrupt("break", 23);
774
775
case 20:
776
viewer = _this3.appConfig.viewerContainer;
777
viewer.classList.add("textLayer-" + hashParams.textlayer);
778
return _context4.abrupt("break", 23);
779
780
case 23:
781
if ("pdfbug" in hashParams) {
782
_app_options.AppOptions.set("pdfBug", true);
783
784
_app_options.AppOptions.set("fontExtraProperties", true);
785
786
enabled = hashParams.pdfbug.split(",");
787
waitOn.push(loadAndEnablePDFBug(enabled));
788
}
789
790
if ("locale" in hashParams) {
791
_app_options.AppOptions.set("locale", hashParams.locale);
792
}
793
794
if (!(waitOn.length === 0)) {
795
_context4.next = 27;
796
break;
797
}
798
799
return _context4.abrupt("return", undefined);
800
801
case 27:
802
return _context4.abrupt("return", Promise.all(waitOn)["catch"](function (reason) {
803
console.error("_parseHashParameters: \"".concat(reason.message, "\"."));
804
}));
805
806
case 28:
807
case "end":
808
return _context4.stop();
809
}
810
}
811
}, _callee4);
812
}))();
813
},
814
_initializeL10n: function _initializeL10n() {
815
var _this4 = this;
816
817
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
818
var dir;
819
return _regenerator["default"].wrap(function _callee5$(_context5) {
820
while (1) {
821
switch (_context5.prev = _context5.next) {
822
case 0:
823
_this4.l10n = _this4.externalServices.createL10n({
824
locale: _app_options.AppOptions.get("locale")
825
});
826
_context5.next = 3;
827
return _this4.l10n.getDirection();
828
829
case 3:
830
dir = _context5.sent;
831
document.getElementsByTagName("html")[0].dir = dir;
832
833
case 5:
834
case "end":
835
return _context5.stop();
836
}
837
}
838
}, _callee5);
839
}))();
840
},
841
_forceCssTheme: function _forceCssTheme() {
842
var cssTheme = _app_options.AppOptions.get("viewerCssTheme");
843
844
if (cssTheme === ViewerCssTheme.AUTOMATIC || !Object.values(ViewerCssTheme).includes(cssTheme)) {
845
return;
846
}
847
848
try {
849
var styleSheet = document.styleSheets[0];
850
var cssRules = (styleSheet === null || styleSheet === void 0 ? void 0 : styleSheet.cssRules) || [];
851
852
for (var i = 0, ii = cssRules.length; i < ii; i++) {
853
var _rule$media;
854
855
var rule = cssRules[i];
856
857
if (rule instanceof CSSMediaRule && ((_rule$media = rule.media) === null || _rule$media === void 0 ? void 0 : _rule$media[0]) === "(prefers-color-scheme: dark)") {
858
if (cssTheme === ViewerCssTheme.LIGHT) {
859
styleSheet.deleteRule(i);
860
return;
861
}
862
863
var darkRules = /^@media \(prefers-color-scheme: dark\) {\n\s*([\w\s-.,:;/\\{}()]+)\n}$/.exec(rule.cssText);
864
865
if (darkRules !== null && darkRules !== void 0 && darkRules[1]) {
866
styleSheet.deleteRule(i);
867
styleSheet.insertRule(darkRules[1], i);
868
}
869
870
return;
871
}
872
}
873
} catch (reason) {
874
console.error("_forceCssTheme: \"".concat(reason === null || reason === void 0 ? void 0 : reason.message, "\"."));
875
}
876
},
877
_initializeViewerComponents: function _initializeViewerComponents() {
878
var _this5 = this;
879
880
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
881
var appConfig, eventBus, pdfRenderingQueue, pdfLinkService, downloadManager, findController, pdfScriptingManager, container, viewer;
882
return _regenerator["default"].wrap(function _callee6$(_context6) {
883
while (1) {
884
switch (_context6.prev = _context6.next) {
885
case 0:
886
appConfig = _this5.appConfig;
887
eventBus = appConfig.eventBus || new _ui_utils.EventBus({
888
isInAutomation: _this5.externalServices.isInAutomation
889
});
890
_this5.eventBus = eventBus;
891
_this5.overlayManager = new _overlay_manager.OverlayManager();
892
pdfRenderingQueue = new _pdf_rendering_queue.PDFRenderingQueue();
893
pdfRenderingQueue.onIdle = _this5._cleanup.bind(_this5);
894
_this5.pdfRenderingQueue = pdfRenderingQueue;
895
pdfLinkService = new _pdf_link_service.PDFLinkService({
896
eventBus: eventBus,
897
externalLinkTarget: _app_options.AppOptions.get("externalLinkTarget"),
898
externalLinkRel: _app_options.AppOptions.get("externalLinkRel"),
899
ignoreDestinationZoom: _app_options.AppOptions.get("ignoreDestinationZoom")
900
});
901
_this5.pdfLinkService = pdfLinkService;
902
downloadManager = _this5.externalServices.createDownloadManager();
903
_this5.downloadManager = downloadManager;
904
findController = new _pdf_find_controller.PDFFindController({
905
linkService: pdfLinkService,
906
eventBus: eventBus
907
});
908
_this5.findController = findController;
909
pdfScriptingManager = new _pdf_scripting_manager.PDFScriptingManager({
910
eventBus: eventBus,
911
sandboxBundleSrc: _app_options.AppOptions.get("sandboxBundleSrc"),
912
scriptingFactory: _this5.externalServices,
913
docPropertiesLookup: _this5._scriptingDocProperties.bind(_this5)
914
});
915
_this5.pdfScriptingManager = pdfScriptingManager;
916
container = appConfig.mainContainer;
917
viewer = appConfig.viewerContainer;
918
_this5.pdfViewer = new _pdf_viewer.PDFViewer({
919
container: container,
920
viewer: viewer,
921
eventBus: eventBus,
922
renderingQueue: pdfRenderingQueue,
923
linkService: pdfLinkService,
924
downloadManager: downloadManager,
925
findController: findController,
926
scriptingManager: pdfScriptingManager,
927
renderer: _app_options.AppOptions.get("renderer"),
928
enableWebGL: _app_options.AppOptions.get("enableWebGL"),
929
l10n: _this5.l10n,
930
textLayerMode: _app_options.AppOptions.get("textLayerMode"),
931
imageResourcesPath: _app_options.AppOptions.get("imageResourcesPath"),
932
renderInteractiveForms: _app_options.AppOptions.get("renderInteractiveForms"),
933
enablePrintAutoRotate: _app_options.AppOptions.get("enablePrintAutoRotate"),
934
useOnlyCssZoom: _app_options.AppOptions.get("useOnlyCssZoom"),
935
maxCanvasPixels: _app_options.AppOptions.get("maxCanvasPixels"),
936
enableScripting: _app_options.AppOptions.get("enableScripting")
937
});
938
pdfRenderingQueue.setViewer(_this5.pdfViewer);
939
pdfLinkService.setViewer(_this5.pdfViewer);
940
pdfScriptingManager.setViewer(_this5.pdfViewer);
941
_this5.pdfThumbnailViewer = new _pdf_thumbnail_viewer.PDFThumbnailViewer({
942
container: appConfig.sidebar.thumbnailView,
943
eventBus: eventBus,
944
renderingQueue: pdfRenderingQueue,
945
linkService: pdfLinkService,
946
l10n: _this5.l10n
947
});
948
pdfRenderingQueue.setThumbnailViewer(_this5.pdfThumbnailViewer);
949
_this5.pdfHistory = new _pdf_history.PDFHistory({
950
linkService: pdfLinkService,
951
eventBus: eventBus
952
});
953
pdfLinkService.setHistory(_this5.pdfHistory);
954
955
if (!_this5.supportsIntegratedFind) {
956
_this5.findBar = new _pdf_find_bar.PDFFindBar(appConfig.findBar, eventBus, _this5.l10n);
957
}
958
959
_this5.pdfDocumentProperties = new _pdf_document_properties.PDFDocumentProperties(appConfig.documentProperties, _this5.overlayManager, eventBus, _this5.l10n);
960
_this5.pdfCursorTools = new _pdf_cursor_tools.PDFCursorTools({
961
container: container,
962
eventBus: eventBus,
963
cursorToolOnLoad: _app_options.AppOptions.get("cursorToolOnLoad")
964
});
965
_this5.toolbar = new _toolbar.Toolbar(appConfig.toolbar, eventBus, _this5.l10n);
966
_this5.secondaryToolbar = new _secondary_toolbar.SecondaryToolbar(appConfig.secondaryToolbar, container, eventBus);
967
968
if (_this5.supportsFullscreen) {
969
_this5.pdfPresentationMode = new _pdf_presentation_mode.PDFPresentationMode({
970
container: container,
971
pdfViewer: _this5.pdfViewer,
972
eventBus: eventBus
973
});
974
}
975
976
_this5.passwordPrompt = new _password_prompt.PasswordPrompt(appConfig.passwordOverlay, _this5.overlayManager, _this5.l10n, _this5.isViewerEmbedded);
977
_this5.pdfOutlineViewer = new _pdf_outline_viewer.PDFOutlineViewer({
978
container: appConfig.sidebar.outlineView,
979
eventBus: eventBus,
980
linkService: pdfLinkService
981
});
982
_this5.pdfAttachmentViewer = new _pdf_attachment_viewer.PDFAttachmentViewer({
983
container: appConfig.sidebar.attachmentsView,
984
eventBus: eventBus,
985
downloadManager: downloadManager
986
});
987
_this5.pdfLayerViewer = new _pdf_layer_viewer.PDFLayerViewer({
988
container: appConfig.sidebar.layersView,
989
eventBus: eventBus,
990
l10n: _this5.l10n
991
});
992
_this5.pdfSidebar = new _pdf_sidebar.PDFSidebar({
993
elements: appConfig.sidebar,
994
pdfViewer: _this5.pdfViewer,
995
pdfThumbnailViewer: _this5.pdfThumbnailViewer,
996
eventBus: eventBus,
997
l10n: _this5.l10n
998
});
999
_this5.pdfSidebar.onToggled = _this5.forceRendering.bind(_this5);
1000
_this5.pdfSidebarResizer = new _pdf_sidebar_resizer.PDFSidebarResizer(appConfig.sidebarResizer, eventBus, _this5.l10n);
1001
1002
case 38:
1003
case "end":
1004
return _context6.stop();
1005
}
1006
}
1007
}, _callee6);
1008
}))();
1009
},
1010
run: function run(config) {
1011
this.initialize(config).then(webViewerInitialized);
1012
},
1013
1014
get initialized() {
1015
return this._initializedCapability.settled;
1016
},
1017
1018
get initializedPromise() {
1019
return this._initializedCapability.promise;
1020
},
1021
1022
zoomIn: function zoomIn(ticks) {
1023
if (this.pdfViewer.isInPresentationMode) {
1024
return;
1025
}
1026
1027
var newScale = this.pdfViewer.currentScale;
1028
1029
do {
1030
newScale = (newScale * DEFAULT_SCALE_DELTA).toFixed(2);
1031
newScale = Math.ceil(newScale * 10) / 10;
1032
newScale = Math.min(_ui_utils.MAX_SCALE, newScale);
1033
} while (--ticks > 0 && newScale < _ui_utils.MAX_SCALE);
1034
1035
this.pdfViewer.currentScaleValue = newScale;
1036
},
1037
zoomOut: function zoomOut(ticks) {
1038
if (this.pdfViewer.isInPresentationMode) {
1039
return;
1040
}
1041
1042
var newScale = this.pdfViewer.currentScale;
1043
1044
do {
1045
newScale = (newScale / DEFAULT_SCALE_DELTA).toFixed(2);
1046
newScale = Math.floor(newScale * 10) / 10;
1047
newScale = Math.max(_ui_utils.MIN_SCALE, newScale);
1048
} while (--ticks > 0 && newScale > _ui_utils.MIN_SCALE);
1049
1050
this.pdfViewer.currentScaleValue = newScale;
1051
},
1052
zoomReset: function zoomReset() {
1053
if (this.pdfViewer.isInPresentationMode) {
1054
return;
1055
}
1056
1057
this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE;
1058
},
1059
1060
get pagesCount() {
1061
return this.pdfDocument ? this.pdfDocument.numPages : 0;
1062
},
1063
1064
get page() {
1065
return this.pdfViewer.currentPageNumber;
1066
},
1067
1068
set page(val) {
1069
this.pdfViewer.currentPageNumber = val;
1070
},
1071
1072
get supportsPrinting() {
1073
return PDFPrintServiceFactory.instance.supportsPrinting;
1074
},
1075
1076
get supportsFullscreen() {
1077
var doc = document.documentElement;
1078
var support = !!(doc.requestFullscreen || doc.mozRequestFullScreen || doc.webkitRequestFullScreen);
1079
1080
if (document.fullscreenEnabled === false || document.mozFullScreenEnabled === false || document.webkitFullscreenEnabled === false) {
1081
support = false;
1082
}
1083
1084
return (0, _pdfjsLib.shadow)(this, "supportsFullscreen", support);
1085
},
1086
1087
get supportsIntegratedFind() {
1088
return this.externalServices.supportsIntegratedFind;
1089
},
1090
1091
get supportsDocumentFonts() {
1092
return this.externalServices.supportsDocumentFonts;
1093
},
1094
1095
get loadingBar() {
1096
var bar = new _ui_utils.ProgressBar("#loadingBar");
1097
return (0, _pdfjsLib.shadow)(this, "loadingBar", bar);
1098
},
1099
1100
get supportedMouseWheelZoomModifierKeys() {
1101
return this.externalServices.supportedMouseWheelZoomModifierKeys;
1102
},
1103
1104
initPassiveLoading: function initPassiveLoading() {
1105
throw new Error("Not implemented: initPassiveLoading");
1106
},
1107
setTitleUsingUrl: function setTitleUsingUrl() {
1108
var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
1109
this.url = url;
1110
this.baseUrl = url.split("#")[0];
1111
var title = (0, _pdfjsLib.getPdfFilenameFromUrl)(url, "");
1112
1113
if (!title) {
1114
try {
1115
title = decodeURIComponent((0, _pdfjsLib.getFilenameFromUrl)(url)) || url;
1116
} catch (ex) {
1117
title = url;
1118
}
1119
}
1120
1121
this.setTitle(title);
1122
},
1123
setTitle: function setTitle(title) {
1124
if (this.isViewerEmbedded) {
1125
return;
1126
}
1127
1128
document.title = title;
1129
},
1130
1131
get _docFilename() {
1132
return this._contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(this.url);
1133
},
1134
1135
_cancelIdleCallbacks: function _cancelIdleCallbacks() {
1136
if (!this._idleCallbacks.size) {
1137
return;
1138
}
1139
1140
var _iterator = _createForOfIteratorHelper(this._idleCallbacks),
1141
_step;
1142
1143
try {
1144
for (_iterator.s(); !(_step = _iterator.n()).done;) {
1145
var callback = _step.value;
1146
window.cancelIdleCallback(callback);
1147
}
1148
} catch (err) {
1149
_iterator.e(err);
1150
} finally {
1151
_iterator.f();
1152
}
1153
1154
this._idleCallbacks.clear();
1155
},
1156
close: function close() {
1157
var _this6 = this;
1158
1159
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
1160
var _this6$pdfDocument;
1161
1162
var container, promises;
1163
return _regenerator["default"].wrap(function _callee7$(_context7) {
1164
while (1) {
1165
switch (_context7.prev = _context7.next) {
1166
case 0:
1167
_this6._unblockDocumentLoadEvent();
1168
1169
container = _this6.appConfig.errorWrapper.container;
1170
container.hidden = true;
1171
1172
if (_this6.pdfLoadingTask) {
1173
_context7.next = 5;
1174
break;
1175
}
1176
1177
return _context7.abrupt("return");
1178
1179
case 5:
1180
if (!(((_this6$pdfDocument = _this6.pdfDocument) === null || _this6$pdfDocument === void 0 ? void 0 : _this6$pdfDocument.annotationStorage.size) > 0 && _this6._annotationStorageModified)) {
1181
_context7.next = 13;
1182
break;
1183
}
1184
1185
_context7.prev = 6;
1186
_context7.next = 9;
1187
return _this6.save({
1188
sourceEventType: "save"
1189
});
1190
1191
case 9:
1192
_context7.next = 13;
1193
break;
1194
1195
case 11:
1196
_context7.prev = 11;
1197
_context7.t0 = _context7["catch"](6);
1198
1199
case 13:
1200
promises = [];
1201
promises.push(_this6.pdfLoadingTask.destroy());
1202
_this6.pdfLoadingTask = null;
1203
1204
if (_this6.pdfDocument) {
1205
_this6.pdfDocument = null;
1206
1207
_this6.pdfThumbnailViewer.setDocument(null);
1208
1209
_this6.pdfViewer.setDocument(null);
1210
1211
_this6.pdfLinkService.setDocument(null);
1212
1213
_this6.pdfDocumentProperties.setDocument(null);
1214
}
1215
1216
webViewerResetPermissions();
1217
_this6.store = null;
1218
_this6.isInitialViewSet = false;
1219
_this6.downloadComplete = false;
1220
_this6.url = "";
1221
_this6.baseUrl = "";
1222
_this6.documentInfo = null;
1223
_this6.metadata = null;
1224
_this6._contentDispositionFilename = null;
1225
_this6._contentLength = null;
1226
_this6.triggerDelayedFallback = null;
1227
_this6._saveInProgress = false;
1228
1229
_this6._cancelIdleCallbacks();
1230
1231
promises.push(_this6.pdfScriptingManager.destroyPromise);
1232
1233
_this6.pdfSidebar.reset();
1234
1235
_this6.pdfOutlineViewer.reset();
1236
1237
_this6.pdfAttachmentViewer.reset();
1238
1239
_this6.pdfLayerViewer.reset();
1240
1241
if (_this6.pdfHistory) {
1242
_this6.pdfHistory.reset();
1243
}
1244
1245
if (_this6.findBar) {
1246
_this6.findBar.reset();
1247
}
1248
1249
_this6.toolbar.reset();
1250
1251
_this6.secondaryToolbar.reset();
1252
1253
if (typeof PDFBug !== "undefined") {
1254
PDFBug.cleanup();
1255
}
1256
1257
_context7.next = 42;
1258
return Promise.all(promises);
1259
1260
case 42:
1261
case "end":
1262
return _context7.stop();
1263
}
1264
}
1265
}, _callee7, null, [[6, 11]]);
1266
}))();
1267
},
1268
open: function open(file, args) {
1269
var _this7 = this;
1270
1271
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
1272
var workerParameters, key, parameters, apiParameters, _key, value, _key2, loadingTask;
1273
1274
return _regenerator["default"].wrap(function _callee8$(_context8) {
1275
while (1) {
1276
switch (_context8.prev = _context8.next) {
1277
case 0:
1278
if (!_this7.pdfLoadingTask) {
1279
_context8.next = 3;
1280
break;
1281
}
1282
1283
_context8.next = 3;
1284
return _this7.close();
1285
1286
case 3:
1287
workerParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.WORKER);
1288
1289
for (key in workerParameters) {
1290
_pdfjsLib.GlobalWorkerOptions[key] = workerParameters[key];
1291
}
1292
1293
parameters = Object.create(null);
1294
1295
if (typeof file === "string") {
1296
_this7.setTitleUsingUrl(file);
1297
1298
parameters.url = file;
1299
} else if (file && "byteLength" in file) {
1300
parameters.data = file;
1301
} else if (file.url && file.originalUrl) {
1302
_this7.setTitleUsingUrl(file.originalUrl);
1303
1304
parameters.url = file.url;
1305
}
1306
1307
apiParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.API);
1308
1309
for (_key in apiParameters) {
1310
value = apiParameters[_key];
1311
1312
if (_key === "docBaseUrl" && !value) {}
1313
1314
parameters[_key] = value;
1315
}
1316
1317
if (args) {
1318
for (_key2 in args) {
1319
parameters[_key2] = args[_key2];
1320
}
1321
}
1322
1323
loadingTask = (0, _pdfjsLib.getDocument)(parameters);
1324
_this7.pdfLoadingTask = loadingTask;
1325
1326
loadingTask.onPassword = function (updateCallback, reason) {
1327
_this7.pdfLinkService.externalLinkEnabled = false;
1328
1329
_this7.passwordPrompt.setUpdateCallback(updateCallback, reason);
1330
1331
_this7.passwordPrompt.open();
1332
};
1333
1334
loadingTask.onProgress = function (_ref) {
1335
var loaded = _ref.loaded,
1336
total = _ref.total;
1337
1338
_this7.progress(loaded / total);
1339
};
1340
1341
loadingTask.onUnsupportedFeature = _this7.fallback.bind(_this7);
1342
return _context8.abrupt("return", loadingTask.promise.then(function (pdfDocument) {
1343
_this7.load(pdfDocument);
1344
}, function (exception) {
1345
if (loadingTask !== _this7.pdfLoadingTask) {
1346
return undefined;
1347
}
1348
1349
var key = "loading_error";
1350
1351
if (exception instanceof _pdfjsLib.InvalidPDFException) {
1352
key = "invalid_file_error";
1353
} else if (exception instanceof _pdfjsLib.MissingPDFException) {
1354
key = "missing_file_error";
1355
} else if (exception instanceof _pdfjsLib.UnexpectedResponseException) {
1356
key = "unexpected_response_error";
1357
}
1358
1359
return _this7.l10n.get(key).then(function (msg) {
1360
_this7._documentError(msg, {
1361
message: exception === null || exception === void 0 ? void 0 : exception.message
1362
});
1363
1364
throw exception;
1365
});
1366
}));
1367
1368
case 16:
1369
case "end":
1370
return _context8.stop();
1371
}
1372
}
1373
}, _callee8);
1374
}))();
1375
},
1376
_ensureDownloadComplete: function _ensureDownloadComplete() {
1377
if (this.pdfDocument && this.downloadComplete) {
1378
return;
1379
}
1380
1381
throw new Error("PDF document not downloaded.");
1382
},
1383
download: function download() {
1384
var _arguments = arguments,
1385
_this8 = this;
1386
1387
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
1388
var _ref2, _ref2$sourceEventType, sourceEventType, url, filename, data, blob;
1389
1390
return _regenerator["default"].wrap(function _callee9$(_context9) {
1391
while (1) {
1392
switch (_context9.prev = _context9.next) {
1393
case 0:
1394
_ref2 = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : {}, _ref2$sourceEventType = _ref2.sourceEventType, sourceEventType = _ref2$sourceEventType === void 0 ? "download" : _ref2$sourceEventType;
1395
url = _this8.baseUrl, filename = _this8._docFilename;
1396
_context9.prev = 2;
1397
1398
_this8._ensureDownloadComplete();
1399
1400
_context9.next = 6;
1401
return _this8.pdfDocument.getData();
1402
1403
case 6:
1404
data = _context9.sent;
1405
blob = new Blob([data], {
1406
type: "application/pdf"
1407
});
1408
_context9.next = 10;
1409
return _this8.downloadManager.download(blob, url, filename, sourceEventType);
1410
1411
case 10:
1412
_context9.next = 16;
1413
break;
1414
1415
case 12:
1416
_context9.prev = 12;
1417
_context9.t0 = _context9["catch"](2);
1418
_context9.next = 16;
1419
return _this8.downloadManager.downloadUrl(url, filename);
1420
1421
case 16:
1422
case "end":
1423
return _context9.stop();
1424
}
1425
}
1426
}, _callee9, null, [[2, 12]]);
1427
}))();
1428
},
1429
save: function save() {
1430
var _arguments2 = arguments,
1431
_this9 = this;
1432
1433
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
1434
var _ref3, _ref3$sourceEventType, sourceEventType, url, filename, data, blob;
1435
1436
return _regenerator["default"].wrap(function _callee10$(_context10) {
1437
while (1) {
1438
switch (_context10.prev = _context10.next) {
1439
case 0:
1440
_ref3 = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {}, _ref3$sourceEventType = _ref3.sourceEventType, sourceEventType = _ref3$sourceEventType === void 0 ? "download" : _ref3$sourceEventType;
1441
1442
if (!_this9._saveInProgress) {
1443
_context10.next = 3;
1444
break;
1445
}
1446
1447
return _context10.abrupt("return");
1448
1449
case 3:
1450
_this9._saveInProgress = true;
1451
_context10.next = 6;
1452
return _this9.pdfScriptingManager.dispatchWillSave();
1453
1454
case 6:
1455
url = _this9.baseUrl, filename = _this9._docFilename;
1456
_context10.prev = 7;
1457
1458
_this9._ensureDownloadComplete();
1459
1460
_context10.next = 11;
1461
return _this9.pdfDocument.saveDocument(_this9.pdfDocument.annotationStorage);
1462
1463
case 11:
1464
data = _context10.sent;
1465
blob = new Blob([data], {
1466
type: "application/pdf"
1467
});
1468
_context10.next = 15;
1469
return _this9.downloadManager.download(blob, url, filename, sourceEventType);
1470
1471
case 15:
1472
_context10.next = 21;
1473
break;
1474
1475
case 17:
1476
_context10.prev = 17;
1477
_context10.t0 = _context10["catch"](7);
1478
_context10.next = 21;
1479
return _this9.download({
1480
sourceEventType: sourceEventType
1481
});
1482
1483
case 21:
1484
_context10.prev = 21;
1485
_context10.next = 24;
1486
return _this9.pdfScriptingManager.dispatchDidSave();
1487
1488
case 24:
1489
_this9._saveInProgress = false;
1490
return _context10.finish(21);
1491
1492
case 26:
1493
case "end":
1494
return _context10.stop();
1495
}
1496
}
1497
}, _callee10, null, [[7, 17, 21, 26]]);
1498
}))();
1499
},
1500
downloadOrSave: function downloadOrSave(options) {
1501
var _this$pdfDocument;
1502
1503
if (((_this$pdfDocument = this.pdfDocument) === null || _this$pdfDocument === void 0 ? void 0 : _this$pdfDocument.annotationStorage.size) > 0) {
1504
this.save(options);
1505
} else {
1506
this.download(options);
1507
}
1508
},
1509
_delayedFallback: function _delayedFallback(featureId) {
1510
var _this10 = this;
1511
1512
this.externalServices.reportTelemetry({
1513
type: "unsupportedFeature",
1514
featureId: featureId
1515
});
1516
1517
if (!this.triggerDelayedFallback) {
1518
this.triggerDelayedFallback = function () {
1519
_this10.fallback(featureId);
1520
1521
_this10.triggerDelayedFallback = null;
1522
};
1523
}
1524
},
1525
fallback: function fallback(featureId) {
1526
var _this11 = this;
1527
1528
this.externalServices.reportTelemetry({
1529
type: "unsupportedFeature",
1530
featureId: featureId
1531
});
1532
1533
switch (featureId) {
1534
case _pdfjsLib.UNSUPPORTED_FEATURES.errorFontLoadNative:
1535
case _pdfjsLib.UNSUPPORTED_FEATURES.errorFontMissing:
1536
return;
1537
}
1538
1539
if (this.fellback) {
1540
return;
1541
}
1542
1543
this.fellback = true;
1544
this.externalServices.fallback({
1545
featureId: featureId,
1546
url: this.baseUrl
1547
}).then(function (download) {
1548
if (!download) {
1549
return;
1550
}
1551
1552
_this11.download({
1553
sourceEventType: "download"
1554
});
1555
});
1556
},
1557
_documentError: function _documentError(message) {
1558
var moreInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1559
1560
this._unblockDocumentLoadEvent();
1561
1562
this._otherError(message, moreInfo);
1563
},
1564
_otherError: function _otherError(message) {
1565
var moreInfo = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1566
var moreInfoText = [this.l10n.get("error_version_info", {
1567
version: _pdfjsLib.version || "?",
1568
build: _pdfjsLib.build || "?"
1569
})];
1570
1571
if (moreInfo) {
1572
moreInfoText.push(this.l10n.get("error_message", {
1573
message: moreInfo.message
1574
}));
1575
1576
if (moreInfo.stack) {
1577
moreInfoText.push(this.l10n.get("error_stack", {
1578
stack: moreInfo.stack
1579
}));
1580
} else {
1581
if (moreInfo.filename) {
1582
moreInfoText.push(this.l10n.get("error_file", {
1583
file: moreInfo.filename
1584
}));
1585
}
1586
1587
if (moreInfo.lineNumber) {
1588
moreInfoText.push(this.l10n.get("error_line", {
1589
line: moreInfo.lineNumber
1590
}));
1591
}
1592
}
1593
}
1594
1595
var errorWrapperConfig = this.appConfig.errorWrapper;
1596
var errorWrapper = errorWrapperConfig.container;
1597
errorWrapper.hidden = false;
1598
var errorMessage = errorWrapperConfig.errorMessage;
1599
errorMessage.textContent = message;
1600
var closeButton = errorWrapperConfig.closeButton;
1601
1602
closeButton.onclick = function () {
1603
errorWrapper.hidden = true;
1604
};
1605
1606
var errorMoreInfo = errorWrapperConfig.errorMoreInfo;
1607
var moreInfoButton = errorWrapperConfig.moreInfoButton;
1608
var lessInfoButton = errorWrapperConfig.lessInfoButton;
1609
1610
moreInfoButton.onclick = function () {
1611
errorMoreInfo.hidden = false;
1612
moreInfoButton.hidden = true;
1613
lessInfoButton.hidden = false;
1614
errorMoreInfo.style.height = errorMoreInfo.scrollHeight + "px";
1615
};
1616
1617
lessInfoButton.onclick = function () {
1618
errorMoreInfo.hidden = true;
1619
moreInfoButton.hidden = false;
1620
lessInfoButton.hidden = true;
1621
};
1622
1623
moreInfoButton.oncontextmenu = _ui_utils.noContextMenuHandler;
1624
lessInfoButton.oncontextmenu = _ui_utils.noContextMenuHandler;
1625
closeButton.oncontextmenu = _ui_utils.noContextMenuHandler;
1626
moreInfoButton.hidden = false;
1627
lessInfoButton.hidden = true;
1628
Promise.all(moreInfoText).then(function (parts) {
1629
errorMoreInfo.value = parts.join("\n");
1630
});
1631
},
1632
progress: function progress(level) {
1633
var _this12 = this;
1634
1635
if (this.downloadComplete) {
1636
return;
1637
}
1638
1639
var percent = Math.round(level * 100);
1640
1641
if (percent > this.loadingBar.percent || isNaN(percent)) {
1642
this.loadingBar.percent = percent;
1643
var disableAutoFetch = this.pdfDocument ? this.pdfDocument.loadingParams.disableAutoFetch : _app_options.AppOptions.get("disableAutoFetch");
1644
1645
if (disableAutoFetch && percent) {
1646
if (this.disableAutoFetchLoadingBarTimeout) {
1647
clearTimeout(this.disableAutoFetchLoadingBarTimeout);
1648
this.disableAutoFetchLoadingBarTimeout = null;
1649
}
1650
1651
this.loadingBar.show();
1652
this.disableAutoFetchLoadingBarTimeout = setTimeout(function () {
1653
_this12.loadingBar.hide();
1654
1655
_this12.disableAutoFetchLoadingBarTimeout = null;
1656
}, DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT);
1657
}
1658
}
1659
},
1660
load: function load(pdfDocument) {
1661
var _this13 = this;
1662
1663
this.pdfDocument = pdfDocument;
1664
pdfDocument.getDownloadInfo().then(function (_ref4) {
1665
var length = _ref4.length;
1666
_this13._contentLength = length;
1667
_this13.downloadComplete = true;
1668
1669
_this13.loadingBar.hide();
1670
1671
firstPagePromise.then(function () {
1672
_this13.eventBus.dispatch("documentloaded", {
1673
source: _this13
1674
});
1675
});
1676
});
1677
var pageLayoutPromise = pdfDocument.getPageLayout()["catch"](function () {});
1678
var pageModePromise = pdfDocument.getPageMode()["catch"](function () {});
1679
var openActionPromise = pdfDocument.getOpenAction()["catch"](function () {});
1680
this.toolbar.setPagesCount(pdfDocument.numPages, false);
1681
this.secondaryToolbar.setPagesCount(pdfDocument.numPages);
1682
var baseDocumentUrl;
1683
baseDocumentUrl = null;
1684
this.pdfLinkService.setDocument(pdfDocument, baseDocumentUrl);
1685
this.pdfDocumentProperties.setDocument(pdfDocument, this.url);
1686
var pdfViewer = this.pdfViewer;
1687
pdfViewer.setDocument(pdfDocument);
1688
var firstPagePromise = pdfViewer.firstPagePromise,
1689
onePageRendered = pdfViewer.onePageRendered,
1690
pagesPromise = pdfViewer.pagesPromise;
1691
var pdfThumbnailViewer = this.pdfThumbnailViewer;
1692
pdfThumbnailViewer.setDocument(pdfDocument);
1693
var storedPromise = (this.store = new _view_history.ViewHistory(pdfDocument.fingerprint)).getMultiple({
1694
page: null,
1695
zoom: _ui_utils.DEFAULT_SCALE_VALUE,
1696
scrollLeft: "0",
1697
scrollTop: "0",
1698
rotation: null,
1699
sidebarView: _ui_utils.SidebarView.UNKNOWN,
1700
scrollMode: _ui_utils.ScrollMode.UNKNOWN,
1701
spreadMode: _ui_utils.SpreadMode.UNKNOWN
1702
})["catch"](function () {
1703
return Object.create(null);
1704
});
1705
firstPagePromise.then(function (pdfPage) {
1706
_this13.loadingBar.setWidth(_this13.appConfig.viewerContainer);
1707
1708
_this13._initializeAnnotationStorageCallbacks(pdfDocument);
1709
1710
Promise.all([_ui_utils.animationStarted, storedPromise, pageLayoutPromise, pageModePromise, openActionPromise]).then( /*#__PURE__*/function () {
1711
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee11(_ref5) {
1712
var _ref7, timeStamp, stored, pageLayout, pageMode, openAction, viewOnLoad, initialBookmark, zoom, hash, rotation, sidebarView, scrollMode, spreadMode;
1713
1714
return _regenerator["default"].wrap(function _callee11$(_context11) {
1715
while (1) {
1716
switch (_context11.prev = _context11.next) {
1717
case 0:
1718
_ref7 = _slicedToArray(_ref5, 5), timeStamp = _ref7[0], stored = _ref7[1], pageLayout = _ref7[2], pageMode = _ref7[3], openAction = _ref7[4];
1719
viewOnLoad = _app_options.AppOptions.get("viewOnLoad");
1720
1721
_this13._initializePdfHistory({
1722
fingerprint: pdfDocument.fingerprint,
1723
viewOnLoad: viewOnLoad,
1724
initialDest: openAction === null || openAction === void 0 ? void 0 : openAction.dest
1725
});
1726
1727
initialBookmark = _this13.initialBookmark;
1728
zoom = _app_options.AppOptions.get("defaultZoomValue");
1729
hash = zoom ? "zoom=".concat(zoom) : null;
1730
rotation = null;
1731
sidebarView = _app_options.AppOptions.get("sidebarViewOnLoad");
1732
scrollMode = _app_options.AppOptions.get("scrollModeOnLoad");
1733
spreadMode = _app_options.AppOptions.get("spreadModeOnLoad");
1734
1735
if (stored.page && viewOnLoad !== ViewOnLoad.INITIAL) {
1736
hash = "page=".concat(stored.page, "&zoom=").concat(zoom || stored.zoom, ",") + "".concat(stored.scrollLeft, ",").concat(stored.scrollTop);
1737
rotation = parseInt(stored.rotation, 10);
1738
1739
if (sidebarView === _ui_utils.SidebarView.UNKNOWN) {
1740
sidebarView = stored.sidebarView | 0;
1741
}
1742
1743
if (scrollMode === _ui_utils.ScrollMode.UNKNOWN) {
1744
scrollMode = stored.scrollMode | 0;
1745
}
1746
1747
if (spreadMode === _ui_utils.SpreadMode.UNKNOWN) {
1748
spreadMode = stored.spreadMode | 0;
1749
}
1750
}
1751
1752
if (pageMode && sidebarView === _ui_utils.SidebarView.UNKNOWN) {
1753
sidebarView = (0, _ui_utils.apiPageModeToSidebarView)(pageMode);
1754
}
1755
1756
if (pageLayout && spreadMode === _ui_utils.SpreadMode.UNKNOWN) {
1757
spreadMode = (0, _ui_utils.apiPageLayoutToSpreadMode)(pageLayout);
1758
}
1759
1760
_this13.setInitialView(hash, {
1761
rotation: rotation,
1762
sidebarView: sidebarView,
1763
scrollMode: scrollMode,
1764
spreadMode: spreadMode
1765
});
1766
1767
_this13.eventBus.dispatch("documentinit", {
1768
source: _this13
1769
});
1770
1771
if (!_this13.isViewerEmbedded) {
1772
pdfViewer.focus();
1773
}
1774
1775
_this13._initializePermissions(pdfDocument);
1776
1777
_context11.next = 19;
1778
return Promise.race([pagesPromise, new Promise(function (resolve) {
1779
setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT);
1780
})]);
1781
1782
case 19:
1783
if (!(!initialBookmark && !hash)) {
1784
_context11.next = 21;
1785
break;
1786
}
1787
1788
return _context11.abrupt("return");
1789
1790
case 21:
1791
if (!pdfViewer.hasEqualPageSizes) {
1792
_context11.next = 23;
1793
break;
1794
}
1795
1796
return _context11.abrupt("return");
1797
1798
case 23:
1799
_this13.initialBookmark = initialBookmark;
1800
pdfViewer.currentScaleValue = pdfViewer.currentScaleValue;
1801
1802
_this13.setInitialView(hash);
1803
1804
case 26:
1805
case "end":
1806
return _context11.stop();
1807
}
1808
}
1809
}, _callee11);
1810
}));
1811
1812
return function (_x2) {
1813
return _ref6.apply(this, arguments);
1814
};
1815
}())["catch"](function () {
1816
_this13.setInitialView();
1817
}).then(function () {
1818
pdfViewer.update();
1819
});
1820
});
1821
pagesPromise.then(function () {
1822
_this13._unblockDocumentLoadEvent();
1823
1824
_this13._initializeAutoPrint(pdfDocument, openActionPromise);
1825
});
1826
onePageRendered.then(function () {
1827
pdfDocument.getOutline().then(function (outline) {
1828
_this13.pdfOutlineViewer.render({
1829
outline: outline,
1830
pdfDocument: pdfDocument
1831
});
1832
});
1833
pdfDocument.getAttachments().then(function (attachments) {
1834
_this13.pdfAttachmentViewer.render({
1835
attachments: attachments
1836
});
1837
});
1838
pdfViewer.optionalContentConfigPromise.then(function (optionalContentConfig) {
1839
_this13.pdfLayerViewer.render({
1840
optionalContentConfig: optionalContentConfig,
1841
pdfDocument: pdfDocument
1842
});
1843
});
1844
1845
if ("requestIdleCallback" in window) {
1846
var callback = window.requestIdleCallback(function () {
1847
_this13._collectTelemetry(pdfDocument);
1848
1849
_this13._idleCallbacks["delete"](callback);
1850
}, {
1851
timeout: 1000
1852
});
1853
1854
_this13._idleCallbacks.add(callback);
1855
}
1856
});
1857
1858
this._initializePageLabels(pdfDocument);
1859
1860
this._initializeMetadata(pdfDocument);
1861
},
1862
_scriptingDocProperties: function _scriptingDocProperties(pdfDocument) {
1863
var _this14 = this;
1864
1865
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
1866
var _this14$metadata, _this14$metadata2;
1867
1868
return _regenerator["default"].wrap(function _callee12$(_context12) {
1869
while (1) {
1870
switch (_context12.prev = _context12.next) {
1871
case 0:
1872
if (_this14.documentInfo) {
1873
_context12.next = 5;
1874
break;
1875
}
1876
1877
_context12.next = 3;
1878
return new Promise(function (resolve) {
1879
_this14.eventBus._on("metadataloaded", resolve, {
1880
once: true
1881
});
1882
});
1883
1884
case 3:
1885
if (!(pdfDocument !== _this14.pdfDocument)) {
1886
_context12.next = 5;
1887
break;
1888
}
1889
1890
return _context12.abrupt("return", null);
1891
1892
case 5:
1893
if (_this14._contentLength) {
1894
_context12.next = 10;
1895
break;
1896
}
1897
1898
_context12.next = 8;
1899
return new Promise(function (resolve) {
1900
_this14.eventBus._on("documentloaded", resolve, {
1901
once: true
1902
});
1903
});
1904
1905
case 8:
1906
if (!(pdfDocument !== _this14.pdfDocument)) {
1907
_context12.next = 10;
1908
break;
1909
}
1910
1911
return _context12.abrupt("return", null);
1912
1913
case 10:
1914
return _context12.abrupt("return", _objectSpread(_objectSpread({}, _this14.documentInfo), {}, {
1915
baseURL: _this14.baseUrl,
1916
filesize: _this14._contentLength,
1917
filename: _this14._docFilename,
1918
metadata: (_this14$metadata = _this14.metadata) === null || _this14$metadata === void 0 ? void 0 : _this14$metadata.getRaw(),
1919
authors: (_this14$metadata2 = _this14.metadata) === null || _this14$metadata2 === void 0 ? void 0 : _this14$metadata2.get("dc:creator"),
1920
numPages: _this14.pagesCount,
1921
URL: _this14.url
1922
}));
1923
1924
case 11:
1925
case "end":
1926
return _context12.stop();
1927
}
1928
}
1929
}, _callee12);
1930
}))();
1931
},
1932
_collectTelemetry: function _collectTelemetry(pdfDocument) {
1933
var _this15 = this;
1934
1935
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee13() {
1936
var markInfo, tagged;
1937
return _regenerator["default"].wrap(function _callee13$(_context13) {
1938
while (1) {
1939
switch (_context13.prev = _context13.next) {
1940
case 0:
1941
_context13.next = 2;
1942
return _this15.pdfDocument.getMarkInfo();
1943
1944
case 2:
1945
markInfo = _context13.sent;
1946
1947
if (!(pdfDocument !== _this15.pdfDocument)) {
1948
_context13.next = 5;
1949
break;
1950
}
1951
1952
return _context13.abrupt("return");
1953
1954
case 5:
1955
tagged = (markInfo === null || markInfo === void 0 ? void 0 : markInfo.Marked) || false;
1956
1957
_this15.externalServices.reportTelemetry({
1958
type: "tagged",
1959
tagged: tagged
1960
});
1961
1962
case 7:
1963
case "end":
1964
return _context13.stop();
1965
}
1966
}
1967
}, _callee13);
1968
}))();
1969
},
1970
_initializeAutoPrint: function _initializeAutoPrint(pdfDocument, openActionPromise) {
1971
var _this16 = this;
1972
1973
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee14() {
1974
var _yield$Promise$all, _yield$Promise$all2, openAction, javaScript, triggerAutoPrint, _iterator2, _step2, js;
1975
1976
return _regenerator["default"].wrap(function _callee14$(_context14) {
1977
while (1) {
1978
switch (_context14.prev = _context14.next) {
1979
case 0:
1980
_context14.next = 2;
1981
return Promise.all([openActionPromise, !_this16.pdfViewer.enableScripting ? pdfDocument.getJavaScript() : null]);
1982
1983
case 2:
1984
_yield$Promise$all = _context14.sent;
1985
_yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);
1986
openAction = _yield$Promise$all2[0];
1987
javaScript = _yield$Promise$all2[1];
1988
1989
if (!(pdfDocument !== _this16.pdfDocument)) {
1990
_context14.next = 8;
1991
break;
1992
}
1993
1994
return _context14.abrupt("return");
1995
1996
case 8:
1997
triggerAutoPrint = false;
1998
1999
if ((openAction === null || openAction === void 0 ? void 0 : openAction.action) === "Print") {
2000
triggerAutoPrint = true;
2001
}
2002
2003
if (!javaScript) {
2004
_context14.next = 31;
2005
break;
2006
}
2007
2008
javaScript.some(function (js) {
2009
if (!js) {
2010
return false;
2011
}
2012
2013
console.warn("Warning: JavaScript is not supported");
2014
2015
_this16._delayedFallback(_pdfjsLib.UNSUPPORTED_FEATURES.javaScript);
2016
2017
return true;
2018
});
2019
2020
if (triggerAutoPrint) {
2021
_context14.next = 31;
2022
break;
2023
}
2024
2025
_iterator2 = _createForOfIteratorHelper(javaScript);
2026
_context14.prev = 14;
2027
2028
_iterator2.s();
2029
2030
case 16:
2031
if ((_step2 = _iterator2.n()).done) {
2032
_context14.next = 23;
2033
break;
2034
}
2035
2036
js = _step2.value;
2037
2038
if (!(js && _ui_utils.AutoPrintRegExp.test(js))) {
2039
_context14.next = 21;
2040
break;
2041
}
2042
2043
triggerAutoPrint = true;
2044
return _context14.abrupt("break", 23);
2045
2046
case 21:
2047
_context14.next = 16;
2048
break;
2049
2050
case 23:
2051
_context14.next = 28;
2052
break;
2053
2054
case 25:
2055
_context14.prev = 25;
2056
_context14.t0 = _context14["catch"](14);
2057
2058
_iterator2.e(_context14.t0);
2059
2060
case 28:
2061
_context14.prev = 28;
2062
2063
_iterator2.f();
2064
2065
return _context14.finish(28);
2066
2067
case 31:
2068
if (triggerAutoPrint) {
2069
_this16.triggerPrinting();
2070
}
2071
2072
case 32:
2073
case "end":
2074
return _context14.stop();
2075
}
2076
}
2077
}, _callee14, null, [[14, 25, 28, 31]]);
2078
}))();
2079
},
2080
_initializeMetadata: function _initializeMetadata(pdfDocument) {
2081
var _this17 = this;
2082
2083
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee15() {
2084
var _this17$_contentDispo, _this17$_contentLengt;
2085
2086
var _yield$pdfDocument$ge, info, metadata, contentDispositionFilename, contentLength, pdfTitle, metadataTitle, versionId, generatorId, producer, formType;
2087
2088
return _regenerator["default"].wrap(function _callee15$(_context15) {
2089
while (1) {
2090
switch (_context15.prev = _context15.next) {
2091
case 0:
2092
_context15.next = 2;
2093
return pdfDocument.getMetadata();
2094
2095
case 2:
2096
_yield$pdfDocument$ge = _context15.sent;
2097
info = _yield$pdfDocument$ge.info;
2098
metadata = _yield$pdfDocument$ge.metadata;
2099
contentDispositionFilename = _yield$pdfDocument$ge.contentDispositionFilename;
2100
contentLength = _yield$pdfDocument$ge.contentLength;
2101
2102
if (!(pdfDocument !== _this17.pdfDocument)) {
2103
_context15.next = 9;
2104
break;
2105
}
2106
2107
return _context15.abrupt("return");
2108
2109
case 9:
2110
_this17.documentInfo = info;
2111
_this17.metadata = metadata;
2112
(_this17$_contentDispo = _this17._contentDispositionFilename) !== null && _this17$_contentDispo !== void 0 ? _this17$_contentDispo : _this17._contentDispositionFilename = contentDispositionFilename;
2113
(_this17$_contentLengt = _this17._contentLength) !== null && _this17$_contentLengt !== void 0 ? _this17$_contentLengt : _this17._contentLength = contentLength;
2114
console.log("PDF ".concat(pdfDocument.fingerprint, " [").concat(info.PDFFormatVersion, " ") + "".concat((info.Producer || "-").trim(), " / ").concat((info.Creator || "-").trim(), "] ") + "(PDF.js: ".concat(_pdfjsLib.version || "-") + "".concat(_this17.pdfViewer.enableWebGL ? " [WebGL]" : "", ")"));
2115
pdfTitle = info === null || info === void 0 ? void 0 : info.Title;
2116
metadataTitle = metadata === null || metadata === void 0 ? void 0 : metadata.get("dc:title");
2117
2118
if (metadataTitle) {
2119
if (metadataTitle !== "Untitled" && !/[\uFFF0-\uFFFF]/g.test(metadataTitle)) {
2120
pdfTitle = metadataTitle;
2121
}
2122
}
2123
2124
if (pdfTitle) {
2125
_this17.setTitle("".concat(pdfTitle, " - ").concat(contentDispositionFilename || document.title));
2126
} else if (contentDispositionFilename) {
2127
_this17.setTitle(contentDispositionFilename);
2128
}
2129
2130
if (info.IsXFAPresent && !info.IsAcroFormPresent && !pdfDocument.isPureXfa) {
2131
console.warn("Warning: XFA is not supported");
2132
2133
_this17._delayedFallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms);
2134
} else if ((info.IsAcroFormPresent || info.IsXFAPresent) && !_this17.pdfViewer.renderInteractiveForms) {
2135
console.warn("Warning: Interactive form support is not enabled");
2136
2137
_this17._delayedFallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms);
2138
}
2139
2140
versionId = "other";
2141
2142
if (KNOWN_VERSIONS.includes(info.PDFFormatVersion)) {
2143
versionId = "v".concat(info.PDFFormatVersion.replace(".", "_"));
2144
}
2145
2146
generatorId = "other";
2147
2148
if (info.Producer) {
2149
producer = info.Producer.toLowerCase();
2150
KNOWN_GENERATORS.some(function (generator) {
2151
if (!producer.includes(generator)) {
2152
return false;
2153
}
2154
2155
generatorId = generator.replace(/[ .-]/g, "_");
2156
return true;
2157
});
2158
}
2159
2160
formType = null;
2161
2162
if (info.IsXFAPresent) {
2163
formType = "xfa";
2164
} else if (info.IsAcroFormPresent) {
2165
formType = "acroform";
2166
}
2167
2168
_this17.externalServices.reportTelemetry({
2169
type: "documentInfo",
2170
version: versionId,
2171
generator: generatorId,
2172
formType: formType
2173
});
2174
2175
_this17.eventBus.dispatch("metadataloaded", {
2176
source: _this17
2177
});
2178
2179
case 27:
2180
case "end":
2181
return _context15.stop();
2182
}
2183
}
2184
}, _callee15);
2185
}))();
2186
},
2187
_initializePageLabels: function _initializePageLabels(pdfDocument) {
2188
var _this18 = this;
2189
2190
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee16() {
2191
var labels, numLabels, i, pdfViewer, pdfThumbnailViewer, toolbar;
2192
return _regenerator["default"].wrap(function _callee16$(_context16) {
2193
while (1) {
2194
switch (_context16.prev = _context16.next) {
2195
case 0:
2196
_context16.next = 2;
2197
return pdfDocument.getPageLabels();
2198
2199
case 2:
2200
labels = _context16.sent;
2201
2202
if (!(pdfDocument !== _this18.pdfDocument)) {
2203
_context16.next = 5;
2204
break;
2205
}
2206
2207
return _context16.abrupt("return");
2208
2209
case 5:
2210
if (!(!labels || _app_options.AppOptions.get("disablePageLabels"))) {
2211
_context16.next = 7;
2212
break;
2213
}
2214
2215
return _context16.abrupt("return");
2216
2217
case 7:
2218
numLabels = labels.length;
2219
2220
if (!(numLabels !== _this18.pagesCount)) {
2221
_context16.next = 11;
2222
break;
2223
}
2224
2225
console.error("The number of Page Labels does not match the number of pages in the document.");
2226
return _context16.abrupt("return");
2227
2228
case 11:
2229
i = 0;
2230
2231
while (i < numLabels && labels[i] === (i + 1).toString()) {
2232
i++;
2233
}
2234
2235
if (!(i === numLabels)) {
2236
_context16.next = 15;
2237
break;
2238
}
2239
2240
return _context16.abrupt("return");
2241
2242
case 15:
2243
pdfViewer = _this18.pdfViewer, pdfThumbnailViewer = _this18.pdfThumbnailViewer, toolbar = _this18.toolbar;
2244
pdfViewer.setPageLabels(labels);
2245
pdfThumbnailViewer.setPageLabels(labels);
2246
toolbar.setPagesCount(numLabels, true);
2247
toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel);
2248
2249
case 20:
2250
case "end":
2251
return _context16.stop();
2252
}
2253
}
2254
}, _callee16);
2255
}))();
2256
},
2257
_initializePdfHistory: function _initializePdfHistory(_ref8) {
2258
var fingerprint = _ref8.fingerprint,
2259
viewOnLoad = _ref8.viewOnLoad,
2260
_ref8$initialDest = _ref8.initialDest,
2261
initialDest = _ref8$initialDest === void 0 ? null : _ref8$initialDest;
2262
2263
if (this.isViewerEmbedded || _app_options.AppOptions.get("disableHistory")) {
2264
return;
2265
}
2266
2267
this.pdfHistory.initialize({
2268
fingerprint: fingerprint,
2269
resetHistory: viewOnLoad === ViewOnLoad.INITIAL,
2270
updateUrl: _app_options.AppOptions.get("historyUpdateUrl")
2271
});
2272
2273
if (this.pdfHistory.initialBookmark) {
2274
this.initialBookmark = this.pdfHistory.initialBookmark;
2275
this.initialRotation = this.pdfHistory.initialRotation;
2276
}
2277
2278
if (initialDest && !this.initialBookmark && viewOnLoad === ViewOnLoad.UNKNOWN) {
2279
this.initialBookmark = JSON.stringify(initialDest);
2280
this.pdfHistory.push({
2281
explicitDest: initialDest,
2282
pageNumber: null
2283
});
2284
}
2285
},
2286
_initializePermissions: function _initializePermissions(pdfDocument) {
2287
var _this19 = this;
2288
2289
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee17() {
2290
var permissions;
2291
return _regenerator["default"].wrap(function _callee17$(_context17) {
2292
while (1) {
2293
switch (_context17.prev = _context17.next) {
2294
case 0:
2295
_context17.next = 2;
2296
return pdfDocument.getPermissions();
2297
2298
case 2:
2299
permissions = _context17.sent;
2300
2301
if (!(pdfDocument !== _this19.pdfDocument)) {
2302
_context17.next = 5;
2303
break;
2304
}
2305
2306
return _context17.abrupt("return");
2307
2308
case 5:
2309
if (!(!permissions || !_app_options.AppOptions.get("enablePermissions"))) {
2310
_context17.next = 7;
2311
break;
2312
}
2313
2314
return _context17.abrupt("return");
2315
2316
case 7:
2317
if (!permissions.includes(_pdfjsLib.PermissionFlag.COPY)) {
2318
_this19.appConfig.viewerContainer.classList.add(ENABLE_PERMISSIONS_CLASS);
2319
}
2320
2321
case 8:
2322
case "end":
2323
return _context17.stop();
2324
}
2325
}
2326
}, _callee17);
2327
}))();
2328
},
2329
_initializeAnnotationStorageCallbacks: function _initializeAnnotationStorageCallbacks(pdfDocument) {
2330
var _this20 = this;
2331
2332
if (pdfDocument !== this.pdfDocument) {
2333
return;
2334
}
2335
2336
var annotationStorage = pdfDocument.annotationStorage;
2337
2338
annotationStorage.onSetModified = function () {
2339
window.addEventListener("beforeunload", beforeUnload);
2340
_this20._annotationStorageModified = true;
2341
};
2342
2343
annotationStorage.onResetModified = function () {
2344
window.removeEventListener("beforeunload", beforeUnload);
2345
delete _this20._annotationStorageModified;
2346
};
2347
},
2348
setInitialView: function setInitialView(storedHash) {
2349
var _this21 = this;
2350
2351
var _ref9 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
2352
rotation = _ref9.rotation,
2353
sidebarView = _ref9.sidebarView,
2354
scrollMode = _ref9.scrollMode,
2355
spreadMode = _ref9.spreadMode;
2356
2357
var setRotation = function setRotation(angle) {
2358
if ((0, _ui_utils.isValidRotation)(angle)) {
2359
_this21.pdfViewer.pagesRotation = angle;
2360
}
2361
};
2362
2363
var setViewerModes = function setViewerModes(scroll, spread) {
2364
if ((0, _ui_utils.isValidScrollMode)(scroll)) {
2365
_this21.pdfViewer.scrollMode = scroll;
2366
}
2367
2368
if ((0, _ui_utils.isValidSpreadMode)(spread)) {
2369
_this21.pdfViewer.spreadMode = spread;
2370
}
2371
};
2372
2373
this.isInitialViewSet = true;
2374
this.pdfSidebar.setInitialView(sidebarView);
2375
setViewerModes(scrollMode, spreadMode);
2376
2377
if (this.initialBookmark) {
2378
setRotation(this.initialRotation);
2379
delete this.initialRotation;
2380
this.pdfLinkService.setHash(this.initialBookmark);
2381
this.initialBookmark = null;
2382
} else if (storedHash) {
2383
setRotation(rotation);
2384
this.pdfLinkService.setHash(storedHash);
2385
}
2386
2387
this.toolbar.setPageNumber(this.pdfViewer.currentPageNumber, this.pdfViewer.currentPageLabel);
2388
this.secondaryToolbar.setPageNumber(this.pdfViewer.currentPageNumber);
2389
2390
if (!this.pdfViewer.currentScaleValue) {
2391
this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE;
2392
}
2393
},
2394
_cleanup: function _cleanup() {
2395
if (!this.pdfDocument) {
2396
return;
2397
}
2398
2399
this.pdfViewer.cleanup();
2400
this.pdfThumbnailViewer.cleanup();
2401
this.pdfDocument.cleanup(this.pdfViewer.renderer === _ui_utils.RendererType.SVG);
2402
},
2403
forceRendering: function forceRendering() {
2404
this.pdfRenderingQueue.printing = !!this.printService;
2405
this.pdfRenderingQueue.isThumbnailViewEnabled = this.pdfSidebar.isThumbnailViewVisible;
2406
this.pdfRenderingQueue.renderHighestPriority();
2407
},
2408
beforePrint: function beforePrint() {
2409
var _this22 = this;
2410
2411
this.pdfScriptingManager.dispatchWillPrint();
2412
2413
if (this.printService) {
2414
return;
2415
}
2416
2417
if (!this.supportsPrinting) {
2418
this.l10n.get("printing_not_supported").then(function (msg) {
2419
_this22._otherError(msg);
2420
});
2421
return;
2422
}
2423
2424
if (!this.pdfViewer.pageViewsReady) {
2425
this.l10n.get("printing_not_ready").then(function (msg) {
2426
window.alert(msg);
2427
});
2428
return;
2429
}
2430
2431
var pagesOverview = this.pdfViewer.getPagesOverview();
2432
var printContainer = this.appConfig.printContainer;
2433
2434
var printResolution = _app_options.AppOptions.get("printResolution");
2435
2436
var optionalContentConfigPromise = this.pdfViewer.optionalContentConfigPromise;
2437
var printService = PDFPrintServiceFactory.instance.createPrintService(this.pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, this.l10n);
2438
this.printService = printService;
2439
this.forceRendering();
2440
printService.layout();
2441
this.externalServices.reportTelemetry({
2442
type: "print"
2443
});
2444
},
2445
afterPrint: function afterPrint() {
2446
this.pdfScriptingManager.dispatchDidPrint();
2447
2448
if (this.printService) {
2449
this.printService.destroy();
2450
this.printService = null;
2451
2452
if (this.pdfDocument) {
2453
this.pdfDocument.annotationStorage.resetModified();
2454
}
2455
}
2456
2457
this.forceRendering();
2458
},
2459
rotatePages: function rotatePages(delta) {
2460
this.pdfViewer.pagesRotation += delta;
2461
},
2462
requestPresentationMode: function requestPresentationMode() {
2463
if (!this.pdfPresentationMode) {
2464
return;
2465
}
2466
2467
this.pdfPresentationMode.request();
2468
},
2469
triggerPrinting: function triggerPrinting() {
2470
if (!this.supportsPrinting) {
2471
return;
2472
}
2473
2474
window.print();
2475
},
2476
bindEvents: function bindEvents() {
2477
var eventBus = this.eventBus,
2478
_boundEvents = this._boundEvents;
2479
_boundEvents.beforePrint = this.beforePrint.bind(this);
2480
_boundEvents.afterPrint = this.afterPrint.bind(this);
2481
2482
eventBus._on("resize", webViewerResize);
2483
2484
eventBus._on("hashchange", webViewerHashchange);
2485
2486
eventBus._on("beforeprint", _boundEvents.beforePrint);
2487
2488
eventBus._on("afterprint", _boundEvents.afterPrint);
2489
2490
eventBus._on("pagerendered", webViewerPageRendered);
2491
2492
eventBus._on("updateviewarea", webViewerUpdateViewarea);
2493
2494
eventBus._on("pagechanging", webViewerPageChanging);
2495
2496
eventBus._on("scalechanging", webViewerScaleChanging);
2497
2498
eventBus._on("rotationchanging", webViewerRotationChanging);
2499
2500
eventBus._on("sidebarviewchanged", webViewerSidebarViewChanged);
2501
2502
eventBus._on("pagemode", webViewerPageMode);
2503
2504
eventBus._on("namedaction", webViewerNamedAction);
2505
2506
eventBus._on("presentationmodechanged", webViewerPresentationModeChanged);
2507
2508
eventBus._on("presentationmode", webViewerPresentationMode);
2509
2510
eventBus._on("print", webViewerPrint);
2511
2512
eventBus._on("download", webViewerDownload);
2513
2514
eventBus._on("save", webViewerSave);
2515
2516
eventBus._on("firstpage", webViewerFirstPage);
2517
2518
eventBus._on("lastpage", webViewerLastPage);
2519
2520
eventBus._on("nextpage", webViewerNextPage);
2521
2522
eventBus._on("previouspage", webViewerPreviousPage);
2523
2524
eventBus._on("zoomin", webViewerZoomIn);
2525
2526
eventBus._on("zoomout", webViewerZoomOut);
2527
2528
eventBus._on("zoomreset", webViewerZoomReset);
2529
2530
eventBus._on("pagenumberchanged", webViewerPageNumberChanged);
2531
2532
eventBus._on("scalechanged", webViewerScaleChanged);
2533
2534
eventBus._on("rotatecw", webViewerRotateCw);
2535
2536
eventBus._on("rotateccw", webViewerRotateCcw);
2537
2538
eventBus._on("optionalcontentconfig", webViewerOptionalContentConfig);
2539
2540
eventBus._on("switchscrollmode", webViewerSwitchScrollMode);
2541
2542
eventBus._on("scrollmodechanged", webViewerScrollModeChanged);
2543
2544
eventBus._on("switchspreadmode", webViewerSwitchSpreadMode);
2545
2546
eventBus._on("spreadmodechanged", webViewerSpreadModeChanged);
2547
2548
eventBus._on("documentproperties", webViewerDocumentProperties);
2549
2550
eventBus._on("find", webViewerFind);
2551
2552
eventBus._on("findfromurlhash", webViewerFindFromUrlHash);
2553
2554
eventBus._on("updatefindmatchescount", webViewerUpdateFindMatchesCount);
2555
2556
eventBus._on("updatefindcontrolstate", webViewerUpdateFindControlState);
2557
2558
if (_app_options.AppOptions.get("pdfBug")) {
2559
_boundEvents.reportPageStatsPDFBug = reportPageStatsPDFBug;
2560
2561
eventBus._on("pagerendered", _boundEvents.reportPageStatsPDFBug);
2562
2563
eventBus._on("pagechanging", _boundEvents.reportPageStatsPDFBug);
2564
}
2565
2566
eventBus._on("fileinputchange", webViewerFileInputChange);
2567
2568
eventBus._on("openfile", webViewerOpenFile);
2569
},
2570
bindWindowEvents: function bindWindowEvents() {
2571
var eventBus = this.eventBus,
2572
_boundEvents = this._boundEvents;
2573
2574
_boundEvents.windowResize = function () {
2575
eventBus.dispatch("resize", {
2576
source: window
2577
});
2578
};
2579
2580
_boundEvents.windowHashChange = function () {
2581
eventBus.dispatch("hashchange", {
2582
source: window,
2583
hash: document.location.hash.substring(1)
2584
});
2585
};
2586
2587
_boundEvents.windowBeforePrint = function () {
2588
eventBus.dispatch("beforeprint", {
2589
source: window
2590
});
2591
};
2592
2593
_boundEvents.windowAfterPrint = function () {
2594
eventBus.dispatch("afterprint", {
2595
source: window
2596
});
2597
};
2598
2599
_boundEvents.windowUpdateFromSandbox = function (event) {
2600
eventBus.dispatch("updatefromsandbox", {
2601
source: window,
2602
detail: event.detail
2603
});
2604
};
2605
2606
window.addEventListener("visibilitychange", webViewerVisibilityChange);
2607
window.addEventListener("wheel", webViewerWheel, {
2608
passive: false
2609
});
2610
window.addEventListener("touchstart", webViewerTouchStart, {
2611
passive: false
2612
});
2613
window.addEventListener("click", webViewerClick);
2614
window.addEventListener("keydown", webViewerKeyDown);
2615
window.addEventListener("keyup", webViewerKeyUp);
2616
window.addEventListener("resize", _boundEvents.windowResize);
2617
window.addEventListener("hashchange", _boundEvents.windowHashChange);
2618
window.addEventListener("beforeprint", _boundEvents.windowBeforePrint);
2619
window.addEventListener("afterprint", _boundEvents.windowAfterPrint);
2620
window.addEventListener("updatefromsandbox", _boundEvents.windowUpdateFromSandbox);
2621
},
2622
unbindEvents: function unbindEvents() {
2623
var eventBus = this.eventBus,
2624
_boundEvents = this._boundEvents;
2625
2626
eventBus._off("resize", webViewerResize);
2627
2628
eventBus._off("hashchange", webViewerHashchange);
2629
2630
eventBus._off("beforeprint", _boundEvents.beforePrint);
2631
2632
eventBus._off("afterprint", _boundEvents.afterPrint);
2633
2634
eventBus._off("pagerendered", webViewerPageRendered);
2635
2636
eventBus._off("updateviewarea", webViewerUpdateViewarea);
2637
2638
eventBus._off("pagechanging", webViewerPageChanging);
2639
2640
eventBus._off("scalechanging", webViewerScaleChanging);
2641
2642
eventBus._off("rotationchanging", webViewerRotationChanging);
2643
2644
eventBus._off("sidebarviewchanged", webViewerSidebarViewChanged);
2645
2646
eventBus._off("pagemode", webViewerPageMode);
2647
2648
eventBus._off("namedaction", webViewerNamedAction);
2649
2650
eventBus._off("presentationmodechanged", webViewerPresentationModeChanged);
2651
2652
eventBus._off("presentationmode", webViewerPresentationMode);
2653
2654
eventBus._off("print", webViewerPrint);
2655
2656
eventBus._off("download", webViewerDownload);
2657
2658
eventBus._off("save", webViewerSave);
2659
2660
eventBus._off("firstpage", webViewerFirstPage);
2661
2662
eventBus._off("lastpage", webViewerLastPage);
2663
2664
eventBus._off("nextpage", webViewerNextPage);
2665
2666
eventBus._off("previouspage", webViewerPreviousPage);
2667
2668
eventBus._off("zoomin", webViewerZoomIn);
2669
2670
eventBus._off("zoomout", webViewerZoomOut);
2671
2672
eventBus._off("zoomreset", webViewerZoomReset);
2673
2674
eventBus._off("pagenumberchanged", webViewerPageNumberChanged);
2675
2676
eventBus._off("scalechanged", webViewerScaleChanged);
2677
2678
eventBus._off("rotatecw", webViewerRotateCw);
2679
2680
eventBus._off("rotateccw", webViewerRotateCcw);
2681
2682
eventBus._off("optionalcontentconfig", webViewerOptionalContentConfig);
2683
2684
eventBus._off("switchscrollmode", webViewerSwitchScrollMode);
2685
2686
eventBus._off("scrollmodechanged", webViewerScrollModeChanged);
2687
2688
eventBus._off("switchspreadmode", webViewerSwitchSpreadMode);
2689
2690
eventBus._off("spreadmodechanged", webViewerSpreadModeChanged);
2691
2692
eventBus._off("documentproperties", webViewerDocumentProperties);
2693
2694
eventBus._off("find", webViewerFind);
2695
2696
eventBus._off("findfromurlhash", webViewerFindFromUrlHash);
2697
2698
eventBus._off("updatefindmatchescount", webViewerUpdateFindMatchesCount);
2699
2700
eventBus._off("updatefindcontrolstate", webViewerUpdateFindControlState);
2701
2702
if (_boundEvents.reportPageStatsPDFBug) {
2703
eventBus._off("pagerendered", _boundEvents.reportPageStatsPDFBug);
2704
2705
eventBus._off("pagechanging", _boundEvents.reportPageStatsPDFBug);
2706
2707
_boundEvents.reportPageStatsPDFBug = null;
2708
}
2709
2710
eventBus._off("fileinputchange", webViewerFileInputChange);
2711
2712
eventBus._off("openfile", webViewerOpenFile);
2713
2714
_boundEvents.beforePrint = null;
2715
_boundEvents.afterPrint = null;
2716
},
2717
unbindWindowEvents: function unbindWindowEvents() {
2718
var _boundEvents = this._boundEvents;
2719
window.removeEventListener("visibilitychange", webViewerVisibilityChange);
2720
window.removeEventListener("wheel", webViewerWheel, {
2721
passive: false
2722
});
2723
window.removeEventListener("touchstart", webViewerTouchStart, {
2724
passive: false
2725
});
2726
window.removeEventListener("click", webViewerClick);
2727
window.removeEventListener("keydown", webViewerKeyDown);
2728
window.removeEventListener("keyup", webViewerKeyUp);
2729
window.removeEventListener("resize", _boundEvents.windowResize);
2730
window.removeEventListener("hashchange", _boundEvents.windowHashChange);
2731
window.removeEventListener("beforeprint", _boundEvents.windowBeforePrint);
2732
window.removeEventListener("afterprint", _boundEvents.windowAfterPrint);
2733
window.removeEventListener("updatefromsandbox", _boundEvents.windowUpdateFromSandbox);
2734
_boundEvents.windowResize = null;
2735
_boundEvents.windowHashChange = null;
2736
_boundEvents.windowBeforePrint = null;
2737
_boundEvents.windowAfterPrint = null;
2738
_boundEvents.windowUpdateFromSandbox = null;
2739
},
2740
accumulateWheelTicks: function accumulateWheelTicks(ticks) {
2741
if (this._wheelUnusedTicks > 0 && ticks < 0 || this._wheelUnusedTicks < 0 && ticks > 0) {
2742
this._wheelUnusedTicks = 0;
2743
}
2744
2745
this._wheelUnusedTicks += ticks;
2746
var wholeTicks = Math.sign(this._wheelUnusedTicks) * Math.floor(Math.abs(this._wheelUnusedTicks));
2747
this._wheelUnusedTicks -= wholeTicks;
2748
return wholeTicks;
2749
},
2750
_unblockDocumentLoadEvent: function _unblockDocumentLoadEvent() {
2751
if (document.blockUnblockOnload) {
2752
document.blockUnblockOnload(false);
2753
}
2754
2755
this._unblockDocumentLoadEvent = function () {};
2756
},
2757
2758
get scriptingReady() {
2759
return this.pdfScriptingManager.ready;
2760
}
2761
2762
};
2763
exports.PDFViewerApplication = PDFViewerApplication;
2764
var validateFileURL;
2765
{
2766
var HOSTED_VIEWER_ORIGINS = ["null", "http://mozilla.github.io", "https://mozilla.github.io"];
2767
2768
validateFileURL = function validateFileURL(file) {
2769
if (file === undefined) {
2770
return;
2771
}
2772
2773
try {
2774
var viewerOrigin = new URL(window.location.href).origin || "null";
2775
2776
if (HOSTED_VIEWER_ORIGINS.includes(viewerOrigin)) {
2777
return;
2778
}
2779
2780
var _URL = new URL(file, window.location.href),
2781
origin = _URL.origin,
2782
protocol = _URL.protocol;
2783
2784
if (origin !== viewerOrigin && protocol !== "blob:") {
2785
throw new Error("file origin does not match viewer's");
2786
}
2787
} catch (ex) {
2788
PDFViewerApplication.l10n.get("loading_error").then(function (msg) {
2789
PDFViewerApplication._documentError(msg, {
2790
message: ex === null || ex === void 0 ? void 0 : ex.message
2791
});
2792
});
2793
throw ex;
2794
}
2795
};
2796
}
2797
2798
function loadFakeWorker() {
2799
return _loadFakeWorker.apply(this, arguments);
2800
}
2801
2802
function _loadFakeWorker() {
2803
_loadFakeWorker = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee18() {
2804
return _regenerator["default"].wrap(function _callee18$(_context18) {
2805
while (1) {
2806
switch (_context18.prev = _context18.next) {
2807
case 0:
2808
if (!_pdfjsLib.GlobalWorkerOptions.workerSrc) {
2809
_pdfjsLib.GlobalWorkerOptions.workerSrc = _app_options.AppOptions.get("workerSrc");
2810
}
2811
2812
return _context18.abrupt("return", (0, _pdfjsLib.loadScript)(_pdfjsLib.PDFWorker.getWorkerSrc()));
2813
2814
case 2:
2815
case "end":
2816
return _context18.stop();
2817
}
2818
}
2819
}, _callee18);
2820
}));
2821
return _loadFakeWorker.apply(this, arguments);
2822
}
2823
2824
function loadAndEnablePDFBug(enabledTabs) {
2825
var appConfig = PDFViewerApplication.appConfig;
2826
return (0, _pdfjsLib.loadScript)(appConfig.debuggerScriptPath).then(function () {
2827
PDFBug.enable(enabledTabs);
2828
PDFBug.init({
2829
OPS: _pdfjsLib.OPS
2830
}, appConfig.mainContainer);
2831
});
2832
}
2833
2834
function reportPageStatsPDFBug(_ref10) {
2835
var _pageView$pdfPage;
2836
2837
var pageNumber = _ref10.pageNumber;
2838
2839
if (typeof Stats === "undefined" || !Stats.enabled) {
2840
return;
2841
}
2842
2843
var pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1);
2844
var pageStats = pageView === null || pageView === void 0 ? void 0 : (_pageView$pdfPage = pageView.pdfPage) === null || _pageView$pdfPage === void 0 ? void 0 : _pageView$pdfPage.stats;
2845
2846
if (!pageStats) {
2847
return;
2848
}
2849
2850
Stats.add(pageNumber, pageStats);
2851
}
2852
2853
function webViewerInitialized() {
2854
var appConfig = PDFViewerApplication.appConfig;
2855
var file;
2856
var queryString = document.location.search.substring(1);
2857
var params = (0, _ui_utils.parseQueryString)(queryString);
2858
file = "file" in params ? params.file : _app_options.AppOptions.get("defaultUrl");
2859
validateFileURL(file);
2860
var fileInput = document.createElement("input");
2861
fileInput.id = appConfig.openFileInputName;
2862
fileInput.className = "fileInput";
2863
fileInput.setAttribute("type", "file");
2864
fileInput.oncontextmenu = _ui_utils.noContextMenuHandler;
2865
document.body.appendChild(fileInput);
2866
2867
if (!window.File || !window.FileReader || !window.FileList || !window.Blob) {
2868
appConfig.toolbar.openFile.hidden = true;
2869
appConfig.secondaryToolbar.openFileButton.hidden = true;
2870
} else {
2871
fileInput.value = null;
2872
}
2873
2874
fileInput.addEventListener("change", function (evt) {
2875
var files = evt.target.files;
2876
2877
if (!files || files.length === 0) {
2878
return;
2879
}
2880
2881
PDFViewerApplication.eventBus.dispatch("fileinputchange", {
2882
source: this,
2883
fileInput: evt.target
2884
});
2885
});
2886
appConfig.mainContainer.addEventListener("dragover", function (evt) {
2887
evt.preventDefault();
2888
evt.dataTransfer.dropEffect = "move";
2889
});
2890
appConfig.mainContainer.addEventListener("drop", function (evt) {
2891
evt.preventDefault();
2892
var files = evt.dataTransfer.files;
2893
2894
if (!files || files.length === 0) {
2895
return;
2896
}
2897
2898
PDFViewerApplication.eventBus.dispatch("fileinputchange", {
2899
source: this,
2900
fileInput: evt.dataTransfer
2901
});
2902
});
2903
2904
if (!PDFViewerApplication.supportsDocumentFonts) {
2905
_app_options.AppOptions.set("disableFontFace", true);
2906
2907
PDFViewerApplication.l10n.get("web_fonts_disabled").then(function (msg) {
2908
console.warn(msg);
2909
});
2910
}
2911
2912
if (!PDFViewerApplication.supportsPrinting) {
2913
appConfig.toolbar.print.classList.add("hidden");
2914
appConfig.secondaryToolbar.printButton.classList.add("hidden");
2915
}
2916
2917
if (!PDFViewerApplication.supportsFullscreen) {
2918
appConfig.toolbar.presentationModeButton.classList.add("hidden");
2919
appConfig.secondaryToolbar.presentationModeButton.classList.add("hidden");
2920
}
2921
2922
if (PDFViewerApplication.supportsIntegratedFind) {
2923
appConfig.toolbar.viewFind.classList.add("hidden");
2924
}
2925
2926
appConfig.mainContainer.addEventListener("transitionend", function (evt) {
2927
if (evt.target === this) {
2928
PDFViewerApplication.eventBus.dispatch("resize", {
2929
source: this
2930
});
2931
}
2932
}, true);
2933
2934
try {
2935
webViewerOpenFileViaURL(file);
2936
} catch (reason) {
2937
PDFViewerApplication.l10n.get("loading_error").then(function (msg) {
2938
PDFViewerApplication._documentError(msg, reason);
2939
});
2940
}
2941
}
2942
2943
function webViewerOpenFileViaURL(file) {
2944
if (file) {
2945
PDFViewerApplication.open(file);
2946
}
2947
}
2948
2949
function webViewerResetPermissions() {
2950
var appConfig = PDFViewerApplication.appConfig;
2951
2952
if (!appConfig) {
2953
return;
2954
}
2955
2956
appConfig.viewerContainer.classList.remove(ENABLE_PERMISSIONS_CLASS);
2957
}
2958
2959
function webViewerPageRendered(_ref11) {
2960
var pageNumber = _ref11.pageNumber,
2961
timestamp = _ref11.timestamp,
2962
error = _ref11.error;
2963
2964
if (pageNumber === PDFViewerApplication.page) {
2965
PDFViewerApplication.toolbar.updateLoadingIndicatorState(false);
2966
}
2967
2968
if (PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) {
2969
var pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1);
2970
var thumbnailView = PDFViewerApplication.pdfThumbnailViewer.getThumbnail(pageNumber - 1);
2971
2972
if (pageView && thumbnailView) {
2973
thumbnailView.setImage(pageView);
2974
}
2975
}
2976
2977
if (error) {
2978
PDFViewerApplication.l10n.get("rendering_error").then(function (msg) {
2979
PDFViewerApplication._otherError(msg, error);
2980
});
2981
}
2982
2983
PDFViewerApplication.externalServices.reportTelemetry({
2984
type: "pageInfo",
2985
timestamp: timestamp
2986
});
2987
PDFViewerApplication.pdfDocument.getStats().then(function (stats) {
2988
PDFViewerApplication.externalServices.reportTelemetry({
2989
type: "documentStats",
2990
stats: stats
2991
});
2992
});
2993
}
2994
2995
function webViewerPageMode(_ref12) {
2996
var mode = _ref12.mode;
2997
var view;
2998
2999
switch (mode) {
3000
case "thumbs":
3001
view = _ui_utils.SidebarView.THUMBS;
3002
break;
3003
3004
case "bookmarks":
3005
case "outline":
3006
view = _ui_utils.SidebarView.OUTLINE;
3007
break;
3008
3009
case "attachments":
3010
view = _ui_utils.SidebarView.ATTACHMENTS;
3011
break;
3012
3013
case "layers":
3014
view = _ui_utils.SidebarView.LAYERS;
3015
break;
3016
3017
case "none":
3018
view = _ui_utils.SidebarView.NONE;
3019
break;
3020
3021
default:
3022
console.error('Invalid "pagemode" hash parameter: ' + mode);
3023
return;
3024
}
3025
3026
PDFViewerApplication.pdfSidebar.switchView(view, true);
3027
}
3028
3029
function webViewerNamedAction(evt) {
3030
switch (evt.action) {
3031
case "GoToPage":
3032
PDFViewerApplication.appConfig.toolbar.pageNumber.select();
3033
break;
3034
3035
case "Find":
3036
if (!PDFViewerApplication.supportsIntegratedFind) {
3037
PDFViewerApplication.findBar.toggle();
3038
}
3039
3040
break;
3041
3042
case "Print":
3043
PDFViewerApplication.triggerPrinting();
3044
break;
3045
3046
case "SaveAs":
3047
webViewerSave();
3048
break;
3049
}
3050
}
3051
3052
function webViewerPresentationModeChanged(evt) {
3053
PDFViewerApplication.pdfViewer.presentationModeState = evt.state;
3054
}
3055
3056
function webViewerSidebarViewChanged(evt) {
3057
PDFViewerApplication.pdfRenderingQueue.isThumbnailViewEnabled = PDFViewerApplication.pdfSidebar.isThumbnailViewVisible;
3058
var store = PDFViewerApplication.store;
3059
3060
if (store && PDFViewerApplication.isInitialViewSet) {
3061
store.set("sidebarView", evt.view)["catch"](function () {});
3062
}
3063
}
3064
3065
function webViewerUpdateViewarea(evt) {
3066
var location = evt.location,
3067
store = PDFViewerApplication.store;
3068
3069
if (store && PDFViewerApplication.isInitialViewSet) {
3070
store.setMultiple({
3071
page: location.pageNumber,
3072
zoom: location.scale,
3073
scrollLeft: location.left,
3074
scrollTop: location.top,
3075
rotation: location.rotation
3076
})["catch"](function () {});
3077
}
3078
3079
var href = PDFViewerApplication.pdfLinkService.getAnchorUrl(location.pdfOpenParams);
3080
PDFViewerApplication.appConfig.toolbar.viewBookmark.href = href;
3081
PDFViewerApplication.appConfig.secondaryToolbar.viewBookmarkButton.href = href;
3082
var currentPage = PDFViewerApplication.pdfViewer.getPageView(PDFViewerApplication.page - 1);
3083
var loading = (currentPage === null || currentPage === void 0 ? void 0 : currentPage.renderingState) !== _pdf_rendering_queue.RenderingStates.FINISHED;
3084
PDFViewerApplication.toolbar.updateLoadingIndicatorState(loading);
3085
}
3086
3087
function webViewerScrollModeChanged(evt) {
3088
var store = PDFViewerApplication.store;
3089
3090
if (store && PDFViewerApplication.isInitialViewSet) {
3091
store.set("scrollMode", evt.mode)["catch"](function () {});
3092
}
3093
}
3094
3095
function webViewerSpreadModeChanged(evt) {
3096
var store = PDFViewerApplication.store;
3097
3098
if (store && PDFViewerApplication.isInitialViewSet) {
3099
store.set("spreadMode", evt.mode)["catch"](function () {});
3100
}
3101
}
3102
3103
function webViewerResize() {
3104
var pdfDocument = PDFViewerApplication.pdfDocument,
3105
pdfViewer = PDFViewerApplication.pdfViewer;
3106
3107
if (!pdfDocument) {
3108
return;
3109
}
3110
3111
var currentScaleValue = pdfViewer.currentScaleValue;
3112
3113
if (currentScaleValue === "auto" || currentScaleValue === "page-fit" || currentScaleValue === "page-width") {
3114
pdfViewer.currentScaleValue = currentScaleValue;
3115
}
3116
3117
pdfViewer.update();
3118
}
3119
3120
function webViewerHashchange(evt) {
3121
var hash = evt.hash;
3122
3123
if (!hash) {
3124
return;
3125
}
3126
3127
if (!PDFViewerApplication.isInitialViewSet) {
3128
PDFViewerApplication.initialBookmark = hash;
3129
} else if (!PDFViewerApplication.pdfHistory.popStateInProgress) {
3130
PDFViewerApplication.pdfLinkService.setHash(hash);
3131
}
3132
}
3133
3134
var webViewerFileInputChange, webViewerOpenFile;
3135
{
3136
webViewerFileInputChange = function webViewerFileInputChange(evt) {
3137
var _PDFViewerApplication;
3138
3139
if ((_PDFViewerApplication = PDFViewerApplication.pdfViewer) !== null && _PDFViewerApplication !== void 0 && _PDFViewerApplication.isInPresentationMode) {
3140
return;
3141
}
3142
3143
var file = evt.fileInput.files[0];
3144
3145
if (!_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) {
3146
var url = URL.createObjectURL(file);
3147
3148
if (file.name) {
3149
url = {
3150
url: url,
3151
originalUrl: file.name
3152
};
3153
}
3154
3155
PDFViewerApplication.open(url);
3156
} else {
3157
PDFViewerApplication.setTitleUsingUrl(file.name);
3158
var fileReader = new FileReader();
3159
3160
fileReader.onload = function webViewerChangeFileReaderOnload(event) {
3161
var buffer = event.target.result;
3162
PDFViewerApplication.open(new Uint8Array(buffer));
3163
};
3164
3165
fileReader.readAsArrayBuffer(file);
3166
}
3167
3168
var appConfig = PDFViewerApplication.appConfig;
3169
appConfig.toolbar.viewBookmark.hidden = true;
3170
appConfig.secondaryToolbar.viewBookmarkButton.hidden = true;
3171
appConfig.toolbar.download.hidden = true;
3172
appConfig.secondaryToolbar.downloadButton.hidden = true;
3173
};
3174
3175
webViewerOpenFile = function webViewerOpenFile(evt) {
3176
var openFileInputName = PDFViewerApplication.appConfig.openFileInputName;
3177
document.getElementById(openFileInputName).click();
3178
};
3179
}
3180
3181
function webViewerPresentationMode() {
3182
PDFViewerApplication.requestPresentationMode();
3183
}
3184
3185
function webViewerPrint() {
3186
PDFViewerApplication.triggerPrinting();
3187
}
3188
3189
function webViewerDownload() {
3190
PDFViewerApplication.downloadOrSave({
3191
sourceEventType: "download"
3192
});
3193
}
3194
3195
function webViewerSave() {
3196
PDFViewerApplication.downloadOrSave({
3197
sourceEventType: "save"
3198
});
3199
}
3200
3201
function webViewerFirstPage() {
3202
if (PDFViewerApplication.pdfDocument) {
3203
PDFViewerApplication.page = 1;
3204
}
3205
}
3206
3207
function webViewerLastPage() {
3208
if (PDFViewerApplication.pdfDocument) {
3209
PDFViewerApplication.page = PDFViewerApplication.pagesCount;
3210
}
3211
}
3212
3213
function webViewerNextPage() {
3214
PDFViewerApplication.pdfViewer.nextPage();
3215
}
3216
3217
function webViewerPreviousPage() {
3218
PDFViewerApplication.pdfViewer.previousPage();
3219
}
3220
3221
function webViewerZoomIn() {
3222
PDFViewerApplication.zoomIn();
3223
}
3224
3225
function webViewerZoomOut() {
3226
PDFViewerApplication.zoomOut();
3227
}
3228
3229
function webViewerZoomReset() {
3230
PDFViewerApplication.zoomReset();
3231
}
3232
3233
function webViewerPageNumberChanged(evt) {
3234
var pdfViewer = PDFViewerApplication.pdfViewer;
3235
3236
if (evt.value !== "") {
3237
PDFViewerApplication.pdfLinkService.goToPage(evt.value);
3238
}
3239
3240
if (evt.value !== pdfViewer.currentPageNumber.toString() && evt.value !== pdfViewer.currentPageLabel) {
3241
PDFViewerApplication.toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel);
3242
}
3243
}
3244
3245
function webViewerScaleChanged(evt) {
3246
PDFViewerApplication.pdfViewer.currentScaleValue = evt.value;
3247
}
3248
3249
function webViewerRotateCw() {
3250
PDFViewerApplication.rotatePages(90);
3251
}
3252
3253
function webViewerRotateCcw() {
3254
PDFViewerApplication.rotatePages(-90);
3255
}
3256
3257
function webViewerOptionalContentConfig(evt) {
3258
PDFViewerApplication.pdfViewer.optionalContentConfigPromise = evt.promise;
3259
}
3260
3261
function webViewerSwitchScrollMode(evt) {
3262
PDFViewerApplication.pdfViewer.scrollMode = evt.mode;
3263
}
3264
3265
function webViewerSwitchSpreadMode(evt) {
3266
PDFViewerApplication.pdfViewer.spreadMode = evt.mode;
3267
}
3268
3269
function webViewerDocumentProperties() {
3270
PDFViewerApplication.pdfDocumentProperties.open();
3271
}
3272
3273
function webViewerFind(evt) {
3274
PDFViewerApplication.findController.executeCommand("find" + evt.type, {
3275
query: evt.query,
3276
phraseSearch: evt.phraseSearch,
3277
caseSensitive: evt.caseSensitive,
3278
entireWord: evt.entireWord,
3279
highlightAll: evt.highlightAll,
3280
findPrevious: evt.findPrevious
3281
});
3282
}
3283
3284
function webViewerFindFromUrlHash(evt) {
3285
PDFViewerApplication.findController.executeCommand("find", {
3286
query: evt.query,
3287
phraseSearch: evt.phraseSearch,
3288
caseSensitive: false,
3289
entireWord: false,
3290
highlightAll: true,
3291
findPrevious: false
3292
});
3293
}
3294
3295
function webViewerUpdateFindMatchesCount(_ref13) {
3296
var matchesCount = _ref13.matchesCount;
3297
3298
if (PDFViewerApplication.supportsIntegratedFind) {
3299
PDFViewerApplication.externalServices.updateFindMatchesCount(matchesCount);
3300
} else {
3301
PDFViewerApplication.findBar.updateResultsCount(matchesCount);
3302
}
3303
}
3304
3305
function webViewerUpdateFindControlState(_ref14) {
3306
var state = _ref14.state,
3307
previous = _ref14.previous,
3308
matchesCount = _ref14.matchesCount,
3309
rawQuery = _ref14.rawQuery;
3310
3311
if (PDFViewerApplication.supportsIntegratedFind) {
3312
PDFViewerApplication.externalServices.updateFindControlState({
3313
result: state,
3314
findPrevious: previous,
3315
matchesCount: matchesCount,
3316
rawQuery: rawQuery
3317
});
3318
} else {
3319
PDFViewerApplication.findBar.updateUIState(state, previous, matchesCount);
3320
}
3321
}
3322
3323
function webViewerScaleChanging(evt) {
3324
PDFViewerApplication.toolbar.setPageScale(evt.presetValue, evt.scale);
3325
PDFViewerApplication.pdfViewer.update();
3326
}
3327
3328
function webViewerRotationChanging(evt) {
3329
PDFViewerApplication.pdfThumbnailViewer.pagesRotation = evt.pagesRotation;
3330
PDFViewerApplication.forceRendering();
3331
PDFViewerApplication.pdfViewer.currentPageNumber = evt.pageNumber;
3332
}
3333
3334
function webViewerPageChanging(_ref15) {
3335
var pageNumber = _ref15.pageNumber,
3336
pageLabel = _ref15.pageLabel;
3337
PDFViewerApplication.toolbar.setPageNumber(pageNumber, pageLabel);
3338
PDFViewerApplication.secondaryToolbar.setPageNumber(pageNumber);
3339
3340
if (PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) {
3341
PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(pageNumber);
3342
}
3343
}
3344
3345
function webViewerVisibilityChange(evt) {
3346
if (document.visibilityState === "visible") {
3347
setZoomDisabledTimeout();
3348
}
3349
}
3350
3351
var zoomDisabledTimeout = null;
3352
3353
function setZoomDisabledTimeout() {
3354
if (zoomDisabledTimeout) {
3355
clearTimeout(zoomDisabledTimeout);
3356
}
3357
3358
zoomDisabledTimeout = setTimeout(function () {
3359
zoomDisabledTimeout = null;
3360
}, WHEEL_ZOOM_DISABLED_TIMEOUT);
3361
}
3362
3363
function webViewerWheel(evt) {
3364
var pdfViewer = PDFViewerApplication.pdfViewer,
3365
supportedMouseWheelZoomModifierKeys = PDFViewerApplication.supportedMouseWheelZoomModifierKeys;
3366
3367
if (pdfViewer.isInPresentationMode) {
3368
return;
3369
}
3370
3371
if (evt.ctrlKey && supportedMouseWheelZoomModifierKeys.ctrlKey || evt.metaKey && supportedMouseWheelZoomModifierKeys.metaKey) {
3372
evt.preventDefault();
3373
3374
if (zoomDisabledTimeout || document.visibilityState === "hidden") {
3375
return;
3376
}
3377
3378
var previousScale = pdfViewer.currentScale;
3379
var delta = (0, _ui_utils.normalizeWheelEventDirection)(evt);
3380
var ticks = 0;
3381
3382
if (evt.deltaMode === WheelEvent.DOM_DELTA_LINE || evt.deltaMode === WheelEvent.DOM_DELTA_PAGE) {
3383
if (Math.abs(delta) >= 1) {
3384
ticks = Math.sign(delta);
3385
} else {
3386
ticks = PDFViewerApplication.accumulateWheelTicks(delta);
3387
}
3388
} else {
3389
var PIXELS_PER_LINE_SCALE = 30;
3390
ticks = PDFViewerApplication.accumulateWheelTicks(delta / PIXELS_PER_LINE_SCALE);
3391
}
3392
3393
if (ticks < 0) {
3394
PDFViewerApplication.zoomOut(-ticks);
3395
} else if (ticks > 0) {
3396
PDFViewerApplication.zoomIn(ticks);
3397
}
3398
3399
var currentScale = pdfViewer.currentScale;
3400
3401
if (previousScale !== currentScale) {
3402
var scaleCorrectionFactor = currentScale / previousScale - 1;
3403
var rect = pdfViewer.container.getBoundingClientRect();
3404
var dx = evt.clientX - rect.left;
3405
var dy = evt.clientY - rect.top;
3406
pdfViewer.container.scrollLeft += dx * scaleCorrectionFactor;
3407
pdfViewer.container.scrollTop += dy * scaleCorrectionFactor;
3408
}
3409
} else {
3410
setZoomDisabledTimeout();
3411
}
3412
}
3413
3414
function webViewerTouchStart(evt) {
3415
if (evt.touches.length > 1) {
3416
evt.preventDefault();
3417
}
3418
}
3419
3420
function webViewerClick(evt) {
3421
if (PDFViewerApplication.triggerDelayedFallback && PDFViewerApplication.pdfViewer.containsElement(evt.target)) {
3422
PDFViewerApplication.triggerDelayedFallback();
3423
}
3424
3425
if (!PDFViewerApplication.secondaryToolbar.isOpen) {
3426
return;
3427
}
3428
3429
var appConfig = PDFViewerApplication.appConfig;
3430
3431
if (PDFViewerApplication.pdfViewer.containsElement(evt.target) || appConfig.toolbar.container.contains(evt.target) && evt.target !== appConfig.secondaryToolbar.toggleButton) {
3432
PDFViewerApplication.secondaryToolbar.close();
3433
}
3434
}
3435
3436
function webViewerKeyUp(evt) {
3437
if (evt.keyCode === 9) {
3438
if (PDFViewerApplication.triggerDelayedFallback) {
3439
PDFViewerApplication.triggerDelayedFallback();
3440
}
3441
}
3442
}
3443
3444
function webViewerKeyDown(evt) {
3445
if (PDFViewerApplication.overlayManager.active) {
3446
return;
3447
}
3448
3449
var handled = false,
3450
ensureViewerFocused = false;
3451
var cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0);
3452
var pdfViewer = PDFViewerApplication.pdfViewer;
3453
var isViewerInPresentationMode = pdfViewer === null || pdfViewer === void 0 ? void 0 : pdfViewer.isInPresentationMode;
3454
3455
if (cmd === 1 || cmd === 8 || cmd === 5 || cmd === 12) {
3456
switch (evt.keyCode) {
3457
case 70:
3458
if (!PDFViewerApplication.supportsIntegratedFind && !evt.shiftKey) {
3459
PDFViewerApplication.findBar.open();
3460
handled = true;
3461
}
3462
3463
break;
3464
3465
case 71:
3466
if (!PDFViewerApplication.supportsIntegratedFind) {
3467
var findState = PDFViewerApplication.findController.state;
3468
3469
if (findState) {
3470
PDFViewerApplication.findController.executeCommand("findagain", {
3471
query: findState.query,
3472
phraseSearch: findState.phraseSearch,
3473
caseSensitive: findState.caseSensitive,
3474
entireWord: findState.entireWord,
3475
highlightAll: findState.highlightAll,
3476
findPrevious: cmd === 5 || cmd === 12
3477
});
3478
}
3479
3480
handled = true;
3481
}
3482
3483
break;
3484
3485
case 61:
3486
case 107:
3487
case 187:
3488
case 171:
3489
if (!isViewerInPresentationMode) {
3490
PDFViewerApplication.zoomIn();
3491
}
3492
3493
handled = true;
3494
break;
3495
3496
case 173:
3497
case 109:
3498
case 189:
3499
if (!isViewerInPresentationMode) {
3500
PDFViewerApplication.zoomOut();
3501
}
3502
3503
handled = true;
3504
break;
3505
3506
case 48:
3507
case 96:
3508
if (!isViewerInPresentationMode) {
3509
setTimeout(function () {
3510
PDFViewerApplication.zoomReset();
3511
});
3512
handled = false;
3513
}
3514
3515
break;
3516
3517
case 38:
3518
if (isViewerInPresentationMode || PDFViewerApplication.page > 1) {
3519
PDFViewerApplication.page = 1;
3520
handled = true;
3521
ensureViewerFocused = true;
3522
}
3523
3524
break;
3525
3526
case 40:
3527
if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) {
3528
PDFViewerApplication.page = PDFViewerApplication.pagesCount;
3529
handled = true;
3530
ensureViewerFocused = true;
3531
}
3532
3533
break;
3534
}
3535
}
3536
3537
var eventBus = PDFViewerApplication.eventBus;
3538
3539
if (cmd === 1 || cmd === 8) {
3540
switch (evt.keyCode) {
3541
case 83:
3542
eventBus.dispatch("download", {
3543
source: window
3544
});
3545
handled = true;
3546
break;
3547
3548
case 79:
3549
{
3550
eventBus.dispatch("openfile", {
3551
source: window
3552
});
3553
handled = true;
3554
}
3555
break;
3556
}
3557
}
3558
3559
if (cmd === 3 || cmd === 10) {
3560
switch (evt.keyCode) {
3561
case 80:
3562
PDFViewerApplication.requestPresentationMode();
3563
handled = true;
3564
break;
3565
3566
case 71:
3567
PDFViewerApplication.appConfig.toolbar.pageNumber.select();
3568
handled = true;
3569
break;
3570
}
3571
}
3572
3573
if (handled) {
3574
if (ensureViewerFocused && !isViewerInPresentationMode) {
3575
pdfViewer.focus();
3576
}
3577
3578
evt.preventDefault();
3579
return;
3580
}
3581
3582
var curElement = (0, _ui_utils.getActiveOrFocusedElement)();
3583
var curElementTagName = curElement === null || curElement === void 0 ? void 0 : curElement.tagName.toUpperCase();
3584
3585
if (curElementTagName === "INPUT" || curElementTagName === "TEXTAREA" || curElementTagName === "SELECT" || curElement !== null && curElement !== void 0 && curElement.isContentEditable) {
3586
if (evt.keyCode !== 27) {
3587
return;
3588
}
3589
}
3590
3591
if (cmd === 0) {
3592
var turnPage = 0,
3593
turnOnlyIfPageFit = false;
3594
3595
switch (evt.keyCode) {
3596
case 38:
3597
case 33:
3598
if (pdfViewer.isVerticalScrollbarEnabled) {
3599
turnOnlyIfPageFit = true;
3600
}
3601
3602
turnPage = -1;
3603
break;
3604
3605
case 8:
3606
if (!isViewerInPresentationMode) {
3607
turnOnlyIfPageFit = true;
3608
}
3609
3610
turnPage = -1;
3611
break;
3612
3613
case 37:
3614
if (pdfViewer.isHorizontalScrollbarEnabled) {
3615
turnOnlyIfPageFit = true;
3616
}
3617
3618
case 75:
3619
case 80:
3620
turnPage = -1;
3621
break;
3622
3623
case 27:
3624
if (PDFViewerApplication.secondaryToolbar.isOpen) {
3625
PDFViewerApplication.secondaryToolbar.close();
3626
handled = true;
3627
}
3628
3629
if (!PDFViewerApplication.supportsIntegratedFind && PDFViewerApplication.findBar.opened) {
3630
PDFViewerApplication.findBar.close();
3631
handled = true;
3632
}
3633
3634
break;
3635
3636
case 40:
3637
case 34:
3638
if (pdfViewer.isVerticalScrollbarEnabled) {
3639
turnOnlyIfPageFit = true;
3640
}
3641
3642
turnPage = 1;
3643
break;
3644
3645
case 13:
3646
case 32:
3647
if (!isViewerInPresentationMode) {
3648
turnOnlyIfPageFit = true;
3649
}
3650
3651
turnPage = 1;
3652
break;
3653
3654
case 39:
3655
if (pdfViewer.isHorizontalScrollbarEnabled) {
3656
turnOnlyIfPageFit = true;
3657
}
3658
3659
case 74:
3660
case 78:
3661
turnPage = 1;
3662
break;
3663
3664
case 36:
3665
if (isViewerInPresentationMode || PDFViewerApplication.page > 1) {
3666
PDFViewerApplication.page = 1;
3667
handled = true;
3668
ensureViewerFocused = true;
3669
}
3670
3671
break;
3672
3673
case 35:
3674
if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) {
3675
PDFViewerApplication.page = PDFViewerApplication.pagesCount;
3676
handled = true;
3677
ensureViewerFocused = true;
3678
}
3679
3680
break;
3681
3682
case 83:
3683
PDFViewerApplication.pdfCursorTools.switchTool(_pdf_cursor_tools.CursorTool.SELECT);
3684
break;
3685
3686
case 72:
3687
PDFViewerApplication.pdfCursorTools.switchTool(_pdf_cursor_tools.CursorTool.HAND);
3688
break;
3689
3690
case 82:
3691
PDFViewerApplication.rotatePages(90);
3692
break;
3693
3694
case 115:
3695
PDFViewerApplication.pdfSidebar.toggle();
3696
break;
3697
}
3698
3699
if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === "page-fit")) {
3700
if (turnPage > 0) {
3701
pdfViewer.nextPage();
3702
} else {
3703
pdfViewer.previousPage();
3704
}
3705
3706
handled = true;
3707
}
3708
}
3709
3710
if (cmd === 4) {
3711
switch (evt.keyCode) {
3712
case 13:
3713
case 32:
3714
if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== "page-fit") {
3715
break;
3716
}
3717
3718
if (PDFViewerApplication.page > 1) {
3719
PDFViewerApplication.page--;
3720
}
3721
3722
handled = true;
3723
break;
3724
3725
case 82:
3726
PDFViewerApplication.rotatePages(-90);
3727
break;
3728
}
3729
}
3730
3731
if (!handled && !isViewerInPresentationMode) {
3732
if (evt.keyCode >= 33 && evt.keyCode <= 40 || evt.keyCode === 32 && curElementTagName !== "BUTTON") {
3733
ensureViewerFocused = true;
3734
}
3735
}
3736
3737
if (ensureViewerFocused && !pdfViewer.containsElement(curElement)) {
3738
pdfViewer.focus();
3739
}
3740
3741
if (handled) {
3742
evt.preventDefault();
3743
}
3744
}
3745
3746
function beforeUnload(evt) {
3747
evt.preventDefault();
3748
evt.returnValue = "";
3749
return false;
3750
}
3751
3752
var PDFPrintServiceFactory = {
3753
instance: {
3754
supportsPrinting: false,
3755
createPrintService: function createPrintService() {
3756
throw new Error("Not implemented: createPrintService");
3757
}
3758
}
3759
};
3760
exports.PDFPrintServiceFactory = PDFPrintServiceFactory;
3761
3762
/***/ }),
3763
/* 4 */
3764
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3765
3766
3767
3768
module.exports = __webpack_require__(5);
3769
3770
/***/ }),
3771
/* 5 */
3772
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3773
3774
/* module decorator */ module = __webpack_require__.nmd(module);
3775
3776
3777
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
3778
3779
var runtime = function (exports) {
3780
"use strict";
3781
3782
var Op = Object.prototype;
3783
var hasOwn = Op.hasOwnProperty;
3784
var undefined;
3785
var $Symbol = typeof Symbol === "function" ? Symbol : {};
3786
var iteratorSymbol = $Symbol.iterator || "@@iterator";
3787
var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
3788
var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
3789
3790
function define(obj, key, value) {
3791
Object.defineProperty(obj, key, {
3792
value: value,
3793
enumerable: true,
3794
configurable: true,
3795
writable: true
3796
});
3797
return obj[key];
3798
}
3799
3800
try {
3801
define({}, "");
3802
} catch (err) {
3803
define = function define(obj, key, value) {
3804
return obj[key] = value;
3805
};
3806
}
3807
3808
function wrap(innerFn, outerFn, self, tryLocsList) {
3809
var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
3810
var generator = Object.create(protoGenerator.prototype);
3811
var context = new Context(tryLocsList || []);
3812
generator._invoke = makeInvokeMethod(innerFn, self, context);
3813
return generator;
3814
}
3815
3816
exports.wrap = wrap;
3817
3818
function tryCatch(fn, obj, arg) {
3819
try {
3820
return {
3821
type: "normal",
3822
arg: fn.call(obj, arg)
3823
};
3824
} catch (err) {
3825
return {
3826
type: "throw",
3827
arg: err
3828
};
3829
}
3830
}
3831
3832
var GenStateSuspendedStart = "suspendedStart";
3833
var GenStateSuspendedYield = "suspendedYield";
3834
var GenStateExecuting = "executing";
3835
var GenStateCompleted = "completed";
3836
var ContinueSentinel = {};
3837
3838
function Generator() {}
3839
3840
function GeneratorFunction() {}
3841
3842
function GeneratorFunctionPrototype() {}
3843
3844
var IteratorPrototype = {};
3845
3846
IteratorPrototype[iteratorSymbol] = function () {
3847
return this;
3848
};
3849
3850
var getProto = Object.getPrototypeOf;
3851
var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
3852
3853
if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
3854
IteratorPrototype = NativeIteratorPrototype;
3855
}
3856
3857
var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
3858
GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
3859
GeneratorFunctionPrototype.constructor = GeneratorFunction;
3860
GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction");
3861
3862
function defineIteratorMethods(prototype) {
3863
["next", "throw", "return"].forEach(function (method) {
3864
define(prototype, method, function (arg) {
3865
return this._invoke(method, arg);
3866
});
3867
});
3868
}
3869
3870
exports.isGeneratorFunction = function (genFun) {
3871
var ctor = typeof genFun === "function" && genFun.constructor;
3872
return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false;
3873
};
3874
3875
exports.mark = function (genFun) {
3876
if (Object.setPrototypeOf) {
3877
Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
3878
} else {
3879
genFun.__proto__ = GeneratorFunctionPrototype;
3880
define(genFun, toStringTagSymbol, "GeneratorFunction");
3881
}
3882
3883
genFun.prototype = Object.create(Gp);
3884
return genFun;
3885
};
3886
3887
exports.awrap = function (arg) {
3888
return {
3889
__await: arg
3890
};
3891
};
3892
3893
function AsyncIterator(generator, PromiseImpl) {
3894
function invoke(method, arg, resolve, reject) {
3895
var record = tryCatch(generator[method], generator, arg);
3896
3897
if (record.type === "throw") {
3898
reject(record.arg);
3899
} else {
3900
var result = record.arg;
3901
var value = result.value;
3902
3903
if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) {
3904
return PromiseImpl.resolve(value.__await).then(function (value) {
3905
invoke("next", value, resolve, reject);
3906
}, function (err) {
3907
invoke("throw", err, resolve, reject);
3908
});
3909
}
3910
3911
return PromiseImpl.resolve(value).then(function (unwrapped) {
3912
result.value = unwrapped;
3913
resolve(result);
3914
}, function (error) {
3915
return invoke("throw", error, resolve, reject);
3916
});
3917
}
3918
}
3919
3920
var previousPromise;
3921
3922
function enqueue(method, arg) {
3923
function callInvokeWithMethodAndArg() {
3924
return new PromiseImpl(function (resolve, reject) {
3925
invoke(method, arg, resolve, reject);
3926
});
3927
}
3928
3929
return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
3930
}
3931
3932
this._invoke = enqueue;
3933
}
3934
3935
defineIteratorMethods(AsyncIterator.prototype);
3936
3937
AsyncIterator.prototype[asyncIteratorSymbol] = function () {
3938
return this;
3939
};
3940
3941
exports.AsyncIterator = AsyncIterator;
3942
3943
exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
3944
if (PromiseImpl === void 0) PromiseImpl = Promise;
3945
var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
3946
return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
3947
return result.done ? result.value : iter.next();
3948
});
3949
};
3950
3951
function makeInvokeMethod(innerFn, self, context) {
3952
var state = GenStateSuspendedStart;
3953
return function invoke(method, arg) {
3954
if (state === GenStateExecuting) {
3955
throw new Error("Generator is already running");
3956
}
3957
3958
if (state === GenStateCompleted) {
3959
if (method === "throw") {
3960
throw arg;
3961
}
3962
3963
return doneResult();
3964
}
3965
3966
context.method = method;
3967
context.arg = arg;
3968
3969
while (true) {
3970
var delegate = context.delegate;
3971
3972
if (delegate) {
3973
var delegateResult = maybeInvokeDelegate(delegate, context);
3974
3975
if (delegateResult) {
3976
if (delegateResult === ContinueSentinel) continue;
3977
return delegateResult;
3978
}
3979
}
3980
3981
if (context.method === "next") {
3982
context.sent = context._sent = context.arg;
3983
} else if (context.method === "throw") {
3984
if (state === GenStateSuspendedStart) {
3985
state = GenStateCompleted;
3986
throw context.arg;
3987
}
3988
3989
context.dispatchException(context.arg);
3990
} else if (context.method === "return") {
3991
context.abrupt("return", context.arg);
3992
}
3993
3994
state = GenStateExecuting;
3995
var record = tryCatch(innerFn, self, context);
3996
3997
if (record.type === "normal") {
3998
state = context.done ? GenStateCompleted : GenStateSuspendedYield;
3999
4000
if (record.arg === ContinueSentinel) {
4001
continue;
4002
}
4003
4004
return {
4005
value: record.arg,
4006
done: context.done
4007
};
4008
} else if (record.type === "throw") {
4009
state = GenStateCompleted;
4010
context.method = "throw";
4011
context.arg = record.arg;
4012
}
4013
}
4014
};
4015
}
4016
4017
function maybeInvokeDelegate(delegate, context) {
4018
var method = delegate.iterator[context.method];
4019
4020
if (method === undefined) {
4021
context.delegate = null;
4022
4023
if (context.method === "throw") {
4024
if (delegate.iterator["return"]) {
4025
context.method = "return";
4026
context.arg = undefined;
4027
maybeInvokeDelegate(delegate, context);
4028
4029
if (context.method === "throw") {
4030
return ContinueSentinel;
4031
}
4032
}
4033
4034
context.method = "throw";
4035
context.arg = new TypeError("The iterator does not provide a 'throw' method");
4036
}
4037
4038
return ContinueSentinel;
4039
}
4040
4041
var record = tryCatch(method, delegate.iterator, context.arg);
4042
4043
if (record.type === "throw") {
4044
context.method = "throw";
4045
context.arg = record.arg;
4046
context.delegate = null;
4047
return ContinueSentinel;
4048
}
4049
4050
var info = record.arg;
4051
4052
if (!info) {
4053
context.method = "throw";
4054
context.arg = new TypeError("iterator result is not an object");
4055
context.delegate = null;
4056
return ContinueSentinel;
4057
}
4058
4059
if (info.done) {
4060
context[delegate.resultName] = info.value;
4061
context.next = delegate.nextLoc;
4062
4063
if (context.method !== "return") {
4064
context.method = "next";
4065
context.arg = undefined;
4066
}
4067
} else {
4068
return info;
4069
}
4070
4071
context.delegate = null;
4072
return ContinueSentinel;
4073
}
4074
4075
defineIteratorMethods(Gp);
4076
define(Gp, toStringTagSymbol, "Generator");
4077
4078
Gp[iteratorSymbol] = function () {
4079
return this;
4080
};
4081
4082
Gp.toString = function () {
4083
return "[object Generator]";
4084
};
4085
4086
function pushTryEntry(locs) {
4087
var entry = {
4088
tryLoc: locs[0]
4089
};
4090
4091
if (1 in locs) {
4092
entry.catchLoc = locs[1];
4093
}
4094
4095
if (2 in locs) {
4096
entry.finallyLoc = locs[2];
4097
entry.afterLoc = locs[3];
4098
}
4099
4100
this.tryEntries.push(entry);
4101
}
4102
4103
function resetTryEntry(entry) {
4104
var record = entry.completion || {};
4105
record.type = "normal";
4106
delete record.arg;
4107
entry.completion = record;
4108
}
4109
4110
function Context(tryLocsList) {
4111
this.tryEntries = [{
4112
tryLoc: "root"
4113
}];
4114
tryLocsList.forEach(pushTryEntry, this);
4115
this.reset(true);
4116
}
4117
4118
exports.keys = function (object) {
4119
var keys = [];
4120
4121
for (var key in object) {
4122
keys.push(key);
4123
}
4124
4125
keys.reverse();
4126
return function next() {
4127
while (keys.length) {
4128
var key = keys.pop();
4129
4130
if (key in object) {
4131
next.value = key;
4132
next.done = false;
4133
return next;
4134
}
4135
}
4136
4137
next.done = true;
4138
return next;
4139
};
4140
};
4141
4142
function values(iterable) {
4143
if (iterable) {
4144
var iteratorMethod = iterable[iteratorSymbol];
4145
4146
if (iteratorMethod) {
4147
return iteratorMethod.call(iterable);
4148
}
4149
4150
if (typeof iterable.next === "function") {
4151
return iterable;
4152
}
4153
4154
if (!isNaN(iterable.length)) {
4155
var i = -1,
4156
next = function next() {
4157
while (++i < iterable.length) {
4158
if (hasOwn.call(iterable, i)) {
4159
next.value = iterable[i];
4160
next.done = false;
4161
return next;
4162
}
4163
}
4164
4165
next.value = undefined;
4166
next.done = true;
4167
return next;
4168
};
4169
4170
return next.next = next;
4171
}
4172
}
4173
4174
return {
4175
next: doneResult
4176
};
4177
}
4178
4179
exports.values = values;
4180
4181
function doneResult() {
4182
return {
4183
value: undefined,
4184
done: true
4185
};
4186
}
4187
4188
Context.prototype = {
4189
constructor: Context,
4190
reset: function reset(skipTempReset) {
4191
this.prev = 0;
4192
this.next = 0;
4193
this.sent = this._sent = undefined;
4194
this.done = false;
4195
this.delegate = null;
4196
this.method = "next";
4197
this.arg = undefined;
4198
this.tryEntries.forEach(resetTryEntry);
4199
4200
if (!skipTempReset) {
4201
for (var name in this) {
4202
if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {
4203
this[name] = undefined;
4204
}
4205
}
4206
}
4207
},
4208
stop: function stop() {
4209
this.done = true;
4210
var rootEntry = this.tryEntries[0];
4211
var rootRecord = rootEntry.completion;
4212
4213
if (rootRecord.type === "throw") {
4214
throw rootRecord.arg;
4215
}
4216
4217
return this.rval;
4218
},
4219
dispatchException: function dispatchException(exception) {
4220
if (this.done) {
4221
throw exception;
4222
}
4223
4224
var context = this;
4225
4226
function handle(loc, caught) {
4227
record.type = "throw";
4228
record.arg = exception;
4229
context.next = loc;
4230
4231
if (caught) {
4232
context.method = "next";
4233
context.arg = undefined;
4234
}
4235
4236
return !!caught;
4237
}
4238
4239
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
4240
var entry = this.tryEntries[i];
4241
var record = entry.completion;
4242
4243
if (entry.tryLoc === "root") {
4244
return handle("end");
4245
}
4246
4247
if (entry.tryLoc <= this.prev) {
4248
var hasCatch = hasOwn.call(entry, "catchLoc");
4249
var hasFinally = hasOwn.call(entry, "finallyLoc");
4250
4251
if (hasCatch && hasFinally) {
4252
if (this.prev < entry.catchLoc) {
4253
return handle(entry.catchLoc, true);
4254
} else if (this.prev < entry.finallyLoc) {
4255
return handle(entry.finallyLoc);
4256
}
4257
} else if (hasCatch) {
4258
if (this.prev < entry.catchLoc) {
4259
return handle(entry.catchLoc, true);
4260
}
4261
} else if (hasFinally) {
4262
if (this.prev < entry.finallyLoc) {
4263
return handle(entry.finallyLoc);
4264
}
4265
} else {
4266
throw new Error("try statement without catch or finally");
4267
}
4268
}
4269
}
4270
},
4271
abrupt: function abrupt(type, arg) {
4272
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
4273
var entry = this.tryEntries[i];
4274
4275
if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
4276
var finallyEntry = entry;
4277
break;
4278
}
4279
}
4280
4281
if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {
4282
finallyEntry = null;
4283
}
4284
4285
var record = finallyEntry ? finallyEntry.completion : {};
4286
record.type = type;
4287
record.arg = arg;
4288
4289
if (finallyEntry) {
4290
this.method = "next";
4291
this.next = finallyEntry.finallyLoc;
4292
return ContinueSentinel;
4293
}
4294
4295
return this.complete(record);
4296
},
4297
complete: function complete(record, afterLoc) {
4298
if (record.type === "throw") {
4299
throw record.arg;
4300
}
4301
4302
if (record.type === "break" || record.type === "continue") {
4303
this.next = record.arg;
4304
} else if (record.type === "return") {
4305
this.rval = this.arg = record.arg;
4306
this.method = "return";
4307
this.next = "end";
4308
} else if (record.type === "normal" && afterLoc) {
4309
this.next = afterLoc;
4310
}
4311
4312
return ContinueSentinel;
4313
},
4314
finish: function finish(finallyLoc) {
4315
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
4316
var entry = this.tryEntries[i];
4317
4318
if (entry.finallyLoc === finallyLoc) {
4319
this.complete(entry.completion, entry.afterLoc);
4320
resetTryEntry(entry);
4321
return ContinueSentinel;
4322
}
4323
}
4324
},
4325
"catch": function _catch(tryLoc) {
4326
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
4327
var entry = this.tryEntries[i];
4328
4329
if (entry.tryLoc === tryLoc) {
4330
var record = entry.completion;
4331
4332
if (record.type === "throw") {
4333
var thrown = record.arg;
4334
resetTryEntry(entry);
4335
}
4336
4337
return thrown;
4338
}
4339
}
4340
4341
throw new Error("illegal catch attempt");
4342
},
4343
delegateYield: function delegateYield(iterable, resultName, nextLoc) {
4344
this.delegate = {
4345
iterator: values(iterable),
4346
resultName: resultName,
4347
nextLoc: nextLoc
4348
};
4349
4350
if (this.method === "next") {
4351
this.arg = undefined;
4352
}
4353
4354
return ContinueSentinel;
4355
}
4356
};
4357
return exports;
4358
}(( false ? 0 : _typeof(module)) === "object" ? module.exports : {});
4359
4360
try {
4361
regeneratorRuntime = runtime;
4362
} catch (accidentalStrictMode) {
4363
Function("r", "regeneratorRuntime = r")(runtime);
4364
}
4365
4366
/***/ }),
4367
/* 6 */
4368
/***/ ((__unused_webpack_module, exports) => {
4369
4370
4371
4372
Object.defineProperty(exports, "__esModule", ({
4373
value: true
4374
}));
4375
exports.apiPageLayoutToSpreadMode = apiPageLayoutToSpreadMode;
4376
exports.apiPageModeToSidebarView = apiPageModeToSidebarView;
4377
exports.approximateFraction = approximateFraction;
4378
exports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements;
4379
exports.binarySearchFirstItem = binarySearchFirstItem;
4380
exports.getActiveOrFocusedElement = getActiveOrFocusedElement;
4381
exports.getOutputScale = getOutputScale;
4382
exports.getPageSizeInches = getPageSizeInches;
4383
exports.getVisibleElements = getVisibleElements;
4384
exports.isPortraitOrientation = isPortraitOrientation;
4385
exports.isValidRotation = isValidRotation;
4386
exports.isValidScrollMode = isValidScrollMode;
4387
exports.isValidSpreadMode = isValidSpreadMode;
4388
exports.moveToEndOfArray = moveToEndOfArray;
4389
exports.noContextMenuHandler = noContextMenuHandler;
4390
exports.normalizeWheelEventDelta = normalizeWheelEventDelta;
4391
exports.normalizeWheelEventDirection = normalizeWheelEventDirection;
4392
exports.parseQueryString = parseQueryString;
4393
exports.roundToDivide = roundToDivide;
4394
exports.scrollIntoView = scrollIntoView;
4395
exports.waitOnEventOrTimeout = waitOnEventOrTimeout;
4396
exports.watchScroll = watchScroll;
4397
exports.WaitOnType = exports.VERTICAL_PADDING = exports.UNKNOWN_SCALE = exports.TextLayerMode = exports.SpreadMode = exports.SidebarView = exports.ScrollMode = exports.SCROLLBAR_PADDING = exports.RendererType = exports.ProgressBar = exports.PresentationModeState = exports.MIN_SCALE = exports.MAX_SCALE = exports.MAX_AUTO_SCALE = exports.EventBus = exports.DEFAULT_SCALE_VALUE = exports.DEFAULT_SCALE = exports.CSS_UNITS = exports.AutoPrintRegExp = exports.animationStarted = void 0;
4398
4399
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4400
4401
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); } }
4402
4403
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
4404
4405
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
4406
4407
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4408
4409
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4410
4411
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4412
4413
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
4414
4415
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
4416
4417
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
4418
4419
var CSS_UNITS = 96.0 / 72.0;
4420
exports.CSS_UNITS = CSS_UNITS;
4421
var DEFAULT_SCALE_VALUE = "auto";
4422
exports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;
4423
var DEFAULT_SCALE = 1.0;
4424
exports.DEFAULT_SCALE = DEFAULT_SCALE;
4425
var MIN_SCALE = 0.1;
4426
exports.MIN_SCALE = MIN_SCALE;
4427
var MAX_SCALE = 10.0;
4428
exports.MAX_SCALE = MAX_SCALE;
4429
var UNKNOWN_SCALE = 0;
4430
exports.UNKNOWN_SCALE = UNKNOWN_SCALE;
4431
var MAX_AUTO_SCALE = 1.25;
4432
exports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;
4433
var SCROLLBAR_PADDING = 40;
4434
exports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;
4435
var VERTICAL_PADDING = 5;
4436
exports.VERTICAL_PADDING = VERTICAL_PADDING;
4437
var LOADINGBAR_END_OFFSET_VAR = "--loadingBar-end-offset";
4438
var PresentationModeState = {
4439
UNKNOWN: 0,
4440
NORMAL: 1,
4441
CHANGING: 2,
4442
FULLSCREEN: 3
4443
};
4444
exports.PresentationModeState = PresentationModeState;
4445
var SidebarView = {
4446
UNKNOWN: -1,
4447
NONE: 0,
4448
THUMBS: 1,
4449
OUTLINE: 2,
4450
ATTACHMENTS: 3,
4451
LAYERS: 4
4452
};
4453
exports.SidebarView = SidebarView;
4454
var RendererType = {
4455
CANVAS: "canvas",
4456
SVG: "svg"
4457
};
4458
exports.RendererType = RendererType;
4459
var TextLayerMode = {
4460
DISABLE: 0,
4461
ENABLE: 1,
4462
ENABLE_ENHANCE: 2
4463
};
4464
exports.TextLayerMode = TextLayerMode;
4465
var ScrollMode = {
4466
UNKNOWN: -1,
4467
VERTICAL: 0,
4468
HORIZONTAL: 1,
4469
WRAPPED: 2
4470
};
4471
exports.ScrollMode = ScrollMode;
4472
var SpreadMode = {
4473
UNKNOWN: -1,
4474
NONE: 0,
4475
ODD: 1,
4476
EVEN: 2
4477
};
4478
exports.SpreadMode = SpreadMode;
4479
var AutoPrintRegExp = /\bprint\s*\(/;
4480
exports.AutoPrintRegExp = AutoPrintRegExp;
4481
4482
function getOutputScale(ctx) {
4483
var devicePixelRatio = window.devicePixelRatio || 1;
4484
var backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;
4485
var pixelRatio = devicePixelRatio / backingStoreRatio;
4486
return {
4487
sx: pixelRatio,
4488
sy: pixelRatio,
4489
scaled: pixelRatio !== 1
4490
};
4491
}
4492
4493
function scrollIntoView(element, spot) {
4494
var skipOverflowHiddenElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
4495
var parent = element.offsetParent;
4496
4497
if (!parent) {
4498
console.error("offsetParent is not set -- cannot scroll");
4499
return;
4500
}
4501
4502
var offsetY = element.offsetTop + element.clientTop;
4503
var offsetX = element.offsetLeft + element.clientLeft;
4504
4505
while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === "hidden") {
4506
if (parent.dataset._scaleY) {
4507
offsetY /= parent.dataset._scaleY;
4508
offsetX /= parent.dataset._scaleX;
4509
}
4510
4511
offsetY += parent.offsetTop;
4512
offsetX += parent.offsetLeft;
4513
parent = parent.offsetParent;
4514
4515
if (!parent) {
4516
return;
4517
}
4518
}
4519
4520
if (spot) {
4521
if (spot.top !== undefined) {
4522
offsetY += spot.top;
4523
}
4524
4525
if (spot.left !== undefined) {
4526
offsetX += spot.left;
4527
parent.scrollLeft = offsetX;
4528
}
4529
}
4530
4531
parent.scrollTop = offsetY;
4532
}
4533
4534
function watchScroll(viewAreaElement, callback) {
4535
var debounceScroll = function debounceScroll(evt) {
4536
if (rAF) {
4537
return;
4538
}
4539
4540
rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {
4541
rAF = null;
4542
var currentX = viewAreaElement.scrollLeft;
4543
var lastX = state.lastX;
4544
4545
if (currentX !== lastX) {
4546
state.right = currentX > lastX;
4547
}
4548
4549
state.lastX = currentX;
4550
var currentY = viewAreaElement.scrollTop;
4551
var lastY = state.lastY;
4552
4553
if (currentY !== lastY) {
4554
state.down = currentY > lastY;
4555
}
4556
4557
state.lastY = currentY;
4558
callback(state);
4559
});
4560
};
4561
4562
var state = {
4563
right: true,
4564
down: true,
4565
lastX: viewAreaElement.scrollLeft,
4566
lastY: viewAreaElement.scrollTop,
4567
_eventHandler: debounceScroll
4568
};
4569
var rAF = null;
4570
viewAreaElement.addEventListener("scroll", debounceScroll, true);
4571
return state;
4572
}
4573
4574
function parseQueryString(query) {
4575
var parts = query.split("&");
4576
var params = Object.create(null);
4577
4578
for (var i = 0, ii = parts.length; i < ii; ++i) {
4579
var param = parts[i].split("=");
4580
var key = param[0].toLowerCase();
4581
var value = param.length > 1 ? param[1] : null;
4582
params[decodeURIComponent(key)] = decodeURIComponent(value);
4583
}
4584
4585
return params;
4586
}
4587
4588
function binarySearchFirstItem(items, condition) {
4589
var minIndex = 0;
4590
var maxIndex = items.length - 1;
4591
4592
if (maxIndex < 0 || !condition(items[maxIndex])) {
4593
return items.length;
4594
}
4595
4596
if (condition(items[minIndex])) {
4597
return minIndex;
4598
}
4599
4600
while (minIndex < maxIndex) {
4601
var currentIndex = minIndex + maxIndex >> 1;
4602
var currentItem = items[currentIndex];
4603
4604
if (condition(currentItem)) {
4605
maxIndex = currentIndex;
4606
} else {
4607
minIndex = currentIndex + 1;
4608
}
4609
}
4610
4611
return minIndex;
4612
}
4613
4614
function approximateFraction(x) {
4615
if (Math.floor(x) === x) {
4616
return [x, 1];
4617
}
4618
4619
var xinv = 1 / x;
4620
var limit = 8;
4621
4622
if (xinv > limit) {
4623
return [1, limit];
4624
} else if (Math.floor(xinv) === xinv) {
4625
return [1, xinv];
4626
}
4627
4628
var x_ = x > 1 ? xinv : x;
4629
var a = 0,
4630
b = 1,
4631
c = 1,
4632
d = 1;
4633
4634
while (true) {
4635
var p = a + c,
4636
q = b + d;
4637
4638
if (q > limit) {
4639
break;
4640
}
4641
4642
if (x_ <= p / q) {
4643
c = p;
4644
d = q;
4645
} else {
4646
a = p;
4647
b = q;
4648
}
4649
}
4650
4651
var result;
4652
4653
if (x_ - a / b < c / d - x_) {
4654
result = x_ === x ? [a, b] : [b, a];
4655
} else {
4656
result = x_ === x ? [c, d] : [d, c];
4657
}
4658
4659
return result;
4660
}
4661
4662
function roundToDivide(x, div) {
4663
var r = x % div;
4664
return r === 0 ? x : Math.round(x - r + div);
4665
}
4666
4667
function getPageSizeInches(_ref) {
4668
var view = _ref.view,
4669
userUnit = _ref.userUnit,
4670
rotate = _ref.rotate;
4671
4672
var _view = _slicedToArray(view, 4),
4673
x1 = _view[0],
4674
y1 = _view[1],
4675
x2 = _view[2],
4676
y2 = _view[3];
4677
4678
var changeOrientation = rotate % 180 !== 0;
4679
var width = (x2 - x1) / 72 * userUnit;
4680
var height = (y2 - y1) / 72 * userUnit;
4681
return {
4682
width: changeOrientation ? height : width,
4683
height: changeOrientation ? width : height
4684
};
4685
}
4686
4687
function backtrackBeforeAllVisibleElements(index, views, top) {
4688
if (index < 2) {
4689
return index;
4690
}
4691
4692
var elt = views[index].div;
4693
var pageTop = elt.offsetTop + elt.clientTop;
4694
4695
if (pageTop >= top) {
4696
elt = views[index - 1].div;
4697
pageTop = elt.offsetTop + elt.clientTop;
4698
}
4699
4700
for (var i = index - 2; i >= 0; --i) {
4701
elt = views[i].div;
4702
4703
if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {
4704
break;
4705
}
4706
4707
index = i;
4708
}
4709
4710
return index;
4711
}
4712
4713
function getVisibleElements(_ref2) {
4714
var scrollEl = _ref2.scrollEl,
4715
views = _ref2.views,
4716
_ref2$sortByVisibilit = _ref2.sortByVisibility,
4717
sortByVisibility = _ref2$sortByVisibilit === void 0 ? false : _ref2$sortByVisibilit,
4718
_ref2$horizontal = _ref2.horizontal,
4719
horizontal = _ref2$horizontal === void 0 ? false : _ref2$horizontal,
4720
_ref2$rtl = _ref2.rtl,
4721
rtl = _ref2$rtl === void 0 ? false : _ref2$rtl;
4722
var top = scrollEl.scrollTop,
4723
bottom = top + scrollEl.clientHeight;
4724
var left = scrollEl.scrollLeft,
4725
right = left + scrollEl.clientWidth;
4726
4727
function isElementBottomAfterViewTop(view) {
4728
var element = view.div;
4729
var elementBottom = element.offsetTop + element.clientTop + element.clientHeight;
4730
return elementBottom > top;
4731
}
4732
4733
function isElementNextAfterViewHorizontally(view) {
4734
var element = view.div;
4735
var elementLeft = element.offsetLeft + element.clientLeft;
4736
var elementRight = elementLeft + element.clientWidth;
4737
return rtl ? elementLeft < right : elementRight > left;
4738
}
4739
4740
var visible = [],
4741
numViews = views.length;
4742
var firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop);
4743
4744
if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) {
4745
firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);
4746
}
4747
4748
var lastEdge = horizontal ? right : -1;
4749
4750
for (var i = firstVisibleElementInd; i < numViews; i++) {
4751
var view = views[i],
4752
element = view.div;
4753
var currentWidth = element.offsetLeft + element.clientLeft;
4754
var currentHeight = element.offsetTop + element.clientTop;
4755
var viewWidth = element.clientWidth,
4756
viewHeight = element.clientHeight;
4757
var viewRight = currentWidth + viewWidth;
4758
var viewBottom = currentHeight + viewHeight;
4759
4760
if (lastEdge === -1) {
4761
if (viewBottom >= bottom) {
4762
lastEdge = viewBottom;
4763
}
4764
} else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {
4765
break;
4766
}
4767
4768
if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {
4769
continue;
4770
}
4771
4772
var hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);
4773
var hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);
4774
var fractionHeight = (viewHeight - hiddenHeight) / viewHeight,
4775
fractionWidth = (viewWidth - hiddenWidth) / viewWidth;
4776
var percent = fractionHeight * fractionWidth * 100 | 0;
4777
visible.push({
4778
id: view.id,
4779
x: currentWidth,
4780
y: currentHeight,
4781
view: view,
4782
percent: percent,
4783
widthPercent: fractionWidth * 100 | 0
4784
});
4785
}
4786
4787
var first = visible[0],
4788
last = visible[visible.length - 1];
4789
4790
if (sortByVisibility) {
4791
visible.sort(function (a, b) {
4792
var pc = a.percent - b.percent;
4793
4794
if (Math.abs(pc) > 0.001) {
4795
return -pc;
4796
}
4797
4798
return a.id - b.id;
4799
});
4800
}
4801
4802
return {
4803
first: first,
4804
last: last,
4805
views: visible
4806
};
4807
}
4808
4809
function noContextMenuHandler(evt) {
4810
evt.preventDefault();
4811
}
4812
4813
function normalizeWheelEventDirection(evt) {
4814
var delta = Math.hypot(evt.deltaX, evt.deltaY);
4815
var angle = Math.atan2(evt.deltaY, evt.deltaX);
4816
4817
if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {
4818
delta = -delta;
4819
}
4820
4821
return delta;
4822
}
4823
4824
function normalizeWheelEventDelta(evt) {
4825
var delta = normalizeWheelEventDirection(evt);
4826
var MOUSE_DOM_DELTA_PIXEL_MODE = 0;
4827
var MOUSE_DOM_DELTA_LINE_MODE = 1;
4828
var MOUSE_PIXELS_PER_LINE = 30;
4829
var MOUSE_LINES_PER_PAGE = 30;
4830
4831
if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) {
4832
delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;
4833
} else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) {
4834
delta /= MOUSE_LINES_PER_PAGE;
4835
}
4836
4837
return delta;
4838
}
4839
4840
function isValidRotation(angle) {
4841
return Number.isInteger(angle) && angle % 90 === 0;
4842
}
4843
4844
function isValidScrollMode(mode) {
4845
return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN;
4846
}
4847
4848
function isValidSpreadMode(mode) {
4849
return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN;
4850
}
4851
4852
function isPortraitOrientation(size) {
4853
return size.width <= size.height;
4854
}
4855
4856
var WaitOnType = {
4857
EVENT: "event",
4858
TIMEOUT: "timeout"
4859
};
4860
exports.WaitOnType = WaitOnType;
4861
4862
function waitOnEventOrTimeout(_ref3) {
4863
var target = _ref3.target,
4864
name = _ref3.name,
4865
_ref3$delay = _ref3.delay,
4866
delay = _ref3$delay === void 0 ? 0 : _ref3$delay;
4867
return new Promise(function (resolve, reject) {
4868
if (_typeof(target) !== "object" || !(name && typeof name === "string") || !(Number.isInteger(delay) && delay >= 0)) {
4869
throw new Error("waitOnEventOrTimeout - invalid parameters.");
4870
}
4871
4872
function handler(type) {
4873
if (target instanceof EventBus) {
4874
target._off(name, eventHandler);
4875
} else {
4876
target.removeEventListener(name, eventHandler);
4877
}
4878
4879
if (timeout) {
4880
clearTimeout(timeout);
4881
}
4882
4883
resolve(type);
4884
}
4885
4886
var eventHandler = handler.bind(null, WaitOnType.EVENT);
4887
4888
if (target instanceof EventBus) {
4889
target._on(name, eventHandler);
4890
} else {
4891
target.addEventListener(name, eventHandler);
4892
}
4893
4894
var timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);
4895
var timeout = setTimeout(timeoutHandler, delay);
4896
});
4897
}
4898
4899
var animationStarted = new Promise(function (resolve) {
4900
window.requestAnimationFrame(resolve);
4901
});
4902
exports.animationStarted = animationStarted;
4903
4904
function dispatchDOMEvent(eventName) {
4905
var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
4906
throw new Error("Not implemented: dispatchDOMEvent");
4907
}
4908
4909
var EventBus = /*#__PURE__*/function () {
4910
function EventBus(options) {
4911
_classCallCheck(this, EventBus);
4912
4913
this._listeners = Object.create(null);
4914
}
4915
4916
_createClass(EventBus, [{
4917
key: "on",
4918
value: function on(eventName, listener) {
4919
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
4920
4921
this._on(eventName, listener, {
4922
external: true,
4923
once: options === null || options === void 0 ? void 0 : options.once
4924
});
4925
}
4926
}, {
4927
key: "off",
4928
value: function off(eventName, listener) {
4929
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
4930
4931
this._off(eventName, listener, {
4932
external: true,
4933
once: options === null || options === void 0 ? void 0 : options.once
4934
});
4935
}
4936
}, {
4937
key: "dispatch",
4938
value: function dispatch(eventName) {
4939
var _this = this;
4940
4941
var eventListeners = this._listeners[eventName];
4942
4943
if (!eventListeners || eventListeners.length === 0) {
4944
return;
4945
}
4946
4947
var args = Array.prototype.slice.call(arguments, 1);
4948
var externalListeners;
4949
eventListeners.slice(0).forEach(function (_ref4) {
4950
var listener = _ref4.listener,
4951
external = _ref4.external,
4952
once = _ref4.once;
4953
4954
if (once) {
4955
_this._off(eventName, listener);
4956
}
4957
4958
if (external) {
4959
(externalListeners || (externalListeners = [])).push(listener);
4960
return;
4961
}
4962
4963
listener.apply(null, args);
4964
});
4965
4966
if (externalListeners) {
4967
externalListeners.forEach(function (listener) {
4968
listener.apply(null, args);
4969
});
4970
externalListeners = null;
4971
}
4972
}
4973
}, {
4974
key: "_on",
4975
value: function _on(eventName, listener) {
4976
var _this$_listeners;
4977
4978
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
4979
var eventListeners = (_this$_listeners = this._listeners)[eventName] || (_this$_listeners[eventName] = []);
4980
eventListeners.push({
4981
listener: listener,
4982
external: (options === null || options === void 0 ? void 0 : options.external) === true,
4983
once: (options === null || options === void 0 ? void 0 : options.once) === true
4984
});
4985
}
4986
}, {
4987
key: "_off",
4988
value: function _off(eventName, listener) {
4989
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
4990
var eventListeners = this._listeners[eventName];
4991
4992
if (!eventListeners) {
4993
return;
4994
}
4995
4996
for (var i = 0, ii = eventListeners.length; i < ii; i++) {
4997
if (eventListeners[i].listener === listener) {
4998
eventListeners.splice(i, 1);
4999
return;
5000
}
5001
}
5002
}
5003
}]);
5004
5005
return EventBus;
5006
}();
5007
5008
exports.EventBus = EventBus;
5009
5010
function clamp(v, min, max) {
5011
return Math.min(Math.max(v, min), max);
5012
}
5013
5014
var ProgressBar = /*#__PURE__*/function () {
5015
function ProgressBar(id) {
5016
var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
5017
height = _ref5.height,
5018
width = _ref5.width,
5019
units = _ref5.units;
5020
5021
_classCallCheck(this, ProgressBar);
5022
5023
this.visible = true;
5024
this.div = document.querySelector(id + " .progress");
5025
this.bar = this.div.parentNode;
5026
this.height = height || 100;
5027
this.width = width || 100;
5028
this.units = units || "%";
5029
this.div.style.height = this.height + this.units;
5030
this.percent = 0;
5031
}
5032
5033
_createClass(ProgressBar, [{
5034
key: "_updateBar",
5035
value: function _updateBar() {
5036
if (this._indeterminate) {
5037
this.div.classList.add("indeterminate");
5038
this.div.style.width = this.width + this.units;
5039
return;
5040
}
5041
5042
this.div.classList.remove("indeterminate");
5043
var progressSize = this.width * this._percent / 100;
5044
this.div.style.width = progressSize + this.units;
5045
}
5046
}, {
5047
key: "percent",
5048
get: function get() {
5049
return this._percent;
5050
},
5051
set: function set(val) {
5052
this._indeterminate = isNaN(val);
5053
this._percent = clamp(val, 0, 100);
5054
5055
this._updateBar();
5056
}
5057
}, {
5058
key: "setWidth",
5059
value: function setWidth(viewer) {
5060
if (!viewer) {
5061
return;
5062
}
5063
5064
var container = viewer.parentNode;
5065
var scrollbarWidth = container.offsetWidth - viewer.offsetWidth;
5066
5067
if (scrollbarWidth > 0) {
5068
var doc = document.documentElement;
5069
doc.style.setProperty(LOADINGBAR_END_OFFSET_VAR, "".concat(scrollbarWidth, "px"));
5070
}
5071
}
5072
}, {
5073
key: "hide",
5074
value: function hide() {
5075
if (!this.visible) {
5076
return;
5077
}
5078
5079
this.visible = false;
5080
this.bar.classList.add("hidden");
5081
}
5082
}, {
5083
key: "show",
5084
value: function show() {
5085
if (this.visible) {
5086
return;
5087
}
5088
5089
this.visible = true;
5090
this.bar.classList.remove("hidden");
5091
}
5092
}]);
5093
5094
return ProgressBar;
5095
}();
5096
5097
exports.ProgressBar = ProgressBar;
5098
5099
function moveToEndOfArray(arr, condition) {
5100
var moved = [],
5101
len = arr.length;
5102
var write = 0;
5103
5104
for (var read = 0; read < len; ++read) {
5105
if (condition(arr[read])) {
5106
moved.push(arr[read]);
5107
} else {
5108
arr[write] = arr[read];
5109
++write;
5110
}
5111
}
5112
5113
for (var _read = 0; write < len; ++_read, ++write) {
5114
arr[write] = moved[_read];
5115
}
5116
}
5117
5118
function getActiveOrFocusedElement() {
5119
var curRoot = document;
5120
var curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus");
5121
5122
while ((_curActiveOrFocused = curActiveOrFocused) !== null && _curActiveOrFocused !== void 0 && _curActiveOrFocused.shadowRoot) {
5123
var _curActiveOrFocused;
5124
5125
curRoot = curActiveOrFocused.shadowRoot;
5126
curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus");
5127
}
5128
5129
return curActiveOrFocused;
5130
}
5131
5132
function apiPageLayoutToSpreadMode(layout) {
5133
switch (layout) {
5134
case "SinglePage":
5135
case "OneColumn":
5136
return SpreadMode.NONE;
5137
5138
case "TwoColumnLeft":
5139
case "TwoPageLeft":
5140
return SpreadMode.ODD;
5141
5142
case "TwoColumnRight":
5143
case "TwoPageRight":
5144
return SpreadMode.EVEN;
5145
}
5146
5147
return SpreadMode.NONE;
5148
}
5149
5150
function apiPageModeToSidebarView(mode) {
5151
switch (mode) {
5152
case "UseNone":
5153
return SidebarView.NONE;
5154
5155
case "UseThumbs":
5156
return SidebarView.THUMBS;
5157
5158
case "UseOutlines":
5159
return SidebarView.OUTLINE;
5160
5161
case "UseAttachments":
5162
return SidebarView.ATTACHMENTS;
5163
5164
case "UseOC":
5165
return SidebarView.LAYERS;
5166
}
5167
5168
return SidebarView.NONE;
5169
}
5170
5171
/***/ }),
5172
/* 7 */
5173
/***/ ((module) => {
5174
5175
5176
5177
var pdfjsLib;
5178
5179
if (typeof window !== "undefined" && window["pdfjs-dist/build/pdf"]) {
5180
pdfjsLib = window["pdfjs-dist/build/pdf"];
5181
} else {
5182
pdfjsLib = require("../build/pdf.js");
5183
}
5184
5185
module.exports = pdfjsLib;
5186
5187
/***/ }),
5188
/* 8 */
5189
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5190
5191
5192
5193
Object.defineProperty(exports, "__esModule", ({
5194
value: true
5195
}));
5196
exports.PDFCursorTools = exports.CursorTool = void 0;
5197
5198
var _grab_to_pan = __webpack_require__(9);
5199
5200
var _ui_utils = __webpack_require__(6);
5201
5202
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5203
5204
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); } }
5205
5206
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
5207
5208
var CursorTool = {
5209
SELECT: 0,
5210
HAND: 1,
5211
ZOOM: 2
5212
};
5213
exports.CursorTool = CursorTool;
5214
5215
var PDFCursorTools = /*#__PURE__*/function () {
5216
function PDFCursorTools(_ref) {
5217
var _this = this;
5218
5219
var container = _ref.container,
5220
eventBus = _ref.eventBus,
5221
_ref$cursorToolOnLoad = _ref.cursorToolOnLoad,
5222
cursorToolOnLoad = _ref$cursorToolOnLoad === void 0 ? CursorTool.SELECT : _ref$cursorToolOnLoad;
5223
5224
_classCallCheck(this, PDFCursorTools);
5225
5226
this.container = container;
5227
this.eventBus = eventBus;
5228
this.active = CursorTool.SELECT;
5229
this.activeBeforePresentationMode = null;
5230
this.handTool = new _grab_to_pan.GrabToPan({
5231
element: this.container
5232
});
5233
5234
this._addEventListeners();
5235
5236
Promise.resolve().then(function () {
5237
_this.switchTool(cursorToolOnLoad);
5238
});
5239
}
5240
5241
_createClass(PDFCursorTools, [{
5242
key: "activeTool",
5243
get: function get() {
5244
return this.active;
5245
}
5246
}, {
5247
key: "switchTool",
5248
value: function switchTool(tool) {
5249
var _this2 = this;
5250
5251
if (this.activeBeforePresentationMode !== null) {
5252
return;
5253
}
5254
5255
if (tool === this.active) {
5256
return;
5257
}
5258
5259
var disableActiveTool = function disableActiveTool() {
5260
switch (_this2.active) {
5261
case CursorTool.SELECT:
5262
break;
5263
5264
case CursorTool.HAND:
5265
_this2.handTool.deactivate();
5266
5267
break;
5268
5269
case CursorTool.ZOOM:
5270
}
5271
};
5272
5273
switch (tool) {
5274
case CursorTool.SELECT:
5275
disableActiveTool();
5276
break;
5277
5278
case CursorTool.HAND:
5279
disableActiveTool();
5280
this.handTool.activate();
5281
break;
5282
5283
case CursorTool.ZOOM:
5284
default:
5285
console.error("switchTool: \"".concat(tool, "\" is an unsupported value."));
5286
return;
5287
}
5288
5289
this.active = tool;
5290
5291
this._dispatchEvent();
5292
}
5293
}, {
5294
key: "_dispatchEvent",
5295
value: function _dispatchEvent() {
5296
this.eventBus.dispatch("cursortoolchanged", {
5297
source: this,
5298
tool: this.active
5299
});
5300
}
5301
}, {
5302
key: "_addEventListeners",
5303
value: function _addEventListeners() {
5304
var _this3 = this;
5305
5306
this.eventBus._on("switchcursortool", function (evt) {
5307
_this3.switchTool(evt.tool);
5308
});
5309
5310
this.eventBus._on("presentationmodechanged", function (evt) {
5311
switch (evt.state) {
5312
case _ui_utils.PresentationModeState.FULLSCREEN:
5313
{
5314
var previouslyActive = _this3.active;
5315
5316
_this3.switchTool(CursorTool.SELECT);
5317
5318
_this3.activeBeforePresentationMode = previouslyActive;
5319
break;
5320
}
5321
5322
case _ui_utils.PresentationModeState.NORMAL:
5323
{
5324
var _previouslyActive = _this3.activeBeforePresentationMode;
5325
_this3.activeBeforePresentationMode = null;
5326
5327
_this3.switchTool(_previouslyActive);
5328
5329
break;
5330
}
5331
}
5332
});
5333
}
5334
}]);
5335
5336
return PDFCursorTools;
5337
}();
5338
5339
exports.PDFCursorTools = PDFCursorTools;
5340
5341
/***/ }),
5342
/* 9 */
5343
/***/ ((__unused_webpack_module, exports) => {
5344
5345
5346
5347
Object.defineProperty(exports, "__esModule", ({
5348
value: true
5349
}));
5350
exports.GrabToPan = GrabToPan;
5351
5352
function GrabToPan(options) {
5353
this.element = options.element;
5354
this.document = options.element.ownerDocument;
5355
5356
if (typeof options.ignoreTarget === "function") {
5357
this.ignoreTarget = options.ignoreTarget;
5358
}
5359
5360
this.onActiveChanged = options.onActiveChanged;
5361
this.activate = this.activate.bind(this);
5362
this.deactivate = this.deactivate.bind(this);
5363
this.toggle = this.toggle.bind(this);
5364
this._onmousedown = this._onmousedown.bind(this);
5365
this._onmousemove = this._onmousemove.bind(this);
5366
this._endPan = this._endPan.bind(this);
5367
var overlay = this.overlay = document.createElement("div");
5368
overlay.className = "grab-to-pan-grabbing";
5369
}
5370
5371
GrabToPan.prototype = {
5372
CSS_CLASS_GRAB: "grab-to-pan-grab",
5373
activate: function GrabToPan_activate() {
5374
if (!this.active) {
5375
this.active = true;
5376
this.element.addEventListener("mousedown", this._onmousedown, true);
5377
this.element.classList.add(this.CSS_CLASS_GRAB);
5378
5379
if (this.onActiveChanged) {
5380
this.onActiveChanged(true);
5381
}
5382
}
5383
},
5384
deactivate: function GrabToPan_deactivate() {
5385
if (this.active) {
5386
this.active = false;
5387
this.element.removeEventListener("mousedown", this._onmousedown, true);
5388
5389
this._endPan();
5390
5391
this.element.classList.remove(this.CSS_CLASS_GRAB);
5392
5393
if (this.onActiveChanged) {
5394
this.onActiveChanged(false);
5395
}
5396
}
5397
},
5398
toggle: function GrabToPan_toggle() {
5399
if (this.active) {
5400
this.deactivate();
5401
} else {
5402
this.activate();
5403
}
5404
},
5405
ignoreTarget: function GrabToPan_ignoreTarget(node) {
5406
return node.matches("a[href], a[href] *, input, textarea, button, button *, select, option");
5407
},
5408
_onmousedown: function GrabToPan__onmousedown(event) {
5409
if (event.button !== 0 || this.ignoreTarget(event.target)) {
5410
return;
5411
}
5412
5413
if (event.originalTarget) {
5414
try {
5415
event.originalTarget.tagName;
5416
} catch (e) {
5417
return;
5418
}
5419
}
5420
5421
this.scrollLeftStart = this.element.scrollLeft;
5422
this.scrollTopStart = this.element.scrollTop;
5423
this.clientXStart = event.clientX;
5424
this.clientYStart = event.clientY;
5425
this.document.addEventListener("mousemove", this._onmousemove, true);
5426
this.document.addEventListener("mouseup", this._endPan, true);
5427
this.element.addEventListener("scroll", this._endPan, true);
5428
event.preventDefault();
5429
event.stopPropagation();
5430
var focusedElement = document.activeElement;
5431
5432
if (focusedElement && !focusedElement.contains(event.target)) {
5433
focusedElement.blur();
5434
}
5435
},
5436
_onmousemove: function GrabToPan__onmousemove(event) {
5437
this.element.removeEventListener("scroll", this._endPan, true);
5438
5439
if (isLeftMouseReleased(event)) {
5440
this._endPan();
5441
5442
return;
5443
}
5444
5445
var xDiff = event.clientX - this.clientXStart;
5446
var yDiff = event.clientY - this.clientYStart;
5447
var scrollTop = this.scrollTopStart - yDiff;
5448
var scrollLeft = this.scrollLeftStart - xDiff;
5449
5450
if (this.element.scrollTo) {
5451
this.element.scrollTo({
5452
top: scrollTop,
5453
left: scrollLeft,
5454
behavior: "instant"
5455
});
5456
} else {
5457
this.element.scrollTop = scrollTop;
5458
this.element.scrollLeft = scrollLeft;
5459
}
5460
5461
if (!this.overlay.parentNode) {
5462
document.body.appendChild(this.overlay);
5463
}
5464
},
5465
_endPan: function GrabToPan__endPan() {
5466
this.element.removeEventListener("scroll", this._endPan, true);
5467
this.document.removeEventListener("mousemove", this._onmousemove, true);
5468
this.document.removeEventListener("mouseup", this._endPan, true);
5469
this.overlay.remove();
5470
}
5471
};
5472
5473
function isLeftMouseReleased(event) {
5474
if ("buttons" in event) {
5475
return !(event.buttons & 1);
5476
}
5477
5478
var chrome = window.chrome;
5479
var isChrome15OrOpera15plus = chrome && (chrome.webstore || chrome.app);
5480
var isSafari6plus = /Apple/.test(navigator.vendor) && /Version\/([6-9]\d*|[1-5]\d+)/.test(navigator.userAgent);
5481
5482
if (isChrome15OrOpera15plus || isSafari6plus) {
5483
return event.which === 0;
5484
}
5485
5486
return false;
5487
}
5488
5489
/***/ }),
5490
/* 10 */
5491
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5492
5493
5494
5495
Object.defineProperty(exports, "__esModule", ({
5496
value: true
5497
}));
5498
exports.RenderingStates = exports.PDFRenderingQueue = void 0;
5499
5500
var _pdfjsLib = __webpack_require__(7);
5501
5502
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5503
5504
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); } }
5505
5506
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
5507
5508
var CLEANUP_TIMEOUT = 30000;
5509
var RenderingStates = {
5510
INITIAL: 0,
5511
RUNNING: 1,
5512
PAUSED: 2,
5513
FINISHED: 3
5514
};
5515
exports.RenderingStates = RenderingStates;
5516
5517
var PDFRenderingQueue = /*#__PURE__*/function () {
5518
function PDFRenderingQueue() {
5519
_classCallCheck(this, PDFRenderingQueue);
5520
5521
this.pdfViewer = null;
5522
this.pdfThumbnailViewer = null;
5523
this.onIdle = null;
5524
this.highestPriorityPage = null;
5525
this.idleTimeout = null;
5526
this.printing = false;
5527
this.isThumbnailViewEnabled = false;
5528
}
5529
5530
_createClass(PDFRenderingQueue, [{
5531
key: "setViewer",
5532
value: function setViewer(pdfViewer) {
5533
this.pdfViewer = pdfViewer;
5534
}
5535
}, {
5536
key: "setThumbnailViewer",
5537
value: function setThumbnailViewer(pdfThumbnailViewer) {
5538
this.pdfThumbnailViewer = pdfThumbnailViewer;
5539
}
5540
}, {
5541
key: "isHighestPriority",
5542
value: function isHighestPriority(view) {
5543
return this.highestPriorityPage === view.renderingId;
5544
}
5545
}, {
5546
key: "renderHighestPriority",
5547
value: function renderHighestPriority(currentlyVisiblePages) {
5548
if (this.idleTimeout) {
5549
clearTimeout(this.idleTimeout);
5550
this.idleTimeout = null;
5551
}
5552
5553
if (this.pdfViewer.forceRendering(currentlyVisiblePages)) {
5554
return;
5555
}
5556
5557
if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) {
5558
if (this.pdfThumbnailViewer.forceRendering()) {
5559
return;
5560
}
5561
}
5562
5563
if (this.printing) {
5564
return;
5565
}
5566
5567
if (this.onIdle) {
5568
this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT);
5569
}
5570
}
5571
}, {
5572
key: "getHighestPriority",
5573
value: function getHighestPriority(visible, views, scrolledDown) {
5574
var visibleViews = visible.views;
5575
var numVisible = visibleViews.length;
5576
5577
if (numVisible === 0) {
5578
return null;
5579
}
5580
5581
for (var i = 0; i < numVisible; ++i) {
5582
var view = visibleViews[i].view;
5583
5584
if (!this.isViewFinished(view)) {
5585
return view;
5586
}
5587
}
5588
5589
if (scrolledDown) {
5590
var nextPageIndex = visible.last.id;
5591
5592
if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) {
5593
return views[nextPageIndex];
5594
}
5595
} else {
5596
var previousPageIndex = visible.first.id - 2;
5597
5598
if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) {
5599
return views[previousPageIndex];
5600
}
5601
}
5602
5603
return null;
5604
}
5605
}, {
5606
key: "isViewFinished",
5607
value: function isViewFinished(view) {
5608
return view.renderingState === RenderingStates.FINISHED;
5609
}
5610
}, {
5611
key: "renderView",
5612
value: function renderView(view) {
5613
var _this = this;
5614
5615
switch (view.renderingState) {
5616
case RenderingStates.FINISHED:
5617
return false;
5618
5619
case RenderingStates.PAUSED:
5620
this.highestPriorityPage = view.renderingId;
5621
view.resume();
5622
break;
5623
5624
case RenderingStates.RUNNING:
5625
this.highestPriorityPage = view.renderingId;
5626
break;
5627
5628
case RenderingStates.INITIAL:
5629
this.highestPriorityPage = view.renderingId;
5630
view.draw()["finally"](function () {
5631
_this.renderHighestPriority();
5632
})["catch"](function (reason) {
5633
if (reason instanceof _pdfjsLib.RenderingCancelledException) {
5634
return;
5635
}
5636
5637
console.error("renderView: \"".concat(reason, "\""));
5638
});
5639
break;
5640
}
5641
5642
return true;
5643
}
5644
}]);
5645
5646
return PDFRenderingQueue;
5647
}();
5648
5649
exports.PDFRenderingQueue = PDFRenderingQueue;
5650
5651
/***/ }),
5652
/* 11 */
5653
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5654
5655
5656
5657
Object.defineProperty(exports, "__esModule", ({
5658
value: true
5659
}));
5660
exports.OverlayManager = void 0;
5661
5662
var _regenerator = _interopRequireDefault(__webpack_require__(4));
5663
5664
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
5665
5666
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
5667
5668
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5669
5670
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5671
5672
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); } }
5673
5674
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
5675
5676
var OverlayManager = /*#__PURE__*/function () {
5677
function OverlayManager() {
5678
_classCallCheck(this, OverlayManager);
5679
5680
this._overlays = {};
5681
this._active = null;
5682
this._keyDownBound = this._keyDown.bind(this);
5683
}
5684
5685
_createClass(OverlayManager, [{
5686
key: "active",
5687
get: function get() {
5688
return this._active;
5689
}
5690
}, {
5691
key: "register",
5692
value: function () {
5693
var _register = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(name, element) {
5694
var callerCloseMethod,
5695
canForceClose,
5696
container,
5697
_args = arguments;
5698
return _regenerator["default"].wrap(function _callee$(_context) {
5699
while (1) {
5700
switch (_context.prev = _context.next) {
5701
case 0:
5702
callerCloseMethod = _args.length > 2 && _args[2] !== undefined ? _args[2] : null;
5703
canForceClose = _args.length > 3 && _args[3] !== undefined ? _args[3] : false;
5704
5705
if (!(!name || !element || !(container = element.parentNode))) {
5706
_context.next = 6;
5707
break;
5708
}
5709
5710
throw new Error("Not enough parameters.");
5711
5712
case 6:
5713
if (!this._overlays[name]) {
5714
_context.next = 8;
5715
break;
5716
}
5717
5718
throw new Error("The overlay is already registered.");
5719
5720
case 8:
5721
this._overlays[name] = {
5722
element: element,
5723
container: container,
5724
callerCloseMethod: callerCloseMethod,
5725
canForceClose: canForceClose
5726
};
5727
5728
case 9:
5729
case "end":
5730
return _context.stop();
5731
}
5732
}
5733
}, _callee, this);
5734
}));
5735
5736
function register(_x, _x2) {
5737
return _register.apply(this, arguments);
5738
}
5739
5740
return register;
5741
}()
5742
}, {
5743
key: "unregister",
5744
value: function () {
5745
var _unregister = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(name) {
5746
return _regenerator["default"].wrap(function _callee2$(_context2) {
5747
while (1) {
5748
switch (_context2.prev = _context2.next) {
5749
case 0:
5750
if (this._overlays[name]) {
5751
_context2.next = 4;
5752
break;
5753
}
5754
5755
throw new Error("The overlay does not exist.");
5756
5757
case 4:
5758
if (!(this._active === name)) {
5759
_context2.next = 6;
5760
break;
5761
}
5762
5763
throw new Error("The overlay cannot be removed while it is active.");
5764
5765
case 6:
5766
delete this._overlays[name];
5767
5768
case 7:
5769
case "end":
5770
return _context2.stop();
5771
}
5772
}
5773
}, _callee2, this);
5774
}));
5775
5776
function unregister(_x3) {
5777
return _unregister.apply(this, arguments);
5778
}
5779
5780
return unregister;
5781
}()
5782
}, {
5783
key: "open",
5784
value: function () {
5785
var _open = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3(name) {
5786
return _regenerator["default"].wrap(function _callee3$(_context3) {
5787
while (1) {
5788
switch (_context3.prev = _context3.next) {
5789
case 0:
5790
if (this._overlays[name]) {
5791
_context3.next = 4;
5792
break;
5793
}
5794
5795
throw new Error("The overlay does not exist.");
5796
5797
case 4:
5798
if (!this._active) {
5799
_context3.next = 14;
5800
break;
5801
}
5802
5803
if (!this._overlays[name].canForceClose) {
5804
_context3.next = 9;
5805
break;
5806
}
5807
5808
this._closeThroughCaller();
5809
5810
_context3.next = 14;
5811
break;
5812
5813
case 9:
5814
if (!(this._active === name)) {
5815
_context3.next = 13;
5816
break;
5817
}
5818
5819
throw new Error("The overlay is already active.");
5820
5821
case 13:
5822
throw new Error("Another overlay is currently active.");
5823
5824
case 14:
5825
this._active = name;
5826
5827
this._overlays[this._active].element.classList.remove("hidden");
5828
5829
this._overlays[this._active].container.classList.remove("hidden");
5830
5831
window.addEventListener("keydown", this._keyDownBound);
5832
5833
case 18:
5834
case "end":
5835
return _context3.stop();
5836
}
5837
}
5838
}, _callee3, this);
5839
}));
5840
5841
function open(_x4) {
5842
return _open.apply(this, arguments);
5843
}
5844
5845
return open;
5846
}()
5847
}, {
5848
key: "close",
5849
value: function () {
5850
var _close = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4(name) {
5851
return _regenerator["default"].wrap(function _callee4$(_context4) {
5852
while (1) {
5853
switch (_context4.prev = _context4.next) {
5854
case 0:
5855
if (this._overlays[name]) {
5856
_context4.next = 4;
5857
break;
5858
}
5859
5860
throw new Error("The overlay does not exist.");
5861
5862
case 4:
5863
if (this._active) {
5864
_context4.next = 8;
5865
break;
5866
}
5867
5868
throw new Error("The overlay is currently not active.");
5869
5870
case 8:
5871
if (!(this._active !== name)) {
5872
_context4.next = 10;
5873
break;
5874
}
5875
5876
throw new Error("Another overlay is currently active.");
5877
5878
case 10:
5879
this._overlays[this._active].container.classList.add("hidden");
5880
5881
this._overlays[this._active].element.classList.add("hidden");
5882
5883
this._active = null;
5884
window.removeEventListener("keydown", this._keyDownBound);
5885
5886
case 14:
5887
case "end":
5888
return _context4.stop();
5889
}
5890
}
5891
}, _callee4, this);
5892
}));
5893
5894
function close(_x5) {
5895
return _close.apply(this, arguments);
5896
}
5897
5898
return close;
5899
}()
5900
}, {
5901
key: "_keyDown",
5902
value: function _keyDown(evt) {
5903
if (this._active && evt.keyCode === 27) {
5904
this._closeThroughCaller();
5905
5906
evt.preventDefault();
5907
}
5908
}
5909
}, {
5910
key: "_closeThroughCaller",
5911
value: function _closeThroughCaller() {
5912
if (this._overlays[this._active].callerCloseMethod) {
5913
this._overlays[this._active].callerCloseMethod();
5914
}
5915
5916
if (this._active) {
5917
this.close(this._active);
5918
}
5919
}
5920
}]);
5921
5922
return OverlayManager;
5923
}();
5924
5925
exports.OverlayManager = OverlayManager;
5926
5927
/***/ }),
5928
/* 12 */
5929
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
5930
5931
5932
5933
Object.defineProperty(exports, "__esModule", ({
5934
value: true
5935
}));
5936
exports.PasswordPrompt = void 0;
5937
5938
var _regenerator = _interopRequireDefault(__webpack_require__(4));
5939
5940
var _pdfjsLib = __webpack_require__(7);
5941
5942
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
5943
5944
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
5945
5946
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5947
5948
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5949
5950
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); } }
5951
5952
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
5953
5954
var PasswordPrompt = /*#__PURE__*/function () {
5955
function PasswordPrompt(options, overlayManager, l10n) {
5956
var _this = this;
5957
5958
var isViewerEmbedded = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
5959
5960
_classCallCheck(this, PasswordPrompt);
5961
5962
this.overlayName = options.overlayName;
5963
this.container = options.container;
5964
this.label = options.label;
5965
this.input = options.input;
5966
this.submitButton = options.submitButton;
5967
this.cancelButton = options.cancelButton;
5968
this.overlayManager = overlayManager;
5969
this.l10n = l10n;
5970
this._isViewerEmbedded = isViewerEmbedded;
5971
this.updateCallback = null;
5972
this.reason = null;
5973
this.submitButton.addEventListener("click", this.verify.bind(this));
5974
this.cancelButton.addEventListener("click", this.close.bind(this));
5975
this.input.addEventListener("keydown", function (e) {
5976
if (e.keyCode === 13) {
5977
_this.verify();
5978
}
5979
});
5980
this.overlayManager.register(this.overlayName, this.container, this.close.bind(this), true);
5981
}
5982
5983
_createClass(PasswordPrompt, [{
5984
key: "open",
5985
value: function () {
5986
var _open = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
5987
var passwordIncorrect;
5988
return _regenerator["default"].wrap(function _callee$(_context) {
5989
while (1) {
5990
switch (_context.prev = _context.next) {
5991
case 0:
5992
_context.next = 2;
5993
return this.overlayManager.open(this.overlayName);
5994
5995
case 2:
5996
passwordIncorrect = this.reason === _pdfjsLib.PasswordResponses.INCORRECT_PASSWORD;
5997
5998
if (!this._isViewerEmbedded || passwordIncorrect) {
5999
this.input.focus();
6000
}
6001
6002
_context.next = 6;
6003
return this.l10n.get("password_".concat(passwordIncorrect ? "invalid" : "label"));
6004
6005
case 6:
6006
this.label.textContent = _context.sent;
6007
6008
case 7:
6009
case "end":
6010
return _context.stop();
6011
}
6012
}
6013
}, _callee, this);
6014
}));
6015
6016
function open() {
6017
return _open.apply(this, arguments);
6018
}
6019
6020
return open;
6021
}()
6022
}, {
6023
key: "close",
6024
value: function close() {
6025
var _this2 = this;
6026
6027
this.overlayManager.close(this.overlayName).then(function () {
6028
_this2.input.value = "";
6029
});
6030
}
6031
}, {
6032
key: "verify",
6033
value: function verify() {
6034
var password = this.input.value;
6035
6036
if ((password === null || password === void 0 ? void 0 : password.length) > 0) {
6037
this.close();
6038
this.updateCallback(password);
6039
}
6040
}
6041
}, {
6042
key: "setUpdateCallback",
6043
value: function setUpdateCallback(updateCallback, reason) {
6044
this.updateCallback = updateCallback;
6045
this.reason = reason;
6046
}
6047
}]);
6048
6049
return PasswordPrompt;
6050
}();
6051
6052
exports.PasswordPrompt = PasswordPrompt;
6053
6054
/***/ }),
6055
/* 13 */
6056
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6057
6058
6059
6060
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
6061
6062
Object.defineProperty(exports, "__esModule", ({
6063
value: true
6064
}));
6065
exports.PDFAttachmentViewer = void 0;
6066
6067
var _pdfjsLib = __webpack_require__(7);
6068
6069
var _base_tree_viewer = __webpack_require__(14);
6070
6071
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
6072
6073
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6074
6075
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
6076
6077
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6078
6079
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); } }
6080
6081
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
6082
6083
function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
6084
6085
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
6086
6087
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
6088
6089
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
6090
6091
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
6092
6093
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
6094
6095
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
6096
6097
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
6098
6099
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
6100
6101
var PDFAttachmentViewer = /*#__PURE__*/function (_BaseTreeViewer) {
6102
_inherits(PDFAttachmentViewer, _BaseTreeViewer);
6103
6104
var _super = _createSuper(PDFAttachmentViewer);
6105
6106
function PDFAttachmentViewer(options) {
6107
var _this;
6108
6109
_classCallCheck(this, PDFAttachmentViewer);
6110
6111
_this = _super.call(this, options);
6112
_this.downloadManager = options.downloadManager;
6113
6114
_this.eventBus._on("fileattachmentannotation", _this._appendAttachment.bind(_assertThisInitialized(_this)));
6115
6116
return _this;
6117
}
6118
6119
_createClass(PDFAttachmentViewer, [{
6120
key: "reset",
6121
value: function reset() {
6122
var keepRenderedCapability = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
6123
6124
_get(_getPrototypeOf(PDFAttachmentViewer.prototype), "reset", this).call(this);
6125
6126
this._attachments = null;
6127
6128
if (!keepRenderedCapability) {
6129
this._renderedCapability = (0, _pdfjsLib.createPromiseCapability)();
6130
}
6131
6132
if (this._pendingDispatchEvent) {
6133
clearTimeout(this._pendingDispatchEvent);
6134
}
6135
6136
this._pendingDispatchEvent = null;
6137
}
6138
}, {
6139
key: "_dispatchEvent",
6140
value: function _dispatchEvent(attachmentsCount) {
6141
var _this2 = this;
6142
6143
this._renderedCapability.resolve();
6144
6145
if (this._pendingDispatchEvent) {
6146
clearTimeout(this._pendingDispatchEvent);
6147
this._pendingDispatchEvent = null;
6148
}
6149
6150
if (attachmentsCount === 0) {
6151
this._pendingDispatchEvent = setTimeout(function () {
6152
_this2.eventBus.dispatch("attachmentsloaded", {
6153
source: _this2,
6154
attachmentsCount: 0
6155
});
6156
6157
_this2._pendingDispatchEvent = null;
6158
});
6159
return;
6160
}
6161
6162
this.eventBus.dispatch("attachmentsloaded", {
6163
source: this,
6164
attachmentsCount: attachmentsCount
6165
});
6166
}
6167
}, {
6168
key: "_bindLink",
6169
value: function _bindLink(element, _ref) {
6170
var _this3 = this;
6171
6172
var content = _ref.content,
6173
filename = _ref.filename;
6174
6175
element.onclick = function () {
6176
_this3.downloadManager.openOrDownloadData(element, content, filename);
6177
6178
return false;
6179
};
6180
}
6181
}, {
6182
key: "render",
6183
value: function render(_ref2) {
6184
var attachments = _ref2.attachments,
6185
_ref2$keepRenderedCap = _ref2.keepRenderedCapability,
6186
keepRenderedCapability = _ref2$keepRenderedCap === void 0 ? false : _ref2$keepRenderedCap;
6187
6188
if (this._attachments) {
6189
this.reset(keepRenderedCapability);
6190
}
6191
6192
this._attachments = attachments || null;
6193
6194
if (!attachments) {
6195
this._dispatchEvent(0);
6196
6197
return;
6198
}
6199
6200
var names = Object.keys(attachments).sort(function (a, b) {
6201
return a.toLowerCase().localeCompare(b.toLowerCase());
6202
});
6203
var fragment = document.createDocumentFragment();
6204
var attachmentsCount = 0;
6205
6206
var _iterator = _createForOfIteratorHelper(names),
6207
_step;
6208
6209
try {
6210
for (_iterator.s(); !(_step = _iterator.n()).done;) {
6211
var name = _step.value;
6212
var item = attachments[name];
6213
var content = item.content,
6214
filename = (0, _pdfjsLib.getFilenameFromUrl)(item.filename);
6215
var div = document.createElement("div");
6216
div.className = "treeItem";
6217
var element = document.createElement("a");
6218
6219
this._bindLink(element, {
6220
content: content,
6221
filename: filename
6222
});
6223
6224
element.textContent = this._normalizeTextContent(filename);
6225
div.appendChild(element);
6226
fragment.appendChild(div);
6227
attachmentsCount++;
6228
}
6229
} catch (err) {
6230
_iterator.e(err);
6231
} finally {
6232
_iterator.f();
6233
}
6234
6235
this._finishRendering(fragment, attachmentsCount);
6236
}
6237
}, {
6238
key: "_appendAttachment",
6239
value: function _appendAttachment(_ref3) {
6240
var _this4 = this;
6241
6242
var id = _ref3.id,
6243
filename = _ref3.filename,
6244
content = _ref3.content;
6245
var renderedPromise = this._renderedCapability.promise;
6246
renderedPromise.then(function () {
6247
if (renderedPromise !== _this4._renderedCapability.promise) {
6248
return;
6249
}
6250
6251
var attachments = _this4._attachments;
6252
6253
if (!attachments) {
6254
attachments = Object.create(null);
6255
} else {
6256
for (var name in attachments) {
6257
if (id === name) {
6258
return;
6259
}
6260
}
6261
}
6262
6263
attachments[id] = {
6264
filename: filename,
6265
content: content
6266
};
6267
6268
_this4.render({
6269
attachments: attachments,
6270
keepRenderedCapability: true
6271
});
6272
});
6273
}
6274
}]);
6275
6276
return PDFAttachmentViewer;
6277
}(_base_tree_viewer.BaseTreeViewer);
6278
6279
exports.PDFAttachmentViewer = PDFAttachmentViewer;
6280
6281
/***/ }),
6282
/* 14 */
6283
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6284
6285
6286
6287
Object.defineProperty(exports, "__esModule", ({
6288
value: true
6289
}));
6290
exports.BaseTreeViewer = void 0;
6291
6292
var _pdfjsLib = __webpack_require__(7);
6293
6294
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
6295
6296
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6297
6298
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
6299
6300
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6301
6302
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); } }
6303
6304
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
6305
6306
var TREEITEM_OFFSET_TOP = -100;
6307
var TREEITEM_SELECTED_CLASS = "selected";
6308
6309
var BaseTreeViewer = /*#__PURE__*/function () {
6310
function BaseTreeViewer(options) {
6311
_classCallCheck(this, BaseTreeViewer);
6312
6313
if (this.constructor === BaseTreeViewer) {
6314
throw new Error("Cannot initialize BaseTreeViewer.");
6315
}
6316
6317
this.container = options.container;
6318
this.eventBus = options.eventBus;
6319
this.reset();
6320
}
6321
6322
_createClass(BaseTreeViewer, [{
6323
key: "reset",
6324
value: function reset() {
6325
this._pdfDocument = null;
6326
this._lastToggleIsShow = true;
6327
this._currentTreeItem = null;
6328
this.container.textContent = "";
6329
this.container.classList.remove("treeWithDeepNesting");
6330
}
6331
}, {
6332
key: "_dispatchEvent",
6333
value: function _dispatchEvent(count) {
6334
throw new Error("Not implemented: _dispatchEvent");
6335
}
6336
}, {
6337
key: "_bindLink",
6338
value: function _bindLink(element, params) {
6339
throw new Error("Not implemented: _bindLink");
6340
}
6341
}, {
6342
key: "_normalizeTextContent",
6343
value: function _normalizeTextContent(str) {
6344
return (0, _pdfjsLib.removeNullCharacters)(str) || "\u2013";
6345
}
6346
}, {
6347
key: "_addToggleButton",
6348
value: function _addToggleButton(div) {
6349
var _this = this;
6350
6351
var hidden = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
6352
var toggler = document.createElement("div");
6353
toggler.className = "treeItemToggler";
6354
6355
if (hidden) {
6356
toggler.classList.add("treeItemsHidden");
6357
}
6358
6359
toggler.onclick = function (evt) {
6360
evt.stopPropagation();
6361
toggler.classList.toggle("treeItemsHidden");
6362
6363
if (evt.shiftKey) {
6364
var shouldShowAll = !toggler.classList.contains("treeItemsHidden");
6365
6366
_this._toggleTreeItem(div, shouldShowAll);
6367
}
6368
};
6369
6370
div.insertBefore(toggler, div.firstChild);
6371
}
6372
}, {
6373
key: "_toggleTreeItem",
6374
value: function _toggleTreeItem(root) {
6375
var show = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
6376
this._lastToggleIsShow = show;
6377
6378
var _iterator = _createForOfIteratorHelper(root.querySelectorAll(".treeItemToggler")),
6379
_step;
6380
6381
try {
6382
for (_iterator.s(); !(_step = _iterator.n()).done;) {
6383
var toggler = _step.value;
6384
toggler.classList.toggle("treeItemsHidden", !show);
6385
}
6386
} catch (err) {
6387
_iterator.e(err);
6388
} finally {
6389
_iterator.f();
6390
}
6391
}
6392
}, {
6393
key: "_toggleAllTreeItems",
6394
value: function _toggleAllTreeItems() {
6395
this._toggleTreeItem(this.container, !this._lastToggleIsShow);
6396
}
6397
}, {
6398
key: "_finishRendering",
6399
value: function _finishRendering(fragment, count) {
6400
var hasAnyNesting = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
6401
6402
if (hasAnyNesting) {
6403
this.container.classList.add("treeWithDeepNesting");
6404
this._lastToggleIsShow = !fragment.querySelector(".treeItemsHidden");
6405
}
6406
6407
this.container.appendChild(fragment);
6408
6409
this._dispatchEvent(count);
6410
}
6411
}, {
6412
key: "render",
6413
value: function render(params) {
6414
throw new Error("Not implemented: render");
6415
}
6416
}, {
6417
key: "_updateCurrentTreeItem",
6418
value: function _updateCurrentTreeItem() {
6419
var treeItem = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
6420
6421
if (this._currentTreeItem) {
6422
this._currentTreeItem.classList.remove(TREEITEM_SELECTED_CLASS);
6423
6424
this._currentTreeItem = null;
6425
}
6426
6427
if (treeItem) {
6428
treeItem.classList.add(TREEITEM_SELECTED_CLASS);
6429
this._currentTreeItem = treeItem;
6430
}
6431
}
6432
}, {
6433
key: "_scrollToCurrentTreeItem",
6434
value: function _scrollToCurrentTreeItem(treeItem) {
6435
if (!treeItem) {
6436
return;
6437
}
6438
6439
var currentNode = treeItem.parentNode;
6440
6441
while (currentNode && currentNode !== this.container) {
6442
if (currentNode.classList.contains("treeItem")) {
6443
var toggler = currentNode.firstElementChild;
6444
toggler === null || toggler === void 0 ? void 0 : toggler.classList.remove("treeItemsHidden");
6445
}
6446
6447
currentNode = currentNode.parentNode;
6448
}
6449
6450
this._updateCurrentTreeItem(treeItem);
6451
6452
this.container.scrollTo(treeItem.offsetLeft, treeItem.offsetTop + TREEITEM_OFFSET_TOP);
6453
}
6454
}]);
6455
6456
return BaseTreeViewer;
6457
}();
6458
6459
exports.BaseTreeViewer = BaseTreeViewer;
6460
6461
/***/ }),
6462
/* 15 */
6463
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6464
6465
6466
6467
Object.defineProperty(exports, "__esModule", ({
6468
value: true
6469
}));
6470
exports.PDFDocumentProperties = void 0;
6471
6472
var _regenerator = _interopRequireDefault(__webpack_require__(4));
6473
6474
var _pdfjsLib = __webpack_require__(7);
6475
6476
var _ui_utils = __webpack_require__(6);
6477
6478
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6479
6480
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6481
6482
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6483
6484
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6485
6486
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
6487
6488
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
6489
6490
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
6491
6492
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
6493
6494
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
6495
6496
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6497
6498
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); } }
6499
6500
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
6501
6502
var DEFAULT_FIELD_CONTENT = "-";
6503
var NON_METRIC_LOCALES = ["en-us", "en-lr", "my"];
6504
var US_PAGE_NAMES = {
6505
"8.5x11": "Letter",
6506
"8.5x14": "Legal"
6507
};
6508
var METRIC_PAGE_NAMES = {
6509
"297x420": "A3",
6510
"210x297": "A4"
6511
};
6512
6513
function getPageName(size, isPortrait, pageNames) {
6514
var width = isPortrait ? size.width : size.height;
6515
var height = isPortrait ? size.height : size.width;
6516
return pageNames["".concat(width, "x").concat(height)];
6517
}
6518
6519
var PDFDocumentProperties = /*#__PURE__*/function () {
6520
function PDFDocumentProperties(_ref, overlayManager, eventBus, l10n) {
6521
var _this = this;
6522
6523
var overlayName = _ref.overlayName,
6524
fields = _ref.fields,
6525
container = _ref.container,
6526
closeButton = _ref.closeButton;
6527
6528
_classCallCheck(this, PDFDocumentProperties);
6529
6530
this.overlayName = overlayName;
6531
this.fields = fields;
6532
this.container = container;
6533
this.overlayManager = overlayManager;
6534
this.l10n = l10n;
6535
6536
this._reset();
6537
6538
closeButton.addEventListener("click", this.close.bind(this));
6539
this.overlayManager.register(this.overlayName, this.container, this.close.bind(this));
6540
6541
eventBus._on("pagechanging", function (evt) {
6542
_this._currentPageNumber = evt.pageNumber;
6543
});
6544
6545
eventBus._on("rotationchanging", function (evt) {
6546
_this._pagesRotation = evt.pagesRotation;
6547
});
6548
6549
this._isNonMetricLocale = true;
6550
l10n.getLanguage().then(function (locale) {
6551
_this._isNonMetricLocale = NON_METRIC_LOCALES.includes(locale);
6552
});
6553
}
6554
6555
_createClass(PDFDocumentProperties, [{
6556
key: "open",
6557
value: function () {
6558
var _open = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
6559
var _this2 = this;
6560
6561
var freezeFieldData, currentPageNumber, pagesRotation, _yield$this$pdfDocume, info, contentDispositionFilename, contentLength, _yield$Promise$all, _yield$Promise$all2, fileName, fileSize, creationDate, modificationDate, pageSize, isLinearized, _yield$this$pdfDocume2, length, data;
6562
6563
return _regenerator["default"].wrap(function _callee$(_context) {
6564
while (1) {
6565
switch (_context.prev = _context.next) {
6566
case 0:
6567
freezeFieldData = function freezeFieldData(data) {
6568
Object.defineProperty(_this2, "fieldData", {
6569
value: Object.freeze(data),
6570
writable: false,
6571
enumerable: true,
6572
configurable: true
6573
});
6574
};
6575
6576
_context.next = 3;
6577
return Promise.all([this.overlayManager.open(this.overlayName), this._dataAvailableCapability.promise]);
6578
6579
case 3:
6580
currentPageNumber = this._currentPageNumber;
6581
pagesRotation = this._pagesRotation;
6582
6583
if (!(this.fieldData && currentPageNumber === this.fieldData._currentPageNumber && pagesRotation === this.fieldData._pagesRotation)) {
6584
_context.next = 8;
6585
break;
6586
}
6587
6588
this._updateUI();
6589
6590
return _context.abrupt("return");
6591
6592
case 8:
6593
_context.next = 10;
6594
return this.pdfDocument.getMetadata();
6595
6596
case 10:
6597
_yield$this$pdfDocume = _context.sent;
6598
info = _yield$this$pdfDocume.info;
6599
contentDispositionFilename = _yield$this$pdfDocume.contentDispositionFilename;
6600
contentLength = _yield$this$pdfDocume.contentLength;
6601
_context.next = 16;
6602
return Promise.all([contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(this.url), this._parseFileSize(contentLength), this._parseDate(info.CreationDate), this._parseDate(info.ModDate), this.pdfDocument.getPage(currentPageNumber).then(function (pdfPage) {
6603
return _this2._parsePageSize((0, _ui_utils.getPageSizeInches)(pdfPage), pagesRotation);
6604
}), this._parseLinearization(info.IsLinearized)]);
6605
6606
case 16:
6607
_yield$Promise$all = _context.sent;
6608
_yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 6);
6609
fileName = _yield$Promise$all2[0];
6610
fileSize = _yield$Promise$all2[1];
6611
creationDate = _yield$Promise$all2[2];
6612
modificationDate = _yield$Promise$all2[3];
6613
pageSize = _yield$Promise$all2[4];
6614
isLinearized = _yield$Promise$all2[5];
6615
freezeFieldData({
6616
fileName: fileName,
6617
fileSize: fileSize,
6618
title: info.Title,
6619
author: info.Author,
6620
subject: info.Subject,
6621
keywords: info.Keywords,
6622
creationDate: creationDate,
6623
modificationDate: modificationDate,
6624
creator: info.Creator,
6625
producer: info.Producer,
6626
version: info.PDFFormatVersion,
6627
pageCount: this.pdfDocument.numPages,
6628
pageSize: pageSize,
6629
linearized: isLinearized,
6630
_currentPageNumber: currentPageNumber,
6631
_pagesRotation: pagesRotation
6632
});
6633
6634
this._updateUI();
6635
6636
_context.next = 28;
6637
return this.pdfDocument.getDownloadInfo();
6638
6639
case 28:
6640
_yield$this$pdfDocume2 = _context.sent;
6641
length = _yield$this$pdfDocume2.length;
6642
6643
if (!(contentLength === length)) {
6644
_context.next = 32;
6645
break;
6646
}
6647
6648
return _context.abrupt("return");
6649
6650
case 32:
6651
data = Object.assign(Object.create(null), this.fieldData);
6652
_context.next = 35;
6653
return this._parseFileSize(length);
6654
6655
case 35:
6656
data.fileSize = _context.sent;
6657
freezeFieldData(data);
6658
6659
this._updateUI();
6660
6661
case 38:
6662
case "end":
6663
return _context.stop();
6664
}
6665
}
6666
}, _callee, this);
6667
}));
6668
6669
function open() {
6670
return _open.apply(this, arguments);
6671
}
6672
6673
return open;
6674
}()
6675
}, {
6676
key: "close",
6677
value: function close() {
6678
this.overlayManager.close(this.overlayName);
6679
}
6680
}, {
6681
key: "setDocument",
6682
value: function setDocument(pdfDocument) {
6683
var url = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
6684
6685
if (this.pdfDocument) {
6686
this._reset();
6687
6688
this._updateUI(true);
6689
}
6690
6691
if (!pdfDocument) {
6692
return;
6693
}
6694
6695
this.pdfDocument = pdfDocument;
6696
this.url = url;
6697
6698
this._dataAvailableCapability.resolve();
6699
}
6700
}, {
6701
key: "_reset",
6702
value: function _reset() {
6703
this.pdfDocument = null;
6704
this.url = null;
6705
delete this.fieldData;
6706
this._dataAvailableCapability = (0, _pdfjsLib.createPromiseCapability)();
6707
this._currentPageNumber = 1;
6708
this._pagesRotation = 0;
6709
}
6710
}, {
6711
key: "_updateUI",
6712
value: function _updateUI() {
6713
var reset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
6714
6715
if (reset || !this.fieldData) {
6716
for (var id in this.fields) {
6717
this.fields[id].textContent = DEFAULT_FIELD_CONTENT;
6718
}
6719
6720
return;
6721
}
6722
6723
if (this.overlayManager.active !== this.overlayName) {
6724
return;
6725
}
6726
6727
for (var _id in this.fields) {
6728
var content = this.fieldData[_id];
6729
this.fields[_id].textContent = content || content === 0 ? content : DEFAULT_FIELD_CONTENT;
6730
}
6731
}
6732
}, {
6733
key: "_parseFileSize",
6734
value: function () {
6735
var _parseFileSize2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
6736
var fileSize,
6737
kb,
6738
mb,
6739
_args2 = arguments;
6740
return _regenerator["default"].wrap(function _callee2$(_context2) {
6741
while (1) {
6742
switch (_context2.prev = _context2.next) {
6743
case 0:
6744
fileSize = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : 0;
6745
kb = fileSize / 1024, mb = kb / 1024;
6746
6747
if (kb) {
6748
_context2.next = 4;
6749
break;
6750
}
6751
6752
return _context2.abrupt("return", undefined);
6753
6754
case 4:
6755
return _context2.abrupt("return", this.l10n.get("document_properties_".concat(mb >= 1 ? "mb" : "kb"), {
6756
size_mb: mb >= 1 && (+mb.toPrecision(3)).toLocaleString(),
6757
size_kb: mb < 1 && (+kb.toPrecision(3)).toLocaleString(),
6758
size_b: fileSize.toLocaleString()
6759
}));
6760
6761
case 5:
6762
case "end":
6763
return _context2.stop();
6764
}
6765
}
6766
}, _callee2, this);
6767
}));
6768
6769
function _parseFileSize() {
6770
return _parseFileSize2.apply(this, arguments);
6771
}
6772
6773
return _parseFileSize;
6774
}()
6775
}, {
6776
key: "_parsePageSize",
6777
value: function () {
6778
var _parsePageSize2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3(pageSizeInches, pagesRotation) {
6779
var isPortrait, sizeInches, sizeMillimeters, rawName, exactMillimeters, intMillimeters, _yield$Promise$all3, _yield$Promise$all4, _yield$Promise$all4$, width, height, unit, name, orientation;
6780
6781
return _regenerator["default"].wrap(function _callee3$(_context3) {
6782
while (1) {
6783
switch (_context3.prev = _context3.next) {
6784
case 0:
6785
if (pageSizeInches) {
6786
_context3.next = 2;
6787
break;
6788
}
6789
6790
return _context3.abrupt("return", undefined);
6791
6792
case 2:
6793
if (pagesRotation % 180 !== 0) {
6794
pageSizeInches = {
6795
width: pageSizeInches.height,
6796
height: pageSizeInches.width
6797
};
6798
}
6799
6800
isPortrait = (0, _ui_utils.isPortraitOrientation)(pageSizeInches);
6801
sizeInches = {
6802
width: Math.round(pageSizeInches.width * 100) / 100,
6803
height: Math.round(pageSizeInches.height * 100) / 100
6804
};
6805
sizeMillimeters = {
6806
width: Math.round(pageSizeInches.width * 25.4 * 10) / 10,
6807
height: Math.round(pageSizeInches.height * 25.4 * 10) / 10
6808
};
6809
rawName = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES);
6810
6811
if (!rawName && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) {
6812
exactMillimeters = {
6813
width: pageSizeInches.width * 25.4,
6814
height: pageSizeInches.height * 25.4
6815
};
6816
intMillimeters = {
6817
width: Math.round(sizeMillimeters.width),
6818
height: Math.round(sizeMillimeters.height)
6819
};
6820
6821
if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) {
6822
rawName = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES);
6823
6824
if (rawName) {
6825
sizeInches = {
6826
width: Math.round(intMillimeters.width / 25.4 * 100) / 100,
6827
height: Math.round(intMillimeters.height / 25.4 * 100) / 100
6828
};
6829
sizeMillimeters = intMillimeters;
6830
}
6831
}
6832
}
6833
6834
_context3.next = 10;
6835
return Promise.all([this._isNonMetricLocale ? sizeInches : sizeMillimeters, this.l10n.get("document_properties_page_size_unit_".concat(this._isNonMetricLocale ? "inches" : "millimeters")), rawName && this.l10n.get("document_properties_page_size_name_".concat(rawName.toLowerCase())), this.l10n.get("document_properties_page_size_orientation_".concat(isPortrait ? "portrait" : "landscape"))]);
6836
6837
case 10:
6838
_yield$Promise$all3 = _context3.sent;
6839
_yield$Promise$all4 = _slicedToArray(_yield$Promise$all3, 4);
6840
_yield$Promise$all4$ = _yield$Promise$all4[0];
6841
width = _yield$Promise$all4$.width;
6842
height = _yield$Promise$all4$.height;
6843
unit = _yield$Promise$all4[1];
6844
name = _yield$Promise$all4[2];
6845
orientation = _yield$Promise$all4[3];
6846
return _context3.abrupt("return", this.l10n.get("document_properties_page_size_dimension_".concat(name ? "name_" : "", "string"), {
6847
width: width.toLocaleString(),
6848
height: height.toLocaleString(),
6849
unit: unit,
6850
name: name,
6851
orientation: orientation
6852
}));
6853
6854
case 19:
6855
case "end":
6856
return _context3.stop();
6857
}
6858
}
6859
}, _callee3, this);
6860
}));
6861
6862
function _parsePageSize(_x, _x2) {
6863
return _parsePageSize2.apply(this, arguments);
6864
}
6865
6866
return _parsePageSize;
6867
}()
6868
}, {
6869
key: "_parseDate",
6870
value: function () {
6871
var _parseDate2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4(inputDate) {
6872
var dateObject;
6873
return _regenerator["default"].wrap(function _callee4$(_context4) {
6874
while (1) {
6875
switch (_context4.prev = _context4.next) {
6876
case 0:
6877
dateObject = _pdfjsLib.PDFDateString.toDateObject(inputDate);
6878
6879
if (dateObject) {
6880
_context4.next = 3;
6881
break;
6882
}
6883
6884
return _context4.abrupt("return", undefined);
6885
6886
case 3:
6887
return _context4.abrupt("return", this.l10n.get("document_properties_date_string", {
6888
date: dateObject.toLocaleDateString(),
6889
time: dateObject.toLocaleTimeString()
6890
}));
6891
6892
case 4:
6893
case "end":
6894
return _context4.stop();
6895
}
6896
}
6897
}, _callee4, this);
6898
}));
6899
6900
function _parseDate(_x3) {
6901
return _parseDate2.apply(this, arguments);
6902
}
6903
6904
return _parseDate;
6905
}()
6906
}, {
6907
key: "_parseLinearization",
6908
value: function _parseLinearization(isLinearized) {
6909
return this.l10n.get("document_properties_linearized_".concat(isLinearized ? "yes" : "no"));
6910
}
6911
}]);
6912
6913
return PDFDocumentProperties;
6914
}();
6915
6916
exports.PDFDocumentProperties = PDFDocumentProperties;
6917
6918
/***/ }),
6919
/* 16 */
6920
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
6921
6922
6923
6924
Object.defineProperty(exports, "__esModule", ({
6925
value: true
6926
}));
6927
exports.PDFFindBar = void 0;
6928
6929
var _pdf_find_controller = __webpack_require__(17);
6930
6931
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6932
6933
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); } }
6934
6935
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
6936
6937
var MATCHES_COUNT_LIMIT = 1000;
6938
6939
var PDFFindBar = /*#__PURE__*/function () {
6940
function PDFFindBar(options, eventBus, l10n) {
6941
var _this = this;
6942
6943
_classCallCheck(this, PDFFindBar);
6944
6945
this.opened = false;
6946
this.bar = options.bar;
6947
this.toggleButton = options.toggleButton;
6948
this.findField = options.findField;
6949
this.highlightAll = options.highlightAllCheckbox;
6950
this.caseSensitive = options.caseSensitiveCheckbox;
6951
this.entireWord = options.entireWordCheckbox;
6952
this.findMsg = options.findMsg;
6953
this.findResultsCount = options.findResultsCount;
6954
this.findPreviousButton = options.findPreviousButton;
6955
this.findNextButton = options.findNextButton;
6956
this.eventBus = eventBus;
6957
this.l10n = l10n;
6958
this.toggleButton.addEventListener("click", function () {
6959
_this.toggle();
6960
});
6961
this.findField.addEventListener("input", function () {
6962
_this.dispatchEvent("");
6963
});
6964
this.bar.addEventListener("keydown", function (e) {
6965
switch (e.keyCode) {
6966
case 13:
6967
if (e.target === _this.findField) {
6968
_this.dispatchEvent("again", e.shiftKey);
6969
}
6970
6971
break;
6972
6973
case 27:
6974
_this.close();
6975
6976
break;
6977
}
6978
});
6979
this.findPreviousButton.addEventListener("click", function () {
6980
_this.dispatchEvent("again", true);
6981
});
6982
this.findNextButton.addEventListener("click", function () {
6983
_this.dispatchEvent("again", false);
6984
});
6985
this.highlightAll.addEventListener("click", function () {
6986
_this.dispatchEvent("highlightallchange");
6987
});
6988
this.caseSensitive.addEventListener("click", function () {
6989
_this.dispatchEvent("casesensitivitychange");
6990
});
6991
this.entireWord.addEventListener("click", function () {
6992
_this.dispatchEvent("entirewordchange");
6993
});
6994
6995
this.eventBus._on("resize", this._adjustWidth.bind(this));
6996
}
6997
6998
_createClass(PDFFindBar, [{
6999
key: "reset",
7000
value: function reset() {
7001
this.updateUIState();
7002
}
7003
}, {
7004
key: "dispatchEvent",
7005
value: function dispatchEvent(type, findPrev) {
7006
this.eventBus.dispatch("find", {
7007
source: this,
7008
type: type,
7009
query: this.findField.value,
7010
phraseSearch: true,
7011
caseSensitive: this.caseSensitive.checked,
7012
entireWord: this.entireWord.checked,
7013
highlightAll: this.highlightAll.checked,
7014
findPrevious: findPrev
7015
});
7016
}
7017
}, {
7018
key: "updateUIState",
7019
value: function updateUIState(state, previous, matchesCount) {
7020
var _this2 = this;
7021
7022
var findMsg = Promise.resolve("");
7023
var status = "";
7024
7025
switch (state) {
7026
case _pdf_find_controller.FindState.FOUND:
7027
break;
7028
7029
case _pdf_find_controller.FindState.PENDING:
7030
status = "pending";
7031
break;
7032
7033
case _pdf_find_controller.FindState.NOT_FOUND:
7034
findMsg = this.l10n.get("find_not_found");
7035
status = "notFound";
7036
break;
7037
7038
case _pdf_find_controller.FindState.WRAPPED:
7039
findMsg = this.l10n.get("find_reached_".concat(previous ? "top" : "bottom"));
7040
break;
7041
}
7042
7043
this.findField.setAttribute("data-status", status);
7044
findMsg.then(function (msg) {
7045
_this2.findMsg.textContent = msg;
7046
7047
_this2._adjustWidth();
7048
});
7049
this.updateResultsCount(matchesCount);
7050
}
7051
}, {
7052
key: "updateResultsCount",
7053
value: function updateResultsCount() {
7054
var _this3 = this;
7055
7056
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
7057
_ref$current = _ref.current,
7058
current = _ref$current === void 0 ? 0 : _ref$current,
7059
_ref$total = _ref.total,
7060
total = _ref$total === void 0 ? 0 : _ref$total;
7061
7062
var limit = MATCHES_COUNT_LIMIT;
7063
var matchCountMsg = Promise.resolve("");
7064
7065
if (total > 0) {
7066
if (total > limit) {
7067
var key = "find_match_count_limit";
7068
matchCountMsg = this.l10n.get(key, {
7069
limit: limit
7070
});
7071
} else {
7072
var _key = "find_match_count";
7073
matchCountMsg = this.l10n.get(_key, {
7074
current: current,
7075
total: total
7076
});
7077
}
7078
}
7079
7080
matchCountMsg.then(function (msg) {
7081
_this3.findResultsCount.textContent = msg;
7082
7083
_this3.findResultsCount.classList.toggle("hidden", !total);
7084
7085
_this3._adjustWidth();
7086
});
7087
}
7088
}, {
7089
key: "open",
7090
value: function open() {
7091
if (!this.opened) {
7092
this.opened = true;
7093
this.toggleButton.classList.add("toggled");
7094
this.toggleButton.setAttribute("aria-expanded", "true");
7095
this.bar.classList.remove("hidden");
7096
}
7097
7098
this.findField.select();
7099
this.findField.focus();
7100
7101
this._adjustWidth();
7102
}
7103
}, {
7104
key: "close",
7105
value: function close() {
7106
if (!this.opened) {
7107
return;
7108
}
7109
7110
this.opened = false;
7111
this.toggleButton.classList.remove("toggled");
7112
this.toggleButton.setAttribute("aria-expanded", "false");
7113
this.bar.classList.add("hidden");
7114
this.eventBus.dispatch("findbarclose", {
7115
source: this
7116
});
7117
}
7118
}, {
7119
key: "toggle",
7120
value: function toggle() {
7121
if (this.opened) {
7122
this.close();
7123
} else {
7124
this.open();
7125
}
7126
}
7127
}, {
7128
key: "_adjustWidth",
7129
value: function _adjustWidth() {
7130
if (!this.opened) {
7131
return;
7132
}
7133
7134
this.bar.classList.remove("wrapContainers");
7135
var findbarHeight = this.bar.clientHeight;
7136
var inputContainerHeight = this.bar.firstElementChild.clientHeight;
7137
7138
if (findbarHeight > inputContainerHeight) {
7139
this.bar.classList.add("wrapContainers");
7140
}
7141
}
7142
}]);
7143
7144
return PDFFindBar;
7145
}();
7146
7147
exports.PDFFindBar = PDFFindBar;
7148
7149
/***/ }),
7150
/* 17 */
7151
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
7152
7153
7154
7155
Object.defineProperty(exports, "__esModule", ({
7156
value: true
7157
}));
7158
exports.PDFFindController = exports.FindState = void 0;
7159
7160
var _pdfjsLib = __webpack_require__(7);
7161
7162
var _pdf_find_utils = __webpack_require__(18);
7163
7164
var _ui_utils = __webpack_require__(6);
7165
7166
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7167
7168
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); } }
7169
7170
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
7171
7172
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
7173
7174
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
7175
7176
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
7177
7178
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7179
7180
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
7181
7182
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
7183
7184
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
7185
7186
var FindState = {
7187
FOUND: 0,
7188
NOT_FOUND: 1,
7189
WRAPPED: 2,
7190
PENDING: 3
7191
};
7192
exports.FindState = FindState;
7193
var FIND_TIMEOUT = 250;
7194
var MATCH_SCROLL_OFFSET_TOP = -50;
7195
var MATCH_SCROLL_OFFSET_LEFT = -400;
7196
var CHARACTERS_TO_NORMALIZE = {
7197
"\u2018": "'",
7198
"\u2019": "'",
7199
"\u201A": "'",
7200
"\u201B": "'",
7201
"\u201C": '"',
7202
"\u201D": '"',
7203
"\u201E": '"',
7204
"\u201F": '"',
7205
"\xBC": "1/4",
7206
"\xBD": "1/2",
7207
"\xBE": "3/4"
7208
};
7209
var normalizationRegex = null;
7210
7211
function normalize(text) {
7212
if (!normalizationRegex) {
7213
var replace = Object.keys(CHARACTERS_TO_NORMALIZE).join("");
7214
normalizationRegex = new RegExp("[".concat(replace, "]"), "g");
7215
}
7216
7217
var diffs = null;
7218
var normalizedText = text.replace(normalizationRegex, function (ch, index) {
7219
var normalizedCh = CHARACTERS_TO_NORMALIZE[ch],
7220
diff = normalizedCh.length - ch.length;
7221
7222
if (diff !== 0) {
7223
(diffs || (diffs = [])).push([index, diff]);
7224
}
7225
7226
return normalizedCh;
7227
});
7228
return [normalizedText, diffs];
7229
}
7230
7231
function getOriginalIndex(matchIndex) {
7232
var diffs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
7233
7234
if (!diffs) {
7235
return matchIndex;
7236
}
7237
7238
var totalDiff = 0;
7239
7240
var _iterator = _createForOfIteratorHelper(diffs),
7241
_step;
7242
7243
try {
7244
for (_iterator.s(); !(_step = _iterator.n()).done;) {
7245
var _step$value = _slicedToArray(_step.value, 2),
7246
index = _step$value[0],
7247
diff = _step$value[1];
7248
7249
var currentIndex = index + totalDiff;
7250
7251
if (currentIndex >= matchIndex) {
7252
break;
7253
}
7254
7255
if (currentIndex + diff > matchIndex) {
7256
totalDiff += matchIndex - currentIndex;
7257
break;
7258
}
7259
7260
totalDiff += diff;
7261
}
7262
} catch (err) {
7263
_iterator.e(err);
7264
} finally {
7265
_iterator.f();
7266
}
7267
7268
return matchIndex - totalDiff;
7269
}
7270
7271
var PDFFindController = /*#__PURE__*/function () {
7272
function PDFFindController(_ref) {
7273
var linkService = _ref.linkService,
7274
eventBus = _ref.eventBus;
7275
7276
_classCallCheck(this, PDFFindController);
7277
7278
this._linkService = linkService;
7279
this._eventBus = eventBus;
7280
7281
this._reset();
7282
7283
eventBus._on("findbarclose", this._onFindBarClose.bind(this));
7284
}
7285
7286
_createClass(PDFFindController, [{
7287
key: "highlightMatches",
7288
get: function get() {
7289
return this._highlightMatches;
7290
}
7291
}, {
7292
key: "pageMatches",
7293
get: function get() {
7294
return this._pageMatches;
7295
}
7296
}, {
7297
key: "pageMatchesLength",
7298
get: function get() {
7299
return this._pageMatchesLength;
7300
}
7301
}, {
7302
key: "selected",
7303
get: function get() {
7304
return this._selected;
7305
}
7306
}, {
7307
key: "state",
7308
get: function get() {
7309
return this._state;
7310
}
7311
}, {
7312
key: "setDocument",
7313
value: function setDocument(pdfDocument) {
7314
if (this._pdfDocument) {
7315
this._reset();
7316
}
7317
7318
if (!pdfDocument) {
7319
return;
7320
}
7321
7322
this._pdfDocument = pdfDocument;
7323
7324
this._firstPageCapability.resolve();
7325
}
7326
}, {
7327
key: "executeCommand",
7328
value: function executeCommand(cmd, state) {
7329
var _this = this;
7330
7331
if (!state) {
7332
return;
7333
}
7334
7335
var pdfDocument = this._pdfDocument;
7336
7337
if (this._state === null || this._shouldDirtyMatch(cmd, state)) {
7338
this._dirtyMatch = true;
7339
}
7340
7341
this._state = state;
7342
7343
if (cmd !== "findhighlightallchange") {
7344
this._updateUIState(FindState.PENDING);
7345
}
7346
7347
this._firstPageCapability.promise.then(function () {
7348
if (!_this._pdfDocument || pdfDocument && _this._pdfDocument !== pdfDocument) {
7349
return;
7350
}
7351
7352
_this._extractText();
7353
7354
var findbarClosed = !_this._highlightMatches;
7355
var pendingTimeout = !!_this._findTimeout;
7356
7357
if (_this._findTimeout) {
7358
clearTimeout(_this._findTimeout);
7359
_this._findTimeout = null;
7360
}
7361
7362
if (cmd === "find") {
7363
_this._findTimeout = setTimeout(function () {
7364
_this._nextMatch();
7365
7366
_this._findTimeout = null;
7367
}, FIND_TIMEOUT);
7368
} else if (_this._dirtyMatch) {
7369
_this._nextMatch();
7370
} else if (cmd === "findagain") {
7371
_this._nextMatch();
7372
7373
if (findbarClosed && _this._state.highlightAll) {
7374
_this._updateAllPages();
7375
}
7376
} else if (cmd === "findhighlightallchange") {
7377
if (pendingTimeout) {
7378
_this._nextMatch();
7379
} else {
7380
_this._highlightMatches = true;
7381
}
7382
7383
_this._updateAllPages();
7384
} else {
7385
_this._nextMatch();
7386
}
7387
});
7388
}
7389
}, {
7390
key: "scrollMatchIntoView",
7391
value: function scrollMatchIntoView(_ref2) {
7392
var _ref2$element = _ref2.element,
7393
element = _ref2$element === void 0 ? null : _ref2$element,
7394
_ref2$pageIndex = _ref2.pageIndex,
7395
pageIndex = _ref2$pageIndex === void 0 ? -1 : _ref2$pageIndex,
7396
_ref2$matchIndex = _ref2.matchIndex,
7397
matchIndex = _ref2$matchIndex === void 0 ? -1 : _ref2$matchIndex;
7398
7399
if (!this._scrollMatches || !element) {
7400
return;
7401
} else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) {
7402
return;
7403
} else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) {
7404
return;
7405
}
7406
7407
this._scrollMatches = false;
7408
var spot = {
7409
top: MATCH_SCROLL_OFFSET_TOP,
7410
left: MATCH_SCROLL_OFFSET_LEFT
7411
};
7412
(0, _ui_utils.scrollIntoView)(element, spot, true);
7413
}
7414
}, {
7415
key: "_reset",
7416
value: function _reset() {
7417
this._highlightMatches = false;
7418
this._scrollMatches = false;
7419
this._pdfDocument = null;
7420
this._pageMatches = [];
7421
this._pageMatchesLength = [];
7422
this._state = null;
7423
this._selected = {
7424
pageIdx: -1,
7425
matchIdx: -1
7426
};
7427
this._offset = {
7428
pageIdx: null,
7429
matchIdx: null,
7430
wrapped: false
7431
};
7432
this._extractTextPromises = [];
7433
this._pageContents = [];
7434
this._pageDiffs = [];
7435
this._matchesCountTotal = 0;
7436
this._pagesToSearch = null;
7437
this._pendingFindMatches = Object.create(null);
7438
this._resumePageIdx = null;
7439
this._dirtyMatch = false;
7440
clearTimeout(this._findTimeout);
7441
this._findTimeout = null;
7442
this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)();
7443
}
7444
}, {
7445
key: "_query",
7446
get: function get() {
7447
if (this._state.query !== this._rawQuery) {
7448
this._rawQuery = this._state.query;
7449
7450
var _normalize = normalize(this._state.query);
7451
7452
var _normalize2 = _slicedToArray(_normalize, 1);
7453
7454
this._normalizedQuery = _normalize2[0];
7455
}
7456
7457
return this._normalizedQuery;
7458
}
7459
}, {
7460
key: "_shouldDirtyMatch",
7461
value: function _shouldDirtyMatch(cmd, state) {
7462
if (state.query !== this._state.query) {
7463
return true;
7464
}
7465
7466
switch (cmd) {
7467
case "findagain":
7468
var pageNumber = this._selected.pageIdx + 1;
7469
var linkService = this._linkService;
7470
7471
if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) {
7472
return true;
7473
}
7474
7475
return false;
7476
7477
case "findhighlightallchange":
7478
return false;
7479
}
7480
7481
return true;
7482
}
7483
}, {
7484
key: "_prepareMatches",
7485
value: function _prepareMatches(matchesWithLength, matches, matchesLength) {
7486
function isSubTerm(currentIndex) {
7487
var currentElem = matchesWithLength[currentIndex];
7488
var nextElem = matchesWithLength[currentIndex + 1];
7489
7490
if (currentIndex < matchesWithLength.length - 1 && currentElem.match === nextElem.match) {
7491
currentElem.skipped = true;
7492
return true;
7493
}
7494
7495
for (var i = currentIndex - 1; i >= 0; i--) {
7496
var prevElem = matchesWithLength[i];
7497
7498
if (prevElem.skipped) {
7499
continue;
7500
}
7501
7502
if (prevElem.match + prevElem.matchLength < currentElem.match) {
7503
break;
7504
}
7505
7506
if (prevElem.match + prevElem.matchLength >= currentElem.match + currentElem.matchLength) {
7507
currentElem.skipped = true;
7508
return true;
7509
}
7510
}
7511
7512
return false;
7513
}
7514
7515
matchesWithLength.sort(function (a, b) {
7516
return a.match === b.match ? a.matchLength - b.matchLength : a.match - b.match;
7517
});
7518
7519
for (var i = 0, len = matchesWithLength.length; i < len; i++) {
7520
if (isSubTerm(i)) {
7521
continue;
7522
}
7523
7524
matches.push(matchesWithLength[i].match);
7525
matchesLength.push(matchesWithLength[i].matchLength);
7526
}
7527
}
7528
}, {
7529
key: "_isEntireWord",
7530
value: function _isEntireWord(content, startIdx, length) {
7531
if (startIdx > 0) {
7532
var first = content.charCodeAt(startIdx);
7533
var limit = content.charCodeAt(startIdx - 1);
7534
7535
if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) {
7536
return false;
7537
}
7538
}
7539
7540
var endIdx = startIdx + length - 1;
7541
7542
if (endIdx < content.length - 1) {
7543
var last = content.charCodeAt(endIdx);
7544
7545
var _limit = content.charCodeAt(endIdx + 1);
7546
7547
if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(_limit)) {
7548
return false;
7549
}
7550
}
7551
7552
return true;
7553
}
7554
}, {
7555
key: "_calculatePhraseMatch",
7556
value: function _calculatePhraseMatch(query, pageIndex, pageContent, pageDiffs, entireWord) {
7557
var matches = [],
7558
matchesLength = [];
7559
var queryLen = query.length;
7560
var matchIdx = -queryLen;
7561
7562
while (true) {
7563
matchIdx = pageContent.indexOf(query, matchIdx + queryLen);
7564
7565
if (matchIdx === -1) {
7566
break;
7567
}
7568
7569
if (entireWord && !this._isEntireWord(pageContent, matchIdx, queryLen)) {
7570
continue;
7571
}
7572
7573
var originalMatchIdx = getOriginalIndex(matchIdx, pageDiffs),
7574
matchEnd = matchIdx + queryLen - 1,
7575
originalQueryLen = getOriginalIndex(matchEnd, pageDiffs) - originalMatchIdx + 1;
7576
matches.push(originalMatchIdx);
7577
matchesLength.push(originalQueryLen);
7578
}
7579
7580
this._pageMatches[pageIndex] = matches;
7581
this._pageMatchesLength[pageIndex] = matchesLength;
7582
}
7583
}, {
7584
key: "_calculateWordMatch",
7585
value: function _calculateWordMatch(query, pageIndex, pageContent, pageDiffs, entireWord) {
7586
var matchesWithLength = [];
7587
var queryArray = query.match(/\S+/g);
7588
7589
for (var i = 0, len = queryArray.length; i < len; i++) {
7590
var subquery = queryArray[i];
7591
var subqueryLen = subquery.length;
7592
var matchIdx = -subqueryLen;
7593
7594
while (true) {
7595
matchIdx = pageContent.indexOf(subquery, matchIdx + subqueryLen);
7596
7597
if (matchIdx === -1) {
7598
break;
7599
}
7600
7601
if (entireWord && !this._isEntireWord(pageContent, matchIdx, subqueryLen)) {
7602
continue;
7603
}
7604
7605
var originalMatchIdx = getOriginalIndex(matchIdx, pageDiffs),
7606
matchEnd = matchIdx + subqueryLen - 1,
7607
originalQueryLen = getOriginalIndex(matchEnd, pageDiffs) - originalMatchIdx + 1;
7608
matchesWithLength.push({
7609
match: originalMatchIdx,
7610
matchLength: originalQueryLen,
7611
skipped: false
7612
});
7613
}
7614
}
7615
7616
this._pageMatchesLength[pageIndex] = [];
7617
this._pageMatches[pageIndex] = [];
7618
7619
this._prepareMatches(matchesWithLength, this._pageMatches[pageIndex], this._pageMatchesLength[pageIndex]);
7620
}
7621
}, {
7622
key: "_calculateMatch",
7623
value: function _calculateMatch(pageIndex) {
7624
var pageContent = this._pageContents[pageIndex];
7625
var pageDiffs = this._pageDiffs[pageIndex];
7626
var query = this._query;
7627
var _this$_state = this._state,
7628
caseSensitive = _this$_state.caseSensitive,
7629
entireWord = _this$_state.entireWord,
7630
phraseSearch = _this$_state.phraseSearch;
7631
7632
if (query.length === 0) {
7633
return;
7634
}
7635
7636
if (!caseSensitive) {
7637
pageContent = pageContent.toLowerCase();
7638
query = query.toLowerCase();
7639
}
7640
7641
if (phraseSearch) {
7642
this._calculatePhraseMatch(query, pageIndex, pageContent, pageDiffs, entireWord);
7643
} else {
7644
this._calculateWordMatch(query, pageIndex, pageContent, pageDiffs, entireWord);
7645
}
7646
7647
if (this._state.highlightAll) {
7648
this._updatePage(pageIndex);
7649
}
7650
7651
if (this._resumePageIdx === pageIndex) {
7652
this._resumePageIdx = null;
7653
7654
this._nextPageMatch();
7655
}
7656
7657
var pageMatchesCount = this._pageMatches[pageIndex].length;
7658
7659
if (pageMatchesCount > 0) {
7660
this._matchesCountTotal += pageMatchesCount;
7661
7662
this._updateUIResultsCount();
7663
}
7664
}
7665
}, {
7666
key: "_extractText",
7667
value: function _extractText() {
7668
var _this2 = this;
7669
7670
if (this._extractTextPromises.length > 0) {
7671
return;
7672
}
7673
7674
var promise = Promise.resolve();
7675
7676
var _loop = function _loop(i, ii) {
7677
var extractTextCapability = (0, _pdfjsLib.createPromiseCapability)();
7678
_this2._extractTextPromises[i] = extractTextCapability.promise;
7679
promise = promise.then(function () {
7680
return _this2._pdfDocument.getPage(i + 1).then(function (pdfPage) {
7681
return pdfPage.getTextContent({
7682
normalizeWhitespace: true
7683
});
7684
}).then(function (textContent) {
7685
var textItems = textContent.items;
7686
var strBuf = [];
7687
7688
for (var j = 0, jj = textItems.length; j < jj; j++) {
7689
strBuf.push(textItems[j].str);
7690
}
7691
7692
var _normalize3 = normalize(strBuf.join(""));
7693
7694
var _normalize4 = _slicedToArray(_normalize3, 2);
7695
7696
_this2._pageContents[i] = _normalize4[0];
7697
_this2._pageDiffs[i] = _normalize4[1];
7698
extractTextCapability.resolve(i);
7699
}, function (reason) {
7700
console.error("Unable to get text content for page ".concat(i + 1), reason);
7701
_this2._pageContents[i] = "";
7702
_this2._pageDiffs[i] = null;
7703
extractTextCapability.resolve(i);
7704
});
7705
});
7706
};
7707
7708
for (var i = 0, ii = this._linkService.pagesCount; i < ii; i++) {
7709
_loop(i, ii);
7710
}
7711
}
7712
}, {
7713
key: "_updatePage",
7714
value: function _updatePage(index) {
7715
if (this._scrollMatches && this._selected.pageIdx === index) {
7716
this._linkService.page = index + 1;
7717
}
7718
7719
this._eventBus.dispatch("updatetextlayermatches", {
7720
source: this,
7721
pageIndex: index
7722
});
7723
}
7724
}, {
7725
key: "_updateAllPages",
7726
value: function _updateAllPages() {
7727
this._eventBus.dispatch("updatetextlayermatches", {
7728
source: this,
7729
pageIndex: -1
7730
});
7731
}
7732
}, {
7733
key: "_nextMatch",
7734
value: function _nextMatch() {
7735
var _this3 = this;
7736
7737
var previous = this._state.findPrevious;
7738
var currentPageIndex = this._linkService.page - 1;
7739
var numPages = this._linkService.pagesCount;
7740
this._highlightMatches = true;
7741
7742
if (this._dirtyMatch) {
7743
this._dirtyMatch = false;
7744
this._selected.pageIdx = this._selected.matchIdx = -1;
7745
this._offset.pageIdx = currentPageIndex;
7746
this._offset.matchIdx = null;
7747
this._offset.wrapped = false;
7748
this._resumePageIdx = null;
7749
this._pageMatches.length = 0;
7750
this._pageMatchesLength.length = 0;
7751
this._matchesCountTotal = 0;
7752
7753
this._updateAllPages();
7754
7755
for (var i = 0; i < numPages; i++) {
7756
if (this._pendingFindMatches[i] === true) {
7757
continue;
7758
}
7759
7760
this._pendingFindMatches[i] = true;
7761
7762
this._extractTextPromises[i].then(function (pageIdx) {
7763
delete _this3._pendingFindMatches[pageIdx];
7764
7765
_this3._calculateMatch(pageIdx);
7766
});
7767
}
7768
}
7769
7770
if (this._query === "") {
7771
this._updateUIState(FindState.FOUND);
7772
7773
return;
7774
}
7775
7776
if (this._resumePageIdx) {
7777
return;
7778
}
7779
7780
var offset = this._offset;
7781
this._pagesToSearch = numPages;
7782
7783
if (offset.matchIdx !== null) {
7784
var numPageMatches = this._pageMatches[offset.pageIdx].length;
7785
7786
if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) {
7787
offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1;
7788
7789
this._updateMatch(true);
7790
7791
return;
7792
}
7793
7794
this._advanceOffsetPage(previous);
7795
}
7796
7797
this._nextPageMatch();
7798
}
7799
}, {
7800
key: "_matchesReady",
7801
value: function _matchesReady(matches) {
7802
var offset = this._offset;
7803
var numMatches = matches.length;
7804
var previous = this._state.findPrevious;
7805
7806
if (numMatches) {
7807
offset.matchIdx = previous ? numMatches - 1 : 0;
7808
7809
this._updateMatch(true);
7810
7811
return true;
7812
}
7813
7814
this._advanceOffsetPage(previous);
7815
7816
if (offset.wrapped) {
7817
offset.matchIdx = null;
7818
7819
if (this._pagesToSearch < 0) {
7820
this._updateMatch(false);
7821
7822
return true;
7823
}
7824
}
7825
7826
return false;
7827
}
7828
}, {
7829
key: "_nextPageMatch",
7830
value: function _nextPageMatch() {
7831
if (this._resumePageIdx !== null) {
7832
console.error("There can only be one pending page.");
7833
}
7834
7835
var matches = null;
7836
7837
do {
7838
var pageIdx = this._offset.pageIdx;
7839
matches = this._pageMatches[pageIdx];
7840
7841
if (!matches) {
7842
this._resumePageIdx = pageIdx;
7843
break;
7844
}
7845
} while (!this._matchesReady(matches));
7846
}
7847
}, {
7848
key: "_advanceOffsetPage",
7849
value: function _advanceOffsetPage(previous) {
7850
var offset = this._offset;
7851
var numPages = this._linkService.pagesCount;
7852
offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1;
7853
offset.matchIdx = null;
7854
this._pagesToSearch--;
7855
7856
if (offset.pageIdx >= numPages || offset.pageIdx < 0) {
7857
offset.pageIdx = previous ? numPages - 1 : 0;
7858
offset.wrapped = true;
7859
}
7860
}
7861
}, {
7862
key: "_updateMatch",
7863
value: function _updateMatch() {
7864
var found = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
7865
var state = FindState.NOT_FOUND;
7866
var wrapped = this._offset.wrapped;
7867
this._offset.wrapped = false;
7868
7869
if (found) {
7870
var previousPage = this._selected.pageIdx;
7871
this._selected.pageIdx = this._offset.pageIdx;
7872
this._selected.matchIdx = this._offset.matchIdx;
7873
state = wrapped ? FindState.WRAPPED : FindState.FOUND;
7874
7875
if (previousPage !== -1 && previousPage !== this._selected.pageIdx) {
7876
this._updatePage(previousPage);
7877
}
7878
}
7879
7880
this._updateUIState(state, this._state.findPrevious);
7881
7882
if (this._selected.pageIdx !== -1) {
7883
this._scrollMatches = true;
7884
7885
this._updatePage(this._selected.pageIdx);
7886
}
7887
}
7888
}, {
7889
key: "_onFindBarClose",
7890
value: function _onFindBarClose(evt) {
7891
var _this4 = this;
7892
7893
var pdfDocument = this._pdfDocument;
7894
7895
this._firstPageCapability.promise.then(function () {
7896
if (!_this4._pdfDocument || pdfDocument && _this4._pdfDocument !== pdfDocument) {
7897
return;
7898
}
7899
7900
if (_this4._findTimeout) {
7901
clearTimeout(_this4._findTimeout);
7902
_this4._findTimeout = null;
7903
}
7904
7905
if (_this4._resumePageIdx) {
7906
_this4._resumePageIdx = null;
7907
_this4._dirtyMatch = true;
7908
}
7909
7910
_this4._updateUIState(FindState.FOUND);
7911
7912
_this4._highlightMatches = false;
7913
7914
_this4._updateAllPages();
7915
});
7916
}
7917
}, {
7918
key: "_requestMatchesCount",
7919
value: function _requestMatchesCount() {
7920
var _this$_selected = this._selected,
7921
pageIdx = _this$_selected.pageIdx,
7922
matchIdx = _this$_selected.matchIdx;
7923
var current = 0,
7924
total = this._matchesCountTotal;
7925
7926
if (matchIdx !== -1) {
7927
for (var i = 0; i < pageIdx; i++) {
7928
var _this$_pageMatches$i;
7929
7930
current += ((_this$_pageMatches$i = this._pageMatches[i]) === null || _this$_pageMatches$i === void 0 ? void 0 : _this$_pageMatches$i.length) || 0;
7931
}
7932
7933
current += matchIdx + 1;
7934
}
7935
7936
if (current < 1 || current > total) {
7937
current = total = 0;
7938
}
7939
7940
return {
7941
current: current,
7942
total: total
7943
};
7944
}
7945
}, {
7946
key: "_updateUIResultsCount",
7947
value: function _updateUIResultsCount() {
7948
this._eventBus.dispatch("updatefindmatchescount", {
7949
source: this,
7950
matchesCount: this._requestMatchesCount()
7951
});
7952
}
7953
}, {
7954
key: "_updateUIState",
7955
value: function _updateUIState(state, previous) {
7956
var _this$_state$query, _this$_state2;
7957
7958
this._eventBus.dispatch("updatefindcontrolstate", {
7959
source: this,
7960
state: state,
7961
previous: previous,
7962
matchesCount: this._requestMatchesCount(),
7963
rawQuery: (_this$_state$query = (_this$_state2 = this._state) === null || _this$_state2 === void 0 ? void 0 : _this$_state2.query) !== null && _this$_state$query !== void 0 ? _this$_state$query : null
7964
});
7965
}
7966
}]);
7967
7968
return PDFFindController;
7969
}();
7970
7971
exports.PDFFindController = PDFFindController;
7972
7973
/***/ }),
7974
/* 18 */
7975
/***/ ((__unused_webpack_module, exports) => {
7976
7977
7978
7979
Object.defineProperty(exports, "__esModule", ({
7980
value: true
7981
}));
7982
exports.getCharacterType = getCharacterType;
7983
exports.CharacterType = void 0;
7984
var CharacterType = {
7985
SPACE: 0,
7986
ALPHA_LETTER: 1,
7987
PUNCT: 2,
7988
HAN_LETTER: 3,
7989
KATAKANA_LETTER: 4,
7990
HIRAGANA_LETTER: 5,
7991
HALFWIDTH_KATAKANA_LETTER: 6,
7992
THAI_LETTER: 7
7993
};
7994
exports.CharacterType = CharacterType;
7995
7996
function isAlphabeticalScript(charCode) {
7997
return charCode < 0x2e80;
7998
}
7999
8000
function isAscii(charCode) {
8001
return (charCode & 0xff80) === 0;
8002
}
8003
8004
function isAsciiAlpha(charCode) {
8005
return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a;
8006
}
8007
8008
function isAsciiDigit(charCode) {
8009
return charCode >= 0x30 && charCode <= 0x39;
8010
}
8011
8012
function isAsciiSpace(charCode) {
8013
return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a;
8014
}
8015
8016
function isHan(charCode) {
8017
return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff;
8018
}
8019
8020
function isKatakana(charCode) {
8021
return charCode >= 0x30a0 && charCode <= 0x30ff;
8022
}
8023
8024
function isHiragana(charCode) {
8025
return charCode >= 0x3040 && charCode <= 0x309f;
8026
}
8027
8028
function isHalfwidthKatakana(charCode) {
8029
return charCode >= 0xff60 && charCode <= 0xff9f;
8030
}
8031
8032
function isThai(charCode) {
8033
return (charCode & 0xff80) === 0x0e00;
8034
}
8035
8036
function getCharacterType(charCode) {
8037
if (isAlphabeticalScript(charCode)) {
8038
if (isAscii(charCode)) {
8039
if (isAsciiSpace(charCode)) {
8040
return CharacterType.SPACE;
8041
} else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) {
8042
return CharacterType.ALPHA_LETTER;
8043
}
8044
8045
return CharacterType.PUNCT;
8046
} else if (isThai(charCode)) {
8047
return CharacterType.THAI_LETTER;
8048
} else if (charCode === 0xa0) {
8049
return CharacterType.SPACE;
8050
}
8051
8052
return CharacterType.ALPHA_LETTER;
8053
}
8054
8055
if (isHan(charCode)) {
8056
return CharacterType.HAN_LETTER;
8057
} else if (isKatakana(charCode)) {
8058
return CharacterType.KATAKANA_LETTER;
8059
} else if (isHiragana(charCode)) {
8060
return CharacterType.HIRAGANA_LETTER;
8061
} else if (isHalfwidthKatakana(charCode)) {
8062
return CharacterType.HALFWIDTH_KATAKANA_LETTER;
8063
}
8064
8065
return CharacterType.ALPHA_LETTER;
8066
}
8067
8068
/***/ }),
8069
/* 19 */
8070
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8071
8072
8073
8074
Object.defineProperty(exports, "__esModule", ({
8075
value: true
8076
}));
8077
exports.isDestArraysEqual = isDestArraysEqual;
8078
exports.isDestHashesEqual = isDestHashesEqual;
8079
exports.PDFHistory = void 0;
8080
8081
var _ui_utils = __webpack_require__(6);
8082
8083
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
8084
8085
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8086
8087
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8088
8089
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8090
8091
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
8092
8093
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
8094
8095
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
8096
8097
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8098
8099
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); } }
8100
8101
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
8102
8103
var HASH_CHANGE_TIMEOUT = 1000;
8104
var POSITION_UPDATED_THRESHOLD = 50;
8105
var UPDATE_VIEWAREA_TIMEOUT = 1000;
8106
8107
function getCurrentHash() {
8108
return document.location.hash;
8109
}
8110
8111
var PDFHistory = /*#__PURE__*/function () {
8112
function PDFHistory(_ref) {
8113
var _this = this;
8114
8115
var linkService = _ref.linkService,
8116
eventBus = _ref.eventBus;
8117
8118
_classCallCheck(this, PDFHistory);
8119
8120
this.linkService = linkService;
8121
this.eventBus = eventBus;
8122
this._initialized = false;
8123
this._fingerprint = "";
8124
this.reset();
8125
this._boundEvents = null;
8126
this._isViewerInPresentationMode = false;
8127
8128
this.eventBus._on("presentationmodechanged", function (evt) {
8129
_this._isViewerInPresentationMode = evt.state !== _ui_utils.PresentationModeState.NORMAL;
8130
});
8131
8132
this.eventBus._on("pagesinit", function () {
8133
_this._isPagesLoaded = false;
8134
8135
_this.eventBus._on("pagesloaded", function (evt) {
8136
_this._isPagesLoaded = !!evt.pagesCount;
8137
}, {
8138
once: true
8139
});
8140
});
8141
}
8142
8143
_createClass(PDFHistory, [{
8144
key: "initialize",
8145
value: function initialize(_ref2) {
8146
var fingerprint = _ref2.fingerprint,
8147
_ref2$resetHistory = _ref2.resetHistory,
8148
resetHistory = _ref2$resetHistory === void 0 ? false : _ref2$resetHistory,
8149
_ref2$updateUrl = _ref2.updateUrl,
8150
updateUrl = _ref2$updateUrl === void 0 ? false : _ref2$updateUrl;
8151
8152
if (!fingerprint || typeof fingerprint !== "string") {
8153
console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.');
8154
return;
8155
}
8156
8157
if (this._initialized) {
8158
this.reset();
8159
}
8160
8161
var reInitialized = this._fingerprint !== "" && this._fingerprint !== fingerprint;
8162
this._fingerprint = fingerprint;
8163
this._updateUrl = updateUrl === true;
8164
this._initialized = true;
8165
8166
this._bindEvents();
8167
8168
var state = window.history.state;
8169
this._popStateInProgress = false;
8170
this._blockHashChange = 0;
8171
this._currentHash = getCurrentHash();
8172
this._numPositionUpdates = 0;
8173
this._uid = this._maxUid = 0;
8174
this._destination = null;
8175
this._position = null;
8176
8177
if (!this._isValidState(state, true) || resetHistory) {
8178
var _this$_parseCurrentHa = this._parseCurrentHash(true),
8179
hash = _this$_parseCurrentHa.hash,
8180
page = _this$_parseCurrentHa.page,
8181
rotation = _this$_parseCurrentHa.rotation;
8182
8183
if (!hash || reInitialized || resetHistory) {
8184
this._pushOrReplaceState(null, true);
8185
8186
return;
8187
}
8188
8189
this._pushOrReplaceState({
8190
hash: hash,
8191
page: page,
8192
rotation: rotation
8193
}, true);
8194
8195
return;
8196
}
8197
8198
var destination = state.destination;
8199
8200
this._updateInternalState(destination, state.uid, true);
8201
8202
if (destination.rotation !== undefined) {
8203
this._initialRotation = destination.rotation;
8204
}
8205
8206
if (destination.dest) {
8207
this._initialBookmark = JSON.stringify(destination.dest);
8208
this._destination.page = null;
8209
} else if (destination.hash) {
8210
this._initialBookmark = destination.hash;
8211
} else if (destination.page) {
8212
this._initialBookmark = "page=".concat(destination.page);
8213
}
8214
}
8215
}, {
8216
key: "reset",
8217
value: function reset() {
8218
if (this._initialized) {
8219
this._pageHide();
8220
8221
this._initialized = false;
8222
8223
this._unbindEvents();
8224
}
8225
8226
if (this._updateViewareaTimeout) {
8227
clearTimeout(this._updateViewareaTimeout);
8228
this._updateViewareaTimeout = null;
8229
}
8230
8231
this._initialBookmark = null;
8232
this._initialRotation = null;
8233
}
8234
}, {
8235
key: "push",
8236
value: function push(_ref3) {
8237
var _this2 = this;
8238
8239
var _ref3$namedDest = _ref3.namedDest,
8240
namedDest = _ref3$namedDest === void 0 ? null : _ref3$namedDest,
8241
explicitDest = _ref3.explicitDest,
8242
pageNumber = _ref3.pageNumber;
8243
8244
if (!this._initialized) {
8245
return;
8246
}
8247
8248
if (namedDest && typeof namedDest !== "string") {
8249
console.error("PDFHistory.push: " + "\"".concat(namedDest, "\" is not a valid namedDest parameter."));
8250
return;
8251
} else if (!Array.isArray(explicitDest)) {
8252
console.error("PDFHistory.push: " + "\"".concat(explicitDest, "\" is not a valid explicitDest parameter."));
8253
return;
8254
} else if (!this._isValidPage(pageNumber)) {
8255
if (pageNumber !== null || this._destination) {
8256
console.error("PDFHistory.push: " + "\"".concat(pageNumber, "\" is not a valid pageNumber parameter."));
8257
return;
8258
}
8259
}
8260
8261
var hash = namedDest || JSON.stringify(explicitDest);
8262
8263
if (!hash) {
8264
return;
8265
}
8266
8267
var forceReplace = false;
8268
8269
if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) {
8270
if (this._destination.page) {
8271
return;
8272
}
8273
8274
forceReplace = true;
8275
}
8276
8277
if (this._popStateInProgress && !forceReplace) {
8278
return;
8279
}
8280
8281
this._pushOrReplaceState({
8282
dest: explicitDest,
8283
hash: hash,
8284
page: pageNumber,
8285
rotation: this.linkService.rotation
8286
}, forceReplace);
8287
8288
if (!this._popStateInProgress) {
8289
this._popStateInProgress = true;
8290
Promise.resolve().then(function () {
8291
_this2._popStateInProgress = false;
8292
});
8293
}
8294
}
8295
}, {
8296
key: "pushPage",
8297
value: function pushPage(pageNumber) {
8298
var _this$_destination,
8299
_this3 = this;
8300
8301
if (!this._initialized) {
8302
return;
8303
}
8304
8305
if (!this._isValidPage(pageNumber)) {
8306
console.error("PDFHistory.pushPage: \"".concat(pageNumber, "\" is not a valid page number."));
8307
return;
8308
}
8309
8310
if (((_this$_destination = this._destination) === null || _this$_destination === void 0 ? void 0 : _this$_destination.page) === pageNumber) {
8311
return;
8312
}
8313
8314
if (this._popStateInProgress) {
8315
return;
8316
}
8317
8318
this._pushOrReplaceState({
8319
dest: null,
8320
hash: "page=".concat(pageNumber),
8321
page: pageNumber,
8322
rotation: this.linkService.rotation
8323
});
8324
8325
if (!this._popStateInProgress) {
8326
this._popStateInProgress = true;
8327
Promise.resolve().then(function () {
8328
_this3._popStateInProgress = false;
8329
});
8330
}
8331
}
8332
}, {
8333
key: "pushCurrentPosition",
8334
value: function pushCurrentPosition() {
8335
if (!this._initialized || this._popStateInProgress) {
8336
return;
8337
}
8338
8339
this._tryPushCurrentPosition();
8340
}
8341
}, {
8342
key: "back",
8343
value: function back() {
8344
if (!this._initialized || this._popStateInProgress) {
8345
return;
8346
}
8347
8348
var state = window.history.state;
8349
8350
if (this._isValidState(state) && state.uid > 0) {
8351
window.history.back();
8352
}
8353
}
8354
}, {
8355
key: "forward",
8356
value: function forward() {
8357
if (!this._initialized || this._popStateInProgress) {
8358
return;
8359
}
8360
8361
var state = window.history.state;
8362
8363
if (this._isValidState(state) && state.uid < this._maxUid) {
8364
window.history.forward();
8365
}
8366
}
8367
}, {
8368
key: "popStateInProgress",
8369
get: function get() {
8370
return this._initialized && (this._popStateInProgress || this._blockHashChange > 0);
8371
}
8372
}, {
8373
key: "initialBookmark",
8374
get: function get() {
8375
return this._initialized ? this._initialBookmark : null;
8376
}
8377
}, {
8378
key: "initialRotation",
8379
get: function get() {
8380
return this._initialized ? this._initialRotation : null;
8381
}
8382
}, {
8383
key: "_pushOrReplaceState",
8384
value: function _pushOrReplaceState(destination) {
8385
var forceReplace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
8386
var shouldReplace = forceReplace || !this._destination;
8387
var newState = {
8388
fingerprint: this._fingerprint,
8389
uid: shouldReplace ? this._uid : this._uid + 1,
8390
destination: destination
8391
};
8392
8393
this._updateInternalState(destination, newState.uid);
8394
8395
var newUrl;
8396
8397
if (this._updateUrl && destination !== null && destination !== void 0 && destination.hash) {
8398
var baseUrl = document.location.href.split("#")[0];
8399
8400
if (!baseUrl.startsWith("file://")) {
8401
newUrl = "".concat(baseUrl, "#").concat(destination.hash);
8402
}
8403
}
8404
8405
if (shouldReplace) {
8406
window.history.replaceState(newState, "", newUrl);
8407
} else {
8408
window.history.pushState(newState, "", newUrl);
8409
}
8410
}
8411
}, {
8412
key: "_tryPushCurrentPosition",
8413
value: function _tryPushCurrentPosition() {
8414
var temporary = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
8415
8416
if (!this._position) {
8417
return;
8418
}
8419
8420
var position = this._position;
8421
8422
if (temporary) {
8423
position = Object.assign(Object.create(null), this._position);
8424
position.temporary = true;
8425
}
8426
8427
if (!this._destination) {
8428
this._pushOrReplaceState(position);
8429
8430
return;
8431
}
8432
8433
if (this._destination.temporary) {
8434
this._pushOrReplaceState(position, true);
8435
8436
return;
8437
}
8438
8439
if (this._destination.hash === position.hash) {
8440
return;
8441
}
8442
8443
if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) {
8444
return;
8445
}
8446
8447
var forceReplace = false;
8448
8449
if (this._destination.page >= position.first && this._destination.page <= position.page) {
8450
if (this._destination.dest !== undefined || !this._destination.first) {
8451
return;
8452
}
8453
8454
forceReplace = true;
8455
}
8456
8457
this._pushOrReplaceState(position, forceReplace);
8458
}
8459
}, {
8460
key: "_isValidPage",
8461
value: function _isValidPage(val) {
8462
return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount;
8463
}
8464
}, {
8465
key: "_isValidState",
8466
value: function _isValidState(state) {
8467
var checkReload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
8468
8469
if (!state) {
8470
return false;
8471
}
8472
8473
if (state.fingerprint !== this._fingerprint) {
8474
if (checkReload) {
8475
if (typeof state.fingerprint !== "string" || state.fingerprint.length !== this._fingerprint.length) {
8476
return false;
8477
}
8478
8479
var _performance$getEntri = performance.getEntriesByType("navigation"),
8480
_performance$getEntri2 = _slicedToArray(_performance$getEntri, 1),
8481
perfEntry = _performance$getEntri2[0];
8482
8483
if ((perfEntry === null || perfEntry === void 0 ? void 0 : perfEntry.type) !== "reload") {
8484
return false;
8485
}
8486
} else {
8487
return false;
8488
}
8489
}
8490
8491
if (!Number.isInteger(state.uid) || state.uid < 0) {
8492
return false;
8493
}
8494
8495
if (state.destination === null || _typeof(state.destination) !== "object") {
8496
return false;
8497
}
8498
8499
return true;
8500
}
8501
}, {
8502
key: "_updateInternalState",
8503
value: function _updateInternalState(destination, uid) {
8504
var removeTemporary = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
8505
8506
if (this._updateViewareaTimeout) {
8507
clearTimeout(this._updateViewareaTimeout);
8508
this._updateViewareaTimeout = null;
8509
}
8510
8511
if (removeTemporary && destination !== null && destination !== void 0 && destination.temporary) {
8512
delete destination.temporary;
8513
}
8514
8515
this._destination = destination;
8516
this._uid = uid;
8517
this._maxUid = Math.max(this._maxUid, uid);
8518
this._numPositionUpdates = 0;
8519
}
8520
}, {
8521
key: "_parseCurrentHash",
8522
value: function _parseCurrentHash() {
8523
var checkNameddest = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
8524
var hash = unescape(getCurrentHash()).substring(1);
8525
var params = (0, _ui_utils.parseQueryString)(hash);
8526
var nameddest = params.nameddest || "";
8527
var page = params.page | 0;
8528
8529
if (!this._isValidPage(page) || checkNameddest && nameddest.length > 0) {
8530
page = null;
8531
}
8532
8533
return {
8534
hash: hash,
8535
page: page,
8536
rotation: this.linkService.rotation
8537
};
8538
}
8539
}, {
8540
key: "_updateViewarea",
8541
value: function _updateViewarea(_ref4) {
8542
var _this4 = this;
8543
8544
var location = _ref4.location;
8545
8546
if (this._updateViewareaTimeout) {
8547
clearTimeout(this._updateViewareaTimeout);
8548
this._updateViewareaTimeout = null;
8549
}
8550
8551
this._position = {
8552
hash: this._isViewerInPresentationMode ? "page=".concat(location.pageNumber) : location.pdfOpenParams.substring(1),
8553
page: this.linkService.page,
8554
first: location.pageNumber,
8555
rotation: location.rotation
8556
};
8557
8558
if (this._popStateInProgress) {
8559
return;
8560
}
8561
8562
if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) {
8563
this._numPositionUpdates++;
8564
}
8565
8566
if (UPDATE_VIEWAREA_TIMEOUT > 0) {
8567
this._updateViewareaTimeout = setTimeout(function () {
8568
if (!_this4._popStateInProgress) {
8569
_this4._tryPushCurrentPosition(true);
8570
}
8571
8572
_this4._updateViewareaTimeout = null;
8573
}, UPDATE_VIEWAREA_TIMEOUT);
8574
}
8575
}
8576
}, {
8577
key: "_popState",
8578
value: function _popState(_ref5) {
8579
var _this5 = this;
8580
8581
var state = _ref5.state;
8582
var newHash = getCurrentHash(),
8583
hashChanged = this._currentHash !== newHash;
8584
this._currentHash = newHash;
8585
8586
if (!state) {
8587
this._uid++;
8588
8589
var _this$_parseCurrentHa2 = this._parseCurrentHash(),
8590
hash = _this$_parseCurrentHa2.hash,
8591
page = _this$_parseCurrentHa2.page,
8592
rotation = _this$_parseCurrentHa2.rotation;
8593
8594
this._pushOrReplaceState({
8595
hash: hash,
8596
page: page,
8597
rotation: rotation
8598
}, true);
8599
8600
return;
8601
}
8602
8603
if (!this._isValidState(state)) {
8604
return;
8605
}
8606
8607
this._popStateInProgress = true;
8608
8609
if (hashChanged) {
8610
this._blockHashChange++;
8611
(0, _ui_utils.waitOnEventOrTimeout)({
8612
target: window,
8613
name: "hashchange",
8614
delay: HASH_CHANGE_TIMEOUT
8615
}).then(function () {
8616
_this5._blockHashChange--;
8617
});
8618
}
8619
8620
var destination = state.destination;
8621
8622
this._updateInternalState(destination, state.uid, true);
8623
8624
if ((0, _ui_utils.isValidRotation)(destination.rotation)) {
8625
this.linkService.rotation = destination.rotation;
8626
}
8627
8628
if (destination.dest) {
8629
this.linkService.goToDestination(destination.dest);
8630
} else if (destination.hash) {
8631
this.linkService.setHash(destination.hash);
8632
} else if (destination.page) {
8633
this.linkService.page = destination.page;
8634
}
8635
8636
Promise.resolve().then(function () {
8637
_this5._popStateInProgress = false;
8638
});
8639
}
8640
}, {
8641
key: "_pageHide",
8642
value: function _pageHide() {
8643
if (!this._destination || this._destination.temporary) {
8644
this._tryPushCurrentPosition();
8645
}
8646
}
8647
}, {
8648
key: "_bindEvents",
8649
value: function _bindEvents() {
8650
if (this._boundEvents) {
8651
return;
8652
}
8653
8654
this._boundEvents = {
8655
updateViewarea: this._updateViewarea.bind(this),
8656
popState: this._popState.bind(this),
8657
pageHide: this._pageHide.bind(this)
8658
};
8659
8660
this.eventBus._on("updateviewarea", this._boundEvents.updateViewarea);
8661
8662
window.addEventListener("popstate", this._boundEvents.popState);
8663
window.addEventListener("pagehide", this._boundEvents.pageHide);
8664
}
8665
}, {
8666
key: "_unbindEvents",
8667
value: function _unbindEvents() {
8668
if (!this._boundEvents) {
8669
return;
8670
}
8671
8672
this.eventBus._off("updateviewarea", this._boundEvents.updateViewarea);
8673
8674
window.removeEventListener("popstate", this._boundEvents.popState);
8675
window.removeEventListener("pagehide", this._boundEvents.pageHide);
8676
this._boundEvents = null;
8677
}
8678
}]);
8679
8680
return PDFHistory;
8681
}();
8682
8683
exports.PDFHistory = PDFHistory;
8684
8685
function isDestHashesEqual(destHash, pushHash) {
8686
if (typeof destHash !== "string" || typeof pushHash !== "string") {
8687
return false;
8688
}
8689
8690
if (destHash === pushHash) {
8691
return true;
8692
}
8693
8694
var _parseQueryString = (0, _ui_utils.parseQueryString)(destHash),
8695
nameddest = _parseQueryString.nameddest;
8696
8697
if (nameddest === pushHash) {
8698
return true;
8699
}
8700
8701
return false;
8702
}
8703
8704
function isDestArraysEqual(firstDest, secondDest) {
8705
function isEntryEqual(first, second) {
8706
if (_typeof(first) !== _typeof(second)) {
8707
return false;
8708
}
8709
8710
if (Array.isArray(first) || Array.isArray(second)) {
8711
return false;
8712
}
8713
8714
if (first !== null && _typeof(first) === "object" && second !== null) {
8715
if (Object.keys(first).length !== Object.keys(second).length) {
8716
return false;
8717
}
8718
8719
for (var key in first) {
8720
if (!isEntryEqual(first[key], second[key])) {
8721
return false;
8722
}
8723
}
8724
8725
return true;
8726
}
8727
8728
return first === second || Number.isNaN(first) && Number.isNaN(second);
8729
}
8730
8731
if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) {
8732
return false;
8733
}
8734
8735
if (firstDest.length !== secondDest.length) {
8736
return false;
8737
}
8738
8739
for (var i = 0, ii = firstDest.length; i < ii; i++) {
8740
if (!isEntryEqual(firstDest[i], secondDest[i])) {
8741
return false;
8742
}
8743
}
8744
8745
return true;
8746
}
8747
8748
/***/ }),
8749
/* 20 */
8750
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
8751
8752
8753
8754
Object.defineProperty(exports, "__esModule", ({
8755
value: true
8756
}));
8757
exports.PDFLayerViewer = void 0;
8758
8759
var _regenerator = _interopRequireDefault(__webpack_require__(4));
8760
8761
var _base_tree_viewer = __webpack_require__(14);
8762
8763
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8764
8765
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
8766
8767
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
8768
8769
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8770
8771
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
8772
8773
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
8774
8775
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
8776
8777
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8778
8779
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); } }
8780
8781
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
8782
8783
function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
8784
8785
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
8786
8787
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
8788
8789
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
8790
8791
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
8792
8793
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
8794
8795
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
8796
8797
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
8798
8799
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
8800
8801
var PDFLayerViewer = /*#__PURE__*/function (_BaseTreeViewer) {
8802
_inherits(PDFLayerViewer, _BaseTreeViewer);
8803
8804
var _super = _createSuper(PDFLayerViewer);
8805
8806
function PDFLayerViewer(options) {
8807
var _this;
8808
8809
_classCallCheck(this, PDFLayerViewer);
8810
8811
_this = _super.call(this, options);
8812
_this.l10n = options.l10n;
8813
8814
_this.eventBus._on("resetlayers", _this._resetLayers.bind(_assertThisInitialized(_this)));
8815
8816
_this.eventBus._on("togglelayerstree", _this._toggleAllTreeItems.bind(_assertThisInitialized(_this)));
8817
8818
return _this;
8819
}
8820
8821
_createClass(PDFLayerViewer, [{
8822
key: "reset",
8823
value: function reset() {
8824
_get(_getPrototypeOf(PDFLayerViewer.prototype), "reset", this).call(this);
8825
8826
this._optionalContentConfig = null;
8827
}
8828
}, {
8829
key: "_dispatchEvent",
8830
value: function _dispatchEvent(layersCount) {
8831
this.eventBus.dispatch("layersloaded", {
8832
source: this,
8833
layersCount: layersCount
8834
});
8835
}
8836
}, {
8837
key: "_bindLink",
8838
value: function _bindLink(element, _ref) {
8839
var _this2 = this;
8840
8841
var groupId = _ref.groupId,
8842
input = _ref.input;
8843
8844
var setVisibility = function setVisibility() {
8845
_this2._optionalContentConfig.setVisibility(groupId, input.checked);
8846
8847
_this2.eventBus.dispatch("optionalcontentconfig", {
8848
source: _this2,
8849
promise: Promise.resolve(_this2._optionalContentConfig)
8850
});
8851
};
8852
8853
element.onclick = function (evt) {
8854
if (evt.target === input) {
8855
setVisibility();
8856
return true;
8857
} else if (evt.target !== element) {
8858
return true;
8859
}
8860
8861
input.checked = !input.checked;
8862
setVisibility();
8863
return false;
8864
};
8865
}
8866
}, {
8867
key: "_setNestedName",
8868
value: function () {
8869
var _setNestedName2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(element, _ref2) {
8870
var _ref2$name, name;
8871
8872
return _regenerator["default"].wrap(function _callee$(_context) {
8873
while (1) {
8874
switch (_context.prev = _context.next) {
8875
case 0:
8876
_ref2$name = _ref2.name, name = _ref2$name === void 0 ? null : _ref2$name;
8877
8878
if (!(typeof name === "string")) {
8879
_context.next = 4;
8880
break;
8881
}
8882
8883
element.textContent = this._normalizeTextContent(name);
8884
return _context.abrupt("return");
8885
8886
case 4:
8887
_context.next = 6;
8888
return this.l10n.get("additional_layers");
8889
8890
case 6:
8891
element.textContent = _context.sent;
8892
element.style.fontStyle = "italic";
8893
8894
case 8:
8895
case "end":
8896
return _context.stop();
8897
}
8898
}
8899
}, _callee, this);
8900
}));
8901
8902
function _setNestedName(_x, _x2) {
8903
return _setNestedName2.apply(this, arguments);
8904
}
8905
8906
return _setNestedName;
8907
}()
8908
}, {
8909
key: "_addToggleButton",
8910
value: function _addToggleButton(div, _ref3) {
8911
var _ref3$name = _ref3.name,
8912
name = _ref3$name === void 0 ? null : _ref3$name;
8913
8914
_get(_getPrototypeOf(PDFLayerViewer.prototype), "_addToggleButton", this).call(this, div, name === null);
8915
}
8916
}, {
8917
key: "_toggleAllTreeItems",
8918
value: function _toggleAllTreeItems() {
8919
if (!this._optionalContentConfig) {
8920
return;
8921
}
8922
8923
_get(_getPrototypeOf(PDFLayerViewer.prototype), "_toggleAllTreeItems", this).call(this);
8924
}
8925
}, {
8926
key: "render",
8927
value: function render(_ref4) {
8928
var optionalContentConfig = _ref4.optionalContentConfig,
8929
pdfDocument = _ref4.pdfDocument;
8930
8931
if (this._optionalContentConfig) {
8932
this.reset();
8933
}
8934
8935
this._optionalContentConfig = optionalContentConfig || null;
8936
this._pdfDocument = pdfDocument || null;
8937
var groups = optionalContentConfig === null || optionalContentConfig === void 0 ? void 0 : optionalContentConfig.getOrder();
8938
8939
if (!groups) {
8940
this._dispatchEvent(0);
8941
8942
return;
8943
}
8944
8945
var fragment = document.createDocumentFragment(),
8946
queue = [{
8947
parent: fragment,
8948
groups: groups
8949
}];
8950
var layersCount = 0,
8951
hasAnyNesting = false;
8952
8953
while (queue.length > 0) {
8954
var levelData = queue.shift();
8955
8956
var _iterator = _createForOfIteratorHelper(levelData.groups),
8957
_step;
8958
8959
try {
8960
for (_iterator.s(); !(_step = _iterator.n()).done;) {
8961
var groupId = _step.value;
8962
var div = document.createElement("div");
8963
div.className = "treeItem";
8964
var element = document.createElement("a");
8965
div.appendChild(element);
8966
8967
if (_typeof(groupId) === "object") {
8968
hasAnyNesting = true;
8969
8970
this._addToggleButton(div, groupId);
8971
8972
this._setNestedName(element, groupId);
8973
8974
var itemsDiv = document.createElement("div");
8975
itemsDiv.className = "treeItems";
8976
div.appendChild(itemsDiv);
8977
queue.push({
8978
parent: itemsDiv,
8979
groups: groupId.order
8980
});
8981
} else {
8982
var group = optionalContentConfig.getGroup(groupId);
8983
var input = document.createElement("input");
8984
8985
this._bindLink(element, {
8986
groupId: groupId,
8987
input: input
8988
});
8989
8990
input.type = "checkbox";
8991
input.id = groupId;
8992
input.checked = group.visible;
8993
var label = document.createElement("label");
8994
label.setAttribute("for", groupId);
8995
label.textContent = this._normalizeTextContent(group.name);
8996
element.appendChild(input);
8997
element.appendChild(label);
8998
layersCount++;
8999
}
9000
9001
levelData.parent.appendChild(div);
9002
}
9003
} catch (err) {
9004
_iterator.e(err);
9005
} finally {
9006
_iterator.f();
9007
}
9008
}
9009
9010
this._finishRendering(fragment, layersCount, hasAnyNesting);
9011
}
9012
}, {
9013
key: "_resetLayers",
9014
value: function () {
9015
var _resetLayers2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
9016
var optionalContentConfig;
9017
return _regenerator["default"].wrap(function _callee2$(_context2) {
9018
while (1) {
9019
switch (_context2.prev = _context2.next) {
9020
case 0:
9021
if (this._optionalContentConfig) {
9022
_context2.next = 2;
9023
break;
9024
}
9025
9026
return _context2.abrupt("return");
9027
9028
case 2:
9029
_context2.next = 4;
9030
return this._pdfDocument.getOptionalContentConfig();
9031
9032
case 4:
9033
optionalContentConfig = _context2.sent;
9034
this.eventBus.dispatch("optionalcontentconfig", {
9035
source: this,
9036
promise: Promise.resolve(optionalContentConfig)
9037
});
9038
this.render({
9039
optionalContentConfig: optionalContentConfig,
9040
pdfDocument: this._pdfDocument
9041
});
9042
9043
case 7:
9044
case "end":
9045
return _context2.stop();
9046
}
9047
}
9048
}, _callee2, this);
9049
}));
9050
9051
function _resetLayers() {
9052
return _resetLayers2.apply(this, arguments);
9053
}
9054
9055
return _resetLayers;
9056
}()
9057
}]);
9058
9059
return PDFLayerViewer;
9060
}(_base_tree_viewer.BaseTreeViewer);
9061
9062
exports.PDFLayerViewer = PDFLayerViewer;
9063
9064
/***/ }),
9065
/* 21 */
9066
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9067
9068
9069
9070
Object.defineProperty(exports, "__esModule", ({
9071
value: true
9072
}));
9073
exports.SimpleLinkService = exports.PDFLinkService = void 0;
9074
9075
var _regenerator = _interopRequireDefault(__webpack_require__(4));
9076
9077
var _ui_utils = __webpack_require__(6);
9078
9079
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9080
9081
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
9082
9083
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
9084
9085
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
9086
9087
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9088
9089
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); } }
9090
9091
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
9092
9093
var PDFLinkService = /*#__PURE__*/function () {
9094
function PDFLinkService() {
9095
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
9096
eventBus = _ref.eventBus,
9097
_ref$externalLinkTarg = _ref.externalLinkTarget,
9098
externalLinkTarget = _ref$externalLinkTarg === void 0 ? null : _ref$externalLinkTarg,
9099
_ref$externalLinkRel = _ref.externalLinkRel,
9100
externalLinkRel = _ref$externalLinkRel === void 0 ? null : _ref$externalLinkRel,
9101
_ref$externalLinkEnab = _ref.externalLinkEnabled,
9102
externalLinkEnabled = _ref$externalLinkEnab === void 0 ? true : _ref$externalLinkEnab,
9103
_ref$ignoreDestinatio = _ref.ignoreDestinationZoom,
9104
ignoreDestinationZoom = _ref$ignoreDestinatio === void 0 ? false : _ref$ignoreDestinatio;
9105
9106
_classCallCheck(this, PDFLinkService);
9107
9108
this.eventBus = eventBus;
9109
this.externalLinkTarget = externalLinkTarget;
9110
this.externalLinkRel = externalLinkRel;
9111
this.externalLinkEnabled = externalLinkEnabled;
9112
this._ignoreDestinationZoom = ignoreDestinationZoom;
9113
this.baseUrl = null;
9114
this.pdfDocument = null;
9115
this.pdfViewer = null;
9116
this.pdfHistory = null;
9117
this._pagesRefCache = null;
9118
}
9119
9120
_createClass(PDFLinkService, [{
9121
key: "setDocument",
9122
value: function setDocument(pdfDocument) {
9123
var baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
9124
this.baseUrl = baseUrl;
9125
this.pdfDocument = pdfDocument;
9126
this._pagesRefCache = Object.create(null);
9127
}
9128
}, {
9129
key: "setViewer",
9130
value: function setViewer(pdfViewer) {
9131
this.pdfViewer = pdfViewer;
9132
}
9133
}, {
9134
key: "setHistory",
9135
value: function setHistory(pdfHistory) {
9136
this.pdfHistory = pdfHistory;
9137
}
9138
}, {
9139
key: "pagesCount",
9140
get: function get() {
9141
return this.pdfDocument ? this.pdfDocument.numPages : 0;
9142
}
9143
}, {
9144
key: "page",
9145
get: function get() {
9146
return this.pdfViewer.currentPageNumber;
9147
},
9148
set: function set(value) {
9149
this.pdfViewer.currentPageNumber = value;
9150
}
9151
}, {
9152
key: "rotation",
9153
get: function get() {
9154
return this.pdfViewer.pagesRotation;
9155
},
9156
set: function set(value) {
9157
this.pdfViewer.pagesRotation = value;
9158
}
9159
}, {
9160
key: "navigateTo",
9161
value: function navigateTo(dest) {
9162
console.error("Deprecated method: `navigateTo`, use `goToDestination` instead.");
9163
this.goToDestination(dest);
9164
}
9165
}, {
9166
key: "_goToDestinationHelper",
9167
value: function _goToDestinationHelper(rawDest) {
9168
var _this = this;
9169
9170
var namedDest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
9171
var explicitDest = arguments.length > 2 ? arguments[2] : undefined;
9172
var destRef = explicitDest[0];
9173
var pageNumber;
9174
9175
if (destRef instanceof Object) {
9176
pageNumber = this._cachedPageNumber(destRef);
9177
9178
if (pageNumber === null) {
9179
this.pdfDocument.getPageIndex(destRef).then(function (pageIndex) {
9180
_this.cachePageRef(pageIndex + 1, destRef);
9181
9182
_this._goToDestinationHelper(rawDest, namedDest, explicitDest);
9183
})["catch"](function () {
9184
console.error("PDFLinkService._goToDestinationHelper: \"".concat(destRef, "\" is not ") + "a valid page reference, for dest=\"".concat(rawDest, "\"."));
9185
});
9186
return;
9187
}
9188
} else if (Number.isInteger(destRef)) {
9189
pageNumber = destRef + 1;
9190
} else {
9191
console.error("PDFLinkService._goToDestinationHelper: \"".concat(destRef, "\" is not ") + "a valid destination reference, for dest=\"".concat(rawDest, "\"."));
9192
return;
9193
}
9194
9195
if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) {
9196
console.error("PDFLinkService._goToDestinationHelper: \"".concat(pageNumber, "\" is not ") + "a valid page number, for dest=\"".concat(rawDest, "\"."));
9197
return;
9198
}
9199
9200
if (this.pdfHistory) {
9201
this.pdfHistory.pushCurrentPosition();
9202
this.pdfHistory.push({
9203
namedDest: namedDest,
9204
explicitDest: explicitDest,
9205
pageNumber: pageNumber
9206
});
9207
}
9208
9209
this.pdfViewer.scrollPageIntoView({
9210
pageNumber: pageNumber,
9211
destArray: explicitDest,
9212
ignoreDestinationZoom: this._ignoreDestinationZoom
9213
});
9214
}
9215
}, {
9216
key: "goToDestination",
9217
value: function () {
9218
var _goToDestination = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(dest) {
9219
var namedDest, explicitDest;
9220
return _regenerator["default"].wrap(function _callee$(_context) {
9221
while (1) {
9222
switch (_context.prev = _context.next) {
9223
case 0:
9224
if (this.pdfDocument) {
9225
_context.next = 2;
9226
break;
9227
}
9228
9229
return _context.abrupt("return");
9230
9231
case 2:
9232
if (!(typeof dest === "string")) {
9233
_context.next = 9;
9234
break;
9235
}
9236
9237
namedDest = dest;
9238
_context.next = 6;
9239
return this.pdfDocument.getDestination(dest);
9240
9241
case 6:
9242
explicitDest = _context.sent;
9243
_context.next = 13;
9244
break;
9245
9246
case 9:
9247
namedDest = null;
9248
_context.next = 12;
9249
return dest;
9250
9251
case 12:
9252
explicitDest = _context.sent;
9253
9254
case 13:
9255
if (Array.isArray(explicitDest)) {
9256
_context.next = 16;
9257
break;
9258
}
9259
9260
console.error("PDFLinkService.goToDestination: \"".concat(explicitDest, "\" is not ") + "a valid destination array, for dest=\"".concat(dest, "\"."));
9261
return _context.abrupt("return");
9262
9263
case 16:
9264
this._goToDestinationHelper(dest, namedDest, explicitDest);
9265
9266
case 17:
9267
case "end":
9268
return _context.stop();
9269
}
9270
}
9271
}, _callee, this);
9272
}));
9273
9274
function goToDestination(_x) {
9275
return _goToDestination.apply(this, arguments);
9276
}
9277
9278
return goToDestination;
9279
}()
9280
}, {
9281
key: "goToPage",
9282
value: function goToPage(val) {
9283
if (!this.pdfDocument) {
9284
return;
9285
}
9286
9287
var pageNumber = typeof val === "string" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0;
9288
9289
if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) {
9290
console.error("PDFLinkService.goToPage: \"".concat(val, "\" is not a valid page."));
9291
return;
9292
}
9293
9294
if (this.pdfHistory) {
9295
this.pdfHistory.pushCurrentPosition();
9296
this.pdfHistory.pushPage(pageNumber);
9297
}
9298
9299
this.pdfViewer.scrollPageIntoView({
9300
pageNumber: pageNumber
9301
});
9302
}
9303
}, {
9304
key: "getDestinationHash",
9305
value: function getDestinationHash(dest) {
9306
if (typeof dest === "string") {
9307
if (dest.length > 0) {
9308
return this.getAnchorUrl("#" + escape(dest));
9309
}
9310
} else if (Array.isArray(dest)) {
9311
var str = JSON.stringify(dest);
9312
9313
if (str.length > 0) {
9314
return this.getAnchorUrl("#" + escape(str));
9315
}
9316
}
9317
9318
return this.getAnchorUrl("");
9319
}
9320
}, {
9321
key: "getAnchorUrl",
9322
value: function getAnchorUrl(anchor) {
9323
return (this.baseUrl || "") + anchor;
9324
}
9325
}, {
9326
key: "setHash",
9327
value: function setHash(hash) {
9328
if (!this.pdfDocument) {
9329
return;
9330
}
9331
9332
var pageNumber, dest;
9333
9334
if (hash.includes("=")) {
9335
var params = (0, _ui_utils.parseQueryString)(hash);
9336
9337
if ("search" in params) {
9338
this.eventBus.dispatch("findfromurlhash", {
9339
source: this,
9340
query: params.search.replace(/"/g, ""),
9341
phraseSearch: params.phrase === "true"
9342
});
9343
}
9344
9345
if ("page" in params) {
9346
pageNumber = params.page | 0 || 1;
9347
}
9348
9349
if ("zoom" in params) {
9350
var zoomArgs = params.zoom.split(",");
9351
var zoomArg = zoomArgs[0];
9352
var zoomArgNumber = parseFloat(zoomArg);
9353
9354
if (!zoomArg.includes("Fit")) {
9355
dest = [null, {
9356
name: "XYZ"
9357
}, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg];
9358
} else {
9359
if (zoomArg === "Fit" || zoomArg === "FitB") {
9360
dest = [null, {
9361
name: zoomArg
9362
}];
9363
} else if (zoomArg === "FitH" || zoomArg === "FitBH" || zoomArg === "FitV" || zoomArg === "FitBV") {
9364
dest = [null, {
9365
name: zoomArg
9366
}, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null];
9367
} else if (zoomArg === "FitR") {
9368
if (zoomArgs.length !== 5) {
9369
console.error('PDFLinkService.setHash: Not enough parameters for "FitR".');
9370
} else {
9371
dest = [null, {
9372
name: zoomArg
9373
}, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0];
9374
}
9375
} else {
9376
console.error("PDFLinkService.setHash: \"".concat(zoomArg, "\" is not ") + "a valid zoom value.");
9377
}
9378
}
9379
}
9380
9381
if (dest) {
9382
this.pdfViewer.scrollPageIntoView({
9383
pageNumber: pageNumber || this.page,
9384
destArray: dest,
9385
allowNegativeOffset: true
9386
});
9387
} else if (pageNumber) {
9388
this.page = pageNumber;
9389
}
9390
9391
if ("pagemode" in params) {
9392
this.eventBus.dispatch("pagemode", {
9393
source: this,
9394
mode: params.pagemode
9395
});
9396
}
9397
9398
if ("nameddest" in params) {
9399
this.goToDestination(params.nameddest);
9400
}
9401
} else {
9402
dest = unescape(hash);
9403
9404
try {
9405
dest = JSON.parse(dest);
9406
9407
if (!Array.isArray(dest)) {
9408
dest = dest.toString();
9409
}
9410
} catch (ex) {}
9411
9412
if (typeof dest === "string" || isValidExplicitDestination(dest)) {
9413
this.goToDestination(dest);
9414
return;
9415
}
9416
9417
console.error("PDFLinkService.setHash: \"".concat(unescape(hash), "\" is not ") + "a valid destination.");
9418
}
9419
}
9420
}, {
9421
key: "executeNamedAction",
9422
value: function executeNamedAction(action) {
9423
switch (action) {
9424
case "GoBack":
9425
if (this.pdfHistory) {
9426
this.pdfHistory.back();
9427
}
9428
9429
break;
9430
9431
case "GoForward":
9432
if (this.pdfHistory) {
9433
this.pdfHistory.forward();
9434
}
9435
9436
break;
9437
9438
case "NextPage":
9439
this.pdfViewer.nextPage();
9440
break;
9441
9442
case "PrevPage":
9443
this.pdfViewer.previousPage();
9444
break;
9445
9446
case "LastPage":
9447
this.page = this.pagesCount;
9448
break;
9449
9450
case "FirstPage":
9451
this.page = 1;
9452
break;
9453
9454
default:
9455
break;
9456
}
9457
9458
this.eventBus.dispatch("namedaction", {
9459
source: this,
9460
action: action
9461
});
9462
}
9463
}, {
9464
key: "cachePageRef",
9465
value: function cachePageRef(pageNum, pageRef) {
9466
if (!pageRef) {
9467
return;
9468
}
9469
9470
var refStr = pageRef.gen === 0 ? "".concat(pageRef.num, "R") : "".concat(pageRef.num, "R").concat(pageRef.gen);
9471
this._pagesRefCache[refStr] = pageNum;
9472
}
9473
}, {
9474
key: "_cachedPageNumber",
9475
value: function _cachedPageNumber(pageRef) {
9476
var _this$_pagesRefCache;
9477
9478
var refStr = pageRef.gen === 0 ? "".concat(pageRef.num, "R") : "".concat(pageRef.num, "R").concat(pageRef.gen);
9479
return ((_this$_pagesRefCache = this._pagesRefCache) === null || _this$_pagesRefCache === void 0 ? void 0 : _this$_pagesRefCache[refStr]) || null;
9480
}
9481
}, {
9482
key: "isPageVisible",
9483
value: function isPageVisible(pageNumber) {
9484
return this.pdfViewer.isPageVisible(pageNumber);
9485
}
9486
}, {
9487
key: "isPageCached",
9488
value: function isPageCached(pageNumber) {
9489
return this.pdfViewer.isPageCached(pageNumber);
9490
}
9491
}]);
9492
9493
return PDFLinkService;
9494
}();
9495
9496
exports.PDFLinkService = PDFLinkService;
9497
9498
function isValidExplicitDestination(dest) {
9499
if (!Array.isArray(dest)) {
9500
return false;
9501
}
9502
9503
var destLength = dest.length;
9504
9505
if (destLength < 2) {
9506
return false;
9507
}
9508
9509
var page = dest[0];
9510
9511
if (!(_typeof(page) === "object" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) {
9512
return false;
9513
}
9514
9515
var zoom = dest[1];
9516
9517
if (!(_typeof(zoom) === "object" && typeof zoom.name === "string")) {
9518
return false;
9519
}
9520
9521
var allowNull = true;
9522
9523
switch (zoom.name) {
9524
case "XYZ":
9525
if (destLength !== 5) {
9526
return false;
9527
}
9528
9529
break;
9530
9531
case "Fit":
9532
case "FitB":
9533
return destLength === 2;
9534
9535
case "FitH":
9536
case "FitBH":
9537
case "FitV":
9538
case "FitBV":
9539
if (destLength !== 3) {
9540
return false;
9541
}
9542
9543
break;
9544
9545
case "FitR":
9546
if (destLength !== 6) {
9547
return false;
9548
}
9549
9550
allowNull = false;
9551
break;
9552
9553
default:
9554
return false;
9555
}
9556
9557
for (var i = 2; i < destLength; i++) {
9558
var param = dest[i];
9559
9560
if (!(typeof param === "number" || allowNull && param === null)) {
9561
return false;
9562
}
9563
}
9564
9565
return true;
9566
}
9567
9568
var SimpleLinkService = /*#__PURE__*/function () {
9569
function SimpleLinkService() {
9570
_classCallCheck(this, SimpleLinkService);
9571
9572
this.externalLinkTarget = null;
9573
this.externalLinkRel = null;
9574
this.externalLinkEnabled = true;
9575
this._ignoreDestinationZoom = false;
9576
}
9577
9578
_createClass(SimpleLinkService, [{
9579
key: "pagesCount",
9580
get: function get() {
9581
return 0;
9582
}
9583
}, {
9584
key: "page",
9585
get: function get() {
9586
return 0;
9587
},
9588
set: function set(value) {}
9589
}, {
9590
key: "rotation",
9591
get: function get() {
9592
return 0;
9593
},
9594
set: function set(value) {}
9595
}, {
9596
key: "goToDestination",
9597
value: function () {
9598
var _goToDestination2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(dest) {
9599
return _regenerator["default"].wrap(function _callee2$(_context2) {
9600
while (1) {
9601
switch (_context2.prev = _context2.next) {
9602
case 0:
9603
case "end":
9604
return _context2.stop();
9605
}
9606
}
9607
}, _callee2);
9608
}));
9609
9610
function goToDestination(_x2) {
9611
return _goToDestination2.apply(this, arguments);
9612
}
9613
9614
return goToDestination;
9615
}()
9616
}, {
9617
key: "goToPage",
9618
value: function goToPage(val) {}
9619
}, {
9620
key: "getDestinationHash",
9621
value: function getDestinationHash(dest) {
9622
return "#";
9623
}
9624
}, {
9625
key: "getAnchorUrl",
9626
value: function getAnchorUrl(hash) {
9627
return "#";
9628
}
9629
}, {
9630
key: "setHash",
9631
value: function setHash(hash) {}
9632
}, {
9633
key: "executeNamedAction",
9634
value: function executeNamedAction(action) {}
9635
}, {
9636
key: "cachePageRef",
9637
value: function cachePageRef(pageNum, pageRef) {}
9638
}, {
9639
key: "isPageVisible",
9640
value: function isPageVisible(pageNumber) {
9641
return true;
9642
}
9643
}, {
9644
key: "isPageCached",
9645
value: function isPageCached(pageNumber) {
9646
return true;
9647
}
9648
}]);
9649
9650
return SimpleLinkService;
9651
}();
9652
9653
exports.SimpleLinkService = SimpleLinkService;
9654
9655
/***/ }),
9656
/* 22 */
9657
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
9658
9659
9660
9661
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
9662
9663
Object.defineProperty(exports, "__esModule", ({
9664
value: true
9665
}));
9666
exports.PDFOutlineViewer = void 0;
9667
9668
var _regenerator = _interopRequireDefault(__webpack_require__(4));
9669
9670
var _pdfjsLib = __webpack_require__(7);
9671
9672
var _base_tree_viewer = __webpack_require__(14);
9673
9674
var _ui_utils = __webpack_require__(6);
9675
9676
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9677
9678
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
9679
9680
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9681
9682
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
9683
9684
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9685
9686
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
9687
9688
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
9689
9690
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
9691
9692
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
9693
9694
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9695
9696
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
9697
9698
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
9699
9700
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
9701
9702
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
9703
9704
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9705
9706
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); } }
9707
9708
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
9709
9710
function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
9711
9712
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
9713
9714
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
9715
9716
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
9717
9718
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
9719
9720
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
9721
9722
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
9723
9724
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
9725
9726
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
9727
9728
var PDFOutlineViewer = /*#__PURE__*/function (_BaseTreeViewer) {
9729
_inherits(PDFOutlineViewer, _BaseTreeViewer);
9730
9731
var _super = _createSuper(PDFOutlineViewer);
9732
9733
function PDFOutlineViewer(options) {
9734
var _this;
9735
9736
_classCallCheck(this, PDFOutlineViewer);
9737
9738
_this = _super.call(this, options);
9739
_this.linkService = options.linkService;
9740
9741
_this.eventBus._on("toggleoutlinetree", _this._toggleAllTreeItems.bind(_assertThisInitialized(_this)));
9742
9743
_this.eventBus._on("currentoutlineitem", _this._currentOutlineItem.bind(_assertThisInitialized(_this)));
9744
9745
_this.eventBus._on("pagechanging", function (evt) {
9746
_this._currentPageNumber = evt.pageNumber;
9747
});
9748
9749
_this.eventBus._on("pagesloaded", function (evt) {
9750
_this._isPagesLoaded = !!evt.pagesCount;
9751
});
9752
9753
_this.eventBus._on("sidebarviewchanged", function (evt) {
9754
_this._sidebarView = evt.view;
9755
});
9756
9757
return _this;
9758
}
9759
9760
_createClass(PDFOutlineViewer, [{
9761
key: "reset",
9762
value: function reset() {
9763
_get(_getPrototypeOf(PDFOutlineViewer.prototype), "reset", this).call(this);
9764
9765
this._outline = null;
9766
this._pageNumberToDestHashCapability = null;
9767
this._currentPageNumber = 1;
9768
this._isPagesLoaded = false;
9769
}
9770
}, {
9771
key: "_dispatchEvent",
9772
value: function _dispatchEvent(outlineCount) {
9773
var _this$_pdfDocument;
9774
9775
this.eventBus.dispatch("outlineloaded", {
9776
source: this,
9777
outlineCount: outlineCount,
9778
enableCurrentOutlineItemButton: outlineCount > 0 && !((_this$_pdfDocument = this._pdfDocument) !== null && _this$_pdfDocument !== void 0 && _this$_pdfDocument.loadingParams.disableAutoFetch)
9779
});
9780
}
9781
}, {
9782
key: "_bindLink",
9783
value: function _bindLink(element, _ref) {
9784
var _this2 = this;
9785
9786
var url = _ref.url,
9787
newWindow = _ref.newWindow,
9788
dest = _ref.dest;
9789
var linkService = this.linkService;
9790
9791
if (url) {
9792
(0, _pdfjsLib.addLinkAttributes)(element, {
9793
url: url,
9794
target: newWindow ? _pdfjsLib.LinkTarget.BLANK : linkService.externalLinkTarget,
9795
rel: linkService.externalLinkRel,
9796
enabled: linkService.externalLinkEnabled
9797
});
9798
return;
9799
}
9800
9801
element.href = linkService.getDestinationHash(dest);
9802
9803
element.onclick = function (evt) {
9804
_this2._updateCurrentTreeItem(evt.target.parentNode);
9805
9806
if (dest) {
9807
linkService.goToDestination(dest);
9808
}
9809
9810
return false;
9811
};
9812
}
9813
}, {
9814
key: "_setStyles",
9815
value: function _setStyles(element, _ref2) {
9816
var bold = _ref2.bold,
9817
italic = _ref2.italic;
9818
9819
if (bold) {
9820
element.style.fontWeight = "bold";
9821
}
9822
9823
if (italic) {
9824
element.style.fontStyle = "italic";
9825
}
9826
}
9827
}, {
9828
key: "_addToggleButton",
9829
value: function _addToggleButton(div, _ref3) {
9830
var count = _ref3.count,
9831
items = _ref3.items;
9832
var hidden = false;
9833
9834
if (count < 0) {
9835
var totalCount = items.length;
9836
9837
if (totalCount > 0) {
9838
var queue = _toConsumableArray(items);
9839
9840
while (queue.length > 0) {
9841
var _queue$shift = queue.shift(),
9842
nestedCount = _queue$shift.count,
9843
nestedItems = _queue$shift.items;
9844
9845
if (nestedCount > 0 && nestedItems.length > 0) {
9846
totalCount += nestedItems.length;
9847
queue.push.apply(queue, _toConsumableArray(nestedItems));
9848
}
9849
}
9850
}
9851
9852
if (Math.abs(count) === totalCount) {
9853
hidden = true;
9854
}
9855
}
9856
9857
_get(_getPrototypeOf(PDFOutlineViewer.prototype), "_addToggleButton", this).call(this, div, hidden);
9858
}
9859
}, {
9860
key: "_toggleAllTreeItems",
9861
value: function _toggleAllTreeItems() {
9862
if (!this._outline) {
9863
return;
9864
}
9865
9866
_get(_getPrototypeOf(PDFOutlineViewer.prototype), "_toggleAllTreeItems", this).call(this);
9867
}
9868
}, {
9869
key: "render",
9870
value: function render(_ref4) {
9871
var outline = _ref4.outline,
9872
pdfDocument = _ref4.pdfDocument;
9873
9874
if (this._outline) {
9875
this.reset();
9876
}
9877
9878
this._outline = outline || null;
9879
this._pdfDocument = pdfDocument || null;
9880
9881
if (!outline) {
9882
this._dispatchEvent(0);
9883
9884
return;
9885
}
9886
9887
var fragment = document.createDocumentFragment();
9888
var queue = [{
9889
parent: fragment,
9890
items: outline
9891
}];
9892
var outlineCount = 0,
9893
hasAnyNesting = false;
9894
9895
while (queue.length > 0) {
9896
var levelData = queue.shift();
9897
9898
var _iterator = _createForOfIteratorHelper(levelData.items),
9899
_step;
9900
9901
try {
9902
for (_iterator.s(); !(_step = _iterator.n()).done;) {
9903
var item = _step.value;
9904
var div = document.createElement("div");
9905
div.className = "treeItem";
9906
var element = document.createElement("a");
9907
9908
this._bindLink(element, item);
9909
9910
this._setStyles(element, item);
9911
9912
element.textContent = this._normalizeTextContent(item.title);
9913
div.appendChild(element);
9914
9915
if (item.items.length > 0) {
9916
hasAnyNesting = true;
9917
9918
this._addToggleButton(div, item);
9919
9920
var itemsDiv = document.createElement("div");
9921
itemsDiv.className = "treeItems";
9922
div.appendChild(itemsDiv);
9923
queue.push({
9924
parent: itemsDiv,
9925
items: item.items
9926
});
9927
}
9928
9929
levelData.parent.appendChild(div);
9930
outlineCount++;
9931
}
9932
} catch (err) {
9933
_iterator.e(err);
9934
} finally {
9935
_iterator.f();
9936
}
9937
}
9938
9939
this._finishRendering(fragment, outlineCount, hasAnyNesting);
9940
}
9941
}, {
9942
key: "_currentOutlineItem",
9943
value: function () {
9944
var _currentOutlineItem2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
9945
var pageNumberToDestHash, i, destHash, linkElement;
9946
return _regenerator["default"].wrap(function _callee$(_context) {
9947
while (1) {
9948
switch (_context.prev = _context.next) {
9949
case 0:
9950
if (this._isPagesLoaded) {
9951
_context.next = 2;
9952
break;
9953
}
9954
9955
throw new Error("_currentOutlineItem: All pages have not been loaded.");
9956
9957
case 2:
9958
if (!(!this._outline || !this._pdfDocument)) {
9959
_context.next = 4;
9960
break;
9961
}
9962
9963
return _context.abrupt("return");
9964
9965
case 4:
9966
_context.next = 6;
9967
return this._getPageNumberToDestHash(this._pdfDocument);
9968
9969
case 6:
9970
pageNumberToDestHash = _context.sent;
9971
9972
if (pageNumberToDestHash) {
9973
_context.next = 9;
9974
break;
9975
}
9976
9977
return _context.abrupt("return");
9978
9979
case 9:
9980
this._updateCurrentTreeItem(null);
9981
9982
if (!(this._sidebarView !== _ui_utils.SidebarView.OUTLINE)) {
9983
_context.next = 12;
9984
break;
9985
}
9986
9987
return _context.abrupt("return");
9988
9989
case 12:
9990
i = this._currentPageNumber;
9991
9992
case 13:
9993
if (!(i > 0)) {
9994
_context.next = 25;
9995
break;
9996
}
9997
9998
destHash = pageNumberToDestHash.get(i);
9999
10000
if (destHash) {
10001
_context.next = 17;
10002
break;
10003
}
10004
10005
return _context.abrupt("continue", 22);
10006
10007
case 17:
10008
linkElement = this.container.querySelector("a[href=\"".concat(destHash, "\"]"));
10009
10010
if (linkElement) {
10011
_context.next = 20;
10012
break;
10013
}
10014
10015
return _context.abrupt("continue", 22);
10016
10017
case 20:
10018
this._scrollToCurrentTreeItem(linkElement.parentNode);
10019
10020
return _context.abrupt("break", 25);
10021
10022
case 22:
10023
i--;
10024
_context.next = 13;
10025
break;
10026
10027
case 25:
10028
case "end":
10029
return _context.stop();
10030
}
10031
}
10032
}, _callee, this);
10033
}));
10034
10035
function _currentOutlineItem() {
10036
return _currentOutlineItem2.apply(this, arguments);
10037
}
10038
10039
return _currentOutlineItem;
10040
}()
10041
}, {
10042
key: "_getPageNumberToDestHash",
10043
value: function () {
10044
var _getPageNumberToDestHash2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(pdfDocument) {
10045
var pageNumberToDestHash, pageNumberNesting, queue, levelData, currentNesting, _iterator2, _step2, _step2$value, dest, items, explicitDest, pageNumber, _explicitDest, _explicitDest2, destRef, destHash;
10046
10047
return _regenerator["default"].wrap(function _callee2$(_context2) {
10048
while (1) {
10049
switch (_context2.prev = _context2.next) {
10050
case 0:
10051
if (!this._pageNumberToDestHashCapability) {
10052
_context2.next = 2;
10053
break;
10054
}
10055
10056
return _context2.abrupt("return", this._pageNumberToDestHashCapability.promise);
10057
10058
case 2:
10059
this._pageNumberToDestHashCapability = (0, _pdfjsLib.createPromiseCapability)();
10060
pageNumberToDestHash = new Map(), pageNumberNesting = new Map();
10061
queue = [{
10062
nesting: 0,
10063
items: this._outline
10064
}];
10065
10066
case 5:
10067
if (!(queue.length > 0)) {
10068
_context2.next = 56;
10069
break;
10070
}
10071
10072
levelData = queue.shift(), currentNesting = levelData.nesting;
10073
_iterator2 = _createForOfIteratorHelper(levelData.items);
10074
_context2.prev = 8;
10075
10076
_iterator2.s();
10077
10078
case 10:
10079
if ((_step2 = _iterator2.n()).done) {
10080
_context2.next = 46;
10081
break;
10082
}
10083
10084
_step2$value = _step2.value, dest = _step2$value.dest, items = _step2$value.items;
10085
explicitDest = void 0, pageNumber = void 0;
10086
10087
if (!(typeof dest === "string")) {
10088
_context2.next = 21;
10089
break;
10090
}
10091
10092
_context2.next = 16;
10093
return pdfDocument.getDestination(dest);
10094
10095
case 16:
10096
explicitDest = _context2.sent;
10097
10098
if (!(pdfDocument !== this._pdfDocument)) {
10099
_context2.next = 19;
10100
break;
10101
}
10102
10103
return _context2.abrupt("return", null);
10104
10105
case 19:
10106
_context2.next = 22;
10107
break;
10108
10109
case 21:
10110
explicitDest = dest;
10111
10112
case 22:
10113
if (!Array.isArray(explicitDest)) {
10114
_context2.next = 43;
10115
break;
10116
}
10117
10118
_explicitDest = explicitDest, _explicitDest2 = _slicedToArray(_explicitDest, 1), destRef = _explicitDest2[0];
10119
10120
if (!(destRef instanceof Object)) {
10121
_context2.next = 41;
10122
break;
10123
}
10124
10125
pageNumber = this.linkService._cachedPageNumber(destRef);
10126
10127
if (pageNumber) {
10128
_context2.next = 39;
10129
break;
10130
}
10131
10132
_context2.prev = 27;
10133
_context2.next = 30;
10134
return pdfDocument.getPageIndex(destRef);
10135
10136
case 30:
10137
_context2.t0 = _context2.sent;
10138
pageNumber = _context2.t0 + 1;
10139
10140
if (!(pdfDocument !== this._pdfDocument)) {
10141
_context2.next = 34;
10142
break;
10143
}
10144
10145
return _context2.abrupt("return", null);
10146
10147
case 34:
10148
this.linkService.cachePageRef(pageNumber, destRef);
10149
_context2.next = 39;
10150
break;
10151
10152
case 37:
10153
_context2.prev = 37;
10154
_context2.t1 = _context2["catch"](27);
10155
10156
case 39:
10157
_context2.next = 42;
10158
break;
10159
10160
case 41:
10161
if (Number.isInteger(destRef)) {
10162
pageNumber = destRef + 1;
10163
}
10164
10165
case 42:
10166
if (Number.isInteger(pageNumber) && (!pageNumberToDestHash.has(pageNumber) || currentNesting > pageNumberNesting.get(pageNumber))) {
10167
destHash = this.linkService.getDestinationHash(dest);
10168
pageNumberToDestHash.set(pageNumber, destHash);
10169
pageNumberNesting.set(pageNumber, currentNesting);
10170
}
10171
10172
case 43:
10173
if (items.length > 0) {
10174
queue.push({
10175
nesting: currentNesting + 1,
10176
items: items
10177
});
10178
}
10179
10180
case 44:
10181
_context2.next = 10;
10182
break;
10183
10184
case 46:
10185
_context2.next = 51;
10186
break;
10187
10188
case 48:
10189
_context2.prev = 48;
10190
_context2.t2 = _context2["catch"](8);
10191
10192
_iterator2.e(_context2.t2);
10193
10194
case 51:
10195
_context2.prev = 51;
10196
10197
_iterator2.f();
10198
10199
return _context2.finish(51);
10200
10201
case 54:
10202
_context2.next = 5;
10203
break;
10204
10205
case 56:
10206
this._pageNumberToDestHashCapability.resolve(pageNumberToDestHash.size > 0 ? pageNumberToDestHash : null);
10207
10208
return _context2.abrupt("return", this._pageNumberToDestHashCapability.promise);
10209
10210
case 58:
10211
case "end":
10212
return _context2.stop();
10213
}
10214
}
10215
}, _callee2, this, [[8, 48, 51, 54], [27, 37]]);
10216
}));
10217
10218
function _getPageNumberToDestHash(_x) {
10219
return _getPageNumberToDestHash2.apply(this, arguments);
10220
}
10221
10222
return _getPageNumberToDestHash;
10223
}()
10224
}]);
10225
10226
return PDFOutlineViewer;
10227
}(_base_tree_viewer.BaseTreeViewer);
10228
10229
exports.PDFOutlineViewer = PDFOutlineViewer;
10230
10231
/***/ }),
10232
/* 23 */
10233
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10234
10235
10236
10237
Object.defineProperty(exports, "__esModule", ({
10238
value: true
10239
}));
10240
exports.PDFPresentationMode = void 0;
10241
10242
var _ui_utils = __webpack_require__(6);
10243
10244
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10245
10246
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); } }
10247
10248
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
10249
10250
var DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS = 1500;
10251
var DELAY_BEFORE_HIDING_CONTROLS = 3000;
10252
var ACTIVE_SELECTOR = "pdfPresentationMode";
10253
var CONTROLS_SELECTOR = "pdfPresentationModeControls";
10254
var MOUSE_SCROLL_COOLDOWN_TIME = 50;
10255
var PAGE_SWITCH_THRESHOLD = 0.1;
10256
var SWIPE_MIN_DISTANCE_THRESHOLD = 50;
10257
var SWIPE_ANGLE_THRESHOLD = Math.PI / 6;
10258
10259
var PDFPresentationMode = /*#__PURE__*/function () {
10260
function PDFPresentationMode(_ref) {
10261
var container = _ref.container,
10262
pdfViewer = _ref.pdfViewer,
10263
eventBus = _ref.eventBus;
10264
10265
_classCallCheck(this, PDFPresentationMode);
10266
10267
this.container = container;
10268
this.pdfViewer = pdfViewer;
10269
this.eventBus = eventBus;
10270
this.active = false;
10271
this.args = null;
10272
this.contextMenuOpen = false;
10273
this.mouseScrollTimeStamp = 0;
10274
this.mouseScrollDelta = 0;
10275
this.touchSwipeState = null;
10276
}
10277
10278
_createClass(PDFPresentationMode, [{
10279
key: "request",
10280
value: function request() {
10281
if (this.switchInProgress || this.active || !this.pdfViewer.pagesCount) {
10282
return false;
10283
}
10284
10285
this._addFullscreenChangeListeners();
10286
10287
this._setSwitchInProgress();
10288
10289
this._notifyStateChange();
10290
10291
if (this.container.requestFullscreen) {
10292
this.container.requestFullscreen();
10293
} else if (this.container.mozRequestFullScreen) {
10294
this.container.mozRequestFullScreen();
10295
} else if (this.container.webkitRequestFullscreen) {
10296
this.container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
10297
} else {
10298
return false;
10299
}
10300
10301
this.args = {
10302
page: this.pdfViewer.currentPageNumber,
10303
previousScale: this.pdfViewer.currentScaleValue
10304
};
10305
return true;
10306
}
10307
}, {
10308
key: "_mouseWheel",
10309
value: function _mouseWheel(evt) {
10310
if (!this.active) {
10311
return;
10312
}
10313
10314
evt.preventDefault();
10315
var delta = (0, _ui_utils.normalizeWheelEventDelta)(evt);
10316
var currentTime = Date.now();
10317
var storedTime = this.mouseScrollTimeStamp;
10318
10319
if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) {
10320
return;
10321
}
10322
10323
if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) {
10324
this._resetMouseScrollState();
10325
}
10326
10327
this.mouseScrollDelta += delta;
10328
10329
if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) {
10330
var totalDelta = this.mouseScrollDelta;
10331
10332
this._resetMouseScrollState();
10333
10334
var success = totalDelta > 0 ? this.pdfViewer.previousPage() : this.pdfViewer.nextPage();
10335
10336
if (success) {
10337
this.mouseScrollTimeStamp = currentTime;
10338
}
10339
}
10340
}
10341
}, {
10342
key: "isFullscreen",
10343
get: function get() {
10344
return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen);
10345
}
10346
}, {
10347
key: "_notifyStateChange",
10348
value: function _notifyStateChange() {
10349
var state = _ui_utils.PresentationModeState.NORMAL;
10350
10351
if (this.switchInProgress) {
10352
state = _ui_utils.PresentationModeState.CHANGING;
10353
} else if (this.active) {
10354
state = _ui_utils.PresentationModeState.FULLSCREEN;
10355
}
10356
10357
this.eventBus.dispatch("presentationmodechanged", {
10358
source: this,
10359
state: state,
10360
10361
get active() {
10362
throw new Error("Deprecated parameter: `active`, please use `state` instead.");
10363
},
10364
10365
get switchInProgress() {
10366
throw new Error("Deprecated parameter: `switchInProgress`, please use `state` instead.");
10367
}
10368
10369
});
10370
}
10371
}, {
10372
key: "_setSwitchInProgress",
10373
value: function _setSwitchInProgress() {
10374
var _this = this;
10375
10376
if (this.switchInProgress) {
10377
clearTimeout(this.switchInProgress);
10378
}
10379
10380
this.switchInProgress = setTimeout(function () {
10381
_this._removeFullscreenChangeListeners();
10382
10383
delete _this.switchInProgress;
10384
10385
_this._notifyStateChange();
10386
}, DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS);
10387
}
10388
}, {
10389
key: "_resetSwitchInProgress",
10390
value: function _resetSwitchInProgress() {
10391
if (this.switchInProgress) {
10392
clearTimeout(this.switchInProgress);
10393
delete this.switchInProgress;
10394
}
10395
}
10396
}, {
10397
key: "_enter",
10398
value: function _enter() {
10399
var _this2 = this;
10400
10401
this.active = true;
10402
10403
this._resetSwitchInProgress();
10404
10405
this._notifyStateChange();
10406
10407
this.container.classList.add(ACTIVE_SELECTOR);
10408
setTimeout(function () {
10409
_this2.pdfViewer.currentPageNumber = _this2.args.page;
10410
_this2.pdfViewer.currentScaleValue = "page-fit";
10411
}, 0);
10412
10413
this._addWindowListeners();
10414
10415
this._showControls();
10416
10417
this.contextMenuOpen = false;
10418
window.getSelection().removeAllRanges();
10419
}
10420
}, {
10421
key: "_exit",
10422
value: function _exit() {
10423
var _this3 = this;
10424
10425
var page = this.pdfViewer.currentPageNumber;
10426
this.container.classList.remove(ACTIVE_SELECTOR);
10427
setTimeout(function () {
10428
_this3.active = false;
10429
10430
_this3._removeFullscreenChangeListeners();
10431
10432
_this3._notifyStateChange();
10433
10434
_this3.pdfViewer.currentScaleValue = _this3.args.previousScale;
10435
_this3.pdfViewer.currentPageNumber = page;
10436
_this3.args = null;
10437
}, 0);
10438
10439
this._removeWindowListeners();
10440
10441
this._hideControls();
10442
10443
this._resetMouseScrollState();
10444
10445
this.contextMenuOpen = false;
10446
}
10447
}, {
10448
key: "_mouseDown",
10449
value: function _mouseDown(evt) {
10450
if (this.contextMenuOpen) {
10451
this.contextMenuOpen = false;
10452
evt.preventDefault();
10453
return;
10454
}
10455
10456
if (evt.button === 0) {
10457
var isInternalLink = evt.target.href && evt.target.classList.contains("internalLink");
10458
10459
if (!isInternalLink) {
10460
evt.preventDefault();
10461
10462
if (evt.shiftKey) {
10463
this.pdfViewer.previousPage();
10464
} else {
10465
this.pdfViewer.nextPage();
10466
}
10467
}
10468
}
10469
}
10470
}, {
10471
key: "_contextMenu",
10472
value: function _contextMenu() {
10473
this.contextMenuOpen = true;
10474
}
10475
}, {
10476
key: "_showControls",
10477
value: function _showControls() {
10478
var _this4 = this;
10479
10480
if (this.controlsTimeout) {
10481
clearTimeout(this.controlsTimeout);
10482
} else {
10483
this.container.classList.add(CONTROLS_SELECTOR);
10484
}
10485
10486
this.controlsTimeout = setTimeout(function () {
10487
_this4.container.classList.remove(CONTROLS_SELECTOR);
10488
10489
delete _this4.controlsTimeout;
10490
}, DELAY_BEFORE_HIDING_CONTROLS);
10491
}
10492
}, {
10493
key: "_hideControls",
10494
value: function _hideControls() {
10495
if (!this.controlsTimeout) {
10496
return;
10497
}
10498
10499
clearTimeout(this.controlsTimeout);
10500
this.container.classList.remove(CONTROLS_SELECTOR);
10501
delete this.controlsTimeout;
10502
}
10503
}, {
10504
key: "_resetMouseScrollState",
10505
value: function _resetMouseScrollState() {
10506
this.mouseScrollTimeStamp = 0;
10507
this.mouseScrollDelta = 0;
10508
}
10509
}, {
10510
key: "_touchSwipe",
10511
value: function _touchSwipe(evt) {
10512
if (!this.active) {
10513
return;
10514
}
10515
10516
if (evt.touches.length > 1) {
10517
this.touchSwipeState = null;
10518
return;
10519
}
10520
10521
switch (evt.type) {
10522
case "touchstart":
10523
this.touchSwipeState = {
10524
startX: evt.touches[0].pageX,
10525
startY: evt.touches[0].pageY,
10526
endX: evt.touches[0].pageX,
10527
endY: evt.touches[0].pageY
10528
};
10529
break;
10530
10531
case "touchmove":
10532
if (this.touchSwipeState === null) {
10533
return;
10534
}
10535
10536
this.touchSwipeState.endX = evt.touches[0].pageX;
10537
this.touchSwipeState.endY = evt.touches[0].pageY;
10538
evt.preventDefault();
10539
break;
10540
10541
case "touchend":
10542
if (this.touchSwipeState === null) {
10543
return;
10544
}
10545
10546
var delta = 0;
10547
var dx = this.touchSwipeState.endX - this.touchSwipeState.startX;
10548
var dy = this.touchSwipeState.endY - this.touchSwipeState.startY;
10549
var absAngle = Math.abs(Math.atan2(dy, dx));
10550
10551
if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) {
10552
delta = dx;
10553
} else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) {
10554
delta = dy;
10555
}
10556
10557
if (delta > 0) {
10558
this.pdfViewer.previousPage();
10559
} else if (delta < 0) {
10560
this.pdfViewer.nextPage();
10561
}
10562
10563
break;
10564
}
10565
}
10566
}, {
10567
key: "_addWindowListeners",
10568
value: function _addWindowListeners() {
10569
this.showControlsBind = this._showControls.bind(this);
10570
this.mouseDownBind = this._mouseDown.bind(this);
10571
this.mouseWheelBind = this._mouseWheel.bind(this);
10572
this.resetMouseScrollStateBind = this._resetMouseScrollState.bind(this);
10573
this.contextMenuBind = this._contextMenu.bind(this);
10574
this.touchSwipeBind = this._touchSwipe.bind(this);
10575
window.addEventListener("mousemove", this.showControlsBind);
10576
window.addEventListener("mousedown", this.mouseDownBind);
10577
window.addEventListener("wheel", this.mouseWheelBind, {
10578
passive: false
10579
});
10580
window.addEventListener("keydown", this.resetMouseScrollStateBind);
10581
window.addEventListener("contextmenu", this.contextMenuBind);
10582
window.addEventListener("touchstart", this.touchSwipeBind);
10583
window.addEventListener("touchmove", this.touchSwipeBind);
10584
window.addEventListener("touchend", this.touchSwipeBind);
10585
}
10586
}, {
10587
key: "_removeWindowListeners",
10588
value: function _removeWindowListeners() {
10589
window.removeEventListener("mousemove", this.showControlsBind);
10590
window.removeEventListener("mousedown", this.mouseDownBind);
10591
window.removeEventListener("wheel", this.mouseWheelBind, {
10592
passive: false
10593
});
10594
window.removeEventListener("keydown", this.resetMouseScrollStateBind);
10595
window.removeEventListener("contextmenu", this.contextMenuBind);
10596
window.removeEventListener("touchstart", this.touchSwipeBind);
10597
window.removeEventListener("touchmove", this.touchSwipeBind);
10598
window.removeEventListener("touchend", this.touchSwipeBind);
10599
delete this.showControlsBind;
10600
delete this.mouseDownBind;
10601
delete this.mouseWheelBind;
10602
delete this.resetMouseScrollStateBind;
10603
delete this.contextMenuBind;
10604
delete this.touchSwipeBind;
10605
}
10606
}, {
10607
key: "_fullscreenChange",
10608
value: function _fullscreenChange() {
10609
if (this.isFullscreen) {
10610
this._enter();
10611
} else {
10612
this._exit();
10613
}
10614
}
10615
}, {
10616
key: "_addFullscreenChangeListeners",
10617
value: function _addFullscreenChangeListeners() {
10618
this.fullscreenChangeBind = this._fullscreenChange.bind(this);
10619
window.addEventListener("fullscreenchange", this.fullscreenChangeBind);
10620
window.addEventListener("mozfullscreenchange", this.fullscreenChangeBind);
10621
window.addEventListener("webkitfullscreenchange", this.fullscreenChangeBind);
10622
}
10623
}, {
10624
key: "_removeFullscreenChangeListeners",
10625
value: function _removeFullscreenChangeListeners() {
10626
window.removeEventListener("fullscreenchange", this.fullscreenChangeBind);
10627
window.removeEventListener("mozfullscreenchange", this.fullscreenChangeBind);
10628
window.removeEventListener("webkitfullscreenchange", this.fullscreenChangeBind);
10629
delete this.fullscreenChangeBind;
10630
}
10631
}]);
10632
10633
return PDFPresentationMode;
10634
}();
10635
10636
exports.PDFPresentationMode = PDFPresentationMode;
10637
10638
/***/ }),
10639
/* 24 */
10640
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10641
10642
10643
10644
Object.defineProperty(exports, "__esModule", ({
10645
value: true
10646
}));
10647
exports.PDFScriptingManager = void 0;
10648
10649
var _regenerator = _interopRequireDefault(__webpack_require__(4));
10650
10651
var _pdfjsLib = __webpack_require__(7);
10652
10653
var _ui_utils = __webpack_require__(6);
10654
10655
var _pdf_rendering_queue = __webpack_require__(10);
10656
10657
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10658
10659
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
10660
10661
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
10662
10663
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10664
10665
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
10666
10667
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
10668
10669
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
10670
10671
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10672
10673
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
10674
10675
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
10676
10677
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
10678
10679
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
10680
10681
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
10682
10683
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10684
10685
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); } }
10686
10687
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
10688
10689
var PDFScriptingManager = /*#__PURE__*/function () {
10690
function PDFScriptingManager(_ref) {
10691
var eventBus = _ref.eventBus,
10692
_ref$sandboxBundleSrc = _ref.sandboxBundleSrc,
10693
sandboxBundleSrc = _ref$sandboxBundleSrc === void 0 ? null : _ref$sandboxBundleSrc,
10694
_ref$scriptingFactory = _ref.scriptingFactory,
10695
scriptingFactory = _ref$scriptingFactory === void 0 ? null : _ref$scriptingFactory,
10696
_ref$docPropertiesLoo = _ref.docPropertiesLookup,
10697
docPropertiesLookup = _ref$docPropertiesLoo === void 0 ? null : _ref$docPropertiesLoo;
10698
10699
_classCallCheck(this, PDFScriptingManager);
10700
10701
this._pdfDocument = null;
10702
this._pdfViewer = null;
10703
this._closeCapability = null;
10704
this._destroyCapability = null;
10705
this._scripting = null;
10706
this._mouseState = Object.create(null);
10707
this._pageEventsReady = false;
10708
this._ready = false;
10709
this._eventBus = eventBus;
10710
this._sandboxBundleSrc = sandboxBundleSrc;
10711
this._scriptingFactory = scriptingFactory;
10712
this._docPropertiesLookup = docPropertiesLookup;
10713
}
10714
10715
_createClass(PDFScriptingManager, [{
10716
key: "setViewer",
10717
value: function setViewer(pdfViewer) {
10718
this._pdfViewer = pdfViewer;
10719
}
10720
}, {
10721
key: "setDocument",
10722
value: function () {
10723
var _setDocument = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(pdfDocument) {
10724
var _this = this,
10725
_this$_scripting3;
10726
10727
var _yield$Promise$all, _yield$Promise$all2, objects, calculationOrder, docActions, _iterator, _step, _step$value, name, listener, _iterator2, _step2, _step2$value, _name, _listener, docProperties;
10728
10729
return _regenerator["default"].wrap(function _callee2$(_context2) {
10730
while (1) {
10731
switch (_context2.prev = _context2.next) {
10732
case 0:
10733
if (!this._pdfDocument) {
10734
_context2.next = 3;
10735
break;
10736
}
10737
10738
_context2.next = 3;
10739
return this._destroyScripting();
10740
10741
case 3:
10742
this._pdfDocument = pdfDocument;
10743
10744
if (pdfDocument) {
10745
_context2.next = 6;
10746
break;
10747
}
10748
10749
return _context2.abrupt("return");
10750
10751
case 6:
10752
_context2.next = 8;
10753
return Promise.all([pdfDocument.getFieldObjects(), pdfDocument.getCalculationOrderIds(), pdfDocument.getJSActions()]);
10754
10755
case 8:
10756
_yield$Promise$all = _context2.sent;
10757
_yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 3);
10758
objects = _yield$Promise$all2[0];
10759
calculationOrder = _yield$Promise$all2[1];
10760
docActions = _yield$Promise$all2[2];
10761
10762
if (!(!objects && !docActions)) {
10763
_context2.next = 17;
10764
break;
10765
}
10766
10767
_context2.next = 16;
10768
return this._destroyScripting();
10769
10770
case 16:
10771
return _context2.abrupt("return");
10772
10773
case 17:
10774
if (!(pdfDocument !== this._pdfDocument)) {
10775
_context2.next = 19;
10776
break;
10777
}
10778
10779
return _context2.abrupt("return");
10780
10781
case 19:
10782
this._scripting = this._createScripting();
10783
10784
this._internalEvents.set("updatefromsandbox", function (event) {
10785
if ((event === null || event === void 0 ? void 0 : event.source) !== window) {
10786
return;
10787
}
10788
10789
_this._updateFromSandbox(event.detail);
10790
});
10791
10792
this._internalEvents.set("dispatcheventinsandbox", function (event) {
10793
var _this$_scripting;
10794
10795
(_this$_scripting = _this._scripting) === null || _this$_scripting === void 0 ? void 0 : _this$_scripting.dispatchEventInSandbox(event.detail);
10796
});
10797
10798
this._internalEvents.set("pagechanging", function (_ref2) {
10799
var pageNumber = _ref2.pageNumber,
10800
previous = _ref2.previous;
10801
10802
if (pageNumber === previous) {
10803
return;
10804
}
10805
10806
_this._dispatchPageClose(previous);
10807
10808
_this._dispatchPageOpen(pageNumber);
10809
});
10810
10811
this._internalEvents.set("pagerendered", function (_ref3) {
10812
var pageNumber = _ref3.pageNumber;
10813
10814
if (!_this._pageOpenPending.has(pageNumber)) {
10815
return;
10816
}
10817
10818
if (pageNumber !== _this._pdfViewer.currentPageNumber) {
10819
return;
10820
}
10821
10822
_this._dispatchPageOpen(pageNumber);
10823
});
10824
10825
this._internalEvents.set("pagesdestroy", /*#__PURE__*/function () {
10826
var _ref4 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(event) {
10827
var _this$_scripting2, _this$_closeCapabilit;
10828
10829
return _regenerator["default"].wrap(function _callee$(_context) {
10830
while (1) {
10831
switch (_context.prev = _context.next) {
10832
case 0:
10833
_context.next = 2;
10834
return _this._dispatchPageClose(_this._pdfViewer.currentPageNumber);
10835
10836
case 2:
10837
_context.next = 4;
10838
return (_this$_scripting2 = _this._scripting) === null || _this$_scripting2 === void 0 ? void 0 : _this$_scripting2.dispatchEventInSandbox({
10839
id: "doc",
10840
name: "WillClose"
10841
});
10842
10843
case 4:
10844
(_this$_closeCapabilit = _this._closeCapability) === null || _this$_closeCapabilit === void 0 ? void 0 : _this$_closeCapabilit.resolve();
10845
10846
case 5:
10847
case "end":
10848
return _context.stop();
10849
}
10850
}
10851
}, _callee);
10852
}));
10853
10854
return function (_x2) {
10855
return _ref4.apply(this, arguments);
10856
};
10857
}());
10858
10859
this._domEvents.set("mousedown", function (event) {
10860
_this._mouseState.isDown = true;
10861
});
10862
10863
this._domEvents.set("mouseup", function (event) {
10864
_this._mouseState.isDown = false;
10865
});
10866
10867
_iterator = _createForOfIteratorHelper(this._internalEvents);
10868
10869
try {
10870
for (_iterator.s(); !(_step = _iterator.n()).done;) {
10871
_step$value = _slicedToArray(_step.value, 2), name = _step$value[0], listener = _step$value[1];
10872
10873
this._eventBus._on(name, listener);
10874
}
10875
} catch (err) {
10876
_iterator.e(err);
10877
} finally {
10878
_iterator.f();
10879
}
10880
10881
_iterator2 = _createForOfIteratorHelper(this._domEvents);
10882
10883
try {
10884
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
10885
_step2$value = _slicedToArray(_step2.value, 2), _name = _step2$value[0], _listener = _step2$value[1];
10886
window.addEventListener(_name, _listener);
10887
}
10888
} catch (err) {
10889
_iterator2.e(err);
10890
} finally {
10891
_iterator2.f();
10892
}
10893
10894
_context2.prev = 31;
10895
_context2.next = 34;
10896
return this._getDocProperties();
10897
10898
case 34:
10899
docProperties = _context2.sent;
10900
10901
if (!(pdfDocument !== this._pdfDocument)) {
10902
_context2.next = 37;
10903
break;
10904
}
10905
10906
return _context2.abrupt("return");
10907
10908
case 37:
10909
_context2.next = 39;
10910
return this._scripting.createSandbox({
10911
objects: objects,
10912
calculationOrder: calculationOrder,
10913
appInfo: {
10914
platform: navigator.platform,
10915
language: navigator.language
10916
},
10917
docInfo: _objectSpread(_objectSpread({}, docProperties), {}, {
10918
actions: docActions
10919
})
10920
});
10921
10922
case 39:
10923
this._eventBus.dispatch("sandboxcreated", {
10924
source: this
10925
});
10926
10927
_context2.next = 48;
10928
break;
10929
10930
case 42:
10931
_context2.prev = 42;
10932
_context2.t0 = _context2["catch"](31);
10933
console.error("PDFScriptingManager.setDocument: \"".concat(_context2.t0 === null || _context2.t0 === void 0 ? void 0 : _context2.t0.message, "\"."));
10934
_context2.next = 47;
10935
return this._destroyScripting();
10936
10937
case 47:
10938
return _context2.abrupt("return");
10939
10940
case 48:
10941
_context2.next = 50;
10942
return (_this$_scripting3 = this._scripting) === null || _this$_scripting3 === void 0 ? void 0 : _this$_scripting3.dispatchEventInSandbox({
10943
id: "doc",
10944
name: "Open"
10945
});
10946
10947
case 50:
10948
_context2.next = 52;
10949
return this._dispatchPageOpen(this._pdfViewer.currentPageNumber, true);
10950
10951
case 52:
10952
Promise.resolve().then(function () {
10953
if (pdfDocument === _this._pdfDocument) {
10954
_this._ready = true;
10955
}
10956
});
10957
10958
case 53:
10959
case "end":
10960
return _context2.stop();
10961
}
10962
}
10963
}, _callee2, this, [[31, 42]]);
10964
}));
10965
10966
function setDocument(_x) {
10967
return _setDocument.apply(this, arguments);
10968
}
10969
10970
return setDocument;
10971
}()
10972
}, {
10973
key: "dispatchWillSave",
10974
value: function () {
10975
var _dispatchWillSave = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3(detail) {
10976
var _this$_scripting4;
10977
10978
return _regenerator["default"].wrap(function _callee3$(_context3) {
10979
while (1) {
10980
switch (_context3.prev = _context3.next) {
10981
case 0:
10982
return _context3.abrupt("return", (_this$_scripting4 = this._scripting) === null || _this$_scripting4 === void 0 ? void 0 : _this$_scripting4.dispatchEventInSandbox({
10983
id: "doc",
10984
name: "WillSave"
10985
}));
10986
10987
case 1:
10988
case "end":
10989
return _context3.stop();
10990
}
10991
}
10992
}, _callee3, this);
10993
}));
10994
10995
function dispatchWillSave(_x3) {
10996
return _dispatchWillSave.apply(this, arguments);
10997
}
10998
10999
return dispatchWillSave;
11000
}()
11001
}, {
11002
key: "dispatchDidSave",
11003
value: function () {
11004
var _dispatchDidSave = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4(detail) {
11005
var _this$_scripting5;
11006
11007
return _regenerator["default"].wrap(function _callee4$(_context4) {
11008
while (1) {
11009
switch (_context4.prev = _context4.next) {
11010
case 0:
11011
return _context4.abrupt("return", (_this$_scripting5 = this._scripting) === null || _this$_scripting5 === void 0 ? void 0 : _this$_scripting5.dispatchEventInSandbox({
11012
id: "doc",
11013
name: "DidSave"
11014
}));
11015
11016
case 1:
11017
case "end":
11018
return _context4.stop();
11019
}
11020
}
11021
}, _callee4, this);
11022
}));
11023
11024
function dispatchDidSave(_x4) {
11025
return _dispatchDidSave.apply(this, arguments);
11026
}
11027
11028
return dispatchDidSave;
11029
}()
11030
}, {
11031
key: "dispatchWillPrint",
11032
value: function () {
11033
var _dispatchWillPrint = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee5(detail) {
11034
var _this$_scripting6;
11035
11036
return _regenerator["default"].wrap(function _callee5$(_context5) {
11037
while (1) {
11038
switch (_context5.prev = _context5.next) {
11039
case 0:
11040
return _context5.abrupt("return", (_this$_scripting6 = this._scripting) === null || _this$_scripting6 === void 0 ? void 0 : _this$_scripting6.dispatchEventInSandbox({
11041
id: "doc",
11042
name: "WillPrint"
11043
}));
11044
11045
case 1:
11046
case "end":
11047
return _context5.stop();
11048
}
11049
}
11050
}, _callee5, this);
11051
}));
11052
11053
function dispatchWillPrint(_x5) {
11054
return _dispatchWillPrint.apply(this, arguments);
11055
}
11056
11057
return dispatchWillPrint;
11058
}()
11059
}, {
11060
key: "dispatchDidPrint",
11061
value: function () {
11062
var _dispatchDidPrint = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee6(detail) {
11063
var _this$_scripting7;
11064
11065
return _regenerator["default"].wrap(function _callee6$(_context6) {
11066
while (1) {
11067
switch (_context6.prev = _context6.next) {
11068
case 0:
11069
return _context6.abrupt("return", (_this$_scripting7 = this._scripting) === null || _this$_scripting7 === void 0 ? void 0 : _this$_scripting7.dispatchEventInSandbox({
11070
id: "doc",
11071
name: "DidPrint"
11072
}));
11073
11074
case 1:
11075
case "end":
11076
return _context6.stop();
11077
}
11078
}
11079
}, _callee6, this);
11080
}));
11081
11082
function dispatchDidPrint(_x6) {
11083
return _dispatchDidPrint.apply(this, arguments);
11084
}
11085
11086
return dispatchDidPrint;
11087
}()
11088
}, {
11089
key: "mouseState",
11090
get: function get() {
11091
return this._mouseState;
11092
}
11093
}, {
11094
key: "destroyPromise",
11095
get: function get() {
11096
var _this$_destroyCapabil;
11097
11098
return ((_this$_destroyCapabil = this._destroyCapability) === null || _this$_destroyCapabil === void 0 ? void 0 : _this$_destroyCapabil.promise) || null;
11099
}
11100
}, {
11101
key: "ready",
11102
get: function get() {
11103
return this._ready;
11104
}
11105
}, {
11106
key: "_internalEvents",
11107
get: function get() {
11108
return (0, _pdfjsLib.shadow)(this, "_internalEvents", new Map());
11109
}
11110
}, {
11111
key: "_domEvents",
11112
get: function get() {
11113
return (0, _pdfjsLib.shadow)(this, "_domEvents", new Map());
11114
}
11115
}, {
11116
key: "_pageOpenPending",
11117
get: function get() {
11118
return (0, _pdfjsLib.shadow)(this, "_pageOpenPending", new Set());
11119
}
11120
}, {
11121
key: "_visitedPages",
11122
get: function get() {
11123
return (0, _pdfjsLib.shadow)(this, "_visitedPages", new Map());
11124
}
11125
}, {
11126
key: "_updateFromSandbox",
11127
value: function () {
11128
var _updateFromSandbox2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee7(detail) {
11129
var isInPresentationMode, id, command, value, element, _this$_pdfDocument;
11130
11131
return _regenerator["default"].wrap(function _callee7$(_context7) {
11132
while (1) {
11133
switch (_context7.prev = _context7.next) {
11134
case 0:
11135
isInPresentationMode = this._pdfViewer.isInPresentationMode || this._pdfViewer.isChangingPresentationMode;
11136
id = detail.id, command = detail.command, value = detail.value;
11137
11138
if (id) {
11139
_context7.next = 25;
11140
break;
11141
}
11142
11143
_context7.t0 = command;
11144
_context7.next = _context7.t0 === "clear" ? 6 : _context7.t0 === "error" ? 8 : _context7.t0 === "layout" ? 10 : _context7.t0 === "page-num" ? 12 : _context7.t0 === "print" ? 14 : _context7.t0 === "println" ? 18 : _context7.t0 === "zoom" ? 20 : 24;
11145
break;
11146
11147
case 6:
11148
console.clear();
11149
return _context7.abrupt("break", 24);
11150
11151
case 8:
11152
console.error(value);
11153
return _context7.abrupt("break", 24);
11154
11155
case 10:
11156
this._pdfViewer.spreadMode = (0, _ui_utils.apiPageLayoutToSpreadMode)(value);
11157
return _context7.abrupt("break", 24);
11158
11159
case 12:
11160
this._pdfViewer.currentPageNumber = value + 1;
11161
return _context7.abrupt("break", 24);
11162
11163
case 14:
11164
_context7.next = 16;
11165
return this._pdfViewer.pagesPromise;
11166
11167
case 16:
11168
this._eventBus.dispatch("print", {
11169
source: this
11170
});
11171
11172
return _context7.abrupt("break", 24);
11173
11174
case 18:
11175
console.log(value);
11176
return _context7.abrupt("break", 24);
11177
11178
case 20:
11179
if (!isInPresentationMode) {
11180
_context7.next = 22;
11181
break;
11182
}
11183
11184
return _context7.abrupt("return");
11185
11186
case 22:
11187
this._pdfViewer.currentScaleValue = value;
11188
return _context7.abrupt("break", 24);
11189
11190
case 24:
11191
return _context7.abrupt("return");
11192
11193
case 25:
11194
if (!isInPresentationMode) {
11195
_context7.next = 28;
11196
break;
11197
}
11198
11199
if (!detail.focus) {
11200
_context7.next = 28;
11201
break;
11202
}
11203
11204
return _context7.abrupt("return");
11205
11206
case 28:
11207
element = document.getElementById(id);
11208
11209
if (element) {
11210
element.dispatchEvent(new CustomEvent("updatefromsandbox", {
11211
detail: detail
11212
}));
11213
} else {
11214
delete detail.id;
11215
(_this$_pdfDocument = this._pdfDocument) === null || _this$_pdfDocument === void 0 ? void 0 : _this$_pdfDocument.annotationStorage.setValue(id, detail);
11216
}
11217
11218
case 30:
11219
case "end":
11220
return _context7.stop();
11221
}
11222
}
11223
}, _callee7, this);
11224
}));
11225
11226
function _updateFromSandbox(_x7) {
11227
return _updateFromSandbox2.apply(this, arguments);
11228
}
11229
11230
return _updateFromSandbox;
11231
}()
11232
}, {
11233
key: "_dispatchPageOpen",
11234
value: function () {
11235
var _dispatchPageOpen2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee9(pageNumber) {
11236
var _this2 = this;
11237
11238
var initialize,
11239
pdfDocument,
11240
visitedPages,
11241
pageView,
11242
actionsPromise,
11243
_args9 = arguments;
11244
return _regenerator["default"].wrap(function _callee9$(_context9) {
11245
while (1) {
11246
switch (_context9.prev = _context9.next) {
11247
case 0:
11248
initialize = _args9.length > 1 && _args9[1] !== undefined ? _args9[1] : false;
11249
pdfDocument = this._pdfDocument, visitedPages = this._visitedPages;
11250
11251
if (initialize) {
11252
this._closeCapability = (0, _pdfjsLib.createPromiseCapability)();
11253
this._pageEventsReady = true;
11254
}
11255
11256
if (this._pageEventsReady) {
11257
_context9.next = 5;
11258
break;
11259
}
11260
11261
return _context9.abrupt("return");
11262
11263
case 5:
11264
pageView = this._pdfViewer.getPageView(pageNumber - 1);
11265
11266
if (!((pageView === null || pageView === void 0 ? void 0 : pageView.renderingState) !== _pdf_rendering_queue.RenderingStates.FINISHED)) {
11267
_context9.next = 9;
11268
break;
11269
}
11270
11271
this._pageOpenPending.add(pageNumber);
11272
11273
return _context9.abrupt("return");
11274
11275
case 9:
11276
this._pageOpenPending["delete"](pageNumber);
11277
11278
actionsPromise = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee8() {
11279
var _pageView$pdfPage, _this2$_scripting;
11280
11281
var actions;
11282
return _regenerator["default"].wrap(function _callee8$(_context8) {
11283
while (1) {
11284
switch (_context8.prev = _context8.next) {
11285
case 0:
11286
_context8.next = 2;
11287
return !visitedPages.has(pageNumber) ? (_pageView$pdfPage = pageView.pdfPage) === null || _pageView$pdfPage === void 0 ? void 0 : _pageView$pdfPage.getJSActions() : null;
11288
11289
case 2:
11290
actions = _context8.sent;
11291
11292
if (!(pdfDocument !== _this2._pdfDocument)) {
11293
_context8.next = 5;
11294
break;
11295
}
11296
11297
return _context8.abrupt("return");
11298
11299
case 5:
11300
_context8.next = 7;
11301
return (_this2$_scripting = _this2._scripting) === null || _this2$_scripting === void 0 ? void 0 : _this2$_scripting.dispatchEventInSandbox({
11302
id: "page",
11303
name: "PageOpen",
11304
pageNumber: pageNumber,
11305
actions: actions
11306
});
11307
11308
case 7:
11309
case "end":
11310
return _context8.stop();
11311
}
11312
}
11313
}, _callee8);
11314
}))();
11315
visitedPages.set(pageNumber, actionsPromise);
11316
11317
case 12:
11318
case "end":
11319
return _context9.stop();
11320
}
11321
}
11322
}, _callee9, this);
11323
}));
11324
11325
function _dispatchPageOpen(_x8) {
11326
return _dispatchPageOpen2.apply(this, arguments);
11327
}
11328
11329
return _dispatchPageOpen;
11330
}()
11331
}, {
11332
key: "_dispatchPageClose",
11333
value: function () {
11334
var _dispatchPageClose2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee10(pageNumber) {
11335
var _this$_scripting8;
11336
11337
var pdfDocument, visitedPages, actionsPromise;
11338
return _regenerator["default"].wrap(function _callee10$(_context10) {
11339
while (1) {
11340
switch (_context10.prev = _context10.next) {
11341
case 0:
11342
pdfDocument = this._pdfDocument, visitedPages = this._visitedPages;
11343
11344
if (this._pageEventsReady) {
11345
_context10.next = 3;
11346
break;
11347
}
11348
11349
return _context10.abrupt("return");
11350
11351
case 3:
11352
if (!this._pageOpenPending.has(pageNumber)) {
11353
_context10.next = 5;
11354
break;
11355
}
11356
11357
return _context10.abrupt("return");
11358
11359
case 5:
11360
actionsPromise = visitedPages.get(pageNumber);
11361
11362
if (actionsPromise) {
11363
_context10.next = 8;
11364
break;
11365
}
11366
11367
return _context10.abrupt("return");
11368
11369
case 8:
11370
visitedPages.set(pageNumber, null);
11371
_context10.next = 11;
11372
return actionsPromise;
11373
11374
case 11:
11375
if (!(pdfDocument !== this._pdfDocument)) {
11376
_context10.next = 13;
11377
break;
11378
}
11379
11380
return _context10.abrupt("return");
11381
11382
case 13:
11383
_context10.next = 15;
11384
return (_this$_scripting8 = this._scripting) === null || _this$_scripting8 === void 0 ? void 0 : _this$_scripting8.dispatchEventInSandbox({
11385
id: "page",
11386
name: "PageClose",
11387
pageNumber: pageNumber
11388
});
11389
11390
case 15:
11391
case "end":
11392
return _context10.stop();
11393
}
11394
}
11395
}, _callee10, this);
11396
}));
11397
11398
function _dispatchPageClose(_x9) {
11399
return _dispatchPageClose2.apply(this, arguments);
11400
}
11401
11402
return _dispatchPageClose;
11403
}()
11404
}, {
11405
key: "_getDocProperties",
11406
value: function () {
11407
var _getDocProperties2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee11() {
11408
return _regenerator["default"].wrap(function _callee11$(_context11) {
11409
while (1) {
11410
switch (_context11.prev = _context11.next) {
11411
case 0:
11412
if (!this._docPropertiesLookup) {
11413
_context11.next = 2;
11414
break;
11415
}
11416
11417
return _context11.abrupt("return", this._docPropertiesLookup(this._pdfDocument));
11418
11419
case 2:
11420
throw new Error("_getDocProperties: Unable to lookup properties.");
11421
11422
case 3:
11423
case "end":
11424
return _context11.stop();
11425
}
11426
}
11427
}, _callee11, this);
11428
}));
11429
11430
function _getDocProperties() {
11431
return _getDocProperties2.apply(this, arguments);
11432
}
11433
11434
return _getDocProperties;
11435
}()
11436
}, {
11437
key: "_createScripting",
11438
value: function _createScripting() {
11439
this._destroyCapability = (0, _pdfjsLib.createPromiseCapability)();
11440
11441
if (this._scripting) {
11442
throw new Error("_createScripting: Scripting already exists.");
11443
}
11444
11445
if (this._scriptingFactory) {
11446
return this._scriptingFactory.createScripting({
11447
sandboxBundleSrc: this._sandboxBundleSrc
11448
});
11449
}
11450
11451
throw new Error("_createScripting: Cannot create scripting.");
11452
}
11453
}, {
11454
key: "_destroyScripting",
11455
value: function () {
11456
var _destroyScripting2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee12() {
11457
var _this$_destroyCapabil3;
11458
11459
var _this$_destroyCapabil2, _iterator3, _step3, _step3$value, name, listener, _iterator4, _step4, _step4$value, _name2, _listener2;
11460
11461
return _regenerator["default"].wrap(function _callee12$(_context12) {
11462
while (1) {
11463
switch (_context12.prev = _context12.next) {
11464
case 0:
11465
if (this._scripting) {
11466
_context12.next = 4;
11467
break;
11468
}
11469
11470
this._pdfDocument = null;
11471
(_this$_destroyCapabil2 = this._destroyCapability) === null || _this$_destroyCapabil2 === void 0 ? void 0 : _this$_destroyCapabil2.resolve();
11472
return _context12.abrupt("return");
11473
11474
case 4:
11475
if (!this._closeCapability) {
11476
_context12.next = 8;
11477
break;
11478
}
11479
11480
_context12.next = 7;
11481
return Promise.race([this._closeCapability.promise, new Promise(function (resolve) {
11482
setTimeout(resolve, 1000);
11483
})])["catch"](function (reason) {});
11484
11485
case 7:
11486
this._closeCapability = null;
11487
11488
case 8:
11489
this._pdfDocument = null;
11490
_context12.prev = 9;
11491
_context12.next = 12;
11492
return this._scripting.destroySandbox();
11493
11494
case 12:
11495
_context12.next = 16;
11496
break;
11497
11498
case 14:
11499
_context12.prev = 14;
11500
_context12.t0 = _context12["catch"](9);
11501
11502
case 16:
11503
_iterator3 = _createForOfIteratorHelper(this._internalEvents);
11504
11505
try {
11506
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
11507
_step3$value = _slicedToArray(_step3.value, 2), name = _step3$value[0], listener = _step3$value[1];
11508
11509
this._eventBus._off(name, listener);
11510
}
11511
} catch (err) {
11512
_iterator3.e(err);
11513
} finally {
11514
_iterator3.f();
11515
}
11516
11517
this._internalEvents.clear();
11518
11519
_iterator4 = _createForOfIteratorHelper(this._domEvents);
11520
11521
try {
11522
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
11523
_step4$value = _slicedToArray(_step4.value, 2), _name2 = _step4$value[0], _listener2 = _step4$value[1];
11524
window.removeEventListener(_name2, _listener2);
11525
}
11526
} catch (err) {
11527
_iterator4.e(err);
11528
} finally {
11529
_iterator4.f();
11530
}
11531
11532
this._domEvents.clear();
11533
11534
this._pageOpenPending.clear();
11535
11536
this._visitedPages.clear();
11537
11538
this._scripting = null;
11539
delete this._mouseState.isDown;
11540
this._pageEventsReady = false;
11541
this._ready = false;
11542
(_this$_destroyCapabil3 = this._destroyCapability) === null || _this$_destroyCapabil3 === void 0 ? void 0 : _this$_destroyCapabil3.resolve();
11543
11544
case 29:
11545
case "end":
11546
return _context12.stop();
11547
}
11548
}
11549
}, _callee12, this, [[9, 14]]);
11550
}));
11551
11552
function _destroyScripting() {
11553
return _destroyScripting2.apply(this, arguments);
11554
}
11555
11556
return _destroyScripting;
11557
}()
11558
}]);
11559
11560
return PDFScriptingManager;
11561
}();
11562
11563
exports.PDFScriptingManager = PDFScriptingManager;
11564
11565
/***/ }),
11566
/* 25 */
11567
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
11568
11569
11570
11571
Object.defineProperty(exports, "__esModule", ({
11572
value: true
11573
}));
11574
exports.PDFSidebar = void 0;
11575
11576
var _ui_utils = __webpack_require__(6);
11577
11578
var _pdf_rendering_queue = __webpack_require__(10);
11579
11580
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11581
11582
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); } }
11583
11584
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
11585
11586
var UI_NOTIFICATION_CLASS = "pdfSidebarNotification";
11587
11588
var PDFSidebar = /*#__PURE__*/function () {
11589
function PDFSidebar(_ref) {
11590
var elements = _ref.elements,
11591
pdfViewer = _ref.pdfViewer,
11592
pdfThumbnailViewer = _ref.pdfThumbnailViewer,
11593
eventBus = _ref.eventBus,
11594
l10n = _ref.l10n;
11595
11596
_classCallCheck(this, PDFSidebar);
11597
11598
this.isOpen = false;
11599
this.active = _ui_utils.SidebarView.THUMBS;
11600
this.isInitialViewSet = false;
11601
this.onToggled = null;
11602
this.pdfViewer = pdfViewer;
11603
this.pdfThumbnailViewer = pdfThumbnailViewer;
11604
this.outerContainer = elements.outerContainer;
11605
this.viewerContainer = elements.viewerContainer;
11606
this.toggleButton = elements.toggleButton;
11607
this.thumbnailButton = elements.thumbnailButton;
11608
this.outlineButton = elements.outlineButton;
11609
this.attachmentsButton = elements.attachmentsButton;
11610
this.layersButton = elements.layersButton;
11611
this.thumbnailView = elements.thumbnailView;
11612
this.outlineView = elements.outlineView;
11613
this.attachmentsView = elements.attachmentsView;
11614
this.layersView = elements.layersView;
11615
this._outlineOptionsContainer = elements.outlineOptionsContainer;
11616
this._currentOutlineItemButton = elements.currentOutlineItemButton;
11617
this.eventBus = eventBus;
11618
this.l10n = l10n;
11619
11620
this._addEventListeners();
11621
}
11622
11623
_createClass(PDFSidebar, [{
11624
key: "reset",
11625
value: function reset() {
11626
this.isInitialViewSet = false;
11627
11628
this._hideUINotification(true);
11629
11630
this.switchView(_ui_utils.SidebarView.THUMBS);
11631
this.outlineButton.disabled = false;
11632
this.attachmentsButton.disabled = false;
11633
this.layersButton.disabled = false;
11634
this._currentOutlineItemButton.disabled = true;
11635
}
11636
}, {
11637
key: "visibleView",
11638
get: function get() {
11639
return this.isOpen ? this.active : _ui_utils.SidebarView.NONE;
11640
}
11641
}, {
11642
key: "isThumbnailViewVisible",
11643
get: function get() {
11644
return this.isOpen && this.active === _ui_utils.SidebarView.THUMBS;
11645
}
11646
}, {
11647
key: "isOutlineViewVisible",
11648
get: function get() {
11649
return this.isOpen && this.active === _ui_utils.SidebarView.OUTLINE;
11650
}
11651
}, {
11652
key: "isAttachmentsViewVisible",
11653
get: function get() {
11654
return this.isOpen && this.active === _ui_utils.SidebarView.ATTACHMENTS;
11655
}
11656
}, {
11657
key: "isLayersViewVisible",
11658
get: function get() {
11659
return this.isOpen && this.active === _ui_utils.SidebarView.LAYERS;
11660
}
11661
}, {
11662
key: "setInitialView",
11663
value: function setInitialView() {
11664
var view = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _ui_utils.SidebarView.NONE;
11665
11666
if (this.isInitialViewSet) {
11667
return;
11668
}
11669
11670
this.isInitialViewSet = true;
11671
11672
if (view === _ui_utils.SidebarView.NONE || view === _ui_utils.SidebarView.UNKNOWN) {
11673
this._dispatchEvent();
11674
11675
return;
11676
}
11677
11678
if (!this._switchView(view, true)) {
11679
this._dispatchEvent();
11680
}
11681
}
11682
}, {
11683
key: "switchView",
11684
value: function switchView(view) {
11685
var forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
11686
11687
this._switchView(view, forceOpen);
11688
}
11689
}, {
11690
key: "_switchView",
11691
value: function _switchView(view) {
11692
var forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
11693
var isViewChanged = view !== this.active;
11694
var shouldForceRendering = false;
11695
11696
switch (view) {
11697
case _ui_utils.SidebarView.NONE:
11698
if (this.isOpen) {
11699
this.close();
11700
return true;
11701
}
11702
11703
return false;
11704
11705
case _ui_utils.SidebarView.THUMBS:
11706
if (this.isOpen && isViewChanged) {
11707
shouldForceRendering = true;
11708
}
11709
11710
break;
11711
11712
case _ui_utils.SidebarView.OUTLINE:
11713
if (this.outlineButton.disabled) {
11714
return false;
11715
}
11716
11717
break;
11718
11719
case _ui_utils.SidebarView.ATTACHMENTS:
11720
if (this.attachmentsButton.disabled) {
11721
return false;
11722
}
11723
11724
break;
11725
11726
case _ui_utils.SidebarView.LAYERS:
11727
if (this.layersButton.disabled) {
11728
return false;
11729
}
11730
11731
break;
11732
11733
default:
11734
console.error("PDFSidebar._switchView: \"".concat(view, "\" is not a valid view."));
11735
return false;
11736
}
11737
11738
this.active = view;
11739
this.thumbnailButton.classList.toggle("toggled", view === _ui_utils.SidebarView.THUMBS);
11740
this.outlineButton.classList.toggle("toggled", view === _ui_utils.SidebarView.OUTLINE);
11741
this.attachmentsButton.classList.toggle("toggled", view === _ui_utils.SidebarView.ATTACHMENTS);
11742
this.layersButton.classList.toggle("toggled", view === _ui_utils.SidebarView.LAYERS);
11743
this.thumbnailView.classList.toggle("hidden", view !== _ui_utils.SidebarView.THUMBS);
11744
this.outlineView.classList.toggle("hidden", view !== _ui_utils.SidebarView.OUTLINE);
11745
this.attachmentsView.classList.toggle("hidden", view !== _ui_utils.SidebarView.ATTACHMENTS);
11746
this.layersView.classList.toggle("hidden", view !== _ui_utils.SidebarView.LAYERS);
11747
11748
this._outlineOptionsContainer.classList.toggle("hidden", view !== _ui_utils.SidebarView.OUTLINE);
11749
11750
if (forceOpen && !this.isOpen) {
11751
this.open();
11752
return true;
11753
}
11754
11755
if (shouldForceRendering) {
11756
this._updateThumbnailViewer();
11757
11758
this._forceRendering();
11759
}
11760
11761
if (isViewChanged) {
11762
this._dispatchEvent();
11763
}
11764
11765
return isViewChanged;
11766
}
11767
}, {
11768
key: "open",
11769
value: function open() {
11770
if (this.isOpen) {
11771
return;
11772
}
11773
11774
this.isOpen = true;
11775
this.toggleButton.classList.add("toggled");
11776
this.toggleButton.setAttribute("aria-expanded", "true");
11777
this.outerContainer.classList.add("sidebarMoving", "sidebarOpen");
11778
11779
if (this.active === _ui_utils.SidebarView.THUMBS) {
11780
this._updateThumbnailViewer();
11781
}
11782
11783
this._forceRendering();
11784
11785
this._dispatchEvent();
11786
11787
this._hideUINotification();
11788
}
11789
}, {
11790
key: "close",
11791
value: function close() {
11792
if (!this.isOpen) {
11793
return;
11794
}
11795
11796
this.isOpen = false;
11797
this.toggleButton.classList.remove("toggled");
11798
this.toggleButton.setAttribute("aria-expanded", "false");
11799
this.outerContainer.classList.add("sidebarMoving");
11800
this.outerContainer.classList.remove("sidebarOpen");
11801
11802
this._forceRendering();
11803
11804
this._dispatchEvent();
11805
}
11806
}, {
11807
key: "toggle",
11808
value: function toggle() {
11809
if (this.isOpen) {
11810
this.close();
11811
} else {
11812
this.open();
11813
}
11814
}
11815
}, {
11816
key: "_dispatchEvent",
11817
value: function _dispatchEvent() {
11818
this.eventBus.dispatch("sidebarviewchanged", {
11819
source: this,
11820
view: this.visibleView
11821
});
11822
}
11823
}, {
11824
key: "_forceRendering",
11825
value: function _forceRendering() {
11826
if (this.onToggled) {
11827
this.onToggled();
11828
} else {
11829
this.pdfViewer.forceRendering();
11830
this.pdfThumbnailViewer.forceRendering();
11831
}
11832
}
11833
}, {
11834
key: "_updateThumbnailViewer",
11835
value: function _updateThumbnailViewer() {
11836
var pdfViewer = this.pdfViewer,
11837
pdfThumbnailViewer = this.pdfThumbnailViewer;
11838
var pagesCount = pdfViewer.pagesCount;
11839
11840
for (var pageIndex = 0; pageIndex < pagesCount; pageIndex++) {
11841
var pageView = pdfViewer.getPageView(pageIndex);
11842
11843
if ((pageView === null || pageView === void 0 ? void 0 : pageView.renderingState) === _pdf_rendering_queue.RenderingStates.FINISHED) {
11844
var thumbnailView = pdfThumbnailViewer.getThumbnail(pageIndex);
11845
thumbnailView.setImage(pageView);
11846
}
11847
}
11848
11849
pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber);
11850
}
11851
}, {
11852
key: "_showUINotification",
11853
value: function _showUINotification() {
11854
var _this = this;
11855
11856
this.l10n.get("toggle_sidebar_notification2.title").then(function (msg) {
11857
_this.toggleButton.title = msg;
11858
});
11859
11860
if (!this.isOpen) {
11861
this.toggleButton.classList.add(UI_NOTIFICATION_CLASS);
11862
}
11863
}
11864
}, {
11865
key: "_hideUINotification",
11866
value: function _hideUINotification() {
11867
var _this2 = this;
11868
11869
var reset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
11870
11871
if (this.isOpen || reset) {
11872
this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS);
11873
}
11874
11875
if (reset) {
11876
this.l10n.get("toggle_sidebar.title").then(function (msg) {
11877
_this2.toggleButton.title = msg;
11878
});
11879
}
11880
}
11881
}, {
11882
key: "_addEventListeners",
11883
value: function _addEventListeners() {
11884
var _this3 = this;
11885
11886
this.viewerContainer.addEventListener("transitionend", function (evt) {
11887
if (evt.target === _this3.viewerContainer) {
11888
_this3.outerContainer.classList.remove("sidebarMoving");
11889
}
11890
});
11891
this.toggleButton.addEventListener("click", function () {
11892
_this3.toggle();
11893
});
11894
this.thumbnailButton.addEventListener("click", function () {
11895
_this3.switchView(_ui_utils.SidebarView.THUMBS);
11896
});
11897
this.outlineButton.addEventListener("click", function () {
11898
_this3.switchView(_ui_utils.SidebarView.OUTLINE);
11899
});
11900
this.outlineButton.addEventListener("dblclick", function () {
11901
_this3.eventBus.dispatch("toggleoutlinetree", {
11902
source: _this3
11903
});
11904
});
11905
this.attachmentsButton.addEventListener("click", function () {
11906
_this3.switchView(_ui_utils.SidebarView.ATTACHMENTS);
11907
});
11908
this.layersButton.addEventListener("click", function () {
11909
_this3.switchView(_ui_utils.SidebarView.LAYERS);
11910
});
11911
this.layersButton.addEventListener("dblclick", function () {
11912
_this3.eventBus.dispatch("resetlayers", {
11913
source: _this3
11914
});
11915
});
11916
11917
this._currentOutlineItemButton.addEventListener("click", function () {
11918
_this3.eventBus.dispatch("currentoutlineitem", {
11919
source: _this3
11920
});
11921
});
11922
11923
var onTreeLoaded = function onTreeLoaded(count, button, view) {
11924
button.disabled = !count;
11925
11926
if (count) {
11927
_this3._showUINotification();
11928
} else if (_this3.active === view) {
11929
_this3.switchView(_ui_utils.SidebarView.THUMBS);
11930
}
11931
};
11932
11933
this.eventBus._on("outlineloaded", function (evt) {
11934
onTreeLoaded(evt.outlineCount, _this3.outlineButton, _ui_utils.SidebarView.OUTLINE);
11935
11936
if (evt.enableCurrentOutlineItemButton) {
11937
_this3.pdfViewer.pagesPromise.then(function () {
11938
_this3._currentOutlineItemButton.disabled = !_this3.isInitialViewSet;
11939
});
11940
}
11941
});
11942
11943
this.eventBus._on("attachmentsloaded", function (evt) {
11944
onTreeLoaded(evt.attachmentsCount, _this3.attachmentsButton, _ui_utils.SidebarView.ATTACHMENTS);
11945
});
11946
11947
this.eventBus._on("layersloaded", function (evt) {
11948
onTreeLoaded(evt.layersCount, _this3.layersButton, _ui_utils.SidebarView.LAYERS);
11949
});
11950
11951
this.eventBus._on("presentationmodechanged", function (evt) {
11952
if (evt.state === _ui_utils.PresentationModeState.NORMAL && _this3.isThumbnailViewVisible) {
11953
_this3._updateThumbnailViewer();
11954
}
11955
});
11956
}
11957
}]);
11958
11959
return PDFSidebar;
11960
}();
11961
11962
exports.PDFSidebar = PDFSidebar;
11963
11964
/***/ }),
11965
/* 26 */
11966
/***/ ((__unused_webpack_module, exports) => {
11967
11968
11969
11970
Object.defineProperty(exports, "__esModule", ({
11971
value: true
11972
}));
11973
exports.PDFSidebarResizer = void 0;
11974
11975
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11976
11977
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); } }
11978
11979
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
11980
11981
var SIDEBAR_WIDTH_VAR = "--sidebar-width";
11982
var SIDEBAR_MIN_WIDTH = 200;
11983
var SIDEBAR_RESIZING_CLASS = "sidebarResizing";
11984
11985
var PDFSidebarResizer = /*#__PURE__*/function () {
11986
function PDFSidebarResizer(options, eventBus, l10n) {
11987
var _this = this;
11988
11989
_classCallCheck(this, PDFSidebarResizer);
11990
11991
this.isRTL = false;
11992
this.sidebarOpen = false;
11993
this.doc = document.documentElement;
11994
this._width = null;
11995
this._outerContainerWidth = null;
11996
this._boundEvents = Object.create(null);
11997
this.outerContainer = options.outerContainer;
11998
this.resizer = options.resizer;
11999
this.eventBus = eventBus;
12000
l10n.getDirection().then(function (dir) {
12001
_this.isRTL = dir === "rtl";
12002
});
12003
12004
this._addEventListeners();
12005
}
12006
12007
_createClass(PDFSidebarResizer, [{
12008
key: "outerContainerWidth",
12009
get: function get() {
12010
return this._outerContainerWidth || (this._outerContainerWidth = this.outerContainer.clientWidth);
12011
}
12012
}, {
12013
key: "_updateWidth",
12014
value: function _updateWidth() {
12015
var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
12016
var maxWidth = Math.floor(this.outerContainerWidth / 2);
12017
12018
if (width > maxWidth) {
12019
width = maxWidth;
12020
}
12021
12022
if (width < SIDEBAR_MIN_WIDTH) {
12023
width = SIDEBAR_MIN_WIDTH;
12024
}
12025
12026
if (width === this._width) {
12027
return false;
12028
}
12029
12030
this._width = width;
12031
this.doc.style.setProperty(SIDEBAR_WIDTH_VAR, "".concat(width, "px"));
12032
return true;
12033
}
12034
}, {
12035
key: "_mouseMove",
12036
value: function _mouseMove(evt) {
12037
var width = evt.clientX;
12038
12039
if (this.isRTL) {
12040
width = this.outerContainerWidth - width;
12041
}
12042
12043
this._updateWidth(width);
12044
}
12045
}, {
12046
key: "_mouseUp",
12047
value: function _mouseUp(evt) {
12048
this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS);
12049
this.eventBus.dispatch("resize", {
12050
source: this
12051
});
12052
var _boundEvents = this._boundEvents;
12053
window.removeEventListener("mousemove", _boundEvents.mouseMove);
12054
window.removeEventListener("mouseup", _boundEvents.mouseUp);
12055
}
12056
}, {
12057
key: "_addEventListeners",
12058
value: function _addEventListeners() {
12059
var _this2 = this;
12060
12061
var _boundEvents = this._boundEvents;
12062
_boundEvents.mouseMove = this._mouseMove.bind(this);
12063
_boundEvents.mouseUp = this._mouseUp.bind(this);
12064
this.resizer.addEventListener("mousedown", function (evt) {
12065
if (evt.button !== 0) {
12066
return;
12067
}
12068
12069
_this2.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS);
12070
12071
window.addEventListener("mousemove", _boundEvents.mouseMove);
12072
window.addEventListener("mouseup", _boundEvents.mouseUp);
12073
});
12074
12075
this.eventBus._on("sidebarviewchanged", function (evt) {
12076
_this2.sidebarOpen = !!(evt !== null && evt !== void 0 && evt.view);
12077
});
12078
12079
this.eventBus._on("resize", function (evt) {
12080
if ((evt === null || evt === void 0 ? void 0 : evt.source) !== window) {
12081
return;
12082
}
12083
12084
_this2._outerContainerWidth = null;
12085
12086
if (!_this2._width) {
12087
return;
12088
}
12089
12090
if (!_this2.sidebarOpen) {
12091
_this2._updateWidth(_this2._width);
12092
12093
return;
12094
}
12095
12096
_this2.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS);
12097
12098
var updated = _this2._updateWidth(_this2._width);
12099
12100
Promise.resolve().then(function () {
12101
_this2.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS);
12102
12103
if (updated) {
12104
_this2.eventBus.dispatch("resize", {
12105
source: _this2
12106
});
12107
}
12108
});
12109
});
12110
}
12111
}]);
12112
12113
return PDFSidebarResizer;
12114
}();
12115
12116
exports.PDFSidebarResizer = PDFSidebarResizer;
12117
12118
/***/ }),
12119
/* 27 */
12120
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12121
12122
12123
12124
Object.defineProperty(exports, "__esModule", ({
12125
value: true
12126
}));
12127
exports.PDFThumbnailViewer = void 0;
12128
12129
var _ui_utils = __webpack_require__(6);
12130
12131
var _pdf_thumbnail_view = __webpack_require__(28);
12132
12133
var _pdf_rendering_queue = __webpack_require__(10);
12134
12135
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12136
12137
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); } }
12138
12139
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
12140
12141
var THUMBNAIL_SCROLL_MARGIN = -19;
12142
var THUMBNAIL_SELECTED_CLASS = "selected";
12143
12144
var PDFThumbnailViewer = /*#__PURE__*/function () {
12145
function PDFThumbnailViewer(_ref) {
12146
var _this = this;
12147
12148
var container = _ref.container,
12149
eventBus = _ref.eventBus,
12150
linkService = _ref.linkService,
12151
renderingQueue = _ref.renderingQueue,
12152
l10n = _ref.l10n;
12153
12154
_classCallCheck(this, PDFThumbnailViewer);
12155
12156
this.container = container;
12157
this.linkService = linkService;
12158
this.renderingQueue = renderingQueue;
12159
this.l10n = l10n;
12160
this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdated.bind(this));
12161
12162
this._resetView();
12163
12164
eventBus._on("optionalcontentconfigchanged", function () {
12165
_this._setImageDisabled = true;
12166
});
12167
}
12168
12169
_createClass(PDFThumbnailViewer, [{
12170
key: "_scrollUpdated",
12171
value: function _scrollUpdated() {
12172
this.renderingQueue.renderHighestPriority();
12173
}
12174
}, {
12175
key: "getThumbnail",
12176
value: function getThumbnail(index) {
12177
return this._thumbnails[index];
12178
}
12179
}, {
12180
key: "_getVisibleThumbs",
12181
value: function _getVisibleThumbs() {
12182
return (0, _ui_utils.getVisibleElements)({
12183
scrollEl: this.container,
12184
views: this._thumbnails
12185
});
12186
}
12187
}, {
12188
key: "scrollThumbnailIntoView",
12189
value: function scrollThumbnailIntoView(pageNumber) {
12190
if (!this.pdfDocument) {
12191
return;
12192
}
12193
12194
var thumbnailView = this._thumbnails[pageNumber - 1];
12195
12196
if (!thumbnailView) {
12197
console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.');
12198
return;
12199
}
12200
12201
if (pageNumber !== this._currentPageNumber) {
12202
var prevThumbnailView = this._thumbnails[this._currentPageNumber - 1];
12203
prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS);
12204
thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS);
12205
}
12206
12207
var visibleThumbs = this._getVisibleThumbs();
12208
12209
var numVisibleThumbs = visibleThumbs.views.length;
12210
12211
if (numVisibleThumbs > 0) {
12212
var first = visibleThumbs.first.id;
12213
var last = numVisibleThumbs > 1 ? visibleThumbs.last.id : first;
12214
var shouldScroll = false;
12215
12216
if (pageNumber <= first || pageNumber >= last) {
12217
shouldScroll = true;
12218
} else {
12219
visibleThumbs.views.some(function (view) {
12220
if (view.id !== pageNumber) {
12221
return false;
12222
}
12223
12224
shouldScroll = view.percent < 100;
12225
return true;
12226
});
12227
}
12228
12229
if (shouldScroll) {
12230
(0, _ui_utils.scrollIntoView)(thumbnailView.div, {
12231
top: THUMBNAIL_SCROLL_MARGIN
12232
});
12233
}
12234
}
12235
12236
this._currentPageNumber = pageNumber;
12237
}
12238
}, {
12239
key: "pagesRotation",
12240
get: function get() {
12241
return this._pagesRotation;
12242
},
12243
set: function set(rotation) {
12244
if (!(0, _ui_utils.isValidRotation)(rotation)) {
12245
throw new Error("Invalid thumbnails rotation angle.");
12246
}
12247
12248
if (!this.pdfDocument) {
12249
return;
12250
}
12251
12252
if (this._pagesRotation === rotation) {
12253
return;
12254
}
12255
12256
this._pagesRotation = rotation;
12257
12258
for (var i = 0, ii = this._thumbnails.length; i < ii; i++) {
12259
this._thumbnails[i].update(rotation);
12260
}
12261
}
12262
}, {
12263
key: "cleanup",
12264
value: function cleanup() {
12265
for (var i = 0, ii = this._thumbnails.length; i < ii; i++) {
12266
if (this._thumbnails[i] && this._thumbnails[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) {
12267
this._thumbnails[i].reset();
12268
}
12269
}
12270
12271
_pdf_thumbnail_view.TempImageFactory.destroyCanvas();
12272
}
12273
}, {
12274
key: "_resetView",
12275
value: function _resetView() {
12276
this._thumbnails = [];
12277
this._currentPageNumber = 1;
12278
this._pageLabels = null;
12279
this._pagesRotation = 0;
12280
this._optionalContentConfigPromise = null;
12281
this._pagesRequests = new WeakMap();
12282
this._setImageDisabled = false;
12283
this.container.textContent = "";
12284
}
12285
}, {
12286
key: "setDocument",
12287
value: function setDocument(pdfDocument) {
12288
var _this2 = this;
12289
12290
if (this.pdfDocument) {
12291
this._cancelRendering();
12292
12293
this._resetView();
12294
}
12295
12296
this.pdfDocument = pdfDocument;
12297
12298
if (!pdfDocument) {
12299
return;
12300
}
12301
12302
var firstPagePromise = pdfDocument.getPage(1);
12303
var optionalContentConfigPromise = pdfDocument.getOptionalContentConfig();
12304
firstPagePromise.then(function (firstPdfPage) {
12305
_this2._optionalContentConfigPromise = optionalContentConfigPromise;
12306
var pagesCount = pdfDocument.numPages;
12307
var viewport = firstPdfPage.getViewport({
12308
scale: 1
12309
});
12310
12311
var checkSetImageDisabled = function checkSetImageDisabled() {
12312
return _this2._setImageDisabled;
12313
};
12314
12315
for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) {
12316
var thumbnail = new _pdf_thumbnail_view.PDFThumbnailView({
12317
container: _this2.container,
12318
id: pageNum,
12319
defaultViewport: viewport.clone(),
12320
optionalContentConfigPromise: optionalContentConfigPromise,
12321
linkService: _this2.linkService,
12322
renderingQueue: _this2.renderingQueue,
12323
checkSetImageDisabled: checkSetImageDisabled,
12324
disableCanvasToImageConversion: false,
12325
l10n: _this2.l10n
12326
});
12327
12328
_this2._thumbnails.push(thumbnail);
12329
}
12330
12331
var firstThumbnailView = _this2._thumbnails[0];
12332
12333
if (firstThumbnailView) {
12334
firstThumbnailView.setPdfPage(firstPdfPage);
12335
}
12336
12337
var thumbnailView = _this2._thumbnails[_this2._currentPageNumber - 1];
12338
thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS);
12339
})["catch"](function (reason) {
12340
console.error("Unable to initialize thumbnail viewer", reason);
12341
});
12342
}
12343
}, {
12344
key: "_cancelRendering",
12345
value: function _cancelRendering() {
12346
for (var i = 0, ii = this._thumbnails.length; i < ii; i++) {
12347
if (this._thumbnails[i]) {
12348
this._thumbnails[i].cancelRendering();
12349
}
12350
}
12351
}
12352
}, {
12353
key: "setPageLabels",
12354
value: function setPageLabels(labels) {
12355
if (!this.pdfDocument) {
12356
return;
12357
}
12358
12359
if (!labels) {
12360
this._pageLabels = null;
12361
} else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) {
12362
this._pageLabels = null;
12363
console.error("PDFThumbnailViewer_setPageLabels: Invalid page labels.");
12364
} else {
12365
this._pageLabels = labels;
12366
}
12367
12368
for (var i = 0, ii = this._thumbnails.length; i < ii; i++) {
12369
var _this$_pageLabels$i, _this$_pageLabels;
12370
12371
this._thumbnails[i].setPageLabel((_this$_pageLabels$i = (_this$_pageLabels = this._pageLabels) === null || _this$_pageLabels === void 0 ? void 0 : _this$_pageLabels[i]) !== null && _this$_pageLabels$i !== void 0 ? _this$_pageLabels$i : null);
12372
}
12373
}
12374
}, {
12375
key: "_ensurePdfPageLoaded",
12376
value: function _ensurePdfPageLoaded(thumbView) {
12377
var _this3 = this;
12378
12379
if (thumbView.pdfPage) {
12380
return Promise.resolve(thumbView.pdfPage);
12381
}
12382
12383
if (this._pagesRequests.has(thumbView)) {
12384
return this._pagesRequests.get(thumbView);
12385
}
12386
12387
var promise = this.pdfDocument.getPage(thumbView.id).then(function (pdfPage) {
12388
if (!thumbView.pdfPage) {
12389
thumbView.setPdfPage(pdfPage);
12390
}
12391
12392
_this3._pagesRequests["delete"](thumbView);
12393
12394
return pdfPage;
12395
})["catch"](function (reason) {
12396
console.error("Unable to get page for thumb view", reason);
12397
12398
_this3._pagesRequests["delete"](thumbView);
12399
});
12400
12401
this._pagesRequests.set(thumbView, promise);
12402
12403
return promise;
12404
}
12405
}, {
12406
key: "forceRendering",
12407
value: function forceRendering() {
12408
var _this4 = this;
12409
12410
var visibleThumbs = this._getVisibleThumbs();
12411
12412
var thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, this.scroll.down);
12413
12414
if (thumbView) {
12415
this._ensurePdfPageLoaded(thumbView).then(function () {
12416
_this4.renderingQueue.renderView(thumbView);
12417
});
12418
12419
return true;
12420
}
12421
12422
return false;
12423
}
12424
}]);
12425
12426
return PDFThumbnailViewer;
12427
}();
12428
12429
exports.PDFThumbnailViewer = PDFThumbnailViewer;
12430
12431
/***/ }),
12432
/* 28 */
12433
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12434
12435
12436
12437
Object.defineProperty(exports, "__esModule", ({
12438
value: true
12439
}));
12440
exports.TempImageFactory = exports.PDFThumbnailView = void 0;
12441
12442
var _regenerator = _interopRequireDefault(__webpack_require__(4));
12443
12444
var _ui_utils = __webpack_require__(6);
12445
12446
var _pdfjsLib = __webpack_require__(7);
12447
12448
var _pdf_rendering_queue = __webpack_require__(10);
12449
12450
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12451
12452
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12453
12454
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12455
12456
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12457
12458
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
12459
12460
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
12461
12462
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
12463
12464
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
12465
12466
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
12467
12468
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12469
12470
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); } }
12471
12472
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
12473
12474
var MAX_NUM_SCALING_STEPS = 3;
12475
var THUMBNAIL_CANVAS_BORDER_WIDTH = 1;
12476
var THUMBNAIL_WIDTH = 98;
12477
12478
var TempImageFactory = function TempImageFactoryClosure() {
12479
var tempCanvasCache = null;
12480
return {
12481
getCanvas: function getCanvas(width, height) {
12482
var tempCanvas = tempCanvasCache;
12483
12484
if (!tempCanvas) {
12485
tempCanvas = document.createElement("canvas");
12486
tempCanvasCache = tempCanvas;
12487
}
12488
12489
tempCanvas.width = width;
12490
tempCanvas.height = height;
12491
tempCanvas.mozOpaque = true;
12492
var ctx = tempCanvas.getContext("2d", {
12493
alpha: false
12494
});
12495
ctx.save();
12496
ctx.fillStyle = "rgb(255, 255, 255)";
12497
ctx.fillRect(0, 0, width, height);
12498
ctx.restore();
12499
return tempCanvas;
12500
},
12501
destroyCanvas: function destroyCanvas() {
12502
var tempCanvas = tempCanvasCache;
12503
12504
if (tempCanvas) {
12505
tempCanvas.width = 0;
12506
tempCanvas.height = 0;
12507
}
12508
12509
tempCanvasCache = null;
12510
}
12511
};
12512
}();
12513
12514
exports.TempImageFactory = TempImageFactory;
12515
12516
var PDFThumbnailView = /*#__PURE__*/function () {
12517
function PDFThumbnailView(_ref) {
12518
var container = _ref.container,
12519
id = _ref.id,
12520
defaultViewport = _ref.defaultViewport,
12521
optionalContentConfigPromise = _ref.optionalContentConfigPromise,
12522
linkService = _ref.linkService,
12523
renderingQueue = _ref.renderingQueue,
12524
checkSetImageDisabled = _ref.checkSetImageDisabled,
12525
_ref$disableCanvasToI = _ref.disableCanvasToImageConversion,
12526
disableCanvasToImageConversion = _ref$disableCanvasToI === void 0 ? false : _ref$disableCanvasToI,
12527
l10n = _ref.l10n;
12528
12529
_classCallCheck(this, PDFThumbnailView);
12530
12531
this.id = id;
12532
this.renderingId = "thumbnail" + id;
12533
this.pageLabel = null;
12534
this.pdfPage = null;
12535
this.rotation = 0;
12536
this.viewport = defaultViewport;
12537
this.pdfPageRotate = defaultViewport.rotation;
12538
this._optionalContentConfigPromise = optionalContentConfigPromise || null;
12539
this.linkService = linkService;
12540
this.renderingQueue = renderingQueue;
12541
this.renderTask = null;
12542
this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;
12543
this.resume = null;
12544
12545
this._checkSetImageDisabled = checkSetImageDisabled || function () {
12546
return false;
12547
};
12548
12549
this.disableCanvasToImageConversion = disableCanvasToImageConversion;
12550
this.pageWidth = this.viewport.width;
12551
this.pageHeight = this.viewport.height;
12552
this.pageRatio = this.pageWidth / this.pageHeight;
12553
this.canvasWidth = THUMBNAIL_WIDTH;
12554
this.canvasHeight = this.canvasWidth / this.pageRatio | 0;
12555
this.scale = this.canvasWidth / this.pageWidth;
12556
this.l10n = l10n;
12557
var anchor = document.createElement("a");
12558
anchor.href = linkService.getAnchorUrl("#page=" + id);
12559
12560
this._thumbPageTitle.then(function (msg) {
12561
anchor.title = msg;
12562
});
12563
12564
anchor.onclick = function () {
12565
linkService.goToPage(id);
12566
return false;
12567
};
12568
12569
this.anchor = anchor;
12570
var div = document.createElement("div");
12571
div.className = "thumbnail";
12572
div.setAttribute("data-page-number", this.id);
12573
this.div = div;
12574
var ring = document.createElement("div");
12575
ring.className = "thumbnailSelectionRing";
12576
var borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH;
12577
ring.style.width = this.canvasWidth + borderAdjustment + "px";
12578
ring.style.height = this.canvasHeight + borderAdjustment + "px";
12579
this.ring = ring;
12580
div.appendChild(ring);
12581
anchor.appendChild(div);
12582
container.appendChild(anchor);
12583
}
12584
12585
_createClass(PDFThumbnailView, [{
12586
key: "setPdfPage",
12587
value: function setPdfPage(pdfPage) {
12588
this.pdfPage = pdfPage;
12589
this.pdfPageRotate = pdfPage.rotate;
12590
var totalRotation = (this.rotation + this.pdfPageRotate) % 360;
12591
this.viewport = pdfPage.getViewport({
12592
scale: 1,
12593
rotation: totalRotation
12594
});
12595
this.reset();
12596
}
12597
}, {
12598
key: "reset",
12599
value: function reset() {
12600
this.cancelRendering();
12601
this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;
12602
this.pageWidth = this.viewport.width;
12603
this.pageHeight = this.viewport.height;
12604
this.pageRatio = this.pageWidth / this.pageHeight;
12605
this.canvasHeight = this.canvasWidth / this.pageRatio | 0;
12606
this.scale = this.canvasWidth / this.pageWidth;
12607
this.div.removeAttribute("data-loaded");
12608
var ring = this.ring;
12609
var childNodes = ring.childNodes;
12610
12611
for (var i = childNodes.length - 1; i >= 0; i--) {
12612
ring.removeChild(childNodes[i]);
12613
}
12614
12615
var borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH;
12616
ring.style.width = this.canvasWidth + borderAdjustment + "px";
12617
ring.style.height = this.canvasHeight + borderAdjustment + "px";
12618
12619
if (this.canvas) {
12620
this.canvas.width = 0;
12621
this.canvas.height = 0;
12622
delete this.canvas;
12623
}
12624
12625
if (this.image) {
12626
this.image.removeAttribute("src");
12627
delete this.image;
12628
}
12629
}
12630
}, {
12631
key: "update",
12632
value: function update(rotation) {
12633
if (typeof rotation !== "undefined") {
12634
this.rotation = rotation;
12635
}
12636
12637
var totalRotation = (this.rotation + this.pdfPageRotate) % 360;
12638
this.viewport = this.viewport.clone({
12639
scale: 1,
12640
rotation: totalRotation
12641
});
12642
this.reset();
12643
}
12644
}, {
12645
key: "cancelRendering",
12646
value: function cancelRendering() {
12647
if (this.renderTask) {
12648
this.renderTask.cancel();
12649
this.renderTask = null;
12650
}
12651
12652
this.resume = null;
12653
}
12654
}, {
12655
key: "_getPageDrawContext",
12656
value: function _getPageDrawContext() {
12657
var canvas = document.createElement("canvas");
12658
this.canvas = canvas;
12659
canvas.mozOpaque = true;
12660
var ctx = canvas.getContext("2d", {
12661
alpha: false
12662
});
12663
var outputScale = (0, _ui_utils.getOutputScale)(ctx);
12664
canvas.width = this.canvasWidth * outputScale.sx | 0;
12665
canvas.height = this.canvasHeight * outputScale.sy | 0;
12666
canvas.style.width = this.canvasWidth + "px";
12667
canvas.style.height = this.canvasHeight + "px";
12668
var transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null;
12669
return [ctx, transform];
12670
}
12671
}, {
12672
key: "_convertCanvasToImage",
12673
value: function _convertCanvasToImage() {
12674
var _this = this;
12675
12676
if (!this.canvas) {
12677
return;
12678
}
12679
12680
if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) {
12681
return;
12682
}
12683
12684
var className = "thumbnailImage";
12685
12686
if (this.disableCanvasToImageConversion) {
12687
this.canvas.className = className;
12688
12689
this._thumbPageCanvas.then(function (msg) {
12690
_this.canvas.setAttribute("aria-label", msg);
12691
});
12692
12693
this.div.setAttribute("data-loaded", true);
12694
this.ring.appendChild(this.canvas);
12695
return;
12696
}
12697
12698
var image = document.createElement("img");
12699
image.className = className;
12700
12701
this._thumbPageCanvas.then(function (msg) {
12702
image.setAttribute("aria-label", msg);
12703
});
12704
12705
image.style.width = this.canvasWidth + "px";
12706
image.style.height = this.canvasHeight + "px";
12707
image.src = this.canvas.toDataURL();
12708
this.image = image;
12709
this.div.setAttribute("data-loaded", true);
12710
this.ring.appendChild(image);
12711
this.canvas.width = 0;
12712
this.canvas.height = 0;
12713
delete this.canvas;
12714
}
12715
}, {
12716
key: "draw",
12717
value: function draw() {
12718
var _this2 = this;
12719
12720
if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) {
12721
console.error("Must be in new state before drawing");
12722
return Promise.resolve(undefined);
12723
}
12724
12725
var pdfPage = this.pdfPage;
12726
12727
if (!pdfPage) {
12728
this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;
12729
return Promise.reject(new Error("pdfPage is not loaded"));
12730
}
12731
12732
this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;
12733
12734
var finishRenderTask = /*#__PURE__*/function () {
12735
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
12736
var error,
12737
_args = arguments;
12738
return _regenerator["default"].wrap(function _callee$(_context) {
12739
while (1) {
12740
switch (_context.prev = _context.next) {
12741
case 0:
12742
error = _args.length > 0 && _args[0] !== undefined ? _args[0] : null;
12743
12744
if (renderTask === _this2.renderTask) {
12745
_this2.renderTask = null;
12746
}
12747
12748
if (!(error instanceof _pdfjsLib.RenderingCancelledException)) {
12749
_context.next = 4;
12750
break;
12751
}
12752
12753
return _context.abrupt("return");
12754
12755
case 4:
12756
_this2.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;
12757
12758
_this2._convertCanvasToImage();
12759
12760
if (!error) {
12761
_context.next = 8;
12762
break;
12763
}
12764
12765
throw error;
12766
12767
case 8:
12768
case "end":
12769
return _context.stop();
12770
}
12771
}
12772
}, _callee);
12773
}));
12774
12775
return function finishRenderTask() {
12776
return _ref2.apply(this, arguments);
12777
};
12778
}();
12779
12780
var _this$_getPageDrawCon = this._getPageDrawContext(),
12781
_this$_getPageDrawCon2 = _slicedToArray(_this$_getPageDrawCon, 2),
12782
ctx = _this$_getPageDrawCon2[0],
12783
transform = _this$_getPageDrawCon2[1];
12784
12785
var drawViewport = this.viewport.clone({
12786
scale: this.scale
12787
});
12788
12789
var renderContinueCallback = function renderContinueCallback(cont) {
12790
if (!_this2.renderingQueue.isHighestPriority(_this2)) {
12791
_this2.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED;
12792
12793
_this2.resume = function () {
12794
_this2.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;
12795
cont();
12796
};
12797
12798
return;
12799
}
12800
12801
cont();
12802
};
12803
12804
var renderContext = {
12805
canvasContext: ctx,
12806
transform: transform,
12807
viewport: drawViewport,
12808
optionalContentConfigPromise: this._optionalContentConfigPromise
12809
};
12810
var renderTask = this.renderTask = pdfPage.render(renderContext);
12811
renderTask.onContinue = renderContinueCallback;
12812
var resultPromise = renderTask.promise.then(function () {
12813
finishRenderTask(null);
12814
}, function (error) {
12815
finishRenderTask(error);
12816
});
12817
resultPromise["finally"](function () {
12818
var _this2$pdfPage;
12819
12820
var pageCached = _this2.linkService.isPageCached(_this2.id);
12821
12822
if (pageCached) {
12823
return;
12824
}
12825
12826
(_this2$pdfPage = _this2.pdfPage) === null || _this2$pdfPage === void 0 ? void 0 : _this2$pdfPage.cleanup();
12827
});
12828
return resultPromise;
12829
}
12830
}, {
12831
key: "setImage",
12832
value: function setImage(pageView) {
12833
if (this._checkSetImageDisabled()) {
12834
return;
12835
}
12836
12837
if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) {
12838
return;
12839
}
12840
12841
var img = pageView.canvas;
12842
12843
if (!img) {
12844
return;
12845
}
12846
12847
if (!this.pdfPage) {
12848
this.setPdfPage(pageView.pdfPage);
12849
}
12850
12851
this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;
12852
12853
var _this$_getPageDrawCon3 = this._getPageDrawContext(),
12854
_this$_getPageDrawCon4 = _slicedToArray(_this$_getPageDrawCon3, 1),
12855
ctx = _this$_getPageDrawCon4[0];
12856
12857
var canvas = ctx.canvas;
12858
12859
if (img.width <= 2 * canvas.width) {
12860
ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height);
12861
12862
this._convertCanvasToImage();
12863
12864
return;
12865
}
12866
12867
var reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS;
12868
var reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS;
12869
var reducedImage = TempImageFactory.getCanvas(reducedWidth, reducedHeight);
12870
var reducedImageCtx = reducedImage.getContext("2d");
12871
12872
while (reducedWidth > img.width || reducedHeight > img.height) {
12873
reducedWidth >>= 1;
12874
reducedHeight >>= 1;
12875
}
12876
12877
reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight);
12878
12879
while (reducedWidth > 2 * canvas.width) {
12880
reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1);
12881
reducedWidth >>= 1;
12882
reducedHeight >>= 1;
12883
}
12884
12885
ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height);
12886
12887
this._convertCanvasToImage();
12888
}
12889
}, {
12890
key: "_thumbPageTitle",
12891
get: function get() {
12892
var _this$pageLabel;
12893
12894
return this.l10n.get("thumb_page_title", {
12895
page: (_this$pageLabel = this.pageLabel) !== null && _this$pageLabel !== void 0 ? _this$pageLabel : this.id
12896
});
12897
}
12898
}, {
12899
key: "_thumbPageCanvas",
12900
get: function get() {
12901
var _this$pageLabel2;
12902
12903
return this.l10n.get("thumb_page_canvas", {
12904
page: (_this$pageLabel2 = this.pageLabel) !== null && _this$pageLabel2 !== void 0 ? _this$pageLabel2 : this.id
12905
});
12906
}
12907
}, {
12908
key: "setPageLabel",
12909
value: function setPageLabel(label) {
12910
var _this3 = this;
12911
12912
this.pageLabel = typeof label === "string" ? label : null;
12913
12914
this._thumbPageTitle.then(function (msg) {
12915
_this3.anchor.title = msg;
12916
});
12917
12918
if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) {
12919
return;
12920
}
12921
12922
this._thumbPageCanvas.then(function (msg) {
12923
if (_this3.image) {
12924
_this3.image.setAttribute("aria-label", msg);
12925
} else if (_this3.disableCanvasToImageConversion && _this3.canvas) {
12926
_this3.canvas.setAttribute("aria-label", msg);
12927
}
12928
});
12929
}
12930
}]);
12931
12932
return PDFThumbnailView;
12933
}();
12934
12935
exports.PDFThumbnailView = PDFThumbnailView;
12936
12937
/***/ }),
12938
/* 29 */
12939
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
12940
12941
12942
12943
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
12944
12945
Object.defineProperty(exports, "__esModule", ({
12946
value: true
12947
}));
12948
exports.PDFViewer = void 0;
12949
12950
var _ui_utils = __webpack_require__(6);
12951
12952
var _base_viewer = __webpack_require__(30);
12953
12954
var _pdfjsLib = __webpack_require__(7);
12955
12956
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
12957
12958
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12959
12960
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
12961
12962
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12963
12964
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); } }
12965
12966
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
12967
12968
function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
12969
12970
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
12971
12972
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
12973
12974
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12975
12976
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
12977
12978
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
12979
12980
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12981
12982
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12983
12984
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
12985
12986
var PDFViewer = /*#__PURE__*/function (_BaseViewer) {
12987
_inherits(PDFViewer, _BaseViewer);
12988
12989
var _super = _createSuper(PDFViewer);
12990
12991
function PDFViewer() {
12992
_classCallCheck(this, PDFViewer);
12993
12994
return _super.apply(this, arguments);
12995
}
12996
12997
_createClass(PDFViewer, [{
12998
key: "_viewerElement",
12999
get: function get() {
13000
return (0, _pdfjsLib.shadow)(this, "_viewerElement", this.viewer);
13001
}
13002
}, {
13003
key: "_scrollIntoView",
13004
value: function _scrollIntoView(_ref) {
13005
var pageDiv = _ref.pageDiv,
13006
_ref$pageSpot = _ref.pageSpot,
13007
pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot,
13008
_ref$pageNumber = _ref.pageNumber,
13009
pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber;
13010
13011
if (!pageSpot && !this.isInPresentationMode) {
13012
var left = pageDiv.offsetLeft + pageDiv.clientLeft;
13013
var right = left + pageDiv.clientWidth;
13014
var _this$container = this.container,
13015
scrollLeft = _this$container.scrollLeft,
13016
clientWidth = _this$container.clientWidth;
13017
13018
if (this._isScrollModeHorizontal || left < scrollLeft || right > scrollLeft + clientWidth) {
13019
pageSpot = {
13020
left: 0,
13021
top: 0
13022
};
13023
}
13024
}
13025
13026
_get(_getPrototypeOf(PDFViewer.prototype), "_scrollIntoView", this).call(this, {
13027
pageDiv: pageDiv,
13028
pageSpot: pageSpot,
13029
pageNumber: pageNumber
13030
});
13031
}
13032
}, {
13033
key: "_getVisiblePages",
13034
value: function _getVisiblePages() {
13035
if (this.isInPresentationMode) {
13036
return this._getCurrentVisiblePage();
13037
}
13038
13039
return _get(_getPrototypeOf(PDFViewer.prototype), "_getVisiblePages", this).call(this);
13040
}
13041
}, {
13042
key: "_updateHelper",
13043
value: function _updateHelper(visiblePages) {
13044
if (this.isInPresentationMode) {
13045
return;
13046
}
13047
13048
var currentId = this._currentPageNumber;
13049
var stillFullyVisible = false;
13050
13051
var _iterator = _createForOfIteratorHelper(visiblePages),
13052
_step;
13053
13054
try {
13055
for (_iterator.s(); !(_step = _iterator.n()).done;) {
13056
var page = _step.value;
13057
13058
if (page.percent < 100) {
13059
break;
13060
}
13061
13062
if (page.id === currentId && this._scrollMode === _ui_utils.ScrollMode.VERTICAL && this._spreadMode === _ui_utils.SpreadMode.NONE) {
13063
stillFullyVisible = true;
13064
break;
13065
}
13066
}
13067
} catch (err) {
13068
_iterator.e(err);
13069
} finally {
13070
_iterator.f();
13071
}
13072
13073
if (!stillFullyVisible) {
13074
currentId = visiblePages[0].id;
13075
}
13076
13077
this._setCurrentPageNumber(currentId);
13078
}
13079
}]);
13080
13081
return PDFViewer;
13082
}(_base_viewer.BaseViewer);
13083
13084
exports.PDFViewer = PDFViewer;
13085
13086
/***/ }),
13087
/* 30 */
13088
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
13089
13090
13091
13092
Object.defineProperty(exports, "__esModule", ({
13093
value: true
13094
}));
13095
exports.BaseViewer = void 0;
13096
13097
var _pdfjsLib = __webpack_require__(7);
13098
13099
var _ui_utils = __webpack_require__(6);
13100
13101
var _pdf_rendering_queue = __webpack_require__(10);
13102
13103
var _annotation_layer_builder = __webpack_require__(31);
13104
13105
var _l10n_utils = __webpack_require__(32);
13106
13107
var _pdf_page_view = __webpack_require__(33);
13108
13109
var _pdf_link_service = __webpack_require__(21);
13110
13111
var _text_layer_builder = __webpack_require__(34);
13112
13113
var _xfa_layer_builder = __webpack_require__(35);
13114
13115
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
13116
13117
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
13118
13119
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
13120
13121
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13122
13123
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); } }
13124
13125
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
13126
13127
var DEFAULT_CACHE_SIZE = 10;
13128
13129
function PDFPageViewBuffer(size) {
13130
var data = [];
13131
13132
this.push = function (view) {
13133
var i = data.indexOf(view);
13134
13135
if (i >= 0) {
13136
data.splice(i, 1);
13137
}
13138
13139
data.push(view);
13140
13141
if (data.length > size) {
13142
data.shift().destroy();
13143
}
13144
};
13145
13146
this.resize = function (newSize, pagesToKeep) {
13147
size = newSize;
13148
13149
if (pagesToKeep) {
13150
var pageIdsToKeep = new Set();
13151
13152
for (var i = 0, iMax = pagesToKeep.length; i < iMax; ++i) {
13153
pageIdsToKeep.add(pagesToKeep[i].id);
13154
}
13155
13156
(0, _ui_utils.moveToEndOfArray)(data, function (page) {
13157
return pageIdsToKeep.has(page.id);
13158
});
13159
}
13160
13161
while (data.length > size) {
13162
data.shift().destroy();
13163
}
13164
};
13165
13166
this.has = function (view) {
13167
return data.includes(view);
13168
};
13169
}
13170
13171
function isSameScale(oldScale, newScale) {
13172
if (newScale === oldScale) {
13173
return true;
13174
}
13175
13176
if (Math.abs(newScale - oldScale) < 1e-15) {
13177
return true;
13178
}
13179
13180
return false;
13181
}
13182
13183
var BaseViewer = /*#__PURE__*/function () {
13184
function BaseViewer(options) {
13185
var _this$container,
13186
_this$viewer,
13187
_this = this;
13188
13189
_classCallCheck(this, BaseViewer);
13190
13191
if (this.constructor === BaseViewer) {
13192
throw new Error("Cannot initialize BaseViewer.");
13193
}
13194
13195
var viewerVersion = '2.8.335';
13196
13197
if (_pdfjsLib.version !== viewerVersion) {
13198
throw new Error("The API version \"".concat(_pdfjsLib.version, "\" does not match the Viewer version \"").concat(viewerVersion, "\"."));
13199
}
13200
13201
this._name = this.constructor.name;
13202
this.container = options.container;
13203
this.viewer = options.viewer || options.container.firstElementChild;
13204
13205
if (!(((_this$container = this.container) === null || _this$container === void 0 ? void 0 : _this$container.tagName.toUpperCase()) === "DIV" && ((_this$viewer = this.viewer) === null || _this$viewer === void 0 ? void 0 : _this$viewer.tagName.toUpperCase()) === "DIV")) {
13206
throw new Error("Invalid `container` and/or `viewer` option.");
13207
}
13208
13209
if (this.container.offsetParent && getComputedStyle(this.container).position !== "absolute") {
13210
throw new Error("The `container` must be absolutely positioned.");
13211
}
13212
13213
this.eventBus = options.eventBus;
13214
this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService();
13215
this.downloadManager = options.downloadManager || null;
13216
this.findController = options.findController || null;
13217
this._scriptingManager = options.scriptingManager || null;
13218
this.removePageBorders = options.removePageBorders || false;
13219
this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;
13220
this.imageResourcesPath = options.imageResourcesPath || "";
13221
this.renderInteractiveForms = options.renderInteractiveForms !== false;
13222
this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;
13223
this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;
13224
this.enableWebGL = options.enableWebGL || false;
13225
this.useOnlyCssZoom = options.useOnlyCssZoom || false;
13226
this.maxCanvasPixels = options.maxCanvasPixels;
13227
this.l10n = options.l10n || _l10n_utils.NullL10n;
13228
this.enableScripting = options.enableScripting === true && !!this._scriptingManager;
13229
this.defaultRenderingQueue = !options.renderingQueue;
13230
13231
if (this.defaultRenderingQueue) {
13232
this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue();
13233
this.renderingQueue.setViewer(this);
13234
} else {
13235
this.renderingQueue = options.renderingQueue;
13236
}
13237
13238
this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this));
13239
this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN;
13240
this._onBeforeDraw = this._onAfterDraw = null;
13241
13242
this._resetView();
13243
13244
if (this.removePageBorders) {
13245
this.viewer.classList.add("removePageBorders");
13246
}
13247
13248
Promise.resolve().then(function () {
13249
_this.eventBus.dispatch("baseviewerinit", {
13250
source: _this
13251
});
13252
});
13253
}
13254
13255
_createClass(BaseViewer, [{
13256
key: "pagesCount",
13257
get: function get() {
13258
return this._pages.length;
13259
}
13260
}, {
13261
key: "getPageView",
13262
value: function getPageView(index) {
13263
return this._pages[index];
13264
}
13265
}, {
13266
key: "pageViewsReady",
13267
get: function get() {
13268
if (!this._pagesCapability.settled) {
13269
return false;
13270
}
13271
13272
return this._pages.every(function (pageView) {
13273
return pageView === null || pageView === void 0 ? void 0 : pageView.pdfPage;
13274
});
13275
}
13276
}, {
13277
key: "currentPageNumber",
13278
get: function get() {
13279
return this._currentPageNumber;
13280
},
13281
set: function set(val) {
13282
if (!Number.isInteger(val)) {
13283
throw new Error("Invalid page number.");
13284
}
13285
13286
if (!this.pdfDocument) {
13287
return;
13288
}
13289
13290
if (!this._setCurrentPageNumber(val, true)) {
13291
console.error("".concat(this._name, ".currentPageNumber: \"").concat(val, "\" is not a valid page."));
13292
}
13293
}
13294
}, {
13295
key: "_setCurrentPageNumber",
13296
value: function _setCurrentPageNumber(val) {
13297
var _this$_pageLabels, _this$_pageLabels2;
13298
13299
var resetCurrentPageView = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
13300
13301
if (this._currentPageNumber === val) {
13302
if (resetCurrentPageView) {
13303
this._resetCurrentPageView();
13304
}
13305
13306
return true;
13307
}
13308
13309
if (!(0 < val && val <= this.pagesCount)) {
13310
return false;
13311
}
13312
13313
var previous = this._currentPageNumber;
13314
this._currentPageNumber = val;
13315
this.eventBus.dispatch("pagechanging", {
13316
source: this,
13317
pageNumber: val,
13318
pageLabel: (_this$_pageLabels = (_this$_pageLabels2 = this._pageLabels) === null || _this$_pageLabels2 === void 0 ? void 0 : _this$_pageLabels2[val - 1]) !== null && _this$_pageLabels !== void 0 ? _this$_pageLabels : null,
13319
previous: previous
13320
});
13321
13322
if (resetCurrentPageView) {
13323
this._resetCurrentPageView();
13324
}
13325
13326
return true;
13327
}
13328
}, {
13329
key: "currentPageLabel",
13330
get: function get() {
13331
var _this$_pageLabels3, _this$_pageLabels4;
13332
13333
return (_this$_pageLabels3 = (_this$_pageLabels4 = this._pageLabels) === null || _this$_pageLabels4 === void 0 ? void 0 : _this$_pageLabels4[this._currentPageNumber - 1]) !== null && _this$_pageLabels3 !== void 0 ? _this$_pageLabels3 : null;
13334
},
13335
set: function set(val) {
13336
if (!this.pdfDocument) {
13337
return;
13338
}
13339
13340
var page = val | 0;
13341
13342
if (this._pageLabels) {
13343
var i = this._pageLabels.indexOf(val);
13344
13345
if (i >= 0) {
13346
page = i + 1;
13347
}
13348
}
13349
13350
if (!this._setCurrentPageNumber(page, true)) {
13351
console.error("".concat(this._name, ".currentPageLabel: \"").concat(val, "\" is not a valid page."));
13352
}
13353
}
13354
}, {
13355
key: "currentScale",
13356
get: function get() {
13357
return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE;
13358
},
13359
set: function set(val) {
13360
if (isNaN(val)) {
13361
throw new Error("Invalid numeric scale.");
13362
}
13363
13364
if (!this.pdfDocument) {
13365
return;
13366
}
13367
13368
this._setScale(val, false);
13369
}
13370
}, {
13371
key: "currentScaleValue",
13372
get: function get() {
13373
return this._currentScaleValue;
13374
},
13375
set: function set(val) {
13376
if (!this.pdfDocument) {
13377
return;
13378
}
13379
13380
this._setScale(val, false);
13381
}
13382
}, {
13383
key: "pagesRotation",
13384
get: function get() {
13385
return this._pagesRotation;
13386
},
13387
set: function set(rotation) {
13388
if (!(0, _ui_utils.isValidRotation)(rotation)) {
13389
throw new Error("Invalid pages rotation angle.");
13390
}
13391
13392
if (!this.pdfDocument) {
13393
return;
13394
}
13395
13396
rotation %= 360;
13397
13398
if (rotation < 0) {
13399
rotation += 360;
13400
}
13401
13402
if (this._pagesRotation === rotation) {
13403
return;
13404
}
13405
13406
this._pagesRotation = rotation;
13407
var pageNumber = this._currentPageNumber;
13408
13409
for (var i = 0, ii = this._pages.length; i < ii; i++) {
13410
var pageView = this._pages[i];
13411
pageView.update(pageView.scale, rotation);
13412
}
13413
13414
if (this._currentScaleValue) {
13415
this._setScale(this._currentScaleValue, true);
13416
}
13417
13418
this.eventBus.dispatch("rotationchanging", {
13419
source: this,
13420
pagesRotation: rotation,
13421
pageNumber: pageNumber
13422
});
13423
13424
if (this.defaultRenderingQueue) {
13425
this.update();
13426
}
13427
}
13428
}, {
13429
key: "firstPagePromise",
13430
get: function get() {
13431
return this.pdfDocument ? this._firstPageCapability.promise : null;
13432
}
13433
}, {
13434
key: "onePageRendered",
13435
get: function get() {
13436
return this.pdfDocument ? this._onePageRenderedCapability.promise : null;
13437
}
13438
}, {
13439
key: "pagesPromise",
13440
get: function get() {
13441
return this.pdfDocument ? this._pagesCapability.promise : null;
13442
}
13443
}, {
13444
key: "_viewerElement",
13445
get: function get() {
13446
throw new Error("Not implemented: _viewerElement");
13447
}
13448
}, {
13449
key: "_onePageRenderedOrForceFetch",
13450
value: function _onePageRenderedOrForceFetch() {
13451
if (!this.container.offsetParent || this._getVisiblePages().views.length === 0) {
13452
return Promise.resolve();
13453
}
13454
13455
return this._onePageRenderedCapability.promise;
13456
}
13457
}, {
13458
key: "setDocument",
13459
value: function setDocument(pdfDocument) {
13460
var _this2 = this;
13461
13462
if (this.pdfDocument) {
13463
this.eventBus.dispatch("pagesdestroy", {
13464
source: this
13465
});
13466
13467
this._cancelRendering();
13468
13469
this._resetView();
13470
13471
if (this.findController) {
13472
this.findController.setDocument(null);
13473
}
13474
13475
if (this._scriptingManager) {
13476
this._scriptingManager.setDocument(null);
13477
}
13478
}
13479
13480
this.pdfDocument = pdfDocument;
13481
13482
if (!pdfDocument) {
13483
return;
13484
}
13485
13486
var isPureXfa = pdfDocument.isPureXfa;
13487
var pagesCount = pdfDocument.numPages;
13488
var firstPagePromise = pdfDocument.getPage(1);
13489
var optionalContentConfigPromise = pdfDocument.getOptionalContentConfig();
13490
13491
this._pagesCapability.promise.then(function () {
13492
_this2.eventBus.dispatch("pagesloaded", {
13493
source: _this2,
13494
pagesCount: pagesCount
13495
});
13496
});
13497
13498
this._onBeforeDraw = function (evt) {
13499
var pageView = _this2._pages[evt.pageNumber - 1];
13500
13501
if (!pageView) {
13502
return;
13503
}
13504
13505
_this2._buffer.push(pageView);
13506
};
13507
13508
this.eventBus._on("pagerender", this._onBeforeDraw);
13509
13510
this._onAfterDraw = function (evt) {
13511
if (evt.cssTransform || _this2._onePageRenderedCapability.settled) {
13512
return;
13513
}
13514
13515
_this2._onePageRenderedCapability.resolve();
13516
13517
_this2.eventBus._off("pagerendered", _this2._onAfterDraw);
13518
13519
_this2._onAfterDraw = null;
13520
};
13521
13522
this.eventBus._on("pagerendered", this._onAfterDraw);
13523
13524
firstPagePromise.then(function (firstPdfPage) {
13525
_this2._firstPageCapability.resolve(firstPdfPage);
13526
13527
_this2._optionalContentConfigPromise = optionalContentConfigPromise;
13528
var scale = _this2.currentScale;
13529
var viewport = firstPdfPage.getViewport({
13530
scale: scale * _ui_utils.CSS_UNITS
13531
});
13532
var textLayerFactory = _this2.textLayerMode !== _ui_utils.TextLayerMode.DISABLE ? _this2 : null;
13533
var xfaLayerFactory = isPureXfa ? _this2 : null;
13534
13535
for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) {
13536
var pageView = new _pdf_page_view.PDFPageView({
13537
container: _this2._viewerElement,
13538
eventBus: _this2.eventBus,
13539
id: pageNum,
13540
scale: scale,
13541
defaultViewport: viewport.clone(),
13542
optionalContentConfigPromise: optionalContentConfigPromise,
13543
renderingQueue: _this2.renderingQueue,
13544
textLayerFactory: textLayerFactory,
13545
textLayerMode: _this2.textLayerMode,
13546
annotationLayerFactory: _this2,
13547
xfaLayerFactory: xfaLayerFactory,
13548
imageResourcesPath: _this2.imageResourcesPath,
13549
renderInteractiveForms: _this2.renderInteractiveForms,
13550
renderer: _this2.renderer,
13551
enableWebGL: _this2.enableWebGL,
13552
useOnlyCssZoom: _this2.useOnlyCssZoom,
13553
maxCanvasPixels: _this2.maxCanvasPixels,
13554
l10n: _this2.l10n,
13555
enableScripting: _this2.enableScripting
13556
});
13557
13558
_this2._pages.push(pageView);
13559
}
13560
13561
var firstPageView = _this2._pages[0];
13562
13563
if (firstPageView) {
13564
firstPageView.setPdfPage(firstPdfPage);
13565
13566
_this2.linkService.cachePageRef(1, firstPdfPage.ref);
13567
}
13568
13569
if (_this2._spreadMode !== _ui_utils.SpreadMode.NONE) {
13570
_this2._updateSpreadMode();
13571
}
13572
13573
_this2._onePageRenderedOrForceFetch().then(function () {
13574
if (_this2.findController) {
13575
_this2.findController.setDocument(pdfDocument);
13576
}
13577
13578
if (_this2.enableScripting) {
13579
_this2._scriptingManager.setDocument(pdfDocument);
13580
}
13581
13582
if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > 7500) {
13583
_this2._pagesCapability.resolve();
13584
13585
return;
13586
}
13587
13588
var getPagesLeft = pagesCount - 1;
13589
13590
if (getPagesLeft <= 0) {
13591
_this2._pagesCapability.resolve();
13592
13593
return;
13594
}
13595
13596
var _loop = function _loop(_pageNum) {
13597
pdfDocument.getPage(_pageNum).then(function (pdfPage) {
13598
var pageView = _this2._pages[_pageNum - 1];
13599
13600
if (!pageView.pdfPage) {
13601
pageView.setPdfPage(pdfPage);
13602
}
13603
13604
_this2.linkService.cachePageRef(_pageNum, pdfPage.ref);
13605
13606
if (--getPagesLeft === 0) {
13607
_this2._pagesCapability.resolve();
13608
}
13609
}, function (reason) {
13610
console.error("Unable to get page ".concat(_pageNum, " to initialize viewer"), reason);
13611
13612
if (--getPagesLeft === 0) {
13613
_this2._pagesCapability.resolve();
13614
}
13615
});
13616
};
13617
13618
for (var _pageNum = 2; _pageNum <= pagesCount; ++_pageNum) {
13619
_loop(_pageNum);
13620
}
13621
});
13622
13623
_this2.eventBus.dispatch("pagesinit", {
13624
source: _this2
13625
});
13626
13627
if (_this2.defaultRenderingQueue) {
13628
_this2.update();
13629
}
13630
})["catch"](function (reason) {
13631
console.error("Unable to initialize viewer", reason);
13632
});
13633
}
13634
}, {
13635
key: "setPageLabels",
13636
value: function setPageLabels(labels) {
13637
if (!this.pdfDocument) {
13638
return;
13639
}
13640
13641
if (!labels) {
13642
this._pageLabels = null;
13643
} else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) {
13644
this._pageLabels = null;
13645
console.error("".concat(this._name, ".setPageLabels: Invalid page labels."));
13646
} else {
13647
this._pageLabels = labels;
13648
}
13649
13650
for (var i = 0, ii = this._pages.length; i < ii; i++) {
13651
var _this$_pageLabels$i, _this$_pageLabels5;
13652
13653
this._pages[i].setPageLabel((_this$_pageLabels$i = (_this$_pageLabels5 = this._pageLabels) === null || _this$_pageLabels5 === void 0 ? void 0 : _this$_pageLabels5[i]) !== null && _this$_pageLabels$i !== void 0 ? _this$_pageLabels$i : null);
13654
}
13655
}
13656
}, {
13657
key: "_resetView",
13658
value: function _resetView() {
13659
this._pages = [];
13660
this._currentPageNumber = 1;
13661
this._currentScale = _ui_utils.UNKNOWN_SCALE;
13662
this._currentScaleValue = null;
13663
this._pageLabels = null;
13664
this._buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE);
13665
this._location = null;
13666
this._pagesRotation = 0;
13667
this._optionalContentConfigPromise = null;
13668
this._pagesRequests = new WeakMap();
13669
this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)();
13670
this._onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)();
13671
this._pagesCapability = (0, _pdfjsLib.createPromiseCapability)();
13672
this._scrollMode = _ui_utils.ScrollMode.VERTICAL;
13673
this._spreadMode = _ui_utils.SpreadMode.NONE;
13674
13675
if (this._onBeforeDraw) {
13676
this.eventBus._off("pagerender", this._onBeforeDraw);
13677
13678
this._onBeforeDraw = null;
13679
}
13680
13681
if (this._onAfterDraw) {
13682
this.eventBus._off("pagerendered", this._onAfterDraw);
13683
13684
this._onAfterDraw = null;
13685
}
13686
13687
this.viewer.textContent = "";
13688
13689
this._updateScrollMode();
13690
}
13691
}, {
13692
key: "_scrollUpdate",
13693
value: function _scrollUpdate() {
13694
if (this.pagesCount === 0) {
13695
return;
13696
}
13697
13698
this.update();
13699
}
13700
}, {
13701
key: "_scrollIntoView",
13702
value: function _scrollIntoView(_ref) {
13703
var pageDiv = _ref.pageDiv,
13704
_ref$pageSpot = _ref.pageSpot,
13705
pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot,
13706
_ref$pageNumber = _ref.pageNumber,
13707
pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber;
13708
(0, _ui_utils.scrollIntoView)(pageDiv, pageSpot);
13709
}
13710
}, {
13711
key: "_setScaleUpdatePages",
13712
value: function _setScaleUpdatePages(newScale, newValue) {
13713
var noScroll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
13714
var preset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
13715
this._currentScaleValue = newValue.toString();
13716
13717
if (isSameScale(this._currentScale, newScale)) {
13718
if (preset) {
13719
this.eventBus.dispatch("scalechanging", {
13720
source: this,
13721
scale: newScale,
13722
presetValue: newValue
13723
});
13724
}
13725
13726
return;
13727
}
13728
13729
for (var i = 0, ii = this._pages.length; i < ii; i++) {
13730
this._pages[i].update(newScale);
13731
}
13732
13733
this._currentScale = newScale;
13734
13735
if (!noScroll) {
13736
var page = this._currentPageNumber,
13737
dest;
13738
13739
if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) {
13740
page = this._location.pageNumber;
13741
dest = [null, {
13742
name: "XYZ"
13743
}, this._location.left, this._location.top, null];
13744
}
13745
13746
this.scrollPageIntoView({
13747
pageNumber: page,
13748
destArray: dest,
13749
allowNegativeOffset: true
13750
});
13751
}
13752
13753
this.eventBus.dispatch("scalechanging", {
13754
source: this,
13755
scale: newScale,
13756
presetValue: preset ? newValue : undefined
13757
});
13758
13759
if (this.defaultRenderingQueue) {
13760
this.update();
13761
}
13762
}
13763
}, {
13764
key: "_pageWidthScaleFactor",
13765
get: function get() {
13766
if (this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL && !this.isInPresentationMode) {
13767
return 2;
13768
}
13769
13770
return 1;
13771
}
13772
}, {
13773
key: "_setScale",
13774
value: function _setScale(value) {
13775
var noScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
13776
var scale = parseFloat(value);
13777
13778
if (scale > 0) {
13779
this._setScaleUpdatePages(scale, value, noScroll, false);
13780
} else {
13781
var currentPage = this._pages[this._currentPageNumber - 1];
13782
13783
if (!currentPage) {
13784
return;
13785
}
13786
13787
var noPadding = this.isInPresentationMode || this.removePageBorders;
13788
var hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING;
13789
var vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING;
13790
13791
if (!noPadding && this._isScrollModeHorizontal) {
13792
var _ref2 = [vPadding, hPadding];
13793
hPadding = _ref2[0];
13794
vPadding = _ref2[1];
13795
}
13796
13797
var pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this._pageWidthScaleFactor;
13798
var pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale;
13799
13800
switch (value) {
13801
case "page-actual":
13802
scale = 1;
13803
break;
13804
13805
case "page-width":
13806
scale = pageWidthScale;
13807
break;
13808
13809
case "page-height":
13810
scale = pageHeightScale;
13811
break;
13812
13813
case "page-fit":
13814
scale = Math.min(pageWidthScale, pageHeightScale);
13815
break;
13816
13817
case "auto":
13818
var horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale);
13819
scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale);
13820
break;
13821
13822
default:
13823
console.error("".concat(this._name, "._setScale: \"").concat(value, "\" is an unknown zoom value."));
13824
return;
13825
}
13826
13827
this._setScaleUpdatePages(scale, value, noScroll, true);
13828
}
13829
}
13830
}, {
13831
key: "_resetCurrentPageView",
13832
value: function _resetCurrentPageView() {
13833
if (this.isInPresentationMode) {
13834
this._setScale(this._currentScaleValue, true);
13835
}
13836
13837
var pageView = this._pages[this._currentPageNumber - 1];
13838
13839
this._scrollIntoView({
13840
pageDiv: pageView.div
13841
});
13842
}
13843
}, {
13844
key: "pageLabelToPageNumber",
13845
value: function pageLabelToPageNumber(label) {
13846
if (!this._pageLabels) {
13847
return null;
13848
}
13849
13850
var i = this._pageLabels.indexOf(label);
13851
13852
if (i < 0) {
13853
return null;
13854
}
13855
13856
return i + 1;
13857
}
13858
}, {
13859
key: "scrollPageIntoView",
13860
value: function scrollPageIntoView(_ref3) {
13861
var pageNumber = _ref3.pageNumber,
13862
_ref3$destArray = _ref3.destArray,
13863
destArray = _ref3$destArray === void 0 ? null : _ref3$destArray,
13864
_ref3$allowNegativeOf = _ref3.allowNegativeOffset,
13865
allowNegativeOffset = _ref3$allowNegativeOf === void 0 ? false : _ref3$allowNegativeOf,
13866
_ref3$ignoreDestinati = _ref3.ignoreDestinationZoom,
13867
ignoreDestinationZoom = _ref3$ignoreDestinati === void 0 ? false : _ref3$ignoreDestinati;
13868
13869
if (!this.pdfDocument) {
13870
return;
13871
}
13872
13873
var pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1];
13874
13875
if (!pageView) {
13876
console.error("".concat(this._name, ".scrollPageIntoView: ") + "\"".concat(pageNumber, "\" is not a valid pageNumber parameter."));
13877
return;
13878
}
13879
13880
if (this.isInPresentationMode || !destArray) {
13881
this._setCurrentPageNumber(pageNumber, true);
13882
13883
return;
13884
}
13885
13886
var x = 0,
13887
y = 0;
13888
var width = 0,
13889
height = 0,
13890
widthScale,
13891
heightScale;
13892
var changeOrientation = pageView.rotation % 180 !== 0;
13893
var pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _ui_utils.CSS_UNITS;
13894
var pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _ui_utils.CSS_UNITS;
13895
var scale = 0;
13896
13897
switch (destArray[1].name) {
13898
case "XYZ":
13899
x = destArray[2];
13900
y = destArray[3];
13901
scale = destArray[4];
13902
x = x !== null ? x : 0;
13903
y = y !== null ? y : pageHeight;
13904
break;
13905
13906
case "Fit":
13907
case "FitB":
13908
scale = "page-fit";
13909
break;
13910
13911
case "FitH":
13912
case "FitBH":
13913
y = destArray[2];
13914
scale = "page-width";
13915
13916
if (y === null && this._location) {
13917
x = this._location.left;
13918
y = this._location.top;
13919
} else if (typeof y !== "number") {
13920
y = pageHeight;
13921
}
13922
13923
break;
13924
13925
case "FitV":
13926
case "FitBV":
13927
x = destArray[2];
13928
width = pageWidth;
13929
height = pageHeight;
13930
scale = "page-height";
13931
break;
13932
13933
case "FitR":
13934
x = destArray[2];
13935
y = destArray[3];
13936
width = destArray[4] - x;
13937
height = destArray[5] - y;
13938
var hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING;
13939
var vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING;
13940
widthScale = (this.container.clientWidth - hPadding) / width / _ui_utils.CSS_UNITS;
13941
heightScale = (this.container.clientHeight - vPadding) / height / _ui_utils.CSS_UNITS;
13942
scale = Math.min(Math.abs(widthScale), Math.abs(heightScale));
13943
break;
13944
13945
default:
13946
console.error("".concat(this._name, ".scrollPageIntoView: ") + "\"".concat(destArray[1].name, "\" is not a valid destination type."));
13947
return;
13948
}
13949
13950
if (!ignoreDestinationZoom) {
13951
if (scale && scale !== this._currentScale) {
13952
this.currentScaleValue = scale;
13953
} else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) {
13954
this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE;
13955
}
13956
}
13957
13958
if (scale === "page-fit" && !destArray[4]) {
13959
this._scrollIntoView({
13960
pageDiv: pageView.div,
13961
pageNumber: pageNumber
13962
});
13963
13964
return;
13965
}
13966
13967
var boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)];
13968
var left = Math.min(boundingRect[0][0], boundingRect[1][0]);
13969
var top = Math.min(boundingRect[0][1], boundingRect[1][1]);
13970
13971
if (!allowNegativeOffset) {
13972
left = Math.max(left, 0);
13973
top = Math.max(top, 0);
13974
}
13975
13976
this._scrollIntoView({
13977
pageDiv: pageView.div,
13978
pageSpot: {
13979
left: left,
13980
top: top
13981
},
13982
pageNumber: pageNumber
13983
});
13984
}
13985
}, {
13986
key: "_updateLocation",
13987
value: function _updateLocation(firstPage) {
13988
var currentScale = this._currentScale;
13989
var currentScaleValue = this._currentScaleValue;
13990
var normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue;
13991
var pageNumber = firstPage.id;
13992
var pdfOpenParams = "#page=" + pageNumber;
13993
pdfOpenParams += "&zoom=" + normalizedScaleValue;
13994
var currentPageView = this._pages[pageNumber - 1];
13995
var container = this.container;
13996
var topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y);
13997
var intLeft = Math.round(topLeft[0]);
13998
var intTop = Math.round(topLeft[1]);
13999
pdfOpenParams += "," + intLeft + "," + intTop;
14000
this._location = {
14001
pageNumber: pageNumber,
14002
scale: normalizedScaleValue,
14003
top: intTop,
14004
left: intLeft,
14005
rotation: this._pagesRotation,
14006
pdfOpenParams: pdfOpenParams
14007
};
14008
}
14009
}, {
14010
key: "_updateHelper",
14011
value: function _updateHelper(visiblePages) {
14012
throw new Error("Not implemented: _updateHelper");
14013
}
14014
}, {
14015
key: "update",
14016
value: function update() {
14017
var visible = this._getVisiblePages();
14018
14019
var visiblePages = visible.views,
14020
numVisiblePages = visiblePages.length;
14021
14022
if (numVisiblePages === 0) {
14023
return;
14024
}
14025
14026
var newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1);
14027
14028
this._buffer.resize(newCacheSize, visiblePages);
14029
14030
this.renderingQueue.renderHighestPriority(visible);
14031
14032
this._updateHelper(visiblePages);
14033
14034
this._updateLocation(visible.first);
14035
14036
this.eventBus.dispatch("updateviewarea", {
14037
source: this,
14038
location: this._location
14039
});
14040
}
14041
}, {
14042
key: "containsElement",
14043
value: function containsElement(element) {
14044
return this.container.contains(element);
14045
}
14046
}, {
14047
key: "focus",
14048
value: function focus() {
14049
this.container.focus();
14050
}
14051
}, {
14052
key: "_isScrollModeHorizontal",
14053
get: function get() {
14054
return this.isInPresentationMode ? false : this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL;
14055
}
14056
}, {
14057
key: "_isContainerRtl",
14058
get: function get() {
14059
return getComputedStyle(this.container).direction === "rtl";
14060
}
14061
}, {
14062
key: "isInPresentationMode",
14063
get: function get() {
14064
return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN;
14065
}
14066
}, {
14067
key: "isChangingPresentationMode",
14068
get: function get() {
14069
return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING;
14070
}
14071
}, {
14072
key: "isHorizontalScrollbarEnabled",
14073
get: function get() {
14074
return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth;
14075
}
14076
}, {
14077
key: "isVerticalScrollbarEnabled",
14078
get: function get() {
14079
return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight;
14080
}
14081
}, {
14082
key: "_getCurrentVisiblePage",
14083
value: function _getCurrentVisiblePage() {
14084
if (!this.pagesCount) {
14085
return {
14086
views: []
14087
};
14088
}
14089
14090
var pageView = this._pages[this._currentPageNumber - 1];
14091
var element = pageView.div;
14092
var view = {
14093
id: pageView.id,
14094
x: element.offsetLeft + element.clientLeft,
14095
y: element.offsetTop + element.clientTop,
14096
view: pageView
14097
};
14098
return {
14099
first: view,
14100
last: view,
14101
views: [view]
14102
};
14103
}
14104
}, {
14105
key: "_getVisiblePages",
14106
value: function _getVisiblePages() {
14107
return (0, _ui_utils.getVisibleElements)({
14108
scrollEl: this.container,
14109
views: this._pages,
14110
sortByVisibility: true,
14111
horizontal: this._isScrollModeHorizontal,
14112
rtl: this._isScrollModeHorizontal && this._isContainerRtl
14113
});
14114
}
14115
}, {
14116
key: "isPageVisible",
14117
value: function isPageVisible(pageNumber) {
14118
if (!this.pdfDocument) {
14119
return false;
14120
}
14121
14122
if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) {
14123
console.error("".concat(this._name, ".isPageVisible: \"").concat(pageNumber, "\" is not a valid page."));
14124
return false;
14125
}
14126
14127
return this._getVisiblePages().views.some(function (view) {
14128
return view.id === pageNumber;
14129
});
14130
}
14131
}, {
14132
key: "isPageCached",
14133
value: function isPageCached(pageNumber) {
14134
if (!this.pdfDocument || !this._buffer) {
14135
return false;
14136
}
14137
14138
if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) {
14139
console.error("".concat(this._name, ".isPageCached: \"").concat(pageNumber, "\" is not a valid page."));
14140
return false;
14141
}
14142
14143
var pageView = this._pages[pageNumber - 1];
14144
14145
if (!pageView) {
14146
return false;
14147
}
14148
14149
return this._buffer.has(pageView);
14150
}
14151
}, {
14152
key: "cleanup",
14153
value: function cleanup() {
14154
for (var i = 0, ii = this._pages.length; i < ii; i++) {
14155
if (this._pages[i] && this._pages[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) {
14156
this._pages[i].reset();
14157
}
14158
}
14159
}
14160
}, {
14161
key: "_cancelRendering",
14162
value: function _cancelRendering() {
14163
for (var i = 0, ii = this._pages.length; i < ii; i++) {
14164
if (this._pages[i]) {
14165
this._pages[i].cancelRendering();
14166
}
14167
}
14168
}
14169
}, {
14170
key: "_ensurePdfPageLoaded",
14171
value: function _ensurePdfPageLoaded(pageView) {
14172
var _this3 = this;
14173
14174
if (pageView.pdfPage) {
14175
return Promise.resolve(pageView.pdfPage);
14176
}
14177
14178
if (this._pagesRequests.has(pageView)) {
14179
return this._pagesRequests.get(pageView);
14180
}
14181
14182
var promise = this.pdfDocument.getPage(pageView.id).then(function (pdfPage) {
14183
if (!pageView.pdfPage) {
14184
pageView.setPdfPage(pdfPage);
14185
}
14186
14187
_this3._pagesRequests["delete"](pageView);
14188
14189
return pdfPage;
14190
})["catch"](function (reason) {
14191
console.error("Unable to get page for page view", reason);
14192
14193
_this3._pagesRequests["delete"](pageView);
14194
});
14195
14196
this._pagesRequests.set(pageView, promise);
14197
14198
return promise;
14199
}
14200
}, {
14201
key: "forceRendering",
14202
value: function forceRendering(currentlyVisiblePages) {
14203
var _this4 = this;
14204
14205
var visiblePages = currentlyVisiblePages || this._getVisiblePages();
14206
14207
var scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down;
14208
var pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead);
14209
14210
if (pageView) {
14211
this._ensurePdfPageLoaded(pageView).then(function () {
14212
_this4.renderingQueue.renderView(pageView);
14213
});
14214
14215
return true;
14216
}
14217
14218
return false;
14219
}
14220
}, {
14221
key: "createTextLayerBuilder",
14222
value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) {
14223
var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
14224
var eventBus = arguments.length > 4 ? arguments[4] : undefined;
14225
return new _text_layer_builder.TextLayerBuilder({
14226
textLayerDiv: textLayerDiv,
14227
eventBus: eventBus,
14228
pageIndex: pageIndex,
14229
viewport: viewport,
14230
findController: this.isInPresentationMode ? null : this.findController,
14231
enhanceTextSelection: this.isInPresentationMode ? false : enhanceTextSelection
14232
});
14233
}
14234
}, {
14235
key: "createAnnotationLayerBuilder",
14236
value: function createAnnotationLayerBuilder(pageDiv, pdfPage) {
14237
var _this$pdfDocument, _this$pdfDocument2, _this$_scriptingManag;
14238
14239
var annotationStorage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
14240
var imageResourcesPath = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "";
14241
var renderInteractiveForms = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
14242
var l10n = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : _l10n_utils.NullL10n;
14243
var enableScripting = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
14244
var hasJSActionsPromise = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null;
14245
var mouseState = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : null;
14246
return new _annotation_layer_builder.AnnotationLayerBuilder({
14247
pageDiv: pageDiv,
14248
pdfPage: pdfPage,
14249
annotationStorage: annotationStorage || ((_this$pdfDocument = this.pdfDocument) === null || _this$pdfDocument === void 0 ? void 0 : _this$pdfDocument.annotationStorage),
14250
imageResourcesPath: imageResourcesPath,
14251
renderInteractiveForms: renderInteractiveForms,
14252
linkService: this.linkService,
14253
downloadManager: this.downloadManager,
14254
l10n: l10n,
14255
enableScripting: enableScripting,
14256
hasJSActionsPromise: hasJSActionsPromise || ((_this$pdfDocument2 = this.pdfDocument) === null || _this$pdfDocument2 === void 0 ? void 0 : _this$pdfDocument2.hasJSActions()),
14257
mouseState: mouseState || ((_this$_scriptingManag = this._scriptingManager) === null || _this$_scriptingManag === void 0 ? void 0 : _this$_scriptingManag.mouseState)
14258
});
14259
}
14260
}, {
14261
key: "createXfaLayerBuilder",
14262
value: function createXfaLayerBuilder(pageDiv, pdfPage) {
14263
return new _xfa_layer_builder.XfaLayerBuilder({
14264
pageDiv: pageDiv,
14265
pdfPage: pdfPage
14266
});
14267
}
14268
}, {
14269
key: "hasEqualPageSizes",
14270
get: function get() {
14271
var firstPageView = this._pages[0];
14272
14273
for (var i = 1, ii = this._pages.length; i < ii; ++i) {
14274
var pageView = this._pages[i];
14275
14276
if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) {
14277
return false;
14278
}
14279
}
14280
14281
return true;
14282
}
14283
}, {
14284
key: "getPagesOverview",
14285
value: function getPagesOverview() {
14286
var _this5 = this;
14287
14288
return this._pages.map(function (pageView) {
14289
var viewport = pageView.pdfPage.getViewport({
14290
scale: 1
14291
});
14292
14293
if (!_this5.enablePrintAutoRotate || (0, _ui_utils.isPortraitOrientation)(viewport)) {
14294
return {
14295
width: viewport.width,
14296
height: viewport.height,
14297
rotation: viewport.rotation
14298
};
14299
}
14300
14301
return {
14302
width: viewport.height,
14303
height: viewport.width,
14304
rotation: (viewport.rotation - 90) % 360
14305
};
14306
});
14307
}
14308
}, {
14309
key: "optionalContentConfigPromise",
14310
get: function get() {
14311
if (!this.pdfDocument) {
14312
return Promise.resolve(null);
14313
}
14314
14315
if (!this._optionalContentConfigPromise) {
14316
return this.pdfDocument.getOptionalContentConfig();
14317
}
14318
14319
return this._optionalContentConfigPromise;
14320
},
14321
set: function set(promise) {
14322
if (!(promise instanceof Promise)) {
14323
throw new Error("Invalid optionalContentConfigPromise: ".concat(promise));
14324
}
14325
14326
if (!this.pdfDocument) {
14327
return;
14328
}
14329
14330
if (!this._optionalContentConfigPromise) {
14331
return;
14332
}
14333
14334
this._optionalContentConfigPromise = promise;
14335
14336
var _iterator = _createForOfIteratorHelper(this._pages),
14337
_step;
14338
14339
try {
14340
for (_iterator.s(); !(_step = _iterator.n()).done;) {
14341
var pageView = _step.value;
14342
pageView.update(pageView.scale, pageView.rotation, promise);
14343
}
14344
} catch (err) {
14345
_iterator.e(err);
14346
} finally {
14347
_iterator.f();
14348
}
14349
14350
this.update();
14351
this.eventBus.dispatch("optionalcontentconfigchanged", {
14352
source: this,
14353
promise: promise
14354
});
14355
}
14356
}, {
14357
key: "scrollMode",
14358
get: function get() {
14359
return this._scrollMode;
14360
},
14361
set: function set(mode) {
14362
if (this._scrollMode === mode) {
14363
return;
14364
}
14365
14366
if (!(0, _ui_utils.isValidScrollMode)(mode)) {
14367
throw new Error("Invalid scroll mode: ".concat(mode));
14368
}
14369
14370
this._scrollMode = mode;
14371
this.eventBus.dispatch("scrollmodechanged", {
14372
source: this,
14373
mode: mode
14374
});
14375
14376
this._updateScrollMode(this._currentPageNumber);
14377
}
14378
}, {
14379
key: "_updateScrollMode",
14380
value: function _updateScrollMode() {
14381
var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
14382
var scrollMode = this._scrollMode,
14383
viewer = this.viewer;
14384
viewer.classList.toggle("scrollHorizontal", scrollMode === _ui_utils.ScrollMode.HORIZONTAL);
14385
viewer.classList.toggle("scrollWrapped", scrollMode === _ui_utils.ScrollMode.WRAPPED);
14386
14387
if (!this.pdfDocument || !pageNumber) {
14388
return;
14389
}
14390
14391
if (this._currentScaleValue && isNaN(this._currentScaleValue)) {
14392
this._setScale(this._currentScaleValue, true);
14393
}
14394
14395
this._setCurrentPageNumber(pageNumber, true);
14396
14397
this.update();
14398
}
14399
}, {
14400
key: "spreadMode",
14401
get: function get() {
14402
return this._spreadMode;
14403
},
14404
set: function set(mode) {
14405
if (this._spreadMode === mode) {
14406
return;
14407
}
14408
14409
if (!(0, _ui_utils.isValidSpreadMode)(mode)) {
14410
throw new Error("Invalid spread mode: ".concat(mode));
14411
}
14412
14413
this._spreadMode = mode;
14414
this.eventBus.dispatch("spreadmodechanged", {
14415
source: this,
14416
mode: mode
14417
});
14418
14419
this._updateSpreadMode(this._currentPageNumber);
14420
}
14421
}, {
14422
key: "_updateSpreadMode",
14423
value: function _updateSpreadMode() {
14424
var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
14425
14426
if (!this.pdfDocument) {
14427
return;
14428
}
14429
14430
var viewer = this.viewer,
14431
pages = this._pages;
14432
viewer.textContent = "";
14433
14434
if (this._spreadMode === _ui_utils.SpreadMode.NONE) {
14435
for (var i = 0, iMax = pages.length; i < iMax; ++i) {
14436
viewer.appendChild(pages[i].div);
14437
}
14438
} else {
14439
var parity = this._spreadMode - 1;
14440
var spread = null;
14441
14442
for (var _i = 0, _iMax = pages.length; _i < _iMax; ++_i) {
14443
if (spread === null) {
14444
spread = document.createElement("div");
14445
spread.className = "spread";
14446
viewer.appendChild(spread);
14447
} else if (_i % 2 === parity) {
14448
spread = spread.cloneNode(false);
14449
viewer.appendChild(spread);
14450
}
14451
14452
spread.appendChild(pages[_i].div);
14453
}
14454
}
14455
14456
if (!pageNumber) {
14457
return;
14458
}
14459
14460
if (this._currentScaleValue && isNaN(this._currentScaleValue)) {
14461
this._setScale(this._currentScaleValue, true);
14462
}
14463
14464
this._setCurrentPageNumber(pageNumber, true);
14465
14466
this.update();
14467
}
14468
}, {
14469
key: "_getPageAdvance",
14470
value: function _getPageAdvance(currentPageNumber) {
14471
var previous = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
14472
14473
if (this.isInPresentationMode) {
14474
return 1;
14475
}
14476
14477
switch (this._scrollMode) {
14478
case _ui_utils.ScrollMode.WRAPPED:
14479
{
14480
var _this$_getVisiblePage = this._getVisiblePages(),
14481
views = _this$_getVisiblePage.views,
14482
pageLayout = new Map();
14483
14484
var _iterator2 = _createForOfIteratorHelper(views),
14485
_step2;
14486
14487
try {
14488
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
14489
var _step2$value = _step2.value,
14490
id = _step2$value.id,
14491
y = _step2$value.y,
14492
percent = _step2$value.percent,
14493
widthPercent = _step2$value.widthPercent;
14494
14495
if (percent === 0 || widthPercent < 100) {
14496
continue;
14497
}
14498
14499
var yArray = pageLayout.get(y);
14500
14501
if (!yArray) {
14502
pageLayout.set(y, yArray || (yArray = []));
14503
}
14504
14505
yArray.push(id);
14506
}
14507
} catch (err) {
14508
_iterator2.e(err);
14509
} finally {
14510
_iterator2.f();
14511
}
14512
14513
var _iterator3 = _createForOfIteratorHelper(pageLayout.values()),
14514
_step3;
14515
14516
try {
14517
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
14518
var _yArray = _step3.value;
14519
14520
var currentIndex = _yArray.indexOf(currentPageNumber);
14521
14522
if (currentIndex === -1) {
14523
continue;
14524
}
14525
14526
var numPages = _yArray.length;
14527
14528
if (numPages === 1) {
14529
break;
14530
}
14531
14532
if (previous) {
14533
for (var i = currentIndex - 1, ii = 0; i >= ii; i--) {
14534
var currentId = _yArray[i],
14535
expectedId = _yArray[i + 1] - 1;
14536
14537
if (currentId < expectedId) {
14538
return currentPageNumber - expectedId;
14539
}
14540
}
14541
} else {
14542
for (var _i2 = currentIndex + 1, _ii = numPages; _i2 < _ii; _i2++) {
14543
var _currentId = _yArray[_i2],
14544
_expectedId = _yArray[_i2 - 1] + 1;
14545
14546
if (_currentId > _expectedId) {
14547
return _expectedId - currentPageNumber;
14548
}
14549
}
14550
}
14551
14552
if (previous) {
14553
var firstId = _yArray[0];
14554
14555
if (firstId < currentPageNumber) {
14556
return currentPageNumber - firstId + 1;
14557
}
14558
} else {
14559
var lastId = _yArray[numPages - 1];
14560
14561
if (lastId > currentPageNumber) {
14562
return lastId - currentPageNumber + 1;
14563
}
14564
}
14565
14566
break;
14567
}
14568
} catch (err) {
14569
_iterator3.e(err);
14570
} finally {
14571
_iterator3.f();
14572
}
14573
14574
break;
14575
}
14576
14577
case _ui_utils.ScrollMode.HORIZONTAL:
14578
{
14579
break;
14580
}
14581
14582
case _ui_utils.ScrollMode.VERTICAL:
14583
{
14584
if (this._spreadMode === _ui_utils.SpreadMode.NONE) {
14585
break;
14586
}
14587
14588
var parity = this._spreadMode - 1;
14589
14590
if (previous && currentPageNumber % 2 !== parity) {
14591
break;
14592
} else if (!previous && currentPageNumber % 2 === parity) {
14593
break;
14594
}
14595
14596
var _this$_getVisiblePage2 = this._getVisiblePages(),
14597
_views = _this$_getVisiblePage2.views,
14598
_expectedId2 = previous ? currentPageNumber - 1 : currentPageNumber + 1;
14599
14600
var _iterator4 = _createForOfIteratorHelper(_views),
14601
_step4;
14602
14603
try {
14604
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
14605
var _step4$value = _step4.value,
14606
_id = _step4$value.id,
14607
_percent = _step4$value.percent,
14608
_widthPercent = _step4$value.widthPercent;
14609
14610
if (_id !== _expectedId2) {
14611
continue;
14612
}
14613
14614
if (_percent > 0 && _widthPercent === 100) {
14615
return 2;
14616
}
14617
14618
break;
14619
}
14620
} catch (err) {
14621
_iterator4.e(err);
14622
} finally {
14623
_iterator4.f();
14624
}
14625
14626
break;
14627
}
14628
}
14629
14630
return 1;
14631
}
14632
}, {
14633
key: "nextPage",
14634
value: function nextPage() {
14635
var currentPageNumber = this._currentPageNumber,
14636
pagesCount = this.pagesCount;
14637
14638
if (currentPageNumber >= pagesCount) {
14639
return false;
14640
}
14641
14642
var advance = this._getPageAdvance(currentPageNumber, false) || 1;
14643
this.currentPageNumber = Math.min(currentPageNumber + advance, pagesCount);
14644
return true;
14645
}
14646
}, {
14647
key: "previousPage",
14648
value: function previousPage() {
14649
var currentPageNumber = this._currentPageNumber;
14650
14651
if (currentPageNumber <= 1) {
14652
return false;
14653
}
14654
14655
var advance = this._getPageAdvance(currentPageNumber, true) || 1;
14656
this.currentPageNumber = Math.max(currentPageNumber - advance, 1);
14657
return true;
14658
}
14659
}]);
14660
14661
return BaseViewer;
14662
}();
14663
14664
exports.BaseViewer = BaseViewer;
14665
14666
/***/ }),
14667
/* 31 */
14668
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
14669
14670
14671
14672
Object.defineProperty(exports, "__esModule", ({
14673
value: true
14674
}));
14675
exports.DefaultAnnotationLayerFactory = exports.AnnotationLayerBuilder = void 0;
14676
14677
var _pdfjsLib = __webpack_require__(7);
14678
14679
var _l10n_utils = __webpack_require__(32);
14680
14681
var _pdf_link_service = __webpack_require__(21);
14682
14683
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
14684
14685
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14686
14687
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14688
14689
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
14690
14691
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
14692
14693
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14694
14695
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14696
14697
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); } }
14698
14699
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
14700
14701
var AnnotationLayerBuilder = /*#__PURE__*/function () {
14702
function AnnotationLayerBuilder(_ref) {
14703
var pageDiv = _ref.pageDiv,
14704
pdfPage = _ref.pdfPage,
14705
linkService = _ref.linkService,
14706
downloadManager = _ref.downloadManager,
14707
_ref$annotationStorag = _ref.annotationStorage,
14708
annotationStorage = _ref$annotationStorag === void 0 ? null : _ref$annotationStorag,
14709
_ref$imageResourcesPa = _ref.imageResourcesPath,
14710
imageResourcesPath = _ref$imageResourcesPa === void 0 ? "" : _ref$imageResourcesPa,
14711
_ref$renderInteractiv = _ref.renderInteractiveForms,
14712
renderInteractiveForms = _ref$renderInteractiv === void 0 ? true : _ref$renderInteractiv,
14713
_ref$l10n = _ref.l10n,
14714
l10n = _ref$l10n === void 0 ? _l10n_utils.NullL10n : _ref$l10n,
14715
_ref$enableScripting = _ref.enableScripting,
14716
enableScripting = _ref$enableScripting === void 0 ? false : _ref$enableScripting,
14717
_ref$hasJSActionsProm = _ref.hasJSActionsPromise,
14718
hasJSActionsPromise = _ref$hasJSActionsProm === void 0 ? null : _ref$hasJSActionsProm,
14719
_ref$mouseState = _ref.mouseState,
14720
mouseState = _ref$mouseState === void 0 ? null : _ref$mouseState;
14721
14722
_classCallCheck(this, AnnotationLayerBuilder);
14723
14724
this.pageDiv = pageDiv;
14725
this.pdfPage = pdfPage;
14726
this.linkService = linkService;
14727
this.downloadManager = downloadManager;
14728
this.imageResourcesPath = imageResourcesPath;
14729
this.renderInteractiveForms = renderInteractiveForms;
14730
this.l10n = l10n;
14731
this.annotationStorage = annotationStorage;
14732
this.enableScripting = enableScripting;
14733
this._hasJSActionsPromise = hasJSActionsPromise;
14734
this._mouseState = mouseState;
14735
this.div = null;
14736
this._cancelled = false;
14737
}
14738
14739
_createClass(AnnotationLayerBuilder, [{
14740
key: "render",
14741
value: function render(viewport) {
14742
var _this = this;
14743
14744
var intent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "display";
14745
return Promise.all([this.pdfPage.getAnnotations({
14746
intent: intent
14747
}), this._hasJSActionsPromise]).then(function (_ref2) {
14748
var _ref3 = _slicedToArray(_ref2, 2),
14749
annotations = _ref3[0],
14750
_ref3$ = _ref3[1],
14751
hasJSActions = _ref3$ === void 0 ? false : _ref3$;
14752
14753
if (_this._cancelled) {
14754
return;
14755
}
14756
14757
if (annotations.length === 0) {
14758
return;
14759
}
14760
14761
var parameters = {
14762
viewport: viewport.clone({
14763
dontFlip: true
14764
}),
14765
div: _this.div,
14766
annotations: annotations,
14767
page: _this.pdfPage,
14768
imageResourcesPath: _this.imageResourcesPath,
14769
renderInteractiveForms: _this.renderInteractiveForms,
14770
linkService: _this.linkService,
14771
downloadManager: _this.downloadManager,
14772
annotationStorage: _this.annotationStorage,
14773
enableScripting: _this.enableScripting,
14774
hasJSActions: hasJSActions,
14775
mouseState: _this._mouseState
14776
};
14777
14778
if (_this.div) {
14779
_pdfjsLib.AnnotationLayer.update(parameters);
14780
} else {
14781
_this.div = document.createElement("div");
14782
_this.div.className = "annotationLayer";
14783
14784
_this.pageDiv.appendChild(_this.div);
14785
14786
parameters.div = _this.div;
14787
14788
_pdfjsLib.AnnotationLayer.render(parameters);
14789
14790
_this.l10n.translate(_this.div);
14791
}
14792
});
14793
}
14794
}, {
14795
key: "cancel",
14796
value: function cancel() {
14797
this._cancelled = true;
14798
}
14799
}, {
14800
key: "hide",
14801
value: function hide() {
14802
if (!this.div) {
14803
return;
14804
}
14805
14806
this.div.hidden = true;
14807
}
14808
}]);
14809
14810
return AnnotationLayerBuilder;
14811
}();
14812
14813
exports.AnnotationLayerBuilder = AnnotationLayerBuilder;
14814
14815
var DefaultAnnotationLayerFactory = /*#__PURE__*/function () {
14816
function DefaultAnnotationLayerFactory() {
14817
_classCallCheck(this, DefaultAnnotationLayerFactory);
14818
}
14819
14820
_createClass(DefaultAnnotationLayerFactory, [{
14821
key: "createAnnotationLayerBuilder",
14822
value: function createAnnotationLayerBuilder(pageDiv, pdfPage) {
14823
var annotationStorage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
14824
var imageResourcesPath = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "";
14825
var renderInteractiveForms = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;
14826
var l10n = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : _l10n_utils.NullL10n;
14827
var enableScripting = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
14828
var hasJSActionsPromise = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : null;
14829
var mouseState = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : null;
14830
return new AnnotationLayerBuilder({
14831
pageDiv: pageDiv,
14832
pdfPage: pdfPage,
14833
imageResourcesPath: imageResourcesPath,
14834
renderInteractiveForms: renderInteractiveForms,
14835
linkService: new _pdf_link_service.SimpleLinkService(),
14836
l10n: l10n,
14837
annotationStorage: annotationStorage,
14838
enableScripting: enableScripting,
14839
hasJSActionsPromise: hasJSActionsPromise,
14840
mouseState: mouseState
14841
});
14842
}
14843
}]);
14844
14845
return DefaultAnnotationLayerFactory;
14846
}();
14847
14848
exports.DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory;
14849
14850
/***/ }),
14851
/* 32 */
14852
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
14853
14854
14855
14856
Object.defineProperty(exports, "__esModule", ({
14857
value: true
14858
}));
14859
exports.getL10nFallback = getL10nFallback;
14860
exports.NullL10n = void 0;
14861
14862
var _regenerator = _interopRequireDefault(__webpack_require__(4));
14863
14864
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14865
14866
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
14867
14868
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
14869
14870
var DEFAULT_L10N_STRINGS = {
14871
of_pages: "of {{pagesCount}}",
14872
page_of_pages: "({{pageNumber}} of {{pagesCount}})",
14873
document_properties_kb: "{{size_kb}} KB ({{size_b}} bytes)",
14874
document_properties_mb: "{{size_mb}} MB ({{size_b}} bytes)",
14875
document_properties_date_string: "{{date}}, {{time}}",
14876
document_properties_page_size_unit_inches: "in",
14877
document_properties_page_size_unit_millimeters: "mm",
14878
document_properties_page_size_orientation_portrait: "portrait",
14879
document_properties_page_size_orientation_landscape: "landscape",
14880
document_properties_page_size_name_a3: "A3",
14881
document_properties_page_size_name_a4: "A4",
14882
document_properties_page_size_name_letter: "Letter",
14883
document_properties_page_size_name_legal: "Legal",
14884
document_properties_page_size_dimension_string: "{{width}} × {{height}} {{unit}} ({{orientation}})",
14885
document_properties_page_size_dimension_name_string: "{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})",
14886
document_properties_linearized_yes: "Yes",
14887
document_properties_linearized_no: "No",
14888
print_progress_percent: "{{progress}}%",
14889
"toggle_sidebar.title": "Toggle Sidebar",
14890
"toggle_sidebar_notification2.title": "Toggle Sidebar (document contains outline/attachments/layers)",
14891
additional_layers: "Additional Layers",
14892
page_landmark: "Page {{page}}",
14893
thumb_page_title: "Page {{page}}",
14894
thumb_page_canvas: "Thumbnail of Page {{page}}",
14895
find_reached_top: "Reached top of document, continued from bottom",
14896
find_reached_bottom: "Reached end of document, continued from top",
14897
"find_match_count[one]": "{{current}} of {{total}} match",
14898
"find_match_count[other]": "{{current}} of {{total}} matches",
14899
"find_match_count_limit[one]": "More than {{limit}} match",
14900
"find_match_count_limit[other]": "More than {{limit}} matches",
14901
find_not_found: "Phrase not found",
14902
error_version_info: "PDF.js v{{version}} (build: {{build}})",
14903
error_message: "Message: {{message}}",
14904
error_stack: "Stack: {{stack}}",
14905
error_file: "File: {{file}}",
14906
error_line: "Line: {{line}}",
14907
rendering_error: "An error occurred while rendering the page.",
14908
page_scale_width: "Page Width",
14909
page_scale_fit: "Page Fit",
14910
page_scale_auto: "Automatic Zoom",
14911
page_scale_actual: "Actual Size",
14912
page_scale_percent: "{{scale}}%",
14913
loading: "Loading…",
14914
loading_error: "An error occurred while loading the PDF.",
14915
invalid_file_error: "Invalid or corrupted PDF file.",
14916
missing_file_error: "Missing PDF file.",
14917
unexpected_response_error: "Unexpected server response.",
14918
printing_not_supported: "Warning: Printing is not fully supported by this browser.",
14919
printing_not_ready: "Warning: The PDF is not fully loaded for printing.",
14920
web_fonts_disabled: "Web fonts are disabled: unable to use embedded PDF fonts."
14921
};
14922
14923
function getL10nFallback(key, args) {
14924
switch (key) {
14925
case "find_match_count":
14926
key = "find_match_count[".concat(args.total === 1 ? "one" : "other", "]");
14927
break;
14928
14929
case "find_match_count_limit":
14930
key = "find_match_count_limit[".concat(args.limit === 1 ? "one" : "other", "]");
14931
break;
14932
}
14933
14934
return DEFAULT_L10N_STRINGS[key] || "";
14935
}
14936
14937
function formatL10nValue(text, args) {
14938
if (!args) {
14939
return text;
14940
}
14941
14942
return text.replace(/\{\{\s*(\w+)\s*\}\}/g, function (all, name) {
14943
return name in args ? args[name] : "{{" + name + "}}";
14944
});
14945
}
14946
14947
var NullL10n = {
14948
getLanguage: function getLanguage() {
14949
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
14950
return _regenerator["default"].wrap(function _callee$(_context) {
14951
while (1) {
14952
switch (_context.prev = _context.next) {
14953
case 0:
14954
return _context.abrupt("return", "en-us");
14955
14956
case 1:
14957
case "end":
14958
return _context.stop();
14959
}
14960
}
14961
}, _callee);
14962
}))();
14963
},
14964
getDirection: function getDirection() {
14965
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
14966
return _regenerator["default"].wrap(function _callee2$(_context2) {
14967
while (1) {
14968
switch (_context2.prev = _context2.next) {
14969
case 0:
14970
return _context2.abrupt("return", "ltr");
14971
14972
case 1:
14973
case "end":
14974
return _context2.stop();
14975
}
14976
}
14977
}, _callee2);
14978
}))();
14979
},
14980
get: function get(key) {
14981
var _arguments = arguments;
14982
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
14983
var args, fallback;
14984
return _regenerator["default"].wrap(function _callee3$(_context3) {
14985
while (1) {
14986
switch (_context3.prev = _context3.next) {
14987
case 0:
14988
args = _arguments.length > 1 && _arguments[1] !== undefined ? _arguments[1] : null;
14989
fallback = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : getL10nFallback(key, args);
14990
return _context3.abrupt("return", formatL10nValue(fallback, args));
14991
14992
case 3:
14993
case "end":
14994
return _context3.stop();
14995
}
14996
}
14997
}, _callee3);
14998
}))();
14999
},
15000
translate: function translate(element) {
15001
return _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
15002
return _regenerator["default"].wrap(function _callee4$(_context4) {
15003
while (1) {
15004
switch (_context4.prev = _context4.next) {
15005
case 0:
15006
case "end":
15007
return _context4.stop();
15008
}
15009
}
15010
}, _callee4);
15011
}))();
15012
}
15013
};
15014
exports.NullL10n = NullL10n;
15015
15016
/***/ }),
15017
/* 33 */
15018
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
15019
15020
15021
15022
Object.defineProperty(exports, "__esModule", ({
15023
value: true
15024
}));
15025
exports.PDFPageView = void 0;
15026
15027
var _regenerator = _interopRequireDefault(__webpack_require__(4));
15028
15029
var _ui_utils = __webpack_require__(6);
15030
15031
var _pdfjsLib = __webpack_require__(7);
15032
15033
var _l10n_utils = __webpack_require__(32);
15034
15035
var _pdf_rendering_queue = __webpack_require__(10);
15036
15037
var _viewer_compatibility = __webpack_require__(2);
15038
15039
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15040
15041
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
15042
15043
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
15044
15045
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15046
15047
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); } }
15048
15049
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
15050
15051
var MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216;
15052
15053
var PDFPageView = /*#__PURE__*/function () {
15054
function PDFPageView(options) {
15055
_classCallCheck(this, PDFPageView);
15056
15057
var container = options.container;
15058
var defaultViewport = options.defaultViewport;
15059
this.id = options.id;
15060
this.renderingId = "page" + this.id;
15061
this.pdfPage = null;
15062
this.pageLabel = null;
15063
this.rotation = 0;
15064
this.scale = options.scale || _ui_utils.DEFAULT_SCALE;
15065
this.viewport = defaultViewport;
15066
this.pdfPageRotate = defaultViewport.rotation;
15067
this._optionalContentConfigPromise = options.optionalContentConfigPromise || null;
15068
this.hasRestrictedScaling = false;
15069
this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;
15070
this.imageResourcesPath = options.imageResourcesPath || "";
15071
this.renderInteractiveForms = options.renderInteractiveForms !== false;
15072
this.useOnlyCssZoom = options.useOnlyCssZoom || false;
15073
this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS;
15074
this.eventBus = options.eventBus;
15075
this.renderingQueue = options.renderingQueue;
15076
this.textLayerFactory = options.textLayerFactory;
15077
this.annotationLayerFactory = options.annotationLayerFactory;
15078
this.xfaLayerFactory = options.xfaLayerFactory;
15079
this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;
15080
this.enableWebGL = options.enableWebGL || false;
15081
this.l10n = options.l10n || _l10n_utils.NullL10n;
15082
this.enableScripting = options.enableScripting === true;
15083
this.paintTask = null;
15084
this.paintedViewportMap = new WeakMap();
15085
this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;
15086
this.resume = null;
15087
this._renderError = null;
15088
this.annotationLayer = null;
15089
this.textLayer = null;
15090
this.zoomLayer = null;
15091
this.xfaLayer = null;
15092
var div = document.createElement("div");
15093
div.className = "page";
15094
div.style.width = Math.floor(this.viewport.width) + "px";
15095
div.style.height = Math.floor(this.viewport.height) + "px";
15096
div.setAttribute("data-page-number", this.id);
15097
div.setAttribute("role", "region");
15098
this.l10n.get("page_landmark", {
15099
page: this.id
15100
}).then(function (msg) {
15101
div.setAttribute("aria-label", msg);
15102
});
15103
this.div = div;
15104
container.appendChild(div);
15105
}
15106
15107
_createClass(PDFPageView, [{
15108
key: "setPdfPage",
15109
value: function setPdfPage(pdfPage) {
15110
this.pdfPage = pdfPage;
15111
this.pdfPageRotate = pdfPage.rotate;
15112
var totalRotation = (this.rotation + this.pdfPageRotate) % 360;
15113
this.viewport = pdfPage.getViewport({
15114
scale: this.scale * _ui_utils.CSS_UNITS,
15115
rotation: totalRotation
15116
});
15117
this.reset();
15118
}
15119
}, {
15120
key: "destroy",
15121
value: function destroy() {
15122
this.reset();
15123
15124
if (this.pdfPage) {
15125
this.pdfPage.cleanup();
15126
}
15127
}
15128
}, {
15129
key: "_renderAnnotationLayer",
15130
value: function () {
15131
var _renderAnnotationLayer2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
15132
var error;
15133
return _regenerator["default"].wrap(function _callee$(_context) {
15134
while (1) {
15135
switch (_context.prev = _context.next) {
15136
case 0:
15137
error = null;
15138
_context.prev = 1;
15139
_context.next = 4;
15140
return this.annotationLayer.render(this.viewport, "display");
15141
15142
case 4:
15143
_context.next = 9;
15144
break;
15145
15146
case 6:
15147
_context.prev = 6;
15148
_context.t0 = _context["catch"](1);
15149
error = _context.t0;
15150
15151
case 9:
15152
_context.prev = 9;
15153
this.eventBus.dispatch("annotationlayerrendered", {
15154
source: this,
15155
pageNumber: this.id,
15156
error: error
15157
});
15158
return _context.finish(9);
15159
15160
case 12:
15161
case "end":
15162
return _context.stop();
15163
}
15164
}
15165
}, _callee, this, [[1, 6, 9, 12]]);
15166
}));
15167
15168
function _renderAnnotationLayer() {
15169
return _renderAnnotationLayer2.apply(this, arguments);
15170
}
15171
15172
return _renderAnnotationLayer;
15173
}()
15174
}, {
15175
key: "_renderXfaLayer",
15176
value: function () {
15177
var _renderXfaLayer2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
15178
var error;
15179
return _regenerator["default"].wrap(function _callee2$(_context2) {
15180
while (1) {
15181
switch (_context2.prev = _context2.next) {
15182
case 0:
15183
error = null;
15184
_context2.prev = 1;
15185
_context2.next = 4;
15186
return this.xfaLayer.render(this.viewport, "display");
15187
15188
case 4:
15189
_context2.next = 9;
15190
break;
15191
15192
case 6:
15193
_context2.prev = 6;
15194
_context2.t0 = _context2["catch"](1);
15195
error = _context2.t0;
15196
15197
case 9:
15198
_context2.prev = 9;
15199
this.eventBus.dispatch("xfalayerrendered", {
15200
source: this,
15201
pageNumber: this.id,
15202
error: error
15203
});
15204
return _context2.finish(9);
15205
15206
case 12:
15207
case "end":
15208
return _context2.stop();
15209
}
15210
}
15211
}, _callee2, this, [[1, 6, 9, 12]]);
15212
}));
15213
15214
function _renderXfaLayer() {
15215
return _renderXfaLayer2.apply(this, arguments);
15216
}
15217
15218
return _renderXfaLayer;
15219
}()
15220
}, {
15221
key: "_resetZoomLayer",
15222
value: function _resetZoomLayer() {
15223
var removeFromDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
15224
15225
if (!this.zoomLayer) {
15226
return;
15227
}
15228
15229
var zoomLayerCanvas = this.zoomLayer.firstChild;
15230
this.paintedViewportMap["delete"](zoomLayerCanvas);
15231
zoomLayerCanvas.width = 0;
15232
zoomLayerCanvas.height = 0;
15233
15234
if (removeFromDOM) {
15235
this.zoomLayer.remove();
15236
}
15237
15238
this.zoomLayer = null;
15239
}
15240
}, {
15241
key: "reset",
15242
value: function reset() {
15243
var _this$annotationLayer,
15244
_this$xfaLayer,
15245
_this = this;
15246
15247
var keepZoomLayer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
15248
var keepAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
15249
this.cancelRendering(keepAnnotations);
15250
this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;
15251
var div = this.div;
15252
div.style.width = Math.floor(this.viewport.width) + "px";
15253
div.style.height = Math.floor(this.viewport.height) + "px";
15254
var childNodes = div.childNodes;
15255
var currentZoomLayerNode = keepZoomLayer && this.zoomLayer || null;
15256
var currentAnnotationNode = keepAnnotations && ((_this$annotationLayer = this.annotationLayer) === null || _this$annotationLayer === void 0 ? void 0 : _this$annotationLayer.div) || null;
15257
var currentXfaLayerNode = ((_this$xfaLayer = this.xfaLayer) === null || _this$xfaLayer === void 0 ? void 0 : _this$xfaLayer.div) || null;
15258
15259
for (var i = childNodes.length - 1; i >= 0; i--) {
15260
var node = childNodes[i];
15261
15262
if (currentZoomLayerNode === node || currentAnnotationNode === node || currentXfaLayerNode === node) {
15263
continue;
15264
}
15265
15266
div.removeChild(node);
15267
}
15268
15269
div.removeAttribute("data-loaded");
15270
15271
if (currentAnnotationNode) {
15272
this.annotationLayer.hide();
15273
} else if (this.annotationLayer) {
15274
this.annotationLayer.cancel();
15275
this.annotationLayer = null;
15276
}
15277
15278
if (!currentZoomLayerNode) {
15279
if (this.canvas) {
15280
this.paintedViewportMap["delete"](this.canvas);
15281
this.canvas.width = 0;
15282
this.canvas.height = 0;
15283
delete this.canvas;
15284
}
15285
15286
this._resetZoomLayer();
15287
}
15288
15289
if (this.svg) {
15290
this.paintedViewportMap["delete"](this.svg);
15291
delete this.svg;
15292
}
15293
15294
this.loadingIconDiv = document.createElement("div");
15295
this.loadingIconDiv.className = "loadingIcon";
15296
this.loadingIconDiv.setAttribute("role", "img");
15297
this.l10n.get("loading").then(function (msg) {
15298
var _this$loadingIconDiv;
15299
15300
(_this$loadingIconDiv = _this.loadingIconDiv) === null || _this$loadingIconDiv === void 0 ? void 0 : _this$loadingIconDiv.setAttribute("aria-label", msg);
15301
});
15302
div.appendChild(this.loadingIconDiv);
15303
}
15304
}, {
15305
key: "update",
15306
value: function update(scale, rotation) {
15307
var optionalContentConfigPromise = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
15308
this.scale = scale || this.scale;
15309
15310
if (typeof rotation !== "undefined") {
15311
this.rotation = rotation;
15312
}
15313
15314
if (optionalContentConfigPromise instanceof Promise) {
15315
this._optionalContentConfigPromise = optionalContentConfigPromise;
15316
}
15317
15318
var totalRotation = (this.rotation + this.pdfPageRotate) % 360;
15319
this.viewport = this.viewport.clone({
15320
scale: this.scale * _ui_utils.CSS_UNITS,
15321
rotation: totalRotation
15322
});
15323
15324
if (this.svg) {
15325
this.cssTransform(this.svg, true);
15326
this.eventBus.dispatch("pagerendered", {
15327
source: this,
15328
pageNumber: this.id,
15329
cssTransform: true,
15330
timestamp: performance.now(),
15331
error: this._renderError
15332
});
15333
return;
15334
}
15335
15336
var isScalingRestricted = false;
15337
15338
if (this.canvas && this.maxCanvasPixels > 0) {
15339
var outputScale = this.outputScale;
15340
15341
if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) {
15342
isScalingRestricted = true;
15343
}
15344
}
15345
15346
if (this.canvas) {
15347
if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) {
15348
this.cssTransform(this.canvas, true);
15349
this.eventBus.dispatch("pagerendered", {
15350
source: this,
15351
pageNumber: this.id,
15352
cssTransform: true,
15353
timestamp: performance.now(),
15354
error: this._renderError
15355
});
15356
return;
15357
}
15358
15359
if (!this.zoomLayer && !this.canvas.hidden) {
15360
this.zoomLayer = this.canvas.parentNode;
15361
this.zoomLayer.style.position = "absolute";
15362
}
15363
}
15364
15365
if (this.zoomLayer) {
15366
this.cssTransform(this.zoomLayer.firstChild);
15367
}
15368
15369
this.reset(true, true);
15370
}
15371
}, {
15372
key: "cancelRendering",
15373
value: function cancelRendering() {
15374
var keepAnnotations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
15375
15376
if (this.paintTask) {
15377
this.paintTask.cancel();
15378
this.paintTask = null;
15379
}
15380
15381
this.resume = null;
15382
15383
if (this.textLayer) {
15384
this.textLayer.cancel();
15385
this.textLayer = null;
15386
}
15387
15388
if (!keepAnnotations && this.annotationLayer) {
15389
this.annotationLayer.cancel();
15390
this.annotationLayer = null;
15391
}
15392
}
15393
}, {
15394
key: "cssTransform",
15395
value: function cssTransform(target) {
15396
var redrawAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
15397
var width = this.viewport.width;
15398
var height = this.viewport.height;
15399
var div = this.div;
15400
target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + "px";
15401
target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + "px";
15402
var relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation;
15403
var absRotation = Math.abs(relativeRotation);
15404
var scaleX = 1,
15405
scaleY = 1;
15406
15407
if (absRotation === 90 || absRotation === 270) {
15408
scaleX = height / width;
15409
scaleY = width / height;
15410
}
15411
15412
target.style.transform = "rotate(".concat(relativeRotation, "deg) scale(").concat(scaleX, ", ").concat(scaleY, ")");
15413
15414
if (this.textLayer) {
15415
var textLayerViewport = this.textLayer.viewport;
15416
var textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation;
15417
var textAbsRotation = Math.abs(textRelativeRotation);
15418
var scale = width / textLayerViewport.width;
15419
15420
if (textAbsRotation === 90 || textAbsRotation === 270) {
15421
scale = width / textLayerViewport.height;
15422
}
15423
15424
var textLayerDiv = this.textLayer.textLayerDiv;
15425
var transX, transY;
15426
15427
switch (textAbsRotation) {
15428
case 0:
15429
transX = transY = 0;
15430
break;
15431
15432
case 90:
15433
transX = 0;
15434
transY = "-" + textLayerDiv.style.height;
15435
break;
15436
15437
case 180:
15438
transX = "-" + textLayerDiv.style.width;
15439
transY = "-" + textLayerDiv.style.height;
15440
break;
15441
15442
case 270:
15443
transX = "-" + textLayerDiv.style.width;
15444
transY = 0;
15445
break;
15446
15447
default:
15448
console.error("Bad rotation value.");
15449
break;
15450
}
15451
15452
textLayerDiv.style.transform = "rotate(".concat(textAbsRotation, "deg) ") + "scale(".concat(scale, ") ") + "translate(".concat(transX, ", ").concat(transY, ")");
15453
textLayerDiv.style.transformOrigin = "0% 0%";
15454
}
15455
15456
if (redrawAnnotations && this.annotationLayer) {
15457
this._renderAnnotationLayer();
15458
}
15459
15460
if (this.xfaLayer) {
15461
this._renderXfaLayer();
15462
}
15463
}
15464
}, {
15465
key: "width",
15466
get: function get() {
15467
return this.viewport.width;
15468
}
15469
}, {
15470
key: "height",
15471
get: function get() {
15472
return this.viewport.height;
15473
}
15474
}, {
15475
key: "getPagePoint",
15476
value: function getPagePoint(x, y) {
15477
return this.viewport.convertToPdfPoint(x, y);
15478
}
15479
}, {
15480
key: "draw",
15481
value: function draw() {
15482
var _this$annotationLayer2,
15483
_this2 = this;
15484
15485
if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) {
15486
console.error("Must be in new state before drawing");
15487
this.reset();
15488
}
15489
15490
var div = this.div,
15491
pdfPage = this.pdfPage;
15492
15493
if (!pdfPage) {
15494
this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;
15495
15496
if (this.loadingIconDiv) {
15497
div.removeChild(this.loadingIconDiv);
15498
delete this.loadingIconDiv;
15499
}
15500
15501
return Promise.reject(new Error("pdfPage is not loaded"));
15502
}
15503
15504
this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;
15505
var canvasWrapper = document.createElement("div");
15506
canvasWrapper.style.width = div.style.width;
15507
canvasWrapper.style.height = div.style.height;
15508
canvasWrapper.classList.add("canvasWrapper");
15509
15510
if ((_this$annotationLayer2 = this.annotationLayer) !== null && _this$annotationLayer2 !== void 0 && _this$annotationLayer2.div) {
15511
div.insertBefore(canvasWrapper, this.annotationLayer.div);
15512
} else {
15513
div.appendChild(canvasWrapper);
15514
}
15515
15516
var textLayer = null;
15517
15518
if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) {
15519
var _this$annotationLayer3;
15520
15521
var textLayerDiv = document.createElement("div");
15522
textLayerDiv.className = "textLayer";
15523
textLayerDiv.style.width = canvasWrapper.style.width;
15524
textLayerDiv.style.height = canvasWrapper.style.height;
15525
15526
if ((_this$annotationLayer3 = this.annotationLayer) !== null && _this$annotationLayer3 !== void 0 && _this$annotationLayer3.div) {
15527
div.insertBefore(textLayerDiv, this.annotationLayer.div);
15528
} else {
15529
div.appendChild(textLayerDiv);
15530
}
15531
15532
textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE, this.eventBus);
15533
}
15534
15535
this.textLayer = textLayer;
15536
var renderContinueCallback = null;
15537
15538
if (this.renderingQueue) {
15539
renderContinueCallback = function renderContinueCallback(cont) {
15540
if (!_this2.renderingQueue.isHighestPriority(_this2)) {
15541
_this2.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED;
15542
15543
_this2.resume = function () {
15544
_this2.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;
15545
cont();
15546
};
15547
15548
return;
15549
}
15550
15551
cont();
15552
};
15553
}
15554
15555
var finishPaintTask = /*#__PURE__*/function () {
15556
var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
15557
var error,
15558
_args3 = arguments;
15559
return _regenerator["default"].wrap(function _callee3$(_context3) {
15560
while (1) {
15561
switch (_context3.prev = _context3.next) {
15562
case 0:
15563
error = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : null;
15564
15565
if (paintTask === _this2.paintTask) {
15566
_this2.paintTask = null;
15567
}
15568
15569
if (!(error instanceof _pdfjsLib.RenderingCancelledException)) {
15570
_context3.next = 5;
15571
break;
15572
}
15573
15574
_this2._renderError = null;
15575
return _context3.abrupt("return");
15576
15577
case 5:
15578
_this2._renderError = error;
15579
_this2.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;
15580
15581
if (_this2.loadingIconDiv) {
15582
div.removeChild(_this2.loadingIconDiv);
15583
delete _this2.loadingIconDiv;
15584
}
15585
15586
_this2._resetZoomLayer(true);
15587
15588
_this2.eventBus.dispatch("pagerendered", {
15589
source: _this2,
15590
pageNumber: _this2.id,
15591
cssTransform: false,
15592
timestamp: performance.now(),
15593
error: _this2._renderError
15594
});
15595
15596
if (!error) {
15597
_context3.next = 12;
15598
break;
15599
}
15600
15601
throw error;
15602
15603
case 12:
15604
case "end":
15605
return _context3.stop();
15606
}
15607
}
15608
}, _callee3);
15609
}));
15610
15611
return function finishPaintTask() {
15612
return _ref.apply(this, arguments);
15613
};
15614
}();
15615
15616
var paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper);
15617
paintTask.onRenderContinue = renderContinueCallback;
15618
this.paintTask = paintTask;
15619
var resultPromise = paintTask.promise.then(function () {
15620
return finishPaintTask(null).then(function () {
15621
if (textLayer) {
15622
var readableStream = pdfPage.streamTextContent({
15623
normalizeWhitespace: true
15624
});
15625
textLayer.setTextContentStream(readableStream);
15626
textLayer.render();
15627
}
15628
});
15629
}, function (reason) {
15630
return finishPaintTask(reason);
15631
});
15632
15633
if (this.annotationLayerFactory) {
15634
if (!this.annotationLayer) {
15635
this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, null, this.imageResourcesPath, this.renderInteractiveForms, this.l10n, this.enableScripting, null, null);
15636
}
15637
15638
this._renderAnnotationLayer();
15639
}
15640
15641
if (this.xfaLayerFactory) {
15642
if (!this.xfaLayer) {
15643
this.xfaLayer = this.xfaLayerFactory.createXfaLayerBuilder(div, pdfPage);
15644
}
15645
15646
this._renderXfaLayer();
15647
}
15648
15649
div.setAttribute("data-loaded", true);
15650
this.eventBus.dispatch("pagerender", {
15651
source: this,
15652
pageNumber: this.id
15653
});
15654
return resultPromise;
15655
}
15656
}, {
15657
key: "paintOnCanvas",
15658
value: function paintOnCanvas(canvasWrapper) {
15659
var renderCapability = (0, _pdfjsLib.createPromiseCapability)();
15660
var result = {
15661
promise: renderCapability.promise,
15662
onRenderContinue: function onRenderContinue(cont) {
15663
cont();
15664
},
15665
cancel: function cancel() {
15666
renderTask.cancel();
15667
}
15668
};
15669
var viewport = this.viewport;
15670
var canvas = document.createElement("canvas");
15671
canvas.hidden = true;
15672
var isCanvasHidden = true;
15673
15674
var showCanvas = function showCanvas() {
15675
if (isCanvasHidden) {
15676
canvas.hidden = false;
15677
isCanvasHidden = false;
15678
}
15679
};
15680
15681
canvasWrapper.appendChild(canvas);
15682
this.canvas = canvas;
15683
canvas.mozOpaque = true;
15684
var ctx = canvas.getContext("2d", {
15685
alpha: false
15686
});
15687
var outputScale = (0, _ui_utils.getOutputScale)(ctx);
15688
this.outputScale = outputScale;
15689
15690
if (this.useOnlyCssZoom) {
15691
var actualSizeViewport = viewport.clone({
15692
scale: _ui_utils.CSS_UNITS
15693
});
15694
outputScale.sx *= actualSizeViewport.width / viewport.width;
15695
outputScale.sy *= actualSizeViewport.height / viewport.height;
15696
outputScale.scaled = true;
15697
}
15698
15699
if (this.maxCanvasPixels > 0) {
15700
var pixelsInViewport = viewport.width * viewport.height;
15701
var maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport);
15702
15703
if (outputScale.sx > maxScale || outputScale.sy > maxScale) {
15704
outputScale.sx = maxScale;
15705
outputScale.sy = maxScale;
15706
outputScale.scaled = true;
15707
this.hasRestrictedScaling = true;
15708
} else {
15709
this.hasRestrictedScaling = false;
15710
}
15711
}
15712
15713
var sfx = (0, _ui_utils.approximateFraction)(outputScale.sx);
15714
var sfy = (0, _ui_utils.approximateFraction)(outputScale.sy);
15715
canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]);
15716
canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]);
15717
canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + "px";
15718
canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + "px";
15719
this.paintedViewportMap.set(canvas, viewport);
15720
var transform = !outputScale.scaled ? null : [outputScale.sx, 0, 0, outputScale.sy, 0, 0];
15721
var renderContext = {
15722
canvasContext: ctx,
15723
transform: transform,
15724
viewport: this.viewport,
15725
enableWebGL: this.enableWebGL,
15726
renderInteractiveForms: this.renderInteractiveForms,
15727
optionalContentConfigPromise: this._optionalContentConfigPromise
15728
};
15729
var renderTask = this.pdfPage.render(renderContext);
15730
15731
renderTask.onContinue = function (cont) {
15732
showCanvas();
15733
15734
if (result.onRenderContinue) {
15735
result.onRenderContinue(cont);
15736
} else {
15737
cont();
15738
}
15739
};
15740
15741
renderTask.promise.then(function () {
15742
showCanvas();
15743
renderCapability.resolve(undefined);
15744
}, function (error) {
15745
showCanvas();
15746
renderCapability.reject(error);
15747
});
15748
return result;
15749
}
15750
}, {
15751
key: "paintOnSvg",
15752
value: function paintOnSvg(wrapper) {
15753
var _this3 = this;
15754
15755
var cancelled = false;
15756
15757
var ensureNotCancelled = function ensureNotCancelled() {
15758
if (cancelled) {
15759
throw new _pdfjsLib.RenderingCancelledException("Rendering cancelled, page ".concat(_this3.id), "svg");
15760
}
15761
};
15762
15763
var pdfPage = this.pdfPage;
15764
var actualSizeViewport = this.viewport.clone({
15765
scale: _ui_utils.CSS_UNITS
15766
});
15767
var promise = pdfPage.getOperatorList().then(function (opList) {
15768
ensureNotCancelled();
15769
var svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs, _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL);
15770
return svgGfx.getSVG(opList, actualSizeViewport).then(function (svg) {
15771
ensureNotCancelled();
15772
_this3.svg = svg;
15773
15774
_this3.paintedViewportMap.set(svg, actualSizeViewport);
15775
15776
svg.style.width = wrapper.style.width;
15777
svg.style.height = wrapper.style.height;
15778
_this3.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;
15779
wrapper.appendChild(svg);
15780
});
15781
});
15782
return {
15783
promise: promise,
15784
onRenderContinue: function onRenderContinue(cont) {
15785
cont();
15786
},
15787
cancel: function cancel() {
15788
cancelled = true;
15789
}
15790
};
15791
}
15792
}, {
15793
key: "setPageLabel",
15794
value: function setPageLabel(label) {
15795
this.pageLabel = typeof label === "string" ? label : null;
15796
15797
if (this.pageLabel !== null) {
15798
this.div.setAttribute("data-page-label", this.pageLabel);
15799
} else {
15800
this.div.removeAttribute("data-page-label");
15801
}
15802
}
15803
}]);
15804
15805
return PDFPageView;
15806
}();
15807
15808
exports.PDFPageView = PDFPageView;
15809
15810
/***/ }),
15811
/* 34 */
15812
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
15813
15814
15815
15816
Object.defineProperty(exports, "__esModule", ({
15817
value: true
15818
}));
15819
exports.TextLayerBuilder = exports.DefaultTextLayerFactory = void 0;
15820
15821
var _pdfjsLib = __webpack_require__(7);
15822
15823
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15824
15825
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); } }
15826
15827
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
15828
15829
var EXPAND_DIVS_TIMEOUT = 300;
15830
15831
var TextLayerBuilder = /*#__PURE__*/function () {
15832
function TextLayerBuilder(_ref) {
15833
var textLayerDiv = _ref.textLayerDiv,
15834
eventBus = _ref.eventBus,
15835
pageIndex = _ref.pageIndex,
15836
viewport = _ref.viewport,
15837
_ref$findController = _ref.findController,
15838
findController = _ref$findController === void 0 ? null : _ref$findController,
15839
_ref$enhanceTextSelec = _ref.enhanceTextSelection,
15840
enhanceTextSelection = _ref$enhanceTextSelec === void 0 ? false : _ref$enhanceTextSelec;
15841
15842
_classCallCheck(this, TextLayerBuilder);
15843
15844
this.textLayerDiv = textLayerDiv;
15845
this.eventBus = eventBus;
15846
this.textContent = null;
15847
this.textContentItemsStr = [];
15848
this.textContentStream = null;
15849
this.renderingDone = false;
15850
this.pageIdx = pageIndex;
15851
this.pageNumber = this.pageIdx + 1;
15852
this.matches = [];
15853
this.viewport = viewport;
15854
this.textDivs = [];
15855
this.findController = findController;
15856
this.textLayerRenderTask = null;
15857
this.enhanceTextSelection = enhanceTextSelection;
15858
this._onUpdateTextLayerMatches = null;
15859
15860
this._bindMouse();
15861
}
15862
15863
_createClass(TextLayerBuilder, [{
15864
key: "_finishRendering",
15865
value: function _finishRendering() {
15866
this.renderingDone = true;
15867
15868
if (!this.enhanceTextSelection) {
15869
var endOfContent = document.createElement("div");
15870
endOfContent.className = "endOfContent";
15871
this.textLayerDiv.appendChild(endOfContent);
15872
}
15873
15874
this.eventBus.dispatch("textlayerrendered", {
15875
source: this,
15876
pageNumber: this.pageNumber,
15877
numTextDivs: this.textDivs.length
15878
});
15879
}
15880
}, {
15881
key: "render",
15882
value: function render() {
15883
var _this = this;
15884
15885
var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
15886
15887
if (!(this.textContent || this.textContentStream) || this.renderingDone) {
15888
return;
15889
}
15890
15891
this.cancel();
15892
this.textDivs = [];
15893
var textLayerFrag = document.createDocumentFragment();
15894
this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({
15895
textContent: this.textContent,
15896
textContentStream: this.textContentStream,
15897
container: textLayerFrag,
15898
viewport: this.viewport,
15899
textDivs: this.textDivs,
15900
textContentItemsStr: this.textContentItemsStr,
15901
timeout: timeout,
15902
enhanceTextSelection: this.enhanceTextSelection
15903
});
15904
this.textLayerRenderTask.promise.then(function () {
15905
_this.textLayerDiv.appendChild(textLayerFrag);
15906
15907
_this._finishRendering();
15908
15909
_this._updateMatches();
15910
}, function (reason) {});
15911
15912
if (!this._onUpdateTextLayerMatches) {
15913
this._onUpdateTextLayerMatches = function (evt) {
15914
if (evt.pageIndex === _this.pageIdx || evt.pageIndex === -1) {
15915
_this._updateMatches();
15916
}
15917
};
15918
15919
this.eventBus._on("updatetextlayermatches", this._onUpdateTextLayerMatches);
15920
}
15921
}
15922
}, {
15923
key: "cancel",
15924
value: function cancel() {
15925
if (this.textLayerRenderTask) {
15926
this.textLayerRenderTask.cancel();
15927
this.textLayerRenderTask = null;
15928
}
15929
15930
if (this._onUpdateTextLayerMatches) {
15931
this.eventBus._off("updatetextlayermatches", this._onUpdateTextLayerMatches);
15932
15933
this._onUpdateTextLayerMatches = null;
15934
}
15935
}
15936
}, {
15937
key: "setTextContentStream",
15938
value: function setTextContentStream(readableStream) {
15939
this.cancel();
15940
this.textContentStream = readableStream;
15941
}
15942
}, {
15943
key: "setTextContent",
15944
value: function setTextContent(textContent) {
15945
this.cancel();
15946
this.textContent = textContent;
15947
}
15948
}, {
15949
key: "_convertMatches",
15950
value: function _convertMatches(matches, matchesLength) {
15951
if (!matches) {
15952
return [];
15953
}
15954
15955
var textContentItemsStr = this.textContentItemsStr;
15956
var i = 0,
15957
iIndex = 0;
15958
var end = textContentItemsStr.length - 1;
15959
var result = [];
15960
15961
for (var m = 0, mm = matches.length; m < mm; m++) {
15962
var matchIdx = matches[m];
15963
15964
while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {
15965
iIndex += textContentItemsStr[i].length;
15966
i++;
15967
}
15968
15969
if (i === textContentItemsStr.length) {
15970
console.error("Could not find a matching mapping");
15971
}
15972
15973
var match = {
15974
begin: {
15975
divIdx: i,
15976
offset: matchIdx - iIndex
15977
}
15978
};
15979
matchIdx += matchesLength[m];
15980
15981
while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {
15982
iIndex += textContentItemsStr[i].length;
15983
i++;
15984
}
15985
15986
match.end = {
15987
divIdx: i,
15988
offset: matchIdx - iIndex
15989
};
15990
result.push(match);
15991
}
15992
15993
return result;
15994
}
15995
}, {
15996
key: "_renderMatches",
15997
value: function _renderMatches(matches) {
15998
if (matches.length === 0) {
15999
return;
16000
}
16001
16002
var findController = this.findController,
16003
pageIdx = this.pageIdx,
16004
textContentItemsStr = this.textContentItemsStr,
16005
textDivs = this.textDivs;
16006
var isSelectedPage = pageIdx === findController.selected.pageIdx;
16007
var selectedMatchIdx = findController.selected.matchIdx;
16008
var highlightAll = findController.state.highlightAll;
16009
var prevEnd = null;
16010
var infinity = {
16011
divIdx: -1,
16012
offset: undefined
16013
};
16014
16015
function beginText(begin, className) {
16016
var divIdx = begin.divIdx;
16017
textDivs[divIdx].textContent = "";
16018
appendTextToDiv(divIdx, 0, begin.offset, className);
16019
}
16020
16021
function appendTextToDiv(divIdx, fromOffset, toOffset, className) {
16022
var div = textDivs[divIdx];
16023
var content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);
16024
var node = document.createTextNode(content);
16025
16026
if (className) {
16027
var span = document.createElement("span");
16028
span.className = className;
16029
span.appendChild(node);
16030
div.appendChild(span);
16031
return;
16032
}
16033
16034
div.appendChild(node);
16035
}
16036
16037
var i0 = selectedMatchIdx,
16038
i1 = i0 + 1;
16039
16040
if (highlightAll) {
16041
i0 = 0;
16042
i1 = matches.length;
16043
} else if (!isSelectedPage) {
16044
return;
16045
}
16046
16047
for (var i = i0; i < i1; i++) {
16048
var match = matches[i];
16049
var begin = match.begin;
16050
var end = match.end;
16051
var isSelected = isSelectedPage && i === selectedMatchIdx;
16052
var highlightSuffix = isSelected ? " selected" : "";
16053
16054
if (isSelected) {
16055
findController.scrollMatchIntoView({
16056
element: textDivs[begin.divIdx],
16057
pageIndex: pageIdx,
16058
matchIndex: selectedMatchIdx
16059
});
16060
}
16061
16062
if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {
16063
if (prevEnd !== null) {
16064
appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
16065
}
16066
16067
beginText(begin);
16068
} else {
16069
appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);
16070
}
16071
16072
if (begin.divIdx === end.divIdx) {
16073
appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" + highlightSuffix);
16074
} else {
16075
appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, "highlight begin" + highlightSuffix);
16076
16077
for (var n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {
16078
textDivs[n0].className = "highlight middle" + highlightSuffix;
16079
}
16080
16081
beginText(end, "highlight end" + highlightSuffix);
16082
}
16083
16084
prevEnd = end;
16085
}
16086
16087
if (prevEnd) {
16088
appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
16089
}
16090
}
16091
}, {
16092
key: "_updateMatches",
16093
value: function _updateMatches() {
16094
if (!this.renderingDone) {
16095
return;
16096
}
16097
16098
var findController = this.findController,
16099
matches = this.matches,
16100
pageIdx = this.pageIdx,
16101
textContentItemsStr = this.textContentItemsStr,
16102
textDivs = this.textDivs;
16103
var clearedUntilDivIdx = -1;
16104
16105
for (var i = 0, ii = matches.length; i < ii; i++) {
16106
var match = matches[i];
16107
var begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);
16108
16109
for (var n = begin, end = match.end.divIdx; n <= end; n++) {
16110
var div = textDivs[n];
16111
div.textContent = textContentItemsStr[n];
16112
div.className = "";
16113
}
16114
16115
clearedUntilDivIdx = match.end.divIdx + 1;
16116
}
16117
16118
if (!(findController !== null && findController !== void 0 && findController.highlightMatches)) {
16119
return;
16120
}
16121
16122
var pageMatches = findController.pageMatches[pageIdx] || null;
16123
var pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;
16124
this.matches = this._convertMatches(pageMatches, pageMatchesLength);
16125
16126
this._renderMatches(this.matches);
16127
}
16128
}, {
16129
key: "_bindMouse",
16130
value: function _bindMouse() {
16131
var _this2 = this;
16132
16133
var div = this.textLayerDiv;
16134
var expandDivsTimer = null;
16135
div.addEventListener("mousedown", function (evt) {
16136
if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) {
16137
_this2.textLayerRenderTask.expandTextDivs(true);
16138
16139
if (expandDivsTimer) {
16140
clearTimeout(expandDivsTimer);
16141
expandDivsTimer = null;
16142
}
16143
16144
return;
16145
}
16146
16147
var end = div.querySelector(".endOfContent");
16148
16149
if (!end) {
16150
return;
16151
}
16152
16153
var adjustTop = evt.target !== div;
16154
adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue("-moz-user-select") !== "none";
16155
16156
if (adjustTop) {
16157
var divBounds = div.getBoundingClientRect();
16158
var r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height);
16159
end.style.top = (r * 100).toFixed(2) + "%";
16160
}
16161
16162
end.classList.add("active");
16163
});
16164
div.addEventListener("mouseup", function () {
16165
if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) {
16166
expandDivsTimer = setTimeout(function () {
16167
if (_this2.textLayerRenderTask) {
16168
_this2.textLayerRenderTask.expandTextDivs(false);
16169
}
16170
16171
expandDivsTimer = null;
16172
}, EXPAND_DIVS_TIMEOUT);
16173
return;
16174
}
16175
16176
var end = div.querySelector(".endOfContent");
16177
16178
if (!end) {
16179
return;
16180
}
16181
16182
end.style.top = "";
16183
end.classList.remove("active");
16184
});
16185
}
16186
}]);
16187
16188
return TextLayerBuilder;
16189
}();
16190
16191
exports.TextLayerBuilder = TextLayerBuilder;
16192
16193
var DefaultTextLayerFactory = /*#__PURE__*/function () {
16194
function DefaultTextLayerFactory() {
16195
_classCallCheck(this, DefaultTextLayerFactory);
16196
}
16197
16198
_createClass(DefaultTextLayerFactory, [{
16199
key: "createTextLayerBuilder",
16200
value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) {
16201
var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
16202
var eventBus = arguments.length > 4 ? arguments[4] : undefined;
16203
return new TextLayerBuilder({
16204
textLayerDiv: textLayerDiv,
16205
pageIndex: pageIndex,
16206
viewport: viewport,
16207
enhanceTextSelection: enhanceTextSelection,
16208
eventBus: eventBus
16209
});
16210
}
16211
}]);
16212
16213
return DefaultTextLayerFactory;
16214
}();
16215
16216
exports.DefaultTextLayerFactory = DefaultTextLayerFactory;
16217
16218
/***/ }),
16219
/* 35 */
16220
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16221
16222
16223
16224
Object.defineProperty(exports, "__esModule", ({
16225
value: true
16226
}));
16227
exports.XfaLayerBuilder = exports.DefaultXfaLayerFactory = void 0;
16228
16229
var _pdfjsLib = __webpack_require__(7);
16230
16231
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16232
16233
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); } }
16234
16235
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
16236
16237
var XfaLayerBuilder = /*#__PURE__*/function () {
16238
function XfaLayerBuilder(_ref) {
16239
var pageDiv = _ref.pageDiv,
16240
pdfPage = _ref.pdfPage;
16241
16242
_classCallCheck(this, XfaLayerBuilder);
16243
16244
this.pageDiv = pageDiv;
16245
this.pdfPage = pdfPage;
16246
this.div = null;
16247
this._cancelled = false;
16248
}
16249
16250
_createClass(XfaLayerBuilder, [{
16251
key: "render",
16252
value: function render(viewport) {
16253
var _this = this;
16254
16255
var intent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "display";
16256
return this.pdfPage.getXfa().then(function (xfa) {
16257
if (_this._cancelled) {
16258
return;
16259
}
16260
16261
var parameters = {
16262
viewport: viewport.clone({
16263
dontFlip: true
16264
}),
16265
div: _this.div,
16266
xfa: xfa,
16267
page: _this.pdfPage
16268
};
16269
16270
if (_this.div) {
16271
_pdfjsLib.XfaLayer.update(parameters);
16272
} else {
16273
_this.div = document.createElement("div");
16274
16275
_this.pageDiv.appendChild(_this.div);
16276
16277
parameters.div = _this.div;
16278
16279
_pdfjsLib.XfaLayer.render(parameters);
16280
}
16281
});
16282
}
16283
}, {
16284
key: "cancel",
16285
value: function cancel() {
16286
this._cancelled = true;
16287
}
16288
}, {
16289
key: "hide",
16290
value: function hide() {
16291
if (!this.div) {
16292
return;
16293
}
16294
16295
this.div.hidden = true;
16296
}
16297
}]);
16298
16299
return XfaLayerBuilder;
16300
}();
16301
16302
exports.XfaLayerBuilder = XfaLayerBuilder;
16303
16304
var DefaultXfaLayerFactory = /*#__PURE__*/function () {
16305
function DefaultXfaLayerFactory() {
16306
_classCallCheck(this, DefaultXfaLayerFactory);
16307
}
16308
16309
_createClass(DefaultXfaLayerFactory, [{
16310
key: "createXfaLayerBuilder",
16311
value: function createXfaLayerBuilder(pageDiv, pdfPage) {
16312
return new XfaLayerBuilder({
16313
pageDiv: pageDiv,
16314
pdfPage: pdfPage
16315
});
16316
}
16317
}]);
16318
16319
return DefaultXfaLayerFactory;
16320
}();
16321
16322
exports.DefaultXfaLayerFactory = DefaultXfaLayerFactory;
16323
16324
/***/ }),
16325
/* 36 */
16326
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16327
16328
16329
16330
Object.defineProperty(exports, "__esModule", ({
16331
value: true
16332
}));
16333
exports.SecondaryToolbar = void 0;
16334
16335
var _ui_utils = __webpack_require__(6);
16336
16337
var _pdf_cursor_tools = __webpack_require__(8);
16338
16339
var _pdf_single_page_viewer = __webpack_require__(37);
16340
16341
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
16342
16343
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16344
16345
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
16346
16347
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16348
16349
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); } }
16350
16351
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
16352
16353
var SecondaryToolbar = /*#__PURE__*/function () {
16354
function SecondaryToolbar(options, mainContainer, eventBus) {
16355
var _this = this;
16356
16357
_classCallCheck(this, SecondaryToolbar);
16358
16359
this.toolbar = options.toolbar;
16360
this.toggleButton = options.toggleButton;
16361
this.toolbarButtonContainer = options.toolbarButtonContainer;
16362
this.buttons = [{
16363
element: options.presentationModeButton,
16364
eventName: "presentationmode",
16365
close: true
16366
}, {
16367
element: options.openFileButton,
16368
eventName: "openfile",
16369
close: true
16370
}, {
16371
element: options.printButton,
16372
eventName: "print",
16373
close: true
16374
}, {
16375
element: options.downloadButton,
16376
eventName: "download",
16377
close: true
16378
}, {
16379
element: options.viewBookmarkButton,
16380
eventName: null,
16381
close: true
16382
}, {
16383
element: options.firstPageButton,
16384
eventName: "firstpage",
16385
close: true
16386
}, {
16387
element: options.lastPageButton,
16388
eventName: "lastpage",
16389
close: true
16390
}, {
16391
element: options.pageRotateCwButton,
16392
eventName: "rotatecw",
16393
close: false
16394
}, {
16395
element: options.pageRotateCcwButton,
16396
eventName: "rotateccw",
16397
close: false
16398
}, {
16399
element: options.cursorSelectToolButton,
16400
eventName: "switchcursortool",
16401
eventDetails: {
16402
tool: _pdf_cursor_tools.CursorTool.SELECT
16403
},
16404
close: true
16405
}, {
16406
element: options.cursorHandToolButton,
16407
eventName: "switchcursortool",
16408
eventDetails: {
16409
tool: _pdf_cursor_tools.CursorTool.HAND
16410
},
16411
close: true
16412
}, {
16413
element: options.scrollVerticalButton,
16414
eventName: "switchscrollmode",
16415
eventDetails: {
16416
mode: _ui_utils.ScrollMode.VERTICAL
16417
},
16418
close: true
16419
}, {
16420
element: options.scrollHorizontalButton,
16421
eventName: "switchscrollmode",
16422
eventDetails: {
16423
mode: _ui_utils.ScrollMode.HORIZONTAL
16424
},
16425
close: true
16426
}, {
16427
element: options.scrollWrappedButton,
16428
eventName: "switchscrollmode",
16429
eventDetails: {
16430
mode: _ui_utils.ScrollMode.WRAPPED
16431
},
16432
close: true
16433
}, {
16434
element: options.spreadNoneButton,
16435
eventName: "switchspreadmode",
16436
eventDetails: {
16437
mode: _ui_utils.SpreadMode.NONE
16438
},
16439
close: true
16440
}, {
16441
element: options.spreadOddButton,
16442
eventName: "switchspreadmode",
16443
eventDetails: {
16444
mode: _ui_utils.SpreadMode.ODD
16445
},
16446
close: true
16447
}, {
16448
element: options.spreadEvenButton,
16449
eventName: "switchspreadmode",
16450
eventDetails: {
16451
mode: _ui_utils.SpreadMode.EVEN
16452
},
16453
close: true
16454
}, {
16455
element: options.documentPropertiesButton,
16456
eventName: "documentproperties",
16457
close: true
16458
}];
16459
this.items = {
16460
firstPage: options.firstPageButton,
16461
lastPage: options.lastPageButton,
16462
pageRotateCw: options.pageRotateCwButton,
16463
pageRotateCcw: options.pageRotateCcwButton
16464
};
16465
this.mainContainer = mainContainer;
16466
this.eventBus = eventBus;
16467
this.opened = false;
16468
this.containerHeight = null;
16469
this.previousContainerHeight = null;
16470
this.reset();
16471
16472
this._bindClickListeners();
16473
16474
this._bindCursorToolsListener(options);
16475
16476
this._bindScrollModeListener(options);
16477
16478
this._bindSpreadModeListener(options);
16479
16480
this.eventBus._on("resize", this._setMaxHeight.bind(this));
16481
16482
this.eventBus._on("baseviewerinit", function (evt) {
16483
if (evt.source instanceof _pdf_single_page_viewer.PDFSinglePageViewer) {
16484
_this.toolbarButtonContainer.classList.add("hiddenScrollModeButtons", "hiddenSpreadModeButtons");
16485
} else {
16486
_this.toolbarButtonContainer.classList.remove("hiddenScrollModeButtons", "hiddenSpreadModeButtons");
16487
}
16488
});
16489
}
16490
16491
_createClass(SecondaryToolbar, [{
16492
key: "isOpen",
16493
get: function get() {
16494
return this.opened;
16495
}
16496
}, {
16497
key: "setPageNumber",
16498
value: function setPageNumber(pageNumber) {
16499
this.pageNumber = pageNumber;
16500
16501
this._updateUIState();
16502
}
16503
}, {
16504
key: "setPagesCount",
16505
value: function setPagesCount(pagesCount) {
16506
this.pagesCount = pagesCount;
16507
16508
this._updateUIState();
16509
}
16510
}, {
16511
key: "reset",
16512
value: function reset() {
16513
this.pageNumber = 0;
16514
this.pagesCount = 0;
16515
16516
this._updateUIState();
16517
16518
this.eventBus.dispatch("secondarytoolbarreset", {
16519
source: this
16520
});
16521
}
16522
}, {
16523
key: "_updateUIState",
16524
value: function _updateUIState() {
16525
this.items.firstPage.disabled = this.pageNumber <= 1;
16526
this.items.lastPage.disabled = this.pageNumber >= this.pagesCount;
16527
this.items.pageRotateCw.disabled = this.pagesCount === 0;
16528
this.items.pageRotateCcw.disabled = this.pagesCount === 0;
16529
}
16530
}, {
16531
key: "_bindClickListeners",
16532
value: function _bindClickListeners() {
16533
var _this2 = this;
16534
16535
this.toggleButton.addEventListener("click", this.toggle.bind(this));
16536
16537
var _iterator = _createForOfIteratorHelper(this.buttons),
16538
_step;
16539
16540
try {
16541
var _loop = function _loop() {
16542
var _step$value = _step.value,
16543
element = _step$value.element,
16544
eventName = _step$value.eventName,
16545
close = _step$value.close,
16546
eventDetails = _step$value.eventDetails;
16547
element.addEventListener("click", function (evt) {
16548
if (eventName !== null) {
16549
var details = {
16550
source: _this2
16551
};
16552
16553
for (var property in eventDetails) {
16554
details[property] = eventDetails[property];
16555
}
16556
16557
_this2.eventBus.dispatch(eventName, details);
16558
}
16559
16560
if (close) {
16561
_this2.close();
16562
}
16563
});
16564
};
16565
16566
for (_iterator.s(); !(_step = _iterator.n()).done;) {
16567
_loop();
16568
}
16569
} catch (err) {
16570
_iterator.e(err);
16571
} finally {
16572
_iterator.f();
16573
}
16574
}
16575
}, {
16576
key: "_bindCursorToolsListener",
16577
value: function _bindCursorToolsListener(buttons) {
16578
this.eventBus._on("cursortoolchanged", function (_ref) {
16579
var tool = _ref.tool;
16580
buttons.cursorSelectToolButton.classList.toggle("toggled", tool === _pdf_cursor_tools.CursorTool.SELECT);
16581
buttons.cursorHandToolButton.classList.toggle("toggled", tool === _pdf_cursor_tools.CursorTool.HAND);
16582
});
16583
}
16584
}, {
16585
key: "_bindScrollModeListener",
16586
value: function _bindScrollModeListener(buttons) {
16587
var _this3 = this;
16588
16589
function scrollModeChanged(_ref2) {
16590
var mode = _ref2.mode;
16591
buttons.scrollVerticalButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.VERTICAL);
16592
buttons.scrollHorizontalButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.HORIZONTAL);
16593
buttons.scrollWrappedButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.WRAPPED);
16594
var isScrollModeHorizontal = mode === _ui_utils.ScrollMode.HORIZONTAL;
16595
buttons.spreadNoneButton.disabled = isScrollModeHorizontal;
16596
buttons.spreadOddButton.disabled = isScrollModeHorizontal;
16597
buttons.spreadEvenButton.disabled = isScrollModeHorizontal;
16598
}
16599
16600
this.eventBus._on("scrollmodechanged", scrollModeChanged);
16601
16602
this.eventBus._on("secondarytoolbarreset", function (evt) {
16603
if (evt.source === _this3) {
16604
scrollModeChanged({
16605
mode: _ui_utils.ScrollMode.VERTICAL
16606
});
16607
}
16608
});
16609
}
16610
}, {
16611
key: "_bindSpreadModeListener",
16612
value: function _bindSpreadModeListener(buttons) {
16613
var _this4 = this;
16614
16615
function spreadModeChanged(_ref3) {
16616
var mode = _ref3.mode;
16617
buttons.spreadNoneButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.NONE);
16618
buttons.spreadOddButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.ODD);
16619
buttons.spreadEvenButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.EVEN);
16620
}
16621
16622
this.eventBus._on("spreadmodechanged", spreadModeChanged);
16623
16624
this.eventBus._on("secondarytoolbarreset", function (evt) {
16625
if (evt.source === _this4) {
16626
spreadModeChanged({
16627
mode: _ui_utils.SpreadMode.NONE
16628
});
16629
}
16630
});
16631
}
16632
}, {
16633
key: "open",
16634
value: function open() {
16635
if (this.opened) {
16636
return;
16637
}
16638
16639
this.opened = true;
16640
16641
this._setMaxHeight();
16642
16643
this.toggleButton.classList.add("toggled");
16644
this.toggleButton.setAttribute("aria-expanded", "true");
16645
this.toolbar.classList.remove("hidden");
16646
}
16647
}, {
16648
key: "close",
16649
value: function close() {
16650
if (!this.opened) {
16651
return;
16652
}
16653
16654
this.opened = false;
16655
this.toolbar.classList.add("hidden");
16656
this.toggleButton.classList.remove("toggled");
16657
this.toggleButton.setAttribute("aria-expanded", "false");
16658
}
16659
}, {
16660
key: "toggle",
16661
value: function toggle() {
16662
if (this.opened) {
16663
this.close();
16664
} else {
16665
this.open();
16666
}
16667
}
16668
}, {
16669
key: "_setMaxHeight",
16670
value: function _setMaxHeight() {
16671
if (!this.opened) {
16672
return;
16673
}
16674
16675
this.containerHeight = this.mainContainer.clientHeight;
16676
16677
if (this.containerHeight === this.previousContainerHeight) {
16678
return;
16679
}
16680
16681
this.toolbarButtonContainer.style.maxHeight = "".concat(this.containerHeight - _ui_utils.SCROLLBAR_PADDING, "px");
16682
this.previousContainerHeight = this.containerHeight;
16683
}
16684
}]);
16685
16686
return SecondaryToolbar;
16687
}();
16688
16689
exports.SecondaryToolbar = SecondaryToolbar;
16690
16691
/***/ }),
16692
/* 37 */
16693
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16694
16695
16696
16697
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
16698
16699
Object.defineProperty(exports, "__esModule", ({
16700
value: true
16701
}));
16702
exports.PDFSinglePageViewer = void 0;
16703
16704
var _base_viewer = __webpack_require__(30);
16705
16706
var _pdfjsLib = __webpack_require__(7);
16707
16708
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16709
16710
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); } }
16711
16712
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
16713
16714
function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
16715
16716
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
16717
16718
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
16719
16720
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
16721
16722
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
16723
16724
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
16725
16726
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
16727
16728
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
16729
16730
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
16731
16732
var PDFSinglePageViewer = /*#__PURE__*/function (_BaseViewer) {
16733
_inherits(PDFSinglePageViewer, _BaseViewer);
16734
16735
var _super = _createSuper(PDFSinglePageViewer);
16736
16737
function PDFSinglePageViewer(options) {
16738
var _this;
16739
16740
_classCallCheck(this, PDFSinglePageViewer);
16741
16742
_this = _super.call(this, options);
16743
16744
_this.eventBus._on("pagesinit", function (evt) {
16745
_this._ensurePageViewVisible();
16746
});
16747
16748
return _this;
16749
}
16750
16751
_createClass(PDFSinglePageViewer, [{
16752
key: "_viewerElement",
16753
get: function get() {
16754
return (0, _pdfjsLib.shadow)(this, "_viewerElement", this._shadowViewer);
16755
}
16756
}, {
16757
key: "_pageWidthScaleFactor",
16758
get: function get() {
16759
return 1;
16760
}
16761
}, {
16762
key: "_resetView",
16763
value: function _resetView() {
16764
_get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_resetView", this).call(this);
16765
16766
this._previousPageNumber = 1;
16767
this._shadowViewer = document.createDocumentFragment();
16768
this._updateScrollDown = null;
16769
}
16770
}, {
16771
key: "_ensurePageViewVisible",
16772
value: function _ensurePageViewVisible() {
16773
var pageView = this._pages[this._currentPageNumber - 1];
16774
var previousPageView = this._pages[this._previousPageNumber - 1];
16775
var viewerNodes = this.viewer.childNodes;
16776
16777
switch (viewerNodes.length) {
16778
case 0:
16779
this.viewer.appendChild(pageView.div);
16780
break;
16781
16782
case 1:
16783
if (viewerNodes[0] !== previousPageView.div) {
16784
throw new Error("_ensurePageViewVisible: Unexpected previously visible page.");
16785
}
16786
16787
if (pageView === previousPageView) {
16788
break;
16789
}
16790
16791
this._shadowViewer.appendChild(previousPageView.div);
16792
16793
this.viewer.appendChild(pageView.div);
16794
this.container.scrollTop = 0;
16795
break;
16796
16797
default:
16798
throw new Error("_ensurePageViewVisible: Only one page should be visible at a time.");
16799
}
16800
16801
this._previousPageNumber = this._currentPageNumber;
16802
}
16803
}, {
16804
key: "_scrollUpdate",
16805
value: function _scrollUpdate() {
16806
if (this._updateScrollDown) {
16807
this._updateScrollDown();
16808
}
16809
16810
_get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_scrollUpdate", this).call(this);
16811
}
16812
}, {
16813
key: "_scrollIntoView",
16814
value: function _scrollIntoView(_ref) {
16815
var _this2 = this;
16816
16817
var pageDiv = _ref.pageDiv,
16818
_ref$pageSpot = _ref.pageSpot,
16819
pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot,
16820
_ref$pageNumber = _ref.pageNumber,
16821
pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber;
16822
16823
if (pageNumber) {
16824
this._setCurrentPageNumber(pageNumber);
16825
}
16826
16827
var scrolledDown = this._currentPageNumber >= this._previousPageNumber;
16828
16829
this._ensurePageViewVisible();
16830
16831
this.update();
16832
16833
_get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_scrollIntoView", this).call(this, {
16834
pageDiv: pageDiv,
16835
pageSpot: pageSpot,
16836
pageNumber: pageNumber
16837
});
16838
16839
this._updateScrollDown = function () {
16840
_this2.scroll.down = scrolledDown;
16841
_this2._updateScrollDown = null;
16842
};
16843
}
16844
}, {
16845
key: "_getVisiblePages",
16846
value: function _getVisiblePages() {
16847
return this._getCurrentVisiblePage();
16848
}
16849
}, {
16850
key: "_updateHelper",
16851
value: function _updateHelper(visiblePages) {}
16852
}, {
16853
key: "_isScrollModeHorizontal",
16854
get: function get() {
16855
return (0, _pdfjsLib.shadow)(this, "_isScrollModeHorizontal", false);
16856
}
16857
}, {
16858
key: "_updateScrollMode",
16859
value: function _updateScrollMode() {}
16860
}, {
16861
key: "_updateSpreadMode",
16862
value: function _updateSpreadMode() {}
16863
}, {
16864
key: "_getPageAdvance",
16865
value: function _getPageAdvance() {
16866
return 1;
16867
}
16868
}]);
16869
16870
return PDFSinglePageViewer;
16871
}(_base_viewer.BaseViewer);
16872
16873
exports.PDFSinglePageViewer = PDFSinglePageViewer;
16874
16875
/***/ }),
16876
/* 38 */
16877
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
16878
16879
16880
16881
Object.defineProperty(exports, "__esModule", ({
16882
value: true
16883
}));
16884
exports.Toolbar = void 0;
16885
16886
var _regenerator = _interopRequireDefault(__webpack_require__(4));
16887
16888
var _ui_utils = __webpack_require__(6);
16889
16890
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16891
16892
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
16893
16894
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
16895
16896
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
16897
16898
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
16899
16900
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
16901
16902
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16903
16904
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); } }
16905
16906
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
16907
16908
var PAGE_NUMBER_LOADING_INDICATOR = "visiblePageIsLoading";
16909
var SCALE_SELECT_CONTAINER_WIDTH = 140;
16910
var SCALE_SELECT_WIDTH = 162;
16911
16912
var Toolbar = /*#__PURE__*/function () {
16913
function Toolbar(options, eventBus, l10n) {
16914
_classCallCheck(this, Toolbar);
16915
16916
this.toolbar = options.container;
16917
this.eventBus = eventBus;
16918
this.l10n = l10n;
16919
this.buttons = [{
16920
element: options.previous,
16921
eventName: "previouspage"
16922
}, {
16923
element: options.next,
16924
eventName: "nextpage"
16925
}, {
16926
element: options.zoomIn,
16927
eventName: "zoomin"
16928
}, {
16929
element: options.zoomOut,
16930
eventName: "zoomout"
16931
}, {
16932
element: options.openFile,
16933
eventName: "openfile"
16934
}, {
16935
element: options.print,
16936
eventName: "print"
16937
}, {
16938
element: options.presentationModeButton,
16939
eventName: "presentationmode"
16940
}, {
16941
element: options.download,
16942
eventName: "download"
16943
}, {
16944
element: options.viewBookmark,
16945
eventName: null
16946
}];
16947
this.items = {
16948
numPages: options.numPages,
16949
pageNumber: options.pageNumber,
16950
scaleSelectContainer: options.scaleSelectContainer,
16951
scaleSelect: options.scaleSelect,
16952
customScaleOption: options.customScaleOption,
16953
previous: options.previous,
16954
next: options.next,
16955
zoomIn: options.zoomIn,
16956
zoomOut: options.zoomOut
16957
};
16958
this._wasLocalized = false;
16959
this.reset();
16960
16961
this._bindListeners();
16962
}
16963
16964
_createClass(Toolbar, [{
16965
key: "setPageNumber",
16966
value: function setPageNumber(pageNumber, pageLabel) {
16967
this.pageNumber = pageNumber;
16968
this.pageLabel = pageLabel;
16969
16970
this._updateUIState(false);
16971
}
16972
}, {
16973
key: "setPagesCount",
16974
value: function setPagesCount(pagesCount, hasPageLabels) {
16975
this.pagesCount = pagesCount;
16976
this.hasPageLabels = hasPageLabels;
16977
16978
this._updateUIState(true);
16979
}
16980
}, {
16981
key: "setPageScale",
16982
value: function setPageScale(pageScaleValue, pageScale) {
16983
this.pageScaleValue = (pageScaleValue || pageScale).toString();
16984
this.pageScale = pageScale;
16985
16986
this._updateUIState(false);
16987
}
16988
}, {
16989
key: "reset",
16990
value: function reset() {
16991
this.pageNumber = 0;
16992
this.pageLabel = null;
16993
this.hasPageLabels = false;
16994
this.pagesCount = 0;
16995
this.pageScaleValue = _ui_utils.DEFAULT_SCALE_VALUE;
16996
this.pageScale = _ui_utils.DEFAULT_SCALE;
16997
16998
this._updateUIState(true);
16999
17000
this.updateLoadingIndicatorState();
17001
}
17002
}, {
17003
key: "_bindListeners",
17004
value: function _bindListeners() {
17005
var _this = this;
17006
17007
var _this$items = this.items,
17008
pageNumber = _this$items.pageNumber,
17009
scaleSelect = _this$items.scaleSelect;
17010
var self = this;
17011
17012
var _iterator = _createForOfIteratorHelper(this.buttons),
17013
_step;
17014
17015
try {
17016
var _loop = function _loop() {
17017
var _step$value = _step.value,
17018
element = _step$value.element,
17019
eventName = _step$value.eventName;
17020
element.addEventListener("click", function (evt) {
17021
if (eventName !== null) {
17022
_this.eventBus.dispatch(eventName, {
17023
source: _this
17024
});
17025
}
17026
});
17027
};
17028
17029
for (_iterator.s(); !(_step = _iterator.n()).done;) {
17030
_loop();
17031
}
17032
} catch (err) {
17033
_iterator.e(err);
17034
} finally {
17035
_iterator.f();
17036
}
17037
17038
pageNumber.addEventListener("click", function () {
17039
this.select();
17040
});
17041
pageNumber.addEventListener("change", function () {
17042
self.eventBus.dispatch("pagenumberchanged", {
17043
source: self,
17044
value: this.value
17045
});
17046
});
17047
scaleSelect.addEventListener("change", function () {
17048
if (this.value === "custom") {
17049
return;
17050
}
17051
17052
self.eventBus.dispatch("scalechanged", {
17053
source: self,
17054
value: this.value
17055
});
17056
});
17057
scaleSelect.oncontextmenu = _ui_utils.noContextMenuHandler;
17058
17059
this.eventBus._on("localized", function () {
17060
_this._wasLocalized = true;
17061
17062
_this._adjustScaleWidth();
17063
17064
_this._updateUIState(true);
17065
});
17066
}
17067
}, {
17068
key: "_updateUIState",
17069
value: function _updateUIState() {
17070
var resetNumPages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
17071
17072
if (!this._wasLocalized) {
17073
return;
17074
}
17075
17076
var pageNumber = this.pageNumber,
17077
pagesCount = this.pagesCount,
17078
pageScaleValue = this.pageScaleValue,
17079
pageScale = this.pageScale,
17080
items = this.items;
17081
17082
if (resetNumPages) {
17083
if (this.hasPageLabels) {
17084
items.pageNumber.type = "text";
17085
} else {
17086
items.pageNumber.type = "number";
17087
this.l10n.get("of_pages", {
17088
pagesCount: pagesCount
17089
}).then(function (msg) {
17090
items.numPages.textContent = msg;
17091
});
17092
}
17093
17094
items.pageNumber.max = pagesCount;
17095
}
17096
17097
if (this.hasPageLabels) {
17098
items.pageNumber.value = this.pageLabel;
17099
this.l10n.get("page_of_pages", {
17100
pageNumber: pageNumber,
17101
pagesCount: pagesCount
17102
}).then(function (msg) {
17103
items.numPages.textContent = msg;
17104
});
17105
} else {
17106
items.pageNumber.value = pageNumber;
17107
}
17108
17109
items.previous.disabled = pageNumber <= 1;
17110
items.next.disabled = pageNumber >= pagesCount;
17111
items.zoomOut.disabled = pageScale <= _ui_utils.MIN_SCALE;
17112
items.zoomIn.disabled = pageScale >= _ui_utils.MAX_SCALE;
17113
this.l10n.get("page_scale_percent", {
17114
scale: Math.round(pageScale * 10000) / 100
17115
}).then(function (msg) {
17116
var predefinedValueFound = false;
17117
17118
var _iterator2 = _createForOfIteratorHelper(items.scaleSelect.options),
17119
_step2;
17120
17121
try {
17122
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
17123
var option = _step2.value;
17124
17125
if (option.value !== pageScaleValue) {
17126
option.selected = false;
17127
continue;
17128
}
17129
17130
option.selected = true;
17131
predefinedValueFound = true;
17132
}
17133
} catch (err) {
17134
_iterator2.e(err);
17135
} finally {
17136
_iterator2.f();
17137
}
17138
17139
if (!predefinedValueFound) {
17140
items.customScaleOption.textContent = msg;
17141
items.customScaleOption.selected = true;
17142
}
17143
});
17144
}
17145
}, {
17146
key: "updateLoadingIndicatorState",
17147
value: function updateLoadingIndicatorState() {
17148
var loading = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
17149
var pageNumberInput = this.items.pageNumber;
17150
pageNumberInput.classList.toggle(PAGE_NUMBER_LOADING_INDICATOR, loading);
17151
}
17152
}, {
17153
key: "_adjustScaleWidth",
17154
value: function () {
17155
var _adjustScaleWidth2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
17156
var items, l10n, predefinedValuesPromise, canvas, ctx, _getComputedStyle, fontSize, fontFamily, maxWidth, _iterator3, _step3, predefinedValue, _ctx$measureText, width, overflow;
17157
17158
return _regenerator["default"].wrap(function _callee$(_context) {
17159
while (1) {
17160
switch (_context.prev = _context.next) {
17161
case 0:
17162
items = this.items, l10n = this.l10n;
17163
predefinedValuesPromise = Promise.all([l10n.get("page_scale_auto"), l10n.get("page_scale_actual"), l10n.get("page_scale_fit"), l10n.get("page_scale_width")]);
17164
canvas = document.createElement("canvas");
17165
canvas.mozOpaque = true;
17166
ctx = canvas.getContext("2d", {
17167
alpha: false
17168
});
17169
_context.next = 7;
17170
return _ui_utils.animationStarted;
17171
17172
case 7:
17173
_getComputedStyle = getComputedStyle(items.scaleSelect), fontSize = _getComputedStyle.fontSize, fontFamily = _getComputedStyle.fontFamily;
17174
ctx.font = "".concat(fontSize, " ").concat(fontFamily);
17175
maxWidth = 0;
17176
_context.t0 = _createForOfIteratorHelper;
17177
_context.next = 13;
17178
return predefinedValuesPromise;
17179
17180
case 13:
17181
_context.t1 = _context.sent;
17182
_iterator3 = (0, _context.t0)(_context.t1);
17183
17184
try {
17185
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
17186
predefinedValue = _step3.value;
17187
_ctx$measureText = ctx.measureText(predefinedValue), width = _ctx$measureText.width;
17188
17189
if (width > maxWidth) {
17190
maxWidth = width;
17191
}
17192
}
17193
} catch (err) {
17194
_iterator3.e(err);
17195
} finally {
17196
_iterator3.f();
17197
}
17198
17199
overflow = SCALE_SELECT_WIDTH - SCALE_SELECT_CONTAINER_WIDTH;
17200
maxWidth += 2 * overflow;
17201
17202
if (maxWidth > SCALE_SELECT_CONTAINER_WIDTH) {
17203
items.scaleSelect.style.width = "".concat(maxWidth + overflow, "px");
17204
items.scaleSelectContainer.style.width = "".concat(maxWidth, "px");
17205
}
17206
17207
canvas.width = 0;
17208
canvas.height = 0;
17209
canvas = ctx = null;
17210
17211
case 22:
17212
case "end":
17213
return _context.stop();
17214
}
17215
}
17216
}, _callee, this);
17217
}));
17218
17219
function _adjustScaleWidth() {
17220
return _adjustScaleWidth2.apply(this, arguments);
17221
}
17222
17223
return _adjustScaleWidth;
17224
}()
17225
}]);
17226
17227
return Toolbar;
17228
}();
17229
17230
exports.Toolbar = Toolbar;
17231
17232
/***/ }),
17233
/* 39 */
17234
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
17235
17236
17237
17238
Object.defineProperty(exports, "__esModule", ({
17239
value: true
17240
}));
17241
exports.ViewHistory = void 0;
17242
17243
var _regenerator = _interopRequireDefault(__webpack_require__(4));
17244
17245
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17246
17247
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
17248
17249
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
17250
17251
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17252
17253
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); } }
17254
17255
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
17256
17257
var DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20;
17258
17259
var ViewHistory = /*#__PURE__*/function () {
17260
function ViewHistory(fingerprint) {
17261
var _this = this;
17262
17263
var cacheSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_VIEW_HISTORY_CACHE_SIZE;
17264
17265
_classCallCheck(this, ViewHistory);
17266
17267
this.fingerprint = fingerprint;
17268
this.cacheSize = cacheSize;
17269
this._initializedPromise = this._readFromStorage().then(function (databaseStr) {
17270
var database = JSON.parse(databaseStr || "{}");
17271
var index = -1;
17272
17273
if (!Array.isArray(database.files)) {
17274
database.files = [];
17275
} else {
17276
while (database.files.length >= _this.cacheSize) {
17277
database.files.shift();
17278
}
17279
17280
for (var i = 0, ii = database.files.length; i < ii; i++) {
17281
var branch = database.files[i];
17282
17283
if (branch.fingerprint === _this.fingerprint) {
17284
index = i;
17285
break;
17286
}
17287
}
17288
}
17289
17290
if (index === -1) {
17291
index = database.files.push({
17292
fingerprint: _this.fingerprint
17293
}) - 1;
17294
}
17295
17296
_this.file = database.files[index];
17297
_this.database = database;
17298
});
17299
}
17300
17301
_createClass(ViewHistory, [{
17302
key: "_writeToStorage",
17303
value: function () {
17304
var _writeToStorage2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
17305
var databaseStr;
17306
return _regenerator["default"].wrap(function _callee$(_context) {
17307
while (1) {
17308
switch (_context.prev = _context.next) {
17309
case 0:
17310
databaseStr = JSON.stringify(this.database);
17311
localStorage.setItem("pdfjs.history", databaseStr);
17312
17313
case 2:
17314
case "end":
17315
return _context.stop();
17316
}
17317
}
17318
}, _callee, this);
17319
}));
17320
17321
function _writeToStorage() {
17322
return _writeToStorage2.apply(this, arguments);
17323
}
17324
17325
return _writeToStorage;
17326
}()
17327
}, {
17328
key: "_readFromStorage",
17329
value: function () {
17330
var _readFromStorage2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
17331
return _regenerator["default"].wrap(function _callee2$(_context2) {
17332
while (1) {
17333
switch (_context2.prev = _context2.next) {
17334
case 0:
17335
return _context2.abrupt("return", localStorage.getItem("pdfjs.history"));
17336
17337
case 1:
17338
case "end":
17339
return _context2.stop();
17340
}
17341
}
17342
}, _callee2);
17343
}));
17344
17345
function _readFromStorage() {
17346
return _readFromStorage2.apply(this, arguments);
17347
}
17348
17349
return _readFromStorage;
17350
}()
17351
}, {
17352
key: "set",
17353
value: function () {
17354
var _set = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3(name, val) {
17355
return _regenerator["default"].wrap(function _callee3$(_context3) {
17356
while (1) {
17357
switch (_context3.prev = _context3.next) {
17358
case 0:
17359
_context3.next = 2;
17360
return this._initializedPromise;
17361
17362
case 2:
17363
this.file[name] = val;
17364
return _context3.abrupt("return", this._writeToStorage());
17365
17366
case 4:
17367
case "end":
17368
return _context3.stop();
17369
}
17370
}
17371
}, _callee3, this);
17372
}));
17373
17374
function set(_x, _x2) {
17375
return _set.apply(this, arguments);
17376
}
17377
17378
return set;
17379
}()
17380
}, {
17381
key: "setMultiple",
17382
value: function () {
17383
var _setMultiple = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4(properties) {
17384
var name;
17385
return _regenerator["default"].wrap(function _callee4$(_context4) {
17386
while (1) {
17387
switch (_context4.prev = _context4.next) {
17388
case 0:
17389
_context4.next = 2;
17390
return this._initializedPromise;
17391
17392
case 2:
17393
for (name in properties) {
17394
this.file[name] = properties[name];
17395
}
17396
17397
return _context4.abrupt("return", this._writeToStorage());
17398
17399
case 4:
17400
case "end":
17401
return _context4.stop();
17402
}
17403
}
17404
}, _callee4, this);
17405
}));
17406
17407
function setMultiple(_x3) {
17408
return _setMultiple.apply(this, arguments);
17409
}
17410
17411
return setMultiple;
17412
}()
17413
}, {
17414
key: "get",
17415
value: function () {
17416
var _get = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee5(name, defaultValue) {
17417
var val;
17418
return _regenerator["default"].wrap(function _callee5$(_context5) {
17419
while (1) {
17420
switch (_context5.prev = _context5.next) {
17421
case 0:
17422
_context5.next = 2;
17423
return this._initializedPromise;
17424
17425
case 2:
17426
val = this.file[name];
17427
return _context5.abrupt("return", val !== undefined ? val : defaultValue);
17428
17429
case 4:
17430
case "end":
17431
return _context5.stop();
17432
}
17433
}
17434
}, _callee5, this);
17435
}));
17436
17437
function get(_x4, _x5) {
17438
return _get.apply(this, arguments);
17439
}
17440
17441
return get;
17442
}()
17443
}, {
17444
key: "getMultiple",
17445
value: function () {
17446
var _getMultiple = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee6(properties) {
17447
var values, name, val;
17448
return _regenerator["default"].wrap(function _callee6$(_context6) {
17449
while (1) {
17450
switch (_context6.prev = _context6.next) {
17451
case 0:
17452
_context6.next = 2;
17453
return this._initializedPromise;
17454
17455
case 2:
17456
values = Object.create(null);
17457
17458
for (name in properties) {
17459
val = this.file[name];
17460
values[name] = val !== undefined ? val : properties[name];
17461
}
17462
17463
return _context6.abrupt("return", values);
17464
17465
case 5:
17466
case "end":
17467
return _context6.stop();
17468
}
17469
}
17470
}, _callee6, this);
17471
}));
17472
17473
function getMultiple(_x6) {
17474
return _getMultiple.apply(this, arguments);
17475
}
17476
17477
return getMultiple;
17478
}()
17479
}]);
17480
17481
return ViewHistory;
17482
}();
17483
17484
exports.ViewHistory = ViewHistory;
17485
17486
/***/ }),
17487
/* 40 */
17488
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
17489
17490
17491
17492
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
17493
17494
Object.defineProperty(exports, "__esModule", ({
17495
value: true
17496
}));
17497
exports.GenericCom = void 0;
17498
17499
var _regenerator = _interopRequireDefault(__webpack_require__(4));
17500
17501
var _app = __webpack_require__(3);
17502
17503
var _preferences = __webpack_require__(41);
17504
17505
var _download_manager = __webpack_require__(42);
17506
17507
var _genericl10n = __webpack_require__(43);
17508
17509
var _generic_scripting = __webpack_require__(45);
17510
17511
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17512
17513
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
17514
17515
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
17516
17517
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17518
17519
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); } }
17520
17521
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
17522
17523
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
17524
17525
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
17526
17527
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
17528
17529
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
17530
17531
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
17532
17533
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
17534
17535
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
17536
17537
;
17538
var GenericCom = {};
17539
exports.GenericCom = GenericCom;
17540
17541
var GenericPreferences = /*#__PURE__*/function (_BasePreferences) {
17542
_inherits(GenericPreferences, _BasePreferences);
17543
17544
var _super = _createSuper(GenericPreferences);
17545
17546
function GenericPreferences() {
17547
_classCallCheck(this, GenericPreferences);
17548
17549
return _super.apply(this, arguments);
17550
}
17551
17552
_createClass(GenericPreferences, [{
17553
key: "_writeToStorage",
17554
value: function () {
17555
var _writeToStorage2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(prefObj) {
17556
return _regenerator["default"].wrap(function _callee$(_context) {
17557
while (1) {
17558
switch (_context.prev = _context.next) {
17559
case 0:
17560
localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj));
17561
17562
case 1:
17563
case "end":
17564
return _context.stop();
17565
}
17566
}
17567
}, _callee);
17568
}));
17569
17570
function _writeToStorage(_x) {
17571
return _writeToStorage2.apply(this, arguments);
17572
}
17573
17574
return _writeToStorage;
17575
}()
17576
}, {
17577
key: "_readFromStorage",
17578
value: function () {
17579
var _readFromStorage2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(prefObj) {
17580
return _regenerator["default"].wrap(function _callee2$(_context2) {
17581
while (1) {
17582
switch (_context2.prev = _context2.next) {
17583
case 0:
17584
return _context2.abrupt("return", JSON.parse(localStorage.getItem("pdfjs.preferences")));
17585
17586
case 1:
17587
case "end":
17588
return _context2.stop();
17589
}
17590
}
17591
}, _callee2);
17592
}));
17593
17594
function _readFromStorage(_x2) {
17595
return _readFromStorage2.apply(this, arguments);
17596
}
17597
17598
return _readFromStorage;
17599
}()
17600
}]);
17601
17602
return GenericPreferences;
17603
}(_preferences.BasePreferences);
17604
17605
var GenericExternalServices = /*#__PURE__*/function (_DefaultExternalServi) {
17606
_inherits(GenericExternalServices, _DefaultExternalServi);
17607
17608
var _super2 = _createSuper(GenericExternalServices);
17609
17610
function GenericExternalServices() {
17611
_classCallCheck(this, GenericExternalServices);
17612
17613
return _super2.apply(this, arguments);
17614
}
17615
17616
_createClass(GenericExternalServices, null, [{
17617
key: "createDownloadManager",
17618
value: function createDownloadManager(options) {
17619
return new _download_manager.DownloadManager();
17620
}
17621
}, {
17622
key: "createPreferences",
17623
value: function createPreferences() {
17624
return new GenericPreferences();
17625
}
17626
}, {
17627
key: "createL10n",
17628
value: function createL10n(_ref) {
17629
var _ref$locale = _ref.locale,
17630
locale = _ref$locale === void 0 ? "en-US" : _ref$locale;
17631
return new _genericl10n.GenericL10n(locale);
17632
}
17633
}, {
17634
key: "createScripting",
17635
value: function createScripting(_ref2) {
17636
var sandboxBundleSrc = _ref2.sandboxBundleSrc;
17637
return new _generic_scripting.GenericScripting(sandboxBundleSrc);
17638
}
17639
}]);
17640
17641
return GenericExternalServices;
17642
}(_app.DefaultExternalServices);
17643
17644
_app.PDFViewerApplication.externalServices = GenericExternalServices;
17645
17646
/***/ }),
17647
/* 41 */
17648
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
17649
17650
17651
17652
Object.defineProperty(exports, "__esModule", ({
17653
value: true
17654
}));
17655
exports.BasePreferences = void 0;
17656
17657
var _regenerator = _interopRequireDefault(__webpack_require__(4));
17658
17659
var _app_options = __webpack_require__(1);
17660
17661
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17662
17663
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
17664
17665
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
17666
17667
function _typeof(obj) { "@babel/helpers - typeof"; 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); }
17668
17669
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17670
17671
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); } }
17672
17673
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
17674
17675
var BasePreferences = /*#__PURE__*/function () {
17676
function BasePreferences() {
17677
var _this = this;
17678
17679
_classCallCheck(this, BasePreferences);
17680
17681
if (this.constructor === BasePreferences) {
17682
throw new Error("Cannot initialize BasePreferences.");
17683
}
17684
17685
Object.defineProperty(this, "defaults", {
17686
value: Object.freeze({
17687
"cursorToolOnLoad": 0,
17688
"defaultZoomValue": "",
17689
"disablePageLabels": false,
17690
"enablePermissions": false,
17691
"enablePrintAutoRotate": true,
17692
"enableScripting": true,
17693
"enableWebGL": false,
17694
"externalLinkTarget": 0,
17695
"historyUpdateUrl": false,
17696
"ignoreDestinationZoom": false,
17697
"pdfBugEnabled": false,
17698
"renderer": "canvas",
17699
"renderInteractiveForms": true,
17700
"sidebarViewOnLoad": -1,
17701
"scrollModeOnLoad": -1,
17702
"spreadModeOnLoad": -1,
17703
"textLayerMode": 1,
17704
"useOnlyCssZoom": false,
17705
"viewerCssTheme": 0,
17706
"viewOnLoad": 0,
17707
"disableAutoFetch": false,
17708
"disableFontFace": false,
17709
"disableRange": false,
17710
"disableStream": false
17711
}),
17712
writable: false,
17713
enumerable: true,
17714
configurable: false
17715
});
17716
this.prefs = Object.create(null);
17717
this._initializedPromise = this._readFromStorage(this.defaults).then(function (prefs) {
17718
for (var name in _this.defaults) {
17719
var prefValue = prefs === null || prefs === void 0 ? void 0 : prefs[name];
17720
17721
if (_typeof(prefValue) === _typeof(_this.defaults[name])) {
17722
_this.prefs[name] = prefValue;
17723
}
17724
}
17725
});
17726
}
17727
17728
_createClass(BasePreferences, [{
17729
key: "_writeToStorage",
17730
value: function () {
17731
var _writeToStorage2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(prefObj) {
17732
return _regenerator["default"].wrap(function _callee$(_context) {
17733
while (1) {
17734
switch (_context.prev = _context.next) {
17735
case 0:
17736
throw new Error("Not implemented: _writeToStorage");
17737
17738
case 1:
17739
case "end":
17740
return _context.stop();
17741
}
17742
}
17743
}, _callee);
17744
}));
17745
17746
function _writeToStorage(_x) {
17747
return _writeToStorage2.apply(this, arguments);
17748
}
17749
17750
return _writeToStorage;
17751
}()
17752
}, {
17753
key: "_readFromStorage",
17754
value: function () {
17755
var _readFromStorage2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(prefObj) {
17756
return _regenerator["default"].wrap(function _callee2$(_context2) {
17757
while (1) {
17758
switch (_context2.prev = _context2.next) {
17759
case 0:
17760
throw new Error("Not implemented: _readFromStorage");
17761
17762
case 1:
17763
case "end":
17764
return _context2.stop();
17765
}
17766
}
17767
}, _callee2);
17768
}));
17769
17770
function _readFromStorage(_x2) {
17771
return _readFromStorage2.apply(this, arguments);
17772
}
17773
17774
return _readFromStorage;
17775
}()
17776
}, {
17777
key: "reset",
17778
value: function () {
17779
var _reset = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
17780
return _regenerator["default"].wrap(function _callee3$(_context3) {
17781
while (1) {
17782
switch (_context3.prev = _context3.next) {
17783
case 0:
17784
_context3.next = 2;
17785
return this._initializedPromise;
17786
17787
case 2:
17788
this.prefs = Object.create(null);
17789
return _context3.abrupt("return", this._writeToStorage(this.defaults));
17790
17791
case 4:
17792
case "end":
17793
return _context3.stop();
17794
}
17795
}
17796
}, _callee3, this);
17797
}));
17798
17799
function reset() {
17800
return _reset.apply(this, arguments);
17801
}
17802
17803
return reset;
17804
}()
17805
}, {
17806
key: "set",
17807
value: function () {
17808
var _set = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4(name, value) {
17809
var defaultValue, valueType, defaultType;
17810
return _regenerator["default"].wrap(function _callee4$(_context4) {
17811
while (1) {
17812
switch (_context4.prev = _context4.next) {
17813
case 0:
17814
_context4.next = 2;
17815
return this._initializedPromise;
17816
17817
case 2:
17818
defaultValue = this.defaults[name];
17819
17820
if (!(defaultValue === undefined)) {
17821
_context4.next = 7;
17822
break;
17823
}
17824
17825
throw new Error("Set preference: \"".concat(name, "\" is undefined."));
17826
17827
case 7:
17828
if (!(value === undefined)) {
17829
_context4.next = 9;
17830
break;
17831
}
17832
17833
throw new Error("Set preference: no value is specified.");
17834
17835
case 9:
17836
valueType = _typeof(value);
17837
defaultType = _typeof(defaultValue);
17838
17839
if (!(valueType !== defaultType)) {
17840
_context4.next = 19;
17841
break;
17842
}
17843
17844
if (!(valueType === "number" && defaultType === "string")) {
17845
_context4.next = 16;
17846
break;
17847
}
17848
17849
value = value.toString();
17850
_context4.next = 17;
17851
break;
17852
17853
case 16:
17854
throw new Error("Set preference: \"".concat(value, "\" is a ").concat(valueType, ", expected a ").concat(defaultType, "."));
17855
17856
case 17:
17857
_context4.next = 21;
17858
break;
17859
17860
case 19:
17861
if (!(valueType === "number" && !Number.isInteger(value))) {
17862
_context4.next = 21;
17863
break;
17864
}
17865
17866
throw new Error("Set preference: \"".concat(value, "\" must be an integer."));
17867
17868
case 21:
17869
this.prefs[name] = value;
17870
return _context4.abrupt("return", this._writeToStorage(this.prefs));
17871
17872
case 23:
17873
case "end":
17874
return _context4.stop();
17875
}
17876
}
17877
}, _callee4, this);
17878
}));
17879
17880
function set(_x3, _x4) {
17881
return _set.apply(this, arguments);
17882
}
17883
17884
return set;
17885
}()
17886
}, {
17887
key: "get",
17888
value: function () {
17889
var _get = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee5(name) {
17890
var defaultValue, prefValue;
17891
return _regenerator["default"].wrap(function _callee5$(_context5) {
17892
while (1) {
17893
switch (_context5.prev = _context5.next) {
17894
case 0:
17895
_context5.next = 2;
17896
return this._initializedPromise;
17897
17898
case 2:
17899
defaultValue = this.defaults[name], prefValue = this.prefs[name];
17900
17901
if (!(defaultValue === undefined)) {
17902
_context5.next = 5;
17903
break;
17904
}
17905
17906
throw new Error("Get preference: \"".concat(name, "\" is undefined."));
17907
17908
case 5:
17909
return _context5.abrupt("return", prefValue !== undefined ? prefValue : defaultValue);
17910
17911
case 6:
17912
case "end":
17913
return _context5.stop();
17914
}
17915
}
17916
}, _callee5, this);
17917
}));
17918
17919
function get(_x5) {
17920
return _get.apply(this, arguments);
17921
}
17922
17923
return get;
17924
}()
17925
}, {
17926
key: "getAll",
17927
value: function () {
17928
var _getAll = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
17929
var obj, name, prefValue;
17930
return _regenerator["default"].wrap(function _callee6$(_context6) {
17931
while (1) {
17932
switch (_context6.prev = _context6.next) {
17933
case 0:
17934
_context6.next = 2;
17935
return this._initializedPromise;
17936
17937
case 2:
17938
obj = Object.create(null);
17939
17940
for (name in this.defaults) {
17941
prefValue = this.prefs[name];
17942
obj[name] = prefValue !== undefined ? prefValue : this.defaults[name];
17943
}
17944
17945
return _context6.abrupt("return", obj);
17946
17947
case 5:
17948
case "end":
17949
return _context6.stop();
17950
}
17951
}
17952
}, _callee6, this);
17953
}));
17954
17955
function getAll() {
17956
return _getAll.apply(this, arguments);
17957
}
17958
17959
return getAll;
17960
}()
17961
}]);
17962
17963
return BasePreferences;
17964
}();
17965
17966
exports.BasePreferences = BasePreferences;
17967
17968
/***/ }),
17969
/* 42 */
17970
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
17971
17972
17973
17974
Object.defineProperty(exports, "__esModule", ({
17975
value: true
17976
}));
17977
exports.DownloadManager = void 0;
17978
17979
var _pdfjsLib = __webpack_require__(7);
17980
17981
var _viewer_compatibility = __webpack_require__(2);
17982
17983
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17984
17985
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); } }
17986
17987
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
17988
17989
;
17990
17991
function _download(blobUrl, filename) {
17992
var a = document.createElement("a");
17993
17994
if (!a.click) {
17995
throw new Error('DownloadManager: "a.click()" is not supported.');
17996
}
17997
17998
a.href = blobUrl;
17999
a.target = "_parent";
18000
18001
if ("download" in a) {
18002
a.download = filename;
18003
}
18004
18005
(document.body || document.documentElement).appendChild(a);
18006
a.click();
18007
a.remove();
18008
}
18009
18010
var DownloadManager = /*#__PURE__*/function () {
18011
function DownloadManager() {
18012
_classCallCheck(this, DownloadManager);
18013
18014
this._openBlobUrls = new WeakMap();
18015
}
18016
18017
_createClass(DownloadManager, [{
18018
key: "downloadUrl",
18019
value: function downloadUrl(url, filename) {
18020
if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, "http://example.com")) {
18021
return;
18022
}
18023
18024
_download(url + "#pdfjs.action=download", filename);
18025
}
18026
}, {
18027
key: "downloadData",
18028
value: function downloadData(data, filename, contentType) {
18029
var blobUrl = (0, _pdfjsLib.createObjectURL)(data, contentType, _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL);
18030
18031
_download(blobUrl, filename);
18032
}
18033
}, {
18034
key: "openOrDownloadData",
18035
value: function openOrDownloadData(element, data, filename) {
18036
var isPdfData = (0, _pdfjsLib.isPdfFile)(filename);
18037
var contentType = isPdfData ? "application/pdf" : "";
18038
18039
if (isPdfData && !_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) {
18040
var blobUrl = this._openBlobUrls.get(element);
18041
18042
if (!blobUrl) {
18043
blobUrl = URL.createObjectURL(new Blob([data], {
18044
type: contentType
18045
}));
18046
18047
this._openBlobUrls.set(element, blobUrl);
18048
}
18049
18050
var viewerUrl;
18051
viewerUrl = "?file=" + encodeURIComponent(blobUrl + "#" + filename);
18052
18053
try {
18054
window.open(viewerUrl);
18055
return true;
18056
} catch (ex) {
18057
console.error("openOrDownloadData: ".concat(ex));
18058
URL.revokeObjectURL(blobUrl);
18059
18060
this._openBlobUrls["delete"](element);
18061
}
18062
}
18063
18064
this.downloadData(data, filename, contentType);
18065
return false;
18066
}
18067
}, {
18068
key: "download",
18069
value: function download(blob, url, filename) {
18070
var sourceEventType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "download";
18071
18072
if (_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) {
18073
this.downloadUrl(url, filename);
18074
return;
18075
}
18076
18077
var blobUrl = URL.createObjectURL(blob);
18078
18079
_download(blobUrl, filename);
18080
}
18081
}]);
18082
18083
return DownloadManager;
18084
}();
18085
18086
exports.DownloadManager = DownloadManager;
18087
18088
/***/ }),
18089
/* 43 */
18090
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
18091
18092
18093
18094
Object.defineProperty(exports, "__esModule", ({
18095
value: true
18096
}));
18097
exports.GenericL10n = void 0;
18098
18099
var _regenerator = _interopRequireDefault(__webpack_require__(4));
18100
18101
__webpack_require__(44);
18102
18103
var _l10n_utils = __webpack_require__(32);
18104
18105
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
18106
18107
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
18108
18109
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
18110
18111
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
18112
18113
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); } }
18114
18115
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
18116
18117
var webL10n = document.webL10n;
18118
18119
var GenericL10n = /*#__PURE__*/function () {
18120
function GenericL10n(lang) {
18121
_classCallCheck(this, GenericL10n);
18122
18123
this._lang = lang;
18124
this._ready = new Promise(function (resolve, reject) {
18125
webL10n.setLanguage(lang, function () {
18126
resolve(webL10n);
18127
});
18128
});
18129
}
18130
18131
_createClass(GenericL10n, [{
18132
key: "getLanguage",
18133
value: function () {
18134
var _getLanguage = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
18135
var l10n;
18136
return _regenerator["default"].wrap(function _callee$(_context) {
18137
while (1) {
18138
switch (_context.prev = _context.next) {
18139
case 0:
18140
_context.next = 2;
18141
return this._ready;
18142
18143
case 2:
18144
l10n = _context.sent;
18145
return _context.abrupt("return", l10n.getLanguage());
18146
18147
case 4:
18148
case "end":
18149
return _context.stop();
18150
}
18151
}
18152
}, _callee, this);
18153
}));
18154
18155
function getLanguage() {
18156
return _getLanguage.apply(this, arguments);
18157
}
18158
18159
return getLanguage;
18160
}()
18161
}, {
18162
key: "getDirection",
18163
value: function () {
18164
var _getDirection = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
18165
var l10n;
18166
return _regenerator["default"].wrap(function _callee2$(_context2) {
18167
while (1) {
18168
switch (_context2.prev = _context2.next) {
18169
case 0:
18170
_context2.next = 2;
18171
return this._ready;
18172
18173
case 2:
18174
l10n = _context2.sent;
18175
return _context2.abrupt("return", l10n.getDirection());
18176
18177
case 4:
18178
case "end":
18179
return _context2.stop();
18180
}
18181
}
18182
}, _callee2, this);
18183
}));
18184
18185
function getDirection() {
18186
return _getDirection.apply(this, arguments);
18187
}
18188
18189
return getDirection;
18190
}()
18191
}, {
18192
key: "get",
18193
value: function () {
18194
var _get = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3(key) {
18195
var args,
18196
fallback,
18197
l10n,
18198
_args3 = arguments;
18199
return _regenerator["default"].wrap(function _callee3$(_context3) {
18200
while (1) {
18201
switch (_context3.prev = _context3.next) {
18202
case 0:
18203
args = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : null;
18204
fallback = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : (0, _l10n_utils.getL10nFallback)(key, args);
18205
_context3.next = 4;
18206
return this._ready;
18207
18208
case 4:
18209
l10n = _context3.sent;
18210
return _context3.abrupt("return", l10n.get(key, args, fallback));
18211
18212
case 6:
18213
case "end":
18214
return _context3.stop();
18215
}
18216
}
18217
}, _callee3, this);
18218
}));
18219
18220
function get(_x) {
18221
return _get.apply(this, arguments);
18222
}
18223
18224
return get;
18225
}()
18226
}, {
18227
key: "translate",
18228
value: function () {
18229
var _translate = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4(element) {
18230
var l10n;
18231
return _regenerator["default"].wrap(function _callee4$(_context4) {
18232
while (1) {
18233
switch (_context4.prev = _context4.next) {
18234
case 0:
18235
_context4.next = 2;
18236
return this._ready;
18237
18238
case 2:
18239
l10n = _context4.sent;
18240
return _context4.abrupt("return", l10n.translate(element));
18241
18242
case 4:
18243
case "end":
18244
return _context4.stop();
18245
}
18246
}
18247
}, _callee4, this);
18248
}));
18249
18250
function translate(_x2) {
18251
return _translate.apply(this, arguments);
18252
}
18253
18254
return translate;
18255
}()
18256
}]);
18257
18258
return GenericL10n;
18259
}();
18260
18261
exports.GenericL10n = GenericL10n;
18262
18263
/***/ }),
18264
/* 44 */
18265
/***/ (() => {
18266
18267
18268
18269
document.webL10n = function (window, document, undefined) {
18270
var gL10nData = {};
18271
var gTextData = '';
18272
var gTextProp = 'textContent';
18273
var gLanguage = '';
18274
var gMacros = {};
18275
var gReadyState = 'loading';
18276
var gAsyncResourceLoading = true;
18277
18278
function getL10nResourceLinks() {
18279
return document.querySelectorAll('link[type="application/l10n"]');
18280
}
18281
18282
function getL10nDictionary() {
18283
var script = document.querySelector('script[type="application/l10n"]');
18284
return script ? JSON.parse(script.innerHTML) : null;
18285
}
18286
18287
function getTranslatableChildren(element) {
18288
return element ? element.querySelectorAll('*[data-l10n-id]') : [];
18289
}
18290
18291
function getL10nAttributes(element) {
18292
if (!element) return {};
18293
var l10nId = element.getAttribute('data-l10n-id');
18294
var l10nArgs = element.getAttribute('data-l10n-args');
18295
var args = {};
18296
18297
if (l10nArgs) {
18298
try {
18299
args = JSON.parse(l10nArgs);
18300
} catch (e) {
18301
console.warn('could not parse arguments for #' + l10nId);
18302
}
18303
}
18304
18305
return {
18306
id: l10nId,
18307
args: args
18308
};
18309
}
18310
18311
function xhrLoadText(url, onSuccess, onFailure) {
18312
onSuccess = onSuccess || function _onSuccess(data) {};
18313
18314
onFailure = onFailure || function _onFailure() {};
18315
18316
var xhr = new XMLHttpRequest();
18317
xhr.open('GET', url, gAsyncResourceLoading);
18318
18319
if (xhr.overrideMimeType) {
18320
xhr.overrideMimeType('text/plain; charset=utf-8');
18321
}
18322
18323
xhr.onreadystatechange = function () {
18324
if (xhr.readyState == 4) {
18325
if (xhr.status == 200 || xhr.status === 0) {
18326
onSuccess(xhr.responseText);
18327
} else {
18328
onFailure();
18329
}
18330
}
18331
};
18332
18333
xhr.onerror = onFailure;
18334
xhr.ontimeout = onFailure;
18335
18336
try {
18337
xhr.send(null);
18338
} catch (e) {
18339
onFailure();
18340
}
18341
}
18342
18343
function parseResource(href, lang, successCallback, failureCallback) {
18344
var baseURL = href.replace(/[^\/]*$/, '') || './';
18345
18346
function evalString(text) {
18347
if (text.lastIndexOf('\\') < 0) return text;
18348
return text.replace(/\\\\/g, '\\').replace(/\\n/g, '\n').replace(/\\r/g, '\r').replace(/\\t/g, '\t').replace(/\\b/g, '\b').replace(/\\f/g, '\f').replace(/\\{/g, '{').replace(/\\}/g, '}').replace(/\\"/g, '"').replace(/\\'/g, "'");
18349
}
18350
18351
function parseProperties(text, parsedPropertiesCallback) {
18352
var dictionary = {};
18353
var reBlank = /^\s*|\s*$/;
18354
var reComment = /^\s*#|^\s*$/;
18355
var reSection = /^\s*\[(.*)\]\s*$/;
18356
var reImport = /^\s*@import\s+url\((.*)\)\s*$/i;
18357
var reSplit = /^([^=\s]*)\s*=\s*(.+)$/;
18358
18359
function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) {
18360
var entries = rawText.replace(reBlank, '').split(/[\r\n]+/);
18361
var currentLang = '*';
18362
var genericLang = lang.split('-', 1)[0];
18363
var skipLang = false;
18364
var match = '';
18365
18366
function nextEntry() {
18367
while (true) {
18368
if (!entries.length) {
18369
parsedRawLinesCallback();
18370
return;
18371
}
18372
18373
var line = entries.shift();
18374
if (reComment.test(line)) continue;
18375
18376
if (extendedSyntax) {
18377
match = reSection.exec(line);
18378
18379
if (match) {
18380
currentLang = match[1].toLowerCase();
18381
skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang;
18382
continue;
18383
} else if (skipLang) {
18384
continue;
18385
}
18386
18387
match = reImport.exec(line);
18388
18389
if (match) {
18390
loadImport(baseURL + match[1], nextEntry);
18391
return;
18392
}
18393
}
18394
18395
var tmp = line.match(reSplit);
18396
18397
if (tmp && tmp.length == 3) {
18398
dictionary[tmp[1]] = evalString(tmp[2]);
18399
}
18400
}
18401
}
18402
18403
nextEntry();
18404
}
18405
18406
function loadImport(url, callback) {
18407
xhrLoadText(url, function (content) {
18408
parseRawLines(content, false, callback);
18409
}, function () {
18410
console.warn(url + ' not found.');
18411
callback();
18412
});
18413
}
18414
18415
parseRawLines(text, true, function () {
18416
parsedPropertiesCallback(dictionary);
18417
});
18418
}
18419
18420
xhrLoadText(href, function (response) {
18421
gTextData += response;
18422
parseProperties(response, function (data) {
18423
for (var key in data) {
18424
var id,
18425
prop,
18426
index = key.lastIndexOf('.');
18427
18428
if (index > 0) {
18429
id = key.substring(0, index);
18430
prop = key.substring(index + 1);
18431
} else {
18432
id = key;
18433
prop = gTextProp;
18434
}
18435
18436
if (!gL10nData[id]) {
18437
gL10nData[id] = {};
18438
}
18439
18440
gL10nData[id][prop] = data[key];
18441
}
18442
18443
if (successCallback) {
18444
successCallback();
18445
}
18446
});
18447
}, failureCallback);
18448
}
18449
18450
function loadLocale(lang, callback) {
18451
if (lang) {
18452
lang = lang.toLowerCase();
18453
}
18454
18455
callback = callback || function _callback() {};
18456
18457
clear();
18458
gLanguage = lang;
18459
var langLinks = getL10nResourceLinks();
18460
var langCount = langLinks.length;
18461
18462
if (langCount === 0) {
18463
var dict = getL10nDictionary();
18464
18465
if (dict && dict.locales && dict.default_locale) {
18466
console.log('using the embedded JSON directory, early way out');
18467
gL10nData = dict.locales[lang];
18468
18469
if (!gL10nData) {
18470
var defaultLocale = dict.default_locale.toLowerCase();
18471
18472
for (var anyCaseLang in dict.locales) {
18473
anyCaseLang = anyCaseLang.toLowerCase();
18474
18475
if (anyCaseLang === lang) {
18476
gL10nData = dict.locales[lang];
18477
break;
18478
} else if (anyCaseLang === defaultLocale) {
18479
gL10nData = dict.locales[defaultLocale];
18480
}
18481
}
18482
}
18483
18484
callback();
18485
} else {
18486
console.log('no resource to load, early way out');
18487
}
18488
18489
gReadyState = 'complete';
18490
return;
18491
}
18492
18493
var onResourceLoaded = null;
18494
var gResourceCount = 0;
18495
18496
onResourceLoaded = function onResourceLoaded() {
18497
gResourceCount++;
18498
18499
if (gResourceCount >= langCount) {
18500
callback();
18501
gReadyState = 'complete';
18502
}
18503
};
18504
18505
function L10nResourceLink(link) {
18506
var href = link.href;
18507
18508
this.load = function (lang, callback) {
18509
parseResource(href, lang, callback, function () {
18510
console.warn(href + ' not found.');
18511
console.warn('"' + lang + '" resource not found');
18512
gLanguage = '';
18513
callback();
18514
});
18515
};
18516
}
18517
18518
for (var i = 0; i < langCount; i++) {
18519
var resource = new L10nResourceLink(langLinks[i]);
18520
resource.load(lang, onResourceLoaded);
18521
}
18522
}
18523
18524
function clear() {
18525
gL10nData = {};
18526
gTextData = '';
18527
gLanguage = '';
18528
}
18529
18530
function getPluralRules(lang) {
18531
var locales2rules = {
18532
'af': 3,
18533
'ak': 4,
18534
'am': 4,
18535
'ar': 1,
18536
'asa': 3,
18537
'az': 0,
18538
'be': 11,
18539
'bem': 3,
18540
'bez': 3,
18541
'bg': 3,
18542
'bh': 4,
18543
'bm': 0,
18544
'bn': 3,
18545
'bo': 0,
18546
'br': 20,
18547
'brx': 3,
18548
'bs': 11,
18549
'ca': 3,
18550
'cgg': 3,
18551
'chr': 3,
18552
'cs': 12,
18553
'cy': 17,
18554
'da': 3,
18555
'de': 3,
18556
'dv': 3,
18557
'dz': 0,
18558
'ee': 3,
18559
'el': 3,
18560
'en': 3,
18561
'eo': 3,
18562
'es': 3,
18563
'et': 3,
18564
'eu': 3,
18565
'fa': 0,
18566
'ff': 5,
18567
'fi': 3,
18568
'fil': 4,
18569
'fo': 3,
18570
'fr': 5,
18571
'fur': 3,
18572
'fy': 3,
18573
'ga': 8,
18574
'gd': 24,
18575
'gl': 3,
18576
'gsw': 3,
18577
'gu': 3,
18578
'guw': 4,
18579
'gv': 23,
18580
'ha': 3,
18581
'haw': 3,
18582
'he': 2,
18583
'hi': 4,
18584
'hr': 11,
18585
'hu': 0,
18586
'id': 0,
18587
'ig': 0,
18588
'ii': 0,
18589
'is': 3,
18590
'it': 3,
18591
'iu': 7,
18592
'ja': 0,
18593
'jmc': 3,
18594
'jv': 0,
18595
'ka': 0,
18596
'kab': 5,
18597
'kaj': 3,
18598
'kcg': 3,
18599
'kde': 0,
18600
'kea': 0,
18601
'kk': 3,
18602
'kl': 3,
18603
'km': 0,
18604
'kn': 0,
18605
'ko': 0,
18606
'ksb': 3,
18607
'ksh': 21,
18608
'ku': 3,
18609
'kw': 7,
18610
'lag': 18,
18611
'lb': 3,
18612
'lg': 3,
18613
'ln': 4,
18614
'lo': 0,
18615
'lt': 10,
18616
'lv': 6,
18617
'mas': 3,
18618
'mg': 4,
18619
'mk': 16,
18620
'ml': 3,
18621
'mn': 3,
18622
'mo': 9,
18623
'mr': 3,
18624
'ms': 0,
18625
'mt': 15,
18626
'my': 0,
18627
'nah': 3,
18628
'naq': 7,
18629
'nb': 3,
18630
'nd': 3,
18631
'ne': 3,
18632
'nl': 3,
18633
'nn': 3,
18634
'no': 3,
18635
'nr': 3,
18636
'nso': 4,
18637
'ny': 3,
18638
'nyn': 3,
18639
'om': 3,
18640
'or': 3,
18641
'pa': 3,
18642
'pap': 3,
18643
'pl': 13,
18644
'ps': 3,
18645
'pt': 3,
18646
'rm': 3,
18647
'ro': 9,
18648
'rof': 3,
18649
'ru': 11,
18650
'rwk': 3,
18651
'sah': 0,
18652
'saq': 3,
18653
'se': 7,
18654
'seh': 3,
18655
'ses': 0,
18656
'sg': 0,
18657
'sh': 11,
18658
'shi': 19,
18659
'sk': 12,
18660
'sl': 14,
18661
'sma': 7,
18662
'smi': 7,
18663
'smj': 7,
18664
'smn': 7,
18665
'sms': 7,
18666
'sn': 3,
18667
'so': 3,
18668
'sq': 3,
18669
'sr': 11,
18670
'ss': 3,
18671
'ssy': 3,
18672
'st': 3,
18673
'sv': 3,
18674
'sw': 3,
18675
'syr': 3,
18676
'ta': 3,
18677
'te': 3,
18678
'teo': 3,
18679
'th': 0,
18680
'ti': 4,
18681
'tig': 3,
18682
'tk': 3,
18683
'tl': 4,
18684
'tn': 3,
18685
'to': 0,
18686
'tr': 0,
18687
'ts': 3,
18688
'tzm': 22,
18689
'uk': 11,
18690
'ur': 3,
18691
've': 3,
18692
'vi': 0,
18693
'vun': 3,
18694
'wa': 4,
18695
'wae': 3,
18696
'wo': 0,
18697
'xh': 3,
18698
'xog': 3,
18699
'yo': 0,
18700
'zh': 0,
18701
'zu': 3
18702
};
18703
18704
function isIn(n, list) {
18705
return list.indexOf(n) !== -1;
18706
}
18707
18708
function isBetween(n, start, end) {
18709
return start <= n && n <= end;
18710
}
18711
18712
var pluralRules = {
18713
'0': function _(n) {
18714
return 'other';
18715
},
18716
'1': function _(n) {
18717
if (isBetween(n % 100, 3, 10)) return 'few';
18718
if (n === 0) return 'zero';
18719
if (isBetween(n % 100, 11, 99)) return 'many';
18720
if (n == 2) return 'two';
18721
if (n == 1) return 'one';
18722
return 'other';
18723
},
18724
'2': function _(n) {
18725
if (n !== 0 && n % 10 === 0) return 'many';
18726
if (n == 2) return 'two';
18727
if (n == 1) return 'one';
18728
return 'other';
18729
},
18730
'3': function _(n) {
18731
if (n == 1) return 'one';
18732
return 'other';
18733
},
18734
'4': function _(n) {
18735
if (isBetween(n, 0, 1)) return 'one';
18736
return 'other';
18737
},
18738
'5': function _(n) {
18739
if (isBetween(n, 0, 2) && n != 2) return 'one';
18740
return 'other';
18741
},
18742
'6': function _(n) {
18743
if (n === 0) return 'zero';
18744
if (n % 10 == 1 && n % 100 != 11) return 'one';
18745
return 'other';
18746
},
18747
'7': function _(n) {
18748
if (n == 2) return 'two';
18749
if (n == 1) return 'one';
18750
return 'other';
18751
},
18752
'8': function _(n) {
18753
if (isBetween(n, 3, 6)) return 'few';
18754
if (isBetween(n, 7, 10)) return 'many';
18755
if (n == 2) return 'two';
18756
if (n == 1) return 'one';
18757
return 'other';
18758
},
18759
'9': function _(n) {
18760
if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few';
18761
if (n == 1) return 'one';
18762
return 'other';
18763
},
18764
'10': function _(n) {
18765
if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few';
18766
if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one';
18767
return 'other';
18768
},
18769
'11': function _(n) {
18770
if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';
18771
if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many';
18772
if (n % 10 == 1 && n % 100 != 11) return 'one';
18773
return 'other';
18774
},
18775
'12': function _(n) {
18776
if (isBetween(n, 2, 4)) return 'few';
18777
if (n == 1) return 'one';
18778
return 'other';
18779
},
18780
'13': function _(n) {
18781
if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few';
18782
if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many';
18783
if (n == 1) return 'one';
18784
return 'other';
18785
},
18786
'14': function _(n) {
18787
if (isBetween(n % 100, 3, 4)) return 'few';
18788
if (n % 100 == 2) return 'two';
18789
if (n % 100 == 1) return 'one';
18790
return 'other';
18791
},
18792
'15': function _(n) {
18793
if (n === 0 || isBetween(n % 100, 2, 10)) return 'few';
18794
if (isBetween(n % 100, 11, 19)) return 'many';
18795
if (n == 1) return 'one';
18796
return 'other';
18797
},
18798
'16': function _(n) {
18799
if (n % 10 == 1 && n != 11) return 'one';
18800
return 'other';
18801
},
18802
'17': function _(n) {
18803
if (n == 3) return 'few';
18804
if (n === 0) return 'zero';
18805
if (n == 6) return 'many';
18806
if (n == 2) return 'two';
18807
if (n == 1) return 'one';
18808
return 'other';
18809
},
18810
'18': function _(n) {
18811
if (n === 0) return 'zero';
18812
if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one';
18813
return 'other';
18814
},
18815
'19': function _(n) {
18816
if (isBetween(n, 2, 10)) return 'few';
18817
if (isBetween(n, 0, 1)) return 'one';
18818
return 'other';
18819
},
18820
'20': function _(n) {
18821
if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few';
18822
if (n % 1000000 === 0 && n !== 0) return 'many';
18823
if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two';
18824
if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one';
18825
return 'other';
18826
},
18827
'21': function _(n) {
18828
if (n === 0) return 'zero';
18829
if (n == 1) return 'one';
18830
return 'other';
18831
},
18832
'22': function _(n) {
18833
if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one';
18834
return 'other';
18835
},
18836
'23': function _(n) {
18837
if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one';
18838
return 'other';
18839
},
18840
'24': function _(n) {
18841
if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few';
18842
if (isIn(n, [2, 12])) return 'two';
18843
if (isIn(n, [1, 11])) return 'one';
18844
return 'other';
18845
}
18846
};
18847
var index = locales2rules[lang.replace(/-.*$/, '')];
18848
18849
if (!(index in pluralRules)) {
18850
console.warn('plural form unknown for [' + lang + ']');
18851
return function () {
18852
return 'other';
18853
};
18854
}
18855
18856
return pluralRules[index];
18857
}
18858
18859
gMacros.plural = function (str, param, key, prop) {
18860
var n = parseFloat(param);
18861
if (isNaN(n)) return str;
18862
if (prop != gTextProp) return str;
18863
18864
if (!gMacros._pluralRules) {
18865
gMacros._pluralRules = getPluralRules(gLanguage);
18866
}
18867
18868
var index = '[' + gMacros._pluralRules(n) + ']';
18869
18870
if (n === 0 && key + '[zero]' in gL10nData) {
18871
str = gL10nData[key + '[zero]'][prop];
18872
} else if (n == 1 && key + '[one]' in gL10nData) {
18873
str = gL10nData[key + '[one]'][prop];
18874
} else if (n == 2 && key + '[two]' in gL10nData) {
18875
str = gL10nData[key + '[two]'][prop];
18876
} else if (key + index in gL10nData) {
18877
str = gL10nData[key + index][prop];
18878
} else if (key + '[other]' in gL10nData) {
18879
str = gL10nData[key + '[other]'][prop];
18880
}
18881
18882
return str;
18883
};
18884
18885
function getL10nData(key, args, fallback) {
18886
var data = gL10nData[key];
18887
18888
if (!data) {
18889
console.warn('#' + key + ' is undefined.');
18890
18891
if (!fallback) {
18892
return null;
18893
}
18894
18895
data = fallback;
18896
}
18897
18898
var rv = {};
18899
18900
for (var prop in data) {
18901
var str = data[prop];
18902
str = substIndexes(str, args, key, prop);
18903
str = substArguments(str, args, key);
18904
rv[prop] = str;
18905
}
18906
18907
return rv;
18908
}
18909
18910
function substIndexes(str, args, key, prop) {
18911
var reIndex = /\{\[\s*([a-zA-Z]+)\(([a-zA-Z]+)\)\s*\]\}/;
18912
var reMatch = reIndex.exec(str);
18913
if (!reMatch || !reMatch.length) return str;
18914
var macroName = reMatch[1];
18915
var paramName = reMatch[2];
18916
var param;
18917
18918
if (args && paramName in args) {
18919
param = args[paramName];
18920
} else if (paramName in gL10nData) {
18921
param = gL10nData[paramName];
18922
}
18923
18924
if (macroName in gMacros) {
18925
var macro = gMacros[macroName];
18926
str = macro(str, param, key, prop);
18927
}
18928
18929
return str;
18930
}
18931
18932
function substArguments(str, args, key) {
18933
var reArgs = /\{\{\s*(.+?)\s*\}\}/g;
18934
return str.replace(reArgs, function (matched_text, arg) {
18935
if (args && arg in args) {
18936
return args[arg];
18937
}
18938
18939
if (arg in gL10nData) {
18940
return gL10nData[arg];
18941
}
18942
18943
console.log('argument {{' + arg + '}} for #' + key + ' is undefined.');
18944
return matched_text;
18945
});
18946
}
18947
18948
function translateElement(element) {
18949
var l10n = getL10nAttributes(element);
18950
if (!l10n.id) return;
18951
var data = getL10nData(l10n.id, l10n.args);
18952
18953
if (!data) {
18954
console.warn('#' + l10n.id + ' is undefined.');
18955
return;
18956
}
18957
18958
if (data[gTextProp]) {
18959
if (getChildElementCount(element) === 0) {
18960
element[gTextProp] = data[gTextProp];
18961
} else {
18962
var children = element.childNodes;
18963
var found = false;
18964
18965
for (var i = 0, l = children.length; i < l; i++) {
18966
if (children[i].nodeType === 3 && /\S/.test(children[i].nodeValue)) {
18967
if (found) {
18968
children[i].nodeValue = '';
18969
} else {
18970
children[i].nodeValue = data[gTextProp];
18971
found = true;
18972
}
18973
}
18974
}
18975
18976
if (!found) {
18977
var textNode = document.createTextNode(data[gTextProp]);
18978
element.insertBefore(textNode, element.firstChild);
18979
}
18980
}
18981
18982
delete data[gTextProp];
18983
}
18984
18985
for (var k in data) {
18986
element[k] = data[k];
18987
}
18988
}
18989
18990
function getChildElementCount(element) {
18991
if (element.children) {
18992
return element.children.length;
18993
}
18994
18995
if (typeof element.childElementCount !== 'undefined') {
18996
return element.childElementCount;
18997
}
18998
18999
var count = 0;
19000
19001
for (var i = 0; i < element.childNodes.length; i++) {
19002
count += element.nodeType === 1 ? 1 : 0;
19003
}
19004
19005
return count;
19006
}
19007
19008
function translateFragment(element) {
19009
element = element || document.documentElement;
19010
var children = getTranslatableChildren(element);
19011
var elementCount = children.length;
19012
19013
for (var i = 0; i < elementCount; i++) {
19014
translateElement(children[i]);
19015
}
19016
19017
translateElement(element);
19018
}
19019
19020
return {
19021
get: function get(key, args, fallbackString) {
19022
var index = key.lastIndexOf('.');
19023
var prop = gTextProp;
19024
19025
if (index > 0) {
19026
prop = key.substring(index + 1);
19027
key = key.substring(0, index);
19028
}
19029
19030
var fallback;
19031
19032
if (fallbackString) {
19033
fallback = {};
19034
fallback[prop] = fallbackString;
19035
}
19036
19037
var data = getL10nData(key, args, fallback);
19038
19039
if (data && prop in data) {
19040
return data[prop];
19041
}
19042
19043
return '{{' + key + '}}';
19044
},
19045
getData: function getData() {
19046
return gL10nData;
19047
},
19048
getText: function getText() {
19049
return gTextData;
19050
},
19051
getLanguage: function getLanguage() {
19052
return gLanguage;
19053
},
19054
setLanguage: function setLanguage(lang, callback) {
19055
loadLocale(lang, function () {
19056
if (callback) callback();
19057
});
19058
},
19059
getDirection: function getDirection() {
19060
var rtlList = ['ar', 'he', 'fa', 'ps', 'ur'];
19061
var shortCode = gLanguage.split('-', 1)[0];
19062
return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr';
19063
},
19064
translate: translateFragment,
19065
getReadyState: function getReadyState() {
19066
return gReadyState;
19067
},
19068
ready: function ready(callback) {
19069
if (!callback) {
19070
return;
19071
} else if (gReadyState == 'complete' || gReadyState == 'interactive') {
19072
window.setTimeout(function () {
19073
callback();
19074
});
19075
} else if (document.addEventListener) {
19076
document.addEventListener('localized', function once() {
19077
document.removeEventListener('localized', once);
19078
callback();
19079
});
19080
}
19081
}
19082
};
19083
}(window, document);
19084
19085
/***/ }),
19086
/* 45 */
19087
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
19088
19089
19090
19091
Object.defineProperty(exports, "__esModule", ({
19092
value: true
19093
}));
19094
exports.docPropertiesLookup = docPropertiesLookup;
19095
exports.GenericScripting = void 0;
19096
19097
var _regenerator = _interopRequireDefault(__webpack_require__(4));
19098
19099
var _pdfjsLib = __webpack_require__(7);
19100
19101
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19102
19103
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
19104
19105
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
19106
19107
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
19108
19109
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
19110
19111
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); } }
19112
19113
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
19114
19115
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
19116
19117
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
19118
19119
function docPropertiesLookup(_x) {
19120
return _docPropertiesLookup.apply(this, arguments);
19121
}
19122
19123
function _docPropertiesLookup() {
19124
_docPropertiesLookup = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee4(pdfDocument) {
19125
var url, baseUrl, _yield$pdfDocument$ge, info, metadata, contentDispositionFilename, contentLength, _yield$pdfDocument$ge2, length;
19126
19127
return _regenerator["default"].wrap(function _callee4$(_context4) {
19128
while (1) {
19129
switch (_context4.prev = _context4.next) {
19130
case 0:
19131
url = "", baseUrl = url.split("#")[0];
19132
_context4.next = 3;
19133
return pdfDocument.getMetadata();
19134
19135
case 3:
19136
_yield$pdfDocument$ge = _context4.sent;
19137
info = _yield$pdfDocument$ge.info;
19138
metadata = _yield$pdfDocument$ge.metadata;
19139
contentDispositionFilename = _yield$pdfDocument$ge.contentDispositionFilename;
19140
contentLength = _yield$pdfDocument$ge.contentLength;
19141
19142
if (contentLength) {
19143
_context4.next = 14;
19144
break;
19145
}
19146
19147
_context4.next = 11;
19148
return pdfDocument.getDownloadInfo();
19149
19150
case 11:
19151
_yield$pdfDocument$ge2 = _context4.sent;
19152
length = _yield$pdfDocument$ge2.length;
19153
contentLength = length;
19154
19155
case 14:
19156
return _context4.abrupt("return", _objectSpread(_objectSpread({}, info), {}, {
19157
baseURL: baseUrl,
19158
filesize: contentLength,
19159
filename: contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(url),
19160
metadata: metadata === null || metadata === void 0 ? void 0 : metadata.getRaw(),
19161
authors: metadata === null || metadata === void 0 ? void 0 : metadata.get("dc:creator"),
19162
numPages: pdfDocument.numPages,
19163
URL: url
19164
}));
19165
19166
case 15:
19167
case "end":
19168
return _context4.stop();
19169
}
19170
}
19171
}, _callee4);
19172
}));
19173
return _docPropertiesLookup.apply(this, arguments);
19174
}
19175
19176
var GenericScripting = /*#__PURE__*/function () {
19177
function GenericScripting(sandboxBundleSrc) {
19178
_classCallCheck(this, GenericScripting);
19179
19180
this._ready = (0, _pdfjsLib.loadScript)(sandboxBundleSrc, true).then(function () {
19181
return window.pdfjsSandbox.QuickJSSandbox();
19182
});
19183
}
19184
19185
_createClass(GenericScripting, [{
19186
key: "createSandbox",
19187
value: function () {
19188
var _createSandbox = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(data) {
19189
var sandbox;
19190
return _regenerator["default"].wrap(function _callee$(_context) {
19191
while (1) {
19192
switch (_context.prev = _context.next) {
19193
case 0:
19194
_context.next = 2;
19195
return this._ready;
19196
19197
case 2:
19198
sandbox = _context.sent;
19199
sandbox.create(data);
19200
19201
case 4:
19202
case "end":
19203
return _context.stop();
19204
}
19205
}
19206
}, _callee, this);
19207
}));
19208
19209
function createSandbox(_x2) {
19210
return _createSandbox.apply(this, arguments);
19211
}
19212
19213
return createSandbox;
19214
}()
19215
}, {
19216
key: "dispatchEventInSandbox",
19217
value: function () {
19218
var _dispatchEventInSandbox = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(event) {
19219
var sandbox;
19220
return _regenerator["default"].wrap(function _callee2$(_context2) {
19221
while (1) {
19222
switch (_context2.prev = _context2.next) {
19223
case 0:
19224
_context2.next = 2;
19225
return this._ready;
19226
19227
case 2:
19228
sandbox = _context2.sent;
19229
sandbox.dispatchEvent(event);
19230
19231
case 4:
19232
case "end":
19233
return _context2.stop();
19234
}
19235
}
19236
}, _callee2, this);
19237
}));
19238
19239
function dispatchEventInSandbox(_x3) {
19240
return _dispatchEventInSandbox.apply(this, arguments);
19241
}
19242
19243
return dispatchEventInSandbox;
19244
}()
19245
}, {
19246
key: "destroySandbox",
19247
value: function () {
19248
var _destroySandbox = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
19249
var sandbox;
19250
return _regenerator["default"].wrap(function _callee3$(_context3) {
19251
while (1) {
19252
switch (_context3.prev = _context3.next) {
19253
case 0:
19254
_context3.next = 2;
19255
return this._ready;
19256
19257
case 2:
19258
sandbox = _context3.sent;
19259
sandbox.nukeSandbox();
19260
19261
case 4:
19262
case "end":
19263
return _context3.stop();
19264
}
19265
}
19266
}, _callee3, this);
19267
}));
19268
19269
function destroySandbox() {
19270
return _destroySandbox.apply(this, arguments);
19271
}
19272
19273
return destroySandbox;
19274
}()
19275
}]);
19276
19277
return GenericScripting;
19278
}();
19279
19280
exports.GenericScripting = GenericScripting;
19281
19282
/***/ }),
19283
/* 46 */
19284
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
19285
19286
19287
19288
Object.defineProperty(exports, "__esModule", ({
19289
value: true
19290
}));
19291
exports.PDFPrintService = PDFPrintService;
19292
19293
var _app = __webpack_require__(3);
19294
19295
var _viewer_compatibility = __webpack_require__(2);
19296
19297
var activeService = null;
19298
var overlayManager = null;
19299
19300
function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size, printResolution, optionalContentConfigPromise) {
19301
var scratchCanvas = activeService.scratchCanvas;
19302
var PRINT_UNITS = printResolution / 72.0;
19303
scratchCanvas.width = Math.floor(size.width * PRINT_UNITS);
19304
scratchCanvas.height = Math.floor(size.height * PRINT_UNITS);
19305
var ctx = scratchCanvas.getContext("2d");
19306
ctx.save();
19307
ctx.fillStyle = "rgb(255, 255, 255)";
19308
ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height);
19309
ctx.restore();
19310
return pdfDocument.getPage(pageNumber).then(function (pdfPage) {
19311
var renderContext = {
19312
canvasContext: ctx,
19313
transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0],
19314
viewport: pdfPage.getViewport({
19315
scale: 1,
19316
rotation: size.rotation
19317
}),
19318
intent: "print",
19319
annotationStorage: pdfDocument.annotationStorage,
19320
optionalContentConfigPromise: optionalContentConfigPromise
19321
};
19322
return pdfPage.render(renderContext).promise;
19323
});
19324
}
19325
19326
function PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution) {
19327
var optionalContentConfigPromise = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
19328
var l10n = arguments.length > 5 ? arguments[5] : undefined;
19329
this.pdfDocument = pdfDocument;
19330
this.pagesOverview = pagesOverview;
19331
this.printContainer = printContainer;
19332
this._printResolution = printResolution || 150;
19333
this._optionalContentConfigPromise = optionalContentConfigPromise || pdfDocument.getOptionalContentConfig();
19334
this.l10n = l10n;
19335
this.currentPage = -1;
19336
this.scratchCanvas = document.createElement("canvas");
19337
}
19338
19339
PDFPrintService.prototype = {
19340
layout: function layout() {
19341
this.throwIfInactive();
19342
var body = document.querySelector("body");
19343
body.setAttribute("data-pdfjsprinting", true);
19344
var hasEqualPageSizes = this.pagesOverview.every(function (size) {
19345
return size.width === this.pagesOverview[0].width && size.height === this.pagesOverview[0].height;
19346
}, this);
19347
19348
if (!hasEqualPageSizes) {
19349
console.warn("Not all pages have the same size. The printed " + "result may be incorrect!");
19350
}
19351
19352
this.pageStyleSheet = document.createElement("style");
19353
var pageSize = this.pagesOverview[0];
19354
this.pageStyleSheet.textContent = "@page { size: " + pageSize.width + "pt " + pageSize.height + "pt;}";
19355
body.appendChild(this.pageStyleSheet);
19356
},
19357
destroy: function destroy() {
19358
if (activeService !== this) {
19359
return;
19360
}
19361
19362
this.printContainer.textContent = "";
19363
var body = document.querySelector("body");
19364
body.removeAttribute("data-pdfjsprinting");
19365
19366
if (this.pageStyleSheet) {
19367
this.pageStyleSheet.remove();
19368
this.pageStyleSheet = null;
19369
}
19370
19371
this.scratchCanvas.width = this.scratchCanvas.height = 0;
19372
this.scratchCanvas = null;
19373
activeService = null;
19374
ensureOverlay().then(function () {
19375
if (overlayManager.active !== "printServiceOverlay") {
19376
return;
19377
}
19378
19379
overlayManager.close("printServiceOverlay");
19380
});
19381
},
19382
renderPages: function renderPages() {
19383
var _this = this;
19384
19385
var pageCount = this.pagesOverview.length;
19386
19387
var renderNextPage = function renderNextPage(resolve, reject) {
19388
_this.throwIfInactive();
19389
19390
if (++_this.currentPage >= pageCount) {
19391
renderProgress(pageCount, pageCount, _this.l10n);
19392
resolve();
19393
return;
19394
}
19395
19396
var index = _this.currentPage;
19397
renderProgress(index, pageCount, _this.l10n);
19398
renderPage(_this, _this.pdfDocument, index + 1, _this.pagesOverview[index], _this._printResolution, _this._optionalContentConfigPromise).then(_this.useRenderedPage.bind(_this)).then(function () {
19399
renderNextPage(resolve, reject);
19400
}, reject);
19401
};
19402
19403
return new Promise(renderNextPage);
19404
},
19405
useRenderedPage: function useRenderedPage() {
19406
this.throwIfInactive();
19407
var img = document.createElement("img");
19408
var scratchCanvas = this.scratchCanvas;
19409
19410
if ("toBlob" in scratchCanvas && !_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) {
19411
scratchCanvas.toBlob(function (blob) {
19412
img.src = URL.createObjectURL(blob);
19413
});
19414
} else {
19415
img.src = scratchCanvas.toDataURL();
19416
}
19417
19418
var wrapper = document.createElement("div");
19419
wrapper.appendChild(img);
19420
this.printContainer.appendChild(wrapper);
19421
return new Promise(function (resolve, reject) {
19422
img.onload = resolve;
19423
img.onerror = reject;
19424
});
19425
},
19426
performPrint: function performPrint() {
19427
var _this2 = this;
19428
19429
this.throwIfInactive();
19430
return new Promise(function (resolve) {
19431
setTimeout(function () {
19432
if (!_this2.active) {
19433
resolve();
19434
return;
19435
}
19436
19437
print.call(window);
19438
setTimeout(resolve, 20);
19439
}, 0);
19440
});
19441
},
19442
19443
get active() {
19444
return this === activeService;
19445
},
19446
19447
throwIfInactive: function throwIfInactive() {
19448
if (!this.active) {
19449
throw new Error("This print request was cancelled or completed.");
19450
}
19451
}
19452
};
19453
var print = window.print;
19454
19455
window.print = function () {
19456
if (activeService) {
19457
console.warn("Ignored window.print() because of a pending print job.");
19458
return;
19459
}
19460
19461
ensureOverlay().then(function () {
19462
if (activeService) {
19463
overlayManager.open("printServiceOverlay");
19464
}
19465
});
19466
19467
try {
19468
dispatchEvent("beforeprint");
19469
} finally {
19470
if (!activeService) {
19471
console.error("Expected print service to be initialized.");
19472
ensureOverlay().then(function () {
19473
if (overlayManager.active === "printServiceOverlay") {
19474
overlayManager.close("printServiceOverlay");
19475
}
19476
});
19477
return;
19478
}
19479
19480
var activeServiceOnEntry = activeService;
19481
activeService.renderPages().then(function () {
19482
return activeServiceOnEntry.performPrint();
19483
})["catch"](function () {}).then(function () {
19484
if (activeServiceOnEntry.active) {
19485
abort();
19486
}
19487
});
19488
}
19489
};
19490
19491
function dispatchEvent(eventType) {
19492
var event = document.createEvent("CustomEvent");
19493
event.initCustomEvent(eventType, false, false, "custom");
19494
window.dispatchEvent(event);
19495
}
19496
19497
function abort() {
19498
if (activeService) {
19499
activeService.destroy();
19500
dispatchEvent("afterprint");
19501
}
19502
}
19503
19504
function renderProgress(index, total, l10n) {
19505
var progressContainer = document.getElementById("printServiceOverlay");
19506
var progress = Math.round(100 * index / total);
19507
var progressBar = progressContainer.querySelector("progress");
19508
var progressPerc = progressContainer.querySelector(".relative-progress");
19509
progressBar.value = progress;
19510
l10n.get("print_progress_percent", {
19511
progress: progress
19512
}).then(function (msg) {
19513
progressPerc.textContent = msg;
19514
});
19515
}
19516
19517
window.addEventListener("keydown", function (event) {
19518
if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) {
19519
window.print();
19520
event.preventDefault();
19521
19522
if (event.stopImmediatePropagation) {
19523
event.stopImmediatePropagation();
19524
} else {
19525
event.stopPropagation();
19526
}
19527
}
19528
}, true);
19529
19530
if ("onbeforeprint" in window) {
19531
var stopPropagationIfNeeded = function stopPropagationIfNeeded(event) {
19532
if (event.detail !== "custom" && event.stopImmediatePropagation) {
19533
event.stopImmediatePropagation();
19534
}
19535
};
19536
19537
window.addEventListener("beforeprint", stopPropagationIfNeeded);
19538
window.addEventListener("afterprint", stopPropagationIfNeeded);
19539
}
19540
19541
var overlayPromise;
19542
19543
function ensureOverlay() {
19544
if (!overlayPromise) {
19545
overlayManager = _app.PDFViewerApplication.overlayManager;
19546
19547
if (!overlayManager) {
19548
throw new Error("The overlay manager has not yet been initialized.");
19549
}
19550
19551
overlayPromise = overlayManager.register("printServiceOverlay", document.getElementById("printServiceOverlay"), abort, true);
19552
document.getElementById("printCancel").onclick = abort;
19553
}
19554
19555
return overlayPromise;
19556
}
19557
19558
_app.PDFPrintServiceFactory.instance = {
19559
supportsPrinting: true,
19560
createPrintService: function createPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, l10n) {
19561
if (activeService) {
19562
throw new Error("The print service is created and active.");
19563
}
19564
19565
activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, l10n);
19566
return activeService;
19567
}
19568
};
19569
19570
/***/ })
19571
/******/ ]);
19572
/************************************************************************/
19573
/******/ // The module cache
19574
/******/ var __webpack_module_cache__ = {};
19575
/******/
19576
/******/ // The require function
19577
/******/ function __webpack_require__(moduleId) {
19578
/******/ // Check if module is in cache
19579
/******/ var cachedModule = __webpack_module_cache__[moduleId];
19580
/******/ if (cachedModule !== undefined) {
19581
/******/ return cachedModule.exports;
19582
/******/ }
19583
/******/ // Create a new module (and put it into the cache)
19584
/******/ var module = __webpack_module_cache__[moduleId] = {
19585
/******/ id: moduleId,
19586
/******/ loaded: false,
19587
/******/ exports: {}
19588
/******/ };
19589
/******/
19590
/******/ // Execute the module function
19591
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
19592
/******/
19593
/******/ // Flag the module as loaded
19594
/******/ module.loaded = true;
19595
/******/
19596
/******/ // Return the exports of the module
19597
/******/ return module.exports;
19598
/******/ }
19599
/******/
19600
/************************************************************************/
19601
/******/ /* webpack/runtime/node module decorator */
19602
/******/ (() => {
19603
/******/ __webpack_require__.nmd = (module) => {
19604
/******/ module.paths = [];
19605
/******/ if (!module.children) module.children = [];
19606
/******/ return module;
19607
/******/ };
19608
/******/ })();
19609
/******/
19610
/************************************************************************/
19611
var __webpack_exports__ = {};
19612
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
19613
(() => {
19614
var exports = __webpack_exports__;
19615
19616
19617
Object.defineProperty(exports, "__esModule", ({
19618
value: true
19619
}));
19620
Object.defineProperty(exports, "PDFViewerApplicationOptions", ({
19621
enumerable: true,
19622
get: function get() {
19623
return _app_options.AppOptions;
19624
}
19625
}));
19626
Object.defineProperty(exports, "PDFViewerApplication", ({
19627
enumerable: true,
19628
get: function get() {
19629
return _app.PDFViewerApplication;
19630
}
19631
}));
19632
19633
var _app_options = __webpack_require__(1);
19634
19635
var _app = __webpack_require__(3);
19636
19637
var pdfjsVersion = '2.8.335';
19638
var pdfjsBuild = '228adbf67';
19639
window.PDFViewerApplication = _app.PDFViewerApplication;
19640
window.PDFViewerApplicationOptions = _app_options.AppOptions;
19641
;
19642
;
19643
{
19644
__webpack_require__(40);
19645
}
19646
;
19647
{
19648
__webpack_require__(46);
19649
}
19650
19651
function getViewerConfiguration() {
19652
var errorWrapper = null;
19653
errorWrapper = {
19654
container: document.getElementById("errorWrapper"),
19655
errorMessage: document.getElementById("errorMessage"),
19656
closeButton: document.getElementById("errorClose"),
19657
errorMoreInfo: document.getElementById("errorMoreInfo"),
19658
moreInfoButton: document.getElementById("errorShowMore"),
19659
lessInfoButton: document.getElementById("errorShowLess")
19660
};
19661
return {
19662
appContainer: document.body,
19663
mainContainer: document.getElementById("viewerContainer"),
19664
viewerContainer: document.getElementById("viewer"),
19665
eventBus: null,
19666
toolbar: {
19667
container: document.getElementById("toolbarViewer"),
19668
numPages: document.getElementById("numPages"),
19669
pageNumber: document.getElementById("pageNumber"),
19670
scaleSelectContainer: document.getElementById("scaleSelectContainer"),
19671
scaleSelect: document.getElementById("scaleSelect"),
19672
customScaleOption: document.getElementById("customScaleOption"),
19673
previous: document.getElementById("previous"),
19674
next: document.getElementById("next"),
19675
zoomIn: document.getElementById("zoomIn"),
19676
zoomOut: document.getElementById("zoomOut"),
19677
viewFind: document.getElementById("viewFind"),
19678
openFile: document.getElementById("openFile"),
19679
print: document.getElementById("print"),
19680
presentationModeButton: document.getElementById("presentationMode"),
19681
download: document.getElementById("download"),
19682
viewBookmark: document.getElementById("viewBookmark")
19683
},
19684
secondaryToolbar: {
19685
toolbar: document.getElementById("secondaryToolbar"),
19686
toggleButton: document.getElementById("secondaryToolbarToggle"),
19687
toolbarButtonContainer: document.getElementById("secondaryToolbarButtonContainer"),
19688
presentationModeButton: document.getElementById("secondaryPresentationMode"),
19689
openFileButton: document.getElementById("secondaryOpenFile"),
19690
printButton: document.getElementById("secondaryPrint"),
19691
downloadButton: document.getElementById("secondaryDownload"),
19692
viewBookmarkButton: document.getElementById("secondaryViewBookmark"),
19693
firstPageButton: document.getElementById("firstPage"),
19694
lastPageButton: document.getElementById("lastPage"),
19695
pageRotateCwButton: document.getElementById("pageRotateCw"),
19696
pageRotateCcwButton: document.getElementById("pageRotateCcw"),
19697
cursorSelectToolButton: document.getElementById("cursorSelectTool"),
19698
cursorHandToolButton: document.getElementById("cursorHandTool"),
19699
scrollVerticalButton: document.getElementById("scrollVertical"),
19700
scrollHorizontalButton: document.getElementById("scrollHorizontal"),
19701
scrollWrappedButton: document.getElementById("scrollWrapped"),
19702
spreadNoneButton: document.getElementById("spreadNone"),
19703
spreadOddButton: document.getElementById("spreadOdd"),
19704
spreadEvenButton: document.getElementById("spreadEven"),
19705
documentPropertiesButton: document.getElementById("documentProperties")
19706
},
19707
sidebar: {
19708
outerContainer: document.getElementById("outerContainer"),
19709
viewerContainer: document.getElementById("viewerContainer"),
19710
toggleButton: document.getElementById("sidebarToggle"),
19711
thumbnailButton: document.getElementById("viewThumbnail"),
19712
outlineButton: document.getElementById("viewOutline"),
19713
attachmentsButton: document.getElementById("viewAttachments"),
19714
layersButton: document.getElementById("viewLayers"),
19715
thumbnailView: document.getElementById("thumbnailView"),
19716
outlineView: document.getElementById("outlineView"),
19717
attachmentsView: document.getElementById("attachmentsView"),
19718
layersView: document.getElementById("layersView"),
19719
outlineOptionsContainer: document.getElementById("outlineOptionsContainer"),
19720
currentOutlineItemButton: document.getElementById("currentOutlineItem")
19721
},
19722
sidebarResizer: {
19723
outerContainer: document.getElementById("outerContainer"),
19724
resizer: document.getElementById("sidebarResizer")
19725
},
19726
findBar: {
19727
bar: document.getElementById("findbar"),
19728
toggleButton: document.getElementById("viewFind"),
19729
findField: document.getElementById("findInput"),
19730
highlightAllCheckbox: document.getElementById("findHighlightAll"),
19731
caseSensitiveCheckbox: document.getElementById("findMatchCase"),
19732
entireWordCheckbox: document.getElementById("findEntireWord"),
19733
findMsg: document.getElementById("findMsg"),
19734
findResultsCount: document.getElementById("findResultsCount"),
19735
findPreviousButton: document.getElementById("findPrevious"),
19736
findNextButton: document.getElementById("findNext")
19737
},
19738
passwordOverlay: {
19739
overlayName: "passwordOverlay",
19740
container: document.getElementById("passwordOverlay"),
19741
label: document.getElementById("passwordText"),
19742
input: document.getElementById("password"),
19743
submitButton: document.getElementById("passwordSubmit"),
19744
cancelButton: document.getElementById("passwordCancel")
19745
},
19746
documentProperties: {
19747
overlayName: "documentPropertiesOverlay",
19748
container: document.getElementById("documentPropertiesOverlay"),
19749
closeButton: document.getElementById("documentPropertiesClose"),
19750
fields: {
19751
fileName: document.getElementById("fileNameField"),
19752
fileSize: document.getElementById("fileSizeField"),
19753
title: document.getElementById("titleField"),
19754
author: document.getElementById("authorField"),
19755
subject: document.getElementById("subjectField"),
19756
keywords: document.getElementById("keywordsField"),
19757
creationDate: document.getElementById("creationDateField"),
19758
modificationDate: document.getElementById("modificationDateField"),
19759
creator: document.getElementById("creatorField"),
19760
producer: document.getElementById("producerField"),
19761
version: document.getElementById("versionField"),
19762
pageCount: document.getElementById("pageCountField"),
19763
pageSize: document.getElementById("pageSizeField"),
19764
linearized: document.getElementById("linearizedField")
19765
}
19766
},
19767
errorWrapper: errorWrapper,
19768
printContainer: document.getElementById("printContainer"),
19769
openFileInputName: "fileInput",
19770
debuggerScriptPath: "./debugger.js"
19771
};
19772
}
19773
19774
function webViewerLoad() {
19775
var config = getViewerConfiguration();
19776
var event = document.createEvent("CustomEvent");
19777
event.initCustomEvent("webviewerloaded", true, true, {
19778
source: window
19779
});
19780
19781
try {
19782
parent.document.dispatchEvent(event);
19783
} catch (ex) {
19784
console.error("webviewerloaded: ".concat(ex));
19785
document.dispatchEvent(event);
19786
}
19787
19788
_app.PDFViewerApplication.run(config);
19789
}
19790
19791
if (document.blockUnblockOnload) {
19792
document.blockUnblockOnload(true);
19793
}
19794
19795
if (document.readyState === "interactive" || document.readyState === "complete") {
19796
webViewerLoad();
19797
} else {
19798
document.addEventListener("DOMContentLoaded", webViewerLoad, true);
19799
}
19800
})();
19801
19802
/******/ })()
19803
;
19804
//# sourceMappingURL=viewer.js.map
19805