pdfjs-dist 2.0.550 → 2.3.200

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pdfjs-dist might be problematic. Click here for more details.

Files changed (168) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +21618 -14369
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +1 -1
  6. package/build/pdf.worker.js +22758 -11399
  7. package/build/pdf.worker.js.map +1 -1
  8. package/build/pdf.worker.min.js +1 -1
  9. package/image_decoders/pdf.image_decoders.js +11500 -0
  10. package/image_decoders/pdf.image_decoders.js.map +1 -0
  11. package/image_decoders/pdf.image_decoders.min.js +1 -0
  12. package/lib/core/annotation.js +767 -258
  13. package/lib/core/arithmetic_decoder.js +275 -245
  14. package/lib/core/bidi.js +65 -6
  15. package/lib/core/ccitt.js +173 -18
  16. package/lib/core/ccitt_stream.js +15 -6
  17. package/lib/core/cff_parser.js +433 -61
  18. package/lib/core/charsets.js +5 -4
  19. package/lib/core/chunked_stream.js +428 -157
  20. package/lib/core/cmap.js +326 -87
  21. package/lib/core/colorspace.js +874 -594
  22. package/lib/core/core_utils.js +173 -0
  23. package/lib/core/crypto.js +290 -45
  24. package/lib/core/document.js +575 -272
  25. package/lib/core/encodings.js +19 -10
  26. package/lib/core/evaluator.js +1032 -351
  27. package/lib/core/font_renderer.js +331 -97
  28. package/lib/core/fonts.js +813 -196
  29. package/lib/core/function.js +253 -27
  30. package/lib/core/glyphlist.js +5 -3
  31. package/lib/core/image.js +169 -62
  32. package/lib/core/image_utils.js +111 -0
  33. package/lib/core/jbig2.js +502 -72
  34. package/lib/core/jbig2_stream.js +19 -8
  35. package/lib/core/jpeg_stream.js +38 -13
  36. package/lib/core/jpg.js +293 -52
  37. package/lib/core/jpx.js +419 -12
  38. package/lib/core/jpx_stream.js +18 -6
  39. package/lib/core/metrics.js +15 -15
  40. package/lib/core/murmurhash3.js +56 -34
  41. package/lib/core/obj.js +1368 -500
  42. package/lib/core/operator_list.js +159 -43
  43. package/lib/core/parser.js +544 -199
  44. package/lib/core/pattern.js +170 -21
  45. package/lib/core/pdf_manager.js +324 -134
  46. package/lib/core/primitives.js +169 -61
  47. package/lib/core/ps_parser.js +134 -45
  48. package/lib/core/standard_fonts.js +17 -17
  49. package/lib/core/stream.js +327 -34
  50. package/lib/core/type1_parser.js +148 -8
  51. package/lib/core/unicode.js +32 -5
  52. package/lib/core/worker.js +215 -229
  53. package/lib/core/worker_stream.js +277 -0
  54. package/lib/display/annotation_layer.js +618 -192
  55. package/lib/display/api.js +1798 -882
  56. package/lib/display/api_compatibility.js +5 -10
  57. package/lib/display/canvas.js +366 -45
  58. package/lib/display/content_disposition.js +71 -24
  59. package/lib/display/display_utils.js +777 -0
  60. package/lib/display/fetch_stream.js +205 -87
  61. package/lib/display/font_loader.js +468 -236
  62. package/lib/display/metadata.js +38 -16
  63. package/lib/display/network.js +635 -428
  64. package/lib/display/network_utils.js +38 -19
  65. package/lib/display/node_stream.js +367 -175
  66. package/lib/display/pattern_helper.js +103 -36
  67. package/lib/display/svg.js +1232 -519
  68. package/lib/display/text_layer.js +208 -75
  69. package/lib/display/transport_stream.js +345 -94
  70. package/lib/display/webgl.js +64 -18
  71. package/lib/display/worker_options.js +5 -4
  72. package/lib/display/xml_parser.js +166 -53
  73. package/lib/examples/node/domstubs.js +60 -4
  74. package/lib/pdf.js +35 -14
  75. package/lib/pdf.worker.js +5 -3
  76. package/lib/shared/compatibility.js +170 -572
  77. package/lib/shared/global_scope.js +2 -2
  78. package/lib/shared/is_node.js +4 -4
  79. package/lib/shared/message_handler.js +216 -163
  80. package/lib/shared/streams_polyfill.js +21 -17
  81. package/lib/shared/util.js +495 -385
  82. package/lib/test/unit/annotation_spec.js +1464 -401
  83. package/lib/test/unit/api_spec.js +718 -361
  84. package/lib/test/unit/bidi_spec.js +7 -7
  85. package/lib/test/unit/cff_parser_spec.js +54 -11
  86. package/lib/test/unit/clitests_helper.js +9 -10
  87. package/lib/test/unit/cmap_spec.js +95 -41
  88. package/lib/test/unit/colorspace_spec.js +115 -63
  89. package/lib/test/unit/core_utils_spec.js +191 -0
  90. package/lib/test/unit/crypto_spec.js +17 -5
  91. package/lib/test/unit/custom_spec.js +43 -55
  92. package/lib/test/unit/display_svg_spec.js +34 -18
  93. package/lib/test/unit/display_utils_spec.js +273 -0
  94. package/lib/test/unit/document_spec.js +8 -13
  95. package/lib/test/unit/encodings_spec.js +25 -45
  96. package/lib/test/unit/evaluator_spec.js +59 -20
  97. package/lib/test/unit/fetch_stream_spec.js +111 -0
  98. package/lib/test/unit/function_spec.js +17 -5
  99. package/lib/test/unit/jasmine-boot.js +33 -20
  100. package/lib/test/unit/message_handler_spec.js +30 -13
  101. package/lib/test/unit/metadata_spec.js +71 -11
  102. package/lib/test/unit/murmurhash3_spec.js +3 -3
  103. package/lib/test/unit/network_spec.js +22 -55
  104. package/lib/test/unit/network_utils_spec.js +105 -14
  105. package/lib/test/unit/node_stream_spec.js +58 -34
  106. package/lib/test/unit/parser_spec.js +162 -71
  107. package/lib/test/unit/pdf_find_controller_spec.js +230 -0
  108. package/lib/test/unit/pdf_find_utils_spec.js +63 -0
  109. package/lib/test/unit/pdf_history_spec.js +21 -9
  110. package/lib/test/unit/primitives_spec.js +55 -22
  111. package/lib/test/unit/stream_spec.js +12 -4
  112. package/lib/test/unit/test_utils.js +273 -56
  113. package/lib/test/unit/testreporter.js +21 -3
  114. package/lib/test/unit/type1_parser_spec.js +9 -7
  115. package/lib/test/unit/ui_utils_spec.js +236 -36
  116. package/lib/test/unit/unicode_spec.js +18 -15
  117. package/lib/test/unit/util_spec.js +87 -128
  118. package/lib/web/annotation_layer_builder.js +39 -22
  119. package/lib/web/app.js +1252 -609
  120. package/lib/web/app_options.js +103 -65
  121. package/lib/web/base_viewer.js +522 -242
  122. package/lib/web/chromecom.js +259 -117
  123. package/lib/web/debugger.js +166 -22
  124. package/lib/web/download_manager.js +31 -12
  125. package/lib/web/firefox_print_service.js +27 -14
  126. package/lib/web/firefoxcom.js +318 -78
  127. package/lib/web/genericcom.js +89 -30
  128. package/lib/web/genericl10n.js +142 -30
  129. package/lib/web/grab_to_pan.js +28 -4
  130. package/lib/web/interfaces.js +174 -47
  131. package/lib/web/overlay_manager.js +235 -85
  132. package/lib/web/password_prompt.js +22 -14
  133. package/lib/web/pdf_attachment_viewer.js +38 -18
  134. package/lib/web/pdf_cursor_tools.js +39 -16
  135. package/lib/web/pdf_document_properties.js +255 -136
  136. package/lib/web/pdf_find_bar.js +84 -40
  137. package/lib/web/pdf_find_controller.js +495 -184
  138. package/lib/web/pdf_find_utils.js +111 -0
  139. package/lib/web/pdf_history.js +190 -53
  140. package/lib/web/pdf_link_service.js +144 -79
  141. package/lib/web/pdf_outline_viewer.js +124 -47
  142. package/lib/web/pdf_page_view.js +194 -74
  143. package/lib/web/pdf_presentation_mode.js +99 -34
  144. package/lib/web/pdf_print_service.js +59 -13
  145. package/lib/web/pdf_rendering_queue.js +28 -9
  146. package/lib/web/pdf_sidebar.js +144 -81
  147. package/lib/web/pdf_sidebar_resizer.js +42 -16
  148. package/lib/web/pdf_single_page_viewer.js +74 -66
  149. package/lib/web/pdf_thumbnail_view.js +104 -33
  150. package/lib/web/pdf_thumbnail_viewer.js +66 -26
  151. package/lib/web/pdf_viewer.component.js +112 -32
  152. package/lib/web/pdf_viewer.js +82 -87
  153. package/lib/web/preferences.js +284 -91
  154. package/lib/web/secondary_toolbar.js +132 -59
  155. package/lib/web/text_layer_builder.js +134 -59
  156. package/lib/web/toolbar.js +80 -43
  157. package/lib/web/ui_utils.js +400 -134
  158. package/lib/web/view_history.js +215 -67
  159. package/lib/web/viewer_compatibility.js +3 -8
  160. package/package.json +3 -2
  161. package/web/pdf_viewer.css +23 -15
  162. package/web/pdf_viewer.js +3429 -1245
  163. package/web/pdf_viewer.js.map +1 -1
  164. package/external/streams/streams-lib.js +0 -3962
  165. package/lib/display/dom_utils.js +0 -429
  166. package/lib/test/unit/dom_utils_spec.js +0 -89
  167. package/lib/test/unit/fonts_spec.js +0 -81
  168. package/lib/web/dom_events.js +0 -137
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2017 Mozilla Foundation
5
+ * Copyright 2019 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -19,69 +19,215 @@
19
19
  * @licend The above is the entire license notice for the
