@owdproject/core 3.4.0 → 4.0.0-alpha.4
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/README.md +112 -13
- package/dist/dom/index.d.mts +65 -0
- package/dist/dom/index.d.ts +65 -0
- package/dist/dom/index.mjs +224 -0
- package/dist/events/index.d.mts +70 -0
- package/dist/events/index.d.ts +70 -0
- package/dist/events/index.mjs +3 -0
- package/dist/index.d.mts +73 -0
- package/dist/index.d.ts +73 -0
- package/dist/index.mjs +115 -0
- package/dist/layout/index.d.mts +41 -0
- package/dist/layout/index.d.ts +41 -0
- package/dist/layout/index.mjs +64 -0
- package/dist/machines/index.d.mts +31 -0
- package/dist/machines/index.d.ts +31 -0
- package/dist/machines/index.mjs +2 -0
- package/dist/managers/index.d.mts +118 -0
- package/dist/managers/index.d.ts +118 -0
- package/dist/managers/index.mjs +6 -0
- package/dist/session/index.d.mts +57 -0
- package/dist/session/index.d.ts +57 -0
- package/dist/session/index.mjs +65 -0
- package/dist/shared/core.B1XxB289.mjs +239 -0
- package/dist/shared/core.B3mp7ztE.mjs +237 -0
- package/dist/shared/core.BOvFdEVQ.d.ts +114 -0
- package/dist/shared/core.CsDFgGnX.mjs +40 -0
- package/dist/shared/core.Di1eFcr_.d.mts +114 -0
- package/dist/shared/core.Pd_Ogt4g.mjs +101 -0
- package/dist/shared/core.b3Xldzyu.mjs +29 -0
- package/dist/shared/core.d_A3q1kZ.mjs +869 -0
- package/dist/types/index.d.mts +266 -0
- package/dist/types/index.d.ts +266 -0
- package/dist/types/index.mjs +1 -0
- package/package.json +56 -112
- package/CHANGELOG.md +0 -98
- package/DESKTOP_KERNEL.md +0 -232
- package/MIGRATION_3.3.2.md +0 -23
- package/MIGRATION_3.4.md +0 -126
- package/PLAYGROUND.md +0 -91
- package/dist/module.d.mts +0 -13
- package/dist/module.json +0 -9
- package/dist/module.mjs +0 -254
- package/dist/types.d.mts +0 -7
- package/index.ts +0 -8
- package/kit/authoring.ts +0 -340
- package/kit/defineDesktopApp.ts +0 -56
- package/module.ts +0 -203
- package/runtime/components/Application/DesktopCoreApplicationRender.vue +0 -20
- package/runtime/components/Application/DesktopCoreApplicationWindowsRender.vue +0 -38
- package/runtime/components/background/DesktopCoreBackground.vue +0 -16
- package/runtime/components/core/DesktopCore.vue +0 -43
- package/runtime/components/time/DesktopCoreTime.vue +0 -56
- package/runtime/components/window/DesktopCoreWindow.vue +0 -215
- package/runtime/components/window/DesktopCoreWindowContent.vue +0 -28
- package/runtime/components/window/DesktopCoreWindowNav.vue +0 -66
- package/runtime/components/window/DesktopCoreWindowSnapHintsBase.vue +0 -74
- package/runtime/components/workspace/DesktopCoreWorkspaceEdgeHintsBase.vue +0 -84
- package/runtime/composables/useApplicationEntries.ts +0 -51
- package/runtime/composables/useApplicationManager.ts +0 -285
- package/runtime/composables/useBlockNonInputContextMenu.ts +0 -30
- package/runtime/composables/useDesktopConfig.ts +0 -8
- package/runtime/composables/useDesktopDialogs.ts +0 -16
- package/runtime/composables/useDesktopExtension.ts +0 -8
- package/runtime/composables/useDesktopManager.ts +0 -51
- package/runtime/composables/useDesktopManifest.ts +0 -17
- package/runtime/composables/useDesktopSession.ts +0 -27
- package/runtime/composables/useDesktopShellIdentity.ts +0 -99
- package/runtime/composables/useDesktopShellOptions.ts +0 -36
- package/runtime/composables/useDesktopShellReady.ts +0 -7
- package/runtime/composables/useDesktopWorkArea.ts +0 -93
- package/runtime/composables/useTerminalManager.ts +0 -159
- package/runtime/composables/useToggleWindowMaximize.ts +0 -35
- package/runtime/composables/useWindowDragHandlers.ts +0 -47
- package/runtime/composables/useWindowSnapDrop.ts +0 -112
- package/runtime/composables/useWorkspaceEdgeDrop.ts +0 -176
- package/runtime/composables/useWorkspaceManager.ts +0 -67
- package/runtime/composables/useWorkspaceOverviewCapture.ts +0 -92
- package/runtime/composables/useWorkspaceOverviewLiveScale.ts +0 -151
- package/runtime/constants/desktopShellKeys.ts +0 -12
- package/runtime/constants/shellLayout.ts +0 -5
- package/runtime/dialogs/desktopDialogProvider.ts +0 -73
- package/runtime/internal/controllers/ApplicationController.ts +0 -351
- package/runtime/internal/controllers/WindowController.ts +0 -547
- package/runtime/plugins/01.desktop-shell-init.client.ts +0 -28
- package/runtime/plugins/02.desktop-register-desktop-apps.client.ts +0 -13
- package/runtime/plugins/resize.client.ts +0 -6
- package/runtime/stores/storeApplicationMeta.ts +0 -60
- package/runtime/stores/storeApplicationWindows.ts +0 -21
- package/runtime/stores/storeDesktop.ts +0 -71
- package/runtime/stores/storeDesktopDefaultApps.ts +0 -54
- package/runtime/stores/storeDesktopVolume.ts +0 -19
- package/runtime/stores/storeDesktopWindow.ts +0 -38
- package/runtime/stores/storeDesktopWorkspace.ts +0 -105
- package/runtime/stores/storeIds.ts +0 -35
- package/runtime/types/desktopMenu.ts +0 -10
- package/runtime/utils/initDesktopShell.ts +0 -80
- package/runtime/utils/migratePersistedStoreIds.ts +0 -57
- package/runtime/utils/utilApp.ts +0 -25
- package/runtime/utils/utilCaptureElementToCanvas.ts +0 -21
- package/runtime/utils/utilCommon.ts +0 -26
- package/runtime/utils/utilDebug.ts +0 -30
- package/runtime/utils/utilDetectSnapZone.ts +0 -57
- package/runtime/utils/utilTerminal.ts +0 -6
- package/runtime/utils/utilWindowControllerAdapter.ts +0 -15
- package/runtime/utils/utilWindowLayout.ts +0 -82
- package/runtime/utils/utilWindowMaximizeLayout.ts +0 -44
- package/runtime/utils/utilWorkspaceWindows.ts +0 -33
- package/types/index.d.ts +0 -531
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @owdproject/core - Framework-Agnostic Types
|
|
3
|
+
*/
|
|
4
|
+
type WindowLayout = 'normal' | 'maximize' | 'bottom-half' | 'left-half' | 'right-half' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
5
|
+
type SnapZoneHint = Exclude<WindowLayout, 'normal'>;
|
|
6
|
+
interface WindowBounds {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
}
|
|
12
|
+
interface DesktopWorkareaRect {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
}
|
|
18
|
+
type WindowSizeValue = number | string | undefined;
|
|
19
|
+
interface WindowSize {
|
|
20
|
+
width?: WindowSizeValue;
|
|
21
|
+
height?: WindowSizeValue;
|
|
22
|
+
minWidth?: WindowSizeValue;
|
|
23
|
+
minHeight?: WindowSizeValue;
|
|
24
|
+
maxWidth?: WindowSizeValue;
|
|
25
|
+
maxHeight?: WindowSizeValue;
|
|
26
|
+
}
|
|
27
|
+
interface WindowPosition {
|
|
28
|
+
x?: number;
|
|
29
|
+
y?: number;
|
|
30
|
+
z?: number;
|
|
31
|
+
}
|
|
32
|
+
interface SpatialPoint3D {
|
|
33
|
+
x: number;
|
|
34
|
+
y: number;
|
|
35
|
+
z: number;
|
|
36
|
+
}
|
|
37
|
+
interface SpatialEuler {
|
|
38
|
+
pitch: number;
|
|
39
|
+
yaw: number;
|
|
40
|
+
roll: number;
|
|
41
|
+
}
|
|
42
|
+
interface SpatialTransform {
|
|
43
|
+
position: SpatialPoint3D;
|
|
44
|
+
rotation?: SpatialEuler;
|
|
45
|
+
scale?: SpatialPoint3D;
|
|
46
|
+
distance?: number;
|
|
47
|
+
curveRadius?: number;
|
|
48
|
+
}
|
|
49
|
+
type SpatialLayoutMode = 'cylinder' | 'sphere' | 'carousel' | 'depth-stack';
|
|
50
|
+
interface WindowConfig {
|
|
51
|
+
title?: string;
|
|
52
|
+
category?: string;
|
|
53
|
+
icon?: string;
|
|
54
|
+
component?: any;
|
|
55
|
+
position?: WindowPosition;
|
|
56
|
+
size: WindowSize;
|
|
57
|
+
minimizable?: boolean;
|
|
58
|
+
maximized?: boolean;
|
|
59
|
+
maximizable?: boolean;
|
|
60
|
+
destroyable?: boolean;
|
|
61
|
+
draggable?: boolean;
|
|
62
|
+
resizable?: boolean;
|
|
63
|
+
spatial?: SpatialTransform;
|
|
64
|
+
overridable?: Partial<Record<'position' | 'size' | 'maximized' | 'draggable' | 'resizable' | 'destroyable' | 'minimizable', boolean>>;
|
|
65
|
+
}
|
|
66
|
+
interface WindowOverride {
|
|
67
|
+
title?: string;
|
|
68
|
+
windowTitle?: string;
|
|
69
|
+
icon?: string;
|
|
70
|
+
}
|
|
71
|
+
interface WindowState {
|
|
72
|
+
id: string;
|
|
73
|
+
createdAt: number;
|
|
74
|
+
category?: string;
|
|
75
|
+
workspace: string;
|
|
76
|
+
position?: WindowPosition;
|
|
77
|
+
size?: WindowSize;
|
|
78
|
+
spatial?: SpatialTransform;
|
|
79
|
+
focused: boolean;
|
|
80
|
+
dragging?: boolean;
|
|
81
|
+
resizing?: boolean;
|
|
82
|
+
active?: boolean;
|
|
83
|
+
minimizable?: boolean;
|
|
84
|
+
maximized?: boolean;
|
|
85
|
+
maximizable?: boolean;
|
|
86
|
+
destroyable?: boolean;
|
|
87
|
+
draggable?: boolean;
|
|
88
|
+
resizable?: boolean;
|
|
89
|
+
layout?: WindowLayout;
|
|
90
|
+
boundsBeforeLayout?: WindowBounds;
|
|
91
|
+
}
|
|
92
|
+
interface WindowStoredState {
|
|
93
|
+
model: string;
|
|
94
|
+
state: WindowState;
|
|
95
|
+
meta: any;
|
|
96
|
+
}
|
|
97
|
+
type ApplicationEntryVisibility = 'primary' | 'secondary' | 'hidden';
|
|
98
|
+
interface ApplicationEntry {
|
|
99
|
+
title?: string;
|
|
100
|
+
icon?: string;
|
|
101
|
+
category?: string;
|
|
102
|
+
visibility?: ApplicationEntryVisibility;
|
|
103
|
+
command: string | any;
|
|
104
|
+
}
|
|
105
|
+
type ApplicationPermission = string;
|
|
106
|
+
interface ApplicationConfigProvide {
|
|
107
|
+
name: string;
|
|
108
|
+
entry: string;
|
|
109
|
+
command?: string;
|
|
110
|
+
}
|
|
111
|
+
interface ApplicationConfig {
|
|
112
|
+
id: string;
|
|
113
|
+
title: string;
|
|
114
|
+
icon?: string;
|
|
115
|
+
category?: string;
|
|
116
|
+
version?: string;
|
|
117
|
+
description?: string;
|
|
118
|
+
provides?: ApplicationConfigProvide;
|
|
119
|
+
singleton?: boolean;
|
|
120
|
+
meta?: Record<string, any>;
|
|
121
|
+
permissions?: ApplicationPermission[];
|
|
122
|
+
windows?: {
|
|
123
|
+
[key: string]: WindowConfig;
|
|
124
|
+
};
|
|
125
|
+
entries: {
|
|
126
|
+
[key: string]: ApplicationEntry;
|
|
127
|
+
};
|
|
128
|
+
commands?: {
|
|
129
|
+
[key: string]: (app: any, args: any) => void;
|
|
130
|
+
};
|
|
131
|
+
terminal?: {
|
|
132
|
+
[commandName: string]: Omit<DesktopCommand, 'name' | 'applicationId'>;
|
|
133
|
+
};
|
|
134
|
+
onReady?(app: any): void | Promise<void>;
|
|
135
|
+
onLaunch?(app: any): void | Promise<void>;
|
|
136
|
+
onRestore?(app: any): void | Promise<void>;
|
|
137
|
+
onClose?(app: any): void | Promise<void>;
|
|
138
|
+
}
|
|
139
|
+
interface DesktopCommandArg {
|
|
140
|
+
name: string;
|
|
141
|
+
description?: string;
|
|
142
|
+
required?: boolean;
|
|
143
|
+
}
|
|
144
|
+
interface DesktopCommandOption {
|
|
145
|
+
flag: string;
|
|
146
|
+
description?: string;
|
|
147
|
+
}
|
|
148
|
+
interface DesktopCommand {
|
|
149
|
+
name: string;
|
|
150
|
+
applicationId: string;
|
|
151
|
+
description?: string;
|
|
152
|
+
usage?: string;
|
|
153
|
+
args?: DesktopCommandArg[];
|
|
154
|
+
options?: DesktopCommandOption[];
|
|
155
|
+
}
|
|
156
|
+
interface CommandOutput {
|
|
157
|
+
message: string;
|
|
158
|
+
isError?: boolean;
|
|
159
|
+
}
|
|
160
|
+
interface DesktopKernelEvent {
|
|
161
|
+
id: string;
|
|
162
|
+
timestamp: number;
|
|
163
|
+
channel: string;
|
|
164
|
+
source: string;
|
|
165
|
+
severity: 'info' | 'warn' | 'error';
|
|
166
|
+
payload?: any;
|
|
167
|
+
}
|
|
168
|
+
interface DesktopAppDefineContext {
|
|
169
|
+
id: string;
|
|
170
|
+
config: ApplicationConfig;
|
|
171
|
+
cancel?: boolean;
|
|
172
|
+
}
|
|
173
|
+
interface DesktopAppLaunchContext {
|
|
174
|
+
app: any;
|
|
175
|
+
entryKey?: string;
|
|
176
|
+
argument?: string;
|
|
177
|
+
cancel?: boolean;
|
|
178
|
+
}
|
|
179
|
+
interface DesktopAppSignalContext {
|
|
180
|
+
app: any;
|
|
181
|
+
signal?: 'SIGTERM' | 'SIGKILL' | 'SIGSTOP' | 'SIGCONT';
|
|
182
|
+
cancel?: boolean;
|
|
183
|
+
}
|
|
184
|
+
interface DesktopWindowOpenContext {
|
|
185
|
+
app: any;
|
|
186
|
+
model: string;
|
|
187
|
+
config: WindowConfig;
|
|
188
|
+
meta?: Record<string, any>;
|
|
189
|
+
cancel?: boolean;
|
|
190
|
+
}
|
|
191
|
+
interface DesktopWindowCloseContext {
|
|
192
|
+
window: any;
|
|
193
|
+
app: any;
|
|
194
|
+
cancel?: boolean;
|
|
195
|
+
}
|
|
196
|
+
interface DesktopCommandExecContext {
|
|
197
|
+
input: string;
|
|
198
|
+
commandName: string;
|
|
199
|
+
args: string[];
|
|
200
|
+
cancel?: boolean;
|
|
201
|
+
overrideOutput?: CommandOutput;
|
|
202
|
+
}
|
|
203
|
+
interface DesktopWorkspaceSwitchContext {
|
|
204
|
+
from: string;
|
|
205
|
+
to: string;
|
|
206
|
+
cancel?: boolean;
|
|
207
|
+
}
|
|
208
|
+
interface DesktopRuntimeHooks {
|
|
209
|
+
'app:before-define': (ctx: DesktopAppDefineContext) => Promise<void> | void;
|
|
210
|
+
'app:defined': (payload: {
|
|
211
|
+
app: any;
|
|
212
|
+
}) => Promise<void> | void;
|
|
213
|
+
'app:before-launch': (ctx: DesktopAppLaunchContext) => Promise<void> | void;
|
|
214
|
+
'app:launched': (payload: {
|
|
215
|
+
app: any;
|
|
216
|
+
pid: number | null;
|
|
217
|
+
}) => Promise<void> | void;
|
|
218
|
+
'app:before-suspend': (ctx: DesktopAppSignalContext) => Promise<void> | void;
|
|
219
|
+
'app:suspended': (payload: {
|
|
220
|
+
app: any;
|
|
221
|
+
}) => Promise<void> | void;
|
|
222
|
+
'app:before-resume': (ctx: DesktopAppSignalContext) => Promise<void> | void;
|
|
223
|
+
'app:resumed': (payload: {
|
|
224
|
+
app: any;
|
|
225
|
+
}) => Promise<void> | void;
|
|
226
|
+
'app:before-terminate': (ctx: DesktopAppSignalContext) => Promise<void> | void;
|
|
227
|
+
'app:terminated': (payload: {
|
|
228
|
+
id: string;
|
|
229
|
+
title: string;
|
|
230
|
+
pid: number | null;
|
|
231
|
+
}) => Promise<void> | void;
|
|
232
|
+
'window:before-open': (ctx: DesktopWindowOpenContext) => Promise<void> | void;
|
|
233
|
+
'window:opened': (payload: {
|
|
234
|
+
window: any;
|
|
235
|
+
app: any;
|
|
236
|
+
}) => Promise<void> | void;
|
|
237
|
+
'window:focused': (payload: {
|
|
238
|
+
window: any;
|
|
239
|
+
previousWindow?: any;
|
|
240
|
+
}) => Promise<void> | void;
|
|
241
|
+
'window:blurred': (payload: {
|
|
242
|
+
window: any;
|
|
243
|
+
}) => Promise<void> | void;
|
|
244
|
+
'window:layout-change': (payload: {
|
|
245
|
+
window: any;
|
|
246
|
+
layout: WindowLayout;
|
|
247
|
+
}) => Promise<void> | void;
|
|
248
|
+
'window:before-close': (ctx: DesktopWindowCloseContext) => Promise<void> | void;
|
|
249
|
+
'window:closed': (payload: {
|
|
250
|
+
windowId: string;
|
|
251
|
+
app: any;
|
|
252
|
+
}) => Promise<void> | void;
|
|
253
|
+
'command:before-exec': (ctx: DesktopCommandExecContext) => Promise<void> | void;
|
|
254
|
+
'command:after-exec': (payload: {
|
|
255
|
+
input: string;
|
|
256
|
+
commandName: string;
|
|
257
|
+
output: CommandOutput | void;
|
|
258
|
+
}) => Promise<void> | void;
|
|
259
|
+
'workspace:before-switch': (ctx: DesktopWorkspaceSwitchContext) => Promise<void> | void;
|
|
260
|
+
'workspace:switched': (payload: {
|
|
261
|
+
from: string;
|
|
262
|
+
to: string;
|
|
263
|
+
}) => Promise<void> | void;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
export type { ApplicationConfig, ApplicationConfigProvide, ApplicationEntry, ApplicationEntryVisibility, ApplicationPermission, CommandOutput, DesktopAppDefineContext, DesktopAppLaunchContext, DesktopAppSignalContext, DesktopCommand, DesktopCommandArg, DesktopCommandExecContext, DesktopCommandOption, DesktopKernelEvent, DesktopRuntimeHooks, DesktopWindowCloseContext, DesktopWindowOpenContext, DesktopWorkareaRect, DesktopWorkspaceSwitchContext, SnapZoneHint, SpatialEuler, SpatialLayoutMode, SpatialPoint3D, SpatialTransform, WindowBounds, WindowConfig, WindowLayout, WindowOverride, WindowPosition, WindowSize, WindowSizeValue, WindowState, WindowStoredState };
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @owdproject/core - Framework-Agnostic Types
|
|
3
|
+
*/
|
|
4
|
+
type WindowLayout = 'normal' | 'maximize' | 'bottom-half' | 'left-half' | 'right-half' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
5
|
+
type SnapZoneHint = Exclude<WindowLayout, 'normal'>;
|
|
6
|
+
interface WindowBounds {
|
|
7
|
+
x: number;
|
|
8
|
+
y: number;
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
}
|
|
12
|
+
interface DesktopWorkareaRect {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
}
|
|
18
|
+
type WindowSizeValue = number | string | undefined;
|
|
19
|
+
interface WindowSize {
|
|
20
|
+
width?: WindowSizeValue;
|
|
21
|
+
height?: WindowSizeValue;
|
|
22
|
+
minWidth?: WindowSizeValue;
|
|
23
|
+
minHeight?: WindowSizeValue;
|
|
24
|
+
maxWidth?: WindowSizeValue;
|
|
25
|
+
maxHeight?: WindowSizeValue;
|
|
26
|
+
}
|
|
27
|
+
interface WindowPosition {
|
|
28
|
+
x?: number;
|
|
29
|
+
y?: number;
|
|
30
|
+
z?: number;
|
|
31
|
+
}
|
|
32
|
+
interface SpatialPoint3D {
|
|
33
|
+
x: number;
|
|
34
|
+
y: number;
|
|
35
|
+
z: number;
|
|
36
|
+
}
|
|
37
|
+
interface SpatialEuler {
|
|
38
|
+
pitch: number;
|
|
39
|
+
yaw: number;
|
|
40
|
+
roll: number;
|
|
41
|
+
}
|
|
42
|
+
interface SpatialTransform {
|
|
43
|
+
position: SpatialPoint3D;
|
|
44
|
+
rotation?: SpatialEuler;
|
|
45
|
+
scale?: SpatialPoint3D;
|
|
46
|
+
distance?: number;
|
|
47
|
+
curveRadius?: number;
|
|
48
|
+
}
|
|
49
|
+
type SpatialLayoutMode = 'cylinder' | 'sphere' | 'carousel' | 'depth-stack';
|
|
50
|
+
interface WindowConfig {
|
|
51
|
+
title?: string;
|
|
52
|
+
category?: string;
|
|
53
|
+
icon?: string;
|
|
54
|
+
component?: any;
|
|
55
|
+
position?: WindowPosition;
|
|
56
|
+
size: WindowSize;
|
|
57
|
+
minimizable?: boolean;
|
|
58
|
+
maximized?: boolean;
|
|
59
|
+
maximizable?: boolean;
|
|
60
|
+
destroyable?: boolean;
|
|
61
|
+
draggable?: boolean;
|
|
62
|
+
resizable?: boolean;
|
|
63
|
+
spatial?: SpatialTransform;
|
|
64
|
+
overridable?: Partial<Record<'position' | 'size' | 'maximized' | 'draggable' | 'resizable' | 'destroyable' | 'minimizable', boolean>>;
|
|
65
|
+
}
|
|
66
|
+
interface WindowOverride {
|
|
67
|
+
title?: string;
|
|
68
|
+
windowTitle?: string;
|
|
69
|
+
icon?: string;
|
|
70
|
+
}
|
|
71
|
+
interface WindowState {
|
|
72
|
+
id: string;
|
|
73
|
+
createdAt: number;
|
|
74
|
+
category?: string;
|
|
75
|
+
workspace: string;
|
|
76
|
+
position?: WindowPosition;
|
|
77
|
+
size?: WindowSize;
|
|
78
|
+
spatial?: SpatialTransform;
|
|
79
|
+
focused: boolean;
|
|
80
|
+
dragging?: boolean;
|
|
81
|
+
resizing?: boolean;
|
|
82
|
+
active?: boolean;
|
|
83
|
+
minimizable?: boolean;
|
|
84
|
+
maximized?: boolean;
|
|
85
|
+
maximizable?: boolean;
|
|
86
|
+
destroyable?: boolean;
|
|
87
|
+
draggable?: boolean;
|
|
88
|
+
resizable?: boolean;
|
|
89
|
+
layout?: WindowLayout;
|
|
90
|
+
boundsBeforeLayout?: WindowBounds;
|
|
91
|
+
}
|
|
92
|
+
interface WindowStoredState {
|
|
93
|
+
model: string;
|
|
94
|
+
state: WindowState;
|
|
95
|
+
meta: any;
|
|
96
|
+
}
|
|
97
|
+
type ApplicationEntryVisibility = 'primary' | 'secondary' | 'hidden';
|
|
98
|
+
interface ApplicationEntry {
|
|
99
|
+
title?: string;
|
|
100
|
+
icon?: string;
|
|
101
|
+
category?: string;
|
|
102
|
+
visibility?: ApplicationEntryVisibility;
|
|
103
|
+
command: string | any;
|
|
104
|
+
}
|
|
105
|
+
type ApplicationPermission = string;
|
|
106
|
+
interface ApplicationConfigProvide {
|
|
107
|
+
name: string;
|
|
108
|
+
entry: string;
|
|
109
|
+
command?: string;
|
|
110
|
+
}
|
|
111
|
+
interface ApplicationConfig {
|
|
112
|
+
id: string;
|
|
113
|
+
title: string;
|
|
114
|
+
icon?: string;
|
|
115
|
+
category?: string;
|
|
116
|
+
version?: string;
|
|
117
|
+
description?: string;
|
|
118
|
+
provides?: ApplicationConfigProvide;
|
|
119
|
+
singleton?: boolean;
|
|
120
|
+
meta?: Record<string, any>;
|
|
121
|
+
permissions?: ApplicationPermission[];
|
|
122
|
+
windows?: {
|
|
123
|
+
[key: string]: WindowConfig;
|
|
124
|
+
};
|
|
125
|
+
entries: {
|
|
126
|
+
[key: string]: ApplicationEntry;
|
|
127
|
+
};
|
|
128
|
+
commands?: {
|
|
129
|
+
[key: string]: (app: any, args: any) => void;
|
|
130
|
+
};
|
|
131
|
+
terminal?: {
|
|
132
|
+
[commandName: string]: Omit<DesktopCommand, 'name' | 'applicationId'>;
|
|
133
|
+
};
|
|
134
|
+
onReady?(app: any): void | Promise<void>;
|
|
135
|
+
onLaunch?(app: any): void | Promise<void>;
|
|
136
|
+
onRestore?(app: any): void | Promise<void>;
|
|
137
|
+
onClose?(app: any): void | Promise<void>;
|
|
138
|
+
}
|
|
139
|
+
interface DesktopCommandArg {
|
|
140
|
+
name: string;
|
|
141
|
+
description?: string;
|
|
142
|
+
required?: boolean;
|
|
143
|
+
}
|
|
144
|
+
interface DesktopCommandOption {
|
|
145
|
+
flag: string;
|
|
146
|
+
description?: string;
|
|
147
|
+
}
|
|
148
|
+
interface DesktopCommand {
|
|
149
|
+
name: string;
|
|
150
|
+
applicationId: string;
|
|
151
|
+
description?: string;
|
|
152
|
+
usage?: string;
|
|
153
|
+
args?: DesktopCommandArg[];
|
|
154
|
+
options?: DesktopCommandOption[];
|
|
155
|
+
}
|
|
156
|
+
interface CommandOutput {
|
|
157
|
+
message: string;
|
|
158
|
+
isError?: boolean;
|
|
159
|
+
}
|
|
160
|
+
interface DesktopKernelEvent {
|
|
161
|
+
id: string;
|
|
162
|
+
timestamp: number;
|
|
163
|
+
channel: string;
|
|
164
|
+
source: string;
|
|
165
|
+
severity: 'info' | 'warn' | 'error';
|
|
166
|
+
payload?: any;
|
|
167
|
+
}
|
|
168
|
+
interface DesktopAppDefineContext {
|
|
169
|
+
id: string;
|
|
170
|
+
config: ApplicationConfig;
|
|
171
|
+
cancel?: boolean;
|
|
172
|
+
}
|
|
173
|
+
interface DesktopAppLaunchContext {
|
|
174
|
+
app: any;
|
|
175
|
+
entryKey?: string;
|
|
176
|
+
argument?: string;
|
|
177
|
+
cancel?: boolean;
|
|
178
|
+
}
|
|
179
|
+
interface DesktopAppSignalContext {
|
|
180
|
+
app: any;
|
|
181
|
+
signal?: 'SIGTERM' | 'SIGKILL' | 'SIGSTOP' | 'SIGCONT';
|
|
182
|
+
cancel?: boolean;
|
|
183
|
+
}
|
|
184
|
+
interface DesktopWindowOpenContext {
|
|
185
|
+
app: any;
|
|
186
|
+
model: string;
|
|
187
|
+
config: WindowConfig;
|
|
188
|
+
meta?: Record<string, any>;
|
|
189
|
+
cancel?: boolean;
|
|
190
|
+
}
|
|
191
|
+
interface DesktopWindowCloseContext {
|
|
192
|
+
window: any;
|
|
193
|
+
app: any;
|
|
194
|
+
cancel?: boolean;
|
|
195
|
+
}
|
|
196
|
+
interface DesktopCommandExecContext {
|
|
197
|
+
input: string;
|
|
198
|
+
commandName: string;
|
|
199
|
+
args: string[];
|
|
200
|
+
cancel?: boolean;
|
|
201
|
+
overrideOutput?: CommandOutput;
|
|
202
|
+
}
|
|
203
|
+
interface DesktopWorkspaceSwitchContext {
|
|
204
|
+
from: string;
|
|
205
|
+
to: string;
|
|
206
|
+
cancel?: boolean;
|
|
207
|
+
}
|
|
208
|
+
interface DesktopRuntimeHooks {
|
|
209
|
+
'app:before-define': (ctx: DesktopAppDefineContext) => Promise<void> | void;
|
|
210
|
+
'app:defined': (payload: {
|
|
211
|
+
app: any;
|
|
212
|
+
}) => Promise<void> | void;
|
|
213
|
+
'app:before-launch': (ctx: DesktopAppLaunchContext) => Promise<void> | void;
|
|
214
|
+
'app:launched': (payload: {
|
|
215
|
+
app: any;
|
|
216
|
+
pid: number | null;
|
|
217
|
+
}) => Promise<void> | void;
|
|
218
|
+
'app:before-suspend': (ctx: DesktopAppSignalContext) => Promise<void> | void;
|
|
219
|
+
'app:suspended': (payload: {
|
|
220
|
+
app: any;
|
|
221
|
+
}) => Promise<void> | void;
|
|
222
|
+
'app:before-resume': (ctx: DesktopAppSignalContext) => Promise<void> | void;
|
|
223
|
+
'app:resumed': (payload: {
|
|
224
|
+
app: any;
|
|
225
|
+
}) => Promise<void> | void;
|
|
226
|
+
'app:before-terminate': (ctx: DesktopAppSignalContext) => Promise<void> | void;
|
|
227
|
+
'app:terminated': (payload: {
|
|
228
|
+
id: string;
|
|
229
|
+
title: string;
|
|
230
|
+
pid: number | null;
|
|
231
|
+
}) => Promise<void> | void;
|
|
232
|
+
'window:before-open': (ctx: DesktopWindowOpenContext) => Promise<void> | void;
|
|
233
|
+
'window:opened': (payload: {
|
|
234
|
+
window: any;
|
|
235
|
+
app: any;
|
|
236
|
+
}) => Promise<void> | void;
|
|
237
|
+
'window:focused': (payload: {
|
|
238
|
+
window: any;
|
|
239
|
+
previousWindow?: any;
|
|
240
|
+
}) => Promise<void> | void;
|
|
241
|
+
'window:blurred': (payload: {
|
|
242
|
+
window: any;
|
|
243
|
+
}) => Promise<void> | void;
|
|
244
|
+
'window:layout-change': (payload: {
|
|
245
|
+
window: any;
|
|
246
|
+
layout: WindowLayout;
|
|
247
|
+
}) => Promise<void> | void;
|
|
248
|
+
'window:before-close': (ctx: DesktopWindowCloseContext) => Promise<void> | void;
|
|
249
|
+
'window:closed': (payload: {
|
|
250
|
+
windowId: string;
|
|
251
|
+
app: any;
|
|
252
|
+
}) => Promise<void> | void;
|
|
253
|
+
'command:before-exec': (ctx: DesktopCommandExecContext) => Promise<void> | void;
|
|
254
|
+
'command:after-exec': (payload: {
|
|
255
|
+
input: string;
|
|
256
|
+
commandName: string;
|
|
257
|
+
output: CommandOutput | void;
|
|
258
|
+
}) => Promise<void> | void;
|
|
259
|
+
'workspace:before-switch': (ctx: DesktopWorkspaceSwitchContext) => Promise<void> | void;
|
|
260
|
+
'workspace:switched': (payload: {
|
|
261
|
+
from: string;
|
|
262
|
+
to: string;
|
|
263
|
+
}) => Promise<void> | void;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
export type { ApplicationConfig, ApplicationConfigProvide, ApplicationEntry, ApplicationEntryVisibility, ApplicationPermission, CommandOutput, DesktopAppDefineContext, DesktopAppLaunchContext, DesktopAppSignalContext, DesktopCommand, DesktopCommandArg, DesktopCommandExecContext, DesktopCommandOption, DesktopKernelEvent, DesktopRuntimeHooks, DesktopWindowCloseContext, DesktopWindowOpenContext, DesktopWorkareaRect, DesktopWorkspaceSwitchContext, SnapZoneHint, SpatialEuler, SpatialLayoutMode, SpatialPoint3D, SpatialTransform, WindowBounds, WindowConfig, WindowLayout, WindowOverride, WindowPosition, WindowSize, WindowSizeValue, WindowState, WindowStoredState };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|