@interopio/workspaces-api 3.2.1 → 3.2.3

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.
Files changed (40) hide show
  1. package/dist/workspaces.es.js +4295 -4648
  2. package/dist/workspaces.es.js.map +1 -1
  3. package/dist/workspaces.umd.js +5206 -5559
  4. package/dist/workspaces.umd.js.map +1 -1
  5. package/dist/workspaces.umd.min.js +1 -1
  6. package/package.json +36 -50
  7. package/workspaces.d.ts +8 -0
  8. package/rollup.config.js +0 -54
  9. package/src/builders/baseBuilder.ts +0 -50
  10. package/src/builders/parentBuilder.ts +0 -62
  11. package/src/builders/workspaceBuilder.ts +0 -102
  12. package/src/communication/bridge.ts +0 -263
  13. package/src/communication/constants.ts +0 -202
  14. package/src/communication/interop-transport.ts +0 -175
  15. package/src/controllers/base.ts +0 -487
  16. package/src/controllers/main.ts +0 -541
  17. package/src/controllers/shortcuts.ts +0 -28
  18. package/src/index.ts +0 -23
  19. package/src/main.ts +0 -415
  20. package/src/models/base/base.ts +0 -397
  21. package/src/models/column.ts +0 -187
  22. package/src/models/frame.ts +0 -368
  23. package/src/models/group.ts +0 -237
  24. package/src/models/row.ts +0 -188
  25. package/src/models/window.ts +0 -309
  26. package/src/models/workspace.ts +0 -717
  27. package/src/shared/decoders.ts +0 -939
  28. package/src/shared/ioc.ts +0 -227
  29. package/src/shared/privateDataManager.ts +0 -93
  30. package/src/shared/promisePlus.ts +0 -34
  31. package/src/shared/promiseWrapper.ts +0 -11
  32. package/src/types/builders.ts +0 -10
  33. package/src/types/controller.ts +0 -79
  34. package/src/types/glue.ts +0 -37
  35. package/src/types/ioc.ts +0 -33
  36. package/src/types/privateData.ts +0 -92
  37. package/src/types/protocol.ts +0 -453
  38. package/src/types/subscription.ts +0 -31
  39. package/temp.d.ts +0 -49
  40. package/tsconfig.json +0 -10
