@netless/window-manager 0.4.73-beta.0 → 0.4.73-beta.1

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.
Files changed (75) hide show
  1. package/dist/index.d.ts +1087 -38
  2. package/dist/index.js +14 -14
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.mjs +130 -40
  5. package/dist/index.mjs.map +1 -1
  6. package/package.json +7 -7
  7. package/src/App/AppContext.ts +13 -5
  8. package/src/App/AppProxy.ts +2 -2
  9. package/src/App/MagixEvent/index.ts +38 -38
  10. package/src/App/Storage/StorageEvent.ts +13 -13
  11. package/src/App/Storage/index.ts +265 -242
  12. package/src/App/Storage/typings.ts +4 -2
  13. package/src/App/Storage/utils.ts +3 -3
  14. package/src/AppListener.ts +5 -5
  15. package/src/AttributesDelegate.ts +5 -7
  16. package/src/BoxEmitter.ts +12 -6
  17. package/src/BoxManager.ts +1 -1
  18. package/src/ContainerResizeObserver.ts +1 -1
  19. package/src/Helper.ts +67 -15
  20. package/src/InternalEmitter.ts +4 -3
  21. package/src/Page/index.ts +1 -1
  22. package/src/Register/index.ts +5 -7
  23. package/src/Register/loader.ts +1 -1
  24. package/src/Register/storage.ts +13 -13
  25. package/src/Utils/Common.ts +10 -5
  26. package/src/Utils/Reactive.ts +26 -25
  27. package/src/Utils/RoomHacker.ts +1 -1
  28. package/src/Utils/error.ts +0 -1
  29. package/src/View/IframeBridge.ts +627 -583
  30. package/src/View/MainView.ts +7 -2
  31. package/src/callback.ts +7 -1
  32. package/src/index.ts +8 -21
  33. package/src/typings.ts +11 -6
  34. package/dist/App/AppContext.d.ts +0 -79
  35. package/dist/App/AppPageStateImpl.d.ts +0 -17
  36. package/dist/App/AppProxy.d.ts +0 -67
  37. package/dist/App/MagixEvent/index.d.ts +0 -29
  38. package/dist/App/Storage/StorageEvent.d.ts +0 -8
  39. package/dist/App/Storage/index.d.ts +0 -39
  40. package/dist/App/Storage/typings.d.ts +0 -22
  41. package/dist/App/Storage/utils.d.ts +0 -5
  42. package/dist/App/index.d.ts +0 -2
  43. package/dist/AppListener.d.ts +0 -21
  44. package/dist/AppManager.d.ts +0 -110
  45. package/dist/AttributesDelegate.d.ts +0 -91
  46. package/dist/BoxEmitter.d.ts +0 -34
  47. package/dist/BoxManager.d.ts +0 -98
  48. package/dist/BuiltinApps.d.ts +0 -5
  49. package/dist/ContainerResizeObserver.d.ts +0 -11
  50. package/dist/Cursor/Cursor.d.ts +0 -43
  51. package/dist/Cursor/icons.d.ts +0 -3
  52. package/dist/Cursor/icons2.d.ts +0 -4
  53. package/dist/Cursor/index.d.ts +0 -55
  54. package/dist/Helper.d.ts +0 -11
  55. package/dist/InternalEmitter.d.ts +0 -34
  56. package/dist/Page/PageController.d.ts +0 -21
  57. package/dist/Page/index.d.ts +0 -3
  58. package/dist/PageState.d.ts +0 -9
  59. package/dist/ReconnectRefresher.d.ts +0 -24
  60. package/dist/RedoUndo.d.ts +0 -18
  61. package/dist/Register/index.d.ts +0 -28
  62. package/dist/Register/loader.d.ts +0 -4
  63. package/dist/Register/storage.d.ts +0 -8
  64. package/dist/Utils/AppCreateQueue.d.ts +0 -15
  65. package/dist/Utils/Common.d.ts +0 -22
  66. package/dist/Utils/Reactive.d.ts +0 -6
  67. package/dist/Utils/RoomHacker.d.ts +0 -3
  68. package/dist/Utils/error.d.ts +0 -27
  69. package/dist/Utils/log.d.ts +0 -1
  70. package/dist/View/IframeBridge.d.ts +0 -146
  71. package/dist/View/MainView.d.ts +0 -58
  72. package/dist/View/ViewManager.d.ts +0 -13
  73. package/dist/callback.d.ts +0 -38
  74. package/dist/constants.d.ts +0 -48
  75. package/dist/typings.d.ts +0 -84
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netless/window-manager",
3
- "version": "0.4.73-beta.0",
3
+ "version": "0.4.73-beta.1",
4
4
  "description": "Multi-window mode for Netless Whiteboard",
