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