Files
superset2/superset-frontend/tsconfig.json
Evan Rusackas 2e16b8266a feat(glyph): single-file chart definition pattern across all plugins
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>
2026-05-14 15:38:18 -07:00

107 lines
3.7 KiB
JSON

{
"compilerOptions": {
/* Type Checking */
"noImplicitAny": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noUnusedLocals": true,
"strictNullChecks": true,
"module": "esnext",
"moduleResolution": "bundler",
"types": ["jest", "node"],
"typeRoots": ["src/types", "node_modules/@types"],
/* Emit */
"declaration": true,
"declarationMap": true,
"importHelpers": false,
"noEmitOnError": true,
"outDir": "./dist",
"rootDir": ".",
"declarationDir": "lib",
"sourceMap": true,
/* JavaScript Support */
"allowJs": true,
/* Interop Constraints */
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"forceConsistentCasingInFileNames": true,
/* Language and Environment */
"target": "es2020",
"jsx": "react-jsx",
"jsxImportSource": "@emotion/react",
"lib": ["dom", "dom.iterable", "esnext"],
/* Projects */
"composite": true,
/* Completeness */
"skipLibCheck": true,
"baseUrl": ".",
"paths": {
"@storybook-shared": ["./.storybook/shared"],
"@superset-ui/core": ["./packages/superset-ui-core/src"],
"@superset-ui/core/*": ["./packages/superset-ui-core/src/*"],
"@superset-ui/chart-controls": [
"./packages/superset-ui-chart-controls/src"
],
"@superset-ui/chart-controls/*": [
"./packages/superset-ui-chart-controls/src/*"
],
"@superset-ui/switchboard": ["./packages/superset-ui-switchboard/src"],
"@apache-superset/core": ["./packages/superset-core/src"],
"@apache-superset/core/*": ["./packages/superset-core/src/*"],
"@superset-ui/plugin-chart-*": ["./plugins/plugin-chart-*/src"],
"@superset-ui/legacy-plugin-chart-*": ["./plugins/legacy-plugin-chart-*/src"],
"@superset-ui/legacy-preset-chart-*": ["./plugins/legacy-preset-chart-*/src"],
"echarts/types/src/*": ["./node_modules/echarts/types/src/*"],
"@superset-ui/glyph-core": ["./packages/superset-ui-glyph-core/src"],
"@superset-ui/glyph-core/*": ["./packages/superset-ui-glyph-core/src/*"]
}
},
"include": [
"./src/**/*",
"./spec/**/*",
"./plugins/**/*",
"./packages/**/*",
"./scripts/**/*",
"./.storybook/**/*",
"./webpack.config.js",
"./webpack*.js",
"./package.json"
],
"references": [
{ "path": "./packages/superset-core" },
{ "path": "./packages/superset-ui-core" },
{ "path": "./packages/superset-ui-chart-controls" },
{ "path": "./packages/superset-ui-glyph-core" },
{ "path": "./packages/superset-ui-switchboard" },
{ "path": "./plugins/legacy-plugin-chart-calendar" },
{ "path": "./plugins/legacy-plugin-chart-chord" },
{ "path": "./plugins/legacy-plugin-chart-country-map" },
{ "path": "./plugins/legacy-plugin-chart-horizon" },
{ "path": "./plugins/legacy-plugin-chart-paired-t-test" },
{ "path": "./plugins/legacy-plugin-chart-parallel-coordinates" },
{ "path": "./plugins/legacy-plugin-chart-partition" },
{ "path": "./plugins/legacy-plugin-chart-rose" },
{ "path": "./plugins/legacy-plugin-chart-world-map" },
{ "path": "./plugins/legacy-preset-chart-nvd3" },
{ "path": "./plugins/plugin-chart-ag-grid-table" },
{ "path": "./plugins/plugin-chart-cartodiagram" },
{ "path": "./plugins/preset-chart-deckgl" },
{ "path": "./plugins/plugin-chart-echarts" },
{ "path": "./plugins/plugin-chart-point-cluster-map" },
{ "path": "./plugins/plugin-chart-handlebars" },
{ "path": "./plugins/plugin-chart-pivot-table" },
{ "path": "./plugins/plugin-chart-table" },
{ "path": "./plugins/plugin-chart-word-cloud" }
],
"exclude": []
}