5
5
  "author": "l1shen <lishen1635@gmail.com> (https://github.com/l1shen)",
6
6
  "license": "MIT",
@@ -28,11 +28,11 @@
28
28
  "emittery": "^0.9.2",
29
29
  "lodash": "^4.17.21",
30
30
  "p-retry": "^4.6.1",
31
- "side-effect-manager": "0.1.5",
32
31
  "uuid": "^7.0.3",
33
32
  "video.js": ">=7"
34
33
  },
35
34
  "devDependencies": {
35
+ "@hyrious/dts": "^0.2.2",
36
36
  "@netless/app-docs-viewer": "^0.2.17",
37
37
  "@netless/app-media-player": "0.1.0-beta.6",
38
38
  "@rollup/plugin-commonjs": "^20.0.0",
@@ -59,19 +59,19 @@
59
59
  "prettier-plugin-svelte": "^2.4.0",
60
60
  "rollup-plugin-analyzer": "^4.0.0",
61
61
  "rollup-plugin-styles": "^3.14.1",
62
+ "side-effect-manager": "0.1.5",
62
63
  "svelte": "^3.42.4",
63
64
  "typescript": "^4.5.5",
64
- "vite": "^2.5.3",
65
+ "vite": "^2.9.9",
65
66
  "vitest": "^0.14.1",
66
67
  "white-web-sdk": "2.16.43"
67
68
  },
68
69
  "scripts": {
69
- "build": "vite build && yarn type-gen",
70
- "build:lib:types": "tsc --emitDeclarationOnly",
70
+ "build": "vite build && npm run type-gen",
71
71
  "lint": "eslint --ext .ts,.tsx,.svelte . && prettier --check .",
72
- "predev": "yarn type-gen",
72
+ "predev": "npm run type-gen",
73
73
  "prettier": "prettier --write .",
74
74
  "test": "vitest",
75
- "type-gen": "tsc --emitDeclarationOnly"
75
+ "type-gen": "dts src/index.ts -o dist/index.d.ts"
76
76
  }
77
77
  }
@@ -93,7 +93,7 @@ export class AppContext<TAttributes extends {} = any, TMagixEventPayloads = any,
93
93
  // 渲染需要时间,延迟 refresh
94
94
  this.getRoom()?.refreshViewSize();
95
95
  if (WindowManager.supportTeachingAidsPlugin) {
96
- callbacks.emit("onAppViewMounted", {appId: this.appId, view});
96
+ callbacks.emit("onAppViewMounted", { appId: this.appId, view });
97
97
  }
98
98
  }, 1000);
99
99
  }
@@ -164,7 +164,10 @@ export class AppContext<TAttributes extends {} = any, TMagixEventPayloads = any,
164
164
  * @param defaultState Default state for initial storage creation.
165
165
  * @returns
166
166
  */