20
20
  * Javascript code in this page
21
21
  */
22
- 'use strict';
22
+ "use strict";
23
23
 
24
24
  Object.defineProperty(exports, "__esModule", {
25
25
  value: true
26
26
  });
27
- exports.moveToEndOfArray = exports.waitOnEventOrTimeout = exports.WaitOnType = exports.animationStarted = exports.normalizeWheelEventDelta = exports.binarySearchFirstItem = exports.watchScroll = exports.scrollIntoView = exports.getOutputScale = exports.approximateFraction = exports.getPageSizeInches = exports.roundToDivide = exports.getVisibleElements = exports.backtrackBeforeAllVisibleElements = exports.parseQueryString = exports.noContextMenuHandler = exports.getPDFFileNameFromURL = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.cloneObj = exports.isPortraitOrientation = exports.isValidRotation = exports.VERTICAL_PADDING = exports.SCROLLBAR_PADDING = exports.MAX_AUTO_SCALE = exports.UNKNOWN_SCALE = exports.MAX_SCALE = exports.MIN_SCALE = exports.DEFAULT_SCALE = exports.DEFAULT_SCALE_VALUE = exports.CSS_UNITS = undefined;
27
+ exports.isValidRotation = isValidRotation;
28
+ exports.isValidScrollMode = isValidScrollMode;
29
+ exports.isValidSpreadMode = isValidSpreadMode;
30
+ exports.isPortraitOrientation = isPortraitOrientation;
31
+ exports.getGlobalEventBus = getGlobalEventBus;
32
+ exports.getPDFFileNameFromURL = getPDFFileNameFromURL;
33
+ exports.noContextMenuHandler = noContextMenuHandler;
34
+ exports.parseQueryString = parseQueryString;
35
+ exports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements;
36
+ exports.getVisibleElements = getVisibleElements;
37
+ exports.roundToDivide = roundToDivide;
38
+ exports.getPageSizeInches = getPageSizeInches;
39
+ exports.approximateFraction = approximateFraction;
40
+ exports.getOutputScale = getOutputScale;
41
+ exports.scrollIntoView = scrollIntoView;
42
+ exports.watchScroll = watchScroll;
43
+ exports.binarySearchFirstItem = binarySearchFirstItem;
44
+ exports.normalizeWheelEventDelta = normalizeWheelEventDelta;
45
+ exports.waitOnEventOrTimeout = waitOnEventOrTimeout;
46
+ exports.moveToEndOfArray = moveToEndOfArray;
47
+ exports.WaitOnType = exports.animationStarted = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.SpreadMode = exports.ScrollMode = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.VERTICAL_PADDING = exports.SCROLLBAR_PADDING = exports.MAX_AUTO_SCALE = exports.UNKNOWN_SCALE = exports.MAX_SCALE = exports.MIN_SCALE = exports.DEFAULT_SCALE = exports.DEFAULT_SCALE_VALUE = exports.CSS_UNITS = void 0;
28
48
 
