/* * * * (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 */ };