ag-charts-types
Version:
Advanced Charting / Charts supporting Javascript / Typescript / React / Angular / Vue
81 lines (80 loc) • 3.61 kB
TypeScript
import type { AgAxisLabelFormatterParams } from '../../chart/axisOptions';
import type { Formatter } from '../../chart/callbackOptions';
import type { AgSeriesListeners } from '../../chart/eventOptions';
import type { CssColor, Degree, FontFamily, FontSize, FontStyle, FontWeight, InteractionRange, PixelSize } from '../../chart/types';
import type { AgSeriesHighlightStyle } from '../../series/seriesOptions';
export interface GaugeDatum {
value: number;
segmentStart: number;
segmentEnd: number;
}
export interface AgBaseGaugeThemeableOptions {
/** The cursor to use for the gauge. This config is identical to the CSS `cursor` property. */
cursor?: string;
/** Configuration for marker and series highlighting when a series or legend item is hovered over. */
highlightStyle?: AgSeriesHighlightStyle;
/** Range from a node that a click triggers the listener. */
nodeClickRange?: InteractionRange;
/** A map of event names to event listeners. */
listeners?: AgSeriesListeners<GaugeDatum>;
}
export interface AgGaugeScaleLabel {
/** Set to `false` to hide the scale labels. */
enabled?: boolean;
/** The font style to use for the labels. */
fontStyle?: FontStyle;
/** The font weight to use for the labels. */
fontWeight?: FontWeight;
/** The font size in pixels to use for the labels. */
fontSize?: FontSize;
/** The font family to use for the labels */
fontFamily?: FontFamily;
/** Padding in pixels between the scale label and the tick. */
spacing?: PixelSize;
/** The colour to use for the labels */
color?: CssColor;
/** The rotation of the scale labels in degrees. */
rotation?: Degree;
/** Avoid scale label collision by automatically reducing the number of ticks displayed. If set to `false`, scale labels may collide. */
avoidCollisions?: boolean;
/** Minimum gap in pixels between the scale labels before being removed to avoid collisions. */
minSpacing?: PixelSize;
/** Format string used when rendering labels. */
format?: string;
/** Function used to render scale labels. If `value` is a number, `fractionDigits` will also be provided, which indicates the number of fractional digits used in the step between ticks; for example, a tick step of `0.0005` would have `fractionDigits` set to `4` */
formatter?: Formatter<AgAxisLabelFormatterParams>;
}
export interface AgGaugeSegmentationInterval {
/** The segmentation interval. If the configured interval results in too many items given the chart size, it will be ignored. */
step?: number;
/** Array of values for specified intervals along the gauge. */
values?: number[];
/** Number of evenly-divided segments in the gauge. */
count?: number;
}
export interface AgGaugeSegmentation {
/** Enable segmentation. */
enabled?: boolean;
/** Configuration for the segmentation. */
interval?: AgGaugeSegmentationInterval;
/** The spacing between segments. */
spacing?: number;
}
export type AgGaugeFillMode = 'continuous' | 'discrete';
export type AgGaugeCornerMode = 'container' | 'item';
export interface AgGaugeColorStop {
/** Colour of this category. */
color?: string;
/** Stop value of this category. Defaults the maximum value if unset. */
stop?: number;
}
export interface FillsOptions {
/** Configuration for two or more colours, and the values they are rendered at. */
fills?: AgGaugeColorStop[];
/**
* Configuration the fills should be rendered.
*
* Default: `continuous`
**/
fillMode?: AgGaugeFillMode;
}