29
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
49
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
30
50
 
31
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
51
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
32
52
 
33
- var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
53
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
34
54
 
35
- var _pdf = require('../pdf');
55
+ 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); } }
36
56
 
37
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
57
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
58
+
59
+ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
60
+
61
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
62
+
63
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
64
+
65
+ function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
66
+
67
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
68
+
69
+ function 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); } }
70
+
71
+ 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); }); }; }
38
72
 
39
73
  var CSS_UNITS = 96.0 / 72.0;
74
+ exports.CSS_UNITS = CSS_UNITS;
40
75
  var DEFAULT_SCALE_VALUE = 'auto';
76
+ exports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;
41
77
  var DEFAULT_SCALE = 1.0;
78
+ exports.DEFAULT_SCALE = DEFAULT_SCALE;
42
79
  var MIN_SCALE = 0.10;
80
+ exports.MIN_SCALE = MIN_SCALE;
43
81
  var MAX_SCALE = 10.0;
82
+ exports.MAX_SCALE = MAX_SCALE;
44
83
  var UNKNOWN_SCALE = 0;
84
+ exports.UNKNOWN_SCALE = UNKNOWN_SCALE;
45
85
  var MAX_AUTO_SCALE = 1.25;
86
+ exports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;
46
87
  var SCROLLBAR_PADDING = 40;
88
+ exports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;
47
89
  var VERTICAL_PADDING = 5;
90
+ exports.VERTICAL_PADDING = VERTICAL_PADDING;
48
91
  var PresentationModeState = {
49
92
  UNKNOWN: 0,
50
93
  NORMAL: 1,
51
94
  CHANGING: 2,
52
95
  FULLSCREEN: 3
53
96
  };
97
+ exports.PresentationModeState = PresentationModeState;
54
98
  var RendererType = {
55
99
  CANVAS: 'canvas',
56
100
  SVG: 'svg'
57
101
  };
102
+ exports.RendererType = RendererType;
58
103
  var TextLayerMode = {
59
104
  DISABLE: 0,
60
105
  ENABLE: 1,
61
106
  ENABLE_ENHANCE: 2
62
107
  };
108
+ exports.TextLayerMode = TextLayerMode;
109
+ var ScrollMode = {
110
+ UNKNOWN: -1,
111
+ VERTICAL: 0,
112
+ HORIZONTAL: 1,
113
+ WRAPPED: 2
114
+ };
115
+ exports.ScrollMode = ScrollMode;
116
+ var SpreadMode = {
117
+ UNKNOWN: -1,
118
+ NONE: 0,
119
+ ODD: 1,
120
+ EVEN: 2
121
+ };
122
+ exports.SpreadMode = SpreadMode;
123
+
63
124
  function formatL10nValue(text, args) {
64
125
  if (!args) {
65
126
  return text;
66
127
  }
128
+
67
129
  return text.replace(/\{\{\s*(\w+)\s*\}\}/g, function (all, name) {
68
130
  return name in args ? args[name] : '{{' + name + '}}';
69
131
  });
70
132
  }
