postext-folio 0.52.6 → 0.52.7

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 (73) hide show
  1. package/dist/postext/book.d.ts +35 -0
  2. package/dist/postext/book.d.ts.map +1 -0
  3. package/dist/postext/book.js +96 -0
  4. package/dist/postext/book.js.map +1 -0
  5. package/dist/postext/constants.d.ts +36 -0
  6. package/dist/postext/constants.d.ts.map +1 -0
  7. package/dist/postext/constants.js +13 -0
  8. package/dist/postext/constants.js.map +1 -0
  9. package/dist/postext/pageVideos.d.ts +26 -0
  10. package/dist/postext/pageVideos.d.ts.map +1 -0
  11. package/dist/postext/pageVideos.js +276 -0
  12. package/dist/postext/pageVideos.js.map +1 -0
  13. package/dist/postext/painting.d.ts +30 -0
  14. package/dist/postext/painting.d.ts.map +1 -0
  15. package/dist/postext/painting.js +167 -0
  16. package/dist/postext/painting.js.map +1 -0
  17. package/dist/postext/sharp.d.ts +19 -0
  18. package/dist/postext/sharp.d.ts.map +1 -0
  19. package/dist/postext/sharp.js +121 -0
  20. package/dist/postext/sharp.js.map +1 -0
  21. package/dist/postext/state.d.ts +29 -0
  22. package/dist/postext/state.d.ts.map +1 -0
  23. package/dist/postext/state.js +2 -0
  24. package/dist/postext/state.js.map +1 -0
  25. package/dist/postext/sweep.d.ts +24 -0
  26. package/dist/postext/sweep.d.ts.map +1 -0
  27. package/dist/postext/sweep.js +37 -0
  28. package/dist/postext/sweep.js.map +1 -0
  29. package/dist/postext/types.d.ts +77 -0
  30. package/dist/postext/types.d.ts.map +1 -0
  31. package/dist/postext/types.js +2 -0
  32. package/dist/postext/types.js.map +1 -0
  33. package/dist/postext.d.ts +6 -124
  34. package/dist/postext.d.ts.map +1 -1
  35. package/dist/postext.js +87 -732
  36. package/dist/postext.js.map +1 -1
  37. package/dist/viewer/constants.d.ts +30 -0
  38. package/dist/viewer/constants.d.ts.map +1 -0
  39. package/dist/viewer/constants.js +49 -0
  40. package/dist/viewer/constants.js.map +1 -0
  41. package/dist/viewer/input.d.ts +15 -0
  42. package/dist/viewer/input.d.ts.map +1 -0
  43. package/dist/viewer/input.js +142 -0
  44. package/dist/viewer/input.js.map +1 -0
  45. package/dist/viewer/layout.d.ts +24 -0
  46. package/dist/viewer/layout.d.ts.map +1 -0
  47. package/dist/viewer/layout.js +183 -0
  48. package/dist/viewer/layout.js.map +1 -0
  49. package/dist/viewer/lens.d.ts +42 -0
  50. package/dist/viewer/lens.d.ts.map +1 -0
  51. package/dist/viewer/lens.js +166 -0
  52. package/dist/viewer/lens.js.map +1 -0
  53. package/dist/viewer/pointer.d.ts +37 -0
  54. package/dist/viewer/pointer.d.ts.map +1 -0
  55. package/dist/viewer/pointer.js +250 -0
  56. package/dist/viewer/pointer.js.map +1 -0
  57. package/dist/viewer/state.d.ts +70 -0
  58. package/dist/viewer/state.d.ts.map +1 -0
  59. package/dist/viewer/state.js +2 -0
  60. package/dist/viewer/state.js.map +1 -0
  61. package/dist/viewer/turning.d.ts +34 -0
  62. package/dist/viewer/turning.d.ts.map +1 -0
  63. package/dist/viewer/turning.js +156 -0
  64. package/dist/viewer/turning.js.map +1 -0
  65. package/dist/viewer/types.d.ts +241 -0
  66. package/dist/viewer/types.d.ts.map +1 -0
  67. package/dist/viewer/types.js +2 -0
  68. package/dist/viewer/types.js.map +1 -0
  69. package/dist/viewer.d.ts +3 -242
  70. package/dist/viewer.d.ts.map +1 -1
  71. package/dist/viewer.js +104 -976
  72. package/dist/viewer.js.map +1 -1
  73. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turning.d.ts","sourceRoot":"","sources":["../../src/viewer/turning.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAwB,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,KAAK,MAAM,EAA2B,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpE,sDAAsD;AACtD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,EAAE,oBAAoB,CAAC;IAC5B,GAAG,EAAE,MAAM,OAAO,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,EAAE,CAAC;IAC7C,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,SAAS,EAAE,CAAC;IAC1B,cAAc,EAAE,MAAM,cAAc,CAAC;IACrC,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,cAAc,CAAC;IAC1D,EAAE,EAAE,gBAAgB,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;CACxB;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB;;iBAanC,cAAc;;;gBA6Df,MAAM;kBAeJ,MAAM;sBA+CF,MAAM;;EAsBhC"}
