echarts
Version:
Apache ECharts is a powerful, interactive charting and data visualization library for browser
96 lines (95 loc) • 3.21 kB
TypeScript
import * as matrix from 'zrender/lib/core/matrix.js';
import ParallelAxis from './ParallelAxis.js';
import * as graphic from '../../util/graphic.js';
import ParallelModel from './ParallelModel.js';
import GlobalModel from '../../model/Global.js';
import ExtensionAPI from '../../core/ExtensionAPI.js';
import { DimensionName, ScaleDataValue } from '../../util/types.js';
import { CoordinateSystem, CoordinateSystemMaster } from '../CoordinateSystem.js';
import { ParallelActiveState } from './AxisModel.js';
import SeriesData from '../../data/SeriesData.js';
export interface ParallelAxisLayoutInfo {
position: number[];
rotation: number;
transform: matrix.MatrixArray;
axisNameAvailableWidth: number;
axisLabelShow: boolean;
nameTruncateMaxWidth: number;
tickDirection: -1 | 1;
labelDirection: -1 | 1;
}
declare type SlidedAxisExpandBehavior = 'none' | 'slide' | 'jump';
declare class Parallel implements CoordinateSystemMaster, CoordinateSystem {
readonly type = "parallel";
/**
* key: dimension
*/
private _axesMap;
/**
* key: dimension
* value: {position: [], rotation, }
*/
private _axesLayout;
/**
* Always follow axis order.
*/
readonly dimensions: ParallelModel['dimensions'];
private _rect;
private _model;
name: string;
model: ParallelModel;
constructor(parallelModel: ParallelModel, ecModel: GlobalModel, api: ExtensionAPI);
private _init;
/**
* Update axis scale after data processed
*/
update(ecModel: GlobalModel, api: ExtensionAPI): void;
containPoint(point: number[]): boolean;
getModel(): ParallelModel;
/**
* Update properties from series
*/
private _updateAxesFromSeries;
/**
* Resize the parallel coordinate system.
*/
resize(parallelModel: ParallelModel, api: ExtensionAPI): void;
getRect(): graphic.BoundingRect;
private _makeLayoutInfo;
private _layoutAxes;
/**
* Get axis by dim.
*/
getAxis(dim: DimensionName): ParallelAxis;
/**
* Convert a dim value of a single item of series data to Point.
*/
dataToPoint(value: ScaleDataValue, dim: DimensionName): number[];
/**
* Travel data for one time, get activeState of each data item.
* @param start the start dataIndex that travel from.
* @param end the next dataIndex of the last dataIndex will be travel.
*/
eachActiveState(data: SeriesData, callback: (activeState: ParallelActiveState, dataIndex: number) => void, start?: number, end?: number): void;
/**
* Whether has any activeSet.
*/
hasAxisBrushed(): boolean;
/**
* Convert coords of each axis to Point.
* Return point. For example: [10, 20]
*/
axisCoordToPoint(coord: number, dim: DimensionName): number[];
/**
* Get axis layout.
*/
getAxisLayout(dim: DimensionName): ParallelAxisLayoutInfo;
/**
* @return {Object} {axisExpandWindow, delta, behavior: 'jump' | 'slide' | 'none'}.
*/
getSlidedAxisExpandWindow(point: number[]): {
axisExpandWindow: number[];
behavior: SlidedAxisExpandBehavior;
};
}
export default Parallel;