<!-- Generated by scripts/generate-web-components.js. Do not edit directly. -->

# Filter

Builds and displays a set of structured filters.

```html
<noora-filter>
  <noora-filter-definition name="status" label="Status" type="option">
    <noora-filter-option value="active">Active</noora-filter-option>
    <noora-filter-option value="paused">Paused</noora-filter-option>
  </noora-filter-definition>
  <noora-filter-value name="status" operator="==" value="active"></noora-filter-value>
</noora-filter>
```

## Attributes

| Attribute | Type or allowed values | Default | Description |
| --- | --- | --- | --- |
| `label` | `string` | `"Filter"` | Sets the add-filter label. |
| `disabled` | `boolean` | `false` | Disables editing. |

## Properties

| Property | Type or allowed values | Default | Description |
| --- | --- | --- | --- |
| `availableFilters` | `Array<Record<string, unknown>>` | `[]` | Defines available filters programmatically when declarative definitions are not used. |
| `filters` | `Array<Record<string, unknown>>` | `[]` | Gets or sets active filters programmatically. |

## Events

| Event | Type | Description |
| --- | --- | --- |
| `noora-filter-change` | `CustomEvent<{ filters: Array<Record<string, unknown>> }>` | Emitted when a filter is added, changed, or removed. |

## Slots

| Slot | Description |
| --- | --- |
| `default` | Declarative noora-filter-definition and noora-filter-value children. |

## Styling parts

| Part | Description |
| --- | --- |
| `filter` | The filter container. |
| `active-filters` | The active-filter list. |
| `add` | The add-filter control. |
| `active-filter` | An active filter control. |

Changes emit a `noora-filter-change` event.

## Status filter

Offer a predefined status filter.

```html
<noora-filter>
  <noora-filter-definition name="status" label="Status" type="option">
    <noora-filter-option value="active">Active</noora-filter-option>
    <noora-filter-option value="paused">Paused</noora-filter-option>
  </noora-filter-definition>
  <noora-filter-definition name="name" label="Name" type="text"></noora-filter-definition>
  <noora-filter-definition name="amount" label="Amount" type="number"></noora-filter-definition>
  <noora-filter-value name="status" operator="==" value="active"></noora-filter-value>
</noora-filter>
```
