filter-cards
Adds, replaces, or removes a filter predicate. Filters are keyed by tag so multiple independent filters can coexist. A card must pass every active predicate to stay visible.
Filtering affects viewData only - source cards returned by api.getCards() are unchanged.
Usage
api.exec("filter-cards", {
filter?: (card: KanbanCard) => boolean | null,
tag?: string,
});
| Field | Type | Description |
|---|---|---|
filter | (card: KanbanCard) => boolean | null | Predicate that returns true to keep a card. Pass null or omit to remove |
tag | string | Identifies this filter. Defaults to "_default" when omitted |
Payload behavior:
| Payload | Result |
|---|---|
{ filter, tag: "search" } | Set or replace the "search" predicate |
{ filter } | Set or replace the default predicate |
{ tag: "search" } | Remove the "search" predicate |
{ filter: null, tag: "search" } | Remove the "search" predicate |
{} | Clear every filter |
{ filter: null } | Clear every filter |
Tags beginning with _ are reserved for library use.
Trigger
api.exec("filter-cards", {
tag: "priority",
filter: card => card.priority === 3,
});
Observe
api.on("filter-cards", ev => {
console.log("filter changed", ev.tag);
});
Intercept
api.intercept("filter-cards", ev => {
// prevent clearing all filters
if (!ev.filter && !ev.tag) return false;
});
Component handler
<Kanban
:cards="cards"
:columns="columns"
:onfiltercards="(ev) => console.log('filter applied', ev.tag)"
/>
Related
- Filtering guide - stacking filters, external filter widgets
- filters - initial filter map prop
- sort-cards - sort criterion applied after filtering