# IOConnectWindow

**Kind**: interface | **Module**: [Windows](https://docs.interop.io/desktop/reference/javascript/windows/index.md)

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

Describes an io.Connect Window.

## Properties

- **`allowWorkspaceDrop`** (`boolean`, required) *(since io.Connect Desktop 9.5, @interopio/desktop 6.5.1)*
  If `true`, the user is able to drop the current window in a Workspace.
- **`application`** (`AppManager.Application | undefined`, required)
  The app associated with the current window. Can be `undefined` if the window wasn't started as an app.
- **`appName`** (`string | undefined`, required)
  Name of the app associated with the current window. Can be `undefined` if the window wasn't started as an app.
- **`bottomNeighbours`** (`IOConnectWindow[]`, required)
  Retrieves the bottom neighbors of the window.
- **`bounds`** (`Bounds`, required)
  Retrieves the bounds of the window.
- **`frameButtons`** (`ButtonInfo[]`, required)
  Retrieves all frame buttons.
- **`frameColor`** (`string`, required)
  Retrieves the color of the window frame.
- **`frameId`** (`string`, required)
  The ID of the frame in which the window is placed.
- **`group`** (`Group`, required)
  Retrieves the group of the window.
- **`groupId`** (`string`, required)
  Retrieves the ID of the group of the window.
- **`hostInstance`** (`IOConnectDesktop.Interop.Instance | string`, required)
  Interop instance of the io.Connect Desktop library.
- **`id`** (`string`, required)
  ID of the current window.
- **`interopInstance`** (`IOConnectDesktop.Interop.Instance | undefined`, required)
  Interop instance of the window. Used for easier access to the Interop API.
- **`isCollapsed`** (`boolean`, required)
  If `true`, the window is collapsed.
- **`isFocused`** (`boolean`, required)
  If `true`, the window is on focus.
- **`isGroupHeaderVisible`** (`boolean`, required)
  If `true`, the header of the window group is visible.
- **`isLocked`** (`boolean`, required)
  If `true`, the window is locked.
- **`isPinned`** (`boolean`, required) *(since io.Connect Desktop 9.5, @interopio/desktop 6.8.0)*
  Flag indicating whether the tab of the current window is pinned. Pinned tabs are placed before the regular tab windows and they contain only the window title.
  Pinned tab windows don't have a "Close" button, effectively preventing the user from closing them. Available only for tab windows in web groups.
- **`isSticky`** (`boolean`, required)
  If `true`, the window is able to stick to other windows.
- **`isTabHeaderVisible`** (`boolean`, required)
  If `true`, the tab header of the window is visible.
- **`isTabSelected`** (`boolean`, required)
  If `true`, the tab window is selected.
- **`isVisible`** (`boolean`, required)
  If `true`, the window is visible.
- **`jumpList`** (`IOConnectDesktop.Windows.JumpList`, required)
  API for managing window jump lists.
- **`leftNeighbours`** (`IOConnectWindow[]`, required)
  Retrieves the left neighbors of the window.
- **`maxHeight`** (`number`, required)
  Retrieves the maximum height of the window in pixels.
- **`maxWidth`** (`number`, required)
  Retrieves the maximum width of the window in pixels.
- **`minHeight`** (`number`, required)
  Retrieves the minimum height of the window in pixels.
- **`minWidth`** (`number`, required)
  Retrieves the minimum width of the window in pixels.
- **`mode`** (`WindowMode`, required)
  Retrieves the mode of the window.
- **`name`** (`string`, required)
  Name of the current window. Window names are unique within the framework.
- **`opened`** (`boolean`, required)
  If `true`, the window is opened.
- **`placementSettings`** (`PlacementSettings`, required)
  Retrieves the current placement settings.
- **`rightNeighbours`** (`IOConnectWindow[]`, required)
  Retrieves the right neighbors of the window.
- **`settings`** (`WindowSettings`, required)
  Settings of the current window.
- **`state`** (`WindowState`, required)
  Retrieves the state of the window.
- **`tabGroupId`** (`string`, required)
  ID of the tab group in which the current window is located.
- **`tabIndex`** (`number`, required)
  Tab index of the current window.
- **`tabs`** (`IOConnectWindow[]`, required)
  Retrieves all tabs that are in the same tab group as the current window. Available only when the window is in `"tab"` mode.
- **`title`** (`string`, required)
  Title of the current window.
- **`topNeighbours`** (`IOConnectWindow[]`, required)
  Retrieves the top neighbors of the window.
- **`url`** (`string`, required)
  URL of the current window.
- **`windowType`** (`"electron" | "remote"`, required)
  Type of the window.
- **`zoomFactor`** (`number`, required)
  Retrieves the current zoom factor.

## Methods

### activate

Activates the current window. This is the same as calling `focus()`.

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### addFrameButton

Adds a frame button to the window.

```ts
(buttonInfo: ButtonInfo, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`buttonInfo`** (`ButtonInfo`, required)
  Frame button settings.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### attachTab

Attaches a tab window to the current tab window.

```ts
(tab: IOConnectWindow | string, options?: number | AttachOptions, success?: () => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`tab`** (`IOConnectWindow | string`, required)
  The instance or the name of the tab window to attach.
- **`options`** (`number | AttachOptions`, optional)
  Settings for the attached tab.
- **`success`** (`() => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### capture

Captures a screenshot of the window.

```ts
(options: CaptureOptions) => Promise<string>
```

**Parameters**

- **`options`** (`CaptureOptions`, required)
  Options for capturing the window.

**Returns**: `Promise<string>`

### center

Moves the window to the center of the screen.

```ts
(display?: IOConnectDesktop.Displays.Display) => Promise<IOConnectWindow>
```

**Parameters**

- **`display`** (`IOConnectDesktop.Displays.Display`, optional)
  Describes the display on which to center the window.

**Returns**: `Promise<IOConnectWindow>`

### clearPlacement

Clears the window placement settings.
This means that the window will no longer be automatically snapped to a specific position on the display in case of resolution, scaling, and monitor changes.

*Since: io.Connect Desktop 9.9, @interopio/desktop 6.14.0*

```ts
(options?: ClearPlacementSettings) => Promise<void>
```

**Parameters**

- **`options`** (`ClearPlacementSettings`, optional)
  Settings for clearing the window placement.

**Returns**: `Promise<void>`

### clone

Duplicates the current io.Connect Window.

*Since: io.Connect Desktop 9.2, @interopio/desktop 6.2.0*

```ts
(options?: IOConnectDesktop.AppManager.ApplicationStartOptions) => Promise<IOConnectWindow>
```

**Parameters**

- **`options`** (`IOConnectDesktop.AppManager.ApplicationStartOptions`, optional)
  Optional start options that will override the default start options when cloning the window.

**Returns**: `Promise<IOConnectWindow>`

### close

Closes the window.

```ts
(options?: IOConnectDesktop.Windows.CloseOptions) => Promise<boolean>
```

**Parameters**

- **`options`** (`IOConnectDesktop.Windows.CloseOptions`, optional)
  Options for closing the window that can be used to prevent closing the window and control whether to show a confirmation dialog before closing it.

**Returns**: `Promise<boolean>`

### close

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
- **`error`** (`(error: string) => void`, optional)

**Returns**: `Promise<IOConnectWindow>`

### collapse

Collapses a window.

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### configure

Configures the window.

```ts
(options: WindowConfiguration) => Promise<IOConnectWindow>
```

**Parameters**

- **`options`** (`WindowConfiguration`, required)
  Configuration options.

**Returns**: `Promise<IOConnectWindow>`

### createFlydown

Creates a flydown window.

```ts
(config: FlydownOptions) => Promise<Flydown>
```

**Parameters**

- **`config`** (`FlydownOptions`, required)
  Options for the flydown window.

**Returns**: `Promise<Flydown>`

### detachTab

Detaches a tab window from the current tab window.

```ts
(opt: DetachOptions, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`opt`** (`DetachOptions`, required)
  Settings for the detached window.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### dock

Docks the window at the specified position.

*Since: io.Connect Desktop 9.1, @interopio/desktop 6.1.0*

```ts
(options: DockingOptions) => Promise<DockingPlacement>
```

**Parameters**

- **`options`** (`DockingOptions`, required)
  Options for docking the window.

**Returns**: `Promise<DockingPlacement>`

### download

Downloads a file.

```ts
(url: string, options: DownloadOptions) => Promise<DownloadResult>
```

**Parameters**

- **`url`** (`string`, required)
  URL, data URL or blob which to download.
- **`options`** (`DownloadOptions`, required)
  Download options.

**Returns**: `Promise<DownloadResult>`

### dragMove

This method can be used to start dragging the window with the mouse when the left mouse button is pressed.

*Since: io.Connect Desktop 9.9, @interopio/desktop 6.14.0*

```ts
(options?: DragMoveOptions) => Promise<void>
```

**Parameters**

- **`options`** (`DragMoveOptions`, optional)
  Options for dragging the window. Use this argument to optionally provide the location of the mouse cursor within the window
  at the time the dragging operation was initiated. The platform will use that location to place the window under the mouse cursor when the mouse is moving
  (e.g., in case the mouse has already moved several pixels in any direction before the dragging operation has been initiated by the platform).
  If the starting mouse location isn't specified, its current position will be used.

**Returns**: `Promise<void>`

### executeCode

Executes code in the context of the io.Connect Window.

*Since: io.Connect Desktop 9.5, @interopio/desktop 6.8.0*

```ts
(code: string) => Promise<any>
```

**Parameters**

- **`code`** (`string`, required)
  Code to be executed in the context of the window. The code must be supplied as a string.

**Returns**: `Promise<any>`

### expand

Expands a window.

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### flash

Makes the taskbar window icon flash (e.g., to prompt the user to take action).

```ts
(options?: boolean, mode?: FlashMode) => Promise<IOConnectDesktop.Windows.IOConnectWindow>
```

**Parameters**

- **`options`** (`boolean`, optional)
  Flag indicating whether to start or stop flashing the taskbar window icon. Defaults to `true`.
- **`mode`** (`FlashMode`, optional)
  Mode for determining the flashing behavior of the window taskbar icon.

**Returns**: `Promise<IOConnectDesktop.Windows.IOConnectWindow>`

### flashTab

Makes the tab of the window flash (e.g., to prompt the user to take action).

```ts
(options?: boolean) => Promise<IOConnectDesktop.Windows.IOConnectWindow>
```

**Parameters**

- **`options`** (`boolean`, optional)
  Flag indicating whether to start or stop flashing the window tab. Defaults to `true`.

**Returns**: `Promise<IOConnectDesktop.Windows.IOConnectWindow>`

### focus

Focuses the current window. This is the same as calling `activate()`.

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### getApplication

Retrieves the application associated with the current window.

*Since: io.Connect Desktop 10.0, @interopio/desktop 6.16.0*

```ts
() => Promise<Apps.Application | undefined>
```

**Returns**: `Promise<Apps.Application | undefined>`

### getBounds

Retrieves the window bounds.

```ts
() => Promise<Bounds>
```

**Returns**: `Promise<Bounds>`

### getButtons

Retrieves the visible buttons of the window frame.

```ts
() => Promise<WindowButtons>
```

**Returns**: `Promise<WindowButtons>`

### getChannel

Retrieves the name of the currently joined Channel, if any.

```ts
() => Promise<string | undefined>
```

**Returns**: `Promise<string | undefined>`

### getChannels

Retrieves the names of all currently joined Channels, if any.

*Since: io.Connect Desktop 10.0, @interopio/desktop 6.16.0*

```ts
() => Promise<string[]> | undefined
```

**Returns**: `Promise<string[]> | undefined`

### getChildWindows

Retrieves all child windows of the window.

```ts
() => Promise<IOConnectWindow[]>
```

**Returns**: `Promise<IOConnectWindow[]>`

### getConfiguration

Retrieves the window configuration.

```ts
() => Promise<WindowConfiguration>
```

**Returns**: `Promise<WindowConfiguration>`

### getContext

Retrieves the window context.

```ts
() => Promise<any>
```

**Returns**: `Promise<any>`

### getDisplay

Retrieves the display on which the window is located.

```ts
() => Promise<IOConnectDesktop.Displays.Display>
```

**Returns**: `Promise<IOConnectDesktop.Displays.Display>`

### getDockingConfig

Retrieves the current docking configuration for the window as specified in the app definition or as previously set via the `setDockingConfig()` method.

*Since: io.Connect Desktop 10.0, @interopio/desktop 6.16.0*

```ts
() => Promise<DockingConfig>
```

**Returns**: `Promise<DockingConfig>`

### getDockingPlacement

Retrieves the docking placement information for the current window.

*Since: io.Connect Desktop 9.1, @interopio/desktop 6.1.0*

```ts
() => Promise<DockingPlacement>
```

**Returns**: `Promise<DockingPlacement>`

### getIcon

Retrieves the window icon.

```ts
(success?: (icon: string) => void, error?: (error: string) => void) => Promise<string>
```

**Parameters**

- **`success`** (`(icon: string) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<string>`

### getParentWindow

Retrieves the parent window of the window.

```ts
() => Promise<IOConnectWindow | undefined>
```

**Returns**: `Promise<IOConnectWindow | undefined>`

### getSizeConstraints

Retrieves the size constraints of the window.

```ts
() => Promise<SizeConstraints>
```

**Returns**: `Promise<SizeConstraints>`

### getTabTooltip

Retrieves the tooltip of a tab window.

```ts
() => Promise<string>
```

**Returns**: `Promise<string>`

### getTitle

Retrieves the window title.

```ts
() => Promise<string>
```

**Returns**: `Promise<string>`

### getURL

Retrieves the window URL.

```ts
() => Promise<string>
```

**Returns**: `Promise<string>`

### goBack

Makes the window navigate back to the previous web page.

```ts
() => Promise<void>
```

**Returns**: `Promise<void>`

### goForward

Makes the window navigate forward to the next web page.

```ts
() => Promise<void>
```

**Returns**: `Promise<void>`

### hide

Hides the current window.

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### hideLoader

Hides the loader animation for the window.

```ts
() => Promise<IOConnectWindow>
```

**Returns**: `Promise<IOConnectWindow>`

### joinChannel

Joins a new Channel.

```ts
(name: string) => Promise<void>
```

**Parameters**

- **`name`** (`string`, required)
  The name of the Channel to join.

**Returns**: `Promise<void>`

### leaveChannel

Leaves the current Channel.

```ts
() => Promise<void>
```

**Returns**: `Promise<void>`

### lock

Locks the window. When in locked state, moving the window will result in moving the entire group (if it's part of any).

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### maximize

Maximizes a window.

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### maximizeRestore

Maximizes or restores the current window based on the current window state.

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### minimize

Minimizes a window.

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### moveResize

Moves and/or resizes the window.

```ts
(dimension: Partial<Bounds>, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`dimension`** (`Partial<Bounds>`, required)
  Location and size for the window.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### moveTo

Moves a window to the specified position on the screen.

```ts
(top?: number, left?: number) => Promise<IOConnectWindow>
```

**Parameters**

- **`top`** (`number`, optional)
  Distance in pixels from the top edge of the screen for the top window border.
- **`left`** (`number`, optional)
  Distance in pixels from the left edge of the screen for the left window border.

**Returns**: `Promise<IOConnectWindow>`

### navigate

Navigates the window to a new URL.

```ts
(url: string, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`url`** (`string`, required)
  URL to which to navigate.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### navigate

```ts
(url: string, options?: LoadURLOptions) => Promise<IOConnectWindow>
```

**Parameters**

- **`url`** (`string`, required)
- **`options`** (`LoadURLOptions`, optional)

**Returns**: `Promise<IOConnectWindow>`

### onAttached

Notifies when the current window is attached to another window.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onBoundsChanged

Notifies when the window bounds are changed.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onChannelRestrictionsChanged

Notifies when the restrictions for any existing Channel have changed. Returns an unsubscribe function.

*Since: io.Connect Desktop 9.5, @interopio/desktop 6.8.0*

```ts
(callback: (restrictions: IOConnectDesktop.Channels.Restrictions) => void) => () => void
```

**Parameters**

- **`callback`** (`(restrictions: IOConnectDesktop.Channels.Restrictions) => void`, required)
  Callback function for handling the event.

**Returns**: `() => void`

### onClose

Notifies when the window is closed.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onClosing

Notifies when the window is about to be closed.

```ts
(callback: (prevent: (options?: PreventClosingOptions) => void) => Promise<void>) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(prevent: (options?: PreventClosingOptions) => void) => Promise<void>`, required)
  Callback function for handling the event. Returns a `Promise` that will be awaited
  before the window is closed. The timeout for waiting is subject to configuration in **io.Connect Desktop**.
  A function for preventing the closing is passed to the callback as a parameter.

**Returns**: `UnsubscribeFunction`

### onCollapsed

Notifies when the window is collapsed.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onContextUpdated

Notifies when the window context is updated.

```ts
(callback: (context: any, window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(context: any, window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onDetached

Notifies when the current window is detached from another window.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onDockingChanged

Notifies when the window docking placement is changed.

*Since: io.Connect Desktop 9.1, @interopio/desktop 6.1.0*

```ts
(callback: (window: IOConnectDesktop.Windows.IOConnectWindow, dockingPlacement: DockingPlacement) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectDesktop.Windows.IOConnectWindow, dockingPlacement: DockingPlacement) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onExpanded

Notifies when the window is expanded.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onFocusChanged

Notifies when the window focus is changed.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onFrameButtonAdded

Notifies when a frame button is added.

```ts
(callback: (buttonInfo: ButtonInfo, window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(buttonInfo: ButtonInfo, window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onFrameButtonClicked

Notifies when a frame button is clicked.

```ts
(callback: (buttonInfo: ButtonInfo, window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(buttonInfo: ButtonInfo, window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onFrameButtonRemoved

Notifies when a frame button is removed.

```ts
(callback: (buttonInfo: ButtonInfo, window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(buttonInfo: ButtonInfo, window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onFrameColorChanged

Notifies when the window frame color is changed.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onGroupChanged

Notifies when the window group is changed.

```ts
(callback: (window: IOConnectWindow, newGroup: Group, oldGroup: Group) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow, newGroup: Group, oldGroup: Group) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onLockingChanged

Notifies when the window is locked or unlocked.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onMaximized

Notifies when the window is maximized.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onMinimized

Notifies when the window is minimized.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onNavigating

Notifies when the window is about to be navigated to a new URL.

```ts
(callback: (args: { newUrl: string }) => Promise<void>) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(args: { newUrl: string }) => Promise<void>`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onNeighboursChanged

Notifies when the neighbors of the window are changed.

```ts
(callback: (neighbours: IOConnectDesktop.Windows.Neighbours, window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(neighbours: IOConnectDesktop.Windows.Neighbours, window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onNormal

Notifies when the window is restored from minimized or maximized state to normal state.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onPlacementSettingsChanged

Notifies when the placement settings for the window are changed.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onRefreshing

Notifies when the window is about to be refreshed.

```ts
(callback: (prevent: () => void) => Promise<void>) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(prevent: () => void) => Promise<void>`, required)
  Callback function for handling the event. Returns a `Promise` that will be awaited
  before the window is refreshed. The timeout for waiting is subject to configuration in **io.Connect Desktop**.
  A function for preventing the refresh is passed to the callback as a parameter.

**Returns**: `UnsubscribeFunction`

### onStickyChanged

Notifies when the window stickiness is changed.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onTabHeaderVisibilityChanged

Notifies when the visibility of the window tab header changes.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onTabSelectionChanged

Notifies when the active tab is changed.

```ts
(callback: (selectedWindow: IOConnectWindow, previousWindow: IOConnectWindow, window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(selectedWindow: IOConnectWindow, previousWindow: IOConnectWindow, window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onTitleChanged

Notifies when the title of the window is changed.

```ts
(callback: (title: string, window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(title: string, window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onUrlChanged

Notifies when the window URL is changed.

```ts
(callback: (url: string, window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(url: string, window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onVisibilityChanged

Notifies when the window visibility changes.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onWindowAttached

Notifies when a window is attached to the current window.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onWindowDetached

Notifies when a window is detached from the current window.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### onZoomFactorChanged

Notifies when the zoom factor is changed.

```ts
(callback: (window: IOConnectWindow) => void) => UnsubscribeFunction
```

**Parameters**

- **`callback`** (`(window: IOConnectWindow) => void`, required)
  Callback function for handling the event.

**Returns**: `UnsubscribeFunction`

### pin

Pins the tab of the current window. Pinned tabs are placed before the regular tab windows and contain only the window title.
Pinned tab windows don't have a "Close"  button preventing the user from closing them. Available only for tab windows in web groups.

*Since: io.Connect Desktop 9.5, @interopio/desktop 6.8.0*

```ts
() => Promise<IOConnectWindow>
```

**Returns**: `Promise<IOConnectWindow>`

### place

Places the window at the specified position.

```ts
(options: PlacementSettings) => Promise<void>
```

**Parameters**

- **`options`** (`PlacementSettings`, required)
  Window placement settings.

**Returns**: `Promise<void>`

### print

Prints the window web page.

```ts
(options?: PrintOptions) => Promise<IOConnectWindow | undefined>
```

**Parameters**

- **`options`** (`PrintOptions`, optional)
  Print options.

**Returns**: `Promise<IOConnectWindow | undefined>`

### printToPDF

Prints the window web page as a PDF file.

```ts
(options?: PrintToPDFOptions) => Promise<string | undefined>
```

**Parameters**

- **`options`** (`PrintToPDFOptions`, optional)
  Print to PDF options.

**Returns**: `Promise<string | undefined>`

### refresh

Refreshes the current window.

```ts
(ignoreCache?: boolean) => Promise<IOConnectWindow>
```

**Parameters**

- **`ignoreCache`** (`boolean`, optional)
  Flag indicating whether to use the Chromium cache (if `false`), or the server cache (if `true`) when refreshing the web page. Defaults to `false`.

**Returns**: `Promise<IOConnectWindow>`

### removeFrameButton

Removes a frame button from the window.

```ts
(buttonId: string, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`buttonId`** (`string`, required)
  ID of the button to remove.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### resetButtons

Resets the visible buttons of the window frame.

```ts
(buttons: WindowButtons, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`buttons`** (`WindowButtons`, required)
  Describes which buttons to be shown on the window frame.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### resizeTo

Resizes a window to the specified size.

```ts
(width?: number, height?: number) => Promise<IOConnectWindow>
```

**Parameters**

- **`width`** (`number`, optional)
  Width in pixels to which to resize the window.
- **`height`** (`number`, optional)
  Height in pixels to which to resize the window.

**Returns**: `Promise<IOConnectWindow>`

### restore

Restores a window.

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### setAllowWorkspaceDrop

Specifies whether the user will able to drop the current window in a Workspace.

*Since: io.Connect Desktop 9.5, @interopio/desktop 6.5.1*

```ts
(allow: boolean) => Promise<IOConnectWindow>
```

**Parameters**

- **`allow`** (`boolean`, required)
  Flag indicating whether the user will be able to drop the window in a Workspace.

**Returns**: `Promise<IOConnectWindow>`

### setContext

Sets the window context.

```ts
(context: any) => Promise<IOConnectWindow>
```

**Parameters**

- **`context`** (`any`, required)

**Returns**: `Promise<IOConnectWindow>`

### setDockingConfig

Sets the docking configuration for the window. This will override the docking configuration specified in the app definition.

*Since: io.Connect Desktop 10.0, @interopio/desktop 6.16.0*

```ts
(config: DockingConfig) => Promise<void>
```

**Parameters**

- **`config`** (`DockingConfig`, required)
  Docking settings.

**Returns**: `Promise<void>`

### setFrameColor

Sets the window frame color.

```ts
(frameColor: string, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`frameColor`** (`string`, required)
  Can be a color name, such as "red", or a hexadecimal RGB or ARGB value.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### setIcon

Sets the window icon.

```ts
(base64Image: string, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`base64Image`** (`string`, required)
  Icon as a Base64 string.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### setModalState

Makes a window behave like a modal window when it's used as a flydown.

```ts
(isModal: boolean) => Promise<void>
```

**Parameters**

- **`isModal`** (`boolean`, required)
  Flag indicating whether the modal behavior is to be turned on or off.

**Returns**: `Promise<void>`

### setOnTop

Z-index setting for the window.

```ts
(onTop: boolean | "always", success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`onTop`** (`boolean | "always"`, required)
  If `true` is passed as an argument, the window will be set on top of the Z-order.
  This, however, will last only until the window is visible and not joined to an io.Connect Window group.
  If the window is hidden programmatically or the user snaps it to another io.Connect Window or window group,
  it will no longer be on top of the Z-order when it becomes visible or when the user tears it off from the group.
  If `"always"` is passed, the window will remain permanently on top of the Z-order, regardless of changes to its visibility
  or whether it joins or leaves an io.Connect Window group. Note that because each io.Connect app window is in fact
  in an io.Connect Window group container (even though being a single window), the `onTop` setting actually determines the Z-order
  of the group container at the moment of its creation. Snapping an io.Connect Window to another io.Connect Window in reality destroys
  the group container of the snapped window and that window joins the group container of the window to which it is being snapped.
  Therefore, when joining a window with a specified `onTop` setting to another window or a window group,
  its initial `onTop` value will be overwritten - either permanently (when set to `true`), or temporarily (when set to `"always"`).
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### setSizeConstraints

Changes the size constraints of the window.

```ts
(constraints: SizeConstraints, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`constraints`** (`SizeConstraints`, required)
  Minimum and maximum width and height constraints for the window in pixels.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### setSticky

Enables or disables the stickiness of the current window.

```ts
(isSticky: boolean, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`isSticky`** (`boolean`, required)
  Flag indicating whether the window will be able to stick to other windows.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### setTabHeaderVisible

Hides or shows the tab header of the current window.

```ts
(toBeVisible?: boolean, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`toBeVisible`** (`boolean`, optional)
  Flag indicating whether to show or hide the tab header.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### setTabTooltip

Changes the tooltip of a tab window.

```ts
(tabTooltip: string) => Promise<IOConnectWindow>
```

**Parameters**

- **`tabTooltip`** (`string`, required)
  Text to be used as a tooltip.

**Returns**: `Promise<IOConnectWindow>`

### setTitle

Sets the title of the current window.

```ts
(title: string, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`title`** (`string`, required)
  New title for the window.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### setVisible

Hides or shows the current window.

```ts
(toBeVisible?: boolean, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`toBeVisible`** (`boolean`, optional)
  Flag indicating whether the window will become visible or hidden.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### setZoomFactor

Changes the zoom level.

```ts
(factor: number) => Promise<IOConnectWindow>
```

**Parameters**

- **`factor`** (`number`, required)
  Zoom factor.

**Returns**: `Promise<IOConnectWindow>`

### show

Shows the current window.

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### showDialog

Shows a dialog with a title, message and response buttons to the user.

```ts
<T>(options: DialogOptions) => Promise<T | DialogResult>
```

**Parameters**

- **`options`** (`DialogOptions`, required)
  Options for the dialog.

**Returns**: `Promise<T | DialogResult>`

### showLoader

Shows a loader animation for the window or updates the loader properties (animation type, background or text).

```ts
(options?: Loader) => Promise<IOConnectWindow>
```

**Parameters**

- **`options`** (`Loader`, optional)
  Settings for the loader animation.

**Returns**: `Promise<IOConnectWindow>`

### showPopup

Shows a popup window.
As of **io.Connect Desktop** 10.0, the popup window must be a frameless window.

```ts
(config: PopupOptions) => Promise<IOConnectWindow>
```

**Parameters**

- **`config`** (`PopupOptions`, required)
  Options for showing a popup window.

**Returns**: `Promise<IOConnectWindow>`

### snap

Snaps the window to another window.

```ts
(target: string | IOConnectWindow, options?: SnappingOptions | RelativeDirection, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`target`** (`string | IOConnectWindow`, required)
  ID or instance of the window to which to snap the current window.
- **`options`** (`SnappingOptions | RelativeDirection`, optional)
  Relative direction or options for snapping a window to another window or window group.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### startDrag

Enables moving files from a web page to the OS when a user starts dragging a web page element.
Based on the Electron [Native File Drag & Drop](https://www.electronjs.org/docs/latest/tutorial/native-file-drag-drop) functionality.

```ts
(options: StartDragOptions) => Promise<IOConnectWindow>
```

**Parameters**

- **`options`** (`StartDragOptions`, required)
  Options for the file that will be moved.

**Returns**: `Promise<IOConnectWindow>`

### toggleCollapse

Collapses or expands the current window based on the current window state.

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### undock

Undocks the window if it is already docked.

*Since: io.Connect Desktop 10.0, @interopio/desktop 6.16.0*

```ts
(options?: UndockingOptions) => Promise<void>
```

**Parameters**

- **`options`** (`UndockingOptions`, optional)
  Options for undocking the window.

**Returns**: `Promise<void>`

### ungroup

Extracts the current window from the window group. If the window is part of a tab group, the entire tab group will be extracted.

```ts
(options?: UngroupOptions) => Promise<IOConnectWindow | undefined>
```

**Parameters**

- **`options`** (`UngroupOptions`, optional)
  Settings for the extracted window.

**Returns**: `Promise<IOConnectWindow | undefined>`

### unlock

Unlocks the window. When in unlocked state, moving the window will result in tearing it out from the window group (if it's part of any).

```ts
(success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### unpin

Unpins the tab of the current window. The previously pinned tab reverts to a normal tab window containing a "Close" button. Available only for tab windows in web groups.

*Since: io.Connect Desktop 9.5, @interopio/desktop 6.8.0*

```ts
() => Promise<IOConnectWindow>
```

**Returns**: `Promise<IOConnectWindow>`

### updateContext

Updates the window context.

```ts
(context: any, success?: (window: IOConnectWindow) => void, error?: (error: string) => void) => Promise<IOConnectWindow>
```

**Parameters**

- **`context`** (`any`, required)
  Context object with which to update the current context (or create a new one if it doesn't exist).
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.
- **`error`** (`(error: string) => void`, optional)
  Callback function for handling errors.

**Returns**: `Promise<IOConnectWindow>`

### zoomIn

Zooms in the window.

```ts
() => Promise<IOConnectWindow>
```

**Returns**: `Promise<IOConnectWindow>`

### zoomOut

Zooms out the window.

```ts
() => Promise<IOConnectWindow>
```

**Returns**: `Promise<IOConnectWindow>`

## Related types

- [AppManager](https://docs.interop.io/desktop/reference/javascript/app%20management/appmanager/index.md)
- [Application](https://docs.interop.io/desktop/reference/javascript/app%20management/application/index.md)
- [ApplicationStartOptions](https://docs.interop.io/desktop/reference/javascript/app%20management/applicationstartoptions/index.md)
- [AttachOptions](https://docs.interop.io/desktop/reference/javascript/windows/attachoptions/index.md)
- [Bounds](https://docs.interop.io/desktop/reference/javascript/windows/bounds/index.md)
- [ButtonInfo](https://docs.interop.io/desktop/reference/javascript/windows/buttoninfo/index.md)
- [CaptureOptions](https://docs.interop.io/desktop/reference/javascript/windows/captureoptions/index.md)
- [Channels](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/channels/index.md)
- [ClearPlacementSettings](https://docs.interop.io/desktop/reference/javascript/windows/clearplacementsettings/index.md)
- [CloseOptions](https://docs.interop.io/desktop/reference/javascript/windows/closeoptions/index.md)
- [DetachOptions](https://docs.interop.io/desktop/reference/javascript/windows/detachoptions/index.md)
- [DialogOptions](https://docs.interop.io/desktop/reference/javascript/windows/dialogoptions/index.md)
- [DialogResult](https://docs.interop.io/desktop/reference/javascript/windows/dialogresult/index.md)
- [Display](https://docs.interop.io/desktop/reference/javascript/io.connect%20desktop/display/index.md)
- [DockingConfig](https://docs.interop.io/desktop/reference/javascript/windows/dockingconfig/index.md)
- [DockingOptions](https://docs.interop.io/desktop/reference/javascript/windows/dockingoptions/index.md)
- [DockingPlacement](https://docs.interop.io/desktop/reference/javascript/windows/dockingplacement/index.md)
- [DownloadOptions](https://docs.interop.io/desktop/reference/javascript/windows/downloadoptions/index.md)
- [DownloadResult](https://docs.interop.io/desktop/reference/javascript/windows/downloadresult/index.md)
- [DragMoveOptions](https://docs.interop.io/desktop/reference/javascript/windows/dragmoveoptions/index.md)
- [FlashMode](https://docs.interop.io/desktop/reference/javascript/windows/flashmode/index.md)
- [Flydown](https://docs.interop.io/desktop/reference/javascript/windows/flydown/index.md)
- [FlydownOptions](https://docs.interop.io/desktop/reference/javascript/windows/flydownoptions/index.md)
- [Group](https://docs.interop.io/desktop/reference/javascript/windows/group/index.md)
- [Instance](https://docs.interop.io/desktop/reference/javascript/interop/instance/index.md)
- [JumpList](https://docs.interop.io/desktop/reference/javascript/windows/jumplist/index.md)
- [LoadURLOptions](https://docs.interop.io/desktop/reference/javascript/windows/loadurloptions/index.md)
- [Loader](https://docs.interop.io/desktop/reference/javascript/windows/loader/index.md)
- [Neighbours](https://docs.interop.io/desktop/reference/javascript/windows/neighbours/index.md)
- [PlacementSettings](https://docs.interop.io/desktop/reference/javascript/windows/placementsettings/index.md)
- [PopupOptions](https://docs.interop.io/desktop/reference/javascript/windows/popupoptions/index.md)
- [PreventClosingOptions](https://docs.interop.io/desktop/reference/javascript/windows/preventclosingoptions/index.md)
- [PrintOptions](https://docs.interop.io/desktop/reference/javascript/windows/printoptions/index.md)
- [PrintToPDFOptions](https://docs.interop.io/desktop/reference/javascript/windows/printtopdfoptions/index.md)
- [RelativeDirection](https://docs.interop.io/desktop/reference/javascript/windows/relativedirection/index.md)
- [Restrictions](https://docs.interop.io/desktop/reference/javascript/channels/restrictions/index.md)
- [SizeConstraints](https://docs.interop.io/desktop/reference/javascript/windows/sizeconstraints/index.md)
- [SnappingOptions](https://docs.interop.io/desktop/reference/javascript/windows/snappingoptions/index.md)
- [StartDragOptions](https://docs.interop.io/desktop/reference/javascript/windows/startdragoptions/index.md)
- [UndockingOptions](https://docs.interop.io/desktop/reference/javascript/windows/undockingoptions/index.md)
- [UngroupOptions](https://docs.interop.io/desktop/reference/javascript/windows/ungroupoptions/index.md)
- [UnsubscribeFunction](https://docs.interop.io/desktop/reference/javascript/search/unsubscribefunction/index.md)
- [WindowButtons](https://docs.interop.io/desktop/reference/javascript/windows/windowbuttons/index.md)
- [WindowConfiguration](https://docs.interop.io/desktop/reference/javascript/windows/windowconfiguration/index.md)
- [WindowMode](https://docs.interop.io/desktop/reference/javascript/windows/windowmode/index.md)
- [WindowSettings](https://docs.interop.io/desktop/reference/javascript/windows/windowsettings/index.md)
- [WindowState](https://docs.interop.io/desktop/reference/javascript/windows/windowstate/index.md)
