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,38 +19,42 @@
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.DefaultTextLayerFactory = exports.TextLayerBuilder = undefined;
27
+ exports.DefaultTextLayerFactory = exports.TextLayerBuilder = 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 _dom_events = require('./dom_events');
32
-
33
- var _pdf = require('../pdf');
31
+ var _pdf = require("../pdf");
34
32
 
35
33
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
36
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
+
37
39
  var EXPAND_DIVS_TIMEOUT = 300;
38
40
 
39
- var TextLayerBuilder = function () {
41
+ var TextLayerBuilder =
42
+ /*#__PURE__*/
43
+ function () {
40
44
  function TextLayerBuilder(_ref) {
41
45
  var textLayerDiv = _ref.textLayerDiv,
42
46
  eventBus = _ref.eventBus,
43
47
  pageIndex = _ref.pageIndex,
44
48
  viewport = _ref.viewport,
45
49
  _ref$findController = _ref.findController,
46
- findController = _ref$findController === undefined ? null : _ref$findController,
50
+ findController = _ref$findController === void 0 ? null : _ref$findController,
47
51
  _ref$enhanceTextSelec = _ref.enhanceTextSelection,
48
- enhanceTextSelection = _ref$enhanceTextSelec === undefined ? false : _ref$enhanceTextSelec;
52
+ enhanceTextSelection = _ref$enhanceTextSelec === void 0 ? false : _ref$enhanceTextSelec;
49
53
 
50
54
  _classCallCheck(this, TextLayerBuilder);
51
55
 
52
56
  this.textLayerDiv = textLayerDiv;
53
- this.eventBus = eventBus || (0, _dom_events.getGlobalEventBus)();
57
+ this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)();
54
58
  this.textContent = null;
55
59
  this.textContentItemsStr = [];
56
60
  this.textContentStream = null;
@@ -63,18 +67,22 @@ var TextLayerBuilder = function () {
63
67
  this.findController = findController;
64
68
  this.textLayerRenderTask = null;
65
69
  this.enhanceTextSelection = enhanceTextSelection;
70
+ this._onUpdateTextLayerMatches = null;
71
+
66
72
  this._bindMouse();
67
73
  }
68
74
 
69
75
  _createClass(TextLayerBuilder, [{
70
- key: '_finishRendering',
76
+ key: "_finishRendering",
71
77
  value: function _finishRendering() {
72
78
  this.renderingDone = true;
79
+
73
80
  if (!this.enhanceTextSelection) {
74
81
  var endOfContent = document.createElement('div');
75
82
  endOfContent.className = 'endOfContent';
76
83
  this.textLayerDiv.appendChild(endOfContent);
77
84
  }
85
+
78
86
  this.eventBus.dispatch('textlayerrendered', {
79
87
  source: this,
80
88
  pageNumber: this.pageNumber,
@@ -82,7 +90,7 @@ var TextLayerBuilder = function () {
82
90
  });
83
91
  }
84
92
  }, {
85
- key: 'render',
93
+ key: "render",
86
94
  value: function render() {
87
95
  var _this = this;
88
96
 
@@ -91,6 +99,7 @@ var TextLayerBuilder = function () {
91
99
  if (!(this.textContent || this.textContentStream) || this.renderingDone) {
92
100
  return;
93
101
  }
102
+
94
103
  this.cancel();
95
104
  this.textDivs = [];
96
105
  var textLayerFrag = document.createDocumentFragment();
@@ -106,100 +115,132 @@ var TextLayerBuilder = function () {
106
115
  });
107
116
  this.textLayerRenderTask.promise.then(function () {
108
117
  _this.textLayerDiv.appendChild(textLayerFrag);
118
+
109
119
  _this._finishRendering();
110
- _this.updateMatches();
120
+
121
+ _this._updateMatches();
111
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
+ };
130
+
131
+ this.eventBus.on('updatetextlayermatches', this._onUpdateTextLayerMatches);
132
+ }
112
133
  }
113
134
  }, {
114
- key: 'cancel',
135
+ key: "cancel",
115
136
  value: function cancel() {
116
137
  if (this.textLayerRenderTask) {
117
138
  this.textLayerRenderTask.cancel();
118
139
  this.textLayerRenderTask = null;
119
140
  }
141
+
142
+ if (this._onUpdateTextLayerMatches) {
143
+ this.eventBus.off('updatetextlayermatches', this._onUpdateTextLayerMatches);
144
+ this._onUpdateTextLayerMatches = null;
145
+ }
120
146
  }
121
147
  }, {
122
- key: 'setTextContentStream',
148
+ key: "setTextContentStream",
123
149
  value: function setTextContentStream(readableStream) {
124
150
  this.cancel();
125
151
  this.textContentStream = readableStream;
126
152
  }
127
153
  }, {
128
- key: 'setTextContent',
154
+ key: "setTextContent",
129
155
  value: function setTextContent(textContent) {
130
156
  this.cancel();
131
157
  this.textContent = textContent;
132
158
  }
133
159
  }, {
134
- key: 'convertMatches',
135
- value: function convertMatches(matches, matchesLength) {
136
- var i = 0;
137
- var iIndex = 0;
138
- var textContentItemsStr = this.textContentItemsStr;
139
- var end = textContentItemsStr.length - 1;
140
- var queryLen = this.findController === null ? 0 : this.findController.state.query.length;
141
- var ret = [];
160
+ key: "_convertMatches",
161
+ value: function _convertMatches(matches, matchesLength) {
142
162
  if (!matches) {
143
- return ret;
163
+ return [];
144
164
  }
145
- for (var m = 0, len = matches.length; m < len; m++) {
165
+
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 = [];
173
+
174
+ for (var m = 0, mm = matches.length; m < mm; m++) {
146
175
  var matchIdx = matches[m];
176
+
147
177
  while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) {
148
178
  iIndex += textContentItemsStr[i].length;
149
179
  i++;
150
180
  }
181
+
151
182
  if (i === textContentItemsStr.length) {
152
183
  console.error('Could not find a matching mapping');
153
184
  }
185
+
154
186
  var match = {
155
187
  begin: {
156
188
  divIdx: i,
157
189
  offset: matchIdx - iIndex
158
190
  }
159
191
  };
192
+
160
193
  if (matchesLength) {
161
194
  matchIdx += matchesLength[m];
162
195
  } else {
163
196
  matchIdx += queryLen;
164
197
  }
198
+
165
199
  while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) {
166
200
  iIndex += textContentItemsStr[i].length;
167
201
  i++;
168
202
  }
203
+
169
204
  match.end = {
170
205
  divIdx: i,
171
206
  offset: matchIdx - iIndex
172
207
  };
173
- ret.push(match);
208
+ result.push(match);
174
209
  }
175
- return ret;
210
+
211
+ return result;
176
212
  }
177
213
  }, {
178
- key: 'renderMatches',
179
- value: function renderMatches(matches) {
214
+ key: "_renderMatches",
215
+ value: function _renderMatches(matches) {
180
216
  if (matches.length === 0) {
181
217
  return;
182
218
  }
183
- var textContentItemsStr = this.textContentItemsStr;
184
- var textDivs = this.textDivs;
219
+
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;
185
227
  var prevEnd = null;
186
- var pageIdx = this.pageIdx;
187
- var isSelectedPage = this.findController === null ? false : pageIdx === this.findController.selected.pageIdx;
188
- var selectedMatchIdx = this.findController === null ? -1 : this.findController.selected.matchIdx;
189
- var highlightAll = this.findController === null ? false : this.findController.state.highlightAll;
190
228
  var infinity = {
191
229
  divIdx: -1,
192
230
  offset: undefined
193
231
  };
232
+
194
233
  function beginText(begin, className) {
195
234
  var divIdx = begin.divIdx;
196
235
  textDivs[divIdx].textContent = '';
197
236
  appendTextToDiv(divIdx, 0, begin.offset, className);
198
237
  }
238
+
199
239
  function appendTextToDiv(divIdx, fromOffset, toOffset, className) {
200
240
  var div = textDivs[divIdx];
201
241
  var content = textContentItemsStr[divIdx].substring(fromOffset, toOffset);
202
242
  var node = document.createTextNode(content);
243
+
203
244
  if (className) {
204
245
  var span = document.createElement('span');
205
246
  span.className = className;
@@ -207,82 +248,103 @@ var TextLayerBuilder = function () {
207
248
  div.appendChild(span);
208
249
  return;
209
250
  }
251
+
210
252
  div.appendChild(node);
211
253
  }
254
+
212
255
  var i0 = selectedMatchIdx,
213
256
  i1 = i0 + 1;
257
+
214
258
  if (highlightAll) {
215
259
  i0 = 0;
216
260
  i1 = matches.length;
217
261
  } else if (!isSelectedPage) {
218
262
  return;
219
263
  }
264
+
220
265
  for (var i = i0; i < i1; i++) {
221
266
  var match = matches[i];
222
267
  var begin = match.begin;
223
268
  var end = match.end;
224
269
  var isSelected = isSelectedPage && i === selectedMatchIdx;
225
270
  var highlightSuffix = isSelected ? ' selected' : '';
226
- if (this.findController) {
227
- this.findController.updateMatchPosition(pageIdx, i, textDivs, begin.divIdx);
271
+
272
+ if (isSelected) {
273
+ findController.scrollMatchIntoView({
274
+ element: textDivs[begin.divIdx],
275
+ pageIndex: pageIdx,
276
+ matchIndex: selectedMatchIdx
277
+ });
228
278
  }
279
+
229
280
  if (!prevEnd || begin.divIdx !== prevEnd.divIdx) {
230
281
  if (prevEnd !== null) {
231
282
  appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
232
283
  }
284
+
233
285
  beginText(begin);
234
286
  } else {
235
287
  appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset);
236
288
  }
289
+
237
290
  if (begin.divIdx === end.divIdx) {
238
291
  appendTextToDiv(begin.divIdx, begin.offset, end.offset, 'highlight' + highlightSuffix);
239
292
  } else {
240
293
  appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, 'highlight begin' + highlightSuffix);
294
+
241
295
  for (var n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) {
242
296
  textDivs[n0].className = 'highlight middle' + highlightSuffix;
243
297
  }
298
+
244
299
  beginText(end, 'highlight end' + highlightSuffix);
245
300
  }
301
+
246
302
  prevEnd = end;
247
303
  }
304
+
248
305
  if (prevEnd) {
249
306
  appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset);
250
307
  }
251
308
  }
252
309
  }, {
253
- key: 'updateMatches',
254
- value: function updateMatches() {
310
+ key: "_updateMatches",
311
+ value: function _updateMatches() {
255
312
  if (!this.renderingDone) {
256
313
  return;
257
314
  }
258
- var matches = this.matches;
259
- var textDivs = this.textDivs;
260
- var textContentItemsStr = this.textContentItemsStr;
315
+
316
+ var findController = this.findController,
317
+ matches = this.matches,
318
+ pageIdx = this.pageIdx,
319
+ textContentItemsStr = this.textContentItemsStr,
320
+ textDivs = this.textDivs;
261
321
  var clearedUntilDivIdx = -1;
262
- for (var i = 0, len = matches.length; i < len; i++) {
322
+
323
+ for (var i = 0, ii = matches.length; i < ii; i++) {
263
324
  var match = matches[i];
264
325
  var begin = Math.max(clearedUntilDivIdx, match.begin.divIdx);
326
+
265
327
  for (var n = begin, end = match.end.divIdx; n <= end; n++) {
266
328
  var div = textDivs[n];
267
329
  div.textContent = textContentItemsStr[n];
268
330
  div.className = '';
269
331
  }
332
+
270
333
  clearedUntilDivIdx = match.end.divIdx + 1;
271
334
  }
272
- if (this.findController === null || !this.findController.active) {
335
+
336
+ if (!findController || !findController.highlightMatches) {
273
337
  return;
274
338
  }
275
- var pageMatches = void 0,
276
- pageMatchesLength = void 0;
277
- if (this.findController !== null) {
278
- pageMatches = this.findController.pageMatches[this.pageIdx] || null;
279
- pageMatchesLength = this.findController.pageMatchesLength ? this.findController.pageMatchesLength[this.pageIdx] || null : null;
280
- }
281
- this.matches = this.convertMatches(pageMatches, pageMatchesLength);
282
- this.renderMatches(this.matches);
339
+
340
+ var pageMatches = findController.pageMatches[pageIdx] || null;
341
+ var pageMatchesLength = findController.pageMatchesLength[pageIdx] || null;
342
+ this.matches = this._convertMatches(pageMatches, pageMatchesLength);
343
+
344
+ this._renderMatches(this.matches);
283
345
  }
284
346
  }, {
285
- key: '_bindMouse',
347
+ key: "_bindMouse",
286
348
  value: function _bindMouse() {
287
349
  var _this2 = this;
288
350
 
@@ -291,23 +353,30 @@ var TextLayerBuilder = function () {
291
353
  div.addEventListener('mousedown', function (evt) {
292
354
  if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) {
293
355
  _this2.textLayerRenderTask.expandTextDivs(true);
356
+
294
357
  if (expandDivsTimer) {
295
358
  clearTimeout(expandDivsTimer);
296
359
  expandDivsTimer = null;
297
360
  }
361
+
298
362
  return;
299
363
  }
364
+
300
365
  var end = div.querySelector('.endOfContent');
366
+
301
367
  if (!end) {
302
368
  return;
303
369
  }
370
+
304
371
  var adjustTop = evt.target !== div;
305
372
  adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue('-moz-user-select') !== 'none';
373
+
306
374
  if (adjustTop) {
307
375
  var divBounds = div.getBoundingClientRect();
308
376
  var r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height);
309
377
  end.style.top = (r * 100).toFixed(2) + '%';
310
378
  }
379
+
311
380
  end.classList.add('active');
312
381
  });
313
382
  div.addEventListener('mouseup', function () {
@@ -316,14 +385,18 @@ var TextLayerBuilder = function () {
316
385
  if (_this2.textLayerRenderTask) {
317
386
  _this2.textLayerRenderTask.expandTextDivs(false);
318
387
  }
388
+
319
389
  expandDivsTimer = null;
320
390
  }, EXPAND_DIVS_TIMEOUT);
321
391
  return;
322
392
  }
393
+
323
394
  var end = div.querySelector('.endOfContent');
395
+
324
396
  if (!end) {
325
397
  return;
326
398
  }
399
+
327
400
  end.style.top = '';
328
401
  end.classList.remove('active');
329
402
  });
@@ -333,16 +406,19 @@ var TextLayerBuilder = function () {
333
406
  return TextLayerBuilder;
334
407
  }();
335
408
 
336
- var DefaultTextLayerFactory = function () {
409
+ exports.TextLayerBuilder = TextLayerBuilder;
410
+
411
+ var DefaultTextLayerFactory =
412
+ /*#__PURE__*/
413
+ function () {
337
414
  function DefaultTextLayerFactory() {
338
415
  _classCallCheck(this, DefaultTextLayerFactory);
339
416
  }
340
417
 
341
418
  _createClass(DefaultTextLayerFactory, [{
342
- key: 'createTextLayerBuilder',
419
+ key: "createTextLayerBuilder",
343
420
  value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) {
344
421
  var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
345
-
346
422
  return new TextLayerBuilder({
347
423
  textLayerDiv: textLayerDiv,
348
424
  pageIndex: pageIndex,
@@ -355,5 +431,4 @@ var DefaultTextLayerFactory = function () {
355
431
  return DefaultTextLayerFactory;
356
432
  }();
357
433
 
358
- exports.TextLayerBuilder = TextLayerBuilder;
359
434
  exports.DefaultTextLayerFactory = DefaultTextLayerFactory;