167
- public createStorage = <TState extends {}>(storeId: string, defaultState?: TState): Storage<TState> => {
167
+ public createStorage = <TState extends {}>(
168
+ storeId: string,
169
+ defaultState?: TState
170
+ ): Storage<TState> => {
168
171
  const storage = new Storage(this, storeId, defaultState);
169
172
  this.emitter.on("destroy", () => {
170
173
  storage.destroy();
@@ -256,8 +259,8 @@ export class AppContext<TAttributes extends {} = any, TMagixEventPayloads = any,
256
259
  console.warn(`[WindowManager]: page index ${index} out of range`);
257
260
  return false;
258
261
  }
259
- return this.appProxy.removeSceneByIndex(needRemoveIndex);;
260
- }
262
+ return this.appProxy.removeSceneByIndex(needRemoveIndex);
263
+ };
261
264
 
262
265
  public get pageState(): PageState {
263
266
  return this.appProxy.pageState;
@@ -269,6 +272,11 @@ export class AppContext<TAttributes extends {} = any, TMagixEventPayloads = any,
269
272
 
270
273
  /** Dispatch a local event to `manager.onAppEvent()`. */
271
274
  public dispatchAppEvent(type: string, value?: any): void {
272
- internalEmitter.emit(`custom-${this.kind}` as any, { kind: this.kind, appId: this.appId, type, value });
275
+ internalEmitter.emit(`custom-${this.kind}` as any, {
276
+ kind: this.kind,
277
+ appId: this.appId,
278
+ type,
279
+ value,
280
+ });
273
281
  }
274
282
  }
@@ -212,7 +212,7 @@ export class AppProxy implements PageRemoveService {
212
212
  this.store.updateAppState(appId, AppAttributes.ZIndex, this.box.zIndex);
213
213
  this.store.updateAppState(appId, AppAttributes.Size, {
214
214
  width: this.box.intrinsicWidth,
215
- height: this.box.intrinsicHeight
215
+ height: this.box.intrinsicHeight,
216
216
  });
217
217
  this.boxManager.focusBox({ appId }, false);
218
218
  }
@@ -397,7 +397,7 @@ export class AppProxy implements PageRemoveService {
397
397
  if (this.view && fullPath && fullPath !== this.view?.focusScenePath) {
398
398
  setViewFocusScenePath(this.view, fullPath);
399
399
  if (WindowManager.supportTeachingAidsPlugin) {
400
- callbacks.emit("onAppScenePathChange", {appId: this.id, view:this.view});
400
+ callbacks.emit("onAppScenePathChange", { appId: this.id, view: this.view });
401
401
  }
402
402
  }
403
403
  }, 50);
@@ -1,68 +1,68 @@
1
1
  import type {
2
- MagixEventListenerOptions as WhiteMagixListenerOptions,
3
- Event as WhiteEvent,
4
- EventPhase as WhiteEventPhase,
5
- Scope as WhiteScope,
2
+ MagixEventListenerOptions as WhiteMagixListenerOptions,
3
+ Event as WhiteEvent,
4
+ EventPhase as WhiteEventPhase,
5
+ Scope as WhiteScope,
6
6
  } from "white-web-sdk";
7
7
 
8
8
  export interface MagixEventListenerOptions extends WhiteMagixListenerOptions {
9
- /**
10
- * Rapid emitted callbacks will be slowed down to this interval (in ms).
11
- */
12
- fireInterval?: number;
13
- /**
14
- * If `true`, sent events will reach self-listeners after committed to server.
15
- * Otherwise the events will reach self-listeners immediately.
16
- */
17
- fireSelfEventAfterCommit?: boolean;
9
+ /**
10
+ * Rapid emitted callbacks will be slowed down to this interval (in ms).
11
+ */
12
+ fireInterval?: number;
13
+ /**
14
+ * If `true`, sent events will reach self-listeners after committed to server.
15
+ * Otherwise the events will reach self-listeners immediately.
16
+ */
17
+ fireSelfEventAfterCommit?: boolean;
18
18
  }
19
19
 
20
20
  export interface MagixEventMessage<
