mirror of
https://github.com/apache/superset.git
synced 2026-05-07 17:04:58 +00:00
Major refactor to modernize control panel system:
## Changes Made
### Core Infrastructure
- Created InlineControls.tsx with helper functions for all control types
- Added SharedControlComponents for replacing string control references
- Fixed TypeScript types and imports across all control panels
- Added proper exports and type definitions
### Control Panel Migrations
- Converted 20+ control panel files from inline configurations to React components
- Eliminated all string control references (e.g., ['metric'] → MetricControl())
- Updated all legacy-plugin-chart-* plugins
- Updated all legacy-preset-chart-deckgl layers
- Fixed chord diagram control panel (was prematurely using JSON Forms)
### Type Safety Improvements
- Fixed choice array type mismatches (now supports mixed types)
- Resolved import conflicts by renaming inline control helpers
- Added proper TypeScript types for all control configurations
- Reduced TypeScript errors by 57% (44 → 19)
### Pattern Conversion
Before: { name: 'control', config: { type: 'SelectControl', ... } }
After: SelectControl({ name: 'control', ... })
This sets the foundation for the next phase: migrating to JSON Forms format.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
@superset-ui/plugin-chart-echarts
This plugin provides Echarts viz plugins for Superset:
- Timeseries Chart (combined line, area bar with support for predictive analytics)
- Pie Chart
Usage
Configure key, which can be any string, and register the plugin. This key will be used to
lookup this chart throughout the app.
import {
EchartsTimeseriesChartPlugin,
EchartsPieChartPlugin,
} from '@superset-ui/plugin-chart-echarts';
new EchartsTimeseriesChartPlugin().configure({ key: 'echarts-ts' }).register();
new EchartsPieChartPlugin().configure({ key: 'pie' }).register();
Then use it via SuperChart. See
storybook
for more details.
<SuperChart
chartType="echarts-ts"
width={600}
height={600}
formData={...}
queriesData={[{
data: {...},
}]}
/>