@netless/window-manager 1.0.0-canary.24 → 1.0.0-canary.25

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/dist/index.es.js CHANGED
@@ -972,6 +972,11 @@ class WhiteBoardView {
972
972
  this.appProxy.updateSize(rect.width, rect.height);
973
973
  }
974
974
  }
975
+ const log = (...args) => {
976
+ if (WindowManager.debug) {
977
+ console.log(`[WindowManager]:`, ...args);
978
+ }
979
+ };
975
980
  const setupWrapper = (root) => {
976
981
  const playground = document.createElement("div");
977
982
  playground.className = "netless-window-manager-playground";
@@ -1002,6 +1007,19 @@ const serializeRoomMembers = (members) => {
1002
1007
  }, member);
1003
1008
  });
1004
1009
  };
1010
+ const createInvisiblePlugin = async (room) => {
1011
+ try {
1012
+ const manager = await room.createInvisiblePlugin(WindowManager, {});
1013
+ return manager;
1014
+ } catch (error) {
1015
+ if (error.message === `invisible plugin "WindowManager" exits`) {
1016
+ await wait(200);
1017
+ return room.getInvisiblePlugin(WindowManager.kind);
1018
+ } else {
1019
+ log("createInvisiblePlugin failed", error);
1020
+ }
1021
+ }
1022
+ };
1005
1023
  class AppContext {
1006
1024
  constructor(manager, appId, appProxy, appOptions) {
1007
1025
  this.manager = manager;
@@ -1056,11 +1074,19 @@ class AppContext {
1056
1074
  this.ensurePageSize(params == null ? void 0 : params.size);
1057
1075
  }
1058
1076
  this.whiteBoardView = new WhiteBoardView(view, this, this.appProxy, this.ensurePageSize);
1059
- this.appProxy.sideEffectManager.add(() => {
1060
- return () => {
1061
- this.whiteBoardView = void 0;
1062
- };
1063
- });
1077
+ this.appProxy.sideEffectManager.add(() => [
1078
+ this.box._contentStageRect$.subscribe((rect) => {
1079
+ viewWrapper.style.left = `${rect.x}px`;
1080
+ viewWrapper.style.top = `${rect.y}px`;
1081
+ viewWrapper.style.width = `${rect.width}px`;
1082
+ viewWrapper.style.height = `${rect.height}px`;
1083
+ }),
1084
+ () => {
1085
+ return () => {
1086
+ this.whiteBoardView = void 0;
1087
+ };
1088
+ }
1089
+ ]);
1064
1090
  this.appProxy.whiteBoardViewCreated$.setValue(true);
1065
1091
  return this.whiteBoardView;
1066
1092
  };
@@ -1147,7 +1173,7 @@ class AppContext {
1147
1173
  get members() {
1148
1174
  return this.manager.members;
1149
1175
  }
1150
- get memberState() {
1176
+ get currentMember() {
1151
1177
  const self2 = findMemberByUid(this.room, this.manager.uid);
1152
1178
  if (!self2) {
1153
1179
  throw new Error(`Member ${this.manager.uid} not found.`);
@@ -1537,11 +1563,6 @@ const store = new AttributesDelegate({
1537
1563
  throw new Error("safeUpdateAttributes not implemented");
1538
1564
  }
1539
1565
  });
1540
- const log = (...args) => {
1541
- if (WindowManager.debug) {
1542
- console.log(`[WindowManager]:`, ...args);
1543
- }
1544
- };
1545
1566
  class AppProxy {
1546
1567
  constructor(params, manager, appId, isAddApp) {
1547
1568
  var _a;
@@ -4752,6 +4773,15 @@ const createBoxManager = (manager, callbacks2, emitter2, boxEmitter2, options) =
4752
4773
  class BoxManager {
4753
4774
  constructor(context, createTeleBoxManagerConfig) {
4754
4775
  this.context = context;
4776
+ this.mainViewElement$ = new Val(void 0);
4777
+ this.updateStyle = (element2, rect) => {
4778
+ if (!element2)
4779
+ return;
4780
+ element2.style.width = rect.width + "px";
4781
+ element2.style.height = rect.height + "px";
4782
+ element2.style.left = rect.x + "px";
4783
+ element2.style.top = rect.y + "px";
4784
+ };
4755
4785
  this.sideEffectManager = new SideEffectManager();
4756
4786
  const { emitter: emitter2, callbacks: callbacks2, boxEmitter: boxEmitter2 } = context;
4757
4787
  this.teleBoxManager = this.setupBoxManager(createTeleBoxManagerConfig);
@@ -4820,6 +4850,7 @@ class BoxManager {
4820
4850
  this.context.updateAppState(box.id, AppAttributes.ZIndex, box.zIndex);
4821
4851
  }),
4822
4852
  this.teleBoxManager._stageRect$.subscribe((stage) => {
4853
+ this.updateStyle(this.mainViewElement$.value, stage);
4823
4854
  emitter2.emit("playgroundSizeChange", stage);
4824
4855
  this.context.notifyContainerRectUpdate(stage);
4825
4856
  }),
@@ -5628,11 +5659,14 @@ class Cursor {
5628
5659
  let translateX = point.x - 2;
5629
5660
  let translateY = point.y - 18;
5630
5661
  if (type === "app") {
5631
- const wrapperRect = this.cursorManager.wrapperRect;
5662
+ const wrapperRect = this.cursorManager.playgroundRect;
5632
5663
  if (wrapperRect) {
5633
5664
  translateX = translateX + rect.x - wrapperRect.x;
5634
5665
  translateY = translateY + rect.y - wrapperRect.y;
5635
5666
  }
5667
+ } else {
5668
+ translateX = translateX + rect.x;
5669
+ translateY = translateY + rect.y;
5636
5670
  }
5637
5671
  if (point.x < 0 || point.x > rect.width || point.y < 0 || point.y > rect.height) {
5638
5672
  (_a = this.component) == null ? void 0 : _a.$set({ visible: false, x: translateX, y: translateY });
@@ -5863,7 +5897,6 @@ class CursorManager {
5863
5897
  wrapper.removeEventListener("pointerleave", this.mouseLeaveListener);
5864
5898
  };
5865
5899
  });
5866
- this.wrapperRect = wrapper.getBoundingClientRect();
5867
5900
  }
5868
5901
  setMainViewDivElement(div) {
5869
5902
  this.mainViewElement = div;
@@ -5892,8 +5925,9 @@ class CursorManager {
5892
5925
  }
5893
5926
  }
5894
5927
  updateContainerRect() {
5895
- var _a;
5896
- this.wrapperRect = (_a = WindowManager.playground) == null ? void 0 : _a.getBoundingClientRect();
5928
+ var _a, _b;
5929
+ this.wrapperRect = (_a = this.manager.boxManager) == null ? void 0 : _a.teleBoxManager.stageRect;
5930
+ this.playgroundRect = (_b = WindowManager.playground) == null ? void 0 : _b.getBoundingClientRect();
5897
5931
  }
5898
5932
  deleteCursor(uid) {
5899
5933
  this.store.cleanCursor(uid);
@@ -15639,15 +15673,15 @@ const reconnectRefresher = new ReconnectRefresher({ emitter });
15639
15673
  const _WindowManager = class extends InvisiblePlugin {
15640
15674
  constructor(context) {
15641
15675
  super(context);
15642
- this.version = "1.0.0-canary.24";
15643
- this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.18", "emittery": "^0.9.2", "lodash": "^4.17.21", "p-retry": "^4.6.1", "side-effect-manager": "^1.1.0", "uuid": "^7.0.3", "value-enhancer": "^1.3.0", "video.js": ">=7" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.2.9", "@netless/app-media-player": "0.1.0-beta.5", "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-node-resolve": "^13.0.4", "@rollup/plugin-url": "^6.1.0", "@sveltejs/vite-plugin-svelte": "^1.0.0-next.22", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.4", "@types/uuid": "^8.3.1", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.1", "cypress": "^8.7.0", "dotenv": "^10.0.0", "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-svelte3": "^3.2.0", "jsdom": "^19.0.0", "less": "^4.1.1", "prettier": "^2.3.2", "prettier-plugin-svelte": "^2.4.0", "rollup-plugin-analyzer": "^4.0.0", "rollup-plugin-styles": "^3.14.1", "svelte": "^3.42.4", "typescript": "^4.5.5", "vite": "^2.5.3", "vitest": "^0.14.1", "white-web-sdk": "2.16.10" } };
15676
+ this.version = "1.0.0-canary.25";
15677
+ this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.18", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.1", "side-effect-manager": "^1.1.0", "uuid": "^7.0.3", "value-enhancer": "^1.3.0", "video.js": ">=7" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.2.9", "@netless/app-media-player": "0.1.0-beta.5", "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-node-resolve": "^13.0.4", "@rollup/plugin-url": "^6.1.0", "@sveltejs/vite-plugin-svelte": "^1.0.0-next.22", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.4", "@types/uuid": "^8.3.1", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.1", "cypress": "^8.7.0", "dotenv": "^10.0.0", "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-svelte3": "^3.2.0", "jsdom": "^19.0.0", "less": "^4.1.1", "prettier": "^2.3.2", "prettier-plugin-svelte": "^2.4.0", "rollup-plugin-analyzer": "^4.0.0", "rollup-plugin-styles": "^3.14.1", "svelte": "^3.42.4", "typescript": "^4.5.5", "vite": "^2.5.3", "vitest": "^0.14.1", "white-web-sdk": "2.16.10" } };
15644
15678
  this.emitter = callbacks$1;
15645
15679
  this.viewMode = ViewMode.Broadcaster;
15646
15680
  this.viewMode$ = new Val(ViewMode.Broadcaster);
15647
15681
  this.isReplay = isPlayer(this.displayer);
15648
15682
  this.containerSizeRatio = _WindowManager.containerSizeRatio;
15649
15683
  _WindowManager.displayer = context.displayer;
15650
- window.NETLESS_DEPS = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.18", "emittery": "^0.9.2", "lodash": "^4.17.21", "p-retry": "^4.6.1", "side-effect-manager": "^1.1.0", "uuid": "^7.0.3", "value-enhancer": "^1.3.0", "video.js": ">=7" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.2.9", "@netless/app-media-player": "0.1.0-beta.5", "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-node-resolve": "^13.0.4", "@rollup/plugin-url": "^6.1.0", "@sveltejs/vite-plugin-svelte": "^1.0.0-next.22", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.4", "@types/uuid": "^8.3.1", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.1", "cypress": "^8.7.0", "dotenv": "^10.0.0", "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-svelte3": "^3.2.0", "jsdom": "^19.0.0", "less": "^4.1.1", "prettier": "^2.3.2", "prettier-plugin-svelte": "^2.4.0", "rollup-plugin-analyzer": "^4.0.0", "rollup-plugin-styles": "^3.14.1", "svelte": "^3.42.4", "typescript": "^4.5.5", "vite": "^2.5.3", "vitest": "^0.14.1", "white-web-sdk": "2.16.10" } };
15684
+ window.NETLESS_DEPS = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.18", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.1", "side-effect-manager": "^1.1.0", "uuid": "^7.0.3", "value-enhancer": "^1.3.0", "video.js": ">=7" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.2.9", "@netless/app-media-player": "0.1.0-beta.5", "@rollup/plugin-commonjs": "^20.0.0", "@rollup/plugin-node-resolve": "^13.0.4", "@rollup/plugin-url": "^6.1.0", "@sveltejs/vite-plugin-svelte": "^1.0.0-next.22", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.4", "@types/uuid": "^8.3.1", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.1", "cypress": "^8.7.0", "dotenv": "^10.0.0", "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-svelte3": "^3.2.0", "jsdom": "^19.0.0", "less": "^4.1.1", "prettier": "^2.3.2", "prettier-plugin-svelte": "^2.4.0", "rollup-plugin-analyzer": "^4.0.0", "rollup-plugin-styles": "^3.14.1", "svelte": "^3.42.4", "typescript": "^4.5.5", "vite": "^2.5.3", "vitest": "^0.14.1", "white-web-sdk": "2.16.10" } };
15651
15685
  }
15652
15686
  static async mount(params) {
15653
15687
  var _a;
@@ -15729,12 +15763,12 @@ const _WindowManager = class extends InvisiblePlugin {
15729
15763
  } catch (error) {
15730
15764
  throw new Error("[WindowManger]: room must be switched to be writable");
15731
15765
  }
15732
- manager = await room.createInvisiblePlugin(_WindowManager, {});
15733
- manager.ensureAttributes();
15766
+ manager = await createInvisiblePlugin(room);
15767
+ manager == null ? void 0 : manager.ensureAttributes();
15734
15768
  await wait(500);
15735
15769
  await room.setWritable(false);
15736
15770
  } else {
15737
- manager = await room.createInvisiblePlugin(_WindowManager, {});
15771
+ manager = await createInvisiblePlugin(room);
15738
15772
  }
15739
15773
  }
15740
15774
  }
@@ -15771,6 +15805,7 @@ const _WindowManager = class extends InvisiblePlugin {
15771
15805
  const mainViewElement = _WindowManager.initContainer(container, params.overwriteStyles);
15772
15806
  if (this.boxManager && _WindowManager.playground) {
15773
15807
  this.boxManager.setRoot(_WindowManager.playground);
15808
+ this.boxManager.mainViewElement$.setValue(mainViewElement);
15774
15809
  }
15775
15810
  this.bindMainView(mainViewElement, params.disableCameraTransform);
15776
15811
  if (_WindowManager.playground) {