@@ -0,0 +1,156 @@
1
+ // The folio viewer's turning: page videos, the render of a spread, go and
2
+ // jump, the flipper's set-up and the rebuild (#1276: split out of viewer.ts).
3
+ import { sourceOf, rgbOf, SINGLE_BELOW, CHEVRON } from './constants.js';
4
+ import { canFlip, PageFlipper } from '../pageFlip.js';
5
+ import { spreadsOf, spreadOfPage } from '../spreads.js';
6
+ export function createFolioTurning(deps) {
7
+ const { options, animate, root, prevBtn, nextBtn, spreadEl, count, rtl, pagesOf, singleGl, bookOf, flipAppearance, fit, pageEl, vs, vlate } = deps;
8
+ /** Shows the page videos: on the WebGL book, drawn by the leaves that
9
+ * carry their pages; on the DOM spread, laid over the pages. */
10
+ function applyVideo() {
11
+ vs.flipper?.setVideos(vs.pageVideos.map((v) => ({ src: sourceOf(vs.pages[v.page]), element: v.element, frame: v })));
12
+ placeDomVideo();
13
+ }
14
+ /** Takes a video element laid over a DOM page off it. */
15
+ const unplace = (v) => {
16
+ if (!v.element.classList.contains("postext-folio-video"))
17
+ return;
18
+ v.element.classList.remove("postext-folio-video");
19
+ v.element.remove();
20
+ };
21
+ /** The DOM spread (no WebGL): each video element over its page, mapped
22
+ * onto the picture's place by a transform (it may lie turned). */
23
+ function placeDomVideo() {
24
+ if (vs.flipper) {
25
+ for (const v of vs.pageVideos)
26
+ unplace(v);
27
+ return;
28
+ }
29
+ const els = [...spreadEl.children];
30
+ const s = vs.spreads[vs.shown] ?? [null, null];
31
+ const slots = vs.single && !singleGl() ? [s[0] ?? s[1]] : s;
32
+ for (const v of vs.pageVideos) {
33
+ const at = slots.indexOf(v.page);
34
+ const el = at >= 0 ? els[at] : undefined;
35
+ if (!el) {
36
+ v.element.remove();
37
+ continue;
38
+ }
39
+ const w = el.clientWidth;
40
+ const h = el.clientHeight;
41
+ const unit = 100;
42
+ v.element.classList.add("postext-folio-video");
43
+ Object.assign(v.element.style, {
44
+ width: `${unit}px`,
45
+ height: `${unit}px`,
46
+ transform: `matrix(${(v.across.x * w) / unit}, ${(v.across.y * h) / unit}, ${(v.down.x * w) / unit}, ${(v.down.y * h) / unit}, ${v.origin.x * w}, ${v.origin.y * h})`,
47
+ });
48
+ if (v.element.parentElement !== el)
49
+ el.append(v.element);
50
+ }
51
+ }
52
+ function render() {
53
+ const s = vs.spreads[vs.shown] ?? [null, null];
54
+ const slots = vs.single && !singleGl() ? [s[0] ?? s[1]] : s;
55
+ spreadEl.replaceChildren(...slots.map((i, side) => pageEl(i, side)));
56
+ spreadEl.classList.toggle("is-solo", vs.single && !singleGl());
57
+ spreadEl.classList.toggle("is-by-hand", !!vs.flipper);
58
+ // The canvas draws the book, still or turning; the DOM pages stay as
59
+ // the textures' sources and the pages' text alternatives.
60
+ spreadEl.classList.toggle("is-gl", !!vs.flipper);
61
+ const on = pagesOf(vs.spreads[vs.current]);
62
+ count.textContent = on.length ? vs.labels.count(on, vs.pages.length) : "";
63
+ prevBtn.disabled = vs.current <= 0;
64
+ nextBtn.disabled = vs.current >= vs.spreads.length - 1;
65
+ placeDomVideo();
66
+ // The settled spread, drawn at rest.
67
+ vs.flipper?.clear();
68
+ vlate.scheduleDetail(120);
69
+ }
70
+ function settle(index) {
71
+ vs.shown = index;
72
+ render();
73
+ options.onChange?.({ spread: index, pages: pagesOf(vs.spreads[index]) });
74
+ }
75
+ function go(index) {
76
+ const to = Math.max(0, Math.min(vs.spreads.length - 1, index));
77
+ if (to === vs.current && to === vs.shown)
78
+ return;
79
+ vs.current = to;
80
+ options.onTarget?.({ spread: to, pages: pagesOf(vs.spreads[to]) });
81
+ if (vs.flipper) {
82
+ vs.flipper.go(to);
83
+ // The count and buttons follow the hand at once.
84
+ count.textContent = vs.labels.count(pagesOf(vs.spreads[to]), vs.pages.length);
85
+ prevBtn.disabled = to <= 0;
86
+ nextBtn.disabled = to >= vs.spreads.length - 1;
87
+ }
88
+ else
89
+ settle(to);
90
+ }
91
+ /** Opens spread `index` at once, no leaf turning. */
92
+ function jump(index) {
93
+ const to = Math.max(0, Math.min(vs.spreads.length - 1, index));
94
+ if (to === vs.current && to === vs.shown)
95
+ return;
96
+ vs.current = to;
97
+ options.onTarget?.({ spread: to, pages: pagesOf(vs.spreads[to]) });
98
+ vs.flipper?.setBook(bookOf(), to);
99
+ settle(to);
100
+ }
101
+ function setUpFlipper() {
102
+ vs.flipper?.dispose();
103
+ vs.flipper = null;
104
+ vs.flipCanvas?.remove();
105
+ vs.flipCanvas = null;
106
+ if (!animate || vs.spreads.length < 2 || !canFlip())
107
+ return;
108
+ vs.flipCanvas = document.createElement("canvas");
109
+ vs.flipCanvas.className = "postext-folio-flip";
110
+ vs.flipCanvas.setAttribute("aria-hidden", "true");
111
+ root.append(vs.flipCanvas);
112
+ const initial = flipAppearance();
113
+ vs.appearanceKey = JSON.stringify(initial);
114
+ vs.flipper = new PageFlipper(vs.flipCanvas, spreadEl, bookOf(), vs.shown, settle, (i) => {
115
+ vs.current = i;
116
+ options.onTarget?.({ spread: i, pages: pagesOf(vs.spreads[i]) });
117
+ count.textContent = vs.labels.count(pagesOf(vs.spreads[i]), vs.pages.length);
118
+ }, vs.binding,
119
+ // One page at a time the spine is the box's edge: the leaf cannot be
120
+ // carried past halfway, so a shorter pull turns it.
121
+ { persistent: true, turnAt: vs.single ? 0.2 : 0.5, appearance: initial });
122
+ const rgb = rgbOf(vs.paper);
123
+ if (rgb)
124
+ vs.flipper.setPaper(...rgb);
125
+ if (vs.pageVideos.length)
126
+ applyVideo();
127
+ // A new book: its glass and paintings start afresh.
128
+ vs.details = new Map();
129
+ vs.detailAsked = new Map();
130
+ if (vs.lensAt)
131
+ vs.flipper.setLens(vlate.lensOf(vs.lensAt));
132
+ }
133
+ /** Lays the book out again: spreads, mode, flipper. */
134
+ function rebuild(atPage) {
135
+ vs.single = vs.mode === "single" || (vs.mode === "auto" && root.clientWidth > 0 && root.clientWidth < SINGLE_BELOW);
136
+ vs.spreads = vs.single ? vs.pages.map((_, i) => [null, i]) : spreadsOf(vs.pages.length, vs.firstPageRecto);
137
+ vs.current = vs.shown = spreadOfPage(vs.spreads, atPage);
138
+ root.dir = rtl() ? "rtl" : "ltr";
139
+ root.style.setProperty("--postext-folio-paper", vs.paper);
140
+ root.classList.toggle("is-single", vs.single);
141
+ prevBtn.innerHTML = CHEVRON(rtl() ? "right" : "left");
142
+ nextBtn.innerHTML = CHEVRON(rtl() ? "left" : "right");
143
+ setUpFlipper();
144
+ fit();
145
+ render();
146
+ }
147
+ function applyLabels() {
148
+ root.setAttribute("aria-label", vs.labels.region);
149
+ prevBtn.setAttribute("aria-label", vs.labels.prev);
150
+ nextBtn.setAttribute("aria-label", vs.labels.next);
151
+ }
152
+ return {
153
+ applyVideo, unplace, placeDomVideo, render, go, jump, rebuild, applyLabels
154
+ };
155
+ }
156
+ //# sourceMappingURL=turning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turning.js","sourceRoot":"","sources":["../../src/viewer/turning.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,241 @@
1
+ import type { FolioPaperConfig, FolioConfig } from 'postext';
2
+ import type { PageSource, PageVideoFrame } from '../pageFlip.js';
3
+ /** A page of the book: its source, or its source with a text alternative
4
+ * and the paper it is printed on when that is not the book's (a plate
5
+ * section on gloss in a matte book). */
6
+ export type FolioPage = PageSource | {
7
+ src: PageSource;
8
+ alt?: string;
9
+ paper?: FolioPaperConfig;
10
+ };
11
+ /** How the 3D book is presented. */
12
+ export interface FolioAppearance {
13
+ /** View, paper, binding, desk and light (postext's `folio` config). */
14
+ folio?: FolioConfig;
15
+ /** The trim width of a page in mm (the paper's caliper and the cover's
16
+ * board are scaled against it). Default 150. */
17
+ pageWidthMm?: number;
18
+ /** Pages of the book before the first page given and after the last
19
+ * (the other chapters of a book shown a chapter at a time): they are
20
+ * never drawn, only counted for the thickness of the page block.
21
+ * `createFolioFromDocument` places the covers by them too: with pages
22
+ * before, the first page given is not the book's front cover, nor with
23
+ * pages after the last its back cover (a chapter from the middle of a
24
+ * book with its own covers turns paper leaves). */
25
+ extraPages?: {
26
+ before: number;
27
+ after: number;
28
+ };
29
+ /** Where the scanned desk textures are served (see
30
+ * `FlipAppearance.textureBaseUrl`). */
31
+ textureBaseUrl?: string;
32
+ /** The first page given is the book's front cover, the last its back
33
+ * cover (when it falls on a verso): they turn as boards and no case
34
+ * is drawn round the pages. */
35
+ covers?: {
36
+ front: boolean;
37
+ back: boolean;
38
+ };
39
+ /** The picture printed on the spine: the image the `folio.binding.
40
+ * spineImage` resource names, as a URL (or a drawn canvas or image).
41
+ * See `FlipAppearance.spineImage`. */
42
+ spineImage?: PageSource;
43
+ }
44
+ /** What the left button (or one finger) does on the book: `hand` takes
45
+ * and turns the pages, `orbit` turns the view round the book (what the
46
+ * right button always does), `select` leaves the pointer to the host (to
47
+ * select text: `pageAt` says where on which page it is), `magnify` holds
48
+ * a magnifying glass over the book where the pointer is (#527; a finger
49
+ * holds it above itself while it touches the screen): the wheel, + and −
50
+ * change how much it magnifies, Esc puts it away. The pointer is left to
51
+ * the host under the glass too, a text cursor over the pages (#543):
52
+ * `pageAt` then says what lies under the glass's centre. */
53
+ export type FolioInteraction = "hand" | "orbit" | "select" | "magnify";
54
+ /** The magnifying glass (`interaction: 'magnify'`). */
55
+ export interface FolioMagnifier {
56
+ /** How many times it magnifies the book at its centre (1.5 … 10).
57
+ * Default: enough to show the page at about 5.5 CSS px a millimetre
58
+ * (small print readable), between 2 and 8. */
59
+ zoom?: number;
60
+ /** The glass's diameter with its rim, in CSS px. Default 42 % of the
61
+ * viewer's shorter side, between 180 and 520. */
62
+ diameter?: number;
63
+ }
64
+ /** Sharper paintings of the pages for the magnifying glass: without them
65
+ * it magnifies the pages as given (an image at its natural size, a
66
+ * canvas at its own). */
67
+ export interface FolioPageDetail {
68
+ /** Page `index` painted `deviceWidth` px wide (or as near as the host
69
+ * can): the glass shows it in place of the page's own source. */
70
+ paint(index: number, deviceWidth: number): PageSource | Promise<PageSource>;
71
+ /** The glass was put away (another interaction): the paintings can be
72
+ * let go. */
73
+ release?(): void;
74
+ }
75
+ /** A point on a page as printed: the page index and where on it, as
76
+ * fractions of its width and height from its top left corner. */
77
+ export interface FolioPagePoint {
78
+ page: number;
79
+ x: number;
80
+ y: number;
81
+ }
82
+ /** A video drawn on a page of the book (#477): the element playing it and
83
+ * where its picture lies on the page (see `PageVideoFrame`). */
84
+ export interface FolioPageVideo extends PageVideoFrame {
85
+ page: number;
86
+ element: HTMLVideoElement;
87
+ }
88
+ export interface FolioLabels {
89
+ /** The viewer's accessible name. */
90
+ region: string;
91
+ prev: string;
92
+ next: string;
93
+ /** The pages on show, for the live count under the book: page indexes
94
+ * (0-based) and the page count. */
95
+ count: (pages: number[], total: number) => string;
96
+ }
97
+ export interface FolioOptions {
98
+ pages: FolioPage[];
99
+ /** Whether the first page is a recto (it opens alone, on the right of a
100
+ * left-bound book). Default true. */
101
+ firstPageRecto?: boolean;
102
+ /** The edge the book is bound on. A right-bound book lies mirrored: page
103
+ * 1 alone on the left, pairs [3 | 2], and its pages turn leftward. */
104
+ binding?: "left" | "right";
105
+ /** The page to open on (0-based). Default 0. */
106
+ at?: number;
107
+ /** `double` shows spreads and turns leaves in 3D; `single` one page at a
108
+ * time; `auto` (default) is single in a box narrower than 560 px. */
109
+ mode?: "auto" | "single" | "double";
110
+ /** A page's width / height, when the pages cannot tell it yet (blank
111
+ * until painted). Default: the first sized page's, else 1 : √2. */
112
+ aspect?: number;
113
+ /** The colour of blank pages (any CSS colour). Default white. */
114
+ paper?: string;
115
+ /** Turns leaves in 3D when WebGL2 is there and the reader has not asked
116
+ * for reduced motion. Default true. */
117
+ animate?: boolean;
118
+ /** Draws the ‹ › buttons and the page count. Default true. */
119
+ controls?: boolean;
120
+ /** Shows the page count under the book. Default true. When false it is
121
+ * still announced to screen readers (a visually hidden live region). */
122
+ showCount?: boolean;
123
+ labels?: Partial<FolioLabels>;
124
+ /** How the 3D book is presented (see {@link FolioAppearance}). */
125
+ appearance?: FolioAppearance;
126
+ /** What the left button does (see {@link FolioInteraction}). Default
127
+ * `hand`. */
128
+ interaction?: FolioInteraction;
129
+ /** The magnifying glass (see {@link FolioMagnifier}). */
130
+ magnifier?: FolioMagnifier;
131
+ /** Sharper paintings for the magnifying glass (see
132
+ * {@link FolioPageDetail}). */
133
+ detail?: FolioPageDetail;
134
+ /** Told of every spread that settles: its index and the pages on show. */
135
+ onChange?: (state: FolioState) => void;
136
+ /** Told as soon as the book is sent to another spread (a button, a key,
137
+ * a page let go past halfway), before its leaves have landed. */
138
+ onTarget?: (state: FolioState) => void;
139
+ /** A click on a page, before it turns the page (hand mode) or reaches
140
+ * the host (select mode): return true when the click did something else,
141
+ * such as playing a video printed there. In orbit and select modes it is
142
+ * asked only where `isPageAction` says a click acts. */
143
+ onPageClick?: (point: FolioPagePoint) => boolean;
144
+ /** Whether a click at this point of a page acts on it (`onPageClick`):
145
+ * the pointer shows a hand there. */
146
+ isPageAction?: (point: FolioPagePoint) => boolean;
147
+ /** Told when the page slots change size: a host painting pages for the
148
+ * viewer paints them at `deviceWidth` × `deviceHeight` pixels, so they
149
+ * are shown 1:1 both at rest and on a turning leaf. */
150
+ onLayout?: (size: FolioPageSize) => void;
151
+ }
152
+ /** One page slot of the spread: its CSS size, and the device pixels it
153
+ * covers (the size a page bitmap is shown 1:1 at). */
154
+ export interface FolioPageSize {
155
+ width: number;
156
+ height: number;
157
+ deviceWidth: number;
158
+ deviceHeight: number;
159
+ }
160
+ export interface FolioState {
161
+ spread: number;
162
+ /** The page indexes on show (one or two). */
163
+ pages: number[];
164
+ }
165
+ export interface FolioViewer {
166
+ /** The viewer's root element. */
167
+ readonly element: HTMLElement;
168
+ /** Turns to the spread that shows page `index`; `instant` opens it
169
+ * there without turning the leaves (a link, a restored position). */
170
+ goToPage(index: number, options?: {
171
+ instant?: boolean;
172
+ }): void;
173
+ /** Turns to spread `index` (`instant`: opens it there). */
174
+ goToSpread(index: number, options?: {
175
+ instant?: boolean;
176
+ }): void;
177
+ next(): void;
178
+ prev(): void;
179
+ /** Replaces the pages (a relayout, or more pages painted), staying on
180
+ * the page on show unless `at` says otherwise. */
181
+ setPages(pages: FolioPage[], options?: Pick<FolioOptions, "firstPageRecto" | "binding" | "at" | "paper" | "mode">): void;
182
+ /** The page slot's size, as last laid out. */
183
+ readonly pageSize: FolioPageSize;
184
+ /** Swaps the labels (a host that changes language). */
185
+ setLabels(labels: Partial<FolioLabels>): void;
186
+ /** Changes how the 3D book is presented. */
187
+ setAppearance(appearance: FolioAppearance): void;
188
+ /** Eases the view back to the one the settings give (after the reader
189
+ * orbited it with a right-drag). */
190
+ resetView(): void;
191
+ /** The view as it is seen now, in degrees: `tilt` from straight above,
192
+ * `yaw` round the book (−180 … 180), ready to store as `folio.tilt` and
193
+ * `folio.yaw`; null without the 3D book. */
194
+ getView(): {
195
+ tilt: number;
196
+ yaw: number;
197
+ } | null;
198
+ /** Changes what the left button does. */
199
+ setInteraction(mode: FolioInteraction): void;
200
+ /** How many times the magnifying glass magnifies at its centre; null
201
+ * goes back to the default (see {@link FolioMagnifier.zoom}). */
202
+ setMagnification(zoom: number | null): void;
203
+ /** The magnifying glass as it is: how many times it magnifies at its
204
+ * centre, and whether it is held over the book now. */
205
+ getMagnifier(): {
206
+ zoom: number;
207
+ held: boolean;
208
+ };
209
+ /** Holds the glass over the middle of the open spread, as the + and −
210
+ * keys do (in the magnify interaction, on the 3D book), or puts it
211
+ * away, as Escape does. */
212
+ holdMagnifier(held: boolean): void;
213
+ /** A page's canvas was drawn again in place: shows it again. */
214
+ refreshPage(src: PageSource): void;
215
+ /** Plays a video on a page (#477): drawn over the page's painting, on
216
+ * the leaf that carries it as it lies or turns; `null` takes it off.
217
+ * The same as `setPageVideos` with one video or none. */
218
+ setPageVideo(video: FolioPageVideo | null): void;
219
+ /** Plays these videos on their pages together (#507), in place of the
220
+ * ones shown before; an empty list takes them all off. The WebGL book
221
+ * draws up to eight at once (any more show their posters); the DOM
222
+ * spread lays each element over its page. */
223
+ setPageVideos(videos: readonly FolioPageVideo[]): void;
224
+ /** The page under a pointer and where on it, as the book is seen (the
225
+ * tilted, orbited 3D book included); null off the open pages. In
226
+ * magnify mode, the point under the glass's centre (#543), which a
227
+ * finger holds above itself. */
228
+ pageAt(event: {
229
+ clientX: number;
230
+ clientY: number;
231
+ }): FolioPagePoint | null;
232
+ /** Where a point of a page lies on screen (client px), when the page
233
+ * lies open; null otherwise. */
234
+ pointOnScreen(point: FolioPagePoint): {
235
+ x: number;
236
+ y: number;
237
+ } | null;
238
+ readonly state: FolioState;
239
+ dispose(): void;
240
+ }
241
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/viewer/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/viewer/types.ts"],"names":[],"mappings":""}