73 lines
1.7 KiB
JavaScript
73 lines
1.7 KiB
JavaScript
/* *
|
|
*
|
|
* (c) 2010-2024 Hubert Kozik
|
|
*
|
|
* License: www.highcharts.com/license
|
|
*
|
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
*
|
|
* */
|
|
'use strict';
|
|
import H from '../Core/Globals.js';
|
|
const { doc } = H;
|
|
import U from '../Core/Utilities.js';
|
|
const { defined, pick } = U;
|
|
/* *
|
|
*
|
|
* Functions
|
|
*
|
|
* */
|
|
/**
|
|
* Find color of point based on color axis.
|
|
*
|
|
* @function Highcharts.colorFromPoint
|
|
*
|
|
* @param {number | null} value
|
|
* Value to find corresponding color on the color axis.
|
|
*
|
|
* @param {Highcharts.Point} point
|
|
* Point to find it's color from color axis.
|
|
*
|
|
* @return {number[]}
|
|
* Color in RGBa array.
|
|
*/
|
|
function colorFromPoint(value, point) {
|
|
const colorAxis = point.series.colorAxis;
|
|
if (colorAxis) {
|
|
const rgba = (colorAxis.toColor(value || 0, point)
|
|
.split(')')[0]
|
|
.split('(')[1]
|
|
.split(',')
|
|
.map((s) => pick(parseFloat(s), parseInt(s, 10))));
|
|
rgba[3] = pick(rgba[3], 1.0) * 255;
|
|
if (!defined(value) || !point.visible) {
|
|
rgba[3] = 0;
|
|
}
|
|
return rgba;
|
|
}
|
|
return [0, 0, 0, 0];
|
|
}
|
|
/**
|
|
* Method responsible for creating a canvas for interpolation image.
|
|
* @private
|
|
*/
|
|
function getContext(series) {
|
|
const { canvas, context } = series;
|
|
if (canvas && context) {
|
|
context.clearRect(0, 0, canvas.width, canvas.height);
|
|
}
|
|
else {
|
|
series.canvas = doc.createElement('canvas');
|
|
series.context = series.canvas.getContext('2d', {
|
|
willReadFrequently: true
|
|
}) || void 0;
|
|
return series.context;
|
|
}
|
|
return context;
|
|
}
|
|
const InterpolationUtilities = {
|
|
colorFromPoint,
|
|
getContext
|
|
};
|
|
export default InterpolationUtilities;
|