21
- TPayloads = any,
22
- TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
21
+ TPayloads = any,
22
+ TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
23
23
  > extends Omit<WhiteEvent, "scope" | "phase"> {
24
- /** Event name */
25
- event: TEvent;
26
- /** Event Payload */
27
- payload: TPayloads[TEvent];
28
- /** Whiteboard ID of the client who dispatched the event. It will be AdminObserverId for system events. */
29
- authorId: number;
30
- scope: `${WhiteScope}`;
31
- phase: `${WhiteEventPhase}`;
24
+ /** Event name */
25
+ event: TEvent;
26
+ /** Event Payload */
27
+ payload: TPayloads[TEvent];
28
+ /** Whiteboard ID of the client who dispatched the event. It will be AdminObserverId for system events. */
29
+ authorId: number;
30
+ scope: `${WhiteScope}`;
31
+ phase: `${WhiteEventPhase}`;
32
32
  }
33
33
 
34
34
  export type MagixEventTypes<TPayloads = any> = Extract<keyof TPayloads, string>;
35
35
 
36
36
  export type MagixEventPayload<
37
- TPayloads = any,
38
- TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
37
+ TPayloads = any,
38
+ TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
39
39
  > = TPayloads[TEvent];
40
40
 
41
41
  export type MagixEventDispatcher<TPayloads = any> = <
42
- TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
42
+ TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
43
43
  >(
44
- event: TEvent,
45
- payload: TPayloads[TEvent]
44
+ event: TEvent,
45
+ payload: TPayloads[TEvent]
46
46
  ) => void;
47
47
 
48
48
  export type MagixEventHandler<
49
- TPayloads = any,
50
- TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
49
+ TPayloads = any,
50
+ TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
51
51
  > = (message: MagixEventMessage<TPayloads, TEvent>) => void;
52
52
 
53
- export type MagixEventListenerDisposer = () => void
53
+ export type MagixEventListenerDisposer = () => void;
54
54
 
55
55
  export type MagixEventAddListener<TPayloads = any> = <
56
- TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
56
+ TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
57
57
  >(
58
- event: TEvent,
59
- handler: MagixEventHandler<TPayloads, TEvent>,
60
- options?: MagixEventListenerOptions | undefined
58
+ event: TEvent,
59
+ handler: MagixEventHandler<TPayloads, TEvent>,
60
+ options?: MagixEventListenerOptions | undefined
61
61
  ) => MagixEventListenerDisposer;
62
62
 
63
63
  export type MagixEventRemoveListener<TPayloads = any> = <
64
- TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
64
+ TEvent extends MagixEventTypes<TPayloads> = MagixEventTypes<TPayloads>
65
65
  >(
66
- event: TEvent,
67
- handler?: MagixEventHandler<TPayloads, TEvent>
66
+ event: TEvent,
67
+ handler?: MagixEventHandler<TPayloads, TEvent>
68
68
  ) => void;
@@ -1,21 +1,21 @@
1
1
  export type StorageEventListener<T> = (event: T) => void;
2
2
 
3
3
  export class StorageEvent<TMessage> {
4
- listeners = new Set<StorageEventListener<TMessage>>();
4
+ listeners = new Set<StorageEventListener<TMessage>>();
5
5
 
6
- get length(): number {
7
- return this.listeners.size;
8
- }
6
+ get length(): number {
7
+ return this.listeners.size;
8
+ }
9
9
 
10
- dispatch(message: TMessage): void {
11
- this.listeners.forEach(callback => callback(message));
12
- }
10
+ dispatch(message: TMessage): void {
11
+ this.listeners.forEach(callback => callback(message));
12
+ }
13
13
 
14
- addListener(listener: StorageEventListener<TMessage>): void {
15
- this.listeners.add(listener);
16
- }
14
+ addListener(listener: StorageEventListener<TMessage>): void {
15
+ this.listeners.add(listener);
16
+ }
17
17
 
18
- removeListener(listener: StorageEventListener<TMessage>): void {
19
- this.listeners.delete(listener);
20
- }
18
+ removeListener(listener: StorageEventListener<TMessage>): void {
19
+ this.listeners.delete(listener);
20
+ }
21
21
  }