realchart
Version:
Wooritech charting library
127 lines (122 loc) • 4.58 kB
TypeScript
import * as RealChart from 'realchart';
import { IChart, AxisCollection, Axis, ChartItem, SplitOptions, ISplit, Annotation, IAxis, PaneOptions, Body, PaneBodyOptions, GaugeBase, Series, Legend, ILegendSource } from 'realchart';
/**
* @private
*
* section view 하나에 배치되는 축들.
*/
declare class PaneAxes {
row: number;
col: number;
_axes: Axis[];
constructor(row: number, col: number);
/**
* section view에서 (left, top) -> (right, bottom) 순서대로 배치할 수 있게 배치한다.
*/
sort(isX: boolean, inverted: boolean): void;
}
declare abstract class PaneAxisMatrix {
chart: IChart;
isX: boolean;
protected _matrix: PaneAxes[][];
constructor(chart: IChart, isX: boolean);
rows(): number;
cols(): number;
_prepare(axes: AxisCollection, rows: number, cols: number, inverted: boolean): void;
get(row: number, col: number): PaneAxes;
getRow(row: number): PaneAxes[];
getColumn(col: number): PaneAxes[];
_buildTicks(lens: number[], phase: number): void;
_calcPoints(lens: number[], phase: number): void;
protected abstract _doPrepare(axes: AxisCollection, rows: number, cols: number): void;
}
declare class PaneBody extends Body<PaneBodyOptions> {
pane: Pane;
static defaults: PaneBodyOptions;
constructor(pane: Pane);
contains(obj: GaugeBase | Series): boolean;
}
declare class PaneLegend extends Legend {
pane: Pane;
constructor(pane: Pane);
protected _doPrepareRender(chart: IChart): void;
protected _getLegendSources(): ILegendSource[];
}
declare class Pane extends ChartItem<PaneOptions> {
row: number;
col: number;
private _body;
private _legend;
constructor(chart: IChart, row: number, col: number);
protected _doInit(op: PaneOptions): void;
/**
* Body 모델.
*/
get body(): PaneBody;
get legend(): PaneLegend;
_prepareRender(): void;
}
interface IRelativeSize {
size: number;
}
/**
* 다중 분할 panes.<br/>
* 각 pane에 해당하는 x, y축이 반드시 존재해야 한다.
* axis는 {@link https://realchart.co.kr/config/config/base/axis#row row}, {@link https://realchart.co.kr/config/config/base/axis#col col} 속성으로 위치를 지정한다.
* 시리즈는 {@link https://realchart.co.kr/config/config/base/series#row row}, {@link https://realchart.co.kr/config/config/base/series#col col} 속성으로 지정하거나, 아니면 axis 위치에 따라 자동으로 결정된다.
* // 현재 문서 구조로 SeriesGroup을 가리킬 수 없음.
* // 시리즈그룹은 {@link SeriesGroup.row row}, {@link 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 _colSizes;
private _rowSizes;
private _paneDic;
_xAxes: PaneAxisMatrix;
_yAxes: PaneAxisMatrix;
private _panes;
get count(): number;
get rowCount(): number;
get colCount(): number;
get paneCount(): number;
colSizes(): (number | IRelativeSize)[];
rowSizes(): (number | IRelativeSize)[];
getPane(row: number, col: number): Pane;
getRow(row: number): Pane[];
getColumn(col: number): Pane[];
getAxisOf(annotation: Annotation, isX: boolean): IAxis;
isValidAxis(axis: IAxis): boolean;
protected _doLoadProp(prop: string, value: any): boolean;
protected _doSetSimple(source: any): boolean;
_load(source: any): ChartItem;
protected _doPrepareRender(chart: IChart): void;
_calcSizes(exts: (number | IRelativeSize)[], len: number): number[];
getXLens(length: number): number[];
getYLens(length: number): number[];
measureAxes(width: number, height: number, inverted: boolean, phase: number): void;
private $_calcAxesPoints;
completeAxesPoints(xLens: number[], yLens: number[]): void;
/**
* @private
* chart에서 호출됨.
*/
getBodyAnnotation(name: string): Annotation;
prepareRender(xAxes: AxisCollection, yAxes: AxisCollection): void;
/**
* number | (`${number}*` | '*')[] // '*'은 '1*'과 동일.
*/
private $_parseSizes;
private $_parsePanes;
private $_loadPanes;
/**
* 축이 연결되지 않은 pane들은 skip한다.
*/
private $_collectPanes;
}
declare function registerSplit(chart: typeof RealChart): void;
export { Split, registerSplit as default };