308 lines
11 KiB
JavaScript
308 lines
11 KiB
JavaScript
|
/**
|
||
|
* @license Highcharts JS v11.4.1 (2024-04-04)
|
||
|
*
|
||
|
* (c) 2009-2024 Sebastian Bochan, Rafal Sebestjanski
|
||
|
*
|
||
|
* License: www.highcharts.com/license
|
||
|
*/
|
||
|
(function (factory) {
|
||
|
if (typeof module === 'object' && module.exports) {
|
||
|
factory['default'] = factory;
|
||
|
module.exports = factory;
|
||
|
} else if (typeof define === 'function' && define.amd) {
|
||
|
define('highcharts/modules/lollipop', ['highcharts'], function (Highcharts) {
|
||
|
factory(Highcharts);
|
||
|
factory.Highcharts = Highcharts;
|
||
|
return factory;
|
||
|
});
|
||
|
} else {
|
||
|
factory(typeof Highcharts !== 'undefined' ? Highcharts : undefined);
|
||
|
}
|
||
|
}(function (Highcharts) {
|
||
|
'use strict';
|
||
|
var _modules = Highcharts ? Highcharts._modules : {};
|
||
|
function _registerModule(obj, path, args, fn) {
|
||
|
if (!obj.hasOwnProperty(path)) {
|
||
|
obj[path] = fn.apply(null, args);
|
||
|
|
||
|
if (typeof CustomEvent === 'function') {
|
||
|
window.dispatchEvent(new CustomEvent(
|
||
|
'HighchartsModuleLoaded',
|
||
|
{ detail: { path: path, module: obj[path] } }
|
||
|
));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
_registerModule(_modules, 'Series/Lollipop/LollipopPoint.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {
|
||
|
/* *
|
||
|
*
|
||
|
* (c) 2010-2024 Torstein Honsi
|
||
|
*
|
||
|
* License: www.highcharts.com/license
|
||
|
*
|
||
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
||
|
*
|
||
|
* */
|
||
|
const { series: { prototype: { pointClass: Point } }, seriesTypes: { scatter: { prototype: { pointClass: ScatterPoint } }, dumbbell: { prototype: { pointClass: DumbbellPoint } } } } = SeriesRegistry;
|
||
|
const { extend } = U;
|
||
|
/* *
|
||
|
*
|
||
|
* Class
|
||
|
*
|
||
|
* */
|
||
|
class LollipopPoint extends Point {
|
||
|
}
|
||
|
extend(LollipopPoint.prototype, {
|
||
|
destroy: DumbbellPoint.prototype.destroy,
|
||
|
pointSetState: ScatterPoint.prototype.setState,
|
||
|
setState: DumbbellPoint.prototype.setState
|
||
|
});
|
||
|
/* *
|
||
|
*
|
||
|
* Default Export
|
||
|
*
|
||
|
* */
|
||
|
|
||
|
return LollipopPoint;
|
||
|
});
|
||
|
_registerModule(_modules, 'Series/Lollipop/LollipopSeries.js', [_modules['Series/Lollipop/LollipopPoint.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Series/Series.js'], _modules['Core/Utilities.js']], function (LollipopPoint, SeriesRegistry, Series, U) {
|
||
|
/* *
|
||
|
*
|
||
|
* (c) 2010-2024 Sebastian Bochan, Rafal Sebestjanski
|
||
|
*
|
||
|
* License: www.highcharts.com/license
|
||
|
*
|
||
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
||
|
*
|
||
|
* */
|
||
|
const { seriesTypes: { column: { prototype: colProto }, dumbbell: { prototype: dumbbellProto },
|
||
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||
|
scatter: ScatterSeries } } = SeriesRegistry;
|
||
|
const { extend, merge } = U;
|
||
|
/* *
|
||
|
*
|
||
|
* Class
|
||
|
*
|
||
|
* */
|
||
|
/**
|
||
|
* Lollipop series type
|
||
|
*
|
||
|
* @private
|
||
|
* @class
|
||
|
* @name Highcharts.seriesTypes.lollipop
|
||
|
*
|
||
|
* @augments Highcharts.Series
|
||
|
*
|
||
|
*/
|
||
|
class LollipopSeries extends Series {
|
||
|
/**
|
||
|
* Extend the series' drawPoints method by applying a connector
|
||
|
* and coloring markers.
|
||
|
* @private
|
||
|
*
|
||
|
* @function Highcharts.Series#drawPoints
|
||
|
*/
|
||
|
drawPoints() {
|
||
|
const series = this, pointLength = series.points.length;
|
||
|
let i = 0, point;
|
||
|
super.drawPoints.apply(series, arguments);
|
||
|
// Draw connectors
|
||
|
while (i < pointLength) {
|
||
|
point = series.points[i];
|
||
|
series.drawConnector(point);
|
||
|
i++;
|
||
|
}
|
||
|
}
|
||
|
/**
|
||
|
* Extend the series' translate method to use grouping option.
|
||
|
* @private
|
||
|
*
|
||
|
* @function Highcharts.Series#translate
|
||
|
*
|
||
|
*/
|
||
|
translate() {
|
||
|
const series = this;
|
||
|
colProto.translate.apply(series, arguments);
|
||
|
// Correct x position
|
||
|
for (const point of series.points) {
|
||
|
const { pointWidth, shapeArgs } = point;
|
||
|
if (shapeArgs?.x) {
|
||
|
shapeArgs.x += pointWidth / 2;
|
||
|
point.plotX = shapeArgs.x || 0;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
/* *
|
||
|
*
|
||
|
* Static Properties
|
||
|
*
|
||
|
* */
|
||
|
/**
|
||
|
* The lollipop series is a carteseian series with a line anchored from
|
||
|
* the x axis and a dot at the end to mark the value.
|
||
|
* Requires `highcharts-more.js`, `modules/dumbbell.js` and
|
||
|
* `modules/lollipop.js`.
|
||
|
*
|
||
|
* @sample {highcharts} highcharts/demo/lollipop/
|
||
|
* Lollipop chart
|
||
|
* @sample {highcharts} highcharts/series-dumbbell/styled-mode-dumbbell/
|
||
|
* Styled mode
|
||
|
*
|
||
|
* @extends plotOptions.dumbbell
|
||
|
* @product highcharts highstock
|
||
|
* @excluding fillColor, fillOpacity, lineWidth, stack, stacking,
|
||
|
* lowColor, stickyTracking, trackByArea
|
||
|
* @since 8.0.0
|
||
|
* @optionparent plotOptions.lollipop
|
||
|
*/
|
||
|
LollipopSeries.defaultOptions = merge(Series.defaultOptions, {
|
||
|
/** @ignore-option */
|
||
|
threshold: 0,
|
||
|
/** @ignore-option */
|
||
|
connectorWidth: 1,
|
||
|
/** @ignore-option */
|
||
|
groupPadding: 0.2,
|
||
|
/**
|
||
|
* Whether to group non-stacked lollipop points or to let them
|
||
|
* render independent of each other. Non-grouped lollipop points
|
||
|
* will be laid out individually and overlap each other.
|
||
|
*
|
||
|
* @sample highcharts/series-lollipop/enabled-grouping/
|
||
|
* Multiple lollipop series with grouping
|
||
|
* @sample highcharts/series-lollipop/disabled-grouping/
|
||
|
* Multiple lollipop series with disabled grouping
|
||
|
*
|
||
|
* @type {boolean}
|
||
|
* @default true
|
||
|
* @since 8.0.0
|
||
|
* @product highcharts highstock
|
||
|
* @apioption plotOptions.lollipop.grouping
|
||
|
*/
|
||
|
/** @ignore-option */
|
||
|
pointPadding: 0.1,
|
||
|
/** @ignore-option */
|
||
|
states: {
|
||
|
hover: {
|
||
|
/** @ignore-option */
|
||
|
lineWidthPlus: 0,
|
||
|
/** @ignore-option */
|
||
|
connectorWidthPlus: 1,
|
||
|
/** @ignore-option */
|
||
|
halo: false
|
||
|
}
|
||
|
},
|
||
|
/** @ignore-option */
|
||
|
lineWidth: 0,
|
||
|
dataLabels: {
|
||
|
align: void 0,
|
||
|
verticalAlign: void 0
|
||
|
},
|
||
|
pointRange: 1
|
||
|
});
|
||
|
extend(LollipopSeries.prototype, {
|
||
|
alignDataLabel: colProto.alignDataLabel,
|
||
|
crispCol: colProto.crispCol,
|
||
|
drawConnector: dumbbellProto.drawConnector,
|
||
|
drawDataLabels: colProto.drawDataLabels,
|
||
|
getColumnMetrics: colProto.getColumnMetrics,
|
||
|
getConnectorAttribs: dumbbellProto.getConnectorAttribs,
|
||
|
pointClass: LollipopPoint
|
||
|
});
|
||
|
SeriesRegistry.registerSeriesType('lollipop', LollipopSeries);
|
||
|
/* *
|
||
|
*
|
||
|
* Default export
|
||
|
*
|
||
|
* */
|
||
|
/**
|
||
|
* The `lollipop` series. If the [type](#series.lollipop.type) option is
|
||
|
* not specified, it is inherited from [chart.type](#chart.type).
|
||
|
*
|
||
|
* @extends series,plotOptions.lollipop
|
||
|
* @excluding boostThreshold, boostBlending
|
||
|
* @product highcharts highstock
|
||
|
* @requires highcharts-more
|
||
|
* @requires modules/dumbbell
|
||
|
* @requires modules/lollipop
|
||
|
* @apioption series.lollipop
|
||
|
*/
|
||
|
/**
|
||
|
* An array of data points for the series. For the `lollipop` series type,
|
||
|
* points can be given in the following ways:
|
||
|
*
|
||
|
* 1. An array of numerical values. In this case, the numerical values will be
|
||
|
* interpreted as `y` options. The `x` values will be automatically
|
||
|
* calculated, either starting at 0 and incremented by 1, or from
|
||
|
* `pointStart` and `pointInterval` given in the series options. If the axis
|
||
|
* has categories, these will be used. Example:
|
||
|
* ```js
|
||
|
* data: [0, 5, 3, 5]
|
||
|
* ```
|
||
|
*
|
||
|
* 2. An array of arrays with 2 values. In this case, the values correspond to
|
||
|
* `x,y`. If the first value is a string, it is applied as the name of the
|
||
|
* point, and the `x` value is inferred.
|
||
|
* ```js
|
||
|
* data: [
|
||
|
* [0, 6],
|
||
|
* [1, 2],
|
||
|
* [2, 6]
|
||
|
* ]
|
||
|
* ```
|
||
|
*
|
||
|
* 3. 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.lollipop.turboThreshold), this option is not
|
||
|
* available.
|
||
|
* ```js
|
||
|
* data: [{
|
||
|
* x: 1,
|
||
|
* y: 9,
|
||
|
* name: "Point2",
|
||
|
* color: "#00FF00",
|
||
|
* connectorWidth: 3,
|
||
|
* connectorColor: "#FF00FF"
|
||
|
* }, {
|
||
|
* x: 1,
|
||
|
* y: 6,
|
||
|
* name: "Point1",
|
||
|
* color: "#FF00FF"
|
||
|
* }]
|
||
|
* ```
|
||
|
*
|
||
|
* @sample {highcharts} highcharts/chart/reflow-true/
|
||
|
* Numerical values
|
||
|
* @sample {highcharts} highcharts/series/data-array-of-arrays/
|
||
|
* Arrays of numeric x and y
|
||
|
* @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/
|
||
|
* Arrays of datetime x and y
|
||
|
* @sample {highcharts} highcharts/series/data-array-of-name-value/
|
||
|
* Arrays of point.name and y
|
||
|
* @sample {highcharts} highcharts/series/data-array-of-objects/
|
||
|
* Config objects
|
||
|
*
|
||
|
* @type {Array<number|Array<(number|string),(number|null)>|null|*>}
|
||
|
* @extends series.dumbbell.data
|
||
|
* @excluding high, low, lowColor
|
||
|
* @product highcharts highstock
|
||
|
* @apioption series.lollipop.data
|
||
|
*/
|
||
|
/**
|
||
|
* The y value of the point.
|
||
|
*
|
||
|
* @type {number|null}
|
||
|
* @product highcharts highstock
|
||
|
* @apioption series.line.data.y
|
||
|
*/
|
||
|
(''); // Adds doclets above to transpiled file
|
||
|
|
||
|
return LollipopSeries;
|
||
|
});
|
||
|
_registerModule(_modules, 'masters/modules/lollipop.src.js', [_modules['Core/Globals.js']], function (Highcharts) {
|
||
|
|
||
|
|
||
|
return Highcharts;
|
||
|
});
|
||
|
}));
|