mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-21 21:31:12 +08:00
680 lines
13 KiB
TypeScript
680 lines
13 KiB
TypeScript
/**
|
|
* TeeChart(tm) for TypeScript
|
|
*
|
|
* v1.3 October 2012
|
|
* Copyright(c) 2012 by Steema Software SL. All Rights Reserved.
|
|
* http://www.steema.com
|
|
*
|
|
* Licensed with commercial and non-commercial attributes,
|
|
* specifically: http://www.steema.com/licensing/html5
|
|
*
|
|
* TypeScript is a Microsoft product: www.typescriptlang.org
|
|
*
|
|
*/
|
|
|
|
/**
|
|
* @author <a href="mailto:david@steema.com">Steema Software</a>
|
|
* @version 1.3
|
|
*/
|
|
|
|
|
|
declare module Tee {
|
|
|
|
interface IPoint {
|
|
x: number;
|
|
y: number;
|
|
}
|
|
|
|
interface IRectangle {
|
|
x: number;
|
|
y: number;
|
|
width: number;
|
|
height: number;
|
|
|
|
contains(point: IPoint): boolean;
|
|
}
|
|
|
|
interface ITool {
|
|
active: boolean;
|
|
chart: IChart;
|
|
|
|
mousedown(event): boolean;
|
|
mousemove(event): boolean;
|
|
clicked(p:IPoint): boolean;
|
|
draw(): void;
|
|
}
|
|
|
|
interface IGradient {
|
|
chart: IChart;
|
|
visible: boolean;
|
|
|
|
colors: string[];
|
|
direction: string;
|
|
stops: number[];
|
|
offset: IPoint;
|
|
}
|
|
|
|
interface IShadow {
|
|
chart: IChart;
|
|
visible: boolean;
|
|
blur:number;
|
|
color: string;
|
|
width:number;
|
|
height:number;
|
|
}
|
|
|
|
interface IStroke {
|
|
chart: IChart;
|
|
fill: string;
|
|
size: number;
|
|
join: string;
|
|
cap: string;
|
|
dash: number[];
|
|
gradient: IGradient;
|
|
}
|
|
|
|
interface IFont {
|
|
chart: IChart;
|
|
style: string;
|
|
gradient: IGradient;
|
|
fill: string;
|
|
stroke: IStroke;
|
|
shadow: IShadow;
|
|
textAlign: string;
|
|
baseLine: string;
|
|
|
|
getSize():number;
|
|
setSize(size:number):void;
|
|
}
|
|
|
|
interface IImage {
|
|
url: string;
|
|
chart: IChart;
|
|
visible: boolean;
|
|
}
|
|
|
|
interface IFormat {
|
|
font: IFont;
|
|
gradient: IGradient;
|
|
shadow: IShadow;
|
|
stroke: IStroke;
|
|
round: IPoint;
|
|
transparency: number;
|
|
image: IImage;
|
|
fill: string;
|
|
|
|
textHeight(text:string): number;
|
|
textWidth(text:string): number;
|
|
drawText(bounds:IRectangle, text:string);
|
|
rectangle(x:number, y:number, width:number, height:number);
|
|
poligon(points:IPoint[]);
|
|
ellipse(x:number, y:number, width:number, height:number);
|
|
}
|
|
|
|
interface IMargins {
|
|
left: number;
|
|
top: number;
|
|
right: number;
|
|
bottom: number;
|
|
}
|
|
|
|
interface IAnnotation extends ITool {
|
|
position: IPoint;
|
|
margins: IMargins;
|
|
items: IAnnotation[];
|
|
bounds: IRectangle;
|
|
visible: boolean;
|
|
transparent: boolean;
|
|
text: string;
|
|
format: IFormat;
|
|
|
|
add(text: string): IAnnotation;
|
|
resize(): void;
|
|
clicked(point: IPoint): boolean;
|
|
draw(): void;
|
|
}
|
|
|
|
interface IPanel {
|
|
format: IFormat;
|
|
transparent: boolean;
|
|
margins: IMargins;
|
|
}
|
|
|
|
interface ITitle extends IAnnotation {
|
|
expand: boolean;
|
|
padding: number;
|
|
transparent: boolean;
|
|
}
|
|
|
|
interface IPalette {
|
|
colors: string[];
|
|
|
|
get(index: number): string;
|
|
}
|
|
|
|
interface IArrow extends IFormat {
|
|
length: number;
|
|
underline: boolean;
|
|
}
|
|
|
|
interface IMarks extends IAnnotation {
|
|
arrow: IArrow;
|
|
series: ISeries;
|
|
|
|
style: string;
|
|
|
|
drawEvery: number;
|
|
visible: boolean;
|
|
}
|
|
|
|
interface ISeriesData {
|
|
values: number[];
|
|
labels: string[];
|
|
source: any;
|
|
}
|
|
|
|
interface ICursor {
|
|
cursor: string;
|
|
}
|
|
|
|
interface ISeriesNoBounds {
|
|
data: ISeriesData;
|
|
marks: IMarks;
|
|
|
|
yMandatory: boolean;
|
|
horizAxis: string;
|
|
vertAxis: string;
|
|
|
|
format: IFormat;
|
|
hover: IFormat;
|
|
|
|
visible: boolean;
|
|
|
|
cursor: ICursor;
|
|
over: number;
|
|
|
|
palette: IPalette;
|
|
colorEach: string;
|
|
|
|
useAxes: boolean;
|
|
decimals: number;
|
|
|
|
title: string;
|
|
|
|
//refresh(failure: function): void;
|
|
|
|
toPercent(index: number): string;
|
|
markText(index: number): string;
|
|
|
|
valueText(index: number): string;
|
|
|
|
associatedToAxis(axis: IAxis): boolean;
|
|
|
|
calc(index: number, position: IPoint): void;
|
|
|
|
clicked(position: IPoint): number;
|
|
|
|
minXValue(): number;
|
|
maxXValue(): number;
|
|
|
|
minYValue(): number;
|
|
maxYValue(): number;
|
|
|
|
count(): number;
|
|
|
|
addRandom(count: number, range?: number, x?: boolean): ISeries;
|
|
}
|
|
|
|
interface ISeries extends ISeriesNoBounds {
|
|
bounds(rectangle: IRectangle): void;
|
|
}
|
|
|
|
interface IAxisLabels {
|
|
chart: IChart;
|
|
format: IFormat;
|
|
decimals: number;
|
|
padding: number;
|
|
separation: number; // %
|
|
visible: boolean;
|
|
rotation: number;
|
|
alternate: boolean;
|
|
maxWidth: number;
|
|
|
|
labelStyle: string;
|
|
dateFormat: string;
|
|
|
|
getLabel(value: number): string;
|
|
width(value: number): number;
|
|
|
|
}
|
|
|
|
interface IGrid {
|
|
chart: IChart;
|
|
format: IFormat;
|
|
visible: boolean;
|
|
lineDash: boolean;
|
|
}
|
|
|
|
interface ITicks {
|
|
chart: IChart;
|
|
stroke: IStroke;
|
|
visible: boolean;
|
|
length: number;
|
|
}
|
|
|
|
interface IMinorTicks extends ITicks {
|
|
count: number;
|
|
}
|
|
|
|
interface IAxisTitle extends IAnnotation {
|
|
padding: number;
|
|
transparent: boolean;
|
|
}
|
|
|
|
interface IAxis {
|
|
chart: IChart;
|
|
visible: boolean;
|
|
inverted: boolean;
|
|
|
|
horizontal: boolean; // readonly
|
|
otherSize: boolean; // readonly
|
|
bounds: IRectangle; // readonly?
|
|
|
|
position: number;
|
|
format: IFormat;
|
|
custom: boolean; // readonly
|
|
|
|
grid: IGrid;
|
|
labels: IAxisLabels;
|
|
ticks: ITicks;
|
|
minorTicks: IMinorTicks;
|
|
innerTicks: ITicks;
|
|
|
|
title: IAxisTitle;
|
|
|
|
automatic: boolean;
|
|
minimum: number;
|
|
maximum: number;
|
|
increment: number;
|
|
log: boolean;
|
|
|
|
startPos: number;
|
|
endPos: number;
|
|
|
|
start: number; // %
|
|
end: number; // %
|
|
|
|
axisSize: number;
|
|
|
|
scale: number;
|
|
increm: number;
|
|
|
|
calc(value: number): number;
|
|
fromPos(position: number): number;
|
|
fromSize(size: number): number;
|
|
|
|
hasAnySeries(): boolean;
|
|
scroll(delta: number): void;
|
|
setMinMax(minimum: number, maximum: number): void;
|
|
}
|
|
|
|
interface IAxes {
|
|
chart: IChart;
|
|
visible: boolean;
|
|
|
|
left: IAxis;
|
|
top: IAxis;
|
|
right: IAxis;
|
|
bottom: IAxis;
|
|
|
|
items: IAxis[];
|
|
|
|
add(horizontal: boolean, otherSide: boolean): IAxis;
|
|
//each(f: function): void;
|
|
}
|
|
|
|
interface ISymbol {
|
|
chart: IChart;
|
|
format: IFormat;
|
|
width: number;
|
|
height: number;
|
|
padding: number;
|
|
visible: boolean;
|
|
}
|
|
|
|
interface ILegend {
|
|
chart: IChart;
|
|
|
|
transparent: boolean;
|
|
|
|
format: IFormat;
|
|
title: IAnnotation;
|
|
|
|
bounds: IRectangle;
|
|
position: string;
|
|
visible: boolean;
|
|
inverted: boolean;
|
|
padding: number;
|
|
align: number;
|
|
|
|
fontColor: boolean;
|
|
|
|
dividing: IStroke;
|
|
over: number;
|
|
symbol: ISymbol;
|
|
|
|
itemHeight: number;
|
|
innerOff: number;
|
|
|
|
legendStyle: string;
|
|
textStyle: string;
|
|
|
|
availRows(): number;
|
|
itemsCount(): number;
|
|
totalWidth(): number;
|
|
showValues(): boolean;
|
|
itemText(series: ISeries, index: number): string;
|
|
isVertical(): boolean;
|
|
}
|
|
|
|
interface IScroll {
|
|
chart: IChart;
|
|
active: boolean;
|
|
enabled: boolean;
|
|
direction: string;
|
|
mouseButton: number;
|
|
|
|
position: IPoint;
|
|
}
|
|
|
|
interface ISeriesList {
|
|
chart: IChart;
|
|
items: ISeries[];
|
|
|
|
anyUsesAxes(): boolean;
|
|
clicked(position: IPoint): boolean;
|
|
//each(f: function): void;
|
|
firstVisible(): ISeries;
|
|
|
|
}
|
|
|
|
interface ITools {
|
|
chart: IChart;
|
|
items: ITool[];
|
|
|
|
add(tool: ITool): ITool;
|
|
}
|
|
|
|
interface IWall {
|
|
format: IFormat;
|
|
visible: boolean;
|
|
bounds: IRectangle;
|
|
}
|
|
|
|
interface IWalls {
|
|
visible: boolean;
|
|
left: IWall;
|
|
right: IWall;
|
|
bottom: IWall;
|
|
back: IWall;
|
|
}
|
|
|
|
interface IZoom {
|
|
chart: IChart;
|
|
active: boolean;
|
|
direction: string;
|
|
enabled: boolean;
|
|
mouseButton: number;
|
|
format: IFormat;
|
|
|
|
reset(): void;
|
|
}
|
|
|
|
interface IChart {
|
|
addSeries(series:ISeries): ISeries;
|
|
draw(context?:CanvasRenderingContext2D);
|
|
}
|
|
|
|
// SERIES
|
|
|
|
interface ICustomBar extends ISeries {
|
|
sideMargins: number;
|
|
useOrigin: boolean;
|
|
origin: number;
|
|
|
|
offset: number;
|
|
barSize: number;
|
|
barStyle: string;
|
|
|
|
stacked: string;
|
|
}
|
|
|
|
interface ISeriesPointer {
|
|
chart: IChart;
|
|
format: IFormat;
|
|
visible: boolean;
|
|
colorEach: boolean;
|
|
style: string;
|
|
width: number;
|
|
height: number;
|
|
}
|
|
|
|
interface ICustomSeries extends ISeries {
|
|
pointer: ISeriesPointer;
|
|
|
|
stacked: string;
|
|
stairs: boolean;
|
|
}
|
|
|
|
interface ILine extends ICustomSeries {
|
|
smooth: number;
|
|
}
|
|
|
|
interface ISmoothLine extends ILine {
|
|
smooth: number;
|
|
}
|
|
|
|
interface IArea extends ISeries {
|
|
useOrigin: boolean;
|
|
origin: number;
|
|
}
|
|
|
|
interface IPie extends ISeries {
|
|
donut: number;
|
|
rotation: number;
|
|
sort: string;
|
|
orderAscending: boolean;
|
|
explode: number[];
|
|
concentric: boolean;
|
|
|
|
calcPos(angle: number, position: IPoint): void;
|
|
}
|
|
|
|
interface IBubbleData extends ISeriesData {
|
|
radius: number[];
|
|
}
|
|
|
|
interface IBubble extends ICustomSeries {
|
|
data: IBubbleData;
|
|
}
|
|
|
|
interface IGanttData extends ISeriesData {
|
|
start: number[];
|
|
x: number[];
|
|
end: number[];
|
|
}
|
|
|
|
interface IGantt extends ISeriesNoBounds {
|
|
data: IGanttData;
|
|
dateFormat: string;
|
|
colorEach: string;
|
|
height: number;
|
|
margin: IPoint;
|
|
|
|
add(index: number, label: string, start: number, end: number): void;
|
|
bounds(index: number, rectangle: IRectangle): void;
|
|
}
|
|
|
|
interface ICandleData extends ISeriesData {
|
|
open: number[];
|
|
close: number[];
|
|
high: number[];
|
|
low: number[];
|
|
}
|
|
|
|
interface ICandle extends ICustomSeries {
|
|
data: ICandleData;
|
|
higher: IFormat;
|
|
lower: IFormat;
|
|
style: string;
|
|
}
|
|
|
|
// TOOLS
|
|
|
|
interface IDragTool extends ITool {
|
|
series: ISeries;
|
|
}
|
|
|
|
interface ICursorTool extends ITool {
|
|
direction: string;
|
|
size: IPoint;
|
|
|
|
followMouse: boolean;
|
|
dragging: number;
|
|
|
|
format: IFormat;
|
|
|
|
horizAxis: IAxis;
|
|
vertAxis: IAxis;
|
|
|
|
render: string;
|
|
|
|
over(point: IPoint): boolean;
|
|
setRender(render: string): void;
|
|
}
|
|
|
|
interface IToolTip extends IAnnotation {
|
|
animated: number;
|
|
autoHide: boolean;
|
|
autoRedraw: boolean;
|
|
currentSeries: ISeries;
|
|
currentIndex: number;
|
|
delay: number;
|
|
|
|
hide(): void;
|
|
refresh(series: ISeries, index: number): void;
|
|
}
|
|
|
|
class Point implements IPoint {
|
|
public x:number;
|
|
public y:number;
|
|
}
|
|
|
|
class Chart implements IChart {
|
|
//public aspect: IAspect;
|
|
|
|
public axes: IAxes;
|
|
public footer: ITitle;
|
|
public legend: ILegend;
|
|
public panel: IPanel;
|
|
public scroll: IScroll;
|
|
public series: ISeriesList;
|
|
public title: ITitle;
|
|
public tools: ITools;
|
|
public walls: IWalls;
|
|
public zoom: IZoom;
|
|
|
|
public bounds: IRectangle;
|
|
public canvas: HTMLCanvasElement;
|
|
public chartRect: IRectangle;
|
|
public palette: IPalette;
|
|
|
|
constructor(canvas: string);
|
|
addSeries(series: ISeries): ISeries;
|
|
getSeries(index: number): ISeries;
|
|
removeSeries(series:ISeries): void;
|
|
|
|
draw(context?:CanvasRenderingContext2D);
|
|
toImage(image: HTMLImageElement, format:string, quality:number): void;
|
|
}
|
|
|
|
// SERIES
|
|
|
|
var Line: {
|
|
prototype: ILine;
|
|
new(values?:number[]): ILine;
|
|
}
|
|
|
|
var PointXY: {
|
|
prototype: ICustomSeries;
|
|
new(values?:number[]): ICustomSeries;
|
|
}
|
|
|
|
var Area: {
|
|
prototype: IArea;
|
|
new(values?:number[]): IArea;
|
|
}
|
|
|
|
var HorizArea: {
|
|
prototype: IArea;
|
|
new(values?:number[]): IArea;
|
|
}
|
|
|
|
var Bar: {
|
|
prototype: ICustomBar;
|
|
new(values?:number[]): ICustomBar;
|
|
}
|
|
|
|
var HorizBar: {
|
|
prototype: ICustomBar;
|
|
new(values?:number[]): ICustomBar;
|
|
}
|
|
|
|
var Pie: {
|
|
prototype: IPie;
|
|
new(values?:number[]): IPie;
|
|
}
|
|
|
|
var Donut: {
|
|
prototype: IPie;
|
|
new(values?:number[]): IPie;
|
|
}
|
|
|
|
var Bubble: {
|
|
prototype: IBubble;
|
|
new(values?:number[]): IBubble;
|
|
}
|
|
|
|
var Gantt: {
|
|
prototype: IGantt;
|
|
new(values?:number[]): IGantt;
|
|
}
|
|
|
|
var Volume: {
|
|
prototype: ICustomBar;
|
|
new(values?:number[]): ICustomBar;
|
|
}
|
|
|
|
var Candle: {
|
|
prototype: ICandle;
|
|
new(values?:number[]): ICandle;
|
|
}
|
|
|
|
// TOOLS
|
|
|
|
var CursorTool: {
|
|
prototype: ICursorTool;
|
|
new(chart?: Chart): ICursorTool;
|
|
}
|
|
|
|
var DragTool: {
|
|
prototype: IDragTool;
|
|
new(chart?: Chart): IDragTool;
|
|
}
|
|
|
|
var ToolTip: {
|
|
prototype: IToolTip;
|
|
new(chart?: Chart): IToolTip;
|
|
}
|
|
}
|