@netless/window-manager 0.4.7 → 0.4.9-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 +5 -0
- package/README.md +1 -0
- package/dist/AppContext.d.ts +4 -4
- package/dist/AppManager.d.ts +12 -9
- package/dist/BoxManager.d.ts +4 -3
- package/dist/ContainerResizeObserver.d.ts +1 -1
- package/dist/Helper.d.ts +2 -0
- package/dist/InternalEmitter.d.ts +41 -0
- package/dist/ReconnectRefresher.d.ts +1 -1
- package/dist/RedoUndo.d.ts +18 -0
- package/dist/Utils/AppCreateQueue.d.ts +2 -0
- package/dist/Utils/Common.d.ts +1 -1
- package/dist/View/MainView.d.ts +1 -0
- package/dist/callback.d.ts +21 -0
- package/dist/index.d.ts +5 -52
- package/dist/index.es.js +5 -5
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +5 -5
- package/dist/index.umd.js.map +1 -1
- package/dist/style.css +1 -1
- package/docs/advanced.md +13 -0
- package/docs/api.md +15 -1
- package/docs/develop-app.md +50 -0
- package/package.json +3 -3
- package/src/AppContext.ts +51 -33
- package/src/AppListener.ts +2 -1
- package/src/AppManager.ts +90 -82
- package/src/AppProxy.ts +8 -4
- package/src/BoxManager.ts +7 -13
- package/src/ContainerResizeObserver.ts +1 -1
- package/src/Cursor/Cursor.ts +2 -1
- package/src/Cursor/index.ts +4 -2
- package/src/Helper.ts +6 -0
- package/src/InternalEmitter.ts +27 -0
- package/src/ReconnectRefresher.ts +1 -1
- package/src/RedoUndo.ts +88 -0
- package/src/Register/index.ts +1 -0
- package/src/Register/loader.ts +1 -1
- package/src/Utils/AppCreateQueue.ts +10 -0
- package/src/Utils/Common.ts +2 -2
- package/src/Utils/RoomHacker.ts +3 -3
- package/src/View/MainView.ts +13 -1
- package/src/callback.ts +23 -0
- package/src/index.ts +23 -57
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
package/dist/AppContext.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { Storage } from "./App/Storage";
|
2
|
+
import { autorun, listenDisposed, listenUpdated, reaction, unlistenDisposed, unlistenUpdated, toJS } from "white-web-sdk";
|
2
3
|
import type { Room, SceneDefinition, View } from "white-web-sdk";
|
3
4
|
import type { ReadonlyTeleBox } from "@netless/telebox-insider";
|
4
5
|
import type Emittery from "emittery";
|
@@ -6,8 +7,7 @@ import type { BoxManager } from "./BoxManager";
|
|
6
7
|
import type { AppEmitterEvent } from "./index";
|
7
8
|
import type { AppManager } from "./AppManager";
|
8
9
|
import type { AppProxy } from "./AppProxy";
|
9
|
-
import {
|
10
|
-
import type { MagixEventAddListener, MagixEventDispatcher, MagixEventRemoveListener } from './App/MagixEvent';
|
10
|
+
import type { MagixEventAddListener, MagixEventDispatcher, MagixEventRemoveListener } from "./App/MagixEvent";
|
11
11
|
export declare class AppContext<TAttributes = any, TMagixEventPayloads = any, TAppOptions = any> {
|
12
12
|
private manager;
|
13
13
|
private boxManager;
|
@@ -46,7 +46,7 @@ export declare class AppContext<TAttributes = any, TMagixEventPayloads = any, TA
|
|
46
46
|
/** @deprecated Use context.storage.setState instead. */
|
47
47
|
updateAttributes: (keys: string[], value: any) => void;
|
48
48
|
setScenePath: (scenePath: string) => Promise<void>;
|
49
|
-
mountView: (dom:
|
49
|
+
mountView: (dom: HTMLElement) => void;
|
50
50
|
/** Get the local App options. */
|
51
51
|
getAppOptions: () => TAppOptions | undefined;
|
52
52
|
private _storage?;
|
package/dist/AppManager.d.ts
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
import { AppStatus, Events } from "./constants";
|
2
2
|
import { AppProxy } from "./AppProxy";
|
3
|
-
import { WindowManager } from "./index";
|
4
3
|
import { MainViewProxy } from "./View/MainView";
|
4
|
+
import { WindowManager } from "./index";
|
5
5
|
import { ViewManager } from "./View/ViewManager";
|
6
6
|
import type { ReconnectRefresher } from "./ReconnectRefresher";
|
7
7
|
import type { BoxManager } from "./BoxManager";
|
8
|
-
import type { Displayer, Room,
|
8
|
+
import type { Displayer, Room, SceneState } from "white-web-sdk";
|
9
9
|
import type { AddAppParams, TeleBoxRect } from "./index";
|
10
10
|
export declare class AppManager {
|
11
11
|
windowManger: WindowManager;
|
@@ -24,22 +24,26 @@ export declare class AppManager {
|
|
24
24
|
private _prevFocused;
|
25
25
|
private callbacksNode;
|
26
26
|
private appCreateQueue;
|
27
|
+
private sideEffectManager;
|
28
|
+
sceneState: SceneState | null;
|
27
29
|
constructor(windowManger: WindowManager);
|
30
|
+
/**
|
31
|
+
* 根目录被删除时所有的 scene 都会被删除.
|
32
|
+
* 所以需要关掉所有开启了 view 的 app
|
33
|
+
*/
|
34
|
+
private onRootDirRemoved;
|
28
35
|
private createRootDirScenesCallback;
|
36
|
+
private onSceneChange;
|
37
|
+
private updateSceneState;
|
29
38
|
private get eventName();
|
30
39
|
get attributes(): import("./index").WindowMangerAttributes;
|
31
40
|
get canOperate(): boolean;
|
32
41
|
get room(): Room | undefined;
|
33
|
-
get mainView(): View;
|
42
|
+
get mainView(): import("white-web-sdk").View;
|
34
43
|
get focusApp(): AppProxy | undefined;
|
35
44
|
get uid(): string;
|
36
45
|
getMainViewSceneDir(): string;
|
37
46
|
private onCreated;
|
38
|
-
private disposePrevFocusViewRedoUndoListeners;
|
39
|
-
private addRedoUndoListeners;
|
40
|
-
private addViewCallbacks;
|
41
|
-
private onCanRedoStepsUpdate;
|
42
|
-
private onCanUndoStepsUpdate;
|
43
47
|
/**
|
44
48
|
* 插件更新 attributes 时的回调
|
45
49
|
*
|
@@ -75,6 +79,5 @@ export declare class AppManager {
|
|
75
79
|
onReconnected(): Promise<void>;
|
76
80
|
notifyContainerRectUpdate(rect: TeleBoxRect): void;
|
77
81
|
dispatchInternalEvent(event: Events, payload: any): void;
|
78
|
-
findMemberByUid: (uid: string) => import("white-web-sdk").RoomMember | undefined;
|
79
82
|
destroy(): void;
|
80
83
|
}
|
package/dist/BoxManager.d.ts
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
import { AppAttributes } from "./constants";
|
2
|
-
import { WindowManager } from "./index";
|
3
2
|
import { TELE_BOX_STATE, TeleBoxManager } from "@netless/telebox-insider";
|
4
|
-
import
|
3
|
+
import { WindowManager } from "./index";
|
4
|
+
import type { AddAppOptions, AppInitState } from "./index";
|
5
5
|
import type { TeleBoxManagerUpdateConfig, ReadonlyTeleBox, TeleBoxColorScheme, TeleBoxRect, TeleBoxConfig } from "@netless/telebox-insider";
|
6
6
|
import type Emittery from "emittery";
|
7
7
|
import type { NetlessApp } from "./typings";
|
8
8
|
import type { View } from "white-web-sdk";
|
9
|
+
import type { CallbacksType } from "./callback";
|
10
|
+
import type { EmitterType } from "./InternalEmitter";
|
9
11
|
export { TELE_BOX_STATE };
|
10
12
|
export declare type CreateBoxParams = {
|
11
13
|
appId: string;
|
@@ -57,7 +59,6 @@ export declare class BoxManager {
|
|
57
59
|
private createTeleBoxManagerConfig?;
|
58
60
|
teleBoxManager: TeleBoxManager;
|
59
61
|
constructor(context: BoxManagerContext, createTeleBoxManagerConfig?: CreateTeleBoxManagerConfig | undefined);
|
60
|
-
private playgroundSizeChangeListener;
|
61
62
|
private get mainView();
|
62
63
|
private get canOperate();
|
63
64
|
get boxState(): "normal" | "minimized" | "maximized";
|
package/dist/Helper.d.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import type { Room } from "white-web-sdk";
|
1
2
|
export declare const setupWrapper: (root: HTMLElement) => {
|
2
3
|
playground: HTMLDivElement;
|
3
4
|
wrapper: HTMLDivElement;
|
@@ -5,3 +6,4 @@ export declare const setupWrapper: (root: HTMLElement) => {
|
|
5
6
|
mainViewElement: HTMLDivElement;
|
6
7
|
};
|
7
8
|
export declare const checkVersion: () => void;
|
9
|
+
export declare const findMemberByUid: (room: Room | undefined, uid: string) => import("white-web-sdk").RoomMember | undefined;
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import Emittery from "emittery";
|
2
|
+
import type { AppInitState, CursorMovePayload } from "./index";
|
3
|
+
export declare type EmitterEvent = {
|
4
|
+
onCreated: undefined;
|
5
|
+
InitReplay: AppInitState;
|
6
|
+
move: {
|
7
|
+
appId: string;
|
8
|
+
x: number;
|
9
|
+
y: number;
|
10
|
+
};
|
11
|
+
focus: {
|
12
|
+
appId: string;
|
13
|
+
};
|
14
|
+
close: {
|
15
|
+
appId: string;
|
16
|
+
};
|
17
|
+
resize: {
|
18
|
+
appId: string;
|
19
|
+
width: number;
|
20
|
+
height: number;
|
21
|
+
x?: number;
|
22
|
+
y?: number;
|
23
|
+
};
|
24
|
+
error: Error;
|
25
|
+
seek: number;
|
26
|
+
mainViewMounted: undefined;
|
27
|
+
observerIdChange: number;
|
28
|
+
boxStateChange: string;
|
29
|
+
playgroundSizeChange: DOMRect;
|
30
|
+
onReconnected: void;
|
31
|
+
removeScenes: string;
|
32
|
+
cursorMove: CursorMovePayload;
|
33
|
+
updateManagerRect: undefined;
|
34
|
+
focusedChange: {
|
35
|
+
focused: string | undefined;
|
36
|
+
prev: string | undefined;
|
37
|
+
};
|
38
|
+
rootDirRemoved: undefined;
|
39
|
+
};
|
40
|
+
export declare type EmitterType = Emittery<EmitterEvent>;
|
41
|
+
export declare const emitter: EmitterType;
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import type { View } from "white-web-sdk";
|
2
|
+
import type { AppProxy } from "./AppProxy";
|
3
|
+
export declare type RedoUndoContext = {
|
4
|
+
mainView: () => View;
|
5
|
+
focus: () => string | undefined;
|
6
|
+
getAppProxy: (id: string) => AppProxy | undefined;
|
7
|
+
};
|
8
|
+
export declare class RedoUndo {
|
9
|
+
private context;
|
10
|
+
constructor(context: RedoUndoContext);
|
11
|
+
private addRedoUndoListeners;
|
12
|
+
private addViewCallbacks;
|
13
|
+
private disposeViewCallbacks;
|
14
|
+
private onCanRedoStepsUpdate;
|
15
|
+
private onCanUndoStepsUpdate;
|
16
|
+
private disposePrevFocusViewRedoUndoListeners;
|
17
|
+
destroy(): void;
|
18
|
+
}
|
package/dist/Utils/Common.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { PublicEvent } from "../
|
1
|
+
import type { PublicEvent } from "../callback";
|
2
2
|
import type { Displayer, ViewVisionMode, Room, View } from "white-web-sdk";
|
3
3
|
import type Emittery from "emittery";
|
4
4
|
export declare const genAppId: (kind: string) => Promise<string>;
|
package/dist/View/MainView.d.ts
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
import Emittery from "emittery";
|
2
|
+
import type { TeleBoxColorScheme, TELE_BOX_STATE } from "@netless/telebox-insider";
|
3
|
+
import type { CameraState, ViewVisionMode } from "white-web-sdk";
|
4
|
+
import type { LoadAppEvent } from "./Register";
|
5
|
+
export declare type PublicEvent = {
|
6
|
+
mainViewModeChange: ViewVisionMode;
|
7
|
+
boxStateChange: `${TELE_BOX_STATE}`;
|
8
|
+
darkModeChange: boolean;
|
9
|
+
prefersColorSchemeChange: TeleBoxColorScheme;
|
10
|
+
cameraStateChange: CameraState;
|
11
|
+
mainViewScenePathChange: string;
|
12
|
+
mainViewSceneIndexChange: number;
|
13
|
+
focusedChange: string | undefined;
|
14
|
+
mainViewScenesLengthChange: number;
|
15
|
+
canRedoStepsChange: number;
|
16
|
+
canUndoStepsChange: number;
|
17
|
+
loadApp: LoadAppEvent;
|
18
|
+
ready: undefined;
|
19
|
+
};
|
20
|
+
export declare type CallbacksType = Emittery<PublicEvent>;
|
21
|
+
export declare const callbacks: CallbacksType;
|
package/dist/index.d.ts
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
import Emittery from "emittery";
|
2
1
|
import { AppManager } from "./AppManager";
|
3
2
|
import { CursorManager } from "./Cursor";
|
4
3
|
import { InvisiblePlugin, ViewMode } from "white-web-sdk";
|
@@ -6,14 +5,15 @@ import { ReconnectRefresher } from "./ReconnectRefresher";
|
|
6
5
|
import "video.js/dist/video-js.css";
|
7
6
|
import "./style.css";
|
8
7
|
import "@netless/telebox-insider/dist/style.css";
|
9
|
-
import type { LoadAppEvent } from "./Register";
|
10
8
|
import type { TELE_BOX_STATE } from "./BoxManager";
|
11
9
|
import type { Apps, Position } from "./AttributesDelegate";
|
12
|
-
import type { Displayer, SceneDefinition, View, Room, InvisiblePluginContext, Camera, AnimationMode, CameraBound, Point, Rectangle,
|
10
|
+
import type { Displayer, SceneDefinition, View, Room, InvisiblePluginContext, Camera, AnimationMode, CameraBound, Point, Rectangle, CameraState, Player, ImageInformation, SceneState } from "white-web-sdk";
|
13
11
|
import type { AppListeners } from "./AppListener";
|
14
12
|
import type { NetlessApp, RegisterParams } from "./typings";
|
15
13
|
import type { TeleBoxColorScheme, TeleBoxState } from "@netless/telebox-insider";
|
16
14
|
import type { AppProxy } from "./AppProxy";
|
15
|
+
import type { PublicEvent } from "./Callback";
|
16
|
+
import type Emittery from "emittery";
|
17
17
|
export declare type WindowMangerAttributes = {
|
18
18
|
modelValue?: string;
|
19
19
|
boxState: TELE_BOX_STATE;
|
@@ -72,53 +72,6 @@ export declare type CursorMovePayload = {
|
|
72
72
|
state?: "leave";
|
73
73
|
position: Position;
|
74
74
|
};
|
75
|
-
export declare type EmitterEvent = {
|
76
|
-
onCreated: undefined;
|
77
|
-
InitReplay: AppInitState;
|
78
|
-
move: {
|
79
|
-
appId: string;
|
80
|
-
x: number;
|
81
|
-
y: number;
|
82
|
-
};
|
83
|
-
focus: {
|
84
|
-
appId: string;
|
85
|
-
};
|
86
|
-
close: {
|
87
|
-
appId: string;
|
88
|
-
};
|
89
|
-
resize: {
|
90
|
-
appId: string;
|
91
|
-
width: number;
|
92
|
-
height: number;
|
93
|
-
x?: number;
|
94
|
-
y?: number;
|
95
|
-
};
|
96
|
-
error: Error;
|
97
|
-
seek: number;
|
98
|
-
mainViewMounted: undefined;
|
99
|
-
observerIdChange: number;
|
100
|
-
boxStateChange: string;
|
101
|
-
playgroundSizeChange: DOMRect;
|
102
|
-
onReconnected: void;
|
103
|
-
removeScenes: string;
|
104
|
-
cursorMove: CursorMovePayload;
|
105
|
-
};
|
106
|
-
export declare type EmitterType = Emittery<EmitterEvent>;
|
107
|
-
export declare const emitter: EmitterType;
|
108
|
-
export declare type PublicEvent = {
|
109
|
-
mainViewModeChange: ViewVisionMode;
|
110
|
-
boxStateChange: `${TELE_BOX_STATE}`;
|
111
|
-
darkModeChange: boolean;
|
112
|
-
prefersColorSchemeChange: TeleBoxColorScheme;
|
113
|
-
cameraStateChange: CameraState;
|
114
|
-
mainViewScenePathChange: string;
|
115
|
-
mainViewSceneIndexChange: number;
|
116
|
-
focusedChange: string | undefined;
|
117
|
-
mainViewScenesLengthChange: number;
|
118
|
-
canRedoStepsChange: number;
|
119
|
-
canUndoStepsChange: number;
|
120
|
-
loadApp: LoadAppEvent;
|
121
|
-
};
|
122
75
|
export declare type MountParams = {
|
123
76
|
room: Room | Player;
|
124
77
|
container?: HTMLElement;
|
@@ -134,8 +87,6 @@ export declare type MountParams = {
|
|
134
87
|
disableCameraTransform?: boolean;
|
135
88
|
prefersColorScheme?: TeleBoxColorScheme;
|
136
89
|
};
|
137
|
-
export declare type CallbacksType = Emittery<PublicEvent>;
|
138
|
-
export declare const callbacks: CallbacksType;
|
139
90
|
export declare const reconnectRefresher: ReconnectRefresher;
|
140
91
|
export declare type AddPageParams = {
|
141
92
|
after?: boolean;
|
@@ -166,6 +117,7 @@ export declare class WindowManager extends InvisiblePlugin<WindowMangerAttribute
|
|
166
117
|
static mount(params: MountParams): Promise<WindowManager>;
|
167
118
|
private static initManager;
|
168
119
|
private static initContainer;
|
120
|
+
static get registered(): Map<string, RegisterParams<any, any, any>>;
|
169
121
|
bindContainer(container: HTMLElement): void;
|
170
122
|
bindCollectorContainer(container: HTMLElement): void;
|
171
123
|
/**
|
@@ -230,6 +182,7 @@ export declare class WindowManager extends InvisiblePlugin<WindowMangerAttribute
|
|
230
182
|
get mainViewScenesLength(): number;
|
231
183
|
get canRedoSteps(): number;
|
232
184
|
get canUndoSteps(): number;
|
185
|
+
get sceneState(): SceneState;
|
233
186
|
/**
|
234
187
|
* 查询所有的 App
|
235
188
|
*/
|