pdfjs-dist 2.3.200 → 2.4.456

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 (185) hide show
  1. package/README.md +4 -0
  2. package/bower.json +1 -1
  3. package/build/pdf.js +6499 -17971
  4. package/build/pdf.js.map +1 -1
  5. package/build/pdf.min.js +22 -1
  6. package/build/pdf.worker.entry.js +5 -3
  7. package/build/pdf.worker.js +19303 -29896
  8. package/build/pdf.worker.js.map +1 -1
  9. package/build/pdf.worker.min.js +22 -1
  10. package/es5/build/pdf.js +25473 -0
  11. package/es5/build/pdf.js.map +1 -0
  12. package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
  13. package/es5/build/pdf.worker.js +57878 -0
  14. package/es5/build/pdf.worker.js.map +1 -0
  15. package/es5/web/images/annotation-check.svg +11 -0
  16. package/es5/web/images/annotation-comment.svg +16 -0
  17. package/es5/web/images/annotation-help.svg +26 -0
  18. package/es5/web/images/annotation-insert.svg +10 -0
  19. package/es5/web/images/annotation-key.svg +11 -0
  20. package/es5/web/images/annotation-newparagraph.svg +11 -0
  21. package/es5/web/images/annotation-noicon.svg +7 -0
  22. package/es5/web/images/annotation-note.svg +42 -0
  23. package/es5/web/images/annotation-paragraph.svg +16 -0
  24. package/es5/web/images/loading-icon.gif +0 -0
  25. package/es5/web/images/shadow.png +0 -0
  26. package/es5/web/images/texture.png +0 -0
  27. package/es5/web/pdf_viewer.css +407 -0
  28. package/es5/web/pdf_viewer.js +7757 -0
  29. package/es5/web/pdf_viewer.js.map +1 -0
  30. package/image_decoders/pdf.image_decoders.js +1333 -4839
  31. package/image_decoders/pdf.image_decoders.js.map +1 -1
  32. package/image_decoders/pdf.image_decoders.min.js +22 -1
  33. package/lib/README.md +7 -0
  34. package/lib/core/annotation.js +683 -1066
  35. package/lib/core/arithmetic_decoder.js +81 -97
  36. package/lib/core/bidi.js +54 -46
  37. package/lib/core/ccitt.js +88 -81
  38. package/lib/core/ccitt_stream.js +15 -14
  39. package/lib/core/cff_parser.js +196 -193
  40. package/lib/core/charsets.js +4 -4
  41. package/lib/core/chunked_stream.js +441 -569
  42. package/lib/core/cmap.js +220 -279
  43. package/lib/core/colorspace.js +699 -863
  44. package/lib/core/core_utils.js +59 -80
  45. package/lib/core/crypto.js +379 -437
  46. package/lib/core/document.js +564 -673
  47. package/lib/core/encodings.js +15 -15
  48. package/lib/core/evaluator.js +983 -889
  49. package/lib/core/font_renderer.js +128 -171
  50. package/lib/core/fonts.js +451 -400
  51. package/lib/core/function.js +289 -285
  52. package/lib/core/glyphlist.js +4527 -4527
  53. package/lib/core/image.js +138 -117
  54. package/lib/core/image_utils.js +46 -63
  55. package/lib/core/jbig2.js +324 -332
  56. package/lib/core/jbig2_stream.js +18 -17
  57. package/lib/core/jpeg_stream.js +133 -24
  58. package/lib/core/jpg.js +238 -210
  59. package/lib/core/jpx.js +158 -157
  60. package/lib/core/jpx_stream.js +28 -28
  61. package/lib/core/metrics.js +2928 -2928
  62. package/lib/core/murmurhash3.js +87 -102
  63. package/lib/core/obj.js +1111 -1302
  64. package/lib/core/operator_list.js +55 -42
  65. package/lib/core/parser.js +956 -987
  66. package/lib/core/pattern.js +69 -69
  67. package/lib/core/pdf_manager.js +149 -316
  68. package/lib/core/primitives.js +45 -77
  69. package/lib/core/ps_parser.js +175 -214
  70. package/lib/core/standard_fonts.js +237 -236
  71. package/lib/core/stream.js +83 -77
  72. package/lib/core/type1_parser.js +78 -68
  73. package/lib/core/unicode.js +1654 -1654
  74. package/lib/core/worker.js +148 -196
  75. package/lib/core/worker_stream.js +101 -210
  76. package/lib/display/annotation_layer.js +733 -1155
  77. package/lib/display/api.js +1539 -1928
  78. package/lib/display/api_compatibility.js +10 -8
  79. package/lib/display/canvas.js +159 -158
  80. package/lib/display/content_disposition.js +36 -55
  81. package/lib/display/display_utils.js +298 -551
  82. package/lib/display/fetch_stream.js +181 -305
  83. package/lib/display/font_loader.js +273 -416
  84. package/lib/display/metadata.js +86 -98
  85. package/lib/display/network.js +376 -511
  86. package/lib/display/network_utils.js +20 -19
  87. package/lib/display/node_stream.js +276 -460
  88. package/lib/display/pattern_helper.js +76 -44
  89. package/lib/display/svg.js +1137 -1405
  90. package/lib/display/text_layer.js +75 -82
  91. package/lib/display/transport_stream.js +236 -374
  92. package/lib/display/webgl.js +70 -83
  93. package/lib/display/worker_options.js +3 -3
  94. package/lib/display/xml_parser.js +303 -392
  95. package/lib/examples/node/domstubs.js +37 -37
  96. package/lib/pdf.js +22 -21
  97. package/lib/pdf.worker.js +5 -5
  98. package/lib/shared/compatibility.js +2 -251
  99. package/lib/shared/is_node.js +7 -6
  100. package/lib/shared/message_handler.js +222 -194
  101. package/lib/shared/util.js +269 -405
  102. package/lib/test/unit/annotation_spec.js +1089 -1014
  103. package/lib/test/unit/api_spec.js +617 -544
  104. package/lib/test/unit/bidi_spec.js +7 -7
  105. package/lib/test/unit/cff_parser_spec.js +63 -62
  106. package/lib/test/unit/clitests_helper.js +7 -9
  107. package/lib/test/unit/cmap_spec.js +84 -86
  108. package/lib/test/unit/colorspace_spec.js +154 -154
  109. package/lib/test/unit/core_utils_spec.js +125 -105
  110. package/lib/test/unit/crypto_spec.js +181 -181
  111. package/lib/test/unit/custom_spec.js +22 -24
  112. package/lib/test/unit/display_svg_spec.js +35 -36
  113. package/lib/test/unit/display_utils_spec.js +139 -149
  114. package/lib/test/unit/document_spec.js +16 -16
  115. package/lib/test/unit/encodings_spec.js +12 -34
  116. package/lib/test/unit/evaluator_spec.js +81 -95
  117. package/lib/test/unit/fetch_stream_spec.js +30 -30
  118. package/lib/test/unit/function_spec.js +206 -204
  119. package/lib/test/unit/jasmine-boot.js +48 -32
  120. package/lib/test/unit/message_handler_spec.js +172 -162
  121. package/lib/test/unit/metadata_spec.js +69 -69
  122. package/lib/test/unit/murmurhash3_spec.js +12 -12
  123. package/lib/test/unit/network_spec.js +12 -12
  124. package/lib/test/unit/network_utils_spec.js +152 -152
  125. package/lib/test/unit/node_stream_spec.js +74 -90
  126. package/lib/test/unit/parser_spec.js +107 -113
  127. package/lib/test/unit/pdf_find_controller_spec.js +55 -86
  128. package/lib/test/unit/pdf_find_utils_spec.js +32 -32
  129. package/lib/test/unit/pdf_history_spec.js +32 -32
  130. package/lib/test/unit/primitives_spec.js +117 -115
  131. package/lib/test/unit/stream_spec.js +16 -14
  132. package/lib/test/unit/test_utils.js +119 -285
  133. package/lib/test/unit/testreporter.js +19 -19
  134. package/lib/test/unit/type1_parser_spec.js +41 -41
  135. package/lib/test/unit/ui_utils_spec.js +318 -426
  136. package/lib/test/unit/unicode_spec.js +42 -42
  137. package/lib/test/unit/util_spec.js +122 -143
  138. package/lib/web/annotation_layer_builder.js +66 -103
  139. package/lib/web/app.js +1166 -1196
  140. package/lib/web/app_options.js +61 -77
  141. package/lib/web/base_viewer.js +804 -850
  142. package/lib/web/chromecom.js +164 -249
  143. package/lib/web/debugger.js +149 -205
  144. package/lib/web/download_manager.js +38 -57
  145. package/lib/web/firefox_print_service.js +35 -30
  146. package/lib/web/firefoxcom.js +175 -374
  147. package/lib/web/genericcom.js +26 -108
  148. package/lib/web/genericl10n.js +24 -153
  149. package/lib/web/grab_to_pan.js +30 -30
  150. package/lib/web/interfaces.js +80 -258
  151. package/lib/web/overlay_manager.js +70 -246
  152. package/lib/web/password_prompt.js +38 -64
  153. package/lib/web/pdf_attachment_viewer.js +105 -130
  154. package/lib/web/pdf_cursor_tools.js +75 -102
  155. package/lib/web/pdf_document_properties.js +227 -376
  156. package/lib/web/pdf_find_bar.js +137 -171
  157. package/lib/web/pdf_find_controller.js +492 -549
  158. package/lib/web/pdf_find_utils.js +13 -13
  159. package/lib/web/pdf_history.js +395 -406
  160. package/lib/web/pdf_link_service.js +302 -349
  161. package/lib/web/pdf_outline_viewer.js +148 -209
  162. package/lib/web/pdf_page_view.js +449 -507
  163. package/lib/web/pdf_presentation_mode.js +304 -357
  164. package/lib/web/pdf_print_service.js +90 -104
  165. package/lib/web/pdf_rendering_queue.js +87 -108
  166. package/lib/web/pdf_sidebar.js +264 -304
  167. package/lib/web/pdf_sidebar_resizer.js +92 -119
  168. package/lib/web/pdf_single_page_viewer.js +77 -126
  169. package/lib/web/pdf_thumbnail_view.js +276 -297
  170. package/lib/web/pdf_thumbnail_viewer.js +186 -206
  171. package/lib/web/pdf_viewer.component.js +20 -21
  172. package/lib/web/pdf_viewer.js +55 -115
  173. package/lib/web/preferences.js +66 -273
  174. package/lib/web/secondary_toolbar.js +164 -196
  175. package/lib/web/text_layer_builder.js +284 -317
  176. package/lib/web/toolbar.js +216 -211
  177. package/lib/web/ui_utils.js +303 -404
  178. package/lib/web/view_history.js +49 -222
  179. package/lib/web/viewer_compatibility.js +7 -5
  180. package/package.json +2 -9
  181. package/web/pdf_viewer.css +25 -18
  182. package/web/pdf_viewer.js +3481 -4764
  183. package/web/pdf_viewer.js.map +1 -1
  184. package/webpack.js +14 -5
  185. package/lib/shared/streams_polyfill.js +0 -43
