postext-folio 0.5.3 → 0.6.0

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/dist/postext.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { type VDTDocument, type VDTPage } from "postext";
2
- import { type FolioAppearance, type FolioOptions, type FolioViewer } from "./viewer";
2
+ import { type FolioAppearance, type FolioOptions, type FolioPagePoint, type FolioViewer } from "./viewer";
3
3
  export interface FolioDocumentOptions extends Omit<FolioOptions, "pages" | "firstPageRecto" | "binding" | "at" | "aspect"> {
4
4
  /** The page to open on (0-based). Default 0. */
5
5
  at?: number;
@@ -19,6 +19,29 @@ export interface FolioDocumentOptions extends Omit<FolioOptions, "pages" | "firs
19
19
  * when a page is painted and on `redecorate`.
20
20
  */
21
21
  decorate?: (index: number, ctx: CanvasRenderingContext2D) => boolean;
22
+ /**
23
+ * Videos printed on the pages play there (#477): a click on a video's
24
+ * poster plays it on the page (in every pointer mode), a click on it
25
+ * again pauses it, and it goes on playing while its leaf turns. A video
26
+ * with `player.autoplay` starts by itself the first time its spread is
27
+ * shown (muted until the reader has interacted with the page). Starting another
28
+ * stops the one playing; it stops too when the book comes to rest on a
29
+ * spread that does not show it. Self-hosted videos only (a file, or its
30
+ * address: MP4, WebM or an HLS stream); a YouTube or Vimeo poster turns
31
+ * the page as any other. The video's server must allow cross-origin
32
+ * reads (CORS) for WebGL to draw it. Default true.
33
+ */
34
+ videos?: boolean;
35
+ /** The address a self-hosted video's file plays from (an object URL for
36
+ * its `fileId`); without one, its production address (`video.url`). */
37
+ videoUrl?: (fileId: string) => string | undefined;
38
+ /** Told when a video on a page starts playing, pauses, stops or cannot
39
+ * play (`error`: no address, a refused cross-origin read, no HLS). */
40
+ onVideo?: (event: {
41
+ resourceId: string;
42
+ page: number;
43
+ state: "playing" | "paused" | "stopped" | "error";
44
+ }) => void;
22
45
  }
23
46
  export interface FolioDocumentViewer extends FolioViewer {
24
47
  /** Shows another layout of the book (after an edit), on the same page
@@ -35,6 +58,11 @@ export interface FolioDocumentViewer extends FolioViewer {
35
58
  /** Draws the decorations (`decorate`) again on these pages, or on every
36
59
  * painted page; the book shows them at once, on a turning leaf too. */
37
60
  redecorate(pages?: Iterable<number>): void;
61
+ /** Plays or pauses the video printed at a point of a page, as a click
62
+ * there does; false when no playable video lies there. */
63
+ toggleVideoAt(point: FolioPagePoint): boolean;
64
+ /** Stops the video playing on a page (its poster shows again). */
65
+ stopVideo(): void;
38
66
  }
39
67
  /** Whether the document's first page is a recto: page 1, or a chapter
40
68
  * continued after an even number of pages. */