133
+
71
134
  var NullL10n = {
72
- getLanguage: function getLanguage() {
73
- return Promise.resolve('en-us');
74
- },
75
- getDirection: function getDirection() {
76
- return Promise.resolve('ltr');
77
- },
78
- get: function get(property, args, fallback) {
79
- return Promise.resolve(formatL10nValue(fallback, args));
80
- },
81
- translate: function translate(element) {
82
- return Promise.resolve();
83
- }
135
+ getLanguage: function () {
136
+ var _getLanguage = _asyncToGenerator(
137
+ /*#__PURE__*/
138
+ _regenerator["default"].mark(function _callee() {
139
+ return _regenerator["default"].wrap(function _callee$(_context) {
140
+ while (1) {
141
+ switch (_context.prev = _context.next) {
142
+ case 0:
143
+ return _context.abrupt("return", 'en-us');
144
+
145
+ case 1:
146
+ case "end":
147
+ return _context.stop();
148
+ }
149
+ }
150
+ }, _callee);
151
+ }));
152
+
153
+ function getLanguage() {
154
+ return _getLanguage.apply(this, arguments);
155
+ }
156
+
157
+ return getLanguage;
158
+ }(),
159
+ getDirection: function () {
160
+ var _getDirection = _asyncToGenerator(
161
+ /*#__PURE__*/
162
+ _regenerator["default"].mark(function _callee2() {
163
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
164
+ while (1) {
165
+ switch (_context2.prev = _context2.next) {
166
+ case 0:
167
+ return _context2.abrupt("return", 'ltr');
168
+
169
+ case 1:
170
+ case "end":
171
+ return _context2.stop();
172
+ }
173
+ }
174
+ }, _callee2);
175
+ }));
176
+
177
+ function getDirection() {
178
+ return _getDirection.apply(this, arguments);
179
+ }
180
+
181
+ return getDirection;
182
+ }(),
183
+ get: function () {
184
+ var _get = _asyncToGenerator(
185
+ /*#__PURE__*/
186
+ _regenerator["default"].mark(function _callee3(property, args, fallback) {
187
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
188
+ while (1) {
189
+ switch (_context3.prev = _context3.next) {
190
+ case 0:
191
+ return _context3.abrupt("return", formatL10nValue(fallback, args));
192
+
193
+ case 1:
194
+ case "end":
195
+ return _context3.stop();
196
+ }
197
+ }
198
+ }, _callee3);
199
+ }));
200
+
201
+ function get(_x, _x2, _x3) {
202
+ return _get.apply(this, arguments);
203
+ }
204
+
205
+ return get;
206
+ }(),
207
+ translate: function () {
208
+ var _translate = _asyncToGenerator(
209
+ /*#__PURE__*/
210
+ _regenerator["default"].mark(function _callee4(element) {
211
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
212
+ while (1) {
213
+ switch (_context4.prev = _context4.next) {
214
+ case 0:
215
+ case "end":
216
+ return _context4.stop();
217
+ }
218
+ }
219
+ }, _callee4);
220
+ }));
221
+
222
+ function translate(_x4) {
223
+ return _translate.apply(this, arguments);
224
+ }
225
+
226
+ return translate;
227
+ }()
84
228
  };
229
+ exports.NullL10n = NullL10n;
230
+
85
231
  function getOutputScale(ctx) {
86
232
  var devicePixelRatio = window.devicePixelRatio || 1;
87
233
  var backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1;
@@ -92,61 +238,76 @@ function getOutputScale(ctx) {
92
238
  scaled: pixelRatio !== 1
93
239
  };
94
240
  }
241
+
95
242
  function scrollIntoView(element, spot) {
96
243
  var skipOverflowHiddenElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
97
-
98
244
  var parent = element.offsetParent;
245
+
99
246
  if (!parent) {
100
247
  console.error('offsetParent is not set -- cannot scroll');
101
248
  return;
102
249
  }
250
+
103
251
  var offsetY = element.offsetTop + element.clientTop;
104
252
  var offsetX = element.offsetLeft + element.clientLeft;
253
+
105
254
  while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === 'hidden') {
106
255
  if (parent.dataset._scaleY) {
107
256
  offsetY /= parent.dataset._scaleY;
108
257
  offsetX /= parent.dataset._scaleX;
109
258
  }
259
+
110
260
  offsetY += parent.offsetTop;
111
261
  offsetX += parent.offsetLeft;
112
262
  parent = parent.offsetParent;
263
+
113
264
  if (!parent) {
114
265
  return;
115
266
  }
116
267
  }
268
+
117
269
  if (spot) {
118
270
  if (spot.top !== undefined) {
119
271
  offsetY += spot.top;
120
272
  }
273
+
121
274
  if (spot.left !== undefined) {
122
275
  offsetX += spot.left;
123
276
  parent.scrollLeft = offsetX;
124
277
  }
125
278
  }
279
+
126
280
  parent.scrollTop = offsetY;
127
281
  }
