| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- /* *
- *
- * (c) 2010-2021 Torstein Honsi
- *
- * License: www.highcharts.com/license
- *
- * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
- *
- * */
- 'use strict';
- var __extends = (this && this.__extends) || (function () {
- var extendStatics = function (d, b) {
- extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return extendStatics(d, b);
- };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
- })();
- import ColorMapMixin from '../../Mixins/ColorMapSeries.js';
- var colorMapPointMixin = ColorMapMixin.colorMapPointMixin;
- import SeriesRegistry from '../../Core/Series/SeriesRegistry.js';
- var ScatterPoint = SeriesRegistry.seriesTypes.scatter.prototype.pointClass;
- import U from '../../Core/Utilities.js';
- var clamp = U.clamp, extend = U.extend, pick = U.pick;
- /* *
- *
- * Class
- *
- * */
- var HeatmapPoint = /** @class */ (function (_super) {
- __extends(HeatmapPoint, _super);
- function HeatmapPoint() {
- /* *
- *
- * Properties
- *
- * */
- var _this = _super !== null && _super.apply(this, arguments) || this;
- _this.options = void 0;
- _this.series = void 0;
- _this.value = void 0;
- _this.x = void 0;
- _this.y = void 0;
- return _this;
- /* eslint-enable valid-jsdoc */
- }
- /* *
- *
- * Functions
- *
- * */
- /* eslint-disable valid-jsdoc */
- /**
- * @private
- */
- HeatmapPoint.prototype.applyOptions = function (options, x) {
- var point = _super.prototype.applyOptions.call(this, options, x);
- point.formatPrefix = point.isNull || point.value === null ? 'null' : 'point';
- return point;
- };
- HeatmapPoint.prototype.getCellAttributes = function () {
- var point = this, series = point.series, seriesOptions = series.options, xPad = (seriesOptions.colsize || 1) / 2, yPad = (seriesOptions.rowsize || 1) / 2, xAxis = series.xAxis, yAxis = series.yAxis, markerOptions = point.options.marker || series.options.marker, pointPlacement = series.pointPlacementToXValue(), // #7860
- pointPadding = pick(point.pointPadding, seriesOptions.pointPadding, 0), cellAttr = {
- x1: clamp(Math.round(xAxis.len -
- (xAxis.translate(point.x - xPad, false, true, false, true, -pointPlacement) || 0)), -xAxis.len, 2 * xAxis.len),
- x2: clamp(Math.round(xAxis.len -
- (xAxis.translate(point.x + xPad, false, true, false, true, -pointPlacement) || 0)), -xAxis.len, 2 * xAxis.len),
- y1: clamp(Math.round((yAxis.translate(point.y - yPad, false, true, false, true) || 0)), -yAxis.len, 2 * yAxis.len),
- y2: clamp(Math.round((yAxis.translate(point.y + yPad, false, true, false, true) || 0)), -yAxis.len, 2 * yAxis.len)
- };
- // Handle marker's fixed width, and height values including border
- // and pointPadding while calculating cell attributes.
- [['width', 'x'], ['height', 'y']].forEach(function (dimension) {
- var prop = dimension[0], direction = dimension[1];
- var start = direction + '1', end = direction + '2';
- var side = Math.abs(cellAttr[start] - cellAttr[end]), borderWidth = markerOptions &&
- markerOptions.lineWidth || 0, plotPos = Math.abs(cellAttr[start] + cellAttr[end]) / 2;
- if (markerOptions[prop] &&
- markerOptions[prop] < side) {
- cellAttr[start] = plotPos - (markerOptions[prop] / 2) -
- (borderWidth / 2);
- cellAttr[end] = plotPos + (markerOptions[prop] / 2) +
- (borderWidth / 2);
- }
- // Handle pointPadding
- if (pointPadding) {
- if (direction === 'y') {
- start = end;
- end = direction + '1';
- }
- cellAttr[start] += pointPadding;
- cellAttr[end] -= pointPadding;
- }
- });
- return cellAttr;
- };
- /**
- * @private
- */
- HeatmapPoint.prototype.haloPath = function (size) {
- if (!size) {
- return [];
- }
- var rect = this.shapeArgs;
- return [
- 'M',
- rect.x - size,
- rect.y - size,
- 'L',
- rect.x - size,
- rect.y + rect.height + size,
- rect.x + rect.width + size,
- rect.y + rect.height + size,
- rect.x + rect.width + size,
- rect.y - size,
- 'Z'
- ];
- };
- /**
- * Color points have a value option that determines whether or not it is
- * a null point
- * @private
- */
- HeatmapPoint.prototype.isValid = function () {
- // undefined is allowed
- return (this.value !== Infinity &&
- this.value !== -Infinity);
- };
- return HeatmapPoint;
- }(ScatterPoint));
- extend(HeatmapPoint.prototype, {
- dataLabelOnNull: colorMapPointMixin.dataLabelOnNull,
- setState: colorMapPointMixin.setState
- });
- /* *
- *
- * Default Export
- *
- * */
- export default HeatmapPoint;
|