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.
@@ -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,
@@ -80,115 +85,186 @@ var PDFOutlineViewer = function () {
80
85
  });
81
86
  return;
82
87
  }
88
+
83
89
  element.href = linkService.getDestinationHash(dest);
90
+
84
91
  element.onclick = function () {
85
92
  if (dest) {
86
93
  linkService.navigateTo(dest);
87
94
  }
95
+
88
96
  return false;
89
97
  };
90
98
  }
91
99
  }, {
92
- key: '_setStyles',
100
+ key: "_setStyles",
93
101
  value: function _setStyles(element, _ref3) {
94
102
  var bold = _ref3.bold,
95
103
  italic = _ref3.italic;
96
-
97
104
  var styleStr = '';
105
+
98
106
  if (bold) {
99
107
  styleStr += 'font-weight: bold;';
100
108
  }
109
+
101
110
  if (italic) {
102
111
  styleStr += 'font-style: italic;';
103
112
  }
113
+
104
114
  if (styleStr) {
105
115
  element.setAttribute('style', styleStr);
106
116
  }
107
117
  }
108
118
  }, {
109
- key: '_addToggleButton',
110
- value: function _addToggleButton(div) {
119
+ key: "_addToggleButton",
120
+ value: function _addToggleButton(div, _ref4) {
111
121
  var _this = this;
112
122
 
123
+ var count = _ref4.count,
124
+ items = _ref4.items;
113
125
  var toggler = document.createElement('div');
114
126
  toggler.className = 'outlineItemToggler';
127
+
128
+ if (count < 0 && Math.abs(count) === items.length) {
129
+ toggler.classList.add('outlineItemsHidden');
130
+ }
131
+
115
132
  toggler.onclick = function (evt) {
116
133
  evt.stopPropagation();
117
134
  toggler.classList.toggle('outlineItemsHidden');
135
+
118
136
  if (evt.shiftKey) {
119
137
  var shouldShowAll = !toggler.classList.contains('outlineItemsHidden');
138
+
120
139
  _this._toggleOutlineItem(div, shouldShowAll);
121
140
  }
122
141
  };
142
+
123
143
  div.insertBefore(toggler, div.firstChild);
124
144
  }
125
145
  }, {
126
- key: '_toggleOutlineItem',
127
- value: function _toggleOutlineItem(root, show) {
146
+ key: "_toggleOutlineItem",
147
+ value: function _toggleOutlineItem(root) {
148
+ var show = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
128
149
  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');
150
+ var _iteratorNormalCompletion = true;
151
+ var _didIteratorError = false;
152
+ var _iteratorError = undefined;
153
+
154
+ try {
155
+ for (var _iterator = root.querySelectorAll('.outlineItemToggler')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
156
+ var toggler = _step.value;
157
+ toggler.classList.toggle('outlineItemsHidden', !show);
158
+ }
159
+ } catch (err) {
160
+ _didIteratorError = true;
161
+ _iteratorError = err;
162
+ } finally {
163
+ try {
164
+ if (!_iteratorNormalCompletion && _iterator["return"] != null) {
165
+ _iterator["return"]();
166
+ }
167
+ } finally {
168
+ if (_didIteratorError) {
169
+ throw _iteratorError;
170
+ }
171
+ }
132
172
  }
133
173
  }
134
174
  }, {
135
- key: 'toggleOutlineTree',
175
+ key: "toggleOutlineTree",
136
176
  value: function toggleOutlineTree() {
137
177
  if (!this.outline) {
138
178
  return;
139
179
  }
180
+
140
181
  this._toggleOutlineItem(this.container, !this.lastToggleIsShow);
141
182
  }
142
183
  }, {
143
- key: 'render',
144
- value: function render(_ref4) {
145
- var outline = _ref4.outline;
146
-
184
+ key: "render",
185
+ value: function render(_ref5) {
186
+ var outline = _ref5.outline;
147
187
  var outlineCount = 0;
188
+
148
189
  if (this.outline) {
149
190
  this.reset();
150
191
  }
192
+
151
193
  this.outline = outline || null;
194
+
152
195
  if (!outline) {
153
196
  this._dispatchEvent(outlineCount);
197
+
154
198
  return;
155
199
  }
200
+
156
201
  var fragment = document.createDocumentFragment();
157
202
  var queue = [{
158
203
  parent: fragment,
159
204
  items: this.outline
160
205
  }];
161
206
  var hasAnyNesting = false;
207
+
162
208
  while (queue.length > 0) {
163
209
  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
- });
210
+ var _iteratorNormalCompletion2 = true;
211
+ var _didIteratorError2 = false;
212
+ var _iteratorError2 = undefined;
213
+
214
+ try {
215
+ for (var _iterator2 = levelData.items[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
216
+ var item = _step2.value;
217
+ var div = document.createElement('div');
218
+ div.className = 'outlineItem';
219
+ var element = document.createElement('a');
220
+
221
+ this._bindLink(element, item);
222
+
223
+ this._setStyles(element, item);
224
+
225
+ element.textContent = (0, _pdf.removeNullCharacters)(item.title) || DEFAULT_TITLE;
226
+ div.appendChild(element);
227
+
228
+ if (item.items.length > 0) {
229
+ hasAnyNesting = true;
230
+
231
+ this._addToggleButton(div, item);
232
+
233
+ var itemsDiv = document.createElement('div');
234
+ itemsDiv.className = 'outlineItems';
235
+ div.appendChild(itemsDiv);
236
+ queue.push({
237
+ parent: itemsDiv,
238
+ items: item.items
239
+ });
240
+ }
241
+
242
+ levelData.parent.appendChild(div);
243
+ outlineCount++;
244
+ }
245
+ } catch (err) {
246
+ _didIteratorError2 = true;
247
+ _iteratorError2 = err;
248
+ } finally {
249
+ try {
250
+ if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
251
+ _iterator2["return"]();
252
+ }
253
+ } finally {
254
+ if (_didIteratorError2) {
255
+ throw _iteratorError2;
256
+ }
183
257
  }
184
- levelData.parent.appendChild(div);
185
- outlineCount++;
186
258
  }
187
259
  }
260
+
188
261
  if (hasAnyNesting) {
189
262
  this.container.classList.add('outlineWithDeepNesting');
263
+ this.lastToggleIsShow = fragment.querySelectorAll('.outlineItemsHidden').length === 0;
190
264
  }
265
+
191
266
  this.container.appendChild(fragment);
267
+
192
268
  this._dispatchEvent(outlineCount);
193
269
  }
194
270
  }]);