@highcharts/dashboards
Version:
Highcharts Dashboards framework
383 lines (382 loc) • 12.8 kB
TypeScript
import type ButtonThemeObject from './Renderer/SVG/ButtonThemeObject';
import type Chart from './Chart/Chart';
import type ColorString from './Color/ColorString';
import type CSSObject from './Renderer/CSSObject';
import type DataTableCore from '../Data/DataTableCore';
import type { DataTableOptionsObject } from '../Data/DataTableOptions';
import type PaletteOptions from './Color/PaletteOptions';
import type { SeriesTypePlotOptions } from './Series/SeriesType';
import type { LangOptionsCore } from '../Shared/LangOptionsCore';
/**
* Global options that don't apply to each chart. These options must be set
* using the `Highcharts.setOptions` method.
*
* ```js
* Highcharts.setOptions({
* global: {
* buttonTheme: {
* fill: '#d0d0d0'
* }
* }
* });
* ```
*/
interface GlobalOptions {
/**
* General theme for buttons. This applies to the zoom button, exporting
* context menu, map navigation, range selector buttons and custom
* buttons generated using the `SVGRenderer.button` function. However,
* each of these may be overridden with more specific options.
*
* @sample highcharts/global/buttontheme
* General button theme
* @since 11.4.2
*/
buttonTheme: ButtonThemeObject;
/** @deprecated */
canvasToolsURL?: string;
/** @deprecated */
Date?: Function;
/** @deprecated */
getTimezoneOffset?: Function;
/** @deprecated */
timezone?: string;
/** @deprecated */
timezoneOffset?: number;
/** @deprecated */
useUTC?: boolean;
}
/**
* An object containing language-related strings and settings. A typical
* setup uses `Highcharts.setOptions` to make the options apply to all
* charts in the same page.
*
* Some language options, like `months` and `weekdays`, are only used
* with non-locale-aware date formats.
*
* ```js
* Highcharts.setOptions({
* lang: {
* locale: 'fr'
* }
* });
* ```
*/
export interface LangOptions extends LangOptionsCore {
/**
* The default chart title.
*
* @since 12.2.0
*/
chartTitle: string;
/**
* The loading text that appears when the chart is set into the loading
* state following a call to `chart.showLoading`.
*
* @default Loading...
*/
loading: string;
/**
* The magnitude of [numericSymbols](#lang.numericSymbol) replacements.
* Use 10000 for Japanese, Korean and various Chinese locales, which
* use symbols for 10^4, 10^8 and 10^12.
*
* @sample highcharts/lang/numericsymbolmagnitude/
* 10000 magnitude for Japanese
*
* @default 1000
* @since 5.0.3
*/
numericSymbolMagnitude?: number;
/**
* [Metric prefixes](https://en.wikipedia.org/wiki/Metric_prefix) used
* to shorten high numbers in axis labels. Replacing any of the
* positions with `null` causes the full number to be written. Setting
* `numericSymbols` to `undefined` disables shortening altogether.
*
* @sample {highcharts} highcharts/lang/numericsymbols/
* Replacing the symbols with text
* @sample {highstock} highcharts/lang/numericsymbols/
* Replacing the symbols with text
*
* @default ["k", "M", "G", "T", "P", "E"]
* @since 2.3.0
*/
numericSymbols: Array<string> | undefined;
/**
* The default name for a pie slice (point).
*
* @default Slice
* @since 12.2.0
*/
pieSliceName: string;
/**
* The text for the label appearing when a chart is zoomed.
*
* @default Reset zoom
* @since 1.2.4
*/
resetZoom: string;
/**
* The tooltip title for the label appearing when a chart is zoomed.
*
* @default Reset zoom level 1:1
* @since 1.2.4
*/
resetZoomTitle: string;
/**
* [Format string](https://www.highcharts.com/docs/chart-concepts/templating)
* for the default series name.
*
* @default Series {add index 1}
* @since 12.2.0
*/
seriesName: string;
/**
* The default title of the Y axis
*
* @default Values
* @since 12.2.0
*/
yAxisTitle: string;
/**
* The title appearing on hovering the zoom in button. The text itself
* defaults to "+" and can be changed in the button options.
*
* @default Zoom in
* @product highmaps
*/
zoomIn?: string;
/**
* The title appearing on hovering the zoom out button. The text itself
* defaults to "-" and can be changed in the button options.
*
* @default Zoom out
* @product highmaps
*/
zoomOut?: string;
}
/**
* The loading options control the appearance of the loading screen
* that covers the plot area on chart operations. This screen only
* appears after an explicit call to `chart.showLoading()`. It is a
* utility for developers to communicate to the end user that something
* is going on, for example while retrieving new data via an XHR connection.
* The "Loading..." text itself is not part of this configuration
* object, but part of the `lang` object.
*/
export interface LoadingOptions {
/**
* The duration in milliseconds of the fade out effect.
*
* @sample highcharts/loading/hideduration/
* Fade in and out over a second
*
* @default 100
* @since 1.2.0
*/
hideDuration?: number;
/**
* CSS styles for the loading label `span`.
*
* @see In styled mode, the loading label is styled with the
* `.highcharts-loading-inner` class.
*
* @sample {highcharts|highmaps} highcharts/loading/labelstyle/
* Vertically centered
* @sample {highstock} stock/loading/general/
* Label styles
*
* @default {"fontWeight": "bold", "position": "relative", "top": "45%"}
* @since 1.2.0
*/
labelStyle?: CSSObject;
/**
* The duration in milliseconds of the fade in effect.
*
* @sample highcharts/loading/hideduration/
* Fade in and out over a second
*
* @default 0
* @since 1.2.0
*/
showDuration?: number;
/**
* CSS styles for the loading screen that covers the plot area.
*
* In styled mode, the loading label is styled with the
* `.highcharts-loading` class.
*
* @sample {highcharts|highmaps} highcharts/loading/style/
* Gray plot area, white text
* @sample {highstock} stock/loading/general/
* Gray plot area, white text
*
* @default {"position": "absolute", "backgroundColor": "#ffffff", "opacity": 0.5, "textAlign": "center"}
* @since 1.2.0
*/
style?: CSSObject;
}
/**
* Format a number and return a string based on input settings.
*
* @callback Highcharts.NumberFormatterCallbackFunction
*
* @param {number} number
* The input number to format.
*
* @param {number} decimals
* The amount of decimals. A value of -1 preserves the amount in the input
* number.
*
* @param {string} [decimalPoint]
* The decimal point, defaults to the one given in the lang options, or a dot.
*
* @param {string} [thousandsSep]
* The thousands separator, defaults to the one given in the lang options, or a
* space character.
*
* @param {Highcharts.Chart} [ctx]
* Since v12.6.0, the chart context passed as an extra argument for arrow
* functions.
*
* @return {string}
* The formatted number.
*/
export interface NumberFormatterCallbackFunction {
(this: Chart | object | void, number: number, decimals: number, decimalPoint?: string, thousandsSep?: string, ctx?: Chart): string;
}
/**
* Global options for all charts.
*/
export interface Options {
/**
* An array containing the default colors for the chart's series. When
* all colors are used, new colors are pulled from the start again.
*
* Default colors can also be set on a series or series.type basis,
* see [column.colors](#plotOptions.column.colors),
* [pie.colors](#plotOptions.pie.colors).
*
* In styled mode, the colors option doesn't exist. Instead, colors
* are defined in CSS and applied either through series or point class
* names, or through the [chart.colorCount](#chart.colorCount) option.
*
* The defaults from v13 invoke CSS variables that are set by the `palette`
* option's light and dark themes.
*
* @sample {highcharts} highcharts/chart/colors/
* Assign a global color theme
* @sample highcharts/members/theme-v10/
* Latest release styled like version 10
*
* @default [
* 'var(--highcharts-color-0)',
* 'var(--highcharts-color-1)',
* 'var(--highcharts-color-2)',
* 'var(--highcharts-color-3)',
* 'var(--highcharts-color-4)',
* 'var(--highcharts-color-5)',
* 'var(--highcharts-color-6)',
* 'var(--highcharts-color-7)',
* 'var(--highcharts-color-8)',
* 'var(--highcharts-color-9)'
* ]
*/
colors?: Array<ColorString>;
/**
* Options for one or many chart-level data tables. The `dataTable` option,
* or its array members, can be either configuration objects or instances of
* the `DataTableCore` class. If a `DataTableCore` instance is passed, it
* will be used directly. If a configuration object is passed, a new
* `DataTableCore` instance will be created based on the provided
* configuration.
*
* The data table is mapped to the series data points based on the
* [series.dataMapping](#plotOptions.series.dataMapping) option, unless the
* column keys match the point property names (`x`, `y` etc.), in which case
* the mapping is automatic.
*
* @sample {highstock} stock/datatable/candlestick
* Candlestick chart with data table
* @sample {highstock} stock/datatable/live-candlestick
* Live candlestick
* @sample {highmaps} maps/datatable/chart-datatable
* Map with data table and data mapping
* @sample {highmaps} maps/demo/basic-map
* World map
* @sample {gantt} gantt/datatable/chart-datatable
* Gantt chart with data table
*
* @sample highcharts/datatable/chart-datatable-single/
* Chart with one data table as option
* @sample highcharts/datatable/chart-datatable-single/
* Chart with one data table as instance
* @sample highcharts/datatable/chart-datatable-multiple/
* Chart with two data tables
* @sample highcharts/data/getdatatable
* Data table from CSV
*/
dataTable?: DataTableOptionsObject | DataTableCore | Array<DataTableOptionsObject | DataTableCore>;
/**
* An object containing language-related strings and settings. A typical
* setup uses `Highcharts.setOptions` to make the options apply to all
* charts in the same page.
*
* Some language options, like `months` and `weekdays`, are only used
* with non-locale-aware date formats.
*
* ```js
* Highcharts.setOptions({
* lang: {
* locale: 'fr'
* }
* });
* ```
*/
lang: LangOptions;
/**
* The loading text that appears when the chart is set into the loading
* state following a call to `chart.showLoading`.
*/
loading?: LoadingOptions;
/**
* The color palette to use.
*/
palette: PaletteOptions;
/**
* The plotOptions is a wrapper object for config objects for each series
* type. The config objects for each series can also be overridden for
* each series item as given in the series array.
*
* Configuration options for the series are given in three levels. Options
* for all series in a chart are given in the [plotOptions.series](
* #plotOptions.series) object. Then options for all series of a specific
* type are given in the plotOptions of that type, for example
* `plotOptions.line`. Next, options for one single series are given in
* [the series array](#series).
*/
plotOptions: SeriesTypePlotOptions;
/**
* Global options that don't apply to each chart. These options must be set
* using the `Highcharts.setOptions` method.
*
* ```js
* Highcharts.setOptions({
* global: {
* buttonTheme: {
* fill: '#d0d0d0'
* }
* }
* });
* ```
*/
global: GlobalOptions;
}
/**
* Global default settings.
*/
export interface DefaultOptions extends Options {
}
export type OptionsOverflowValue = ('allow' | 'justify');
export default Options;