# ColumnFilterChangedInfo

Canonical page: https://www.adaptabletools.com/docs/reference/columnfilterchangedinfo

EventInfo returned by the ColumnFilterChanged event.

Fires for every column-filter editor or state change — including incomplete
drafts (e.g. operator chosen, value not yet valid) that are not persisted.

Prefer this over ColumnFilterApplied when
you need to observe in-progress edits. Use `isApplied` to ignore drafts.

```ts title="TypeScript"
export interface ColumnFilterChangedInfo extends BaseContext 
```

###### Extends

[`BaseContext`](https://www.adaptabletools.com/docs/reference/basecontext.md)

## Properties

| Property | Type | Description |
| --- | --- | --- |
| [columnFilters](https://www.adaptabletools.com/docs/reference/columnfilterchangedinfo.md#columnfilters) | [`ColumnFilter`](https://www.adaptabletools.com/docs/reference/columnfilter.md)`[]` | Currently persisted Column Filters after this change.<br/>Unchanged when `isApplied` is false. |
| [columnId](https://www.adaptabletools.com/docs/reference/columnfilterchangedinfo.md#columnid) | `string` | Column whose filter changed.<br/>Undefined for bulk actions (e.g. clear/suspend all). |
| [expression](https://www.adaptabletools.com/docs/reference/columnfilterchangedinfo.md#expression) | `string` | Expression for `columnId` after this change when available.<br/>May be omitted for incomplete drafts with nothing persistable yet. |
| [isApplied](https://www.adaptabletools.com/docs/reference/columnfilterchangedinfo.md#isapplied) | `boolean` | True when persisted Column Filters were updated (layout state) and grid<br/>filtering may change. False when only an in-progress editor draft changed<br/>(incomplete expression, or manual-apply pending Apply).<br/><br/>When true, ColumnFilterApplied is also<br/>emitted for backward compatibility. |
| [isComplete](https://www.adaptabletools.com/docs/reference/columnfilterchangedinfo.md#iscomplete) | `boolean` | Whether the filter expression for this change is fully specified.<br/><br/>- When `isApplied` is false: the editor draft is valid (not e.g. an<br/> operator with a missing value). False for incomplete drafts.<br/>- When `isApplied` is true: a complete Expression was written or remains<br/> for the column. False when the column filter was cleared/deactivated.<br/><br/>These flags diverge for clear/deactivate (`isComplete: false`,<br/>`isApplied: true`), incomplete drafts (`false`/`false`), manual-apply<br/>pending Apply (`true`/`false`), and the usual complete apply (`true`/`true`). |
| [adaptableContext](https://www.adaptabletools.com/docs/reference/columnfilterchangedinfo.md#adaptablecontext) | `any` | Custom application Context provided in `AdaptableOptions.adaptableContext` |

## Property Details

### columnFilters

Currently persisted Column Filters after this change.
Unchanged when `isApplied` is false.

```ts title="TypeScript"
columnFilters: ColumnFilter[];
```

###### Property Value

[`ColumnFilter`](https://www.adaptabletools.com/docs/reference/columnfilter.md)`[]`

### columnId

Column whose filter changed.
Undefined for bulk actions (e.g. clear/suspend all).

```ts title="TypeScript"
columnId?: string;
```

###### Property Value

`string`

### expression

Expression for `columnId` after this change when available.
May be omitted for incomplete drafts with nothing persistable yet.

```ts title="TypeScript"
expression?: string;
```

###### Property Value

`string`

### isApplied

True when persisted Column Filters were updated (layout state) and grid
filtering may change. False when only an in-progress editor draft changed
(incomplete expression, or manual-apply pending Apply).

When true, ColumnFilterApplied is also
emitted for backward compatibility.

```ts title="TypeScript"
isApplied: boolean;
```

###### Property Value

`boolean`

### isComplete

Whether the filter expression for this change is fully specified.

- When `isApplied` is false: the editor draft is valid (not e.g. an
 operator with a missing value). False for incomplete drafts.
- When `isApplied` is true: a complete Expression was written or remains
 for the column. False when the column filter was cleared/deactivated.

These flags diverge for clear/deactivate (`isComplete: false`,
`isApplied: true`), incomplete drafts (`false`/`false`), manual-apply
pending Apply (`true`/`false`), and the usual complete apply (`true`/`true`).

```ts title="TypeScript"
isComplete: boolean;
```

###### Property Value

`boolean`

### adaptableContext

> *Inherited from [BaseContext](https://www.adaptabletools.com/docs/reference/basecontext.md)*

Custom application Context provided in `AdaptableOptions.adaptableContext`

```ts title="TypeScript"
adaptableContext: any;
```

###### Property Value

`any`
