UNPKG

@visactor/vchart

Version:

charts lib based @visactor/VGrammar

74 lines (73 loc) 2.35 kB
import type { BaseEventParams } from '../../event/interface'; import type { IOrientType } from '../../typings'; import type { IDelayType } from '../../typings/event'; import type { IComponentSpec } from '../base/interface'; import type { IComponent } from '../interface'; export interface IDataFilterComponentSpec extends Omit<IComponentSpec, 'width' | 'height'> { visible?: boolean; orient?: IOrientType; width?: 'auto' | number; height?: 'auto' | number; field?: string; axisId?: string; axisIndex?: number; regionIndex?: number | number[]; start?: number; end?: number; startValue?: number | string; endValue?: number | string; valueField?: string; rangeMode?: [string, string]; autoIndent?: boolean; auto?: boolean; zoomLock?: boolean; minSpan?: number; maxSpan?: number; minValueSpan?: number; maxValueSpan?: number; delayType?: IDelayType; delayTime?: number; roamZoom?: IRoamZoomSpec | boolean; roamDrag?: IRoamDragSpec | boolean; roamScroll?: IRoamScrollSpec | boolean; realTime?: boolean; customDomain?: any[]; updateDataAfterChange?: (start: number, end: number, startValue: any, endValue: any) => void; } export interface IRoamDragSpec extends IRoamSpec { reverse?: boolean; filter?: (delta: [number, number], e?: BaseEventParams['event']) => boolean; } export interface IRoamScrollSpec extends IRoamSpec { reverse?: boolean; filter?: (params: { scrollX: number; scrollY: number; }, e?: BaseEventParams['event']) => boolean; } export interface IRoamZoomSpec extends IRoamSpec { focus?: boolean; filter?: (params: { zoomDelta: number; zoomX?: number; zoomY?: number; }, e?: BaseEventParams['event']) => boolean; } export interface IRoamSpec { enable?: boolean; rate?: number; } export interface IDataFilterComponent extends IComponent { setStartAndEnd: (start: number | string, end: number | string, rangeMode: ['percent' | 'value', 'percent' | 'value']) => void; enableInteraction: () => void; disableInteraction: () => void; zoomIn: (location?: { x: number; y: number; }) => void; zoomOut: (location?: { x: number; y: number; }) => void; } export type IFilterMode = 'filter' | 'axis';