Data visualization
Render a Sinequa aggregation as a heatmap, a tag or word cloud, or a Chart.js bar/pie/doughnut/timeline — all in controlled mode, like <Aggregation>.
Every component here follows the same contract as <Aggregation> in controlled
mode: it takes an aggregation (or aggregations) input, never reads or writes QueryParamsStore /
AggregationsStore, and reports interactions through outputs. A chart is therefore interchangeable with a
list facet — feed it from AggregationsStore, from QueryService.search() or from fetchQuery(), whichever
suits, and wire its output back into a filter the same way.
Two entry points
Heatmap, TagCloud and WordCloud need no charting dependency and ship from the main
@sinequa/atomic-angular entry point. AggregationChart, AggregationTimeline and AggregationHeatmap are
built on Chart.js, an optional peer dependency — they ship from a separate
@sinequa/atomic-angular/charts entry point (and, for the matrix-based heatmap, a further
@sinequa/atomic-angular/charts/heatmap), so an application that never imports from there never needs
chart.js installed.
What's next
Heatmap
A two-dimensional distribution as a CSS grid — no dependency, accessible, clickable axis labels.
Tag Cloud
Aggregation values as a wrapping list of tags, sized by count.
Word Cloud
The same data, packed into a compact spiral layout.
Aggregation Chart
A bar, pie or doughnut chart, from the Chart.js entry point.
Aggregation Timeline
A time series with a drag-to-select range brush.
Aggregation Heatmap
The canvas sibling of Heatmap, for matrices too large for the DOM.
Applied filters
Show what the query is currently filtered by, as one removable chip per value — the counterpart of the filters bar, which shows what a user can filter on.
Heatmap
Render a two-dimensional aggregation as a grid of intensity-shaded cells — no charting dependency, real clickable buttons for cells and axis labels, readable by a screen reader.