/* *
|
*
|
* (c) 2010-2019 Torstein Honsi
|
*
|
* License: www.highcharts.com/license
|
*
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
*
|
* */
|
'use strict';
|
|
var _Globals = require('../parts/Globals.js');
|
|
var _Globals2 = _interopRequireDefault(_Globals);
|
|
var _Utilities = require('../parts/Utilities.js');
|
|
var _Utilities2 = _interopRequireDefault(_Utilities);
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
var defined = _Utilities2.default.defined;
|
var noop = _Globals2.default.noop,
|
seriesTypes = _Globals2.default.seriesTypes;
|
/**
|
* Mixin for maps and heatmaps
|
*
|
* @private
|
* @mixin Highcharts.colorPointMixin
|
*/
|
_Globals2.default.colorPointMixin = {
|
dataLabelOnNull: true,
|
/* eslint-disable valid-jsdoc */
|
/**
|
* Color points have a value option that determines whether or not it is
|
* a null point
|
* @private
|
* @function Highcharts.colorPointMixin.isValid
|
* @return {boolean}
|
*/
|
isValid: function isValid() {
|
// undefined is allowed
|
return this.value !== null && this.value !== Infinity && this.value !== -Infinity;
|
},
|
/**
|
* Set the visibility of a single point
|
* @private
|
* @function Highcharts.colorPointMixin.setVisible
|
* @param {boolean} visible
|
* @return {void}
|
*/
|
setVisible: function setVisible(vis) {
|
var point = this,
|
method = vis ? 'show' : 'hide';
|
point.visible = Boolean(vis);
|
// Show and hide associated elements
|
['graphic', 'dataLabel'].forEach(function (key) {
|
if (point[key]) {
|
point[key][method]();
|
}
|
});
|
},
|
/**
|
* @private
|
* @function Highcharts.colorPointMixin.setState
|
* @param {string} [state]
|
* @return {void}
|
*/
|
setState: function setState(state) {
|
_Globals2.default.Point.prototype.setState.call(this, state);
|
if (this.graphic) {
|
this.graphic.attr({
|
zIndex: state === 'hover' ? 1 : 0
|
});
|
}
|
}
|
/* eslint-enable valid-jsdoc */
|
};
|
/**
|
* @private
|
* @mixin Highcharts.colorSeriesMixin
|
*/
|
_Globals2.default.colorSeriesMixin = {
|
pointArrayMap: ['value'],
|
axisTypes: ['xAxis', 'yAxis', 'colorAxis'],
|
optionalAxis: 'colorAxis',
|
trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],
|
getSymbol: noop,
|
parallelArrays: ['x', 'y', 'value'],
|
colorKey: 'value',
|
pointAttribs: seriesTypes.column.prototype.pointAttribs,
|
/* eslint-disable valid-jsdoc */
|
/**
|
* In choropleth maps, the color is a result of the value, so this needs
|
* translation too
|
* @private
|
* @function Highcharts.colorSeriesMixin.translateColors
|
* @return {void}
|
*/
|
translateColors: function translateColors() {
|
var series = this,
|
nullColor = this.options.nullColor,
|
colorAxis = this.colorAxis,
|
colorKey = this.colorKey;
|
this.data.forEach(function (point) {
|
var value = point[colorKey],
|
color;
|
color = point.options.color || (point.isNull ? nullColor : colorAxis && value !== undefined ? colorAxis.toColor(value, point) : point.color || series.color);
|
if (color) {
|
point.color = color;
|
}
|
});
|
},
|
/**
|
* Get the color attibutes to apply on the graphic
|
* @private
|
* @function Highcharts.colorSeriesMixin.colorAttribs
|
* @param {Highcharts.Point} point
|
* @return {Highcharts.SVGAttributes}
|
*/
|
colorAttribs: function colorAttribs(point) {
|
var ret = {};
|
if (defined(point.color)) {
|
ret[this.colorProp || 'fill'] = point.color;
|
}
|
return ret;
|
}
|
/* eslint-enable valid-jsdoc */
|
};
|