UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

54 lines (53 loc) 2.28 kB
import type { Datum, IMarkSpec, IMarkTheme, ISeriesSpec, IOrientType, IPathMarkSpec, IPolygonMarkSpec, IRuleMarkSpec, ITextMarkSpec, IPercent, IComposedTextMarkSpec, IFormatMethod } from '../../typings'; import type { IAnimationSpec } from '../../animation/spec'; import type { SeriesMarkNameEnum } from '../interface/type'; import type { ILabelSpec } from '../../component/label/interface'; type FunnelMarks = 'funnel'; export type FunnelAppearPreset = 'clipIn' | 'fadeIn'; export interface IFunnelSeriesSpec extends ISeriesSpec, IAnimationSpec<FunnelMarks, FunnelAppearPreset> { type: 'funnel'; categoryField: string; valueField: string; funnelOrient?: IOrientType; shape?: 'rect' | 'trapezoid'; isTransform?: boolean; isCone?: boolean; funnelAlign?: 'left' | 'center' | 'right'; gap?: number; range?: { min?: number; max?: number; }; maxSize?: number | IPercent; minSize?: number | IPercent; heightRatio?: number; transformRatioText?: string; [SeriesMarkNameEnum.funnel]?: IMarkSpec<IPathMarkSpec>; [SeriesMarkNameEnum.transform]?: IMarkSpec<IPathMarkSpec>; [SeriesMarkNameEnum.label]?: IFunnelLabelSpec; [SeriesMarkNameEnum.outerLabel]?: IFunnelOuterLabelSpec; [SeriesMarkNameEnum.transformLabel]?: IFunnelLabelSpec; } interface IFunnelLabelSpec extends Omit<ILabelSpec, 'position' | 'offset'> { limit?: 'shapeSize' | number; } export interface IFunnelOuterLabelSpec extends IMarkSpec<IComposedTextMarkSpec> { formatMethod?: IFormatMethod<[text: string | string[], datum?: Datum]>; position?: 'left' | 'right' | 'top' | 'bottom'; spaceWidth?: number; alignLabel?: boolean; style?: ITextMarkSpec; line?: { minLength?: number; } & IMarkSpec<IRuleMarkSpec>; } export interface IFunnelSeriesTheme { [SeriesMarkNameEnum.funnel]?: Partial<IMarkTheme<IPolygonMarkSpec>>; [SeriesMarkNameEnum.transform]?: Partial<IMarkTheme<IPolygonMarkSpec>>; [SeriesMarkNameEnum.label]?: Partial<IMarkTheme<ITextMarkSpec>>; [SeriesMarkNameEnum.outerLabel]?: Partial<IMarkTheme<ITextMarkSpec>> & { line?: Partial<IMarkTheme<IRuleMarkSpec>>; }; [SeriesMarkNameEnum.transformLabel]?: Partial<IMarkTheme<ITextMarkSpec>>; } export {};