282
+
128
283
  function watchScroll(viewAreaElement, callback) {
129
284
  var debounceScroll = function debounceScroll(evt) {
130
285
  if (rAF) {
131
286
  return;
132
287
  }
288
+
133
289
  rAF = window.requestAnimationFrame(function viewAreaElementScrolled() {
134
290
  rAF = null;
135
291
  var currentX = viewAreaElement.scrollLeft;
136
292
  var lastX = state.lastX;
293
+
137
294
  if (currentX !== lastX) {
138
295
  state.right = currentX > lastX;
139
296
  }
297
+
140
298
  state.lastX = currentX;
141
299
  var currentY = viewAreaElement.scrollTop;
142
300
  var lastY = state.lastY;
301
+
143
302
  if (currentY !== lastY) {
144
303
  state.down = currentY > lastY;
145
304
  }
305
+
146
306
  state.lastY = currentY;
147
307
  callback(state);
148
308
  });
149
309
  };
310
+
150
311
  var state = {
151
312
  right: true,
152
313
  down: true,
@@ -158,59 +319,75 @@ function watchScroll(viewAreaElement, callback) {
158
319
  viewAreaElement.addEventListener('scroll', debounceScroll, true);
159
320
  return state;
160
321
  }
322
+
161
323
  function parseQueryString(query) {
162
324
  var parts = query.split('&');
163
325
  var params = Object.create(null);
326
+
164
327
  for (var i = 0, ii = parts.length; i < ii; ++i) {
165
328
  var param = parts[i].split('=');
166
329
  var key = param[0].toLowerCase();
167
330
  var value = param.length > 1 ? param[1] : null;
168
331
  params[decodeURIComponent(key)] = decodeURIComponent(value);
169
332
  }
333
+
170
334
  return params;
171
335
  }
336
+
172
337
  function binarySearchFirstItem(items, condition) {
173
338
  var minIndex = 0;
174
339
  var maxIndex = items.length - 1;
340
+
175
341
  if (items.length === 0 || !condition(items[maxIndex])) {
176
342
  return items.length;
177
343
  }
344
+
178
345
  if (condition(items[minIndex])) {
179
346
  return minIndex;
180
347
  }
348
+
181
349
  while (minIndex < maxIndex) {
182
350
  var currentIndex = minIndex + maxIndex >> 1;
183
351
  var currentItem = items[currentIndex];
352
+
184
353
  if (condition(currentItem)) {
185
354
  maxIndex = currentIndex;
186
355
  } else {
187
356
  minIndex = currentIndex + 1;
188
357
  }
189
358
  }
359
+
190
360
  return minIndex;
191
361
  }
362
+
192
363
  function approximateFraction(x) {
193
364
  if (Math.floor(x) === x) {
194
365
  return [x, 1];
195
366
  }
367
+
196
368
  var xinv = 1 / x;
197
369
  var limit = 8;
370
+
198
371
  if (xinv > limit) {
199
372
  return [1, limit];
200
373
  } else if (Math.floor(xinv) === xinv) {
201
374
  return [1, xinv];
202
375
  }
376
+
203
377
  var x_ = x > 1 ? xinv : x;
204
378
  var a = 0,
205
379
  b = 1,
206
380
  c = 1,
207
381
  d = 1;
382
+
208
383
  while (true) {
209
384
  var p = a + c,
210
385
  q = b + d;
386
+
211
387
  if (q > limit) {
212
388
  break;
213
389
  }
390
+
214
391
  if (x_ <= p / q) {
215
392
  c = p;
216
393
  d = q;
@@ -219,18 +396,23 @@ function approximateFraction(x) {
219
396
  b = q;
220
397
  }
221
398
  }
222
- var result = void 0;
399
+
400
+ var result;
401
+
223
402
  if (x_ - a / b < c / d - x_) {
224
403
  result = x_ === x ? [a, b] : [b, a];
225
404
  } else {
226
405
  result = x_ === x ? [c, d] : [d, c];
227
406
  }
407
+
228
408
  return result;
229
409
  }
410
+
230
411
  function roundToDivide(x, div) {
231
412
  var r = x % div;
232
413
  return r === 0 ? x : Math.round(x - r + div);
233
414
  }
415
+
234
416
  function getPageSizeInches(_ref) {
235
417
  var view = _ref.view,
236
418
  userUnit = _ref.userUnit,
@@ -250,69 +432,73 @@ function getPageSizeInches(_ref) {
250
432
  height: changeOrientation ? width : height
251
433
  };
252
434
  }
435
+
253
436
  function backtrackBeforeAllVisibleElements(index, views, top) {
254
437
  if (index < 2) {
255
438
  return index;
256
439
  }
440
+
257
441
  var elt = views[index].div;
258
442
  var pageTop = elt.offsetTop + elt.clientTop;
443
+
259
444
  if (pageTop >= top) {
260
445
  elt = views[index - 1].div;
261
446
  pageTop = elt.offsetTop + elt.clientTop;
262
447
  }
448
+
263
449
  for (var i = index - 2; i >= 0; --i) {
264
450
  elt = views[i].div;
451
+
265
452
  if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) {
266
453
  break;
267
454
  }
455
+
268
456
  index = i;
269
457
  }
458
+
270
459
  return index;
271
460
  }
461
+
272
462
  function getVisibleElements(scrollEl, views) {
273
463
  var sortByVisibility = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
274
464
  var horizontal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
275
-
276
465
  var top = scrollEl.scrollTop,
277
466
  bottom = top + scrollEl.clientHeight;
278
467
  var left = scrollEl.scrollLeft,
279
468
  right = left + scrollEl.clientWidth;
469
+
280
470
  function isElementBottomAfterViewTop(view) {
281
471
  var element = view.div;
282
472
  var elementBottom = element.offsetTop + element.clientTop + element.clientHeight;
283
473
  return elementBottom > top;
284
474
  }
475
+
285
476
  function isElementRightAfterViewLeft(view) {
286
477
  var element = view.div;
287
478
  var elementRight = element.offsetLeft + element.clientLeft + element.clientWidth;
288
479
  return elementRight > left;
289
480
  }
481
+
290
482
  var visible = [],
291
- view = void 0,
292
- element = void 0;
293
- var currentHeight = void 0,
294
- viewHeight = void 0,
295
- viewBottom = void 0,
296
- hiddenHeight = void 0;
297
- var currentWidth = void 0,
298
- viewWidth = void 0,
299
- viewRight = void 0,
300
- hiddenWidth = void 0;
301
- var percentVisible = void 0;
302
- var firstVisibleElementInd = views.length === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop);
303
- if (views.length > 0 && !horizontal) {
483
+ numViews = views.length;
484
+ var firstVisibleElementInd = numViews === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop);
485
+
486
+ if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) {
304
487
  firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top);
305
488
  }
489
+
306
490
  var lastEdge = horizontal ? right : -1;
