@laminapdf/viewer 0.2.0-alpha.4 → 0.2.0-alpha.6
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 +79 -10
- package/dist/client.d.ts +60 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +241 -22
- package/dist/client.js.map +1 -1
- package/dist/edit/session.d.ts +91 -0
- package/dist/edit/session.d.ts.map +1 -0
- package/dist/edit/session.js +179 -0
- package/dist/edit/session.js.map +1 -0
- package/dist/edit-log.d.ts +32 -0
- package/dist/edit-log.d.ts.map +1 -0
- package/dist/edit-log.js +74 -0
- package/dist/edit-log.js.map +1 -0
- package/dist/find/controller.d.ts +6 -0
- package/dist/find/controller.d.ts.map +1 -1
- package/dist/find/controller.js +69 -2
- package/dist/find/controller.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 +74 -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 +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -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 +101 -0
- package/dist/layers/link-layer.d.ts.map +1 -0
- package/dist/layers/link-layer.js +527 -0
- package/dist/layers/link-layer.js.map +1 -0
- package/dist/layers/link-preview.d.ts +77 -0
- package/dist/layers/link-preview.d.ts.map +1 -0
- package/dist/layers/link-preview.js +202 -0
- package/dist/layers/link-preview.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 +27 -6
- package/dist/layers/text-layer.d.ts.map +1 -1
- package/dist/layers/text-layer.js +310 -28
- package/dist/layers/text-layer.js.map +1 -1
- package/dist/layout/page-layout.d.ts +7 -0
- package/dist/layout/page-layout.d.ts.map +1 -1
- package/dist/layout/page-layout.js +15 -0
- package/dist/layout/page-layout.js.map +1 -1
- package/dist/protocol.d.ts +197 -5
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js +33 -6
- 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 +48 -4
- package/dist/thumbnails/strip.js.map +1 -1
- package/dist/view/previews.d.ts +47 -0
- package/dist/view/previews.d.ts.map +1 -0
- package/dist/view/previews.js +97 -0
- package/dist/view/previews.js.map +1 -0
- 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 +143 -5
- package/dist/view/viewer.d.ts.map +1 -1
- package/dist/view/viewer.js +590 -50
- package/dist/view/viewer.js.map +1 -1
- package/dist/worker/document.d.ts +66 -6
- package/dist/worker/document.d.ts.map +1 -1
- package/dist/worker/document.js +139 -23
- package/dist/worker/document.js.map +1 -1
- package/dist/worker/edit.d.ts +35 -0
- package/dist/worker/edit.d.ts.map +1 -0
- package/dist/worker/edit.js +305 -0
- package/dist/worker/edit.js.map +1 -0
- package/dist/worker/find.d.ts +2 -2
- package/dist/worker/find.d.ts.map +1 -1
- package/dist/worker/find.js +8 -21
- package/dist/worker/find.js.map +1 -1
- package/dist/worker/fingerprint.d.ts +10 -0
- package/dist/worker/fingerprint.d.ts.map +1 -0
- package/dist/worker/fingerprint.js +42 -0
- package/dist/worker/fingerprint.js.map +1 -0
- package/dist/worker/methods.d.ts.map +1 -1
- package/dist/worker/methods.js +42 -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 +16 -0
- package/dist/worker/recent-pages.d.ts.map +1 -0
- package/dist/worker/recent-pages.js +68 -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/session.d.ts +59 -0
- package/dist/worker/session.d.ts.map +1 -0
- package/dist/worker/session.js +152 -0
- package/dist/worker/session.js.map +1 -0
- package/dist/worker/text.d.ts +11 -3
- package/dist/worker/text.d.ts.map +1 -1
- package/dist/worker/text.js +33 -25
- package/dist/worker/text.js.map +1 -1
- package/package.json +9 -8
package/dist/thumbnails/strip.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { BitmapCache } from "../canvas/cache.js";
|
|
9
9
|
import { CanvasPool } from "../canvas/pool.js";
|
|
10
10
|
import { PageLayout, rotated } from "../layout/page-layout.js";
|
|
11
|
+
import { appearanceField, appearanceKey } from "../protocol.js";
|
|
11
12
|
/** Space for the caption under each thumbnail, and between thumbnails, in CSS px. */
|
|
12
13
|
const CAPTION = 20;
|
|
13
14
|
const GAP = 12;
|
|
@@ -35,6 +36,7 @@ export class ThumbnailStrip {
|
|
|
35
36
|
#document;
|
|
36
37
|
#layout;
|
|
37
38
|
#rotation = 0;
|
|
39
|
+
#appearance = "original";
|
|
38
40
|
/** The page the viewer shows, marked selected. */
|
|
39
41
|
#current = 0;
|
|
40
42
|
/** The page that takes Tab (roving focus). */
|
|
@@ -64,6 +66,7 @@ export class ThumbnailStrip {
|
|
|
64
66
|
on("click", (e) => this.#clicked(e));
|
|
65
67
|
on("keydown", (e) => this.#key(e));
|
|
66
68
|
this.#cleanup.push(viewer.subscribe(() => this.#viewChanged()));
|
|
69
|
+
this.#cleanup.push(viewer.on("invalidate", ({ pages }) => this.#invalidate(pages)));
|
|
67
70
|
// A strip shown later (its tab opened, its sheet raised) mounts what it now shows.
|
|
68
71
|
const resized = new ResizeObserver(() => this.#schedule());
|
|
69
72
|
resized.observe(root);
|
|
@@ -97,19 +100,57 @@ export class ThumbnailStrip {
|
|
|
97
100
|
}
|
|
98
101
|
// --- internals ---
|
|
99
102
|
#relayout() {
|
|
100
|
-
const pages = this.#
|
|
103
|
+
const pages = this.#sizes();
|
|
101
104
|
const widest = Math.max(1, ...pages.map((p) => rotated(p, this.#rotation).width));
|
|
102
105
|
this.#layout = new PageLayout(pages, { scale: this.#width / widest, rotation: this.#rotation, gap: GAP + CAPTION });
|
|
103
106
|
this.#spacer.style.height = `${this.#layout.height}px`;
|
|
104
107
|
this.#unmountAll();
|
|
105
108
|
this.#schedule();
|
|
106
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* The pages' sizes: the viewer's, which follow its edits (one home for them). Before the viewer
|
|
112
|
+
* shows this document (the strip opened first), the document's own.
|
|
113
|
+
*/
|
|
114
|
+
#sizes() {
|
|
115
|
+
const pages = this.#document?.pages ?? [];
|
|
116
|
+
const viewed = this.#document === undefined ? [] : this.#viewer.pageSizes(this.#document.id);
|
|
117
|
+
return viewed.length === pages.length ? viewed : pages;
|
|
118
|
+
}
|
|
119
|
+
/** Whether page `index` keeps its box in `layout` at `size` (the same arithmetic as the layout's). */
|
|
120
|
+
#fits(layout, index, size) {
|
|
121
|
+
const shown = rotated(size, layout.rotation);
|
|
122
|
+
return layout.widths[index] === shown.width * layout.scale && layout.heights[index] === shown.height * layout.scale;
|
|
123
|
+
}
|
|
124
|
+
/** The viewer redrew `pages` after an edit: their thumbnails are drawn again, at their new sizes. */
|
|
125
|
+
#invalidate(pages) {
|
|
126
|
+
const layout = this.#layout;
|
|
127
|
+
let resized = false;
|
|
128
|
+
for (const { index, width, height } of pages) {
|
|
129
|
+
// Draw it afresh: an unmounted thumbnail's render is aborted, and its late bitmap never kept.
|
|
130
|
+
this.#cache.prune(index, () => false);
|
|
131
|
+
const item = this.#items.get(index);
|
|
132
|
+
if (item !== undefined)
|
|
133
|
+
this.#unmount(item);
|
|
134
|
+
if (layout !== undefined && !this.#fits(layout, index, { width, height }))
|
|
135
|
+
resized = true;
|
|
136
|
+
}
|
|
137
|
+
if (resized)
|
|
138
|
+
this.#relayout();
|
|
139
|
+
else
|
|
140
|
+
this.#schedule();
|
|
141
|
+
}
|
|
107
142
|
#viewChanged() {
|
|
108
143
|
const state = this.#viewer.getState();
|
|
109
144
|
if (state.rotation !== this.#rotation) {
|
|
110
145
|
this.#rotation = state.rotation;
|
|
111
146
|
this.#relayout();
|
|
112
147
|
}
|
|
148
|
+
// The thumbnails follow the page appearance: drawn again in it.
|
|
149
|
+
if (appearanceKey(state.appearance) !== appearanceKey(this.#appearance)) {
|
|
150
|
+
this.#appearance = state.appearance;
|
|
151
|
+
this.#unmountAll();
|
|
152
|
+
this.#schedule();
|
|
153
|
+
}
|
|
113
154
|
if (state.currentPage === this.#current || this.#document === undefined)
|
|
114
155
|
return;
|
|
115
156
|
this.#current = state.currentPage;
|
|
@@ -205,14 +246,16 @@ export class ThumbnailStrip {
|
|
|
205
246
|
async #draw(item, layout) {
|
|
206
247
|
const ratio = globalThis.devicePixelRatio || 1;
|
|
207
248
|
const scale = layout.scale * ratio;
|
|
208
|
-
const
|
|
249
|
+
const appearance = this.#appearance;
|
|
250
|
+
const id = this.#client.document?.id ?? 0;
|
|
251
|
+
const key = `${id}:${item.index}:${layout.rotation}:${scale.toFixed(4)}:${appearanceKey(appearance)}`;
|
|
209
252
|
let bitmap = this.#cache.get(key);
|
|
210
253
|
let owned = false;
|
|
211
254
|
if (bitmap === undefined) {
|
|
212
255
|
const abort = new AbortController();
|
|
213
256
|
item.abort = abort;
|
|
214
257
|
try {
|
|
215
|
-
const rendered = await this.#client.render({ page: item.index, scale, rotation: layout.rotation }, { priority: "background", signal: abort.signal });
|
|
258
|
+
const rendered = await this.#client.render({ page: item.index, scale, rotation: layout.rotation, ...appearanceField(appearance) }, { priority: "background", signal: abort.signal });
|
|
216
259
|
bitmap = rendered.bitmap;
|
|
217
260
|
}
|
|
218
261
|
catch (error) {
|
|
@@ -307,7 +350,8 @@ export class ThumbnailStrip {
|
|
|
307
350
|
}
|
|
308
351
|
#go(index) {
|
|
309
352
|
this.#focus = index;
|
|
310
|
-
|
|
353
|
+
// A jump: Back returns to where the view was (R06).
|
|
354
|
+
this.#viewer.jumpToPage(index);
|
|
311
355
|
}
|
|
312
356
|
}
|
|
313
357
|
//# sourceMappingURL=strip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strip.js","sourceRoot":"","sources":["../../src/thumbnails/strip.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"strip.js","sourceRoot":"","sources":["../../src/thumbnails/strip.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { PageAppearance } from "@laminapdf/render";
|
|
2
|
+
import type { Target } from "@laminapdf/sdk";
|
|
3
|
+
import type { ViewerClient } from "../client.js";
|
|
4
|
+
import { type PreviewRegion } from "../layers/link-preview.js";
|
|
5
|
+
import type { PageSize, Rotation } from "../layout/page-layout.js";
|
|
6
|
+
/** A link's destination as a picture, for a preview card. */
|
|
7
|
+
export interface LinkPreviewPicture {
|
|
8
|
+
/** The crop, drawn already turned as the view is. Owned by the viewer: draw it, don't close it. */
|
|
9
|
+
readonly bitmap: ImageBitmap;
|
|
10
|
+
/** The crop's size on screen, in CSS px. */
|
|
11
|
+
readonly width: number;
|
|
12
|
+
readonly height: number;
|
|
13
|
+
/** `region`: around the destination point; `page`: the top of the page (R07). */
|
|
14
|
+
readonly kind: PreviewRegion["kind"];
|
|
15
|
+
/** The destination page (0-based) and the top of the crop in page space, for the card's title. */
|
|
16
|
+
readonly page: number;
|
|
17
|
+
readonly y: number;
|
|
18
|
+
/** The text of the lines inside the crop (document text), cut at 300 characters; empty without text. */
|
|
19
|
+
readonly text: string;
|
|
20
|
+
}
|
|
21
|
+
/** What the pictures need of their viewer. */
|
|
22
|
+
export interface PreviewHost {
|
|
23
|
+
readonly client: Pick<ViewerClient, "render" | "pageText">;
|
|
24
|
+
/** Page `page`'s displayed size in points. */
|
|
25
|
+
size(page: number): PageSize | undefined;
|
|
26
|
+
rotation(): Rotation;
|
|
27
|
+
/** The reader's zoom, in percent. */
|
|
28
|
+
percent(): number;
|
|
29
|
+
appearance(): PageAppearance;
|
|
30
|
+
/** Device pixels per CSS px. */
|
|
31
|
+
dpr(): number;
|
|
32
|
+
}
|
|
33
|
+
/** The pictures of one viewer. */
|
|
34
|
+
export declare class LinkPreviews {
|
|
35
|
+
#private;
|
|
36
|
+
constructor(host: PreviewHost);
|
|
37
|
+
/** How many pictures are kept (never more than {@link PREVIEW_CACHE}). */
|
|
38
|
+
get size(): number;
|
|
39
|
+
/**
|
|
40
|
+
* `target` as a picture. Rejects with `AbortError` when `signal` aborts (no bitmap is left
|
|
41
|
+
* behind), and with a `RangeError` for a page the document doesn't have.
|
|
42
|
+
*/
|
|
43
|
+
picture(target: Target, signal: AbortSignal): Promise<LinkPreviewPicture>;
|
|
44
|
+
/** Closes every kept picture; renders under way are dropped when they finish. */
|
|
45
|
+
clear(): void;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=previews.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"previews.d.ts","sourceRoot":"","sources":["../../src/view/previews.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAEL,KAAK,aAAa,EAKnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAMnE,6DAA6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,mGAAmG;IACnG,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,kGAAkG;IAClG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,wGAAwG;IACxG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,8CAA8C;AAC9C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC;IAC3D,8CAA8C;IAC9C,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,QAAQ,IAAI,QAAQ,CAAC;IACrB,qCAAqC;IACrC,OAAO,IAAI,MAAM,CAAC;IAClB,UAAU,IAAI,cAAc,CAAC;IAC7B,gCAAgC;IAChC,GAAG,IAAI,MAAM,CAAC;CACf;AAMD,kCAAkC;AAClC,qBAAa,YAAY;;IAOvB,YAAY,IAAI,EAAE,WAAW,EAE5B;IAED,0EAA0E;IAC1E,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAiD9E;IAED,iFAAiF;IACjF,KAAK,IAAI,IAAI,CAIZ;CAYF"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
// Link previews' pictures (R07): one render of the destination region through the document worker,
|
|
2
|
+
// at visible priority, and the text of the lines it shows. The last few pictures are kept, so
|
|
3
|
+
// hovering a citation again draws at once; they are closed when pushed out, on a zoom or rotation
|
|
4
|
+
// change, when the appearance changes and when the document closes. A render aborted before its
|
|
5
|
+
// answer has its late bitmap closed by the worker client, so nothing paints after the pointer left.
|
|
6
|
+
import { previewLines, previewRegion, previewRender, previewText, } from "../layers/link-preview.js";
|
|
7
|
+
import { appearanceKey } from "../protocol.js";
|
|
8
|
+
/** How many pictures are kept. */
|
|
9
|
+
const PREVIEW_CACHE = 8;
|
|
10
|
+
/** The pictures of one viewer. */
|
|
11
|
+
export class LinkPreviews {
|
|
12
|
+
#host;
|
|
13
|
+
/** Insertion order is recency: the first key is the oldest. */
|
|
14
|
+
#kept = new Map();
|
|
15
|
+
/** Bumped by `clear`: a render that started before it drew at an old zoom or appearance. */
|
|
16
|
+
#generation = 0;
|
|
17
|
+
constructor(host) {
|
|
18
|
+
this.#host = host;
|
|
19
|
+
}
|
|
20
|
+
/** How many pictures are kept (never more than {@link PREVIEW_CACHE}). */
|
|
21
|
+
get size() {
|
|
22
|
+
return this.#kept.size;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* `target` as a picture. Rejects with `AbortError` when `signal` aborts (no bitmap is left
|
|
26
|
+
* behind), and with a `RangeError` for a page the document doesn't have.
|
|
27
|
+
*/
|
|
28
|
+
async picture(target, signal) {
|
|
29
|
+
const host = this.#host;
|
|
30
|
+
const size = host.size(target.page);
|
|
31
|
+
if (size === undefined)
|
|
32
|
+
throw new RangeError(`no page ${target.page}`);
|
|
33
|
+
const lines = await this.#lines(target.page, signal);
|
|
34
|
+
const region = previewRegion(target, size, lines, host.percent());
|
|
35
|
+
const rotation = host.rotation();
|
|
36
|
+
const appearance = host.appearance();
|
|
37
|
+
const render = previewRender(region, size, rotation, host.dpr());
|
|
38
|
+
const { x, y, width, height } = render.clip;
|
|
39
|
+
const key = [target.page, render.scale, x, y, width, height, rotation, appearanceKey(appearance)].join(":");
|
|
40
|
+
const kept = this.#kept.get(key);
|
|
41
|
+
if (kept !== undefined) {
|
|
42
|
+
// Most recent last.
|
|
43
|
+
this.#kept.delete(key);
|
|
44
|
+
this.#kept.set(key, kept);
|
|
45
|
+
return kept.picture;
|
|
46
|
+
}
|
|
47
|
+
const generation = this.#generation;
|
|
48
|
+
const drawn = await host.client.render({ page: target.page, scale: render.scale, clip: render.clip, rotation, appearance }, { priority: "visible", signal });
|
|
49
|
+
if (signal.aborted || generation !== this.#generation) {
|
|
50
|
+
drawn.bitmap.close();
|
|
51
|
+
throw signal.reason instanceof Error ? signal.reason : new DOMException("aborted", "AbortError");
|
|
52
|
+
}
|
|
53
|
+
const raced = this.#kept.get(key);
|
|
54
|
+
if (raced !== undefined) {
|
|
55
|
+
// The same picture drawn by a call that started meanwhile: keep one.
|
|
56
|
+
drawn.bitmap.close();
|
|
57
|
+
return raced.picture;
|
|
58
|
+
}
|
|
59
|
+
const picture = {
|
|
60
|
+
bitmap: drawn.bitmap,
|
|
61
|
+
width: render.css.width,
|
|
62
|
+
height: render.css.height,
|
|
63
|
+
kind: region.kind,
|
|
64
|
+
page: target.page,
|
|
65
|
+
y: region.clip.y,
|
|
66
|
+
text: lines === undefined ? "" : previewText(lines, region.clip),
|
|
67
|
+
};
|
|
68
|
+
this.#kept.set(key, { picture });
|
|
69
|
+
for (const [old, { picture: gone }] of this.#kept) {
|
|
70
|
+
if (this.#kept.size <= PREVIEW_CACHE)
|
|
71
|
+
break;
|
|
72
|
+
this.#kept.delete(old);
|
|
73
|
+
gone.bitmap.close();
|
|
74
|
+
}
|
|
75
|
+
return picture;
|
|
76
|
+
}
|
|
77
|
+
/** Closes every kept picture; renders under way are dropped when they finish. */
|
|
78
|
+
clear() {
|
|
79
|
+
this.#generation++;
|
|
80
|
+
for (const { picture } of this.#kept.values())
|
|
81
|
+
picture.bitmap.close();
|
|
82
|
+
this.#kept.clear();
|
|
83
|
+
}
|
|
84
|
+
/** Page `page`'s text lines, or `undefined` without text (no module, an image-only page). */
|
|
85
|
+
async #lines(page, signal) {
|
|
86
|
+
try {
|
|
87
|
+
const text = await this.#host.client.pageText(page, { signal, priority: "visible" });
|
|
88
|
+
return previewLines(text.runs, text.quads);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (signal.aborted)
|
|
92
|
+
throw error;
|
|
93
|
+
return undefined;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=previews.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"previews.js","sourceRoot":"","sources":["../../src/view/previews.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-select.d.ts","sourceRoot":"","sources":["../../src/view/user-select.ts"],"names":[],"mappings":"AAKA,+FAA+F;AAC/F,wBAAgB,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGhF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Which parts of the viewer a selection may take in: only the text layer's spans. Each element
|
|
2
|
+
// that holds nothing to select sets `none` on itself; no ancestor of the spans may, since Firefox
|
|
3
|
+
// stops a mouse drag from selecting under a `user-select: none` ancestor once a text field on
|
|
4
|
+
// the page has had the focus (docs/bugs/firefox-selection-after-a-field).
|
|
5
|
+
/** Sets `element`'s `user-select`, with WebKit's prefix (Safari before 26 reads only that). */
|
|
6
|
+
export function setUserSelect(element, value) {
|
|
7
|
+
element.style.setProperty("user-select", value);
|
|
8
|
+
element.style.setProperty("-webkit-user-select", value);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=user-select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-select.js","sourceRoot":"","sources":["../../src/view/user-select.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,kGAAkG;AAClG,8FAA8F;AAC9F,0EAA0E;AAE1E,+FAA+F;AAC/F,MAAM,UAAU,aAAa,CAAC,OAAoB,EAAE,KAAsB;IACxE,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"}
|
package/dist/view/viewer.d.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type PageAppearance } from "@laminapdf/render";
|
|
2
|
+
import type { Op, Target } from "@laminapdf/sdk";
|
|
2
3
|
import { type CanvasPoolOptions } from "../canvas/pool.js";
|
|
3
|
-
import type { ViewerClient } from "../client.js";
|
|
4
|
+
import type { ViewerCallOptions, ViewerClient } from "../client.js";
|
|
5
|
+
import { EditSession } from "../edit/session.js";
|
|
4
6
|
import { FindController } from "../find/controller.js";
|
|
5
|
-
import { type
|
|
6
|
-
import {
|
|
7
|
-
import { type
|
|
7
|
+
import { NavigationHistory, type NavigationHistoryOptions, type ViewPosition } from "../history/history.js";
|
|
8
|
+
import type { CopyMode } from "../layers/copy.js";
|
|
9
|
+
import { type LinkLayerOptions, type LinkPreviewRequest } from "../layers/link-layer.js";
|
|
10
|
+
import { type TextLayerOptions, type TextSelection } from "../layers/text-layer.js";
|
|
11
|
+
import { type PageSize, type Rotation } from "../layout/page-layout.js";
|
|
12
|
+
import { type EditResult, type OpenedDocument } from "../protocol.js";
|
|
8
13
|
import { type DocumentPoint, type Point, type Zoom } from "../zoom/zoom.js";
|
|
9
14
|
import { type DeviceHints } from "./budgets.js";
|
|
15
|
+
import type { LinkPreviewPicture } from "./previews.js";
|
|
10
16
|
/** Where a mounted page's pixels are. */
|
|
11
17
|
export type PageRenderState = "placeholder" | "low" | "sharp" | "error";
|
|
12
18
|
/** What the view shows: for `useSyncExternalStore` and the toolbar. */
|
|
@@ -18,6 +24,8 @@ export interface ViewState {
|
|
|
18
24
|
/** The zoom as a percentage (100 is actual size), whatever the mode. */
|
|
19
25
|
readonly percent: number;
|
|
20
26
|
readonly rotation: Rotation;
|
|
27
|
+
/** How the pages' colours are drawn (`"original"`: their own). */
|
|
28
|
+
readonly appearance: PageAppearance;
|
|
21
29
|
readonly scrollTop: number;
|
|
22
30
|
/** The pages any part of which is in the viewport. */
|
|
23
31
|
readonly visibleRange: {
|
|
@@ -44,6 +52,8 @@ export interface RenderStats {
|
|
|
44
52
|
/** Renders cancelled because their page left the margin or the zoom changed (the client rejected them). */
|
|
45
53
|
readonly aborted: number;
|
|
46
54
|
readonly cacheBytes: number;
|
|
55
|
+
/** Link preview pictures kept (at most `PREVIEW_CACHE`). */
|
|
56
|
+
readonly previewBitmaps: number;
|
|
47
57
|
/** Each mounted page's state. */
|
|
48
58
|
readonly pages: Readonly<Record<number, PageRenderState>>;
|
|
49
59
|
}
|
|
@@ -57,6 +67,26 @@ export interface ViewerEventMap {
|
|
|
57
67
|
readonly percent: number;
|
|
58
68
|
};
|
|
59
69
|
renderstats: RenderStats;
|
|
70
|
+
/** The text selection changed: `undefined` when it left the viewer (UI/UX plan §5.3). */
|
|
71
|
+
selectionchange: {
|
|
72
|
+
readonly selection: TextSelection | undefined;
|
|
73
|
+
};
|
|
74
|
+
/** A link asks to be previewed (hover, focus or long-press; R07). */
|
|
75
|
+
linkpreview: LinkPreviewRequest;
|
|
76
|
+
/** The preview of `anchor`'s link should go. */
|
|
77
|
+
linkpreviewend: {
|
|
78
|
+
readonly anchor: HTMLElement;
|
|
79
|
+
};
|
|
80
|
+
/** `invalidate` redrew these pages; each has its displayed size in points now. */
|
|
81
|
+
invalidate: {
|
|
82
|
+
readonly pages: readonly InvalidatedPage[];
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/** A page `invalidate` redrew: its index and its displayed size in points now. */
|
|
86
|
+
export interface InvalidatedPage {
|
|
87
|
+
readonly index: number;
|
|
88
|
+
readonly width: number;
|
|
89
|
+
readonly height: number;
|
|
60
90
|
}
|
|
61
91
|
/** A layer that later todos mount into each page (text, annotations, highlights, …). */
|
|
62
92
|
export interface PageLayer {
|
|
@@ -109,6 +139,30 @@ export interface CreateViewerOptions {
|
|
|
109
139
|
* for screen readers (default on; `false` leaves it out, an object sets its options).
|
|
110
140
|
*/
|
|
111
141
|
readonly text?: boolean | TextLayerOptions;
|
|
142
|
+
/**
|
|
143
|
+
* The link layer: an anchor over each link, internal ones going there as history jumps (default
|
|
144
|
+
* on; `false` leaves it out, an object sets its options).
|
|
145
|
+
*/
|
|
146
|
+
readonly links?: boolean | LinkLayerOptions;
|
|
147
|
+
/** The back and forward history's options. */
|
|
148
|
+
readonly history?: NavigationHistoryOptions;
|
|
149
|
+
/** What assistive technology hears of each page, and where focus goes after a jump. */
|
|
150
|
+
readonly pages?: PageRegionOptions;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Each page shell is a region that assistive technology names ("Page iv, 4 of 120") and can land
|
|
154
|
+
* on: the viewer has no strings of its own, so the app gives the words.
|
|
155
|
+
*/
|
|
156
|
+
export interface PageRegionOptions {
|
|
157
|
+
/** A page's name, from its index and the page count (default "Page 4 of 120"). */
|
|
158
|
+
readonly name?: (index: number, count: number) => string;
|
|
159
|
+
/** What a page is called as a kind of region (default "page"). */
|
|
160
|
+
readonly roleDescription?: string;
|
|
161
|
+
/**
|
|
162
|
+
* Whether a history jump (a link, the outline, a thumbnail, go to page) moves focus to the page
|
|
163
|
+
* it lands on, once that page is mounted (default false).
|
|
164
|
+
*/
|
|
165
|
+
readonly focusOnJump?: boolean;
|
|
112
166
|
}
|
|
113
167
|
/**
|
|
114
168
|
* The viewer: a scroll container over one document's pages. Make one with {@link createViewer},
|
|
@@ -118,6 +172,16 @@ export declare class Viewer {
|
|
|
118
172
|
#private;
|
|
119
173
|
/** Find in this viewer's document: query, options, matches, next and previous. */
|
|
120
174
|
readonly find: FindController;
|
|
175
|
+
/**
|
|
176
|
+
* Back and forward through the places jumped from and to: links, `jumpToPage`,
|
|
177
|
+
* `jumpToDestination` and find's matches record a jump; scrolling doesn't.
|
|
178
|
+
*/
|
|
179
|
+
readonly history: NavigationHistory;
|
|
180
|
+
/**
|
|
181
|
+
* The open document's edit session: its history, and edits, undo, redo and going to a step,
|
|
182
|
+
* each redrawing the pages it touched. One call runs at a time, in the order they were made.
|
|
183
|
+
*/
|
|
184
|
+
readonly edits: EditSession;
|
|
121
185
|
constructor(options: CreateViewerOptions);
|
|
122
186
|
/** The scroll container (append it, or use {@link mount}). */
|
|
123
187
|
get element(): HTMLDivElement;
|
|
@@ -131,6 +195,16 @@ export declare class Viewer {
|
|
|
131
195
|
subscribe(listener: () => void): () => void;
|
|
132
196
|
/** Listens for `event`; returns a function that stops listening. */
|
|
133
197
|
on<E extends keyof ViewerEventMap>(event: E, listener: (data: ViewerEventMap[E]) => void): () => void;
|
|
198
|
+
/**
|
|
199
|
+
* Copies the text selection to the clipboard: by paragraph in reading order, or exact, as laid
|
|
200
|
+
* out. Call it in a user gesture (a click, a key). Resolves false when nothing is selected or
|
|
201
|
+
* the clipboard refused.
|
|
202
|
+
*/
|
|
203
|
+
copySelection(mode?: CopyMode): Promise<boolean>;
|
|
204
|
+
/** Whether a plain drag selects a rectangle, as an Alt/Option-drag does (column selection). */
|
|
205
|
+
get columnSelect(): boolean;
|
|
206
|
+
/** Turns column selection by plain drag on or off; Alt/Option-drag selects a rectangle either way. */
|
|
207
|
+
set columnSelect(on: boolean);
|
|
134
208
|
/**
|
|
135
209
|
* Keeps `pages` mounted wherever the view scrolls, until the next call replaces them: the pages
|
|
136
210
|
* a text selection touches, so scrolling never takes the selection away. A pinned page out of
|
|
@@ -149,6 +223,10 @@ export declare class Viewer {
|
|
|
149
223
|
* viewport's top-left, or its page's top when it names no point (ISO 32000-2 §12.3.2.2).
|
|
150
224
|
*/
|
|
151
225
|
goToDestination(target: Target): void;
|
|
226
|
+
/** {@link goToPage} as a history jump: Back returns to where the view was. */
|
|
227
|
+
jumpToPage(index: number): void;
|
|
228
|
+
/** {@link goToDestination} as a history jump: Back returns to where the view was. */
|
|
229
|
+
jumpToDestination(target: Target): void;
|
|
152
230
|
/**
|
|
153
231
|
* Sets the zoom (a mode, or a percentage clamped to 10–800 %), keeping the document point at
|
|
154
232
|
* `anchor` (viewport CSS px; default its centre) where it is.
|
|
@@ -162,6 +240,66 @@ export declare class Viewer {
|
|
|
162
240
|
* @throws RangeError when `delta` isn't a multiple of 90.
|
|
163
241
|
*/
|
|
164
242
|
rotate(delta: number): void;
|
|
243
|
+
/**
|
|
244
|
+
* Draws the pages in `appearance` (Sepia, Dark, High contrast or their own colours), keeping the
|
|
245
|
+
* scroll position: pages in view paint again, a quick pass then sharp tiles, and none of their
|
|
246
|
+
* old pixels is kept; other pages give their canvas back and paint when they come into view.
|
|
247
|
+
* The thumbnails follow.
|
|
248
|
+
*/
|
|
249
|
+
setAppearance(appearance: PageAppearance): void;
|
|
250
|
+
/**
|
|
251
|
+
* Where `target` goes, as a picture for a link preview (R07): one render of the region around its
|
|
252
|
+
* point (or the top of its page) through the document worker, and the text of the lines it shows.
|
|
253
|
+
* The viewer keeps the last few (`PREVIEW_CACHE`) and closes them on a zoom, rotation or
|
|
254
|
+
* appearance change and when the document closes, so draw the bitmap at once and never close it.
|
|
255
|
+
* Rejects with `AbortError` when `signal` aborts or the pictures are cleared while it draws.
|
|
256
|
+
*/
|
|
257
|
+
preview(target: Target, options?: {
|
|
258
|
+
readonly signal?: AbortSignal;
|
|
259
|
+
}): Promise<LinkPreviewPicture>;
|
|
260
|
+
/** The pointer is over the link preview (`true`) or has left it: a hovered preview stays (WCAG 1.4.13). */
|
|
261
|
+
holdLinkPreview(held: boolean): void;
|
|
262
|
+
/** Escape or Close on the link preview: it goes, and stays hidden until its link is left. */
|
|
263
|
+
dismissLinkPreview(): void;
|
|
264
|
+
/** Whether a link is previewed or focused, so {@link followLinkPreview} has one (`nav.follow-link`). */
|
|
265
|
+
canFollowLink(): boolean;
|
|
266
|
+
/** Follows the previewed link, else the focused one (`nav.follow-link`); `false` when there is neither. */
|
|
267
|
+
followLinkPreview(): boolean;
|
|
268
|
+
/**
|
|
269
|
+
* Draws `pages` again: an edit changed them. Their bitmaps go, here and in a thumbnail strip,
|
|
270
|
+
* and their layers read their text and links again; every other page keeps what it drew.
|
|
271
|
+
* `sizes` gives the pages whose displayed size in points changed (a quarter turn swaps width and
|
|
272
|
+
* height): the layout takes them, and the page at the top of the viewport stays there. A page in
|
|
273
|
+
* view keeps its old pixels until the new ones are drawn over them.
|
|
274
|
+
*/
|
|
275
|
+
invalidate(pages: Iterable<number>, sizes?: ReadonlyMap<number, PageSize>): void;
|
|
276
|
+
/**
|
|
277
|
+
* Applies `ops` to the open document through the client (`ViewerClient.applyEdit`) and redraws
|
|
278
|
+
* the pages they touched ({@link invalidate}): an edit on screen in one call. A failed edit
|
|
279
|
+
* changes nothing and redraws nothing.
|
|
280
|
+
*/
|
|
281
|
+
applyEdit(ops: readonly Op[], options?: ViewerCallOptions & {
|
|
282
|
+
readonly label?: string;
|
|
283
|
+
}): Promise<EditResult>;
|
|
284
|
+
/**
|
|
285
|
+
* Every page's displayed size in points, as the view lays it out: the sizes the document opened
|
|
286
|
+
* with, and those edits gave since (`invalidate`). A thumbnail strip lays its pages out from it.
|
|
287
|
+
* With `documentId`, empty unless the view shows that document: a page count alone can't tell two
|
|
288
|
+
* documents apart.
|
|
289
|
+
*/
|
|
290
|
+
pageSizes(documentId?: number): readonly PageSize[];
|
|
291
|
+
/**
|
|
292
|
+
* Where the reader is: the document point a gap below the viewport's top-left, the zoom and the
|
|
293
|
+
* rotation; `undefined` without a document. {@link restore} puts the view back there.
|
|
294
|
+
*/
|
|
295
|
+
viewPosition(): ViewPosition | undefined;
|
|
296
|
+
/**
|
|
297
|
+
* Puts the view at `position` (a {@link viewPosition} kept from an earlier visit), as a history
|
|
298
|
+
* jump from where the view is, so Back returns there. Its page is clamped to the document's and
|
|
299
|
+
* its point to the page. Called in the task that opened the document, before the next frame, it
|
|
300
|
+
* paints no other page first.
|
|
301
|
+
*/
|
|
302
|
+
restore(position: ViewPosition): void;
|
|
165
303
|
/** The document point at viewport position (`x`, `y`) in CSS px. */
|
|
166
304
|
pointAt(x: number, y: number): DocumentPoint | undefined;
|
|
167
305
|
/** Where `point` is now, in viewport CSS px. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../../src/view/viewer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../../src/view/viewer.ts"],"names":[],"mappings":"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"}
|