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,26 +19,33 @@
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.PDFFindBar = undefined;
27
+ exports.PDFFindBar = 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; }; }();
29
+ var _ui_utils = require("./ui_utils");
30
30
 
31
- var _pdf_find_controller = require('./pdf_find_controller');
32
-
33
- var _ui_utils = require('./ui_utils');
31
+ var _pdf_find_controller = require("./pdf_find_controller");
34
32
 
35
33
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
36
34
 
37
- var PDFFindBar = function () {
35
+ 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
+
37
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
38
+
39
+ var MATCHES_COUNT_LIMIT = 1000;
40
+
41
+ var PDFFindBar =
42
+ /*#__PURE__*/
43
+ function () {
38
44
  function PDFFindBar(options) {
39
45
  var _this = this;
40
46
 
41
- var l10n = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _ui_utils.NullL10n;
47
+ var eventBus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0, _ui_utils.getGlobalEventBus)();
48
+ var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n;
42
49
 
43
50
  _classCallCheck(this, PDFFindBar);
44
51
 
@@ -48,17 +55,13 @@ var PDFFindBar = function () {
48
55
  this.findField = options.findField || null;
49
56
  this.highlightAll = options.highlightAllCheckbox || null;
50
57
  this.caseSensitive = options.caseSensitiveCheckbox || null;
58
+ this.entireWord = options.entireWordCheckbox || null;
51
59
  this.findMsg = options.findMsg || null;
52
60
  this.findResultsCount = options.findResultsCount || null;
53
- this.findStatusIcon = options.findStatusIcon || null;
54
61
  this.findPreviousButton = options.findPreviousButton || null;
55
62
  this.findNextButton = options.findNextButton || null;
56
- this.findController = options.findController || null;
57
- this.eventBus = options.eventBus;
63
+ this.eventBus = eventBus;
58
64
  this.l10n = l10n;
59
- if (this.findController === null) {
60
- throw new Error('PDFFindBar cannot be used without a ' + 'PDFFindController instance.');
61
- }
62
65
  this.toggleButton.addEventListener('click', function () {
63
66
  _this.toggle();
64
67
  });
@@ -71,9 +74,12 @@ var PDFFindBar = function () {
71
74
  if (e.target === _this.findField) {
72
75
  _this.dispatchEvent('again', e.shiftKey);
73
76
  }
77
+
74
78
  break;
79
+
75
80
  case 27:
76
81
  _this.close();
82
+
77
83
  break;
78
84
  }
79
85
  });
@@ -89,105 +95,141 @@ var PDFFindBar = function () {
89
95
  this.caseSensitive.addEventListener('click', function () {
90
96
  _this.dispatchEvent('casesensitivitychange');
91
97
  });
98
+ this.entireWord.addEventListener('click', function () {
99
+ _this.dispatchEvent('entirewordchange');
100
+ });
92
101
  this.eventBus.on('resize', this._adjustWidth.bind(this));
93
102
  }
94
103
 
95
104
  _createClass(PDFFindBar, [{
96
- key: 'reset',
105
+ key: "reset",
97
106
  value: function reset() {
98
107
  this.updateUIState();
99
108
  }
100
109
  }, {
101
- key: 'dispatchEvent',
110
+ key: "dispatchEvent",
102
111
  value: function dispatchEvent(type, findPrev) {
103
112
  this.eventBus.dispatch('find', {
104
113
  source: this,
105
114
  type: type,
106
115
  query: this.findField.value,
107
- caseSensitive: this.caseSensitive.checked,
108
116
  phraseSearch: true,
117
+ caseSensitive: this.caseSensitive.checked,
118
+ entireWord: this.entireWord.checked,
109
119
  highlightAll: this.highlightAll.checked,
110
120
  findPrevious: findPrev
111
121
  });
112
122
  }
113
123
  }, {
114
- key: 'updateUIState',
115
- value: function updateUIState(state, previous, matchCount) {
124
+ key: "updateUIState",
125
+ value: function updateUIState(state, previous, matchesCount) {
116
126
  var _this2 = this;
117
127
 
118
128
  var notFound = false;
119
129
  var findMsg = '';
120
130
  var status = '';
131
+
121
132
  switch (state) {
122
133
  case _pdf_find_controller.FindState.FOUND:
123
134
  break;
135
+
124
136
  case _pdf_find_controller.FindState.PENDING:
125
137
  status = 'pending';
126
138
  break;
139
+
127
140
  case _pdf_find_controller.FindState.NOT_FOUND:
128
141
  findMsg = this.l10n.get('find_not_found', null, 'Phrase not found');
129
142
  notFound = true;
130
143
  break;
144
+
131
145
  case _pdf_find_controller.FindState.WRAPPED:
132
146
  if (previous) {
133
147
  findMsg = this.l10n.get('find_reached_top', null, 'Reached top of document, continued from bottom');
134
148
  } else {
135
149
  findMsg = this.l10n.get('find_reached_bottom', null, 'Reached end of document, continued from top');
136
150
  }
151
+
137
152
  break;
138
153
  }
139
- if (notFound) {
140
- this.findField.classList.add('notFound');
141
- } else {
142
- this.findField.classList.remove('notFound');
143
- }
154
+
155
+ this.findField.classList.toggle('notFound', notFound);
144
156
  this.findField.setAttribute('data-status', status);
145
157
  Promise.resolve(findMsg).then(function (msg) {
146
158
  _this2.findMsg.textContent = msg;
159
+
147
160
  _this2._adjustWidth();
148
161
  });
149
- this.updateResultsCount(matchCount);
162
+ this.updateResultsCount(matchesCount);
150
163
  }
151
164
  }, {
152
- key: 'updateResultsCount',
153
- value: function updateResultsCount(matchCount) {
165
+ key: "updateResultsCount",
166
+ value: function updateResultsCount() {
167
+ var _this3 = this;
168
+
169
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
170
+ _ref$current = _ref.current,
171
+ current = _ref$current === void 0 ? 0 : _ref$current,
172
+ _ref$total = _ref.total,
173
+ total = _ref$total === void 0 ? 0 : _ref$total;
174
+
154
175
  if (!this.findResultsCount) {
155
176
  return;
156
177
  }
157
- if (!matchCount) {
158
- this.findResultsCount.classList.add('hidden');
159
- this.findResultsCount.textContent = '';
160
- } else {
161
- this.findResultsCount.textContent = matchCount.toLocaleString();
162
- this.findResultsCount.classList.remove('hidden');
178
+
179
+ var matchesCountMsg = '',
180
+ limit = MATCHES_COUNT_LIMIT;
181
+
182
+ if (total > 0) {
183
+ if (total > limit) {
184
+ matchesCountMsg = this.l10n.get('find_match_count_limit', {
185
+ limit: limit
186
+ }, 'More than {{limit}} match' + (limit !== 1 ? 'es' : ''));
187
+ } else {
188
+ matchesCountMsg = this.l10n.get('find_match_count', {
189
+ current: current,
190
+ total: total
191
+ }, '{{current}} of {{total}} match' + (total !== 1 ? 'es' : ''));
192
+ }
163
193
  }
164
- this._adjustWidth();
194
+
195
+ Promise.resolve(matchesCountMsg).then(function (msg) {
196
+ _this3.findResultsCount.textContent = msg;
197
+
198
+ _this3.findResultsCount.classList.toggle('hidden', !total);
199
+
200
+ _this3._adjustWidth();
201
+ });
165
202
  }
166
203
  }, {
167
- key: 'open',
204
+ key: "open",
168
205
  value: function open() {
169
206
  if (!this.opened) {
170
207
  this.opened = true;
171
208
  this.toggleButton.classList.add('toggled');
172
209
  this.bar.classList.remove('hidden');
173
210
  }
211
+
174
212
  this.findField.select();
175
213
  this.findField.focus();
214
+
176
215
  this._adjustWidth();
177
216
  }
178
217
  }, {
179
- key: 'close',
218
+ key: "close",
180
219
  value: function close() {
181
220
  if (!this.opened) {
182
221
  return;
183
222
  }
223
+
184
224
  this.opened = false;
185
225
  this.toggleButton.classList.remove('toggled');
186
226
  this.bar.classList.add('hidden');
187
- this.findController.active = false;
227
+ this.eventBus.dispatch('findbarclose', {
228
+ source: this
229
+ });
188
230
  }
189
231
  }, {
190
- key: 'toggle',
232
+ key: "toggle",
191
233
  value: function toggle() {
192
234
  if (this.opened) {
193
235
  this.close();
@@ -196,14 +238,16 @@ var PDFFindBar = function () {
196
238
  }
197
239
  }
198
240
  }, {
199
- key: '_adjustWidth',
241
+ key: "_adjustWidth",
200
242
  value: function _adjustWidth() {
201
243
  if (!this.opened) {
202
244
  return;
203
245
  }
246
+
204
247
  this.bar.classList.remove('wrapContainers');
205
248
  var findbarHeight = this.bar.clientHeight;
206
249
  var inputContainerHeight = this.bar.firstElementChild.clientHeight;
250
+
207
251
  if (findbarHeight > inputContainerHeight) {
208
252
  this.bar.classList.add('wrapContainers');
209
253
  }