307
- for (var i = firstVisibleElementInd, ii = views.length; i < ii; i++) {
308
- view = views[i];
309
- element = view.div;
310
- currentWidth = element.offsetLeft + element.clientLeft;
311
- currentHeight = element.offsetTop + element.clientTop;
312
- viewWidth = element.clientWidth;
313
- viewHeight = element.clientHeight;
314
- viewRight = currentWidth + viewWidth;
315
- viewBottom = currentHeight + viewHeight;
491
+
492
+ for (var i = firstVisibleElementInd; i < numViews; i++) {
493
+ var view = views[i],
494
+ element = view.div;
495
+ var currentWidth = element.offsetLeft + element.clientLeft;
496
+ var currentHeight = element.offsetTop + element.clientTop;
497
+ var viewWidth = element.clientWidth,
498
+ viewHeight = element.clientHeight;
499
+ var viewRight = currentWidth + viewWidth;
500
+ var viewBottom = currentHeight + viewHeight;
501
+
316
502
  if (lastEdge === -1) {
317
503
  if (viewBottom >= bottom) {
318
504
  lastEdge = viewBottom;
@@ -320,198 +506,303 @@ function getVisibleElements(scrollEl, views) {
320
506
  } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) {
321
507
  break;
322
508
  }
509
+
323
510
  if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) {
324
511
  continue;
325
512
  }
326
- hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);
327
- hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);
328
- percentVisible = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0;
513
+
514
+ var hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom);
515
+ var hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right);
516
+ var percent = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0;
329
517
  visible.push({
330
518
  id: view.id,
331
519
  x: currentWidth,
332
520
  y: currentHeight,
333
521
  view: view,
334
- percent: percentVisible
522
+ percent: percent
335
523
  });
336
524
  }
337
- var first = visible[0];
338
- var last = visible[visible.length - 1];
525
+
526
+ var first = visible[0],
527
+ last = visible[visible.length - 1];
528
+
339
529
  if (sortByVisibility) {
340
530
  visible.sort(function (a, b) {
341
531
  var pc = a.percent - b.percent;
532
+
342
533
  if (Math.abs(pc) > 0.001) {
343
534
  return -pc;
344
535
  }
536
+
345
537
  return a.id - b.id;
346
538
  });
347
539
  }
540
+
348
541
  return {
349
542
  first: first,
350
543
  last: last,
351
544
  views: visible
352
545
  };
353
546
  }
547
+
354
548
  function noContextMenuHandler(evt) {
355
549
  evt.preventDefault();
356
550
  }
551
+
357
552
  function isDataSchema(url) {
358
553
  var i = 0,
359
554
  ii = url.length;
555
+
360
556
  while (i < ii && url[i].trim() === '') {
361
557
  i++;
362
558
  }
363
- return url.substr(i, 5).toLowerCase() === 'data:';
559
+
560
+ return url.substring(i, i + 5).toLowerCase() === 'data:';
364
561
  }
562
+
365
563
  function getPDFFileNameFromURL(url) {
366
564
  var defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'document.pdf';
367
565
 
566
+ if (typeof url !== 'string') {
567
+ return defaultFilename;
568
+ }
569
+
368
570
  if (isDataSchema(url)) {
369
571
  console.warn('getPDFFileNameFromURL: ' + 'ignoring "data:" URL for performance reasons.');
370
572
  return defaultFilename;
371
573
  }
574
+
372
575
  var reURI = /^(?:(?:[^:]+:)?\/\/[^\/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/;
373
576
  var reFilename = /[^\/?#=]+\.pdf\b(?!.*\.pdf\b)/i;
374
577
  var splitURI = reURI.exec(url);
375
578
  var suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);
579
+
376
580
  if (suggestedFilename) {
377
581
  suggestedFilename = suggestedFilename[0];
582
+
378
583
  if (suggestedFilename.includes('%')) {
379
584
  try {
380
585
  suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];
381
586
  } catch (ex) {}
382
587
  }
383
588
  }
589
+
384
590
  return suggestedFilename || defaultFilename;
385
591
  }
592
+
386
593
  function normalizeWheelEventDelta(evt) {
387
594
  var delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY);
388
595
  var angle = Math.atan2(evt.deltaY, evt.deltaX);
596
+
389
597
  if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) {
390
598
  delta = -delta;
391
599
  }
600
+
392
601
  var MOUSE_DOM_DELTA_PIXEL_MODE = 0;
393
602
  var MOUSE_DOM_DELTA_LINE_MODE = 1;
394
603
  var MOUSE_PIXELS_PER_LINE = 30;
395
604
  var MOUSE_LINES_PER_PAGE = 30;
605
+
396
606
  if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) {
397
607
  delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE;
398
608
  } else if (evt.deltaMode === MOUSE_DOM_DELTA_LINE_MODE) {
399
609
  delta /= MOUSE_LINES_PER_PAGE;
400
610
  }
611
+
401
612
  return delta;
402
613
  }
614
+
403
615
  function isValidRotation(angle) {
404
616
  return Number.isInteger(angle) && angle % 90 === 0;
405
617
  }
618
+
619
+ function isValidScrollMode(mode) {
620
+ return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN;
621
+ }
622
+
623
+ function isValidSpreadMode(mode) {
624
+ return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN;
625
+ }
626
+
406
627
  function isPortraitOrientation(size) {
407
628
  return size.width <= size.height;
408
629
  }
409
- function cloneObj(obj) {
410
- var result = Object.create(null);
411
- for (var i in obj) {
412
- if (Object.prototype.hasOwnProperty.call(obj, i)) {
413
- result[i] = obj[i];
414
- }
415
- }
416
- return result;
417
- }
630
+
418
631
  var WaitOnType = {
419
632
  EVENT: 'event',
420
633
  TIMEOUT: 'timeout'
421
634
  };
