Crossfilter component

Crossfilter represents a multi-dimensional dataset and supports multivariate filtering. It is used for powering interactive coordinated views, including Histogram and List widgets. Its part of the family of components that includes also Dimension and Aggregation components.


data JSON - Any array of JSON objects or primitives.

filter JSON - Accepts a set of filters. Use Dimension component to specify filters for different dimensions and aggregations.


filters JSON - Outputs the current filter set across all dimensions. Event is triggered every-time any of the filters in the set is changed.

results JSON - Resulting data set after all filters are applied.

q-results <Queryable> - Queryable port with Crossfilter results. Its used by Dimension component to query aggregated results.


Crossfilter is the main component in the Crossfilter family of components. It represents a multi-dimensional dataset with multivariate filtering capability. You can use it to filter and aggregate large datasets and create interactive coordinated views with List widgets, Histograms, etc. Below is a typical configuration of Crossfilter that using a single dimension filter with aggregation.

Use Dimension component to generate filters for Crossfilter component or specify filters manually by providing the following structure as input on the filter port:

"field": "ocean",
"equal": ["Pacific", "Atlantic"],
"nameDimension": "<dimension_id>"

When filters are applied the Crossfilter producing the results on results port. Results include filtered data and metadata. Metadata field contains the total and filtered metrics, and the details about aggregations. Here is an example of the results with metadata.

"data": [...],
"meta": {
"total": 314,
"filtered": 23,
"aggregations": {...}

Kelp Crossfilter components are build on top of Crossfilter JavaScript library.


No additional configuration is required.