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