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,62 +19,69 @@
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.Toolbar = undefined;
27
+ exports.Toolbar = 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 _ui_utils = require('./ui_utils');
29
+ var _ui_utils = require("./ui_utils");
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
  var PAGE_NUMBER_LOADING_INDICATOR = 'visiblePageIsLoading';
36
38
  var SCALE_SELECT_CONTAINER_PADDING = 8;
37
39
  var SCALE_SELECT_PADDING = 22;
38
40
 
39
- var Toolbar = function () {
40
- function Toolbar(options, mainContainer, eventBus) {
41
- var l10n = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _ui_utils.NullL10n;
41
+ var Toolbar =
42
+ /*#__PURE__*/
43
+ function () {
44
+ function Toolbar(options, eventBus) {
45
+ var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n;
42
46
 
43
47
  _classCallCheck(this, Toolbar);
44
48
 
45
49
  this.toolbar = options.container;
46
- this.mainContainer = mainContainer;
47
50
  this.eventBus = eventBus;
48
51
  this.l10n = l10n;
49
52
  this.items = options;
50
53
  this._wasLocalized = false;
51
54
  this.reset();
55
+
52
56
  this._bindListeners();
53
57
  }
54
58
 
55
59
  _createClass(Toolbar, [{
56
- key: 'setPageNumber',
60
+ key: "setPageNumber",
57
61
  value: function setPageNumber(pageNumber, pageLabel) {
58
62
  this.pageNumber = pageNumber;
59
63
  this.pageLabel = pageLabel;
64
+
60
65
  this._updateUIState(false);
61
66
  }
62
67
  }, {
63
- key: 'setPagesCount',
68
+ key: "setPagesCount",
64
69
  value: function setPagesCount(pagesCount, hasPageLabels) {
65
70
  this.pagesCount = pagesCount;
66
71
  this.hasPageLabels = hasPageLabels;
72
+
67
73
  this._updateUIState(true);
68
74
  }
69
75
  }, {
70
- key: 'setPageScale',
76
+ key: "setPageScale",
71
77
  value: function setPageScale(pageScaleValue, pageScale) {
72
- this.pageScaleValue = pageScaleValue;
78
+ this.pageScaleValue = (pageScaleValue || pageScale).toString();
73
79
  this.pageScale = pageScale;
80
+
74
81
  this._updateUIState(false);
75
82
  }
76
83
  }, {
77
- key: 'reset',
84
+ key: "reset",
78
85
  value: function reset() {
79
86
  this.pageNumber = 0;
80
87
  this.pageLabel = null;
@@ -82,28 +89,38 @@ var Toolbar = function () {
82
89
  this.pagesCount = 0;
83
90
  this.pageScaleValue = _ui_utils.DEFAULT_SCALE_VALUE;
84
91
  this.pageScale = _ui_utils.DEFAULT_SCALE;
92
+
85
93
  this._updateUIState(true);
94
+
95
+ this.updateLoadingIndicatorState();
86
96
  }
87
97
  }, {
88
- key: '_bindListeners',
98
+ key: "_bindListeners",
89
99
  value: function _bindListeners() {
90
100
  var _this = this;
91
101
 
92
102
  var eventBus = this.eventBus,
93
103
  items = this.items;
94
-
95
104
  var self = this;
96
105
  items.previous.addEventListener('click', function () {
97
- eventBus.dispatch('previouspage');
106
+ eventBus.dispatch('previouspage', {
107
+ source: self
108
+ });
98
109
  });
99
110
  items.next.addEventListener('click', function () {
100
- eventBus.dispatch('nextpage');
111
+ eventBus.dispatch('nextpage', {
112
+ source: self
113
+ });
101
114
  });
102
115
  items.zoomIn.addEventListener('click', function () {
103
- eventBus.dispatch('zoomin');
116
+ eventBus.dispatch('zoomin', {
117
+ source: self
118
+ });
104
119
  });
105
120
  items.zoomOut.addEventListener('click', function () {
106
- eventBus.dispatch('zoomout');
121
+ eventBus.dispatch('zoomout', {
122
+ source: self
123
+ });
107
124
  });
108
125
  items.pageNumber.addEventListener('click', function () {
109
126
  this.select();
@@ -118,22 +135,31 @@ var Toolbar = function () {
118
135
  if (this.value === 'custom') {
119
136
  return;
120
137
  }
138
+
121
139
  eventBus.dispatch('scalechanged', {
122
140
  source: self,
123
141
  value: this.value
124
142
  });
125
143
  });
126
144
  items.presentationModeButton.addEventListener('click', function () {
127
- eventBus.dispatch('presentationmode');
145
+ eventBus.dispatch('presentationmode', {
146
+ source: self
147
+ });
128
148
  });
129
149
  items.openFile.addEventListener('click', function () {
130
- eventBus.dispatch('openfile');
150
+ eventBus.dispatch('openfile', {
151
+ source: self
152
+ });
131
153
  });
132
154
  items.print.addEventListener('click', function () {
133
- eventBus.dispatch('print');
155
+ eventBus.dispatch('print', {
156
+ source: self
157
+ });
134
158
  });
135
159
  items.download.addEventListener('click', function () {
136
- eventBus.dispatch('download');
160
+ eventBus.dispatch('download', {
161
+ source: self
162
+ });
137
163
  });
138
164
  items.scaleSelect.oncontextmenu = _ui_utils.noContextMenuHandler;
139
165
  eventBus.on('localized', function () {
@@ -141,37 +167,44 @@ var Toolbar = function () {
141
167
  });
142
168
  }
143
169
  }, {
144
- key: '_localized',
170
+ key: "_localized",
145
171
  value: function _localized() {
146
172
  this._wasLocalized = true;
173
+
147
174
  this._adjustScaleWidth();
175
+
148
176
  this._updateUIState(true);
149
177
  }
150
178
  }, {
151
- key: '_updateUIState',
179
+ key: "_updateUIState",
152
180
  value: function _updateUIState() {
153
181
  var resetNumPages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
154
182
 
155
183
  if (!this._wasLocalized) {
156
184
  return;
157
185
  }
186
+
158
187
  var pageNumber = this.pageNumber,
159
188
  pagesCount = this.pagesCount,
189
+ pageScaleValue = this.pageScaleValue,
190
+ pageScale = this.pageScale,
160
191
  items = this.items;
161
192
 
162
- var scaleValue = (this.pageScaleValue || this.pageScale).toString();
163
- var scale = this.pageScale;
164
193
  if (resetNumPages) {
165
194
  if (this.hasPageLabels) {
166
195
  items.pageNumber.type = 'text';
167
196
  } else {
168
197
  items.pageNumber.type = 'number';
169
- this.l10n.get('of_pages', { pagesCount: pagesCount }, 'of {{pagesCount}}').then(function (msg) {
198
+ this.l10n.get('of_pages', {
199
+ pagesCount: pagesCount
200
+ }, 'of {{pagesCount}}').then(function (msg) {
170
201
  items.numPages.textContent = msg;
171
202
  });
172
203
  }
204
+
173
205
  items.pageNumber.max = pagesCount;
174
206
  }
207
+
175
208
  if (this.hasPageLabels) {
176
209
  items.pageNumber.value = this.pageLabel;
177
210
  this.l10n.get('page_of_pages', {
@@ -183,23 +216,30 @@ var Toolbar = function () {
183
216
  } else {
184
217
  items.pageNumber.value = pageNumber;
185
218
  }
219
+
186
220
  items.previous.disabled = pageNumber <= 1;
187
221
  items.next.disabled = pageNumber >= pagesCount;
188
- items.zoomOut.disabled = scale <= _ui_utils.MIN_SCALE;
189
- items.zoomIn.disabled = scale >= _ui_utils.MAX_SCALE;
190
- var customScale = Math.round(scale * 10000) / 100;
191
- this.l10n.get('page_scale_percent', { scale: customScale }, '{{scale}}%').then(function (msg) {
222
+ items.zoomOut.disabled = pageScale <= _ui_utils.MIN_SCALE;
223
+ items.zoomIn.disabled = pageScale >= _ui_utils.MAX_SCALE;
224
+ var customScale = Math.round(pageScale * 10000) / 100;
225
+ this.l10n.get('page_scale_percent', {
226
+ scale: customScale
227
+ }, '{{scale}}%').then(function (msg) {
192
228
  var options = items.scaleSelect.options;
193
229
  var predefinedValueFound = false;
230
+
194
231
  for (var i = 0, ii = options.length; i < ii; i++) {
195
232
  var option = options[i];
196
- if (option.value !== scaleValue) {
233
+
234
+ if (option.value !== pageScaleValue) {
197
235
  option.selected = false;
198
236
  continue;
199
237
  }
238
+
200
239
  option.selected = true;
201
240
  predefinedValueFound = true;
202
241
  }
242
+
203
243
  if (!predefinedValueFound) {
204
244
  items.customScaleOption.textContent = msg;
205
245
  items.customScaleOption.selected = true;
@@ -207,26 +247,23 @@ var Toolbar = function () {
207
247
  });
208
248
  }
209
249
  }, {
210
- key: 'updateLoadingIndicatorState',
250
+ key: "updateLoadingIndicatorState",
211
251
  value: function updateLoadingIndicatorState() {
212
252
  var loading = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
213
-
214
253
  var pageNumberInput = this.items.pageNumber;
215
- if (loading) {
216
- pageNumberInput.classList.add(PAGE_NUMBER_LOADING_INDICATOR);
217
- } else {
218
- pageNumberInput.classList.remove(PAGE_NUMBER_LOADING_INDICATOR);
219
- }
254
+ pageNumberInput.classList.toggle(PAGE_NUMBER_LOADING_INDICATOR, loading);
220
255
  }
221
256
  }, {
222
- key: '_adjustScaleWidth',
257
+ key: "_adjustScaleWidth",
223
258
  value: function _adjustScaleWidth() {
224
259
  var container = this.items.scaleSelectContainer;
225
260
  var select = this.items.scaleSelect;
261
+
226
262
  _ui_utils.animationStarted.then(function () {
227
263
  if (container.clientWidth === 0) {
228
264
  container.setAttribute('style', 'display: inherit;');
229
265
  }
266
+
230
267
  if (container.clientWidth > 0) {
231
268
  select.setAttribute('style', 'min-width: inherit;');
232
269
  var width = select.clientWidth + SCALE_SELECT_CONTAINER_PADDING;