blob: f7f47b2f3fb5466de6c0e8a8a0d06d2e47e45ade (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
/*
* Beamer Viewer, a web-based PDF presentation viewer
* Copyright 2018-2024 Pacien TRAN-GIRARD
* SPDX-License-Identifier: EUPL-1.2
*/
"use strict";
class Presentation {
constructor(pdf) {
this.pdf = pdf;
this.currentPageIndex = 1;
this.stage = this._setupStage();
}
start() {
this.stage.start();
}
_setupStage() {
return new Stage(
() => this._onStageReady(),
() => this._onNext(),
() => this._onPrevious(),
);
}
_onStageReady() {
this._setPage(this.currentPageIndex);
}
_onNext() {
if (this.currentPageIndex === this.pdf.numPages) return;
this._setPage(this.currentPageIndex + 1);
}
_onPrevious() {
if (this.currentPageIndex === 1) return;
this._setPage(this.currentPageIndex - 1);
}
_setPage(pageIndex) {
this.currentPageIndex = pageIndex;
this.pdf
.getPage(this.currentPageIndex)
.then(page => this.stage.setPage(page))
}
}
|