realchart
Version:
Wooritech charting library
115 lines (110 loc) • 3.78 kB
TypeScript
import * as RealChart from 'realchart';
import { IChart, AxisCollection, Axis, ChartItem, SplitOptions, ISplit, Annotation, PaneOptions, ChartItemOptions, Body, PaneBodyOptions, GaugeBase, Series } from 'realchart';
declare class PaneAxes {
_axes: Axis[];
}
declare abstract class PaneAxisMatrix {
chart: IChart;
isX: boolean;
protected _matrix: PaneAxes[][];
constructor(chart: IChart, isX: boolean);
rows(): number;
cols(): number;
abstract _prepare(axes: AxisCollection, rows: number, cols: number): void;
get(row: number, col: number): PaneAxes;
getRow(row: number): PaneAxes[];
getColumn(col: number): PaneAxes[];
_buildTicks(lens: number[]): void;
_calcPoints(lens: number[], phase: number): void;
}
declare class PaneBody extends Body<PaneBodyOptions> {
pane: Pane;
static defaults: PaneBodyOptions;
constructor(pane: Pane);
base(): Body;
contains(obj: GaugeBase | Series): boolean;
}
declare class Pane extends ChartItem<PaneOptions> {
row: number;
col: number;
private _body;
constructor(chart: IChart, row: number, col: number);
protected _doInitChildren(op: {
[child: string]: ChartItemOptions;
}): void;
/**
* Body 모델.
*/
get body(): PaneBody;
/**
*/
width: number;
/**
*/
height: number;
/**
*/
inverted: boolean;
_prepareRender(): void;
}
/**
* 다중 분할 panes.<br/>
* 각 pane에 해당하는 x, y축이 반드시 존재해야 한다.
* axis는 {@page config.base.axis#row row}, {@page config.base.axis#col col} 속성으로 위치를 지정한다.
* 시리즈는 {@page config.base.series#row row}, {@page config.base.series#col col} 속성으로 지정하거나, 아니면 axis 위치에 따라 자동으로 결정된다.
* // 현재 문서 구조로 SeriesGroup을 가리킬 수 없음.
* // 시리즈그룹은 {@page SeriesGroup.row row}, {@page SeriesGroup.col col} 속성으로 지정하거나, 아니면 axis 위치에 따라 자동으로 결정된다.
*
* @modules split
*/
declare class Split extends ChartItem<SplitOptions> implements ISplit {
static defaults: SplitOptions;
constructor(chart: IChart);
private _cols;
private _rows;
private _widths;
private _heights;
private _panes;
_xAxes: PaneAxisMatrix;
_yAxes: PaneAxisMatrix;
_vcols: number;
_vrows: number;
private _vwidths;
private _vheights;
private _vpanes;
count(): number;
rowCount(): number;
colCount(): number;
paneCount(): number;
getPane(row: number, col: number): Pane;
getRow(row: number): Pane[];
getColumn(col: number): Pane[];
protected _doLoadProp(prop: string, value: any): boolean;
protected _doSetSimple(source: any): boolean;
_load(source: any): ChartItem;
protected _doPrepareRender(chart: IChart): void;
getXLens(length: number): number[];
getYLens(length: number): number[];
layoutAxes(width: number, height: number, inverted: boolean, phase: number): void;
private $_calcAxesPoints;
calcAxesPoints(xLens: number[], yLens: number[]): void;
/**
* body들의 표시 크기를 계산한다.
*/
calcSizes(width: number, height: number): void;
getAnnotation(name: string): Annotation;
prepareRender(xAxes: AxisCollection, yAxes: AxisCollection): void;
/**
* number | (`${number}*` | '*')[] // '*'은 '1*'과 동일.
*/
private $_parseSizes;
private $_parsePanes;
private $_loadPanes;
/**
* 축이 연결되지 않은 pane들은 skip한다.
*/
private $_collectPanes;
private $_calcSizes;
}
declare function registerSplit(chart: typeof RealChart): void;
export { Split, registerSplit as default };