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.
- package/CODE_OF_CONDUCT.md +15 -0
- package/bower.json +1 -1
- package/build/pdf.js +18515 -11402
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +48266 -37137
- 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 +11350 -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 +587 -242
- 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 +433 -61
- package/lib/core/charsets.js +5 -4
- package/lib/core/chunked_stream.js +400 -152
- package/lib/core/cmap.js +326 -87
- package/lib/core/colorspace.js +874 -594
- package/lib/core/core_utils.js +147 -0
- package/lib/core/crypto.js +290 -45
- package/lib/core/document.js +560 -268
- package/lib/core/encodings.js +19 -10
- package/lib/core/evaluator.js +1005 -360
- package/lib/core/font_renderer.js +331 -97
- package/lib/core/fonts.js +812 -195
- package/lib/core/function.js +284 -71
- package/lib/core/glyphlist.js +4 -3
- package/lib/core/image.js +169 -62
- package/lib/core/image_utils.js +111 -0
- 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 +253 -29
- package/lib/core/jpx.js +396 -6
- package/lib/core/jpx_stream.js +18 -6
- package/lib/core/metrics.js +15 -15
- package/lib/core/murmurhash3.js +56 -34
- package/lib/core/obj.js +1354 -488
- package/lib/core/operator_list.js +144 -31
- package/lib/core/parser.js +539 -191
- package/lib/core/pattern.js +148 -14
- package/lib/core/pdf_manager.js +323 -133
- package/lib/core/primitives.js +111 -24
- package/lib/core/ps_parser.js +134 -45
- package/lib/core/standard_fonts.js +17 -17
- package/lib/core/stream.js +313 -34
- package/lib/core/type1_parser.js +143 -13
- package/lib/core/unicode.js +32 -5
- package/lib/core/worker.js +217 -190
- package/lib/core/worker_stream.js +277 -0
- package/lib/display/annotation_layer.js +450 -133
- package/lib/display/api.js +1597 -784
- package/lib/display/api_compatibility.js +11 -13
- package/lib/display/canvas.js +360 -44
- package/lib/display/content_disposition.js +83 -32
- package/lib/display/display_utils.js +747 -0
- package/lib/display/fetch_stream.js +221 -90
- package/lib/display/font_loader.js +468 -236
- package/lib/display/metadata.js +38 -16
- package/lib/display/network.js +635 -428
- package/lib/display/network_utils.js +32 -19
- package/lib/display/node_stream.js +367 -175
- package/lib/display/pattern_helper.js +81 -31
- package/lib/display/svg.js +1235 -519
- package/lib/display/text_layer.js +153 -29
- package/lib/display/transport_stream.js +345 -94
- 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 +60 -4
- package/lib/pdf.js +36 -14
- 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 +243 -710
- package/lib/test/unit/annotation_spec.js +870 -401
- package/lib/test/unit/api_spec.js +657 -345
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +54 -11
- package/lib/test/unit/clitests_helper.js +10 -8
- package/lib/test/unit/cmap_spec.js +95 -41
- package/lib/test/unit/colorspace_spec.js +115 -63
- package/lib/test/unit/core_utils_spec.js +191 -0
- package/lib/test/unit/crypto_spec.js +17 -5
- package/lib/test/unit/custom_spec.js +43 -55
- package/lib/test/unit/display_svg_spec.js +34 -18
- package/lib/test/unit/display_utils_spec.js +273 -0
- package/lib/test/unit/document_spec.js +8 -13
- package/lib/test/unit/encodings_spec.js +25 -45
- package/lib/test/unit/evaluator_spec.js +38 -15
- package/lib/test/unit/fetch_stream_spec.js +109 -0
- package/lib/test/unit/function_spec.js +17 -5
- package/lib/test/unit/jasmine-boot.js +33 -20
- 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 +19 -54
- package/lib/test/unit/network_utils_spec.js +91 -14
- package/lib/test/unit/node_stream_spec.js +56 -32
- package/lib/test/unit/parser_spec.js +162 -71
- 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 +53 -20
- package/lib/test/unit/stream_spec.js +12 -4
- package/lib/test/unit/test_utils.js +273 -56
- 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 +454 -16
- package/lib/test/unit/unicode_spec.js +18 -15
- package/lib/test/unit/util_spec.js +87 -128
- package/lib/web/annotation_layer_builder.js +39 -22
- package/lib/web/app.js +1290 -588
- package/lib/web/app_options.js +100 -62
- package/lib/web/base_viewer.js +511 -182
- package/lib/web/chromecom.js +261 -117
- package/lib/web/debugger.js +166 -22
- package/lib/web/download_manager.js +32 -13
- package/lib/web/firefox_print_service.js +20 -10
- package/lib/web/firefoxcom.js +315 -80
- package/lib/web/genericcom.js +89 -30
- package/lib/web/genericl10n.js +142 -30
- package/lib/web/grab_to_pan.js +28 -4
- package/lib/web/interfaces.js +170 -47
- package/lib/web/overlay_manager.js +235 -85
- package/lib/web/password_prompt.js +22 -14
- 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 +255 -136
- 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 +138 -77
- package/lib/web/pdf_outline_viewer.js +122 -46
- package/lib/web/pdf_page_view.js +191 -67
- package/lib/web/pdf_presentation_mode.js +99 -34
- package/lib/web/pdf_print_service.js +61 -13
- package/lib/web/pdf_rendering_queue.js +28 -9
- package/lib/web/pdf_sidebar.js +141 -81
- 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 +104 -33
- package/lib/web/pdf_thumbnail_viewer.js +66 -26
- package/lib/web/pdf_viewer.component.js +112 -32
- package/lib/web/pdf_viewer.js +91 -52
- package/lib/web/preferences.js +284 -89
- package/lib/web/secondary_toolbar.js +165 -40
- package/lib/web/text_layer_builder.js +134 -59
- 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 +79 -11
- package/web/pdf_viewer.js +6107 -3748
- package/web/pdf_viewer.js.map +1 -1
- package/lib/display/dom_utils.js +0 -309
- package/lib/test/unit/dom_utils_spec.js +0 -89
- 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 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
|
-
|
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,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:
|
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:
|
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
|
-
|
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:
|
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:
|
148
|
+
key: "setTextContentStream",
|
123
149
|
value: function setTextContentStream(readableStream) {
|
124
150
|
this.cancel();
|
125
151
|
this.textContentStream = readableStream;
|
126
152
|
}
|
127
153
|
}, {
|
128
|
-
key:
|
154
|
+
key: "setTextContent",
|
129
155
|
value: function setTextContent(textContent) {
|
130
156
|
this.cancel();
|
131
157
|
this.textContent = textContent;
|
132
158
|
}
|
133
159
|
}, {
|
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 = [];
|
160
|
+
key: "_convertMatches",
|
161
|
+
value: function _convertMatches(matches, matchesLength) {
|
142
162
|
if (!matches) {
|
143
|
-
return
|
163
|
+
return [];
|
144
164
|
}
|
145
|
-
|
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
|
-
|
208
|
+
result.push(match);
|
174
209
|
}
|
175
|
-
|
210
|
+
|
211
|
+
return result;
|
176
212
|
}
|
177
213
|
}, {
|
178
|
-
key:
|
179
|
-
value: function
|
214
|
+
key: "_renderMatches",
|
215
|
+
value: function _renderMatches(matches) {
|
180
216
|
if (matches.length === 0) {
|
181
217
|
return;
|
182
218
|
}
|
183
|
-
|
184
|
-
var
|
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
|
-
|
227
|
-
|
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:
|
254
|
-
value: function
|
310
|
+
key: "_updateMatches",
|
311
|
+
value: function _updateMatches() {
|
255
312
|
if (!this.renderingDone) {
|
256
313
|
return;
|
257
314
|
}
|
258
|
-
|
259
|
-
var
|
260
|
-
|
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
|
-
|
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
|
-
|
335
|
+
|
336
|
+
if (!findController || !findController.highlightMatches) {
|
273
337
|
return;
|
274
338
|
}
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
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:
|
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
|
-
|
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:
|
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;
|