# Group

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

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

Describes a window group.

## Properties

- **`id`** (`string`, required)
  ID of the current group.
- **`isHeaderVisible`** (`boolean`, required)
  If `true`, the header of the group is visible.
- **`isHibernated`** (`boolean`, required)
  If `true`, the window group is hibernated.
- **`isVisible`** (`boolean`, required)
  If `true`, the window group is visible.
- **`windows`** (`IOConnectWindow[]`, required)
  Lists all windows in the group.

## Methods

### capture

Captures the entire window group as a Base64 string.

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

**Parameters**

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

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

### close

Closes the window group.

*Since: io.Connect Desktop 9.3, @interopio/desktop 6.3.1*

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

**Parameters**

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

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

### find

Finds a window by ID or by a window object.

```ts
(window: string | IOConnectWindow, success?: (window: IOConnectWindow) => void) => IOConnectWindow | undefined
```

**Parameters**

- **`window`** (`string | IOConnectWindow`, required)
  Window ID or a window object by which to find a window in the group.
- **`success`** (`(window: IOConnectWindow) => void`, optional)
  Callback function for handling the successfully returned result.

**Returns**: `IOConnectWindow | undefined`

### getTitle

Returns the current title of the window group.

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

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

### hide

Hides a window group.

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

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

### hideHeader

Hides the window group header.

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

**Parameters**

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

**Returns**: `Promise<Group>`

### maximize

Maximizes a window group.

```ts
(success?: (group: Group) => void, error?: (error: string) => void) => void
```

**Parameters**

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

**Returns**: `void`

### onClosing

Notifies when the window group is about to be closed.

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

```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 group is closed. The timeout for waiting is 30 seconds. A function for preventing the closing is passed to the callback as a parameter.

**Returns**: `UnsubscribeFunction`

### onHeaderVisibilityChanged

Notifies when the visibility of the window group header is changed.

```ts
(callback: (group: Group) => void) => UnsubscribeFunction
```

**Parameters**

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

**Returns**: `UnsubscribeFunction`

### onVisibilityChanged

Notifies when the visibility of a window group is changed.

```ts
(callback: (group: Group) => void) => UnsubscribeFunction
```

**Parameters**

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

**Returns**: `UnsubscribeFunction`

### onWindowAdded

Notifies when a new window is added to the group.

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

**Parameters**

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

**Returns**: `UnsubscribeFunction`

### onWindowRemoved

Notifies when a window is removed from the group.

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

**Parameters**

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

**Returns**: `UnsubscribeFunction`

### reload

Reloads a window group. Available only for web groups.

*Since: io.Connect Desktop 9.8.1, @interopio/desktop 6.13.0*

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

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

### restore

Restores a window group.

```ts
(success?: (group: Group) => void, error?: (error: string) => void) => void
```

**Parameters**

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

**Returns**: `void`

### setTitle

Changes the title of the window group.

```ts
(title: string) => Promise<Group>
```

**Parameters**

- **`title`** (`string`, required)
  New title for the window group.

**Returns**: `Promise<Group>`

### show

Shows a previously hidden window group.

```ts
(activate?: boolean) => Promise<void>
```

**Parameters**

- **`activate`** (`boolean`, optional)
  Flag indicating whether to activate the group and focus the last focused app window.

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

### showHeader

Shows the window group header.

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

**Parameters**

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

**Returns**: `Promise<Group>`

### showPopup

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

*Since: io.Connect Desktop 9.3, @interopio/desktop 6.3.1*

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

**Parameters**

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

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

## Related types

- [CaptureOptions](https://docs.interop.io/desktop/reference/javascript/windows/captureoptions/index.md)
- [CloseOptions](https://docs.interop.io/desktop/reference/javascript/windows/closeoptions/index.md)
- [IOConnectWindow](https://docs.interop.io/desktop/reference/javascript/windows/ioconnectwindow/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)
- [UnsubscribeFunction](https://docs.interop.io/desktop/reference/javascript/search/unsubscribefunction/index.md)
