echarts.tsx 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import type {AxisPointerComponentOption, ECharts, LineSeriesOption} from 'echarts';
  2. import type ReactEchartsCore from 'echarts-for-react/lib/core';
  3. export type SeriesDataUnit = {
  4. value: number;
  5. name: string | number; // number because we sometimes use timestamps
  6. onClick?: (series: Series, instance: ECharts) => void;
  7. itemStyle?: {
  8. color?: string;
  9. };
  10. };
  11. export type Series = {
  12. seriesName: string;
  13. data: SeriesDataUnit[];
  14. color?: string;
  15. areaStyle?: {
  16. color: string;
  17. opacity: number;
  18. };
  19. lineStyle?: AxisPointerComponentOption['lineStyle'];
  20. stack?: string; // https://echarts.apache.org/en/option.html#series-line.stack
  21. z?: number; // https://echarts.apache.org/en/option.html#series-line.z
  22. markLine?: LineSeriesOption['markLine'];
  23. };
  24. export type ReactEchartsRef = ReactEchartsCore & {
  25. getEchartsInstance: () => ECharts;
  26. };
  27. export type EChartEventHandler<P> = (params: P, instance: ECharts) => void;
  28. export type EChartChartReadyHandler = (instance: ECharts) => void;
  29. export type EChartHighlightHandler = EChartEventHandler<any>;
  30. export type EChartMouseOverHandler = EChartEventHandler<any>;
  31. export type EChartClickHandler = EChartEventHandler<any>;
  32. export type EChartDataZoomHandler = EChartEventHandler<{
  33. type: 'datazoom';
  34. /**
  35. * percentage of zoom start position, 0 - 100
  36. */
  37. start: number;
  38. /**
  39. * percentage of zoom finish position, 0 - 100
  40. */
  41. end: number;
  42. /**
  43. * data value of zoom start position; only exists in zoom event of
  44. * triggered by toolbar
  45. */
  46. startValue?: number;
  47. /**
  48. * data value of zoom finish position; only exists in zoom event of
  49. * triggered by toolbar
  50. */
  51. endValue?: number;
  52. }>;
  53. export type EChartRestoreHandler = EChartEventHandler<{type: 'restore'}>;
  54. export type EChartFinishedHandler = EChartEventHandler<{}>;
  55. export type EChartRenderedHandler = EChartEventHandler<{}>;