259462ca844073b66bec16ab60b39badbddaaba22ee3d4bab2742bd44f269a946d82e7439d6d7b96d1be4b7976b08caec531ffbfbd36d1c9678383b751e3ae 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import SymbolDraw from '../helper/SymbolDraw.js';
  2. import * as graphic from '../../util/graphic.js';
  3. import { ECPolyline, ECPolygon } from './poly.js';
  4. import ChartView from '../../view/Chart.js';
  5. import LineSeriesModel, { LineSeriesOption } from './LineSeries.js';
  6. import type GlobalModel from '../../model/Global.js';
  7. import type ExtensionAPI from '../../core/ExtensionAPI.js';
  8. import Cartesian2D from '../../coord/cartesian/Cartesian2D.js';
  9. import Polar from '../../coord/polar/Polar.js';
  10. import type SeriesData from '../../data/SeriesData.js';
  11. import type { Payload, DisplayState, LabelOption } from '../../util/types.js';
  12. import { CoordinateSystemClipArea } from '../../coord/CoordinateSystem.js';
  13. import Model from '../../model/Model.js';
  14. declare type PolarArea = ReturnType<Polar['getArea']>;
  15. declare type Cartesian2DArea = ReturnType<Cartesian2D['getArea']>;
  16. interface EndLabelAnimationRecord {
  17. lastFrameIndex: number;
  18. originalX?: number;
  19. originalY?: number;
  20. }
  21. declare class LineView extends ChartView {
  22. static readonly type = "line";
  23. _symbolDraw: SymbolDraw;
  24. _lineGroup: graphic.Group;
  25. _coordSys: Cartesian2D | Polar;
  26. _endLabel: graphic.Text;
  27. _polyline: ECPolyline;
  28. _polygon: ECPolygon;
  29. _stackedOnPoints: ArrayLike<number>;
  30. _points: ArrayLike<number>;
  31. _step: LineSeriesOption['step'];
  32. _valueOrigin: LineSeriesOption['areaStyle']['origin'];
  33. _clipShapeForSymbol: CoordinateSystemClipArea;
  34. _data: SeriesData;
  35. init(): void;
  36. render(seriesModel: LineSeriesModel, ecModel: GlobalModel, api: ExtensionAPI): void;
  37. private packEventData;
  38. highlight(seriesModel: LineSeriesModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void;
  39. downplay(seriesModel: LineSeriesModel, ecModel: GlobalModel, api: ExtensionAPI, payload: Payload): void;
  40. _changePolyState(toState: DisplayState): void;
  41. _newPolyline(points: ArrayLike<number>): ECPolyline;
  42. _newPolygon(points: ArrayLike<number>, stackedOnPoints: ArrayLike<number>): ECPolygon;
  43. _initSymbolLabelAnimation(data: SeriesData, coordSys: Polar | Cartesian2D, clipShape: PolarArea | Cartesian2DArea): void;
  44. _initOrUpdateEndLabel(seriesModel: LineSeriesModel, coordSys: Cartesian2D, inheritColor: string): void;
  45. _endLabelOnDuring(percent: number, clipRect: graphic.Rect, data: SeriesData, animationRecord: EndLabelAnimationRecord, valueAnimation: boolean, endLabelModel: Model<LabelOption>, coordSys: Cartesian2D): void;
  46. /**
  47. * @private
  48. */
  49. _doUpdateAnimation(data: SeriesData, stackedOnPoints: ArrayLike<number>, coordSys: Cartesian2D | Polar, api: ExtensionAPI, step: LineSeriesOption['step'], valueOrigin: LineSeriesOption['areaStyle']['origin'], connectNulls: boolean): void;
  50. remove(ecModel: GlobalModel): void;
  51. }
  52. export default LineView;