@netless/window-manager 1.0.0-canary.77 → 1.0.0-canary.78

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.js CHANGED
@@ -619,9 +619,14 @@ class AppListeners {
619
619
  this.moveCameraHandler = (payload) => {
620
620
  const size$ = this.manager.mainViewProxy.size$;
621
621
  if (size$.value) {
622
- const size = this.manager.mainView.size;
623
- const diff = Math.max(size.height / size$.value.height, size.width / size$.value.width);
624
- const nextCamera = { ...payload, scale: payload.scale * diff };
622
+ const nextCamera = { ...payload };
623
+ if (nextCamera.scale) {
624
+ const size = this.manager.mainView.size;
625
+ const diff = Math.max(size.height / size$.value.height, size.width / size$.value.width);
626
+ nextCamera.scale *= diff;
627
+ } else {
628
+ delete nextCamera.scale;
629
+ }
625
630
  this.manager.mainView.moveCamera(nextCamera);
626
631
  }
627
632
  };
@@ -6096,6 +6101,9 @@ class BoxManager {
6096
6101
  const { emitter: emitter2, callbacks: callbacks2, boxEmitter: boxEmitter2 } = context;
6097
6102
  this.teleBoxManager = this.setupBoxManager(createTeleBoxManagerConfig);
6098
6103
  this.sideEffectManager.add(() => [
6104
+ this.teleBoxManager.onValChanged("rootRect", (rect) => {
6105
+ emitter2.emit("playgroundSizeChange", rect);
6106
+ }),
6099
6107
  // 使用 _xxx$.reaction 订阅修改的值, 不管有没有 skipUpdate, 修改值都会触发回调
6100
6108
  this.teleBoxManager.onValChanged("state", (state) => {
6101
6109
  callbacks2.emit("boxStateChange", state);
@@ -12643,7 +12651,7 @@ const reconnectRefresher = new ReconnectRefresher({ emitter });
12643
12651
  const _WindowManager = class extends whiteWebSdk.InvisiblePlugin {
12644
12652
  constructor(context) {
12645
12653
  super(context);
12646
- this.version = "1.0.0-canary.77";
12654
+ this.version = "1.0.0-canary.78";
12647
12655
  this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.4.0", "@netless/synced-store": "^2.0.7", "@netless/telebox-insider": "1.0.0-alpha.37", "emittery": "^0.11.0", "jspdf": "^2.5.1", "lodash": "^4.17.21", "p-retry": "^5.1.2", "side-effect-manager": "^1.2.1", "uuid": "^9.0.0", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "1.0.0-canary.6", "@netless/app-plyr": "^0.2.4", "@playwright/test": "^1.33.0", "@rollup/plugin-commonjs": "^24.1.0", "@rollup/plugin-node-resolve": "^15.0.2", "@rollup/plugin-url": "^8.0.1", "@sveltejs/vite-plugin-svelte": "^2.2.0", "@tsconfig/svelte": "^4.0.1", "@types/debug": "^4.1.7", "@types/node": "^18.0.3", "@types/lodash": "^4.14.194", "@types/lodash-es": "^4.17.7", "@types/uuid": "^9.0.1", "@typescript-eslint/eslint-plugin": "^5.59.5", "@typescript-eslint/parser": "^5.59.5", "@vitest/ui": "^0.31.0", "cypress": "^12.12.0", "dotenv": "^16.0.3", "eslint": "^8.40.0", "eslint-config-prettier": "^8.8.0", "eslint-plugin-svelte3": "^4.0.0", "jsdom": "^22.0.0", "less": "^4.1.3", "prettier": "^2.8.8", "prettier-plugin-svelte": "^2.10.0", "rollup-plugin-analyzer": "^4.0.0", "rollup-plugin-styles": "^4.0.0", "svelte": "^3.59.1", "typescript": "^5.0.4", "vite": "^4.3.5", "vite-plugin-dts": "^2.3.0", "vitest": "^0.31.0", "white-web-sdk": "^2.16.42" } };
12648
12656
  this.emitter = callbacks;
12649
12657
  this.viewMode$ = new valueEnhancer.Val(whiteWebSdk.ViewMode.Broadcaster);
package/dist/index.mjs CHANGED
@@ -595,9 +595,14 @@ class AppListeners {
595
595
  this.moveCameraHandler = (payload) => {
596
596
  const size$ = this.manager.mainViewProxy.size$;
597
597
  if (size$.value) {
598
- const size = this.manager.mainView.size;
599
- const diff = Math.max(size.height / size$.value.height, size.width / size$.value.width);
600
- const nextCamera = { ...payload, scale: payload.scale * diff };
598
+ const nextCamera = { ...payload };
599
+ if (nextCamera.scale) {
600
+ const size = this.manager.mainView.size;
601
+ const diff = Math.max(size.height / size$.value.height, size.width / size$.value.width);
602
+ nextCamera.scale *= diff;
603
+ } else {
604
+ delete nextCamera.scale;
605
+ }
601
606
  this.manager.mainView.moveCamera(nextCamera);
602
607
  }
603
608
  };
@@ -6072,6 +6077,9 @@ class BoxManager {
6072
6077
  const { emitter: emitter2, callbacks: callbacks2, boxEmitter: boxEmitter2 } = context;
6073
6078
  this.teleBoxManager = this.setupBoxManager(createTeleBoxManagerConfig);
6074
6079
  this.sideEffectManager.add(() => [
6080
+ this.teleBoxManager.onValChanged("rootRect", (rect) => {
6081
+ emitter2.emit("playgroundSizeChange", rect);
6082
+ }),
6075
6083
  // 使用 _xxx$.reaction 订阅修改的值, 不管有没有 skipUpdate, 修改值都会触发回调
6076
6084
  this.teleBoxManager.onValChanged("state", (state) => {
6077
6085
  callbacks2.emit("boxStateChange", state);
@@ -12619,7 +12627,7 @@ const reconnectRefresher = new ReconnectRefresher({ emitter });
12619
12627
  const _WindowManager = class extends InvisiblePlugin {
12620
12628
  constructor(context) {
12621
12629
  super(context);
12622
- this.version = "1.0.0-canary.77";
12630
+ this.version = "1.0.0-canary.78";
12623
12631
  this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.4.0", "@netless/synced-store": "^2.0.7", "@netless/telebox-insider": "1.0.0-alpha.37", "emittery": "^0.11.0", "jspdf": "^2.5.1", "lodash": "^4.17.21", "p-retry": "^5.1.2", "side-effect-manager": "^1.2.1", "uuid": "^9.0.0", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "1.0.0-canary.6", "@netless/app-plyr": "^0.2.4", "@playwright/test": "^1.33.0", "@rollup/plugin-commonjs": "^24.1.0", "@rollup/plugin-node-resolve": "^15.0.2", "@rollup/plugin-url": "^8.0.1", "@sveltejs/vite-plugin-svelte": "^2.2.0", "@tsconfig/svelte": "^4.0.1", "@types/debug": "^4.1.7", "@types/node": "^18.0.3", "@types/lodash": "^4.14.194", "@types/lodash-es": "^4.17.7", "@types/uuid": "^9.0.1", "@typescript-eslint/eslint-plugin": "^5.59.5", "@typescript-eslint/parser": "^5.59.5", "@vitest/ui": "^0.31.0", "cypress": "^12.12.0", "dotenv": "^16.0.3", "eslint": "^8.40.0", "eslint-config-prettier": "^8.8.0", "eslint-plugin-svelte3": "^4.0.0", "jsdom": "^22.0.0", "less": "^4.1.3", "prettier": "^2.8.8", "prettier-plugin-svelte": "^2.10.0", "rollup-plugin-analyzer": "^4.0.0", "rollup-plugin-styles": "^4.0.0", "svelte": "^3.59.1", "typescript": "^5.0.4", "vite": "^4.3.5", "vite-plugin-dts": "^2.3.0", "vitest": "^0.31.0", "white-web-sdk": "^2.16.42" } };
12624
12632
  this.emitter = callbacks;
12625
12633
  this.viewMode$ = new Val(ViewMode.Broadcaster);
package/dist/index.umd.js CHANGED
@@ -590,9 +590,14 @@
590
590
  this.moveCameraHandler = (payload) => {
591
591
  const size$ = this.manager.mainViewProxy.size$;
592
592
  if (size$.value) {
593
- const size = this.manager.mainView.size;
594
- const diff = Math.max(size.height / size$.value.height, size.width / size$.value.width);
595
- const nextCamera = { ...payload, scale: payload.scale * diff };
593
+ const nextCamera = { ...payload };
594
+ if (nextCamera.scale) {
595
+ const size = this.manager.mainView.size;
596
+ const diff = Math.max(size.height / size$.value.height, size.width / size$.value.width);
597
+ nextCamera.scale *= diff;
598
+ } else {
599
+ delete nextCamera.scale;
600
+ }
596
601
  this.manager.mainView.moveCamera(nextCamera);
597
602
  }
598
603
  };
@@ -6067,6 +6072,9 @@
6067
6072
  const { emitter: emitter2, callbacks: callbacks2, boxEmitter: boxEmitter2 } = context;
6068
6073
  this.teleBoxManager = this.setupBoxManager(createTeleBoxManagerConfig);
6069
6074
  this.sideEffectManager.add(() => [
6075
+ this.teleBoxManager.onValChanged("rootRect", (rect) => {
6076
+ emitter2.emit("playgroundSizeChange", rect);
6077
+ }),
6070
6078
  // 使用 _xxx$.reaction 订阅修改的值, 不管有没有 skipUpdate, 修改值都会触发回调
6071
6079
  this.teleBoxManager.onValChanged("state", (state) => {
6072
6080
  callbacks2.emit("boxStateChange", state);
@@ -12614,7 +12622,7 @@
12614
12622
  const _WindowManager = class extends whiteWebSdk.InvisiblePlugin {
12615
12623
  constructor(context) {
12616
12624
  super(context);
12617
- this.version = "1.0.0-canary.77";
12625
+ this.version = "1.0.0-canary.78";
12618
12626
  this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.4.0", "@netless/synced-store": "^2.0.7", "@netless/telebox-insider": "1.0.0-alpha.37", "emittery": "^0.11.0", "jspdf": "^2.5.1", "lodash": "^4.17.21", "p-retry": "^5.1.2", "side-effect-manager": "^1.2.1", "uuid": "^9.0.0", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "1.0.0-canary.6", "@netless/app-plyr": "^0.2.4", "@playwright/test": "^1.33.0", "@rollup/plugin-commonjs": "^24.1.0", "@rollup/plugin-node-resolve": "^15.0.2", "@rollup/plugin-url": "^8.0.1", "@sveltejs/vite-plugin-svelte": "^2.2.0", "@tsconfig/svelte": "^4.0.1", "@types/debug": "^4.1.7", "@types/node": "^18.0.3", "@types/lodash": "^4.14.194", "@types/lodash-es": "^4.17.7", "@types/uuid": "^9.0.1", "@typescript-eslint/eslint-plugin": "^5.59.5", "@typescript-eslint/parser": "^5.59.5", "@vitest/ui": "^0.31.0", "cypress": "^12.12.0", "dotenv": "^16.0.3", "eslint": "^8.40.0", "eslint-config-prettier": "^8.8.0", "eslint-plugin-svelte3": "^4.0.0", "jsdom": "^22.0.0", "less": "^4.1.3", "prettier": "^2.8.8", "prettier-plugin-svelte": "^2.10.0", "rollup-plugin-analyzer": "^4.0.0", "rollup-plugin-styles": "^4.0.0", "svelte": "^3.59.1", "typescript": "^5.0.4", "vite": "^4.3.5", "vite-plugin-dts": "^2.3.0", "vitest": "^0.31.0", "white-web-sdk": "^2.16.42" } };
12619
12627
  this.emitter = callbacks;
12620
12628
  this.viewMode$ = new valueEnhancer.Val(whiteWebSdk.ViewMode.Broadcaster);
package/package.json CHANGED
@@ -1,11 +1,22 @@
1
1
  {
2
2
  "name": "@netless/window-manager",
3
- "version": "1.0.0-canary.77",
3
+ "version": "1.0.0-canary.78",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
7
7
  "types": "dist/index.d.ts",
8
8
  "repository": "netless-io/window-manager",
9
+ "scripts": {
10
+ "prettier": "prettier --write .",
11
+ "dev": "vite build --watch",
12
+ "build": "vite build",
13
+ "type-gen": "tsc --emitDeclarationOnly",
14
+ "predev": "yarn type-gen",
15
+ "build:lib:types": "tsc --emitDeclarationOnly",
16
+ "lint": "eslint --ext .ts,.tsx,.svelte . && prettier --check .",
17
+ "test": "vitest",
18
+ "e2e": "playwright test"
19
+ },
9
20
  "keywords": [],
10
21
  "author": "",
11
22
  "license": "ISC",
@@ -58,16 +69,5 @@
58
69
  "vite-plugin-dts": "^2.3.0",
59
70
  "vitest": "^0.31.0",
60
71
  "white-web-sdk": "^2.16.42"
61
- },
62
- "scripts": {
63
- "prettier": "prettier --write .",
64
- "dev": "vite build --watch",
65
- "build": "vite build",
66
- "type-gen": "tsc --emitDeclarationOnly",
67
- "predev": "yarn type-gen",
68
- "build:lib:types": "tsc --emitDeclarationOnly",
69
- "lint": "eslint --ext .ts,.tsx,.svelte . && prettier --check .",
70
- "test": "vitest",
71
- "e2e": "playwright test"
72
72
  }
73
- }
73
+ }
@@ -134,12 +134,24 @@ export class AppListeners {
134
134
  }
135
135
  }
136
136
 
137
- private moveCameraHandler = (payload: Camera) => {
137
+ private moveCameraHandler = (payload: Partial<Camera>) => {
138
138
  const size$ = this.manager.mainViewProxy.size$;
139
+ // 'size' 存在表示白板已经可见,此时 moveCamera 才有意义
139
140
  if (size$.value) {
140
- const size = this.manager.mainView.size;
141
- const diff = Math.max(size.height / size$.value.height, size.width / size$.value.width);
142
- const nextCamera = { ...payload, scale: payload.scale * diff };
141
+ const nextCamera = { ...payload };
142
+
143
+ // 如果远端移动视角带有缩放,调整以符合本地视角
144
+ if (nextCamera.scale) {
145
+ const size = this.manager.mainView.size;
146
+ const diff = Math.max(size.height / size$.value.height, size.width / size$.value.width);
147
+ nextCamera.scale *= diff;
148
+ }
149
+
150
+ // 有可能传了个 scale = 0, 规避这些无效值
151
+ else {
152
+ delete nextCamera.scale;
153
+ }
154
+
143
155
  this.manager.mainView.moveCamera(nextCamera);
144
156
  }
145
157
  }
package/src/BoxManager.ts CHANGED
@@ -108,6 +108,9 @@ export class BoxManager {
108
108
  const { emitter, callbacks, boxEmitter } = context;
109
109
  this.teleBoxManager = this.setupBoxManager(createTeleBoxManagerConfig);
110
110
  this.sideEffectManager.add(() => [
111
+ this.teleBoxManager.onValChanged("rootRect", rect => {
112
+ emitter.emit("playgroundSizeChange", rect);
113
+ }),
111
114
  // 使用 _xxx$.reaction 订阅修改的值, 不管有没有 skipUpdate, 修改值都会触发回调
112
115
  this.teleBoxManager.onValChanged("state", state => {
113
116
  callbacks.emit("boxStateChange", state);