635
+ exports.WaitOnType = WaitOnType;
636
+
422
637
  function waitOnEventOrTimeout(_ref2) {
423
638
  var target = _ref2.target,
424
639
  name = _ref2.name,
425
640
  _ref2$delay = _ref2.delay,
426
- delay = _ref2$delay === undefined ? 0 : _ref2$delay;
641
+ delay = _ref2$delay === void 0 ? 0 : _ref2$delay;
642
+ return new Promise(function (resolve, reject) {
643
+ if (_typeof(target) !== 'object' || !(name && typeof name === 'string') || !(Number.isInteger(delay) && delay >= 0)) {
644
+ throw new Error('waitOnEventOrTimeout - invalid parameters.');
645
+ }
646
+
647
+ function handler(type) {
648
+ if (target instanceof EventBus) {
649
+ target.off(name, eventHandler);
650
+ } else {
651
+ target.removeEventListener(name, eventHandler);
652
+ }
653
+
654
+ if (timeout) {
655
+ clearTimeout(timeout);
656
+ }
657
+
658
+ resolve(type);
659
+ }
660
+
661
+ var eventHandler = handler.bind(null, WaitOnType.EVENT);
427
662
 
428
- if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) !== 'object' || !(name && typeof name === 'string') || !(Number.isInteger(delay) && delay >= 0)) {
429
- return Promise.reject(new Error('waitOnEventOrTimeout - invalid parameters.'));
430
- }
431
- var capability = (0, _pdf.createPromiseCapability)();
432
- function handler(type) {
433
663
  if (target instanceof EventBus) {
434
- target.off(name, eventHandler);
664
+ target.on(name, eventHandler);
435
665
  } else {
436
- target.removeEventListener(name, eventHandler);
437
- }
438
- if (timeout) {
439
- clearTimeout(timeout);
666
+ target.addEventListener(name, eventHandler);
440
667
  }
441
- capability.resolve(type);
442
- }
443
- var eventHandler = handler.bind(null, WaitOnType.EVENT);
444
- if (target instanceof EventBus) {
445
- target.on(name, eventHandler);
446
- } else {
447
- target.addEventListener(name, eventHandler);
448
- }
449
- var timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);
450
- var timeout = setTimeout(timeoutHandler, delay);
451
- return capability.promise;
668
+
669
+ var timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT);
670
+ var timeout = setTimeout(timeoutHandler, delay);
671
+ });
452
672
  }
673
+
453
674
  var animationStarted = new Promise(function (resolve) {
454
675
  if (typeof window === 'undefined') {
455
676
  setTimeout(resolve, 20);
456
677
  return;
457
678
  }
679
+
458
680
  window.requestAnimationFrame(resolve);
459
681
  });
682
+ exports.animationStarted = animationStarted;
460
683
 
