@netless/window-manager 0.4.27 → 0.4.30-canary.0
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 +6 -0
- package/dist/App/AppContext.d.ts +1 -1
- package/dist/App/AppProxy.d.ts +1 -1
- package/dist/InternalEmitter.d.ts +1 -0
- package/dist/index.cjs.js +7 -7
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.es.js +36 -16
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +8 -8
- package/dist/index.umd.js.map +1 -1
- package/docs/advanced.md +10 -1
- package/docs/api.md +3 -1
- package/package.json +1 -1
- package/src/App/AppContext.ts +8 -4
- package/src/App/AppProxy.ts +2 -5
- package/src/AppManager.ts +22 -8
- package/src/InternalEmitter.ts +2 -1
- package/src/index.ts +13 -3
package/dist/index.d.ts
CHANGED
@@ -144,7 +144,12 @@ export declare class WindowManager extends InvisiblePlugin<WindowMangerAttribute
|
|
144
144
|
nextPage(): Promise<boolean>;
|
145
145
|
prevPage(): Promise<boolean>;
|
146
146
|
addPage(params?: AddPageParams): Promise<void>;
|
147
|
-
|
147
|
+
/**
|
148
|
+
* 删除一页
|
149
|
+
* 默认删除当前页, 可以删除指定 index 页
|
150
|
+
* 最低保留一页
|
151
|
+
*/
|
152
|
+
removePage(index?: number): Promise<boolean>;
|
148
153
|
/**
|
149
154
|
* 返回 mainView 的 ScenePath
|
150
155
|
*/
|
package/dist/index.es.js
CHANGED
@@ -1021,12 +1021,16 @@ class AppContext {
|
|
1021
1021
|
}
|
1022
1022
|
};
|
1023
1023
|
this.removePage = async (index) => {
|
1024
|
-
|
1024
|
+
const needRemoveIndex = index === void 0 ? this.pageState.index : index;
|
1025
|
+
if (this.pageState.length === 1) {
|
1026
|
+
console.warn(`[WindowManager]: can not remove the last page`);
|
1027
|
+
return false;
|
1028
|
+
}
|
1029
|
+
if (needRemoveIndex < 0 || needRemoveIndex >= this.pageState.length) {
|
1025
1030
|
console.warn(`[WindowManager]: page index ${index} out of range`);
|
1026
1031
|
return false;
|
1027
1032
|
}
|
1028
|
-
this.appProxy.removeSceneByIndex(
|
1029
|
-
return true;
|
1033
|
+
return this.appProxy.removeSceneByIndex(needRemoveIndex);
|
1030
1034
|
};
|
1031
1035
|
this.emitter = appProxy.appEmitter;
|
1032
1036
|
this.isAddApp = appProxy.isAddApp;
|
@@ -1603,9 +1607,6 @@ class AppProxy {
|
|
1603
1607
|
async removeSceneByIndex(index) {
|
1604
1608
|
const scenePath = this._pageState.getFullPath(index);
|
1605
1609
|
if (scenePath) {
|
1606
|
-
if (this.pageState.length <= 1) {
|
1607
|
-
return false;
|
1608
|
-
}
|
1609
1610
|
const nextIndex = calculateNextIndex(index, this.pageState);
|
1610
1611
|
this.setSceneIndexWithoutSync(nextIndex);
|
1611
1612
|
this.manager.dispatchInternalEvent(Events.SetAppFocusIndex, {
|
@@ -2063,7 +2064,10 @@ class AppManager {
|
|
2063
2064
|
}
|
2064
2065
|
this.callbacksNode = this.displayer.createScenesCallback(ROOT_DIR, {
|
2065
2066
|
onAddScene: this.onSceneChange,
|
2066
|
-
onRemoveScene:
|
2067
|
+
onRemoveScene: async (node, name) => {
|
2068
|
+
await this.onSceneChange(node);
|
2069
|
+
emitter.emit("rootDirSceneRemoved", name);
|
2070
|
+
}
|
2067
2071
|
});
|
2068
2072
|
if (this.callbacksNode) {
|
2069
2073
|
this.updateSceneState(this.callbacksNode);
|
@@ -2074,17 +2078,26 @@ class AppManager {
|
|
2074
2078
|
}
|
2075
2079
|
};
|
2076
2080
|
this.removeSceneByIndex = async (index) => {
|
2081
|
+
var _a;
|
2077
2082
|
const nextIndex = calculateNextIndex(index, this.windowManger.pageState);
|
2078
2083
|
this.setSceneIndexWithoutSync(nextIndex);
|
2079
2084
|
this.dispatchInternalEvent(Events.SetAppFocusIndex, { type: "main", index: nextIndex });
|
2085
|
+
const scene = (_a = this.callbacksNode) == null ? void 0 : _a.scenes[index];
|
2080
2086
|
setTimeout(() => {
|
2081
|
-
var _a;
|
2082
|
-
const scene = (_a = this.callbacksNode) == null ? void 0 : _a.scenes[index];
|
2083
2087
|
if (scene) {
|
2084
2088
|
removeScenes(this.room, `${ROOT_DIR}${scene}`, index);
|
2085
2089
|
}
|
2086
2090
|
}, 100);
|
2087
|
-
return
|
2091
|
+
return new Promise((resolve, reject) => {
|
2092
|
+
emitter.once("rootDirSceneRemoved").then((name) => {
|
2093
|
+
if (name === scene) {
|
2094
|
+
resolve(true);
|
2095
|
+
}
|
2096
|
+
}).catch((e2) => {
|
2097
|
+
console.log(`[WindowManager]: removePage error: ${e2}`);
|
2098
|
+
reject(false);
|
2099
|
+
});
|
2100
|
+
});
|
2088
2101
|
};
|
2089
2102
|
this.setSceneIndexWithoutSync = (index) => {
|
2090
2103
|
var _a;
|
@@ -2096,11 +2109,13 @@ class AppManager {
|
|
2096
2109
|
this.onSceneChange = (node) => {
|
2097
2110
|
this.mainViewScenesLength = node.scenes.length;
|
2098
2111
|
this.updateSceneState(node);
|
2099
|
-
this.emitMainViewScenesChange(this.mainViewScenesLength);
|
2112
|
+
return this.emitMainViewScenesChange(this.mainViewScenesLength);
|
2100
2113
|
};
|
2101
2114
|
this.emitMainViewScenesChange = (length) => {
|
2102
|
-
|
2103
|
-
|
2115
|
+
return Promise.all([
|
2116
|
+
callbacks$1.emit("mainViewScenesLengthChange", length),
|
2117
|
+
emitter.emit("changePageState")
|
2118
|
+
]);
|
2104
2119
|
};
|
2105
2120
|
this.updateSceneState = (node) => {
|
2106
2121
|
const currentIndex = this.store.getMainViewSceneIndex() || 0;
|
@@ -15047,7 +15062,7 @@ const reconnectRefresher = new ReconnectRefresher({ emitter });
|
|
15047
15062
|
const _WindowManager = class extends InvisiblePlugin {
|
15048
15063
|
constructor(context) {
|
15049
15064
|
super(context);
|
15050
|
-
this.version = "0.4.
|
15065
|
+
this.version = "0.4.30-canary.0";
|
15051
15066
|
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" } };
|
15052
15067
|
this.emitter = callbacks$1;
|
15053
15068
|
this.viewMode = ViewMode.Broadcaster;
|
@@ -15349,11 +15364,16 @@ const _WindowManager = class extends InvisiblePlugin {
|
|
15349
15364
|
}
|
15350
15365
|
async removePage(index) {
|
15351
15366
|
if (this.appManager) {
|
15352
|
-
|
15367
|
+
const needRemoveIndex = index === void 0 ? this.pageState.index : index;
|
15368
|
+
if (this.pageState.length === 1) {
|
15369
|
+
console.warn(`[WindowManager]: can not remove the last page`);
|
15370
|
+
return false;
|
15371
|
+
}
|
15372
|
+
if (needRemoveIndex < 0 || needRemoveIndex >= this.pageState.length) {
|
15353
15373
|
console.warn(`[WindowManager]: index ${index} out of range`);
|
15354
15374
|
return false;
|
15355
15375
|
}
|
15356
|
-
return this.appManager.removeSceneByIndex(
|
15376
|
+
return this.appManager.removeSceneByIndex(needRemoveIndex);
|
15357
15377
|
} else {
|
15358
15378
|
return false;
|
15359
15379
|
}
|