UNPKG

@visactor/vrender-components

Version:

components library for dp visualization

68 lines (67 loc) 3.37 kB
import type { IGroup, ITextGraphicAttribute, TextAlignType, TextBaselineType, IGraphic, IText } from '@visactor/vrender-core'; import type { Dict, IBounds } from '@visactor/vutils'; import type { Point } from '../core/type'; import type { TagAttributes } from '../tag'; import type { AxisBaseAttributes, AxisItem, TransformedAxisItem, TickLineItem } from './type'; import { AnimateComponent } from '../animation/animate-component'; import type { IBaseScale } from '@visactor/vscale'; export declare abstract class AxisBase<T extends AxisBaseAttributes> extends AnimateComponent<Required<T>> { name: string; lastScale: IBaseScale; protected _innerView: IGroup; getInnerView(): IGroup; protected _prevInnerView: { [key: string]: IGraphic; }; getPrevInnerView(): { [key: string]: IGraphic<Partial<import("@visactor/vrender-core").IGraphicAttribute>>; }; protected data: TransformedAxisItem[]; protected tickLineItems: TickLineItem[]; protected subTickLineItems: TickLineItem[]; protected axisLabelLayerSize: Dict<{ width: number; height: number; textAlign: string; textBaseline: string; labelPos: number; }>; protected axisLabelsContainer: IGroup | null; protected axisContainer: IGroup; private _lastHover; private _lastSelect; protected _newElementAttrMap: Dict<any>; protected abstract renderLine(container: IGroup): void; abstract isInValidValue(value: number): boolean; abstract getTickCoord(value: number): Point; abstract getVerticalVector(offset: number, inside: boolean, point: Point): [number, number]; abstract getRelativeVector(point?: Point): [number, number]; protected abstract getTitleAttribute(): TagAttributes; protected abstract beforeLabelsOverlap(labelShapes: IText[], labelData: AxisItem[], labelContainer: IGroup, layer: number, layerCount: number): void; protected abstract handleLabelsOverlap(labelShapes: IText[], labelData: AxisItem[], labelContainer: IGroup, layer: number, layerCount: number): void; protected abstract afterLabelsOverlap(labelShapes: IText[], labelData: AxisItem[], labelContainer: IGroup, layer: number, layerCount: number): void; protected abstract getLabelAlign(vector: [number, number], inside?: boolean, angle?: number): { textAlign: TextAlignType; textBaseline: TextBaselineType; }; getBoundsWithoutRender(attributes: Partial<T>): IBounds; protected render(): void; protected _prepare(): void; private _bindEvent; private _onHover; private _onUnHover; private _onClick; protected _renderInner(container: IGroup): void; protected renderTicks(container: IGroup): void; protected renderLabels(container: IGroup, items: AxisItem[], layer: number): IGroup; protected renderTitle(container: IGroup): void; protected getVerticalCoord(point: Point, offset: number, inside: boolean): Point; protected getTickLineItems(): TickLineItem[]; protected getSubTickLineItems(): TickLineItem[]; private _getTickLineAttribute; private _getLabelAttribute; protected getLabelPosition(point: Point, vector: [number, number], text: string | number, style: Partial<ITextGraphicAttribute>): Point; private _transformItems; protected runAnimation(): void; release(): void; }