461
- var EventBus = function () {
684
+ var EventBus =
685
+ /*#__PURE__*/
686
+ function () {
462
687
  function EventBus() {
688
+ var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
689
+ _ref3$dispatchToDOM = _ref3.dispatchToDOM,
690
+ dispatchToDOM = _ref3$dispatchToDOM === void 0 ? false : _ref3$dispatchToDOM;
691
+
463
692
  _classCallCheck(this, EventBus);
464
693
 
465
694
  this._listeners = Object.create(null);
695
+ this._dispatchToDOM = dispatchToDOM === true;
466
696
  }
467
697
 
468
698
  _createClass(EventBus, [{
469
- key: 'on',
699
+ key: "on",
470
700
  value: function on(eventName, listener) {
471
701
  var eventListeners = this._listeners[eventName];
702
+
472
703
  if (!eventListeners) {
473
704
  eventListeners = [];
474
705
  this._listeners[eventName] = eventListeners;
475
706
  }
707
+
476
708
  eventListeners.push(listener);
477
709
  }
478
710
  }, {
479
- key: 'off',
711
+ key: "off",
480
712
  value: function off(eventName, listener) {
481
713
  var eventListeners = this._listeners[eventName];
482
- var i = void 0;
714
+ var i;
715
+
483
716
  if (!eventListeners || (i = eventListeners.indexOf(listener)) < 0) {
484
717
  return;
485
718
  }
719
+
486
720
  eventListeners.splice(i, 1);
487
721
  }
488
722
  }, {
489
- key: 'dispatch',
723
+ key: "dispatch",
490
724
  value: function dispatch(eventName) {
491
725
  var eventListeners = this._listeners[eventName];
726
+
492
727
  if (!eventListeners || eventListeners.length === 0) {
728
+ if (this._dispatchToDOM) {
729
+ var _args5 = Array.prototype.slice.call(arguments, 1);
730
+
731
+ this._dispatchDOMEvent(eventName, _args5);
732
+ }
733
+
493
734
  return;
494
735
  }
736
+
495
737
  var args = Array.prototype.slice.call(arguments, 1);
496
738
  eventListeners.slice(0).forEach(function (listener) {
497
739
  listener.apply(null, args);
498
740
  });
741
+
742
+ if (this._dispatchToDOM) {
743
+ this._dispatchDOMEvent(eventName, args);
744
+ }
745
+ }
746
+ }, {
747
+ key: "_dispatchDOMEvent",
748
+ value: function _dispatchDOMEvent(eventName) {
749
+ var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
750
+ var details = Object.create(null);
751
+
752
+ if (args && args.length > 0) {
753
+ var obj = args[0];
754
+
755
+ for (var key in obj) {
756
+ var value = obj[key];
757
+
758
+ if (key === 'source') {
759
+ if (value === window || value === document) {
760
+ return;
761
+ }
762
+
763
+ continue;
764
+ }
765
+
766
+ details[key] = value;
767
+ }
768
+ }
769
+
770
+ var event = document.createEvent('CustomEvent');
771
+ event.initCustomEvent(eventName, true, true, details);
772
+ document.dispatchEvent(event);
499
773
  }
500
774
  }]);
501
775
 
502
776
  return EventBus;
503
777
  }();
504
778
 
779
+ exports.EventBus = EventBus;
780
+ var globalEventBus = null;
781
+
782
+ function getGlobalEventBus() {
783
+ var dispatchToDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
784
+
785
+ if (!globalEventBus) {
786
+ globalEventBus = new EventBus({
787
+ dispatchToDOM: dispatchToDOM
788
+ });
789
+ }
790
+
791
+ return globalEventBus;
792
+ }
793
+
505
794
  function clamp(v, min, max) {
506
795
  return Math.min(Math.max(v, min), max);
507
796
  }
508
797
 
509
- var ProgressBar = function () {
798
+ var ProgressBar =
799
+ /*#__PURE__*/
800
+ function () {
510
801
  function ProgressBar(id) {
511
- var _ref3 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
512
- height = _ref3.height,
513
- width = _ref3.width,
514
- units = _ref3.units;
802
+ var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
803
+ height = _ref4.height,
804
+ width = _ref4.width,
805
+ units = _ref4.units;
515
806
 
516
807
  _classCallCheck(this, ProgressBar);
517
808
 
@@ -526,57 +817,63 @@ var ProgressBar = function () {
526
817
  }
527
818
 
528
819
  _createClass(ProgressBar, [{
529
- key: '_updateBar',
820
+ key: "_updateBar",
530
821
  value: function _updateBar() {
531
822
  if (this._indeterminate) {
532
823
  this.div.classList.add('indeterminate');
533
824
  this.div.style.width = this.width + this.units;
534
825
  return;
535
826
  }
827
+
536
828
  this.div.classList.remove('indeterminate');
537
829
  var progressSize = this.width * this._percent / 100;
538
830
  this.div.style.width = progressSize + this.units;
539
831
  }
540
832
  }, {
541
- key: 'setWidth',
833
+ key: "setWidth",
542
834
  value: function setWidth(viewer) {
543
835
  if (!viewer) {
544
836
  return;
545
837
  }
838
+
546
839
  var container = viewer.parentNode;
547
840
  var scrollbarWidth = container.offsetWidth - viewer.offsetWidth;
841
+
548
842
  if (scrollbarWidth > 0) {
549
843
  this.bar.setAttribute('style', 'width: calc(100% - ' + scrollbarWidth + 'px);');
550
844
  }
551
845
  }
552
846
  }, {
553
- key: 'hide',
847
+ key: "hide",
554
848
  value: function hide() {
555
849
  if (!this.visible) {
556
850
  return;
557
851
  }
852
+
558
853
  this.visible = false;
559
854
  this.bar.classList.add('hidden');
560
855
  document.body.classList.remove('loadingInProgress');
561
856
  }
562
857
  }, {
563
- key: 'show',
858
+ key: "show",
564
859
  value: function show() {
565
860
  if (this.visible) {
566
861
  return;
567
862
  }
863
+
568
864
  this.visible = true;
569
865
  document.body.classList.add('loadingInProgress');
570
866
  this.bar.classList.remove('hidden');
571
867
  }
572
868
  }, {
573
- key: 'percent',
869
+ key: "percent",
574
870
  get: function get() {
575
871
  return this._percent;
576
872
  },
577
873
  set: function set(val) {
578
874
  this._indeterminate = isNaN(val);
579
875
  this._percent = clamp(val, 0, 100);
876
+
580
877
  this._updateBar();
581
878
  }
582
879
  }]);
@@ -584,10 +881,13 @@ var ProgressBar = function () {
584
881
  return ProgressBar;
585
882
  }();
586
883
 
884
+ exports.ProgressBar = ProgressBar;
885
+
587
886
  function moveToEndOfArray(arr, condition) {
588
887
  var moved = [],
589
888
  len = arr.length;
590
889
  var write = 0;
890
+
591
891
  for (var read = 0; read < len; ++read) {
592
892
  if (condition(arr[read])) {
593
893
  moved.push(arr[read]);
@@ -596,42 +896,8 @@ function moveToEndOfArray(arr, condition) {
596
896
  ++write;
597
897
  }
598
898
  }
899
+
599
900
  for (var _read = 0; write < len; ++_read, ++write) {
600
901
  arr[write] = moved[_read];
601
902
  }
602
- }
603
- exports.CSS_UNITS = CSS_UNITS;
604
- exports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE;
605
- exports.DEFAULT_SCALE = DEFAULT_SCALE;
606
- exports.MIN_SCALE = MIN_SCALE;
607
- exports.MAX_SCALE = MAX_SCALE;
608
- exports.UNKNOWN_SCALE = UNKNOWN_SCALE;
609
- exports.MAX_AUTO_SCALE = MAX_AUTO_SCALE;
610
- exports.SCROLLBAR_PADDING = SCROLLBAR_PADDING;
611
- exports.VERTICAL_PADDING = VERTICAL_PADDING;
612
- exports.isValidRotation = isValidRotation;
613
- exports.isPortraitOrientation = isPortraitOrientation;
614
- exports.cloneObj = cloneObj;
615
- exports.PresentationModeState = PresentationModeState;
616
- exports.RendererType = RendererType;
617
- exports.TextLayerMode = TextLayerMode;
618
- exports.NullL10n = NullL10n;
619
- exports.EventBus = EventBus;
620
- exports.ProgressBar = ProgressBar;
621
- exports.getPDFFileNameFromURL = getPDFFileNameFromURL;
622
- exports.noContextMenuHandler = noContextMenuHandler;
623
- exports.parseQueryString = parseQueryString;
624
- exports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements;
625
- exports.getVisibleElements = getVisibleElements;
626
- exports.roundToDivide = roundToDivide;
627
- exports.getPageSizeInches = getPageSizeInches;
628
- exports.approximateFraction = approximateFraction;
629
- exports.getOutputScale = getOutputScale;
630
- exports.scrollIntoView = scrollIntoView;
631
- exports.watchScroll = watchScroll;
632
- exports.binarySearchFirstItem = binarySearchFirstItem;
633
- exports.normalizeWheelEventDelta = normalizeWheelEventDelta;
634
- exports.animationStarted = animationStarted;
635
- exports.WaitOnType = WaitOnType;
636
- exports.waitOnEventOrTimeout = waitOnEventOrTimeout;
637
- exports.moveToEndOfArray = moveToEndOfArray;
903
+ }