UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

88 lines (87 loc) 3.95 kB
import type { IComponent } from '../../../interface'; import type { IAggrType, IMarkerPositionsSpec, IDataPointSpec, IMarkerSpec, IDataPos, IDataPosCallback, IMarkerLabelSpec, IMarkerCrossSeriesSpec, OffsetPoint, MarkerStateValue, MarkerStateCallback, IMarkerSupportSeries } from '../../interface'; import type { IRegressType } from '../../mark-area/interface'; import type { IMarkLineTheme } from './theme'; import type { Datum, ILineMarkSpec, IPoint } from '../../../../typings'; import type { BaseMarkerAnimation, MarkCommonLineAnimationType } from '@visactor/vrender-components'; export type IMarkLine = IComponent; export type IMarkLineSpec = (IMarkerSpec & (IMarkLineXSpec | IMarkLineYSpec | IMarkLineXYSpec | IMarkLineXYY1Spec | IMarkLineYXX1Spec | IMarkLineAngleSpec | IMarkLineRadiusSpec | IMarkLineAngRadRad1Spec | IMarkLineRadAngAng1Spec | IMarkLineAngRadSpec | IMarkLineCoordinateSpec | IMarkerPositionsSpec) & IMarkLineTheme & BaseMarkerAnimation<MarkCommonLineAnimationType>) | (IStepMarkLineSpec & BaseMarkerAnimation<MarkCommonLineAnimationType>); export interface IMarkLineXSpec extends IMarkerCrossSeriesSpec { x: IDataPos | IDataPosCallback; } export interface IMarkLineXYY1Spec extends IMarkerCrossSeriesSpec { x: IDataPos | IDataPosCallback; y: IDataPos | IDataPosCallback; y1: IDataPos | IDataPosCallback; } export interface IMarkLineYSpec extends IMarkerCrossSeriesSpec { y: IDataPos | IDataPosCallback; } export interface IMarkLineYXX1Spec extends IMarkerCrossSeriesSpec { y: IDataPos | IDataPosCallback; x: IDataPos | IDataPosCallback; x1: IDataPos | IDataPosCallback; } export interface IMarkLineXYSpec extends IMarkerCrossSeriesSpec { x: IDataPos | IDataPosCallback; y: IDataPos | IDataPosCallback; x1: IDataPos | IDataPosCallback; y1: IDataPos | IDataPosCallback; } export interface IMarkLineAngleSpec extends IMarkerCrossSeriesSpec { angle: IDataPos | IDataPosCallback; } export interface IMarkLineRadiusSpec extends IMarkerCrossSeriesSpec { radius: IDataPos | IDataPosCallback; } export interface IMarkLineAngRadRad1Spec extends IMarkerCrossSeriesSpec { angle: IDataPos | IDataPosCallback; radius: IDataPos | IDataPosCallback; radius1: IDataPos | IDataPosCallback; } export interface IMarkLineRadAngAng1Spec extends IMarkerCrossSeriesSpec { angle: IDataPos | IDataPosCallback; angle1: IDataPos | IDataPosCallback; radius: IDataPos | IDataPosCallback; } export interface IMarkLineAngRadSpec extends IMarkerCrossSeriesSpec { angle: IDataPos | IDataPosCallback; angle1: IDataPos | IDataPosCallback; radius: IDataPos | IDataPosCallback; radius1: IDataPos | IDataPosCallback; } export type IMarkLineCoordinateSpec = { coordinates: IDataPointSpec[] | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => IDataPointSpec[]); coordinatesOffset?: OffsetPoint[]; process?: { x: IAggrType; } | { y: IAggrType; } | { xy: IRegressType; }; }; export type IStepMarkLineSpec = IMarkerSpec & { type: 'type-step'; connectDirection: 'top' | 'bottom' | 'left' | 'right'; expandDistance?: number | string; label?: IMarkerLabelSpec; line?: { multiSegment?: boolean; mainSegmentIndex?: number; style?: ILineMarkSpec | ILineMarkSpec[]; state?: Record<MarkerStateValue, ILineMarkSpec | ILineMarkSpec[] | MarkerStateCallback<ILineMarkSpec | ILineMarkSpec[]>>; }; } & Omit<IMarkLineTheme, 'label' | 'line'> & ({ coordinates: [IDataPointSpec, IDataPointSpec] | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => [IDataPointSpec, IDataPointSpec]); process?: { x: IAggrType; } | { y: IAggrType; } | { xy: IRegressType; }; } | { positions: [IPoint, IPoint] | ((seriesData: Datum[], relativeSeries: IMarkerSupportSeries) => [IPoint, IPoint]); regionRelative?: boolean; });