pdfjs-dist 2.0.489 → 2.2.228

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

Potentially problematic release.


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

Files changed (169) hide show
  1. package/CODE_OF_CONDUCT.md +15 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +18515 -11402
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +1 -1
  6. package/build/pdf.worker.js +48266 -37137
  7. package/build/pdf.worker.js.map +1 -1
  8. package/build/pdf.worker.min.js +1 -1
  9. package/external/url/url-lib.js +627 -0
  10. package/image_decoders/pdf.image_decoders.js +11350 -0
  11. package/image_decoders/pdf.image_decoders.js.map +1 -0
  12. package/image_decoders/pdf.image_decoders.min.js +1 -0
  13. package/lib/core/annotation.js +587 -242
  14. package/lib/core/arithmetic_decoder.js +275 -245
  15. package/lib/core/bidi.js +65 -6
  16. package/lib/core/ccitt.js +173 -18
  17. package/lib/core/ccitt_stream.js +15 -6
  18. package/lib/core/cff_parser.js +433 -61
  19. package/lib/core/charsets.js +5 -4
  20. package/lib/core/chunked_stream.js +400 -152
  21. package/lib/core/cmap.js +326 -87
  22. package/lib/core/colorspace.js +874 -594
  23. package/lib/core/core_utils.js +147 -0
  24. package/lib/core/crypto.js +290 -45
  25. package/lib/core/document.js +560 -268
  26. package/lib/core/encodings.js +19 -10
  27. package/lib/core/evaluator.js +1005 -360
  28. package/lib/core/font_renderer.js +331 -97
  29. package/lib/core/fonts.js +812 -195
  30. package/lib/core/function.js +284 -71
  31. package/lib/core/glyphlist.js +4 -3
  32. package/lib/core/image.js +169 -62
  33. package/lib/core/image_utils.js +111 -0
  34. package/lib/core/jbig2.js +479 -66
  35. package/lib/core/jbig2_stream.js +19 -8
  36. package/lib/core/jpeg_stream.js +38 -13
  37. package/lib/core/jpg.js +253 -29
  38. package/lib/core/jpx.js +396 -6
  39. package/lib/core/jpx_stream.js +18 -6
  40. package/lib/core/metrics.js +15 -15
  41. package/lib/core/murmurhash3.js +56 -34
  42. package/lib/core/obj.js +1354 -488
  43. package/lib/core/operator_list.js +144 -31
  44. package/lib/core/parser.js +539 -191
  45. package/lib/core/pattern.js +148 -14
  46. package/lib/core/pdf_manager.js +323 -133
  47. package/lib/core/primitives.js +111 -24
  48. package/lib/core/ps_parser.js +134 -45
  49. package/lib/core/standard_fonts.js +17 -17
  50. package/lib/core/stream.js +313 -34
  51. package/lib/core/type1_parser.js +143 -13
  52. package/lib/core/unicode.js +32 -5
  53. package/lib/core/worker.js +217 -190
  54. package/lib/core/worker_stream.js +277 -0
  55. package/lib/display/annotation_layer.js +450 -133
  56. package/lib/display/api.js +1597 -784
  57. package/lib/display/api_compatibility.js +11 -13
  58. package/lib/display/canvas.js +360 -44
  59. package/lib/display/content_disposition.js +83 -32
  60. package/lib/display/display_utils.js +747 -0
  61. package/lib/display/fetch_stream.js +221 -90
  62. package/lib/display/font_loader.js +468 -236
  63. package/lib/display/metadata.js +38 -16
  64. package/lib/display/network.js +635 -428
  65. package/lib/display/network_utils.js +32 -19
  66. package/lib/display/node_stream.js +367 -175
  67. package/lib/display/pattern_helper.js +81 -31
  68. package/lib/display/svg.js +1235 -519
  69. package/lib/display/text_layer.js +153 -29
  70. package/lib/display/transport_stream.js +345 -94
  71. package/lib/display/webgl.js +64 -18
  72. package/lib/display/worker_options.js +5 -4
  73. package/lib/display/xml_parser.js +166 -53
  74. package/lib/examples/node/domstubs.js +60 -4
  75. package/lib/pdf.js +36 -14
  76. package/lib/pdf.worker.js +5 -3
  77. package/lib/shared/compatibility.js +158 -564
  78. package/lib/shared/global_scope.js +2 -2
  79. package/lib/shared/is_node.js +4 -4
  80. package/lib/shared/message_handler.js +521 -0
  81. package/lib/shared/streams_polyfill.js +21 -17
  82. package/lib/shared/url_polyfill.js +56 -0
  83. package/lib/shared/util.js +243 -710
  84. package/lib/test/unit/annotation_spec.js +870 -401
  85. package/lib/test/unit/api_spec.js +657 -345
  86. package/lib/test/unit/bidi_spec.js +7 -7
  87. package/lib/test/unit/cff_parser_spec.js +54 -11
  88. package/lib/test/unit/clitests_helper.js +10 -8
  89. package/lib/test/unit/cmap_spec.js +95 -41
  90. package/lib/test/unit/colorspace_spec.js +115 -63
  91. package/lib/test/unit/core_utils_spec.js +191 -0
  92. package/lib/test/unit/crypto_spec.js +17 -5
  93. package/lib/test/unit/custom_spec.js +43 -55
  94. package/lib/test/unit/display_svg_spec.js +34 -18
  95. package/lib/test/unit/display_utils_spec.js +273 -0
  96. package/lib/test/unit/document_spec.js +8 -13
  97. package/lib/test/unit/encodings_spec.js +25 -45
  98. package/lib/test/unit/evaluator_spec.js +38 -15
  99. package/lib/test/unit/fetch_stream_spec.js +109 -0
  100. package/lib/test/unit/function_spec.js +17 -5
  101. package/lib/test/unit/jasmine-boot.js +33 -20
  102. package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
  103. package/lib/test/unit/metadata_spec.js +71 -11
  104. package/lib/test/unit/murmurhash3_spec.js +3 -3
  105. package/lib/test/unit/network_spec.js +19 -54
  106. package/lib/test/unit/network_utils_spec.js +91 -14
  107. package/lib/test/unit/node_stream_spec.js +56 -32
  108. package/lib/test/unit/parser_spec.js +162 -71
  109. package/lib/test/unit/pdf_find_controller_spec.js +230 -0
  110. package/lib/test/unit/pdf_find_utils_spec.js +63 -0
  111. package/lib/test/unit/pdf_history_spec.js +21 -9
  112. package/lib/test/unit/primitives_spec.js +53 -20
  113. package/lib/test/unit/stream_spec.js +12 -4
  114. package/lib/test/unit/test_utils.js +273 -56
  115. package/lib/test/unit/testreporter.js +21 -3
  116. package/lib/test/unit/type1_parser_spec.js +8 -6
  117. package/lib/test/unit/ui_utils_spec.js +454 -16
  118. package/lib/test/unit/unicode_spec.js +18 -15
  119. package/lib/test/unit/util_spec.js +87 -128
  120. package/lib/web/annotation_layer_builder.js +39 -22
  121. package/lib/web/app.js +1290 -588
  122. package/lib/web/app_options.js +100 -62
  123. package/lib/web/base_viewer.js +511 -182
  124. package/lib/web/chromecom.js +261 -117
  125. package/lib/web/debugger.js +166 -22
  126. package/lib/web/download_manager.js +32 -13
  127. package/lib/web/firefox_print_service.js +20 -10
  128. package/lib/web/firefoxcom.js +315 -80
  129. package/lib/web/genericcom.js +89 -30
  130. package/lib/web/genericl10n.js +142 -30
  131. package/lib/web/grab_to_pan.js +28 -4
  132. package/lib/web/interfaces.js +170 -47
  133. package/lib/web/overlay_manager.js +235 -85
  134. package/lib/web/password_prompt.js +22 -14
  135. package/lib/web/pdf_attachment_viewer.js +38 -18
  136. package/lib/web/pdf_cursor_tools.js +39 -16
  137. package/lib/web/pdf_document_properties.js +255 -136
  138. package/lib/web/pdf_find_bar.js +84 -40
  139. package/lib/web/pdf_find_controller.js +495 -184
  140. package/lib/web/pdf_find_utils.js +111 -0
  141. package/lib/web/pdf_history.js +190 -53
  142. package/lib/web/pdf_link_service.js +138 -77
  143. package/lib/web/pdf_outline_viewer.js +122 -46
  144. package/lib/web/pdf_page_view.js +191 -67
  145. package/lib/web/pdf_presentation_mode.js +99 -34
  146. package/lib/web/pdf_print_service.js +61 -13
  147. package/lib/web/pdf_rendering_queue.js +28 -9
  148. package/lib/web/pdf_sidebar.js +141 -81
  149. package/lib/web/pdf_sidebar_resizer.js +42 -16
  150. package/lib/web/pdf_single_page_viewer.js +74 -66
  151. package/lib/web/pdf_thumbnail_view.js +104 -33
  152. package/lib/web/pdf_thumbnail_viewer.js +66 -26
  153. package/lib/web/pdf_viewer.component.js +112 -32
  154. package/lib/web/pdf_viewer.js +91 -52
  155. package/lib/web/preferences.js +284 -89
  156. package/lib/web/secondary_toolbar.js +165 -40
  157. package/lib/web/text_layer_builder.js +134 -59
  158. package/lib/web/toolbar.js +78 -43
  159. package/lib/web/ui_utils.js +462 -136
  160. package/lib/web/view_history.js +215 -67
  161. package/lib/web/viewer_compatibility.js +4 -13
  162. package/package.json +5 -4
  163. package/web/pdf_viewer.css +79 -11
  164. package/web/pdf_viewer.js +6107 -3748
  165. package/web/pdf_viewer.js.map +1 -1
  166. package/lib/display/dom_utils.js +0 -309
  167. package/lib/test/unit/dom_utils_spec.js +0 -89
  168. package/lib/test/unit/fonts_spec.js +0 -81
  169. package/lib/web/dom_events.js +0 -137