@@ -1 +1 @@
1
- {"version":3,"file":"postext.d.ts","sourceRoot":"","sources":["../src/postext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAG7E,OAAO,EAAe,KAAK,eAAe,EAAE,KAAK,YAAY,EAAuC,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvI,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,GAAG,IAAI,GAAG,QAAQ,CAAC;IACxH,gDAAgD;IAChD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;qBAEiB;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,wBAAwB,KAAK,OAAO,CAAC;CACtE;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD;;;;;2DAKuD;IACvD,WAAW,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,eAAe,CAAA;KAAE,GAAG,IAAI,CAAC;IAChH;4EACwE;IACxE,UAAU,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAC5C;AAED;+CAC+C;AAC/C,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAE1D;AAED;;yDAEyD;AACzD,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAG9F;AAQD;;;;;wEAKwE;AACxE,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,eAAe,GAAG,SAAS,GAAG,eAAe,CAmBhG;AAiBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,OAAO,EAAE,EAC1B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GACvB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAoBrB;AAKD;;2BAE2B;AAC3B,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACxB;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAerI;AAOD;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,oBAAyB,GAAG,mBAAmB,CAgUzI"}
1
+ {"version":3,"file":"postext.d.ts","sourceRoot":"","sources":["../src/postext.ts"],"names":[],"mappings":"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"}
package/dist/postext.js CHANGED
@@ -2,6 +2,7 @@ import { renderPageToCanvas } from "postext";
2
2
  import { resolveFolioConfig } from "postext";
3
3
  import { BLOCK_PAGES } from "./pageFlip";
4
4
  import { createFolio } from "./viewer";
5
+ import { attachVideoSource, isHlsVideo, pageVideoSpots, spotContains } from "./videos";
5
6
  /** Whether the document's first page is a recto: page 1, or a chapter
6
7
  * continued after an even number of pages. */
7
8
  export function firstPageIsRecto(doc) {
@@ -123,6 +124,9 @@ export function sweepFor(run, settled, target, count) {
123
124
  }
124
125
  /** Painting time per frame while leaves are in the air. */
125
126
  const SWEEP_BUDGET_MS = 8;
127
+ /** How long the book must stay as it is before a video set to play on its
128
+ * own starts (a host's layouts settling, a run of turns). */
129
+ const AUTOPLAY_SETTLE_MS = 700;
126
130
  /** How long a resize settles before the pages are painted at the new size. */
127
131
  const RESIZE_SETTLE_MS = 120;
128
132
  /**
@@ -322,6 +326,194 @@ export function createFolioFromDocument(container, doc, options = {}) {
322
326
  // The leaf a hand would lift next shows the neighbours' pages.
323
327
  return [...pages, pages[0] - 2, pages[0] - 1, pages[pages.length - 1] + 1, pages[pages.length - 1] + 2];
324
328
  };
329
+ // ── Videos on the pages (#477) ──
330
+ /** The video spots of each page of the current document, as found. */
331
+ let spots = new Map();
332
+ /** The video playing (or paused) on a page; `autoMuted` while it plays
333
+ * muted because it started on its own. */
334
+ let playing = null;
335
+ /** The videos that have started on their own once (`player.autoplay`). */
336
+ const autoplayed = new Set();
337
+ const spotsOf = (i) => {
338
+ let found = spots.get(i);
339
+ if (!found) {
340
+ const page = current.pages[i];
341
+ found = page ? pageVideoSpots(page, current) : [];
342
+ spots.set(i, found);
343
+ }
344
+ return found;
345
+ };
346
+ /** Where a self-hosted video plays from: its file, else its address. */
347
+ const urlOf = (spot) => {
348
+ const v = spot.video;
349
+ if (v.source !== "file")
350
+ return undefined;
351
+ return (v.fileId ? options.videoUrl?.(v.fileId) : undefined) ?? v.link;
352
+ };
353
+ const spotAt = (point) => options.videos === false ? undefined : spotsOf(point.page).find((s) => urlOf(s) && spotContains(s, point.x, point.y));
354
+ const report = (state) => {
355
+ if (playing)
356
+ options.onVideo?.({ resourceId: playing.spot.resourceId, page: playing.page, state });
357
+ };
358
+ /** Shows the playing video on its page (once it has a frame to show). */
359
+ function showVideo() {
360
+ if (!playing)
361
+ return;
362
+ playing.shown = true;
363
+ viewer.setPageVideo({ page: playing.page, element: playing.element, origin: playing.spot.origin, across: playing.spot.across, down: playing.spot.down, ...(playing.spot.crop ? { crop: playing.spot.crop } : {}) });
364
+ }
365
+ function stopVideo(state = "stopped") {
366
+ const p = playing;
367
+ if (!p)
368
+ return;
369
+ report(state);
370
+ playing = null;
371
+ p.element.pause();
372
+ p.release?.();
373
+ if (p.shown)
374
+ viewer.setPageVideo(null);
375
+ }
376
+ function startVideo(page, spot, auto = false) {
377
+ stopVideo();
378
+ const url = urlOf(spot);
379
+ if (!url)
380
+ return;
381
+ const element = document.createElement("video");
382
+ element.playsInline = true;
383
+ element.preload = "auto";
384
+ // WebGL draws the picture only when its server allows the read.
385
+ if (!/^(blob|data):/i.test(url))
386
+ element.crossOrigin = "anonymous";
387
+ const player = spot.video.player;
388
+ // A video that starts on its own has its sound once the reader has
389
+ // clicked or typed on the page (the browser allows it then); before
390
+ // that it starts muted, as browsers require, and a click unmutes it.
391
+ const activated = navigator.userActivation?.hasBeenActive ?? false;
392
+ element.muted = player.muted || (auto && !activated);
393
+ const entry = { page, spot, element, shown: false, autoMuted: !player.muted && element.muted };
394
+ playing = entry;
395
+ const live = () => playing === entry;
396
+ const range = { start: spot.video.start ?? 0, end: spot.video.end };
397
+ element.addEventListener("error", () => live() && stopVideo("error"));
398
+ element.addEventListener("loadedmetadata", () => {
399
+ if (range.start)
400
+ element.currentTime = range.start;
401
+ }, { once: true });
402
+ element.addEventListener("loadeddata", () => live() && showVideo(), { once: true });
403
+ element.addEventListener("playing", () => live() && report("playing"));
404
+ element.addEventListener("pause", () => live() && !element.ended && report("paused"));
405
+ const atEnd = () => {
406
+ if (!live())
407
+ return;
408
+ if (player.loop) {
409
+ element.currentTime = range.start;
410
+ void element.play().catch(() => { });
411
+ }
412
+ else
413
+ stopVideo();
414
+ };
415
+ element.addEventListener("ended", atEnd);
416
+ element.addEventListener("timeupdate", () => {
417
+ if (range.end && element.currentTime >= range.end)
418
+ atEnd();
419
+ });
420
+ // The picture's height on screen: an HLS stream needs no larger variant.
421
+ const size = viewer.pageSize;
422
+ const maxHeight = Math.max(Math.hypot(spot.down.x * size.deviceWidth, spot.down.y * size.deviceHeight), Math.hypot(spot.across.x * size.deviceWidth, spot.across.y * size.deviceHeight));
423
+ void attachVideoSource(element, url, { hls: isHlsVideo(spot.video, url), maxHeight, corsTag: true }).then((release) => {
424
+ if (!live())
425
+ return release();
426
+ entry.release = release;
427
+ // The click's gesture lets it play with sound; a browser that still
428
+ // refuses gets it muted.
429
+ element.play().catch((err) => {
430
+ if (!live())
431
+ return;
432
+ if (err?.name === "NotAllowedError" && !element.muted) {
433
+ element.muted = true;
434
+ entry.autoMuted = !player.muted;
435
+ return element.play();
436
+ }
437
+ throw err;
438
+ }).catch(() => live() && stopVideo("error"));
439
+ }, () => live() && stopVideo("error"));
440
+ }
441
+ /** A click at a point of a page: plays, pauses or resumes the video
442
+ * printed there. */
443
+ function toggleVideoAt(point) {
444
+ const spot = spotAt(point);
445
+ if (!spot)
446
+ return false;
447
+ if (playing && playing.page === point.page && playing.spot.key === spot.key)
448
+ togglePlaying();
449
+ else
450
+ startVideo(point.page, spot);
451
+ return true;
452
+ }
453
+ /** A click (or Space) on the video playing: one that started on its own
454
+ * is unmuted first; otherwise it pauses or resumes. */
455
+ function togglePlaying() {
456
+ const p = playing;
457
+ if (!p)
458
+ return;
459
+ if (p.autoMuted && !p.element.paused) {
460
+ p.autoMuted = false;
461
+ p.element.muted = false;
462
+ return;
463
+ }
464
+ if (p.element.paused)
465
+ void p.element.play().catch(() => { });
466
+ else
467
+ p.element.pause();
468
+ }
469
+ /** Autoplay waits for the book to settle: a host lays a book out in
470
+ * steps (a chapter, then the whole book), and only the spread the reader
471
+ * is left looking at counts as shown. */
472
+ let autoTimer = 0;
473
+ const scheduleAutoplay = () => {
474
+ clearTimeout(autoTimer);
475
+ autoTimer = window.setTimeout(() => {
476
+ if (!turning)
477
+ autoplayOn(viewer.state.pages);
478
+ }, AUTOPLAY_SETTLE_MS);
479
+ };
480
+ /** The first time a spread shows a video set to play on its own
481
+ * (`player.autoplay`), it starts, muted; never again in this viewer. */
482
+ function autoplayOn(pages) {
483
+ if (options.videos === false || playing)
484
+ return;
485
+ for (const page of pages) {
486
+ for (const spot of spotsOf(page)) {
487
+ if (!spot.video.player.autoplay || !urlOf(spot) || autoplayed.has(spot.key))
488
+ continue;
489
+ autoplayed.add(spot.key);
490
+ startVideo(page, spot, true);
491
+ return;
492
+ }
493
+ }
494
+ }
495
+ /** A new layout: the playing video follows its resource to where the
496
+ * layout puts it, or stops when it is gone. */
497
+ function followVideo() {
498
+ spots = new Map();
499
+ const p = playing;
500
+ if (!p)
501
+ return;
502
+ const near = [p.page, ...viewer.state.pages];
503
+ for (let i = 0; i < current.pages.length; i++)
504
+ near.push(i);
505
+ for (const i of near) {
506
+ const spot = spotsOf(i).find((s) => s.key === p.spot.key && urlOf(s) === urlOf(p.spot));
507
+ if (!spot)
508
+ continue;
509
+ p.page = i;
510
+ p.spot = spot;
511
+ if (p.shown)
512
+ showVideo();
513
+ return;
514
+ }
515
+ stopVideo();
516
+ }
325
517
  const first = doc.pages[0];
326
518
  const viewer = createFolio(container, {
327
519
  ...options,
@@ -342,7 +534,14 @@ export function createFolioFromDocument(container, doc, options = {}) {
342
534
  refresh(around(state));
343
535
  options.onTarget?.(state);
344
536
  },
537
+ onPageClick: (point) => toggleVideoAt(point) || !!options.onPageClick?.(point),
538
+ isPageAction: (point) => !!spotAt(point) || !!options.isPageAction?.(point),
345
539
  onChange: (state) => {
540
+ // A video whose page has turned away stops; one set to play on its
541
+ // own starts the first time its spread is shown.
542
+ if (playing && !state.pages.includes(playing.page))
543
+ stopVideo();
544
+ scheduleAutoplay();
346
545
  focus = state.pages;
347
546
  settled = state.pages;
348
547
  turning = false;
@@ -367,6 +566,32 @@ export function createFolioFromDocument(container, doc, options = {}) {
367
566
  focus = viewer.state.pages;
368
567
  settled = viewer.state.pages;
369
568
  refresh(around(viewer.state));
569
+ scheduleAutoplay();
570
+ // Debugging (`__postextFolioPreserve`, as for the renderer): the videos.
571
+ if (globalThis.__postextFolioPreserve) {
572
+ globalThis.__postextFolioVideos = {
573
+ playing: () => playing,
574
+ autoplayed,
575
+ spots: (i) => spotsOf(i),
576
+ state: () => viewer.state,
577
+ turning: () => turning,
578
+ };
579
+ }
580
+ // Space plays or pauses the first video on the spread on show.
581
+ viewer.element.addEventListener("keydown", (event) => {
582
+ if (event.target !== viewer.element || (event.key !== " " && event.key !== "Enter") || options.videos === false)
583
+ return;
584
+ const on = viewer.state.pages;
585
+ if (playing && on.includes(playing.page))
586
+ togglePlaying();
587
+ else {
588
+ const page = on.find((i) => spotsOf(i).some((s) => urlOf(s)));
589
+ if (page === undefined)
590
+ return;
591
+ startVideo(page, spotsOf(page).find((s) => urlOf(s)));
592
+ }
593
+ event.preventDefault();
594
+ });
370
595
  return {
371
596
  element: viewer.element,
372
597
  goToPage: viewer.goToPage,
@@ -375,6 +600,9 @@ export function createFolioFromDocument(container, doc, options = {}) {
375
600
  prev: viewer.prev,
376
601
  setPages: viewer.setPages,
377
602
  refreshPage: viewer.refreshPage,
603
+ setPageVideo: viewer.setPageVideo,
604
+ toggleVideoAt,
605
+ stopVideo: () => stopVideo(),
378
606
  setLabels: viewer.setLabels,
379
607
  resetView: viewer.resetView,
380
608
  getView: viewer.getView,
@@ -451,6 +679,8 @@ export function createFolioFromDocument(container, doc, options = {}) {
451
679
  run = null;
452
680
  }
453
681
  refresh(around(viewer.state));
682
+ followVideo();
683
+ scheduleAutoplay();
454
684
  },
455
685
  redecorate(pages) {
456
686
  let swapped = false;
@@ -467,6 +697,8 @@ export function createFolioFromDocument(container, doc, options = {}) {
467
697
  viewer.setPages(sources());
468
698
  },
469
699
  dispose() {
700
+ clearTimeout(autoTimer);
701
+ stopVideo();
470
702
  cancelIdle(idle);
471
703
  cancelAnimationFrame(sweepFrame);
472
704
  clearTimeout(resizeTimer);
@@ -1 +1 @@
1
- {"version":3,"file":"postext.js","sourceRoot":"","sources":["../src/postext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postext.js","sourceRoot":"","sources":["../src/postext.ts"],"names":[],"mappings":"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"}
package/dist/styles.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * `--postext-folio-nav-border`) or plain CSS of its own. The page shading
4
4
  * and the drop shadow match what the WebGL canvas draws, so a page at
5
5
  * rest looks the same in the DOM as on the turning leaf. */
6
- export declare const FOLIO_CSS = "\n.postext-folio {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n /* Horizontal swipes turn the spread. */\n touch-action: pan-y pinch-zoom;\n outline: none;\n}\n.postext-folio:focus-visible {\n outline: 2px solid var(--postext-folio-accent, #4f8cff);\n outline-offset: -4px;\n}\n.postext-folio-spread {\n position: absolute;\n display: grid;\n grid-template-columns: 1fr 1fr;\n /* Page surfaces (z 1) and their spine shading (z 2) paint above every\n page's drop shadow, as the canvas draws them. */\n isolation: isolate;\n}\n.postext-folio-spread.is-solo {\n grid-template-columns: 1fr;\n}\n/* The canvas draws the book: the DOM pages stay (sources, text\n alternatives, click targets) but are not seen. */\n.postext-folio-spread.is-gl > .postext-folio-page {\n opacity: 0;\n}\n.postext-folio-spread.is-by-hand > .postext-folio-page:not(.is-empty) {\n cursor: grab;\n}\n.postext-folio-spread.is-held,\n.postext-folio-spread.is-held > .postext-folio-page {\n cursor: grabbing !important;\n}\n/* Orbit and select modes: one finger drags the view or the selection,\n never the page; the cursor says which. */\n.postext-folio.is-orbit,\n.postext-folio.is-select {\n touch-action: none;\n}\n.postext-folio.is-orbit .postext-folio-spread > .postext-folio-page:not(.is-empty),\n.postext-folio.is-orbit {\n cursor: move;\n}\n.postext-folio.is-orbiting,\n.postext-folio.is-orbiting * {\n cursor: grabbing !important;\n}\n.postext-folio.is-select .postext-folio-spread > .postext-folio-page:not(.is-empty) {\n cursor: default;\n}\n.postext-folio.is-select.is-over-page,\n.postext-folio.is-select.is-over-page .postext-folio-spread > .postext-folio-page {\n cursor: text;\n}\n.postext-folio-spread,\n.postext-folio-page {\n user-select: none;\n -webkit-user-select: none;\n}\n/* The book in WebGL: over the whole box, centred on the spread (sized by\n the viewer), with room for a lifted leaf. */\n.postext-folio-flip {\n position: absolute;\n z-index: 3;\n pointer-events: none;\n}\n.postext-folio-page {\n position: relative;\n margin: 0;\n min-width: 0;\n}\n.postext-folio-page > img,\n.postext-folio-page > .postext-folio-surface {\n position: relative;\n z-index: 1;\n display: block;\n width: 100%;\n height: 100%;\n background: #fff;\n}\n.postext-folio-page.is-blank {\n background: var(--postext-folio-paper, #fff);\n}\n.postext-folio-page:not(.is-empty) {\n box-shadow:\n 0 1px 1px rgb(0 0 0 / 0.35),\n 0 16px 36px -8px rgb(0 0 0 / 0.65);\n}\n/* The spine: each page darkens towards the fold. */\n.postext-folio-page:not(.is-empty)::after {\n content: \"\";\n position: absolute;\n z-index: 2;\n inset: 0;\n pointer-events: none;\n}\n.postext-folio-page.is-verso::after {\n background: linear-gradient(to left, rgb(0 0 0 / 0.16), rgb(0 0 0 / 0.04) 3%, transparent 9%);\n}\n.postext-folio-page.is-recto::after {\n background: linear-gradient(to right, rgb(0 0 0 / 0.18), rgb(0 0 0 / 0.05) 3%, transparent 9%);\n}\n/* A right-bound book lies mirrored: the verso on the right, the recto on\n the left, each shaded towards the fold. */\n.postext-folio[dir=\"rtl\"] .postext-folio-page.is-verso::after {\n background: linear-gradient(to right, rgb(0 0 0 / 0.16), rgb(0 0 0 / 0.04) 3%, transparent 9%);\n}\n.postext-folio[dir=\"rtl\"] .postext-folio-page.is-recto::after {\n background: linear-gradient(to left, rgb(0 0 0 / 0.18), rgb(0 0 0 / 0.05) 3%, transparent 9%);\n}\n.postext-folio-nav {\n position: absolute;\n z-index: 4;\n top: 50%;\n transform: translateY(-50%);\n display: grid;\n place-items: center;\n width: 44px;\n height: 44px;\n padding: 0;\n border: 1.5px solid var(--postext-folio-nav-border, color-mix(in srgb, currentColor 35%, transparent));\n border-radius: 999px;\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: border-color 0.15s, color 0.15s, opacity 0.15s;\n}\n.postext-folio-nav.is-prev {\n left: 12px;\n}\n.postext-folio-nav.is-next {\n right: 12px;\n}\n.postext-folio[dir=\"rtl\"] .postext-folio-nav.is-prev {\n left: auto;\n right: 12px;\n}\n.postext-folio[dir=\"rtl\"] .postext-folio-nav.is-next {\n right: auto;\n left: 12px;\n}\n.postext-folio-nav[hidden] {\n display: none;\n}\n.postext-folio-nav:hover:not(:disabled) {\n border-color: var(--postext-folio-accent, #4f8cff);\n color: var(--postext-folio-accent, #4f8cff);\n}\n.postext-folio-nav:focus-visible {\n outline: 2px solid var(--postext-folio-accent, #4f8cff);\n outline-offset: 2px;\n}\n.postext-folio-nav:disabled {\n opacity: 0.3;\n cursor: default;\n}\n.postext-folio-count {\n position: absolute;\n z-index: 4;\n left: 0;\n right: 0;\n bottom: 12px;\n text-align: center;\n pointer-events: none;\n margin: 0;\n font: inherit;\n font-size: 0.875em;\n font-variant-numeric: tabular-nums;\n opacity: 0.8;\n}\n/* Announced, not shown. */\n.postext-folio-count.is-unseen {\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n}\n/* One page at a time: the buttons and the count in a bar under the page. */\n.postext-folio.is-single .postext-folio-nav {\n top: auto;\n bottom: 12px;\n transform: none;\n}\n.postext-folio.is-single .postext-folio-count {\n bottom: 24px;\n}\n@media (prefers-reduced-motion: reduce) {\n .postext-folio-nav {\n transition: none;\n }\n}\n";
6
+ export declare const FOLIO_CSS = "\n.postext-folio {\n position: relative;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n /* Horizontal swipes turn the spread. */\n touch-action: pan-y pinch-zoom;\n outline: none;\n}\n.postext-folio:focus-visible {\n outline: 2px solid var(--postext-folio-accent, #4f8cff);\n outline-offset: -4px;\n}\n.postext-folio-spread {\n position: absolute;\n display: grid;\n grid-template-columns: 1fr 1fr;\n /* Page surfaces (z 1) and their spine shading (z 2) paint above every\n page's drop shadow, as the canvas draws them. */\n isolation: isolate;\n}\n.postext-folio-spread.is-solo {\n grid-template-columns: 1fr;\n}\n/* The canvas draws the book: the DOM pages stay (sources, text\n alternatives, click targets) but are not seen. */\n.postext-folio-spread.is-gl > .postext-folio-page {\n opacity: 0;\n}\n.postext-folio-spread.is-by-hand > .postext-folio-page:not(.is-empty) {\n cursor: grab;\n}\n.postext-folio-spread.is-held,\n.postext-folio-spread.is-held > .postext-folio-page {\n cursor: grabbing !important;\n}\n/* Orbit and select modes: one finger drags the view or the selection,\n never the page; the cursor says which. */\n.postext-folio.is-orbit,\n.postext-folio.is-select {\n touch-action: none;\n}\n.postext-folio.is-orbit .postext-folio-spread > .postext-folio-page:not(.is-empty),\n.postext-folio.is-orbit {\n cursor: move;\n}\n.postext-folio.is-orbiting,\n.postext-folio.is-orbiting * {\n cursor: grabbing !important;\n}\n.postext-folio.is-select .postext-folio-spread > .postext-folio-page:not(.is-empty) {\n cursor: default;\n}\n.postext-folio.is-select.is-over-page,\n.postext-folio.is-select.is-over-page .postext-folio-spread > .postext-folio-page {\n cursor: text;\n}\n/* Over something a click acts on (a video that plays on the page), in\n every pointer mode. */\n.postext-folio.is-over-action,\n.postext-folio.is-over-action.is-select,\n.postext-folio.is-over-action.is-orbit,\n.postext-folio.is-over-action .postext-folio-spread > .postext-folio-page:not(.is-empty),\n.postext-folio.is-over-action.is-select .postext-folio-spread > .postext-folio-page:not(.is-empty),\n.postext-folio.is-over-action.is-orbit .postext-folio-spread > .postext-folio-page:not(.is-empty) {\n cursor: pointer;\n}\n/* A video on a page of the DOM spread (no WebGL): laid over its poster. */\n.postext-folio-page > .postext-folio-video {\n position: absolute;\n z-index: 2;\n left: 0;\n top: 0;\n transform-origin: 0 0;\n object-fit: cover;\n background: #000;\n pointer-events: none;\n}\n.postext-folio-spread,\n.postext-folio-page {\n user-select: none;\n -webkit-user-select: none;\n}\n/* The book in WebGL: over the whole box, centred on the spread (sized by\n the viewer), with room for a lifted leaf. */\n.postext-folio-flip {\n position: absolute;\n z-index: 3;\n pointer-events: none;\n}\n.postext-folio-page {\n position: relative;\n margin: 0;\n min-width: 0;\n}\n.postext-folio-page > img,\n.postext-folio-page > .postext-folio-surface {\n position: relative;\n z-index: 1;\n display: block;\n width: 100%;\n height: 100%;\n background: #fff;\n}\n.postext-folio-page.is-blank {\n background: var(--postext-folio-paper, #fff);\n}\n.postext-folio-page:not(.is-empty) {\n box-shadow:\n 0 1px 1px rgb(0 0 0 / 0.35),\n 0 16px 36px -8px rgb(0 0 0 / 0.65);\n}\n/* The spine: each page darkens towards the fold. */\n.postext-folio-page:not(.is-empty)::after {\n content: \"\";\n position: absolute;\n z-index: 2;\n inset: 0;\n pointer-events: none;\n}\n.postext-folio-page.is-verso::after {\n background: linear-gradient(to left, rgb(0 0 0 / 0.16), rgb(0 0 0 / 0.04) 3%, transparent 9%);\n}\n.postext-folio-page.is-recto::after {\n background: linear-gradient(to right, rgb(0 0 0 / 0.18), rgb(0 0 0 / 0.05) 3%, transparent 9%);\n}\n/* A right-bound book lies mirrored: the verso on the right, the recto on\n the left, each shaded towards the fold. */\n.postext-folio[dir=\"rtl\"] .postext-folio-page.is-verso::after {\n background: linear-gradient(to right, rgb(0 0 0 / 0.16), rgb(0 0 0 / 0.04) 3%, transparent 9%);\n}\n.postext-folio[dir=\"rtl\"] .postext-folio-page.is-recto::after {\n background: linear-gradient(to left, rgb(0 0 0 / 0.18), rgb(0 0 0 / 0.05) 3%, transparent 9%);\n}\n.postext-folio-nav {\n position: absolute;\n z-index: 4;\n top: 50%;\n transform: translateY(-50%);\n display: grid;\n place-items: center;\n width: 44px;\n height: 44px;\n padding: 0;\n border: 1.5px solid var(--postext-folio-nav-border, color-mix(in srgb, currentColor 35%, transparent));\n border-radius: 999px;\n background: transparent;\n color: inherit;\n cursor: pointer;\n transition: border-color 0.15s, color 0.15s, opacity 0.15s;\n}\n.postext-folio-nav.is-prev {\n left: 12px;\n}\n.postext-folio-nav.is-next {\n right: 12px;\n}\n.postext-folio[dir=\"rtl\"] .postext-folio-nav.is-prev {\n left: auto;\n right: 12px;\n}\n.postext-folio[dir=\"rtl\"] .postext-folio-nav.is-next {\n right: auto;\n left: 12px;\n}\n.postext-folio-nav[hidden] {\n display: none;\n}\n.postext-folio-nav:hover:not(:disabled) {\n border-color: var(--postext-folio-accent, #4f8cff);\n color: var(--postext-folio-accent, #4f8cff);\n}\n.postext-folio-nav:focus-visible {\n outline: 2px solid var(--postext-folio-accent, #4f8cff);\n outline-offset: 2px;\n}\n.postext-folio-nav:disabled {\n opacity: 0.3;\n cursor: default;\n}\n.postext-folio-count {\n position: absolute;\n z-index: 4;\n left: 0;\n right: 0;\n bottom: 12px;\n text-align: center;\n pointer-events: none;\n margin: 0;\n font: inherit;\n font-size: 0.875em;\n font-variant-numeric: tabular-nums;\n opacity: 0.8;\n}\n/* Announced, not shown. */\n.postext-folio-count.is-unseen {\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n}\n/* One page at a time: the buttons and the count in a bar under the page. */\n.postext-folio.is-single .postext-folio-nav {\n top: auto;\n bottom: 12px;\n transform: none;\n}\n.postext-folio.is-single .postext-folio-count {\n bottom: 24px;\n}\n@media (prefers-reduced-motion: reduce) {\n .postext-folio-nav {\n transition: none;\n }\n}\n";
7
7
  /** Adds the styles once to the document (or shadow root) the viewer
8
8
  * lives in. */
9
9
  export declare function injectStyles(target: Node): void;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;6DAI6D;AAC7D,eAAO,MAAM,SAAS,mzKAsMrB,CAAC;AAIF;gBACgB;AAChB,wBAAgB,YAAY,CAAC,MAAM,EAAE,IAAI,QAexC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;6DAI6D;AAC7D,eAAO,MAAM,SAAS,8lMA2NrB,CAAC;AAIF;gBACgB;AAChB,wBAAgB,YAAY,CAAC,MAAM,EAAE,IAAI,QAexC"}
package/dist/styles.js CHANGED
@@ -63,6 +63,27 @@ export const FOLIO_CSS = `
63
63
  .postext-folio.is-select.is-over-page .postext-folio-spread > .postext-folio-page {
64
64
  cursor: text;
65
65
  }
66
+ /* Over something a click acts on (a video that plays on the page), in
67
+ every pointer mode. */
68
+ .postext-folio.is-over-action,
69
+ .postext-folio.is-over-action.is-select,
70
+ .postext-folio.is-over-action.is-orbit,
71
+ .postext-folio.is-over-action .postext-folio-spread > .postext-folio-page:not(.is-empty),
72
+ .postext-folio.is-over-action.is-select .postext-folio-spread > .postext-folio-page:not(.is-empty),
73
+ .postext-folio.is-over-action.is-orbit .postext-folio-spread > .postext-folio-page:not(.is-empty) {
74
+ cursor: pointer;
75
+ }
76
+ /* A video on a page of the DOM spread (no WebGL): laid over its poster. */
77
+ .postext-folio-page > .postext-folio-video {
78
+ position: absolute;
79
+ z-index: 2;
80
+ left: 0;
81
+ top: 0;
82
+ transform-origin: 0 0;
83
+ object-fit: cover;
84
+ background: #000;
85
+ pointer-events: none;
86
+ }
66
87
  .postext-folio-spread,
67
88
  .postext-folio-page {
68
89
  user-select: none;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;6DAI6D;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsMxB,CAAC;AAEF,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AAExC;gBACgB;AAChB,MAAM,UAAU,YAAY,CAAC,MAAY;IACvC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAA2B,CAAC;IAC3D,MAAM,IAAI,GAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,QAAQ,GAAG,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,IAAI,QAAQ,EAAE,CAAC;QACb,+DAA+D;QAC/D,+CAA+C;QAC/C,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS;YAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC;QACzE,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../src/styles.ts"],"names":[],"mappings":"AAAA;;;;6DAI6D;AAC7D,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2NxB,CAAC;AAEF,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AAExC;gBACgB;AAChB,MAAM,UAAU,YAAY,CAAC,MAAY;IACvC,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,EAA2B,CAAC;IAC3D,MAAM,IAAI,GAAG,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,MAAM,QAAQ,GAAG,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjF,IAAI,QAAQ,EAAE,CAAC;QACb,+DAA+D;QAC/D,+CAA+C;QAC/C,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS;YAAE,QAAQ,CAAC,WAAW,GAAG,SAAS,CAAC;QACzE,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC;IACpB,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { type VDTDocument, type VDTPage, type VDTResourceVideo } from "postext";
2
+ import type { PageVideoFrame } from "./pageFlip";
3
+ /**
4
+ * Videos on Folio's pages (#477): where each video resource's picture lies
5
+ * on a page as bound, and how a `<video>` element is given its source (a
6
+ * file, or an HLS stream through hls.js where the browser has no HLS of
7
+ * its own).
8
+ */
9
+ /** A video printed on a page: its place (see {@link PageVideoFrame}), what
10
+ * plays and a key that finds it again in another layout of the book. */
11
+ export interface PageVideoSpot extends PageVideoFrame {
12
+ /** The resource's id and its occurrence on the page. */
13
+ key: string;
14
+ resourceId: string;
15
+ video: VDTResourceVideo;
16
+ /** The picture's height on the page, in the page's own px. */
17
+ heightPx: number;
18
+ }
19
+ /** The video resources printed on a page, in the order they are painted:
20
+ * each picture's place in fractions of the page as bound (trimmed), with
21
+ * the turns the page and the block give it. A mirrored (right-to-left)
22
+ * page sets its pictures unmirrored, as the renderers do. */
23
+ export declare function pageVideoSpots(page: VDTPage, doc: VDTDocument): PageVideoSpot[];
24
+ /** Whether a point of the page (fractions from its top left corner) lies on
25
+ * a spot's picture. */
26
+ export declare function spotContains(spot: PageVideoFrame, x: number, y: number): boolean;
27
+ /** The variant to cap a stream at: the tallest no taller than `maxHeight`
28
+ * (with a quarter of slack), else the shortest there is. */
29
+ export declare function hlsLevelCap(levels: readonly {
30
+ height: number;
31
+ }[], maxHeight: number): number;
32
+ /**
33
+ * Gives a `<video>` its source: a file's address as it is, or an HLS
34
+ * stream (`hls`, or an `.m3u8` address). A stream plays through hls.js
35
+ * (loaded on demand) wherever Media Source Extensions exist, its quality
36
+ * capped at the variant nearest `maxHeight` px tall, so a picture a few
37
+ * hundred pixels tall never pulls a 4K variant; the browser's own HLS
38
+ * (Safari on iOS) is the fallback, or the first choice with `native:
39
+ * 'prefer'` (a player shown at its size, which picks its own variant).
40
+ * A fatal network or media error is retried once each. `lazy` loads no
41
+ * segment before the first play. Resolves to a function that lets the
42
+ * source go; rejects when the stream cannot play.
43
+ */
44
+ export declare function attachVideoSource(element: HTMLVideoElement, url: string, options?: {
45
+ hls?: boolean;
46
+ maxHeight?: number;
47
+ lazy?: boolean;
48
+ native?: "prefer" | "avoid";
49
+ corsTag?: boolean;
50
+ }): Promise<() => void>;
51
+ /** An address with the query that keeps its cache entry apart (see
52
+ * `corsTag`). */
53
+ export declare function corsTagged(url: string): string;
54
+ /** Whether a video plays from an HLS address. */
55
+ export declare function isHlsVideo(video: Pick<VDTResourceVideo, "mimeType">, url: string): boolean;
56
+ //# sourceMappingURL=videos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"videos.d.ts","sourceRoot":"","sources":["../src/videos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiE,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC/I,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;GAKG;AAEH;yEACyE;AACzE,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,gBAAgB,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;8DAG8D;AAC9D,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,aAAa,EAAE,CAqD/E;AAED;wBACwB;AACxB,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAMhF;AAmBD;6DAC6D;AAC7D,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAQ5F;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,gBAAgB,EACzB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAClH,OAAO,CAAC,MAAM,IAAI,CAAC,CAoDrB;AAED;kBACkB;AAClB,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM9C;AAED,iDAAiD;AACjD,wBAAgB,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAE1F"}