# GridFilteringDirective

Owns the `[filtering]` input and `(filterChange)` output on `<tbw-grid>`.

Selector matches when *either* binding is present so users can pick the
style that suits their template — both go through the same claim and the
same wiring.

## Properties

| Property | Type | Description |
| -------- | ---- | ----------- |
| `filtering` | <code>InputSignal&lt;boolean &#124; <a href="/grid/angular/api/types/filterconfig/">FilterConfig</a>&lt;any&gt; &#124; undefined&gt;</code> | Enable column filtering. Identical semantics to the deprecated input on `Grid` — this directive owns the binding when both are present. |
| `filterChange` | <code>OutputEmitterRef&lt;<a href="/grid/plugins/filtering/interfaces/filterchangedetail/">FilterChangeDetail</a>&gt;</code> | Emitted when filter values change. |

### Property Details

#### filtering

```html
<tbw-grid [filtering]="true" />
<tbw-grid [filtering]="{ debounceMs: 200 }" />
```

---

#### filterChange

```html
<tbw-grid (filterChange)="onFilterChange($event)" />
```

---

## Methods

### ngOnInit()

A callback method that is invoked immediately after the
default change detector has checked the directive's
data-bound properties for the first time,
and before any of the view or content children have been checked.
It is invoked only once when the directive is instantiated.

```ts
ngOnInit(): void
```

***

### ngOnDestroy()

A callback method that performs custom clean-up, invoked immediately
before a directive, pipe, or service instance is destroyed.

```ts
ngOnDestroy(): void
```

***
