@interopio/workspaces-api 3.5.7 → 4.0.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/workspaces.d.ts CHANGED
@@ -7,15 +7,14 @@ export default WorkspacesFactory;
7
7
  /**
8
8
  * @docname Workspaces
9
9
  * @intro
10
- * The Workspaces API offers advanced window management functionalities. Using Workspaces, users are able to arrange multiple applications
11
- * within the same visual window (called *Frame*). This arrangement can be performed programmatically or by dragging and dropping applications within the Frame.
12
- * Users can also save Workspace Layouts and restore them within the same Frame or even in different Frames.
10
+ * The Workspaces API offers advanced window management functionalities. Using Workspaces, users are able to arrange multiple apps
11
+ * within the same visual window (called Frame or a Workspaces App). This arrangement can be performed programmatically or by dragging and dropping
12
+ * apps within the Frame. Users can also save Workspace Layouts and restore them within the same Frame or even in different Frames.
13
13
  *
14
- * The io.Connect Workspaces enable the users to compose a custom arrangement of applications by treating each application
15
- * as an individual building block that can be added, removed, moved or resized within a Workspace.
14
+ * The app windows in a Workspace are treated as individual building blocks that can be added, removed, moved, or resized within the Workspace.
16
15
  * The Frame can hold multiple Workspaces (as tabs) and can also be maximized, minimized or resized.
17
- *
18
- * The Workspaces API is accessible through the `io.workspaces` object.
16
+ *
17
+ * The Workspaces API is accessible via the [`io.workspaces`](#API) object.
19
18
  */
