@netless/app-slide 0.3.0-canary.2 → 0.3.0-canary.21
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-zh.md +17 -7
- package/README.md +4 -7
- package/dist/Logger.d.ts +12 -0
- package/dist/Refrigerator.d.ts +3 -1
- package/dist/SlideViewer/footer.d.ts +12 -0
- package/dist/{SlideViewer.d.ts → SlideViewer/index.d.ts} +33 -20
- package/dist/SlideViewer/sidebar.d.ts +12 -0
- package/dist/SlideViewer/typings.d.ts +18 -0
- package/dist/SlideViewer/utils.d.ts +7 -0
- package/dist/connect.d.ts +14 -0
- package/dist/constants.d.ts +1 -1
- package/dist/icons/index.d.ts +5 -0
- package/dist/icons/save.d.ts +1 -0
- package/dist/icons/spinner.d.ts +1 -0
- package/dist/index.d.ts +7 -6
- package/dist/main.js +3 -0
- package/dist/main.js.map +1 -0
- package/dist/main.mjs +1406 -0
- package/dist/main.mjs.map +1 -0
- package/dist/preview.d.ts +5 -0
- package/dist/typings.d.ts +9 -18
- package/dist/utils.d.ts +12 -0
- package/package.json +12 -8
- package/src/Logger.ts +38 -0
- package/src/Refrigerator.ts +11 -1
- package/src/SlideViewer/footer.ts +169 -0
- package/src/SlideViewer/index.ts +329 -0
- package/src/SlideViewer/sidebar.ts +140 -0
- package/src/SlideViewer/typings.ts +21 -0
- package/src/SlideViewer/utils.ts +37 -0
- package/src/connect.ts +152 -0
- package/src/constants.ts +1 -1
- package/src/icons/index.ts +5 -0
- package/src/icons/save.ts +18 -0
- package/src/icons/spinner.ts +37 -0
- package/src/index.ts +64 -192
- package/src/preview.ts +21 -0
- package/src/style.scss +67 -16
- package/src/typings.ts +18 -16
- package/src/utils.ts +90 -0
- package/dist/main.cjs.js +0 -6363
- package/dist/main.cjs.js.map +0 -1
- package/dist/main.es.js +0 -38214
- package/dist/main.es.js.map +0 -1
- package/dist/main.iife.js +0 -6363
- package/dist/main.iife.js.map +0 -1
- package/src/SlideViewer.ts +0 -557
package/README-zh.md
CHANGED
|
@@ -5,16 +5,13 @@ WebGL 版 PPT 展示插件。
|
|
|
5
5
|
### 用法
|
|
6
6
|
|
|
7
7
|
```ts
|
|
8
|
-
import
|
|
8
|
+
import AppSlide, { addHooks } from "@netless/app-slide";
|
|
9
9
|
|
|
10
10
|
// 1. 在加入房间前注册此 app
|
|
11
11
|
WindowManager.register({
|
|
12
12
|
kind: "Slide",
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
debug: false,
|
|
16
|
-
},
|
|
17
|
-
src: () => import("@netless/app-slide"),
|
|
13
|
+
src: AppSlide,
|
|
14
|
+
addHooks, // 启用自动冻结功能,优化 CPU 和内存占用
|
|
18
15
|
});
|
|
19
16
|
|
|
20
17
|
// 2. 加入房间后,这样插入 PPT
|
|
@@ -27,7 +24,7 @@ manager.addApp({
|
|
|
27
24
|
attributes: {
|
|
28
25
|
taskId: "1234567...", // [2]
|
|
29
26
|
url: "https://convertcdn.netless.link/dynamicConvert", // [3]
|
|
30
|
-
}
|
|
27
|
+
},
|
|
31
28
|
});
|
|
32
29
|
```
|
|
33
30
|
|
|
@@ -45,6 +42,19 @@ manager.addApp({
|
|
|
45
42
|
|
|
46
43
|
PPT 转码后资源存储服务器链接前缀,默认为 `https://convertcdn.netless.link/dynamicConvert`。
|
|
47
44
|
|
|
45
|
+
### 本地预览
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
import { previewSlide } from "@netless/app-slide";
|
|
49
|
+
|
|
50
|
+
const previewer = previewSlide({
|
|
51
|
+
container: document.getElementById("preview"),
|
|
52
|
+
taskId: "1234567...",
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
previewer.destroy();
|
|
56
|
+
```
|
|
57
|
+
|
|
48
58
|
### 协议
|
|
49
59
|
|
|
50
60
|
MIT @ [netless](https://github.com/netless-io)
|
package/README.md
CHANGED
|
@@ -7,16 +7,13 @@ Netless App for viewing animated slides, in our new engine.
|
|
|
7
7
|
### Usage
|
|
8
8
|
|
|
9
9
|
```ts
|
|
10
|
-
import
|
|
10
|
+
import AppSlide, { addHooks } from "@netless/app-slide";
|
|
11
11
|
|
|
12
12
|
// 1. register before joining room
|
|
13
13
|
WindowManager.register({
|
|
14
14
|
kind: "Slide",
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
debug: false,
|
|
18
|
-
},
|
|
19
|
-
src: () => import("@netless/app-slide"),
|
|
15
|
+
src: AppSlide,
|
|
16
|
+
addHooks, // enables auto-freeze
|
|
20
17
|
});
|
|
21
18
|
|
|
22
19
|
// 2. when joined room, add ppt to whiteboard
|
|
@@ -29,7 +26,7 @@ manager.addApp({
|
|
|
29
26
|
attributes: {
|
|
30
27
|
taskId: "1234567...", // [2]
|
|
31
28
|
url: "https://convertcdn.netless.link/dynamicConvert", // [3]
|
|
32
|
-
}
|
|
29
|
+
},
|
|
33
30
|
});
|
|
34
31
|
```
|
|
35
32
|
|
package/dist/Logger.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AppContext } from "@netless/window-manager";
|
|
2
|
+
export interface ILogger {
|
|
3
|
+
info(this: void, msg: string): void;
|
|
4
|
+
}
|
|
5
|
+
export declare class Logger implements ILogger {
|
|
6
|
+
readonly context: AppContext | null;
|
|
7
|
+
static active: Set<string>;
|
|
8
|
+
static roomLogger: ILogger | null;
|
|
9
|
+
constructor(context: AppContext | null);
|
|
10
|
+
info: (msg: string) => void;
|
|
11
|
+
destroy(): void;
|
|
12
|
+
}
|
package/dist/Refrigerator.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import type { ReadonlyTeleBox } from "@netless/window-manager";
|
|
1
2
|
import type { SlideViewer } from "./SlideViewer";
|
|
2
3
|
import type { AddHooks } from "./typings";
|
|
3
4
|
export declare class Refrigerator {
|
|
4
5
|
threshold: number;
|
|
5
6
|
private _map;
|
|
7
|
+
private _box;
|
|
6
8
|
private _queue;
|
|
7
|
-
set(appId: string, viewer: SlideViewer): () => void;
|
|
9
|
+
set(appId: string, viewer: SlideViewer, box: ReadonlyTeleBox): () => void;
|
|
8
10
|
delete(appId: string): void;
|
|
9
11
|
focus(appId: string): void;
|
|
10
12
|
private _refresh;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function create_footer(): {
|
|
2
|
+
$footer: HTMLDivElement;
|
|
3
|
+
$pageNumberInput: HTMLInputElement;
|
|
4
|
+
set_readonly: (readonly_: boolean) => void;
|
|
5
|
+
set_sidebar: (sidebar_: boolean) => void;
|
|
6
|
+
set_page_index: (page_index_: number, force?: boolean) => void;
|
|
7
|
+
set_page_count: (page_count_: number) => void;
|
|
8
|
+
on_new_page_index: (callback: (newPageIndex: number) => void) => void;
|
|
9
|
+
on_toggle_preview: (callback: () => void) => void;
|
|
10
|
+
on_play: (callback: () => void) => void;
|
|
11
|
+
on_save_to_pdf: (callback: (progressCallback: (p: number) => void) => void) => void;
|
|
12
|
+
};
|
|
@@ -1,36 +1,43 @@
|
|
|
1
1
|
import type { ISlideConfig } from "@netless/slide";
|
|
2
|
+
import type { SlideAttributes } from "./typings";
|
|
2
3
|
import { Slide } from "@netless/slide";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
width: number;
|
|
9
|
-
height: number;
|
|
10
|
-
thumbnail: string;
|
|
11
|
-
}
|
|
12
|
-
export declare type SlideViewerOptions = Omit<ISlideConfig, "anchor" | "mode" | "interactive"> & {
|
|
13
|
-
mode?: ISlideConfig["mode"];
|
|
14
|
-
interactive?: ISlideConfig["interactive"];
|
|
15
|
-
} & SlideAttributes;
|
|
4
|
+
import { SideEffectManager } from "side-effect-manager";
|
|
5
|
+
import { Remitter } from "remitter";
|
|
6
|
+
import { fetch_slide_info } from "./utils";
|
|
7
|
+
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
8
|
+
export type SlideViewerOptions = MakeOptional<Omit<ISlideConfig & SlideAttributes, "anchor">, "mode" | "interactive">;
|
|
16
9
|
export interface SlideViewerInfoResponse {
|
|
17
10
|
width: number;
|
|
18
11
|
height: number;
|
|
19
12
|
slideCount: number;
|
|
20
13
|
}
|
|
14
|
+
export interface SlideViewerEventData {
|
|
15
|
+
freeze: void;
|
|
16
|
+
unfreeze: void;
|
|
17
|
+
renderError: {
|
|
18
|
+
error: Error;
|
|
19
|
+
index: number;
|
|
20
|
+
};
|
|
21
|
+
prepareError: Error;
|
|
22
|
+
renderStart: void;
|
|
23
|
+
renderEnd: void;
|
|
24
|
+
}
|
|
21
25
|
export declare class SlideViewer {
|
|
22
26
|
static styles: string;
|
|
23
|
-
|
|
27
|
+
static fetchSlideInfo: typeof fetch_slide_info;
|
|
28
|
+
readonly sideEffect: SideEffectManager;
|
|
29
|
+
readonly events: Remitter<SlideViewerEventData>;
|
|
24
30
|
readonly $slide: HTMLDivElement;
|
|
31
|
+
readonly $overlay: HTMLDivElement;
|
|
25
32
|
readonly sidebar: {
|
|
26
33
|
$content: HTMLDivElement;
|
|
27
34
|
$preview: HTMLDivElement;
|
|
28
35
|
set_readonly: (readonly_: boolean) => void;
|
|
29
36
|
set_active: (active_: boolean) => void;
|
|
30
37
|
get_active: () => boolean;
|
|
31
|
-
set_pages: (pages_: PreviewPage[]) => void;
|
|
38
|
+
set_pages: (pages_: import("./typings").PreviewPage[]) => void;
|
|
32
39
|
on_new_page_index: (callback: (newPageIndex: number) => void) => void;
|
|
33
|
-
set_page_index: (page_index_: number) => void;
|
|
40
|
+
set_page_index: (page_index_: number, force?: boolean) => void;
|
|
34
41
|
destroy: () => void;
|
|
35
42
|
};
|
|
36
43
|
readonly footer: {
|
|
@@ -38,29 +45,35 @@ export declare class SlideViewer {
|
|
|
38
45
|
$pageNumberInput: HTMLInputElement;
|
|
39
46
|
set_readonly: (readonly_: boolean) => void;
|
|
40
47
|
set_sidebar: (sidebar_: boolean) => void;
|
|
41
|
-
set_page_index: (page_index_: number) => void;
|
|
48
|
+
set_page_index: (page_index_: number, force?: boolean) => void;
|
|
42
49
|
set_page_count: (page_count_: number) => void;
|
|
43
50
|
on_new_page_index: (callback: (newPageIndex: number) => void) => void;
|
|
44
51
|
on_toggle_preview: (callback: () => void) => void;
|
|
45
52
|
on_play: (callback: () => void) => void;
|
|
53
|
+
on_save_to_pdf: (callback: (progressCallback: (p: number) => void) => void) => void;
|
|
46
54
|
};
|
|
47
55
|
readonly $content: HTMLElement;
|
|
48
56
|
readonly $footer: HTMLElement;
|
|
49
57
|
readonly slide: Slide;
|
|
58
|
+
_slideTitle: string;
|
|
59
|
+
_getWhiteSnapshot: ((index: number, canvas: HTMLCanvasElement, ctx: CanvasRenderingContext2D) => void) | null;
|
|
50
60
|
private readonly _readyPromise;
|
|
51
61
|
private readonly _infoPromise;
|
|
52
62
|
private _ready;
|
|
53
63
|
private _slideCount;
|
|
54
64
|
private _destroyed;
|
|
65
|
+
private _isFrozen;
|
|
66
|
+
private _cachedIsFrozen;
|
|
55
67
|
constructor(options: SlideViewerOptions);
|
|
56
68
|
prepare(callback: (response: SlideViewerInfoResponse) => void): Promise<void>;
|
|
57
69
|
ready(callback: () => void): Promise<void>;
|
|
58
70
|
destroy(): void;
|
|
71
|
+
onPlay: () => void;
|
|
72
|
+
onNewPageIndex: (index: number) => void;
|
|
73
|
+
onTogglePreview: () => void;
|
|
59
74
|
setReadonly(readonly: boolean): void;
|
|
60
75
|
setPage(page: number): void;
|
|
61
|
-
private _isFrozen;
|
|
62
|
-
private _freezePromise;
|
|
63
76
|
freeze(): void;
|
|
64
77
|
unfreeze(): void;
|
|
78
|
+
toPdf: (progressCallback: (progress: number) => void) => Promise<null | undefined>;
|
|
65
79
|
}
|
|
66
|
-
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { PreviewPage } from "./typings";
|
|
2
|
+
export declare function create_sidebar(): {
|
|
3
|
+
$content: HTMLDivElement;
|
|
4
|
+
$preview: HTMLDivElement;
|
|
5
|
+
set_readonly: (readonly_: boolean) => void;
|
|
6
|
+
set_active: (active_: boolean) => void;
|
|
7
|
+
get_active: () => boolean;
|
|
8
|
+
set_pages: (pages_: PreviewPage[]) => void;
|
|
9
|
+
on_new_page_index: (callback: (newPageIndex: number) => void) => void;
|
|
10
|
+
set_page_index: (page_index_: number, force?: boolean) => void;
|
|
11
|
+
destroy: () => void;
|
|
12
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface SlideAttributes {
|
|
2
|
+
taskId: string;
|
|
3
|
+
url?: string;
|
|
4
|
+
}
|
|
5
|
+
export interface PreviewPage {
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
thumbnail: string;
|
|
9
|
+
}
|
|
10
|
+
export interface PreviewInfo {
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
}
|
|
14
|
+
export interface SlideInfo {
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
slideCount: number;
|
|
18
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { PreviewInfo, SlideAttributes, SlideInfo } from "./typings";
|
|
2
|
+
export declare function make_prefix(taskId: string, url?: string): string;
|
|
3
|
+
export declare function fetch_slide_info({ taskId, url }: SlideAttributes): Promise<{
|
|
4
|
+
preview: PreviewInfo | null;
|
|
5
|
+
slide: SlideInfo;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function on_visibility_change(callback: (visible: boolean) => void): () => void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { AppContext, Storage } from "@netless/window-manager";
|
|
2
|
+
import type { SideEffectManager } from "side-effect-manager";
|
|
3
|
+
import type { SlideViewer } from "./SlideViewer";
|
|
4
|
+
import type { Attributes } from "./typings";
|
|
5
|
+
export interface ConnectParams {
|
|
6
|
+
context: AppContext;
|
|
7
|
+
storage: Storage<Attributes>;
|
|
8
|
+
viewer: SlideViewer;
|
|
9
|
+
sideEffect: SideEffectManager;
|
|
10
|
+
logger: {
|
|
11
|
+
info: (msg: string) => void;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare function connect({ context, storage, viewer, sideEffect, logger }: ConnectParams): void;
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const
|
|
1
|
+
export declare const class_name = "netless-app-slide";
|
|
2
2
|
export declare const DefaultUrl = "https://convertcdn.netless.link/dynamicConvert";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function saveSVG(namespace: string): SVGElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function spinnerSVG(namespace: string): SVGElement;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type { NetlessApp } from "@netless/window-manager";
|
|
2
|
-
import type { AddHooks, AppOptions, Attributes, MagixEvents, SlideState } from "./typings";
|
|
3
2
|
import type { SlideViewerOptions } from "./SlideViewer";
|
|
3
|
+
import type { AddHooks, AppOptions, Attributes, MagixEvents, SlideState } from "./typings";
|
|
4
4
|
export type { SlideState, AddHooks, AppOptions, Attributes, MagixEvents, SlideViewerOptions };
|
|
5
|
+
import { Slide } from "@netless/slide";
|
|
6
|
+
import { DefaultUrl } from "./constants";
|
|
7
|
+
import { addHooks, refrigerator } from "./Refrigerator";
|
|
5
8
|
import { SlideViewer } from "./SlideViewer";
|
|
6
|
-
import {
|
|
7
|
-
export { SlideViewer, refrigerator, addHooks };
|
|
9
|
+
import { previewSlide } from "./preview";
|
|
10
|
+
export { Slide, SlideViewer, refrigerator, addHooks, DefaultUrl, previewSlide };
|
|
11
|
+
export declare const usePlugin: (plugin: any) => void;
|
|
8
12
|
export declare const version: string;
|
|
9
13
|
declare const SlideApp: NetlessApp<Attributes, MagixEvents, AppOptions, void>;
|
|
10
14
|
export default SlideApp;
|
|
11
|
-
export declare function previewSlide(options: SlideViewerOptions & {
|
|
12
|
-
container: HTMLElement;
|
|
13
|
-
}): SlideViewer;
|
package/dist/main.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";var It=Object.create;var pe=Object.defineProperty;var $t=Object.getOwnPropertyDescriptor;var zt=Object.getOwnPropertyNames;var Lt=Object.getPrototypeOf,Nt=Object.prototype.hasOwnProperty;var Mt=(e,t,s)=>t in e?pe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s;var Tt=(e,t,s,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of zt(t))!Nt.call(e,o)&&o!==s&&pe(e,o,{get:()=>t[o],enumerable:!(r=$t(t,o))||r.enumerable});return e};var Ot=(e,t,s)=>(s=e!=null?It(Lt(e)):{},Tt(t||!e||!e.__esModule?pe(s,"default",{value:e,enumerable:!0}):s,e));var d=(e,t,s)=>(Mt(e,typeof t!="symbol"?t+"":t,s),s);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const ae=require("@netless/slide");var Pt="!#%()*+,-./:;=?@[]^_`{|}~ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",Rt=87,Dt=20,Ne=[],Ft=()=>{for(let e=0;e<Dt;e++)Ne[e]=Pt.charAt(Math.random()*Rt);return Ne.join("")};function qe(e){try{return e()}catch(t){console.error(t)}}var Be=class{constructor(){this.push=this.addDisposer,this.disposers=new Map}addDisposer(e,t=this.genUID()){return this.flush(t),this.disposers.set(t,Array.isArray(e)?Vt(e):e),t}add(e,t=this.genUID()){const s=e();return s?this.addDisposer(s,t):t}addEventListener(e,t,s,r,o=this.genUID()){return e.addEventListener(t,s,r),this.addDisposer(()=>e.removeEventListener(t,s,r),o),o}setTimeout(e,t,s=this.genUID()){const r=window.setTimeout(()=>{this.remove(s),e()},t);return this.addDisposer(()=>window.clearTimeout(r),s)}setInterval(e,t,s=this.genUID()){const r=window.setInterval(e,t);return this.addDisposer(()=>window.clearInterval(r),s)}remove(e){const t=this.disposers.get(e);return this.disposers.delete(e),t}flush(e){const t=this.remove(e);t&&t()}flushAll(){this.disposers.forEach(qe),this.disposers.clear()}genUID(){let e;do e=Ft();while(this.disposers.has(e));return e}};function Vt(e){return()=>e.forEach(qe)}const F="netless-app-slide",ve="https://convertcdn.netless.link/dynamicConvert";class Ut{constructor(){d(this,"threshold",2);d(this,"_map",new Map);d(this,"_box",new Map);d(this,"_queue",[])}set(t,s,r){return this._map.set(t,s),this._box.set(t,r),this._queue.includes(t)||this._queue.unshift(t),this._refresh(),()=>{this.delete(t)}}delete(t){this._map.delete(t),this._box.delete(t),this._queue=this._queue.filter(s=>s!==t),this._refresh()}focus(t){const s=this._queue.indexOf(t);s>=0&&this._queue.splice(s,1),this._queue.unshift(t),this._refresh()}_refresh(){let t;this._queue.sort((s,r)=>{var n,a;const o=((n=this._box.get(s))==null?void 0:n.zIndex)??0,i=((a=this._box.get(r))==null?void 0:a.zIndex)??0;return-(o-i)}),this._queue.forEach((s,r)=>{(t=this._map.get(s))&&(r<this.threshold?t.unfreeze():t.freeze())})}}const me=new Ut,qt=function(t){t.on("focus",s=>{me.focus(s.appId)})};var T=Symbol.for("$ ANY_EVENT $"),we=(e,t)=>{try{return e(t)}catch(s){console.error(s)}},Bt=()=>{},He=(e,t)=>{e.a=we(e.c,t)||Bt},Ht=(e,t)=>{for(const s of e)s.a||(s.b===T||t.count(s.b)>0||t.count(T)>0)&&He(s,t)},je=e=>{e.a&&(we(e.a),e.a=null)},Me=(e,t)=>{for(const s of e)s.a&&(s.b===T?t.count()<=0:t.count(T)<=0&&t.count(s.b)<=0)&&je(s)},Ge=e=>{try{e()}catch(t){console.error(t)}},jt=e=>{const t=()=>{e&&(Ge(e),e=null),t.abortable()};return t.dispose=t,t.abortable=Gt,t};function Gt(e){this._o&&Ge(this._o),this._o=e}var Wt=class{constructor(){d(this,"ANY_EVENT",T);d(this,"_l",new Map);d(this,"_r");d(this,"_o")}emit(e,t){const s=this._l.get(e);if(s)for(const r of s)we(r,t);e!==T&&this.count(T)&&this.emit(T,{event:e,data:t})}on(e,t){let s=this._l.get(e);return s||(s=new Set,this._l.set(e,s)),s.add(t),this._r&&s.size===1&&Ht(this._r,this),()=>{this.off(e,t)}}once(e,t){const s=jt(()=>this.off(e,r)),r=o=>(s(),t(o));return(this._o||(this._o=new WeakMap)).set(t,r),this.on(e,r),s}off(e,t){var r;const s=this._l.get(e);if(s){let o=s.delete(t);const i=(r=this._o)==null?void 0:r.get(t);return i&&(o=s.delete(i)||o),s.size<=0&&(this._l.delete(e),this._r&&Me(this._r,this)),o}return!1}clear(e){var t;e?(t=this._l.get(e))==null||t.clear():this._l.clear(),this._r&&Me(this._r,this)}count(e){var t;if(e)return((t=this._l.get(e))==null?void 0:t.size)||0;{let s=0;for(const r of this._l.values())s+=r.size;return s}}remit(e,t){const s={c:t,b:e};return(this._r||(this._r=new Set)).add(s),(this.count(e)>0||this.count(T)>0)&&He(s,this),()=>{var r;(r=this._r)==null||r.delete(s),je(s)}}dispose(){var e;this.clear(),(e=this._r)==null||e.clear()}},Jt=class extends Wt{constructor(){super();d(this,"emit",super.emit);d(this,"remit",super.remit)}},fe={},Xt={get exports(){return fe},set exports(e){fe=e}},Yt={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},ge={},Zt={get exports(){return ge},set exports(e){ge=e}},Kt=function(t){return!t||typeof t=="string"?!1:t instanceof Array||Array.isArray(t)||t.length>=0&&(t.splice instanceof Function||Object.getOwnPropertyDescriptor(t,t.length-1)&&t.constructor.name!=="String")},Qt=Kt,es=Array.prototype.concat,ts=Array.prototype.slice,Te=Zt.exports=function(t){for(var s=[],r=0,o=t.length;r<o;r++){var i=t[r];Qt(i)?s=es.call(s,ts.call(i)):s.push(i)}return s};Te.wrap=function(e){return function(){return e(Te(arguments))}};var Z=Yt,Q=ge,We=Object.hasOwnProperty,Je=Object.create(null);for(var he in Z)We.call(Z,he)&&(Je[Z[he]]=he);var C=Xt.exports={to:{},get:{}};C.get=function(e){var t=e.substring(0,3).toLowerCase(),s,r;switch(t){case"hsl":s=C.get.hsl(e),r="hsl";break;case"hwb":s=C.get.hwb(e),r="hwb";break;default:s=C.get.rgb(e),r="rgb";break}return s?{model:r,value:s}:null};C.get.rgb=function(e){if(!e)return null;var t=/^#([a-f0-9]{3,4})$/i,s=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,r=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,o=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,i=/^(\w+)$/,n=[0,0,0,1],a,l,u;if(a=e.match(s)){for(u=a[2],a=a[1],l=0;l<3;l++){var b=l*2;n[l]=parseInt(a.slice(b,b+2),16)}u&&(n[3]=parseInt(u,16)/255)}else if(a=e.match(t)){for(a=a[1],u=a[3],l=0;l<3;l++)n[l]=parseInt(a[l]+a[l],16);u&&(n[3]=parseInt(u+u,16)/255)}else if(a=e.match(r)){for(l=0;l<3;l++)n[l]=parseInt(a[l+1],0);a[4]&&(a[5]?n[3]=parseFloat(a[4])*.01:n[3]=parseFloat(a[4]))}else if(a=e.match(o)){for(l=0;l<3;l++)n[l]=Math.round(parseFloat(a[l+1])*2.55);a[4]&&(a[5]?n[3]=parseFloat(a[4])*.01:n[3]=parseFloat(a[4]))}else return(a=e.match(i))?a[1]==="transparent"?[0,0,0,0]:We.call(Z,a[1])?(n=Z[a[1]],n[3]=1,n):null:null;for(l=0;l<3;l++)n[l]=V(n[l],0,255);return n[3]=V(n[3],0,1),n};C.get.hsl=function(e){if(!e)return null;var t=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,s=e.match(t);if(s){var r=parseFloat(s[4]),o=(parseFloat(s[1])%360+360)%360,i=V(parseFloat(s[2]),0,100),n=V(parseFloat(s[3]),0,100),a=V(isNaN(r)?1:r,0,1);return[o,i,n,a]}return null};C.get.hwb=function(e){if(!e)return null;var t=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,s=e.match(t);if(s){var r=parseFloat(s[4]),o=(parseFloat(s[1])%360+360)%360,i=V(parseFloat(s[2]),0,100),n=V(parseFloat(s[3]),0,100),a=V(isNaN(r)?1:r,0,1);return[o,i,n,a]}return null};C.to.hex=function(){var e=Q(arguments);return"#"+oe(e[0])+oe(e[1])+oe(e[2])+(e[3]<1?oe(Math.round(e[3]*255)):"")};C.to.rgb=function(){var e=Q(arguments);return e.length<4||e[3]===1?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"};C.to.rgb.percent=function(){var e=Q(arguments),t=Math.round(e[0]/255*100),s=Math.round(e[1]/255*100),r=Math.round(e[2]/255*100);return e.length<4||e[3]===1?"rgb("+t+"%, "+s+"%, "+r+"%)":"rgba("+t+"%, "+s+"%, "+r+"%, "+e[3]+")"};C.to.hsl=function(){var e=Q(arguments);return e.length<4||e[3]===1?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"};C.to.hwb=function(){var e=Q(arguments),t="";return e.length>=4&&e[3]!==1&&(t=", "+e[3]),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+t+")"};C.to.keyword=function(e){return Je[e.slice(0,3)]};function V(e,t,s){return Math.min(Math.max(t,e),s)}function oe(e){var t=Math.round(e).toString(16).toUpperCase();return t.length<2?"0"+t:t}function W(){}function ne(e){return document.createElement(e)}function y(e,t){const s=ne(e);return ss(s,t),s}function H(e,t){return e.appendChild(t)}function _(e){return`${F}-${e}`}function ss(e,t){e.className=_(t)}function rs(e){return e.endsWith("/")?e.slice(0,-1):e}function Oe(e,t){if(typeof e=="object"&&e!==null)return e[t]}function Pe(){let e;return[new Promise(s=>{e=s}),e]}function os(e){const t=e.room,s=e.displayer;return t?()=>t.calibrationTimestamp:s?()=>s.beginTimestamp+s.progressTime:()=>Date.now()}function Xe(e){try{let t=window.getComputedStyle(e).backgroundColor;if(t!=="rgba(0, 0, 0, 0)"&&t!=="transparent")return t=ns(t),console.log("[Slide] guess bg color:",t),t;if(e.parentElement)return Xe(e.parentElement)}catch{}return"#ffffff"}function ns(e){const t=fe.get(e);if(t&&t.model==="rgb"){const s=t.value,o=(((Math.round(s[0])&255)<<16)+((Math.round(s[1])&255)<<8)+(Math.round(s[2])&255)).toString(16);return"#"+"000000".substring(o.length)+o}else return e}function Ye(e,t){return`${rs(t||ve)}/${e}`}async function as({taskId:e,url:t}){const s=Ye(e,t),r=`${s}/preview/1.png`,o=`${s}/jsonOutput/slide-1.json`,i=new Promise(a=>{const l=new Image;l.onload=()=>a(l),l.onerror=()=>a(null),l.src=r}),n=fetch(o).then(a=>a.json());return{preview:await i,slide:await n}}function is(e){if(typeof document<"u"){const t=()=>e(document.visibilityState==="visible");return document.addEventListener("visibilitychange",t),()=>document.removeEventListener("visibilitychange",t)}return W}const ls=`.netless-app-slide-tele-fancy-scrollbar{overscroll-behavior:contain;overflow:auto;overflow-y:scroll;overflow-y:overlay;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar;scrollbar-width:auto}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar{height:8px;width:8px}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar-track{background-color:transparent}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar-thumb{background-color:#444e601a;background-color:transparent;border-radius:4px;transition:background-color .4s}.netless-app-slide-tele-fancy-scrollbar:hover::-webkit-scrollbar-thumb{background-color:#444e601a}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#444e6033}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar-thumb:active{background-color:#444e6033}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar-thumb:vertical{min-height:50px}.netless-app-slide-tele-fancy-scrollbar::-webkit-scrollbar-thumb:horizontal{min-width:50px}.netless-app-slide-content{position:relative;height:100%;overflow:hidden}.netless-app-slide-slide{width:100%;height:100%;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.netless-app-slide-preview-mask{display:none;position:absolute;z-index:10200;top:0;left:0;width:100%;height:100%}.netless-app-slide-preview{display:flex;flex-direction:column;align-items:center;position:absolute;z-index:10300;top:0;left:0;width:33%;max-width:200px;height:100%;padding-top:10px;transform:translate(-100%);background:rgba(237,237,240,.9);box-shadow:inset -1px 0 #0000001c;transition:transform .4s;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.netless-app-slide-preview-active .netless-app-slide-preview-mask{display:block}.netless-app-slide-preview-active .netless-app-slide-preview{transform:translate(0)}.netless-app-slide-preview-page{position:relative;display:block;width:55%;margin-bottom:10px;font-size:0;color:transparent;outline:none;border:7px solid transparent;border-radius:4px;transition:border-color .3s;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.netless-app-slide-preview-page:hover,.netless-app-slide-preview-page.netless-app-slide-preview-page-active{border-color:#444e601a}.netless-app-slide-preview-page>img{width:100%;height:auto;box-sizing:border-box;border:1px solid rgba(0,0,0,.5);border-radius:1px;background-color:#fff;box-shadow:0 2px 8px #0000004d}.netless-app-slide-preview-page-name{position:absolute;top:1px;left:-10px;transform:translate(-100%);text-align:right;font-size:12px;color:#5f5f5f;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.netless-app-slide-overlay{display:flex;align-items:center;justify-content:center;position:absolute;z-index:10100;top:0;left:0;width:100%;height:100%;padding:10px;box-sizing:border-box;background:rgba(255,0,0,.25);transition:opacity .3s;opacity:0;pointer-events:none}.netless-app-slide-footer{box-sizing:border-box;height:26px;display:flex;align-items:center;padding:0 16px;border-top:1px solid #eeeef7;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.netless-app-slide-float-footer{width:100%;min-height:26px;position:absolute;left:0;bottom:0;z-index:2000;background:rgba(249,249,252,.9);transition:opacity .4s}.netless-app-slide-footer-btn{box-sizing:border-box;width:26px;height:26px;font-size:0;margin:0;padding:3px;border:none;border-radius:1px;outline:none;color:currentColor;background:transparent;transition:background .4s;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-slide-footer-btn:hover{background:rgba(237,237,240,.9)}@media (hover: none){.netless-app-slide-footer-btn:hover{background:transparent!important}}.netless-app-slide-footer-btn>svg{width:100%;height:100%}.netless-app-slide-footer-btn>svg:nth-of-type(2){display:none}.netless-app-slide-footer-btn.netless-app-slide-footer-btn-playing>svg:nth-of-type(1){display:none}.netless-app-slide-footer-btn.netless-app-slide-footer-btn-playing>svg:nth-of-type(2){display:initial}.netless-app-slide-footer-btn~.netless-app-slide-footer-btn{margin-left:15px}.netless-app-slide-page-jumps{flex:1;display:flex;justify-content:center;align-items:center}.netless-app-slide-page-number{display:flex;align-items:center;height:26px;margin-left:auto;font-size:13px;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;word-break:keep-all;font-variant-numeric:tabular-nums}.netless-app-slide-page-number-input{border:none;outline:none;width:3em;margin:0;padding:0 .5em 0 2px;text-align:right;font-size:13px;line-height:1;font-weight:400;border-radius:2px;color:currentColor;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";background:transparent;transition:background .4s;font-variant-numeric:tabular-nums;-webkit-tap-highlight-color:rgba(0,0,0,0)}.netless-app-slide-page-number-input:hover,.netless-app-slide-page-number-input:focus,.netless-app-slide-page-number-input:active{user-select:text;background:#fff;box-shadow:#63636333 0 2px 8px}.netless-app-slide-readonly .netless-app-slide-footer-btn{cursor:not-allowed}.netless-app-slide-readonly .netless-app-slide-footer-btn:hover{background:transparent}.netless-app-slide-readonly .netless-app-slide-page-number-input{cursor:not-allowed}.netless-app-slide-readonly .netless-app-slide-page-number-input:hover,.netless-app-slide-readonly .netless-app-slide-page-number-input:focus,.netless-app-slide-readonly .netless-app-slide-page-number-input:active{background:transparent;box-shadow:none}.netless-app-slide-readonly .netless-app-slide-page-number-input:disabled{color:inherit}.netless-app-slide-readonly.netless-app-slide-float-footer,.netless-app-slide-wb-view-hidden{display:none}.telebox-color-scheme-dark .netless-app-slide-page-number-input:active,.telebox-color-scheme-dark .netless-app-slide-page-number-input:focus,.telebox-color-scheme-dark .netless-app-slide-page-number-input:hover{color:currentColor;background:#25282e}.telebox-color-scheme-dark .netless-app-slide-footer{border-top:none}.telebox-color-scheme-dark .netless-app-slide-footer-btn:hover{background:#212126}.telebox-color-scheme-dark .netless-app-slide-preview{background:rgba(50,50,50,.9)}.netless-app-slide-preview-wrapper{width:100%;height:100%;overflow:hidden;display:flex;flex-flow:column nowrap}.netless-app-slide-preview-wrapper .netless-app-slide-content{flex:1}.netless-app-slide-preview-wrapper .netless-app-slide-footer{flex-shrink:0}
|
|
2
|
+
`;function cs(e){const t="http://www.w3.org/2000/svg",s=document.createElementNS(t,"svg");s.setAttribute("class",`${e}-footer-icon-sidebar`),s.setAttribute("viewBox","0 0 64 64");const r=document.createElementNS(t,"path");return r.setAttribute("fill","currentColor"),r.setAttribute("d","M50 8H14c-3.309 0-6 2.691-6 6v36c0 3.309 2.691 6 6 6h36c3.309 0 6-2.691 6-6V14c0-3.309-2.691-6-6-6zM12 50V14c0-1.103.897-2 2-2h8v40h-8c-1.103 0-2-.897-2-2zm40 0c0 1.103-.897 2-2 2H26V12h24c1.103 0 2 .897 2 2z"),s.appendChild(r),s}function ds(e){const t="http://www.w3.org/2000/svg",s=document.createElementNS(t,"svg");s.setAttribute("class",`${e}-footer-icon-arrow-left`),s.setAttribute("viewBox","0 0 500 500");const r=document.createElementNS(t,"path");return r.setAttribute("fill","currentColor"),r.setAttribute("d","M177.81 249.959L337.473 90.295c2.722-2.865 2.651-7.378-.143-10.1-2.793-2.65-7.163-2.65-9.956 0l-164.75 164.75c-2.793 2.793-2.793 7.306 0 10.1l164.75 164.75c2.865 2.722 7.378 2.65 10.099-.143 2.651-2.794 2.651-7.163 0-9.957L177.809 249.959z"),s.appendChild(r),s}function us(e){const t="http://www.w3.org/2000/svg",s=document.createElementNS(t,"svg");s.setAttribute("class",`${e}-footer-icon-play`),s.setAttribute("viewBox","0 0 500 500");const r=document.createElementNS(t,"path");return r.setAttribute("fill","currentColor"),r.setAttribute("d","M418.158 257.419L174.663 413.33c-6.017 3.919-15.708 3.772-21.291-.29-2.791-2.018-4.295-4.483-4.295-7.084V94.109c0-5.65 6.883-10.289 15.271-10.289 4.298 0 8.391 1.307 11.181 3.332l242.629 155.484c6.016 3.917 6.451 10.292.649 14.491-.216.154-.432.154-.649.292zM170.621 391.288l223.116-141.301L170.71 107.753l-.089 283.535z"),s.appendChild(r),s}function ps(e){const t="http://www.w3.org/2000/svg",s=document.createElementNS(t,"svg");s.setAttribute("class",`${e}-footer-icon-pause`),s.setAttribute("viewBox","0 0 500 500");const r=document.createElementNS(t,"path");return r.setAttribute("fill","currentColor"),r.setAttribute("d","M312.491 78.261c0-6.159 4.893-11.213 11.04-11.213 6.158 0 11.211 5.054 11.211 11.213v343.478c0 6.159-5.053 11.213-11.211 11.213-6.147 0-11.04-5.054-11.04-11.213V78.261zM165.257 78.261c0-6.159 4.893-11.213 11.04-11.213 6.158 0 11.211 5.054 11.211 11.213v343.478c0 6.159-5.053 11.213-11.211 11.213-6.147 0-11.04-5.054-11.04-11.213V78.261z"),s.appendChild(r),s}function hs(e){const t="http://www.w3.org/2000/svg",s=document.createElementNS(t,"svg");s.setAttribute("class",`${e}-footer-icon-arrow-right`),s.setAttribute("viewBox","0 0 500 500");const r=document.createElementNS(t,"path");return r.setAttribute("fill","currentColor"),r.setAttribute("d","M322.19 250.041L162.527 409.705c-2.722 2.865-2.651 7.378.143 10.1 2.793 2.65 7.163 2.65 9.956 0l164.75-164.75c2.793-2.793 2.793-7.306 0-10.1l-164.75-164.75c-2.865-2.722-7.378-2.65-10.099.143-2.651 2.794-2.651 7.163 0 9.957l159.664 159.736z"),s.appendChild(r),s}function fs(e){const t="http://www.w3.org/2000/svg",s=document.createElementNS(t,"svg");s.setAttribute("class",`${e}-footer-icon-save`),s.setAttribute("viewBox","0 0 448 512");const r=document.createElementNS(t,"path");return r.setAttribute("fill","currentColor"),r.setAttribute("d","M224 256c-35.2 0-64 28.8-64 64c0 35.2 28.8 64 64 64c35.2 0 64-28.8 64-64C288 284.8 259.2 256 224 256zM433.1 129.1l-83.9-83.9C341.1 37.06 328.8 32 316.1 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V163.9C448 151.2 442.9 138.9 433.1 129.1zM128 80h144V160H128V80zM400 416c0 8.836-7.164 16-16 16H64c-8.836 0-16-7.164-16-16V96c0-8.838 7.164-16 16-16h16v104c0 13.25 10.75 24 24 24h192C309.3 208 320 197.3 320 184V83.88l78.25 78.25C399.4 163.2 400 164.8 400 166.3V416z"),s.appendChild(r),s}function gs(e){const t="http://www.w3.org/2000/svg",s=document.createElementNS(t,"svg");s.setAttribute("class",`${e}-footer-icon-spinner`),s.setAttribute("viewBox","0 0 512 512");const r=document.createElementNS(t,"path");r.setAttribute("fill","currentColor"),r.setAttribute("d","M304 48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zm0 416c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM48 304c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48zm464-48c0-26.5-21.5-48-48-48s-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48zM142.9 437c18.7-18.7 18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zm0-294.2c18.7-18.7 18.7-49.1 0-67.9S93.7 56.2 75 75s-18.7 49.1 0 67.9s49.1 18.7 67.9 0zM369.1 437c18.7 18.7 49.1 18.7 67.9 0s18.7-49.1 0-67.9s-49.1-18.7-67.9 0s-18.7 49.1 0 67.9z");const o=document.createElementNS(t,"animateTransform");o.setAttribute("attributeName","transform"),o.setAttribute("attributeType","xml"),o.setAttribute("type","rotate"),o.setAttribute("from","0 256 256"),o.setAttribute("to","360 256 256"),o.setAttribute("begin","0s"),o.setAttribute("dur","2s"),o.setAttribute("fill","freeze"),o.setAttribute("repeatCount","indefinite"),r.appendChild(o);const i=document.createElementNS(t,"text");return i.setAttribute("x","125"),i.setAttribute("y","345"),i.setAttribute("data-id","progress"),i.style.fontSize="246px",i.textContent="20",s.appendChild(i),s.appendChild(r),s}function bs(){let e=W;const t=h=>{e=h};let s=W;const r=h=>{s=h};let o=W;const i=h=>{o=h};let n=!1,a=!1,l=0,u=0;const b=y("div","footer"),g=y("button","btn-sidebar");g.classList.add(_("footer-btn")),g.appendChild(cs(F)),g.onclick=function(){n||s()},g.style.display="none",b.appendChild(g);const v=y("div","page-jumps"),c=y("button","btn-page-back");c.classList.add(_("footer-btn")),c.appendChild(ds(F)),c.onclick=function(){n||e(l-1)},v.appendChild(c);const f=y("button","btn-page-play");f.classList.add(_("footer-btn")),f.appendChild(us(F)),f.appendChild(ps(F));let E=0;f.onclick=function(){n||(f.classList.add(_("footer-btn-playing")),o(),clearTimeout(E),E=window.setTimeout(()=>{f.classList.remove(_("footer-btn-playing"))},500))},v.appendChild(f);const z=y("button","btn-page-next");z.classList.add(_("footer-btn")),z.appendChild(hs(F)),z.onclick=function(){n||e(l+1)},v.appendChild(z);const A=y("div","page-number"),m=y("input","page-number-input");m.value=String(l+1),m.onchange=function(){n||m.value&&e(Number(m.value)-1)};const p=y("span","total-page");p.textContent=" / ",A.appendChild(m),A.appendChild(p),b.appendChild(v),b.appendChild(A);const w=_("readonly");let k=W;const S=h=>{k=h},I=h=>{if(h<99){$.style.display="block",N.style.display="none";const re=$.querySelector("[data-id]");re&&(re.textContent=h.toString().padStart(2,"0"))}else $.style.display="none",N.style.display="block"},N=fs(F),$=gs(F);$.style.display="none";const R=y("button","footer-btn");R.appendChild(N),R.onclick=function(){k(I)},R.appendChild($);function D(h){n!==h&&(n=h,b.classList.toggle(w,n),m.disabled=n)}function Et(h){a!==h&&(a=h,g.style.display=a?"":"none")}function Ct(h,re=!1){(re||l!==h)&&(l=h,m.value=String(l+1))}function At(h){u!==h&&(u=h,p.textContent=` / ${u}`)}return{$footer:b,$pageNumberInput:m,set_readonly:D,set_sidebar:Et,set_page_index:Ct,set_page_count:At,on_new_page_index:t,on_toggle_preview:r,on_play:i,on_save_to_pdf:S}}const q=typeof window<"u",Ze=q&&!("onscroll"in window)||typeof navigator<"u"&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),Ke=q&&"IntersectionObserver"in window,Qe=q&&"classList"in document.createElement("p"),et=q&&window.devicePixelRatio>1,vs={elements_selector:".lazy",container:Ze||q?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_bg_set:"bg-set",data_poster:"poster",class_applied:"applied",class_loading:"loading",class_loaded:"loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},tt=e=>Object.assign({},vs,e),Re=function(e,t){let s;const r="LazyLoad::Initialized",o=new e(t);try{s=new CustomEvent(r,{detail:{instance:o}})}catch{s=document.createEvent("CustomEvent"),s.initCustomEvent(r,!1,!1,{instance:o})}window.dispatchEvent(s)},ms=(e,t)=>{if(t)if(!t.length)Re(e,t);else for(let s=0,r;r=t[s];s+=1)Re(e,r)},P="src",_e="srcset",ye="sizes",st="poster",ee="llOriginalAttrs",rt="data",ke="loading",ot="loaded",nt="applied",ws="entered",Se="error",at="native",it="data-",lt="ll-status",x=(e,t)=>e.getAttribute(it+t),_s=(e,t,s)=>{const r=it+t;if(s===null){e.removeAttribute(r);return}e.setAttribute(r,s)},te=e=>x(e,lt),G=(e,t)=>_s(e,lt,t),le=e=>G(e,null),xe=e=>te(e)===null,ys=e=>te(e)===ke,ks=e=>te(e)===Se,Ee=e=>te(e)===at,Ss=[ke,ot,nt,Se],xs=e=>Ss.indexOf(te(e))>=0,B=(e,t,s,r)=>{if(!(!e||typeof e!="function")){if(r!==void 0){e(t,s,r);return}if(s!==void 0){e(t,s);return}e(t)}},X=(e,t)=>{if(Qe){e.classList.add(t);return}e.className+=(e.className?" ":"")+t},L=(e,t)=>{if(Qe){e.classList.remove(t);return}e.className=e.className.replace(new RegExp("(^|\\s+)"+t+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")},Es=e=>{e.llTempImage=document.createElement("IMG")},Cs=e=>{delete e.llTempImage},ct=e=>e.llTempImage,ce=(e,t)=>{if(!t)return;const s=t._observer;s&&s.unobserve(e)},As=e=>{e.disconnect()},Is=(e,t,s)=>{t.unobserve_entered&&ce(e,s)},Ce=(e,t)=>{e&&(e.loadingCount+=t)},$s=e=>{e&&(e.toLoadCount-=1)},dt=(e,t)=>{e&&(e.toLoadCount=t)},zs=e=>e.loadingCount>0,Ls=e=>e.toLoadCount>0,ut=e=>{let t=[];for(let s=0,r;r=e.children[s];s+=1)r.tagName==="SOURCE"&&t.push(r);return t},Ae=(e,t)=>{const s=e.parentNode;if(!s||s.tagName!=="PICTURE")return;ut(s).forEach(t)},pt=(e,t)=>{ut(e).forEach(t)},de=[P],ht=[P,st],K=[P,_e,ye],ft=[rt],ue=e=>!!e[ee],gt=e=>e[ee],bt=e=>delete e[ee],J=(e,t)=>{if(ue(e))return;const s={};t.forEach(r=>{s[r]=e.getAttribute(r)}),e[ee]=s},Ns=e=>{ue(e)||(e[ee]={backgroundImage:e.style.backgroundImage})},Ms=(e,t,s)=>{if(!s){e.removeAttribute(t);return}e.setAttribute(t,s)},j=(e,t)=>{if(!ue(e))return;const s=gt(e);t.forEach(r=>{Ms(e,r,s[r])})},Ts=e=>{if(!ue(e))return;const t=gt(e);e.style.backgroundImage=t.backgroundImage},vt=(e,t,s)=>{X(e,t.class_applied),G(e,nt),s&&(t.unobserve_completed&&ce(e,t),B(t.callback_applied,e,s))},mt=(e,t,s)=>{X(e,t.class_loading),G(e,ke),s&&(Ce(s,1),B(t.callback_loading,e,s))},U=(e,t,s)=>{s&&e.setAttribute(t,s)},De=(e,t)=>{U(e,ye,x(e,t.data_sizes)),U(e,_e,x(e,t.data_srcset)),U(e,P,x(e,t.data_src))},Os=(e,t)=>{Ae(e,s=>{J(s,K),De(s,t)}),J(e,K),De(e,t)},Ps=(e,t)=>{J(e,de),U(e,P,x(e,t.data_src))},Rs=(e,t)=>{pt(e,s=>{J(s,de),U(s,P,x(s,t.data_src))}),J(e,ht),U(e,st,x(e,t.data_poster)),U(e,P,x(e,t.data_src)),e.load()},Ds=(e,t)=>{J(e,ft),U(e,rt,x(e,t.data_src))},Fs=(e,t,s)=>{const r=x(e,t.data_bg),o=x(e,t.data_bg_hidpi),i=et&&o?o:r;i&&(e.style.backgroundImage=`url("${i}")`,ct(e).setAttribute(P,i),mt(e,t,s))},Vs=(e,t,s)=>{const r=x(e,t.data_bg_multi),o=x(e,t.data_bg_multi_hidpi),i=et&&o?o:r;i&&(e.style.backgroundImage=i,vt(e,t,s))},Us=(e,t,s)=>{const r=x(e,t.data_bg_set);if(!r)return;const o=r.split("|");let i=o.map(n=>`image-set(${n})`);e.style.backgroundImage=i.join(),e.style.backgroundImage===""&&(i=o.map(n=>`-webkit-image-set(${n})`),e.style.backgroundImage=i.join()),vt(e,t,s)},wt={IMG:Os,IFRAME:Ps,VIDEO:Rs,OBJECT:Ds},qs=(e,t)=>{const s=wt[e.tagName];s&&s(e,t)},Bs=(e,t,s)=>{const r=wt[e.tagName];r&&(r(e,t),mt(e,t,s))},Hs=["IMG","IFRAME","VIDEO","OBJECT"],js=e=>Hs.indexOf(e.tagName)>-1,_t=(e,t)=>{t&&!zs(t)&&!Ls(t)&&B(e.callback_finish,t)},Fe=(e,t,s)=>{e.addEventListener(t,s),e.llEvLisnrs[t]=s},Gs=(e,t,s)=>{e.removeEventListener(t,s)},Ie=e=>!!e.llEvLisnrs,Ws=(e,t,s)=>{Ie(e)||(e.llEvLisnrs={});const r=e.tagName==="VIDEO"?"loadeddata":"load";Fe(e,r,t),Fe(e,"error",s)},be=e=>{if(!Ie(e))return;const t=e.llEvLisnrs;for(let s in t){const r=t[s];Gs(e,s,r)}delete e.llEvLisnrs},yt=(e,t,s)=>{Cs(e),Ce(s,-1),$s(s),L(e,t.class_loading),t.unobserve_completed&&ce(e,s)},Js=(e,t,s,r)=>{const o=Ee(t);yt(t,s,r),X(t,s.class_loaded),G(t,ot),B(s.callback_loaded,t,r),o||_t(s,r)},Xs=(e,t,s,r)=>{const o=Ee(t);yt(t,s,r),X(t,s.class_error),G(t,Se),B(s.callback_error,t,r),s.restore_on_error&&j(t,K),o||_t(s,r)},$e=(e,t,s)=>{const r=ct(e)||e;if(Ie(r))return;Ws(r,n=>{Js(n,e,t,s),be(r)},n=>{Xs(n,e,t,s),be(r)})},Ys=(e,t,s)=>{Es(e),$e(e,t,s),Ns(e),Fs(e,t,s),Vs(e,t,s),Us(e,t,s)},Zs=(e,t,s)=>{$e(e,t,s),Bs(e,t,s)},ze=(e,t,s)=>{js(e)?Zs(e,t,s):Ys(e,t,s)},Ks=(e,t,s)=>{e.setAttribute("loading","lazy"),$e(e,t,s),qs(e,t),G(e,at)},Ve=e=>{e.removeAttribute(P),e.removeAttribute(_e),e.removeAttribute(ye)},Qs=e=>{Ae(e,t=>{Ve(t)}),Ve(e)},kt=e=>{Ae(e,t=>{j(t,K)}),j(e,K)},er=e=>{pt(e,t=>{j(t,de)}),j(e,ht),e.load()},tr=e=>{j(e,de)},sr=e=>{j(e,ft)},rr={IMG:kt,IFRAME:tr,VIDEO:er,OBJECT:sr},or=e=>{const t=rr[e.tagName];if(!t){Ts(e);return}t(e)},nr=(e,t)=>{xe(e)||Ee(e)||(L(e,t.class_entered),L(e,t.class_exited),L(e,t.class_applied),L(e,t.class_loading),L(e,t.class_loaded),L(e,t.class_error))},ar=(e,t)=>{or(e),nr(e,t),le(e),bt(e)},ir=(e,t,s,r)=>{s.cancel_on_exit&&ys(e)&&e.tagName==="IMG"&&(be(e),Qs(e),kt(e),L(e,s.class_loading),Ce(r,-1),le(e),B(s.callback_cancel,e,t,r))},lr=(e,t,s,r)=>{const o=xs(e);G(e,ws),X(e,s.class_entered),L(e,s.class_exited),Is(e,s,r),B(s.callback_enter,e,t,r),!o&&ze(e,s,r)},cr=(e,t,s,r)=>{xe(e)||(X(e,s.class_exited),ir(e,t,s,r),B(s.callback_exit,e,t,r))},dr=["IMG","IFRAME","VIDEO"],St=e=>e.use_native&&"loading"in HTMLImageElement.prototype,ur=(e,t,s)=>{e.forEach(r=>{dr.indexOf(r.tagName)!==-1&&Ks(r,t,s)}),dt(s,0)},pr=e=>e.isIntersecting||e.intersectionRatio>0,hr=e=>({root:e.container===document?null:e.container,rootMargin:e.thresholds||e.threshold+"px"}),fr=(e,t,s)=>{e.forEach(r=>pr(r)?lr(r.target,r,t,s):cr(r.target,r,t,s))},gr=(e,t)=>{t.forEach(s=>{e.observe(s)})},br=(e,t)=>{As(e),gr(e,t)},vr=(e,t)=>{!Ke||St(e)||(t._observer=new IntersectionObserver(s=>{fr(s,e,t)},hr(e)))},xt=e=>Array.prototype.slice.call(e),ie=e=>e.container.querySelectorAll(e.elements_selector),mr=e=>xt(e).filter(xe),wr=e=>ks(e),_r=e=>xt(e).filter(wr),Ue=(e,t)=>mr(e||ie(t)),yr=(e,t)=>{_r(ie(e)).forEach(r=>{L(r,e.class_error),le(r)}),t.update()},kr=(e,t)=>{q&&(t._onlineHandler=()=>{yr(e,t)},window.addEventListener("online",t._onlineHandler))},Sr=e=>{q&&window.removeEventListener("online",e._onlineHandler)},se=function(e,t){const s=tt(e);this._settings=s,this.loadingCount=0,vr(s,this),kr(s,this),this.update(t)};se.prototype={update:function(e){const t=this._settings,s=Ue(e,t);if(dt(this,s.length),Ze||!Ke){this.loadAll(s);return}if(St(t)){ur(s,t,this);return}br(this._observer,s)},destroy:function(){this._observer&&this._observer.disconnect(),Sr(this),ie(this._settings).forEach(e=>{bt(e)}),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(e){const t=this._settings;Ue(e,t).forEach(r=>{ce(r,this),ze(r,t,this)})},restoreAll:function(){const e=this._settings;ie(e).forEach(t=>{ar(t,e)})}};se.load=(e,t)=>{const s=tt(t);ze(e,s)};se.resetStatus=e=>{le(e)};q&&ms(se,window.lazyLoadOptions);function xr(){let e=W;const t=p=>{e=p};let s=!1,r=!1,o=!1,i=[],n=0;const a=_("readonly"),l=_("preview-active"),u=y("div","content"),b=y("div","preview-mask");b.onclick=function(w){r||w.target===b&&f(!1)},H(u,b);const g=y("div","preview");g.classList.add(_("tele-fancy-scrollbar")),g.onclick=function(w){var S;if(r)return;const k=(S=w.target.dataset)==null?void 0:S.pageIndex;k&&(w.preventDefault(),w.stopPropagation(),w.stopImmediatePropagation(),e(Number(k)),f(!1))},H(u,g);let v;function c(p){r!==p&&(r=p,u.classList.toggle(a,r))}function f(p){o!==p&&(o=p,u.classList.toggle(l,o),o&&!v&&(v=new se({container:g,elements_selector:`.${_("preview-page>img")}`})))}function E(p){if(i!==p){i=p;const w=_("preview-page"),k=_("preview-page-name");i.forEach((S,I)=>{const N=String(I),$=ne("a");$.className=w+" "+_(`preview-page-${I}`),$.href="#",$.dataset.pageIndex=N;const R=ne("span");R.className=k,R.textContent=String(I+1),R.dataset.pageIndex=N;const D=ne("img");D.width=S.width,D.height=S.height,D.alt=`page-${I}`,D.dataset.src=S.thumbnail,D.dataset.pageIndex=N,H($,D),H($,R),H(g,$)}),s||v==null||v.update()}}function z(p,w=!1){if(w||n!==p){n=p;const k=g.querySelector(`.${_(`preview-page-${n}`)}`);k&&g.scrollTo({top:k.offsetTop-16})}}function A(){s=!0,v==null||v.destroy()}function m(){return o}return{$content:u,$preview:g,set_readonly:c,set_active:f,get_active:m,set_pages:E,on_new_page_index:t,set_page_index:z,destroy:A}}const Le=class{constructor(t){d(this,"sideEffect",new Be);d(this,"events",new Jt);d(this,"$slide",y("div","slide"));d(this,"$overlay",y("div","overlay"));d(this,"sidebar",xr());d(this,"footer",bs());d(this,"$content");d(this,"$footer");d(this,"slide");d(this,"_slideTitle","");d(this,"_getWhiteSnapshot",null);d(this,"_readyPromise");d(this,"_infoPromise");d(this,"_ready",!1);d(this,"_slideCount",0);d(this,"_destroyed",!1);d(this,"_isFrozen",!1);d(this,"_cachedIsFrozen",!1);d(this,"onPlay",()=>{this.slide.nextStep()});d(this,"onNewPageIndex",t=>{this._ready&&t>=0&&t<this._slideCount?this.slide.renderSlide(t+1):this.setPage(this.slide.slideState.currentSlideIndex)});d(this,"onTogglePreview",()=>{this.sidebar.set_active(!this.sidebar.get_active())});d(this,"toPdf",async t=>{const r=document.createElement("canvas"),o=r.getContext("2d"),{slideCount:i,width:n,height:a}=this.slide;let l=Math.floor(n),u=Math.floor(a);l>1920&&(l=1920,u=Math.floor(a*l/n)),u>1920&&(u=1920,l=Math.floor(n*u/a)),r.width=l,r.height=u;const b=document.createElement("canvas");b.width=n,b.height=a;const g=b.getContext("2d");if(!g||!this._getWhiteSnapshot||!o)return null;const v=l>u?"l":"p",{jsPDF:c}=await import("jspdf"),f=new c({format:[l,u],orientation:v,compress:!0});for(let p=1;p<=i;p++){const w=await this.slide.snapshotWithTimingEnd(p);if(w){const S=document.createElement("img");S.src=w,await new Promise(I=>S.onload=I),o.drawImage(S,0,0,l,u)}g.clearRect(0,0,n,a),this._getWhiteSnapshot(p,b,g);try{const S=b.toDataURL("image/png"),I=document.createElement("img");I.src=S,await new Promise(N=>I.onload=N),o.drawImage(I,0,0,l,u)}catch{}const k=r.toDataURL("image/jpeg",.6);p>1&&f.addPage(),f.addImage(k,"JPEG",0,0,l,u,"","FAST"),o.clearRect(0,0,l,u),t(Math.ceil(p/i*100))}const E=f.output("arraybuffer"),z=new Blob([E]),A=URL.createObjectURL(z),m=document.createElement("a");m.setAttribute("href",A),m.setAttribute("download",`${this._slideTitle||"snapshot"}.pdf`),m.style.display="none",document.body.appendChild(m),m.click(),document.body.removeChild(m),window.postMessage({type:"@app-slide/_download_pdf_",buf:E})});this.$content=this.sidebar.$content,this.$footer=this.footer.$footer,H(this.$content,this.$slide),H(this.$content,this.$overlay),this.sidebar.on_new_page_index(this.onNewPageIndex),this.footer.on_new_page_index(this.onNewPageIndex),this.footer.on_toggle_preview(this.onTogglePreview),this.footer.on_play(this.onPlay),this.footer.on_save_to_pdf(this.toPdf),this.sideEffect.push(this.sidebar.destroy),this.sideEffect.push(()=>this.slide.destroy()),this.sideEffect.push(()=>{this.$content.parentElement&&this.$content.remove(),this.$footer.parentElement&&this.$footer.remove(),this.$slide.parentElement&&this.$slide.remove()}),this.sideEffect.push(is(a=>{this._destroyed||(a?this._cachedIsFrozen||this.unfreeze():(this._cachedIsFrozen=this._isFrozen,this.freeze()))}));const[s,r]=Pe();this._infoPromise=s,Le.fetchSlideInfo(t).then(({preview:a,slide:l})=>{if(!this._destroyed){if(this._slideCount=l.slideCount,a){const{taskId:u,url:b}=t,{slideCount:g}=l,{width:v,height:c}=a,f=Ye(u,b),E=Array.from({length:g},(z,A)=>({width:v,height:c,thumbnail:`${f}/preview/${A+1}.png`}));this.sidebar.set_pages(E),this.footer.set_sidebar(!0)}this.footer.set_page_count(l.slideCount),r(l)}}).catch(a=>{console.log("[Slide] fetch slide info error"),console.error(a),this.events.emit("prepareError",a)});const[i,n]=Pe();this._readyPromise=i,this.slide=new ae.Slide({anchor:this.$slide,mode:"local",interactive:!0,enableGlobalClick:!0,useLocalCache:!0,...t}),this.slide.setResource(t.taskId,t.url||ve),this.slide.on("renderStart",()=>{this._destroyed||this.events.emit("renderStart")}),this.slide.on("slideChange",a=>{this._destroyed||(this.setPage(a),this.$overlay.style.opacity="",this.events.emit("renderEnd"))}),this.slide.once("renderEnd",()=>{this._ready||setTimeout(()=>{this._ready=!0,n()},1e3)}),this.slide.on("renderError",a=>{this._destroyed||a.error&&(console.error(a.error),this.$overlay.textContent=`Error on slide.index=${a.index}: ${a.error.message}`,this.$overlay.style.opacity="1",this.events.emit("renderError",a))}),this.ready(()=>{this._isFrozen&&this.freeze()})}prepare(t){return this._infoPromise.then(t)}ready(t){return this._readyPromise.then(t)}destroy(){this._destroyed=!0,this.sideEffect.flushAll()}setReadonly(t){this.slide.setInteractive(!t),this.sidebar.set_readonly(t),this.footer.set_readonly(t)}setPage(t){this.sidebar.set_page_index(t-1,!0),this.footer.set_page_index(t-1,!0)}freeze(){this._destroyed||(this._isFrozen=!0,this._ready&&(this.slide.frozen(),this.events.emit("freeze")))}unfreeze(){this._destroyed||(this._isFrozen=!1,this._ready&&(this.slide.release(),this.events.emit("unfreeze")))}};let O=Le;d(O,"styles",ls),d(O,"fetchSlideInfo",as);function Er(e){return e.displayer.logger}const M=class{constructor(t){d(this,"info",t=>{M.roomLogger&&this.context?M.roomLogger.info(t+` (${this.context.appId})`):this.context?console.debug(t+` (${this.context.appId})`):console.debug(t)});this.context=t,t&&(M.active.add(t.appId),M.roomLogger=Er(t))}destroy(){this.context&&M.active.delete(this.context.appId),M.active.size===0&&(M.roomLogger=null)}};let Y=M;d(Y,"active",new Set),d(Y,"roomLogger",null);function Cr({context:e,storage:t,viewer:s,sideEffect:r,logger:o}){const i=o.info.bind(o);let n=null;s.prepare(({width:c,height:f,slideCount:E})=>{e.destroyed||(c&&e.box.setStageRatio(f/c),n=e.createWhiteBoardView({size:E}),n.setBaseRect({width:c,height:f}),s._slideTitle=e.box.title,s._getWhiteSnapshot=(z,A,m)=>{if(!n)return null;const p=n.pageState.pages[z-1],{width:w,height:k}=n.view.size;A.width=w,A.height=k,n.view.screenshotToCanvas(m,p,w,k,n.view.camera)},u())});const{slide:a}=s;function l(c=t.state.state){return JSON.stringify(c)}function u(){if(t.state.state)i("[Slide] restore "+l()),a.setSlideState(t.state.state);else if(e.isAddApp)i("[Slide] kick start"),a.renderSlide(1);else{i("[Slide] wait for restore");const c=r.add(()=>{const E=setInterval(()=>{t.state.state||(i("[Slide] timeout"),a.renderSlide(1))},15e3);return()=>clearInterval(E)}),f=r.push(t.on("stateChanged",()=>{t.state.state&&(i("[Slide] restore "+l()),a.setSlideState(t.state.state),r.flush(f),r.flush(c))}))}}a.on("stateChange",()=>{t.isWritable&&t.setState({state:a.slideState})}),a.on("syncDispatch",c=>{e.isWritable&&(i("[Slide] dispatch "+l(Oe(c,"uuid"))),e.dispatchMagixEvent("syncDispatch",c))}),r.push(e.addMagixEventListener("syncDispatch",({payload:c})=>{i("[Slide] receive "+l(Oe(c,"uuid"))),a.emit("syncReceive",c)},{fireSelfEventAfterCommit:!0})),a.on("slideChange",c=>{e.isWritable&&n&&(i("[Slide] page to "+c),n.jumpPage(c-1))});function b(){n&&n.view.divElement&&n.view.divElement.classList.add(_("wb-view-hidden"))}function g(){n&&n.view.divElement&&n.view.divElement.classList.remove(_("wb-view-hidden"))}s.setReadonly(!e.isWritable),r.push([e.emitter.on("writableChange",()=>s.setReadonly(!e.isWritable)),s.events.on("renderStart",b),s.events.on("renderEnd",g)]);const v=c=>{if(!c)return!1;const f=c.tagName;return f==="INPUT"||f==="TEXTAREA"||f==="SELECT"};r.addEventListener(window,"keydown",c=>{!c||c.target.className==="telebox-quarantine-outer"||e.box.focus&&!e.box.readonly&&!v(c.target)&&((c.key==="ArrowUp"||c.key==="ArrowLeft")&&s.slide.prevStep(),(c.key==="ArrowRight"||c.key==="ArrowDown")&&s.slide.nextStep())})}function Ar(e){const{container:t,...s}=e,r=y("div","preview-wrapper"),o=new O(s);return r.appendChild(document.createElement("style")).textContent=O.styles,r.appendChild(o.$content),r.appendChild(o.$footer),t.appendChild(r),o.prepare(()=>o.slide.renderSlide(1)),o}const Ir=ae.Slide.usePlugin.bind(ae.Slide),$r="0.3.0-canary.21",zr={kind:"Slide",config:{enableShadowDOM:!1},setup(e){console.log("[Slide] setup @ 0.3.0-canary.21 ("+e.appId+")");const t=new Y(e);if(t.info("[Slide] setup @ 0.3.0-canary.21"),!e.attributes.taskId)throw new Error("[Slide] no taskId");const s=e.createStorage("slide",e.attributes),r=e.getAppOptions()||{},o=r.renderOptions||{},i=new Be,n=new O({interactive:!0,mode:"interactive",enableGlobalClick:!0,timestamp:os(e),logger:r.logger||t,whiteTracker:e.displayer.tracker,renderOptions:{minFPS:o.minFPS||25,maxFPS:o.maxFPS||30,autoFPS:o.autoFPS??!0,autoResolution:o.autoResolution??!0,resolution:o.resolution,maxResolutionLevel:o.maxResolutionLevel,transactionBgColor:o.transactionBgColor||Xe(e.box.$content)},rtcAudio:r.rtcAudio,useLocalCache:r.useLocalCache,resourceTimeout:r.resourceTimeout,loaderDelegate:r.loaderDelegate,navigatorDelegate:r.navigatorDelegate,fixedFrameSize:r.fixedFrameSize,taskId:s.state.taskId,url:s.state.url});return Object.assign(n,{context:e,logger:t}),i.push(me.set(e.appId,n,e.box)),i.push(n.events.on("freeze",()=>t.info("[Slide] freeze"))),i.push(n.events.on("unfreeze",()=>t.info("[Slide] unfreeze"))),i.push(n.events.on("prepareError",a=>t.info("[Slide] fetch slide info failed: "+a.message))),i.push(n.events.on("renderError",({error:a,index:l})=>t.info(`[Slide] render failed [${l}]: ${a.message}`))),e.box.mountStyles(O.styles),e.box.mountStage(n.$slide),e.box.mountFooter(n.$footer),e.box.mountContent(n.$content),i.push(()=>n.destroy()),Cr({context:e,storage:s,viewer:n,sideEffect:i,logger:t}),e.emitter.on("destroy",()=>{t.info("[Slide] destroy"),t.destroy(),i.flushAll()}),n}};Object.defineProperty(exports,"Slide",{enumerable:!0,get:()=>ae.Slide});exports.DefaultUrl=ve;exports.SlideViewer=O;exports.addHooks=qt;exports.default=zr;exports.previewSlide=Ar;exports.refrigerator=me;exports.usePlugin=Ir;exports.version=$r;
|
|
3
|
+
//# sourceMappingURL=main.js.map
|