or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

chart-components.mdchart-plugins.mddata-transformation.mdform-data.mdindex.mdquery-building.md
tile.json

chart-components.mddocs/

Chart Components

React components for rendering interactive timeseries charts with full integration into the Superset ecosystem. These components handle chart rendering, user interactions, and dashboard integration.

Capabilities

Main Chart Component

Primary React component for rendering timeseries charts.

/**
 * Main ECharts timeseries chart component
 * Renders interactive time series visualizations with full feature support
 * @param props - Transformed chart properties
 * @returns Rendered chart component
 */
function EchartsTimeseries(props: TimeseriesChartTransformedProps): JSX.Element;

Usage:

import EchartsTimeseries from "@superset-ui/plugin-chart-echarts";

<EchartsTimeseries
  formData={formData}
  height={400}
  width={800}
  echartOptions={echartOptions}
  groupby={['category']}
  labelMap={labelMap}
  selectedValues={selectedValues}
  setDataMask={setDataMask}
  // ... other props
/>

Chart Props Interface

Properties passed to the chart component.

/**
 * Chart properties interface for component initialization
 */
interface EchartsTimeseriesChartProps extends BaseChartProps<EchartsTimeseriesFormData> {
  /** Form data configuration */
  formData: EchartsTimeseriesFormData;
}

interface BaseChartProps<T extends PlainObject> extends ChartProps<T> {
  /** Query result data */
  queriesData: ChartDataResponseResult[];
}

Base ECharts Component

Core ECharts rendering component used by timeseries charts.

/**
 * Base ECharts component for chart rendering
 * Handles ECharts instance management and event handling
 */
function Echart(props: EchartsProps): JSX.Element;

interface EchartsProps {
  /** Chart height in pixels */
  height: number;
  /** Chart width in pixels */
  width: number;
  /** ECharts configuration options */
  echartOptions: EChartsCoreOption;
  /** Chart event handlers */
  eventHandlers?: EventHandlers;
  /** ZRender event handlers */
  zrEventHandlers?: EventHandlers;
  /** Selected values for cross-filtering */
  selectedValues?: Record<number, string>;
  /** Force clear chart flag */
  forceClear?: boolean;
  /** Component references */
  refs: Refs;
}

ECharts Handler Interface

Interface for accessing ECharts instance methods.

/**
 * ECharts instance handler for programmatic control
 */
interface EchartsHandler {
  /** Get the underlying ECharts instance */
  getEchartInstance: () => EChartsType | undefined;
}

Component References

Reference system for chart component interaction.

/**
 * Component references for chart interaction
 */
type Refs = {
  /** Reference to ECharts handler */
  echartRef?: Ref<EchartsHandler>;
  /** Reference to container div element */
  divRef?: RefObject<HTMLDivElement>;
};

Interactive Features

Event Handling

Comprehensive event handling system for chart interactions.

/**
 * Event handlers for chart interactions
 */
type EventHandlers = Record<string, { (props: any): void }>;

Common Event Types:

  • click: Chart element click events
  • mouseover: Mouse hover events
  • mouseout: Mouse leave events
  • brush: Brush selection events
  • brushEnd: Brush selection completion
  • dataZoom: Zoom interaction events
  • legendselectchanged: Legend selection changes

Cross-Filtering Integration

Built-in support for dashboard cross-filtering.

/**
 * Cross-filtering functionality
 */
interface CrossFilteringConfig {
  /** Groupby columns for filtering */
  groupby: QueryFormColumn[];
  /** Label mapping for display */
  labelMap: Record<string, string[]>;
  /** Selected values state */
  selectedValues: Record<number, string>;
  /** Data mask setter */
  setDataMask: SetDataMaskHook;
  /** Control value setter */
  setControlValue?: HandlerFunction;
  /** Enable cross-filter emission */
  emitCrossFilters?: boolean;
}

Context Menu Support

Context menu functionality for chart elements.

/**
 * Context menu handler
 */
type ContextMenuHandler = (
  clientX: number,
  clientY: number,
  filters?: ContextMenuFilters
) => void;

Legend Interaction

Interactive legend with state management.

/**
 * Legend state management
 */
interface LegendState {
  /** Currently selected legend items */
  selectedLegend: Record<string, boolean>;
}

type LegendStateHandler = (state: LegendState) => void;

Advanced Component Features

Extra Controls Component

Additional control panel for advanced chart features.

/**
 * Extra controls component for advanced chart customization
 * Provides additional UI controls for chart configuration
 */
function ExtraControls(props: {
  formData: EchartsTimeseriesFormData;
  onControlValueChange: (controlName: string, value: any) => void;
}): JSX.Element;

Series Focus Management

Focus management for multi-series charts.

/**
 * Series focus handler for highlighting
 */
type SeriesFocusHandler = (series: string | null) => void;

Tooltip Configuration

Advanced tooltip system with rich content support.

/**
 * Tooltip configuration for rich content display
 */
interface TooltipConfig {
  /** Enable rich tooltip display */
  richTooltip: boolean;
  /** Tooltip time format */
  tooltipTimeFormat?: string;
  /** Show total values */
  showTooltipTotal?: boolean;
  /** Show percentage values */
  showTooltipPercentage?: boolean;
}

Component Lifecycle

Initialization

Component initialization process:

  1. Props Processing: Transform chart props into ECharts configuration
  2. Instance Creation: Create ECharts instance with configuration
  3. Event Binding: Attach event handlers for interactions
  4. Data Loading: Load and process chart data
  5. Rendering: Render initial chart visualization

Updates

Component update handling:

  1. Props Comparison: Compare new props with previous props
  2. Configuration Update: Update ECharts configuration if needed
  3. Data Update: Update chart data and refresh visualization
  4. Animation: Handle smooth transitions between states

Cleanup

Component cleanup on unmount:

  1. Event Removal: Remove all event listeners
  2. Instance Disposal: Dispose of ECharts instance
  3. Reference Cleanup: Clear component references
  4. Memory Management: Free allocated resources

Performance Optimization

Rendering Optimization

  • Lazy Loading: Load chart components on demand
  • Virtual Scrolling: Handle large datasets efficiently
  • Animation Optimization: Optimize chart animations for performance
  • Memory Management: Efficient memory usage and cleanup

Data Processing Optimization

  • Data Streaming: Handle large datasets with streaming
  • Incremental Updates: Update only changed data
  • Caching: Cache processed data for reuse
  • Batch Processing: Process multiple updates in batches