@netless/forge-slide 0.1.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/build.mjs ADDED
@@ -0,0 +1,31 @@
1
+ import esbuild from 'esbuild';
2
+ import dtsPlugin from "esbuild-plugin-d.ts";
3
+
4
+ const settings = {
5
+ entryPoints: ['src/index.ts'],
6
+ bundle: true,
7
+ sourcemap: true,
8
+ plugins: [
9
+ // dtsPlugin()
10
+ ],
11
+ external: [
12
+ "@netless/forge-room",
13
+ "yjs",
14
+ "eventemitter3",
15
+ "uuid"
16
+ ]
17
+ };
18
+
19
+ esbuild.build({
20
+ ...settings,
21
+ outfile: 'dist/index.js',
22
+ platform: 'browser',
23
+ format: "cjs"
24
+ }).then(console.log).catch(console.log);
25
+
26
+ esbuild.build({
27
+ ...settings,
28
+ outfile: 'dist/index.esm.js',
29
+ platform: 'browser',
30
+ format: "esm"
31
+ }).then(console.log).catch(console.log);
@@ -0,0 +1,23 @@
1
+ import EventEmitter from "eventemitter3";
2
+ interface FooterViewEvents {
3
+ prevPage: () => void;
4
+ nextPage: () => void;
5
+ prevStep: () => void;
6
+ nextStep: () => void;
7
+ sideBarToggle: () => void;
8
+ }
9
+ export declare class FooterView extends EventEmitter<FooterViewEvents> {
10
+ readonly root: HTMLDivElement;
11
+ private prevStep;
12
+ private nextStep;
13
+ private prevPage;
14
+ private nextPage;
15
+ private sideBarToggle;
16
+ constructor();
17
+ prevPageState(enable: boolean): void;
18
+ nextPageState(enable: boolean): void;
19
+ private createSpacer;
20
+ private createIcon;
21
+ }
22
+ export {};
23
+ //# sourceMappingURL=FoorerView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FoorerView.d.ts","sourceRoot":"","sources":["../src/FoorerView.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAGzC,UAAU,gBAAgB;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,IAAI,CAAC;CAC7B;AAID,qBAAa,UAAW,SAAQ,YAAY,CAAC,gBAAgB,CAAC;IAE1D,SAAgB,IAAI,EAAE,cAAc,CAAC;IAErC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAiB;IAEjC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,QAAQ,CAAiB;IAEjC,OAAO,CAAC,aAAa,CAAiB;;IAyC/B,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAUpC,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAU3C,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,UAAU;CAkBrB"}
@@ -0,0 +1,80 @@
1
+ import { type UserManager } from "@netless/forge-room";
2
+ import EventEmitter from "eventemitter3";
3
+ import * as Y from "yjs";
4
+ export declare enum ForgeSlidePermissionFlag {
5
+ /**
6
+ * 没有任何权限, 只能同步他人的操作
7
+ */
8
+ none = 0,
9
+ /**
10
+ * 可以操作上一步下一步动画
11
+ */
12
+ changeStep = 1,
13
+ /**
14
+ * 可以切面页码
15
+ */
16
+ changePage = 2,
17
+ /**
18
+ * 可以触发点击动画
19
+ */
20
+ clickAnim = 4,
21
+ /**
22
+ * 拥有所有权限
23
+ */
24
+ all = 7
25
+ }
26
+ export interface ForgeSlidePermissionEvents {
27
+ /**
28
+ * 当用户权限变更时触发
29
+ * @param { string } userId 对应 userId
30
+ * @param { ForgeSlidePermissionFlag[] } flags 当前权限列表
31
+ * @param { number } value 权限值
32
+ */
33
+ change: (userId: string, flags: ForgeSlidePermissionFlag[], value: number) => void;
34
+ }
35
+ export declare class ForgeSlidePermissions extends EventEmitter<ForgeSlidePermissionEvents> {
36
+ private requestUserMap;
37
+ private userManager;
38
+ private observers;
39
+ constructor(userManager: UserManager, requestUserMap: (userId: string) => Y.Map<any>);
40
+ private handleUserLeave;
41
+ private handleUserJoin;
42
+ private addObserve;
43
+ private createModel;
44
+ private handleUserPermissionChange;
45
+ /**
46
+ * 解析权限列表组合
47
+ * @param {number} value - 权限数字值
48
+ * @return {WhiteboardPermissionFlag[]} - 权限列表
49
+ */
50
+ resolveFlags(value: number): ForgeSlidePermissionFlag[];
51
+ /**
52
+ * 获取权限列表组合对应的数值
53
+ * @param { string } userId 不传表示获取自己
54
+ */
55
+ getPermissionValue(userId?: string): number;
56
+ /**
57
+ * 获取权限列表
58
+ * @param {string=} userId 可选, 不传表示获取自己
59
+ */
60
+ getPermissionFlags(userId?: string): ForgeSlidePermissionFlag[];
61
+ /**
62
+ * 返回对应 userId 是否有相应权限
63
+ * @param {string=} userId 可选, 不传表示返回自己是否有相应权限
64
+ * @param {WhiteboardPermissionFlag} flag
65
+ */
66
+ hasPermission(flag: ForgeSlidePermissionFlag, userId?: string): boolean;
67
+ /**
68
+ * 添加权限
69
+ * @param {WhiteboardPermissionFlag} flag 权限标记
70
+ * @param {string=} userId 可选, 为 userId 添加权限, 不传表示为自己添加权限
71
+ */
72
+ addPermission(flag: ForgeSlidePermissionFlag, userId?: string): void;
73
+ /**
74
+ * 移除权限
75
+ * @param {WhiteboardPermissionFlag} flag 权限标记
76
+ * @param {string=} userId 可选, 为 userId 移除权限, 不传表示为自己移除权限
77
+ */
78
+ removePermission(flag: ForgeSlidePermissionFlag, userId?: string): void;
79
+ }
80
+ //# sourceMappingURL=ForgeSlidePermession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ForgeSlidePermession.d.ts","sourceRoot":"","sources":["../src/ForgeSlidePermession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACtE,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB,oBAAY,wBAAwB;IAChC;;OAEG;IACH,IAAI,IAAqB;IACzB;;OAEG;IACH,UAAU,IAAqB;IAC/B;;OAEG;IACH,UAAU,IAAqB;IAC/B;;OAEG;IACH,SAAS,IAAqB;IAC9B;;OAEG;IACH,GAAG,IAEmC;CACzC;AAED,MAAM,WAAW,0BAA0B;IACvC;;;;;OAKG;IACH,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACtF;AAED,qBAAa,qBAAsB,SAAQ,YAAY,CAAC,0BAA0B,CAAC;IAE/E,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,SAAS,CAA+B;gBAG5C,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAclD,OAAO,CAAC,eAAe,CAKrB;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,0BAA0B;IAWlC;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,wBAAwB,EAAE;IAQ9D;;;OAGG;IACI,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAIlD;;;OAGG;IACI,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,wBAAwB,EAAE;IAKtE;;;;OAIG;IACI,aAAa,CAAC,IAAI,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAI9E;;;;OAIG;IACI,aAAa,CAAC,IAAI,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,MAAM;IAMpE;;;;OAIG;IACI,gBAAgB,CAAC,IAAI,EAAE,wBAAwB,EAAE,MAAM,CAAC,EAAE,MAAM;CAK1E"}
@@ -0,0 +1,17 @@
1
+ import { SlideApplicationOption } from "./SlideApplication";
2
+ import EventEmitter from "eventemitter3";
3
+ interface SideBarViewEvents {
4
+ pageChange: (index: number) => void;
5
+ }
6
+ export declare class SideBarView extends EventEmitter<SideBarViewEvents> {
7
+ readonly root: HTMLDivElement;
8
+ private itemList;
9
+ constructor();
10
+ private onMouseOver;
11
+ private onMouseOut;
12
+ private onClickHandle;
13
+ initialize(slideCount: number, option: SlideApplicationOption): void;
14
+ dispose(): void;
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=SiderBarView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SiderBarView.d.ts","sourceRoot":"","sources":["../src/SiderBarView.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,sBAAsB,EAAC,MAAM,oBAAoB,CAAC;AAC1D,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,UAAU,iBAAiB;IACvB,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,qBAAa,WAAY,SAAQ,YAAY,CAAC,iBAAiB,CAAC;IAC5D,SAAgB,IAAI,EAAE,cAAc,CAAiC;IACrE,OAAO,CAAC,QAAQ,CAAwB;;IAuBxC,OAAO,CAAC,WAAW,CAElB;IAED,OAAO,CAAC,UAAU,CAEjB;IAED,OAAO,CAAC,aAAa,CAEpB;IAEM,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAuCpE,OAAO;CAOjB"}
@@ -0,0 +1,33 @@
1
+ import EventEmitter from "eventemitter3";
2
+ import { ApplicationInstanceType } from "@netless/forge-room";
3
+ import { ForgeSlidePermissionFlag, ForgeSlidePermissions } from "./ForgeSlidePermession";
4
+ export interface SlideEvents {
5
+ /**
6
+ * 当用户权限变更时触发
7
+ * @param { string } userId 对应 userId
8
+ * @param { ForgeSlidePermissionFlag[] } flags 当前权限列表
9
+ * @param { number } value 权限值
10
+ */
11
+ permissionChange: (userId: string, flags: ForgeSlidePermissionFlag[], value: number) => void;
12
+ /**
13
+ * 开始渲染页面时触发
14
+ * @param {number} pageIndex 页面索引
15
+ */
16
+ renderStart: (pageIndex: number) => void;
17
+ /**
18
+ * 页面渲染完成时触发
19
+ * @param {number} pageIndex 页面索引
20
+ */
21
+ renderEnd: (pageIndex: number) => void;
22
+ }
23
+ export declare class SlideForge extends EventEmitter<SlideEvents> implements ApplicationInstanceType {
24
+ readonly view: HTMLDivElement;
25
+ readonly permissions: ForgeSlidePermissions;
26
+ readonly pageIndex: number;
27
+ /**
28
+ * 切换到参数指定页面, index 从 0 开始
29
+ * @param {number} index 页面索引
30
+ */
31
+ goto: (index: number) => Promise<void>;
32
+ }
33
+ //# sourceMappingURL=Slide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Slide.d.ts","sourceRoot":"","sources":["../src/Slide.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,MAAM,WAAW,WAAW;IACxB;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7F;;;OAGG;IACH,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzC;;;OAGG;IACH,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAGD,qBAAa,UAAW,SAAQ,YAAY,CAAC,WAAW,CAAE,YAAW,uBAAuB;IAExF,SAAgB,IAAI,EAAG,cAAc,CAAC;IACtC,SAAgB,WAAW,EAAG,qBAAqB,CAAC;IACpD,SAAgB,SAAS,EAAG,MAAM,CAAC;IAEnC;;;OAGG;IACI,IAAI,EAAG,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACjD"}
@@ -0,0 +1,36 @@
1
+ import { ISlideConfig } from "@netless/slide";
2
+ import { AbstractApplication } from "@netless/forge-room";
3
+ import { SlideForge } from "./Slide";
4
+ export interface SlideApplicationOption {
5
+ prefix: string;
6
+ taskId: string;
7
+ options?: ISlideConfig;
8
+ /**
9
+ * 从指定的白板 id 继承白板权限以及工具栏配置
10
+ */
11
+ inheritWhiteboardId?: string;
12
+ }
13
+ export declare const Slide_APP_NAME = "forge_slide";
14
+ export declare class SlideApplication extends AbstractApplication<SlideApplicationOption, SlideForge> {
15
+ static applicationName: string;
16
+ readonly name: string;
17
+ private whiteboardApp;
18
+ private whiteboard;
19
+ private rootView;
20
+ private contentContainer;
21
+ private whiteboardContainer;
22
+ private slideContainer;
23
+ private permissions;
24
+ private footer;
25
+ private sideBar;
26
+ private slide;
27
+ private currentSlideIndex;
28
+ constructor();
29
+ emitter: SlideForge;
30
+ private applySlideState;
31
+ private onSlideEventHandler;
32
+ initialize(option: SlideApplicationOption): Promise<void>;
33
+ private userMap;
34
+ dispose(): Promise<void>;
35
+ }
36
+ //# sourceMappingURL=SlideApplication.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SlideApplication.d.ts","sourceRoot":"","sources":["../src/SlideApplication.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,YAAY,EAAsB,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AAOnC,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,eAAO,MAAM,cAAc,gBAAgB,CAAC;AAE5C,qBAAa,gBAAiB,SAAQ,mBAAmB,CAAC,sBAAsB,EAAE,UAAU,CAAC;IAEzF,MAAM,CAAC,eAAe,SAAkB;IAExC,SAAgB,IAAI,EAAE,MAAM,CAAkB;IAE9C,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,QAAQ,CAAiD;IACjE,OAAO,CAAC,gBAAgB,CAAiD;IACzE,OAAO,CAAC,mBAAmB,CAAiD;IAC5E,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,WAAW,CAAyB;IAC5C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,iBAAiB,CAAa;;IA6GtC,OAAO,EAAE,UAAU,CAAoB;IAEvC,OAAO,CAAC,eAAe,CAiBtB;IAED,OAAO,CAAC,mBAAmB,CAS1B;IAEY,UAAU,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwHtE,OAAO,CAAC,OAAO;IAIF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CASxC"}
@@ -0,0 +1,8 @@
1
+ export declare const Icons: {
2
+ prevPage: (color: string) => string;
3
+ nextPage: (color: string) => string;
4
+ prevStep: (color: string) => string;
5
+ nextStep: (color: string) => string;
6
+ sideBar: (color: string) => string;
7
+ };
8
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,KAAK;sBApBO,MAAM;sBAQN,MAAM;sBAQN,MAAM;sBACN,MAAM;qBACP,MAAM;CAM7B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { SlideApplication } from "./SlideApplication";
2
+ export { SlideForge } from "./Slide";
3
+ export { ForgeSlidePermissionFlag } from "./ForgeSlidePermession";
4
+ export type { SlideApplicationOption } from "./SlideApplication";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,YAAY,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC"}