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,22 +19,26 @@
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.PDFOutlineViewer = undefined;
27
+ exports.PDFOutlineViewer = 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
 
35
- var DEFAULT_TITLE = '\u2013';
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
+
37
+ var DEFAULT_TITLE = "\u2013";
36
38
 
37
- var PDFOutlineViewer = function () {
39
+ var PDFOutlineViewer =
40
+ /*#__PURE__*/
41
+ function () {
38
42
  function PDFOutlineViewer(_ref) {
39
43
  var container = _ref.container,
40
44
  linkService = _ref.linkService,
@@ -46,10 +50,11 @@ var PDFOutlineViewer = function () {
46
50
  this.linkService = linkService;
47
51
  this.eventBus = eventBus;
48
52
  this.reset();
53
+ eventBus.on('toggleoutlinetree', this.toggleOutlineTree.bind(this));
49
54
  }
50
55
 
51
56
  _createClass(PDFOutlineViewer, [{
52
- key: 'reset',
57
+ key: "reset",
53
58
  value: function reset() {
54
59
  this.outline = null;
55
60
  this.lastToggleIsShow = true;
@@ -57,7 +62,7 @@ var PDFOutlineViewer = function () {
57
62
  this.container.classList.remove('outlineWithDeepNesting');
58
63
  }
59
64
  }, {
60
- key: '_dispatchEvent',
65
+ key: "_dispatchEvent",
61
66
  value: function _dispatchEvent(outlineCount) {
62
67
  this.eventBus.dispatch('outlineloaded', {
63
68
  source: this,
@@ -65,7 +70,7 @@ var PDFOutlineViewer = function () {
65
70
  });
66
71
  }
67
72
  }, {
68
- key: '_bindLink',
73
+ key: "_bindLink",
69
74
  value: function _bindLink(element, _ref2) {
70
75
  var url = _ref2.url,
71
76
  newWindow = _ref2.newWindow,
@@ -76,119 +81,191 @@ var PDFOutlineViewer = function () {
76
81
  (0, _pdf.addLinkAttributes)(element, {
77
82
  url: url,
78
83
  target: newWindow ? _pdf.LinkTarget.BLANK : linkService.externalLinkTarget,
79
- rel: linkService.externalLinkRel
84
+ rel: linkService.externalLinkRel,
85
+ enabled: linkService.externalLinkEnabled
80
86
  });
81
87
  return;
82
88
  }
89
+
83
90
  element.href = linkService.getDestinationHash(dest);
91
+
84
92
  element.onclick = function () {
85
93
  if (dest) {
86
94
  linkService.navigateTo(dest);
87
95
  }
96
+
88
97
  return false;
89
98
  };
90
99
  }
91
100
  }, {
92
- key: '_setStyles',
101
+ key: "_setStyles",
93
102
  value: function _setStyles(element, _ref3) {
94
103
  var bold = _ref3.bold,
95
104
  italic = _ref3.italic;
96
-
97
105
  var styleStr = '';
106
+
98
107
  if (bold) {
99
108
  styleStr += 'font-weight: bold;';
100
109
  }
110
+
101
111
  if (italic) {
102
112
  styleStr += 'font-style: italic;';
103
113
  }
114
+
104
115
  if (styleStr) {
105
116
  element.setAttribute('style', styleStr);
106
117
  }
107
118
  }
108
119
  }, {
109
- key: '_addToggleButton',
110
- value: function _addToggleButton(div) {
120
+ key: "_addToggleButton",
121
+ value: function _addToggleButton(div, _ref4) {
111
122
  var _this = this;
112
123
 
124
+ var count = _ref4.count,
125
+ items = _ref4.items;
113
126
  var toggler = document.createElement('div');
114
127
  toggler.className = 'outlineItemToggler';
128
+
129
+ if (count < 0 && Math.abs(count) === items.length) {
130
+ toggler.classList.add('outlineItemsHidden');
131
+ }
132
+
115
133
  toggler.onclick = function (evt) {
116
134
  evt.stopPropagation();
117
135
  toggler.classList.toggle('outlineItemsHidden');
136
+
118
137
  if (evt.shiftKey) {
119
138
  var shouldShowAll = !toggler.classList.contains('outlineItemsHidden');
139
+
120
140
  _this._toggleOutlineItem(div, shouldShowAll);
121
141
  }
122
142
  };
143
+
123
144
  div.insertBefore(toggler, div.firstChild);
124
145
  }
125
146
  }, {
126
- key: '_toggleOutlineItem',
127
- value: function _toggleOutlineItem(root, show) {
147
+ key: "_toggleOutlineItem",
148
+ value: function _toggleOutlineItem(root) {
149
+ var show = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
128
150
  this.lastToggleIsShow = show;
129
- var togglers = root.querySelectorAll('.outlineItemToggler');
130
- for (var i = 0, ii = togglers.length; i < ii; ++i) {
131
- togglers[i].classList[show ? 'remove' : 'add']('outlineItemsHidden');
151
+ var _iteratorNormalCompletion = true;
152
+ var _didIteratorError = false;
153
+ var _iteratorError = undefined;
154
+
155
+ try {
156
+ for (var _iterator = root.querySelectorAll('.outlineItemToggler')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
157
+ var toggler = _step.value;
158
+ toggler.classList.toggle('outlineItemsHidden', !show);
159
+ }
160
+ } catch (err) {
161
+ _didIteratorError = true;
162
+ _iteratorError = err;
163
+ } finally {
164
+ try {
165
+ if (!_iteratorNormalCompletion && _iterator["return"] != null) {
166
+ _iterator["return"]();
167
+ }
168
+ } finally {
169
+ if (_didIteratorError) {
170
+ throw _iteratorError;
171
+ }
172
+ }
132
173
  }
133
174
  }
134
175
  }, {
135
- key: 'toggleOutlineTree',
176
+ key: "toggleOutlineTree",
136
177
  value: function toggleOutlineTree() {
137
178
  if (!this.outline) {
138
179
  return;
139
180
  }
181
+
140
182
  this._toggleOutlineItem(this.container, !this.lastToggleIsShow);
141
183
  }
142
184
  }, {
143
- key: 'render',
144
- value: function render(_ref4) {
145
- var outline = _ref4.outline;
146
-
185
+ key: "render",
186
+ value: function render(_ref5) {
187
+ var outline = _ref5.outline;
147
188
  var outlineCount = 0;
189
+
148
190
  if (this.outline) {
149
191
  this.reset();
150
192
  }
193
+
151
194
  this.outline = outline || null;
195
+
152
196
  if (!outline) {
153
197
  this._dispatchEvent(outlineCount);
198
+
154
199
  return;
155
200
  }
201
+
156
202
  var fragment = document.createDocumentFragment();
157
203
  var queue = [{
158
204
  parent: fragment,
159
205
  items: this.outline
160
206
  }];
161
207
  var hasAnyNesting = false;
208
+
162
209
  while (queue.length > 0) {
163
210
  var levelData = queue.shift();
164
- for (var i = 0, len = levelData.items.length; i < len; i++) {
165
- var item = levelData.items[i];
166
- var div = document.createElement('div');
167
- div.className = 'outlineItem';
168
- var element = document.createElement('a');
169
- this._bindLink(element, item);
170
- this._setStyles(element, item);
171
- element.textContent = (0, _pdf.removeNullCharacters)(item.title) || DEFAULT_TITLE;
172
- div.appendChild(element);
173
- if (item.items.length > 0) {
174
- hasAnyNesting = true;
175
- this._addToggleButton(div);
176
- var itemsDiv = document.createElement('div');
177
- itemsDiv.className = 'outlineItems';
178
- div.appendChild(itemsDiv);
179
- queue.push({
180
- parent: itemsDiv,
181
- items: item.items
182
- });
211
+ var _iteratorNormalCompletion2 = true;
212
+ var _didIteratorError2 = false;
213
+ var _iteratorError2 = undefined;
214
+
215
+ try {
216
+ for (var _iterator2 = levelData.items[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
217
+ var item = _step2.value;
218
+ var div = document.createElement('div');
219
+ div.className = 'outlineItem';
220
+ var element = document.createElement('a');
221
+
222
+ this._bindLink(element, item);
223
+
224
+ this._setStyles(element, item);
225
+
226
+ element.textContent = (0, _pdf.removeNullCharacters)(item.title) || DEFAULT_TITLE;
227
+ div.appendChild(element);
228
+
229
+ if (item.items.length > 0) {
230
+ hasAnyNesting = true;
231
+
232
+ this._addToggleButton(div, item);
233
+
234
+ var itemsDiv = document.createElement('div');
235
+ itemsDiv.className = 'outlineItems';
236
+ div.appendChild(itemsDiv);
237
+ queue.push({
238
+ parent: itemsDiv,
239
+ items: item.items
240
+ });
241
+ }
242
+
243
+ levelData.parent.appendChild(div);
244
+ outlineCount++;
245
+ }
246
+ } catch (err) {
247
+ _didIteratorError2 = true;
248
+ _iteratorError2 = err;
249
+ } finally {
250
+ try {
251
+ if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
252
+ _iterator2["return"]();
253
+ }
254
+ } finally {
255
+ if (_didIteratorError2) {
256
+ throw _iteratorError2;
257
+ }
183
258
  }
184
- levelData.parent.appendChild(div);
185
- outlineCount++;
186
259
  }
187
260
  }
261
+
188
262
  if (hasAnyNesting) {
189
263
  this.container.classList.add('outlineWithDeepNesting');
264
+ this.lastToggleIsShow = fragment.querySelectorAll('.outlineItemsHidden').length === 0;
190
265
  }
266
+
191
267
  this.container.appendChild(fragment);
268
+
192
269
  this._dispatchEvent(outlineCount);
193
270
  }
194
271
  }]);