@@ -2,7 +2,7 @@
2
2
  * @licstart The following is the entire license notice for the
3
3
  * Javascript code in this page
4
4
  *
5
- * Copyright 2017 Mozilla Foundation
5
+ * Copyright 2019 Mozilla Foundation
6
6
  *
7
7
  * Licensed under the Apache License, Version 2.0 (the "License");
8
8
  * you may not use this file except in compliance with the License.
@@ -21,49 +21,115 @@
21
21
  */
22
22
  'use strict';
23
23
 
24
- 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; };
24
+ 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); }
25
25
 
26
26
  var FontInspector = function FontInspectorClosure() {
27
- var fonts;
27
+ var fonts, createObjectURL;
28
28
  var active = false;
29
29
  var fontAttribute = 'data-font-name';
30
+
30
31
  function removeSelection() {
31
- var divs = document.querySelectorAll('div[' + fontAttribute + ']');
32
- for (var i = 0, ii = divs.length; i < ii; ++i) {
33
- var div = divs[i];
34
- div.className = '';
32
+ var divs = document.querySelectorAll("span[".concat(fontAttribute, "]"));
33
+ var _iteratorNormalCompletion = true;
34
+ var _didIteratorError = false;
35
+ var _iteratorError = undefined;
36
+
37
+ try {
38
+ for (var _iterator = divs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
39
+ var div = _step.value;
40
+ div.className = '';
41
+ }
42
+ } catch (err) {
43
+ _didIteratorError = true;
44
+ _iteratorError = err;
45
+ } finally {
46
+ try {
47
+ if (!_iteratorNormalCompletion && _iterator["return"] != null) {
48
+ _iterator["return"]();
49
+ }
50
+ } finally {
51
+ if (_didIteratorError) {
52
+ throw _iteratorError;
53
+ }
54
+ }
35
55
  }
36
56
  }
57
+
37
58
  function resetSelection() {
38
- var divs = document.querySelectorAll('div[' + fontAttribute + ']');
39
- for (var i = 0, ii = divs.length; i < ii; ++i) {
40
- var div = divs[i];
41
- div.className = 'debuggerHideText';
59
+ var divs = document.querySelectorAll("span[".concat(fontAttribute, "]"));
60
+ var _iteratorNormalCompletion2 = true;
61
+ var _didIteratorError2 = false;
62
+ var _iteratorError2 = undefined;
63
+
64
+ try {
65
+ for (var _iterator2 = divs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
66
+ var div = _step2.value;
67
+ div.className = 'debuggerHideText';
68
+ }
69
+ } catch (err) {
70
+ _didIteratorError2 = true;
71
+ _iteratorError2 = err;
72
+ } finally {
73
+ try {
74
+ if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
75
+ _iterator2["return"]();
76
+ }
77
+ } finally {
78
+ if (_didIteratorError2) {
79
+ throw _iteratorError2;
80
+ }
81
+ }
42
82
  }
43
83
  }
84
+
44
85
  function selectFont(fontName, show) {
45
- var divs = document.querySelectorAll('div[' + fontAttribute + '=' + fontName + ']');
46
- for (var i = 0, ii = divs.length; i < ii; ++i) {
47
- var div = divs[i];
48
- div.className = show ? 'debuggerShowText' : 'debuggerHideText';
86
+ var divs = document.querySelectorAll("span[".concat(fontAttribute, "=").concat(fontName, "]"));
87
+ var _iteratorNormalCompletion3 = true;
88
+ var _didIteratorError3 = false;
89
+ var _iteratorError3 = undefined;
90
+
91
+ try {
92
+ for (var _iterator3 = divs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
93
+ var div = _step3.value;
94
+ div.className = show ? 'debuggerShowText' : 'debuggerHideText';
95
+ }
96
+ } catch (err) {
97
+ _didIteratorError3 = true;
98
+ _iteratorError3 = err;
99
+ } finally {
100
+ try {
101
+ if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
102
+ _iterator3["return"]();
103
+ }
104
+ } finally {
105
+ if (_didIteratorError3) {
106
+ throw _iteratorError3;
107
+ }
108
+ }
49
109
  }
50
110
  }
111
+
51
112
  function textLayerClick(e) {
52
- if (!e.target.dataset.fontName || e.target.tagName.toUpperCase() !== 'DIV') {
113
+ if (!e.target.dataset.fontName || e.target.tagName.toUpperCase() !== 'SPAN') {
53
114
  return;
54
115
  }
116
+
55
117
  var fontName = e.target.dataset.fontName;
56
118
  var selects = document.getElementsByTagName('input');
119
+
57
120
  for (var i = 0; i < selects.length; ++i) {
58
121
  var select = selects[i];
122
+
59
123
  if (select.dataset.fontName !== fontName) {
60
124
  continue;
61
125
  }
126
+
62
127
  select.checked = !select.checked;
63
128
  selectFont(fontName, select.checked);
64
129
  select.scrollIntoView();
65
130
  }
66
131
  }
132
+
67
133
  return {
68
134
  id: 'FontInspector',
69
135
  name: 'Font Inspector',
@@ -78,16 +144,20 @@ var FontInspector = function FontInspectorClosure() {
78
144
  panel.appendChild(tmp);
79
145
  fonts = document.createElement('div');
80
146
  panel.appendChild(fonts);
147
+ createObjectURL = pdfjsLib.createObjectURL;
81
148
  },
82
149
  cleanup: function cleanup() {
83
150
  fonts.textContent = '';
84
151
  },
85
152
  enabled: false,
153
+
86
154
  get active() {
87
155
  return active;
88
156
  },
157
+
89
158
  set active(value) {
90
159
  active = value;
160
+
91
161
  if (active) {
92
162
  document.body.addEventListener('click', textLayerClick, true);
93
163
  resetSelection();
@@ -96,11 +166,13 @@ var FontInspector = function FontInspectorClosure() {
96
166
  removeSelection();
97
167
  }
98
168
  },
169
+
99
170
  fontAdded: function fontAdded(fontObj, url) {
100
171
  var _this = this;
101
172
 
102
173
  function properties(obj, list) {
103
174
  var moreInfo = document.createElement('table');
175
+
104
176
  for (var i = 0; i < list.length; i++) {
105
177
  var tr = document.createElement('tr');
106
178
  var td1 = document.createElement('td');
@@ -111,21 +183,24 @@ var FontInspector = function FontInspectorClosure() {
111
183
  tr.appendChild(td2);
112
184
  moreInfo.appendChild(tr);
113
185
  }
186
+
114
187
  return moreInfo;
115
188
  }
189
+
116
190
  var moreInfo = properties(fontObj, ['name', 'type']);
117
191
  var fontName = fontObj.loadedName;
118
192
  var font = document.createElement('div');
119
193
  var name = document.createElement('span');
120
194
  name.textContent = fontName;
121
195
  var download = document.createElement('a');
196
+
122
197
  if (url) {
123
198
  url = /url\(['"]?([^\)"']+)/.exec(url);
124
199
  download.href = url[1];
125
200
  } else if (fontObj.data) {
126
- url = URL.createObjectURL(new Blob([fontObj.data], { type: fontObj.mimeType }));
127
- download.href = url;
201
+ download.href = createObjectURL(fontObj.data, fontObj.mimeType);
128
202
  }
203
+
129
204
  download.textContent = 'Download';
130
205
  var logIt = document.createElement('a');
131
206
  logIt.href = '';
@@ -158,7 +233,9 @@ var FontInspector = function FontInspectorClosure() {
158
233
  }
159
234
  };
160
235
  }();
236
+
161
237
  var opMap;
238
+
162
239
  var StepperManager = function StepperManagerClosure() {
163
240
  var steppers = [];
164
241
  var stepperDiv = null;
@@ -182,10 +259,13 @@ var StepperManager = function StepperManagerClosure() {
182
259
  stepperDiv = document.createElement('div');
183
260
  this.panel.appendChild(stepperControls);
184
261
  this.panel.appendChild(stepperDiv);
262
+
185
263
  if (sessionStorage.getItem('pdfjsBreakPoints')) {
186
264
  breakPoints = JSON.parse(sessionStorage.getItem('pdfjsBreakPoints'));
187
265
  }
266
+
188
267
  opMap = Object.create(null);
268
+
189
269
  for (var key in pdfjsLib.OPS) {
190
270
  opMap[pdfjsLib.OPS[key]] = key;
191
271
  }
@@ -210,26 +290,33 @@ var StepperManager = function StepperManagerClosure() {
210
290
  var initBreakPoints = breakPoints[pageIndex] || [];
211
291
  var stepper = new Stepper(debug, pageIndex, initBreakPoints);
212
292
  steppers.push(stepper);
293
+
213
294
  if (steppers.length === 1) {
214
295
  this.selectStepper(pageIndex, false);
215
296
  }
297
+
216
298
  return stepper;
217
299
  },
218
300
  selectStepper: function selectStepper(pageIndex, selectPanel) {
219
301
  var i;
220
302
  pageIndex = pageIndex | 0;
303
+
221
304
  if (selectPanel) {
222
305
  this.manager.selectPanel(this);
223
306
  }
307
+
224
308
  for (i = 0; i < steppers.length; ++i) {
225
309
  var stepper = steppers[i];
310
+
226
311
  if (stepper.pageIndex === pageIndex) {
227
312
  stepper.panel.removeAttribute('hidden');
228
313
  } else {
229
314
  stepper.panel.setAttribute('hidden', true);
230
315
  }
231
316
  }
317
+
232
318
  var options = stepperChooser.options;
319
+
233
320
  for (i = 0; i < options.length; ++i) {
234
321
  var option = options[i];
235
322
  option.selected = (option.value | 0) === pageIndex;
@@ -241,41 +328,54 @@ var StepperManager = function StepperManagerClosure() {
241
328
  }
242
329
  };
243
330
  }();
331
+
244
332
  var Stepper = function StepperClosure() {
245
333
  function c(tag, textContent) {
246
334
  var d = document.createElement(tag);
335
+
247
336
  if (textContent) {
248
337
  d.textContent = textContent;
249
338
  }
339
+
250
340
  return d;
251
341
  }
342
+
252
343
  function simplifyArgs(args) {
253
344
  if (typeof args === 'string') {
254
345
  var MAX_STRING_LENGTH = 75;
255
- return args.length <= MAX_STRING_LENGTH ? args : args.substr(0, MAX_STRING_LENGTH) + '...';
346
+ return args.length <= MAX_STRING_LENGTH ? args : args.substring(0, MAX_STRING_LENGTH) + '...';
256
347
  }
257
- if ((typeof args === 'undefined' ? 'undefined' : _typeof(args)) !== 'object' || args === null) {
348
+
349
+ if (_typeof(args) !== 'object' || args === null) {
258
350
  return args;
259
351
  }
352
+
260
353
  if ('length' in args) {
261
354
  var simpleArgs = [],
262
355
  i,
263
356
  ii;
264
357
  var MAX_ITEMS = 10;
358
+
265
359
  for (i = 0, ii = Math.min(MAX_ITEMS, args.length); i < ii; i++) {
266
360
  simpleArgs.push(simplifyArgs(args[i]));
267
361
  }
362
+
268
363
  if (i < args.length) {
269
364
  simpleArgs.push('...');
270
365
  }
366
+
271
367
  return simpleArgs;
272
368
  }
369
+
273
370
  var simpleObj = {};
371
+
274
372
  for (var key in args) {
275
373
  simpleObj[key] = simplifyArgs(args[key]);
276
374
  }
375
+
277
376
  return simpleObj;
278
377
  }
378
+
279
379
  function Stepper(panel, pageIndex, initialBreakPoints) {
280
380
  this.panel = panel;
281
381
  this.breakPoint = 0;
@@ -285,6 +385,7 @@ var Stepper = function StepperClosure() {
285
385
  this.currentIdx = -1;
286
386
  this.operatorListIdx = 0;
287
387
  }
388
+
288
389
  Stepper.prototype = {
289
390
  init: function init(operatorList) {
290
391
  var panel = this.panel;
@@ -304,21 +405,28 @@ var Stepper = function StepperClosure() {
304
405
  },
305
406
  updateOperatorList: function updateOperatorList(operatorList) {
306
407
  var self = this;
408
+
307
409
  function cboxOnClick() {
308
410
  var x = +this.dataset.idx;
411
+
309
412
  if (this.checked) {
310
413
  self.breakPoints.push(x);
311
414
  } else {
312
415
  self.breakPoints.splice(self.breakPoints.indexOf(x), 1);
313
416
  }
417
+
314
418
  StepperManager.saveBreakPoints(self.pageIndex, self.breakPoints);
315
419
  }
420
+
316
421
  var MAX_OPERATORS_COUNT = 15000;
422
+
317
423
  if (this.operatorListIdx > MAX_OPERATORS_COUNT) {
318
424
  return;
319
425
  }
426
+
320
427
  var chunk = document.createDocumentFragment();
321
428
  var operatorsToDisplay = Math.min(MAX_OPERATORS_COUNT, operatorList.fnArray.length);
429
+
322
430
  for (var i = this.operatorListIdx; i < operatorsToDisplay; i++) {
323
431
  var line = c('tr');
324
432
  line.className = 'line';
@@ -338,36 +446,45 @@ var Stepper = function StepperClosure() {
338
446
  line.appendChild(c('td', i.toString()));
339
447
  var fn = opMap[operatorList.fnArray[i]];
340
448
  var decArgs = args;
449
+
341
450
  if (fn === 'showText') {
342
451
  var glyphs = args[0];
343
452
  var newArgs = [];
344
453
  var str = [];
454
+
345
455
  for (var j = 0; j < glyphs.length; j++) {
346
456
  var glyph = glyphs[j];
347
- if ((typeof glyph === 'undefined' ? 'undefined' : _typeof(glyph)) === 'object' && glyph !== null) {
457
+
458
+ if (_typeof(glyph) === 'object' && glyph !== null) {
348
459
  str.push(glyph.fontChar);
349
460
  } else {
350
461
  if (str.length > 0) {
351
462
  newArgs.push(str.join(''));
352
463
  str = [];
353
464
  }
465
+
354
466
  newArgs.push(glyph);
355
467
  }
356
468
  }
469
+
357
470
  if (str.length > 0) {
358
471
  newArgs.push(str.join(''));
359
472
  }
473
+
360
474
  decArgs = [newArgs];
361
475
  }
476
+
362
477
  line.appendChild(c('td', fn));
363
478
  line.appendChild(c('td', JSON.stringify(simplifyArgs(decArgs))));
364
479
  }
480
+
365
481
  if (operatorsToDisplay < operatorList.fnArray.length) {
366
482
  line = c('tr');
367
483
  var lastCell = c('td', '...');
368
484
  lastCell.colspan = 4;
369
485
  chunk.appendChild(lastCell);
370
486
  }
487
+
371
488
  this.operatorListIdx = operatorList.fnArray.length;
372
489
  this.table.appendChild(chunk);
373
490
  },
@@ -375,11 +492,13 @@ var Stepper = function StepperClosure() {
375
492
  this.breakPoints.sort(function (a, b) {
376
493
  return a - b;
377
494
  });
495
+
378
496
  for (var i = 0; i < this.breakPoints.length; i++) {
379
497
  if (this.breakPoints[i] > this.currentIdx) {
380
498
  return this.breakPoints[i];
381
499
  }
382
500
  }
501
+
383
502
  return null;
384
503
  },
385
504
  breakIt: function breakIt(idx, callback) {
@@ -387,6 +506,7 @@ var Stepper = function StepperClosure() {
387
506
  var self = this;
388
507
  var dom = document;
389
508
  self.currentIdx = idx;
509
+
390
510
  var listener = function listener(e) {
391
511
  switch (e.keyCode) {
392
512
  case 83:
@@ -395,6 +515,7 @@ var Stepper = function StepperClosure() {
395
515
  self.goTo(-1);
396
516
  callback();
397
517
  break;
518
+
398
519
  case 67:
399
520
  dom.removeEventListener('keydown', listener);
400
521
  var breakPoint = self.getNextBreakPoint();
@@ -404,13 +525,16 @@ var Stepper = function StepperClosure() {
404
525
  break;
405
526
  }
406
527
  };
528
+
407
529
  dom.addEventListener('keydown', listener);
408
530
  self.goTo(idx);
409
531
  },
410
532
  goTo: function goTo(idx) {
411
533
  var allRows = this.panel.getElementsByClassName('line');
534
+
412
535
  for (var x = 0, xx = allRows.length; x < xx; ++x) {
413
536
  var row = allRows[x];
537
+
414
538
  if ((row.dataset.idx | 0) === idx) {
415
539
  row.style.backgroundColor = 'rgb(251,250,207)';
416
540
  row.scrollIntoView();
@@ -422,21 +546,26 @@ var Stepper = function StepperClosure() {
422
546
  };
423
547
  return Stepper;
424
548
  }();
549
+
425
550
  var Stats = function Stats() {
426
551
  var stats = [];
552
+
427
553
  function clear(node) {
428
554
  while (node.hasChildNodes()) {
429
555
  node.removeChild(node.lastChild);
430
556
  }
431
557
  }
558
+
432
559
  function getStatIndex(pageNumber) {
433
560
  for (var i = 0, ii = stats.length; i < ii; ++i) {
434
561
  if (stats[i].pageNumber === pageNumber) {
435
562
  return i;
436
563
  }
437
564
  }
565
+
438
566
  return false;
439
567
  }
568
+
440
569
  return {
441
570
  id: 'Stats',
442
571
  name: 'Stats',
@@ -445,19 +574,21 @@ var Stats = function Stats() {
445
574
  init: function init(pdfjsLib) {
446
575
  this.panel.setAttribute('style', 'padding: 5px;');
447
576
  },
448
-
449
577
  enabled: false,
450
578
  active: false,
451
579
  add: function add(pageNumber, stat) {
452
580
  if (!stat) {
453
581
  return;
454
582
  }
583
+
455
584
  var statsIndex = getStatIndex(pageNumber);
585
+
456
586
  if (statsIndex !== false) {
457
587
  var b = stats[statsIndex];
458
588
  this.panel.removeChild(b.div);
459
589
  stats.splice(statsIndex, 1);
460
590
  }
591
+
461
592
  var wrapper = document.createElement('div');
462
593
  wrapper.className = 'stats';
463
594
  var title = document.createElement('div');
@@ -475,6 +606,7 @@ var Stats = function Stats() {
475
606
  return a.pageNumber - b.pageNumber;
476
607
  });
477
608
  clear(this.panel);
609
+
478
610
  for (var i = 0, ii = stats.length; i < ii; ++i) {
479
611
  this.panel.appendChild(stats[i].div);
480
612
  }
@@ -485,6 +617,7 @@ var Stats = function Stats() {
485
617
  }
486
618
  };
487
619
  }();
620
+
488
621
  window.PDFBug = function PDFBugClosure() {
489
622
  var panelWidth = 300;
490
623
  var buttons = [];
@@ -494,15 +627,19 @@ window.PDFBug = function PDFBugClosure() {
494
627
  enable: function enable(ids) {
495
628
  var all = false,
496
629
  tools = this.tools;
630
+
497
631
  if (ids.length === 1 && ids[0] === 'all') {
498
632
  all = true;
499
633
  }
634
+
500
635
  for (var i = 0; i < tools.length; ++i) {
501
636
  var tool = tools[i];
637
+
502
638
  if (all || ids.includes(tool.id)) {
503
639
  tool.enabled = true;
504
640
  }
505
641
  }
642
+
506
643
  if (!all) {
507
644
  tools.sort(function (a, b) {
508
645
  var indexA = ids.indexOf(a.id);
@@ -526,6 +663,7 @@ window.PDFBug = function PDFBugClosure() {
526
663
  container.style.right = panelWidth + 'px';
527
664
  var tools = this.tools;
528
665
  var self = this;
666
+
529
667
  for (var i = 0; i < tools.length; ++i) {
530
668
  var tool = tools[i];
531
669
  var panel = document.createElement('div');
@@ -541,13 +679,16 @@ window.PDFBug = function PDFBugClosure() {
541
679
  panels.appendChild(panel);
542
680
  tool.panel = panel;
543
681
  tool.manager = this;
682
+
544
683
  if (tool.enabled) {
545
684
  tool.init(pdfjsLib);
546
685
  } else {
547
686
  panel.textContent = tool.name + ' is disabled. To enable add ' + ' "' + tool.id + '" to the pdfBug parameter ' + 'and refresh (separate multiple by commas).';
548
687
  }
688
+
549
689
  buttons.push(panelButton);
550
690
  }
691
+
551
692
  this.selectPanel(0);
552
693
  },
553
694
  cleanup: function cleanup() {
@@ -561,11 +702,14 @@ window.PDFBug = function PDFBugClosure() {
561
702
  if (typeof index !== 'number') {
562
703
  index = this.tools.indexOf(index);
563
704
  }
705
+
564
706
  if (index === activePanel) {
565
707
  return;
566
708
  }
709
+
567
710
  activePanel = index;
568
711
  var tools = this.tools;
712
+
569
713
  for (var j = 0; j < tools.length; ++j) {
570
714
  if (j === index) {
571
715
  buttons[j].setAttribute('class', 'active');
@@ -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,40 +19,49 @@
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.DownloadManager = undefined;
27
+ exports.DownloadManager = void 0;
28
28
 
29
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
30
-
31
- var _pdf = require('../pdf');
29
+ var _pdf = require("../pdf");
32
30
 
33
31
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
34
32
 
33
+ 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); } }
34
+
35
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
36
+
35
37
  ;
36
38
  var DISABLE_CREATE_OBJECT_URL = _pdf.apiCompatibilityParams.disableCreateObjectURL || false;
39
+
37
40
  function _download(blobUrl, filename) {
38
41
  var a = document.createElement('a');
42
+
39
43
  if (!a.click) {
40
44
  throw new Error('DownloadManager: "a.click()" is not supported.');
41
45
  }
46
+
42
47
  a.href = blobUrl;
43
48
  a.target = '_parent';
49
+
44
50
  if ('download' in a) {
45
51
  a.download = filename;
46
52
  }
53
+
47
54
  (document.body || document.documentElement).appendChild(a);
48
55
  a.click();
49
56
  a.remove();
50
57
  }
51
58
 
52
- var DownloadManager = function () {
59
+ var DownloadManager =
60
+ /*#__PURE__*/
61
+ function () {
53
62
  function DownloadManager(_ref) {
54
63
  var _ref$disableCreateObj = _ref.disableCreateObjectURL,
55
- disableCreateObjectURL = _ref$disableCreateObj === undefined ? DISABLE_CREATE_OBJECT_URL : _ref$disableCreateObj;
64
+ disableCreateObjectURL = _ref$disableCreateObj === void 0 ? DISABLE_CREATE_OBJECT_URL : _ref$disableCreateObj;
56
65
 
57
66
  _classCallCheck(this, DownloadManager);
58
67
 
@@ -60,36 +69,46 @@ var DownloadManager = function () {
60
69
  }
61
70
 
62
71
  _createClass(DownloadManager, [{
63
- key: 'downloadUrl',
72
+ key: "downloadUrl",
64
73
  value: function downloadUrl(url, filename) {
65
74
  if (!(0, _pdf.createValidAbsoluteUrl)(url, 'http://example.com')) {
66
75
  return;
67
76
  }
77
+
68
78
  _download(url + '#pdfjs.action=download', filename);
69
79
  }
70
80
  }, {
71
- key: 'downloadData',
81
+ key: "downloadData",
72
82
  value: function downloadData(data, filename, contentType) {
73
83
  if (navigator.msSaveBlob) {
74
- return navigator.msSaveBlob(new Blob([data], { type: contentType }), filename);
84
+ navigator.msSaveBlob(new Blob([data], {
85
+ type: contentType
86
+ }), filename);
87
+ return;
75
88
  }
89
+
76
90
  var blobUrl = (0, _pdf.createObjectURL)(data, contentType, this.disableCreateObjectURL);
91
+
77
92
  _download(blobUrl, filename);
78
93
  }
79
94
  }, {
80
- key: 'download',
95
+ key: "download",
81
96
  value: function download(blob, url, filename) {
82
97
  if (navigator.msSaveBlob) {
83
98
  if (!navigator.msSaveBlob(blob, filename)) {
84
99
  this.downloadUrl(url, filename);
85
100
  }
101
+
86
102
  return;
87
103
  }
104
+
88
105
  if (this.disableCreateObjectURL) {
89
106
  this.downloadUrl(url, filename);
90
107
  return;
91
108
  }
92
- var blobUrl = URL.createObjectURL(blob);
109
+
110
+ var blobUrl = _pdf.URL.createObjectURL(blob);
111
+
93
112
  _download(blobUrl, filename);
94
113
  }
95
114
  }]);