UNPKG

echarts

Version:

Apache ECharts is a powerful, interactive charting and data visualization library for browser

102 lines (101 loc) 3.45 kB
import { createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder.js'; import Scale from '../scale/Scale.js'; import { DimensionName, ScaleDataValue, ScaleTick } from '../util/types.js'; import Model from '../model/Model.js'; import { AxisBaseOption, CategoryAxisBaseOption, OptionAxisType } from './axisCommonTypes.js'; import { AxisBaseModel } from './AxisBaseModel.js'; interface TickCoord { coord: number; tickValue?: ScaleTick['value']; } /** * Base class of Axis. */ declare class Axis { /** * Axis type * - 'category' * - 'value' * - 'time' * - 'log' */ type: OptionAxisType; readonly dim: DimensionName; scale: Scale; private _extent; model: AxisBaseModel; onBand: CategoryAxisBaseOption['boundaryGap']; inverse: AxisBaseOption['inverse']; constructor(dim: DimensionName, scale: Scale, extent: [number, number]); /** * If axis extent contain given coord */ contain(coord: number): boolean; /** * If axis extent contain given data */ containData(data: ScaleDataValue): boolean; /** * Get coord extent. */ getExtent(): [number, number]; /** * Get precision used for formatting */ getPixelPrecision(dataExtent?: [number, number]): number; /** * Set coord extent */ setExtent(start: number, end: number): void; /** * Convert data to coord. Data is the rank if it has an ordinal scale */ dataToCoord(data: ScaleDataValue, clamp?: boolean): number; /** * Convert coord to data. Data is the rank if it has an ordinal scale */ coordToData(coord: number, clamp?: boolean): number; /** * Convert pixel point to data in axis */ pointToData(point: number[], clamp?: boolean): number; /** * Different from `zrUtil.map(axis.getTicks(), axis.dataToCoord, axis)`, * `axis.getTicksCoords` considers `onBand`, which is used by * `boundaryGap:true` of category axis and splitLine and splitArea. * @param opt.tickModel default: axis.model.getModel('axisTick') * @param opt.clamp If `true`, the first and the last * tick must be at the axis end points. Otherwise, clip ticks * that outside the axis extent. */ getTicksCoords(opt?: { tickModel?: Model; clamp?: boolean; }): TickCoord[]; getMinorTicksCoords(): TickCoord[][]; getViewLabels(): ReturnType<typeof createAxisLabels>['labels']; getLabelModel(): Model<AxisBaseOption['axisLabel']>; /** * Notice here we only get the default tick model. For splitLine * or splitArea, we should pass the splitLineModel or splitAreaModel * manually when calling `getTicksCoords`. * In GL, this method may be overridden to: * `axisModel.getModel('axisTick', grid3DModel.getModel('axisTick'));` */ getTickModel(): Model; /** * Get width of band */ getBandWidth(): number; /** * Get axis rotate, by degree. */ getRotate: () => number; /** * Only be called in category axis. * Can be overridden, consider other axes like in 3D. * @return Auto interval for cateogry axis tick and label */ calculateCategoryInterval(): ReturnType<typeof calculateCategoryInterval>; } export default Axis;