@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.
Files changed (90) hide show
  1. package/README.md +36 -8
  2. package/dist/client.d.ts +28 -1
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +105 -5
  5. package/dist/client.js.map +1 -1
  6. package/dist/first-draw.d.ts +10 -0
  7. package/dist/first-draw.d.ts.map +1 -0
  8. package/dist/first-draw.js +33 -0
  9. package/dist/first-draw.js.map +1 -0
  10. package/dist/history/history.d.ts +65 -0
  11. package/dist/history/history.d.ts.map +1 -0
  12. package/dist/history/history.js +135 -0
  13. package/dist/history/history.js.map +1 -0
  14. package/dist/index.d.ts +7 -2
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +2 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/layers/copy.d.ts +26 -0
  19. package/dist/layers/copy.d.ts.map +1 -0
  20. package/dist/layers/copy.js +150 -0
  21. package/dist/layers/copy.js.map +1 -0
  22. package/dist/layers/link-layer.d.ts +68 -0
  23. package/dist/layers/link-layer.d.ts.map +1 -0
  24. package/dist/layers/link-layer.js +279 -0
  25. package/dist/layers/link-layer.js.map +1 -0
  26. package/dist/layers/link-url.d.ts +19 -0
  27. package/dist/layers/link-url.d.ts.map +1 -0
  28. package/dist/layers/link-url.js +47 -0
  29. package/dist/layers/link-url.js.map +1 -0
  30. package/dist/layers/spans.d.ts +0 -6
  31. package/dist/layers/spans.d.ts.map +1 -1
  32. package/dist/layers/spans.js +2 -20
  33. package/dist/layers/spans.js.map +1 -1
  34. package/dist/layers/structure-layer.d.ts.map +1 -1
  35. package/dist/layers/structure-layer.js +3 -0
  36. package/dist/layers/structure-layer.js.map +1 -1
  37. package/dist/layers/text-layer.d.ts +20 -3
  38. package/dist/layers/text-layer.d.ts.map +1 -1
  39. package/dist/layers/text-layer.js +307 -23
  40. package/dist/layers/text-layer.js.map +1 -1
  41. package/dist/protocol.d.ts +79 -5
  42. package/dist/protocol.d.ts.map +1 -1
  43. package/dist/protocol.js +16 -4
  44. package/dist/protocol.js.map +1 -1
  45. package/dist/source/opfs.d.ts +35 -0
  46. package/dist/source/opfs.d.ts.map +1 -0
  47. package/dist/source/opfs.js +178 -0
  48. package/dist/source/opfs.js.map +1 -0
  49. package/dist/thumbnails/strip.d.ts +1 -1
  50. package/dist/thumbnails/strip.d.ts.map +1 -1
  51. package/dist/thumbnails/strip.js +14 -3
  52. package/dist/thumbnails/strip.js.map +1 -1
  53. package/dist/view/user-select.d.ts +3 -0
  54. package/dist/view/user-select.d.ts.map +1 -0
  55. package/dist/view/user-select.js +10 -0
  56. package/dist/view/user-select.js.map +1 -0
  57. package/dist/view/viewer.d.ts +61 -1
  58. package/dist/view/viewer.d.ts.map +1 -1
  59. package/dist/view/viewer.js +248 -40
  60. package/dist/view/viewer.js.map +1 -1
  61. package/dist/worker/document.d.ts +23 -1
  62. package/dist/worker/document.d.ts.map +1 -1
  63. package/dist/worker/document.js +68 -22
  64. package/dist/worker/document.js.map +1 -1
  65. package/dist/worker/find.d.ts.map +1 -1
  66. package/dist/worker/find.js +5 -18
  67. package/dist/worker/find.js.map +1 -1
  68. package/dist/worker/methods.d.ts.map +1 -1
  69. package/dist/worker/methods.js +23 -4
  70. package/dist/worker/methods.js.map +1 -1
  71. package/dist/worker/navigation.d.ts +5 -1
  72. package/dist/worker/navigation.d.ts.map +1 -1
  73. package/dist/worker/navigation.js +22 -4
  74. package/dist/worker/navigation.js.map +1 -1
  75. package/dist/worker/print.d.ts +14 -0
  76. package/dist/worker/print.d.ts.map +1 -0
  77. package/dist/worker/print.js +49 -0
  78. package/dist/worker/print.js.map +1 -0
  79. package/dist/worker/recent-pages.d.ts +14 -0
  80. package/dist/worker/recent-pages.d.ts.map +1 -0
  81. package/dist/worker/recent-pages.js +53 -0
  82. package/dist/worker/recent-pages.js.map +1 -0
  83. package/dist/worker/render.d.ts.map +1 -1
  84. package/dist/worker/render.js +5 -2
  85. package/dist/worker/render.js.map +1 -1
  86. package/dist/worker/text.d.ts +9 -1
  87. package/dist/worker/text.d.ts.map +1 -1
  88. package/dist/worker/text.js +29 -22
  89. package/dist/worker/text.js.map +1 -1
  90. 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. The viewer is the one selection root: only spans are selectable, never canvases, gaps
6
- // or the app around it, so a selection runs from one page into the next; the pages it touches
7
- // stay mounted while it lasts. Copy writes the extracted text, joined in reading order.
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 { joinPieces, layoutSpans } from "./spans.js";
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
- // Nothing in the viewer is selectable but the spans (set on each): canvases, gaps and other
38
- // layers stay out of every selection.
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
- this.#pointerType = e.pointerType;
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
- selectable(span, "text");
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
- /** The selection's range, when it is in this viewer's text. */
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
- return this.#host.root.contains(range.commonAncestorContainer) ? range : undefined;
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
- #copy(event) {
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 === undefined || event.clipboardData === null)
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
- event.clipboardData.setData("text/plain", joinPieces(this.#pieces(range)));
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
- const pieces = this.#pieces(range);
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: joinPieces(pieces),
268
- rects: [...range.getClientRects()],
269
- pages: [...new Set(pieces.map((p) => p.page))],
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
- /** Sets `element`'s `user-select`, with WebKit's prefix (Safari before 26 reads only that). */
275
- function selectable(element, value) {
276
- element.style.setProperty("user-select", value);
277
- element.style.setProperty("-webkit-user-select", value);
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":"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"}
1
+ {"version":3,"file":"text-layer.js","sourceRoot":"","sources":["../../src/layers/text-layer.ts"],"names":[],"mappings":"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"}
@@ -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 background), so two requests share a run
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
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"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"}