# ShellPlugin

> _Since v2.x (extraction #370)_

Shell plugin for `<tbw-grid>`.

## [Configuration Options](/grid/plugins/shell/interfaces/shellconfig.md)

| Option | Type | Description |
| ------ | ---- | ----------- |
| `header?` | <code><a href="/grid/plugins/shell/interfaces/shellheaderconfig/">ShellHeaderConfig</a></code> | Shell header bar configuration |
| `toolPanel?` | <code><a href="/grid/plugins/shell/interfaces/toolpanelconfig/">ToolPanelConfig</a></code> | Tool panel configuration |

## See Also

- [`ShellConfig`](/grid/plugins/shell/interfaces/shellconfig.md) for all configuration options.
- Extends BaseGridPlugin.

> **Extends** [BaseGridPlugin](/docs/grid-api-plugin-development-classes-basegridplugin--docs)
>
> Inherited methods like `attach()`, `detach()`, `afterRender()`, etc. are documented in the base class.

## Accessors

### isToolPanelOpen

Whether the tool panel sidebar is currently open.

```ts
readonly isToolPanelOpen: boolean
```

***

### expandedToolPanelSections

IDs of the currently expanded accordion sections in the tool panel.

```ts
readonly expandedToolPanelSections: string[]
```

***

## Methods

### openToolPanel()

Open the tool panel sidebar.

```ts
openToolPanel(panelId: string, options: OpenToolPanelOptions): void
```

#### Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| `panelId` | <code>string</code> | Optional section to expand on open (see ShellController.openToolPanel). |
| `options` | <code><a href="/grid/plugins/shell/interfaces/opentoolpaneloptions/">OpenToolPanelOptions</a></code> | Optional open options. In `mode: 'dropdown'`, `options.anchor`
  sets the element the popover anchors to (see OpenToolPanelOptions). |

***

### closeToolPanel()

Close the tool panel sidebar.

```ts
closeToolPanel(): void
```

***

### toggleToolPanel()

Toggle the tool panel sidebar open or closed.

```ts
toggleToolPanel(options: OpenToolPanelOptions): void
```

#### Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| `options` | <code><a href="/grid/plugins/shell/interfaces/opentoolpaneloptions/">OpenToolPanelOptions</a></code> | Optional open options forwarded when opening (e.g. `anchor`
  for dropdown mode; see OpenToolPanelOptions). |

***

### toggleToolPanelSection()

Toggle an accordion section expanded or collapsed within the tool panel.

```ts
toggleToolPanelSection(sectionId: string): void
```

#### Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| `sectionId` | <code>string</code> |  |

***

### getToolPanels()

Get all registered tool panel definitions.

```ts
getToolPanels(): ToolPanelDefinition[]
```

***

### registerToolPanel()

Register a custom tool panel section.

```ts
registerToolPanel(panel: ToolPanelDefinition): void
```

#### Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| `panel` | <code><a href="/grid/plugins/shell/interfaces/toolpaneldefinition/">ToolPanelDefinition</a></code> |  |

***

### unregisterToolPanel()

Unregister a custom tool panel section.

```ts
unregisterToolPanel(panelId: string): void
```

#### Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| `panelId` | <code>string</code> |  |

***

### getHeaderContents()

Get all registered header content definitions.

```ts
getHeaderContents(): HeaderContentDefinition[]
```

***

### registerHeaderContent()

Register custom header content (rendered in the shell header bar).

```ts
registerHeaderContent(content: HeaderContentDefinition): void
```

#### Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| `content` | <code><a href="/grid/plugins/shell/interfaces/headercontentdefinition/">HeaderContentDefinition</a></code> |  |

***

### unregisterHeaderContent()

Unregister custom header content.

```ts
unregisterHeaderContent(contentId: string): void
```

#### Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| `contentId` | <code>string</code> |  |

***

### getToolbarContents()

Get all registered toolbar content definitions.

```ts
getToolbarContents(): ToolbarContentDefinition[]
```

***

### registerToolbarContent()

Register custom toolbar content (rendered in the shell toolbar).

```ts
registerToolbarContent(content: ToolbarContentDefinition): void
```

#### Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| `content` | <code><a href="/grid/plugins/shell/interfaces/toolbarcontentdefinition/">ToolbarContentDefinition</a></code> |  |

***

### unregisterToolbarContent()

Unregister custom toolbar content.

```ts
unregisterToolbarContent(contentId: string): void
```

#### Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| `contentId` | <code>string</code> |  |

***
