mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
* [FIX] make amcharts definitions work in strict mode * [FIX] travis checks header * clean some linting issues, export namespace, add version and provide small test * [FIX] linting * [MOD] split into several files for easier maintenance access * [ADD] couple of tests
359 lines
13 KiB
TypeScript
359 lines
13 KiB
TypeScript
import AmBalloon from "./AmBalloon";
|
||
import AmLegend from "./AmLegend";
|
||
import ExportSettings from "./ExportSettings";
|
||
import Label from "./Label";
|
||
import Title from "./Title";
|
||
|
||
/**
|
||
* AmChart is a base class of all charts. It can not be instantiated explicitly.
|
||
* AmCoordinateChart, AmPieChart and AmMap extend AmChart class.
|
||
*/
|
||
export default class AmChart {
|
||
/**
|
||
* used when constructing a chart with a theme
|
||
*/
|
||
constructor(theme?: any);
|
||
/**
|
||
* Specifies, if class names should be added to chart elements.
|
||
*/
|
||
addClassNames: boolean;
|
||
/**
|
||
* Array of Labels. Example of label object, with all possible properties:
|
||
* {
|
||
* "x": 20,
|
||
* "y": 20,
|
||
* "text": "this is label",
|
||
* "align": "left",
|
||
* "size": 12,
|
||
* "color": "#CC0000",
|
||
* "alpha": 1,
|
||
* "rotation": 0,
|
||
* "bold": true,
|
||
* "url": "http://www.amcharts.com"
|
||
* }
|
||
*/
|
||
allLabels: Label[];
|
||
/**
|
||
* Set this to false if you don't want chart to resize itself whenever its parent container size changes.
|
||
*/
|
||
autoResize: boolean;
|
||
/**
|
||
* Opacity of background. Set it to >0 value if you want backgroundColor to work.
|
||
* However we recommend changing div's background-color style for changing background color.
|
||
*/
|
||
backgroundAlpha: number;
|
||
/**
|
||
* Background color. You should set backgroundAlpha to >0 value in order background to be visible.
|
||
* We recommend setting background color directly on a chart's DIV instead of using this property.
|
||
* @default "#FFFFFF"
|
||
*/
|
||
backgroundColor: string;
|
||
/**
|
||
* The chart creates AmBalloon class itself.
|
||
* If you want to customize balloon, get balloon instance using this property,
|
||
* and then change balloon's properties.
|
||
*/
|
||
balloon: AmBalloon;
|
||
/**
|
||
* Opacity of chart's border. Value range is 0 - 1.
|
||
*/
|
||
borderAlpha: number;
|
||
/**
|
||
* Color of chart's border. You should set borderAlpha >0 in order border to be visible.
|
||
* We recommend setting border color directly on a chart's DIV instead of using this property.
|
||
* @default #000000
|
||
*/
|
||
borderColor: string;
|
||
/**
|
||
* This prefix is added to all class names which are added to all visual elements of a chart
|
||
* in case addClassNames is set to true.
|
||
*/
|
||
classNamePrefix: string;
|
||
/**
|
||
* Text color. #000000
|
||
*/
|
||
color: string;
|
||
/**
|
||
* Non-commercial version only. Specifies position of link to amCharts site.
|
||
* Allowed values are: top-left, top-right, bottom-left and bottom-right.
|
||
* @default 'top-left'
|
||
*/
|
||
creditsPosition: string;
|
||
/**
|
||
* Array of data objects, for example:
|
||
* [{country:"US", value:524}, {country:"UK", value:624}, {country:"Lithuania", value:824}].
|
||
* You can have any number of fields and use any field names.
|
||
* In case of AmMap, data provider should be MapData object.
|
||
*/
|
||
dataProvider: any[];
|
||
/**
|
||
* Decimal separator.
|
||
* @default "."
|
||
*/
|
||
decimalSeparator: string;
|
||
/**
|
||
* Using this property you can add any additional information to SVG, like SVG filters or clip paths.
|
||
* The structure of this object should be identical to XML structure of a object you are adding,
|
||
* only in JSON format.
|
||
*/
|
||
defs: any;
|
||
/**
|
||
* Export config. Specifies how export to image/data export/print/annotate menu will look and behave.
|
||
* You can find a lot of examples in amcharts/plugins/export folder.
|
||
*/
|
||
export: ExportSettings;
|
||
/**
|
||
* Font family. Verdana
|
||
*/
|
||
fontFamily: string;
|
||
/**
|
||
* Font size.
|
||
* @default 11
|
||
*/
|
||
fontSize: string;
|
||
/**
|
||
* If you set this to true, the lines of the chart will be distorted and will produce hand-drawn effect.
|
||
* Try to adjust chart.handDrawScatter and chart.handDrawThickness properties for a more scattered result.
|
||
* @default false
|
||
*/
|
||
handDrawn: boolean;
|
||
/**
|
||
* Defines by how many pixels hand-drawn line (when handDrawn is set to true) will fluctuate.
|
||
* @default 2
|
||
*/
|
||
handDrawScatter: number;
|
||
/**
|
||
* Defines by how many pixels line thickness will fluctuate (when handDrawn is set to true).
|
||
* @default 1
|
||
*/
|
||
handDrawThickness: number;
|
||
/**
|
||
* Time, in milliseconds after which balloon is hidden if the user rolls-out of the object.
|
||
* Might be useful for AmMap to avoid balloon flickering while moving mouse over the areas.
|
||
* Note, this is not duration of fade-out. Duration of fade-out is set in AmBalloon class.
|
||
* @default 150
|
||
*/
|
||
hideBalloonTime: number;
|
||
/**
|
||
* Legend of a chart.
|
||
*/
|
||
legend: AmLegend;
|
||
/**
|
||
* Reference to the div of the legend.
|
||
*/
|
||
legendDiv: HTMLElement;
|
||
/**
|
||
* You can add listeners of events using this property. Example:
|
||
* listeners = [{"event":"dataUpdated", "method":handleEvent}];
|
||
*/
|
||
listerns: object[];
|
||
/**
|
||
* This setting affects touch-screen devices only.
|
||
* If a chart is on a page, and panEventsEnabled are set to true, the page won't move
|
||
* if the user touches the chart first.
|
||
* If a chart is big enough and occupies all the screen of your touch device,
|
||
* the user won’t be able to move the page at all. That's why the default value is "false".
|
||
* If you think that selecting/panning the chart or moving/pinching the map is a primary purpose of your users,
|
||
* you should set panEventsEnabled to true.
|
||
*/
|
||
panEventsEnabled: boolean;
|
||
/**
|
||
* Specifies absolute or relative path to amCharts files, i.e. "amcharts/". (where all .js files are located)
|
||
* If relative URLs are used, they will be relative to the current web page, displaying the chart.
|
||
* You can also set path globally, using global JavaScript variable AmCharts_path.
|
||
* If this variable is set, and "path" is not set in chart config, the chart will assume the path from the
|
||
* global variable. This allows setting amCharts path globally. I.e.:
|
||
* let AmCharts_path = "/libs/amcharts/";
|
||
* "path" parameter will be used by the charts to locate it's files, like images, plugins or patterns.
|
||
*/
|
||
path: string;
|
||
/**
|
||
* Specifies path to the folder where images like resize grips, lens and similar are.
|
||
* IMPORTANT: Since V3.14.12, you should use "path" to point to amCharts directory instead.
|
||
* The "pathToImages" will be automatically set and does not need to be in the chart config,
|
||
* unless you keep your images separately from other amCharts files.
|
||
*/
|
||
pathToImages: string;
|
||
/**
|
||
* Precision of percent values. -1 means percent values won't be rounded at all and show as they are.
|
||
* @default 2
|
||
*/
|
||
percentPrecision: number;
|
||
/**
|
||
* Precision of values. -1 means values won't be rounded at all and show as they are.
|
||
* @default 1
|
||
*/
|
||
precision: number;
|
||
/**
|
||
* Prefixes which are used to make big numbers shorter: 2M instead of 2000000, etc.
|
||
* Prefixes are used on value axes and in the legend.
|
||
* To enable prefixes, set usePrefixes property to true.
|
||
* [
|
||
* {number:1e+3,prefix:"k"},
|
||
* {number:1e+6,prefix:"M"},
|
||
* {number:1e+9,prefix:"G"},
|
||
* {number:1e+12,prefix:"T"},
|
||
* {number:1e+15,prefix:"P"},
|
||
* {number:1e+18,prefix:"E"},
|
||
* {number:1e+21,prefix:"Z"},
|
||
* {number:1e+24,prefix:"Y"}
|
||
* ]
|
||
*/
|
||
prefixesOfBigNumbers: any[];
|
||
/**
|
||
* Prefixes which are used to make small numbers shorter: 2μ instead of 0.000002, etc.
|
||
* Prefixes are used on value axes and in the legend.
|
||
* To enable prefixes, set usePrefixes property to true.
|
||
* [
|
||
* {number:1e-24, prefix:"y"},
|
||
* {number:1e-21, prefix:"z"},
|
||
* {number:1e-18, prefix:"a"},
|
||
* {number:1e-15, prefix:"f"},
|
||
* {number:1e-12, prefix:"p"},
|
||
* {number:1e-9, prefix:"n"},
|
||
* {number:1e-6, prefix:"μ"},
|
||
* {number:1e-3, prefix:"m"}
|
||
* ]
|
||
*/
|
||
prefixesOfSmallNumbers: any[];
|
||
/**
|
||
* Theme of a chart. Config files of themes can be found in amcharts/themes/ folder.
|
||
* More info about using themes.
|
||
*/
|
||
theme: string;
|
||
/**
|
||
* Thousands separator.
|
||
* @default "."
|
||
*/
|
||
thousandsSeparator: string;
|
||
/**
|
||
* Array of Title objects.
|
||
*/
|
||
titles: Title[];
|
||
/**
|
||
* Type of a chart. Required when creating chart using JSON.
|
||
* Possible types are: serial, pie, xy, radar, funnel, gauge, map, stock.
|
||
*/
|
||
type: string;
|
||
/**
|
||
* If true, prefixes will be used for big and small numbers.
|
||
* You can set arrays of prefixes via prefixesOfSmallNumbers and prefixesOfBigNumbers properties.
|
||
*/
|
||
usePrefixes: boolean;
|
||
/**
|
||
* Read-only. Indicates current version of a script.
|
||
*/
|
||
version: string;
|
||
/**
|
||
* Adds a label on a chart.
|
||
* You can use it for labeling axes, adding chart title, etc. x and y coordinates can be set in
|
||
* number, percent, or a number with ! in front of it -
|
||
* coordinate will be calculated from right or bottom instead of left or top.
|
||
* x - horizontal coordinate
|
||
* y - vertical coordinate
|
||
* text - label's text
|
||
* align - alignment (left/right/center)
|
||
* size - text size
|
||
* color - text color
|
||
* rotation - angle of rotation
|
||
* alpha - label alpha
|
||
* bold - specifies if text is bold (true/false),
|
||
* url - url
|
||
*/
|
||
addLabel(
|
||
x: number | string,
|
||
y: number | string,
|
||
text: string,
|
||
align: string,
|
||
size?: number,
|
||
color?: string,
|
||
rotation?: number,
|
||
alpha?: number,
|
||
bold?: boolean,
|
||
url?: string,
|
||
): any;
|
||
/**
|
||
* Adds a legend to the chart.
|
||
* By default, you don't need to create div for your legend,
|
||
* however if you want it to be positioned in some different way,
|
||
* you can create div anywhere you want and pass id or reference to your div as a second parameter.
|
||
* (NOTE: This method will not work on StockPanel.)
|
||
* @param legend - The legend.
|
||
* @param legendDivId - Id of the legend div (optional).
|
||
*/
|
||
addLegend(legend: AmLegend, legendDivId?: string): void;
|
||
/**
|
||
* Adds a legend to the chart.
|
||
* By default, you don't need to create div for your legend,
|
||
* however if you want it to be positioned in some different way,
|
||
* you can create div anywhere you want and pass id or reference to your div as a second parameter.
|
||
* (NOTE: This method will not work on StockPanel.)
|
||
* @param legend - The legend.
|
||
* @param legendDiv - Legend div (optional).
|
||
*/
|
||
addLegend(legend: AmLegend, legendDiv: HTMLElement): void;
|
||
|
||
/**
|
||
* Adds title to the top of the chart. Pie, Radar positions are updated so that they won't overlap.
|
||
* Plot area of Serial/XY chart is also updated unless autoMargins property is set to false.
|
||
* You can add any number of titles - each of them will be placed in a new line.
|
||
* To remove titles, simply clear titles array: chart.titles = []; and call chart.validateNow() method.
|
||
* text - text of a title size - font size color - title color alpha - title opacity bold -
|
||
* boolean value indicating if title should be bold.
|
||
*/
|
||
addTitle(text: string, size: number, color: string, alpha: number, bold: boolean): void;
|
||
/**
|
||
* Clears the chart area, intervals, etc.
|
||
*/
|
||
clear(): void;
|
||
/**
|
||
* Removes all labels added to the chart.
|
||
*/
|
||
clearLabels(): void;
|
||
/**
|
||
* Use this method to force the chart to resize to it's current container size.
|
||
*/
|
||
invalidateSize(): void;
|
||
/**
|
||
* Removes chart's legend.
|
||
*/
|
||
removeLegend(): void;
|
||
/**
|
||
* This method should be called after data in your data provider changed or a new array was set to dataProvider.
|
||
* After calling this method the chart will parse data and redraw.
|
||
*/
|
||
validateData(): void;
|
||
/**
|
||
* This method should be called after you changed one or more properties of any class.
|
||
* The chart will redraw after this method is called.
|
||
*/
|
||
validateNow(): void;
|
||
|
||
/**
|
||
* Adds chart to the specified DIV.
|
||
*/
|
||
write(container: string | HTMLDivElement): void;
|
||
|
||
/**
|
||
* Adds event listener of the type "dataUpdated" or "init" to the object.
|
||
* @param type "dataUpdated" or "init".
|
||
* @param handler
|
||
* If the type is "dataUpdated".
|
||
* Dispatched when chart is build for the first time or after validateData() method was called.
|
||
* If the type is "init". Dispatched when chart is build for the first time.
|
||
*/
|
||
addListener(
|
||
type: string,
|
||
handler: (
|
||
e: {
|
||
type: string; // Either "dataUpdated" or "init".
|
||
chart: AmChart;
|
||
},
|
||
) => void,
|
||
): void;
|
||
/**
|
||
* Removes event listener from chart object.
|
||
*/
|
||
removeListener(chart: AmChart, type: string, handler: any): void;
|
||
}
|