@laminapdf/viewer 0.2.0-alpha.4 → 0.2.0-alpha.5
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.
- package/README.md +36 -8
- package/dist/client.d.ts +28 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +105 -5
- package/dist/client.js.map +1 -1
- package/dist/first-draw.d.ts +10 -0
- package/dist/first-draw.d.ts.map +1 -0
- package/dist/first-draw.js +33 -0
- package/dist/first-draw.js.map +1 -0
- package/dist/history/history.d.ts +65 -0
- package/dist/history/history.d.ts.map +1 -0
- package/dist/history/history.js +135 -0
- package/dist/history/history.js.map +1 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/layers/copy.d.ts +26 -0
- package/dist/layers/copy.d.ts.map +1 -0
- package/dist/layers/copy.js +150 -0
- package/dist/layers/copy.js.map +1 -0
- package/dist/layers/link-layer.d.ts +68 -0
- package/dist/layers/link-layer.d.ts.map +1 -0
- package/dist/layers/link-layer.js +279 -0
- package/dist/layers/link-layer.js.map +1 -0
- package/dist/layers/link-url.d.ts +19 -0
- package/dist/layers/link-url.d.ts.map +1 -0
- package/dist/layers/link-url.js +47 -0
- package/dist/layers/link-url.js.map +1 -0
- package/dist/layers/spans.d.ts +0 -6
- package/dist/layers/spans.d.ts.map +1 -1
- package/dist/layers/spans.js +2 -20
- package/dist/layers/spans.js.map +1 -1
- package/dist/layers/structure-layer.d.ts.map +1 -1
- package/dist/layers/structure-layer.js +3 -0
- package/dist/layers/structure-layer.js.map +1 -1
- package/dist/layers/text-layer.d.ts +20 -3
- package/dist/layers/text-layer.d.ts.map +1 -1
- package/dist/layers/text-layer.js +307 -23
- package/dist/layers/text-layer.js.map +1 -1
- package/dist/protocol.d.ts +79 -5
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +16 -4
- package/dist/protocol.js.map +1 -1
- package/dist/source/opfs.d.ts +35 -0
- package/dist/source/opfs.d.ts.map +1 -0
- package/dist/source/opfs.js +178 -0
- package/dist/source/opfs.js.map +1 -0
- package/dist/thumbnails/strip.d.ts +1 -1
- package/dist/thumbnails/strip.d.ts.map +1 -1
- package/dist/thumbnails/strip.js +14 -3
- package/dist/thumbnails/strip.js.map +1 -1
- package/dist/view/user-select.d.ts +3 -0
- package/dist/view/user-select.d.ts.map +1 -0
- package/dist/view/user-select.js +10 -0
- package/dist/view/user-select.js.map +1 -0
- package/dist/view/viewer.d.ts +61 -1
- package/dist/view/viewer.d.ts.map +1 -1
- package/dist/view/viewer.js +248 -40
- package/dist/view/viewer.js.map +1 -1
- package/dist/worker/document.d.ts +23 -1
- package/dist/worker/document.d.ts.map +1 -1
- package/dist/worker/document.js +68 -22
- package/dist/worker/document.js.map +1 -1
- package/dist/worker/find.d.ts.map +1 -1
- package/dist/worker/find.js +5 -18
- package/dist/worker/find.js.map +1 -1
- package/dist/worker/methods.d.ts.map +1 -1
- package/dist/worker/methods.js +23 -4
- package/dist/worker/methods.js.map +1 -1
- package/dist/worker/navigation.d.ts +5 -1
- package/dist/worker/navigation.d.ts.map +1 -1
- package/dist/worker/navigation.js +22 -4
- package/dist/worker/navigation.js.map +1 -1
- package/dist/worker/print.d.ts +14 -0
- package/dist/worker/print.d.ts.map +1 -0
- package/dist/worker/print.js +49 -0
- package/dist/worker/print.js.map +1 -0
- package/dist/worker/recent-pages.d.ts +14 -0
- package/dist/worker/recent-pages.d.ts.map +1 -0
- package/dist/worker/recent-pages.js +53 -0
- package/dist/worker/recent-pages.js.map +1 -0
- package/dist/worker/render.d.ts.map +1 -1
- package/dist/worker/render.js +5 -2
- package/dist/worker/render.js.map +1 -1
- package/dist/worker/text.d.ts +9 -1
- package/dist/worker/text.d.ts.map +1 -1
- package/dist/worker/text.js +29 -22
- package/dist/worker/text.js.map +1 -1
- package/package.json +6 -5
|
@@ -2,12 +2,17 @@
|
|
|
2
2
|
// Lamina PDF's extraction, laid over the rendered glyphs, so the browser's own selection, copy
|
|
3
3
|
// and screen readers work on the page's text. Spans are placed in page points inside a box that
|
|
4
4
|
// one CSS transform scales and rotates to the page's current size, so a zoom or a rotation moves
|
|
5
|
-
// no span.
|
|
6
|
-
//
|
|
7
|
-
//
|
|
5
|
+
// no span. Only the spans are selectable, never canvases or gaps, so a selection runs from one
|
|
6
|
+
// page into the next; the pages it touches stay mounted while it lasts. Copy writes the extracted
|
|
7
|
+
// text of the part of a selection inside the viewer: by paragraph in the extraction's reading
|
|
8
|
+
// order, or exact, as laid out (layers/copy.ts). Alt/Option-drag, or a drag in column mode,
|
|
9
|
+
// selects the runs inside a rectangle instead (a column of a multi-column page), which the layer
|
|
10
|
+
// marks itself, since a browser selection can't hold a rectangle.
|
|
8
11
|
import { range as range_ } from "../layout/range.js";
|
|
12
|
+
import { setUserSelect } from "../view/user-select.js";
|
|
9
13
|
import { placeBox } from "./box.js";
|
|
10
|
-
import {
|
|
14
|
+
import { copySelection } from "./copy.js";
|
|
15
|
+
import { layoutSpans } from "./spans.js";
|
|
11
16
|
import { StructureLayer } from "./structure-layer.js";
|
|
12
17
|
/** Numbers each text layer, for its span ids. */
|
|
13
18
|
let nextViewer = 0;
|
|
@@ -24,6 +29,18 @@ export class TextLayer {
|
|
|
24
29
|
/** Each mounted page's size in CSS px, as the last resize gave it. */
|
|
25
30
|
#sizes = new Map();
|
|
26
31
|
#pointerType = "";
|
|
32
|
+
/** A pointer is down in the viewer: a selection it makes isn't settled until it comes up. */
|
|
33
|
+
#pointerDown = false;
|
|
34
|
+
/** The mode the next copy event writes in (a command may ask for exact). */
|
|
35
|
+
#copyMode = "paragraph";
|
|
36
|
+
/** Each page's reading-order blocks, once read; a page being read has a pending entry. */
|
|
37
|
+
#blocks = new Map();
|
|
38
|
+
/** Whether a plain drag selects a rectangle (column mode), as an Alt-drag always does. */
|
|
39
|
+
#columnMode = false;
|
|
40
|
+
/** The column selection: its pieces and spans, while it lasts. */
|
|
41
|
+
#column;
|
|
42
|
+
/** The rectangle being dragged out for a column selection. */
|
|
43
|
+
#drag;
|
|
27
44
|
/** Span ids' prefix, unique to this viewer, so two viewers on a page never share an id. */
|
|
28
45
|
#idPrefix = `lamina-text-${nextViewer++}-`;
|
|
29
46
|
/** Counts opens: a structure tree answered for an earlier document is dropped. */
|
|
@@ -34,20 +51,72 @@ export class TextLayer {
|
|
|
34
51
|
this.#host = host;
|
|
35
52
|
this.#options = options;
|
|
36
53
|
this.#structure = new StructureLayer(host.root, options.untaggedLabel ?? "Untagged document", this.#idPrefix);
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
selectable(host.root, "none");
|
|
54
|
+
// Only the spans are selectable (set on each); what holds nothing to select sets `none` on
|
|
55
|
+
// itself (view/user-select.ts says why no ancestor of the spans may).
|
|
40
56
|
this.#listen(document, "selectionchange", () => this.#selectionChanged());
|
|
41
57
|
this.#listen(document, "copy", (e) => this.#copy(e));
|
|
42
58
|
this.#listen(host.root, "keydown", (e) => this.#selectAll(e));
|
|
43
|
-
this.#listen(host.root, "pointerdown", (e) =>
|
|
44
|
-
|
|
59
|
+
this.#listen(host.root, "pointerdown", (e) => this.#pointerDownIn(e));
|
|
60
|
+
this.#listen(document, "pointermove", (e) => this.#dragTo(e));
|
|
61
|
+
this.#listen(document, "pointerup", (e) => this.#pointerUp(e));
|
|
62
|
+
this.#listen(document, "pointercancel", (e) => this.#pointerUp(e));
|
|
63
|
+
// On the document: the drag that made a column selection kept the focus where it was.
|
|
64
|
+
this.#listen(document, "keydown", (e) => {
|
|
65
|
+
if (e.key === "Escape" && this.#column !== undefined)
|
|
66
|
+
this.#clearColumn(true);
|
|
45
67
|
});
|
|
46
68
|
}
|
|
69
|
+
/** Whether a plain drag selects a rectangle (column mode). */
|
|
70
|
+
get columnMode() {
|
|
71
|
+
return this.#columnMode;
|
|
72
|
+
}
|
|
73
|
+
set columnMode(on) {
|
|
74
|
+
this.#columnMode = on;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Copies the selection in `mode` to the clipboard, as the copy event would (for a command or a
|
|
78
|
+
* toolbar button; it must run in a user gesture). Resolves false when nothing is selected or
|
|
79
|
+
* the clipboard refused.
|
|
80
|
+
*/
|
|
81
|
+
async copy(mode = "paragraph") {
|
|
82
|
+
const pieces = this.#selectedPieces();
|
|
83
|
+
if (pieces === undefined || pieces.length === 0)
|
|
84
|
+
return false;
|
|
85
|
+
// The browser's own copy, in this gesture: the copy event writes both formats.
|
|
86
|
+
this.#copyMode = mode;
|
|
87
|
+
try {
|
|
88
|
+
if (document.execCommand("copy"))
|
|
89
|
+
return true;
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
// No synchronous copy here: the async clipboard below.
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
this.#copyMode = "paragraph";
|
|
96
|
+
}
|
|
97
|
+
const copied = copySelection(pieces, mode, (page) => this.#blocksOf(page));
|
|
98
|
+
try {
|
|
99
|
+
if (typeof ClipboardItem !== "undefined" && navigator.clipboard?.write !== undefined) {
|
|
100
|
+
await navigator.clipboard.write([
|
|
101
|
+
new ClipboardItem({
|
|
102
|
+
"text/plain": new Blob([copied.text], { type: "text/plain" }),
|
|
103
|
+
"text/html": new Blob([copied.html], { type: "text/html" }),
|
|
104
|
+
}),
|
|
105
|
+
]);
|
|
106
|
+
}
|
|
107
|
+
else
|
|
108
|
+
await navigator.clipboard.writeText(copied.text);
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
47
115
|
/** A new document: its page sizes, and its structure tree, read once. */
|
|
48
116
|
open(document) {
|
|
49
117
|
this.#points = document.pages.map((p) => ({ width: p.width, height: p.height }));
|
|
50
118
|
this.#structure.reset();
|
|
119
|
+
this.#blocks.clear();
|
|
51
120
|
const opening = ++this.#generation;
|
|
52
121
|
this.#host.client
|
|
53
122
|
.structure()
|
|
@@ -100,6 +169,9 @@ export class TextLayer {
|
|
|
100
169
|
this.#structure.unlink(page);
|
|
101
170
|
this.#pages.delete(page);
|
|
102
171
|
this.#sizes.delete(page);
|
|
172
|
+
this.#blocks.delete(page);
|
|
173
|
+
if (this.#column?.pieces.some((p) => p.page === page))
|
|
174
|
+
this.#clearColumn(true);
|
|
103
175
|
}
|
|
104
176
|
onZoom(page, _slot, size) {
|
|
105
177
|
this.#sizes.set(page, size);
|
|
@@ -155,7 +227,7 @@ export class TextLayer {
|
|
|
155
227
|
transformOrigin: "0 0",
|
|
156
228
|
...(this.#options.outline === true ? { outline: "1px solid rgb(220 0 0 / 0.7)" } : {}),
|
|
157
229
|
});
|
|
158
|
-
|
|
230
|
+
setUserSelect(span, "text");
|
|
159
231
|
this.#specs.set(span, { page, spec });
|
|
160
232
|
fragment.append(span);
|
|
161
233
|
return span;
|
|
@@ -192,13 +264,38 @@ export class TextLayer {
|
|
|
192
264
|
#spansInOrder() {
|
|
193
265
|
return [...this.#pages.entries()].sort(([a], [b]) => a - b).flatMap(([, text]) => text.spans);
|
|
194
266
|
}
|
|
195
|
-
/**
|
|
267
|
+
/**
|
|
268
|
+
* The selection's range in this viewer. A selection that runs on past the viewer into the app
|
|
269
|
+
* around it is cut at the first or last mounted span, so copy, the pinned pages and
|
|
270
|
+
* `onSelection` keep to the page text. `undefined` when it doesn't reach the viewer, or when its
|
|
271
|
+
* other end is in another viewer: neither could tell the whole of it, so both leave it to the
|
|
272
|
+
* browser.
|
|
273
|
+
*/
|
|
196
274
|
#range() {
|
|
197
275
|
const selection = document.getSelection();
|
|
198
276
|
if (selection === null || selection.rangeCount === 0 || selection.isCollapsed)
|
|
199
277
|
return undefined;
|
|
200
278
|
const range = selection.getRangeAt(0);
|
|
201
|
-
|
|
279
|
+
const root = this.#host.root;
|
|
280
|
+
if (root.contains(range.commonAncestorContainer))
|
|
281
|
+
return range;
|
|
282
|
+
if (!range.intersectsNode(root))
|
|
283
|
+
return undefined;
|
|
284
|
+
const outside = (node) => !root.contains(node);
|
|
285
|
+
const inOtherViewer = (node) => outside(node) && (node instanceof Element ? node : node.parentElement)?.closest(".lamina-viewer") != null;
|
|
286
|
+
if (inOtherViewer(range.startContainer) || inOtherViewer(range.endContainer))
|
|
287
|
+
return undefined;
|
|
288
|
+
const spans = this.#spansInOrder();
|
|
289
|
+
const first = spans[0];
|
|
290
|
+
const last = spans.at(-1);
|
|
291
|
+
if (first === undefined || last === undefined)
|
|
292
|
+
return undefined;
|
|
293
|
+
const inside = range.cloneRange();
|
|
294
|
+
if (outside(range.startContainer))
|
|
295
|
+
inside.setStart(first, 0);
|
|
296
|
+
if (outside(range.endContainer))
|
|
297
|
+
inside.setEnd(last, last.childNodes.length);
|
|
298
|
+
return inside.collapsed ? undefined : inside;
|
|
202
299
|
}
|
|
203
300
|
/** The selected part of each span the selection touches, in order. */
|
|
204
301
|
#pieces(range) {
|
|
@@ -216,11 +313,62 @@ export class TextLayer {
|
|
|
216
313
|
}
|
|
217
314
|
return pieces;
|
|
218
315
|
}
|
|
219
|
-
|
|
316
|
+
/** The selection's pieces: the browser selection's in this viewer, else the column's. */
|
|
317
|
+
#selectedPieces() {
|
|
220
318
|
const range = this.#range();
|
|
221
|
-
if (range
|
|
319
|
+
if (range !== undefined)
|
|
320
|
+
return this.#pieces(range);
|
|
321
|
+
// The column, unless something else is selected or a field has the focus: that copy is theirs.
|
|
322
|
+
const selection = document.getSelection();
|
|
323
|
+
const elsewhere = selection !== null && selection.rangeCount > 0 && !selection.isCollapsed;
|
|
324
|
+
const field = document.activeElement?.closest("input, textarea, [contenteditable]") ?? null;
|
|
325
|
+
return elsewhere || field !== null ? undefined : this.#column?.pieces;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Page `page`'s reading-order blocks if read; else starts reading them, and tells the app the
|
|
329
|
+
* selection again once they come, its text then in reading order. A page whose blocks can't be
|
|
330
|
+
* read gets none, once: its text is joined in run order.
|
|
331
|
+
*/
|
|
332
|
+
#blocksOf(page) {
|
|
333
|
+
const known = this.#blocks.get(page);
|
|
334
|
+
if (known === "reading")
|
|
335
|
+
return undefined;
|
|
336
|
+
if (known !== undefined)
|
|
337
|
+
return known;
|
|
338
|
+
this.#blocks.set(page, "reading");
|
|
339
|
+
const asked = this.#generation;
|
|
340
|
+
const store = (blocks) => {
|
|
341
|
+
// Another document opened since: these blocks are the old one's.
|
|
342
|
+
if (asked !== this.#generation || this.#blocks.get(page) !== "reading")
|
|
343
|
+
return;
|
|
344
|
+
this.#blocks.set(page, blocks);
|
|
345
|
+
this.#retell();
|
|
346
|
+
};
|
|
347
|
+
this.#host.client
|
|
348
|
+
.readingOrder(page)
|
|
349
|
+
.then(store)
|
|
350
|
+
.catch(() => store([]));
|
|
351
|
+
return undefined;
|
|
352
|
+
}
|
|
353
|
+
/** Tells the app about the selection as it is now (its text may read better with new blocks). */
|
|
354
|
+
#retell() {
|
|
355
|
+
if (!this.#selecting)
|
|
356
|
+
return;
|
|
357
|
+
if (this.#column !== undefined) {
|
|
358
|
+
this.#tell(this.#column.pieces, this.#column.spans.map((s) => s.getBoundingClientRect()), true);
|
|
222
359
|
return;
|
|
223
|
-
|
|
360
|
+
}
|
|
361
|
+
const range = this.#range();
|
|
362
|
+
if (range !== undefined)
|
|
363
|
+
this.#tell(this.#pieces(range), [...range.getClientRects()], false);
|
|
364
|
+
}
|
|
365
|
+
#copy(event) {
|
|
366
|
+
const pieces = this.#selectedPieces();
|
|
367
|
+
if (pieces === undefined || event.clipboardData === null)
|
|
368
|
+
return;
|
|
369
|
+
const copied = copySelection(pieces, this.#copyMode, (page) => this.#blocksOf(page));
|
|
370
|
+
event.clipboardData.setData("text/plain", copied.text);
|
|
371
|
+
event.clipboardData.setData("text/html", copied.html);
|
|
224
372
|
event.preventDefault();
|
|
225
373
|
}
|
|
226
374
|
/** Ctrl/Cmd+A in the viewer selects the mounted pages' text (find reaches the rest). */
|
|
@@ -242,6 +390,16 @@ export class TextLayer {
|
|
|
242
390
|
}
|
|
243
391
|
#selectionChanged() {
|
|
244
392
|
const range = this.#range();
|
|
393
|
+
// A browser selection replaces a column selection.
|
|
394
|
+
if (range !== undefined && this.#column !== undefined)
|
|
395
|
+
this.#clearColumn(false);
|
|
396
|
+
if (range === undefined && this.#column !== undefined) {
|
|
397
|
+
// A selection made elsewhere (a field, the outline) ends the column's; a collapsed one doesn't.
|
|
398
|
+
const selection = document.getSelection();
|
|
399
|
+
if (selection !== null && selection.rangeCount > 0 && !selection.isCollapsed)
|
|
400
|
+
this.#clearColumn(true);
|
|
401
|
+
return;
|
|
402
|
+
}
|
|
245
403
|
if (range === undefined) {
|
|
246
404
|
// A selection elsewhere on the page (an input, another viewer): told once, when it leaves.
|
|
247
405
|
if (!this.#selecting)
|
|
@@ -260,21 +418,147 @@ export class TextLayer {
|
|
|
260
418
|
const [low, high] = [start ?? end, end ?? start];
|
|
261
419
|
if (low !== undefined && high !== undefined)
|
|
262
420
|
this.#host.keepMounted(range_(Math.min(low, high), Math.max(low, high)));
|
|
421
|
+
this.#tell(this.#pieces(range), [...range.getClientRects()], false);
|
|
422
|
+
}
|
|
423
|
+
/** Tells the app about a selection of `pieces` (and reads their pages' blocks for copy). */
|
|
424
|
+
#tell(pieces, rects, column) {
|
|
425
|
+
const pages = [...new Set(pieces.map((p) => p.page))];
|
|
426
|
+
for (const page of pages)
|
|
427
|
+
this.#blocksOf(page);
|
|
263
428
|
if (this.#options.onSelection === undefined)
|
|
264
429
|
return;
|
|
265
|
-
|
|
430
|
+
// The text only when asked for (Search for, Share): joining it on every change of a drag costs.
|
|
431
|
+
let text;
|
|
432
|
+
const blocksOf = (page) => this.#blocksOf(page);
|
|
266
433
|
this.#options.onSelection({
|
|
267
|
-
text
|
|
268
|
-
|
|
269
|
-
|
|
434
|
+
get text() {
|
|
435
|
+
text ??= copySelection(pieces, "paragraph", blocksOf).text;
|
|
436
|
+
return text;
|
|
437
|
+
},
|
|
438
|
+
rects,
|
|
439
|
+
pages,
|
|
270
440
|
pointerType: this.#pointerType,
|
|
441
|
+
settled: !this.#pointerDown,
|
|
442
|
+
column,
|
|
443
|
+
});
|
|
444
|
+
}
|
|
445
|
+
#pointerDownIn(event) {
|
|
446
|
+
this.#pointerType = event.pointerType;
|
|
447
|
+
this.#pointerDown = true;
|
|
448
|
+
// The page the press is on: its blocks are read while the drag goes on, for the copy after it.
|
|
449
|
+
const page = event.target instanceof Node ? pageOf(event.target) : undefined;
|
|
450
|
+
if (page !== undefined && this.#pages.has(page))
|
|
451
|
+
this.#blocksOf(page);
|
|
452
|
+
if (this.#column !== undefined)
|
|
453
|
+
this.#clearColumn(true);
|
|
454
|
+
const rectangle = (event.altKey || this.#columnMode) && event.pointerType !== "touch" && event.button === 0;
|
|
455
|
+
if (!rectangle)
|
|
456
|
+
return;
|
|
457
|
+
// A rectangle, not a run of text: the browser's selection stays out of it.
|
|
458
|
+
event.preventDefault();
|
|
459
|
+
document.getSelection()?.removeAllRanges();
|
|
460
|
+
const box = document.createElement("div");
|
|
461
|
+
box.className = "lamina-column-selection";
|
|
462
|
+
Object.assign(box.style, {
|
|
463
|
+
position: "fixed",
|
|
464
|
+
left: `${event.clientX}px`,
|
|
465
|
+
top: `${event.clientY}px`,
|
|
466
|
+
width: "0",
|
|
467
|
+
height: "0",
|
|
468
|
+
border: "1px dashed currentColor",
|
|
469
|
+
background: "rgb(45 93 168 / 0.08)",
|
|
470
|
+
pointerEvents: "none",
|
|
471
|
+
zIndex: "1",
|
|
472
|
+
});
|
|
473
|
+
this.#host.root.append(box);
|
|
474
|
+
this.#drag = { x: event.clientX, y: event.clientY, box, pointer: event.pointerId };
|
|
475
|
+
}
|
|
476
|
+
#dragTo(event) {
|
|
477
|
+
const drag = this.#drag;
|
|
478
|
+
if (drag === undefined || event.pointerId !== drag.pointer)
|
|
479
|
+
return;
|
|
480
|
+
const r = rectBetween(drag, event);
|
|
481
|
+
Object.assign(drag.box.style, {
|
|
482
|
+
left: `${r.left}px`,
|
|
483
|
+
top: `${r.top}px`,
|
|
484
|
+
width: `${r.width}px`,
|
|
485
|
+
height: `${r.height}px`,
|
|
271
486
|
});
|
|
272
487
|
}
|
|
488
|
+
#pointerUp(event) {
|
|
489
|
+
const wasDown = this.#pointerDown;
|
|
490
|
+
this.#pointerDown = false;
|
|
491
|
+
const drag = this.#drag;
|
|
492
|
+
if (drag !== undefined && event.pointerId === drag.pointer) {
|
|
493
|
+
this.#drag = undefined;
|
|
494
|
+
drag.box.remove();
|
|
495
|
+
this.#selectColumn(rectBetween(drag, event));
|
|
496
|
+
return;
|
|
497
|
+
}
|
|
498
|
+
if (!wasDown)
|
|
499
|
+
return;
|
|
500
|
+
// The drag ended: the selection is settled, and the app may show its toolbar now.
|
|
501
|
+
const range = this.#range();
|
|
502
|
+
if (range !== undefined)
|
|
503
|
+
this.#tell(this.#pieces(range), [...range.getClientRects()], false);
|
|
504
|
+
}
|
|
505
|
+
/** Selects the runs whose centre is inside `area` (client coordinates), in page and run order. */
|
|
506
|
+
#selectColumn(area) {
|
|
507
|
+
if (area.width < 2 || area.height < 2)
|
|
508
|
+
return;
|
|
509
|
+
const spans = [];
|
|
510
|
+
const pieces = [];
|
|
511
|
+
const rects = [];
|
|
512
|
+
for (const span of this.#spansInOrder()) {
|
|
513
|
+
const info = this.#specs.get(span);
|
|
514
|
+
if (info === undefined)
|
|
515
|
+
continue;
|
|
516
|
+
const r = span.getBoundingClientRect();
|
|
517
|
+
const [x, y] = [r.left + r.width / 2, r.top + r.height / 2];
|
|
518
|
+
if (x < area.left || x > area.left + area.width || y < area.top || y > area.top + area.height)
|
|
519
|
+
continue;
|
|
520
|
+
spans.push(span);
|
|
521
|
+
rects.push(r);
|
|
522
|
+
pieces.push({ page: info.page, text: span.textContent ?? "", span: info.spec });
|
|
523
|
+
}
|
|
524
|
+
if (pieces.length === 0)
|
|
525
|
+
return;
|
|
526
|
+
for (const span of spans)
|
|
527
|
+
span.classList.add("lamina-column-selected");
|
|
528
|
+
// The browser draws no selection for these: a tint marks them, under the ink as the
|
|
529
|
+
// selection's own would be.
|
|
530
|
+
for (const span of spans)
|
|
531
|
+
span.style.backgroundColor = "rgb(45 93 168 / 0.25)";
|
|
532
|
+
this.#column = { pieces, spans };
|
|
533
|
+
this.#selecting = true;
|
|
534
|
+
this.#host.keepMounted(new Set(pieces.map((p) => p.page)));
|
|
535
|
+
this.#tell(pieces, rects, true);
|
|
536
|
+
}
|
|
537
|
+
/** Ends the column selection; `tell` says so to the app (not when a browser selection replaces it). */
|
|
538
|
+
#clearColumn(tell) {
|
|
539
|
+
const column = this.#column;
|
|
540
|
+
if (column === undefined)
|
|
541
|
+
return;
|
|
542
|
+
this.#column = undefined;
|
|
543
|
+
for (const span of column.spans) {
|
|
544
|
+
span.classList.remove("lamina-column-selected");
|
|
545
|
+
span.style.backgroundColor = "";
|
|
546
|
+
}
|
|
547
|
+
if (!tell)
|
|
548
|
+
return;
|
|
549
|
+
this.#selecting = false;
|
|
550
|
+
this.#host.keepMounted([]);
|
|
551
|
+
this.#options.onSelection?.(undefined);
|
|
552
|
+
}
|
|
273
553
|
}
|
|
274
|
-
/**
|
|
275
|
-
function
|
|
276
|
-
|
|
277
|
-
|
|
554
|
+
/** The rectangle between a drag's start and the pointer now, in client coordinates. */
|
|
555
|
+
function rectBetween(start, now) {
|
|
556
|
+
return {
|
|
557
|
+
left: Math.min(start.x, now.clientX),
|
|
558
|
+
top: Math.min(start.y, now.clientY),
|
|
559
|
+
width: Math.abs(now.clientX - start.x),
|
|
560
|
+
height: Math.abs(now.clientY - start.y),
|
|
561
|
+
};
|
|
278
562
|
}
|
|
279
563
|
/** The index of the page `node` is on, from its shell. */
|
|
280
564
|
function pageOf(node) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-layer.js","sourceRoot":"","sources":["../../src/layers/text-layer.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,+FAA+F;AAC/F,gGAAgG;AAChG,iGAAiG;AACjG,iGAAiG;AACjG,8FAA8F;AAC9F,wFAAwF;AAIxF,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,WAAW,EAA6B,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA0CtD,iDAAiD;AACjD,IAAI,UAAU,GAAG,CAAC,CAAC;AAEnB,oCAAoC;AACpC,MAAM,OAAO,SAAS;IACX,IAAI,GAAG,MAAM,CAAC;IACd,KAAK,CAAgB;IACrB,QAAQ,CAAmB;IAC3B,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;IACrC,MAAM,GAAG,IAAI,OAAO,EAAmE,CAAC;IACxF,UAAU,CAAiB;IAC3B,QAAQ,GAAmB,EAAE,CAAC;IACvC,OAAO,GAAiD,EAAE,CAAC;IAC3D,sEAAsE;IAC7D,MAAM,GAAG,IAAI,GAAG,EAA+D,CAAC;IACzF,YAAY,GAAG,EAAE,CAAC;IAClB,2FAA2F;IAClF,SAAS,GAAG,eAAe,UAAU,EAAE,GAAG,CAAC;IACpD,kFAAkF;IAClF,WAAW,GAAG,CAAC,CAAC;IAChB,wGAAwG;IACxG,UAAU,GAAG,KAAK,CAAC;IAEnB,YAAY,IAAmB,EAAE,OAAO,GAAqB,EAAE;QAC7D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,aAAa,IAAI,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9G,4FAA4F;QAC5F,sCAAsC;QACtC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,iBAAiB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAmB,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAkB,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE;YAC3C,IAAI,CAAC,YAAY,GAAI,CAAkB,CAAC,WAAW,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,IAAI,CAAC,QAAwB;QAC3B,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,MAAM;aACd,SAAS,EAAE;aACX,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YAClB,oFAAoF;YACpF,IAAI,OAAO,KAAK,IAAI,CAAC,WAAW;gBAAE,OAAO;YACzC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,wEAAwE;YACxE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9D,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,qFAAqF;QACvF,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,IAAY,EAAE,IAAiB;QACrC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,GAAG,CAAC,SAAS,GAAG,mBAAmB,CAAC;QACpC,6FAA6F;QAC7F,+FAA+F;QAC/F,2FAA2F;QAC3F,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE;YACvB,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,GAAG;YACT,GAAG,EAAE,GAAG;YACR,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,UAAU;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,MAAM,IAAI,GAAa,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,eAAe,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACxE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM;aACd,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aAC7C,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI;gBAAE,OAAO;YAC3C,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,sFAAsF;QACxF,CAAC,CAAC,CAAC;IACP,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QAC/B,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,KAAkB,EAAE,IAAyD;QAChG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,sDAAsD;IACtD,OAAO;QACL,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,2EAA2E;IAC3E,MAAM,CAAC,IAAY,EAAE,IAAyD;QAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACvD,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,uDAAuD;IACvD,OAAO;QACL,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO,CAAC,MAAmB,EAAE,IAAY,EAAE,CAAqB;QAC9D,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAY,EAAE,IAAc,EAAE,KAA0B;QAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;QACnD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,GAAG;gBAAE,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;gBACxB,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI;gBACtB,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI;gBACpB,QAAQ,EAAE,GAAG,IAAI,CAAC,MAAM,IAAI;gBAC5B,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,YAAY;gBACxB,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,MAAM;gBACd,eAAe,EAAE,KAAK;gBACtB,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvF,CAAC,CAAC;YACH,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACtC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1B,qFAAqF;QACrF,sEAAsE;QACtE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;QAClC,2FAA2F;QAC3F,4BAA4B;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC3F,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,KAAK,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9F,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;QAClC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAgB,CAAC;YAC1C,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAI,OAAO,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,UAAU,IAAI,CAAC,KAAK,eAAe,GAAG,GAAG,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,2FAA2F;IAC3F,SAAS,CAAC,IAAY;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QAC/B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;YAC9C,IAAI,IAAI,KAAK,SAAS;gBAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,2DAA2D;IAC3D,aAAa;QACX,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IAED,+DAA+D;IAC/D,MAAM;QACJ,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1C,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,CAAC,UAAU,KAAK,CAAC,IAAI,SAAS,CAAC,WAAW;YAAE,OAAO,SAAS,CAAC;QAChG,MAAM,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,CAAC;IAED,sEAAsE;IACtE,OAAO,CAAC,KAAY;QAClB,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;gBAAE,SAAS;YAChE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChH,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;YAClH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YACpC,IAAI,IAAI,KAAK,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,KAAqB;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,aAAa,KAAK,IAAI;YAAE,OAAO;QAChE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3E,KAAK,CAAC,cAAc,EAAE,CAAC;IACzB,CAAC;IAED,wFAAwF;IACxF,UAAU,CAAC,KAAoB;QAC7B,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,MAAM;YAAE,OAAO;QACjG,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO;QACtD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzB,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;QAC1C,SAAS,EAAE,eAAe,EAAE,CAAC;QAC7B,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,iBAAiB;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,2FAA2F;YAC3F,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO;YAC7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,4FAA4F;QAC5F,0EAA0E;QAC1E,gEAAgE;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;QACjD,IAAI,GAAG,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;YACzC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YACxB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC;YACxB,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;YAClC,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9C,WAAW,EAAE,IAAI,CAAC,YAAY;SAC/B,CAAC,CAAC;IACL,CAAC;CACF;AAED,+FAA+F;AAC/F,SAAS,UAAU,CAAC,OAAoB,EAAE,KAAsB;IAC9D,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;AAC1D,CAAC;AAED,0DAA0D;AAC1D,SAAS,MAAM,CAAC,IAAU;IACxB,MAAM,OAAO,GAAG,IAAI,YAAY,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;IACpE,MAAM,KAAK,GAAG,OAAO,EAAE,OAAO,CAAc,cAAc,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;IAC/E,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,sFAAsF;AACtF,SAAS,QAAQ,CAAC,IAAiB,EAAE,IAAU,EAAE,MAAc;IAC7D,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC;IACpD,8EAA8E;IAC9E,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;AAC5D,CAAC"}
|
|
1
|
+
{"version":3,"file":"text-layer.js","sourceRoot":"","sources":["../../src/layers/text-layer.ts"],"names":[],"mappings":"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"}
|
package/dist/protocol.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { type CloneableWasmSource, type RenderLimits, type RenderRequest } from "@laminapdf/render";
|
|
2
|
-
import type { Limits, OutlineNode, PageInfo, StructureNode, Target } from "@laminapdf/sdk";
|
|
1
|
+
import { type CloneableWasmSource, type PageAppearance, type RenderLimits, type RenderRequest } from "@laminapdf/render";
|
|
2
|
+
import type { DocumentProperties, Limits, OutlineNode, PageInfo, PageLink, Reflow, StructureNode, Target } from "@laminapdf/sdk";
|
|
3
3
|
import type { FindOptions } from "./find/fold.js";
|
|
4
4
|
import type { FindSnippet } from "./find/page.js";
|
|
5
5
|
/** Which engine draws the pages (ADR 0004: PDFium by default, hayro the CI oracle). */
|
|
@@ -26,6 +26,13 @@ export interface ViewerOpenOptions {
|
|
|
26
26
|
readonly limits?: Partial<Limits>;
|
|
27
27
|
/** The backend's render limits (ADR 0004). */
|
|
28
28
|
readonly renderLimits?: Partial<RenderLimits>;
|
|
29
|
+
/**
|
|
30
|
+
* A local file larger than this many bytes is copied into the origin-private file system and
|
|
31
|
+
* read from there, not held in memory (default 200 MiB; tests lower it).
|
|
32
|
+
*/
|
|
33
|
+
readonly copyAbove?: number;
|
|
34
|
+
/** Keep that copy once the document closes, for next time (default true); false removes it then. */
|
|
35
|
+
readonly keepCopy?: boolean;
|
|
29
36
|
}
|
|
30
37
|
/** An open document, as layout needs it up front. */
|
|
31
38
|
export interface OpenedDocument {
|
|
@@ -66,10 +73,19 @@ export interface Methods {
|
|
|
66
73
|
version: string;
|
|
67
74
|
};
|
|
68
75
|
};
|
|
76
|
+
/** `ticket`: the page's number for this open, which `currentDocument` gives back. */
|
|
69
77
|
openDocument: {
|
|
70
|
-
params: [source: SourceInit, options: ViewerOpenOptions];
|
|
78
|
+
params: [source: SourceInit, options: ViewerOpenOptions, ticket?: number];
|
|
71
79
|
result: OpenedDocument;
|
|
72
80
|
};
|
|
81
|
+
/** The open document's answer and its open's ticket; asked after a cancelled open. */
|
|
82
|
+
currentDocument: {
|
|
83
|
+
params: [];
|
|
84
|
+
result: {
|
|
85
|
+
readonly document: OpenedDocument;
|
|
86
|
+
readonly ticket: number | undefined;
|
|
87
|
+
} | undefined;
|
|
88
|
+
};
|
|
73
89
|
closeDocument: {
|
|
74
90
|
params: [];
|
|
75
91
|
result: undefined;
|
|
@@ -94,6 +110,10 @@ export interface Methods {
|
|
|
94
110
|
params: [];
|
|
95
111
|
result: StructureData;
|
|
96
112
|
};
|
|
113
|
+
reflow: {
|
|
114
|
+
params: [];
|
|
115
|
+
result: Reflow;
|
|
116
|
+
};
|
|
97
117
|
networkLog: {
|
|
98
118
|
params: [];
|
|
99
119
|
result: WorkerNetworkLog;
|
|
@@ -106,10 +126,58 @@ export interface Methods {
|
|
|
106
126
|
params: [name: string];
|
|
107
127
|
result: Target | undefined;
|
|
108
128
|
};
|
|
129
|
+
pageLinks: {
|
|
130
|
+
params: [index: number];
|
|
131
|
+
result: readonly PageLink[];
|
|
132
|
+
};
|
|
133
|
+
properties: {
|
|
134
|
+
params: [];
|
|
135
|
+
result: DocumentProperties;
|
|
136
|
+
};
|
|
137
|
+
printPage: {
|
|
138
|
+
params: [index: number, options: PrintOptions];
|
|
139
|
+
result: PrintedPage;
|
|
140
|
+
};
|
|
141
|
+
fileBytes: {
|
|
142
|
+
params: [];
|
|
143
|
+
result: Uint8Array;
|
|
144
|
+
};
|
|
109
145
|
find: {
|
|
110
146
|
params: [query: string, options: FindOptions, pages: readonly number[]];
|
|
111
147
|
result: FindPageResult[];
|
|
112
148
|
};
|
|
149
|
+
readingOrder: {
|
|
150
|
+
params: [index: number];
|
|
151
|
+
result: ReadingBlock[];
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* One block of a page's text in reading order, as Lamina PDF's extraction finds it (ADR 0030):
|
|
156
|
+
* where it is, in page space (points from the displayed page's top-left, y down), and what kind
|
|
157
|
+
* of block it is. Copy as paragraph joins the selected text block by block in this order.
|
|
158
|
+
*/
|
|
159
|
+
export interface ReadingBlock {
|
|
160
|
+
/** Its box: `[x, y, width, height]`. */
|
|
161
|
+
readonly bbox: readonly [number, number, number, number];
|
|
162
|
+
/** `paragraph`, `heading`, `list-item`, `caption`, `footnote`, `table` or `other`. */
|
|
163
|
+
readonly type: string;
|
|
164
|
+
}
|
|
165
|
+
/** How a page is drawn for printing. */
|
|
166
|
+
export interface PrintOptions {
|
|
167
|
+
/** Dots per inch: 150 (standard) or 300 (high). Lowered for a page too large to hold. */
|
|
168
|
+
readonly dpi: number;
|
|
169
|
+
/** Draw annotations as their print flags say (comments, highlights, stamps); off leaves them out. */
|
|
170
|
+
readonly annotations: boolean;
|
|
171
|
+
}
|
|
172
|
+
/** One page drawn for printing. */
|
|
173
|
+
export interface PrintedPage {
|
|
174
|
+
/** The page as a PNG. */
|
|
175
|
+
readonly image: Blob;
|
|
176
|
+
/** Its displayed size in points (`/Rotate` applied), which the printed page takes. */
|
|
177
|
+
readonly width: number;
|
|
178
|
+
readonly height: number;
|
|
179
|
+
/** The resolution it was drawn at: below the one asked for when the page was too large. */
|
|
180
|
+
readonly dpi: number;
|
|
113
181
|
}
|
|
114
182
|
/** One page's find results: each match as its quads (8 numbers per run it touches), in page space. */
|
|
115
183
|
export interface FindPageResult {
|
|
@@ -213,8 +281,14 @@ export interface RenderKeyFields {
|
|
|
213
281
|
export declare function renderKeyFields(key: string): RenderKeyFields;
|
|
214
282
|
/**
|
|
215
283
|
* The coalescing key of a render on document `id`: the document and the whole normalised
|
|
216
|
-
* RenderRequest (page, scale, clip, rotation, flags and
|
|
217
|
-
* only when their pixels are the same (ADR 0009 §3.3).
|
|
284
|
+
* RenderRequest (page, scale, clip, rotation, flags, background and appearance), so two requests
|
|
285
|
+
* share a run only when their pixels are the same (ADR 0009 §3.3).
|
|
218
286
|
*/
|
|
219
287
|
export declare function renderKey(request: RenderRequest, id: number): string;
|
|
288
|
+
/** The request field for `appearance`: none for the pages' own colours, as requests were before page appearances. */
|
|
289
|
+
export declare function appearanceField(appearance: PageAppearance): {
|
|
290
|
+
appearance?: PageAppearance;
|
|
291
|
+
};
|
|
292
|
+
/** A page appearance as a string: equal for the same appearance, whatever the object. */
|
|
293
|
+
export declare function appearanceKey(appearance: PageAppearance | undefined): string;
|
|
220
294
|
//# sourceMappingURL=protocol.d.ts.map
|
package/dist/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAMA,OAAO,
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
|