20
19
  export namespace IOConnectWorkspaces {
21
20
 
@@ -50,7 +49,10 @@ export namespace IOConnectWorkspaces {
50
49
  /** The type of the workspace element. */
51
50
  type: "Workspace";
52
51
 
53
- /** The name of the workspaces app with which the layout is associated (available only in **io.Connect Desktop**). */
52
+ /**
53
+ * The name of the workspaces app with which the layout is associated.
54
+ * *Available only in **io.Connect Desktop**.*
55
+ */
54
56
  application?: string;
55
57
 
56
58
  state: WorkspaceLayoutComponentState;
@@ -93,7 +95,7 @@ export namespace IOConnectWorkspaces {
93
95
  }
94
96
 
95
97
  export interface WindowLayoutItemConfig {
96
- /** The name of the application as defined in **io.Connect Desktop**. */
98
+ /** The name of the application as specified in its definition. */
97
99
  appName: string;
98
100
  /** The id of the window */
99
101
  windowId?: string;
@@ -127,7 +129,10 @@ export namespace IOConnectWorkspaces {
127
129
  /** A string id of an existing frame. If provided, this workspace will be opened in that specific frame */
128
130
  frameId?: string;
129
131
 
130
- /** The application name of the workspace app that should be used for the new frame (available only for **io.Connect Desktop**) */
132
+ /**
133
+ * The application name of the workspace app that should be used for the new frame.
134
+ * *Available only in **io.Connect Desktop**.*
135
+ */
131
136
  applicationName?: string;
132
137
 
133
138
  /** A setting used to declare that the workspace must be in a new frame and also provide options for that new frame */
@@ -162,7 +167,9 @@ export namespace IOConnectWorkspaces {
162
167
  positionIndex?: number;
163
168
 
164
169
  /**
165
- * Controls the users ability to activate the Workspaces frame when the workspace is restored (available only for **io.Connect Desktop**). Defaults to the configuration passed in the workspaces.json or to false.
170
+ * Controls the users ability to activate the Workspaces frame when the workspace is restored.
171
+ * *Available only in **io.Connect Desktop**.*
172
+ * Defaults to the configuration passed in the `workspaces.json` file or to `false`.
166
173
  */
167
174
  activateFrame?: boolean;
168
175
 
@@ -240,7 +247,7 @@ export namespace IOConnectWorkspaces {
240
247
  }
241
248
 
242
249
  /**
243
- * The loading strategy used to open new workspaces.
250
+ * The loading strategy used to open new workspaces.
244
251
  * "direct" will cause all windows to start loading at the same time as soon as the workspace loads
245
252
  * "delayed" will cause all visible/active/selected windows to start loading at the same time as soon as the workspace loads. The rest will be loaded gradually at a specific interval.
246
253
  * "lazy" will cause all visible/active/selected windows to start loading at the same time as soon as the workspace loads. The rest will start loading when the user selects them and not before that.
@@ -276,7 +283,7 @@ export namespace IOConnectWorkspaces {
276
283
  /** Position of the workspace in relation to it's siblings in the frame. */
277
284
  position?: number;
278
285
 
279
- /**
286
+ /**
280
287
  * Provides the opportunity to open a workspace with no tab header
281
288
  * @default false
282
289
  */
@@ -300,79 +307,80 @@ export namespace IOConnectWorkspaces {
300
307
  */
301
308
  allowDropLeft?: boolean;
302
309
 
303
- /**
310
+ /**
304
311
  * Controls the users ability to drop windows in the top-most zone of the workspace
305
312
  * @default true
306
313
  */
307
314
  allowDropTop?: boolean;
308
315
 
309
- /**
316
+ /**
310
317
  * Controls the users ability to drop windows in the right-most zone of the workspace
311
318
  * @default true
312
319
  */
313
320
  allowDropRight?: boolean;
314
321
 
315
- /**
322
+ /**
316
323
  * Controls the users ability to drop windows in the bottom-most zone of the workspace
317
324
  * @default true
318
325
  */
319
326
  allowDropBottom?: boolean;
320
327
 
321
- /**
328
+ /**
322
329
  * Controls the users ability to extract windows from the workspace
323
330
  * @default true
324
331
  */
325
332
  allowExtract?: boolean;
326
333
 
327
- /**
334
+ /**
328
335
  * Control the users ability to reorder windows in the workspace
329
336
  * @default true
330
337
  */
331
338
  allowWindowReorder?: boolean;
332
339
 
333
- /**
340
+ /**
334
341
  * Controls the visibility of the save workspace button located in the workspace tab
335
342
  * @default true
336
343
  */
337
344
  showSaveButton?: boolean;
338
345
 
339
- /**
346
+ /**
340
347
  * Controls whether a workspace tab can be reordered in the frame
341
348
  * @default true
342
349
  */
343
350
  allowWorkspaceTabReorder?: boolean;
344
351
 
345
- /**
346
- * Controls whether a workspace tab can be extracted from the frame (available only for **io.Connect Desktop**).
352
+ /**
353
+ * Controls whether a workspace tab can be extracted from the frame.
354
+ * *Available only in **io.Connect Desktop**.*
347
355
  * @default true
348
356
  */
349
357
  allowWorkspaceTabExtract?: boolean;
350
358
 
351
- /**
359
+ /**
352
360
  * Controls the visibility of the close button located in the workspaces tab
353
361
  * @default true
354
362
  */
355
363
  showCloseButton?: boolean;
356
364
 
357
- /**
365
+ /**
358
366
  * Prevents the splitters for being draggable, so the windows cannot be resized
359
367
  * @default true
360
368
  */
361
369
  allowSplitters?: boolean;
362
370
 
363
- /**
371
+ /**
364
372
  * Controls the visibility of all close button located in the windows' tab elements
365
373
  * @default true
366
374
  */
367
375
  showWindowCloseButtons?: boolean;
368
376
 
369
- /**
377
+ /**
370
378
  * Controls the visibility of all eject buttons located in the groups' headers
371
379
  * @default true
372
380
  */
373
381
  showEjectButtons?: boolean;
374
382
 
375
- /**
383
+ /**
376
384
  * Controls the visibility of all the add window buttons (the ones with the plus icon) located in the group headers
377
385
  * @default true
378
386
  */
@@ -401,7 +409,7 @@ export namespace IOConnectWorkspaces {
401
409
  positionIndex?: number;
402
410
 
403
411
  /**
404
- * Mode for dragging the windows that are part of the Workspace. If set to `"autoEject"` (available only for **io.Connect Desktop**), when the user drags a Workspace window, it will be ejected from the Workspace during the dragging operation and the user will be able to drop it back inside the Workspace, or out of the Workspace.
412
+ * Mode for dragging the windows that are part of the Workspace. If set to `"autoEject"` (available only in **io.Connect Desktop**), when the user drags a Workspace window, it will be ejected from the Workspace during the dragging operation and the user will be able to drop it back inside the Workspace, or out of the Workspace.
405
413
  * If set to `"keepInside"`, the window won't be ejected from the Workspace when being dragged and the user will be able to drop it only inside the Workspace.
406
414
  */
407
415
  windowDragMode?: "keepInside" | "autoEject";
@@ -449,7 +457,10 @@ export namespace IOConnectWorkspaces {
449
457
  /** Controls the whether the workspace tab can be reordered */
450
458
  allowWorkspaceTabReorder?: boolean;
451
459
 
452
- /** Controls the whether the workspace tab can be extracted (available only for **io.Connect Desktop**). */
460
+ /**
461
+ * Controls the whether the workspace tab can be extracted.
462
+ * *Available only in **io.Connect Desktop**.*
463
+ */
453
464
  allowWorkspaceTabExtract?: boolean;
454
465
 
455
466
  /** Controls the visibility of all the add window buttons (the ones with the plus icon) located in the group headers */
@@ -649,13 +660,20 @@ export namespace IOConnectWorkspaces {
649
660
  }
650
661
 
651
662
  export interface FrameTargetingOptions {
652
- /** If true the frame will be activated when the operation is executed (available only for **io.Connect Desktop**). Defaults to the configuration passed in the workspaces.json or to false. */
663
+ /**
664
+ * If `true`, the frame will be activated when the operation is executed.
665
+ * *Available only in **io.Connect Desktop**.*
666
+ * Defaults to the configuration passed in the `workspaces.json` file or to `false`.
667
+ */
653
668
  activate?: boolean;
654
669
 
655
670
  /** A string id of an existing frame. If provided, this workspace will be opened in that specific frame */
656
671
  reuseFrameId?: string;
657
672
 
658
- /** The application name of the workspace app that should be used for the new frame (available only for **io.Connect Desktop**). */
673
+ /**
674
+ * The application name of the workspace app that should be used for the new frame.
675
+ * *Available only in **io.Connect Desktop**.*
676
+ */
659
677
  applicationName?: string;
660
678
 
661
679
  /** A setting used to declare that the workspace must be in a new frame and also provide options for that new frame */
@@ -755,15 +773,21 @@ export namespace IOConnectWorkspaces {
755
773
  /** An unique string name and identifier of the layout */
756
774
  name: string;
757
775
 
758
- /** The name of the workspaces app with which the layout is associated (available only in **io.Connect Desktop**). */
776
+ /**
777
+ * The name of the workspaces app with which the layout is associated.
778
+ * *Available only in **io.Connect Desktop**.*
779
+ */
759
780
  applicationName?: string;
760
781
  }
761
782
 
762
783
  export interface EmptyFrameDefinition {
763
- /** The application name of the workspace app that should be used for the new frame (available only for **io.Connect Desktop**). */
784
+ /**
785
+ * The application name of the workspace app that should be used for the new frame.
786
+ * *Available only in **io.Connect Desktop**.*
787
+ */
764
788
  applicationName?: string;
765
789
 
766
- /**
790
+ /**
767
791
  * Optional frame related settings
768
792
  */
769
793
  frameConfig?: IOConnectWorkspaces.NewFrameConfig;
@@ -773,7 +797,7 @@ export namespace IOConnectWorkspaces {
773
797
  */
774
798
  context?: object;
775
799
 
776
- /**
800
+ /**
777
801
  * Optional the id of the layout component which is being restored
778
802
  */
779
803
  layoutComponentId?: string;
@@ -805,7 +829,8 @@ export namespace IOConnectWorkspaces {
805
829
  /** An object describing a frame */
806
830
  export interface Frame extends FrameSummary {
807
831
  /**
808
- * Registers keyboard shortcut to the current frame (available only in **io.Connect Desktop**).
832
+ * Registers a keyboard shortcut to the current Frame.
833
+ * *Available only in **io.Connect Desktop**.*
809
834
  */
810
835
  registerShortcut(shortcut: string, callback: () => void): Promise<Unsubscribe>;
811
836
 
@@ -864,15 +889,17 @@ export namespace IOConnectWorkspaces {
864
889
  init(config: FrameInitializationConfig): Promise<void>;
865
890
 
866
891
  /**
867
- * Returns the taskbar icon of the frame
868
- * Not available in **io.Connect Browser**.
892
+ * Retrieves the taskbar icon of the `Frame` instance.
893
+ * *Available only for **io.Connect Desktop**.*
894
+ * @since io.Connect Desktop 9.9
869
895
  */
870
896
  getIcon(): Promise<Icon>;
871
897
 
872
898
  /**
873
- * Updates the taskbar icon of the frame
874
- * Not available in **io.Connect Browser**.
875
- * @param icon An object describing the new icon.
899
+ * Sets the taskbar icon of the `Frame` instance.
900
+ * *Available only for **io.Connect Desktop**.*
901
+ * @param icon New icon to be displayed in the taskbar for the `Frame` instance. The icon must be encoded as a Base64 string.
902
+ * @since io.Connect Desktop 9.9
876
903
  */
877
904
  setIcon(icon: Icon): Promise<void>;
878
905
 
@@ -941,7 +968,8 @@ export namespace IOConnectWorkspaces {
941
968
  onNormal(callback: () => void): Promise<Unsubscribe>;
942
969
 
943
970
  /**
944
- * Triggered when either a window in the frame is focused or the frame itself (supported only in **io.Connect Desktop**).
971
+ * Triggered when either a window in the frame is focused or the frame itself.
972
+ * *Available only in **io.Connect Desktop**.*
945
973
  * @param callback Callback function to handle the event. It receives a data oject which indicates how the focus has changed.
946
974
  */
947
975
  onFocusChanged(callback: (data: FrameFocusChangedData) => void): Promise<IOConnectWorkspaces.Unsubscribe>;
@@ -1044,7 +1072,10 @@ export namespace IOConnectWorkspaces {
1044
1072
  /** Indicates if the save button for this workspace is visible to the user */
1045
1073
  showSaveButton?: boolean;
1046
1074
 
1047
- /** Controls whether the workspace tab can be extracted (available only for **io.Connect Desktop**) */
1075
+ /**
1076
+ * Controls whether the workspace tab can be extracted.
1077
+ * *Available only in **io.Connect Desktop**.*
1078
+ */
1048
1079
  allowWorkspaceTabExtract?: boolean;
1049
1080
 
1050
1081
  /** Controls whether the workspace tab can be reordered*/
@@ -1079,7 +1110,7 @@ export namespace IOConnectWorkspaces {
1079
1110
 
1080
1111
  /**
1081
1112
  * Indicates the loading strategy for the Workspace.
1082
- * *Available only for **io.Connect Desktop**.*
1113
+ * *Available only in **io.Connect Desktop**.*
1083
1114
  */
1084
1115
  loadingStrategy?: LoadingStrategy;
1085
1116
 
@@ -1144,7 +1175,7 @@ export namespace IOConnectWorkspaces {
1144
1175
  onContextUpdated(callback: (data: any) => void): Promise<Unsubscribe>;
1145
1176
 
1146
1177
  /**
1147
- * Updates this workspace reference to reflect the current state of the workspace.
1178
+ * Updates this workspace reference to reflect the current state of the workspace.
1148
1179
  */
1149
1180
  refreshReference(): Promise<void>;
1150
1181
 
@@ -1277,7 +1308,8 @@ export namespace IOConnectWorkspaces {
1277
1308
  lock(config?: WorkspaceLockConfig | ((config: WorkspaceLockConfig) => WorkspaceLockConfig)): Promise<void>;
1278
1309
 
1279
1310
  /**
1280
- * Sets the mode for dragging the windows that are part of the Workspace. *Available only for **io.Connect Desktop**.*
1311
+ * Sets the mode for dragging the windows that are part of the Workspace.
1312
+ * *Available only in **io.Connect Desktop**.*
1281
1313
  * @param mode Mode for dragging the Workspace windows. If set to `"autoEject"`, when the user drags a Workspace window, it will be ejected from the Workspace during the dragging operation and the user will be able to drop it back inside the Workspace, or out of the Workspace.
1282
1314
  * If set to `"keepInside"`, the window won't be ejected from the Workspace when being dragged and the user will be able to drop it only inside the Workspace.
1283
1315
  */
@@ -1288,7 +1320,8 @@ export namespace IOConnectWorkspaces {
1288
1320
  * This will override the current loading strategy for the Workspace that may have been specified via configuration or programmatically
1289
1321
  * when creating or restoring the Workspace. The loading strategy specified via this method will be preserved in the Workspace Layout
1290
1322
  * only if the Workspace is saved afterwards and the `"persistCurrentStrategy"` flag is set to `true` in the Workspaces App definition.
1291
- * *Available only for **io.Connect Desktop**.*
1323
+ * *Available only in **io.Connect Desktop**.*
1324
+ * @since io.Connect Desktop 9.8
1292
1325
  * @param strategy Loading strategy for the Workspace.
1293
1326
  */
1294
1327
  setLoadingStrategy(strategy: LoadingStrategy): Promise<void>;
@@ -1337,7 +1370,7 @@ export namespace IOConnectWorkspaces {
1337
1370
  * @param callback Callback function to handle the event. Receives the loaded window as a parameter.
1338
1371
  */
1339
1372
  onWindowLoaded(callback: (window: WorkspaceWindow) => void): Promise<Unsubscribe>;
1340
- /**
1373
+ /**
1341
1374
  * Notifies when a window was maximized in this workspace and returns an unsubscribe function.
1342
1375
  * A maximized window means that the window has been maximized either by an API call or from the maximize button by the user.
1343
1376
  * @param callback Callback function to handle the event. Receives the maximized window as a parameter.
@@ -1363,7 +1396,7 @@ export namespace IOConnectWorkspaces {
1363
1396
  isPinned?: boolean;
1364
1397
 
1365
1398
  /**
1366
- * Mode for dragging the windows that are part of the Workspace. If set to `"autoEject"` (available only for **io.Connect Desktop**), when the user drags a Workspace window, it will be ejected from the Workspace during the dragging operation and the user will be able to drop it back inside the Workspace, or out of the Workspace.
1399
+ * Mode for dragging the windows that are part of the Workspace. If set to `"autoEject"` (available only in **io.Connect Desktop**), when the user drags a Workspace window, it will be ejected from the Workspace during the dragging operation and the user will be able to drop it back inside the Workspace, or out of the Workspace.
1367
1400
  * If set to `"keepInside"`, the window won't be ejected from the Workspace when being dragged and the user will be able to drop it only inside the Workspace.
1368
1401
  */
1369
1402
  windowDragMode?: "keepInside" | "autoEject";
@@ -1391,17 +1424,19 @@ export namespace IOConnectWorkspaces {
1391
1424
 
1392
1425
  /**
1393
1426
  * Changes the workspace icon to the specified one
1394
- * @param icon
1427
+ * @param icon
1395
1428
  */
1396
1429
  setIcon(icon: string): Promise<void>;
1397
1430
 
1398
1431
  /**
1399
- * Shows the loading animation of the workspace (supported only in **io.Connect Desktop**).
1432
+ * Shows the loading animation of the workspace.
1433
+ * *Available only in **io.Connect Desktop**.*
1400
1434
  */
1401
1435
  showLoadingAnimation(): Promise<void>;
1402
1436
 
1403
1437
  /**
1404
- * Hides the loading animation of the workspace (supported only in **io.Connect Desktop**).
1438
+ * Hides the loading animation of the workspace.
1439
+ * *Available only in **io.Connect Desktop**.*
1405
1440
  */
1406
1441
  hideLoadingAnimation(): Promise<void>;
1407
1442
  }
@@ -1864,7 +1899,7 @@ export namespace IOConnectWorkspaces {
1864
1899
  /** A configuration object used to save a current workspace as a layout */
1865
1900
  export interface WorkspaceLayoutSaveConfig {
1866
1901
  /**
1867
- * A string used as name (doubles as id) of the layout, which is later used when restoring it.
1902
+ * A string used as name (doubles as id) of the layout, which is later used when restoring it.
1868
1903
  */
1869
1904
  name: string;
1870
1905
 
@@ -1930,8 +1965,13 @@ export namespace IOConnectWorkspaces {
1930
1965
  frameBounds?: FrameBounds;
1931
1966
  }
1932
1967
 
1933
- /** An object describing the complete state of a toolbar icon at the time when the icon was created */
1968
+ /**
1969
+ * Describes the taskbar icon of a `Frame` instance.
1970
+ */
1934
1971
  export interface Icon {
1972
+ /**
1973
+ * Icon encoded as a Base64 string.
1974
+ */
1935
1975
  base64Image: string;
1936
1976
  }
1937
1977
 
@@ -2041,7 +2081,7 @@ export namespace IOConnectWorkspaces {
2041
2081
 
2042
2082
  /**
2043
2083
  * Returns an instance of the workspace with the passed id. The performance is better than getWorkspace when querying for a workspace by id.
2044
- * @param workspaceId The id of the desired workspace
2084
+ * @param workspaceId The id of the desired workspace
2045
2085
  */
2046
2086
  getWorkspaceById(workspaceId: string): Promise<Workspace>;
2047
2087
 
@@ -2080,13 +2120,13 @@ export namespace IOConnectWorkspaces {
2080
2120
  createWorkspace(definition: WorkspaceDefinition, saveConfig?: WorkspaceCreateConfig): Promise<Workspace>;
2081
2121
 
2082
2122
  /**
2083
- *
2123
+ *
2084
2124
  * @param definition Optional definition of the frame
2085
2125
  */
2086
2126
  createEmptyFrame(definition?: EmptyFrameDefinition): Promise<IOConnectWorkspaces.Frame>;
2087
2127
 
2088
2128
  /**
2089
- * Wait for a frame with the specified id to be loaded.
2129
+ * Wait for a frame with the specified id to be loaded.
2090
2130
  * It's needed when using the workspaces-api from a custom workspaces frame and you have the frameId,
2091
2131
  * but the frame object is not populated in the API yet (e.g. the frame is in the pool)
2092
2132
  * @param id the id of the frame that should be waited