{"version":3,"sources":[""],"sourcesContent":["/**\n * @license Highmaps JS v11.2.0 (2023-10-30)\n *\n * (c) 2009-2021 Torstein Honsi\n *\n * License: www.highcharts.com/license\n */\n(function (factory) {\n if (typeof module === 'object' && module.exports) {\n factory['default'] = factory;\n module.exports = factory;\n } else if (typeof define === 'function' && define.amd) {\n define('highcharts/modules/heatmap', ['highcharts'], function (Highcharts) {\n factory(Highcharts);\n factory.Highcharts = Highcharts;\n return factory;\n });\n } else {\n factory(typeof Highcharts !== 'undefined' ? Highcharts : undefined);\n }\n}(function (Highcharts) {\n 'use strict';\n var _modules = Highcharts ? Highcharts._modules : {};\n function _registerModule(obj, path, args, fn) {\n if (!obj.hasOwnProperty(path)) {\n obj[path] = fn.apply(null, args);\n\n if (typeof CustomEvent === 'function') {\n window.dispatchEvent(new CustomEvent(\n 'HighchartsModuleLoaded',\n { detail: { path: path, module: obj[path] } }\n ));\n }\n }\n }\n _registerModule(_modules, 'Core/Axis/Color/ColorAxisComposition.js', [_modules['Core/Color/Color.js'], _modules['Core/Utilities.js']], function (Color, U) {\n /* *\n *\n * (c) 2010-2021 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n const { parse: color } = Color;\n const { addEvent, extend, merge, pick, splat } = U;\n /* *\n *\n * Composition\n *\n * */\n var ColorAxisComposition;\n (function (ColorAxisComposition) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Constants\n *\n * */\n const composedMembers = [];\n /* *\n *\n * Variables\n *\n * */\n let ColorAxisConstructor;\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * @private\n */\n function compose(ColorAxisClass, ChartClass, FxClass, LegendClass, SeriesClass) {\n if (!ColorAxisConstructor) {\n ColorAxisConstructor = ColorAxisClass;\n }\n if (U.pushUnique(composedMembers, ChartClass)) {\n const chartProto = ChartClass.prototype;\n chartProto.collectionsWithUpdate.push('colorAxis');\n chartProto.collectionsWithInit.colorAxis = [\n chartProto.addColorAxis\n ];\n addEvent(ChartClass, 'afterGetAxes', onChartAfterGetAxes);\n wrapChartCreateAxis(ChartClass);\n }\n if (U.pushUnique(composedMembers, FxClass)) {\n const fxProto = FxClass.prototype;\n fxProto.fillSetter = wrapFxFillSetter;\n fxProto.strokeSetter = wrapFxStrokeSetter;\n }\n if (U.pushUnique(composedMembers, LegendClass)) {\n addEvent(LegendClass, 'afterGetAllItems', onLegendAfterGetAllItems);\n addEvent(LegendClass, 'afterColorizeItem', onLegendAfterColorizeItem);\n addEvent(LegendClass, 'afterUpdate', onLegendAfterUpdate);\n }\n if (U.pushUnique(composedMembers, SeriesClass)) {\n extend(SeriesClass.prototype, {\n optionalAxis: 'colorAxis',\n translateColors: seriesTranslateColors\n });\n extend(SeriesClass.prototype.pointClass.prototype, {\n setVisible: pointSetVisible\n });\n addEvent(SeriesClass, 'afterTranslate', onSeriesAfterTranslate, { order: 1 });\n addEvent(SeriesClass, 'bindAxes', onSeriesBindAxes);\n }\n }\n ColorAxisComposition.compose = compose;\n /**\n * Extend the chart getAxes method to also get the color axis.\n * @private\n */\n function onChartAfterGetAxes() {\n const options = this.options;\n this.colorAxis = [];\n if (options.colorAxis) {\n options.colorAxis = splat(options.colorAxis);\n options.colorAxis.map((axisOptions) => (new ColorAxisConstructor(this, axisOptions)));\n }\n }\n /**\n * Add the color axis. This also removes the axis' own series to prevent\n * them from showing up individually.\n * @private\n */\n function onLegendAfterGetAllItems(e) {\n const colorAxes = this.chart.colorAxis || [], destroyItem = (item) => {\n const i = e.allItems.indexOf(item);\n if (i !== -1) {\n // #15436\n this.destroyItem(e.allItems[i]);\n e.allItems.splice(i, 1);\n }\n };\n let colorAxisItems = [], options, i;\n colorAxes.forEach(function (colorAxis) {\n options = colorAxis.options;\n if (options && options.showInLegend) {\n // Data classes\n if (options.dataClasses && options.visible) {\n colorAxisItems = colorAxisItems.concat(colorAxis.getDataClassLegendSymbols());\n // Gradient legend\n }\n else if (options.visible) {\n // Add this axis on top\n colorAxisItems.push(colorAxis);\n }\n // If dataClasses are defined or showInLegend option is not set\n // to true, do not add color axis' series to legend.\n colorAxis.series.forEach(function (series) {\n if (!series.options.showInLegend || options.dataClasses) {\n if (series.options.legendType === 'point') {\n series.points.forEach(function (point) {\n destroyItem(point);\n });\n }\n else {\n destroyItem(series);\n }\n }\n });\n }\n });\n i = colorAxisItems.length;\n while (i--) {\n e.allItems.unshift(colorAxisItems[i]);\n }\n }\n /**\n * @private\n */\n function onLegendAfterColorizeItem(e) {\n if (e.visible && e.item.legendColor) {\n e.item.legendItem.symbol.attr({\n fill: e.item.legendColor\n });\n }\n }\n /**\n * Updates in the legend need to be reflected in the color axis. (#6888)\n * @private\n */\n function onLegendAfterUpdate(e) {\n this.chart.colorAxis?.forEach((colorAxis) => {\n colorAxis.update({}, e.redraw);\n });\n }\n /**\n * Calculate and set colors for points.\n * @private\n */\n function onSeriesAfterTranslate() {\n if (this.chart.colorAxis &&\n this.chart.colorAxis.length ||\n this.colorAttribs) {\n this.translateColors();\n }\n }\n /**\n * Add colorAxis to series axisTypes.\n * @private\n */\n function onSeriesBindAxes() {\n const axisTypes = this.axisTypes;\n if (!axisTypes) {\n this.axisTypes = ['colorAxis'];\n }\n else if (axisTypes.indexOf('colorAxis') === -1) {\n axisTypes.push('colorAxis');\n }\n }\n /**\n * Set the visibility of a single point\n * @private\n * @function Highcharts.colorPointMixin.setVisible\n * @param {boolean} visible\n */\n function pointSetVisible(vis) {\n const point = this, method = vis ? 'show' : 'hide';\n point.visible = point.options.visible = Boolean(vis);\n // Show and hide associated elements\n ['graphic', 'dataLabel'].forEach(function (key) {\n if (point[key]) {\n point[key][method]();\n }\n });\n this.series.buildKDTree(); // rebuild kdtree #13195\n }\n ColorAxisComposition.pointSetVisible = pointSetVisible;\n /**\n * In choropleth maps, the color is a result of the value, so this needs\n * translation too\n * @private\n * @function Highcharts.colorSeriesMixin.translateColors\n */\n function seriesTranslateColors() {\n const series = this, points = this.data.length ? this.data : this.points, nullColor = this.options.nullColor, colorAxis = this.colorAxis, colorKey = this.colorKey;\n points.forEach((point) => {\n const value = point.getNestedProperty(colorKey), color = point.options.color || (point.isNull || point.value === null ?\n nullColor :\n (colorAxis && typeof value !== 'undefined') ?\n colorAxis.toColor(value, point) :\n point.color || series.color);\n if (color && point.color !== color) {\n point.color = color;\n if (series.options.legendType === 'point' &&\n point.legendItem &&\n point.legendItem.label) {\n series.chart.legend.colorizeItem(point, point.visible);\n }\n }\n });\n }\n /**\n * @private\n */\n function wrapChartCreateAxis(ChartClass) {\n const superCreateAxis = ChartClass.prototype.createAxis;\n ChartClass.prototype.createAxis = function (type, options) {\n const chart = this;\n if (type !== 'colorAxis') {\n return superCreateAxis.apply(chart, arguments);\n }\n const axis = new ColorAxisConstructor(chart, merge(options.axis, {\n index: chart[type].length,\n isX: false\n }));\n chart.isDirtyLegend = true;\n // Clear before 'bindAxes' (#11924)\n chart.axes.forEach((axis) => {\n axis.series = [];\n });\n chart.series.forEach((series) => {\n series.bindAxes();\n series.isDirtyData = true;\n });\n if (pick(options.redraw, true)) {\n chart.redraw(options.animation);\n }\n return axis;\n };\n }\n /**\n * Handle animation of the color attributes directly.\n * @private\n */\n function wrapFxFillSetter() {\n this.elem.attr('fill', color(this.start).tweenTo(color(this.end), this.pos), void 0, true);\n }\n /**\n * Handle animation of the color attributes directly.\n * @private\n */\n function wrapFxStrokeSetter() {\n this.elem.attr('stroke', color(this.start).tweenTo(color(this.end), this.pos), void 0, true);\n }\n })(ColorAxisComposition || (ColorAxisComposition = {}));\n /* *\n *\n * Default Export\n *\n * */\n\n return ColorAxisComposition;\n });\n _registerModule(_modules, 'Core/Axis/Color/ColorAxisDefaults.js', [], function () {\n /* *\n *\n * (c) 2010-2021 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n /* *\n *\n * API Options\n *\n * */\n /**\n * A color axis for series. Visually, the color\n * axis will appear as a gradient or as separate items inside the\n * legend, depending on whether the axis is scalar or based on data\n * classes.\n *\n * For supported color formats, see the\n * [docs article about colors](https://www.highcharts.com/docs/chart-design-and-style/colors).\n *\n * A scalar color axis is represented by a gradient. The colors either\n * range between the [minColor](#colorAxis.minColor) and the\n * [maxColor](#colorAxis.maxColor), or for more fine grained control the\n * colors can be defined in [stops](#colorAxis.stops). Often times, the\n * color axis needs to be adjusted to get the right color spread for the\n * data. In addition to stops, consider using a logarithmic\n * [axis type](#colorAxis.type), or setting [min](#colorAxis.min) and\n * [max](#colorAxis.max) to avoid the colors being determined by\n * outliers.\n *\n * When [dataClasses](#colorAxis.dataClasses) are used, the ranges are\n * subdivided into separate classes like categories based on their\n * values. This can be used for ranges between two values, but also for\n * a true category. However, when your data is categorized, it may be as\n * convenient to add each category to a separate series.\n *\n * Color axis does not work with: `sankey`, `sunburst`, `dependencywheel`,\n * `networkgraph`, `wordcloud`, `venn`, `gauge` and `solidgauge` series\n * types.\n *\n * Since v7.2.0 `colorAxis` can also be an array of options objects.\n *\n * See [the Axis object](/class-reference/Highcharts.Axis) for\n * programmatic access to the axis.\n *\n * @sample {highcharts} highcharts/coloraxis/custom-color-key\n * Column chart with color axis\n * @sample {highcharts} highcharts/coloraxis/horizontal-layout\n * Horizontal layout\n * @sample {highmaps} maps/coloraxis/dataclasscolor\n * With data classes\n * @sample {highmaps} maps/coloraxis/mincolor-maxcolor\n * Min color and max color\n *\n * @extends xAxis\n * @excluding alignTicks, allowDecimals, alternateGridColor, breaks,\n * categories, crosshair, dateTimeLabelFormats, height, left,\n * lineWidth, linkedTo, maxZoom, minRange, minTickInterval,\n * offset, opposite, pane, plotBands, plotLines,\n * reversedStacks, scrollbar, showEmpty, title, top, width,\n * zoomEnabled\n * @product highcharts highstock highmaps\n * @type {*|Array<*>}\n * @optionparent colorAxis\n */\n const colorAxisDefaults = {\n /**\n * Whether to allow decimals on the color axis.\n * @type {boolean}\n * @default true\n * @product highcharts highstock highmaps\n * @apioption colorAxis.allowDecimals\n */\n /**\n * Determines how to set each data class' color if no individual\n * color is set. The default value, `tween`, computes intermediate\n * colors between `minColor` and `maxColor`. The other possible\n * value, `category`, pulls colors from the global or chart specific\n * [colors](#colors) array.\n *\n * @sample {highmaps} maps/coloraxis/dataclasscolor/\n * Category colors\n *\n * @type {string}\n * @default tween\n * @product highcharts highstock highmaps\n * @validvalue [\"tween\", \"category\"]\n * @apioption colorAxis.dataClassColor\n */\n /**\n * An array of data classes or ranges for the choropleth map. If\n * none given, the color axis is scalar and values are distributed\n * as a gradient between the minimum and maximum colors.\n *\n * @sample {highmaps} maps/demo/data-class-ranges/\n * Multiple ranges\n *\n * @sample {highmaps} maps/demo/data-class-two-ranges/\n * Two ranges\n *\n * @type {Array<*>}\n * @product highcharts highstock highmaps\n * @apioption colorAxis.dataClasses\n */\n /**\n * The layout of the color axis. Can be `'horizontal'` or `'vertical'`.\n * If none given, the color axis has the same layout as the legend.\n *\n * @sample highcharts/coloraxis/horizontal-layout/\n * Horizontal color axis layout with vertical legend\n *\n * @type {string|undefined}\n * @since 7.2.0\n * @product highcharts highstock highmaps\n * @apioption colorAxis.layout\n */\n /**\n * The color of each data class. If not set, the color is pulled\n * from the global or chart-specific [colors](#colors) array. In\n * styled mode, this option is ignored. Instead, use colors defined\n * in CSS.\n *\n * @sample {highmaps} maps/demo/data-class-two-ranges/\n * Explicit colors\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @product highcharts highstock highmaps\n * @apioption colorAxis.dataClasses.color\n */\n /**\n * The start of the value range that the data class represents,\n * relating to the point value.\n *\n * The range of each `dataClass` is closed in both ends, but can be\n * overridden by the next `dataClass`.\n *\n * @type {number}\n * @product highcharts highstock highmaps\n * @apioption colorAxis.dataClasses.from\n */\n /**\n * The name of the data class as it appears in the legend.\n * If no name is given, it is automatically created based on the\n * `from` and `to` values. For full programmatic control,\n * [legend.labelFormatter](#legend.labelFormatter) can be used.\n * In the formatter, `this.from` and `this.to` can be accessed.\n *\n * @sample {highmaps} maps/coloraxis/dataclasses-name/\n * Named data classes\n *\n * @sample {highmaps} maps/coloraxis/dataclasses-labelformatter/\n * Formatted data classes\n *\n * @type {string}\n * @product highcharts highstock highmaps\n * @apioption colorAxis.dataClasses.name\n */\n /**\n * The end of the value range that the data class represents,\n * relating to the point value.\n *\n * The range of each `dataClass` is closed in both ends, but can be\n * overridden by the next `dataClass`.\n *\n * @type {number}\n * @product highcharts highstock highmaps\n * @apioption colorAxis.dataClasses.to\n */\n /** @ignore-option */\n lineWidth: 0,\n /**\n * Padding of the min value relative to the length of the axis. A\n * padding of 0.05 will make a 100px axis 5px longer.\n *\n * @product highcharts highstock highmaps\n */\n minPadding: 0,\n /**\n * The maximum value of the axis in terms of map point values. If\n * `null`, the max value is automatically calculated. If the\n * `endOnTick` option is true, the max value might be rounded up.\n *\n * @sample {highmaps} maps/coloraxis/gridlines/\n * Explicit min and max to reduce the effect of outliers\n *\n * @type {number}\n * @product highcharts highstock highmaps\n * @apioption colorAxis.max\n */\n /**\n * The minimum value of the axis in terms of map point values. If\n * `null`, the min value is automatically calculated. If the\n * `startOnTick` option is true, the min value might be rounded\n * down.\n *\n * @sample {highmaps} maps/coloraxis/gridlines/\n * Explicit min and max to reduce the effect of outliers\n *\n * @type {number}\n * @product highcharts highstock highmaps\n * @apioption colorAxis.min\n */\n /**\n * Padding of the max value relative to the length of the axis. A\n * padding of 0.05 will make a 100px axis 5px longer.\n *\n * @product highcharts highstock highmaps\n */\n maxPadding: 0,\n /**\n * Color of the grid lines extending from the axis across the\n * gradient.\n *\n * @sample {highmaps} maps/coloraxis/gridlines/\n * Grid lines demonstrated\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @product highcharts highstock highmaps\n */\n gridLineColor: \"#ffffff\" /* Palette.backgroundColor */,\n /**\n * The width of the grid lines extending from the axis across the\n * gradient of a scalar color axis.\n *\n * @sample {highmaps} maps/coloraxis/gridlines/\n * Grid lines demonstrated\n *\n * @product highcharts highstock highmaps\n */\n gridLineWidth: 1,\n /**\n * The interval of the tick marks in axis units. When `null`, the\n * tick interval is computed to approximately follow the\n * `tickPixelInterval`.\n *\n * @type {number}\n * @product highcharts highstock highmaps\n * @apioption colorAxis.tickInterval\n */\n /**\n * If [tickInterval](#colorAxis.tickInterval) is `null` this option\n * sets the approximate pixel interval of the tick marks.\n *\n * @product highcharts highstock highmaps\n */\n tickPixelInterval: 72,\n /**\n * Whether to force the axis to start on a tick. Use this option\n * with the `maxPadding` option to control the axis start.\n *\n * @product highcharts highstock highmaps\n */\n startOnTick: true,\n /**\n * Whether to force the axis to end on a tick. Use this option with\n * the [maxPadding](#colorAxis.maxPadding) option to control the\n * axis end.\n *\n * @product highcharts highstock highmaps\n */\n endOnTick: true,\n /** @ignore */\n offset: 0,\n /**\n * The triangular marker on a scalar color axis that points to the\n * value of the hovered area. To disable the marker, set\n * `marker: null`.\n *\n * @sample {highmaps} maps/coloraxis/marker/\n * Black marker\n *\n * @declare Highcharts.PointMarkerOptionsObject\n * @product highcharts highstock highmaps\n */\n marker: {\n /**\n * Animation for the marker as it moves between values. Set to\n * `false` to disable animation. Defaults to `{ duration: 50 }`.\n *\n * @type {boolean|Partial}\n * @product highcharts highstock highmaps\n */\n animation: {\n /** @internal */\n duration: 50\n },\n /** @internal */\n width: 0.01,\n /**\n * The color of the marker.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @product highcharts highstock highmaps\n */\n color: \"#999999\" /* Palette.neutralColor40 */\n },\n /**\n * The axis labels show the number for each tick.\n *\n * For more live examples on label options, see [xAxis.labels in the\n * Highcharts API.](/highcharts#xAxis.labels)\n *\n * @extends xAxis.labels\n * @product highcharts highstock highmaps\n */\n labels: {\n distance: 8,\n /**\n * How to handle overflowing labels on horizontal color axis. If set\n * to `\"allow\"`, it will not be aligned at all. By default it\n * `\"justify\"` labels inside the chart area. If there is room to\n * move it, it will be aligned to the edge, else it will be removed.\n *\n * @validvalue [\"allow\", \"justify\"]\n * @product highcharts highstock highmaps\n */\n overflow: 'justify',\n rotation: 0\n },\n /**\n * The color to represent the minimum of the color axis. Unless\n * [dataClasses](#colorAxis.dataClasses) or\n * [stops](#colorAxis.stops) are set, the gradient starts at this\n * value.\n *\n * If dataClasses are set, the color is based on minColor and\n * maxColor unless a color is set for each data class, or the\n * [dataClassColor](#colorAxis.dataClassColor) is set.\n *\n * @sample {highmaps} maps/coloraxis/mincolor-maxcolor/\n * Min and max colors on scalar (gradient) axis\n * @sample {highmaps} maps/coloraxis/mincolor-maxcolor-dataclasses/\n * On data classes\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @product highcharts highstock highmaps\n */\n minColor: \"#e6e9ff\" /* Palette.highlightColor10 */,\n /**\n * The color to represent the maximum of the color axis. Unless\n * [dataClasses](#colorAxis.dataClasses) or\n * [stops](#colorAxis.stops) are set, the gradient ends at this\n * value.\n *\n * If dataClasses are set, the color is based on minColor and\n * maxColor unless a color is set for each data class, or the\n * [dataClassColor](#colorAxis.dataClassColor) is set.\n *\n * @sample {highmaps} maps/coloraxis/mincolor-maxcolor/\n * Min and max colors on scalar (gradient) axis\n * @sample {highmaps} maps/coloraxis/mincolor-maxcolor-dataclasses/\n * On data classes\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @product highcharts highstock highmaps\n */\n maxColor: \"#0022ff\" /* Palette.highlightColor100 */,\n /**\n * Color stops for the gradient of a scalar color axis. Use this in\n * cases where a linear gradient between a `minColor` and `maxColor`\n * is not sufficient. The stops is an array of tuples, where the\n * first item is a float between 0 and 1 assigning the relative\n * position in the gradient, and the second item is the color.\n *\n * @sample highcharts/coloraxis/coloraxis-stops/\n * Color axis stops\n * @sample highcharts/coloraxis/color-key-with-stops/\n * Color axis stops with custom colorKey\n * @sample {highmaps} maps/demo/heatmap/\n * Heatmap with three color stops\n *\n * @type {Array>}\n * @product highcharts highstock highmaps\n * @apioption colorAxis.stops\n */\n /**\n * The pixel length of the main tick marks on the color axis.\n */\n tickLength: 5,\n /**\n * The type of interpolation to use for the color axis. Can be\n * `linear` or `logarithmic`.\n *\n * @sample highcharts/coloraxis/logarithmic-with-emulate-negative-values/\n * Logarithmic color axis with extension to emulate negative\n * values\n *\n * @type {Highcharts.ColorAxisTypeValue}\n * @default linear\n * @product highcharts highstock highmaps\n * @apioption colorAxis.type\n */\n /**\n * Whether to reverse the axis so that the highest number is closest\n * to the origin. Defaults to `false` in a horizontal legend and\n * `true` in a vertical legend, where the smallest value starts on\n * top.\n *\n * @type {boolean}\n * @product highcharts highstock highmaps\n * @apioption colorAxis.reversed\n */\n /**\n * @product highcharts highstock highmaps\n * @excluding afterBreaks, pointBreak, pointInBreak\n * @apioption colorAxis.events\n */\n /**\n * Fires when the legend item belonging to the colorAxis is clicked.\n * One parameter, `event`, is passed to the function.\n *\n * @type {Function}\n * @product highcharts highstock highmaps\n * @apioption colorAxis.events.legendItemClick\n */\n /**\n * Whether to display the colorAxis in the legend.\n *\n * @sample highcharts/coloraxis/hidden-coloraxis-with-3d-chart/\n * Hidden color axis with 3d chart\n *\n * @see [heatmap.showInLegend](#series.heatmap.showInLegend)\n *\n * @since 4.2.7\n * @product highcharts highstock highmaps\n */\n showInLegend: true\n };\n /* *\n *\n * Default Export\n *\n * */\n\n return colorAxisDefaults;\n });\n _registerModule(_modules, 'Core/Axis/Color/ColorAxisLike.js', [_modules['Core/Color/Color.js'], _modules['Core/Utilities.js']], function (Color, U) {\n /* *\n *\n * (c) 2010-2021 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n const { parse: color } = Color;\n const { merge } = U;\n /* *\n *\n * Namespace\n *\n * */\n var ColorAxisLike;\n (function (ColorAxisLike) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Functions\n *\n * */\n /**\n * Initialize defined data classes.\n * @private\n */\n function initDataClasses(userOptions) {\n const axis = this, chart = axis.chart, legendItem = axis.legendItem = axis.legendItem || {}, options = axis.options, userDataClasses = userOptions.dataClasses || [];\n let dataClass, dataClasses, colorCount = chart.options.chart.colorCount, colorCounter = 0, colors;\n axis.dataClasses = dataClasses = [];\n legendItem.labels = [];\n for (let i = 0, iEnd = userDataClasses.length; i < iEnd; ++i) {\n dataClass = userDataClasses[i];\n dataClass = merge(dataClass);\n dataClasses.push(dataClass);\n if (!chart.styledMode && dataClass.color) {\n continue;\n }\n if (options.dataClassColor === 'category') {\n if (!chart.styledMode) {\n colors = chart.options.colors || [];\n colorCount = colors.length;\n dataClass.color = colors[colorCounter];\n }\n dataClass.colorIndex = colorCounter;\n // Loop back to zero\n colorCounter++;\n if (colorCounter === colorCount) {\n colorCounter = 0;\n }\n }\n else {\n dataClass.color = color(options.minColor).tweenTo(color(options.maxColor), iEnd < 2 ? 0.5 : i / (iEnd - 1) // #3219\n );\n }\n }\n }\n ColorAxisLike.initDataClasses = initDataClasses;\n /**\n * Create initial color stops.\n * @private\n */\n function initStops() {\n const axis = this, options = axis.options, stops = axis.stops = options.stops || [\n [0, options.minColor || ''],\n [1, options.maxColor || '']\n ];\n for (let i = 0, iEnd = stops.length; i < iEnd; ++i) {\n stops[i].color = color(stops[i][1]);\n }\n }\n ColorAxisLike.initStops = initStops;\n /**\n * Normalize logarithmic values.\n * @private\n */\n function normalizedValue(value) {\n const axis = this, max = axis.max || 0, min = axis.min || 0;\n if (axis.logarithmic) {\n value = axis.logarithmic.log2lin(value);\n }\n return 1 - ((max - value) /\n ((max - min) || 1));\n }\n ColorAxisLike.normalizedValue = normalizedValue;\n /**\n * Translate from a value to a color.\n * @private\n */\n function toColor(value, point) {\n const axis = this;\n const dataClasses = axis.dataClasses;\n const stops = axis.stops;\n let pos, from, to, color, dataClass, i;\n if (dataClasses) {\n i = dataClasses.length;\n while (i--) {\n dataClass = dataClasses[i];\n from = dataClass.from;\n to = dataClass.to;\n if ((typeof from === 'undefined' || value >= from) &&\n (typeof to === 'undefined' || value <= to)) {\n color = dataClass.color;\n if (point) {\n point.dataClass = i;\n point.colorIndex = dataClass.colorIndex;\n }\n break;\n }\n }\n }\n else {\n pos = axis.normalizedValue(value);\n i = stops.length;\n while (i--) {\n if (pos > stops[i][0]) {\n break;\n }\n }\n from = stops[i] || stops[i + 1];\n to = stops[i + 1] || from;\n // The position within the gradient\n pos = 1 - (to[0] - pos) / ((to[0] - from[0]) || 1);\n color = from.color.tweenTo(to.color, pos);\n }\n return color;\n }\n ColorAxisLike.toColor = toColor;\n })(ColorAxisLike || (ColorAxisLike = {}));\n /* *\n *\n * Default Export\n *\n * */\n\n return ColorAxisLike;\n });\n _registerModule(_modules, 'Core/Axis/Color/ColorAxis.js', [_modules['Core/Axis/Axis.js'], _modules['Core/Axis/Color/ColorAxisComposition.js'], _modules['Core/Axis/Color/ColorAxisDefaults.js'], _modules['Core/Axis/Color/ColorAxisLike.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (Axis, ColorAxisComposition, ColorAxisDefaults, ColorAxisLike, LegendSymbol, SeriesRegistry, U) {\n /* *\n *\n * (c) 2010-2021 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n const { series: Series } = SeriesRegistry;\n const { extend, fireEvent, isArray, isNumber, merge, pick } = U;\n /* *\n *\n * Class\n *\n * */\n /**\n * The ColorAxis object for inclusion in gradient legends.\n *\n * @class\n * @name Highcharts.ColorAxis\n * @augments Highcharts.Axis\n *\n * @param {Highcharts.Chart} chart\n * The related chart of the color axis.\n *\n * @param {Highcharts.ColorAxisOptions} userOptions\n * The color axis options for initialization.\n */\n class ColorAxis extends Axis {\n /* *\n *\n * Static Functions\n *\n * */\n static compose(ChartClass, FxClass, LegendClass, SeriesClass) {\n ColorAxisComposition.compose(ColorAxis, ChartClass, FxClass, LegendClass, SeriesClass);\n }\n /* *\n *\n * Constructors\n *\n * */\n /**\n * @private\n */\n constructor(chart, userOptions) {\n super(chart, userOptions);\n // Prevents unnecessary padding with `hc-more`\n this.beforePadding = false;\n this.chart = void 0;\n this.coll = 'colorAxis';\n this.dataClasses = void 0;\n this.options = void 0;\n this.stops = void 0;\n this.visible = true;\n this.init(chart, userOptions);\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Initializes the color axis.\n *\n * @function Highcharts.ColorAxis#init\n *\n * @param {Highcharts.Chart} chart\n * The related chart of the color axis.\n *\n * @param {Highcharts.ColorAxisOptions} userOptions\n * The color axis options for initialization.\n */\n init(chart, userOptions) {\n const axis = this;\n const legend = chart.options.legend || {}, horiz = userOptions.layout ?\n userOptions.layout !== 'vertical' :\n legend.layout !== 'vertical', visible = userOptions.visible;\n const options = merge(ColorAxis.defaultColorAxisOptions, userOptions, {\n showEmpty: false,\n title: null,\n visible: legend.enabled && visible !== false\n });\n axis.side = userOptions.side || horiz ? 2 : 1;\n axis.reversed = userOptions.reversed || !horiz;\n axis.opposite = !horiz;\n super.init(chart, options, 'colorAxis');\n // Super.init saves the extended user options, now replace it with the\n // originals\n this.userOptions = userOptions;\n if (isArray(chart.userOptions.colorAxis)) {\n chart.userOptions.colorAxis[this.index] = userOptions;\n }\n // Prepare data classes\n if (userOptions.dataClasses) {\n axis.initDataClasses(userOptions);\n }\n axis.initStops();\n // Override original axis properties\n axis.horiz = horiz;\n axis.zoomEnabled = false;\n }\n /**\n * Returns true if the series has points at all.\n *\n * @function Highcharts.ColorAxis#hasData\n *\n * @return {boolean}\n * True, if the series has points, otherwise false.\n */\n hasData() {\n return !!(this.tickPositions || []).length;\n }\n /**\n * Override so that ticks are not added in data class axes (#6914)\n * @private\n */\n setTickPositions() {\n if (!this.dataClasses) {\n return super.setTickPositions();\n }\n }\n /**\n * Extend the setOptions method to process extreme colors and color stops.\n * @private\n */\n setOptions(userOptions) {\n const axis = this;\n super.setOptions(userOptions);\n axis.options.crosshair = axis.options.marker;\n }\n /**\n * @private\n */\n setAxisSize() {\n const axis = this;\n const symbol = axis.legendItem && axis.legendItem.symbol;\n const chart = axis.chart;\n const legendOptions = chart.options.legend || {};\n let x, y, width, height;\n if (symbol) {\n this.left = x = symbol.attr('x');\n this.top = y = symbol.attr('y');\n this.width = width = symbol.attr('width');\n this.height = height = symbol.attr('height');\n this.right = chart.chartWidth - x - width;\n this.bottom = chart.chartHeight - y - height;\n this.len = this.horiz ? width : height;\n this.pos = this.horiz ? x : y;\n }\n else {\n // Fake length for disabled legend to avoid tick issues\n // and such (#5205)\n this.len = (this.horiz ?\n legendOptions.symbolWidth :\n legendOptions.symbolHeight) || ColorAxis.defaultLegendLength;\n }\n }\n /**\n * Override the getOffset method to add the whole axis groups inside the\n * legend.\n * @private\n */\n getOffset() {\n const axis = this;\n const group = axis.legendItem && axis.legendItem.group;\n const sideOffset = axis.chart.axisOffset[axis.side];\n if (group) {\n // Hook for the getOffset method to add groups to this parent\n // group\n axis.axisParent = group;\n // Call the base\n super.getOffset();\n const legend = this.chart.legend;\n // Adds `maxLabelLength` needed for label padding corrections done\n // by `render()` and `getMargins()` (#15551).\n legend.allItems.forEach(function (item) {\n if (item instanceof ColorAxis) {\n item.drawLegendSymbol(legend, item);\n }\n });\n legend.render();\n this.chart.getMargins(true);\n // First time only\n if (!axis.added) {\n axis.added = true;\n axis.labelLeft = 0;\n axis.labelRight = axis.width;\n }\n // Reset it to avoid color axis reserving space\n axis.chart.axisOffset[axis.side] = sideOffset;\n }\n }\n /**\n * Create the color gradient.\n * @private\n */\n setLegendColor() {\n const axis = this;\n const horiz = axis.horiz;\n const reversed = axis.reversed;\n const one = reversed ? 1 : 0;\n const zero = reversed ? 0 : 1;\n const grad = horiz ? [one, 0, zero, 0] : [0, zero, 0, one]; // #3190\n axis.legendColor = {\n linearGradient: {\n x1: grad[0],\n y1: grad[1],\n x2: grad[2],\n y2: grad[3]\n },\n stops: axis.stops\n };\n }\n /**\n * The color axis appears inside the legend and has its own legend symbol.\n * @private\n */\n drawLegendSymbol(legend, item) {\n const axis = this, legendItem = item.legendItem || {}, padding = legend.padding, legendOptions = legend.options, labelOptions = axis.options.labels, itemDistance = pick(legendOptions.itemDistance, 10), horiz = axis.horiz, width = pick(legendOptions.symbolWidth, horiz ? ColorAxis.defaultLegendLength : 12), height = pick(legendOptions.symbolHeight, horiz ? 12 : ColorAxis.defaultLegendLength), labelPadding = pick(\n // @todo: This option is not documented, nor implemented when\n // vertical\n legendOptions.labelPadding, horiz ? 16 : 30);\n this.setLegendColor();\n // Create the gradient\n if (!legendItem.symbol) {\n legendItem.symbol = this.chart.renderer.symbol('roundedRect', 0, legend.baseline - 11, width, height, { r: legendOptions.symbolRadius ?? 3 }).attr({\n zIndex: 1\n }).add(legendItem.group);\n }\n // Set how much space this legend item takes up\n legendItem.labelWidth = (width +\n padding +\n (horiz ?\n itemDistance :\n pick(labelOptions.x, labelOptions.distance) +\n this.maxLabelLength));\n legendItem.labelHeight = height + padding + (horiz ? labelPadding : 0);\n }\n /**\n * Fool the legend.\n * @private\n */\n setState(state) {\n this.series.forEach(function (series) {\n series.setState(state);\n });\n }\n /**\n * @private\n */\n setVisible() {\n }\n /**\n * @private\n */\n getSeriesExtremes() {\n const axis = this;\n const series = axis.series;\n let colorValArray, colorKey, colorValIndex, pointArrayMap, calculatedExtremes, cSeries, i = series.length, yData, j;\n this.dataMin = Infinity;\n this.dataMax = -Infinity;\n while (i--) { // x, y, value, other\n cSeries = series[i];\n colorKey = cSeries.colorKey = pick(cSeries.options.colorKey, cSeries.colorKey, cSeries.pointValKey, cSeries.zoneAxis, 'y');\n pointArrayMap = cSeries.pointArrayMap;\n calculatedExtremes = cSeries[colorKey + 'Min'] &&\n cSeries[colorKey + 'Max'];\n if (cSeries[colorKey + 'Data']) {\n colorValArray = cSeries[colorKey + 'Data'];\n }\n else {\n if (!pointArrayMap) {\n colorValArray = cSeries.yData;\n }\n else {\n colorValArray = [];\n colorValIndex = pointArrayMap.indexOf(colorKey);\n yData = cSeries.yData;\n if (colorValIndex >= 0 && yData) {\n for (j = 0; j < yData.length; j++) {\n colorValArray.push(pick(yData[j][colorValIndex], yData[j]));\n }\n }\n }\n }\n // If color key extremes are already calculated, use them.\n if (calculatedExtremes) {\n cSeries.minColorValue = cSeries[colorKey + 'Min'];\n cSeries.maxColorValue = cSeries[colorKey + 'Max'];\n }\n else {\n const cExtremes = Series.prototype.getExtremes.call(cSeries, colorValArray);\n cSeries.minColorValue = cExtremes.dataMin;\n cSeries.maxColorValue = cExtremes.dataMax;\n }\n if (typeof cSeries.minColorValue !== 'undefined') {\n this.dataMin =\n Math.min(this.dataMin, cSeries.minColorValue);\n this.dataMax =\n Math.max(this.dataMax, cSeries.maxColorValue);\n }\n if (!calculatedExtremes) {\n Series.prototype.applyExtremes.call(cSeries);\n }\n }\n }\n /**\n * Internal function to draw a crosshair.\n *\n * @function Highcharts.ColorAxis#drawCrosshair\n *\n * @param {Highcharts.PointerEventObject} [e]\n * The event arguments from the modified pointer event, extended with\n * `chartX` and `chartY`\n *\n * @param {Highcharts.Point} [point]\n * The Point object if the crosshair snaps to points.\n *\n * @emits Highcharts.ColorAxis#event:afterDrawCrosshair\n * @emits Highcharts.ColorAxis#event:drawCrosshair\n */\n drawCrosshair(e, point) {\n const axis = this, legendItem = axis.legendItem || {}, plotX = point && point.plotX, plotY = point && point.plotY, axisPos = axis.pos, axisLen = axis.len;\n let crossPos;\n if (point) {\n crossPos = axis.toPixels(point.getNestedProperty(point.series.colorKey));\n if (crossPos < axisPos) {\n crossPos = axisPos - 2;\n }\n else if (crossPos > axisPos + axisLen) {\n crossPos = axisPos + axisLen + 2;\n }\n point.plotX = crossPos;\n point.plotY = axis.len - crossPos;\n super.drawCrosshair(e, point);\n point.plotX = plotX;\n point.plotY = plotY;\n if (axis.cross &&\n !axis.cross.addedToColorAxis &&\n legendItem.group) {\n axis.cross\n .addClass('highcharts-coloraxis-marker')\n .add(legendItem.group);\n axis.cross.addedToColorAxis = true;\n if (!axis.chart.styledMode &&\n typeof axis.crosshair === 'object') {\n axis.cross.attr({\n fill: axis.crosshair.color\n });\n }\n }\n }\n }\n /**\n * @private\n */\n getPlotLinePath(options) {\n const axis = this, left = axis.left, pos = options.translatedValue, top = axis.top;\n // crosshairs only\n return isNumber(pos) ? // pos can be 0 (#3969)\n (axis.horiz ? [\n ['M', pos - 4, top - 6],\n ['L', pos + 4, top - 6],\n ['L', pos, top],\n ['Z']\n ] : [\n ['M', left, pos],\n ['L', left - 6, pos + 6],\n ['L', left - 6, pos - 6],\n ['Z']\n ]) :\n super.getPlotLinePath(options);\n }\n /**\n * Updates a color axis instance with a new set of options. The options are\n * merged with the existing options, so only new or altered options need to\n * be specified.\n *\n * @function Highcharts.ColorAxis#update\n *\n * @param {Highcharts.ColorAxisOptions} newOptions\n * The new options that will be merged in with existing options on the color\n * axis.\n *\n * @param {boolean} [redraw]\n * Whether to redraw the chart after the color axis is altered. If doing\n * more operations on the chart, it is a good idea to set redraw to `false`\n * and call {@link Highcharts.Chart#redraw} after.\n */\n update(newOptions, redraw) {\n const axis = this, chart = axis.chart, legend = chart.legend;\n this.series.forEach((series) => {\n // Needed for Axis.update when choropleth colors change\n series.isDirtyData = true;\n });\n // When updating data classes, destroy old items and make sure new\n // ones are created (#3207)\n if (newOptions.dataClasses && legend.allItems || axis.dataClasses) {\n axis.destroyItems();\n }\n super.update(newOptions, redraw);\n if (axis.legendItem && axis.legendItem.label) {\n axis.setLegendColor();\n legend.colorizeItem(this, true);\n }\n }\n /**\n * Destroy color axis legend items.\n * @private\n */\n destroyItems() {\n const axis = this, chart = axis.chart, legendItem = axis.legendItem || {};\n if (legendItem.label) {\n chart.legend.destroyItem(axis);\n }\n else if (legendItem.labels) {\n for (const item of legendItem.labels) {\n chart.legend.destroyItem(item);\n }\n }\n chart.isDirtyLegend = true;\n }\n // Removing the whole axis (#14283)\n destroy() {\n this.chart.isDirtyLegend = true;\n this.destroyItems();\n super.destroy(...[].slice.call(arguments));\n }\n /**\n * Removes the color axis and the related legend item.\n *\n * @function Highcharts.ColorAxis#remove\n *\n * @param {boolean} [redraw=true]\n * Whether to redraw the chart following the remove.\n */\n remove(redraw) {\n this.destroyItems();\n super.remove(redraw);\n }\n /**\n * Get the legend item symbols for data classes.\n * @private\n */\n getDataClassLegendSymbols() {\n const axis = this, chart = axis.chart, legendItems = (axis.legendItem &&\n axis.legendItem.labels ||\n []), legendOptions = chart.options.legend, valueDecimals = pick(legendOptions.valueDecimals, -1), valueSuffix = pick(legendOptions.valueSuffix, '');\n const getPointsInDataClass = (i) => axis.series.reduce((points, s) => {\n points.push(...s.points.filter((point) => point.dataClass === i));\n return points;\n }, []);\n let name;\n if (!legendItems.length) {\n axis.dataClasses.forEach((dataClass, i) => {\n const from = dataClass.from, to = dataClass.to, { numberFormatter } = chart;\n let vis = true;\n // Assemble the default name. This can be overridden\n // by legend.options.labelFormatter\n name = '';\n if (typeof from === 'undefined') {\n name = '< ';\n }\n else if (typeof to === 'undefined') {\n name = '> ';\n }\n if (typeof from !== 'undefined') {\n name += numberFormatter(from, valueDecimals) + valueSuffix;\n }\n if (typeof from !== 'undefined' && typeof to !== 'undefined') {\n name += ' - ';\n }\n if (typeof to !== 'undefined') {\n name += numberFormatter(to, valueDecimals) + valueSuffix;\n }\n // Add a mock object to the legend items\n legendItems.push(extend({\n chart,\n name,\n options: {},\n drawLegendSymbol: LegendSymbol.rectangle,\n visible: true,\n isDataClass: true,\n // Override setState to set either normal or inactive\n // state to all points in this data class\n setState: (state) => {\n for (const point of getPointsInDataClass(i)) {\n point.setState(state);\n }\n },\n // Override setState to show or hide all points in this\n // data class\n setVisible: function () {\n this.visible = vis = axis.visible = !vis;\n const affectedSeries = [];\n for (const point of getPointsInDataClass(i)) {\n point.setVisible(vis);\n if (affectedSeries.indexOf(point.series) === -1) {\n affectedSeries.push(point.series);\n }\n }\n chart.legend.colorizeItem(this, vis);\n affectedSeries.forEach((series) => {\n fireEvent(series, 'afterDataClassLegendClick');\n });\n }\n }, dataClass));\n });\n }\n return legendItems;\n }\n }\n /* *\n *\n * Static Properties\n *\n * */\n ColorAxis.defaultColorAxisOptions = ColorAxisDefaults;\n ColorAxis.defaultLegendLength = 200;\n /**\n * @private\n */\n ColorAxis.keepProps = [\n 'legendItem'\n ];\n extend(ColorAxis.prototype, ColorAxisLike);\n /* *\n *\n * Registry\n *\n * */\n // Properties to preserve after destroy, for Axis.update (#5881, #6025).\n Array.prototype.push.apply(Axis.keepProps, ColorAxis.keepProps);\n /* *\n *\n * Default Export\n *\n * */\n /* *\n *\n * API Declarations\n *\n * */\n /**\n * Color axis types\n *\n * @typedef {\"linear\"|\"logarithmic\"} Highcharts.ColorAxisTypeValue\n */\n ''; // detach doclet above\n\n return ColorAxis;\n });\n _registerModule(_modules, 'Series/ColorMapComposition.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {\n /* *\n *\n * (c) 2010-2021 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n const { column: { prototype: columnProto } } = SeriesRegistry.seriesTypes;\n const { addEvent, defined } = U;\n /* *\n *\n * Composition\n *\n * */\n var ColorMapComposition;\n (function (ColorMapComposition) {\n /* *\n *\n * Constants\n *\n * */\n const composedMembers = [];\n ColorMapComposition.pointMembers = {\n dataLabelOnNull: true,\n moveToTopOnHover: true,\n isValid: pointIsValid\n };\n ColorMapComposition.seriesMembers = {\n colorKey: 'value',\n axisTypes: ['xAxis', 'yAxis', 'colorAxis'],\n parallelArrays: ['x', 'y', 'value'],\n pointArrayMap: ['value'],\n trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],\n colorAttribs: seriesColorAttribs,\n pointAttribs: columnProto.pointAttribs\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n function compose(SeriesClass) {\n const PointClass = SeriesClass.prototype.pointClass;\n if (U.pushUnique(composedMembers, PointClass)) {\n addEvent(PointClass, 'afterSetState', onPointAfterSetState);\n }\n return SeriesClass;\n }\n ColorMapComposition.compose = compose;\n /**\n * Move points to the top of the z-index order when hovered.\n * @private\n */\n function onPointAfterSetState(e) {\n const point = this;\n if (point.moveToTopOnHover && point.graphic) {\n point.graphic.attr({\n zIndex: e && e.state === 'hover' ? 1 : 0\n });\n }\n }\n /**\n * Color points have a value option that determines whether or not it is\n * a null point\n * @private\n */\n function pointIsValid() {\n return (this.value !== null &&\n this.value !== Infinity &&\n this.value !== -Infinity &&\n // undefined is allowed, but NaN is not (#17279)\n (this.value === void 0 || !isNaN(this.value)));\n }\n /**\n * Get the color attibutes to apply on the graphic\n * @private\n * @function Highcharts.colorMapSeriesMixin.colorAttribs\n * @param {Highcharts.Point} point\n * @return {Highcharts.SVGAttributes}\n * The SVG attributes\n */\n function seriesColorAttribs(point) {\n const ret = {};\n if (defined(point.color) &&\n (!point.state || point.state === 'normal') // #15746\n ) {\n ret[this.colorProp || 'fill'] = point.color;\n }\n return ret;\n }\n })(ColorMapComposition || (ColorMapComposition = {}));\n /* *\n *\n * Default Export\n *\n * */\n\n return ColorMapComposition;\n });\n _registerModule(_modules, 'Series/Heatmap/HeatmapPoint.js', [_modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (SeriesRegistry, U) {\n /* *\n *\n * (c) 2010-2021 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n const { scatter: { prototype: { pointClass: ScatterPoint } } } = SeriesRegistry.seriesTypes;\n const { clamp, defined, extend, pick } = U;\n /* *\n *\n * Class\n *\n * */\n class HeatmapPoint extends ScatterPoint {\n constructor() {\n /* *\n *\n * Properties\n *\n * */\n super(...arguments);\n this.options = void 0;\n this.series = void 0;\n this.value = void 0;\n this.x = void 0;\n this.y = void 0;\n }\n /* *\n *\n * Functions\n *\n * */\n /** @private */\n applyOptions(options, x) {\n // #17970, if point is null remove its color, because it may be updated\n if (this.isNull || this.value === null) {\n delete this.color;\n }\n super.applyOptions(options, x);\n this.formatPrefix = this.isNull || this.value === null ?\n 'null' : 'point';\n return this;\n }\n /** @private */\n getCellAttributes() {\n const 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\n pointPadding = pick(point.pointPadding, seriesOptions.pointPadding, 0), cellAttr = {\n x1: clamp(Math.round(xAxis.len -\n xAxis.translate(point.x - xPad, false, true, false, true, -pointPlacement)), -xAxis.len, 2 * xAxis.len),\n x2: clamp(Math.round(xAxis.len -\n xAxis.translate(point.x + xPad, false, true, false, true, -pointPlacement)), -xAxis.len, 2 * xAxis.len),\n y1: clamp(Math.round(yAxis.translate(point.y - yPad, false, true, false, true)), -yAxis.len, 2 * yAxis.len),\n y2: clamp(Math.round(yAxis.translate(point.y + yPad, false, true, false, true)), -yAxis.len, 2 * yAxis.len)\n };\n const dimensions = [['width', 'x'], ['height', 'y']];\n // Handle marker's fixed width, and height values including border\n // and pointPadding while calculating cell attributes.\n for (const dimension of dimensions) {\n const prop = dimension[0], direction = dimension[1];\n let start = direction + '1', end = direction + '2';\n const side = Math.abs(cellAttr[start] - cellAttr[end]), borderWidth = markerOptions &&\n markerOptions.lineWidth || 0, plotPos = Math.abs(cellAttr[start] + cellAttr[end]) / 2, widthOrHeight = markerOptions && markerOptions[prop];\n if (defined(widthOrHeight) && widthOrHeight < side) {\n const halfCellSize = widthOrHeight / 2 + borderWidth / 2;\n cellAttr[start] = plotPos - halfCellSize;\n cellAttr[end] = plotPos + halfCellSize;\n }\n // Handle pointPadding\n if (pointPadding) {\n if ((direction === 'x' && xAxis.reversed) ||\n (direction === 'y' && !yAxis.reversed)) {\n start = end;\n end = direction + '1';\n }\n cellAttr[start] += pointPadding;\n cellAttr[end] -= pointPadding;\n }\n }\n return cellAttr;\n }\n /**\n * @private\n */\n haloPath(size) {\n if (!size) {\n return [];\n }\n const { x = 0, y = 0, width = 0, height = 0 } = this.shapeArgs || {};\n return [\n ['M', x - size, y - size],\n ['L', x - size, y + height + size],\n ['L', x + width + size, y + height + size],\n ['L', x + width + size, y - size],\n ['Z']\n ];\n }\n /**\n * Color points have a value option that determines whether or not it is\n * a null point\n * @private\n */\n isValid() {\n // undefined is allowed\n return (this.value !== Infinity &&\n this.value !== -Infinity);\n }\n }\n extend(HeatmapPoint.prototype, {\n dataLabelOnNull: true,\n moveToTopOnHover: true,\n ttBelow: false\n });\n /* *\n *\n * Default Export\n *\n * */\n\n return HeatmapPoint;\n });\n _registerModule(_modules, 'Series/Heatmap/HeatmapSeriesDefaults.js', [_modules['Core/Utilities.js']], function (U) {\n /* *\n *\n * (c) 2010-2021 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n const { isNumber } = U;\n /* *\n *\n * API Options\n *\n * */\n /**\n * A heatmap is a graphical representation of data where the individual\n * values contained in a matrix are represented as colors.\n *\n * @productdesc {highcharts}\n * Requires `modules/heatmap`.\n *\n * @sample highcharts/demo/heatmap/\n * Simple heatmap\n * @sample highcharts/demo/heatmap-canvas/\n * Heavy heatmap\n *\n * @extends plotOptions.scatter\n * @excluding animationLimit, connectEnds, connectNulls, cropThreshold,\n * dashStyle, findNearestPointBy, getExtremesFromAll, jitter,\n * linecap, lineWidth, pointInterval, pointIntervalUnit,\n * pointRange, pointStart, shadow, softThreshold, stacking,\n * step, threshold, cluster, dragDrop\n * @product highcharts highmaps\n * @optionparent plotOptions.heatmap\n */\n const HeatmapSeriesDefaults = {\n /**\n * Animation is disabled by default on the heatmap series.\n */\n animation: false,\n /**\n * The border radius for each heatmap item. The border's color and\n * width can be set in marker options.\n *\n * @see [lineColor](#plotOptions.heatmap.marker.lineColor)\n * @see [lineWidth](#plotOptions.heatmap.marker.lineWidth)\n */\n borderRadius: 0,\n /**\n * The border width for each heatmap item.\n */\n borderWidth: 0,\n /**\n * Padding between the points in the heatmap.\n *\n * @type {number}\n * @default 0\n * @since 6.0\n * @apioption plotOptions.heatmap.pointPadding\n */\n /**\n * @default value\n * @apioption plotOptions.heatmap.colorKey\n */\n /**\n * The main color of the series. In heat maps this color is rarely used,\n * as we mostly use the color to denote the value of each point. Unless\n * options are set in the [colorAxis](#colorAxis), the default value\n * is pulled from the [options.colors](#colors) array.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @since 4.0\n * @product highcharts\n * @apioption plotOptions.heatmap.color\n */\n /**\n * The column size - how many X axis units each column in the heatmap\n * should span.\n *\n * @sample {highcharts} maps/demo/heatmap/\n * One day\n * @sample {highmaps} maps/demo/heatmap/\n * One day\n *\n * @type {number}\n * @default 1\n * @since 4.0\n * @product highcharts highmaps\n * @apioption plotOptions.heatmap.colsize\n */\n /**\n * The row size - how many Y axis units each heatmap row should span.\n *\n * @sample {highcharts} maps/demo/heatmap/\n * 1 by default\n * @sample {highmaps} maps/demo/heatmap/\n * 1 by default\n *\n * @type {number}\n * @default 1\n * @since 4.0\n * @product highcharts highmaps\n * @apioption plotOptions.heatmap.rowsize\n */\n /**\n * Make the heatmap render its data points as an interpolated image.\n *\n * @sample highcharts/demo/heatmap-interpolation\n * Interpolated heatmap image displaying user activity on a website\n * @sample highcharts/series-heatmap/interpolation\n * Interpolated heatmap toggle\n *\n */\n interpolation: false,\n /**\n * The color applied to null points. In styled mode, a general CSS class\n * is applied instead.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n nullColor: \"#f7f7f7\" /* Palette.neutralColor3 */,\n dataLabels: {\n formatter: function () {\n const { numberFormatter } = this.series.chart;\n const { value } = this.point;\n return isNumber(value) ? numberFormatter(value, -1) : '';\n },\n inside: true,\n verticalAlign: 'middle',\n crop: false,\n /**\n * @ignore-option\n */\n overflow: 'allow',\n padding: 0 // #3837\n },\n /**\n * @excluding radius, enabledThreshold\n * @since 8.1\n */\n marker: {\n /**\n * A predefined shape or symbol for the marker. When undefined, the\n * symbol is pulled from options.symbols. Other possible values are\n * `'circle'`, `'square'`,`'diamond'`, `'triangle'`,\n * `'triangle-down'`, `'rect'`, and `'ellipse'`.\n *\n * Additionally, the URL to a graphic can be given on this form:\n * `'url(graphic.png)'`. Note that for the image to be applied to\n * exported charts, its URL needs to be accessible by the export\n * server.\n *\n * Custom callbacks for symbol path generation can also be added to\n * `Highcharts.SVGRenderer.prototype.symbols`. The callback is then\n * used by its method name, as shown in the demo.\n *\n * @sample {highcharts} highcharts/plotoptions/series-marker-symbol/\n * Predefined, graphic and custom markers\n * @sample {highstock} highcharts/plotoptions/series-marker-symbol/\n * Predefined, graphic and custom markers\n */\n symbol: 'rect',\n /** @ignore-option */\n radius: 0,\n lineColor: void 0,\n states: {\n /**\n * @excluding radius, radiusPlus\n */\n hover: {\n /**\n * Set the marker's fixed width on hover state.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width\n * 70px fixed marker's width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption plotOptions.heatmap.marker.states.hover.width\n */\n /**\n * Set the marker's fixed height on hover state.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width\n * 70px fixed marker's width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption plotOptions.heatmap.marker.states.hover.height\n */\n /**\n * The number of pixels to increase the width of the\n * selected point.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus\n * 20px greater width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption plotOptions.heatmap.marker.states.hover.widthPlus\n */\n /**\n * The number of pixels to increase the height of the\n * selected point.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus\n * 20px greater width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption plotOptions.heatmap.marker.states.hover.heightPlus\n */\n /**\n * The additional line width for a hovered point.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-linewidthplus\n * 5 pixels wider lineWidth on hover\n * @sample {highmaps} maps/plotoptions/heatmap-marker-states-hover-linewidthplus\n * 5 pixels wider lineWidth on hover\n */\n lineWidthPlus: 0\n },\n /**\n * @excluding radius\n */\n select: {\n /**\n * Set the marker's fixed width on select state.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width\n * 70px fixed marker's width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption plotOptions.heatmap.marker.states.select.width\n */\n /**\n * Set the marker's fixed height on select state.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width\n * 70px fixed marker's width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption plotOptions.heatmap.marker.states.select.height\n */\n /**\n * The number of pixels to increase the width of the\n * selected point.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus\n * 20px greater width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption plotOptions.heatmap.marker.states.select.widthPlus\n */\n /**\n * The number of pixels to increase the height of the\n * selected point.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus\n * 20px greater width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption plotOptions.heatmap.marker.states.select.heightPlus\n */\n }\n }\n },\n clip: true,\n /** @ignore-option */\n pointRange: null,\n tooltip: {\n pointFormat: '{point.x}, {point.y}: {point.value}
'\n },\n states: {\n hover: {\n /** @ignore-option */\n halo: false,\n /**\n * How much to brighten the point on interaction. Requires the\n * main color to be defined in hex or rgb(a) format.\n *\n * In styled mode, the hover brightening is by default replaced\n * with a fill-opacity set in the `.highcharts-point:hover`\n * rule.\n */\n brightness: 0.2\n }\n },\n legendSymbol: 'rectangle'\n };\n /**\n * A `heatmap` series. If the [type](#series.heatmap.type) option is\n * not specified, it is inherited from [chart.type](#chart.type).\n *\n * @productdesc {highcharts}\n * Requires `modules/heatmap`.\n *\n * @extends series,plotOptions.heatmap\n * @excluding cropThreshold, dataParser, dataURL, dragDrop ,pointRange, stack,\n * @product highcharts highmaps\n * @apioption series.heatmap\n */\n /**\n * An array of data points for the series. For the `heatmap` series\n * type, points can be given in the following ways:\n *\n * 1. An array of arrays with 3 or 2 values. In this case, the values\n * correspond to `x,y,value`. If the first value is a string, it is\n * applied as the name of the point, and the `x` value is inferred.\n * The `x` value can also be omitted, in which case the inner arrays\n * should be of length 2\\. Then the `x` value is automatically calculated,\n * either starting at 0 and incremented by 1, or from `pointStart`\n * and `pointInterval` given in the series options.\n *\n * ```js\n * data: [\n * [0, 9, 7],\n * [1, 10, 4],\n * [2, 6, 3]\n * ]\n * ```\n *\n * 2. An array of objects with named values. The following snippet shows only a\n * few settings, see the complete options set below. If the total number of data\n * points exceeds the series' [turboThreshold](#series.heatmap.turboThreshold),\n * this option is not available.\n *\n * ```js\n * data: [{\n * x: 1,\n * y: 3,\n * value: 10,\n * name: \"Point2\",\n * color: \"#00FF00\"\n * }, {\n * x: 1,\n * y: 7,\n * value: 10,\n * name: \"Point1\",\n * color: \"#FF00FF\"\n * }]\n * ```\n *\n * @sample {highcharts} highcharts/chart/reflow-true/\n * Numerical values\n * @sample {highcharts} highcharts/series/data-array-of-arrays/\n * Arrays of numeric x and y\n * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/\n * Arrays of datetime x and y\n * @sample {highcharts} highcharts/series/data-array-of-name-value/\n * Arrays of point.name and y\n * @sample {highcharts} highcharts/series/data-array-of-objects/\n * Config objects\n *\n * @type {Array|*>}\n * @extends series.line.data\n * @product highcharts highmaps\n * @apioption series.heatmap.data\n */\n /**\n * The color of the point. In heat maps the point color is rarely set\n * explicitly, as we use the color to denote the `value`. Options for\n * this are set in the [colorAxis](#colorAxis) configuration.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @product highcharts highmaps\n * @apioption series.heatmap.data.color\n */\n /**\n * The value of the point, resulting in a color controled by options\n * as set in the [colorAxis](#colorAxis) configuration.\n *\n * @type {number}\n * @product highcharts highmaps\n * @apioption series.heatmap.data.value\n */\n /**\n * The x value of the point. For datetime axes,\n * the X value is the timestamp in milliseconds since 1970.\n *\n * @type {number}\n * @product highcharts highmaps\n * @apioption series.heatmap.data.x\n */\n /**\n * The y value of the point.\n *\n * @type {number}\n * @product highcharts highmaps\n * @apioption series.heatmap.data.y\n */\n /**\n * Point padding for a single point.\n *\n * @sample maps/plotoptions/tilemap-pointpadding\n * Point padding on tiles\n *\n * @type {number}\n * @product highcharts highmaps\n * @apioption series.heatmap.data.pointPadding\n */\n /**\n * @excluding radius, enabledThreshold\n * @product highcharts highmaps\n * @since 8.1\n * @apioption series.heatmap.data.marker\n */\n /**\n * @excluding radius, enabledThreshold\n * @product highcharts highmaps\n * @since 8.1\n * @apioption series.heatmap.marker\n */\n /**\n * @excluding radius, radiusPlus\n * @product highcharts highmaps\n * @apioption series.heatmap.marker.states.hover\n */\n /**\n * @excluding radius\n * @product highcharts highmaps\n * @apioption series.heatmap.marker.states.select\n */\n /**\n * @excluding radius, radiusPlus\n * @product highcharts highmaps\n * @apioption series.heatmap.data.marker.states.hover\n */\n /**\n * @excluding radius\n * @product highcharts highmaps\n * @apioption series.heatmap.data.marker.states.select\n */\n /**\n * Set the marker's fixed width on hover state.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-linewidthplus\n * 5 pixels wider lineWidth on hover\n *\n * @type {number|undefined}\n * @default 0\n * @product highcharts highmaps\n * @apioption series.heatmap.marker.states.hover.lineWidthPlus\n */\n /**\n * Set the marker's fixed width on hover state.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width\n * 70px fixed marker's width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption series.heatmap.marker.states.hover.width\n */\n /**\n * Set the marker's fixed height on hover state.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width\n * 70px fixed marker's width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption series.heatmap.marker.states.hover.height\n */\n /**\n * The number of pixels to increase the width of the\n * hovered point.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus\n * One day\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption series.heatmap.marker.states.hover.widthPlus\n */\n /**\n * The number of pixels to increase the height of the\n * hovered point.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus\n * One day\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption series.heatmap.marker.states.hover.heightPlus\n */\n /**\n * The number of pixels to increase the width of the\n * hovered point.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus\n * One day\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption series.heatmap.marker.states.select.widthPlus\n */\n /**\n * The number of pixels to increase the height of the\n * hovered point.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus\n * One day\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption series.heatmap.marker.states.select.heightPlus\n */\n /**\n * Set the marker's fixed width on hover state.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-linewidthplus\n * 5 pixels wider lineWidth on hover\n *\n * @type {number|undefined}\n * @default 0\n * @product highcharts highmaps\n * @apioption series.heatmap.data.marker.states.hover.lineWidthPlus\n */\n /**\n * Set the marker's fixed width on hover state.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width\n * 70px fixed marker's width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption series.heatmap.data.marker.states.hover.width\n */\n /**\n * Set the marker's fixed height on hover state.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width\n * 70px fixed marker's width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption series.heatmap.data.marker.states.hover.height\n */\n /**\n * The number of pixels to increase the width of the\n * hovered point.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus\n * One day\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highstock\n * @apioption series.heatmap.data.marker.states.hover.widthPlus\n */\n /**\n * The number of pixels to increase the height of the\n * hovered point.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus\n * One day\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highstock\n * @apioption series.heatmap.data.marker.states.hover.heightPlus\n */\n /**\n * Set the marker's fixed width on select state.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width\n * 70px fixed marker's width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption series.heatmap.data.marker.states.select.width\n */\n /**\n * Set the marker's fixed height on select state.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-width\n * 70px fixed marker's width and height on hover\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highmaps\n * @apioption series.heatmap.data.marker.states.select.height\n */\n /**\n * The number of pixels to increase the width of the\n * hovered point.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus\n * One day\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highstock\n * @apioption series.heatmap.data.marker.states.select.widthPlus\n */\n /**\n * The number of pixels to increase the height of the\n * hovered point.\n *\n * @sample {highcharts} maps/plotoptions/heatmap-marker-states-hover-widthplus\n * One day\n *\n * @type {number|undefined}\n * @default undefined\n * @product highcharts highstock\n * @apioption series.heatmap.data.marker.states.select.heightPlus\n */\n ''; // keeps doclets above separate\n /* *\n *\n * Default Export\n *\n * */\n\n return HeatmapSeriesDefaults;\n });\n _registerModule(_modules, 'Series/InterpolationUtilities.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (H, U) {\n /* *\n *\n * (c) 2010-2023 Hubert Kozik\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n const { doc } = H;\n const { defined, pick } = U;\n /* *\n *\n * Functions\n *\n * */\n /**\n * Find color of point based on color axis.\n *\n * @function Highcharts.colorFromPoint\n *\n * @param {number | null} value\n * Value to find corresponding color on the color axis.\n *\n * @param {Highcharts.Point} point\n * Point to find it's color from color axis.\n *\n * @return {number[]}\n * Color in RGBa array.\n */\n function colorFromPoint(value, point) {\n const colorAxis = point.series.colorAxis;\n if (colorAxis) {\n const rgba = (colorAxis.toColor(value || 0, point)\n .split(')')[0]\n .split('(')[1]\n .split(',')\n .map((s) => pick(parseFloat(s), parseInt(s, 10))));\n rgba[3] = pick(rgba[3], 1.0) * 255;\n if (!defined(value) || !point.visible) {\n rgba[3] = 0;\n }\n return rgba;\n }\n return [0, 0, 0, 0];\n }\n /**\n * Method responsible for creating a canvas for interpolation image.\n * @private\n */\n function getContext(series) {\n const { canvas, context } = series;\n if (canvas && context) {\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n else {\n series.canvas = doc.createElement('canvas');\n series.context = series.canvas.getContext('2d', {\n willReadFrequently: true\n }) || void 0;\n return series.context;\n }\n return context;\n }\n const InterpolationUtilities = {\n colorFromPoint,\n getContext\n };\n\n return InterpolationUtilities;\n });\n _registerModule(_modules, 'Series/Heatmap/HeatmapSeries.js', [_modules['Core/Color/Color.js'], _modules['Series/ColorMapComposition.js'], _modules['Series/Heatmap/HeatmapPoint.js'], _modules['Series/Heatmap/HeatmapSeriesDefaults.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Utilities.js'], _modules['Series/InterpolationUtilities.js']], function (Color, ColorMapComposition, HeatmapPoint, HeatmapSeriesDefaults, SeriesRegistry, SVGRenderer, U, IU) {\n /* *\n *\n * (c) 2010-2021 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n const { series: Series, seriesTypes: { column: ColumnSeries, scatter: ScatterSeries } } = SeriesRegistry;\n const { prototype: { symbols } } = SVGRenderer;\n const { addEvent, extend, fireEvent, isNumber, merge, pick } = U;\n const { colorFromPoint, getContext } = IU;\n /* *\n *\n * Class\n *\n * */\n /**\n * @private\n * @class\n * @name Highcharts.seriesTypes.heatmap\n *\n * @augments Highcharts.Series\n */\n class HeatmapSeries extends ScatterSeries {\n constructor() {\n /* *\n *\n * Static Properties\n *\n * */\n super(...arguments);\n /* *\n *\n * Properties\n *\n * */\n this.canvas = void 0;\n this.colorAxis = void 0;\n this.context = void 0;\n this.data = void 0;\n this.options = void 0;\n this.points = void 0;\n this.valueMax = NaN;\n this.valueMin = NaN;\n this.isDirtyCanvas = true;\n /* eslint-enable valid-jsdoc */\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n drawPoints() {\n const series = this, seriesOptions = series.options, interpolation = seriesOptions.interpolation, seriesMarkerOptions = seriesOptions.marker || {};\n if (interpolation) {\n const { image, chart, xAxis, yAxis } = series, { reversed: xRev = false, len: width } = xAxis, { reversed: yRev = false, len: height } = yAxis, dimensions = { width, height };\n if (!image || series.isDirtyData || series.isDirtyCanvas) {\n const ctx = getContext(series), { canvas, options: { colsize = 1, rowsize = 1 }, points, points: { length } } = series, pointsLen = length - 1, colorAxis = (chart.colorAxis && chart.colorAxis[0]);\n if (canvas && ctx && colorAxis) {\n const { min: xMin, max: xMax } = xAxis.getExtremes(), { min: yMin, max: yMax } = yAxis.getExtremes(), xDelta = xMax - xMin, yDelta = yMax - yMin, imgMultiple = 8.0, lastX = Math.round(imgMultiple * ((xDelta / colsize) / imgMultiple)), lastY = Math.round(imgMultiple * ((yDelta / rowsize) / imgMultiple)), [transformX, transformY] = [\n [lastX, lastX / xDelta, xRev, 'ceil'],\n [lastY, lastY / yDelta, !yRev, 'floor']\n ].map(([last, scale, rev, rounding]) => (rev ?\n (v) => (Math[rounding](last -\n (scale * (v)))) :\n (v) => (Math[rounding](scale * v)))), canvasWidth = canvas.width = lastX + 1, canvasHeight = canvas.height = lastY + 1, canvasArea = canvasWidth * canvasHeight, pixelToPointScale = pointsLen / canvasArea, pixelData = new Uint8ClampedArray(canvasArea * 4), pointInPixels = (x, y) => (Math.ceil((canvasWidth * transformY(y - yMin)) +\n transformX(x - xMin)) * 4);\n series.buildKDTree();\n for (let i = 0; i < canvasArea; i++) {\n const point = points[Math.ceil(pixelToPointScale * i)], { x, y } = point;\n pixelData.set(colorFromPoint(point.value, point), pointInPixels(x, y));\n }\n ctx.putImageData(new ImageData(pixelData, canvasWidth), 0, 0);\n if (image) {\n image.attr({\n ...dimensions,\n href: canvas.toDataURL('image/png', 1)\n });\n }\n else {\n series.directTouch = false;\n series.image = chart.renderer.image(canvas.toDataURL('image/png', 1))\n .attr(dimensions)\n .add(series.group);\n }\n }\n series.isDirtyCanvas = false;\n }\n else if (image.width !== width || image.height !== height) {\n image.attr(dimensions);\n }\n }\n else if (seriesMarkerOptions.enabled || series._hasPointMarkers) {\n Series.prototype.drawPoints.call(series);\n series.points.forEach((point) => {\n if (point.graphic) {\n // In styled mode, use CSS, otherwise the fill used in\n // the style sheet will take precedence over\n // the fill attribute.\n point.graphic[series.chart.styledMode ? 'css' : 'animate'](series.colorAttribs(point));\n if (point.value === null) { // #15708\n point.graphic.addClass('highcharts-null-point');\n }\n }\n });\n }\n }\n /**\n * @private\n */\n getExtremes() {\n // Get the extremes from the value data\n const { dataMin, dataMax } = Series.prototype.getExtremes\n .call(this, this.valueData);\n if (isNumber(dataMin)) {\n this.valueMin = dataMin;\n }\n if (isNumber(dataMax)) {\n this.valueMax = dataMax;\n }\n // Get the extremes from the y data\n return Series.prototype.getExtremes.call(this);\n }\n /**\n * Override to also allow null points, used when building the k-d-tree for\n * tooltips in boost mode.\n * @private\n */\n getValidPoints(points, insideOnly) {\n return Series.prototype.getValidPoints.call(this, points, insideOnly, true);\n }\n /**\n * Define hasData function for non-cartesian series. Returns true if the\n * series has points at all.\n * @private\n */\n hasData() {\n return !!this.processedXData.length; // != 0\n }\n /**\n * Override the init method to add point ranges on both axes.\n * @private\n */\n init() {\n super.init.apply(this, arguments);\n const options = this.options;\n // #3758, prevent resetting in setData\n options.pointRange = pick(options.pointRange, options.colsize || 1);\n // general point range\n this.yAxis.axisPointRange = options.rowsize || 1;\n // Bind new symbol names\n symbols.ellipse = symbols.circle;\n // @todo\n //\n // Setting the border radius here is a workaround. It should be set in\n // the shapeArgs or returned from `markerAttribs`. However,\n // Series.drawPoints does not pick up markerAttribs to be passed over to\n // `renderer.symbol`. Also, image symbols are not positioned by their\n // top left corner like other symbols are. This should be refactored,\n // then we could save ourselves some tests for .hasImage etc. And the\n // evaluation of borderRadius would be moved to `markerAttribs`.\n if (options.marker && isNumber(options.borderRadius)) {\n options.marker.r = options.borderRadius;\n }\n }\n /**\n * @private\n */\n markerAttribs(point, state) {\n const shapeArgs = point.shapeArgs || {};\n if (point.hasImage) {\n return {\n x: point.plotX,\n y: point.plotY\n };\n }\n // Setting width and height attributes on image does not affect on its\n // dimensions.\n if (state && state !== 'normal') {\n const pointMarkerOptions = point.options.marker || {}, seriesMarkerOptions = this.options.marker || {}, seriesStateOptions = (seriesMarkerOptions.states &&\n seriesMarkerOptions.states[state]) || {}, pointStateOptions = (pointMarkerOptions.states &&\n pointMarkerOptions.states[state]) || {};\n // Set new width and height basing on state options.\n const width = (pointStateOptions.width ||\n seriesStateOptions.width ||\n shapeArgs.width ||\n 0) + (pointStateOptions.widthPlus ||\n seriesStateOptions.widthPlus ||\n 0);\n const height = (pointStateOptions.height ||\n seriesStateOptions.height ||\n shapeArgs.height ||\n 0) + (pointStateOptions.heightPlus ||\n seriesStateOptions.heightPlus ||\n 0);\n // Align marker by the new size.\n const x = (shapeArgs.x || 0) + ((shapeArgs.width || 0) - width) / 2, y = (shapeArgs.y || 0) + ((shapeArgs.height || 0) - height) / 2;\n return { x, y, width, height };\n }\n return shapeArgs;\n }\n /**\n * @private\n */\n pointAttribs(point, state) {\n const series = this, attr = Series.prototype.pointAttribs.call(series, point, state), seriesOptions = series.options || {}, plotOptions = series.chart.options.plotOptions || {}, seriesPlotOptions = plotOptions.series || {}, heatmapPlotOptions = plotOptions.heatmap || {}, \n // Get old properties in order to keep backward compatibility\n borderColor = (point && point.options.borderColor) ||\n seriesOptions.borderColor ||\n heatmapPlotOptions.borderColor ||\n seriesPlotOptions.borderColor, borderWidth = (point && point.options.borderWidth) ||\n seriesOptions.borderWidth ||\n heatmapPlotOptions.borderWidth ||\n seriesPlotOptions.borderWidth ||\n attr['stroke-width'];\n // Apply lineColor, or set it to default series color.\n attr.stroke = ((point && point.marker && point.marker.lineColor) ||\n (seriesOptions.marker && seriesOptions.marker.lineColor) ||\n borderColor ||\n this.color);\n // Apply old borderWidth property if exists.\n attr['stroke-width'] = borderWidth;\n if (state && state !== 'normal') {\n const stateOptions = merge((seriesOptions.states &&\n seriesOptions.states[state]), (seriesOptions.marker &&\n seriesOptions.marker.states &&\n seriesOptions.marker.states[state]), (point &&\n point.options.states &&\n point.options.states[state] || {}));\n attr.fill =\n stateOptions.color ||\n Color.parse(attr.fill).brighten(stateOptions.brightness || 0).get();\n attr.stroke = (stateOptions.lineColor || attr.stroke); // #17896\n }\n return attr;\n }\n /**\n * @private\n */\n translate() {\n const series = this, options = series.options, { borderRadius, marker } = options, symbol = marker && marker.symbol || 'rect', shape = symbols[symbol] ? symbol : 'rect', hasRegularShape = ['circle', 'square'].indexOf(shape) !== -1;\n series.generatePoints();\n for (const point of series.points) {\n const cellAttr = point.getCellAttributes();\n let x = Math.min(cellAttr.x1, cellAttr.x2), y = Math.min(cellAttr.y1, cellAttr.y2), width = Math.max(Math.abs(cellAttr.x2 - cellAttr.x1), 0), height = Math.max(Math.abs(cellAttr.y2 - cellAttr.y1), 0);\n point.hasImage = (point.marker && point.marker.symbol || symbol || '').indexOf('url') === 0;\n // If marker shape is regular (square), find the shorter cell's\n // side.\n if (hasRegularShape) {\n const sizeDiff = Math.abs(width - height);\n x = Math.min(cellAttr.x1, cellAttr.x2) +\n (width < height ? 0 : sizeDiff / 2);\n y = Math.min(cellAttr.y1, cellAttr.y2) +\n (width < height ? sizeDiff / 2 : 0);\n width = height = Math.min(width, height);\n }\n if (point.hasImage) {\n point.marker = { width, height };\n }\n point.plotX = point.clientX = (cellAttr.x1 + cellAttr.x2) / 2;\n point.plotY = (cellAttr.y1 + cellAttr.y2) / 2;\n point.shapeType = 'path';\n point.shapeArgs = merge(true, { x, y, width, height }, {\n d: symbols[shape](x, y, width, height, { r: isNumber(borderRadius) ? borderRadius : 0 })\n });\n }\n fireEvent(series, 'afterTranslate');\n }\n }\n HeatmapSeries.defaultOptions = merge(ScatterSeries.defaultOptions, HeatmapSeriesDefaults);\n addEvent(HeatmapSeries, 'afterDataClassLegendClick', function () {\n this.isDirtyCanvas = true;\n this.drawPoints();\n });\n extend(HeatmapSeries.prototype, {\n axisTypes: ColorMapComposition.seriesMembers.axisTypes,\n colorKey: ColorMapComposition.seriesMembers.colorKey,\n directTouch: true,\n getExtremesFromAll: true,\n parallelArrays: ColorMapComposition.seriesMembers.parallelArrays,\n pointArrayMap: ['y', 'value'],\n pointClass: HeatmapPoint,\n specialGroup: 'group',\n trackerGroups: ColorMapComposition.seriesMembers.trackerGroups,\n /**\n * @private\n */\n alignDataLabel: ColumnSeries.prototype.alignDataLabel,\n colorAttribs: ColorMapComposition.seriesMembers.colorAttribs,\n getSymbol: Series.prototype.getSymbol\n });\n ColorMapComposition.compose(HeatmapSeries);\n SeriesRegistry.registerSeriesType('heatmap', HeatmapSeries);\n /* *\n *\n * Default Export\n *\n * */\n /* *\n *\n * API Declarations\n *\n * */\n /**\n * Heatmap series only. Padding between the points in the heatmap.\n * @name Highcharts.Point#pointPadding\n * @type {number|undefined}\n */\n /**\n * Heatmap series only. The value of the point, resulting in a color\n * controled by options as set in the colorAxis configuration.\n * @name Highcharts.Point#value\n * @type {number|null|undefined}\n */\n /* *\n * @interface Highcharts.PointOptionsObject in parts/Point.ts\n */ /**\n * Heatmap series only. Point padding for a single point.\n * @name Highcharts.PointOptionsObject#pointPadding\n * @type {number|undefined}\n */ /**\n * Heatmap series only. The value of the point, resulting in a color controled\n * by options as set in the colorAxis configuration.\n * @name Highcharts.PointOptionsObject#value\n * @type {number|null|undefined}\n */\n ''; // detach doclets above\n\n return HeatmapSeries;\n });\n _registerModule(_modules, 'masters/modules/heatmap.src.js', [_modules['Core/Globals.js'], _modules['Core/Axis/Color/ColorAxis.js']], function (Highcharts, ColorAxis) {\n\n const G = Highcharts;\n G.ColorAxis = ColorAxis;\n ColorAxis.compose(G.Chart, G.Fx, G.Legend, G.Series);\n\n });\n}));"],"names":["factory","module","exports","define","amd","Highcharts","undefined","_modules","_registerModule","obj","path","args","fn","hasOwnProperty","apply","CustomEvent","window","dispatchEvent","detail","Color","U","ColorAxisComposition","parse","color","addEvent","extend","merge","pick","splat","ColorAxisConstructor","composedMembers","onChartAfterGetAxes","options","colorAxis","map","axisOptions","onLegendAfterGetAllItems","e","colorAxes","chart","destroyItem","item","i","allItems","indexOf","splice","colorAxisItems","forEach","showInLegend","dataClasses","visible","concat","getDataClassLegendSymbols","push","series","legendType","points","point","length","unshift","onLegendAfterColorizeItem","legendColor","legendItem","symbol","attr","fill","onLegendAfterUpdate","update","redraw","onSeriesAfterTranslate","colorAttribs","translateColors","onSeriesBindAxes","axisTypes","pointSetVisible","vis","method","Boolean","key","buildKDTree","seriesTranslateColors","data","nullColor","colorKey","value","getNestedProperty","isNull","toColor","label","legend","colorizeItem","wrapFxFillSetter","elem","start","tweenTo","end","pos","wrapFxStrokeSetter","compose","ColorAxisClass","ChartClass","FxClass","LegendClass","SeriesClass","pushUnique","chartProto","prototype","collectionsWithUpdate","collectionsWithInit","addColorAxis","wrapChartCreateAxis","superCreateAxis","createAxis","type","arguments","axis","index","isX","isDirtyLegend","axes","bindAxes","isDirtyData","animation","fxProto","fillSetter","strokeSetter","optionalAxis","pointClass","setVisible","order","lineWidth","minPadding","maxPadding","gridLineColor","gridLineWidth","tickPixelInterval","startOnTick","endOnTick","offset","marker","duration","width","labels","distance","overflow","rotation","minColor","maxColor","tickLength","ColorAxisLike","initDataClasses","userOptions","userDataClasses","dataClass","colorCount","colorCounter","colors","iEnd","styledMode","dataClassColor","colorIndex","initStops","stops","normalizedValue","max","min","logarithmic","log2lin","from","to","Axis","ColorAxisDefaults","LegendSymbol","SeriesRegistry","Series","fireEvent","isArray","isNumber","ColorAxis","constructor","beforePadding","coll","init","horiz","layout","defaultColorAxisOptions","showEmpty","title","enabled","side","reversed","opposite","zoomEnabled","hasData","tickPositions","setTickPositions","setOptions","crosshair","setAxisSize","x","y","height","legendOptions","left","top","right","chartWidth","bottom","chartHeight","len","symbolWidth","symbolHeight","defaultLegendLength","getOffset","group","sideOffset","axisOffset","axisParent","drawLegendSymbol","render","getMargins","added","labelLeft","labelRight","setLegendColor","one","zero","grad","linearGradient","x1","y1","x2","y2","padding","labelOptions","itemDistance","labelPadding","renderer","baseline","r","symbolRadius","zIndex","add","labelWidth","maxLabelLength","labelHeight","setState","state","getSeriesExtremes","colorValArray","colorValIndex","pointArrayMap","calculatedExtremes","cSeries","yData","j","dataMin","Infinity","dataMax","pointValKey","zoneAxis","minColorValue","maxColorValue","cExtremes","getExtremes","call","Math","applyExtremes","drawCrosshair","crossPos","plotX","plotY","axisPos","axisLen","toPixels","cross","addedToColorAxis","addClass","getPlotLinePath","translatedValue","newOptions","destroyItems","destroy","slice","remove","name","legendItems","valueDecimals","valueSuffix","getPointsInDataClass","reduce","s","filter","numberFormatter","rectangle","isDataClass","affectedSeries","keepProps","Array","ColorMapComposition","column","columnProto","seriesTypes","defined","onPointAfterSetState","moveToTopOnHover","graphic","pointMembers","dataLabelOnNull","isValid","isNaN","seriesMembers","parallelArrays","trackerGroups","ret","colorProp","pointAttribs","PointClass","scatter","ScatterPoint","clamp","HeatmapPoint","applyOptions","formatPrefix","getCellAttributes","seriesOptions","xPad","colsize","yPad","rowsize","xAxis","yAxis","markerOptions","pointPlacement","pointPlacementToXValue","pointPadding","cellAttr","round","translate","dimension","prop","direction","abs","borderWidth","plotPos","widthOrHeight","halfCellSize","haloPath","size","shapeArgs","ttBelow","borderRadius","interpolation","dataLabels","formatter","inside","verticalAlign","crop","radius","lineColor","states","hover","lineWidthPlus","select","clip","pointRange","tooltip","pointFormat","halo","brightness","legendSymbol","H","doc","colorFromPoint","rgba","split","parseFloat","parseInt","getContext","canvas","context","clearRect","createElement","willReadFrequently","HeatmapSeriesDefaults","SVGRenderer","IU","ColumnSeries","ScatterSeries","symbols","HeatmapSeries","valueMax","NaN","valueMin","isDirtyCanvas","drawPoints","seriesMarkerOptions","image","xRev","yRev","dimensions","ctx","xMin","xMax","yMin","yMax","xDelta","yDelta","lastX","imgMultiple","lastY","transformX","transformY","last","scale","rev","rounding","v","canvasWidth","canvasHeight","canvasArea","pixelToPointScale","pointsLen","pixelData","Uint8ClampedArray","pointInPixels","ceil","set","putImageData","ImageData","href","toDataURL","directTouch","_hasPointMarkers","valueData","getValidPoints","insideOnly","processedXData","axisPointRange","ellipse","circle","markerAttribs","hasImage","pointMarkerOptions","seriesStateOptions","pointStateOptions","widthPlus","heightPlus","plotOptions","seriesPlotOptions","heatmapPlotOptions","heatmap","borderColor","stroke","stateOptions","brighten","get","shape","hasRegularShape","generatePoints","sizeDiff","clientX","shapeType","d","defaultOptions","getExtremesFromAll","specialGroup","alignDataLabel","getSymbol","registerSeriesType","G","Chart","Fx","Legend"],"mappings":"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"}