UNPKG

realchart

Version:

Wooritech charting library

127 lines (122 loc) 4.58 kB
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 };