@netless/window-manager 0.4.29 → 0.4.30
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/CHANGELOG.md +7 -2
- package/dist/InternalEmitter.d.ts +1 -0
- package/dist/constants.d.ts +1 -0
- package/dist/index.cjs.js +12 -12
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +41 -12
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +12 -12
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/App/AppProxy.ts +5 -0
- package/src/AppManager.ts +20 -6
- package/src/InternalEmitter.ts +2 -1
- package/src/ReconnectRefresher.ts +18 -4
- package/src/constants.ts +1 -0
package/dist/index.es.js
CHANGED
@@ -47,6 +47,7 @@ var Events = /* @__PURE__ */ ((Events2) => {
|
|
47
47
|
return Events2;
|
48
48
|
})(Events || {});
|
49
49
|
const MagixEventName = "__WindowManger";
|
50
|
+
const EnsureReconnectEvent = "__WindowMangerEnsureReconnected__";
|
50
51
|
var AppAttributes = /* @__PURE__ */ ((AppAttributes2) => {
|
51
52
|
AppAttributes2["Size"] = "size";
|
52
53
|
AppAttributes2["Position"] = "position";
|
@@ -1506,6 +1507,11 @@ class AppProxy {
|
|
1506
1507
|
}
|
1507
1508
|
async onReconnected() {
|
1508
1509
|
var _a;
|
1510
|
+
const isExist = Boolean(this.manager.attributes.apps[this.id]);
|
1511
|
+
if (!isExist) {
|
1512
|
+
await this.destroy(true, false, true);
|
1513
|
+
return;
|
1514
|
+
}
|
1509
1515
|
this.appEmitter.emit("reconnected", void 0);
|
1510
1516
|
const currentAppState = this.getAppInitState(this.id);
|
1511
1517
|
await this.destroy(true, false, true);
|
@@ -2064,7 +2070,10 @@ class AppManager {
|
|
2064
2070
|
}
|
2065
2071
|
this.callbacksNode = this.displayer.createScenesCallback(ROOT_DIR, {
|
2066
2072
|
onAddScene: this.onSceneChange,
|
2067
|
-
onRemoveScene:
|
2073
|
+
onRemoveScene: async (node, name) => {
|
2074
|
+
await this.onSceneChange(node);
|
2075
|
+
emitter.emit("rootDirSceneRemoved", name);
|
2076
|
+
}
|
2068
2077
|
});
|
2069
2078
|
if (this.callbacksNode) {
|
2070
2079
|
this.updateSceneState(this.callbacksNode);
|
@@ -2075,17 +2084,26 @@ class AppManager {
|
|
2075
2084
|
}
|
2076
2085
|
};
|
2077
2086
|
this.removeSceneByIndex = async (index) => {
|
2087
|
+
var _a;
|
2078
2088
|
const nextIndex = calculateNextIndex(index, this.windowManger.pageState);
|
2079
2089
|
this.setSceneIndexWithoutSync(nextIndex);
|
2080
2090
|
this.dispatchInternalEvent(Events.SetAppFocusIndex, { type: "main", index: nextIndex });
|
2091
|
+
const scene = (_a = this.callbacksNode) == null ? void 0 : _a.scenes[index];
|
2081
2092
|
setTimeout(() => {
|
2082
|
-
var _a;
|
2083
|
-
const scene = (_a = this.callbacksNode) == null ? void 0 : _a.scenes[index];
|
2084
2093
|
if (scene) {
|
2085
2094
|
removeScenes(this.room, `${ROOT_DIR}${scene}`, index);
|
2086
2095
|
}
|
2087
2096
|
}, 100);
|
2088
|
-
return
|
2097
|
+
return new Promise((resolve, reject) => {
|
2098
|
+
emitter.once("rootDirSceneRemoved").then((name) => {
|
2099
|
+
if (name === scene) {
|
2100
|
+
resolve(true);
|
2101
|
+
}
|
2102
|
+
}).catch((e2) => {
|
2103
|
+
console.log(`[WindowManager]: removePage error: ${e2}`);
|
2104
|
+
reject(false);
|
2105
|
+
});
|
2106
|
+
});
|
2089
2107
|
};
|
2090
2108
|
this.setSceneIndexWithoutSync = (index) => {
|
2091
2109
|
var _a;
|
@@ -2097,11 +2115,13 @@ class AppManager {
|
|
2097
2115
|
this.onSceneChange = (node) => {
|
2098
2116
|
this.mainViewScenesLength = node.scenes.length;
|
2099
2117
|
this.updateSceneState(node);
|
2100
|
-
this.emitMainViewScenesChange(this.mainViewScenesLength);
|
2118
|
+
return this.emitMainViewScenesChange(this.mainViewScenesLength);
|
2101
2119
|
};
|
2102
2120
|
this.emitMainViewScenesChange = (length) => {
|
2103
|
-
|
2104
|
-
|
2121
|
+
return Promise.all([
|
2122
|
+
callbacks$1.emit("mainViewScenesLengthChange", length),
|
2123
|
+
emitter.emit("changePageState")
|
2124
|
+
]);
|
2105
2125
|
};
|
2106
2126
|
this.updateSceneState = (node) => {
|
2107
2127
|
const currentIndex = this.store.getMainViewSceneIndex() || 0;
|
@@ -5734,11 +5754,12 @@ class ReconnectRefresher {
|
|
5734
5754
|
this.reactors = /* @__PURE__ */ new Map();
|
5735
5755
|
this.disposers = /* @__PURE__ */ new Map();
|
5736
5756
|
this.onPhaseChanged = (phase) => {
|
5757
|
+
var _a;
|
5737
5758
|
if (phase === RoomPhase.Reconnecting) {
|
5738
5759
|
this.ctx.emitter.emit("startReconnect");
|
5739
5760
|
}
|
5740
5761
|
if (phase === RoomPhase.Connected && this.phase === RoomPhase.Reconnecting) {
|
5741
|
-
this.
|
5762
|
+
(_a = this.room) == null ? void 0 : _a.dispatchMagixEvent(EnsureReconnectEvent, {});
|
5742
5763
|
}
|
5743
5764
|
this.phase = phase;
|
5744
5765
|
};
|
@@ -5759,8 +5780,15 @@ class ReconnectRefresher {
|
|
5759
5780
|
setRoom(room) {
|
5760
5781
|
this.room = room;
|
5761
5782
|
this.phase = room == null ? void 0 : room.phase;
|
5762
|
-
|
5763
|
-
|
5783
|
+
if (room) {
|
5784
|
+
room.callbacks.off("onPhaseChanged", this.onPhaseChanged);
|
5785
|
+
room.callbacks.on("onPhaseChanged", this.onPhaseChanged);
|
5786
|
+
room.addMagixEventListener(EnsureReconnectEvent, (payload) => {
|
5787
|
+
if (payload.authorId === room.observerId) {
|
5788
|
+
this.onReconnected();
|
5789
|
+
}
|
5790
|
+
}, { fireSelfEventAfterCommit: true });
|
5791
|
+
}
|
5764
5792
|
}
|
5765
5793
|
setContext(ctx) {
|
5766
5794
|
this.ctx = ctx;
|
@@ -5802,8 +5830,9 @@ class ReconnectRefresher {
|
|
5802
5830
|
return this.reactors.has(id2);
|
5803
5831
|
}
|
5804
5832
|
destroy() {
|
5805
|
-
var _a;
|
5833
|
+
var _a, _b;
|
5806
5834
|
(_a = this.room) == null ? void 0 : _a.callbacks.off("onPhaseChanged", this.onPhaseChanged);
|
5835
|
+
(_b = this.room) == null ? void 0 : _b.removeMagixEventListener(EnsureReconnectEvent, this.onReconnected);
|
5807
5836
|
this.releaseDisposers();
|
5808
5837
|
}
|
5809
5838
|
}
|
@@ -15048,7 +15077,7 @@ const reconnectRefresher = new ReconnectRefresher({ emitter });
|
|
15048
15077
|
const _WindowManager = class extends InvisiblePlugin {
|
15049
15078
|
constructor(context) {
|
15050
15079
|
super(context);
|
15051
|
-
this.version = "0.4.
|
15080
|
+
this.version = "0.4.30";
|
15052
15081
|
this.dependencies = { "dependencies": { "@juggle/resize-observer": "^3.3.1", "@netless/telebox-insider": "0.2.26", "emittery": "^0.9.2", "lodash": "^4.17.21", "p-retry": "^4.6.1", "side-effect-manager": "^0.1.5", "uuid": "^7.0.3", "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", "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.12.4", "white-web-sdk": "2.16.10" } };
|
15053
15082
|
this.emitter = callbacks$1;
|
15054
15083
|
this.viewMode = ViewMode.Broadcaster;
|