echarts.tsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import {EChartOption, ECharts} from 'echarts';
  2. import 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?: EChartOption.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. };
  23. export type ReactEchartsRef = ReactEchartsCore & {
  24. getEchartsInstance: () => ECharts;
  25. };
  26. export type EChartEventHandler<P> = (params: P, instance: ECharts) => void;
  27. export type EChartChartReadyHandler = (instance: ECharts) => void;
  28. export type EChartHighlightHandler = EChartEventHandler<any>;
  29. export type EChartMouseOverHandler = EChartEventHandler<any>;
  30. export type EChartClickHandler = EChartEventHandler<any>;
  31. export type EChartDataZoomHandler = EChartEventHandler<{
  32. type: 'datazoom';
  33. /**
  34. * percentage of zoom start position, 0 - 100
  35. */
  36. start: number;
  37. /**
  38. * percentage of zoom finish position, 0 - 100
  39. */
  40. end: number;
  41. /**
  42. * data value of zoom start position; only exists in zoom event of
  43. * triggered by toolbar
  44. */
  45. startValue?: number;
  46. /**
  47. * data value of zoom finish position; only exists in zoom event of
  48. * triggered by toolbar
  49. */
  50. endValue?: number;
  51. }>;
  52. export type EChartRestoreHandler = EChartEventHandler<{type: 'restore'}>;
  53. export type EChartFinishedHandler = EChartEventHandler<{}>;
  54. export type EChartRenderedHandler = EChartEventHandler<{}>;