@netless/window-manager 1.0.13-test.15 → 1.0.13-test.16

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.mjs CHANGED
@@ -7792,6 +7792,7 @@ class MainViewProxy {
7792
7792
  this.started = false;
7793
7793
  this.mainViewIsAddListener = false;
7794
7794
  this.isForcingMainViewDivElement = false;
7795
+ this.wrapperRectWorkaroundFrame = 0;
7795
7796
  this.store = this.manager.store;
7796
7797
  this.viewMode = this.manager.windowManger.viewMode;
7797
7798
  this.sideEffectManager = new o$2();
@@ -7815,6 +7816,44 @@ class MainViewProxy {
7815
7816
  });
7816
7817
  });
7817
7818
  };
7819
+ this.onWrapperRectChange = (payload) => {
7820
+ this.pendingWrapperRectChange = payload;
7821
+ console.log("[window-manager] onWrapperRectChange " + JSON.stringify({
7822
+ ...payload,
7823
+ viewSize: this.mainView.size
7824
+ }));
7825
+ if (this.wrapperRectWorkaroundFrame) {
7826
+ cancelAnimationFrame(this.wrapperRectWorkaroundFrame);
7827
+ }
7828
+ this.wrapperRectWorkaroundFrame = requestAnimationFrame(this.runWrapperRectWorkaround);
7829
+ };
7830
+ this.runWrapperRectWorkaround = () => {
7831
+ this.wrapperRectWorkaroundFrame = 0;
7832
+ const payload = this.pendingWrapperRectChange;
7833
+ const element2 = this.mainView.divElement;
7834
+ this.pendingWrapperRectChange = void 0;
7835
+ if (!payload || !element2)
7836
+ return;
7837
+ const rect = element2.getBoundingClientRect();
7838
+ const observedSize = { width: rect.width, height: rect.height };
7839
+ const wrapperMatchesDom = Math.abs(payload.width - observedSize.width) <= 0.5 && Math.abs(payload.height - observedSize.height) <= 0.5;
7840
+ const viewIsStale = Math.abs(this.mainView.size.width - observedSize.width) > 0.5 || Math.abs(this.mainView.size.height - observedSize.height) > 0.5;
7841
+ console.log("[window-manager] runWrapperRectWorkaround " + JSON.stringify({
7842
+ origin: payload.origin,
7843
+ wrapperRect: payload,
7844
+ domRect: observedSize,
7845
+ viewSize: this.mainView.size,
7846
+ wrapperMatchesDom,
7847
+ viewIsStale
7848
+ }));
7849
+ if (wrapperMatchesDom && viewIsStale) {
7850
+ this.forceSyncMainViewDivElement(
7851
+ `wrapperRectChange:${payload.origin || "unknown"}`,
7852
+ observedSize,
7853
+ element2
7854
+ );
7855
+ }
7856
+ };
7818
7857
  this.addCameraReaction = () => {
7819
7858
  this.manager.refresher.add(Fields.MainViewCamera, this.cameraReaction);
7820
7859
  };
@@ -7958,6 +7997,9 @@ class MainViewProxy {
7958
7997
  this.sideEffectManager.add(() => {
7959
7998
  return internalEmitter.on("containerSizeRatioUpdate", this.onUpdateContainerSizeRatio);
7960
7999
  });
8000
+ this.sideEffectManager.add(() => {
8001
+ return internalEmitter.on("wrapperRectChange", this.onWrapperRectChange);
8002
+ });
7961
8003
  this.sideEffectManager.add(() => {
7962
8004
  return internalEmitter.on("startReconnect", () => {
7963
8005
  if (!this.didRelease) {
@@ -8181,6 +8223,10 @@ class MainViewProxy {
8181
8223
  }
8182
8224
  destroy() {
8183
8225
  console.log("[window-manager] destroy ");
8226
+ if (this.wrapperRectWorkaroundFrame) {
8227
+ cancelAnimationFrame(this.wrapperRectWorkaroundFrame);
8228
+ this.wrapperRectWorkaroundFrame = 0;
8229
+ }
8184
8230
  this.removeMainViewListener();
8185
8231
  this.disconnectMainViewResizeObserver();
8186
8232
  this.stop();
@@ -9135,7 +9181,13 @@ class ContainerResizeObserver {
9135
9181
  wrapper.style.width = `${width}px`;
9136
9182
  wrapper.style.height = `${height}px`;
9137
9183
  wrapper.style.backgroundColor = "green";
9138
- console.log(`[window-manager] updateSizer from ${origin}: ${JSON.stringify({ width, height })} ${wrapper.style.width} ${wrapper.style.height} ${JSON.stringify(wrapper.getBoundingClientRect())}`);
9184
+ const wrapperRect = wrapper.getBoundingClientRect();
9185
+ console.log(`[window-manager] updateSizer from ${origin}: ${JSON.stringify({ width, height })} ${wrapper.style.width} ${wrapper.style.height} ${JSON.stringify(wrapperRect)}`);
9186
+ this.emitter.emit("wrapperRectChange", {
9187
+ width: wrapperRect.width,
9188
+ height: wrapperRect.height,
9189
+ origin
9190
+ });
9139
9191
  }
9140
9192
  }
9141
9193
  disconnect() {
@@ -19891,7 +19943,7 @@ const reconnectRefresher = new ReconnectRefresher({ emitter: internalEmitter });
19891
19943
  const _WindowManager = class extends InvisiblePlugin {
19892
19944
  constructor(context) {
19893
19945
  super(context);
19894
- this.version = "1.0.13-test.15";
19946
+ this.version = "1.0.13-test.16";
19895
19947
  this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "0.3.0", "emittery": "^0.9.2", "lodash": "^4.17.21", "p-retry": "^4.6.1", "uuid": "^7.0.3", "video.js": ">=7" }, "peerDependencies": { "jspdf": "2.5.1", "white-web-sdk": "^2.16.53" }, "devDependencies": { "@hyrious/dts": "^0.2.2", "@netless/app-docs-viewer": "^0.2.19", "@netless/app-media-player": "0.1.4", "@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.30", "@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", "jspdf": "^2.5.1", "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", "side-effect-manager": "0.1.5", "svelte": "^3.42.4", "typescript": "^4.5.5", "vite": "^2.9.9", "vitest": "^0.14.1", "white-web-sdk": "^2.16.53" } };
19896
19948
  this.emitter = callbacks$1;
19897
19949
  this.viewMode = ViewMode.Broadcaster;