pdfjs-dist 2.0.487 → 2.1.266

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 (161) hide show
  1. package/bower.json +1 -1
  2. package/build/pdf.js +15564 -9476
  3. package/build/pdf.js.map +1 -1
  4. package/build/pdf.min.js +1 -1
  5. package/build/pdf.worker.js +46644 -36309
  6. package/build/pdf.worker.js.map +1 -1
  7. package/build/pdf.worker.min.js +1 -1
  8. package/external/url/url-lib.js +627 -0
  9. package/image_decoders/pdf.image_decoders.js +11430 -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 +406 -131
  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 +376 -53
  18. package/lib/core/charsets.js +5 -4
  19. package/lib/core/chunked_stream.js +387 -149
  20. package/lib/core/cmap.js +310 -75
  21. package/lib/core/colorspace.js +874 -594
  22. package/lib/core/crypto.js +290 -45
  23. package/lib/core/document.js +545 -260
  24. package/lib/core/encodings.js +19 -10
  25. package/lib/core/evaluator.js +725 -147
  26. package/lib/core/font_renderer.js +360 -91
  27. package/lib/core/fonts.js +791 -186
  28. package/lib/core/function.js +284 -71
  29. package/lib/core/glyphlist.js +3 -2
  30. package/lib/core/image.js +168 -61
  31. package/lib/core/jbig2.js +479 -66
  32. package/lib/core/jbig2_stream.js +19 -8
  33. package/lib/core/jpeg_stream.js +38 -13
  34. package/lib/core/jpg.js +252 -29
  35. package/lib/core/jpx.js +396 -6
  36. package/lib/core/jpx_stream.js +18 -6
  37. package/lib/core/metrics.js +4 -4
  38. package/lib/core/murmurhash3.js +24 -6
  39. package/lib/core/obj.js +1137 -475
  40. package/lib/core/operator_list.js +108 -6
  41. package/lib/core/parser.js +321 -68
  42. package/lib/core/pattern.js +145 -13
  43. package/lib/core/pdf_manager.js +321 -133
  44. package/lib/core/primitives.js +75 -22
  45. package/lib/core/ps_parser.js +134 -45
  46. package/lib/core/standard_fonts.js +10 -10
  47. package/lib/core/stream.js +313 -34
  48. package/lib/core/type1_parser.js +143 -13
  49. package/lib/core/unicode.js +31 -4
  50. package/lib/core/worker.js +210 -66
  51. package/lib/display/annotation_layer.js +361 -123
  52. package/lib/display/api.js +1454 -729
  53. package/lib/display/api_compatibility.js +11 -13
  54. package/lib/display/canvas.js +324 -29
  55. package/lib/display/content_disposition.js +83 -32
  56. package/lib/display/dom_utils.js +226 -41
  57. package/lib/display/fetch_stream.js +208 -84
  58. package/lib/display/font_loader.js +465 -236
  59. package/lib/display/metadata.js +38 -16
  60. package/lib/display/network.js +216 -51
  61. package/lib/display/network_utils.js +32 -19
  62. package/lib/display/node_stream.js +352 -169
  63. package/lib/display/pattern_helper.js +58 -7
  64. package/lib/display/svg.js +242 -29
  65. package/lib/display/text_layer.js +132 -18
  66. package/lib/display/transport_stream.js +171 -42
  67. package/lib/display/webgl.js +64 -18
  68. package/lib/display/worker_options.js +5 -4
  69. package/lib/display/xml_parser.js +166 -53
  70. package/lib/examples/node/domstubs.js +57 -4
  71. package/lib/pdf.js +21 -4
  72. package/lib/pdf.worker.js +5 -3
  73. package/lib/shared/compatibility.js +158 -564
  74. package/lib/shared/global_scope.js +2 -2
  75. package/lib/shared/is_node.js +4 -4
  76. package/lib/shared/message_handler.js +521 -0
  77. package/lib/shared/streams_polyfill.js +21 -17
  78. package/lib/shared/url_polyfill.js +56 -0
  79. package/lib/shared/util.js +295 -650
  80. package/lib/test/unit/annotation_spec.js +629 -345
  81. package/lib/test/unit/api_spec.js +555 -253
  82. package/lib/test/unit/bidi_spec.js +7 -7
  83. package/lib/test/unit/cff_parser_spec.js +40 -11
  84. package/lib/test/unit/clitests_helper.js +9 -7
  85. package/lib/test/unit/cmap_spec.js +80 -26
  86. package/lib/test/unit/colorspace_spec.js +99 -52
  87. package/lib/test/unit/crypto_spec.js +17 -5
  88. package/lib/test/unit/custom_spec.js +41 -53
  89. package/lib/test/unit/display_svg_spec.js +33 -17
  90. package/lib/test/unit/document_spec.js +3 -3
  91. package/lib/test/unit/dom_utils_spec.js +9 -9
  92. package/lib/test/unit/encodings_spec.js +25 -45
  93. package/lib/test/unit/evaluator_spec.js +34 -9
  94. package/lib/test/unit/function_spec.js +17 -5
  95. package/lib/test/unit/jasmine-boot.js +31 -18
  96. package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
  97. package/lib/test/unit/metadata_spec.js +71 -11
  98. package/lib/test/unit/murmurhash3_spec.js +3 -3
  99. package/lib/test/unit/network_spec.js +20 -5
  100. package/lib/test/unit/network_utils_spec.js +41 -14
  101. package/lib/test/unit/node_stream_spec.js +51 -27
  102. package/lib/test/unit/parser_spec.js +35 -8
  103. package/lib/test/unit/pdf_find_controller_spec.js +230 -0
  104. package/lib/test/unit/pdf_find_utils_spec.js +63 -0
  105. package/lib/test/unit/pdf_history_spec.js +21 -9
  106. package/lib/test/unit/primitives_spec.js +24 -4
  107. package/lib/test/unit/stream_spec.js +12 -4
  108. package/lib/test/unit/test_utils.js +90 -27
  109. package/lib/test/unit/testreporter.js +21 -3
  110. package/lib/test/unit/type1_parser_spec.js +8 -6
  111. package/lib/test/unit/ui_utils_spec.js +452 -14
  112. package/lib/test/unit/unicode_spec.js +14 -11
  113. package/lib/test/unit/util_spec.js +131 -9
  114. package/lib/web/annotation_layer_builder.js +39 -22
  115. package/lib/web/app.js +1240 -582
  116. package/lib/web/app_options.js +71 -41
  117. package/lib/web/base_viewer.js +508 -179
  118. package/lib/web/chromecom.js +261 -117
  119. package/lib/web/debugger.js +166 -22
  120. package/lib/web/download_manager.js +31 -13
  121. package/lib/web/firefox_print_service.js +17 -9
  122. package/lib/web/firefoxcom.js +283 -79
  123. package/lib/web/genericcom.js +89 -30
  124. package/lib/web/genericl10n.js +142 -30
  125. package/lib/web/grab_to_pan.js +26 -4
  126. package/lib/web/interfaces.js +170 -47
  127. package/lib/web/overlay_manager.js +235 -85
  128. package/lib/web/password_prompt.js +21 -13
  129. package/lib/web/pdf_attachment_viewer.js +38 -18
  130. package/lib/web/pdf_cursor_tools.js +39 -16
  131. package/lib/web/pdf_document_properties.js +80 -30
  132. package/lib/web/pdf_find_bar.js +84 -40
  133. package/lib/web/pdf_find_controller.js +495 -184
  134. package/lib/web/pdf_find_utils.js +111 -0
  135. package/lib/web/pdf_history.js +190 -53
  136. package/lib/web/pdf_link_service.js +137 -76
  137. package/lib/web/pdf_outline_viewer.js +73 -22
  138. package/lib/web/pdf_page_view.js +196 -63
  139. package/lib/web/pdf_presentation_mode.js +99 -34
  140. package/lib/web/pdf_print_service.js +57 -11
  141. package/lib/web/pdf_rendering_queue.js +27 -5
  142. package/lib/web/pdf_sidebar.js +120 -67
  143. package/lib/web/pdf_sidebar_resizer.js +42 -16
  144. package/lib/web/pdf_single_page_viewer.js +74 -66
  145. package/lib/web/pdf_thumbnail_view.js +103 -32
  146. package/lib/web/pdf_thumbnail_viewer.js +64 -24
  147. package/lib/web/pdf_viewer.component.js +112 -32
  148. package/lib/web/pdf_viewer.js +91 -52
  149. package/lib/web/preferences.js +275 -80
  150. package/lib/web/secondary_toolbar.js +165 -40
  151. package/lib/web/text_layer_builder.js +162 -65
  152. package/lib/web/toolbar.js +78 -43
  153. package/lib/web/ui_utils.js +462 -136
  154. package/lib/web/view_history.js +215 -67
  155. package/lib/web/viewer_compatibility.js +4 -13
  156. package/package.json +5 -4
  157. package/web/pdf_viewer.css +58 -1
  158. package/web/pdf_viewer.js +6346 -3919
  159. package/web/pdf_viewer.js.map +1 -1
  160. package/lib/test/unit/fonts_spec.js +0 -81
  161. 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 2018 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
  }