@netless/window-manager 1.0.0-canary.45 → 1.0.0-canary.46

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.cjs.js CHANGED
@@ -1354,6 +1354,54 @@ class ViewSync {
1354
1354
  constructor(context) {
1355
1355
  this.context = context;
1356
1356
  this.sem = new sideEffectManager.SideEffectManager();
1357
+ this.createSynchronizer = () => {
1358
+ return new CameraSynchronizer((camera) => {
1359
+ this.context.camera$.setValue(camera, true);
1360
+ const notStoreCamera = this.context.viewMode$ && this.context.viewMode$.value === whiteWebSdk.ViewMode.Freedom;
1361
+ if (notStoreCamera) {
1362
+ return;
1363
+ } else {
1364
+ this.context.storeCamera(camera);
1365
+ }
1366
+ });
1367
+ };
1368
+ this.subscribeView = () => {
1369
+ return this.context.view$.subscribe((view) => {
1370
+ const currentCamera = this.context.camera$.value;
1371
+ if (currentCamera && this.context.size$.value) {
1372
+ view == null ? void 0 : view.moveCamera({
1373
+ scale: 1,
1374
+ animationMode: whiteWebSdk.AnimationMode.Immediately
1375
+ });
1376
+ this.synchronizer.onRemoteUpdate(currentCamera, this.context.size$.value);
1377
+ }
1378
+ this.bindView(view);
1379
+ });
1380
+ };
1381
+ this.subscribeCamera = () => {
1382
+ return this.context.camera$.subscribe((camera, skipUpdate) => {
1383
+ if (skipUpdate)
1384
+ return;
1385
+ const size = this.context.size$.value;
1386
+ if (camera && size) {
1387
+ this.synchronizer.onRemoteUpdate(camera, size);
1388
+ }
1389
+ });
1390
+ };
1391
+ this.subscribeSize = () => {
1392
+ return this.context.size$.subscribe((size) => {
1393
+ if (size) {
1394
+ this.synchronizer.onRemoteSizeUpdate(size);
1395
+ }
1396
+ });
1397
+ };
1398
+ this.subscribeStageRect = () => {
1399
+ return this.context.stageRect$.subscribe((rect) => {
1400
+ if (rect) {
1401
+ this.synchronizer.setRect(rect);
1402
+ }
1403
+ });
1404
+ };
1357
1405
  this.bindView = (view) => {
1358
1406
  if (!view)
1359
1407
  return;
@@ -1373,44 +1421,13 @@ class ViewSync {
1373
1421
  this.synchronizer.onLocalCameraUpdate(__spreadProps(__spreadValues({}, camera), { scale: remoteScale, id: this.context.uid }));
1374
1422
  }
1375
1423
  };
1376
- this.synchronizer = new CameraSynchronizer((camera) => {
1377
- this.context.camera$.setValue(camera, true);
1378
- const notStoreCamera = this.context.viewMode$ && this.context.viewMode$.value === whiteWebSdk.ViewMode.Freedom;
1379
- if (notStoreCamera) {
1380
- return;
1381
- } else {
1382
- this.context.storeCamera(camera);
1383
- }
1384
- });
1424
+ this.synchronizer = this.createSynchronizer();
1385
1425
  this.bindView(this.context.view$.value);
1386
1426
  this.sem.add(() => [
1387
- this.context.view$.subscribe((view) => {
1388
- const currentCamera = this.context.camera$.value;
1389
- if (currentCamera && this.context.size$.value) {
1390
- view == null ? void 0 : view.moveCamera({
1391
- scale: 1,
1392
- animationMode: whiteWebSdk.AnimationMode.Immediately
1393
- });
1394
- this.synchronizer.onRemoteUpdate(currentCamera, this.context.size$.value);
1395
- }
1396
- this.bindView(view);
1397
- }),
1398
- this.context.camera$.subscribe((camera, skipUpdate) => {
1399
- const size = this.context.size$.value;
1400
- if (camera && size && !skipUpdate) {
1401
- this.synchronizer.onRemoteUpdate(camera, size);
1402
- }
1403
- }),
1404
- this.context.size$.subscribe((size) => {
1405
- if (size) {
1406
- this.synchronizer.onRemoteSizeUpdate(size);
1407
- }
1408
- }),
1409
- this.context.stageRect$.subscribe((rect) => {
1410
- if (rect) {
1411
- this.synchronizer.setRect(rect);
1412
- }
1413
- })
1427
+ this.subscribeView(),
1428
+ this.subscribeCamera(),
1429
+ this.subscribeSize(),
1430
+ this.subscribeStageRect()
1414
1431
  ]);
1415
1432
  const camera$size$ = valueEnhancer.combine([this.context.camera$, this.context.size$]);
1416
1433
  camera$size$.reaction(([camera, size]) => {
@@ -5255,8 +5272,13 @@ class TeleBoxManager {
5255
5272
  const handler = (evt) => {
5256
5273
  prefersDark$.setValue(evt.matches);
5257
5274
  };
5258
- prefersDarkMatch.addEventListener("change", handler);
5259
- return () => prefersDarkMatch.removeEventListener("change", handler);
5275
+ if (prefersDarkMatch.addEventListener) {
5276
+ prefersDarkMatch.addEventListener("change", handler);
5277
+ return () => prefersDarkMatch.removeEventListener("change", handler);
5278
+ } else {
5279
+ prefersDarkMatch.addListener(handler);
5280
+ return () => prefersDarkMatch.removeListener(handler);
5281
+ }
5260
5282
  });
5261
5283
  }
5262
5284
  const prefersColorScheme$ = new valueEnhancer.Val(prefersColorScheme);
@@ -12099,8 +12121,8 @@ const reconnectRefresher = new ReconnectRefresher({ emitter });
12099
12121
  const _WindowManager = class extends whiteWebSdk.InvisiblePlugin {
12100
12122
  constructor(context) {
12101
12123
  super(context);
12102
- this.version = "1.0.0-canary.45";
12103
- this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.35", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.2", "side-effect-manager": "^1.1.1", "uuid": "^7.0.3", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.3.2", "@netless/app-plyr": "0.2.0", "@playwright/test": "^1.23.2", "@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.49", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", "@types/node": "^18.0.3", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.2", "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.3", "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", "vite-plugin-dts": "^1.2.1", "vitest": "^0.18.0", "white-web-sdk": "2.16.26" } };
12124
+ this.version = "1.0.0-canary.46";
12125
+ this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.36", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.2", "side-effect-manager": "^1.1.1", "uuid": "^7.0.3", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.3.2", "@netless/app-plyr": "0.2.0", "@playwright/test": "^1.23.2", "@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.49", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", "@types/node": "^18.0.3", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.2", "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.3", "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", "vite-plugin-dts": "^1.2.1", "vitest": "^0.18.0", "white-web-sdk": "2.16.26" } };
12104
12126
  this.emitter = callbacks;
12105
12127
  this.viewMode = whiteWebSdk.ViewMode.Broadcaster;
12106
12128
  this.viewMode$ = new valueEnhancer.Val(whiteWebSdk.ViewMode.Broadcaster);
@@ -12139,7 +12161,9 @@ const _WindowManager = class extends whiteWebSdk.InvisiblePlugin {
12139
12161
  clearTimeout(this.cameraUpdating);
12140
12162
  this.cameraUpdating = 0;
12141
12163
  this.mainView.callbacks.on("onCameraUpdated", this.onCameraUpdated);
12142
- this.nextCamera = nextCamera;
12164
+ if (nextScale) {
12165
+ this.nextCamera = __spreadProps(__spreadValues({}, nextCamera), { scale: nextScale });
12166
+ }
12143
12167
  }
12144
12168
  };
12145
12169
  this.onCameraUpdated = () => {
@@ -12160,7 +12184,7 @@ const _WindowManager = class extends whiteWebSdk.InvisiblePlugin {
12160
12184
  }, 50);
12161
12185
  };
12162
12186
  _WindowManager.displayer = context.displayer;
12163
- window.NETLESS_DEPS = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.35", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.2", "side-effect-manager": "^1.1.1", "uuid": "^7.0.3", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.3.2", "@netless/app-plyr": "0.2.0", "@playwright/test": "^1.23.2", "@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.49", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", "@types/node": "^18.0.3", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.2", "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.3", "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", "vite-plugin-dts": "^1.2.1", "vitest": "^0.18.0", "white-web-sdk": "2.16.26" } };
12187
+ window.NETLESS_DEPS = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.36", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.2", "side-effect-manager": "^1.1.1", "uuid": "^7.0.3", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.3.2", "@netless/app-plyr": "0.2.0", "@playwright/test": "^1.23.2", "@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.49", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", "@types/node": "^18.0.3", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.2", "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.3", "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", "vite-plugin-dts": "^1.2.1", "vitest": "^0.18.0", "white-web-sdk": "2.16.26" } };
12164
12188
  }
12165
12189
  static async mount(params) {
12166
12190
  var _a;
package/dist/index.es.js CHANGED
@@ -1347,6 +1347,54 @@ class ViewSync {
1347
1347
  constructor(context) {
1348
1348
  this.context = context;
1349
1349
  this.sem = new SideEffectManager();
1350
+ this.createSynchronizer = () => {
1351
+ return new CameraSynchronizer((camera) => {
1352
+ this.context.camera$.setValue(camera, true);
1353
+ const notStoreCamera = this.context.viewMode$ && this.context.viewMode$.value === ViewMode.Freedom;
1354
+ if (notStoreCamera) {
1355
+ return;
1356
+ } else {
1357
+ this.context.storeCamera(camera);
1358
+ }
1359
+ });
1360
+ };
1361
+ this.subscribeView = () => {
1362
+ return this.context.view$.subscribe((view) => {
1363
+ const currentCamera = this.context.camera$.value;
1364
+ if (currentCamera && this.context.size$.value) {
1365
+ view == null ? void 0 : view.moveCamera({
1366
+ scale: 1,
1367
+ animationMode: AnimationMode.Immediately
1368
+ });
1369
+ this.synchronizer.onRemoteUpdate(currentCamera, this.context.size$.value);
1370
+ }
1371
+ this.bindView(view);
1372
+ });
1373
+ };
1374
+ this.subscribeCamera = () => {
1375
+ return this.context.camera$.subscribe((camera, skipUpdate) => {
1376
+ if (skipUpdate)
1377
+ return;
1378
+ const size2 = this.context.size$.value;
1379
+ if (camera && size2) {
1380
+ this.synchronizer.onRemoteUpdate(camera, size2);
1381
+ }
1382
+ });
1383
+ };
1384
+ this.subscribeSize = () => {
1385
+ return this.context.size$.subscribe((size2) => {
1386
+ if (size2) {
1387
+ this.synchronizer.onRemoteSizeUpdate(size2);
1388
+ }
1389
+ });
1390
+ };
1391
+ this.subscribeStageRect = () => {
1392
+ return this.context.stageRect$.subscribe((rect) => {
1393
+ if (rect) {
1394
+ this.synchronizer.setRect(rect);
1395
+ }
1396
+ });
1397
+ };
1350
1398
  this.bindView = (view) => {
1351
1399
  if (!view)
1352
1400
  return;
@@ -1366,44 +1414,13 @@ class ViewSync {
1366
1414
  this.synchronizer.onLocalCameraUpdate(__spreadProps(__spreadValues({}, camera), { scale: remoteScale, id: this.context.uid }));
1367
1415
  }
1368
1416
  };
1369
- this.synchronizer = new CameraSynchronizer((camera) => {
1370
- this.context.camera$.setValue(camera, true);
1371
- const notStoreCamera = this.context.viewMode$ && this.context.viewMode$.value === ViewMode.Freedom;
1372
- if (notStoreCamera) {
1373
- return;
1374
- } else {
1375
- this.context.storeCamera(camera);
1376
- }
1377
- });
1417
+ this.synchronizer = this.createSynchronizer();
1378
1418
  this.bindView(this.context.view$.value);
1379
1419
  this.sem.add(() => [
1380
- this.context.view$.subscribe((view) => {
1381
- const currentCamera = this.context.camera$.value;
1382
- if (currentCamera && this.context.size$.value) {
1383
- view == null ? void 0 : view.moveCamera({
1384
- scale: 1,
1385
- animationMode: AnimationMode.Immediately
1386
- });
1387
- this.synchronizer.onRemoteUpdate(currentCamera, this.context.size$.value);
1388
- }
1389
- this.bindView(view);
1390
- }),
1391
- this.context.camera$.subscribe((camera, skipUpdate) => {
1392
- const size2 = this.context.size$.value;
1393
- if (camera && size2 && !skipUpdate) {
1394
- this.synchronizer.onRemoteUpdate(camera, size2);
1395
- }
1396
- }),
1397
- this.context.size$.subscribe((size2) => {
1398
- if (size2) {
1399
- this.synchronizer.onRemoteSizeUpdate(size2);
1400
- }
1401
- }),
1402
- this.context.stageRect$.subscribe((rect) => {
1403
- if (rect) {
1404
- this.synchronizer.setRect(rect);
1405
- }
1406
- })
1420
+ this.subscribeView(),
1421
+ this.subscribeCamera(),
1422
+ this.subscribeSize(),
1423
+ this.subscribeStageRect()
1407
1424
  ]);
1408
1425
  const camera$size$ = combine([this.context.camera$, this.context.size$]);
1409
1426
  camera$size$.reaction(([camera, size2]) => {
@@ -5248,8 +5265,13 @@ class TeleBoxManager {
5248
5265
  const handler = (evt) => {
5249
5266
  prefersDark$.setValue(evt.matches);
5250
5267
  };
5251
- prefersDarkMatch.addEventListener("change", handler);
5252
- return () => prefersDarkMatch.removeEventListener("change", handler);
5268
+ if (prefersDarkMatch.addEventListener) {
5269
+ prefersDarkMatch.addEventListener("change", handler);
5270
+ return () => prefersDarkMatch.removeEventListener("change", handler);
5271
+ } else {
5272
+ prefersDarkMatch.addListener(handler);
5273
+ return () => prefersDarkMatch.removeListener(handler);
5274
+ }
5253
5275
  });
5254
5276
  }
5255
5277
  const prefersColorScheme$ = new Val(prefersColorScheme);
@@ -12092,8 +12114,8 @@ const reconnectRefresher = new ReconnectRefresher({ emitter });
12092
12114
  const _WindowManager = class extends InvisiblePlugin {
12093
12115
  constructor(context) {
12094
12116
  super(context);
12095
- this.version = "1.0.0-canary.45";
12096
- this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.35", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.2", "side-effect-manager": "^1.1.1", "uuid": "^7.0.3", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.3.2", "@netless/app-plyr": "0.2.0", "@playwright/test": "^1.23.2", "@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.49", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", "@types/node": "^18.0.3", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.2", "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.3", "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", "vite-plugin-dts": "^1.2.1", "vitest": "^0.18.0", "white-web-sdk": "2.16.26" } };
12117
+ this.version = "1.0.0-canary.46";
12118
+ this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.36", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.2", "side-effect-manager": "^1.1.1", "uuid": "^7.0.3", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.3.2", "@netless/app-plyr": "0.2.0", "@playwright/test": "^1.23.2", "@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.49", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", "@types/node": "^18.0.3", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.2", "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.3", "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", "vite-plugin-dts": "^1.2.1", "vitest": "^0.18.0", "white-web-sdk": "2.16.26" } };
12097
12119
  this.emitter = callbacks;
12098
12120
  this.viewMode = ViewMode.Broadcaster;
12099
12121
  this.viewMode$ = new Val(ViewMode.Broadcaster);
@@ -12132,7 +12154,9 @@ const _WindowManager = class extends InvisiblePlugin {
12132
12154
  clearTimeout(this.cameraUpdating);
12133
12155
  this.cameraUpdating = 0;
12134
12156
  this.mainView.callbacks.on("onCameraUpdated", this.onCameraUpdated);
12135
- this.nextCamera = nextCamera;
12157
+ if (nextScale) {
12158
+ this.nextCamera = __spreadProps(__spreadValues({}, nextCamera), { scale: nextScale });
12159
+ }
12136
12160
  }
12137
12161
  };
12138
12162
  this.onCameraUpdated = () => {
@@ -12153,7 +12177,7 @@ const _WindowManager = class extends InvisiblePlugin {
12153
12177
  }, 50);
12154
12178
  };
12155
12179
  _WindowManager.displayer = context.displayer;
12156
- window.NETLESS_DEPS = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.35", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.2", "side-effect-manager": "^1.1.1", "uuid": "^7.0.3", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.3.2", "@netless/app-plyr": "0.2.0", "@playwright/test": "^1.23.2", "@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.49", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", "@types/node": "^18.0.3", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.2", "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.3", "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", "vite-plugin-dts": "^1.2.1", "vitest": "^0.18.0", "white-web-sdk": "2.16.26" } };
12180
+ window.NETLESS_DEPS = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.36", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.2", "side-effect-manager": "^1.1.1", "uuid": "^7.0.3", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.3.2", "@netless/app-plyr": "0.2.0", "@playwright/test": "^1.23.2", "@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.49", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", "@types/node": "^18.0.3", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.2", "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.3", "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", "vite-plugin-dts": "^1.2.1", "vitest": "^0.18.0", "white-web-sdk": "2.16.26" } };
12157
12181
  }
12158
12182
  static async mount(params) {
12159
12183
  var _a;
package/dist/index.umd.js CHANGED
@@ -1348,6 +1348,54 @@ var __objRest = (source, exclude) => {
1348
1348
  constructor(context) {
1349
1349
  this.context = context;
1350
1350
  this.sem = new sideEffectManager.SideEffectManager();
1351
+ this.createSynchronizer = () => {
1352
+ return new CameraSynchronizer((camera) => {
1353
+ this.context.camera$.setValue(camera, true);
1354
+ const notStoreCamera = this.context.viewMode$ && this.context.viewMode$.value === whiteWebSdk.ViewMode.Freedom;
1355
+ if (notStoreCamera) {
1356
+ return;
1357
+ } else {
1358
+ this.context.storeCamera(camera);
1359
+ }
1360
+ });
1361
+ };
1362
+ this.subscribeView = () => {
1363
+ return this.context.view$.subscribe((view) => {
1364
+ const currentCamera = this.context.camera$.value;
1365
+ if (currentCamera && this.context.size$.value) {
1366
+ view == null ? void 0 : view.moveCamera({
1367
+ scale: 1,
1368
+ animationMode: whiteWebSdk.AnimationMode.Immediately
1369
+ });
1370
+ this.synchronizer.onRemoteUpdate(currentCamera, this.context.size$.value);
1371
+ }
1372
+ this.bindView(view);
1373
+ });
1374
+ };
1375
+ this.subscribeCamera = () => {
1376
+ return this.context.camera$.subscribe((camera, skipUpdate) => {
1377
+ if (skipUpdate)
1378
+ return;
1379
+ const size = this.context.size$.value;
1380
+ if (camera && size) {
1381
+ this.synchronizer.onRemoteUpdate(camera, size);
1382
+ }
1383
+ });
1384
+ };
1385
+ this.subscribeSize = () => {
1386
+ return this.context.size$.subscribe((size) => {
1387
+ if (size) {
1388
+ this.synchronizer.onRemoteSizeUpdate(size);
1389
+ }
1390
+ });
1391
+ };
1392
+ this.subscribeStageRect = () => {
1393
+ return this.context.stageRect$.subscribe((rect) => {
1394
+ if (rect) {
1395
+ this.synchronizer.setRect(rect);
1396
+ }
1397
+ });
1398
+ };
1351
1399
  this.bindView = (view) => {
1352
1400
  if (!view)
1353
1401
  return;
@@ -1367,44 +1415,13 @@ var __objRest = (source, exclude) => {
1367
1415
  this.synchronizer.onLocalCameraUpdate(__spreadProps(__spreadValues({}, camera), { scale: remoteScale, id: this.context.uid }));
1368
1416
  }
1369
1417
  };
1370
- this.synchronizer = new CameraSynchronizer((camera) => {
1371
- this.context.camera$.setValue(camera, true);
1372
- const notStoreCamera = this.context.viewMode$ && this.context.viewMode$.value === whiteWebSdk.ViewMode.Freedom;
1373
- if (notStoreCamera) {
1374
- return;
1375
- } else {
1376
- this.context.storeCamera(camera);
1377
- }
1378
- });
1418
+ this.synchronizer = this.createSynchronizer();
1379
1419
  this.bindView(this.context.view$.value);
1380
1420
  this.sem.add(() => [
1381
- this.context.view$.subscribe((view) => {
1382
- const currentCamera = this.context.camera$.value;
1383
- if (currentCamera && this.context.size$.value) {
1384
- view == null ? void 0 : view.moveCamera({
1385
- scale: 1,
1386
- animationMode: whiteWebSdk.AnimationMode.Immediately
1387
- });
1388
- this.synchronizer.onRemoteUpdate(currentCamera, this.context.size$.value);
1389
- }
1390
- this.bindView(view);
1391
- }),
1392
- this.context.camera$.subscribe((camera, skipUpdate) => {
1393
- const size = this.context.size$.value;
1394
- if (camera && size && !skipUpdate) {
1395
- this.synchronizer.onRemoteUpdate(camera, size);
1396
- }
1397
- }),
1398
- this.context.size$.subscribe((size) => {
1399
- if (size) {
1400
- this.synchronizer.onRemoteSizeUpdate(size);
1401
- }
1402
- }),
1403
- this.context.stageRect$.subscribe((rect) => {
1404
- if (rect) {
1405
- this.synchronizer.setRect(rect);
1406
- }
1407
- })
1421
+ this.subscribeView(),
1422
+ this.subscribeCamera(),
1423
+ this.subscribeSize(),
1424
+ this.subscribeStageRect()
1408
1425
  ]);
1409
1426
  const camera$size$ = valueEnhancer.combine([this.context.camera$, this.context.size$]);
1410
1427
  camera$size$.reaction(([camera, size]) => {
@@ -5249,8 +5266,13 @@ var __objRest = (source, exclude) => {
5249
5266
  const handler = (evt) => {
5250
5267
  prefersDark$.setValue(evt.matches);
5251
5268
  };
5252
- prefersDarkMatch.addEventListener("change", handler);
5253
- return () => prefersDarkMatch.removeEventListener("change", handler);
5269
+ if (prefersDarkMatch.addEventListener) {
5270
+ prefersDarkMatch.addEventListener("change", handler);
5271
+ return () => prefersDarkMatch.removeEventListener("change", handler);
5272
+ } else {
5273
+ prefersDarkMatch.addListener(handler);
5274
+ return () => prefersDarkMatch.removeListener(handler);
5275
+ }
5254
5276
  });
5255
5277
  }
5256
5278
  const prefersColorScheme$ = new valueEnhancer.Val(prefersColorScheme);
@@ -12093,8 +12115,8 @@ var __objRest = (source, exclude) => {
12093
12115
  const _WindowManager = class extends whiteWebSdk.InvisiblePlugin {
12094
12116
  constructor(context) {
12095
12117
  super(context);
12096
- this.version = "1.0.0-canary.45";
12097
- this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.35", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.2", "side-effect-manager": "^1.1.1", "uuid": "^7.0.3", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.3.2", "@netless/app-plyr": "0.2.0", "@playwright/test": "^1.23.2", "@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.49", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", "@types/node": "^18.0.3", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.2", "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.3", "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", "vite-plugin-dts": "^1.2.1", "vitest": "^0.18.0", "white-web-sdk": "2.16.26" } };
12118
+ this.version = "1.0.0-canary.46";
12119
+ this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.36", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.2", "side-effect-manager": "^1.1.1", "uuid": "^7.0.3", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.3.2", "@netless/app-plyr": "0.2.0", "@playwright/test": "^1.23.2", "@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.49", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", "@types/node": "^18.0.3", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.2", "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.3", "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", "vite-plugin-dts": "^1.2.1", "vitest": "^0.18.0", "white-web-sdk": "2.16.26" } };
12098
12120
  this.emitter = callbacks;
12099
12121
  this.viewMode = whiteWebSdk.ViewMode.Broadcaster;
12100
12122
  this.viewMode$ = new valueEnhancer.Val(whiteWebSdk.ViewMode.Broadcaster);
@@ -12133,7 +12155,9 @@ var __objRest = (source, exclude) => {
12133
12155
  clearTimeout(this.cameraUpdating);
12134
12156
  this.cameraUpdating = 0;
12135
12157
  this.mainView.callbacks.on("onCameraUpdated", this.onCameraUpdated);
12136
- this.nextCamera = nextCamera;
12158
+ if (nextScale) {
12159
+ this.nextCamera = __spreadProps(__spreadValues({}, nextCamera), { scale: nextScale });
12160
+ }
12137
12161
  }
12138
12162
  };
12139
12163
  this.onCameraUpdated = () => {
@@ -12154,7 +12178,7 @@ var __objRest = (source, exclude) => {
12154
12178
  }, 50);
12155
12179
  };
12156
12180
  _WindowManager.displayer = context.displayer;
12157
- window.NETLESS_DEPS = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.35", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.2", "side-effect-manager": "^1.1.1", "uuid": "^7.0.3", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.3.2", "@netless/app-plyr": "0.2.0", "@playwright/test": "^1.23.2", "@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.49", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", "@types/node": "^18.0.3", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.2", "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.3", "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", "vite-plugin-dts": "^1.2.1", "vitest": "^0.18.0", "white-web-sdk": "2.16.26" } };
12181
+ window.NETLESS_DEPS = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "1.0.0-alpha.36", "emittery": "^0.11.0", "lodash": "^4.17.21", "p-retry": "^4.6.2", "side-effect-manager": "^1.1.1", "uuid": "^7.0.3", "value-enhancer": "^1.3.2" }, "peerDependencies": { "white-web-sdk": "^2.16.0" }, "devDependencies": { "@netless/app-docs-viewer": "^0.3.2", "@netless/app-plyr": "0.2.0", "@playwright/test": "^1.23.2", "@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.49", "@tsconfig/svelte": "^2.0.1", "@types/debug": "^4.1.7", "@types/lodash": "^4.14.182", "@types/lodash-es": "^4.17.6", "@types/node": "^18.0.3", "@types/uuid": "^8.3.4", "@typescript-eslint/eslint-plugin": "^4.30.0", "@typescript-eslint/parser": "^4.30.0", "@vitest/ui": "^0.14.2", "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.3", "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", "vite-plugin-dts": "^1.2.1", "vitest": "^0.18.0", "white-web-sdk": "2.16.26" } };
12158
12182
  }
12159
12183
  static async mount(params) {
12160
12184
  var _a;
@@ -18,6 +18,11 @@ export declare class ViewSync {
18
18
  private sem;
19
19
  private synchronizer;
20
20
  constructor(context: ViewSyncContext);
21
+ private createSynchronizer;
22
+ private subscribeView;
23
+ private subscribeCamera;
24
+ private subscribeSize;
25
+ private subscribeStageRect;
21
26
  bindView: (view?: View | undefined) => void;
22
27
  private onCameraUpdatedByDevice;
23
28
  destroy(): void;
@@ -86,3 +86,4 @@ export type { Storage, StorageStateChangedEvent, StorageStateChangedListener } f
86
86
  export * from "./Page";
87
87
  export * from "./Utils/error";
88
88
  export type { Member } from "./Helper";
89
+ export type { TeleBoxManager, TeleBoxManagerQueryConfig } from "@netless/telebox-insider";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netless/window-manager",
3
- "version": "1.0.0-canary.45",
3
+ "version": "1.0.0-canary.46",
4
4
  "description": "",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.es.js",
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@juggle/resize-observer": "^3.3.1",
28
- "@netless/telebox-insider": "1.0.0-alpha.35",
28
+ "@netless/telebox-insider": "1.0.0-alpha.36",
29
29
  "emittery": "^0.11.0",
30
30
  "lodash": "^4.17.21",
31
31
  "p-retry": "^4.6.2",
package/pnpm-lock.yaml CHANGED
@@ -4,7 +4,7 @@ specifiers:
4
4
  '@juggle/resize-observer': ^3.3.1
5
5
  '@netless/app-docs-viewer': ^0.3.2
6
6
  '@netless/app-plyr': 0.2.0
7
- '@netless/telebox-insider': 1.0.0-alpha.35
7
+ '@netless/telebox-insider': 1.0.0-alpha.36
8
8
  '@playwright/test': ^1.23.2
9
9
  '@rollup/plugin-commonjs': ^20.0.0
10
10
  '@rollup/plugin-node-resolve': ^13.0.4
@@ -45,7 +45,7 @@ specifiers:
45
45
 
46
46
  dependencies:
47
47
  '@juggle/resize-observer': 3.3.1
48
- '@netless/telebox-insider': 1.0.0-alpha.35
48
+ '@netless/telebox-insider': 1.0.0-alpha.36
49
49
  emittery: 0.11.0
50
50
  lodash: 4.17.21
51
51
  p-retry: 4.6.2
@@ -247,8 +247,8 @@ packages:
247
247
  resolution: {integrity: sha512-7NzsJrba0R/mq/l10SkIZQwbrNVJyPxZYrjK6xL3Ts732iWAVuS2UB0u3s6iGeUVcqV39A679yva8APWRl4M0A==}
248
248
  dev: true
249
249
 
250
- /@netless/telebox-insider/1.0.0-alpha.35:
251
- resolution: {integrity: sha512-uX/PUEoG/+CoaigeoWH+U07io93n+T89VjJDl5FRnd3gc/QfYf3ASSDQ9+7GjbOBUDUFwYHqVIxEhU67mGXCbw==}
250
+ /@netless/telebox-insider/1.0.0-alpha.36:
251
+ resolution: {integrity: sha512-wW0/pmagLt1pzV7PfCWJAAsOm4+RED6GEh2mOSTGS/q6lIOV8Qjoe0MizaR3ild7d6rg/kIFj2II3IYF0d+OiA==}
252
252
  dependencies:
253
253
  '@juggle/resize-observer': 3.3.1
254
254
  '@types/shallowequal': 1.1.1
@@ -30,7 +30,25 @@ export class ViewSync {
30
30
  private synchronizer: CameraSynchronizer;
31
31
 
32
32
  constructor(private context: ViewSyncContext) {
33
- this.synchronizer = new CameraSynchronizer((camera: ICamera) => {
33
+ this.synchronizer = this.createSynchronizer();
34
+ this.bindView(this.context.view$.value);
35
+ this.sem.add(() => [
36
+ this.subscribeView(),
37
+ this.subscribeCamera(),
38
+ this.subscribeSize(),
39
+ this.subscribeStageRect(),
40
+ ]);
41
+ const camera$size$ = combine([this.context.camera$, this.context.size$]);
42
+ camera$size$.reaction(([camera, size]) => {
43
+ if (camera && size) {
44
+ this.synchronizer.onRemoteUpdate(camera, size);
45
+ camera$size$.destroy();
46
+ }
47
+ });
48
+ }
49
+
50
+ private createSynchronizer = () => {
51
+ return new CameraSynchronizer((camera: ICamera) => {
34
52
  this.context.camera$.setValue(camera, true);
35
53
  const notStoreCamera =
36
54
  this.context.viewMode$ && this.context.viewMode$.value === ViewMode.Freedom;
@@ -40,42 +58,44 @@ export class ViewSync {
40
58
  this.context.storeCamera(camera);
41
59
  }
42
60
  });
43
- this.bindView(this.context.view$.value);
44
- this.sem.add(() => [
45
- this.context.view$.subscribe(view => {
46
- const currentCamera = this.context.camera$.value;
47
- if (currentCamera && this.context.size$.value) {
48
- view?.moveCamera({
49
- scale: 1,
50
- animationMode: AnimationMode.Immediately,
51
- });
52
- this.synchronizer.onRemoteUpdate(currentCamera, this.context.size$.value);
53
- }
54
-
55
- this.bindView(view);
56
- }),
57
- this.context.camera$.subscribe((camera, skipUpdate) => {
58
- const size = this.context.size$.value;
59
- if (camera && size && !skipUpdate) {
60
- this.synchronizer.onRemoteUpdate(camera, size);
61
- }
62
- }),
63
- this.context.size$.subscribe(size => {
64
- if (size) {
65
- this.synchronizer.onRemoteSizeUpdate(size);
66
- }
67
- }),
68
- this.context.stageRect$.subscribe(rect => {
69
- if (rect) {
70
- this.synchronizer.setRect(rect);
71
- }
72
- })
73
- ]);
74
- const camera$size$ = combine([this.context.camera$, this.context.size$]);
75
- camera$size$.reaction(([camera, size]) => {
61
+ }
62
+
63
+ private subscribeView = () => {
64
+ return this.context.view$.subscribe(view => {
65
+ const currentCamera = this.context.camera$.value;
66
+ if (currentCamera && this.context.size$.value) {
67
+ view?.moveCamera({
68
+ scale: 1,
69
+ animationMode: AnimationMode.Immediately,
70
+ });
71
+ this.synchronizer.onRemoteUpdate(currentCamera, this.context.size$.value);
72
+ }
73
+ this.bindView(view);
74
+ });
75
+ }
76
+
77
+ private subscribeCamera = () => {
78
+ return this.context.camera$.subscribe((camera, skipUpdate) => {
79
+ if (skipUpdate) return;
80
+ const size = this.context.size$.value;
76
81
  if (camera && size) {
77
82
  this.synchronizer.onRemoteUpdate(camera, size);
78
- camera$size$.destroy();
83
+ }
84
+ });
85
+ }
86
+
87
+ private subscribeSize = () => {
88
+ return this.context.size$.subscribe(size => {
89
+ if (size) {
90
+ this.synchronizer.onRemoteSizeUpdate(size);
91
+ }
92
+ });
93
+ }
94
+
95
+ private subscribeStageRect = () => {
96
+ return this.context.stageRect$.subscribe(rect => {
97
+ if (rect) {
98
+ this.synchronizer.setRect(rect);
79
99
  }
80
100
  });
81
101
  }
package/src/index.ts CHANGED
@@ -839,7 +839,9 @@ export class WindowManager extends InvisiblePlugin<WindowMangerAttributes> imple
839
839
  clearTimeout(this.cameraUpdating);
840
840
  this.cameraUpdating = 0;
841
841
  this.mainView.callbacks.on("onCameraUpdated", this.onCameraUpdated);
842
- this.nextCamera = nextCamera;
842
+ if (nextScale) {
843
+ this.nextCamera = { ...nextCamera, scale: nextScale };
844
+ }
843
845
  }
844
846
  };
845
847
 
package/src/typings.ts CHANGED
@@ -94,3 +94,4 @@ export type { Storage, StorageStateChangedEvent, StorageStateChangedListener } f
94
94
  export * from "./Page";
95
95
  export * from "./Utils/error";
96
96
  export type { Member } from "./Helper";
97
+ export type { TeleBoxManager, TeleBoxManagerQueryConfig } from "@netless/telebox-insider";