@visactor/vchart
Version:
charts lib based @visactor/VGrammar
58 lines (57 loc) • 2.48 kB
TypeScript
import type { IBarSeriesSpec } from '../bar/interface';
import type { ICartesianSeriesTheme } from '../cartesian/interface';
import type { IFormatMethod, IMarkSpec, IMarkTheme } from '../../typings/spec/common';
import type { IPositionedTextMarkSpec, IRectMarkSpec, ITextMarkSpec } from '../../typings/visual';
import type { IAnimationSpec } from '../../animation/spec';
import type { ILabelSpec } from '../../component/label/interface';
import type { SeriesMarkNameEnum } from '../interface/type';
import type { DirectionType } from '../../typings/space';
export interface IRangeColumnAnimationParams {
direction: DirectionType;
}
export type RangeColumnAppearPreset = 'fadeIn' | 'grow';
export declare const enum PositionEnum {
middle = "middle",
start = "start",
end = "end",
bothEnd = "bothEnd"
}
export declare const enum minMaxPositionEnum {
middle = "middle",
start = "start",
end = "end"
}
type RangeColumnMarks = 'rangeColumn';
export interface IRangeColumnSeriesSpec extends Omit<IBarSeriesSpec, 'type' | 'label' | keyof IAnimationSpec<RangeColumnMarks, RangeColumnAppearPreset>>, IAnimationSpec<RangeColumnMarks, RangeColumnAppearPreset> {
type: 'rangeColumn';
minField: string;
maxField: string;
[SeriesMarkNameEnum.bar]?: IMarkSpec<IRectMarkSpec>;
[SeriesMarkNameEnum.label]?: Partial<ILabelSpec> & {
position?: PositionEnum;
[SeriesMarkNameEnum.minLabel]?: IMarkSpec<IPositionedTextMarkSpec> & {
visible?: boolean;
position?: keyof typeof minMaxPositionEnum;
offset?: number;
formatMethod?: IFormatMethod<[text: string | string[], datum?: any]>;
};
[SeriesMarkNameEnum.maxLabel]?: IMarkSpec<IPositionedTextMarkSpec> & {
visible?: boolean;
position?: minMaxPositionEnum;
offset?: number;
formatMethod?: IFormatMethod<[text: string | string[], datum?: any]>;
};
};
}
export interface IRangeColumnSeriesTheme extends ICartesianSeriesTheme {
[SeriesMarkNameEnum.bar]?: Partial<IMarkTheme<IRectMarkSpec>>;
[SeriesMarkNameEnum.label]?: Partial<ILabelSpec> & {
[SeriesMarkNameEnum.minLabel]?: Partial<IMarkTheme<ITextMarkSpec> & {
position?: keyof typeof minMaxPositionEnum;
}>;
[SeriesMarkNameEnum.maxLabel]?: Partial<IMarkTheme<ITextMarkSpec> & {
position?: keyof typeof minMaxPositionEnum;
}>;
};
}
export {};