Summary
When a user clicks on a data point in one chart, other charts on the dashboard should automatically filter to show related data. This creates an interactive exploration experience similar to Tableau and Power BI.
Current State
Portlets operate independently. Dashboard filters apply universally but manual interaction doesn't propagate between charts.
Proposed Features
Core Functionality
- Click-to-Filter: Click on bar/pie/scatter point filters other portlets by that dimension value
- Visual Indicators: Show which cross-filter is currently active
- Clear Filter: Button to reset cross-filter state
- Multi-select Mode: Hold Ctrl/Cmd to filter by multiple values
Configuration Options
- Filter Targets: Configure which portlets respond to which sources
- Filter Groups: Group portlets that share cross-filter behavior
- Bidirectional Filtering: Enable two-way cross-filtering between charts
Example Usage
<AnalyticsDashboard
config={dashboardConfig}
crossFilterGroups={[
{ id: 'sales-group', portlets: ['chart-1', 'chart-2', 'chart-3'] }
]}
/>
Competitor Reference
- Embeddable: Architecture enables "two-way interaction" with "variables/events" for custom behaviors
- Tableau: Cross-filtering is a core dashboard feature
- Power BI: "Cross-filter" and "cross-highlight" between visuals
Technical Approach
- Create
CrossFilterContext provider at dashboard level
- Emit filter events from chart click handlers with dimension/value payload
- Subscribe portlets to filter context changes
- Merge cross-filters with dashboard filters in query execution
- Add visual indicator components for active filters
Labels
enhancement feature-request dashboard client
Summary
When a user clicks on a data point in one chart, other charts on the dashboard should automatically filter to show related data. This creates an interactive exploration experience similar to Tableau and Power BI.
Current State
Portlets operate independently. Dashboard filters apply universally but manual interaction doesn't propagate between charts.
Proposed Features
Core Functionality
Configuration Options
Example Usage
Competitor Reference
Technical Approach
CrossFilterContextprovider at dashboard levelLabels
enhancementfeature-requestdashboardclient