Layouts
2.20.0The Layouts library has the following capabilities:
- importing, exporting, removing and getting Layouts;
- saving and restoring Layouts (exclusive to Glue42 Core+);
- events related to adding, removing, changing or saving Layouts;
- requesting browser permission for the Multi-Screen Window Placement API;
The Layouts API is accessible through the glue.layouts object.
APIobject
Description
Layouts API.
Methods
exportmethod
Signature
(layoutType: LayoutType) => Promise<Layout[]>
Description
Returns a collection of all available Layout objects of the provided type.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| layoutType | LayoutType |
getmethod
Signature
(name: string, type: LayoutType) => Promise<Layout>
Description
Fetches a saved Layout or returns undefined if a Layout with the provided name and type doesn't exist.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| name | string | Name of the Layout to fetch. |
|
| type | LayoutType | Type of the Layout to fetch. |
getAllmethod
Signature
(type: LayoutType) => Promise<LayoutSummary[]>
Description
Returns a lightweight description of all Layouts of the provided type, without the extensive objects describing the Layout components.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| type | LayoutType | Type of the Layouts to fetch. |
getGlobalTypeStatemethod
Signature
() => Promise<{ activated: boolean; }>
Description
Checks whether Global Layouts are activated in the Glue42 Core+ environment.
getMultiScreenPermissionStatemethod
Signature
() => Promise<{ state: "prompt" | "granted" | "denied"; }>
Description
Retrieves the browser Multi-Screen Window Placement permission state for the Glue42 Core+ environment.
importmethod
Signature
(layouts: Layout[], mode?: ImportMode) => Promise<void>
Description
Imports a collection of Layout objects.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| layouts | Layout[] | An array of |
|
| mode | ImportMode | If |
onAddedmethod
Signature
(callback: (layout: Layout) => void) => () => void
Description
Notifies when a new Layout is added.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| callback | (layout: Layout) => void | Callback function to handle the event. Receives the |
onChangedmethod
Signature
(callback: (layout: Layout) => void) => () => void
Description
Notifies when a Layout is modified.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| callback | (layout: Layout) => void | Callback function to handle the event. Receives the |
onRemovedmethod
Signature
(callback: (layout: Layout) => void) => () => void
Description
Notifies when a Layout is removed.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| callback | (layout: Layout) => void | Callback function to handle the event. Receives the |
onSaveRequestedmethod
Signature
(callback: (info?: SaveRequestContext) => SaveRequestResponse) => () => void
Description
Subscribes for Layout save requests.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| callback | (info?: SaveRequestContext) => SaveRequestResponse | The callback passed as an argument will be invoked when a Layout save operation is requested. You have the option to save data (context) which will be restored when the Layout is restored. Returns an unsubscribe function. |
removemethod
Signature
(type: LayoutType, name: string) => Promise<void>
Description
Removes a Layout.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| type | LayoutType | Type of the Layout to remove. |
|
| name | string | Name of the Layout to remove. |
requestMultiScreenPermissionmethod
Signature
() => Promise<{ permissionGranted: boolean; }>
Description
Opens the browser permission prompt requesting Multi-Screen Window Placement permission from the user for the Glue42 Core+ environment. This can only be requested from the Main app (Web Platform) due to the transient activation restrictions of the browsers.
restoremethod
Signature
(options: RestoreOptions) => Promise<void>
Description
Restores a Layout.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| options | RestoreOptions | Options for restoring a Layout. |
savemethod
Signature
(layout: NewLayoutOptions) => Promise<Layout>
Description
Saves a new Layout.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| layout | NewLayoutOptions | Options for saving a Layout. |
Layoutobject
Description
Describes a Layout and its components.
Properties
| Property | Type | Default | Required | Description |
|---|---|---|---|---|
| components | (WindowComponent | WorkspaceFrameComponent | WorkspaceComponent)[] | Array of component objects describing the apps and Workspaces saved in the Layout. |
||
| context | any | Context object passed when the Layout was saved. |
||
| metadata | any | Metadata passed when the Layout was saved. |
||
| name | string | Name of the Layout. The name is unique per Layout type. |
||
| type | LayoutType | Type of the Layout. |
||
| version | number | Version of the Layout. |
LayoutSummaryobject
Description
A lightweight description of a Layout, without the extensive objects describing its components.
Properties
| Property | Type | Default | Required | Description |
|---|---|---|---|---|
| context | any | Context object passed when the Layout was saved. |
||
| metadata | any | Metadata passed when the Layout was saved. |
||
| name | string | Name of the Layout. The name is unique per Layout type. |
||
| type | LayoutType | Type of the Layout. |
NewLayoutOptionsobject
Description
Options for saving a Layout.
Properties
| Property | Type | Default | Required | Description |
|---|---|---|---|---|
| context | any | Context to be saved with the Layout. Used for transferring data to the apps when restoring a Layout. |
||
| ignoreInstances | string[] | Window or app instance IDs of the instances to be ignored when saving the Layout. |
||
| instances | string[] | Window or app instance IDs of the instances to be saved in the Layout. |
||
| metadata | any | Metadata to be saved with the Layout. |
||
| name | string | Name for the Layout. |
RestoreOptionsobject
Description
Options for restoring a Layout.
Properties
| Property | Type | Default | Required | Description |
|---|---|---|---|---|
| closeMe | boolean | true | If |
|
| closeRunningInstances | boolean | true | If |
|
| context | object | Context object that will be passed to the restored apps. It will be merged with the saved context object. |
||
| name | string | Name of the Layout to restore. |
||
| timeout | number | 60000 | Timeout in milliseconds for restoring the Layout. If the time limit is hit, all apps opened up to this point will be closed and an error will be thrown. |
SaveRequestContextobject
Description
Object passed as an argument to the handler for a save Layout request.
Properties
| Property | Type | Default | Required | Description |
|---|---|---|---|---|
| context | unknown | Context for the Layout. |
||
| layoutName | string | Name of the Layout. |
||
| layoutType | LayoutType | Type of the Layout. |
SaveRequestResponseobject
Description
Object returned by the handler for a save Layout request.
Properties
| Property | Type | Default | Required | Description |
|---|---|---|---|---|
| windowContext | object | Context to be saved for the specific app in the Layout. |
ImportModeenumeration
Description
Controls the import behavior. If "replace" (default), all existing Layouts will be removed.
If "merge", the Layouts will be added to the existing ones.
- "replace"
- "merge"
LayoutTypeenumeration
Description
Type of the Layout. Supported Layouts are "Global" and "Workspace".
- "Global"
- "Activity"
- "ApplicationDefault"
- "Swimlane"
- "Workspace"