@@ -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 2019 Mozilla Foundation
5
+ * Copyright 2020 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.
@@ -26,33 +26,21 @@ Object.defineProperty(exports, "__esModule", {
26
26
  });
27
27
  exports.DefaultTextLayerFactory = exports.TextLayerBuilder = void 0;
28
28
 
29
- var _ui_utils = require("./ui_utils");
29
+ var _ui_utils = require("./ui_utils.js");
30
30
 
31
31
  var _pdf = require("../pdf");
32
32
 
33
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
34
-
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 EXPAND_DIVS_TIMEOUT = 300;
40
-
41
- var TextLayerBuilder =
42
- /*#__PURE__*/
43
- function () {
44
- function TextLayerBuilder(_ref) {
45
- var textLayerDiv = _ref.textLayerDiv,
46
- eventBus = _ref.eventBus,
47
- pageIndex = _ref.pageIndex,
48
- viewport = _ref.viewport,
49
- _ref$findController = _ref.findController,
50
- findController = _ref$findController === void 0 ? null : _ref$findController,
51
- _ref$enhanceTextSelec = _ref.enhanceTextSelection,
52
- enhanceTextSelection = _ref$enhanceTextSelec === void 0 ? false : _ref$enhanceTextSelec;
53
-
54
- _classCallCheck(this, TextLayerBuilder);
55
-
33
+ const EXPAND_DIVS_TIMEOUT = 300;
34
+
35
+ class TextLayerBuilder {
36
+ constructor({
37
+ textLayerDiv,
38
+ eventBus,
39
+ pageIndex,
40
+ viewport,
41
+ findController = null,
42
+ enhanceTextSelection = false
43
+ }) {
56
44
  this.textLayerDiv = textLayerDiv;
57
45
  this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)();
58
46
  this.textContent = null;
@@ -72,363 +60,342 @@ function () {
72
60
  this._bindMouse();
73
61
  }
74
62
 
75
- _createClass(TextLayerBuilder, [{
76
- key: "_finishRendering",
77
- value: function _finishRendering() {
78
- this.renderingDone = true;
63
+ _finishRendering() {
64
+ this.renderingDone = true;
79
65
 
80
- if (!this.enhanceTextSelection) {
81
- var endOfContent = document.createElement('div');
82
- endOfContent.className = 'endOfContent';
83
- this.textLayerDiv.appendChild(endOfContent);
84
- }
85
-
86
- this.eventBus.dispatch('textlayerrendered', {
87
- source: this,
88
- pageNumber: this.pageNumber,
89
- numTextDivs: this.textDivs.length
90
- });
66
+ if (!this.enhanceTextSelection) {
67
+ const endOfContent = document.createElement("div");
68
+ endOfContent.className = "endOfContent";
69
+ this.textLayerDiv.appendChild(endOfContent);
91
70
  }
92
- }, {
93
- key: "render",
94
- value: function render() {
95
- var _this = this;
96
71
 
97
- var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
72
+ this.eventBus.dispatch("textlayerrendered", {
73
+ source: this,
74
+ pageNumber: this.pageNumber,
75
+ numTextDivs: this.textDivs.length
76
+ });
77
+ }
98
78
 
99
- if (!(this.textContent || this.textContentStream) || this.renderingDone) {
100
- return;
101
- }
79
+ render(timeout = 0) {
80
+ if (!(this.textContent || this.textContentStream) || this.renderingDone) {
81
+ return;
82
+ }
102
83
 
103
- this.cancel();
104
- this.textDivs = [];
105
- var textLayerFrag = document.createDocumentFragment();
106
- this.textLayerRenderTask = (0, _pdf.renderTextLayer)({
107
- textContent: this.textContent,
108
- textContentStream: this.textContentStream,
109
- container: textLayerFrag,
110
- viewport: this.viewport,
111
- textDivs: this.textDivs,
112
- textContentItemsStr: this.textContentItemsStr,
113
- timeout: timeout,
114
- enhanceTextSelection: this.enhanceTextSelection
115
- });
116
- this.textLayerRenderTask.promise.then(function () {
117
- _this.textLayerDiv.appendChild(textLayerFrag);
118
-
119
- _this._finishRendering();
120
-
121
- _this._updateMatches();
122
- }, function (reason) {});
123
-
124
- if (!this._onUpdateTextLayerMatches) {
125
- this._onUpdateTextLayerMatches = function (evt) {
126
- if (evt.pageIndex === _this.pageIdx || evt.pageIndex === -1) {
127
- _this._updateMatches();
128
- }
129
- };
84
+ this.cancel();
85
+ this.textDivs = [];
86
+ const textLayerFrag = document.createDocumentFragment();
87
+ this.textLayerRenderTask = (0, _pdf.renderTextLayer)({
88
+ textContent: this.textContent,
89
+ textContentStream: this.textContentStream,
90
+ container: textLayerFrag,
91
+ viewport: this.viewport,
92
+ textDivs: this.textDivs,
93
+ textContentItemsStr: this.textContentItemsStr,
94
+ timeout,
95
+ enhanceTextSelection: this.enhanceTextSelection
96
+ });
97
+ this.textLayerRenderTask.promise.then(() => {
98
+ this.textLayerDiv.appendChild(textLayerFrag);
99
+
100
+ this._finishRendering();
101
+
102
+ this._updateMatches();
103
+ }, function (reason) {});
104
+
105
+ if (!this._onUpdateTextLayerMatches) {
106
+ this._onUpdateTextLayerMatches = evt => {
107
+ if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) {
108
+ this._updateMatches();
109
+ }
110
+ };
130
111
 
131
- this.eventBus.on('updatetextlayermatches', this._onUpdateTextLayerMatches);
132
- }
112
+ this.eventBus._on("updatetextlayermatches", this._onUpdateTextLayerMatches);
133
113
  }
134
- }, {
135
- key: "cancel",
136
- value: function cancel() {
137
- if (this.textLayerRenderTask) {
138
- this.textLayerRenderTask.cancel();
139
- this.textLayerRenderTask = null;
140
- }
114
+ }
141
115
 
142
- if (this._onUpdateTextLayerMatches) {
143
- this.eventBus.off('updatetextlayermatches', this._onUpdateTextLayerMatches);
144
- this._onUpdateTextLayerMatches = null;
145
- }
146
- }
147
- }, {
148
- key: "setTextContentStream",
149
- value: function setTextContentStream(readableStream) {
150
- this.cancel();
151
- this.textContentStream = readableStream;
116
+ cancel() {
117
+ if (this.textLayerRenderTask) {
118
+ this.textLayerRenderTask.cancel();
119
+ this.textLayerRenderTask = null;
152
120
  }
153
- }, {
154
- key: "setTextContent",
155
- value: function setTextContent(textContent) {
156
- this.cancel();
157
- this.textContent = textContent;
158
- }
159
- }, {
160
- key: "_convertMatches",
161
- value: function _convertMatches(matches, matchesLength) {
162
- if (!matches) {
163
- return [];
164
- }
165
121
 
166
- var findController = this.findController,
167
- textContentItemsStr = this.textContentItemsStr;
168
- var i = 0,
169
- iIndex = 0;
170
- var end = textContentItemsStr.length - 1;
171
- var queryLen = findController.state.query.length;
172
- var result = [];
122
+ if (this._onUpdateTextLayerMatches) {
123
+ this.eventBus._off("updatetextlayermatches", this._onUpdateTextLayerMatches);
173
124
 
174
- for (var m = 0, mm = matches.length; m < mm; m++) {
175
- var matchIdx = matches[m];
125
+ this._onUpdateTextLayerMatches = null;
126
+ }
127
+ }
176
128
 
177
- while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {
178
- iIndex += textContentItemsStr[i].length;
179
- i++;
180
- }
129
+ setTextContentStream(readableStream) {
130
+ this.cancel();
131
+ this.textContentStream = readableStream;
132
+ }
181
133
 
182
- if (i === textContentItemsStr.length) {
183
- console.error('Could not find a matching mapping');
184
- }
134
+ setTextContent(textContent) {
135
+ this.cancel();
136
+ this.textContent = textContent;
137
+ }
185
138
 
186
- var match = {
187
- begin: {
188
- divIdx: i,
189
- offset: matchIdx - iIndex
190
- }
191
- };
139
+ _convertMatches(matches, matchesLength) {
140
+ if (!matches) {
141
+ return [];
142
+ }
192
143
 
193
- if (matchesLength) {
194
- matchIdx += matchesLength[m];
195
- } else {
196
- matchIdx += queryLen;
197
- }
144
+ const {
145
+ findController,
146
+ textContentItemsStr
147
+ } = this;
148
+ let i = 0,
149
+ iIndex = 0;
150
+ const end = textContentItemsStr.length - 1;
151
+ const queryLen = findController.state.query.length;
152
+ const result = [];
153
+
154
+ for (let m = 0, mm = matches.length; m < mm; m++) {
155
+ let matchIdx = matches[m];
156
+
157
+ while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {
158
+ iIndex += textContentItemsStr[i].length;
159
+ i++;
160
+ }
198
161
 
199
- while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {
200
- iIndex += textContentItemsStr[i].length;
201
- i++;
202
- }
162
+ if (i === textContentItemsStr.length) {
163
+ console.error("Could not find a matching mapping");
164
+ }
203
165
 
204
- match.end = {
166
+ const match = {
167
+ begin: {
205
168
  divIdx: i,
206
169
  offset: matchIdx - iIndex
207
- };
208
- result.push(match);
170
+ }
171
+ };
172
+
173
+ if (matchesLength) {
174
+ matchIdx += matchesLength[m];
175
+ } else {
176
+ matchIdx += queryLen;
209
177
  }
210
178
 
211
- return result;
212
- }
213
- }, {
214
- key: "_renderMatches",
215
- value: function _renderMatches(matches) {
216
- if (matches.length === 0) {
217
- return;
179
+ while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {
180
+ iIndex += textContentItemsStr[i].length;
181
+ i++;
218
182
  }
219
183
 
220
- var findController = this.findController,
221
- pageIdx = this.pageIdx,
222
- textContentItemsStr = this.textContentItemsStr,
223
- textDivs = this.textDivs;
224
- var isSelectedPage = pageIdx === findController.selected.pageIdx;
225
- var selectedMatchIdx = findController.selected.matchIdx;
226
- var highlightAll = findController.state.highlightAll;
227
- var prevEnd = null;
228
- var infinity = {
229
- divIdx: -1,
230
- offset: undefined
184
+ match.end = {
185
+ divIdx: i,
186
+ offset: matchIdx - iIndex
231
187
  };
188
+ result.push(match);
189
+ }
232
190
 
233
- function beginText(begin, className) {
234
- var divIdx = begin.divIdx;
235
- textDivs[divIdx].textContent = '';
236
- appendTextToDiv(divIdx, 0, begin.offset, className);
237
- }
191
+ return result;
192
+ }
238
193
 
239
- function appendTextToDiv(divIdx, fromOffset, toOffset, className) {
240
- var div = textDivs[divIdx];
241
- var content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);
242
- var node = document.createTextNode(content);
243
-
244
- if (className) {
245
- var span = document.createElement('span');
246
- span.className = className;
247
- span.appendChild(node);
248
- div.appendChild(span);
249
- return;
250
- }
194
+ _renderMatches(matches) {
195
+ if (matches.length === 0) {
196
+ return;
197
+ }
251
198
 
252
- div.appendChild(node);
253
- }
199
+ const {
200
+ findController,
201
+ pageIdx,
202
+ textContentItemsStr,
203
+ textDivs
204
+ } = this;
205
+ const isSelectedPage = pageIdx === findController.selected.pageIdx;
206
+ const selectedMatchIdx = findController.selected.matchIdx;
207
+ const highlightAll = findController.state.highlightAll;
208
+ let prevEnd = null;
209
+ const infinity = {
210
+ divIdx: -1,
211
+ offset: undefined
212
+ };
213
+
214
+ function beginText(begin, className) {
215
+ const divIdx = begin.divIdx;
216
+ textDivs[divIdx].textContent = "";
217
+ appendTextToDiv(divIdx, 0, begin.offset, className);
218
+ }
254
219
 
255
- var i0 = selectedMatchIdx,
256
- i1 = i0 + 1;
220
+ function appendTextToDiv(divIdx, fromOffset, toOffset, className) {
221
+ const div = textDivs[divIdx];
222
+ const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);
223
+ const node = document.createTextNode(content);
257
224
 
258
- if (highlightAll) {
259
- i0 = 0;
260
- i1 = matches.length;
261
- } else if (!isSelectedPage) {
225
+ if (className) {
226
+ const span = document.createElement("span");
227
+ span.className = className;
228
+ span.appendChild(node);
229
+ div.appendChild(span);
262
230
  return;
263
231
  }
264
232
 
265
- for (var i = i0; i < i1; i++) {
266
- var match = matches[i];
267
- var begin = match.begin;
268
- var end = match.end;
269
- var isSelected = isSelectedPage && i === selectedMatchIdx;
270
- var highlightSuffix = isSelected ? ' selected' : '';
271
-
272
- if (isSelected) {
273
- findController.scrollMatchIntoView({
274
- element: textDivs[begin.divIdx],
275
- pageIndex: pageIdx,
276
- matchIndex: selectedMatchIdx
277
- });
278
- }
233
+ div.appendChild(node);
234
+ }
279
235
 
280
- if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {
281
- if (prevEnd !== null) {
282
- appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
283
- }
236
+ let i0 = selectedMatchIdx,
237
+ i1 = i0 + 1;
238
+
239
+ if (highlightAll) {
240
+ i0 = 0;
241
+ i1 = matches.length;
242
+ } else if (!isSelectedPage) {
243
+ return;
244
+ }
284
245
 
285
- beginText(begin);
286
- } else {
287
- appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);
246
+ for (let i = i0; i < i1; i++) {
247
+ const match = matches[i];
248
+ const begin = match.begin;
249
+ const end = match.end;
250
+ const isSelected = isSelectedPage && i === selectedMatchIdx;
251
+ const highlightSuffix = isSelected ? " selected" : "";
252
+
253
+ if (isSelected) {
254
+ findController.scrollMatchIntoView({
255
+ element: textDivs[begin.divIdx],
256
+ pageIndex: pageIdx,
257
+ matchIndex: selectedMatchIdx
258
+ });
259
+ }
260
+
261
+ if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {
262
+ if (prevEnd !== null) {
263
+ appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
288
264
  }
289
265
 
290
- if (begin.divIdx === end.divIdx) {
291
- appendTextToDiv(begin.divIdx, begin.offset, end.offset, 'highlight' + highlightSuffix);
292
- } else {
293
- appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, 'highlight begin' + highlightSuffix);
266
+ beginText(begin);
267
+ } else {
268
+ appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);
269
+ }
294
270
 
295
- for (var n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {
296
- textDivs[n0].className = 'highlight middle' + highlightSuffix;
297
- }
271
+ if (begin.divIdx === end.divIdx) {
272
+ appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" + highlightSuffix);
273
+ } else {
274
+ appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, "highlight begin" + highlightSuffix);
298
275
 
299
- beginText(end, 'highlight end' + highlightSuffix);
276
+ for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {
277
+ textDivs[n0].className = "highlight middle" + highlightSuffix;
300
278
  }
301
279
 
302
- prevEnd = end;
280
+ beginText(end, "highlight end" + highlightSuffix);
303
281
  }
304
282
 
305
- if (prevEnd) {
306
- appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
307
- }
283
+ prevEnd = end;
308
284
  }
309
- }, {
310
- key: "_updateMatches",
311
- value: function _updateMatches() {
312
- if (!this.renderingDone) {
313
- return;
314
- }
315
285
 
316
- var findController = this.findController,
317
- matches = this.matches,
318
- pageIdx = this.pageIdx,
319
- textContentItemsStr = this.textContentItemsStr,
320
- textDivs = this.textDivs;
321
- var clearedUntilDivIdx = -1;
322
-
323
- for (var i = 0, ii = matches.length; i < ii; i++) {
324
- var match = matches[i];
325
- var begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);
326
-
327
- for (var n = begin, end = match.end.divIdx; n <= end; n++) {
328
- var div = textDivs[n];
329
- div.textContent = textContentItemsStr[n];
330
- div.className = '';
331
- }
286
+ if (prevEnd) {
287
+ appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
288
+ }
289
+ }
332
290
 
333
- clearedUntilDivIdx = match.end.divIdx + 1;
334
- }
291
+ _updateMatches() {
292
+ if (!this.renderingDone) {
293
+ return;
294
+ }
335
295
 
336
- if (!findController || !findController.highlightMatches) {
337
- return;
296
+ const {
297
+ findController,
298
+ matches,
299
+ pageIdx,
300
+ textContentItemsStr,
301
+ textDivs
302
+ } = this;
303
+ let clearedUntilDivIdx = -1;
304
+
305
+ for (let i = 0, ii = matches.length; i < ii; i++) {
306
+ const match = matches[i];
307
+ const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);
308
+
309
+ for (let n = begin, end = match.end.divIdx; n <= end; n++) {
310
+ const div = textDivs[n];
311
+ div.textContent = textContentItemsStr[n];
312
+ div.className = "";
338
313
  }
339
314
 
340
- var pageMatches = findController.pageMatches[pageIdx] || null;
341
- var pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;
342
- this.matches = this._convertMatches(pageMatches, pageMatchesLength);
315
+ clearedUntilDivIdx = match.end.divIdx + 1;
316
+ }
343
317
 
344
- this._renderMatches(this.matches);
318
+ if (!findController || !findController.highlightMatches) {
319
+ return;
345
320
  }
346
- }, {
347
- key: "_bindMouse",
348
- value: function _bindMouse() {
349
- var _this2 = this;
350
-
351
- var div = this.textLayerDiv;
352
- var expandDivsTimer = null;
353
- div.addEventListener('mousedown', function (evt) {
354
- if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) {
355
- _this2.textLayerRenderTask.expandTextDivs(true);
356
-
357
- if (expandDivsTimer) {
358
- clearTimeout(expandDivsTimer);
359
- expandDivsTimer = null;
360
- }
361
321
 
362
- return;
363
- }
322
+ const pageMatches = findController.pageMatches[pageIdx] || null;
323
+ const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;
324
+ this.matches = this._convertMatches(pageMatches, pageMatchesLength);
364
325
 
365
- var end = div.querySelector('.endOfContent');
326
+ this._renderMatches(this.matches);
327
+ }
366
328
 
367
- if (!end) {
368
- return;
329
+ _bindMouse() {
330
+ const div = this.textLayerDiv;
331
+ let expandDivsTimer = null;
332
+ div.addEventListener("mousedown", evt => {
333
+ if (this.enhanceTextSelection && this.textLayerRenderTask) {
334
+ this.textLayerRenderTask.expandTextDivs(true);
335
+
336
+ if (expandDivsTimer) {
337
+ clearTimeout(expandDivsTimer);
338
+ expandDivsTimer = null;
369
339
  }
370
340
 
371
- var adjustTop = evt.target !== div;
372
- adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue('-moz-user-select') !== 'none';
341
+ return;
342
+ }
373
343
 
374
- if (adjustTop) {
375
- var divBounds = div.getBoundingClientRect();
376
- var r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height);
377
- end.style.top = (r * 100).toFixed(2) + '%';
378
- }
344
+ const end = div.querySelector(".endOfContent");
379
345
 
380
- end.classList.add('active');
381
- });
382
- div.addEventListener('mouseup', function () {
383
- if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) {
384
- expandDivsTimer = setTimeout(function () {
385
- if (_this2.textLayerRenderTask) {
386
- _this2.textLayerRenderTask.expandTextDivs(false);
387
- }
388
-
389
- expandDivsTimer = null;
390
- }, EXPAND_DIVS_TIMEOUT);
391
- return;
392
- }
346
+ if (!end) {
347
+ return;
348
+ }
393
349
 
394
- var end = div.querySelector('.endOfContent');
350
+ let adjustTop = evt.target !== div;
351
+ adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue("-moz-user-select") !== "none";
395
352
 
396
- if (!end) {
397
- return;
398
- }
353
+ if (adjustTop) {
354
+ const divBounds = div.getBoundingClientRect();
355
+ const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height);
356
+ end.style.top = (r * 100).toFixed(2) + "%";
357
+ }
399
358
 
400
- end.style.top = '';
401
- end.classList.remove('active');
402
- });
403
- }
404
- }]);
359
+ end.classList.add("active");
360
+ });
361
+ div.addEventListener("mouseup", () => {
362
+ if (this.enhanceTextSelection && this.textLayerRenderTask) {
363
+ expandDivsTimer = setTimeout(() => {
364
+ if (this.textLayerRenderTask) {
365
+ this.textLayerRenderTask.expandTextDivs(false);
366
+ }
405
367
 
406
- return TextLayerBuilder;
407
- }();
368
+ expandDivsTimer = null;
369
+ }, EXPAND_DIVS_TIMEOUT);
370
+ return;
371
+ }
408
372
 
409
- exports.TextLayerBuilder = TextLayerBuilder;
373
+ const end = div.querySelector(".endOfContent");
374
+
375
+ if (!end) {
376
+ return;
377
+ }
410
378
 
411
- var DefaultTextLayerFactory =
412
- /*#__PURE__*/
413
- function () {
414
- function DefaultTextLayerFactory() {
415
- _classCallCheck(this, DefaultTextLayerFactory);
379
+ end.style.top = "";
380
+ end.classList.remove("active");
381
+ });
416
382
  }
417
383
 
418
- _createClass(DefaultTextLayerFactory, [{
419
- key: "createTextLayerBuilder",
420
- value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) {
421
- var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
422
- return new TextLayerBuilder({
423
- textLayerDiv: textLayerDiv,
424
- pageIndex: pageIndex,
425
- viewport: viewport,
426
- enhanceTextSelection: enhanceTextSelection
427
- });
428
- }
429
- }]);
384
+ }
385
+
386
+ exports.TextLayerBuilder = TextLayerBuilder;
387
+
388
+ class DefaultTextLayerFactory {
389
+ createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus) {
390
+ return new TextLayerBuilder({
391
+ textLayerDiv,
392
+ pageIndex,
393
+ viewport,
394
+ enhanceTextSelection,
395
+ eventBus
396
+ });
397
+ }
430
398
 
431
- return DefaultTextLayerFactory;
432
- }();
399
+ }
433
400
 
434
401
  exports.DefaultTextLayerFactory = DefaultTextLayerFactory;