@netless/slide 1.4.32-alpha.0 → 1.4.33

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.
@@ -8,7 +8,7 @@ var SyncTaskManager = /** @class */ (function () {
8
8
  _this.isScheduling = true;
9
9
  var task = _this.tasks.shift();
10
10
  if (task && !_this.isDestroy) {
11
- _this.fn(task).then(function () {
11
+ _this.fn(task).finally(function () {
12
12
  if (_this.tasks.length > 0) {
13
13
  window.requestAnimationFrame(_this.schedule);
14
14
  }
package/lib/global.js CHANGED
@@ -13,7 +13,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
13
13
  function verb(n) { return function (v) { return step([n, v]); }; }
14
14
  function step(op) {
15
15
  if (f) throw new TypeError("Generator is already executing.");
16
- while (_) try {
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
17
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
18
  if (y = 0, t) op = [op[0] & 2, t.value];
19
19
  switch (op[0]) {
@@ -0,0 +1,10 @@
1
+ import { SyncEvent, SyncInteractiveAnimEvent, SyncMediaFullscreenEvent, SyncMediaPauseEvent, SyncMediaPlayEvent, SyncMediaSeekEvent, SyncNextStepEvent, SyncPrevStepEvent, SyncRenderSlideEvent, SyncSetResourceEvent } from "../Slide";
2
+ export declare function isSyncInteractiveAnimEvent(event: SyncEvent): event is SyncInteractiveAnimEvent;
3
+ export declare function isSyncPrevStepEvent(event: SyncEvent): event is SyncPrevStepEvent;
4
+ export declare function isSyncNextStepEvent(event: SyncEvent): event is SyncNextStepEvent;
5
+ export declare function isSyncRenderSlideEvent(event: SyncEvent): event is SyncRenderSlideEvent;
6
+ export declare function isSyncSetResourceEvent(event: SyncEvent): event is SyncSetResourceEvent;
7
+ export declare function isSyncMediaPlayEvent(event: SyncEvent): event is SyncMediaPlayEvent;
8
+ export declare function isSyncMediaPauseEvent(event: SyncEvent): event is SyncMediaPauseEvent;
9
+ export declare function isSyncMediaSeekEvent(event: SyncEvent): event is SyncMediaSeekEvent;
10
+ export declare function isSyncMediaFullscreenEvent(event: SyncEvent): event is SyncMediaFullscreenEvent;
@@ -0,0 +1,27 @@
1
+ export function isSyncInteractiveAnimEvent(event) {
2
+ return event.type === "interactiveAnim";
3
+ }
4
+ export function isSyncPrevStepEvent(event) {
5
+ return event.type === "prevStep";
6
+ }
7
+ export function isSyncNextStepEvent(event) {
8
+ return event.type === "nextStep";
9
+ }
10
+ export function isSyncRenderSlideEvent(event) {
11
+ return event.type === "renderSlide";
12
+ }
13
+ export function isSyncSetResourceEvent(event) {
14
+ return event.type === "setResource";
15
+ }
16
+ export function isSyncMediaPlayEvent(event) {
17
+ return event.type === "mediaPlay";
18
+ }
19
+ export function isSyncMediaPauseEvent(event) {
20
+ return event.type === "mediaPause";
21
+ }
22
+ export function isSyncMediaSeekEvent(event) {
23
+ return event.type === "mediaSeek";
24
+ }
25
+ export function isSyncMediaFullscreenEvent(event) {
26
+ return event.type === "mediaFullscreen";
27
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netless/slide",
3
- "version": "1.4.32-alpha.0",
3
+ "version": "1.4.33",
4
4
  "description": "> TODO: description",
5
5
  "author": "huaguzheng <huaguzheng2007@126.com>",
6
6
  "homepage": "https://github.com/netless-io/netless-slide-demo",
@@ -36,5 +36,5 @@
36
36
  "publishConfig": {
37
37
  "access": "public"
38
38
  },
39
- "gitHead": "1a88e8a4aba7801ee561d5fc0a5026626ec3173b"
39
+ "gitHead": "332a37a3d904b1afbeb951f79f400c2500e57538"
40
40
  }
File without changes
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,237 +0,0 @@
1
- export declare const SLIDE_EVENTS: {
2
- /** 当前 slide 渲染开始触发 */
3
- renderStart: string;
4
- /** 当前 slide 渲染完毕触发 */
5
- renderEnd: string;
6
- /** 当前 slide 渲染出错触发 */
7
- renderError: string;
8
- /** slide 页码变化时触发 */
9
- slideChange: string;
10
- animateStart: string;
11
- animateEnd: string;
12
- /** slide 状态变化触发 */
13
- stateChange: string;
14
- };
15
- export interface ISlideRenderOptions {
16
- /** 预期最低渲染 fps, 默认 40 */
17
- minFPS?: number;
18
- /** 预期最高渲染 fps, 默认 50 */
19
- maxFPS?: number;
20
- /** 渲染分辨倍率, 整数, 默认为 window.devicePixelRatio */
21
- resolution?: number;
22
- /** 最小分辨倍率, 默认为 1 */
23
- minResolution?: number;
24
- /** 是否根据 fps, 自动调整分辨率, 默认为 false */
25
- autoResolution?: boolean;
26
- /** 是否自动降低渲染 fps */
27
- autoFPS?: boolean;
28
- }
29
- export interface ITimeNodeSeqState {
30
- id: string;
31
- step: number;
32
- state: "idle" | "running" | "end";
33
- isMain: boolean;
34
- }
35
- export interface ISlideConfig {
36
- /** canvas 挂载点 */
37
- anchor: HTMLDivElement;
38
- /** 是否可互动 */
39
- interactive: boolean;
40
- /** 渲染选项, 可选 */
41
- renderOptions?: ISlideRenderOptions;
42
- /** 是否展示控制栏和stats */
43
- controller?: boolean;
44
- /** 是否根据窗口大小自动调整分辨率 */
45
- resize?: boolean;
46
- /** 获取房间时间 */
47
- timestamp?: () => number;
48
- }
49
- interface MediaState {
50
- type: "pause" | "play";
51
- time: number;
52
- }
53
- interface ISlideState {
54
- taskId: string;
55
- url: string;
56
- currentSlideIndex: number;
57
- timeNodeSeqState: {
58
- [key: string]: ITimeNodeSeqState;
59
- };
60
- mediaState: {
61
- [key: string]: MediaState;
62
- };
63
- }
64
- export interface SlideEventEmitter {
65
- removeListener(event: keyof typeof SLIDE_EVENTS, fn?: any): this;
66
- emit(event: typeof SLIDE_EVENTS.renderStart, index: number): boolean;
67
- on(event: typeof SLIDE_EVENTS.renderStart, listener: (index: number) => void): this;
68
- emit(event: typeof SLIDE_EVENTS.renderEnd, index: number): boolean;
69
- on(event: typeof SLIDE_EVENTS.renderEnd, listener: (index: number) => void): this;
70
- emit(event: typeof SLIDE_EVENTS.slideChange, nextSlideIndex: number): boolean;
71
- on(event: typeof SLIDE_EVENTS.slideChange, listener: (nextSlideIndex: number) => void): this;
72
- emit(event: typeof SLIDE_EVENTS.renderError, args: {
73
- error: Error;
74
- index: number;
75
- }): boolean;
76
- on(event: typeof SLIDE_EVENTS.renderError, listener: (args: {
77
- error: Error;
78
- index: number;
79
- }) => void): this;
80
- emit(event: typeof SLIDE_EVENTS.animateStart): boolean;
81
- on(event: typeof SLIDE_EVENTS.animateStart, listener: () => void): this;
82
- emit(event: typeof SLIDE_EVENTS.animateEnd): boolean;
83
- on(event: typeof SLIDE_EVENTS.animateEnd, listener: () => void): this;
84
- emit(event: typeof SLIDE_EVENTS.stateChange, state: ISlideState): boolean;
85
- on(event: typeof SLIDE_EVENTS.stateChange, listener: (state: ISlideState) => void): this;
86
- }
87
- declare const StateDriveSlide_base: new () => SlideEventEmitter;
88
- export declare class StateDriveSlide extends StateDriveSlide_base {
89
- private __slideState;
90
- private resize;
91
- private isAnimating;
92
- private renderingTaskManager;
93
- private isLoading;
94
- private interactive;
95
- private anchor;
96
- private player;
97
- private frameWidth;
98
- private frameHeight;
99
- private frame;
100
- private medianController;
101
- private frameResizeObserver;
102
- private timestamp;
103
- private mode;
104
- private log;
105
- private logId;
106
- private lastEmitedState;
107
- private persistLogId;
108
- constructor(config: ISlideConfig);
109
- private persistLog;
110
- private handleSlideStateLog;
111
- private handleLogDownload;
112
- private setMedianControllerAttribute;
113
- private frameResizeHandler;
114
- private resizeView;
115
- /**
116
- * 设置整个 slide 的状态, slide 会以传入的状态更新画面.
117
- * 供整体同步时候调用.
118
- * @param state ISlideState
119
- */
120
- setSlideState(state: Partial<ISlideState>): Promise<void>;
121
- private initMedia;
122
- /**
123
- * 返回 slide 总页数
124
- */
125
- get slideCount(): number;
126
- /**
127
- * 整个 slide 的状态, 将获取的值传递给另一个客户端, 并调用 setSlideState
128
- * 可以完成整体同步. 只读属性.
129
- * @readonly
130
- */
131
- get slideState(): ISlideState;
132
- /**
133
- * 主序列动画步数, 只读属性
134
- * @readonly
135
- */
136
- get mainSeqLength(): number;
137
- /**
138
- * 主序列动画, 当前步, 只读属性
139
- * @readonly
140
- */
141
- get mainSeqStep(): number;
142
- /**
143
- * 主序列动画, 当前状态, 只读属性
144
- * "idle": 动画尚未运行
145
- * "running": 动画运行中
146
- * "end": 动画已经结束
147
- * null: 当前 Slide 没有主序列动画
148
- * @readonly
149
- */
150
- get mainSeqState(): "idle" | "running" | "end" | null;
151
- /**
152
- * 实时渲染属性, 只读属性.
153
- * @readonly
154
- */
155
- get renderOptions(): ISlideRenderOptions;
156
- /**
157
- * drawCall 次数, 即每帧调用 gpu drawElements 次数, 只读属性.
158
- * @readonly
159
- */
160
- get drawCall(): number;
161
- /**
162
- * 渲染 fps, 只读属性.
163
- * @readonly
164
- */
165
- get renderFps(): number;
166
- /**
167
- * js 运行时 fps, 只读属性.
168
- * @readonly
169
- */
170
- get runtimeFps(): number;
171
- /**
172
- * 渲染 Slide 的 canvas 元素.
173
- * @readonly
174
- */
175
- get view(): HTMLCanvasElement;
176
- /**
177
- * Slide 宽度. 此宽度为设计宽度, 由 ppt 决定. 只读属性.
178
- * @readonly
179
- */
180
- get width(): number;
181
- /**
182
- * Slide 高度. 此高度为设计高度, 由 ppt 决定. 只读属性.
183
- * @readonly
184
- */
185
- get height(): number;
186
- /**
187
- * 更新渲染属性
188
- * @param renderOptions
189
- */
190
- updateRenderOption(renderOptions: ISlideRenderOptions): void;
191
- /**
192
- * 设置 ppt 转换后的资源
193
- * @param taskId 转换任务 id
194
- * @param url 资源 url 前缀
195
- */
196
- setResource(taskId: string, url: string): void;
197
- private _renderSlide;
198
- /**
199
- * 渲染 index 参数对应的 ppt 页.
200
- * @param index 要显示的页码, 从 1 开始
201
- */
202
- renderSlide(index: number): void;
203
- private doRenderSlide;
204
- /**
205
- * 执行下一个主序列动画
206
- */
207
- nextStep(): void;
208
- /**
209
- * 执行上一个主序列动画
210
- */
211
- prevStep(): void;
212
- private emitStateChange;
213
- /**
214
- * 重置主序列动画
215
- * @param index 将要重置到的步数
216
- * @param status 将要重置到的状态, "start" 重置到动画开始, "end" 重置到动画结束
217
- */
218
- setMainSeqStep(index: number, status: "idle" | "running" | "end"): void;
219
- /**
220
- * 设置是否可以互动
221
- * @param val boolean
222
- */
223
- setInteractive(val: boolean): void;
224
- /**
225
- * 暂停播放
226
- */
227
- pause(): void;
228
- /**
229
- * 恢复播放状态
230
- */
231
- resume(): void;
232
- /**
233
- * 销毁方法.
234
- */
235
- destroy(): void;
236
- }
237
- export {};