mirror of
https://github.com/apache/superset.git
synced 2026-05-24 17:25:20 +00:00
Introduce `defineChart()` — a declarative pattern that bundles metadata,
arguments (control-panel config), buildQuery, transform, and render into
a single chart-plugin file. Migrate every chart plugin to this pattern:
* plugin-chart-echarts: Pie, Funnel, Gauge, Sankey, Waterfall,
Histogram, Tree, Bubble, BoxPlot, Sunburst, Radar, Treemap, Graph,
Heatmap, Gantt, BigNumber (Total, WithTrendline, PoP, Glyph demo),
MixedTimeseries, and the Timeseries family (Generic, Scatter,
SmoothLine, Step, Area, Line, Bar)
* legacy-plugin-chart-*: calendar, horizon, chord, country-map,
world-map, paired-t-test, parallel-coordinates, partition, rose,
map-box
* other plugins: handlebars, word-cloud, pivot-table, table,
ag-grid-table, cartodiagram
* legacy-preset-chart-nvd3: Bubble, Bullet, Compare, TimePivot
* legacy-preset-chart-deckgl: Grid, Hex, Polygon, Scatter (single-file
defineChart); Arc, Contour, Geojson, Heatmap, Path, Screengrid kept
on the original multi-file ChartPlugin pattern pending follow-up
Glyph-core lives as @superset-ui/glyph-core (extracted package) and
provides: defineChart, ~14 argument types (Metric, Dimension, Select,
Checkbox, Text, Int, Slider, etc.), reusable presets (ShowLegend,
HeaderFontSize, Subtitle, etc.), cross-filter utilities
(extractCrossFilterProps, createSelectedValuesMap, isDataPointFiltered,
createLabelMap), and visibility-condition helpers
(resolveArgClass, getArgVisibleWhen, evaluateGlyphCondition).
Customize-tab rendering uses a new GlyphOptionsPanel — a native React
renderer that hybrids glyph args with additionalControls, with
inlined sharedControls in the Query section.
Imports are routed through @apache-superset/core subpath entrypoints
(/translation for t, /common for GenericDataType).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@superset-ui/plugin-chart-pivot-table
This plugin provides Pivot Table for Superset.
If you change the logic of this plugin, please update
pivot_table.
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 PivotTableChartPlugin from '@superset-ui/plugin-chart-pivot-table';
new PivotTableChartPlugin().configure({ key: 'pivot-table-v2' }).register();
Then use it via SuperChart. See
storybook
for more details.
<SuperChart
chartType="pivot-table-v2"
width={600}
height={600}
formData={...}
queriesData={[{
data: {...},
}]}
/>
File structure generated
├── package.json
├── README.md
├── tsconfig.json
├── src
│ ├── PivotTableChart.tsx
│ ├── images
│ │ └── thumbnail.png
│ ├── index.ts
│ ├── plugin
│ │ ├── buildQuery.ts
│ │ ├── controlPanel.ts
│ │ ├── index.ts
│ │ └── transformProps.ts
│ └── types.ts
├── test
│ └── index.test.ts
└── types
└── external.d.ts