import type BulletPointOptions from './BulletPointOptions';
import type ColorString from '../../Core/Color/ColorString';
import type ColorType from '../../Core/Color/ColorType';
import type { ColumnSeriesOptions, ColumnSeriesTooltipOptions } from '../Column/ColumnSeriesOptions';
import type { PointShortOptions } from '../../Core/Series/PointOptions';
/**
* A bullet graph is a variation of a bar graph. The bullet graph features
* a single measure, compares it to a target, and displays it in the context
* of qualitative ranges of performance that could be set using
* [plotBands](#yAxis.plotBands) on [yAxis](#yAxis).
*
* A `bullet` series. If the [type](#series.bullet.type) option is not
* specified, it is inherited from [chart.type](#chart.type).
*
* @sample {highcharts} highcharts/demo/bullet-graph/
* Bullet graph
*
* @extends plotOptions.column
*
* @extends series,plotOptions.bullet
*
* @since 6.0.0
*
* @product highcharts
*
* @excluding allAreas, boostThreshold, colorAxis, compare, compareBase,
* dataSorting, boostBlending
*
* @excluding dataParser, dataURL, marker, boostThreshold,
* boostBlending
*
* @requires modules/bullet
*/
export interface BulletSeriesOptions extends ColumnSeriesOptions {
/**
* All options related with look and positioning of targets.
*
* @since 6.0.0
*/
targetOptions?: BulletTargetOptions;
/**
* An array of data points for the series. For the `bullet` series type,
* points can be given in the following ways:
*
* 1. An array of arrays with 3 or 2 values. In this case, the values
* correspond
* to `x,y,target`. If the first value is a string, it is applied as the
* name
* of the point, and the `x` value is inferred. The `x` value can also be
* omitted, in which case the inner arrays should be of length 2\. Then
* the
* `x` value is automatically calculated, either starting at 0 and
* incremented by 1, or from `pointStart` and `pointInterval` given in
* the
* series options.
* ```js
* data: [
* [0, 40, 75],
* [1, 50, 50],
* [2, 60, 40]
* ]
* ```
*
* 2. An array of objects with named values. The following snippet shows
* only a
* few settings, see the complete options set below. If the total number
* of
* data points exceeds the series'
* [turboThreshold](#series.bullet.turboThreshold), this option is not
* available.
* ```js
* data: [{
* x: 0,
* y: 40,
* target: 75,
* name: "Point1",
* color: "#00FF00"
* }, {
* x: 1,
* y: 60,
* target: 40,
* name: "Point2",
* color: "#FF00FF"
* }]
* ```
*
* @extends series.column.data
*
* @since 6.0.0
*
* @product highcharts
*/
data?: Array<(BulletPointOptions | PointShortOptions)>;
tooltip?: BulletSeriesTooltipOptions;
}
export interface BulletSeriesTooltipOptions extends ColumnSeriesTooltipOptions {
/**
* @default '\u25CF {series.name}: {point.y}. Target: {point.target}
'
*/
pointFormat?: ColumnSeriesTooltipOptions['pointFormat'];
}
/**
* All options related with look and positioning of targets.
*
* @since 6.0.0
*/
export interface BulletTargetOptions {
/**
* The border color of the rectangle representing the target. When
* not set, the point's border color is used.
*
* In styled mode, use class `highcharts-bullet-target` instead.
*
* @since 6.0.0
*
* @product highcharts
*/
borderColor?: ColorString;
/**
* The border radius of the rectangle representing the target.
*/
borderRadius?: number;
/**
* The border width of the rectangle representing the target.
*
* In styled mode, use class `highcharts-bullet-target` instead.
*
* @since 6.0.0
*/
borderWidth?: number;
/**
* The color of the rectangle representing the target. When not set,
* point's color (if set in point's options -
* [`color`](#series.bullet.data.color)) or zone of the target value
* (if [`zones`](#plotOptions.bullet.zones) or
* [`negativeColor`](#plotOptions.bullet.negativeColor) are set)
* or the same color as the point has is used.
*
* In styled mode, use class `highcharts-bullet-target` instead.
*
* @since 6.0.0
*
* @product highcharts
*/
color?: ColorType;
/**
* The height of the rectangle representing the target.
*
* @since 6.0.0
*/
height?: number;
/**
* The width of the rectangle representing the target. Could be set
* as a pixel value or as a percentage of a column width.
*
* @since 6.0.0
*/
width?: (number | string);
}
export default BulletSeriesOptions;