# Workspaces

**Kind**: module | **Library**: @interopio/desktop | **Access**: `io.workspaces`

**Source**: https://docs.interop.io/desktop/reference/javascript/workspaces/index.html

The Workspaces API offers advanced window management functionalities. Using Workspaces, users are able to arrange multiple apps
within the same visual window (called Frame or a Workspaces App). This arrangement can be performed programmatically or by dragging and dropping
apps within the Frame. Users can also save Workspace Layouts and restore them within the same Frame or even in different Frames.

The app windows in a Workspace are treated as individual building blocks that can be added, removed, moved, or resized within the Workspace.
The Frame can hold multiple Workspaces (as tabs) and can also be maximized, minimized or resized.

The Workspaces API is accessible via the [`io.workspaces`](https://docs.interop.io/desktop/reference/javascript/workspaces/api/index.md) object.

## Interfaces

- [API](https://docs.interop.io/desktop/reference/javascript/workspaces/api/index.md)
- [Bounds](https://docs.interop.io/desktop/reference/javascript/workspaces/bounds/index.md): Describes the bounds of a window.
- [Box](https://docs.interop.io/desktop/reference/javascript/workspaces/box/index.md): An object describing a workspace box
- [BoxBuilder](https://docs.interop.io/desktop/reference/javascript/workspaces/boxbuilder/index.md): An object describing a builder used to create workspace boxes
- [BoxDefinition](https://docs.interop.io/desktop/reference/javascript/workspaces/boxdefinition/index.md): An object describing the possible options when opening a box inside a workspace.
- [BoxSummary](https://docs.interop.io/desktop/reference/javascript/workspaces/boxsummary/index.md): An object containing the summary of a workspace box
- [BuilderConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/builderconfig/index.md): An object describing the options of the builder.
- [Column](https://docs.interop.io/desktop/reference/javascript/workspaces/column/index.md): An object describing a column type workspace box
- [ColumnDefinitionConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/columndefinitionconfig/index.md): A config object which defines various column-specific settings
- [ColumnLayoutItem](https://docs.interop.io/desktop/reference/javascript/workspaces/columnlayoutitem/index.md): An object describing a column definition in a workspace layout.
- [ColumnLockConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/columnlockconfig/index.md): A config object which provides fine grain control when locking a column
- [ElementResizeConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/elementresizeconfig/index.md): A config object which defines how a workspace element should be resized
- [EmptyFrameDefinition](https://docs.interop.io/desktop/reference/javascript/workspaces/emptyframedefinition/index.md)
- [Frame](https://docs.interop.io/desktop/reference/javascript/workspaces/frame/index.md): Describes a Frame (a Workspaces App instance).
- [FrameClosedData](https://docs.interop.io/desktop/reference/javascript/workspaces/framecloseddata/index.md)
- [FrameCloseOptions](https://docs.interop.io/desktop/reference/javascript/workspaces/framecloseoptions/index.md): Options for closing a Frame.
- [FrameClosingData](https://docs.interop.io/desktop/reference/javascript/workspaces/frameclosingdata/index.md): Describes the data passed to the callback for handling the event which fires when a Frame is about to be closed.
- [FrameConstraints](https://docs.interop.io/desktop/reference/javascript/workspaces/frameconstraints/index.md): A config object which shows the possible frame size constraints, which are calculated using all internal elements' constraints
- [FrameDialogOptions](https://docs.interop.io/desktop/reference/javascript/workspaces/framedialogoptions/index.md): Options for showing a dialog from the Workspaces Frame.
- [FrameFocusChangedData](https://docs.interop.io/desktop/reference/javascript/workspaces/framefocuschangeddata/index.md)
- [FrameInitializationConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/frameinitializationconfig/index.md)
- [FrameInitializationContext](https://docs.interop.io/desktop/reference/javascript/workspaces/frameinitializationcontext/index.md)
- [FrameSetOnTopOptions](https://docs.interop.io/desktop/reference/javascript/workspaces/framesetontopoptions/index.md): Options for setting the on-top state of a Workspaces Frame.
- [FrameShowConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/frameshowconfig/index.md): Settings for showing a previously hidden Workspaces Frame instance.
- [FrameSnapshot](https://docs.interop.io/desktop/reference/javascript/workspaces/framesnapshot/index.md): An object describing the complete state of a frame at the time when the object was created
- [FrameSummary](https://docs.interop.io/desktop/reference/javascript/workspaces/framesummary/index.md): An object describing the basic details of a frame
- [FrameTargetingOptions](https://docs.interop.io/desktop/reference/javascript/workspaces/frametargetingoptions/index.md)
- [Group](https://docs.interop.io/desktop/reference/javascript/workspaces/group/index.md): An object describing a group type workspace box
- [GroupDefinitionConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/groupdefinitionconfig/index.md): A config object which defines various group-specific settings
- [GroupLayoutItem](https://docs.interop.io/desktop/reference/javascript/workspaces/grouplayoutitem/index.md): An object describing a group definition in a workspace layout.
- [GroupLockConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/grouplockconfig/index.md): A config object which provides fine grain control when locking a group
- [Icon](https://docs.interop.io/desktop/reference/javascript/workspaces/icon/index.md): Describes the taskbar icon of a `Frame` instance.
- [MoveConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/moveconfig/index.md): An object defining the position parameters of a frame.
- [NewFrameConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/newframeconfig/index.md): An object describing the possible settings when defining a new frame.
- [PopupOptions](https://docs.interop.io/desktop/reference/javascript/workspaces/popupoptions/index.md): Options for creating a popup window.
- [ResizeConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/resizeconfig/index.md): An object defining the resize parameters of a frame.
- [RestoreWorkspaceConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/restoreworkspaceconfig/index.md): An object containing all the possible settings when restoring a workspace from a layout.
- [RestoreWorkspaceDefinition](https://docs.interop.io/desktop/reference/javascript/workspaces/restoreworkspacedefinition/index.md): An object describing the possible options when restoring a workspace
- [Row](https://docs.interop.io/desktop/reference/javascript/workspaces/row/index.md): An object describing a row type workspace box
- [RowDefinitionConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/rowdefinitionconfig/index.md): A config object which defines various row-specific settings
- [RowLayoutItem](https://docs.interop.io/desktop/reference/javascript/workspaces/rowlayoutitem/index.md): An object describing a row definition in a workspace layout.
- [RowLockConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/rowlockconfig/index.md): A config object which provides fine grain control when locking a row
- [SetMaximizationBoundaryConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/setmaximizationboundaryconfig/index.md)
- [Size](https://docs.interop.io/desktop/reference/javascript/workspaces/size/index.md): Describes the size of an io.Connect window.
- [WindowLayoutItem](https://docs.interop.io/desktop/reference/javascript/workspaces/windowlayoutitem/index.md): An object describing a window definition in a workspace layout.
- [WindowLayoutItemConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/windowlayoutitemconfig/index.md)
- [Workspace](https://docs.interop.io/desktop/reference/javascript/workspaces/workspace/index.md): An object describing a workspace
- [WorkspaceBuilder](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacebuilder/index.md): An object describing a builder user to create workspaces
- [WorkspaceClosedData](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacecloseddata/index.md)
- [WorkspaceComponent](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacecomponent/index.md): An object describing a workspace definition in a workspace layout.
- [WorkspaceConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/workspaceconfig/index.md): Workspace-specific options.
- [WorkspaceCreateConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacecreateconfig/index.md): An object containing settings applied when creating a new workspace.
- [WorkspaceDefinition](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacedefinition/index.md): Describes a Workspace to be created.
- [WorkspaceLayout](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacelayout/index.md): An object describing a workspace layout.
- [WorkspaceLayoutComponentState](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacelayoutcomponentstate/index.md)
- [WorkspaceLayoutsAPI](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacelayoutsapi/index.md): An API enabling basic CRUD workspaces actions
- [WorkspaceLayoutSaveConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacelayoutsaveconfig/index.md): A configuration object used to save a current workspace as a layout
- [WorkspaceLayoutSummary](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacelayoutsummary/index.md): An object describing a workspace layout without the underlying structure
- [WorkspaceLockConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacelockconfig/index.md): A config object which provides fine grain control when locking a workspace
- [WorkspacePinOptions](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacepinoptions/index.md)
- [WorkspaceSnapshot](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacesnapshot/index.md): An object describing the complete state of a workspace at the time when the object was created
- [WorkspaceSummary](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacesummary/index.md): An object describing the basic details of a workspace
- [WorkspaceWindow](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacewindow/index.md): An object describing a window part of an existing workspace
- [WorkspaceWindowDefinition](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacewindowdefinition/index.md): An object describing the possible options when opening a window inside a workspace.
- [WorkspaceWindowDefinitionConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacewindowdefinitionconfig/index.md): A config object which defines various workspace window-specific settings
- [WorkspaceWindowLockConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacewindowlockconfig/index.md): A config object which provides fine grain control when locking a window
- [WorkspaceWindowSummary](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacewindowsummary/index.md): An object describing the basic details of a workspace window

## Enumerations

- [DialogMode](https://docs.interop.io/desktop/reference/javascript/workspaces/dialogmode/index.md): Mode for the dialog.
- [DialogType](https://docs.interop.io/desktop/reference/javascript/workspaces/dialogtype/index.md): Type of the dialog to show. Can be either a predefined io.Connect dialog type, or a custom one.

## Type Aliases

- [FrameBounds](https://docs.interop.io/desktop/reference/javascript/workspaces/framebounds/index.md): Describes the bounds of a Frame instance.
- [FrameState](https://docs.interop.io/desktop/reference/javascript/workspaces/framestate/index.md): The possible window states for a workspaces frame.
- [LoadingStrategy](https://docs.interop.io/desktop/reference/javascript/workspaces/loadingstrategy/index.md): The loading strategy for opening new Workspaces.
- [PopupTargetLocation](https://docs.interop.io/desktop/reference/javascript/workspaces/popuptargetlocation/index.md): Location of the popup window relative to the area around which the popup window will appear.
- [SaveLayoutConfig](https://docs.interop.io/desktop/reference/javascript/workspaces/savelayoutconfig/index.md)
- [Unsubscribe](https://docs.interop.io/desktop/reference/javascript/workspaces/unsubscribe/index.md): A function which when called unsubscribes the user from further notifications.
- [WindowDragMode](https://docs.interop.io/desktop/reference/javascript/workspaces/windowdragmode/index.md): The possible types of window dragging inside a workspaces frame
- [WorkspaceBox](https://docs.interop.io/desktop/reference/javascript/workspaces/workspacebox/index.md): An object which represent a workspace box. This is an element which contains other elements, called children.
- [WorkspaceElement](https://docs.interop.io/desktop/reference/javascript/workspaces/workspaceelement/index.md): An object which represent a workspace element. This is an element can be a box or a workspace window.