package/src/shared/ioc.ts DELETED
@@ -1,227 +0,0 @@
1
- /*eslint indent: [2, 4, {"SwitchCase": 1}]*/
2
- import CallbackFactory from "callback-registry";
3
- import { Bridge } from "../communication/bridge";
4
- import { InteropTransport } from "../communication/interop-transport";
5
- import { BaseBuilder } from "../builders/baseBuilder";
6
- import { ParentBuilder } from "../builders/parentBuilder";
7
- import { WorkspaceBuilder } from "../builders/workspaceBuilder";
8
- import { ModelMaps, ModelTypes, FramePrivateData, WindowPrivateData, WorkspacePrivateData, ParentPrivateData } from "../types/privateData";
9
- import { PrivateDataManager } from "./privateDataManager";
10
- import { FrameCreateConfig, ModelCreateConfig, WindowCreateConfig, WorkspaceIoCCreateConfig, ParentCreateConfig } from "../types/ioc";
11
- import { Frame } from "../models/frame";
12
- import { Window } from "../models/window";
13
- import { Workspace } from "../models/workspace";
14
- import { ChildSnapshotResult } from "../types/protocol";
15
- import { AllParentTypes, Child } from "../types/builders";
16
- import { Row } from "../models/row";
17
- import { Column } from "../models/column";
18
- import { Group } from "../models/group";
19
- import { Base } from "../models/base/base";
20
- import { IOConnectWorkspaces } from "../../workspaces";
21
- import { WorkspacesController } from "../types/controller";
22
- import { InteropAPI, WindowsAPI, LayoutsAPI, ContextsAPI } from "../types/glue";
23
- import { BaseController } from "../controllers/base";
24
- import { MainController } from "../controllers/main";
25
- import { ShortcutsController } from "../controllers/shortcuts";
26
-
27
- export class IoC {
28
-
29
- private _controllerInstance: WorkspacesController;
30
- private _bridgeInstance: Bridge;
31
- private _transportInstance: InteropTransport;
32
- private _privateDataManagerInstance: PrivateDataManager;
33
- private _parentBaseInstance: Base;
34
- private _baseController: BaseController;
35
- private _shortcutsController: ShortcutsController;
36
-
37
- constructor(
38
- private readonly agm: InteropAPI,
39
- private readonly windows: WindowsAPI,
40
- private readonly layouts: LayoutsAPI,
41
- private readonly contexts: ContextsAPI
42
- ) { }
43
-
44
- public get baseController(): BaseController {
45
- if (!this._baseController) {
46
- this._baseController = new BaseController(this, this.windows, this.contexts, this.layouts);
47
- }
48
-
49
- return this._baseController;
50
- }
51
-
52
- public get controller(): WorkspacesController {
53
- if (!this._controllerInstance) {
54
- this._controllerInstance = new MainController(this.bridge, this.baseController, this.shortcutsController);
55
- }
56
- return this._controllerInstance;
57
- }
58
-
59
- public get shortcutsController(): ShortcutsController {
60
- if (!this._shortcutsController) {
61
- this._shortcutsController = new ShortcutsController(this.bridge);
62
- }
63
- return this._shortcutsController;
64
- }
65
-
66
- public get bridge(): Bridge {
67
- if (!this._bridgeInstance) {
68
- this._bridgeInstance = new Bridge(this.transport, CallbackFactory());
69
- }
70
- return this._bridgeInstance;
71
- }
72
-
73
- public get transport(): InteropTransport {
74
-
75
- if (!this._transportInstance) {
76
- this._transportInstance = new InteropTransport(this.agm, CallbackFactory());
77
- }
78
-
79
- return this._transportInstance;
80
- }
81
-
82
- public get privateDataManager(): PrivateDataManager {
83
- if (!this._privateDataManagerInstance) {
84
- this._privateDataManagerInstance = new PrivateDataManager();
85
- }
86
- return this._privateDataManagerInstance;
87
- }
88
-
89
- public get parentBase(): Base {
90
- if (!this._parentBaseInstance) {
91
- this._parentBaseInstance = new Base(this.privateDataManager);
92
- }
93
- return this._parentBaseInstance;
94
- }
95
-
96
- public async initiate(actualWindowId: string): Promise<void> {
97
- await this.transport.initiate(actualWindowId);
98
- }
99
-
100
- public getModel<T extends ModelTypes>(type: ModelTypes, createConfig: ModelCreateConfig): ModelMaps[T] {
101
- switch (type) {
102
- case "frame": {
103
- const newFrame = new Frame(this.privateDataManager);
104
-
105
- const { summary } = createConfig as FrameCreateConfig;
106
-
107
- const frameData: FramePrivateData = { summary, controller: this.controller };
108
-
109
- this.privateDataManager.setFrameData(newFrame, frameData);
110
-
111
- return newFrame as ModelMaps[T];
112
- }
113
- case "window": {
114
- const { id, parent, frame, workspace, config } = createConfig as WindowCreateConfig;
115
-
116
- const windowPrivateData: WindowPrivateData = {
117
- type: "window",
118
- controller: this.controller,
119
- config, id, parent, frame, workspace
120
- };
121
-
122
- const newWindow = new Window(this.privateDataManager);
123
-
124
- this.privateDataManager.setWindowData(newWindow, windowPrivateData);
125
-
126
- return newWindow as ModelMaps[T];
127
- }
128
- case "row":
129
- case "column":
130
- case "group": {
131
- const { id, children, parent, frame, workspace, config } = createConfig as ParentCreateConfig;
132
-
133
- const newParent = type === "column" ? new Column(this.parentBase) :
134
- type === "row" ? new Row(this.parentBase) : new Group(this.parentBase);
135
-
136
- const builtChildren = this.buildChildren(children, frame, workspace, newParent);
137
-
138
- const parentPrivateData = {
139
- id, parent, frame, workspace,
140
- config,
141
- type,
142
- controller: this.controller,
143
- children: builtChildren,
144
- };
145
-
146
- this.privateDataManager.setParentData(newParent, parentPrivateData as ParentPrivateData);
147
-
148
- return newParent as ModelMaps[T];
149
- }
150
- case "workspace": {
151
- const { snapshot, frame } = createConfig as WorkspaceIoCCreateConfig;
152
-
153
- const newWorkspace = new Workspace(this.privateDataManager);
154
-
155
- const children = this.buildChildren(snapshot.children, frame, newWorkspace, newWorkspace);
156
-
157
- const workspacePrivateData: WorkspacePrivateData = {
158
- id: snapshot.id,
159
- type: "workspace",
160
- config: snapshot.config,
161
- base: this.parentBase,
162
- controller: this.controller,
163
- children, frame, ioc: this
164
- };
165
-
166
- this.privateDataManager.setWorkspaceData(newWorkspace, workspacePrivateData);
167
- return newWorkspace as ModelMaps[T];
168
- }
169
- default: throw new Error(`Unrecognized type: ${type}`);
170
- }
171
- }
172
-
173
- public getBuilder(config: IOConnectWorkspaces.BuilderConfig): WorkspaceBuilder | ParentBuilder {
174
- config.definition = config.definition || {};
175
-
176
- if (!Array.isArray(config.definition.children)) {
177
- config.definition.children = [];
178
- }
179
-
180
- const baseBuilder = new BaseBuilder(this.getBuilder.bind(this));
181
-
182
- switch (config.type) {
183
- case "workspace": {
184
- return new WorkspaceBuilder(config.definition as IOConnectWorkspaces.WorkspaceDefinition, baseBuilder, this.controller);
185
- }
186
- case "row":
187
- case "column":
188
- case "group": {
189
- (config.definition as IOConnectWorkspaces.BoxDefinition).type = config.type;
190
- return new ParentBuilder(config.definition as IOConnectWorkspaces.BoxDefinition, baseBuilder);
191
- }
192
- default: throw new Error(`Unexpected Builder creation error, provided config: ${JSON.stringify(config)}`);
193
- }
194
- }
195
-
196
- private buildChildren(children: ChildSnapshotResult[], frame: Frame, workspace: IOConnectWorkspaces.Workspace, parent: AllParentTypes): Child[] {
197
- return children.map<Child>((child) => {
198
- switch (child.type) {
199
- case "window": return this.getModel<"window">("window", {
200
- id: child.id,
201
- config: child.config,
202
- frame, workspace, parent
203
- } as WindowCreateConfig);
204
- case "column": return this.getModel<"column">(child.type, {
205
- id: child.id,
206
- config: child.config,
207
- children: child.children,
208
- frame, workspace, parent
209
- } as ParentCreateConfig);
210
- case "row": return this.getModel<"row">(child.type, {
211
- id: child.id,
212
- config: child.config,
213
- children: child.children,
214
- frame, workspace, parent
215
- } as ParentCreateConfig);
216
- case "group": return this.getModel<"group">(child.type, {
217
- id: child.id,
218
- config: child.config,
219
- children: child.children,
220
- frame, workspace, parent
221
- } as ParentCreateConfig);
222
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
223
- default: throw new Error(`Unsupported child type: ${(child as any).type}`);
224
- }
225
- });
226
- }
227
- }
@@ -1,93 +0,0 @@
1
- import { Row } from "../models/row";
2
- import { Column } from "../models/column";
3
- import { Group } from "../models/group";
4
- import { ParentPrivateData, WorkspacePrivateData, WindowPrivateData, FramePrivateData, RemapChildData, RemapWorkspaceData } from "../types/privateData";
5
- import { Workspace } from "../models/workspace";
6
- import { Window } from "../models/window";
7
- import { Frame } from "../models/frame";
8
- import { SwimlaneWindowSnapshotConfig, ParentSnapshotConfig, FrameSummaryResult } from "../types/protocol";
9
- import { Child, SubParentTypes } from "../types/builders";
10
-
11
- export class PrivateDataManager {
12
- private readonly parentsData = new WeakMap<SubParentTypes, ParentPrivateData>();
13
- private readonly workspacesData = new WeakMap<Workspace, WorkspacePrivateData>();
14
- private readonly windowsData = new WeakMap<Window, WindowPrivateData>();
15
- private readonly framesData = new WeakMap<Frame, FramePrivateData>();
16
-
17
- public deleteData<T>(model: T): void {
18
- if (model instanceof Window) {
19
- this.windowsData.delete(model);
20
- }
21
-
22
- if (model instanceof Workspace) {
23
- this.workspacesData.delete(model);
24
- }
25
-
26
- if (model instanceof Row || model instanceof Column || model instanceof Group) {
27
- this.parentsData.delete(model);
28
- }
29
-
30
- if (model instanceof Frame) {
31
- this.framesData.delete(model);
32
- }
33
- }
34
-
35
- public setWindowData(model: Window, data: WindowPrivateData): void {
36
- this.windowsData.set(model, data);
37
- }
38
-
39
- public setWorkspaceData(model: Workspace, data: WorkspacePrivateData): void {
40
- this.workspacesData.set(model, data);
41
- }
42
-
43
- public setParentData(model: SubParentTypes, data: ParentPrivateData): void {
44
- this.parentsData.set(model, data);
45
- }
46
-
47
- public setFrameData(model: Frame, data: FramePrivateData): void {
48
- this.framesData.set(model, data);
49
- }
50
-
51
- public getWindowData(model: Window): WindowPrivateData {
52
- return this.windowsData.get(model);
53
- }
54
-
55
- public getWorkspaceData(model: Workspace): WorkspacePrivateData {
56
- return this.workspacesData.get(model);
57
- }
58
-
59
- public getParentData(model: SubParentTypes): ParentPrivateData {
60
- return this.parentsData.get(model);
61
- }
62
-
63
- public getFrameData(model: Frame): FramePrivateData {
64
- return this.framesData.get(model);
65
- }
66
-
67
- public remapChild(model: Child, newData: RemapChildData): void {
68
- if (model instanceof Window) {
69
- const data = this.windowsData.get(model);
70
- data.parent = newData.parent || data.parent;
71
- data.config = newData.config as SwimlaneWindowSnapshotConfig || data.config;
72
- }
73
-
74
- if (model instanceof Row || model instanceof Column || model instanceof Group) {
75
- const data = this.parentsData.get(model);
76
- data.parent = newData.parent || data.parent;
77
- data.config = newData.config as ParentSnapshotConfig || data.config;
78
- data.children = newData.children || data.children;
79
- }
80
- }
81
-
82
- public remapFrame(model: Frame, newData: FrameSummaryResult): void {
83
- const data = this.framesData.get(model);
84
- data.summary = newData;
85
- }
86
-
87
- public remapWorkspace(model: Workspace, newData: RemapWorkspaceData): void {
88
- const data = this.workspacesData.get(model);
89
- data.frame = newData.frame || data.frame;
90
- data.config = newData.config || data.config;
91
- data.children = newData.children || data.children;
92
- }
93
- }
@@ -1,34 +0,0 @@
1
- export const promisePlus = <T>(promise: () => Promise<T>, timeoutMilliseconds: number, timeoutMessage?: string): Promise<T> => {
2
- return new Promise<T>((resolve, reject) => {
3
-
4
- let promiseActive = true;
5
-
6
- const timeout = setTimeout(() => {
7
- if (!promiseActive) {
8
- return;
9
- }
10
- promiseActive = false;
11
- const message = timeoutMessage || `Promise timeout hit: ${timeoutMilliseconds}`;
12
-
13
- reject(message);
14
- }, timeoutMilliseconds);
15
-
16
- promise()
17
- .then((result) => {
18
- if (!promiseActive) {
19
- return;
20
- }
21
- promiseActive = false;
22
- clearTimeout(timeout);
23
- resolve(result);
24
- })
25
- .catch((error) => {
26
- if (!promiseActive) {
27
- return;
28
- }
29
- promiseActive = false;
30
- clearTimeout(timeout);
31
- reject(error);
32
- });
33
- });
34
- };
@@ -1,11 +0,0 @@
1
- export class PromiseWrapper<T> {
2
- public resolve: (value: T | PromiseLike<T>) => void;
3
- public reject: (err: string) => void;
4
- public readonly promise: Promise<T>;
5
- constructor() {
6
- this.promise = new Promise<T>((res, rej) => {
7
- this.resolve = res;
8
- this.reject = rej;
9
- });
10
- }
11
- }
@@ -1,10 +0,0 @@
1
- import { IOConnectWorkspaces } from "../../workspaces";
2
-
3
- export type ChildDefinition = IOConnectWorkspaces.BoxDefinition | IOConnectWorkspaces.WorkspaceWindowDefinition;
4
- export type ChildBuilder = IOConnectWorkspaces.BoxBuilder | IOConnectWorkspaces.WorkspaceWindowDefinition;
5
- export type SubParent = "row" | "column" | "group";
6
- export type AllParent = "row" | "column" | "group" | "workspace";
7
- export type Child = IOConnectWorkspaces.WorkspaceWindow | IOConnectWorkspaces.Row | IOConnectWorkspaces.Column | IOConnectWorkspaces.Group;
8
- export type AllParentTypes = IOConnectWorkspaces.Row | IOConnectWorkspaces.Column | IOConnectWorkspaces.Group | IOConnectWorkspaces.Workspace;
9
- export type SubParentTypes = IOConnectWorkspaces.Row | IOConnectWorkspaces.Column | IOConnectWorkspaces.Group;
10
- export type ContainerLockConfig = IOConnectWorkspaces.ColumnLockConfig | IOConnectWorkspaces.RowLockConfig | IOConnectWorkspaces.GroupLockConfig;
@@ -1,79 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { IOConnectWorkspaces } from "../../workspaces";
3
- import { AddItemResult, WorkspaceSnapshotResult, FrameSnapshotResult, WorkspaceStreamData } from "./protocol";
4
- import { SubscriptionConfig, WorkspaceEventType, WorkspaceEventAction } from "./subscription";
5
- import { RefreshChildrenConfig } from "./privateData";
6
- import { Child, ContainerLockConfig, SubParentTypes } from "./builders";
7
- import { GDWindow } from "./glue";
8
- import { UnsubscribeFunction } from "callback-registry";
9
-
10
- export interface WorkspacesController {
11
- checkIsInSwimlane(windowId: string): Promise<boolean>;
12
- checkIsWindowLoaded(windowId: string): boolean;
13
- createWorkspace(definition: IOConnectWorkspaces.WorkspaceDefinition, saveConfig?: IOConnectWorkspaces.WorkspaceCreateConfig): Promise<IOConnectWorkspaces.Workspace>;
14
- createEmptyFrame(definition: IOConnectWorkspaces.EmptyFrameDefinition): Promise<IOConnectWorkspaces.Frame>;
15
- initFrame(frameId: string, config: IOConnectWorkspaces.FrameInitializationConfig): Promise<void>;
16
- restoreWorkspace(name: string, options?: IOConnectWorkspaces.RestoreWorkspaceConfig): Promise<IOConnectWorkspaces.Workspace>;
17
- add(type: "container" | "window", parentId: string, parentType: "row" | "column" | "group" | "workspace", definition: IOConnectWorkspaces.WorkspaceWindowDefinition | IOConnectWorkspaces.BoxDefinition): Promise<AddItemResult>;
18
- processLocalSubscription(config: SubscriptionConfig, levelId: string): Promise<IOConnectWorkspaces.Unsubscribe>;
19
- processGlobalSubscription(callback: (callbackData: unknown) => void | Promise<void>, streamType: WorkspaceEventType, action: WorkspaceEventAction): Promise<IOConnectWorkspaces.Unsubscribe>;
20
- getFrame(selector: { windowId?: string; predicate?: (frame: IOConnectWorkspaces.Frame) => boolean }): Promise<IOConnectWorkspaces.Frame>;
21
- getFrames(predicate?: (frame: IOConnectWorkspaces.Frame) => boolean): Promise<IOConnectWorkspaces.Frame[]>;
22
- getWorkspaceById(workspaceId: string): Promise<IOConnectWorkspaces.Workspace>;
23
- getWorkspaceByWindowId(itemId: string): Promise<IOConnectWorkspaces.Workspace>;
24
- transformStreamPayloadToWorkspace(payload: WorkspaceStreamData): Promise<IOConnectWorkspaces.Workspace>;
25
- getWorkspace(predicate: (workspace: IOConnectWorkspaces.Workspace) => boolean): Promise<IOConnectWorkspaces.Workspace>;
26
- getWorkspaces(predicate?: (workspace: IOConnectWorkspaces.Workspace) => boolean): Promise<IOConnectWorkspaces.Workspace[]>;
27
- getWorkspacesByFrameId(frameId: string): Promise<IOConnectWorkspaces.Workspace[]>;
28
- getAllWorkspaceSummaries(): Promise<IOConnectWorkspaces.WorkspaceSummary[]>;
29
- getWindow(predicate: (swimlaneWindow: IOConnectWorkspaces.WorkspaceWindow) => boolean): Promise<IOConnectWorkspaces.WorkspaceWindow>;
30
- getParent(predicate: (parent: IOConnectWorkspaces.WorkspaceBox) => boolean): Promise<IOConnectWorkspaces.WorkspaceBox>;
31
- getLayoutSummaries(): Promise<IOConnectWorkspaces.WorkspaceLayoutSummary[]>;
32
- deleteLayout(name: string): Promise<void>;
33
- exportLayout(predicate?: (layout: IOConnectWorkspaces.WorkspaceLayout) => boolean): Promise<IOConnectWorkspaces.WorkspaceLayout[]>;
34
- bundleWorkspaceTo(type: "row" | "column", workspaceId: string): Promise<void>;
35
- bundleItemTo(type: "row" | "column", itemId: string): Promise<void>;
36
- getWorkspaceContext(workspaceId: string): Promise<any>;
37
- setWorkspaceContext(workspaceId: string, data: any): Promise<void>;
38
- updateWorkspaceContext(workspaceId: string, data: any): Promise<void>;
39
- subscribeWorkspaceContextUpdated(workspaceId: string, callback: (data: any) => void): Promise<UnsubscribeFunction>;
40
- saveLayout(config: IOConnectWorkspaces.WorkspaceLayoutSaveConfig): Promise<IOConnectWorkspaces.WorkspaceLayout>;
41
- importLayouts(layouts: IOConnectWorkspaces.WorkspaceLayout[], mode: "replace" | "merge"): Promise<void>;
42
- handleOnSaved(callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): UnsubscribeFunction;
43
- handleOnRemoved(callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): UnsubscribeFunction;
44
- restoreItem(itemId: string): Promise<void>;
45
- maximizeItem(itemId: string): Promise<void>;
46
- changeFrameState(frameId: string, state: IOConnectWorkspaces.FrameState): Promise<void>;
47
- getFrameBounds(frameId: string): Promise<IOConnectWorkspaces.FrameBounds>;
48
- getFrameState(frameId: string): Promise<IOConnectWorkspaces.FrameState>;
49
- focusItem(itemId: string): Promise<void>;
50
- closeItem(itemId: string, frame?: IOConnectWorkspaces.Frame): Promise<void>;
51
- resizeItem(itemId: string, config: IOConnectWorkspaces.ResizeConfig): Promise<void>;
52
- moveFrame(itemId: string, config: IOConnectWorkspaces.MoveConfig): Promise<void>;
53
- getGDWindow(itemId: string): GDWindow;
54
- forceLoadWindow(itemId: string): Promise<string>;
55
- ejectWindow(itemId: string): Promise<string>;
56
- moveWindowTo(itemId: string, newParentId: string): Promise<void>;
57
- getSnapshot(itemId: string, type: "frame"): Promise<FrameSnapshotResult>;
58
- getSnapshot(itemId: string, type: "workspace"): Promise<WorkspaceSnapshotResult>;
59
- setItemTitle(itemId: string, title: string): Promise<void>;
60
- flatChildren(children: Child[]): Child[];
61
- refreshChildren(config: RefreshChildrenConfig): Child[];
62
- iterateFindChild(children: Child[], predicate: (child: Child) => boolean): Child;
63
- iterateFilterChildren(children: Child[], predicate: (child: Child) => boolean): Child[];
64
- hibernateWorkspace(workspaceId: string): Promise<void>;
65
- resumeWorkspace(workspaceId: string): Promise<void>;
66
- lockWorkspace(workspaceId: string, config?: IOConnectWorkspaces.WorkspaceLockConfig): Promise<void>;
67
- lockWindow(windowPlacementId: string, config?: IOConnectWorkspaces.WorkspaceWindowLockConfig): Promise<void>;
68
- lockContainer(itemId: string, type: SubParentTypes["type"], config?: ContainerLockConfig): Promise<void>;
69
- getFrameConstraints(frameId: string): Promise<IOConnectWorkspaces.FrameConstraints>;
70
- pinWorkspace(workspaceId: string, icon?: string): Promise<void>;
71
- unpinWorkspace(workspaceId: string): Promise<void>;
72
- getWorkspaceIcon(workspaceId: string): Promise<string>;
73
- setWorkspaceIcon(workspaceId: string, icon: string): Promise<void>;
74
- registerShortcut(shortcut: string, frameId: string, callback: () => void): Promise<UnsubscribeFunction>;
75
- setMaximizationBoundary(itemId: string, config: IOConnectWorkspaces.SetMaximizationBoundaryConfig): Promise<void>;
76
- showWorkspaceLoadingAnimation(workspaceId: string): Promise<void>;
77
- hideWorkspaceLoadingAnimation(workspaceId: string): Promise<void>;
78
- getPlatformFrameId(): Promise<{ id?: string }>
79
- }
package/src/types/glue.ts DELETED
@@ -1,37 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { IOConnectCore } from "@interopio/core";
3
- import { UnsubscribeFunction } from "callback-registry";
4
- import { IOConnectWorkspaces } from "../../workspaces";
5
-
6
- export type LayoutSummary = { name: string; context: any; metadata: any };
7
- export type LayoutsAPI = {
8
- getAll(type: "Workspace"): Promise<LayoutSummary[]>;
9
- remove(type: "Workspace", name: string): Promise<void>;
10
- export(layoutType?: "Workspace"): Promise<IOConnectWorkspaces.WorkspaceLayout[]>;
11
- import(layout: IOConnectWorkspaces.WorkspaceLayout[], mode?: "merge" | "replace"): Promise<void>;
12
- onAdded(callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): () => void;
13
- onChanged(callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): () => void;
14
- onRemoved(callback: (layout: IOConnectWorkspaces.WorkspaceLayout) => void): () => void;
15
- };
16
-
17
- export type InvocationResult<T> = IOConnectCore.Interop.InvocationResult<T>;
18
- export type InteropAPI = IOConnectCore.Interop.API;
19
- export type ContextsAPI = IOConnectCore.Contexts.API;
20
- export type GDWindow = {
21
- id: string;
22
- close(): Promise<GDWindow>;
23
- isFocused?: boolean;
24
- moveTo(top: number, left: number): Promise<GDWindow>;
25
- resizeTo(width: number, height: number): Promise<GDWindow>;
26
- moveResize(config: Bounds): Promise<GDWindow>;
27
- focus(): Promise<GDWindow>;
28
- };
29
- export type Subscription = IOConnectCore.Interop.Subscription;
30
- export type WindowsAPI = {
31
- list(): GDWindow[];
32
- my(): GDWindow;
33
- open(name: string, url: string, options?: any): Promise<GDWindow>;
34
- onWindowAdded(callback: (window: GDWindow) => void): UnsubscribeFunction;
35
- };
36
- export type Instance = IOConnectCore.Interop.Instance;
37
- export type Bounds = { height?: number; width?: number; top?: number; left?: number };
package/src/types/ioc.ts DELETED
@@ -1,33 +0,0 @@
1
- import { FrameSummaryResult, SwimlaneWindowSnapshotConfig, WorkspaceSnapshotResult, ParentSnapshotConfig, ChildSnapshotResult } from "./protocol";
2
- import { Workspace } from "../models/workspace";
3
- import { Frame } from "../models/frame";
4
- import { IOConnectWorkspaces } from "../../workspaces";
5
- import { AllParentTypes } from "./builders";
6
-
7
- export interface FrameCreateConfig {
8
- summary: FrameSummaryResult;
9
- }
10
-
11
- export interface WindowCreateConfig {
12
- id: string;
13
- parent: AllParentTypes;
14
- frame: Frame;
15
- workspace: Workspace;
16
- config: SwimlaneWindowSnapshotConfig;
17
- }
18
-
19
- export interface ParentCreateConfig {
20
- id: string;
21
- children: ChildSnapshotResult[];
22
- parent: AllParentTypes;
23
- frame: Frame;
24
- workspace: IOConnectWorkspaces.Workspace;
25
- config: ParentSnapshotConfig;
26
- }
27
-
28
- export interface WorkspaceIoCCreateConfig {
29
- snapshot: WorkspaceSnapshotResult;
30
- frame: Frame;
31
- }
32
-
33
- export type ModelCreateConfig = FrameCreateConfig | WindowCreateConfig | ParentCreateConfig | WorkspaceIoCCreateConfig;
@@ -1,92 +0,0 @@
1
- import { ParentSnapshotConfig, SwimlaneWindowSnapshotConfig, FrameSummaryResult, WorkspaceConfigResult, ChildSnapshotResult, GroupSnapshotConfig, RowSnapshotConfig, ColumnSnapshotConfig } from "./protocol";
2
- import { Frame } from "../models/frame";
3
- import { Workspace } from "../models/workspace";
4
- import { Row } from "../models/row";
5
- import { Column } from "../models/column";
6
- import { Group } from "../models/group";
7
- import { AllParentTypes, Child } from "./builders";
8
- import { Window } from "../models/window";
9
- import { IoC } from "../shared/ioc";
10
- import { Base } from "../models/base/base";
11
- import { WorkspacesController } from "./controller";
12
- import { IOConnectWorkspaces } from "../../workspaces";
13
-
14
- export type ModelTypes = "row" | "column" | "group" | "window" | "workspace" | "frame" | "child";
15
-
16
- export interface ModelMaps {
17
- row: Row;
18
- column: Column;
19
- group: Group;
20
- workspace: Workspace;
21
- window: Window;
22
- frame: Frame;
23
- child: Row | Column | Group | Window;
24
- }
25
-
26
- export interface SwimlaneItemConfig {
27
- id: string;
28
- controller: WorkspacesController;
29
- parent: IOConnectWorkspaces.Workspace | IOConnectWorkspaces.Row | IOConnectWorkspaces.Column | IOConnectWorkspaces.Group;
30
- frame: Frame;
31
- workspace: Workspace;
32
- }
33
-
34
- export interface GroupPrivateData extends SwimlaneItemConfig {
35
- config: GroupSnapshotConfig;
36
- type: "group";
37
- children: Child[];
38
- }
39
-
40
- export interface RowPrivateData extends SwimlaneItemConfig {
41
- config: RowSnapshotConfig;
42
- type: "row";
43
- children: Child[];
44
- }
45
-
46
- export interface ColumnPrivateData extends SwimlaneItemConfig {
47
- config: ColumnSnapshotConfig;
48
- type: "column";
49
- children: Child[];
50
- }
51
-
52
- export type ParentPrivateData = GroupPrivateData | ColumnPrivateData | RowPrivateData;
53
-
54
- export interface WindowPrivateData extends SwimlaneItemConfig {
55
- config: SwimlaneWindowSnapshotConfig;
56
- type: "window";
57
- }
58
-
59
- export interface WorkspacePrivateData {
60
- id: string;
61
- type: "workspace";
62
- config: WorkspaceConfigResult;
63
- controller: WorkspacesController;
64
- children: Child[];
65
- frame: Frame;
66
- ioc: IoC;
67
- base: Base;
68
- }
69
-
70
- export interface FramePrivateData {
71
- summary: FrameSummaryResult;
72
- controller: WorkspacesController;
73
- }
74
-
75
- export interface RemapChildData {
76
- parent?: AllParentTypes;
77
- config?: SwimlaneWindowSnapshotConfig | ParentSnapshotConfig;
78
- children?: Child[];
79
- }
80
-
81
- export interface RemapWorkspaceData {
82
- frame?: Frame;
83
- config?: WorkspaceConfigResult;
84
- children?: Child[];
85
- }
86
-
87
- export interface RefreshChildrenConfig {
88
- workspace: IOConnectWorkspaces.Workspace;
89
- parent: Child | IOConnectWorkspaces.Workspace;
90
- children: ChildSnapshotResult[];
91
- existingChildren: Child[];
92
- }