pdfjs-dist 2.0.943 → 2.1.266

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pdfjs-dist might be problematic. Click here for more details.

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