Skip to content

Overview

Filter types cover Core condition families, Pro value controls, and global quick filtering. Choose the control that matches the column data and the way users need to narrow it.

TypeBest for
TextNames, labels, codes, and descriptions
NumberEquality, comparisons, and numeric ranges
SelectionSearchable checklists of known values
Excel-style SelectionStaged Apply/Cancel checklists
Selection CascadeContext-aware dependent value lists
SliderVisual numeric interval selection
DateCalendar days and relative periods
DatetimeExact instants and timezone-aware ranges
BooleanStrict Yes/No values
ArrayEmpty and non-empty arrays
Quick FilterSearch words across several columns

Need reporting periods that do not start in January? Configure Fiscal Date Filters for Date, Datetime, and aligned Relative Window conditions.

Structured filter types add purpose-built controls to the Pro filter popup while keeping the standard RevoGrid filter model. AdvanceFilterPlugin registers all built-ins, but each column opts into the controls it needs.

import {
AdvanceFilterPlugin,
FILTER_FACETED_LIST,
FILTER_HISTOGRAM_BRUSH,
FILTER_TOKEN_LIST,
} from '@revolist/revogrid-pro';
import '@revolist/revogrid-pro/dist/revogrid-pro.css';
grid.plugins = [AdvanceFilterPlugin];
grid.columns = [
{ prop: 'sku', filter: ['string', FILTER_TOKEN_LIST] },
{ prop: 'region', filter: ['string', FILTER_FACETED_LIST] },
{ prop: 'revenue', filter: ['number', FILTER_HISTOGRAM_BRUSH] },
];
grid.filter = true;

The first array entry keeps the ordinary string or number operators available. The structured type adds its specialized body above the ordinary condition list. Conditions still serialize as multiFilterItems and compile into the canonical FilterAst.

TypeBest forReads column data
Token ListPasted exact valuesNo
Fuzzy SearchApproximate text matchesUnique values for preview
Regular ExpressionPattern-based text matchingUnique values for preview
Faceted ListSearchable values with countsAll and visible value counts
Chip and Badge TogglesSmall visual status setsUnique values
Histogram BrushNumeric distributions and rangesNumeric values and bounds
Rating or Progress ThresholdStars, percentages, or scoresNo
Statistical PresetsTop 10%, average, quartiles, outliersNumeric values and bounds
Calendar RangeInclusive date-only rangesNo
Relative WindowRolling date periodsNo
Timeline BrushDate or datetime density and rangesTemporal values
Time MatrixWeekday and hour schedulesNo
Tri-state BooleanAll, Yes, No, and optional blanksValue counts
Array and TagsAny, all, none, exact, or empty tagsArray values

Every focused guide uses the same three steps:

  1. Register AdvanceFilterPlugin once on the grid.
  2. Put the structured type constant in the matching column’s filter array.
  3. Use multiFilterItems only when the application needs an initial or restored condition.
grid.filter = {
multiFilterItems: {
sku: [
{
id: 1,
type: 'tokenListAnyOf',
value: ['EU-100', 'EU-200'],
relation: 'and',
},
],
},
};

The saved type is the operator ID, not the structured body ID. Each type guide lists both IDs and the exact JSON-safe value shape.

Built-in factory options belong to the structured type registration, not to an individual column. Replace a built-in registration when you need custom formatting, limits, locale, colors, or other presentation policy.

For pagination and infinite-scroll datasets, the browser may hold only part of the result. Supply complete server aggregates when a data-derived control must represent the entire remote dataset rather than the loaded page.

Read Custom Structured Filter Types for registration replacement, lazy aggregates, remote prepared data, and building a custom body.