Hacked By AnonymousFox
{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highcharts JS v12.1.2 (2025-01-09)\n * @module highcharts/highcharts-more\n * @requires highcharts\n *\n * (c) 2009-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"highcharts\"), require(\"highcharts\")[\"SeriesRegistry\"], require(\"highcharts\")[\"Series\"], require(\"highcharts\")[\"Series\"][\"types\"][\"column\"], require(\"highcharts\")[\"Color\"], require(\"highcharts\")[\"Templating\"], require(\"highcharts\")[\"Point\"], require(\"highcharts\")[\"Chart\"], require(\"highcharts\")[\"SVGElement\"], require(\"highcharts\")[\"StackItem\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/highcharts-more\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"SeriesRegistry\"], [\"highcharts/highcharts\",\"Series\"], [\"highcharts/highcharts\",\"Series\",\"types\",\"column\"], [\"highcharts/highcharts\",\"Color\"], [\"highcharts/highcharts\",\"Templating\"], [\"highcharts/highcharts\",\"Point\"], [\"highcharts/highcharts\",\"Chart\"], [\"highcharts/highcharts\",\"SVGElement\"], [\"highcharts/highcharts\",\"StackItem\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/highcharts-more\"] = factory(require(\"highcharts\"), require(\"highcharts\")[\"SeriesRegistry\"], require(\"highcharts\")[\"Series\"], require(\"highcharts\")[\"Series\"][\"types\"][\"column\"], require(\"highcharts\")[\"Color\"], require(\"highcharts\")[\"Templating\"], require(\"highcharts\")[\"Point\"], require(\"highcharts\")[\"Chart\"], require(\"highcharts\")[\"SVGElement\"], require(\"highcharts\")[\"StackItem\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"SeriesRegistry\"], root[\"Highcharts\"][\"Series\"], root[\"Highcharts\"][\"Series\"][\"types\"][\"column\"], root[\"Highcharts\"][\"Color\"], root[\"Highcharts\"][\"Templating\"], root[\"Highcharts\"][\"Point\"], root[\"Highcharts\"][\"Chart\"], root[\"Highcharts\"][\"SVGElement\"], root[\"Highcharts\"][\"StackItem\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__512__, __WEBPACK_EXTERNAL_MODULE__820__, __WEBPACK_EXTERNAL_MODULE__448__, __WEBPACK_EXTERNAL_MODULE__620__, __WEBPACK_EXTERNAL_MODULE__984__, __WEBPACK_EXTERNAL_MODULE__260__, __WEBPACK_EXTERNAL_MODULE__960__, __WEBPACK_EXTERNAL_MODULE__28__, __WEBPACK_EXTERNAL_MODULE__184__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 960:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__960__;\n\n/***/ }),\n\n/***/ 620:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__620__;\n\n/***/ }),\n\n/***/ 260:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__260__;\n\n/***/ }),\n\n/***/ 28:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__28__;\n\n/***/ }),\n\n/***/ 448:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__448__;\n\n/***/ }),\n\n/***/ 820:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__820__;\n\n/***/ }),\n\n/***/ 512:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__512__;\n\n/***/ }),\n\n/***/ 184:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__184__;\n\n/***/ }),\n\n/***/ 984:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__984__;\n\n/***/ }),\n\n/***/ 944:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__944__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ highcharts_more_src; }\n});\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\"],\"commonjs\":[\"highcharts\"],\"commonjs2\":[\"highcharts\"],\"root\":[\"Highcharts\"]}\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_ = __webpack_require__(944);\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default = /*#__PURE__*/__webpack_require__.n(highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_);\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"SeriesRegistry\"],\"commonjs\":[\"highcharts\",\"SeriesRegistry\"],\"commonjs2\":[\"highcharts\",\"SeriesRegistry\"],\"root\":[\"Highcharts\",\"SeriesRegistry\"]}\nvar highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_ = __webpack_require__(512);\nvar highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default = /*#__PURE__*/__webpack_require__.n(highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_);\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Series\"],\"commonjs\":[\"highcharts\",\"Series\"],\"commonjs2\":[\"highcharts\",\"Series\"],\"root\":[\"Highcharts\",\"Series\"]}\nvar highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_ = __webpack_require__(820);\nvar highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default = /*#__PURE__*/__webpack_require__.n(highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_);\n;// ./code/es5/es-modules/Series/CenteredUtilities.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar deg2rad = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).deg2rad;\n\n\nvar fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, relativeLength = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).relativeLength;\n/**\n * @private\n */\nvar CenteredUtilities;\n(function (CenteredUtilities) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * Get the center of the pie based on the size and center options relative\n * to the plot area. Borrowed by the polar and gauge series types.\n *\n * @private\n * @function Highcharts.CenteredSeriesMixin.getCenter\n */\n function getCenter() {\n var options = this.options,\n chart = this.chart,\n slicingRoom = 2 * (options.slicedOffset || 0),\n plotWidth = chart.plotWidth - 2 * slicingRoom,\n plotHeight = chart.plotHeight - 2 * slicingRoom,\n centerOption = options.center,\n smallestSize = Math.min(plotWidth,\n plotHeight),\n thickness = options.thickness;\n var handleSlicingRoom,\n size = options.size,\n innerSize = options.innerSize || 0,\n i,\n value;\n if (typeof size === 'string') {\n size = parseFloat(size);\n }\n if (typeof innerSize === 'string') {\n innerSize = parseFloat(innerSize);\n }\n var positions = [\n pick(centerOption === null || centerOption === void 0 ? void 0 : centerOption[0], '50%'),\n pick(centerOption === null || centerOption === void 0 ? void 0 : centerOption[1], '50%'),\n // Prevent from negative values\n pick(size && size < 0 ? void 0 : options.size, '100%'),\n pick(innerSize && innerSize < 0 ? void 0 : options.innerSize || 0, '0%')\n ];\n // No need for inner size in angular (gauges) series but still required\n // for pie series\n if (chart.angular && !(this instanceof (highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default()))) {\n positions[3] = 0;\n }\n for (i = 0; i < 4; ++i) {\n value = positions[i];\n handleSlicingRoom = i < 2 || (i === 2 && /%$/.test(value));\n // I == 0: centerX, relative to width\n // i == 1: centerY, relative to height\n // i == 2: size, relative to smallestSize\n // i == 3: innerSize, relative to size\n positions[i] = relativeLength(value, [plotWidth, plotHeight, smallestSize, positions[2]][i]) + (handleSlicingRoom ? slicingRoom : 0);\n }\n // Inner size cannot be larger than size (#3632)\n if (positions[3] > positions[2]) {\n positions[3] = positions[2];\n }\n // Thickness overrides innerSize, need to be less than pie size (#6647)\n if (isNumber(thickness) &&\n thickness * 2 < positions[2] && thickness > 0) {\n positions[3] = positions[2] - thickness * 2;\n }\n fireEvent(this, 'afterGetCenter', { positions: positions });\n return positions;\n }\n CenteredUtilities.getCenter = getCenter;\n /**\n * GetStartAndEndRadians - Calculates start and end angles in radians.\n * Used in series types such as pie and sunburst.\n *\n * @private\n * @function Highcharts.CenteredSeriesMixin.getStartAndEndRadians\n *\n * @param {number} [start]\n * Start angle in degrees.\n *\n * @param {number} [end]\n * Start angle in degrees.\n *\n * @return {Highcharts.RadianAngles}\n * Returns an object containing start and end angles as radians.\n */\n function getStartAndEndRadians(start, end) {\n var startAngle = isNumber(start) ? start : 0, // Must be a number\n endAngle = ((isNumber(end) && // Must be a number\n end > startAngle && // Must be larger than the start angle\n // difference must be less than 360 degrees\n (end - startAngle) < 360) ?\n end :\n startAngle + 360),\n correction = -90;\n return {\n start: deg2rad * (startAngle + correction),\n end: deg2rad * (endAngle + correction)\n };\n }\n CenteredUtilities.getStartAndEndRadians = getStartAndEndRadians;\n})(CenteredUtilities || (CenteredUtilities = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Series_CenteredUtilities = (CenteredUtilities);\n/* *\n *\n * API Declarations\n *\n * */\n/**\n * @private\n * @interface Highcharts.RadianAngles\n */ /**\n* @name Highcharts.RadianAngles#end\n* @type {number}\n*/ /**\n* @name Highcharts.RadianAngles#start\n* @type {number}\n*/\n''; // Keeps doclets above in JS file\n\n;// ./code/es5/es-modules/Extensions/Pane/PaneComposition.js\n/* *\n *\n * Imports\n *\n * */\n\nvar addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, PaneComposition_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Functions\n *\n * */\n/** @private */\nfunction chartGetHoverPane(eventArgs) {\n var chart = this;\n var hoverPane;\n if (eventArgs) {\n chart.pane.forEach(function (pane) {\n var x = eventArgs.chartX - chart.plotLeft,\n y = eventArgs.chartY - chart.plotTop;\n if (isInsidePane(x, y, pane.center)) {\n hoverPane = pane;\n }\n });\n }\n return hoverPane;\n}\n/** @private */\nfunction compose(ChartClass, PointerClass) {\n var chartProto = ChartClass.prototype;\n if (!chartProto.getHoverPane) {\n chartProto.collectionsWithUpdate.push('pane');\n chartProto.getHoverPane = chartGetHoverPane;\n addEvent(ChartClass, 'afterIsInsidePlot', onChartAfterIsInsiderPlot);\n addEvent(PointerClass, 'afterGetHoverData', onPointerAfterGetHoverData);\n addEvent(PointerClass, 'beforeGetHoverData', onPointerBeforeGetHoverData);\n }\n}\n/**\n * Check whether element is inside or outside pane.\n * @private\n * @param {number} x\n * Element's x coordinate\n * @param {number} y\n * Element's y coordinate\n * @param {Array<number>} center\n * Pane's center (x, y) and diameter\n * @param {number} startAngle\n * Pane's normalized start angle in radians (<-PI, PI>)\n * @param {number} endAngle\n * Pane's normalized end angle in radians (<-PI, PI>)\n */\nfunction isInsidePane(x, y, center, startAngle, endAngle) {\n var insideSlice = true;\n var cx = center[0],\n cy = center[1];\n var distance = Math.sqrt(Math.pow(x - cx, 2) + Math.pow(y - cy, 2));\n if (defined(startAngle) && defined(endAngle)) {\n // Round angle to N-decimals to avoid numeric errors\n var angle = Math.atan2(correctFloat(y - cy, 8),\n correctFloat(x - cx, 8));\n // Ignore full circle panes:\n if (endAngle !== startAngle) {\n // If normalized start angle is bigger than normalized end,\n // it means angles have different signs. In such situation we\n // check the <-PI, startAngle> and <endAngle, PI> ranges.\n if (startAngle > endAngle) {\n insideSlice = (angle >= startAngle &&\n angle <= Math.PI) || (angle <= endAngle &&\n angle >= -Math.PI);\n }\n else {\n // In this case, we simple check if angle is within the\n // <startAngle, endAngle> range\n insideSlice = angle >= startAngle &&\n angle <= correctFloat(endAngle, 8);\n }\n }\n }\n // Round up radius because x and y values are rounded\n return distance <= Math.ceil(center[2] / 2) && insideSlice;\n}\n/**\n * Check if (x, y) position is within pane for polar.\n * @private\n */\nfunction onChartAfterIsInsiderPlot(e) {\n var _a;\n var chart = this;\n if (chart.polar) {\n if (e.options.inverted) {\n _a = [e.y, e.x], e.x = _a[0], e.y = _a[1];\n }\n e.isInsidePlot = chart.pane.some(function (pane) { return isInsidePane(e.x, e.y, pane.center, pane.axis && pane.axis.normalizedStartAngleRad, pane.axis && pane.axis.normalizedEndAngleRad); });\n }\n}\n/**\n *\n */\nfunction onPointerAfterGetHoverData(eventArgs) {\n var chart = this.chart;\n if (eventArgs.hoverPoint &&\n eventArgs.hoverPoint.plotX &&\n eventArgs.hoverPoint.plotY &&\n chart.hoverPane &&\n !isInsidePane(eventArgs.hoverPoint.plotX, eventArgs.hoverPoint.plotY, chart.hoverPane.center)) {\n eventArgs.hoverPoint = void 0;\n }\n}\n/** @private */\nfunction onPointerBeforeGetHoverData(eventArgs) {\n var chart = this.chart;\n if (chart.polar) {\n // Find pane we are currently hovering over.\n chart.hoverPane = chart.getHoverPane(eventArgs);\n // Edit filter method to handle polar\n eventArgs.filter = function (s) {\n return (s.visible &&\n !(!eventArgs.shared && s.directTouch) && // #3821\n PaneComposition_pick(s.options.enableMouseTracking, true) &&\n (!chart.hoverPane || s.xAxis.pane === chart.hoverPane));\n };\n }\n else {\n chart.hoverPane = void 0;\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar PaneComposition = {\n compose: compose\n};\n/* harmony default export */ var Pane_PaneComposition = (PaneComposition);\n\n;// ./code/es5/es-modules/Extensions/Pane/PaneDefaults.js\n/* *\n *\n * (c) 2010-2024 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 *\n * API Options\n *\n * */\n/**\n * An array of background items for the pane.\n *\n * @sample {highcharts} highcharts/demo/gauge-speedometer/\n * Speedometer gauge with multiple backgrounds\n *\n * @type {Array<*>}\n * @optionparent pane.background\n */\nvar background = {\n /**\n * The class name for this background.\n *\n * @sample {highcharts} highcharts/css/pane/\n * Panes styled by CSS\n * @sample {highstock} highcharts/css/pane/\n * Panes styled by CSS\n * @sample {highmaps} highcharts/css/pane/\n * Panes styled by CSS\n *\n * @type {string}\n * @default highcharts-pane\n * @since 5.0.0\n * @apioption pane.background.className\n */\n /**\n * The shape of the pane background. When `solid`, the background\n * is circular. When `arc`, the background extends only from the min\n * to the max of the value axis.\n *\n * @type {Highcharts.PaneBackgroundShapeValue}\n * @since 2.3.0\n * @product highcharts\n */\n shape: 'circle',\n /**\n * The border radius of the pane background when the shape is `arc`. Can be\n * a number (pixels) or a percentage string.\n *\n * @since 11.4.2\n * @sample highcharts/series-solidgauge/pane-borderradius\n * Circular gauge and pane with equal border radius\n * @product highcharts\n * @type {number|string}\n */\n borderRadius: 0,\n /**\n * The pixel border width of the pane background.\n *\n * @since 2.3.0\n * @product highcharts\n */\n borderWidth: 1,\n /**\n * The pane background border color.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @since 2.3.0\n * @product highcharts\n */\n borderColor: \"#cccccc\" /* Palette.neutralColor20 */,\n /**\n * The background color or gradient for the pane.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @default { linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 }, stops: [[0, #ffffff], [1, #e6e6e6]] }\n * @since 2.3.0\n * @product highcharts\n */\n backgroundColor: {\n /** @ignore-option */\n linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },\n /** @ignore-option */\n stops: [\n [0, \"#ffffff\" /* Palette.backgroundColor */],\n [1, \"#e6e6e6\" /* Palette.neutralColor10 */]\n ]\n },\n /** @ignore-option */\n from: -Number.MAX_VALUE, // Corrected to axis min\n /**\n * The inner radius of the pane background. Can be either numeric\n * (pixels) or a percentage string.\n *\n * @type {number|string}\n * @since 2.3.0\n * @product highcharts\n */\n innerRadius: 0,\n /** @ignore-option */\n to: Number.MAX_VALUE, // Corrected to axis max\n /**\n * The outer radius of the circular pane background. Can be either\n * numeric (pixels) or a percentage string.\n *\n * @type {number|string}\n * @since 2.3.0\n * @product highcharts\n */\n outerRadius: '105%'\n};\n/**\n * The pane serves as a container for axes and backgrounds for circular\n * gauges and polar charts.\n *\n * @type {*|Array<*>}\n * @since 2.3.0\n * @product highcharts\n * @requires highcharts-more\n * @optionparent pane\n */\nvar pane = {\n /**\n * The end angle of the polar X axis or gauge value axis, given in\n * degrees where 0 is north. Defaults to [startAngle](#pane.startAngle)\n * + 360.\n *\n * @sample {highcharts} highcharts/demo/gauge-vu-meter/\n * VU-meter with custom start and end angle\n *\n * @type {number}\n * @since 2.3.0\n * @product highcharts\n * @apioption pane.endAngle\n */\n /**\n * The center of a polar chart or angular gauge, given as an array\n * of [x, y] positions. Positions can be given as integers that\n * transform to pixels, or as percentages of the plot area size.\n *\n * @sample {highcharts} highcharts/demo/gauge-vu-meter/\n * Two gauges with different center\n *\n * @type {Array<string|number>}\n * @default [\"50%\", \"50%\"]\n * @since 2.3.0\n * @product highcharts\n */\n center: ['50%', '50%'],\n /**\n * The size of the pane, either as a number defining pixels, or a\n * percentage defining a percentage of the available plot area (the\n * smallest of the plot height or plot width).\n *\n * @sample {highcharts} highcharts/demo/gauge-vu-meter/\n * Smaller size\n *\n * @type {number|string}\n * @product highcharts\n */\n size: '85%',\n /**\n * The inner size of the pane, either as a number defining pixels, or a\n * percentage defining a percentage of the pane's size.\n *\n * @sample {highcharts} highcharts/series-polar/column-inverted-inner\n * The inner size set to 20%\n *\n * @type {number|string}\n * @product highcharts\n */\n innerSize: '0%',\n /**\n * The start angle of the polar X axis or gauge axis, given in degrees\n * where 0 is north. Defaults to 0.\n *\n * @sample {highcharts} highcharts/demo/gauge-vu-meter/\n * VU-meter with custom start and end angle\n *\n * @since 2.3.0\n * @product highcharts\n */\n startAngle: 0\n};\n/* *\n *\n * Default Export\n *\n * */\nvar PaneDefaults = {\n pane: pane,\n background: background\n};\n/* harmony default export */ var Pane_PaneDefaults = (PaneDefaults);\n\n;// ./code/es5/es-modules/Extensions/Pane/Pane.js\n/* *\n *\n * (c) 2010-2024 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\n\n\nvar extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, splat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).splat;\n/* *\n *\n * Class\n *\n * */\n/**\n * The Pane object allows options that are common to a set of X and Y axes.\n *\n * In the future, this can be extended to basic Highcharts and Highcharts Stock.\n *\n * @private\n * @class\n * @name Highcharts.Pane\n * @param {Highcharts.PaneOptions} options\n * @param {Highcharts.Chart} chart\n */\nvar Pane = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function Pane(options, chart) {\n this.coll = 'pane'; // Member of chart.pane\n this.init(options, chart);\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Initialize the Pane object\n *\n * @private\n * @function Highcharts.Pane#init\n *\n * @param {Highcharts.PaneOptions} options\n *\n * @param {Highcharts.Chart} chart\n */\n Pane.prototype.init = function (options, chart) {\n this.chart = chart;\n this.background = [];\n chart.pane.push(this);\n this.setOptions(options);\n };\n /**\n * @private\n * @function Highcharts.Pane#setOptions\n *\n * @param {Highcharts.PaneOptions} options\n */\n Pane.prototype.setOptions = function (options) {\n // Set options. Angular charts have a default background (#3318)\n this.options = options = merge(Pane_PaneDefaults.pane, this.chart.angular ? { background: {} } : void 0, options);\n };\n /**\n * Render the pane with its backgrounds.\n *\n * @private\n * @function Highcharts.Pane#render\n */\n Pane.prototype.render = function () {\n var options = this.options,\n renderer = this.chart.renderer;\n if (!this.group) {\n this.group = renderer.g('pane-group')\n .attr({ zIndex: options.zIndex || 0 })\n .add();\n }\n this.updateCenter();\n var backgroundOption = this.options.background;\n // Render the backgrounds\n if (backgroundOption) {\n backgroundOption = splat(backgroundOption);\n var len = Math.max(backgroundOption.length,\n this.background.length || 0);\n for (var i = 0; i < len; i++) {\n // #6641 - if axis exists, chart is circular and apply\n // background\n if (backgroundOption[i] && this.axis) {\n this.renderBackground(merge(Pane_PaneDefaults.background, backgroundOption[i]), i);\n }\n else if (this.background[i]) {\n this.background[i] = this.background[i].destroy();\n this.background.splice(i, 1);\n }\n }\n }\n };\n /**\n * Render an individual pane background.\n *\n * @private\n * @function Highcharts.Pane#renderBackground\n *\n * @param {Highcharts.PaneBackgroundOptions} backgroundOptions\n * Background options\n *\n * @param {number} i\n * The index of the background in this.backgrounds\n */\n Pane.prototype.renderBackground = function (backgroundOptions, i) {\n var attribs = {\n 'class': 'highcharts-pane ' + (backgroundOptions.className || '')\n };\n var method = 'animate';\n if (!this.chart.styledMode) {\n extend(attribs, {\n 'fill': backgroundOptions.backgroundColor,\n 'stroke': backgroundOptions.borderColor,\n 'stroke-width': backgroundOptions.borderWidth\n });\n }\n if (!this.background[i]) {\n this.background[i] = this.chart.renderer\n .path()\n .add(this.group);\n method = 'attr';\n }\n this.background[i][method]({\n 'd': this.axis.getPlotBandPath(backgroundOptions.from, backgroundOptions.to, backgroundOptions)\n }).attr(attribs);\n };\n /**\n * Gets the center for the pane and its axis.\n *\n * @private\n * @function Highcharts.Pane#updateCenter\n * @param {Highcharts.Axis} [axis]\n */\n Pane.prototype.updateCenter = function (axis) {\n this.center = (axis ||\n this.axis ||\n {}).center = Series_CenteredUtilities.getCenter.call(this);\n };\n /**\n * Destroy the pane item\n *\n * @ignore\n * @private\n * @function Highcharts.Pane#destroy\n * /\n destroy: function () {\n erase(this.chart.pane, this);\n this.background.forEach(function (background) {\n background.destroy();\n });\n this.background.length = 0;\n this.group = this.group.destroy();\n },\n */\n /**\n * Update the pane item with new options\n *\n * @private\n * @function Highcharts.Pane#update\n * @param {Highcharts.PaneOptions} options\n * New pane options\n * @param {boolean} [redraw]\n */\n Pane.prototype.update = function (options, redraw) {\n merge(true, this.options, options);\n this.setOptions(this.options);\n this.render();\n this.chart.axes.forEach(function (axis) {\n if (axis.pane === this) {\n axis.pane = null;\n axis.update({}, redraw);\n }\n }, this);\n };\n /* *\n *\n * Static Properties\n *\n * */\n Pane.compose = Pane_PaneComposition.compose;\n return Pane;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Pane_Pane = (Pane);\n/* *\n *\n * API Declarations\n *\n * */\n/**\n * @typedef {\"arc\"|\"circle\"|\"solid\"} Highcharts.PaneBackgroundShapeValue\n */\n''; // Keeps doclets above in JS file\n\n;// ./code/es5/es-modules/Series/AreaRange/AreaRangePoint.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar _a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.area.prototype, AreaPoint = _a.pointClass, areaProto = _a.pointClass.prototype;\n\nvar AreaRangePoint_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, AreaRangePoint_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber;\n/* *\n *\n * Class\n *\n * */\nvar AreaRangePoint = /** @class */ (function (_super) {\n __extends(AreaRangePoint, _super);\n function AreaRangePoint() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Range series only. The high or maximum value for each data point.\n * @name Highcharts.Point#high\n * @type {number|undefined}\n */\n /**\n * Range series only. The low or minimum value for each data point.\n * @name Highcharts.Point#low\n * @type {number|undefined}\n */\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n AreaRangePoint.prototype.setState = function () {\n var prevState = this.state,\n series = this.series,\n isPolar = series.chart.polar;\n if (!AreaRangePoint_defined(this.plotHigh)) {\n // Boost doesn't calculate plotHigh\n this.plotHigh = series.yAxis.toPixels(this.high, true);\n }\n if (!AreaRangePoint_defined(this.plotLow)) {\n // Boost doesn't calculate plotLow\n this.plotLow = this.plotY = series.yAxis.toPixels(this.low, true);\n }\n series.lowerStateMarkerGraphic = series.stateMarkerGraphic;\n series.stateMarkerGraphic = series.upperStateMarkerGraphic;\n // Change state also for the top marker\n this.graphic = this.graphics && this.graphics[1];\n this.plotY = this.plotHigh;\n if (isPolar && AreaRangePoint_isNumber(this.plotHighX)) {\n this.plotX = this.plotHighX;\n }\n // Top state:\n areaProto.setState.apply(this, arguments);\n this.state = prevState;\n // Now restore defaults\n this.plotY = this.plotLow;\n this.graphic = this.graphics && this.graphics[0];\n if (isPolar && AreaRangePoint_isNumber(this.plotLowX)) {\n this.plotX = this.plotLowX;\n }\n series.upperStateMarkerGraphic = series.stateMarkerGraphic;\n series.stateMarkerGraphic = series.lowerStateMarkerGraphic;\n // Lower marker is stored at stateMarkerGraphic\n // to avoid reference duplication (#7021)\n series.lowerStateMarkerGraphic = void 0;\n var originalSettings = series.modifyMarkerSettings();\n // Bottom state\n areaProto.setState.apply(this, arguments);\n // Restore previous state\n series.restoreMarkerSettings(originalSettings);\n };\n AreaRangePoint.prototype.haloPath = function () {\n var isPolar = this.series.chart.polar;\n var path = [];\n // Bottom halo\n this.plotY = this.plotLow;\n if (isPolar && AreaRangePoint_isNumber(this.plotLowX)) {\n this.plotX = this.plotLowX;\n }\n if (this.isInside) {\n path = areaProto.haloPath.apply(this, arguments);\n }\n // Top halo\n this.plotY = this.plotHigh;\n if (isPolar && AreaRangePoint_isNumber(this.plotHighX)) {\n this.plotX = this.plotHighX;\n }\n if (this.isTopInside) {\n path = path.concat(areaProto.haloPath.apply(this, arguments));\n }\n return path;\n };\n AreaRangePoint.prototype.isValid = function () {\n return AreaRangePoint_isNumber(this.low) && AreaRangePoint_isNumber(this.high);\n };\n return AreaRangePoint;\n}(AreaPoint));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var AreaRange_AreaRangePoint = (AreaRangePoint);\n\n;// ./code/es5/es-modules/Series/AreaRange/AreaRangeSeries.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar AreaRangeSeries_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\nvar AreaRangeSeries_a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, AreaSeries = AreaRangeSeries_a.area, AreaRangeSeries_areaProto = AreaRangeSeries_a.area.prototype, columnProto = AreaRangeSeries_a.column.prototype;\n\nvar AreaRangeSeries_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, AreaRangeSeries_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, AreaRangeSeries_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, AreaRangeSeries_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, AreaRangeSeries_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, AreaRangeSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n * Constants\n *\n * */\n/**\n * The area range series is a carteseian series with higher and lower values for\n * each point along an X axis, where the area between the values is shaded.\n *\n * @sample {highcharts} highcharts/demo/arearange/\n * Area range chart\n * @sample {highstock} stock/demo/arearange/\n * Area range chart\n *\n * @extends plotOptions.area\n * @product highcharts highstock\n * @excluding stack, stacking\n * @requires highcharts-more\n * @optionparent plotOptions.arearange\n *\n * @private\n */\nvar areaRangeSeriesOptions = {\n /**\n * @see [fillColor](#plotOptions.arearange.fillColor)\n * @see [fillOpacity](#plotOptions.arearange.fillOpacity)\n *\n * @apioption plotOptions.arearange.color\n */\n /**\n * @default low\n * @apioption plotOptions.arearange.colorKey\n */\n /**\n * @see [color](#plotOptions.arearange.color)\n * @see [fillOpacity](#plotOptions.arearange.fillOpacity)\n *\n * @apioption plotOptions.arearange.fillColor\n */\n /**\n * @see [color](#plotOptions.arearange.color)\n * @see [fillColor](#plotOptions.arearange.fillColor)\n *\n * @default {highcharts} 0.75\n * @default {highstock} 0.75\n * @apioption plotOptions.arearange.fillOpacity\n */\n /**\n * Whether to apply a drop shadow to the graph line. Since 2.3 the\n * shadow can be an object configuration containing `color`, `offsetX`,\n * `offsetY`, `opacity` and `width`.\n *\n * @type {boolean|Highcharts.ShadowOptionsObject}\n * @product highcharts\n * @apioption plotOptions.arearange.shadow\n */\n /**\n * Pixel width of the arearange graph line.\n *\n * @since 2.3.0\n *\n * @private\n */\n lineWidth: 1,\n /**\n * @type {number|null}\n */\n threshold: null,\n tooltip: {\n pointFormat: '<span style=\"color:{series.color}\">\\u25CF</span> ' +\n '{series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'\n },\n /**\n * Whether the whole area or just the line should respond to mouseover\n * tooltips and other mouse or touch events.\n *\n * @since 2.3.0\n *\n * @private\n */\n trackByArea: true,\n /**\n * Extended data labels for range series types. Range series data\n * labels use no `x` and `y` options. Instead, they have `xLow`,\n * `xHigh`, `yLow` and `yHigh` options to allow the higher and lower\n * data label sets individually.\n *\n * @declare Highcharts.SeriesAreaRangeDataLabelsOptionsObject\n * @exclude x, y\n * @since 2.3.0\n * @product highcharts highstock\n *\n * @private\n */\n dataLabels: {\n align: void 0,\n verticalAlign: void 0,\n /**\n * X offset of the lower data labels relative to the point value.\n *\n * @sample highcharts/plotoptions/arearange-datalabels/\n * Data labels on range series\n * @sample highcharts/plotoptions/arearange-datalabels/\n * Data labels on range series\n */\n xLow: 0,\n /**\n * X offset of the higher data labels relative to the point value.\n *\n * @sample highcharts/plotoptions/arearange-datalabels/\n * Data labels on range series\n */\n xHigh: 0,\n /**\n * Y offset of the lower data labels relative to the point value.\n *\n * @sample highcharts/plotoptions/arearange-datalabels/\n * Data labels on range series\n */\n yLow: 0,\n /**\n * Y offset of the higher data labels relative to the point value.\n *\n * @sample highcharts/plotoptions/arearange-datalabels/\n * Data labels on range series\n */\n yHigh: 0\n }\n};\n/* *\n *\n * Class\n *\n * */\n/**\n * The AreaRange series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.arearange\n *\n * @augments Highcharts.Series\n */\nvar AreaRangeSeries = /** @class */ (function (_super) {\n AreaRangeSeries_extends(AreaRangeSeries, _super);\n function AreaRangeSeries() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n AreaRangeSeries.prototype.toYData = function (point) {\n return [point.low, point.high];\n };\n /**\n * Translate a point's plotHigh from the internal angle and radius measures\n * to true plotHigh coordinates. This is an addition of the toXY method\n * found in Polar.js, because it runs too early for arearanges to be\n * considered (#3419).\n * @private\n */\n AreaRangeSeries.prototype.highToXY = function (point) {\n // Find the polar plotX and plotY\n var chart = this.chart,\n xy = this.xAxis.postTranslate(point.rectPlotX || 0,\n this.yAxis.len - (point.plotHigh || 0));\n point.plotHighX = xy.x - chart.plotLeft;\n point.plotHigh = xy.y - chart.plotTop;\n point.plotLowX = point.plotX;\n };\n /**\n * Extend the line series' getSegmentPath method by applying the segment\n * path to both lower and higher values of the range.\n * @private\n */\n AreaRangeSeries.prototype.getGraphPath = function (points) {\n var highPoints = [],\n highAreaPoints = [],\n getGraphPath = AreaRangeSeries_areaProto.getGraphPath,\n options = this.options,\n polar = this.chart.polar,\n connectEnds = polar && options.connectEnds !== false,\n connectNulls = options.connectNulls;\n var i,\n point,\n pointShim,\n step = options.step;\n points = points || this.points;\n // Create the top line and the top part of the area fill. The area fill\n // compensates for null points by drawing down to the lower graph,\n // moving across the null gap and starting again at the lower graph.\n i = points.length;\n while (i--) {\n point = points[i];\n // Support for polar\n var highAreaPoint = polar ? {\n plotX: point.rectPlotX,\n plotY: point.yBottom,\n doCurve: false // #5186, gaps in areasplinerange fill\n } : {\n plotX: point.plotX,\n plotY: point.plotY,\n doCurve: false // #5186, gaps in areasplinerange fill\n };\n if (!point.isNull &&\n !connectEnds &&\n !connectNulls &&\n (!points[i + 1] || points[i + 1].isNull)) {\n highAreaPoints.push(highAreaPoint);\n }\n pointShim = {\n polarPlotY: point.polarPlotY,\n rectPlotX: point.rectPlotX,\n yBottom: point.yBottom,\n // `plotHighX` is for polar charts\n plotX: AreaRangeSeries_pick(point.plotHighX, point.plotX),\n plotY: point.plotHigh,\n isNull: point.isNull\n };\n highAreaPoints.push(pointShim);\n highPoints.push(pointShim);\n if (!point.isNull &&\n !connectEnds &&\n !connectNulls &&\n (!points[i - 1] || points[i - 1].isNull)) {\n highAreaPoints.push(highAreaPoint);\n }\n }\n // Get the paths\n var lowerPath = getGraphPath.call(this,\n points);\n if (step) {\n if (step === true) {\n step = 'left';\n }\n options.step = {\n left: 'right',\n center: 'center',\n right: 'left'\n }[step]; // Swap for reading in getGraphPath\n }\n var higherPath = getGraphPath.call(this,\n highPoints);\n var higherAreaPath = getGraphPath.call(this,\n highAreaPoints);\n options.step = step;\n // Create a line on both top and bottom of the range\n var linePath = [].concat(lowerPath,\n higherPath);\n // For the area path, we need to change the 'move' statement into\n // 'lineTo'\n if (!this.chart.polar &&\n higherAreaPath[0] &&\n higherAreaPath[0][0] === 'M') {\n // This probably doesn't work for spline\n higherAreaPath[0] = [\n 'L',\n higherAreaPath[0][1],\n higherAreaPath[0][2]\n ];\n }\n this.graphPath = linePath;\n this.areaPath = lowerPath.concat(higherAreaPath);\n // Prepare for sideways animation\n linePath.isArea = true;\n linePath.xMap = lowerPath.xMap;\n this.areaPath.xMap = lowerPath.xMap;\n return linePath;\n };\n /**\n * Extend the basic drawDataLabels method by running it for both lower and\n * higher values.\n * @private\n */\n AreaRangeSeries.prototype.drawDataLabels = function () {\n var _a,\n _b;\n var data = this.points,\n length = data.length,\n originalDataLabels = [],\n dataLabelOptions = this.options.dataLabels,\n inverted = this.chart.inverted;\n var i,\n point,\n up,\n upperDataLabelOptions,\n lowerDataLabelOptions;\n if (dataLabelOptions) {\n // Split into upper and lower options. If data labels is an array,\n // the first element is the upper label, the second is the lower.\n //\n // TODO: We want to change this and allow multiple labels for both\n // upper and lower values in the future - introducing some options\n // for which point value to use as Y for the dataLabel, so that this\n // could be handled in Series.drawDataLabels. This would also\n // improve performance since we now have to loop over all the points\n // multiple times to work around the data label logic.\n if (isArray(dataLabelOptions)) {\n upperDataLabelOptions = dataLabelOptions[0] || {\n enabled: false\n };\n lowerDataLabelOptions = dataLabelOptions[1] || {\n enabled: false\n };\n }\n else {\n // Make copies\n upperDataLabelOptions = AreaRangeSeries_extend({}, dataLabelOptions);\n upperDataLabelOptions.x = dataLabelOptions.xHigh;\n upperDataLabelOptions.y = dataLabelOptions.yHigh;\n lowerDataLabelOptions = AreaRangeSeries_extend({}, dataLabelOptions);\n lowerDataLabelOptions.x = dataLabelOptions.xLow;\n lowerDataLabelOptions.y = dataLabelOptions.yLow;\n }\n // Draw upper labels\n if (upperDataLabelOptions.enabled || ((_a = this.hasDataLabels) === null || _a === void 0 ? void 0 : _a.call(this))) {\n // Set preliminary values for plotY and dataLabel\n // and draw the upper labels\n i = length;\n while (i--) {\n point = data[i];\n if (point) {\n var _c = point.plotHigh,\n plotHigh = _c === void 0 ? 0 : _c,\n _d = point.plotLow,\n plotLow = _d === void 0 ? 0 : _d;\n up = upperDataLabelOptions.inside ?\n plotHigh < plotLow :\n plotHigh > plotLow;\n point.y = point.high;\n point._plotY = point.plotY;\n point.plotY = plotHigh;\n // Store original data labels and set preliminary label\n // objects to be picked up in the uber method\n originalDataLabels[i] = point.dataLabel;\n point.dataLabel = point.dataLabelUpper;\n // Set the default offset\n point.below = up;\n if (inverted) {\n if (!upperDataLabelOptions.align) {\n upperDataLabelOptions.align = up ?\n 'right' : 'left';\n }\n }\n else {\n if (!upperDataLabelOptions.verticalAlign) {\n upperDataLabelOptions.verticalAlign = up ?\n 'top' :\n 'bottom';\n }\n }\n }\n }\n this.options.dataLabels = upperDataLabelOptions;\n if (AreaRangeSeries_areaProto.drawDataLabels) {\n // #1209:\n AreaRangeSeries_areaProto.drawDataLabels.apply(this, arguments);\n }\n // Reset state after the upper labels were created. Move\n // it to point.dataLabelUpper and reassign the originals.\n // We do this here to support not drawing a lower label.\n i = length;\n while (i--) {\n point = data[i];\n if (point) {\n point.dataLabelUpper = point.dataLabel;\n point.dataLabel = originalDataLabels[i];\n delete point.dataLabels;\n point.y = point.low;\n point.plotY = point._plotY;\n }\n }\n }\n // Draw lower labels\n if (lowerDataLabelOptions.enabled || ((_b = this.hasDataLabels) === null || _b === void 0 ? void 0 : _b.call(this))) {\n i = length;\n while (i--) {\n point = data[i];\n if (point) {\n var _e = point.plotHigh,\n plotHigh = _e === void 0 ? 0 : _e,\n _f = point.plotLow,\n plotLow = _f === void 0 ? 0 : _f;\n up = lowerDataLabelOptions.inside ?\n plotHigh < plotLow :\n plotHigh > plotLow;\n // Set the default offset\n point.below = !up;\n if (inverted) {\n if (!lowerDataLabelOptions.align) {\n lowerDataLabelOptions.align = up ?\n 'left' : 'right';\n }\n }\n else {\n if (!lowerDataLabelOptions.verticalAlign) {\n lowerDataLabelOptions.verticalAlign = up ?\n 'bottom' :\n 'top';\n }\n }\n }\n }\n this.options.dataLabels = lowerDataLabelOptions;\n if (AreaRangeSeries_areaProto.drawDataLabels) {\n AreaRangeSeries_areaProto.drawDataLabels.apply(this, arguments);\n }\n }\n // Merge upper and lower into point.dataLabels for later destroying\n if (upperDataLabelOptions.enabled) {\n i = length;\n while (i--) {\n point = data[i];\n if (point) {\n point.dataLabels = [\n point.dataLabelUpper,\n point.dataLabel\n ].filter(function (label) {\n return !!label;\n });\n }\n }\n }\n // Reset options\n this.options.dataLabels = dataLabelOptions;\n }\n };\n AreaRangeSeries.prototype.alignDataLabel = function () {\n columnProto.alignDataLabel.apply(this, arguments);\n };\n AreaRangeSeries.prototype.modifyMarkerSettings = function () {\n var series = this,\n originalMarkerSettings = {\n marker: series.options.marker,\n symbol: series.symbol\n };\n if (series.options.lowMarker) {\n var _a = series.options,\n marker = _a.marker,\n lowMarker = _a.lowMarker;\n series.options.marker = AreaRangeSeries_merge(marker, lowMarker);\n if (lowMarker.symbol) {\n series.symbol = lowMarker.symbol;\n }\n }\n return originalMarkerSettings;\n };\n AreaRangeSeries.prototype.restoreMarkerSettings = function (originalSettings) {\n var series = this;\n series.options.marker = originalSettings.marker;\n series.symbol = originalSettings.symbol;\n };\n AreaRangeSeries.prototype.drawPoints = function () {\n var series = this,\n pointLength = series.points.length;\n var i,\n point;\n var originalSettings = series.modifyMarkerSettings();\n // Draw bottom points\n AreaRangeSeries_areaProto.drawPoints.apply(series, arguments);\n // Restore previous state\n series.restoreMarkerSettings(originalSettings);\n // Prepare drawing top points\n i = 0;\n while (i < pointLength) {\n point = series.points[i];\n /**\n * Array for multiple SVG graphics representing the point in the\n * chart. Only used in cases where the point can not be represented\n * by a single graphic.\n *\n * @see Highcharts.Point#graphic\n *\n * @name Highcharts.Point#graphics\n * @type {Array<Highcharts.SVGElement>|undefined}\n */\n point.graphics = point.graphics || [];\n // Save original props to be overridden by temporary props for top\n // points\n point.origProps = {\n plotY: point.plotY,\n plotX: point.plotX,\n isInside: point.isInside,\n negative: point.negative,\n zone: point.zone,\n y: point.y\n };\n if (point.graphic || point.graphics[0]) {\n point.graphics[0] = point.graphic;\n }\n point.graphic = point.graphics[1];\n point.plotY = point.plotHigh;\n if (AreaRangeSeries_defined(point.plotHighX)) {\n point.plotX = point.plotHighX;\n }\n point.y = AreaRangeSeries_pick(point.high, point.origProps.y); // #15523\n point.negative = point.y < (series.options.threshold || 0);\n if (series.zones.length) {\n point.zone = point.getZone();\n }\n if (!series.chart.polar) {\n point.isInside = point.isTopInside = (typeof point.plotY !== 'undefined' &&\n point.plotY >= 0 &&\n point.plotY <= series.yAxis.len && // #3519\n point.plotX >= 0 &&\n point.plotX <= series.xAxis.len);\n }\n i++;\n }\n // Draw top points\n AreaRangeSeries_areaProto.drawPoints.apply(series, arguments);\n // Reset top points preliminary modifications\n i = 0;\n while (i < pointLength) {\n point = series.points[i];\n point.graphics = point.graphics || [];\n if (point.graphic || point.graphics[1]) {\n point.graphics[1] = point.graphic;\n }\n point.graphic = point.graphics[0];\n if (point.origProps) {\n AreaRangeSeries_extend(point, point.origProps);\n delete point.origProps;\n }\n i++;\n }\n };\n AreaRangeSeries.prototype.hasMarkerChanged = function (options, oldOptions) {\n var lowMarker = options.lowMarker,\n oldMarker = oldOptions.lowMarker || {};\n return (lowMarker && (lowMarker.enabled === false ||\n oldMarker.symbol !== lowMarker.symbol || // #10870, #15946\n oldMarker.height !== lowMarker.height || // #16274\n oldMarker.width !== lowMarker.width // #16274\n )) || _super.prototype.hasMarkerChanged.call(this, options, oldOptions);\n };\n /**\n *\n * Static Properties\n *\n */\n AreaRangeSeries.defaultOptions = AreaRangeSeries_merge(AreaSeries.defaultOptions, areaRangeSeriesOptions);\n return AreaRangeSeries;\n}(AreaSeries));\nAreaRangeSeries_addEvent(AreaRangeSeries, 'afterTranslate', function () {\n // Set plotLow and plotHigh\n var _this = this;\n // Rules out lollipop, but lollipop should not inherit range series in the\n // first place\n if (this.pointArrayMap.join(',') === 'low,high') {\n this.points.forEach(function (point) {\n var high = point.high,\n plotY = point.plotY;\n if (point.isNull) {\n point.plotY = void 0;\n }\n else {\n point.plotLow = plotY;\n // Calculate plotHigh value based on each yAxis scale (#15752)\n point.plotHigh = AreaRangeSeries_isNumber(high) ? _this.yAxis.translate(_this.dataModify ?\n _this.dataModify.modifyValue(high) : high, false, true, void 0, true) : void 0;\n if (_this.dataModify) {\n point.yBottom = point.plotHigh;\n }\n }\n });\n }\n}, { order: 0 });\nAreaRangeSeries_addEvent(AreaRangeSeries, 'afterTranslate', function () {\n var _this = this;\n this.points.forEach(function (point) {\n // Postprocessing after the PolarComposition's afterTranslate\n if (_this.chart.polar) {\n _this.highToXY(point);\n point.plotLow = point.plotY;\n point.tooltipPos = [\n ((point.plotHighX || 0) + (point.plotLowX || 0)) / 2,\n ((point.plotHigh || 0) + (point.plotLow || 0)) / 2\n ];\n // Put the tooltip in the middle of the range\n }\n else {\n var tooltipPos = point.pos(false,\n point.plotLow),\n posHigh = point.pos(false,\n point.plotHigh);\n if (tooltipPos && posHigh) {\n tooltipPos[0] = (tooltipPos[0] + posHigh[0]) / 2;\n tooltipPos[1] = (tooltipPos[1] + posHigh[1]) / 2;\n }\n point.tooltipPos = tooltipPos;\n }\n });\n}, { order: 3 });\nAreaRangeSeries_extend(AreaRangeSeries.prototype, {\n deferTranslatePolar: true,\n pointArrayMap: ['low', 'high'],\n pointClass: AreaRange_AreaRangePoint,\n pointValKey: 'low',\n setStackedPoints: noop\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('arearange', AreaRangeSeries);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var AreaRange_AreaRangeSeries = (AreaRangeSeries);\n\n;// ./code/es5/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar AreaSplineRangeSeries_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar splineProto = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.spline.prototype;\n\nvar AreaSplineRangeSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, AreaSplineRangeSeries_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend;\n/* *\n *\n * Class\n *\n * */\n/**\n * The areasplinerange series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.areasplinerange\n *\n * @augments Highcharts.Series\n */\nvar AreaSplineRangeSeries = /** @class */ (function (_super) {\n AreaSplineRangeSeries_extends(AreaSplineRangeSeries, _super);\n function AreaSplineRangeSeries() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Static Properties\n *\n * */\n AreaSplineRangeSeries.defaultOptions = AreaSplineRangeSeries_merge(AreaRange_AreaRangeSeries.defaultOptions);\n return AreaSplineRangeSeries;\n}(AreaRange_AreaRangeSeries));\nAreaSplineRangeSeries_extend(AreaSplineRangeSeries.prototype, {\n getPointSpline: splineProto.getPointSpline\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('areasplinerange', AreaSplineRangeSeries);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var AreaSplineRange_AreaSplineRangeSeries = ((/* unused pure expression or super */ null && (AreaSplineRangeSeries)));\n/* *\n *\n * API Options\n *\n * */\n/**\n * The area spline range is a cartesian series type with higher and\n * lower Y values along an X axis. The area inside the range is colored, and\n * the graph outlining the area is a smoothed spline.\n *\n * @sample {highstock|highstock} stock/demo/areasplinerange/\n * Area spline range\n *\n * @extends plotOptions.arearange\n * @since 2.3.0\n * @excluding step, boostThreshold, boostBlending\n * @product highcharts highstock\n * @requires highcharts-more\n * @apioption plotOptions.areasplinerange\n */\n/**\n * @see [fillColor](#plotOptions.areasplinerange.fillColor)\n * @see [fillOpacity](#plotOptions.areasplinerange.fillOpacity)\n *\n * @apioption plotOptions.areasplinerange.color\n */\n/**\n * @see [color](#plotOptions.areasplinerange.color)\n * @see [fillOpacity](#plotOptions.areasplinerange.fillOpacity)\n *\n * @apioption plotOptions.areasplinerange.fillColor\n */\n/**\n * @see [color](#plotOptions.areasplinerange.color)\n * @see [fillColor](#plotOptions.areasplinerange.fillColor)\n *\n * @default 0.75\n * @apioption plotOptions.areasplinerange.fillOpacity\n */\n/**\n * A `areasplinerange` series. If the [type](#series.areasplinerange.type)\n * option is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends series,plotOptions.areasplinerange\n * @excluding dataParser, dataURL, stack, step, boostThreshold, boostBlending\n * @product highcharts highstock\n * @requires highcharts-more\n * @apioption series.areasplinerange\n */\n/**\n * @see [fillColor](#series.areasplinerange.fillColor)\n * @see [fillOpacity](#series.areasplinerange.fillOpacity)\n *\n * @apioption series.areasplinerange.color\n */\n/**\n * An array of data points for the series. For the `areasplinerange`\n * series 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 correspond\n * to `x,low,high`. If the first value is a string, it is applied as the name\n * of the point, and the `x` value is inferred. The `x` value can also be\n * omitted, in which case the inner arrays should be of length 2\\. Then the\n * `x` value is automatically calculated, either starting at 0 and\n * incremented by 1, or from `pointStart` and `pointInterval` given in the\n * series options.\n * ```js\n * data: [\n * [0, 0, 5],\n * [1, 9, 1],\n * [2, 5, 2]\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\n * data points exceeds the series'\n * [turboThreshold](#series.areasplinerange.turboThreshold), this option is\n * not available.\n * ```js\n * data: [{\n * x: 1,\n * low: 5,\n * high: 0,\n * name: \"Point2\",\n * color: \"#00FF00\"\n * }, {\n * x: 1,\n * low: 4,\n * high: 1,\n * name: \"Point1\",\n * color: \"#FF00FF\"\n * }]\n * ```\n *\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<Array<(number|string),number>|Array<(number|string),number,number>|*>}\n * @extends series.arearange.data\n * @product highcharts highstock\n * @apioption series.areasplinerange.data\n */\n/**\n * @see [color](#series.areasplinerange.color)\n * @see [fillOpacity](#series.areasplinerange.fillOpacity)\n *\n * @apioption series.areasplinerange.fillColor\n */\n/**\n * @see [color](#series.areasplinerange.color)\n * @see [fillColor](#series.areasplinerange.fillColor)\n *\n * @default 0.75\n * @apioption series.areasplinerange.fillOpacity\n */\n''; // Adds doclets above to transpiled file\n\n;// ./code/es5/es-modules/Series/BoxPlot/BoxPlotSeriesDefaults.js\n/* *\n *\n * (c) 2010-2024 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 *\n * API Options\n *\n * */\n/**\n * A box plot is a convenient way of depicting groups of data through their\n * five-number summaries: the smallest observation (sample minimum), lower\n * quartile (Q1), median (Q2), upper quartile (Q3), and largest observation\n * (sample maximum).\n *\n * @sample highcharts/demo/box-plot/\n * Box plot\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n * @sample {highcharts} highcharts/series-scatter/jitter-boxplot\n * Jittered scatter plot on top of a box plot\n *\n * @extends plotOptions.column\n * @excluding borderColor, borderRadius, borderWidth, groupZPadding,\n * states, boostThreshold, boostBlending\n * @product highcharts\n * @requires highcharts-more\n * @optionparent plotOptions.boxplot\n */\nvar BoxPlotSeriesDefaults = {\n /**\n * @type {number|null}\n */\n threshold: null,\n tooltip: {\n pointFormat: '<span style=\"color:{point.color}\">\\u25CF</span> <b>' +\n '{series.name}</b><br/>' +\n 'Maximum: {point.high}<br/>' +\n 'Upper quartile: {point.q3}<br/>' +\n 'Median: {point.median}<br/>' +\n 'Lower quartile: {point.q1}<br/>' +\n 'Minimum: {point.low}<br/>'\n },\n /**\n * The length of the whiskers, the horizontal lines marking low and\n * high values. It can be a numerical pixel value, or a percentage\n * value of the box width. Set `0` to disable whiskers.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n *\n * @type {number|string}\n * @since 3.0\n * @product highcharts\n */\n whiskerLength: '50%',\n /**\n * The fill color of the box.\n *\n * In styled mode, the fill color can be set with the\n * `.highcharts-boxplot-box` class.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @default #ffffff\n * @since 3.0\n * @product highcharts\n */\n fillColor: \"#ffffff\" /* Palette.backgroundColor */,\n /**\n * The width of the line surrounding the box. If any of\n * [stemWidth](#plotOptions.boxplot.stemWidth),\n * [medianWidth](#plotOptions.boxplot.medianWidth)\n * or [whiskerWidth](#plotOptions.boxplot.whiskerWidth) are `null`,\n * the lineWidth also applies to these lines.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n * Error bar styling\n *\n * @since 3.0\n * @product highcharts\n */\n lineWidth: 1,\n /**\n * The color of the median line. If `undefined`, the general series\n * color applies.\n *\n * In styled mode, the median stroke width can be set with the\n * `.highcharts-boxplot-median` class.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n * Error bar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject}\n * @since 3.0\n * @product highcharts\n * @apioption plotOptions.boxplot.medianColor\n */\n /**\n * The pixel width of the median line. If `null`, the\n * [lineWidth](#plotOptions.boxplot.lineWidth) is used.\n *\n * In styled mode, the median stroke width can be set with the\n * `.highcharts-boxplot-median` class.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n *\n * @type {number|null}\n * @since 3.0\n * @product highcharts\n */\n medianWidth: 2,\n /*\n // States are not working and are removed from docs.\n // Refer to: #2340\n states: {\n hover: {\n brightness: -0.3\n }\n },\n */\n /**\n * The color of the stem, the vertical line extending from the box to\n * the whiskers. If `undefined`, the series color is used.\n *\n * In styled mode, the stem stroke can be set with the\n * `.highcharts-boxplot-stem` class.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n * Error bar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @since 3.0\n * @product highcharts\n * @apioption plotOptions.boxplot.stemColor\n */\n /**\n * The dash style of the box.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n *\n * @type {Highcharts.DashStyleValue}\n * @default Solid\n * @since 8.1.0\n * @product highcharts\n * @apioption plotOptions.boxplot.boxDashStyle\n */\n /**\n * The dash style of the median.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n *\n * @type {Highcharts.DashStyleValue}\n * @default Solid\n * @since 8.1.0\n * @product highcharts\n * @apioption plotOptions.boxplot.medianDashStyle\n */\n /**\n * The dash style of the stem, the vertical line extending from the\n * box to the whiskers.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n * Error bar styling\n *\n * @type {Highcharts.DashStyleValue}\n * @default Solid\n * @since 3.0\n * @product highcharts\n * @apioption plotOptions.boxplot.stemDashStyle\n */\n /**\n * The dash style of the whiskers.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n *\n * @type {Highcharts.DashStyleValue}\n * @default Solid\n * @since 8.1.0\n * @product highcharts\n * @apioption plotOptions.boxplot.whiskerDashStyle\n */\n /**\n * The width of the stem, the vertical line extending from the box to\n * the whiskers. If `undefined`, the width is inherited from the\n * [lineWidth](#plotOptions.boxplot.lineWidth) option.\n *\n * In styled mode, the stem stroke width can be set with the\n * `.highcharts-boxplot-stem` class.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n * Error bar styling\n *\n * @type {number}\n * @since 3.0\n * @product highcharts\n * @apioption plotOptions.boxplot.stemWidth\n */\n /**\n * @default high\n * @apioption plotOptions.boxplot.colorKey\n */\n /**\n * The color of the whiskers, the horizontal lines marking low and high\n * values. When `undefined`, the general series color is used.\n *\n * In styled mode, the whisker stroke can be set with the\n * `.highcharts-boxplot-whisker` class .\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @since 3.0\n * @product highcharts\n * @apioption plotOptions.boxplot.whiskerColor\n */\n /**\n * The line width of the whiskers, the horizontal lines marking low and\n * high values. When `undefined`, the general\n * [lineWidth](#plotOptions.boxplot.lineWidth) applies.\n *\n * In styled mode, the whisker stroke width can be set with the\n * `.highcharts-boxplot-whisker` class.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n *\n * @since 3.0\n * @product highcharts\n */\n whiskerWidth: 2\n};\n/**\n * A `boxplot` series. If the [type](#series.boxplot.type) option is\n * not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends series,plotOptions.boxplot\n * @excluding dataParser, dataURL, marker, stack, stacking, states,\n * boostThreshold, boostBlending\n * @product highcharts\n * @requires highcharts-more\n * @apioption series.boxplot\n */\n/**\n * An array of data points for the series. For the `boxplot` series\n * type, points can be given in the following ways:\n *\n * 1. An array of arrays with 6 or 5 values. In this case, the values correspond\n * to `x,low,q1,median,q3,high`. If the first value is a string, it is\n * applied as the name of the point, and the `x` value is inferred. The `x`\n * value can also be omitted, in which case the inner arrays should be of\n * length 5. Then the `x` value is automatically calculated, either starting\n * at 0 and incremented by 1, or from `pointStart` and `pointInterval` given\n * in the series options.\n * ```js\n * data: [\n * [0, 3, 0, 10, 3, 5],\n * [1, 7, 8, 7, 2, 9],\n * [2, 6, 9, 5, 1, 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\n * data points exceeds the series'\n * [turboThreshold](#series.boxplot.turboThreshold), this option is not\n * available.\n * ```js\n * data: [{\n * x: 1,\n * low: 4,\n * q1: 9,\n * median: 9,\n * q3: 1,\n * high: 10,\n * name: \"Point2\",\n * color: \"#00FF00\"\n * }, {\n * x: 1,\n * low: 5,\n * q1: 7,\n * median: 3,\n * q3: 6,\n * high: 2,\n * name: \"Point1\",\n * color: \"#FF00FF\"\n * }]\n * ```\n *\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<Array<(number|string),number,number,number,number>|Array<(number|string),number,number,number,number,number>|*>}\n * @extends series.line.data\n * @excluding marker\n * @product highcharts\n * @apioption series.boxplot.data\n */\n/**\n * The `high` value for each data point, signifying the highest value\n * in the sample set. The top whisker is drawn here.\n *\n * @type {number}\n * @product highcharts\n * @apioption series.boxplot.data.high\n */\n/**\n * The `low` value for each data point, signifying the lowest value\n * in the sample set. The bottom whisker is drawn here.\n *\n * @type {number}\n * @product highcharts\n * @apioption series.boxplot.data.low\n */\n/**\n * The median for each data point. This is drawn as a line through the\n * middle area of the box.\n *\n * @type {number}\n * @product highcharts\n * @apioption series.boxplot.data.median\n */\n/**\n * The lower quartile for each data point. This is the bottom of the\n * box.\n *\n * @type {number}\n * @product highcharts\n * @apioption series.boxplot.data.q1\n */\n/**\n * The higher quartile for each data point. This is the top of the box.\n *\n * @type {number}\n * @product highcharts\n * @apioption series.boxplot.data.q3\n */\n/**\n * The dash style of the box.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n *\n * @type {Highcharts.DashStyleValue}\n * @default Solid\n * @since 8.1.0\n * @product highcharts\n * @apioption series.boxplot.data.boxDashStyle\n */\n/**\n * The dash style of the median.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n *\n * @type {Highcharts.DashStyleValue}\n * @default Solid\n * @since 8.1.0\n * @product highcharts\n * @apioption series.boxplot.data.medianDashStyle\n */\n/**\n * The dash style of the stem.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n *\n * @type {Highcharts.DashStyleValue}\n * @default Solid\n * @since 8.1.0\n * @product highcharts\n * @apioption series.boxplot.data.stemDashStyle\n */\n/**\n * The dash style of the whiskers.\n *\n * @sample {highcharts} highcharts/plotoptions/box-plot-styling/\n * Box plot styling\n * @sample {highcharts} highcharts/css/boxplot/\n * Box plot in styled mode\n *\n * @type {Highcharts.DashStyleValue}\n * @default Solid\n * @since 8.1.0\n * @product highcharts\n * @apioption series.boxplot.data.whiskerDashStyle\n */\n''; // Keeps doclets above separate\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var BoxPlot_BoxPlotSeriesDefaults = (BoxPlotSeriesDefaults);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Series\",\"types\",\"column\"],\"commonjs\":[\"highcharts\",\"Series\",\"types\",\"column\"],\"commonjs2\":[\"highcharts\",\"Series\",\"types\",\"column\"],\"root\":[\"Highcharts\",\"Series\",\"types\",\"column\"]}\nvar highcharts_Series_types_column_commonjs_highcharts_Series_types_column_commonjs2_highcharts_Series_types_column_root_Highcharts_Series_types_column_ = __webpack_require__(448);\nvar highcharts_Series_types_column_commonjs_highcharts_Series_types_column_commonjs2_highcharts_Series_types_column_root_Highcharts_Series_types_column_default = /*#__PURE__*/__webpack_require__.n(highcharts_Series_types_column_commonjs_highcharts_Series_types_column_commonjs2_highcharts_Series_types_column_root_Highcharts_Series_types_column_);\n;// ./code/es5/es-modules/Series/BoxPlot/BoxPlotSeries.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar BoxPlotSeries_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n\n\n\nvar BoxPlotSeries_noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\n\nvar crisp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).crisp, BoxPlotSeries_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, BoxPlotSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, BoxPlotSeries_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, BoxPlotSeries_relativeLength = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).relativeLength;\n/* *\n *\n * Class\n *\n * */\n/**\n * The boxplot series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes#boxplot\n *\n * @augments Highcharts.Series\n */\nvar BoxPlotSeries = /** @class */ (function (_super) {\n BoxPlotSeries_extends(BoxPlotSeries, _super);\n function BoxPlotSeries() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n // Get presentational attributes\n BoxPlotSeries.prototype.pointAttribs = function () {\n // No attributes should be set on point.graphic which is the group\n return {};\n };\n // Get an SVGPath object for both whiskers\n BoxPlotSeries.prototype.getWhiskerPair = function (halfWidth, stemX, upperWhiskerLength, lowerWhiskerLength, point) {\n var strokeWidth = point.whiskers.strokeWidth(),\n getWhisker = function (xLen,\n yPos) {\n var halfLen = BoxPlotSeries_relativeLength(xLen, 2 * halfWidth) / 2,\n crispedYPos = crisp(yPos,\n strokeWidth);\n return [\n [\n 'M',\n crisp(stemX - halfLen),\n crispedYPos\n ],\n [\n 'L',\n crisp(stemX + halfLen),\n crispedYPos\n ]\n ];\n };\n return __spreadArray(__spreadArray([], getWhisker(upperWhiskerLength, point.highPlot), true), getWhisker(lowerWhiskerLength, point.lowPlot), true);\n };\n // Translate data points from raw values x and y to plotX and plotY\n BoxPlotSeries.prototype.translate = function () {\n var series = this,\n yAxis = series.yAxis,\n pointArrayMap = series.pointArrayMap;\n _super.prototype.translate.apply(series);\n // Do the translation on each point dimension\n series.points.forEach(function (point) {\n pointArrayMap.forEach(function (key) {\n if (point[key] !== null) {\n point[key + 'Plot'] = yAxis.translate(point[key], 0, 1, 0, 1);\n }\n });\n point.plotHigh = point.highPlot; // For data label validation\n });\n };\n /**\n * Draw the data points\n * @private\n */\n BoxPlotSeries.prototype.drawPoints = function () {\n var _a,\n _b,\n _c,\n _d;\n var series = this,\n points = series.points,\n options = series.options,\n chart = series.chart,\n renderer = chart.renderer, \n // Error bar inherits this series type but doesn't do quartiles\n doQuartiles = series.doQuartiles !== false,\n whiskerLength = series.options.whiskerLength;\n var q1Plot,\n q3Plot,\n highPlot,\n lowPlot,\n medianPlot,\n medianPath,\n boxPath,\n graphic,\n width,\n x,\n right;\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n graphic = point.graphic;\n var verb = graphic ? 'animate' : 'attr',\n shapeArgs = point.shapeArgs,\n boxAttr = {},\n stemAttr = {},\n whiskersAttr = {},\n medianAttr = {},\n color = point.color || series.color,\n pointWhiskerLength = (point.options.whiskerLength ||\n whiskerLength);\n if (typeof point.plotY !== 'undefined') {\n // Vector coordinates\n width = shapeArgs.width;\n x = shapeArgs.x;\n right = x + width;\n q1Plot = doQuartiles ? point.q1Plot : point.lowPlot;\n q3Plot = doQuartiles ? point.q3Plot : point.lowPlot;\n highPlot = point.highPlot;\n lowPlot = point.lowPlot;\n if (!graphic) {\n point.graphic = graphic = renderer.g('point')\n .add(series.group);\n point.stem = renderer.path()\n .addClass('highcharts-boxplot-stem')\n .add(graphic);\n if (whiskerLength) {\n point.whiskers = renderer.path()\n .addClass('highcharts-boxplot-whisker')\n .add(graphic);\n }\n if (doQuartiles) {\n point.box = renderer.path(boxPath)\n .addClass('highcharts-boxplot-box')\n .add(graphic);\n }\n point.medianShape = renderer.path(medianPath)\n .addClass('highcharts-boxplot-median')\n .add(graphic);\n }\n if (!chart.styledMode) {\n // Stem attributes\n stemAttr.stroke =\n point.stemColor || options.stemColor || color;\n stemAttr['stroke-width'] = BoxPlotSeries_pick(point.stemWidth, options.stemWidth, options.lineWidth);\n stemAttr.dashstyle = (point.stemDashStyle ||\n options.stemDashStyle ||\n options.dashStyle);\n point.stem.attr(stemAttr);\n // Whiskers attributes\n if (pointWhiskerLength) {\n whiskersAttr.stroke = (point.whiskerColor ||\n options.whiskerColor ||\n color);\n whiskersAttr['stroke-width'] = BoxPlotSeries_pick(point.whiskerWidth, options.whiskerWidth, options.lineWidth);\n whiskersAttr.dashstyle = (point.whiskerDashStyle ||\n options.whiskerDashStyle ||\n options.dashStyle);\n point.whiskers.attr(whiskersAttr);\n }\n if (doQuartiles) {\n boxAttr.fill = (point.fillColor ||\n options.fillColor ||\n color);\n boxAttr.stroke = options.lineColor || color;\n boxAttr['stroke-width'] = options.lineWidth || 0;\n boxAttr.dashstyle = (point.boxDashStyle ||\n options.boxDashStyle ||\n options.dashStyle);\n point.box.attr(boxAttr);\n }\n // Median attributes\n medianAttr.stroke = (point.medianColor ||\n options.medianColor ||\n color);\n medianAttr['stroke-width'] = BoxPlotSeries_pick(point.medianWidth, options.medianWidth, options.lineWidth);\n medianAttr.dashstyle = (point.medianDashStyle ||\n options.medianDashStyle ||\n options.dashStyle);\n point.medianShape.attr(medianAttr);\n }\n var d = void 0;\n // The stem\n var stemX = crisp((point.plotX || 0) + (series.pointXOffset || 0) +\n ((series.barW || 0) / 2),\n point.stem.strokeWidth());\n d = [\n // Stem up\n ['M', stemX, q3Plot],\n ['L', stemX, highPlot],\n // Stem down\n ['M', stemX, q1Plot],\n ['L', stemX, lowPlot]\n ];\n point.stem[verb]({ d: d });\n // The box\n if (doQuartiles) {\n var boxStrokeWidth = point.box.strokeWidth();\n q1Plot = crisp(q1Plot, boxStrokeWidth);\n q3Plot = crisp(q3Plot, boxStrokeWidth);\n x = crisp(x, boxStrokeWidth);\n right = crisp(right, boxStrokeWidth);\n d = [\n ['M', x, q3Plot],\n ['L', x, q1Plot],\n ['L', right, q1Plot],\n ['L', right, q3Plot],\n ['L', x, q3Plot],\n ['Z']\n ];\n point.box[verb]({ d: d });\n }\n // The whiskers\n if (pointWhiskerLength) {\n var halfWidth = width / 2,\n whiskers = this.getWhiskerPair(halfWidth,\n stemX, ((_b = (_a = point.upperWhiskerLength) !== null && _a !== void 0 ? _a : options.upperWhiskerLength) !== null && _b !== void 0 ? _b : pointWhiskerLength), ((_d = (_c = point.lowerWhiskerLength) !== null && _c !== void 0 ? _c : options.lowerWhiskerLength) !== null && _d !== void 0 ? _d : pointWhiskerLength),\n point);\n point.whiskers[verb]({ d: whiskers });\n }\n // The median\n medianPlot = crisp(point.medianPlot, point.medianShape.strokeWidth());\n d = [\n ['M', x, medianPlot],\n ['L', right, medianPlot]\n ];\n point.medianShape[verb]({ d: d });\n }\n }\n };\n // Return a plain array for speedy calculation\n BoxPlotSeries.prototype.toYData = function (point) {\n return [point.low, point.q1, point.median, point.q3, point.high];\n };\n /* *\n *\n * Static Properties\n *\n * */\n BoxPlotSeries.defaultOptions = BoxPlotSeries_merge((highcharts_Series_types_column_commonjs_highcharts_Series_types_column_commonjs2_highcharts_Series_types_column_root_Highcharts_Series_types_column_default()).defaultOptions, BoxPlot_BoxPlotSeriesDefaults);\n return BoxPlotSeries;\n}((highcharts_Series_types_column_commonjs_highcharts_Series_types_column_commonjs2_highcharts_Series_types_column_root_Highcharts_Series_types_column_default())));\nBoxPlotSeries_extend(BoxPlotSeries.prototype, {\n // Array point configs are mapped to this\n pointArrayMap: ['low', 'q1', 'median', 'q3', 'high'],\n // Defines the top of the tracker\n pointValKey: 'high',\n // Disable data labels for box plot\n drawDataLabels: BoxPlotSeries_noop,\n setStackedPoints: BoxPlotSeries_noop // #3890\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('boxplot', BoxPlotSeries);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var BoxPlot_BoxPlotSeries = (BoxPlotSeries);\n\n;// ./code/es5/es-modules/Series/Bubble/BubbleLegendDefaults.js\n/* *\n *\n * (c) 2010-2024 Highsoft AS\n *\n * Author: Paweł Potaczek\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * Constants\n *\n * */\n/**\n * The bubble legend is an additional element in legend which\n * presents the scale of the bubble series. Individual bubble ranges\n * can be defined by user or calculated from series. In the case of\n * automatically calculated ranges, a 1px margin of error is\n * permitted.\n *\n * @since 7.0.0\n * @product highcharts highstock highmaps\n * @requires highcharts-more\n * @optionparent legend.bubbleLegend\n */\nvar BubbleLegendDefaults = {\n /**\n * The color of the ranges borders, can be also defined for an\n * individual range.\n *\n * @sample highcharts/bubble-legend/similartoseries/\n * Similar look to the bubble series\n * @sample highcharts/bubble-legend/bordercolor/\n * Individual bubble border color\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n borderColor: void 0,\n /**\n * The width of the ranges borders in pixels, can be also\n * defined for an individual range.\n */\n borderWidth: 2,\n /**\n * An additional class name to apply to the bubble legend'\n * circle graphical elements. This option does not replace\n * default class names of the graphical element.\n *\n * @sample {highcharts} highcharts/css/bubble-legend/\n * Styling by CSS\n *\n * @type {string}\n */\n className: void 0,\n /**\n * The main color of the bubble legend. Applies to ranges, if\n * individual color is not defined.\n *\n * @sample highcharts/bubble-legend/similartoseries/\n * Similar look to the bubble series\n * @sample highcharts/bubble-legend/color/\n * Individual bubble color\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n color: void 0,\n /**\n * An additional class name to apply to the bubble legend's\n * connector graphical elements. This option does not replace\n * default class names of the graphical element.\n *\n * @sample {highcharts} highcharts/css/bubble-legend/\n * Styling by CSS\n *\n * @type {string}\n */\n connectorClassName: void 0,\n /**\n * The color of the connector, can be also defined\n * for an individual range.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n connectorColor: void 0,\n /**\n * The length of the connectors in pixels. If labels are\n * centered, the distance is reduced to 0.\n *\n * @sample highcharts/bubble-legend/connectorandlabels/\n * Increased connector length\n */\n connectorDistance: 60,\n /**\n * The width of the connectors in pixels.\n *\n * @sample highcharts/bubble-legend/connectorandlabels/\n * Increased connector width\n */\n connectorWidth: 1,\n /**\n * Enable or disable the bubble legend.\n */\n enabled: false,\n /**\n * Options for the bubble legend labels.\n */\n labels: {\n /**\n * An additional class name to apply to the bubble legend\n * label graphical elements. This option does not replace\n * default class names of the graphical element.\n *\n * @sample {highcharts} highcharts/css/bubble-legend/\n * Styling by CSS\n *\n * @type {string}\n */\n className: void 0,\n /**\n * Whether to allow data labels to overlap.\n */\n allowOverlap: false,\n /**\n * A format string for the bubble legend labels. Available\n * variables are the same as for `formatter`.\n *\n * @sample highcharts/bubble-legend/format/\n * Add a unit\n *\n * @type {string}\n */\n format: '',\n /**\n * Available `this` properties are:\n *\n * - `this.value`: The bubble value.\n *\n * - `this.radius`: The radius of the bubble range.\n *\n * - `this.center`: The center y position of the range.\n *\n * @type {Highcharts.FormatterCallbackFunction<Highcharts.BubbleLegendFormatterContextObject>}\n */\n formatter: void 0,\n /**\n * The alignment of the labels compared to the bubble\n * legend. Can be one of `left`, `center` or `right`.\n *\n * @sample highcharts/bubble-legend/connectorandlabels/\n * Labels on left\n *\n * @type {Highcharts.AlignValue}\n */\n align: 'right',\n /**\n * CSS styles for the labels.\n *\n * @type {Highcharts.CSSObject}\n */\n style: {\n /** @ignore-option */\n fontSize: '0.9em',\n /** @ignore-option */\n color: \"#000000\" /* Palette.neutralColor100 */\n },\n /**\n * The x position offset of the label relative to the\n * connector.\n */\n x: 0,\n /**\n * The y position offset of the label relative to the\n * connector.\n */\n y: 0\n },\n /**\n * Maximum bubble legend range size. If values for ranges are\n * not specified, the `minSize` and the `maxSize` are calculated\n * from bubble series.\n */\n maxSize: 60, // Number\n /**\n * Minimum bubble legend range size. If values for ranges are\n * not specified, the `minSize` and the `maxSize` are calculated\n * from bubble series.\n */\n minSize: 10, // Number\n /**\n * The position of the bubble legend in the legend.\n * @sample highcharts/bubble-legend/connectorandlabels/\n * Bubble legend as last item in legend\n */\n legendIndex: 0, // Number\n /**\n * Options for specific range. One range consists of bubble,\n * label and connector.\n *\n * @sample highcharts/bubble-legend/ranges/\n * Manually defined ranges\n * @sample highcharts/bubble-legend/autoranges/\n * Auto calculated ranges\n *\n * @type {Array<*>}\n */\n ranges: {\n /**\n * Range size value, similar to bubble Z data.\n * @type {number}\n */\n value: void 0,\n /**\n * The color of the border for individual range.\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n borderColor: void 0,\n /**\n * The color of the bubble for individual range.\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n color: void 0,\n /**\n * The color of the connector for individual range.\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n connectorColor: void 0\n },\n /**\n * Whether the bubble legend range value should be represented\n * by the area or the width of the bubble. The default, area,\n * corresponds best to the human perception of the size of each\n * bubble.\n *\n * @sample highcharts/bubble-legend/ranges/\n * Size by width\n *\n * @type {Highcharts.BubbleSizeByValue}\n */\n sizeBy: 'area',\n /**\n * When this is true, the absolute value of z determines the\n * size of the bubble. This means that with the default\n * zThreshold of 0, a bubble of value -1 will have the same size\n * as a bubble of value 1, while a bubble of value 0 will have a\n * smaller size according to minSize.\n */\n sizeByAbsoluteValue: false,\n /**\n * Define the visual z index of the bubble legend.\n */\n zIndex: 1,\n /**\n * Ranges with lower value than zThreshold are skipped.\n */\n zThreshold: 0\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Bubble_BubbleLegendDefaults = (BubbleLegendDefaults);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Color\"],\"commonjs\":[\"highcharts\",\"Color\"],\"commonjs2\":[\"highcharts\",\"Color\"],\"root\":[\"Highcharts\",\"Color\"]}\nvar highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_ = __webpack_require__(620);\nvar highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default = /*#__PURE__*/__webpack_require__.n(highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_);\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Templating\"],\"commonjs\":[\"highcharts\",\"Templating\"],\"commonjs2\":[\"highcharts\",\"Templating\"],\"root\":[\"Highcharts\",\"Templating\"]}\nvar highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_ = __webpack_require__(984);\nvar highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default = /*#__PURE__*/__webpack_require__.n(highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_);\n;// ./code/es5/es-modules/Series/Bubble/BubbleLegendItem.js\n/* *\n *\n * (c) 2010-2024 Highsoft AS\n *\n * Author: Paweł Potaczek\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar color = (highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default()).parse;\n\n\nvar BubbleLegendItem_noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\nvar arrayMax = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).arrayMax, arrayMin = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).arrayMin, BubbleLegendItem_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, BubbleLegendItem_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, BubbleLegendItem_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, stableSort = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).stableSort;\n/* *\n *\n * Class\n *\n * */\n/**\n * BubbleLegend class.\n *\n * @private\n * @class\n * @name Highcharts.BubbleLegend\n * @param {Highcharts.LegendBubbleLegendOptions} options\n * Options of BubbleLegendItem.\n *\n * @param {Highcharts.Legend} legend\n * Legend of item.\n */\nvar BubbleLegendItem = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function BubbleLegendItem(options, legend) {\n this.setState = BubbleLegendItem_noop;\n this.init(options, legend);\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Create basic bubbleLegend properties similar to item in legend.\n * @private\n */\n BubbleLegendItem.prototype.init = function (options, legend) {\n this.options = options;\n this.visible = true;\n this.chart = legend.chart;\n this.legend = legend;\n };\n /**\n * Depending on the position option, add bubbleLegend to legend items.\n *\n * @private\n *\n * @param {Array<(Highcharts.Point|Highcharts.Series)>} items\n * All legend items\n */\n BubbleLegendItem.prototype.addToLegend = function (items) {\n // Insert bubbleLegend into legend items\n items.splice(this.options.legendIndex, 0, this);\n };\n /**\n * Calculate ranges, sizes and call the next steps of bubbleLegend\n * creation.\n *\n * @private\n *\n * @param {Highcharts.Legend} legend\n * Legend instance\n */\n BubbleLegendItem.prototype.drawLegendSymbol = function (legend) {\n var itemDistance = BubbleLegendItem_pick(legend.options.itemDistance, 20),\n legendItem = this.legendItem || {},\n options = this.options,\n ranges = options.ranges,\n connectorDistance = options.connectorDistance;\n var connectorSpace;\n // Do not create bubbleLegend now if ranges or ranges values are not\n // specified or if are empty array.\n if (!ranges || !ranges.length || !BubbleLegendItem_isNumber(ranges[0].value)) {\n legend.options.bubbleLegend.autoRanges = true;\n return;\n }\n // Sort ranges to right render order\n stableSort(ranges, function (a, b) {\n return b.value - a.value;\n });\n this.ranges = ranges;\n this.setOptions();\n this.render();\n // Get max label size\n var maxLabel = this.getMaxLabelSize(),\n radius = this.ranges[0].radius,\n size = radius * 2;\n // Space for connectors and labels.\n connectorSpace =\n connectorDistance - radius + maxLabel.width;\n connectorSpace = connectorSpace > 0 ? connectorSpace : 0;\n this.maxLabel = maxLabel;\n this.movementX = options.labels.align === 'left' ?\n connectorSpace : 0;\n legendItem.labelWidth = size + connectorSpace + itemDistance;\n legendItem.labelHeight = size + maxLabel.height / 2;\n };\n /**\n * Set style options for each bubbleLegend range.\n * @private\n */\n BubbleLegendItem.prototype.setOptions = function () {\n var ranges = this.ranges,\n options = this.options,\n series = this.chart.series[options.seriesIndex],\n baseline = this.legend.baseline,\n bubbleAttribs = {\n zIndex: options.zIndex,\n 'stroke-width': options.borderWidth\n },\n connectorAttribs = {\n zIndex: options.zIndex,\n 'stroke-width': options.connectorWidth\n },\n labelAttribs = {\n align: (this.legend.options.rtl ||\n options.labels.align === 'left') ? 'right' : 'left',\n zIndex: options.zIndex\n },\n fillOpacity = series.options.marker.fillOpacity,\n styledMode = this.chart.styledMode;\n // Allow to parts of styles be used individually for range\n ranges.forEach(function (range, i) {\n if (!styledMode) {\n bubbleAttribs.stroke = BubbleLegendItem_pick(range.borderColor, options.borderColor, series.color);\n bubbleAttribs.fill = BubbleLegendItem_pick(range.color, options.color, fillOpacity !== 1 ?\n color(series.color).setOpacity(fillOpacity)\n .get('rgba') :\n series.color);\n connectorAttribs.stroke = BubbleLegendItem_pick(range.connectorColor, options.connectorColor, series.color);\n }\n // Set options needed for rendering each range\n ranges[i].radius = this.getRangeRadius(range.value);\n ranges[i] = BubbleLegendItem_merge(ranges[i], {\n center: (ranges[0].radius - ranges[i].radius +\n baseline)\n });\n if (!styledMode) {\n BubbleLegendItem_merge(true, ranges[i], {\n bubbleAttribs: BubbleLegendItem_merge(bubbleAttribs),\n connectorAttribs: BubbleLegendItem_merge(connectorAttribs),\n labelAttribs: labelAttribs\n });\n }\n }, this);\n };\n /**\n * Calculate radius for each bubble range,\n * used code from BubbleSeries.js 'getRadius' method.\n *\n * @private\n *\n * @param {number} value\n * Range value\n *\n * @return {number|null}\n * Radius for one range\n */\n BubbleLegendItem.prototype.getRangeRadius = function (value) {\n var options = this.options,\n seriesIndex = this.options.seriesIndex,\n bubbleSeries = this.chart.series[seriesIndex],\n zMax = options.ranges[0].value,\n zMin = options.ranges[options.ranges.length - 1].value,\n minSize = options.minSize,\n maxSize = options.maxSize;\n return bubbleSeries.getRadius.call(this, zMin, zMax, minSize, maxSize, value);\n };\n /**\n * Render the legendItem group.\n * @private\n */\n BubbleLegendItem.prototype.render = function () {\n var legendItem = this.legendItem || {},\n renderer = this.chart.renderer,\n zThreshold = this.options.zThreshold;\n if (!this.symbols) {\n this.symbols = {\n connectors: [],\n bubbleItems: [],\n labels: []\n };\n }\n // Nesting SVG groups to enable handleOverflow\n legendItem.symbol = renderer.g('bubble-legend');\n legendItem.label = renderer.g('bubble-legend-item')\n .css(this.legend.itemStyle || {});\n // To enable default 'hideOverlappingLabels' method\n legendItem.symbol.translateX = 0;\n legendItem.symbol.translateY = 0;\n // To use handleOverflow method\n legendItem.symbol.add(legendItem.label);\n legendItem.label.add(legendItem.group);\n for (var _i = 0, _a = this.ranges; _i < _a.length; _i++) {\n var range = _a[_i];\n if (range.value >= zThreshold) {\n this.renderRange(range);\n }\n }\n this.hideOverlappingLabels();\n };\n /**\n * Render one range, consisting of bubble symbol, connector and label.\n *\n * @private\n *\n * @param {Highcharts.LegendBubbleLegendRangesOptions} range\n * Range options\n */\n BubbleLegendItem.prototype.renderRange = function (range) {\n var mainRange = this.ranges[0], legend = this.legend, options = this.options, labelsOptions = options.labels, chart = this.chart, bubbleSeries = chart.series[options.seriesIndex], renderer = chart.renderer, symbols = this.symbols, labels = symbols.labels, elementCenter = range.center, absoluteRadius = Math.abs(range.radius), connectorDistance = options.connectorDistance || 0, labelsAlign = labelsOptions.align, rtl = legend.options.rtl, borderWidth = options.borderWidth, connectorWidth = options.connectorWidth, posX = mainRange.radius || 0, posY = elementCenter - absoluteRadius -\n borderWidth / 2 + connectorWidth / 2, crispMovement = (posY % 1 ? 1 : 0.5) -\n (connectorWidth % 2 ? 0 : 0.5), styledMode = renderer.styledMode;\n var connectorLength = rtl || labelsAlign === 'left' ?\n -connectorDistance : connectorDistance;\n // Set options for centered labels\n if (labelsAlign === 'center') {\n connectorLength = 0; // Do not use connector\n options.connectorDistance = 0;\n range.labelAttribs.align = 'center';\n }\n // Render bubble symbol\n symbols.bubbleItems.push(renderer\n .circle(posX, elementCenter + crispMovement, absoluteRadius)\n .attr(styledMode ? {} : range.bubbleAttribs)\n .addClass((styledMode ?\n 'highcharts-color-' +\n bubbleSeries.colorIndex + ' ' :\n '') +\n 'highcharts-bubble-legend-symbol ' +\n (options.className || '')).add(this.legendItem.symbol));\n // Render connector\n symbols.connectors.push(renderer\n .path(renderer.crispLine([\n ['M', posX, posY],\n ['L', posX + connectorLength, posY]\n ], options.connectorWidth))\n .attr((styledMode ? {} : range.connectorAttribs))\n .addClass((styledMode ?\n 'highcharts-color-' +\n this.options.seriesIndex + ' ' : '') +\n 'highcharts-bubble-legend-connectors ' +\n (options.connectorClassName || '')).add(this.legendItem.symbol));\n // Render label\n var label = renderer\n .text(this.formatLabel(range))\n .attr((styledMode ? {} : range.labelAttribs))\n .css(styledMode ? {} : labelsOptions.style)\n .addClass('highcharts-bubble-legend-labels ' +\n (options.labels.className || '')).add(this.legendItem.symbol);\n // Now that the label is added we can read the bounding box and\n // vertically align\n var position = {\n x: posX + connectorLength + options.labels.x,\n y: posY + options.labels.y + label.getBBox().height * 0.4\n };\n label.attr(position);\n labels.push(label);\n // To enable default 'hideOverlappingLabels' method\n label.placed = true;\n label.alignAttr = position;\n };\n /**\n * Get the label which takes up the most space.\n * @private\n */\n BubbleLegendItem.prototype.getMaxLabelSize = function () {\n var labels = this.symbols.labels;\n var maxLabel,\n labelSize;\n labels.forEach(function (label) {\n labelSize = label.getBBox(true);\n if (maxLabel) {\n maxLabel = labelSize.width > maxLabel.width ?\n labelSize : maxLabel;\n }\n else {\n maxLabel = labelSize;\n }\n });\n return maxLabel || {};\n };\n /**\n * Get formatted label for range.\n *\n * @private\n *\n * @param {Highcharts.LegendBubbleLegendRangesOptions} range\n * Range options\n *\n * @return {string}\n * Range label text\n */\n BubbleLegendItem.prototype.formatLabel = function (range) {\n var options = this.options,\n formatter = options.labels.formatter,\n format = options.labels.format;\n var numberFormatter = this.chart.numberFormatter;\n return format ? highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default().format(format, range, this.chart) :\n formatter ? formatter.call(range) :\n numberFormatter(range.value, 1);\n };\n /**\n * By using default chart 'hideOverlappingLabels' method, hide or show\n * labels and connectors.\n * @private\n */\n BubbleLegendItem.prototype.hideOverlappingLabels = function () {\n var chart = this.chart,\n allowOverlap = this.options.labels.allowOverlap,\n symbols = this.symbols;\n if (!allowOverlap && symbols) {\n chart.hideOverlappingLabels(symbols.labels);\n // Hide or show connectors\n symbols.labels.forEach(function (label, index) {\n if (!label.newOpacity) {\n symbols.connectors[index].hide();\n }\n else if (label.newOpacity !== label.oldOpacity) {\n symbols.connectors[index].show();\n }\n });\n }\n };\n /**\n * Calculate ranges from created series.\n *\n * @private\n *\n * @return {Array<Highcharts.LegendBubbleLegendRangesOptions>}\n * Array of range objects\n */\n BubbleLegendItem.prototype.getRanges = function () {\n var bubbleLegend = this.legend.bubbleLegend,\n series = bubbleLegend.chart.series,\n rangesOptions = bubbleLegend.options.ranges;\n var ranges,\n zData,\n minZ = Number.MAX_VALUE,\n maxZ = -Number.MAX_VALUE;\n series.forEach(function (s) {\n // Find the min and max Z, like in bubble series\n if (s.isBubble && !s.ignoreSeries) {\n zData = s.getColumn('z').filter(BubbleLegendItem_isNumber);\n if (zData.length) {\n minZ = BubbleLegendItem_pick(s.options.zMin, Math.min(minZ, Math.max(arrayMin(zData), s.options.displayNegative === false ?\n s.options.zThreshold :\n -Number.MAX_VALUE)));\n maxZ = BubbleLegendItem_pick(s.options.zMax, Math.max(maxZ, arrayMax(zData)));\n }\n }\n });\n // Set values for ranges\n if (minZ === maxZ) {\n // Only one range if min and max values are the same.\n ranges = [{ value: maxZ }];\n }\n else {\n ranges = [\n { value: minZ },\n { value: (minZ + maxZ) / 2 },\n { value: maxZ, autoRanges: true }\n ];\n }\n // Prevent reverse order of ranges after redraw\n if (rangesOptions.length && rangesOptions[0].radius) {\n ranges.reverse();\n }\n // Merge ranges values with user options\n ranges.forEach(function (range, i) {\n if (rangesOptions && rangesOptions[i]) {\n ranges[i] = BubbleLegendItem_merge(rangesOptions[i], range);\n }\n });\n return ranges;\n };\n /**\n * Calculate bubble legend sizes from rendered series.\n *\n * @private\n *\n * @return {Array<number,number>}\n * Calculated min and max bubble sizes\n */\n BubbleLegendItem.prototype.predictBubbleSizes = function () {\n var chart = this.chart,\n legendOptions = chart.legend.options,\n floating = legendOptions.floating,\n horizontal = legendOptions.layout === 'horizontal',\n lastLineHeight = horizontal ? chart.legend.lastLineHeight : 0,\n plotSizeX = chart.plotSizeX,\n plotSizeY = chart.plotSizeY,\n bubbleSeries = chart.series[this.options.seriesIndex],\n pxSizes = bubbleSeries.getPxExtremes(),\n minSize = Math.ceil(pxSizes.minPxSize),\n maxPxSize = Math.ceil(pxSizes.maxPxSize),\n plotSize = Math.min(plotSizeY,\n plotSizeX);\n var calculatedSize,\n maxSize = bubbleSeries.options.maxSize;\n // Calculate predicted max size of bubble\n if (floating || !(/%$/.test(maxSize))) {\n calculatedSize = maxPxSize;\n }\n else {\n maxSize = parseFloat(maxSize);\n calculatedSize = ((plotSize + lastLineHeight) * maxSize / 100) /\n (maxSize / 100 + 1);\n // Get maxPxSize from bubble series if calculated bubble legend\n // size will not affect to bubbles series.\n if ((horizontal && plotSizeY - calculatedSize >=\n plotSizeX) || (!horizontal && plotSizeX -\n calculatedSize >= plotSizeY)) {\n calculatedSize = maxPxSize;\n }\n }\n return [minSize, Math.ceil(calculatedSize)];\n };\n /**\n * Correct ranges with calculated sizes.\n * @private\n */\n BubbleLegendItem.prototype.updateRanges = function (min, max) {\n var bubbleLegendOptions = this.legend.options.bubbleLegend;\n bubbleLegendOptions.minSize = min;\n bubbleLegendOptions.maxSize = max;\n bubbleLegendOptions.ranges = this.getRanges();\n };\n /**\n * Because of the possibility of creating another legend line, predicted\n * bubble legend sizes may differ by a few pixels, so it is necessary to\n * correct them.\n * @private\n */\n BubbleLegendItem.prototype.correctSizes = function () {\n var legend = this.legend,\n chart = this.chart,\n bubbleSeries = chart.series[this.options.seriesIndex],\n pxSizes = bubbleSeries.getPxExtremes(),\n bubbleSeriesSize = pxSizes.maxPxSize,\n bubbleLegendSize = this.options.maxSize;\n if (Math.abs(Math.ceil(bubbleSeriesSize) - bubbleLegendSize) >\n 1) {\n this.updateRanges(this.options.minSize, pxSizes.maxPxSize);\n legend.render();\n }\n };\n return BubbleLegendItem;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Bubble_BubbleLegendItem = (BubbleLegendItem);\n/* *\n *\n * API Declarations\n *\n * */\n/**\n * @interface Highcharts.BubbleLegendFormatterContextObject\n */ /**\n* The center y position of the range.\n* @name Highcharts.BubbleLegendFormatterContextObject#center\n* @type {number}\n*/ /**\n* The radius of the bubble range.\n* @name Highcharts.BubbleLegendFormatterContextObject#radius\n* @type {number}\n*/ /**\n* The bubble value.\n* @name Highcharts.BubbleLegendFormatterContextObject#value\n* @type {number}\n*/\n''; // Detach doclets above\n\n;// ./code/es5/es-modules/Series/Bubble/BubbleLegendComposition.js\n/* *\n *\n * (c) 2010-2024 Highsoft AS\n *\n * Author: Paweł Potaczek\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\n\nvar setOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).setOptions;\n\nvar composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\nvar BubbleLegendComposition_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, objectEach = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).objectEach, pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique, wrap = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).wrap;\n/* *\n *\n * Functions\n *\n * */\n/**\n * If ranges are not specified, determine ranges from rendered bubble series\n * and render legend again.\n */\nfunction chartDrawChartBox(proceed, options, callback) {\n var chart = this,\n legend = chart.legend,\n bubbleSeries = getVisibleBubbleSeriesIndex(chart) >= 0;\n var bubbleLegendOptions,\n bubbleSizes,\n legendItem;\n if (legend && legend.options.enabled && legend.bubbleLegend &&\n legend.options.bubbleLegend.autoRanges && bubbleSeries) {\n bubbleLegendOptions = legend.bubbleLegend.options;\n bubbleSizes = legend.bubbleLegend.predictBubbleSizes();\n legend.bubbleLegend.updateRanges(bubbleSizes[0], bubbleSizes[1]);\n // Disable animation on init\n if (!bubbleLegendOptions.placed) {\n legend.group.placed = false;\n legend.allItems.forEach(function (item) {\n legendItem = item.legendItem || {};\n if (legendItem.group) {\n legendItem.group.translateY = void 0;\n }\n });\n }\n // Create legend with bubbleLegend\n legend.render();\n // Calculate margins after first rendering the bubble legend\n if (!bubbleLegendOptions.placed) {\n chart.getMargins();\n chart.axes.forEach(function (axis) {\n axis.setScale();\n axis.updateNames();\n // Disable axis animation on init\n objectEach(axis.ticks, function (tick) {\n tick.isNew = true;\n tick.isNewLabel = true;\n });\n });\n chart.getMargins();\n }\n bubbleLegendOptions.placed = true;\n // Call default 'drawChartBox' method.\n proceed.call(chart, options, callback);\n // Check bubble legend sizes and correct them if necessary.\n legend.bubbleLegend.correctSizes();\n // Correct items positions with different dimensions in legend.\n retranslateItems(legend, getLinesHeights(legend));\n }\n else {\n proceed.call(chart, options, callback);\n // Allow color change on static bubble legend after click on legend\n if (legend && legend.options.enabled && legend.bubbleLegend) {\n legend.render();\n retranslateItems(legend, getLinesHeights(legend));\n }\n }\n}\n/**\n * Compose classes for use with Bubble series.\n * @private\n *\n * @param {Highcharts.Chart} ChartClass\n * Core chart class to use with Bubble series.\n *\n * @param {Highcharts.Legend} LegendClass\n * Core legend class to use with Bubble series.\n */\nfunction BubbleLegendComposition_compose(ChartClass, LegendClass) {\n if (pushUnique(composed, 'Series.BubbleLegend')) {\n setOptions({\n // Set default bubble legend options\n legend: {\n bubbleLegend: Bubble_BubbleLegendDefaults\n }\n });\n wrap(ChartClass.prototype, 'drawChartBox', chartDrawChartBox);\n BubbleLegendComposition_addEvent(LegendClass, 'afterGetAllItems', onLegendAfterGetAllItems);\n BubbleLegendComposition_addEvent(LegendClass, 'itemClick', onLegendItemClick);\n }\n}\n/**\n * Check if there is at least one visible bubble series.\n *\n * @private\n * @function getVisibleBubbleSeriesIndex\n * @param {Highcharts.Chart} chart\n * Chart to check.\n * @return {number}\n * First visible bubble series index\n */\nfunction getVisibleBubbleSeriesIndex(chart) {\n var series = chart.series;\n var i = 0;\n while (i < series.length) {\n if (series[i] &&\n series[i].isBubble &&\n series[i].visible &&\n series[i].dataTable.rowCount) {\n return i;\n }\n i++;\n }\n return -1;\n}\n/**\n * Calculate height for each row in legend.\n *\n * @private\n * @function getLinesHeights\n *\n * @param {Highcharts.Legend} legend\n * Legend to calculate from.\n *\n * @return {Array<Highcharts.Dictionary<number>>}\n * Informations about line height and items amount\n */\nfunction getLinesHeights(legend) {\n var items = legend.allItems,\n lines = [],\n length = items.length;\n var lastLine,\n legendItem,\n legendItem2,\n i = 0,\n j = 0;\n for (i = 0; i < length; i++) {\n legendItem = items[i].legendItem || {};\n legendItem2 = (items[i + 1] || {}).legendItem || {};\n if (legendItem.labelHeight) {\n // For bubbleLegend\n items[i].itemHeight = legendItem.labelHeight;\n }\n if ( // Line break\n items[i] === items[length - 1] ||\n legendItem.y !== legendItem2.y) {\n lines.push({ height: 0 });\n lastLine = lines[lines.length - 1];\n // Find the highest item in line\n for (j; j <= i; j++) {\n if (items[j].itemHeight > lastLine.height) {\n lastLine.height = items[j].itemHeight;\n }\n }\n lastLine.step = i;\n }\n }\n return lines;\n}\n/**\n * Start the bubble legend creation process.\n */\nfunction onLegendAfterGetAllItems(e) {\n var legend = this,\n bubbleLegend = legend.bubbleLegend,\n legendOptions = legend.options,\n options = legendOptions.bubbleLegend,\n bubbleSeriesIndex = getVisibleBubbleSeriesIndex(legend.chart);\n // Remove unnecessary element\n if (bubbleLegend && bubbleLegend.ranges && bubbleLegend.ranges.length) {\n // Allow change the way of calculating ranges in update\n if (options.ranges.length) {\n options.autoRanges =\n !!options.ranges[0].autoRanges;\n }\n // Update bubbleLegend dimensions in each redraw\n legend.destroyItem(bubbleLegend);\n }\n // Create bubble legend\n if (bubbleSeriesIndex >= 0 &&\n legendOptions.enabled &&\n options.enabled) {\n options.seriesIndex = bubbleSeriesIndex;\n legend.bubbleLegend = new Bubble_BubbleLegendItem(options, legend);\n legend.bubbleLegend.addToLegend(e.allItems);\n }\n}\n/**\n * Toggle bubble legend depending on the visible status of bubble series.\n */\nfunction onLegendItemClick(e) {\n // #14080 don't fire this code if click function is prevented\n if (e.defaultPrevented) {\n return false;\n }\n var legend = this,\n series = e.legendItem,\n chart = legend.chart,\n visible = series.visible;\n var status;\n if (legend && legend.bubbleLegend) {\n // Temporary correct 'visible' property\n series.visible = !visible;\n // Save future status for getRanges method\n series.ignoreSeries = visible;\n // Check if at lest one bubble series is visible\n status = getVisibleBubbleSeriesIndex(chart) >= 0;\n // Hide bubble legend if all bubble series are disabled\n if (legend.bubbleLegend.visible !== status) {\n // Show or hide bubble legend\n legend.update({\n bubbleLegend: { enabled: status }\n });\n legend.bubbleLegend.visible = status; // Restore default status\n }\n series.visible = visible;\n }\n}\n/**\n * Correct legend items translation in case of different elements heights.\n *\n * @private\n * @function Highcharts.Legend#retranslateItems\n *\n * @param {Highcharts.Legend} legend\n * Legend to translate in.\n *\n * @param {Array<Highcharts.Dictionary<number>>} lines\n * Informations about line height and items amount\n */\nfunction retranslateItems(legend, lines) {\n var items = legend.allItems,\n rtl = legend.options.rtl;\n var orgTranslateX,\n orgTranslateY,\n movementX,\n legendItem,\n actualLine = 0;\n items.forEach(function (item, index) {\n legendItem = item.legendItem || {};\n if (!legendItem.group) {\n return;\n }\n orgTranslateX = legendItem.group.translateX || 0;\n orgTranslateY = legendItem.y || 0;\n movementX = item.movementX;\n if (movementX || (rtl && item.ranges)) {\n movementX = rtl ?\n orgTranslateX - item.options.maxSize / 2 :\n orgTranslateX + movementX;\n legendItem.group.attr({ translateX: movementX });\n }\n if (index > lines[actualLine].step) {\n actualLine++;\n }\n legendItem.group.attr({\n translateY: Math.round(orgTranslateY + lines[actualLine].height / 2)\n });\n legendItem.y = orgTranslateY + lines[actualLine].height / 2;\n });\n}\n/* *\n *\n * Default Export\n *\n * */\nvar BubbleLegendComposition = {\n compose: BubbleLegendComposition_compose\n};\n/* harmony default export */ var Bubble_BubbleLegendComposition = (BubbleLegendComposition);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Point\"],\"commonjs\":[\"highcharts\",\"Point\"],\"commonjs2\":[\"highcharts\",\"Point\"],\"root\":[\"Highcharts\",\"Point\"]}\nvar highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_ = __webpack_require__(260);\nvar highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default = /*#__PURE__*/__webpack_require__.n(highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_);\n;// ./code/es5/es-modules/Series/Bubble/BubblePoint.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar BubblePoint_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar ScatterPoint = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.scatter.prototype.pointClass;\n\nvar BubblePoint_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend;\n/* *\n *\n * Class\n *\n * */\nvar BubblePoint = /** @class */ (function (_super) {\n BubblePoint_extends(BubblePoint, _super);\n function BubblePoint() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * @private\n */\n BubblePoint.prototype.haloPath = function (size) {\n var computedSize = (size && this.marker ?\n this.marker.radius ||\n 0 :\n 0) + size;\n if (this.series.chart.inverted) {\n var pos = this.pos() || [0, 0],\n _a = this.series,\n xAxis = _a.xAxis,\n yAxis = _a.yAxis,\n chart = _a.chart;\n return chart.renderer.symbols.circle(xAxis.len - pos[1] - computedSize, yAxis.len - pos[0] - computedSize, computedSize * 2, computedSize * 2);\n }\n return highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default().prototype.haloPath.call(this, \n // #6067\n computedSize);\n };\n return BubblePoint;\n}(ScatterPoint));\n/* *\n *\n * Class Prototype\n *\n * */\nBubblePoint_extend(BubblePoint.prototype, {\n ttBelow: false\n});\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Bubble_BubblePoint = (BubblePoint);\n\n;// ./code/es5/es-modules/Series/Bubble/BubbleSeries.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar BubbleSeries_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\nvar BubbleSeries_color = (highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default()).parse;\n\nvar BubbleSeries_composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed, BubbleSeries_noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\nvar Series = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).series, BubbleSeries_a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, BubbleSeries_columnProto = BubbleSeries_a.column.prototype, ScatterSeries = BubbleSeries_a.scatter;\n\nvar BubbleSeries_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, BubbleSeries_arrayMax = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).arrayMax, BubbleSeries_arrayMin = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).arrayMin, clamp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).clamp, BubbleSeries_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, BubbleSeries_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, BubbleSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, BubbleSeries_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, BubbleSeries_pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Add logic to pad each axis with the amount of pixels necessary to avoid the\n * bubbles to overflow.\n */\nfunction onAxisFoundExtremes() {\n var _this = this;\n var axisLength = this.len,\n _a = this,\n coll = _a.coll,\n isXAxis = _a.isXAxis,\n min = _a.min,\n range = (this.max || 0) - (min || 0);\n var pxMin = 0,\n pxMax = axisLength,\n transA = axisLength / range,\n hasActiveSeries;\n if (coll !== 'xAxis' && coll !== 'yAxis') {\n return;\n }\n // Handle padding on the second pass, or on redraw\n this.series.forEach(function (series) {\n if (series.bubblePadding && series.reserveSpace()) {\n // Correction for #1673\n _this.allowZoomOutside = true;\n hasActiveSeries = true;\n var data = series.getColumn(isXAxis ? 'x' : 'y');\n if (isXAxis) {\n (series.onPoint || series).getRadii(0, 0, series);\n if (series.onPoint) {\n series.radii = series.onPoint.radii;\n }\n }\n if (range > 0) {\n var i = data.length;\n while (i--) {\n if (BubbleSeries_isNumber(data[i]) &&\n _this.dataMin <= data[i] &&\n data[i] <= _this.max) {\n var radius = series.radii && series.radii[i] || 0;\n pxMin = Math.min(((data[i] - min) * transA) - radius, pxMin);\n pxMax = Math.max(((data[i] - min) * transA) + radius, pxMax);\n }\n }\n }\n }\n });\n // Apply the padding to the min and max properties\n if (hasActiveSeries && range > 0 && !this.logarithmic) {\n pxMax -= axisLength;\n transA *= (axisLength +\n Math.max(0, pxMin) - // #8901\n Math.min(pxMax, axisLength)) / axisLength;\n [\n ['min', 'userMin', pxMin],\n ['max', 'userMax', pxMax]\n ].forEach(function (keys) {\n if (typeof BubbleSeries_pick(_this.options[keys[0]], _this[keys[1]]) === 'undefined') {\n _this[keys[0]] += keys[2] / transA;\n }\n });\n }\n}\n/**\n * If a user has defined categories, it is necessary to retroactively hide any\n * ticks added by the 'onAxisFoundExtremes' function above (#21672).\n *\n * Otherwise they can show up on the axis, alongside user-defined categories.\n */\nfunction onAxisAfterRender() {\n var _a;\n var _b = this,\n ticks = _b.ticks,\n tickPositions = _b.tickPositions,\n _c = _b.dataMin,\n dataMin = _c === void 0 ? 0 : _c,\n _d = _b.dataMax,\n dataMax = _d === void 0 ? 0 : _d,\n categories = _b.categories,\n type = this.options.type;\n if (((categories === null || categories === void 0 ? void 0 : categories.length) || type === 'category') &&\n this.series.find(function (s) { return s.bubblePadding; })) {\n var tickCount = tickPositions.length;\n while (tickCount--) {\n var tick = ticks[tickPositions[tickCount]],\n pos = tick.pos || 0;\n if (pos > dataMax || pos < dataMin) {\n (_a = tick.label) === null || _a === void 0 ? void 0 : _a.hide();\n }\n }\n }\n}\n/* *\n *\n * Class\n *\n * */\nvar BubbleSeries = /** @class */ (function (_super) {\n BubbleSeries_extends(BubbleSeries, _super);\n function BubbleSeries() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Static Functions\n *\n * */\n BubbleSeries.compose = function (AxisClass, ChartClass, LegendClass) {\n Bubble_BubbleLegendComposition.compose(ChartClass, LegendClass);\n if (BubbleSeries_pushUnique(BubbleSeries_composed, 'Series.Bubble')) {\n BubbleSeries_addEvent(AxisClass, 'foundExtremes', onAxisFoundExtremes);\n BubbleSeries_addEvent(AxisClass, 'afterRender', onAxisAfterRender);\n }\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * Perform animation on the bubbles\n * @private\n */\n BubbleSeries.prototype.animate = function (init) {\n if (!init &&\n this.points.length < this.options.animationLimit // #8099\n ) {\n this.points.forEach(function (point) {\n var graphic = point.graphic,\n _a = point.plotX,\n plotX = _a === void 0 ? 0 : _a,\n _b = point.plotY,\n plotY = _b === void 0 ? 0 : _b;\n if (graphic && graphic.width) { // URL symbols don't have width\n // Start values\n if (!this.hasRendered) {\n graphic.attr({\n x: plotX,\n y: plotY,\n width: 1,\n height: 1\n });\n }\n graphic.animate(this.markerAttribs(point), this.options.animation);\n }\n }, this);\n }\n };\n /**\n * Get the radius for each point based on the minSize, maxSize and each\n * point's Z value. This must be done prior to Series.translate because\n * the axis needs to add padding in accordance with the point sizes.\n * @private\n */\n BubbleSeries.prototype.getRadii = function () {\n var zData = this.getColumn('z'), yData = this.getColumn('y'), radii = [];\n var len,\n i,\n value,\n zExtremes = this.chart.bubbleZExtremes;\n var _a = this.getPxExtremes(),\n minPxSize = _a.minPxSize,\n maxPxSize = _a.maxPxSize;\n // Get the collective Z extremes of all bubblish series. The chart-level\n // `bubbleZExtremes` are only computed once, and reset on `updatedData`\n // in any member series.\n if (!zExtremes) {\n var zMin_1 = Number.MAX_VALUE;\n var zMax_1 = -Number.MAX_VALUE;\n var valid_1;\n this.chart.series.forEach(function (otherSeries) {\n if (otherSeries.bubblePadding && otherSeries.reserveSpace()) {\n var zExtremes_1 = (otherSeries.onPoint || otherSeries).getZExtremes();\n if (zExtremes_1) {\n // Changed '||' to 'pick' because min or max can be 0.\n // #17280\n zMin_1 = Math.min(BubbleSeries_pick(zMin_1, zExtremes_1.zMin), zExtremes_1.zMin);\n zMax_1 = Math.max(BubbleSeries_pick(zMax_1, zExtremes_1.zMax), zExtremes_1.zMax);\n valid_1 = true;\n }\n }\n });\n if (valid_1) {\n zExtremes = { zMin: zMin_1, zMax: zMax_1 };\n this.chart.bubbleZExtremes = zExtremes;\n }\n else {\n zExtremes = { zMin: 0, zMax: 0 };\n }\n }\n // Set the shape type and arguments to be picked up in drawPoints\n for (i = 0, len = zData.length; i < len; i++) {\n value = zData[i];\n // Separate method to get individual radius for bubbleLegend\n radii.push(this.getRadius(zExtremes.zMin, zExtremes.zMax, minPxSize, maxPxSize, value, yData && yData[i]));\n }\n this.radii = radii;\n };\n /**\n * Get the individual radius for one point.\n * @private\n */\n BubbleSeries.prototype.getRadius = function (zMin, zMax, minSize, maxSize, value, yValue) {\n var options = this.options,\n sizeByArea = options.sizeBy !== 'width',\n zThreshold = options.zThreshold;\n var zRange = zMax - zMin,\n pos = 0.5;\n // #8608 - bubble should be visible when z is undefined\n if (yValue === null || value === null) {\n return null;\n }\n if (BubbleSeries_isNumber(value)) {\n // When sizing by threshold, the absolute value of z determines\n // the size of the bubble.\n if (options.sizeByAbsoluteValue) {\n value = Math.abs(value - zThreshold);\n zMax = zRange = Math.max(zMax - zThreshold, Math.abs(zMin - zThreshold));\n zMin = 0;\n }\n // Issue #4419 - if value is less than zMin, push a radius that's\n // always smaller than the minimum size\n if (value < zMin) {\n return minSize / 2 - 1;\n }\n // Relative size, a number between 0 and 1\n if (zRange > 0) {\n pos = (value - zMin) / zRange;\n }\n }\n if (sizeByArea && pos >= 0) {\n pos = Math.sqrt(pos);\n }\n return Math.ceil(minSize + pos * (maxSize - minSize)) / 2;\n };\n /**\n * Define hasData function for non-cartesian series.\n * Returns true if the series has points at all.\n * @private\n */\n BubbleSeries.prototype.hasData = function () {\n return !!this.dataTable.rowCount;\n };\n /**\n * @private\n */\n BubbleSeries.prototype.markerAttribs = function (point, state) {\n var attr = _super.prototype.markerAttribs.call(this,\n point,\n state),\n _a = attr.height,\n height = _a === void 0 ? 0 : _a,\n _b = attr.width,\n width = _b === void 0 ? 0 : _b;\n // Bubble needs a specific `markerAttribs` override because the markers\n // are rendered into the potentially inverted `series.group`. Unlike\n // regular markers, which are rendered into the `markerGroup` (#21125).\n return this.chart.inverted ? BubbleSeries_extend(attr, {\n x: (point.plotX || 0) - width / 2,\n y: (point.plotY || 0) - height / 2\n }) : attr;\n };\n /**\n * @private\n */\n BubbleSeries.prototype.pointAttribs = function (point, state) {\n var markerOptions = this.options.marker,\n fillOpacity = markerOptions.fillOpacity,\n attr = Series.prototype.pointAttribs.call(this,\n point,\n state);\n if (fillOpacity !== 1) {\n attr.fill = BubbleSeries_color(attr.fill)\n .setOpacity(fillOpacity)\n .get('rgba');\n }\n return attr;\n };\n /**\n * Extend the base translate method to handle bubble size\n * @private\n */\n BubbleSeries.prototype.translate = function () {\n // Run the parent method\n _super.prototype.translate.call(this);\n this.getRadii();\n this.translateBubble();\n };\n BubbleSeries.prototype.translateBubble = function () {\n var _a = this,\n data = _a.data,\n options = _a.options,\n radii = _a.radii,\n minPxSize = this.getPxExtremes().minPxSize;\n // Set the shape type and arguments to be picked up in drawPoints\n var i = data.length;\n while (i--) {\n var point = data[i],\n radius = radii ? radii[i] : 0; // #1737\n // Negative points means negative z values (#9728)\n if (this.zoneAxis === 'z') {\n point.negative = (point.z || 0) < (options.zThreshold || 0);\n }\n if (BubbleSeries_isNumber(radius) && radius >= minPxSize / 2) {\n // Shape arguments\n point.marker = BubbleSeries_extend(point.marker, {\n radius: radius,\n width: 2 * radius,\n height: 2 * radius\n });\n // Alignment box for the data label\n point.dlBox = {\n x: point.plotX - radius,\n y: point.plotY - radius,\n width: 2 * radius,\n height: 2 * radius\n };\n }\n else { // Below zThreshold\n // #1691\n point.shapeArgs = point.plotY = point.dlBox = void 0;\n point.isInside = false; // #17281\n }\n }\n };\n BubbleSeries.prototype.getPxExtremes = function () {\n var smallestSize = Math.min(this.chart.plotWidth,\n this.chart.plotHeight);\n var getPxSize = function (length) {\n var isPercent;\n if (typeof length === 'string') {\n isPercent = /%$/.test(length);\n length = parseInt(length, 10);\n }\n return isPercent ? smallestSize * length / 100 : length;\n };\n var minPxSize = getPxSize(BubbleSeries_pick(this.options.minSize, 8));\n // Prioritize min size if conflict to make sure bubbles are\n // always visible. #5873\n var maxPxSize = Math.max(getPxSize(BubbleSeries_pick(this.options.maxSize, '20%')),\n minPxSize);\n return { minPxSize: minPxSize, maxPxSize: maxPxSize };\n };\n BubbleSeries.prototype.getZExtremes = function () {\n var options = this.options,\n zData = this.getColumn('z').filter(BubbleSeries_isNumber);\n if (zData.length) {\n var zMin = BubbleSeries_pick(options.zMin,\n clamp(BubbleSeries_arrayMin(zData),\n options.displayNegative === false ?\n (options.zThreshold || 0) :\n -Number.MAX_VALUE,\n Number.MAX_VALUE));\n var zMax = BubbleSeries_pick(options.zMax,\n BubbleSeries_arrayMax(zData));\n if (BubbleSeries_isNumber(zMin) && BubbleSeries_isNumber(zMax)) {\n return { zMin: zMin, zMax: zMax };\n }\n }\n };\n /**\n * @private\n * @function Highcharts.Series#searchKDTree\n */\n BubbleSeries.prototype.searchKDTree = function (point, compareX, e, suppliedPointEvaluator, suppliedBSideCheckEvaluator) {\n if (suppliedPointEvaluator === void 0) { suppliedPointEvaluator = BubbleSeries_noop; }\n if (suppliedBSideCheckEvaluator === void 0) { suppliedBSideCheckEvaluator = BubbleSeries_noop; }\n suppliedPointEvaluator = function (p1, p2, comparisonProp) {\n var _a,\n _b;\n var p1Dist = p1[comparisonProp] || 0;\n var p2Dist = p2[comparisonProp] || 0;\n var ret,\n flip = false;\n if (p1Dist < 0 && p2Dist < 0) {\n ret = (p1Dist - (((_a = p1.marker) === null || _a === void 0 ? void 0 : _a.radius) || 0) >=\n p2Dist - (((_b = p2.marker) === null || _b === void 0 ? void 0 : _b.radius) || 0)) ?\n p1 :\n p2;\n flip = true;\n }\n else {\n ret = p1Dist < p2Dist ? p1 : p2;\n }\n return [ret, flip];\n };\n suppliedBSideCheckEvaluator = function (a, b, flip) { return !flip && (a > b) || (a < b); };\n return _super.prototype.searchKDTree.call(this, point, compareX, e, suppliedPointEvaluator, suppliedBSideCheckEvaluator);\n };\n /* *\n *\n * Static Properties\n *\n * */\n /**\n * A bubble series is a three dimensional series type where each point\n * renders an X, Y and Z value. Each points is drawn as a bubble where the\n * position along the X and Y axes mark the X and Y values, and the size of\n * the bubble relates to the Z value.\n *\n * @sample {highcharts} highcharts/demo/bubble/\n * Bubble chart\n *\n * @extends plotOptions.scatter\n * @excluding cluster\n * @product highcharts highstock\n * @requires highcharts-more\n * @optionparent plotOptions.bubble\n */\n BubbleSeries.defaultOptions = BubbleSeries_merge(ScatterSeries.defaultOptions, {\n dataLabels: {\n formatter: function () {\n var numberFormatter = this.series.chart.numberFormatter;\n var z = this.point.z;\n return BubbleSeries_isNumber(z) ? numberFormatter(z, -1) : '';\n },\n inside: true,\n verticalAlign: 'middle'\n },\n /**\n * If there are more points in the series than the `animationLimit`, the\n * animation won't run. Animation affects overall performance and\n * doesn't work well with heavy data series.\n *\n * @since 6.1.0\n */\n animationLimit: 250,\n /**\n * Whether to display negative sized bubbles. The threshold is given\n * by the [zThreshold](#plotOptions.bubble.zThreshold) option, and negative\n * bubbles can be visualized by setting\n * [negativeColor](#plotOptions.bubble.negativeColor).\n *\n * @sample {highcharts} highcharts/plotoptions/bubble-negative/\n * Negative bubbles\n *\n * @type {boolean}\n * @default true\n * @since 3.0\n * @apioption plotOptions.bubble.displayNegative\n */\n /**\n * @extends plotOptions.series.marker\n * @excluding enabled, enabledThreshold, height, radius, width\n */\n marker: {\n lineColor: null, // Inherit from series.color\n lineWidth: 1,\n /**\n * The fill opacity of the bubble markers.\n */\n fillOpacity: 0.5,\n /**\n * In bubble charts, the radius is overridden and determined based\n * on the point's data value.\n *\n * @ignore-option\n */\n radius: null,\n states: {\n hover: {\n radiusPlus: 0\n }\n },\n /**\n * A predefined shape or symbol for the marker. Possible values are\n * \"circle\", \"square\", \"diamond\", \"triangle\" and \"triangle-down\".\n *\n * Additionally, the URL to a graphic can be given on the 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/bubble-symbol/\n * Bubble chart with various symbols\n * @sample {highcharts} highcharts/plotoptions/series-marker-symbol/\n * General chart with predefined, graphic and custom markers\n *\n * @type {Highcharts.SymbolKeyValue|string}\n * @since 5.0.11\n */\n symbol: 'circle'\n },\n /**\n * Minimum bubble size. Bubbles will automatically size between the\n * `minSize` and `maxSize` to reflect the `z` value of each bubble.\n * Can be either pixels (when no unit is given), or a percentage of\n * the smallest one of the plot width and height.\n *\n * @sample {highcharts} highcharts/plotoptions/bubble-size/\n * Bubble size\n *\n * @type {number|string}\n * @since 3.0\n * @product highcharts highstock\n */\n minSize: 8,\n /**\n * Maximum bubble size. Bubbles will automatically size between the\n * `minSize` and `maxSize` to reflect the `z` value of each bubble.\n * Can be either pixels (when no unit is given), or a percentage of\n * the smallest one of the plot width and height.\n *\n * @sample {highcharts} highcharts/plotoptions/bubble-size/\n * Bubble size\n *\n * @type {number|string}\n * @since 3.0\n * @product highcharts highstock\n */\n maxSize: '20%',\n /**\n * When a point's Z value is below the\n * [zThreshold](#plotOptions.bubble.zThreshold)\n * setting, this color is used.\n *\n * @sample {highcharts} highcharts/plotoptions/bubble-negative/\n * Negative bubbles\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @since 3.0\n * @product highcharts\n * @apioption plotOptions.bubble.negativeColor\n */\n /**\n * Whether the bubble's value should be represented by the area or the\n * width of the bubble. The default, `area`, corresponds best to the\n * human perception of the size of each bubble.\n *\n * @sample {highcharts} highcharts/plotoptions/bubble-sizeby/\n * Comparison of area and size\n *\n * @type {Highcharts.BubbleSizeByValue}\n * @default area\n * @since 3.0.7\n * @apioption plotOptions.bubble.sizeBy\n */\n /**\n * When this is true, the absolute value of z determines the size of\n * the bubble. This means that with the default `zThreshold` of 0, a\n * bubble of value -1 will have the same size as a bubble of value 1,\n * while a bubble of value 0 will have a smaller size according to\n * `minSize`.\n *\n * @sample {highcharts} highcharts/plotoptions/bubble-sizebyabsolutevalue/\n * Size by absolute value, various thresholds\n *\n * @type {boolean}\n * @default false\n * @since 4.1.9\n * @product highcharts\n * @apioption plotOptions.bubble.sizeByAbsoluteValue\n */\n /**\n * When this is true, the series will not cause the Y axis to cross\n * the zero plane (or [threshold](#plotOptions.series.threshold) option)\n * unless the data actually crosses the plane.\n *\n * For example, if `softThreshold` is `false`, a series of 0, 1, 2,\n * 3 will make the Y axis show negative values according to the\n * `minPadding` option. If `softThreshold` is `true`, the Y axis starts\n * at 0.\n *\n * @since 4.1.9\n * @product highcharts\n */\n softThreshold: false,\n states: {\n hover: {\n halo: {\n size: 5\n }\n }\n },\n tooltip: {\n pointFormat: '({point.x}, {point.y}), Size: {point.z}'\n },\n turboThreshold: 0,\n /**\n * The minimum for the Z value range. Defaults to the highest Z value\n * in the data.\n *\n * @see [zMin](#plotOptions.bubble.zMin)\n *\n * @sample {highcharts} highcharts/plotoptions/bubble-zmin-zmax/\n * Z has a possible range of 0-100\n *\n * @type {number}\n * @since 4.0.3\n * @product highcharts\n * @apioption plotOptions.bubble.zMax\n */\n /**\n * @default z\n * @apioption plotOptions.bubble.colorKey\n */\n /**\n * The minimum for the Z value range. Defaults to the lowest Z value\n * in the data.\n *\n * @see [zMax](#plotOptions.bubble.zMax)\n *\n * @sample {highcharts} highcharts/plotoptions/bubble-zmin-zmax/\n * Z has a possible range of 0-100\n *\n * @type {number}\n * @since 4.0.3\n * @product highcharts\n * @apioption plotOptions.bubble.zMin\n */\n /**\n * When [displayNegative](#plotOptions.bubble.displayNegative) is `false`,\n * bubbles with lower Z values are skipped. When `displayNegative`\n * is `true` and a [negativeColor](#plotOptions.bubble.negativeColor)\n * is given, points with lower Z is colored.\n *\n * @sample {highcharts} highcharts/plotoptions/bubble-negative/\n * Negative bubbles\n *\n * @since 3.0\n * @product highcharts\n */\n zThreshold: 0,\n zoneAxis: 'z'\n });\n return BubbleSeries;\n}(ScatterSeries));\nBubbleSeries_extend(BubbleSeries.prototype, {\n alignDataLabel: BubbleSeries_columnProto.alignDataLabel,\n applyZones: BubbleSeries_noop,\n bubblePadding: true,\n isBubble: true,\n keysAffectYAxis: ['y'],\n pointArrayMap: ['y', 'z'],\n pointClass: Bubble_BubblePoint,\n parallelArrays: ['x', 'y', 'z'],\n trackerGroups: ['group', 'dataLabelsGroup'],\n specialGroup: 'group', // To allow clipping (#6296)\n zoneAxis: 'z'\n});\n// On updated data in any series, delete the chart-level Z extremes cache\nBubbleSeries_addEvent(BubbleSeries, 'updatedData', function (e) {\n delete e.target.chart.bubbleZExtremes;\n});\n// After removing series, delete the chart-level Z extremes cache, #17502.\nBubbleSeries_addEvent(BubbleSeries, 'remove', function (e) {\n delete e.target.chart.bubbleZExtremes;\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('bubble', BubbleSeries);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Bubble_BubbleSeries = (BubbleSeries);\n/* *\n *\n * API Declarations\n *\n * */\n/**\n * @typedef {\"area\"|\"width\"} Highcharts.BubbleSizeByValue\n */\n''; // Detach doclets above\n/* *\n *\n * API Options\n *\n * */\n/**\n * A `bubble` series. If the [type](#series.bubble.type) option is\n * not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends series,plotOptions.bubble\n * @excluding dataParser, dataURL, legendSymbolColor, stack\n * @product highcharts highstock\n * @requires highcharts-more\n * @apioption series.bubble\n */\n/**\n * An array of data points for the series. For the `bubble` series type,\n * 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 correspond\n * to `x,y,z`. If the first value is a string, it is applied as the name of\n * the point, and the `x` value is inferred. The `x` value can also be\n * omitted, in which case the inner arrays should be of length 2\\. Then the\n * `x` value is automatically calculated, either starting at 0 and\n * incremented by 1, or from `pointStart` and `pointInterval` given in the\n * series options.\n * ```js\n * data: [\n * [0, 1, 2],\n * [1, 5, 5],\n * [2, 0, 2]\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\n * data points exceeds the series'\n * [turboThreshold](#series.bubble.turboThreshold), this option is not\n * available.\n * ```js\n * data: [{\n * x: 1,\n * y: 1,\n * z: 1,\n * name: \"Point2\",\n * color: \"#00FF00\"\n * }, {\n * x: 1,\n * y: 5,\n * z: 4,\n * name: \"Point1\",\n * color: \"#FF00FF\"\n * }]\n * ```\n *\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<Array<(number|string),number>|Array<(number|string),number,number>|*>}\n * @extends series.line.data\n * @product highcharts\n * @apioption series.bubble.data\n */\n/**\n * @extends series.line.data.marker\n * @excluding enabledThreshold, height, radius, width\n * @product highcharts\n * @apioption series.bubble.data.marker\n */\n/**\n * The size value for each bubble. The bubbles' diameters are computed\n * based on the `z`, and controlled by series options like `minSize`,\n * `maxSize`, `sizeBy`, `zMin` and `zMax`.\n *\n * @type {number|null}\n * @product highcharts\n * @apioption series.bubble.data.z\n */\n/**\n * @excluding enabled, enabledThreshold, height, radius, width\n * @apioption series.bubble.marker\n */\n''; // Adds doclets above to transpiled file\n\n;// ./code/es5/es-modules/Series/ColumnRange/ColumnRangePoint.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ColumnRangePoint_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar ColumnRangePoint_a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, ColumnRangePoint_columnProto = ColumnRangePoint_a.column.prototype.pointClass.prototype, ColumnRangePoint_AreaRangePoint = ColumnRangePoint_a.arearange.prototype.pointClass;\n\nvar ColumnRangePoint_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, ColumnRangePoint_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber;\n/* *\n *\n * Class\n *\n * */\nvar ColumnRangePoint = /** @class */ (function (_super) {\n ColumnRangePoint_extends(ColumnRangePoint, _super);\n function ColumnRangePoint() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n ColumnRangePoint.prototype.isValid = function () {\n return ColumnRangePoint_isNumber(this.low);\n };\n return ColumnRangePoint;\n}(ColumnRangePoint_AreaRangePoint));\nColumnRangePoint_extend(ColumnRangePoint.prototype, {\n setState: ColumnRangePoint_columnProto.setState\n});\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var ColumnRange_ColumnRangePoint = (ColumnRangePoint);\n\n;// ./code/es5/es-modules/Series/ColumnRange/ColumnRangeSeries.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ColumnRangeSeries_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar ColumnRangeSeries_noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\nvar ColumnRangeSeries_a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, ColumnRangeSeries_AreaRangeSeries = ColumnRangeSeries_a.arearange, ColumnSeries = ColumnRangeSeries_a.column, ColumnRangeSeries_columnProto = ColumnRangeSeries_a.column.prototype;\n\nvar ColumnRangeSeries_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, ColumnRangeSeries_clamp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).clamp, ColumnRangeSeries_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, ColumnRangeSeries_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, ColumnRangeSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, ColumnRangeSeries_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Constants\n *\n * */\n/**\n * The column range is a cartesian series type with higher and lower\n * Y values along an X axis. To display horizontal bars, set\n * [chart.inverted](#chart.inverted) to `true`.\n *\n * @sample {highcharts|highstock} highcharts/demo/columnrange/\n * Inverted column range\n *\n * @extends plotOptions.column\n * @since 2.3.0\n * @excluding negativeColor, stacking, softThreshold, threshold\n * @product highcharts highstock\n * @requires highcharts-more\n * @optionparent plotOptions.columnrange\n */\nvar columnRangeOptions = {\n borderRadius: {\n where: 'all'\n },\n /**\n * Extended data labels for range series types. Range series data labels\n * have no `x` and `y` options. Instead, they have `xLow`, `xHigh`,\n * `yLow` and `yHigh` options to allow the higher and lower data label\n * sets individually.\n *\n * @declare Highcharts.SeriesAreaRangeDataLabelsOptionsObject\n * @extends plotOptions.arearange.dataLabels\n * @since 2.3.0\n * @product highcharts highstock\n * @apioption plotOptions.columnrange.dataLabels\n */\n pointRange: null,\n legendSymbol: 'rectangle',\n /** @ignore-option */\n marker: null,\n states: {\n hover: {\n /** @ignore-option */\n halo: false\n }\n }\n};\n/* *\n *\n * Class\n *\n * */\n/**\n * The ColumnRangeSeries class\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.columnrange\n *\n * @augments Highcharts.Series\n */\nvar ColumnRangeSeries = /** @class */ (function (_super) {\n ColumnRangeSeries_extends(ColumnRangeSeries, _super);\n function ColumnRangeSeries() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n ColumnRangeSeries.prototype.setOptions = function () {\n // #14359 Prevent side-effect from stacking.\n ColumnRangeSeries_merge(true, arguments[0], { stacking: void 0 });\n return ColumnRangeSeries_AreaRangeSeries.prototype.setOptions.apply(this, arguments);\n };\n // Overrides from modules that may be loaded after this module\n // @todo move to compositions\n ColumnRangeSeries.prototype.translate = function () {\n return ColumnRangeSeries_columnProto.translate.apply(this);\n };\n // Public crispCol(): BBoxObject {\n // return columnProto.crispCol.apply(this, arguments as any);\n // }\n // public drawPoints(): void {\n // return columnProto.drawPoints.apply(this, arguments as any);\n // }\n // public drawTracker(): void {\n // return columnProto.drawTracker.apply(this, arguments as any);\n // }\n // public getColumnMetrics(): ColumnMetricsObject {\n // return columnProto.getColumnMetrics.apply(this, arguments as any);\n // }\n ColumnRangeSeries.prototype.pointAttribs = function () {\n return ColumnRangeSeries_columnProto.pointAttribs.apply(this, arguments);\n };\n // Public adjustForMissingColumns(): number {\n // return columnProto.adjustForMissingColumns.apply(this, arguments);\n // }\n // public animate(): void {\n // return columnProto.animate.apply(this, arguments as any);\n // }\n ColumnRangeSeries.prototype.translate3dPoints = function () {\n return ColumnRangeSeries_columnProto.translate3dPoints.apply(this, arguments);\n };\n ColumnRangeSeries.prototype.translate3dShapes = function () {\n return ColumnRangeSeries_columnProto.translate3dShapes.apply(this, arguments);\n };\n ColumnRangeSeries.prototype.afterColumnTranslate = function () {\n var _this = this;\n /**\n * Translate data points from raw values x and y to plotX and plotY\n * @private\n */\n var yAxis = this.yAxis,\n xAxis = this.xAxis,\n startAngleRad = xAxis.startAngleRad,\n chart = this.chart,\n isRadial = this.xAxis.isRadial,\n safeDistance = Math.max(chart.chartWidth,\n chart.chartHeight) + 999;\n var height,\n heightDifference,\n start,\n y;\n // eslint-disable-next-line valid-jsdoc\n /**\n * Don't draw too far outside plot area (#6835)\n * @private\n */\n function safeBounds(pixelPos) {\n return ColumnRangeSeries_clamp(pixelPos, -safeDistance, safeDistance);\n }\n // Set plotLow and plotHigh\n this.points.forEach(function (point) {\n var shapeArgs = point.shapeArgs || {},\n minPointLength = _this.options.minPointLength,\n plotY = point.plotY,\n plotHigh = yAxis.translate(point.high, 0, 1, 0, 1);\n if (ColumnRangeSeries_isNumber(plotHigh) && ColumnRangeSeries_isNumber(plotY)) {\n point.plotHigh = safeBounds(plotHigh);\n point.plotLow = safeBounds(plotY);\n // Adjust shape\n y = point.plotHigh;\n height = ColumnRangeSeries_pick(point.rectPlotY, point.plotY) - point.plotHigh;\n // Adjust for minPointLength\n if (Math.abs(height) < minPointLength) {\n heightDifference = (minPointLength - height);\n height += heightDifference;\n y -= heightDifference / 2;\n // Adjust for negative ranges or reversed Y axis (#1457)\n }\n else if (height < 0) {\n height *= -1;\n y -= height;\n }\n if (isRadial && _this.polar) {\n start = point.barX + startAngleRad;\n point.shapeType = 'arc';\n point.shapeArgs = _this.polar.arc(y + height, y, start, start + point.pointWidth);\n }\n else {\n shapeArgs.height = height;\n shapeArgs.y = y;\n var _a = shapeArgs.x,\n x = _a === void 0 ? 0 : _a,\n _b = shapeArgs.width,\n width = _b === void 0 ? 0 : _b;\n // #17912, aligning column range points\n // merge if shapeArgs contains more properties e.g. for 3d\n point.shapeArgs = ColumnRangeSeries_merge(point.shapeArgs, _this.crispCol(x, y, width, height));\n point.tooltipPos = chart.inverted ?\n [\n yAxis.len + yAxis.pos - chart.plotLeft - y -\n height / 2,\n xAxis.len + xAxis.pos - chart.plotTop - x -\n width / 2,\n height\n ] : [\n xAxis.left - chart.plotLeft + x + width / 2,\n yAxis.pos - chart.plotTop + y + height / 2,\n height\n ]; // Don't inherit from column tooltip position - #3372\n }\n }\n });\n };\n /* *\n *\n * Static Properties\n *\n * */\n ColumnRangeSeries.defaultOptions = ColumnRangeSeries_merge(ColumnSeries.defaultOptions, ColumnRangeSeries_AreaRangeSeries.defaultOptions, columnRangeOptions);\n return ColumnRangeSeries;\n}(ColumnRangeSeries_AreaRangeSeries));\nColumnRangeSeries_addEvent(ColumnRangeSeries, 'afterColumnTranslate', function () {\n ColumnRangeSeries.prototype.afterColumnTranslate.apply(this);\n}, { order: 5 });\nColumnRangeSeries_extend(ColumnRangeSeries.prototype, {\n directTouch: true,\n pointClass: ColumnRange_ColumnRangePoint,\n trackerGroups: ['group', 'dataLabelsGroup'],\n adjustForMissingColumns: ColumnRangeSeries_columnProto.adjustForMissingColumns,\n animate: ColumnRangeSeries_columnProto.animate,\n crispCol: ColumnRangeSeries_columnProto.crispCol,\n drawGraph: ColumnRangeSeries_noop,\n drawPoints: ColumnRangeSeries_columnProto.drawPoints,\n getSymbol: ColumnRangeSeries_noop,\n drawTracker: ColumnRangeSeries_columnProto.drawTracker,\n getColumnMetrics: ColumnRangeSeries_columnProto.getColumnMetrics\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('columnrange', ColumnRangeSeries);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var ColumnRange_ColumnRangeSeries = ((/* unused pure expression or super */ null && (ColumnRangeSeries)));\n/* *\n *\n * API Options\n *\n * */\n/**\n * A `columnrange` series. If the [type](#series.columnrange.type)\n * option is not specified, it is inherited from\n * [chart.type](#chart.type).\n *\n * @extends series,plotOptions.columnrange\n * @excluding dataParser, dataURL, stack, stacking\n * @product highcharts highstock\n * @requires highcharts-more\n * @apioption series.columnrange\n */\n/**\n * An array of data points for the series. For the `columnrange` 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 correspond\n * to `x,low,high`. If the first value is a string, it is applied as the name\n * of the point, and the `x` value is inferred. The `x` value can also be\n * omitted, in which case the inner arrays should be of length 2\\. Then the\n * `x` value is automatically calculated, either starting at 0 and\n * incremented by 1, or from `pointStart` and `pointInterval` given in the\n * series options.\n * ```js\n * data: [\n * [0, 4, 2],\n * [1, 2, 1],\n * [2, 9, 10]\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\n * data points exceeds the series'\n * [turboThreshold](#series.columnrange.turboThreshold), this option is not\n * available.\n * ```js\n * data: [{\n * x: 1,\n * low: 0,\n * high: 4,\n * name: \"Point2\",\n * color: \"#00FF00\"\n * }, {\n * x: 1,\n * low: 5,\n * high: 3,\n * name: \"Point1\",\n * color: \"#FF00FF\"\n * }]\n * ```\n *\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<Array<(number|string),number>|Array<(number|string),number,number>|*>}\n * @extends series.arearange.data\n * @excluding marker\n * @product highcharts highstock\n * @apioption series.columnrange.data\n */\n/**\n * @extends series.columnrange.dataLabels\n * @product highcharts highstock\n * @apioption series.columnrange.data.dataLabels\n */\n/**\n * @excluding halo, lineWidth, lineWidthPlus, marker\n * @product highcharts highstock\n * @apioption series.columnrange.states.hover\n */\n/**\n * @excluding halo, lineWidth, lineWidthPlus, marker\n * @product highcharts highstock\n * @apioption series.columnrange.states.select\n */\n''; // Adds doclets above into transpiled\n\n;// ./code/es5/es-modules/Series/ColumnPyramid/ColumnPyramidSeriesDefaults.js\n/* *\n *\n * (c) 2010-2024 Sebastian Bochan\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * API Options\n *\n * */\n/**\n * Column pyramid series display one pyramid per value along an X axis.\n * To display horizontal pyramids, set [chart.inverted](#chart.inverted) to\n * `true`.\n *\n * @sample {highcharts|highstock} highcharts/demo/column-pyramid/\n * Column pyramid\n * @sample {highcharts|highstock} highcharts/plotoptions/columnpyramid-stacked/\n * Column pyramid stacked\n * @sample {highcharts|highstock} highcharts/plotoptions/columnpyramid-inverted/\n * Column pyramid inverted\n *\n * @extends plotOptions.column\n * @since 7.0.0\n * @product highcharts highstock\n * @excluding boostThreshold, borderRadius, crisp, depth, edgeColor,\n * edgeWidth, groupZPadding, negativeColor, softThreshold,\n * threshold, zoneAxis, zones, boostBlending\n * @requires highcharts-more\n * @optionparent plotOptions.columnpyramid\n */\nvar ColumnPyramidSeriesDefaults = {};\n/**\n * A `columnpyramid` series. If the [type](#series.columnpyramid.type) option is\n * not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends series,plotOptions.columnpyramid\n * @excluding connectEnds, connectNulls, dashStyle, dataParser, dataURL,\n * gapSize, gapUnit, linecap, lineWidth, marker, step,\n * boostThreshold, boostBlending\n * @product highcharts highstock\n * @requires highcharts-more\n * @apioption series.columnpyramid\n */\n/**\n * @excluding halo, lineWidth, lineWidthPlus, marker\n * @product highcharts highstock\n * @apioption series.columnpyramid.states.hover\n */\n/**\n * @excluding halo, lineWidth, lineWidthPlus, marker\n * @product highcharts highstock\n * @apioption series.columnpyramid.states.select\n */\n/**\n * An array of data points for the series. For the `columnpyramid` series type,\n * points can be given in the following ways:\n *\n * 1. An array of numerical values. In this case, the numerical values will be\n * interpreted as `y` options. The `x` values will be automatically\n * calculated, either starting at 0 and incremented by 1, or from\n * `pointStart` and `pointInterval` given in the series options. If the axis\n * has categories, these will be used. Example:\n * ```js\n * data: [0, 5, 3, 5]\n * ```\n *\n * 2. An array of arrays with 2 values. In this case, the values correspond to\n * `x,y`. If the first value is a string, it is applied as the name of the\n * point, and the `x` value is inferred.\n * ```js\n * data: [\n * [0, 6],\n * [1, 2],\n * [2, 6]\n * ]\n * ```\n *\n * 3. An array of objects with named values. The objects are point configuration\n * objects as seen below. If the total number of data points exceeds the\n * series' [turboThreshold](#series.columnpyramid.turboThreshold), this\n * option is not available.\n * ```js\n * data: [{\n * x: 1,\n * y: 9,\n * name: \"Point2\",\n * color: \"#00FF00\"\n * }, {\n * x: 1,\n * y: 6,\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<number|Array<(number|string),(number|null)>|null|*>}\n * @extends series.line.data\n * @excluding marker\n * @product highcharts highstock\n * @apioption series.columnpyramid.data\n */\n''; // Keeps doclets above separate\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var ColumnPyramid_ColumnPyramidSeriesDefaults = (ColumnPyramidSeriesDefaults);\n\n;// ./code/es5/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js\n/* *\n *\n * (c) 2010-2024 Sebastian Bochan\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ColumnPyramidSeries_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar ColumnPyramidSeries_ColumnSeries = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.column;\n\nvar ColumnPyramidSeries_clamp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).clamp, ColumnPyramidSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, ColumnPyramidSeries_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Class\n *\n * */\n/**\n * The ColumnPyramidSeries class\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.columnpyramid\n *\n * @augments Highcharts.Series\n */\nvar ColumnPyramidSeries = /** @class */ (function (_super) {\n ColumnPyramidSeries_extends(ColumnPyramidSeries, _super);\n function ColumnPyramidSeries() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Overrides the column translate method\n * @private\n */\n ColumnPyramidSeries.prototype.translate = function () {\n var series = this,\n chart = series.chart,\n options = series.options,\n dense = series.dense =\n series.closestPointRange * series.xAxis.transA < 2,\n borderWidth = series.borderWidth = ColumnPyramidSeries_pick(options.borderWidth,\n dense ? 0 : 1 // #3635\n ),\n yAxis = series.yAxis,\n threshold = options.threshold,\n minPointLength = ColumnPyramidSeries_pick(options.minPointLength, 5),\n metrics = series.getColumnMetrics(),\n pointWidth = metrics.width,\n pointXOffset = series.pointXOffset = metrics.offset;\n var translatedThreshold = series.translatedThreshold =\n yAxis.getThreshold(threshold), \n // Postprocessed for border width\n seriesBarW = series.barW =\n Math.max(pointWidth, 1 + 2 * borderWidth);\n if (chart.inverted) {\n translatedThreshold -= 0.5; // #3355\n }\n // When the pointPadding is 0,\n // we want the pyramids to be packed tightly,\n // so we allow individual pyramids to have individual sizes.\n // When pointPadding is greater,\n // we strive for equal-width columns (#2694).\n if (options.pointPadding) {\n seriesBarW = Math.ceil(seriesBarW);\n }\n _super.prototype.translate.call(this);\n // Record the new values\n for (var _i = 0, _a = series.points; _i < _a.length; _i++) {\n var point = _a[_i];\n var yBottom = ColumnPyramidSeries_pick(point.yBottom,\n translatedThreshold),\n safeDistance = 999 + Math.abs(yBottom),\n plotY = ColumnPyramidSeries_clamp(point.plotY, -safeDistance,\n yAxis.len + safeDistance), \n // Don't draw too far outside plot area\n // (#1303, #2241, #4264)\n barW = seriesBarW / 2,\n barY = Math.min(plotY,\n yBottom),\n barH = Math.max(plotY,\n yBottom) - barY;\n var barX = point.plotX + pointXOffset,\n stackTotal = void 0,\n stackHeight = void 0,\n topXwidth = void 0,\n bottomXwidth = void 0,\n invBarPos = void 0,\n x1 = void 0,\n x2 = void 0,\n x3 = void 0,\n x4 = void 0,\n y1 = void 0,\n y2 = void 0;\n // Adjust for null or missing points\n if (options.centerInCategory) {\n barX = series.adjustForMissingColumns(barX, pointWidth, point, metrics);\n }\n point.barX = barX;\n point.pointWidth = pointWidth;\n // Fix the tooltip on center of grouped pyramids\n // (#1216, #424, #3648)\n point.tooltipPos = chart.inverted ?\n [\n yAxis.len + yAxis.pos - chart.plotLeft - plotY,\n series.xAxis.len - barX - barW,\n barH\n ] :\n [\n barX + barW,\n plotY + yAxis.pos - chart.plotTop,\n barH\n ];\n stackTotal =\n threshold + (point.total || point.y);\n // Overwrite stacktotal (always 100 / -100)\n if (options.stacking === 'percent') {\n stackTotal =\n threshold + (point.y < 0) ?\n -100 :\n 100;\n }\n // Get the highest point (if stack, extract from total)\n var topPointY = yAxis.toPixels((stackTotal),\n true);\n // Calculate height of stack (in pixels)\n stackHeight =\n chart.plotHeight - topPointY -\n (chart.plotHeight - translatedThreshold);\n // `topXwidth` and `bottomXwidth` = width of lines from the center\n // calculated from tanges proportion. Cannot be a NaN #12514.\n topXwidth = stackHeight ?\n (barW * (barY - topPointY)) / stackHeight : 0;\n // Like topXwidth, but with height of point\n bottomXwidth = stackHeight ?\n (barW * (barY + barH - topPointY)) / stackHeight :\n 0;\n /*\n /\\\n / \\\n x1,y1,------ x2,y1\n / \\\n -----------\n x4,y2 x3,y2\n */\n x1 = barX - topXwidth + barW;\n x2 = barX + topXwidth + barW;\n x3 = barX + bottomXwidth + barW;\n x4 = barX - bottomXwidth + barW;\n y1 = barY - minPointLength;\n y2 = barY + barH;\n if (point.y < 0) {\n y1 = barY;\n y2 = barY + barH + minPointLength;\n }\n // Inverted chart\n if (chart.inverted) {\n invBarPos = yAxis.width - barY;\n stackHeight =\n topPointY - (yAxis.width - translatedThreshold);\n // Proportion tanges\n topXwidth = (barW *\n (topPointY - invBarPos)) / stackHeight;\n bottomXwidth = (barW *\n (topPointY - (invBarPos - barH))) / stackHeight;\n x1 = barX + barW + topXwidth; // Top bottom\n x2 = x1 - 2 * topXwidth; // Top top\n x3 = barX - bottomXwidth + barW; // Bottom top\n x4 = barX + bottomXwidth + barW; // Bottom bottom\n y1 = barY;\n y2 = barY + barH - minPointLength;\n if (point.y < 0) {\n y2 = barY + barH + minPointLength;\n }\n }\n // Register shape type and arguments to be used in drawPoints\n point.shapeType = 'path';\n point.shapeArgs = {\n x: x1,\n y: y1,\n width: x2 - x1,\n height: barH,\n // Path of pyramid\n d: [\n ['M', x1, y1],\n ['L', x2, y1],\n ['L', x3, y2],\n ['L', x4, y2],\n ['Z']\n ]\n };\n }\n };\n /* *\n *\n * Static properties\n *\n * */\n ColumnPyramidSeries.defaultOptions = ColumnPyramidSeries_merge(ColumnPyramidSeries_ColumnSeries.defaultOptions, ColumnPyramid_ColumnPyramidSeriesDefaults);\n return ColumnPyramidSeries;\n}(ColumnPyramidSeries_ColumnSeries));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('columnpyramid', ColumnPyramidSeries);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var ColumnPyramid_ColumnPyramidSeries = ((/* unused pure expression or super */ null && (ColumnPyramidSeries)));\n\n;// ./code/es5/es-modules/Series/ErrorBar/ErrorBarSeriesDefaults.js\n/* *\n *\n * (c) 2010-2024 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 *\n * API Options\n *\n * */\n/**\n * Error bars are a graphical representation of the variability of data and\n * are used on graphs to indicate the error, or uncertainty in a reported\n * measurement.\n *\n * @sample highcharts/demo/error-bar/\n * Error bars on a column series\n * @sample highcharts/series-errorbar/on-scatter/\n * Error bars on a scatter series\n * @sample highcharts/series-errorbar/datalabels/\n * Error bars with data labels\n *\n * @extends plotOptions.boxplot\n * @excluding boostBlending, boostThreshold\n * @product highcharts\n * @requires highcharts-more\n * @optionparent plotOptions.errorbar\n */\nvar ErrorBarSeriesDefaults = {\n /**\n * The main color of the bars. This can be overridden by\n * [stemColor](#plotOptions.errorbar.stemColor) and\n * [whiskerColor](#plotOptions.errorbar.whiskerColor) individually.\n *\n * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n * Error bar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @default #000000\n * @since 3.0\n * @product highcharts\n */\n color: \"#000000\" /* Palette.neutralColor100 */,\n grouping: false,\n /**\n * The parent series of the error bar. The default value links it to\n * the previous series. Otherwise, use the id of the parent series.\n *\n * @since 3.0\n * @product highcharts\n */\n linkedTo: ':previous',\n tooltip: {\n pointFormat: '<span style=\"color:{point.color}\">\\u25CF</span> {series.name}: <b>{point.low}</b> - <b>{point.high}</b><br/>'\n },\n /**\n * The line width of the whiskers, the horizontal lines marking\n * low and high values. When `null`, the general\n * [lineWidth](#plotOptions.errorbar.lineWidth) applies.\n *\n * @sample {highcharts} highcharts/plotoptions/error-bar-styling/\n * Error bar styling\n *\n * @type {number}\n * @since 3.0\n * @product highcharts\n */\n whiskerWidth: null\n};\n/**\n * A `errorbar` series. If the [type](#series.errorbar.type) option\n * is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends series,plotOptions.errorbar\n * @excluding dataParser, dataURL, stack, stacking, boostThreshold,\n * boostBlending\n * @product highcharts\n * @requires highcharts-more\n * @apioption series.errorbar\n */\n/**\n * An array of data points for the series. For the `errorbar` 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 correspond\n * to `x,low,high`. If the first value is a string, it is applied as the name\n * of the point, and the `x` value is inferred. The `x` value can also be\n * omitted, in which case the inner arrays should be of length 2\\. Then the\n * `x` value is automatically calculated, either starting at 0 and\n * incremented by 1, or from `pointStart` and `pointInterval` given in the\n * series options.\n * ```js\n * data: [\n * [0, 10, 2],\n * [1, 1, 8],\n * [2, 4, 5]\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\n * data points exceeds the series'\n * [turboThreshold](#series.errorbar.turboThreshold), this option is not\n * available.\n * ```js\n * data: [{\n * x: 1,\n * low: 0,\n * high: 0,\n * name: \"Point2\",\n * color: \"#00FF00\"\n * }, {\n * x: 1,\n * low: 5,\n * high: 5,\n * name: \"Point1\",\n * color: \"#FF00FF\"\n * }]\n * ```\n *\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<Array<(number|string),number>|Array<(number|string),number,number>|*>}\n * @extends series.arearange.data\n * @excluding dataLabels, drilldown, marker, states\n * @product highcharts\n * @apioption series.errorbar.data\n */\n''; // Adds doclets above to transpiled file\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var ErrorBar_ErrorBarSeriesDefaults = (ErrorBarSeriesDefaults);\n\n;// ./code/es5/es-modules/Series/ErrorBar/ErrorBarSeries.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ErrorBarSeries_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\nvar ErrorBarSeries_AreaRangeSeries = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.arearange;\n\nvar ErrorBarSeries_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, ErrorBarSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, ErrorBarSeries_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend;\n/* *\n *\n * Class\n *\n * */\n/**\n * Errorbar series type\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.errorbar\n *\n * @augments Highcharts.Series\n */\nvar ErrorBarSeries = /** @class */ (function (_super) {\n ErrorBarSeries_extends(ErrorBarSeries, _super);\n function ErrorBarSeries() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n ErrorBarSeries.prototype.getColumnMetrics = function () {\n var series = this;\n // Get the width and X offset, either on top of the linked series\n // column or standalone\n return ((series.linkedParent && series.linkedParent.columnMetrics) ||\n highcharts_Series_types_column_commonjs_highcharts_Series_types_column_commonjs2_highcharts_Series_types_column_root_Highcharts_Series_types_column_default().prototype.getColumnMetrics.call(series));\n };\n ErrorBarSeries.prototype.drawDataLabels = function () {\n var series = this,\n valKey = series.pointValKey;\n if (ErrorBarSeries_AreaRangeSeries) {\n ErrorBarSeries_AreaRangeSeries.prototype.drawDataLabels.call(series);\n // Arearange drawDataLabels does not reset point.y to high,\n // but to low after drawing (#4133)\n for (var _i = 0, _a = series.points; _i < _a.length; _i++) {\n var point = _a[_i];\n point.y = point[valKey];\n }\n }\n };\n ErrorBarSeries.prototype.toYData = function (point) {\n // Return a plain array for speedy calculation\n return [point.low, point.high];\n };\n /* *\n *\n * Static Properties\n *\n * */\n ErrorBarSeries.defaultOptions = ErrorBarSeries_merge(BoxPlot_BoxPlotSeries.defaultOptions, ErrorBar_ErrorBarSeriesDefaults);\n return ErrorBarSeries;\n}(BoxPlot_BoxPlotSeries));\nErrorBarSeries_addEvent(ErrorBarSeries, 'afterTranslate', function () {\n for (var _i = 0, _a = this.points; _i < _a.length; _i++) {\n var point = _a[_i];\n point.plotLow = point.plotY;\n }\n}, { order: 0 });\nErrorBarSeries_extend(ErrorBarSeries.prototype, {\n pointArrayMap: ['low', 'high'], // Array point configs are mapped to this\n pointValKey: 'high', // Defines the top of the tracker\n doQuartiles: false\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('errorbar', ErrorBarSeries);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var ErrorBar_ErrorBarSeries = ((/* unused pure expression or super */ null && (ErrorBarSeries)));\n\n;// ./code/es5/es-modules/Series/Gauge/GaugePoint.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar GaugePoint_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar Point = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).series.prototype.pointClass;\n/* *\n *\n * Class\n *\n * */\nvar GaugePoint = /** @class */ (function (_super) {\n GaugePoint_extends(GaugePoint, _super);\n function GaugePoint() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * Don't do any hover colors or anything\n * @private\n */\n GaugePoint.prototype.setState = function (state) {\n this.state = state;\n };\n return GaugePoint;\n}(Point));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Gauge_GaugePoint = (GaugePoint);\n\n;// ./code/es5/es-modules/Series/Gauge/GaugeSeries.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar GaugeSeries_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar GaugeSeries_noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\nvar GaugeSeries_Series = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).series, GaugeSeries_ColumnSeries = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.column;\n\nvar GaugeSeries_clamp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).clamp, GaugeSeries_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, GaugeSeries_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, GaugeSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, GaugeSeries_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, pInt = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pInt, GaugeSeries_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined;\n/* *\n *\n * Class\n *\n * */\n/**\n *\n * The `gauge` series type\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.map\n *\n * @augments Highcharts.Series\n */\nvar GaugeSeries = /** @class */ (function (_super) {\n GaugeSeries_extends(GaugeSeries, _super);\n function GaugeSeries() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * Calculate paths etc\n * @private\n */\n GaugeSeries.prototype.translate = function () {\n var series = this,\n yAxis = series.yAxis,\n options = series.options,\n center = yAxis.center;\n series.generatePoints();\n series.points.forEach(function (point) {\n var dialOptions = GaugeSeries_merge(options.dial, point.dial), radius = (pInt(dialOptions.radius) * center[2]) / 200, baseLength = (pInt(dialOptions.baseLength) * radius) / 100, rearLength = (pInt(dialOptions.rearLength) * radius) / 100, baseWidth = dialOptions.baseWidth, topWidth = dialOptions.topWidth;\n var overshoot = options.overshoot,\n rotation = yAxis.startAngleRad + yAxis.translate(point.y,\n void 0,\n void 0,\n void 0,\n true);\n // Handle the wrap and overshoot options\n if (GaugeSeries_isNumber(overshoot) || options.wrap === false) {\n overshoot = GaugeSeries_isNumber(overshoot) ?\n (overshoot / 180 * Math.PI) : 0;\n rotation = GaugeSeries_clamp(rotation, yAxis.startAngleRad - overshoot, yAxis.endAngleRad + overshoot);\n }\n rotation = rotation * 180 / Math.PI;\n point.shapeType = 'path';\n var d = dialOptions.path || [\n ['M', -rearLength, -baseWidth / 2],\n ['L',\n baseLength, -baseWidth / 2],\n ['L',\n radius, -topWidth / 2],\n ['L',\n radius,\n topWidth / 2],\n ['L',\n baseLength,\n baseWidth / 2],\n ['L', -rearLength,\n baseWidth / 2],\n ['Z']\n ];\n point.shapeArgs = {\n d: d,\n translateX: center[0],\n translateY: center[1],\n rotation: rotation\n };\n // Positions for data label\n point.plotX = center[0];\n point.plotY = center[1];\n if (GaugeSeries_defined(point.y) && yAxis.max - yAxis.min) {\n point.percentage =\n (point.y - yAxis.min) / (yAxis.max - yAxis.min) * 100;\n }\n });\n };\n /**\n * Draw the points where each point is one needle\n * @private\n */\n GaugeSeries.prototype.drawPoints = function () {\n var series = this,\n chart = series.chart,\n center = series.yAxis.center,\n pivot = series.pivot,\n options = series.options,\n pivotOptions = options.pivot,\n renderer = chart.renderer;\n series.points.forEach(function (point) {\n var graphic = point.graphic,\n shapeArgs = point.shapeArgs,\n d = shapeArgs.d,\n dialOptions = GaugeSeries_merge(options.dial,\n point.dial); // #1233\n if (graphic) {\n graphic.animate(shapeArgs);\n shapeArgs.d = d; // Animate alters it\n }\n else {\n point.graphic =\n renderer[point.shapeType](shapeArgs)\n .addClass('highcharts-dial')\n .add(series.group);\n }\n // Presentational attributes\n if (!chart.styledMode) {\n point.graphic[graphic ? 'animate' : 'attr']({\n stroke: dialOptions.borderColor,\n 'stroke-width': dialOptions.borderWidth,\n fill: dialOptions.backgroundColor\n });\n }\n });\n // Add or move the pivot\n if (pivot) {\n pivot.animate({\n translateX: center[0],\n translateY: center[1]\n });\n }\n else if (pivotOptions) {\n series.pivot =\n renderer.circle(0, 0, pivotOptions.radius)\n .attr({\n zIndex: 2\n })\n .addClass('highcharts-pivot')\n .translate(center[0], center[1])\n .add(series.group);\n // Presentational attributes\n if (!chart.styledMode) {\n series.pivot.attr({\n fill: pivotOptions.backgroundColor,\n stroke: pivotOptions.borderColor,\n 'stroke-width': pivotOptions.borderWidth\n });\n }\n }\n };\n /**\n * Animate the arrow up from startAngle\n * @private\n */\n GaugeSeries.prototype.animate = function (init) {\n var series = this;\n if (!init) {\n series.points.forEach(function (point) {\n var graphic = point.graphic;\n if (graphic) {\n // Start value\n graphic.attr({\n rotation: series.yAxis.startAngleRad * 180 / Math.PI\n });\n // Animate\n graphic.animate({\n rotation: point.shapeArgs.rotation\n }, series.options.animation);\n }\n });\n }\n };\n /**\n * @private\n */\n GaugeSeries.prototype.render = function () {\n this.group = this.plotGroup('group', 'series', this.visible ? 'inherit' : 'hidden', this.options.zIndex, this.chart.seriesGroup);\n GaugeSeries_Series.prototype.render.call(this);\n this.group.clip(this.chart.clipRect);\n };\n /**\n * Extend the basic setData method by running processData and generatePoints\n * immediately, in order to access the points from the legend.\n * @private\n */\n GaugeSeries.prototype.setData = function (data, redraw) {\n GaugeSeries_Series.prototype.setData.call(this, data, false);\n this.processData();\n this.generatePoints();\n if (GaugeSeries_pick(redraw, true)) {\n this.chart.redraw();\n }\n };\n /**\n * Define hasData function for non-cartesian series.\n * Returns true if the series has points at all.\n * @private\n */\n GaugeSeries.prototype.hasData = function () {\n return !!this.points.length; // != 0\n };\n /* *\n *\n * Static properties\n *\n * */\n /**\n * Gauges are circular plots displaying one or more values with a dial\n * pointing to values along the perimeter.\n *\n * @sample highcharts/demo/gauge-speedometer/\n * Gauge chart\n *\n * @extends plotOptions.line\n * @excluding animationLimit, boostThreshold, colorAxis, colorKey,\n * connectEnds, connectNulls, cropThreshold, dashStyle,\n * dragDrop, findNearestPointBy, getExtremesFromAll, marker,\n * negativeColor, pointPlacement, shadow, softThreshold,\n * stacking, states, step, threshold, turboThreshold, xAxis,\n * zoneAxis, zones, dataSorting, boostBlending\n * @product highcharts\n * @requires highcharts-more\n * @optionparent plotOptions.gauge\n */\n GaugeSeries.defaultOptions = GaugeSeries_merge(GaugeSeries_Series.defaultOptions, {\n /**\n * When this option is `true`, the dial will wrap around the axes.\n * For instance, in a full-range gauge going from 0 to 360, a value\n * of 400 will point to 40\\. When `wrap` is `false`, the dial stops\n * at 360.\n *\n * @see [overshoot](#plotOptions.gauge.overshoot)\n *\n * @type {boolean}\n * @default true\n * @since 3.0\n * @product highcharts\n * @apioption plotOptions.gauge.wrap\n */\n /**\n * Data labels for the gauge. For gauges, the data labels are\n * enabled by default and shown in a bordered box below the point.\n *\n * @since 2.3.0\n * @product highcharts\n */\n dataLabels: {\n borderColor: \"#cccccc\" /* Palette.neutralColor20 */,\n borderRadius: 3,\n borderWidth: 1,\n crop: false,\n defer: false,\n enabled: true,\n verticalAlign: 'top',\n y: 15,\n zIndex: 2\n },\n /**\n * Options for the dial or arrow pointer of the gauge.\n *\n * In styled mode, the dial is styled with the\n * `.highcharts-gauge-series .highcharts-dial` rule.\n *\n * @sample {highcharts} highcharts/css/gauge/\n * Styled mode\n *\n * @type {*}\n * @since 2.3.0\n * @product highcharts\n */\n dial: {\n /**\n * The background or fill color of the gauge's dial.\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n * Dial options demonstrated\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @default #000000\n * @since 2.3.0\n * @product highcharts\n * @apioption plotOptions.gauge.dial.backgroundColor\n */\n backgroundColor: \"#000000\" /* Palette.neutralColor100 */,\n /**\n * The length of the dial's base part, relative to the total\n * radius or length of the dial.\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n * Dial options demonstrated\n *\n * @type {string}\n * @default 70%\n * @since 2.3.0\n * @product highcharts\n * @apioption plotOptions.gauge.dial.baseLength\n */\n baseLength: '70%',\n /**\n * The pixel width of the base of the gauge dial. The base is\n * the part closest to the pivot, defined by baseLength.\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n * Dial options demonstrated\n *\n * @type {number}\n * @default 3\n * @since 2.3.0\n * @product highcharts\n * @apioption plotOptions.gauge.dial.baseWidth\n */\n baseWidth: 3,\n /**\n * The border color or stroke of the gauge's dial. By default,\n * the borderWidth is 0, so this must be set in addition to a\n * custom border color.\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n * Dial options demonstrated\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @default #cccccc\n * @since 2.3.0\n * @product highcharts\n * @apioption plotOptions.gauge.dial.borderColor\n */\n borderColor: \"#cccccc\" /* Palette.neutralColor20 */,\n /**\n * The width of the gauge dial border in pixels.\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n * Dial options demonstrated\n *\n * @type {number}\n * @default 0\n * @since 2.3.0\n * @product highcharts\n * @apioption plotOptions.gauge.dial.borderWidth\n */\n borderWidth: 0,\n /**\n * An array with an SVG path for the custom dial.\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-path/\n * Dial options demonstrated\n *\n * @type {Highcharts.SVGPathArray}\n * @since 10.2.0\n * @product highcharts\n * @apioption plotOptions.gauge.dial.path\n */\n /**\n * The radius or length of the dial, in percentages relative to\n * the radius of the gauge itself.\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n * Dial options demonstrated\n *\n * @type {string}\n * @default 80%\n * @since 2.3.0\n * @product highcharts\n * @apioption plotOptions.gauge.dial.radius\n */\n radius: '80%',\n /**\n * The length of the dial's rear end, the part that extends out\n * on the other side of the pivot. Relative to the dial's\n * length.\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n * Dial options demonstrated\n *\n * @type {string}\n * @default 10%\n * @since 2.3.0\n * @product highcharts\n * @apioption plotOptions.gauge.dial.rearLength\n */\n rearLength: '10%',\n /**\n * The width of the top of the dial, closest to the perimeter.\n * The pivot narrows in from the base to the top.\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-dial/\n * Dial options demonstrated\n *\n * @type {number}\n * @default 1\n * @since 2.3.0\n * @product highcharts\n * @apioption plotOptions.gauge.dial.topWidth\n */\n topWidth: 1\n },\n /**\n * Allow the dial to overshoot the end of the perimeter axis by\n * this many degrees. Say if the gauge axis goes from 0 to 60, a\n * value of 100, or 1000, will show 5 degrees beyond the end of the\n * axis when this option is set to 5.\n *\n * @see [wrap](#plotOptions.gauge.wrap)\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-overshoot/\n * Allow 5 degrees overshoot\n *\n * @type {number}\n * @since 3.0.10\n * @product highcharts\n * @apioption plotOptions.gauge.overshoot\n */\n /**\n * Options for the pivot or the center point of the gauge.\n *\n * In styled mode, the pivot is styled with the\n * `.highcharts-gauge-series .highcharts-pivot` rule.\n *\n * @sample {highcharts} highcharts/css/gauge/\n * Styled mode\n *\n * @type {*}\n * @since 2.3.0\n * @product highcharts\n */\n pivot: {\n /**\n * The pixel radius of the pivot.\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-pivot/\n * Pivot options demonstrated\n *\n * @type {number}\n * @default 5\n * @since 2.3.0\n * @product highcharts\n * @apioption plotOptions.gauge.pivot.radius\n */\n radius: 5,\n /**\n * The border or stroke width of the pivot.\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-pivot/\n * Pivot options demonstrated\n *\n * @type {number}\n * @default 0\n * @since 2.3.0\n * @product highcharts\n * @apioption plotOptions.gauge.pivot.borderWidth\n */\n borderWidth: 0,\n /**\n * The border or stroke color of the pivot. In able to change\n * this, the borderWidth must also be set to something other\n * than the default 0.\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-pivot/\n * Pivot options demonstrated\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @default #cccccc\n * @since 2.3.0\n * @product highcharts\n * @apioption plotOptions.gauge.pivot.borderColor\n */\n borderColor: \"#cccccc\" /* Palette.neutralColor20 */,\n /**\n * The background color or fill of the pivot.\n *\n * @sample {highcharts} highcharts/plotoptions/gauge-pivot/\n * Pivot options demonstrated\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @default #000000\n * @since 2.3.0\n * @product highcharts\n * @apioption plotOptions.gauge.pivot.backgroundColor\n */\n backgroundColor: \"#000000\" /* Palette.neutralColor100 */\n },\n tooltip: {\n headerFormat: ''\n },\n /**\n * Whether to display this particular series or series type in the\n * legend. Defaults to false for gauge series.\n *\n * @since 2.3.0\n * @product highcharts\n */\n showInLegend: false\n // Prototype members\n });\n return GaugeSeries;\n}(GaugeSeries_Series));\nGaugeSeries_extend(GaugeSeries.prototype, {\n // `chart.angular` will be set to true when a gauge series is present, and\n // this will be used on the axes\n angular: true,\n directTouch: true, // #5063\n drawGraph: GaugeSeries_noop,\n drawTracker: GaugeSeries_ColumnSeries.prototype.drawTracker,\n fixedBox: true,\n forceDL: true,\n noSharedTooltip: true,\n pointClass: Gauge_GaugePoint,\n trackerGroups: ['group', 'dataLabelsGroup']\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('gauge', GaugeSeries);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Gauge_GaugeSeries = ((/* unused pure expression or super */ null && (GaugeSeries)));\n/* *\n *\n * API options\n *\n * */\n/**\n * A `gauge` series. If the [type](#series.gauge.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends series,plotOptions.gauge\n * @excluding animationLimit, boostThreshold, connectEnds, connectNulls,\n * cropThreshold, dashStyle, dataParser, dataURL, findNearestPointBy,\n * getExtremesFromAll, marker, negativeColor, pointPlacement, shadow,\n * softThreshold, stack, stacking, states, step, threshold,\n * turboThreshold, zoneAxis, zones, dataSorting, boostBlending\n * @product highcharts\n * @requires highcharts-more\n * @apioption series.gauge\n */\n/**\n * An array of data points for the series. For the `gauge` series type,\n * points can be given in the following ways:\n *\n * 1. An array of numerical values. In this case, the numerical values will be\n * interpreted as `y` options. Example:\n * ```js\n * data: [0, 5, 3, 5]\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\n * data points exceeds the series'\n * [turboThreshold](#series.gauge.turboThreshold), this option is not\n * available.\n * ```js\n * data: [{\n * y: 6,\n * name: \"Point2\",\n * color: \"#00FF00\"\n * }, {\n * y: 8,\n * name: \"Point1\",\n * color: \"#FF00FF\"\n * }]\n * ```\n *\n * The typical gauge only contains a single data value.\n *\n * @sample {highcharts} highcharts/chart/reflow-true/\n * Numerical values\n * @sample {highcharts} highcharts/series/data-array-of-objects/\n * Config objects\n *\n * @type {Array<number|null|*>}\n * @extends series.line.data\n * @excluding drilldown, marker, x\n * @product highcharts\n * @apioption series.gauge.data\n */\n''; // Adds the doclets above in the transpiled file\n\n;// ./code/es5/es-modules/Series/DragNodesComposition.js\n/* *\n *\n * Networkgraph series\n *\n * (c) 2010-2024 Paweł Fus\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar DragNodesComposition_composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\nvar DragNodesComposition_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, DragNodesComposition_pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique;\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction DragNodesComposition_compose(ChartClass) {\n if (DragNodesComposition_pushUnique(DragNodesComposition_composed, 'DragNodes')) {\n DragNodesComposition_addEvent(ChartClass, 'load', onChartLoad);\n }\n}\n/**\n * Draggable mode:\n * @private\n */\nfunction onChartLoad() {\n var chart = this;\n var mousedownUnbinder,\n mousemoveUnbinder,\n mouseupUnbinder;\n if (chart.container) {\n mousedownUnbinder = DragNodesComposition_addEvent(chart.container, 'mousedown', function (event) {\n var point = chart.hoverPoint;\n if (point &&\n point.series &&\n point.series.hasDraggableNodes &&\n point.series.options.draggable) {\n point.series.onMouseDown(point, event);\n mousemoveUnbinder = DragNodesComposition_addEvent(chart.container, 'mousemove', function (e) { return (point &&\n point.series &&\n point.series.onMouseMove(point, e)); });\n mouseupUnbinder = DragNodesComposition_addEvent(chart.container.ownerDocument, 'mouseup', function (e) {\n mousemoveUnbinder();\n mouseupUnbinder();\n return point &&\n point.series &&\n point.series.onMouseUp(point, e);\n });\n }\n });\n }\n DragNodesComposition_addEvent(chart, 'destroy', function () {\n mousedownUnbinder();\n });\n}\n/**\n * Mouse down action, initializing drag&drop mode.\n *\n * @private\n * @param {Highcharts.Point} point\n * The point that event occurred.\n * @param {Highcharts.PointerEventObject} event\n * Browser event, before normalization.\n */\nfunction onMouseDown(point, event) {\n var _a;\n var normalizedEvent = ((_a = this.chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(event)) || event;\n point.fixedPosition = {\n chartX: normalizedEvent.chartX,\n chartY: normalizedEvent.chartY,\n plotX: point.plotX,\n plotY: point.plotY\n };\n point.inDragMode = true;\n}\n/**\n * Mouse move action during drag&drop.\n *\n * @private\n *\n * @param {Highcharts.Point} point\n * The point that event occurred.\n * @param {global.Event} event\n * Browser event, before normalization.\n */\nfunction onMouseMove(point, event) {\n var _a;\n if (point.fixedPosition && point.inDragMode) {\n var series = this,\n chart = series.chart,\n normalizedEvent = ((_a = chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(event)) || event,\n diffX = point.fixedPosition.chartX - normalizedEvent.chartX,\n diffY = point.fixedPosition.chartY - normalizedEvent.chartY,\n graphLayoutsLookup = chart.graphLayoutsLookup;\n var newPlotX = void 0,\n newPlotY = void 0;\n // At least 5px to apply change (avoids simple click):\n if (Math.abs(diffX) > 5 || Math.abs(diffY) > 5) {\n newPlotX = point.fixedPosition.plotX - diffX;\n newPlotY = point.fixedPosition.plotY - diffY;\n if (chart.isInsidePlot(newPlotX, newPlotY)) {\n point.plotX = newPlotX;\n point.plotY = newPlotY;\n point.hasDragged = true;\n this.redrawHalo(point);\n graphLayoutsLookup.forEach(function (layout) {\n layout.restartSimulation();\n });\n }\n }\n }\n}\n/**\n * Mouse up action, finalizing drag&drop.\n *\n * @private\n * @param {Highcharts.Point} point\n * The point that event occurred.\n */\nfunction onMouseUp(point) {\n if (point.fixedPosition) {\n if (point.hasDragged) {\n if (this.layout.enableSimulation) {\n this.layout.start();\n }\n else {\n this.chart.redraw();\n }\n }\n point.inDragMode = point.hasDragged = false;\n if (!this.options.fixedDraggable) {\n delete point.fixedPosition;\n }\n }\n}\n/**\n * Redraw halo on mousemove during the drag&drop action.\n *\n * @private\n * @param {Highcharts.Point} point\n * The point that should show halo.\n */\nfunction redrawHalo(point) {\n if (point && this.halo) {\n this.halo.attr({\n d: point.haloPath(this.options.states.hover.halo.size)\n });\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar DragNodesComposition = {\n compose: DragNodesComposition_compose,\n onMouseDown: onMouseDown,\n onMouseMove: onMouseMove,\n onMouseUp: onMouseUp,\n redrawHalo: redrawHalo\n};\n/* harmony default export */ var Series_DragNodesComposition = (DragNodesComposition);\n\n;// ./code/es5/es-modules/Series/GraphLayoutComposition.js\n/* *\n *\n * Networkgraph series\n *\n * (c) 2010-2024 Paweł Fus\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar setAnimation = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).setAnimation;\n\nvar GraphLayoutComposition_composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\nvar GraphLayoutComposition_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, GraphLayoutComposition_pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique;\n/* *\n *\n * Constants\n *\n * */\nvar integrations = {};\nvar layouts = {};\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction GraphLayoutComposition_compose(ChartClass) {\n if (GraphLayoutComposition_pushUnique(GraphLayoutComposition_composed, 'GraphLayout')) {\n GraphLayoutComposition_addEvent(ChartClass, 'afterPrint', onChartAfterPrint);\n GraphLayoutComposition_addEvent(ChartClass, 'beforePrint', onChartBeforePrint);\n GraphLayoutComposition_addEvent(ChartClass, 'predraw', onChartPredraw);\n GraphLayoutComposition_addEvent(ChartClass, 'render', onChartRender);\n }\n}\n/**\n * Re-enable simulation after print.\n * @private\n */\nfunction onChartAfterPrint() {\n if (this.graphLayoutsLookup) {\n this.graphLayoutsLookup.forEach(function (layout) {\n // Return to default simulation\n layout.updateSimulation();\n });\n this.redraw();\n }\n}\n/**\n * Disable simulation before print if enabled.\n * @private\n */\nfunction onChartBeforePrint() {\n if (this.graphLayoutsLookup) {\n this.graphLayoutsLookup.forEach(function (layout) {\n layout.updateSimulation(false);\n });\n this.redraw();\n }\n}\n/**\n * Clear previous layouts.\n * @private\n */\nfunction onChartPredraw() {\n if (this.graphLayoutsLookup) {\n this.graphLayoutsLookup.forEach(function (layout) {\n layout.stop();\n });\n }\n}\n/**\n * @private\n */\nfunction onChartRender() {\n var systemsStable,\n afterRender = false;\n var layoutStep = function (layout) {\n if (layout.maxIterations-- &&\n isFinite(layout.temperature) &&\n !layout.isStable() &&\n !layout.enableSimulation) {\n // Hook similar to build-in addEvent, but instead of\n // creating whole events logic, use just a function.\n // It's faster which is important for rAF code.\n // Used e.g. in packed-bubble series for bubble radius\n // calculations\n if (layout.beforeStep) {\n layout.beforeStep();\n }\n layout.step();\n systemsStable = false;\n afterRender = true;\n }\n };\n if (this.graphLayoutsLookup) {\n setAnimation(false, this);\n // Start simulation\n this.graphLayoutsLookup.forEach(function (layout) { return layout.start(); });\n // Just one sync step, to run different layouts similar to\n // async mode.\n while (!systemsStable) {\n systemsStable = true;\n this.graphLayoutsLookup.forEach(layoutStep);\n }\n if (afterRender) {\n this.series.forEach(function (series) {\n if (series && series.layout) {\n series.render();\n }\n });\n }\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar GraphLayoutComposition = {\n compose: GraphLayoutComposition_compose,\n integrations: integrations,\n layouts: layouts\n};\n/* harmony default export */ var Series_GraphLayoutComposition = (GraphLayoutComposition);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Chart\"],\"commonjs\":[\"highcharts\",\"Chart\"],\"commonjs2\":[\"highcharts\",\"Chart\"],\"root\":[\"Highcharts\",\"Chart\"]}\nvar highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_ = __webpack_require__(960);\nvar highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default = /*#__PURE__*/__webpack_require__.n(highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_);\n;// ./code/es5/es-modules/Series/PackedBubble/PackedBubblePoint.js\n/* *\n *\n * (c) 2010-2024 Grzegorz Blachlinski, Sebastian Bochan\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar PackedBubblePoint_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\nvar PackedBubblePoint_BubblePoint = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.bubble.prototype.pointClass;\n/* *\n *\n * Class\n *\n * */\nvar PackedBubblePoint = /** @class */ (function (_super) {\n PackedBubblePoint_extends(PackedBubblePoint, _super);\n function PackedBubblePoint() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * Destroy point.\n * Then remove point from the layout.\n * @private\n */\n PackedBubblePoint.prototype.destroy = function () {\n var _a;\n if ((_a = this.series) === null || _a === void 0 ? void 0 : _a.layout) {\n this.series.layout.removeElementFromCollection(this, this.series.layout.nodes);\n }\n return highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default().prototype.destroy.apply(this, arguments);\n };\n PackedBubblePoint.prototype.firePointEvent = function () {\n var series = this.series,\n seriesOptions = series.options;\n if (this.isParentNode && seriesOptions.parentNode) {\n var temp = seriesOptions.allowPointSelect;\n seriesOptions.allowPointSelect = (seriesOptions.parentNode.allowPointSelect);\n highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default().prototype.firePointEvent.apply(this, arguments);\n seriesOptions.allowPointSelect = temp;\n }\n else {\n highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default().prototype.firePointEvent.apply(this, arguments);\n }\n };\n PackedBubblePoint.prototype.select = function () {\n var point = this,\n series = this.series,\n chart = series.chart;\n if (point.isParentNode) {\n chart.getSelectedPoints = chart.getSelectedParentNodes;\n highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default().prototype.select.apply(this, arguments);\n chart.getSelectedPoints = (highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default()).prototype.getSelectedPoints;\n }\n else {\n highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default().prototype.select.apply(this, arguments);\n }\n };\n return PackedBubblePoint;\n}(PackedBubblePoint_BubblePoint));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var PackedBubble_PackedBubblePoint = (PackedBubblePoint);\n\n;// ./code/es5/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js\n/* *\n *\n * Imports\n *\n * */\n\nvar PackedBubbleSeriesDefaults_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber;\n/* *\n *\n * Constants\n *\n * */\n/**\n * A packed bubble series is a two dimensional series type, where each point\n * renders a value in X, Y position. Each point is drawn as a bubble\n * where the bubbles don't overlap with each other and the radius\n * of the bubble relates to the value.\n *\n * @sample highcharts/demo/packed-bubble/\n * Packed bubble chart\n * @sample highcharts/demo/packed-bubble-split/\n * Split packed bubble chart\n *\n * @extends plotOptions.bubble\n * @excluding boostThreshold, boostBlending,connectEnds, connectNulls,\n * cropThreshold, dataSorting, dragDrop, jitter,\n * legendSymbolColor, keys, pointPlacement, sizeByAbsoluteValue,\n * step, xAxis, yAxis, zMax, zMin\n * @product highcharts\n * @since 7.0.0\n * @requires highcharts-more\n * @optionparent plotOptions.packedbubble\n *\n * @private\n */\nvar PackedBubbleSeriesDefaults = {\n /**\n * Minimum bubble size. Bubbles will automatically size between the\n * `minSize` and `maxSize` to reflect the value of each bubble.\n * Can be either pixels (when no unit is given), or a percentage of\n * the smallest one of the plot width and height, divided by the square\n * root of total number of points.\n *\n * @sample highcharts/plotoptions/bubble-size/\n * Bubble size\n *\n * @type {number|string}\n *\n * @private\n */\n minSize: '10%',\n /**\n * Maximum bubble size. Bubbles will automatically size between the\n * `minSize` and `maxSize` to reflect the value of each bubble.\n * Can be either pixels (when no unit is given), or a percentage of\n * the smallest one of the plot width and height, divided by the square\n * root of total number of points.\n *\n * @sample highcharts/plotoptions/bubble-size/\n * Bubble size\n *\n * @type {number|string}\n *\n * @private\n */\n maxSize: '50%',\n sizeBy: 'area',\n zoneAxis: 'y',\n crisp: false,\n tooltip: {\n pointFormat: 'Value: {point.value}'\n },\n /**\n * Flag to determine if nodes are draggable or not. Available for\n * graph with useSimulation set to true only.\n *\n * @since 7.1.0\n *\n * @private\n */\n draggable: true,\n /**\n * An option is giving a possibility to choose between using simulation\n * for calculating bubble positions. These reflects in both animation\n * and final position of bubbles. Simulation is also adding options to\n * the series graph based on used layout. In case of big data sets, with\n * any performance issues, it is possible to disable animation and pack\n * bubble in a simple circular way.\n *\n * @sample highcharts/series-packedbubble/spiral/\n * useSimulation set to false\n *\n * @since 7.1.0\n *\n * @private\n */\n useSimulation: true,\n /**\n * Series options for parent nodes.\n *\n * @since 8.1.1\n *\n * @private\n */\n parentNode: {\n /**\n * Allow this series' parent nodes to be selected\n * by clicking on the graph.\n *\n * @since 8.1.1\n */\n allowPointSelect: false\n },\n /**\n *\n * @declare Highcharts.SeriesPackedBubbleDataLabelsOptionsObject\n *\n * @private\n */\n dataLabels: {\n /**\n * The\n * [format string](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting)\n * specifying what to show for _node_ in the networkgraph. In v7.0\n * defaults to `{key}`, since v7.1 defaults to `undefined` and\n * `formatter` is used instead.\n *\n * @type {string}\n * @since 7.0.0\n * @apioption plotOptions.packedbubble.dataLabels.format\n */\n // eslint-disable-next-line valid-jsdoc\n /**\n * Callback JavaScript function to format the data label for a node.\n * Note that if a `format` is defined, the format takes precedence\n * and the formatter is ignored.\n *\n * @since 7.0.0\n */\n formatter: function () {\n var numberFormatter = this.series.chart.numberFormatter;\n var value = this.point.value;\n return PackedBubbleSeriesDefaults_isNumber(value) ? numberFormatter(value, -1) : '';\n },\n /**\n * @type {string}\n * @since 7.1.0\n * @apioption plotOptions.packedbubble.dataLabels.parentNodeFormat\n */\n // eslint-disable-next-line valid-jsdoc\n /**\n * @since 7.1.0\n */\n parentNodeFormatter: function () {\n return this.name || '';\n },\n /**\n * @sample {highcharts} highcharts/series-packedbubble/packed-dashboard\n * Dashboard with dataLabels on parentNodes\n *\n * @declare Highcharts.SeriesPackedBubbleDataLabelsTextPathOptionsObject\n * @since 7.1.0\n */\n parentNodeTextPath: {\n /**\n * Presentation attributes for the text path.\n *\n * @type {Highcharts.SVGAttributes}\n * @since 7.1.0\n * @apioption plotOptions.packedbubble.dataLabels.attributes\n */\n /**\n * Enable or disable `textPath` option for link's or marker's\n * data labels.\n *\n * @since 7.1.0\n */\n enabled: true\n },\n /**\n * Options for a _node_ label text which should follow marker's\n * shape.\n *\n * **Note:** Only SVG-based renderer supports this option.\n *\n * @extends plotOptions.series.dataLabels.textPath\n * @apioption plotOptions.packedbubble.dataLabels.textPath\n */\n padding: 0,\n style: {\n transition: 'opacity 2000ms'\n }\n },\n /**\n * Options for layout algorithm when simulation is enabled. Inside there\n * are options to change the speed, padding, initial bubbles positions\n * and more.\n *\n * @extends plotOptions.networkgraph.layoutAlgorithm\n * @excluding approximation, attractiveForce, repulsiveForce, theta\n * @since 7.1.0\n *\n * @private\n */\n layoutAlgorithm: {\n /**\n * Initial layout algorithm for positioning nodes. Can be one of\n * the built-in options (\"circle\", \"random\") or a function where\n * positions should be set on each node (`this.nodes`) as\n * `node.plotX` and `node.plotY`.\n *\n * @sample highcharts/series-networkgraph/initial-positions/\n * Initial positions with callback\n *\n * @type {\"circle\"|\"random\"|Function}\n */\n initialPositions: 'circle',\n /**\n * @sample highcharts/series-packedbubble/initial-radius/\n * Initial radius set to 200\n *\n * @extends plotOptions.networkgraph.layoutAlgorithm.initialPositionRadius\n * @excluding states\n */\n initialPositionRadius: 20,\n /**\n * The distance between two bubbles, when the algorithm starts to\n * treat two bubbles as overlapping. The `bubblePadding` is also the\n * expected distance between all the bubbles on simulation end.\n */\n bubblePadding: 5,\n /**\n * Whether bubbles should interact with their parentNode to keep\n * them inside.\n */\n parentNodeLimit: false,\n /**\n * Whether series should interact with each other or not. When\n * `parentNodeLimit` is set to true, thi option should be set to\n * false to avoid sticking points in wrong series parentNode.\n */\n seriesInteraction: true,\n /**\n * In case of split series, this option allows user to drag and\n * drop points between series, for changing point related series.\n *\n * @sample highcharts/series-packedbubble/packed-dashboard/\n * Example of drag'n drop bubbles for bubble kanban\n */\n dragBetweenSeries: false,\n /**\n * Layout algorithm options for parent nodes.\n *\n * @extends plotOptions.networkgraph.layoutAlgorithm\n * @excluding approximation, attractiveForce, enableSimulation,\n * repulsiveForce, theta\n */\n parentNodeOptions: {\n maxIterations: 400,\n gravitationalConstant: 0.03,\n maxSpeed: 50,\n initialPositionRadius: 100,\n seriesInteraction: true,\n /**\n * Styling options for parentNodes markers. Similar to\n * line.marker options.\n *\n * @sample highcharts/series-packedbubble/parentnode-style/\n * Bubble size\n *\n * @extends plotOptions.series.marker\n * @excluding states\n */\n marker: {\n fillColor: null,\n fillOpacity: 1,\n lineWidth: null,\n lineColor: null,\n symbol: 'circle'\n }\n },\n enableSimulation: true,\n /**\n * Type of the algorithm used when positioning bubbles.\n * @ignore-option\n */\n type: 'packedbubble',\n /**\n * Integration type. Integration determines how forces are applied\n * on particles. The `packedbubble` integration is based on\n * the networkgraph `verlet` integration, where the new position\n * is based on a previous position without velocity:\n * `newPosition += previousPosition - newPosition`.\n *\n * @sample highcharts/series-networkgraph/forces/\n *\n * @ignore-option\n */\n integration: 'packedbubble',\n maxIterations: 1000,\n /**\n * Whether to split series into individual groups or to mix all\n * series together.\n *\n * @since 7.1.0\n * @default false\n */\n splitSeries: false,\n /**\n * Max speed that node can get in one iteration. In terms of\n * simulation, it's a maximum translation (in pixels) that a node\n * can move (in both, x and y, dimensions). While `friction` is\n * applied on all nodes, max speed is applied only for nodes that\n * move very fast, for example small or disconnected ones.\n *\n * @see [layoutAlgorithm.integration](#series.networkgraph.layoutAlgorithm.integration)\n *\n * @see [layoutAlgorithm.friction](#series.networkgraph.layoutAlgorithm.friction)\n */\n maxSpeed: 5,\n gravitationalConstant: 0.01,\n friction: -0.981\n }\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var PackedBubble_PackedBubbleSeriesDefaults = (PackedBubbleSeriesDefaults);\n/* *\n *\n * API Options\n *\n * */\n/**\n * A `packedbubble` series. If the [type](#series.packedbubble.type) option is\n * not specified, it is inherited from [chart.type](#chart.type).\n *\n * @type {Object}\n * @extends series,plotOptions.packedbubble\n * @excluding cropThreshold, dataParser, dataSorting, dataURL, dragDrop, stack,\n * boostThreshold, boostBlending\n * @product highcharts\n * @requires highcharts-more\n * @apioption series.packedbubble\n */\n/**\n * An array of data points for the series. For the `packedbubble` series type,\n * points can be given in the following ways:\n *\n * 1. An array of `values`.\n *\n * ```js\n * data: [5, 1, 20]\n * ```\n *\n * 2. An array of objects with named values. The objects are point\n * configuration objects as seen below. If the total number of data points\n * exceeds the series' [turboThreshold](#series.packedbubble.turboThreshold),\n * this option is not available.\n *\n * ```js\n * data: [{\n * value: 1,\n * name: \"Point2\",\n * color: \"#00FF00\"\n * }, {\n * value: 5,\n * name: \"Point1\",\n * color: \"#FF00FF\"\n * }]\n * ```\n *\n * @type {Array<Object|Array>}\n * @extends series.line.data\n * @excluding marker, x, y\n * @sample {highcharts} highcharts/series/data-array-of-objects/\n * Config objects\n * @product highcharts\n * @apioption series.packedbubble.data\n */\n/**\n * @type {Highcharts.SeriesPackedBubbleDataLabelsOptionsObject|Array<Highcharts.SeriesPackedBubbleDataLabelsOptionsObject>}\n * @product highcharts\n * @apioption series.packedbubble.data.dataLabels\n */\n/**\n * @excluding enabled,enabledThreshold,height,radius,width\n * @product highcharts\n * @apioption series.packedbubble.marker\n */\n''; // Adds doclets above to transpiled file\n\n;// ./code/es5/es-modules/Series/Networkgraph/VerletIntegration.js\n/* *\n *\n * Networkgraph series\n *\n * (c) 2010-2024 Paweł Fus\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * Functions\n *\n * */\n/**\n * Attractive force.\n *\n * In Verlet integration, force is applied on a node immediately to it's\n * `plotX` and `plotY` position.\n *\n * @private\n * @param {Highcharts.Point} link\n * Link that connects two nodes\n * @param {number} force\n * Force calculated in `repulsiveForceFunction`\n * @param {Highcharts.PositionObject} distanceXY\n * Distance between two nodes e.g. `{x, y}`\n */\nfunction attractive(link, force, distanceXY) {\n var massFactor = link.getMass(),\n translatedX = -distanceXY.x * force * this.diffTemperature,\n translatedY = -distanceXY.y * force * this.diffTemperature;\n if (!link.fromNode.fixedPosition) {\n link.fromNode.plotX -=\n translatedX * massFactor.fromNode / link.fromNode.degree;\n link.fromNode.plotY -=\n translatedY * massFactor.fromNode / link.fromNode.degree;\n }\n if (!link.toNode.fixedPosition) {\n link.toNode.plotX +=\n translatedX * massFactor.toNode / link.toNode.degree;\n link.toNode.plotY +=\n translatedY * massFactor.toNode / link.toNode.degree;\n }\n}\n/**\n * Attractive force function. Can be replaced by API's\n * `layoutAlgorithm.attractiveForce`\n *\n * @private\n * @param {number} d current distance between two nodes\n * @param {number} k expected distance between two nodes\n * @return {number} force\n */\nfunction attractiveForceFunction(d, k) {\n // Used in API:\n return (k - d) / d;\n}\n/**\n * Barycenter force. Calculate and applys barycenter forces on the\n * nodes. Making them closer to the center of their barycenter point.\n *\n * In Verlet integration, force is applied on a node immediately to it's\n * `plotX` and `plotY` position.\n *\n * @private\n */\nfunction barycenter() {\n var gravitationalConstant = this.options.gravitationalConstant || 0,\n xFactor = (this.barycenter.xFactor -\n (this.box.left + this.box.width) / 2) * gravitationalConstant,\n yFactor = (this.barycenter.yFactor -\n (this.box.top + this.box.height) / 2) * gravitationalConstant;\n this.nodes.forEach(function (node) {\n if (!node.fixedPosition) {\n node.plotX -=\n xFactor / node.mass / node.degree;\n node.plotY -=\n yFactor / node.mass / node.degree;\n }\n });\n}\n/**\n * Estiamte the best possible distance between two nodes, making graph\n * readable.\n * @private\n */\nfunction getK(layout) {\n return Math.pow(layout.box.width * layout.box.height / layout.nodes.length, 0.5);\n}\n/**\n * Integration method.\n *\n * In Verlet integration, forces are applied on node immediately to it's\n * `plotX` and `plotY` position.\n *\n * Verlet without velocity:\n *\n * x(n+1) = 2 * x(n) - x(n-1) + A(T) * deltaT ^ 2\n *\n * where:\n * - x(n+1) - new position\n * - x(n) - current position\n * - x(n-1) - previous position\n *\n * Assuming A(t) = 0 (no acceleration) and (deltaT = 1) we get:\n *\n * x(n+1) = x(n) + (x(n) - x(n-1))\n *\n * where:\n * - (x(n) - x(n-1)) - position change\n *\n * TO DO:\n * Consider Verlet with velocity to support additional\n * forces. Or even Time-Corrected Verlet by Jonathan\n * \"lonesock\" Dummer\n *\n * @private\n * @param {Highcharts.NetworkgraphLayout} layout layout object\n * @param {Highcharts.Point} node node that should be translated\n */\nfunction integrate(layout, node) {\n var friction = -layout.options.friction, maxSpeed = layout.options.maxSpeed, prevX = node.prevX, prevY = node.prevY, \n // Apply friction:\n frictionX = ((node.plotX + node.dispX -\n prevX) * friction), frictionY = ((node.plotY + node.dispY -\n prevY) * friction), abs = Math.abs, signX = abs(frictionX) / (frictionX || 1), // Need to deal with 0\n signY = abs(frictionY) / (frictionY || 1), \n // Apply max speed:\n diffX = signX * Math.min(maxSpeed, Math.abs(frictionX)), diffY = signY * Math.min(maxSpeed, Math.abs(frictionY));\n // Store for the next iteration:\n node.prevX = node.plotX + node.dispX;\n node.prevY = node.plotY + node.dispY;\n // Update positions:\n node.plotX += diffX;\n node.plotY += diffY;\n node.temperature = layout.vectorLength({\n x: diffX,\n y: diffY\n });\n}\n/**\n * Repulsive force.\n *\n * In Verlet integration, force is applied on a node immediately to it's\n * `plotX` and `plotY` position.\n *\n * @private\n * @param {Highcharts.Point} node\n * Node that should be translated by force.\n * @param {number} force\n * Force calculated in `repulsiveForceFunction`\n * @param {Highcharts.PositionObject} distanceXY\n * Distance between two nodes e.g. `{x, y}`\n */\nfunction repulsive(node, force, distanceXY) {\n var factor = force * this.diffTemperature / node.mass / node.degree;\n if (!node.fixedPosition) {\n node.plotX += distanceXY.x * factor;\n node.plotY += distanceXY.y * factor;\n }\n}\n/**\n * Repulsive force function. Can be replaced by API's\n * `layoutAlgorithm.repulsiveForce`\n *\n * @private\n * @param {number} d current distance between two nodes\n * @param {number} k expected distance between two nodes\n * @return {number} force\n */\nfunction repulsiveForceFunction(d, k) {\n // Used in API:\n return (k - d) / d * (k > d ? 1 : 0); // Force only for close nodes\n}\n/* *\n *\n * Default Export\n *\n * */\nvar VerletIntegration = {\n attractive: attractive,\n attractiveForceFunction: attractiveForceFunction,\n barycenter: barycenter,\n getK: getK,\n integrate: integrate,\n repulsive: repulsive,\n repulsiveForceFunction: repulsiveForceFunction\n};\n/* harmony default export */ var Networkgraph_VerletIntegration = (VerletIntegration);\n\n;// ./code/es5/es-modules/Series/PackedBubble/PackedBubbleIntegration.js\n/* *\n *\n * (c) 2010-2024 Grzegorz Blachlinski, Sebastian Bochan\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar PackedBubbleIntegration_noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction PackedBubbleIntegration_barycenter() {\n var layout = this,\n gravitationalConstant = layout.options.gravitationalConstant,\n box = layout.box,\n nodes = layout.nodes;\n var centerX,\n centerY;\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n if (layout.options.splitSeries && !node.isParentNode) {\n centerX = node.series.parentNode.plotX;\n centerY = node.series.parentNode.plotY;\n }\n else {\n centerX = box.width / 2;\n centerY = box.height / 2;\n }\n if (!node.fixedPosition) {\n node.plotX -=\n (node.plotX - centerX) *\n gravitationalConstant /\n (node.mass * Math.sqrt(nodes.length));\n node.plotY -=\n (node.plotY - centerY) *\n gravitationalConstant /\n (node.mass * Math.sqrt(nodes.length));\n }\n }\n}\n/**\n * @private\n */\nfunction PackedBubbleIntegration_repulsive(node, force, distanceXY, repNode) {\n var factor = (force * this.diffTemperature / node.mass /\n node.degree), x = distanceXY.x * factor, y = distanceXY.y * factor;\n if (!node.fixedPosition) {\n node.plotX += x;\n node.plotY += y;\n }\n if (!repNode.fixedPosition) {\n repNode.plotX -= x;\n repNode.plotY -= y;\n }\n}\n/**\n * @private\n */\nfunction PackedBubbleIntegration_repulsiveForceFunction(d, k, node, repNode) {\n return Math.min(d, (node.marker.radius +\n repNode.marker.radius) / 2);\n}\n/* *\n *\n * Default Export\n *\n * */\nvar PackedBubbleIntegration = {\n barycenter: PackedBubbleIntegration_barycenter,\n getK: PackedBubbleIntegration_noop,\n integrate: Networkgraph_VerletIntegration.integrate,\n repulsive: PackedBubbleIntegration_repulsive,\n repulsiveForceFunction: PackedBubbleIntegration_repulsiveForceFunction\n};\n/* harmony default export */ var PackedBubble_PackedBubbleIntegration = (PackedBubbleIntegration);\n\n;// ./code/es5/es-modules/Series/Networkgraph/EulerIntegration.js\n/* *\n *\n * Networkgraph series\n *\n * (c) 2010-2024 Paweł Fus\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * Functions\n *\n * */\n/**\n * Attractive force.\n *\n * In Euler integration, force is stored in a node, not changing it's\n * position. Later, in `integrate()` forces are applied on nodes.\n *\n * @private\n * @param {Highcharts.Point} link\n * Link that connects two nodes\n * @param {number} force\n * Force calculated in `repulsiveForceFunction`\n * @param {Highcharts.PositionObject} distanceXY\n * Distance between two nodes e.g. `{x, y}`\n * @param {number} distanceR\n */\nfunction EulerIntegration_attractive(link, force, distanceXY, distanceR) {\n var massFactor = link.getMass(), translatedX = (distanceXY.x / distanceR) * force, translatedY = (distanceXY.y / distanceR) * force;\n if (!link.fromNode.fixedPosition) {\n link.fromNode.dispX -=\n translatedX * massFactor.fromNode / link.fromNode.degree;\n link.fromNode.dispY -=\n translatedY * massFactor.fromNode / link.fromNode.degree;\n }\n if (!link.toNode.fixedPosition) {\n link.toNode.dispX +=\n translatedX * massFactor.toNode / link.toNode.degree;\n link.toNode.dispY +=\n translatedY * massFactor.toNode / link.toNode.degree;\n }\n}\n/**\n * Attractive force function. Can be replaced by API's\n * `layoutAlgorithm.attractiveForce`\n *\n * Other forces that can be used:\n *\n * basic, not recommended:\n * `function (d, k) { return d / k }`\n *\n * @private\n * @param {number} d current distance between two nodes\n * @param {number} k expected distance between two nodes\n * @return {number} force\n */\nfunction EulerIntegration_attractiveForceFunction(d, k) {\n return d * d / k;\n}\n/**\n * Barycenter force. Calculate and applys barycenter forces on the\n * nodes. Making them closer to the center of their barycenter point.\n *\n * In Euler integration, force is stored in a node, not changing it's\n * position. Later, in `integrate()` forces are applied on nodes.\n *\n * @private\n */\nfunction EulerIntegration_barycenter() {\n var gravitationalConstant = this.options.gravitationalConstant,\n xFactor = this.barycenter.xFactor,\n yFactor = this.barycenter.yFactor;\n this.nodes.forEach(function (node) {\n if (!node.fixedPosition) {\n var degree = node.getDegree(),\n phi = degree * (1 + degree / 2);\n node.dispX += ((xFactor - node.plotX) *\n gravitationalConstant *\n phi / node.degree);\n node.dispY += ((yFactor - node.plotY) *\n gravitationalConstant *\n phi / node.degree);\n }\n });\n}\n/**\n * Estimate the best possible distance between two nodes, making graph\n * readable.\n * @private\n */\nfunction EulerIntegration_getK(layout) {\n return Math.pow(layout.box.width * layout.box.height / layout.nodes.length, 0.3);\n}\n/**\n * Integration method.\n *\n * In Euler integration, force were stored in a node, not changing it's\n * position. Now, in the integrator method, we apply changes.\n *\n * Euler:\n *\n * Basic form: `x(n+1) = x(n) + v(n)`\n *\n * With Rengoild-Fruchterman we get:\n * `x(n+1) = x(n) + v(n) / length(v(n)) * min(v(n), temperature(n))`\n * where:\n * - `x(n+1)`: next position\n * - `x(n)`: current position\n * - `v(n)`: velocity (comes from net force)\n * - `temperature(n)`: current temperature\n *\n * Known issues:\n * Oscillations when force vector has the same magnitude but opposite\n * direction in the next step. Potentially solved by decreasing force by\n * `v * (1 / node.degree)`\n *\n * Note:\n * Actually `min(v(n), temperature(n))` replaces simulated annealing.\n *\n * @private\n * @param {Highcharts.NetworkgraphLayout} layout\n * Layout object\n * @param {Highcharts.Point} node\n * Node that should be translated\n */\nfunction EulerIntegration_integrate(layout, node) {\n node.dispX +=\n node.dispX * layout.options.friction;\n node.dispY +=\n node.dispY * layout.options.friction;\n var distanceR = node.temperature = layout.vectorLength({\n x: node.dispX,\n y: node.dispY\n });\n if (distanceR !== 0) {\n node.plotX += (node.dispX / distanceR *\n Math.min(Math.abs(node.dispX), layout.temperature));\n node.plotY += (node.dispY / distanceR *\n Math.min(Math.abs(node.dispY), layout.temperature));\n }\n}\n/**\n * Repulsive force.\n *\n * @private\n * @param {Highcharts.Point} node\n * Node that should be translated by force.\n * @param {number} force\n * Force calculated in `repulsiveForceFunction`\n * @param {Highcharts.PositionObject} distanceXY\n * Distance between two nodes e.g. `{x, y}`\n */\nfunction EulerIntegration_repulsive(node, force, distanceXY, distanceR) {\n node.dispX +=\n (distanceXY.x / distanceR) * force / node.degree;\n node.dispY +=\n (distanceXY.y / distanceR) * force / node.degree;\n}\n/**\n * Repulsive force function. Can be replaced by API's\n * `layoutAlgorithm.repulsiveForce`.\n *\n * Other forces that can be used:\n *\n * basic, not recommended:\n * `function (d, k) { return k / d }`\n *\n * standard:\n * `function (d, k) { return k * k / d }`\n *\n * grid-variant:\n * `function (d, k) { return k * k / d * (2 * k - d > 0 ? 1 : 0) }`\n *\n * @private\n * @param {number} d current distance between two nodes\n * @param {number} k expected distance between two nodes\n * @return {number} force\n */\nfunction EulerIntegration_repulsiveForceFunction(d, k) {\n return k * k / d;\n}\n/* *\n *\n * Default Export\n *\n * */\nvar EulerIntegration = {\n attractive: EulerIntegration_attractive,\n attractiveForceFunction: EulerIntegration_attractiveForceFunction,\n barycenter: EulerIntegration_barycenter,\n getK: EulerIntegration_getK,\n integrate: EulerIntegration_integrate,\n repulsive: EulerIntegration_repulsive,\n repulsiveForceFunction: EulerIntegration_repulsiveForceFunction\n};\n/* harmony default export */ var Networkgraph_EulerIntegration = (EulerIntegration);\n\n;// ./code/es5/es-modules/Series/Networkgraph/QuadTreeNode.js\n/* *\n *\n * Networkgraph series\n *\n * (c) 2010-2024 Paweł Fus\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * Class\n *\n * */\n/**\n * The QuadTree node class. Used in Networkgraph chart as a base for Barnes-Hut\n * approximation.\n *\n * @private\n * @class\n * @name Highcharts.QuadTreeNode\n *\n * @param {Highcharts.Dictionary<number>} box\n * Available space for the node\n */\nvar QuadTreeNode = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function QuadTreeNode(box) {\n /* *\n *\n * Properties\n *\n * */\n /**\n * Read only. If QuadTreeNode is an external node, Point is stored in\n * `this.body`.\n *\n * @name Highcharts.QuadTreeNode#body\n * @type {boolean|Highcharts.Point}\n */\n this.body = false;\n /**\n * Read only. Internal nodes when created are empty to reserve the\n * space. If Point is added to this QuadTreeNode, QuadTreeNode is no\n * longer empty.\n *\n * @name Highcharts.QuadTreeNode#isEmpty\n * @type {boolean}\n */\n this.isEmpty = false;\n /**\n * Read only. Flag to determine if QuadTreeNode is internal (and has\n * subnodes with mass and central position) or external (bound to\n * Point).\n *\n * @name Highcharts.QuadTreeNode#isInternal\n * @type {boolean}\n */\n this.isInternal = false;\n /**\n * Read only. Array of subnodes. Empty if QuadTreeNode has just one\n * Point. When added another Point to this QuadTreeNode, array is\n * filled with four subnodes.\n *\n * @name Highcharts.QuadTreeNode#nodes\n * @type {Array<Highcharts.QuadTreeNode>}\n */\n this.nodes = [];\n /**\n * Read only. The available space for node.\n *\n * @name Highcharts.QuadTreeNode#box\n * @type {Highcharts.Dictionary<number>}\n */\n this.box = box;\n /**\n * Read only. The minium of width and height values.\n *\n * @name Highcharts.QuadTreeNode#boxSize\n * @type {number}\n */\n this.boxSize = Math.min(box.width, box.height);\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * When inserting another node into the box, that already hove one node,\n * divide the available space into another four quadrants.\n *\n * Indexes of quadrants are:\n * ```\n * ------------- -------------\n * | | | | |\n * | | | 0 | 1 |\n * | | divide() | | |\n * | 1 | -----------> -------------\n * | | | | |\n * | | | 3 | 2 |\n * | | | | |\n * ------------- -------------\n * ```\n */\n QuadTreeNode.prototype.divideBox = function () {\n var halfWidth = this.box.width / 2, halfHeight = this.box.height / 2;\n // Top left\n this.nodes[0] = new QuadTreeNode({\n left: this.box.left,\n top: this.box.top,\n width: halfWidth,\n height: halfHeight\n });\n // Top right\n this.nodes[1] = new QuadTreeNode({\n left: this.box.left + halfWidth,\n top: this.box.top,\n width: halfWidth,\n height: halfHeight\n });\n // Bottom right\n this.nodes[2] = new QuadTreeNode({\n left: this.box.left + halfWidth,\n top: this.box.top + halfHeight,\n width: halfWidth,\n height: halfHeight\n });\n // Bottom left\n this.nodes[3] = new QuadTreeNode({\n left: this.box.left,\n top: this.box.top + halfHeight,\n width: halfWidth,\n height: halfHeight\n });\n };\n /**\n * Determine which of the quadrants should be used when placing node in\n * the QuadTree. Returned index is always in range `< 0 , 3 >`.\n * @private\n */\n QuadTreeNode.prototype.getBoxPosition = function (point) {\n var left = point.plotX < this.box.left + this.box.width / 2, top = point.plotY < this.box.top + this.box.height / 2;\n var index;\n if (left) {\n if (top) {\n // Top left\n index = 0;\n }\n else {\n // Bottom left\n index = 3;\n }\n }\n else {\n if (top) {\n // Top right\n index = 1;\n }\n else {\n // Bottom right\n index = 2;\n }\n }\n return index;\n };\n /**\n * Insert recursively point(node) into the QuadTree. If the given\n * quadrant is already occupied, divide it into smaller quadrants.\n *\n * @param {Highcharts.Point} point\n * Point/node to be inserted\n * @param {number} depth\n * Max depth of the QuadTree\n */\n QuadTreeNode.prototype.insert = function (point, depth) {\n var newQuadTreeNode;\n if (this.isInternal) {\n // Internal node:\n this.nodes[this.getBoxPosition(point)].insert(point, depth - 1);\n }\n else {\n this.isEmpty = false;\n if (!this.body) {\n // First body in a quadrant:\n this.isInternal = false;\n this.body = point;\n }\n else {\n if (depth) {\n // Every other body in a quadrant:\n this.isInternal = true;\n this.divideBox();\n // Reinsert main body only once:\n if (this.body !== true) {\n this.nodes[this.getBoxPosition(this.body)]\n .insert(this.body, depth - 1);\n this.body = true;\n }\n // Add second body:\n this.nodes[this.getBoxPosition(point)]\n .insert(point, depth - 1);\n }\n else {\n // We are below max allowed depth. That means either:\n // - really huge number of points\n // - falling two points into exactly the same position\n // In this case, create another node in the QuadTree.\n //\n // Alternatively we could add some noise to the\n // position, but that could result in different\n // rendered chart in exporting.\n newQuadTreeNode = new QuadTreeNode({\n top: point.plotX || NaN,\n left: point.plotY || NaN,\n // Width/height below 1px\n width: 0.1,\n height: 0.1\n });\n newQuadTreeNode.body = point;\n newQuadTreeNode.isInternal = false;\n this.nodes.push(newQuadTreeNode);\n }\n }\n }\n };\n /**\n * Each quad node requires it's mass and center position. That mass and\n * position is used to imitate real node in the layout by approximation.\n */\n QuadTreeNode.prototype.updateMassAndCenter = function () {\n var mass = 0,\n plotX = 0,\n plotY = 0;\n if (this.isInternal) {\n // Calculate weightened mass of the quad node:\n for (var _i = 0, _a = this.nodes; _i < _a.length; _i++) {\n var pointMass = _a[_i];\n if (!pointMass.isEmpty) {\n mass += pointMass.mass;\n plotX += pointMass.plotX * pointMass.mass;\n plotY += pointMass.plotY * pointMass.mass;\n }\n }\n plotX /= mass;\n plotY /= mass;\n }\n else if (this.body) {\n // Just one node, use coordinates directly:\n mass = this.body.mass;\n plotX = this.body.plotX;\n plotY = this.body.plotY;\n }\n // Store details:\n this.mass = mass;\n this.plotX = plotX;\n this.plotY = plotY;\n };\n return QuadTreeNode;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Networkgraph_QuadTreeNode = (QuadTreeNode);\n\n;// ./code/es5/es-modules/Series/Networkgraph/QuadTree.js\n/* *\n *\n * Networkgraph series\n *\n * (c) 2010-2024 Paweł Fus\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n/* *\n *\n * Class\n *\n * */\n/**\n * The QuadTree class. Used in Networkgraph chart as a base for Barnes-Hut\n * approximation.\n *\n * @private\n * @class\n * @name Highcharts.QuadTree\n *\n * @param {number} x\n * Left position of the plotting area\n * @param {number} y\n * Top position of the plotting area\n * @param {number} width\n * Width of the plotting area\n * @param {number} height\n * Height of the plotting area\n */\nvar QuadTree = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function QuadTree(x, y, width, height) {\n // Boundary rectangle:\n this.box = {\n left: x,\n top: y,\n width: width,\n height: height\n };\n this.maxDepth = 25;\n this.root = new Networkgraph_QuadTreeNode(this.box);\n this.root.isInternal = true;\n this.root.isRoot = true;\n this.root.divideBox();\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Calculate mass of the each QuadNode in the tree.\n */\n QuadTree.prototype.calculateMassAndCenter = function () {\n this.visitNodeRecursive(null, null, function (node) {\n node.updateMassAndCenter();\n });\n };\n /**\n * Insert nodes into the QuadTree\n *\n * @param {Array<Highcharts.Point>} points\n * Points as nodes\n */\n QuadTree.prototype.insertNodes = function (points) {\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n this.root.insert(point, this.maxDepth);\n }\n };\n /**\n * Depth first treversal (DFS). Using `before` and `after` callbacks,\n * we can get two results: preorder and postorder traversals, reminder:\n *\n * ```\n * (a)\n * / \\\n * (b) (c)\n * / \\\n * (d) (e)\n * ```\n *\n * DFS (preorder): `a -> b -> d -> e -> c`\n *\n * DFS (postorder): `d -> e -> b -> c -> a`\n *\n * @param {Highcharts.QuadTreeNode|null} node\n * QuadTree node\n * @param {Function} [beforeCallback]\n * Function to be called before visiting children nodes.\n * @param {Function} [afterCallback]\n * Function to be called after visiting children nodes.\n */\n QuadTree.prototype.visitNodeRecursive = function (node, beforeCallback, afterCallback) {\n var goFurther;\n if (!node) {\n node = this.root;\n }\n if (node === this.root && beforeCallback) {\n goFurther = beforeCallback(node);\n }\n if (goFurther === false) {\n return;\n }\n for (var _i = 0, _a = node.nodes; _i < _a.length; _i++) {\n var qtNode = _a[_i];\n if (qtNode.isInternal) {\n if (beforeCallback) {\n goFurther = beforeCallback(qtNode);\n }\n if (goFurther === false) {\n continue;\n }\n this.visitNodeRecursive(qtNode, beforeCallback, afterCallback);\n }\n else if (qtNode.body) {\n if (beforeCallback) {\n beforeCallback(qtNode.body);\n }\n }\n if (afterCallback) {\n afterCallback(qtNode);\n }\n }\n if (node === this.root && afterCallback) {\n afterCallback(node);\n }\n };\n return QuadTree;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Networkgraph_QuadTree = (QuadTree);\n\n;// ./code/es5/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js\n/* *\n *\n * Networkgraph series\n *\n * (c) 2010-2024 Paweł Fus\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nvar win = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).win;\n\n\n\nvar ReingoldFruchtermanLayout_clamp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).clamp, ReingoldFruchtermanLayout_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, isFunction = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isFunction, ReingoldFruchtermanLayout_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, ReingoldFruchtermanLayout_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n\n/* *\n *\n * Class\n *\n * */\n/**\n * Reingold-Fruchterman algorithm from\n * \"Graph Drawing by Force-directed Placement\" paper.\n * @private\n */\nvar ReingoldFruchtermanLayout = /** @class */ (function () {\n function ReingoldFruchtermanLayout() {\n /* *\n *\n * Static Functions\n *\n * */\n this.box = {};\n this.currentStep = 0;\n this.initialRendering = true;\n this.links = [];\n this.nodes = [];\n this.series = [];\n this.simulation = false;\n }\n ReingoldFruchtermanLayout.compose = function (ChartClass) {\n Series_GraphLayoutComposition.compose(ChartClass);\n Series_GraphLayoutComposition.integrations.euler = Networkgraph_EulerIntegration;\n Series_GraphLayoutComposition.integrations.verlet = Networkgraph_VerletIntegration;\n Series_GraphLayoutComposition.layouts['reingold-fruchterman'] =\n ReingoldFruchtermanLayout;\n };\n ReingoldFruchtermanLayout.prototype.init = function (options) {\n this.options = options;\n this.nodes = [];\n this.links = [];\n this.series = [];\n this.box = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n this.setInitialRendering(true);\n this.integration =\n Series_GraphLayoutComposition.integrations[options.integration];\n this.enableSimulation = options.enableSimulation;\n this.attractiveForce = ReingoldFruchtermanLayout_pick(options.attractiveForce, this.integration.attractiveForceFunction);\n this.repulsiveForce = ReingoldFruchtermanLayout_pick(options.repulsiveForce, this.integration.repulsiveForceFunction);\n this.approximation = options.approximation;\n };\n ReingoldFruchtermanLayout.prototype.updateSimulation = function (enable) {\n this.enableSimulation = ReingoldFruchtermanLayout_pick(enable, this.options.enableSimulation);\n };\n ReingoldFruchtermanLayout.prototype.start = function () {\n var layout = this,\n series = this.series,\n options = this.options;\n layout.currentStep = 0;\n layout.forces = series[0] && series[0].forces || [];\n layout.chart = series[0] && series[0].chart;\n if (layout.initialRendering) {\n layout.initPositions();\n // Render elements in initial positions:\n series.forEach(function (s) {\n s.finishedAnimating = true; // #13169\n s.render();\n });\n }\n layout.setK();\n layout.resetSimulation(options);\n if (layout.enableSimulation) {\n layout.step();\n }\n };\n ReingoldFruchtermanLayout.prototype.step = function () {\n var _this = this;\n var anyLayout = this,\n allSeries = this.series;\n // Algorithm:\n this.currentStep++;\n if (this.approximation === 'barnes-hut') {\n this.createQuadTree();\n this.quadTree.calculateMassAndCenter();\n }\n for (var _i = 0, _a = this.forces || []; _i < _a.length; _i++) {\n var forceName = _a[_i];\n anyLayout[forceName + 'Forces'](this.temperature);\n }\n // Limit to the plotting area and cool down:\n this.applyLimits();\n // Cool down the system:\n this.temperature = this.coolDown(this.startTemperature, this.diffTemperature, this.currentStep);\n this.prevSystemTemperature = this.systemTemperature;\n this.systemTemperature = this.getSystemTemperature();\n if (this.enableSimulation) {\n for (var _b = 0, allSeries_1 = allSeries; _b < allSeries_1.length; _b++) {\n var series = allSeries_1[_b];\n // Chart could be destroyed during the simulation\n if (series.chart) {\n series.render();\n }\n }\n if (this.maxIterations-- &&\n isFinite(this.temperature) &&\n !this.isStable()) {\n if (this.simulation) {\n win.cancelAnimationFrame(this.simulation);\n }\n this.simulation = win.requestAnimationFrame(function () { return _this.step(); });\n }\n else {\n this.simulation = false;\n this.series.forEach(function (s) {\n ReingoldFruchtermanLayout_fireEvent(s, 'afterSimulation');\n });\n }\n }\n };\n ReingoldFruchtermanLayout.prototype.stop = function () {\n if (this.simulation) {\n win.cancelAnimationFrame(this.simulation);\n }\n };\n ReingoldFruchtermanLayout.prototype.setArea = function (x, y, w, h) {\n this.box = {\n left: x,\n top: y,\n width: w,\n height: h\n };\n };\n ReingoldFruchtermanLayout.prototype.setK = function () {\n // Optimal distance between nodes,\n // available space around the node:\n this.k = this.options.linkLength || this.integration.getK(this);\n };\n ReingoldFruchtermanLayout.prototype.addElementsToCollection = function (elements, collection) {\n for (var _i = 0, elements_1 = elements; _i < elements_1.length; _i++) {\n var element = elements_1[_i];\n if (collection.indexOf(element) === -1) {\n collection.push(element);\n }\n }\n };\n ReingoldFruchtermanLayout.prototype.removeElementFromCollection = function (element, collection) {\n var index = collection.indexOf(element);\n if (index !== -1) {\n collection.splice(index, 1);\n }\n };\n ReingoldFruchtermanLayout.prototype.clear = function () {\n this.nodes.length = 0;\n this.links.length = 0;\n this.series.length = 0;\n this.resetSimulation();\n };\n ReingoldFruchtermanLayout.prototype.resetSimulation = function () {\n this.forcedStop = false;\n this.systemTemperature = 0;\n this.setMaxIterations();\n this.setTemperature();\n this.setDiffTemperature();\n };\n ReingoldFruchtermanLayout.prototype.restartSimulation = function () {\n if (!this.simulation) {\n // When dragging nodes, we don't need to calculate\n // initial positions and rendering nodes:\n this.setInitialRendering(false);\n // Start new simulation:\n if (!this.enableSimulation) {\n // Run only one iteration to speed things up:\n this.setMaxIterations(1);\n }\n else {\n this.start();\n }\n if (this.chart) {\n this.chart.redraw();\n }\n // Restore defaults:\n this.setInitialRendering(true);\n }\n else {\n // Extend current simulation:\n this.resetSimulation();\n }\n };\n ReingoldFruchtermanLayout.prototype.setMaxIterations = function (maxIterations) {\n this.maxIterations = ReingoldFruchtermanLayout_pick(maxIterations, this.options.maxIterations);\n };\n ReingoldFruchtermanLayout.prototype.setTemperature = function () {\n this.temperature = this.startTemperature =\n Math.sqrt(this.nodes.length);\n };\n ReingoldFruchtermanLayout.prototype.setDiffTemperature = function () {\n this.diffTemperature = this.startTemperature /\n (this.options.maxIterations + 1);\n };\n ReingoldFruchtermanLayout.prototype.setInitialRendering = function (enable) {\n this.initialRendering = enable;\n };\n ReingoldFruchtermanLayout.prototype.createQuadTree = function () {\n this.quadTree = new Networkgraph_QuadTree(this.box.left, this.box.top, this.box.width, this.box.height);\n this.quadTree.insertNodes(this.nodes);\n };\n ReingoldFruchtermanLayout.prototype.initPositions = function () {\n var initialPositions = this.options.initialPositions;\n if (isFunction(initialPositions)) {\n initialPositions.call(this);\n for (var _i = 0, _a = this.nodes; _i < _a.length; _i++) {\n var node = _a[_i];\n if (!ReingoldFruchtermanLayout_defined(node.prevX)) {\n node.prevX = node.plotX;\n }\n if (!ReingoldFruchtermanLayout_defined(node.prevY)) {\n node.prevY = node.plotY;\n }\n node.dispX = 0;\n node.dispY = 0;\n }\n }\n else if (initialPositions === 'circle') {\n this.setCircularPositions();\n }\n else {\n this.setRandomPositions();\n }\n };\n ReingoldFruchtermanLayout.prototype.setCircularPositions = function () {\n var box = this.box,\n nodes = this.nodes,\n nodesLength = nodes.length + 1,\n angle = 2 * Math.PI / nodesLength,\n rootNodes = nodes.filter(function (node) {\n return node.linksTo.length === 0;\n }), visitedNodes = {}, radius = this.options.initialPositionRadius, addToNodes = function (node) {\n for (var _i = 0, _a = node.linksFrom || []; _i < _a.length; _i++) {\n var link = _a[_i];\n if (!visitedNodes[link.toNode.id]) {\n visitedNodes[link.toNode.id] = true;\n sortedNodes.push(link.toNode);\n addToNodes(link.toNode);\n }\n }\n };\n var sortedNodes = [];\n // Start with identified root nodes an sort the nodes by their\n // hierarchy. In trees, this ensures that branches don't cross\n // eachother.\n for (var _i = 0, rootNodes_1 = rootNodes; _i < rootNodes_1.length; _i++) {\n var rootNode = rootNodes_1[_i];\n sortedNodes.push(rootNode);\n addToNodes(rootNode);\n }\n // Cyclic tree, no root node found\n if (!sortedNodes.length) {\n sortedNodes = nodes;\n // Dangling, cyclic trees\n }\n else {\n for (var _a = 0, nodes_1 = nodes; _a < nodes_1.length; _a++) {\n var node_1 = nodes_1[_a];\n if (sortedNodes.indexOf(node_1) === -1) {\n sortedNodes.push(node_1);\n }\n }\n }\n var node;\n // Initial positions are laid out along a small circle, appearing\n // as a cluster in the middle\n for (var i = 0, iEnd = sortedNodes.length; i < iEnd; ++i) {\n node = sortedNodes[i];\n node.plotX = node.prevX = ReingoldFruchtermanLayout_pick(node.plotX, box.width / 2 + radius * Math.cos(i * angle));\n node.plotY = node.prevY = ReingoldFruchtermanLayout_pick(node.plotY, box.height / 2 + radius * Math.sin(i * angle));\n node.dispX = 0;\n node.dispY = 0;\n }\n };\n ReingoldFruchtermanLayout.prototype.setRandomPositions = function () {\n var box = this.box,\n nodes = this.nodes,\n nodesLength = nodes.length + 1, \n /**\n * Return a repeatable,\n quasi-random number based on an integer\n * input. For the initial positions\n * @private\n */\n unrandom = function (n) {\n var rand = n * n / Math.PI;\n rand = rand - Math.floor(rand);\n return rand;\n };\n var node;\n // Initial positions:\n for (var i = 0, iEnd = nodes.length; i < iEnd; ++i) {\n node = nodes[i];\n node.plotX = node.prevX = ReingoldFruchtermanLayout_pick(node.plotX, box.width * unrandom(i));\n node.plotY = node.prevY = ReingoldFruchtermanLayout_pick(node.plotY, box.height * unrandom(nodesLength + i));\n node.dispX = 0;\n node.dispY = 0;\n }\n };\n ReingoldFruchtermanLayout.prototype.force = function (name) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n this.integration[name].apply(this, args);\n };\n ReingoldFruchtermanLayout.prototype.barycenterForces = function () {\n this.getBarycenter();\n this.force('barycenter');\n };\n ReingoldFruchtermanLayout.prototype.getBarycenter = function () {\n var systemMass = 0,\n cx = 0,\n cy = 0;\n for (var _i = 0, _a = this.nodes; _i < _a.length; _i++) {\n var node = _a[_i];\n cx += node.plotX * node.mass;\n cy += node.plotY * node.mass;\n systemMass += node.mass;\n }\n this.barycenter = {\n x: cx,\n y: cy,\n xFactor: cx / systemMass,\n yFactor: cy / systemMass\n };\n return this.barycenter;\n };\n ReingoldFruchtermanLayout.prototype.barnesHutApproximation = function (node, quadNode) {\n var distanceXY = this.getDistXY(node,\n quadNode),\n distanceR = this.vectorLength(distanceXY);\n var goDeeper,\n force;\n if (node !== quadNode && distanceR !== 0) {\n if (quadNode.isInternal) {\n // Internal node:\n if (quadNode.boxSize / distanceR <\n this.options.theta &&\n distanceR !== 0) {\n // Treat as an external node:\n force = this.repulsiveForce(distanceR, this.k);\n this.force('repulsive', node, force * quadNode.mass, distanceXY, distanceR);\n goDeeper = false;\n }\n else {\n // Go deeper:\n goDeeper = true;\n }\n }\n else {\n // External node, direct force:\n force = this.repulsiveForce(distanceR, this.k);\n this.force('repulsive', node, force * quadNode.mass, distanceXY, distanceR);\n }\n }\n return goDeeper;\n };\n ReingoldFruchtermanLayout.prototype.repulsiveForces = function () {\n var _this = this;\n if (this.approximation === 'barnes-hut') {\n var _loop_1 = function (node) {\n this_1.quadTree.visitNodeRecursive(null,\n function (quadNode) { return (_this.barnesHutApproximation(node,\n quadNode)); });\n };\n var this_1 = this;\n for (var _i = 0, _a = this.nodes; _i < _a.length; _i++) {\n var node = _a[_i];\n _loop_1(node);\n }\n }\n else {\n var force = void 0,\n distanceR = void 0,\n distanceXY = void 0;\n for (var _b = 0, _c = this.nodes; _b < _c.length; _b++) {\n var node = _c[_b];\n for (var _d = 0, _e = this.nodes; _d < _e.length; _d++) {\n var repNode = _e[_d];\n if (\n // Node cannot repulse itself:\n node !== repNode &&\n // Only close nodes affect each other:\n // layout.getDistR(node, repNode) < 2 * k &&\n // Not dragged:\n !node.fixedPosition) {\n distanceXY = this.getDistXY(node, repNode);\n distanceR = this.vectorLength(distanceXY);\n if (distanceR !== 0) {\n force = this.repulsiveForce(distanceR, this.k);\n this.force('repulsive', node, force * repNode.mass, distanceXY, distanceR);\n }\n }\n }\n }\n }\n };\n ReingoldFruchtermanLayout.prototype.attractiveForces = function () {\n var distanceXY,\n distanceR,\n force;\n for (var _i = 0, _a = this.links; _i < _a.length; _i++) {\n var link = _a[_i];\n if (link.fromNode && link.toNode) {\n distanceXY = this.getDistXY(link.fromNode, link.toNode);\n distanceR = this.vectorLength(distanceXY);\n if (distanceR !== 0) {\n force = this.attractiveForce(distanceR, this.k);\n this.force('attractive', link, force, distanceXY, distanceR);\n }\n }\n }\n };\n ReingoldFruchtermanLayout.prototype.applyLimits = function () {\n var nodes = this.nodes;\n for (var _i = 0, nodes_2 = nodes; _i < nodes_2.length; _i++) {\n var node = nodes_2[_i];\n if (node.fixedPosition) {\n continue;\n }\n this.integration.integrate(this, node);\n this.applyLimitBox(node, this.box);\n // Reset displacement:\n node.dispX = 0;\n node.dispY = 0;\n }\n };\n /**\n * External box that nodes should fall. When hitting an edge, node\n * should stop or bounce.\n * @private\n */\n ReingoldFruchtermanLayout.prototype.applyLimitBox = function (node, box) {\n var radius = node.radius;\n /*\n TO DO: Consider elastic collision instead of stopping.\n o' means end position when hitting plotting area edge:\n\n - \"inelastic\":\n o\n \\\n ______\n | o'\n | \\\n | \\\n\n - \"elastic\"/\"bounced\":\n o\n \\\n ______\n | ^\n | / \\\n |o' \\\n\n Euler sample:\n if (plotX < 0) {\n plotX = 0;\n dispX *= -1;\n }\n\n if (plotX > box.width) {\n plotX = box.width;\n dispX *= -1;\n }\n\n */\n // Limit X-coordinates:\n node.plotX = ReingoldFruchtermanLayout_clamp(node.plotX, box.left + radius, box.width - radius);\n // Limit Y-coordinates:\n node.plotY = ReingoldFruchtermanLayout_clamp(node.plotY, box.top + radius, box.height - radius);\n };\n /**\n * From \"A comparison of simulated annealing cooling strategies\" by\n * Nourani and Andresen work.\n * @private\n */\n ReingoldFruchtermanLayout.prototype.coolDown = function (temperature, temperatureStep, currentStep) {\n // Logarithmic:\n /*\n return Math.sqrt(this.nodes.length) -\n Math.log(\n currentStep * layout.diffTemperature\n );\n */\n // Exponential:\n /*\n let alpha = 0.1;\n layout.temperature = Math.sqrt(layout.nodes.length) *\n Math.pow(alpha, layout.diffTemperature);\n */\n // Linear:\n return temperature - temperatureStep * currentStep;\n };\n ReingoldFruchtermanLayout.prototype.isStable = function () {\n return Math.abs(this.systemTemperature -\n this.prevSystemTemperature) < 0.00001 || this.temperature <= 0;\n };\n ReingoldFruchtermanLayout.prototype.getSystemTemperature = function () {\n var value = 0;\n for (var _i = 0, _a = this.nodes; _i < _a.length; _i++) {\n var node = _a[_i];\n value += node.temperature;\n }\n return value;\n };\n ReingoldFruchtermanLayout.prototype.vectorLength = function (vector) {\n return Math.sqrt(vector.x * vector.x + vector.y * vector.y);\n };\n ReingoldFruchtermanLayout.prototype.getDistR = function (nodeA, nodeB) {\n var distance = this.getDistXY(nodeA,\n nodeB);\n return this.vectorLength(distance);\n };\n ReingoldFruchtermanLayout.prototype.getDistXY = function (nodeA, nodeB) {\n var xDist = nodeA.plotX - nodeB.plotX,\n yDist = nodeA.plotY - nodeB.plotY;\n return {\n x: xDist,\n y: yDist,\n absX: Math.abs(xDist),\n absY: Math.abs(yDist)\n };\n };\n return ReingoldFruchtermanLayout;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Networkgraph_ReingoldFruchtermanLayout = (ReingoldFruchtermanLayout);\n\n;// ./code/es5/es-modules/Series/PackedBubble/PackedBubbleLayout.js\n/* *\n *\n * (c) 2010-2024 Grzegorz Blachlinski, Sebastian Bochan\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar PackedBubbleLayout_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\n\nvar PackedBubbleLayout_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, PackedBubbleLayout_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction chartGetSelectedParentNodes() {\n var allSeries = this.series,\n selectedParentsNodes = [];\n allSeries.forEach(function (series) {\n if (series.parentNode && series.parentNode.selected) {\n selectedParentsNodes.push(series.parentNode);\n }\n });\n return selectedParentsNodes;\n}\n/**\n * Remove accumulated data points to redistribute all of them again\n * (i.e after hiding series by legend)\n * @private\n */\nfunction onChartBeforeRedraw() {\n if (this.allDataPoints) {\n delete this.allDataPoints;\n }\n}\n/* *\n *\n * Class\n *\n * */\nvar PackedBubbleLayout = /** @class */ (function (_super) {\n PackedBubbleLayout_extends(PackedBubbleLayout, _super);\n function PackedBubbleLayout() {\n /* *\n *\n * Static Functions\n *\n * */\n var _this = _super !== null && _super.apply(this,\n arguments) || this;\n _this.index = NaN;\n _this.nodes = [];\n _this.series = [];\n return _this;\n }\n PackedBubbleLayout.compose = function (ChartClass) {\n Networkgraph_ReingoldFruchtermanLayout.compose(ChartClass);\n Series_GraphLayoutComposition.integrations.packedbubble = PackedBubble_PackedBubbleIntegration;\n Series_GraphLayoutComposition.layouts.packedbubble = PackedBubbleLayout;\n var chartProto = ChartClass.prototype;\n if (!chartProto.getSelectedParentNodes) {\n PackedBubbleLayout_addEvent(ChartClass, 'beforeRedraw', onChartBeforeRedraw);\n chartProto.getSelectedParentNodes = chartGetSelectedParentNodes;\n }\n };\n /* *\n *\n * Functions\n *\n * */\n PackedBubbleLayout.prototype.beforeStep = function () {\n if (this.options.marker) {\n this.series.forEach(function (series) {\n if (series) {\n series.calculateParentRadius();\n }\n });\n }\n };\n // #14439, new stable check.\n PackedBubbleLayout.prototype.isStable = function () {\n var tempDiff = Math.abs(this.prevSystemTemperature -\n this.systemTemperature);\n var upScaledTemperature = 10 * this.systemTemperature /\n Math.sqrt(this.nodes.length);\n return Math.abs(upScaledTemperature) < 1 &&\n tempDiff < 0.00001 ||\n this.temperature <= 0;\n };\n PackedBubbleLayout.prototype.setCircularPositions = function () {\n var layout = this,\n box = layout.box,\n nodes = layout.nodes,\n nodesLength = nodes.length + 1,\n angle = 2 * Math.PI / nodesLength,\n radius = layout.options.initialPositionRadius;\n var centerX,\n centerY,\n index = 0;\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n if (layout.options.splitSeries &&\n !node.isParentNode) {\n centerX = node.series.parentNode.plotX;\n centerY = node.series.parentNode.plotY;\n }\n else {\n centerX = box.width / 2;\n centerY = box.height / 2;\n }\n node.plotX = node.prevX = PackedBubbleLayout_pick(node.plotX, centerX +\n radius * Math.cos(node.index || index * angle));\n node.plotY = node.prevY = PackedBubbleLayout_pick(node.plotY, centerY +\n radius * Math.sin(node.index || index * angle));\n node.dispX = 0;\n node.dispY = 0;\n index++;\n }\n };\n PackedBubbleLayout.prototype.repulsiveForces = function () {\n var layout = this,\n bubblePadding = layout.options.bubblePadding,\n nodes = layout.nodes;\n var force,\n distanceR,\n distanceXY;\n nodes.forEach(function (node) {\n node.degree = node.mass;\n node.neighbours = 0;\n nodes.forEach(function (repNode) {\n force = 0;\n if (\n // Node cannot repulse itself:\n node !== repNode &&\n // Only close nodes affect each other:\n // Not dragged:\n !node.fixedPosition &&\n (layout.options.seriesInteraction ||\n node.series === repNode.series)) {\n distanceXY = layout.getDistXY(node, repNode);\n distanceR = (layout.vectorLength(distanceXY) -\n (node.marker.radius +\n repNode.marker.radius +\n bubblePadding));\n // TODO padding configurable\n if (distanceR < 0) {\n node.degree += 0.01;\n node.neighbours++;\n force = layout.repulsiveForce(-distanceR / Math.sqrt(node.neighbours), layout.k, node, repNode);\n }\n layout.force('repulsive', node, force * repNode.mass, distanceXY, repNode, distanceR);\n }\n });\n });\n };\n PackedBubbleLayout.prototype.applyLimitBox = function (node, box) {\n var layout = this,\n factor = 0.01;\n var distanceXY,\n distanceR;\n // `parentNodeLimit` should be used together with seriesInteraction:\n // false\n if (layout.options.splitSeries &&\n !node.isParentNode &&\n layout.options.parentNodeLimit) {\n distanceXY = layout.getDistXY(node, node.series.parentNode);\n distanceR = (node.series.parentNodeRadius -\n node.marker.radius -\n layout.vectorLength(distanceXY));\n if (distanceR < 0 &&\n distanceR > -2 * node.marker.radius) {\n node.plotX -= distanceXY.x * factor;\n node.plotY -= distanceXY.y * factor;\n }\n }\n _super.prototype.applyLimitBox.call(this, node, box);\n };\n return PackedBubbleLayout;\n}(Networkgraph_ReingoldFruchtermanLayout));\n/* *\n *\n * Registry\n *\n * */\nSeries_GraphLayoutComposition.layouts.packedbubble = PackedBubbleLayout;\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var PackedBubble_PackedBubbleLayout = (PackedBubbleLayout);\n\n;// ./code/es5/es-modules/Series/SimulationSeriesUtilities.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar SimulationSeriesUtilities_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, syncTimeout = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).syncTimeout;\n\nvar animObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).animObject;\n/**\n * Create a setTimeout for the first drawDataLabels()\n * based on the dataLabels.animation.defer value\n * for series which have enabled simulation.\n * @private\n */\nfunction initDataLabelsDefer() {\n var _this = this;\n var _a;\n var dlOptions = this.options.dataLabels;\n // Method drawDataLabels() fires for the first time after\n // dataLabels.animation.defer time unless\n // the dataLabels.animation = false or dataLabels.defer = false\n // or if the simulation is disabled\n if (!(dlOptions === null || dlOptions === void 0 ? void 0 : dlOptions.defer) ||\n !((_a = this.options.layoutAlgorithm) === null || _a === void 0 ? void 0 : _a.enableSimulation)) {\n this.deferDataLabels = false;\n }\n else {\n syncTimeout(function () {\n _this.deferDataLabels = false;\n }, dlOptions ? animObject(dlOptions.animation).defer : 0);\n }\n}\n/**\n * Initialize the SVG group for the DataLabels with correct opacities\n * and correct styles so that the animation for the series that have\n * simulation enabled works fine.\n * @private\n */\nfunction initDataLabels() {\n var series = this,\n dlOptions = series.options.dataLabels;\n if (!series.dataLabelsGroup) {\n var dataLabelsGroup = this.initDataLabelsGroup();\n // Apply the dataLabels.style not only to the\n // individual dataLabels but also to the entire group\n if (!series.chart.styledMode && (dlOptions === null || dlOptions === void 0 ? void 0 : dlOptions.style)) {\n dataLabelsGroup.css(dlOptions.style);\n }\n // Initialize the opacity of the group to 0 (start of animation)\n dataLabelsGroup.attr({ opacity: 0 });\n if (series.visible) { // #2597, #3023, #3024\n dataLabelsGroup.show();\n }\n return dataLabelsGroup;\n }\n // Place it on first and subsequent (redraw) calls\n series.dataLabelsGroup.attr(SimulationSeriesUtilities_merge({ opacity: 1 }, this.getPlotBox('data-labels')));\n return series.dataLabelsGroup;\n}\nvar DataLabelsDeferUtils = {\n initDataLabels: initDataLabels,\n initDataLabelsDefer: initDataLabelsDefer\n};\n/* harmony default export */ var SimulationSeriesUtilities = (DataLabelsDeferUtils);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"SVGElement\"],\"commonjs\":[\"highcharts\",\"SVGElement\"],\"commonjs2\":[\"highcharts\",\"SVGElement\"],\"root\":[\"Highcharts\",\"SVGElement\"]}\nvar highcharts_SVGElement_commonjs_highcharts_SVGElement_commonjs2_highcharts_SVGElement_root_Highcharts_SVGElement_ = __webpack_require__(28);\nvar highcharts_SVGElement_commonjs_highcharts_SVGElement_commonjs2_highcharts_SVGElement_root_Highcharts_SVGElement_default = /*#__PURE__*/__webpack_require__.n(highcharts_SVGElement_commonjs_highcharts_SVGElement_commonjs2_highcharts_SVGElement_root_Highcharts_SVGElement_);\n;// ./code/es5/es-modules/Extensions/TextPath.js\n/* *\n *\n * Highcharts module with textPath functionality.\n *\n * (c) 2009-2024 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\nvar TextPath_deg2rad = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).deg2rad;\nvar TextPath_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, TextPath_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, uniqueKey = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).uniqueKey, TextPath_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, TextPath_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend;\n/**\n * Set a text path for a `text` or `label` element, allowing the text to\n * flow along a path.\n *\n * In order to unset the path for an existing element, call `setTextPath`\n * with `{ enabled: false }` as the second argument.\n *\n * Text path support is not bundled into `highcharts.js`, and requires the\n * `modules/textpath.js` file. However, it is included in the script files of\n * those series types that use it by default\n *\n * @sample highcharts/members/renderer-textpath/ Text path demonstrated\n *\n * @function Highcharts.SVGElement#setTextPath\n *\n * @param {Highcharts.SVGElement|undefined} path\n * Path to follow. If undefined, it allows changing options for the\n * existing path.\n *\n * @param {Highcharts.DataLabelsTextPathOptionsObject} textPathOptions\n * Options.\n *\n * @return {Highcharts.SVGElement} Returns the SVGElement for chaining.\n */\nfunction setTextPath(path, textPathOptions) {\n var _this = this;\n // Defaults\n textPathOptions = TextPath_merge(true, {\n enabled: true,\n attributes: {\n dy: -5,\n startOffset: '50%',\n textAnchor: 'middle'\n }\n }, textPathOptions);\n var url = this.renderer.url,\n textWrapper = this.text || this,\n textPath = textWrapper.textPath,\n attributes = textPathOptions.attributes,\n enabled = textPathOptions.enabled;\n path = path || (textPath && textPath.path);\n // Remove previously added event\n if (textPath) {\n textPath.undo();\n }\n if (path && enabled) {\n var undo = TextPath_addEvent(textWrapper, 'afterModifyTree',\n function (e) {\n if (path && enabled) {\n // Set ID for the path\n var textPathId = path.attr('id');\n if (!textPathId) {\n path.attr('id', textPathId = uniqueKey());\n }\n // Set attributes for the <text>\n var textAttribs = {\n // `dx`/`dy` options must by set on <text> (parent), the\n // rest should be set on <textPath>\n x: 0,\n y: 0\n };\n if (TextPath_defined(attributes.dx)) {\n textAttribs.dx = attributes.dx;\n delete attributes.dx;\n }\n if (TextPath_defined(attributes.dy)) {\n textAttribs.dy = attributes.dy;\n delete attributes.dy;\n }\n textWrapper.attr(textAttribs);\n // Handle label properties\n _this.attr({ transform: '' });\n if (_this.box) {\n _this.box = _this.box.destroy();\n }\n // Wrap the nodes in a textPath\n var children = e.nodes.slice(0);\n e.nodes.length = 0;\n e.nodes[0] = {\n tagName: 'textPath',\n attributes: TextPath_extend(attributes, {\n 'text-anchor': attributes.textAnchor,\n href: \"\" + url + \"#\".concat(textPathId)\n }),\n children: children\n };\n }\n });\n // Set the reference\n textWrapper.textPath = { path: path, undo: undo };\n }\n else {\n textWrapper.attr({ dx: 0, dy: 0 });\n delete textWrapper.textPath;\n }\n if (this.added) {\n // Rebuild text after added\n textWrapper.textCache = '';\n this.renderer.buildText(textWrapper);\n }\n return this;\n}\n/**\n * Attach a polygon to a bounding box if the element contains a textPath.\n *\n * @function Highcharts.SVGElement#setPolygon\n *\n * @param {any} event\n * An event containing a bounding box object\n *\n * @return {Highcharts.BBoxObject} Returns the bounding box object.\n */\nfunction setPolygon(event) {\n var _a;\n var bBox = event.bBox,\n tp = (_a = this.element) === null || _a === void 0 ? void 0 : _a.querySelector('textPath');\n if (tp) {\n var polygon = [], _b = this.renderer.fontMetrics(this.element), b_1 = _b.b, h = _b.h, descender_1 = h - b_1, lineCleanerRegex = new RegExp('(<tspan>|' +\n '<tspan(?!\\\\sclass=\"highcharts-br\")[^>]*>|' +\n '<\\\\/tspan>)', 'g'), lines = tp\n .innerHTML\n .replace(lineCleanerRegex, '')\n .split(/<tspan class=\"highcharts-br\"[^>]*>/), numOfLines = lines.length;\n // Calculate top and bottom coordinates for\n // either the start or the end of a single\n // character, and append it to the polygon.\n var appendTopAndBottom = function (charIndex,\n positionOfChar) {\n var x = positionOfChar.x,\n y = positionOfChar.y,\n rotation = (tp.getRotationOfChar(charIndex) - 90) * TextPath_deg2rad,\n cosRot = Math.cos(rotation),\n sinRot = Math.sin(rotation);\n return [\n [\n x - descender_1 * cosRot,\n y - descender_1 * sinRot\n ],\n [\n x + b_1 * cosRot,\n y + b_1 * sinRot\n ]\n ];\n };\n for (var i = 0, lineIndex = 0; lineIndex < numOfLines; lineIndex++) {\n var line = lines[lineIndex],\n lineLen = line.length;\n for (var lineCharIndex = 0; lineCharIndex < lineLen; lineCharIndex += 5) {\n try {\n var srcCharIndex = (i +\n lineCharIndex +\n lineIndex),\n _c = appendTopAndBottom(srcCharIndex,\n tp.getStartPositionOfChar(srcCharIndex)),\n lower = _c[0],\n upper = _c[1];\n if (lineCharIndex === 0) {\n polygon.push(upper);\n polygon.push(lower);\n }\n else {\n if (lineIndex === 0) {\n polygon.unshift(upper);\n }\n if (lineIndex === numOfLines - 1) {\n polygon.push(lower);\n }\n }\n }\n catch (e) {\n // Safari fails on getStartPositionOfChar even if the\n // character is within the `textContent.length`\n break;\n }\n }\n i += lineLen - 1;\n try {\n var srcCharIndex = i + lineIndex,\n charPos = tp.getEndPositionOfChar(srcCharIndex),\n _d = appendTopAndBottom(srcCharIndex,\n charPos),\n lower = _d[0],\n upper = _d[1];\n polygon.unshift(upper);\n polygon.unshift(lower);\n }\n catch (e) {\n // Safari fails on getStartPositionOfChar even if the character\n // is within the `textContent.length`\n break;\n }\n }\n // Close it\n if (polygon.length) {\n polygon.push(polygon[0].slice());\n }\n bBox.polygon = polygon;\n }\n return bBox;\n}\n/**\n * Draw text along a textPath for a dataLabel.\n *\n * @function Highcharts.SVGElement#setTextPath\n *\n * @param {any} event\n * An event containing label options\n *\n * @return {void}\n */\nfunction drawTextPath(event) {\n var _a;\n var labelOptions = event.labelOptions,\n point = event.point,\n textPathOptions = (labelOptions[point.formatPrefix + 'TextPath'] ||\n labelOptions.textPath);\n if (textPathOptions && !labelOptions.useHTML) {\n this.setTextPath(((_a = point.getDataLabelPath) === null || _a === void 0 ? void 0 : _a.call(point, this)) || point.graphic, textPathOptions);\n if (point.dataLabelPath &&\n !textPathOptions.enabled) {\n // Clean the DOM\n point.dataLabelPath = (point.dataLabelPath.destroy());\n }\n }\n}\nfunction TextPath_compose(SVGElementClass) {\n TextPath_addEvent(SVGElementClass, 'afterGetBBox', setPolygon);\n TextPath_addEvent(SVGElementClass, 'beforeAddingDataLabel', drawTextPath);\n var svgElementProto = SVGElementClass.prototype;\n if (!svgElementProto.setTextPath) {\n svgElementProto.setTextPath = setTextPath;\n }\n}\nvar TextPath = {\n compose: TextPath_compose\n};\n/* harmony default export */ var Extensions_TextPath = (TextPath);\n\n;// ./code/es5/es-modules/Series/PackedBubble/PackedBubbleSeries.js\n/* *\n *\n * (c) 2010-2024 Grzegorz Blachlinski, Sebastian Bochan\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar PackedBubbleSeries_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar PackedBubbleSeries_color = (highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default()).parse;\n\n\n\nvar PackedBubbleSeries_noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\n\n\n\nvar seriesProto = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).series.prototype, PackedBubbleSeries_BubbleSeries = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.bubble;\n\nvar PackedBubbleSeries_initDataLabels = SimulationSeriesUtilities.initDataLabels, PackedBubbleSeries_initDataLabelsDefer = SimulationSeriesUtilities.initDataLabelsDefer;\n\nvar PackedBubbleSeries_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, PackedBubbleSeries_clamp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).clamp, PackedBubbleSeries_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, PackedBubbleSeries_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, PackedBubbleSeries_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, PackedBubbleSeries_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, PackedBubbleSeries_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, PackedBubbleSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, PackedBubbleSeries_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n\n\nExtensions_TextPath.compose((highcharts_SVGElement_commonjs_highcharts_SVGElement_commonjs2_highcharts_SVGElement_root_Highcharts_SVGElement_default()));\n/* *\n *\n * Class\n *\n * */\n/**\n * @private\n * @class\n * @name Highcharts.seriesTypes.packedbubble\n *\n * @extends Highcharts.Series\n */\nvar PackedBubbleSeries = /** @class */ (function (_super) {\n PackedBubbleSeries_extends(PackedBubbleSeries, _super);\n function PackedBubbleSeries() {\n /* *\n *\n * Static Properties\n *\n * */\n var _this = _super !== null && _super.apply(this,\n arguments) || this;\n _this.parentNodeMass = 0;\n _this.deferDataLabels = true;\n return _this;\n /* eslint-enable valid-jsdoc */\n }\n /* *\n *\n * Static Functions\n *\n * */\n PackedBubbleSeries.compose = function (AxisClass, ChartClass, LegendClass) {\n PackedBubbleSeries_BubbleSeries.compose(AxisClass, ChartClass, LegendClass);\n Series_DragNodesComposition.compose(ChartClass);\n PackedBubble_PackedBubbleLayout.compose(ChartClass);\n };\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * Create a single array of all points from all series\n * @private\n */\n PackedBubbleSeries.prototype.accumulateAllPoints = function () {\n var chart = this.chart,\n allDataPoints = [];\n for (var _i = 0, _a = chart.series; _i < _a.length; _i++) {\n var series = _a[_i];\n if (series.is('packedbubble') && // #13574\n series.reserveSpace()) {\n var valueData = series.getColumn('value');\n // Add data to array only if series is visible\n for (var j = 0; j < valueData.length; j++) {\n allDataPoints.push([\n null, null,\n valueData[j],\n series.index,\n j,\n {\n id: j,\n marker: {\n radius: 0\n }\n }\n ]);\n }\n }\n }\n return allDataPoints;\n };\n /**\n * Adding the basic layout to series points.\n * @private\n */\n PackedBubbleSeries.prototype.addLayout = function () {\n var layoutOptions = this.options.layoutAlgorithm =\n this.options.layoutAlgorithm || {},\n layoutType = layoutOptions.type || 'packedbubble',\n chartOptions = this.chart.options.chart;\n var graphLayoutsStorage = this.chart.graphLayoutsStorage,\n graphLayoutsLookup = this.chart.graphLayoutsLookup,\n layout;\n if (!graphLayoutsStorage) {\n this.chart.graphLayoutsStorage = graphLayoutsStorage = {};\n this.chart.graphLayoutsLookup = graphLayoutsLookup = [];\n }\n layout = graphLayoutsStorage[layoutType];\n if (!layout) {\n layoutOptions.enableSimulation =\n !PackedBubbleSeries_defined(chartOptions.forExport) ?\n layoutOptions.enableSimulation :\n !chartOptions.forExport;\n graphLayoutsStorage[layoutType] = layout =\n new Series_GraphLayoutComposition.layouts[layoutType]();\n layout.init(layoutOptions);\n graphLayoutsLookup.splice(layout.index, 0, layout);\n }\n this.layout = layout;\n this.points.forEach(function (node) {\n node.mass = 2;\n node.degree = 1;\n node.collisionNmb = 1;\n });\n layout.setArea(0, 0, this.chart.plotWidth, this.chart.plotHeight);\n layout.addElementsToCollection([this], layout.series);\n layout.addElementsToCollection(this.points, layout.nodes);\n };\n /**\n * Function responsible for adding series layout, used for parent nodes.\n * @private\n */\n PackedBubbleSeries.prototype.addSeriesLayout = function () {\n var layoutOptions = this.options.layoutAlgorithm =\n this.options.layoutAlgorithm || {},\n layoutType = (layoutOptions.type || 'packedbubble'),\n graphLayoutsStorage = this.chart.graphLayoutsStorage,\n graphLayoutsLookup = this.chart.graphLayoutsLookup,\n parentNodeOptions = PackedBubbleSeries_merge(layoutOptions,\n layoutOptions.parentNodeOptions, {\n enableSimulation: this.layout.options.enableSimulation\n });\n var seriesLayout = graphLayoutsStorage[layoutType + '-series'];\n if (!seriesLayout) {\n graphLayoutsStorage[layoutType + '-series'] = seriesLayout =\n new Series_GraphLayoutComposition.layouts[layoutType]();\n seriesLayout.init(parentNodeOptions);\n graphLayoutsLookup.splice(seriesLayout.index, 0, seriesLayout);\n }\n this.parentNodeLayout = seriesLayout;\n this.createParentNodes();\n };\n /**\n * The function responsible for calculating the parent node radius\n * based on the total surface of inside-bubbles and the group BBox\n * @private\n */\n PackedBubbleSeries.prototype.calculateParentRadius = function () {\n var bBox = this.seriesBox(),\n parentPadding = 20,\n minParentRadius = 20;\n this.parentNodeRadius = PackedBubbleSeries_clamp(Math.sqrt(2 * this.parentNodeMass / Math.PI) + parentPadding, minParentRadius, bBox ?\n Math.max(Math.sqrt(Math.pow(bBox.width, 2) +\n Math.pow(bBox.height, 2)) / 2 + parentPadding, minParentRadius) :\n Math.sqrt(2 * this.parentNodeMass / Math.PI) + parentPadding);\n if (this.parentNode) {\n this.parentNode.marker.radius =\n this.parentNode.radius = this.parentNodeRadius;\n }\n };\n /**\n * Calculate min and max bubble value for radius calculation.\n * @private\n */\n PackedBubbleSeries.prototype.calculateZExtremes = function () {\n var chart = this.chart,\n allSeries = chart.series;\n var zMin = this.options.zMin,\n zMax = this.options.zMax,\n valMin = Infinity,\n valMax = -Infinity;\n if (zMin && zMax) {\n return [zMin, zMax];\n }\n // It is needed to deal with null and undefined values\n allSeries.forEach(function (series) {\n series.getColumn('value').forEach(function (y) {\n if (PackedBubbleSeries_defined(y)) {\n if (y > valMax) {\n valMax = y;\n }\n if (y < valMin) {\n valMin = y;\n }\n }\n });\n });\n zMin = PackedBubbleSeries_pick(zMin, valMin);\n zMax = PackedBubbleSeries_pick(zMax, valMax);\n return [zMin, zMax];\n };\n /**\n * Check if two bubbles overlaps.\n * @private\n */\n PackedBubbleSeries.prototype.checkOverlap = function (bubble1, bubble2) {\n var diffX = bubble1[0] - bubble2[0], // Diff of X center values\n diffY = bubble1[1] - bubble2[1], // Diff of Y center values\n sumRad = bubble1[2] + bubble2[2]; // Sum of bubble radius\n return (Math.sqrt(diffX * diffX + diffY * diffY) -\n Math.abs(sumRad)) < -0.001;\n };\n /**\n * Creating parent nodes for split series, in which all the bubbles\n * are rendered.\n * @private\n */\n PackedBubbleSeries.prototype.createParentNodes = function () {\n var _this = this;\n var PackedBubblePoint = this.pointClass,\n chart = this.chart,\n parentNodeLayout = this.parentNodeLayout,\n layoutOptions = this.layout.options;\n var nodeAdded,\n parentNode = this.parentNode,\n parentMarkerOptions = {\n radius: this.parentNodeRadius,\n lineColor: this.color,\n fillColor: PackedBubbleSeries_color(this.color).brighten(0.4).get()\n };\n if (layoutOptions.parentNodeOptions) {\n parentMarkerOptions = PackedBubbleSeries_merge(layoutOptions.parentNodeOptions.marker || {}, parentMarkerOptions);\n }\n this.parentNodeMass = 0;\n this.points.forEach(function (p) {\n _this.parentNodeMass +=\n Math.PI * Math.pow(p.marker.radius, 2);\n });\n this.calculateParentRadius();\n parentNodeLayout.nodes\n .forEach(function (node) {\n if (node.seriesIndex === _this.index) {\n nodeAdded = true;\n }\n });\n parentNodeLayout.setArea(0, 0, chart.plotWidth, chart.plotHeight);\n if (!nodeAdded) {\n if (!parentNode) {\n parentNode = new PackedBubblePoint(this, {\n mass: this.parentNodeRadius / 2,\n marker: parentMarkerOptions,\n dataLabels: {\n inside: false\n },\n states: {\n normal: {\n marker: parentMarkerOptions\n },\n hover: {\n marker: parentMarkerOptions\n }\n },\n dataLabelOnNull: true,\n degree: this.parentNodeRadius,\n isParentNode: true,\n seriesIndex: this.index\n });\n }\n if (this.parentNode) {\n parentNode.plotX = this.parentNode.plotX;\n parentNode.plotY = this.parentNode.plotY;\n }\n this.parentNode = parentNode;\n parentNodeLayout.addElementsToCollection([this], parentNodeLayout.series);\n parentNodeLayout.addElementsToCollection([parentNode], parentNodeLayout.nodes);\n }\n };\n /**\n * Function responsible for adding all the layouts to the chart.\n * @private\n */\n PackedBubbleSeries.prototype.deferLayout = function () {\n // TODO split layouts to independent methods\n var layoutOptions = this.options.layoutAlgorithm;\n if (!this.visible) {\n return;\n }\n // Layout is using nodes for position calculation\n this.addLayout();\n if (layoutOptions.splitSeries) {\n this.addSeriesLayout();\n }\n };\n PackedBubbleSeries.prototype.destroy = function () {\n var _this = this;\n // Remove the series from all layouts series collections #11469\n if (this.chart.graphLayoutsLookup) {\n this.chart.graphLayoutsLookup.forEach(function (layout) {\n layout.removeElementFromCollection(_this, layout.series);\n }, this);\n }\n if (this.parentNode &&\n this.parentNodeLayout) {\n this.parentNodeLayout.removeElementFromCollection(this.parentNode, this.parentNodeLayout.nodes);\n if (this.parentNode.dataLabel) {\n this.parentNode.dataLabel =\n this.parentNode.dataLabel.destroy();\n }\n }\n seriesProto.destroy.apply(this, arguments);\n };\n /**\n * Packedbubble has two separate collections of nodes if split, render\n * dataLabels for both sets:\n * @private\n */\n PackedBubbleSeries.prototype.drawDataLabels = function () {\n // We defer drawing the dataLabels\n // until dataLabels.animation.defer time passes\n if (this.deferDataLabels) {\n return;\n }\n seriesProto.drawDataLabels.call(this, this.points);\n // Render parentNode labels:\n if (this.parentNode) {\n this.parentNode.formatPrefix = 'parentNode';\n seriesProto.drawDataLabels.call(this, [this.parentNode]);\n }\n };\n /**\n * Create Background/Parent Nodes for split series.\n * @private\n */\n PackedBubbleSeries.prototype.drawGraph = function () {\n var _a;\n // If the series is not using layout, don't add parent nodes\n if (!this.layout || !this.layout.options.splitSeries) {\n return;\n }\n var chart = this.chart,\n nodeMarker = this.layout.options.parentNodeOptions.marker,\n parentOptions = {\n fill: (nodeMarker.fillColor ||\n PackedBubbleSeries_color(this.color).brighten(0.4).get()),\n opacity: nodeMarker.fillOpacity,\n stroke: nodeMarker.lineColor || this.color,\n 'stroke-width': PackedBubbleSeries_pick(nodeMarker.lineWidth,\n this.options.lineWidth)\n };\n var parentAttribs = {};\n // Create the group for parent Nodes if doesn't exist\n // If exists it will only be adjusted to the updated plot size (#12063)\n this.parentNodesGroup = this.plotGroup('parentNodesGroup', 'parentNode', this.visible ? 'inherit' : 'hidden', 0.1, chart.seriesGroup);\n (_a = this.group) === null || _a === void 0 ? void 0 : _a.attr({\n zIndex: 2\n });\n this.calculateParentRadius();\n if (this.parentNode &&\n PackedBubbleSeries_defined(this.parentNode.plotX) &&\n PackedBubbleSeries_defined(this.parentNode.plotY) &&\n PackedBubbleSeries_defined(this.parentNodeRadius)) {\n parentAttribs = PackedBubbleSeries_merge({\n x: this.parentNode.plotX -\n this.parentNodeRadius,\n y: this.parentNode.plotY -\n this.parentNodeRadius,\n width: this.parentNodeRadius * 2,\n height: this.parentNodeRadius * 2\n }, parentOptions);\n if (!this.parentNode.graphic) {\n this.graph = this.parentNode.graphic =\n chart.renderer.symbol(parentOptions.symbol)\n .add(this.parentNodesGroup);\n }\n this.parentNode.graphic.attr(parentAttribs);\n }\n };\n PackedBubbleSeries.prototype.drawTracker = function () {\n var parentNode = this.parentNode;\n // Chart = series.chart,\n // pointer = chart.pointer,\n // onMouseOver = function (e: PointerEvent): void {\n // const point = pointer.getPointFromEvent(e);\n // // undefined on graph in scatterchart\n // if (typeof point !== 'undefined') {\n // pointer.isDirectTouch = true;\n // point.onMouseOver(e);\n // }\n // };\n var dataLabels;\n _super.prototype.drawTracker.call(this);\n // Add reference to the point\n if (parentNode) {\n dataLabels = (PackedBubbleSeries_isArray(parentNode.dataLabels) ?\n parentNode.dataLabels :\n (parentNode.dataLabel ? [parentNode.dataLabel] : []));\n if (parentNode.graphic) {\n parentNode.graphic.element.point = parentNode;\n }\n dataLabels.forEach(function (dataLabel) {\n (dataLabel.div || dataLabel.element).point = parentNode;\n });\n }\n };\n /**\n * Calculate radius of bubbles in series.\n * @private\n */\n PackedBubbleSeries.prototype.getPointRadius = function () {\n var _this = this;\n var chart = this.chart,\n plotWidth = chart.plotWidth,\n plotHeight = chart.plotHeight,\n seriesOptions = this.options,\n useSimulation = seriesOptions.useSimulation,\n smallestSize = Math.min(plotWidth,\n plotHeight),\n extremes = {},\n radii = [],\n allDataPoints = chart.allDataPoints || [],\n allDataPointsLength = allDataPoints.length;\n var minSize,\n maxSize,\n value,\n radius;\n ['minSize', 'maxSize'].forEach(function (prop) {\n var length = parseInt(seriesOptions[prop], 10), isPercent = /%$/.test(seriesOptions[prop]);\n extremes[prop] = isPercent ?\n smallestSize * length / 100 :\n length * Math.sqrt(allDataPointsLength);\n });\n chart.minRadius = minSize = extremes.minSize /\n Math.sqrt(allDataPointsLength);\n chart.maxRadius = maxSize = extremes.maxSize /\n Math.sqrt(allDataPointsLength);\n var zExtremes = useSimulation ?\n this.calculateZExtremes() :\n [minSize,\n maxSize];\n allDataPoints.forEach(function (point, i) {\n value = useSimulation ?\n PackedBubbleSeries_clamp(point[2], zExtremes[0], zExtremes[1]) :\n point[2];\n radius = _this.getRadius(zExtremes[0], zExtremes[1], minSize, maxSize, value);\n if (radius === 0) {\n radius = null;\n }\n allDataPoints[i][2] = radius;\n radii.push(radius);\n });\n this.radii = radii;\n };\n PackedBubbleSeries.prototype.init = function () {\n seriesProto.init.apply(this, arguments);\n PackedBubbleSeries_initDataLabelsDefer.call(this);\n /* eslint-disable no-invalid-this */\n // When one series is modified, the others need to be recomputed\n this.eventsToUnbind.push(PackedBubbleSeries_addEvent(this, 'updatedData', function () {\n var _this = this;\n this.chart.series.forEach(function (s) {\n if (s.type === _this.type) {\n s.isDirty = true;\n }\n }, this);\n }));\n /* eslint-enable no-invalid-this */\n return this;\n };\n /**\n * Mouse up action, finalizing drag&drop.\n * @private\n * @param {Highcharts.Point} point The point that event occurred.\n */\n PackedBubbleSeries.prototype.onMouseUp = function (dnPoint) {\n var point = dnPoint;\n if (point.fixedPosition && !point.removed) {\n var layout_1 = this.layout,\n parentNodeLayout = this.parentNodeLayout;\n var distanceXY_1,\n distanceR_1;\n if (parentNodeLayout && layout_1.options.dragBetweenSeries) {\n parentNodeLayout.nodes.forEach(function (node) {\n if (point && point.marker &&\n node !== point.series.parentNode) {\n distanceXY_1 = layout_1.getDistXY(point, node);\n distanceR_1 = (layout_1.vectorLength(distanceXY_1) -\n node.marker.radius -\n point.marker.radius);\n if (distanceR_1 < 0) {\n node.series.addPoint(PackedBubbleSeries_merge(point.options, {\n plotX: point.plotX,\n plotY: point.plotY\n }), false);\n layout_1.removeElementFromCollection(point, layout_1.nodes);\n point.remove();\n }\n }\n });\n }\n Series_DragNodesComposition.onMouseUp.apply(this, arguments);\n }\n };\n /**\n * This is the main function responsible\n * for positioning all of the bubbles\n * allDataPoints - bubble array, in format [pixel x value,\n * pixel y value, radius,\n * related series index, related point index]\n * @private\n * @param {Array<Highcharts.PackedBubbleData>} allDataPoints All points from all series\n * @return {Array<Highcharts.PackedBubbleData>} Positions of all bubbles\n */\n PackedBubbleSeries.prototype.placeBubbles = function (allDataPoints) {\n var checkOverlap = this.checkOverlap,\n positionBubble = this.positionBubble,\n bubblePos = [];\n var stage = 1,\n j = 0,\n k = 0,\n calculatedBubble,\n arr = [],\n i;\n // Sort all points\n var sortedArr = allDataPoints.sort(function (a,\n b) {\n return b[2] - a[2];\n });\n if (sortedArr.length) {\n // Create first bubble in the middle of the chart\n bubblePos.push([\n [\n 0, // Starting in 0,0 coordinates\n 0,\n sortedArr[0][2], // Radius\n sortedArr[0][3], // Series index\n sortedArr[0][4]\n ] // Point index\n ]); // 0 level bubble\n if (sortedArr.length > 1) {\n bubblePos.push([\n [\n 0,\n (0 - sortedArr[1][2] -\n sortedArr[0][2]),\n // Move bubble above first one\n sortedArr[1][2],\n sortedArr[1][3],\n sortedArr[1][4]\n ]\n ]); // 1 level 1st bubble\n // first two already positioned so starting from 2\n for (i = 2; i < sortedArr.length; i++) {\n sortedArr[i][2] = sortedArr[i][2] || 1;\n // In case if radius is calculated as 0.\n calculatedBubble = positionBubble(bubblePos[stage][j], bubblePos[stage - 1][k], sortedArr[i]); // Calculate initial bubble position\n if (checkOverlap(calculatedBubble, bubblePos[stage][0])) {\n /* If new bubble is overlapping with first bubble\n * in current level (stage)\n */\n bubblePos.push([]);\n k = 0;\n /* Reset index of bubble, used for\n * positioning the bubbles around it,\n * we are starting from first bubble in next\n * stage because we are changing level to higher\n */\n bubblePos[stage + 1].push(positionBubble(bubblePos[stage][j], bubblePos[stage][0], sortedArr[i]));\n // (last bubble, 1. from curr stage, new bubble)\n stage++; // The new level is created, above current\n j = 0; // Set the index of bubble in curr level to 0\n }\n else if (stage > 1 &&\n bubblePos[stage - 1][k + 1] &&\n checkOverlap(calculatedBubble, bubblePos[stage - 1][k + 1])) {\n /* If new bubble is overlapping with one of the prev\n * stage bubbles, it means that - bubble, used for\n * positioning the bubbles around it has changed\n * so we need to recalculate it\n */\n k++;\n bubblePos[stage].push(positionBubble(bubblePos[stage][j], bubblePos[stage - 1][k], sortedArr[i]));\n // (last bubble, prev stage bubble, new bubble)\n j++;\n }\n else { // Simply add calculated bubble\n j++;\n bubblePos[stage].push(calculatedBubble);\n }\n }\n }\n this.chart.stages = bubblePos;\n // It may not be necessary but adding it just in case -\n // it is containing all of the bubble levels\n this.chart.rawPositions =\n []\n .concat.apply([], bubblePos);\n // Bubble positions merged into one array\n this.resizeRadius();\n arr = this.chart.rawPositions;\n }\n return arr;\n };\n /**\n * Function that checks for a parentMarker and sets the correct opacity.\n * @private\n * @param {Highcharts.Pack} point\n * Candidate point for opacity correction.\n * @param {string} [state]\n * The point state, can be either `hover`, `select` or 'normal'. If\n * undefined, normal state is assumed.\n *\n * @return {Highcharts.SVGAttributes}\n * The presentational attributes to be set on the point.\n */\n PackedBubbleSeries.prototype.pointAttribs = function (point, state) {\n var options = this.options,\n hasParentMarker = point && point.isParentNode;\n var markerOptions = options.marker;\n if (hasParentMarker &&\n options.layoutAlgorithm &&\n options.layoutAlgorithm.parentNodeOptions) {\n markerOptions = options.layoutAlgorithm.parentNodeOptions.marker;\n }\n var fillOpacity = markerOptions.fillOpacity,\n attr = seriesProto.pointAttribs.call(this,\n point,\n state);\n if (fillOpacity !== 1) {\n attr['fill-opacity'] = fillOpacity;\n }\n return attr;\n };\n /**\n * Function that is adding one bubble based on positions and sizes of\n * two other bubbles, lastBubble is the last added bubble, newOrigin is\n * the bubble for positioning new bubbles. nextBubble is the currently\n * added bubble for which we are calculating positions\n * @private\n * @param {Array<number>} lastBubble The closest last bubble\n * @param {Array<number>} newOrigin New bubble\n * @param {Array<number>} nextBubble The closest next bubble\n * @return {Array<number>} Bubble with correct positions\n */\n PackedBubbleSeries.prototype.positionBubble = function (lastBubble, newOrigin, nextBubble) {\n var sqrt = Math.sqrt, asin = Math.asin, acos = Math.acos, pow = Math.pow, abs = Math.abs, distance = sqrt(// Dist between lastBubble and newOrigin\n pow((lastBubble[0] - newOrigin[0]), 2) +\n pow((lastBubble[1] - newOrigin[1]), 2)), alfa = acos(\n // From cosinus theorem: alfa is an angle used for\n // calculating correct position\n (pow(distance, 2) +\n pow(nextBubble[2] + newOrigin[2], 2) -\n pow(nextBubble[2] + lastBubble[2], 2)) / (2 * (nextBubble[2] + newOrigin[2]) * distance)), beta = asin(// From sinus theorem.\n abs(lastBubble[0] - newOrigin[0]) /\n distance), \n // Providing helping variables, related to angle between\n // lastBubble and newOrigin\n gamma = (lastBubble[1] - newOrigin[1]) < 0 ? 0 : Math.PI, \n // If new origin y is smaller than last bubble y value\n // (2 and 3 quarter),\n // add Math.PI to final angle\n delta = (lastBubble[0] - newOrigin[0]) *\n (lastBubble[1] - newOrigin[1]) < 0 ?\n 1 : -1, // (1st and 3rd quarter)\n finalAngle = gamma + alfa + beta * delta, cosA = Math.cos(finalAngle), sinA = Math.sin(finalAngle), posX = newOrigin[0] + (newOrigin[2] + nextBubble[2]) * sinA, \n // Center of new origin + (radius1 + radius2) * sinus A\n posY = newOrigin[1] - (newOrigin[2] + nextBubble[2]) * cosA;\n return [\n posX,\n posY,\n nextBubble[2],\n nextBubble[3],\n nextBubble[4]\n ]; // The same as described before\n };\n PackedBubbleSeries.prototype.render = function () {\n var dataLabels = [];\n seriesProto.render.apply(this, arguments);\n // #10823 - dataLabels should stay visible\n // when enabled allowOverlap.\n if (!this.options.dataLabels.allowOverlap) {\n this.data.forEach(function (point) {\n if (PackedBubbleSeries_isArray(point.dataLabels)) {\n point.dataLabels.forEach(function (dataLabel) {\n dataLabels.push(dataLabel);\n });\n }\n });\n // Only hide overlapping dataLabels for layouts that\n // use simulation. Spiral packedbubble don't need\n // additional dataLabel hiding on every simulation step\n if (this.options.useSimulation) {\n this.chart.hideOverlappingLabels(dataLabels);\n }\n }\n };\n /**\n * The function responsible for resizing the bubble radius.\n * In shortcut: it is taking the initially\n * calculated positions of bubbles. Then it is calculating the min max\n * of both dimensions, creating something in shape of bBox.\n * The comparison of bBox and the size of plotArea\n * (later it may be also the size set by customer) is giving the\n * value how to recalculate the radius so it will match the size\n * @private\n */\n PackedBubbleSeries.prototype.resizeRadius = function () {\n var chart = this.chart,\n positions = chart.rawPositions,\n min = Math.min,\n max = Math.max,\n plotLeft = chart.plotLeft,\n plotTop = chart.plotTop,\n chartHeight = chart.plotHeight,\n chartWidth = chart.plotWidth;\n var minX,\n maxX,\n minY,\n maxY,\n radius;\n minX = minY = Number.POSITIVE_INFINITY; // Set initial values\n maxX = maxY = Number.NEGATIVE_INFINITY;\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\n var position = positions_1[_i];\n radius = position[2];\n minX = min(minX, position[0] - radius);\n // (x center-radius) is the min x value used by specific bubble\n maxX = max(maxX, position[0] + radius);\n minY = min(minY, position[1] - radius);\n maxY = max(maxY, position[1] + radius);\n }\n var bBox = [maxX - minX,\n maxY - minY],\n spaceRatio = [\n (chartWidth - plotLeft) / bBox[0],\n (chartHeight - plotTop) / bBox[1]\n ],\n smallerDimension = min.apply([],\n spaceRatio);\n if (Math.abs(smallerDimension - 1) > 1e-10) {\n // If bBox is considered not the same width as possible size\n for (var _a = 0, positions_2 = positions; _a < positions_2.length; _a++) {\n var position = positions_2[_a];\n position[2] *= smallerDimension;\n }\n this.placeBubbles(positions);\n }\n else {\n /** If no radius recalculation is needed, we need to position\n * the whole bubbles in center of chart plotarea\n * for this, we are adding two parameters,\n * diffY and diffX, that are related to differences\n * between the initial center and the bounding box\n */\n chart.diffY = chartHeight / 2 +\n plotTop - minY - (maxY - minY) / 2;\n chart.diffX = chartWidth / 2 +\n plotLeft - minX - (maxX - minX) / 2;\n }\n };\n /**\n * The function responsible for calculating series bubble' s bBox.\n * Needed because of exporting failure when useSimulation\n * is set to false\n * @private\n */\n PackedBubbleSeries.prototype.seriesBox = function () {\n var chart = this.chart,\n data = this.data,\n max = Math.max,\n min = Math.min,\n bBox = [\n chart.plotLeft,\n chart.plotLeft + chart.plotWidth,\n chart.plotTop,\n chart.plotTop + chart.plotHeight\n ];\n var radius;\n data.forEach(function (p) {\n if (PackedBubbleSeries_defined(p.plotX) &&\n PackedBubbleSeries_defined(p.plotY) &&\n p.marker.radius) {\n radius = p.marker.radius;\n bBox[0] = min(bBox[0], p.plotX - radius);\n bBox[1] = max(bBox[1], p.plotX + radius);\n bBox[2] = min(bBox[2], p.plotY - radius);\n bBox[3] = max(bBox[3], p.plotY + radius);\n }\n });\n return PackedBubbleSeries_isNumber(bBox.width / bBox.height) ?\n bBox :\n null;\n };\n /**\n * Needed because of z-indexing issue if point is added in series.group\n * @private\n */\n PackedBubbleSeries.prototype.setVisible = function () {\n var series = this;\n seriesProto.setVisible.apply(series, arguments);\n if (series.parentNodeLayout && series.graph) {\n if (series.visible) {\n series.graph.show();\n if (series.parentNode.dataLabel) {\n series.parentNode.dataLabel.show();\n }\n }\n else {\n series.graph.hide();\n series.parentNodeLayout.removeElementFromCollection(series.parentNode, series.parentNodeLayout.nodes);\n if (series.parentNode.dataLabel) {\n series.parentNode.dataLabel.hide();\n }\n }\n }\n else if (series.layout) {\n if (series.visible) {\n series.layout.addElementsToCollection(series.points, series.layout.nodes);\n }\n else {\n series.points.forEach(function (node) {\n series.layout.removeElementFromCollection(node, series.layout.nodes);\n });\n }\n }\n };\n /**\n * Extend the base translate method to handle bubble size,\n * and correct positioning them.\n * @private\n */\n PackedBubbleSeries.prototype.translate = function () {\n var chart = this.chart,\n data = this.data,\n index = this.index,\n useSimulation = this.options.useSimulation;\n var point,\n radius,\n positions;\n this.generatePoints();\n // Merged data is an array with all of the data from all series\n if (!PackedBubbleSeries_defined(chart.allDataPoints)) {\n chart.allDataPoints = this.accumulateAllPoints();\n // Calculate radius for all added data\n this.getPointRadius();\n }\n // After getting initial radius, calculate bubble positions\n if (useSimulation) {\n positions = chart.allDataPoints;\n }\n else {\n positions = this.placeBubbles(chart.allDataPoints);\n this.options.draggable = false;\n }\n // Set the shape and arguments to be picked up in drawPoints\n for (var _i = 0, positions_3 = positions; _i < positions_3.length; _i++) {\n var position = positions_3[_i];\n if (position[3] === index) {\n // Update the series points with the val from positions\n // array\n point = data[position[4]];\n radius = PackedBubbleSeries_pick(position[2], void 0);\n if (!useSimulation) {\n point.plotX = (position[0] - chart.plotLeft +\n chart.diffX);\n point.plotY = (position[1] - chart.plotTop +\n chart.diffY);\n }\n if (PackedBubbleSeries_isNumber(radius)) {\n point.marker = PackedBubbleSeries_extend(point.marker, {\n radius: radius,\n width: 2 * radius,\n height: 2 * radius\n });\n point.radius = radius;\n }\n }\n }\n if (useSimulation) {\n this.deferLayout();\n }\n PackedBubbleSeries_fireEvent(this, 'afterTranslate');\n };\n PackedBubbleSeries.defaultOptions = PackedBubbleSeries_merge(PackedBubbleSeries_BubbleSeries.defaultOptions, PackedBubble_PackedBubbleSeriesDefaults);\n return PackedBubbleSeries;\n}(PackedBubbleSeries_BubbleSeries));\nPackedBubbleSeries_extend(PackedBubbleSeries.prototype, {\n pointClass: PackedBubble_PackedBubblePoint,\n axisTypes: [],\n directTouch: true,\n forces: ['barycenter', 'repulsive'],\n hasDraggableNodes: true,\n invertible: false,\n isCartesian: false,\n noSharedTooltip: true,\n pointArrayMap: ['value'],\n pointValKey: 'value',\n requireSorting: false,\n trackerGroups: ['group', 'dataLabelsGroup', 'parentNodesGroup'],\n initDataLabels: PackedBubbleSeries_initDataLabels,\n alignDataLabel: seriesProto.alignDataLabel,\n indexateNodes: PackedBubbleSeries_noop,\n onMouseDown: Series_DragNodesComposition.onMouseDown,\n onMouseMove: Series_DragNodesComposition.onMouseMove,\n redrawHalo: Series_DragNodesComposition.redrawHalo,\n searchPoint: PackedBubbleSeries_noop // Solving #12287\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('packedbubble', PackedBubbleSeries);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var PackedBubble_PackedBubbleSeries = (PackedBubbleSeries);\n\n;// ./code/es5/es-modules/Series/Polygon/PolygonSeriesDefaults.js\n/* *\n *\n * (c) 2010-2024 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 *\n * API Options\n *\n * */\n/**\n * A polygon series can be used to draw any freeform shape in the cartesian\n * coordinate system. A fill is applied with the `color` option, and\n * stroke is applied through `lineWidth` and `lineColor` options.\n *\n * @sample {highcharts} highcharts/demo/polygon/\n * Polygon\n * @sample {highstock} highcharts/demo/polygon/\n * Polygon\n *\n * @extends plotOptions.scatter\n * @since 4.1.0\n * @excluding jitter, softThreshold, threshold, cluster, boostThreshold,\n * boostBlending\n * @product highcharts highstock\n * @requires highcharts-more\n * @optionparent plotOptions.polygon\n */\nvar PolygonSeriesDefaults = {\n marker: {\n enabled: false,\n states: {\n hover: {\n enabled: false\n }\n }\n },\n stickyTracking: false,\n tooltip: {\n followPointer: true,\n pointFormat: ''\n },\n trackByArea: true,\n legendSymbol: 'rectangle'\n};\n/**\n * A `polygon` series. If the [type](#series.polygon.type) option is\n * not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends series,plotOptions.polygon\n * @excluding dataParser, dataURL, stack, boostThreshold, boostBlending\n * @product highcharts highstock\n * @requires highcharts-more\n * @apioption series.polygon\n */\n/**\n * An array of data points for the series. For the `polygon` series\n * type, points can be given in the following ways:\n *\n * 1. An array of numerical values. In this case, the numerical values will be\n * interpreted as `y` options. The `x` values will be automatically\n * calculated, either starting at 0 and incremented by 1, or from\n * `pointStart` and `pointInterval` given in the series options. If the axis\n * has categories, these will be used. Example:\n * ```js\n * data: [0, 5, 3, 5]\n * ```\n *\n * 2. An array of arrays with 2 values. In this case, the values correspond to\n * `x,y`. If the first value is a string, it is applied as the name of the\n * point, and the `x` value is inferred.\n * ```js\n * data: [\n * [0, 10],\n * [1, 3],\n * [2, 1]\n * ]\n * ```\n *\n * 3. 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\n * data points exceeds the series'\n * [turboThreshold](#series.polygon.turboThreshold), this option is not\n * available.\n * ```js\n * data: [{\n * x: 1,\n * y: 1,\n * name: \"Point2\",\n * color: \"#00FF00\"\n * }, {\n * x: 1,\n * y: 8,\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<number|Array<(number|string),(number|null)>|null|*>}\n * @extends series.line.data\n * @product highcharts highstock\n * @apioption series.polygon.data\n */\n''; // Keeps doclets above separate\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Polygon_PolygonSeriesDefaults = (PolygonSeriesDefaults);\n\n;// ./code/es5/es-modules/Series/Polygon/PolygonSeries.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar PolygonSeries_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar PolygonSeries_noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\n\nvar PolygonSeries_a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, PolygonSeries_AreaSeries = PolygonSeries_a.area, LineSeries = PolygonSeries_a.line, PolygonSeries_ScatterSeries = PolygonSeries_a.scatter;\n\nvar PolygonSeries_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, PolygonSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n * Class\n *\n * */\nvar PolygonSeries = /** @class */ (function (_super) {\n PolygonSeries_extends(PolygonSeries, _super);\n function PolygonSeries() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n PolygonSeries.prototype.getGraphPath = function () {\n var graphPath = LineSeries.prototype.getGraphPath.call(this);\n var i = graphPath.length + 1;\n // Close all segments\n while (i--) {\n if ((i === graphPath.length || graphPath[i][0] === 'M') && i > 0) {\n graphPath.splice(i, 0, ['Z']);\n }\n }\n this.areaPath = graphPath;\n return graphPath;\n };\n PolygonSeries.prototype.drawGraph = function () {\n // Hack into the fill logic in area.drawGraph\n this.options.fillColor = this.color;\n PolygonSeries_AreaSeries.prototype.drawGraph.call(this);\n };\n /* *\n *\n * Static Properties\n *\n * */\n PolygonSeries.defaultOptions = PolygonSeries_merge(PolygonSeries_ScatterSeries.defaultOptions, Polygon_PolygonSeriesDefaults);\n return PolygonSeries;\n}(PolygonSeries_ScatterSeries));\nPolygonSeries_extend(PolygonSeries.prototype, {\n type: 'polygon',\n drawTracker: LineSeries.prototype.drawTracker,\n setStackedPoints: PolygonSeries_noop // No stacking points on polygons (#5310)\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('polygon', PolygonSeries);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Polygon_PolygonSeries = ((/* unused pure expression or super */ null && (PolygonSeries)));\n\n;// ./code/es5/es-modules/Core/Axis/RadialAxisDefaults.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * Extension for radial axes\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/**\n * Circular axis around the perimeter of a polar chart.\n * @private\n */\nvar defaultCircularOptions = {\n gridLineWidth: 1, // Spokes\n labels: {\n align: void 0, // Auto\n x: 0,\n y: void 0 // Auto\n },\n maxPadding: 0,\n minPadding: 0,\n showLastLabel: false,\n tickLength: 0\n};\n/**\n * The default options extend defaultYAxisOptions.\n * @private\n */\nvar defaultRadialGaugeOptions = {\n endOnTick: false,\n gridLineWidth: 0,\n labels: {\n align: 'center',\n distance: -25,\n x: 0,\n y: void 0 // Auto\n },\n lineWidth: 1,\n minorGridLineWidth: 0,\n minorTickInterval: 'auto',\n minorTickLength: 10,\n minorTickPosition: 'inside',\n minorTickWidth: 1,\n startOnTick: false,\n tickLength: 10,\n tickPixelInterval: 100,\n tickPosition: 'inside',\n tickWidth: 2,\n title: {\n rotation: 0,\n text: ''\n },\n zIndex: 2 // Behind dials, points in the series group\n};\n/**\n * Radial axis, like a spoke in a polar chart.\n * @private\n */\nvar defaultRadialOptions = {\n /**\n * In a polar chart, this is the angle of the Y axis in degrees, where\n * 0 is up and 90 is right. The angle determines the position of the\n * axis line and the labels, though the coordinate system is unaffected.\n * Since v8.0.0 this option is also applicable for X axis (inverted\n * polar).\n *\n * @sample {highcharts} highcharts/xaxis/angle/\n * Custom X axis' angle on inverted polar chart\n * @sample {highcharts} highcharts/yaxis/angle/\n * Dual axis polar chart\n *\n * @type {number}\n * @default 0\n * @since 4.2.7\n * @product highcharts\n * @apioption xAxis.angle\n */\n /**\n * Polar charts only. Whether the grid lines should draw as a polygon\n * with straight lines between categories, or as circles. Can be either\n * `circle` or `polygon`. Since v8.0.0 this option is also applicable\n * for X axis (inverted polar).\n *\n * @sample {highcharts} highcharts/demo/polar-spider/\n * Polygon grid lines\n * @sample {highcharts} highcharts/xaxis/gridlineinterpolation/\n * Circle and polygon on inverted polar\n * @sample {highcharts} highcharts/yaxis/gridlineinterpolation/\n * Circle and polygon\n *\n * @type {string}\n * @product highcharts\n * @validvalue [\"circle\", \"polygon\"]\n * @apioption xAxis.gridLineInterpolation\n */\n gridLineInterpolation: 'circle',\n gridLineWidth: 1,\n labels: {\n align: 'right',\n padding: 5,\n x: -3,\n y: -2\n },\n showLastLabel: false,\n title: {\n x: 4,\n text: null,\n rotation: 90\n }\n};\n/* *\n *\n * Default Export\n *\n * */\nvar RadialAxisDefaults = {\n circular: defaultCircularOptions,\n radial: defaultRadialOptions,\n radialGauge: defaultRadialGaugeOptions\n};\n/* harmony default export */ var Axis_RadialAxisDefaults = (RadialAxisDefaults);\n\n;// ./code/es5/es-modules/Core/Axis/RadialAxis.js\n/* *\n *\n * (c) 2010-2024 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\nvar defaultOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defaultOptions;\n\nvar RadialAxis_composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed, RadialAxis_noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\nvar RadialAxis_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, RadialAxis_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, RadialAxis_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, RadialAxis_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, RadialAxis_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, isObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isObject, RadialAxis_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, RadialAxis_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, RadialAxis_pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique, RadialAxis_relativeLength = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).relativeLength, RadialAxis_wrap = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).wrap;\n/* *\n *\n * Composition\n *\n * */\nvar RadialAxis;\n(function (RadialAxis) {\n /* *\n *\n * Declarations\n *\n * */\n RadialAxis.radialDefaultOptions = RadialAxis_merge(Axis_RadialAxisDefaults);\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * In case of auto connect, add one closestPointRange to the max value\n * right before tickPositions are computed, so that ticks will extend\n * passed the real max.\n * @private\n */\n function beforeSetTickPositions() {\n // If autoConnect is true, polygonal grid lines are connected, and\n // one closestPointRange is added to the X axis to prevent the last\n // point from overlapping the first.\n this.autoConnect = (this.isCircular &&\n typeof RadialAxis_pick(this.userMax, this.options.max) === 'undefined' &&\n RadialAxis_correctFloat(this.endAngleRad - this.startAngleRad) ===\n RadialAxis_correctFloat(2 * Math.PI));\n // This will lead to add an extra tick to xAxis in order to display\n // a correct range on inverted polar\n if (!this.isCircular && this.chart.inverted) {\n this.max++;\n }\n if (this.autoConnect) {\n this.max += ((this.categories && 1) ||\n this.pointRange ||\n this.closestPointRange ||\n 0); // #1197, #2260\n }\n }\n /**\n * Augments methods for the value axis.\n *\n * @private\n *\n * @param {Highcharts.Axis} AxisClass\n * Axis class to extend.\n *\n * @param {Highcharts.Tick} TickClass\n * Tick class to use.\n *\n * @return {Highcharts.Axis}\n * Axis composition.\n */\n function compose(AxisClass, TickClass) {\n if (RadialAxis_pushUnique(RadialAxis_composed, 'Axis.Radial')) {\n RadialAxis_addEvent(AxisClass, 'afterInit', onAxisAfterInit);\n RadialAxis_addEvent(AxisClass, 'autoLabelAlign', onAxisAutoLabelAlign);\n RadialAxis_addEvent(AxisClass, 'destroy', onAxisDestroy);\n RadialAxis_addEvent(AxisClass, 'init', onAxisInit);\n RadialAxis_addEvent(AxisClass, 'initialAxisTranslation', onAxisInitialAxisTranslation);\n RadialAxis_addEvent(TickClass, 'afterGetLabelPosition', onTickAfterGetLabelPosition);\n RadialAxis_addEvent(TickClass, 'afterGetPosition', onTickAfterGetPosition);\n RadialAxis_addEvent((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()), 'setOptions', onGlobalSetOptions);\n RadialAxis_wrap(TickClass.prototype, 'getMarkPath', wrapTickGetMarkPath);\n }\n return AxisClass;\n }\n RadialAxis.compose = compose;\n /**\n * Attach and return collecting function for labels in radial axis for\n * anti-collision.\n *\n * @private\n */\n function createLabelCollector() {\n var _this = this;\n return function () {\n if (_this.isRadial &&\n _this.tickPositions &&\n // Undocumented option for now, but working\n _this.options.labels &&\n _this.options.labels.allowOverlap !== true) {\n return _this.tickPositions\n .map(function (pos) {\n return _this.ticks[pos] && _this.ticks[pos].label;\n })\n .filter(function (label) {\n return Boolean(label);\n });\n }\n };\n }\n /**\n * Creates an empty collector function.\n * @private\n */\n function createLabelCollectorHidden() {\n return RadialAxis_noop;\n }\n /**\n * Find the correct end values of crosshair in polar.\n * @private\n */\n function getCrosshairPosition(options, x1, y1) {\n var center = this.pane.center;\n var value = options.value,\n shapeArgs,\n end,\n x2,\n y2;\n if (this.isCircular) {\n if (!RadialAxis_defined(value)) {\n // When the snap is set to false\n x2 = options.chartX || 0;\n y2 = options.chartY || 0;\n value = this.translate(Math.atan2(y2 - y1, x2 - x1) - this.startAngleRad, true);\n }\n else if (options.point) {\n // When the snap is set to true\n shapeArgs = options.point.shapeArgs || {};\n if (shapeArgs.start) {\n // Find a true value of the point based on the\n // angle\n value = this.chart.inverted ?\n this.translate(options.point.rectPlotY, true) :\n options.point.x;\n }\n }\n end = this.getPosition(value);\n x2 = end.x;\n y2 = end.y;\n }\n else {\n if (!RadialAxis_defined(value)) {\n x2 = options.chartX;\n y2 = options.chartY;\n }\n if (RadialAxis_defined(x2) && RadialAxis_defined(y2)) {\n // Calculate radius of non-circular axis' crosshair\n y1 = center[1] + this.chart.plotTop;\n value = this.translate(Math.min(Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)), center[2] / 2) - center[3] / 2, true);\n }\n }\n return [value, x2 || 0, y2 || 0];\n }\n /**\n * Get the path for the axis line. This method is also referenced in the\n * getPlotLinePath method.\n *\n * @private\n * @param {number} _lineWidth\n * Line width is not used.\n * @param {number} [radius]\n * Radius of radial path.\n * @param {number} [innerRadius]\n * Inner radius of radial path.\n */\n function getLinePath(_lineWidth, radius, innerRadius) {\n var center = this.pane.center,\n chart = this.chart,\n left = this.left || 0,\n top = this.top || 0;\n var end,\n r = RadialAxis_pick(radius,\n center[2] / 2 - this.offset),\n path;\n if (typeof innerRadius === 'undefined') {\n innerRadius = this.horiz ? 0 : this.center && -this.center[3] / 2;\n }\n // In case when innerSize of pane is set, it must be included\n if (innerRadius) {\n r += innerRadius;\n }\n if (this.isCircular || typeof radius !== 'undefined') {\n path = this.chart.renderer.symbols.arc(left + center[0], top + center[1], r, r, {\n start: this.startAngleRad,\n end: this.endAngleRad,\n open: true,\n innerR: 0\n });\n // Bounds used to position the plotLine label next to the line\n // (#7117)\n path.xBounds = [left + center[0]];\n path.yBounds = [top + center[1] - r];\n }\n else {\n end = this.postTranslate(this.angleRad, r);\n path = [\n [\n 'M',\n this.center[0] + chart.plotLeft,\n this.center[1] + chart.plotTop\n ],\n ['L', end.x, end.y]\n ];\n }\n return path;\n }\n /**\n * Wrap the getOffset method to return zero offset for title or labels\n * in a radial axis.\n */\n function getOffset() {\n var axisProto = this.constructor.prototype;\n // Call the Axis prototype method (the method we're in now is on the\n // instance)\n axisProto.getOffset.call(this);\n // Title or label offsets are not counted\n this.chart.axisOffset[this.side] = 0;\n }\n /**\n * Find the path for plot bands along the radial axis.\n *\n * @private\n */\n function getPlotBandPath(from, to, options) {\n var chart = this.chart,\n radiusToPixels = function (radius) {\n if (typeof radius === 'string') {\n var r = parseInt(radius, 10);\n if (percentRegex.test(radius)) {\n r = (r * fullRadius) / 100;\n }\n return r;\n }\n return radius;\n }, center = this.center, startAngleRad = this.startAngleRad, fullRadius = center[2] / 2, offset = Math.min(this.offset, 0), left = this.left || 0, top = this.top || 0, percentRegex = /%$/, isCircular = this.isCircular; // X axis in a polar chart\n var start,\n end,\n angle,\n xOnPerimeter,\n open,\n path,\n outerRadius = RadialAxis_pick(radiusToPixels(options.outerRadius),\n fullRadius),\n innerRadius = radiusToPixels(options.innerRadius),\n thickness = RadialAxis_pick(radiusToPixels(options.thickness), 10);\n // Polygonal plot bands\n if (this.options.gridLineInterpolation === 'polygon') {\n path = this.getPlotLinePath({ value: from }).concat(this.getPlotLinePath({ value: to, reverse: true }));\n // Circular grid bands\n }\n else {\n // Keep within bounds\n from = Math.max(from, this.min);\n to = Math.min(to, this.max);\n var transFrom = this.translate(from),\n transTo = this.translate(to);\n // Plot bands on Y axis (radial axis) - inner and outer\n // radius depend on to and from\n if (!isCircular) {\n outerRadius = transFrom || 0;\n innerRadius = transTo || 0;\n }\n // Handle full circle\n if (options.shape === 'circle' || !isCircular) {\n start = -Math.PI / 2;\n end = Math.PI * 1.5;\n open = true;\n }\n else {\n start = startAngleRad + (transFrom || 0);\n end = startAngleRad + (transTo || 0);\n }\n outerRadius -= offset; // #5283\n thickness -= offset; // #5283\n path = chart.renderer.symbols.arc(left + center[0], top + center[1], outerRadius, outerRadius, {\n // Math is for reversed yAxis (#3606)\n start: Math.min(start, end),\n end: Math.max(start, end),\n innerR: RadialAxis_pick(innerRadius, outerRadius - thickness),\n open: open,\n borderRadius: options.borderRadius\n });\n // Provide positioning boxes for the label (#6406)\n if (isCircular) {\n angle = (end + start) / 2;\n xOnPerimeter = (left +\n center[0] +\n (center[2] / 2) * Math.cos(angle));\n path.xBounds = angle > -Math.PI / 2 && angle < Math.PI / 2 ?\n // Right hemisphere\n [xOnPerimeter, chart.plotWidth] :\n // Left hemisphere\n [0, xOnPerimeter];\n path.yBounds = [\n top + center[1] + (center[2] / 2) * Math.sin(angle)\n ];\n // Shift up or down to get the label clear of the perimeter\n path.yBounds[0] += ((angle > -Math.PI && angle < 0) ||\n (angle > Math.PI)) ? -10 : 10;\n }\n }\n return path;\n }\n /**\n * Find the path for plot lines perpendicular to the radial axis.\n */\n function getPlotLinePath(options) {\n var _this = this;\n var center = this.pane.center, chart = this.chart, inverted = chart.inverted, reverse = options.reverse, background = this.pane.options.background ?\n (this.pane.options.background[0] ||\n this.pane.options.background) :\n {}, innerRadius = background.innerRadius || '0%', outerRadius = background.outerRadius || '100%', x1 = center[0] + chart.plotLeft, y1 = center[1] + chart.plotTop, height = this.height, isCrosshair = options.isCrosshair, paneInnerR = center[3] / 2;\n var value = options.value,\n innerRatio,\n distance,\n a,\n b,\n otherAxis,\n xy,\n tickPositions,\n crossPos,\n path;\n var end = this.getPosition(value);\n var x2 = end.x,\n y2 = end.y;\n // Crosshair logic\n if (isCrosshair) {\n // Find crosshair's position and perform destructuring\n // assignment\n crossPos = this.getCrosshairPosition(options, x1, y1);\n value = crossPos[0];\n x2 = crossPos[1];\n y2 = crossPos[2];\n }\n // Spokes\n if (this.isCircular) {\n distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n a = (typeof innerRadius === 'string') ?\n RadialAxis_relativeLength(innerRadius, 1) :\n (innerRadius / distance);\n b = (typeof outerRadius === 'string') ?\n RadialAxis_relativeLength(outerRadius, 1) :\n (outerRadius / distance);\n // To ensure that gridlines won't be displayed in area\n // defined by innerSize in case of custom radiuses of pane's\n // background\n if (center && paneInnerR) {\n innerRatio = paneInnerR / distance;\n if (a < innerRatio) {\n a = innerRatio;\n }\n if (b < innerRatio) {\n b = innerRatio;\n }\n }\n path = [\n ['M', x1 + a * (x2 - x1), y1 - a * (y1 - y2)],\n ['L', x2 - (1 - b) * (x2 - x1), y2 + (1 - b) * (y1 - y2)]\n ];\n // Concentric circles\n }\n else {\n // Pick the right values depending if it is grid line or\n // crosshair\n value = this.translate(value);\n // This is required in case when xAxis is non-circular to\n // prevent grid lines (or crosshairs, if enabled) from\n // rendering above the center after they supposed to be\n // displayed below the center point\n if (value) {\n if (value < 0 || value > height) {\n value = 0;\n }\n }\n if (this.options.gridLineInterpolation === 'circle') {\n // A value of 0 is in the center, so it won't be\n // visible, but draw it anyway for update and animation\n // (#2366)\n path = this.getLinePath(0, value, paneInnerR);\n // Concentric polygons\n }\n else {\n path = [];\n // Find the other axis (a circular one) in the same pane\n chart[inverted ? 'yAxis' : 'xAxis'].forEach(function (a) {\n if (a.pane === _this.pane) {\n otherAxis = a;\n }\n });\n if (otherAxis) {\n tickPositions = otherAxis.tickPositions;\n if (otherAxis.autoConnect) {\n tickPositions =\n tickPositions.concat([tickPositions[0]]);\n }\n // Reverse the positions for concatenation of polygonal\n // plot bands\n if (reverse) {\n tickPositions = tickPositions.slice().reverse();\n }\n if (value) {\n value += paneInnerR;\n }\n for (var i = 0; i < tickPositions.length; i++) {\n xy = otherAxis.getPosition(tickPositions[i], value);\n path.push(i ? ['L', xy.x, xy.y] : ['M', xy.x, xy.y]);\n }\n }\n }\n }\n return path;\n }\n /**\n * Returns the x, y coordinate of a point given by a value and a pixel\n * distance from center.\n *\n * @private\n * @param {number} value\n * Point value.\n * @param {number} [length]\n * Distance from center.\n */\n function getPosition(value, length) {\n var translatedVal = this.translate(value);\n return this.postTranslate(this.isCircular ? translatedVal : this.angleRad, // #2848\n // In case when translatedVal is negative, the 0 value must be\n // used instead, in order to deal with lines and labels that\n // fall out of the visible range near the center of a pane\n RadialAxis_pick(this.isCircular ?\n length :\n (translatedVal < 0 ? 0 : translatedVal), this.center[2] / 2) - this.offset);\n }\n /**\n * Find the position for the axis title, by default inside the gauge.\n */\n function getTitlePosition() {\n var center = this.center,\n chart = this.chart,\n titleOptions = this.options.title;\n return {\n x: chart.plotLeft + center[0] + (titleOptions.x || 0),\n y: (chart.plotTop +\n center[1] -\n ({\n high: 0.5,\n middle: 0.25,\n low: 0\n }[titleOptions.align] *\n center[2]) +\n (titleOptions.y || 0))\n };\n }\n /**\n * Modify radial axis.\n * @private\n *\n * @param {Highcharts.Axis} radialAxis\n * Radial axis to modify.\n */\n function modify(axis) {\n axis.beforeSetTickPositions = beforeSetTickPositions;\n axis.createLabelCollector = createLabelCollector;\n axis.getCrosshairPosition = getCrosshairPosition;\n axis.getLinePath = getLinePath;\n axis.getOffset = getOffset;\n axis.getPlotBandPath = getPlotBandPath;\n axis.getPlotLinePath = getPlotLinePath;\n axis.getPosition = getPosition;\n axis.getTitlePosition = getTitlePosition;\n axis.postTranslate = postTranslate;\n axis.setAxisSize = setAxisSize;\n axis.setAxisTranslation = setAxisTranslation;\n axis.setOptions = setOptions;\n }\n /**\n * Modify radial axis as hidden.\n * @private\n *\n * @param {Highcharts.Axis} radialAxis\n * Radial axis to modify.\n */\n function modifyAsHidden(radialAxis) {\n radialAxis.isHidden = true;\n radialAxis.createLabelCollector = createLabelCollectorHidden;\n radialAxis.getOffset = RadialAxis_noop;\n radialAxis.redraw = renderHidden;\n radialAxis.render = renderHidden;\n radialAxis.setScale = RadialAxis_noop;\n radialAxis.setCategories = RadialAxis_noop;\n radialAxis.setTitle = RadialAxis_noop;\n }\n /**\n * Finalize modification of axis instance with radial logic.\n */\n function onAxisAfterInit() {\n var chart = this.chart,\n options = this.options,\n isHidden = chart.angular && this.isXAxis,\n pane = this.pane,\n paneOptions = pane && pane.options;\n if (!isHidden && pane && (chart.angular || chart.polar)) {\n var fullCircle = Math.PI * 2, \n // Start and end angle options are given in degrees relative to\n // top, while internal computations are in radians relative to\n // right (like SVG).\n start = (RadialAxis_pick(paneOptions.startAngle, 0) - 90) * Math.PI / 180, end = (RadialAxis_pick(paneOptions.endAngle, RadialAxis_pick(paneOptions.startAngle, 0) + 360) - 90) * Math.PI / 180;\n // Y axis in polar charts\n this.angleRad = (options.angle || 0) * Math.PI / 180;\n // Gauges\n this.startAngleRad = start;\n this.endAngleRad = end;\n this.offset = options.offset || 0;\n // Normalize Start and End to <0, 2*PI> range\n // (in degrees: <0,360>)\n var normalizedStart = (start % fullCircle + fullCircle) %\n fullCircle,\n normalizedEnd = (end % fullCircle + fullCircle) % fullCircle;\n // Move normalized angles to <-PI, PI> range (<-180, 180>)\n // to match values returned by Math.atan2()\n if (normalizedStart > Math.PI) {\n normalizedStart -= fullCircle;\n }\n if (normalizedEnd > Math.PI) {\n normalizedEnd -= fullCircle;\n }\n this.normalizedStartAngleRad = normalizedStart;\n this.normalizedEndAngleRad = normalizedEnd;\n }\n }\n /**\n * Wrap auto label align to avoid setting axis-wide rotation on radial axes.\n * (#4920)\n */\n function onAxisAutoLabelAlign(e) {\n if (this.isRadial) {\n e.align = void 0;\n e.preventDefault();\n }\n }\n /**\n * Remove label collector function on axis remove/update.\n */\n function onAxisDestroy() {\n if (this.chart &&\n this.chart.labelCollectors) {\n var index = (this.labelCollector ?\n this.chart.labelCollectors.indexOf(this.labelCollector) :\n -1);\n if (index >= 0) {\n this.chart.labelCollectors.splice(index, 1);\n }\n }\n }\n /**\n * Modify axis instance with radial logic before common axis init.\n */\n function onAxisInit(e) {\n var chart = this.chart,\n angular = chart.angular,\n polar = chart.polar,\n isX = this.isXAxis,\n coll = this.coll,\n isHidden = angular && isX,\n paneIndex = e.userOptions.pane || 0,\n pane = this.pane = chart.pane && chart.pane[paneIndex];\n var isCircular;\n // Prevent changes for colorAxis\n if (coll === 'colorAxis') {\n this.isRadial = false;\n return;\n }\n // Before prototype.init\n if (angular) {\n if (isHidden) {\n modifyAsHidden(this);\n }\n else {\n modify(this);\n }\n isCircular = !isX;\n }\n else if (polar) {\n modify(this);\n // Check which axis is circular\n isCircular = this.horiz;\n }\n // Disable certain features on angular and polar axes\n if (angular || polar) {\n this.isRadial = true;\n if (!this.labelCollector) {\n this.labelCollector = this.createLabelCollector();\n }\n if (this.labelCollector) {\n // Prevent overlapping axis labels (#9761)\n chart.labelCollectors.push(this.labelCollector);\n }\n }\n else {\n this.isRadial = false;\n }\n // A pointer back to this axis to borrow geometry\n if (pane && isCircular) {\n pane.axis = this;\n }\n this.isCircular = isCircular;\n }\n /**\n * Prepare axis translation.\n */\n function onAxisInitialAxisTranslation() {\n if (this.isRadial) {\n this.beforeSetTickPositions();\n }\n }\n /**\n * Find the center position of the label based on the distance option.\n */\n function onTickAfterGetLabelPosition(e) {\n var label = this.label;\n if (!label) {\n return;\n }\n var axis = this.axis, labelBBox = label.getBBox(), labelOptions = axis.options.labels, angle = ((axis.translate(this.pos) + axis.startAngleRad +\n Math.PI / 2) / Math.PI * 180) % 360, correctAngle = Math.round(angle), labelYPosCorrection = !RadialAxis_defined(labelOptions.y) ? -labelBBox.height * 0.3 : 0;\n var optionsY = labelOptions.y, ret, centerSlot = 20, // 20 degrees to each side at the top and bottom\n align = labelOptions.align, labelDir = 'end', // Direction of the label 'start' or 'end'\n reducedAngle1 = correctAngle < 0 ?\n correctAngle + 360 : correctAngle, reducedAngle2 = reducedAngle1, translateY = 0, translateX = 0;\n if (axis.isRadial) { // Both X and Y axes in a polar chart\n ret = axis.getPosition(this.pos, (axis.center[2] / 2) +\n RadialAxis_relativeLength(RadialAxis_pick(labelOptions.distance, -25), axis.center[2] / 2, -axis.center[2] / 2));\n // Automatically rotated\n if (labelOptions.rotation === 'auto') {\n label.attr({\n rotation: angle\n });\n // Vertically centered\n }\n else if (!RadialAxis_defined(optionsY)) {\n optionsY = (axis.chart.renderer.fontMetrics(label).b -\n labelBBox.height / 2);\n }\n // Automatic alignment\n if (!RadialAxis_defined(align)) {\n if (axis.isCircular) { // Y axis\n if (labelBBox.width >\n axis.len * axis.tickInterval / (axis.max - axis.min)) { // #3506\n centerSlot = 0;\n }\n if (angle > centerSlot && angle < 180 - centerSlot) {\n align = 'left'; // Right hemisphere\n }\n else if (angle > 180 + centerSlot &&\n angle < 360 - centerSlot) {\n align = 'right'; // Left hemisphere\n }\n else {\n align = 'center'; // Top or bottom\n }\n }\n else {\n align = 'center';\n }\n label.attr({\n align: align\n });\n }\n // Auto alignment for solid-gauges with two labels (#10635)\n if (align === 'auto' &&\n axis.tickPositions.length === 2 &&\n axis.isCircular) {\n // Angles reduced to 0 - 90 or 180 - 270\n if (reducedAngle1 > 90 && reducedAngle1 < 180) {\n reducedAngle1 = 180 - reducedAngle1;\n }\n else if (reducedAngle1 > 270 && reducedAngle1 <= 360) {\n reducedAngle1 = 540 - reducedAngle1;\n }\n // Angles reduced to 0 - 180\n if (reducedAngle2 > 180 && reducedAngle2 <= 360) {\n reducedAngle2 = 360 - reducedAngle2;\n }\n if ((axis.pane.options.startAngle === correctAngle) ||\n (axis.pane.options.startAngle === correctAngle + 360) ||\n (axis.pane.options.startAngle === correctAngle - 360)) {\n labelDir = 'start';\n }\n if ((correctAngle >= -90 && correctAngle <= 90) ||\n (correctAngle >= -360 && correctAngle <= -270) ||\n (correctAngle >= 270 && correctAngle <= 360)) {\n align = (labelDir === 'start') ? 'right' : 'left';\n }\n else {\n align = (labelDir === 'start') ? 'left' : 'right';\n }\n // For angles between (90 + n * 180) +- 20\n if (reducedAngle2 > 70 && reducedAngle2 < 110) {\n align = 'center';\n }\n // Auto Y translation\n if (reducedAngle1 < 15 ||\n (reducedAngle1 >= 180 && reducedAngle1 < 195)) {\n translateY = labelBBox.height * 0.3;\n }\n else if (reducedAngle1 >= 15 && reducedAngle1 <= 35) {\n translateY = labelDir === 'start' ?\n 0 : labelBBox.height * 0.75;\n }\n else if (reducedAngle1 >= 195 && reducedAngle1 <= 215) {\n translateY = labelDir === 'start' ?\n labelBBox.height * 0.75 : 0;\n }\n else if (reducedAngle1 > 35 && reducedAngle1 <= 90) {\n translateY = labelDir === 'start' ?\n -labelBBox.height * 0.25 : labelBBox.height;\n }\n else if (reducedAngle1 > 215 && reducedAngle1 <= 270) {\n translateY = labelDir === 'start' ?\n labelBBox.height : -labelBBox.height * 0.25;\n }\n // Auto X translation\n if (reducedAngle2 < 15) {\n translateX = labelDir === 'start' ?\n -labelBBox.height * 0.15 : labelBBox.height * 0.15;\n }\n else if (reducedAngle2 > 165 && reducedAngle2 <= 180) {\n translateX = labelDir === 'start' ?\n labelBBox.height * 0.15 : -labelBBox.height * 0.15;\n }\n label.attr({ align: align });\n label.translate(translateX, translateY + labelYPosCorrection);\n }\n e.pos.x = ret.x + (labelOptions.x || 0);\n e.pos.y = ret.y + (optionsY || 0);\n }\n }\n /**\n * Add special cases within the Tick class' methods for radial axes.\n */\n function onTickAfterGetPosition(e) {\n if (this.axis.getPosition) {\n RadialAxis_extend(e.pos, this.axis.getPosition(this.pos));\n }\n }\n /**\n * Update default options for radial axes from setOptions method.\n */\n function onGlobalSetOptions(_a) {\n var options = _a.options;\n if (options.xAxis) {\n RadialAxis_merge(true, RadialAxis.radialDefaultOptions.circular, options.xAxis);\n }\n if (options.yAxis) {\n RadialAxis_merge(true, RadialAxis.radialDefaultOptions.radialGauge, options.yAxis);\n }\n }\n /**\n * Translate from intermediate plotX (angle), plotY (axis.len - radius)\n * to final chart coordinates.\n *\n * @private\n * @param {number} angle\n * Translation angle.\n * @param {number} radius\n * Translation radius.\n */\n function postTranslate(angle, radius) {\n var chart = this.chart,\n center = this.center;\n angle = this.startAngleRad + angle;\n return {\n x: chart.plotLeft + center[0] + Math.cos(angle) * radius,\n y: chart.plotTop + center[1] + Math.sin(angle) * radius\n };\n }\n /**\n * Prevent setting Y axis dirty.\n */\n function renderHidden() {\n this.isDirty = false;\n }\n /**\n * Override the setAxisSize method to use the arc's circumference as\n * length. This allows tickPixelInterval to apply to pixel lengths along\n * the perimeter.\n * @private\n */\n function setAxisSize() {\n var axisProto = this.constructor.prototype;\n var center,\n start;\n axisProto.setAxisSize.call(this);\n if (this.isRadial) {\n // Set the center array\n this.pane.updateCenter(this);\n // In case when the innerSize is set in a polar chart, the axis'\n // center cannot be a reference to pane's center\n center = this.center = this.pane.center.slice();\n // The sector is used in Axis.translate to compute the\n // translation of reversed axis points (#2570)\n if (this.isCircular) {\n this.sector = this.endAngleRad - this.startAngleRad;\n }\n else {\n // When the pane's startAngle or the axis' angle is set then\n // new x and y values for vertical axis' center must be\n // calculated\n start = this.postTranslate(this.angleRad, center[3] / 2);\n center[0] = start.x - this.chart.plotLeft;\n center[1] = start.y - this.chart.plotTop;\n }\n // Axis len is used to lay out the ticks\n this.len = this.width = this.height =\n (center[2] - center[3]) * RadialAxis_pick(this.sector, 1) / 2;\n }\n }\n /**\n * Override setAxisTranslation by setting the translation to the\n * difference in rotation. This allows the translate method to return\n * angle for any given value.\n *\n * @private\n */\n function setAxisTranslation() {\n var axisProto = this.constructor.prototype;\n // Call uber method\n axisProto.setAxisTranslation.call(this);\n // Set transA and minPixelPadding\n if (this.center) { // It's not defined the first time\n if (this.isCircular) {\n this.transA = (this.endAngleRad - this.startAngleRad) /\n ((this.max - this.min) || 1);\n }\n else {\n // The transA here is the length of the axis, so in case\n // of inner radius, the length must be decreased by it\n this.transA = ((this.center[2] - this.center[3]) / 2) /\n ((this.max - this.min) || 1);\n }\n if (this.isXAxis) {\n this.minPixelPadding = this.transA * this.minPointOffset;\n }\n else {\n // This is a workaround for regression #2593, but categories\n // still don't position correctly.\n this.minPixelPadding = 0;\n }\n }\n }\n /**\n * Merge and set options.\n */\n function setOptions(userOptions) {\n var coll = this.coll;\n var _a = this.chart,\n angular = _a.angular,\n inverted = _a.inverted,\n polar = _a.polar;\n var defaultPolarOptions = {};\n if (angular) {\n if (!this.isXAxis) {\n defaultPolarOptions = RadialAxis_merge(defaultOptions.yAxis, RadialAxis.radialDefaultOptions.radialGauge);\n }\n }\n else if (polar) {\n defaultPolarOptions = this.horiz ?\n RadialAxis_merge(defaultOptions.xAxis, RadialAxis.radialDefaultOptions.circular) :\n RadialAxis_merge(coll === 'xAxis' ?\n defaultOptions.xAxis :\n defaultOptions.yAxis, RadialAxis.radialDefaultOptions.radial);\n }\n if (inverted && coll === 'yAxis') {\n defaultPolarOptions.stackLabels = isObject(defaultOptions.yAxis, true) ? defaultOptions.yAxis.stackLabels : {};\n defaultPolarOptions.reversedStacks = true;\n }\n var options = this.options = RadialAxis_merge(defaultPolarOptions,\n userOptions);\n // Make sure the plotBands array is instantiated for each Axis\n // (#2649)\n if (!options.plotBands) {\n options.plotBands = [];\n }\n RadialAxis_fireEvent(this, 'afterSetOptions');\n }\n /**\n * Wrap the getMarkPath function to return the path of the radial marker.\n */\n function wrapTickGetMarkPath(proceed, x, y, tickLength, tickWidth, horiz, renderer) {\n var axis = this.axis;\n var endPoint,\n ret;\n if (axis.isRadial) {\n endPoint = axis.getPosition(this.pos, axis.center[2] / 2 + tickLength);\n ret = [\n 'M',\n x,\n y,\n 'L',\n endPoint.x,\n endPoint.y\n ];\n }\n else {\n ret = proceed.call(this, x, y, tickLength, tickWidth, horiz, renderer);\n }\n return ret;\n }\n /* eslint-enable valid-jsdoc */\n})(RadialAxis || (RadialAxis = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Axis_RadialAxis = (RadialAxis);\n\n;// ./code/es5/es-modules/Series/PolarComposition.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar PolarComposition_spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n\nvar PolarComposition_animObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).animObject;\n\nvar PolarComposition_composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\n\n\n\nvar PolarComposition_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, PolarComposition_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, find = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).find, PolarComposition_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, PolarComposition_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, PolarComposition_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, PolarComposition_pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique, PolarComposition_relativeLength = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).relativeLength, PolarComposition_splat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).splat, PolarComposition_uniqueKey = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).uniqueKey, PolarComposition_wrap = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).wrap;\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction clipCircle(renderer, x, y, r, innerR) {\n var id = PolarComposition_uniqueKey(),\n clipPath = renderer.createElement('clipPath').attr({\n id: id\n }).add(renderer.defs),\n wrapper = innerR ?\n renderer.arc(x,\n y,\n r,\n innerR, 0, 2 * Math.PI).add(clipPath) :\n renderer.circle(x,\n y,\n r).add(clipPath);\n wrapper.id = id;\n wrapper.clipPath = clipPath;\n return wrapper;\n}\n/**\n * Find correct align and vertical align based on an angle in polar chart\n * @private\n */\nfunction findAlignments(angle, options) {\n var align,\n verticalAlign;\n if (options.align === null) {\n if (angle > 20 && angle < 160) {\n align = 'left'; // Right hemisphere\n }\n else if (angle > 200 && angle < 340) {\n align = 'right'; // Left hemisphere\n }\n else {\n align = 'center'; // Top or bottom\n }\n options.align = align;\n }\n if (options.verticalAlign === null) {\n if (angle < 45 || angle > 315) {\n verticalAlign = 'bottom'; // Top part\n }\n else if (angle > 135 && angle < 225) {\n verticalAlign = 'top'; // Bottom part\n }\n else {\n verticalAlign = 'middle'; // Left or right\n }\n options.verticalAlign = verticalAlign;\n }\n return options;\n}\n/**\n * #6212 Calculate connectors for spline series in polar chart.\n * @private\n * @param {boolean} calculateNeighbours\n * Check if connectors should be calculated for neighbour points as\n * well allows short recurrence\n */\nfunction getConnectors(segment, index, calculateNeighbours, connectEnds) {\n var smoothing = 1.5,\n denom = smoothing + 1,\n addedNumber = connectEnds ? 1 : 0;\n var i,\n leftContX,\n leftContY,\n rightContX,\n rightContY,\n jointAngle;\n // Calculate final index of points depending on the initial index value.\n // Because of calculating neighbours, index may be outside segment\n // array.\n if (index >= 0 && index <= segment.length - 1) {\n i = index;\n }\n else if (index < 0) {\n i = segment.length - 1 + index;\n }\n else {\n i = 0;\n }\n // 1 means control points midway between points, 2 means 1/3 from\n // the point, 3 is 1/4 etc;\n var prevPointInd = ((i - 1 < 0) ? segment.length - (1 + addedNumber) : i - 1),\n nextPointInd = (i + 1 > segment.length - 1) ? addedNumber : i + 1,\n previousPoint = segment[prevPointInd],\n nextPoint = segment[nextPointInd],\n previousX = previousPoint.plotX,\n previousY = previousPoint.plotY,\n nextX = nextPoint.plotX,\n nextY = nextPoint.plotY,\n plotX = segment[i].plotX, // Actual point\n plotY = segment[i].plotY;\n leftContX = (smoothing * plotX + previousX) / denom;\n leftContY = (smoothing * plotY + previousY) / denom;\n rightContX = (smoothing * plotX + nextX) / denom;\n rightContY = (smoothing * plotY + nextY) / denom;\n // Distance left control point\n var dLControlPoint = Math.sqrt(Math.pow(leftContX - plotX, 2) + Math.pow(leftContY - plotY, 2)),\n dRControlPoint = Math.sqrt(Math.pow(rightContX - plotX, 2) + Math.pow(rightContY - plotY, 2)),\n leftContAngle = Math.atan2(leftContY - plotY,\n leftContX - plotX),\n rightContAngle = Math.atan2(rightContY - plotY,\n rightContX - plotX);\n jointAngle = (Math.PI / 2) + ((leftContAngle + rightContAngle) / 2);\n // Ensure the right direction, jointAngle should be in the same quadrant\n // as leftContAngle\n if (Math.abs(leftContAngle - jointAngle) > Math.PI / 2) {\n jointAngle -= Math.PI;\n }\n // Find the corrected control points for a spline straight through the\n // point\n leftContX = plotX + Math.cos(jointAngle) * dLControlPoint;\n leftContY = plotY + Math.sin(jointAngle) * dLControlPoint;\n rightContX = plotX + Math.cos(Math.PI + jointAngle) * dRControlPoint;\n rightContY = plotY + Math.sin(Math.PI + jointAngle) * dRControlPoint;\n // Push current point's connectors into returned object\n var ret = {\n rightContX: rightContX,\n rightContY: rightContY,\n leftContX: leftContX,\n leftContY: leftContY,\n plotX: plotX,\n plotY: plotY\n };\n // Calculate connectors for previous and next point and push them inside\n // returned object\n if (calculateNeighbours) {\n ret.prevPointCont = getConnectors(segment, prevPointInd, false, connectEnds);\n }\n return ret;\n}\n/**\n *\n */\nfunction onChartAfterDrawChartBox() {\n (this.pane || []).forEach(function (pane) {\n pane.render();\n });\n}\n/**\n * If polar has polygonal grid lines, force start and endOnTick on radial axis\n * @private\n */\nfunction onChartAfterInit(event) {\n var xAxis = event.args[0].xAxis,\n yAxis = event.args[0].yAxis,\n chart = event.args[0].chart;\n if (xAxis && yAxis) {\n if (yAxis.gridLineInterpolation === 'polygon') {\n xAxis.startOnTick = true;\n xAxis.endOnTick = true;\n }\n else if (xAxis.gridLineInterpolation === 'polygon' &&\n chart.inverted) {\n yAxis.startOnTick = true;\n yAxis.endOnTick = true;\n }\n }\n}\n/**\n *\n */\nfunction onChartCreateAxes() {\n var _this = this;\n if (!this.pane) {\n this.pane = [];\n }\n this.options.pane = PolarComposition_splat(this.options.pane || {});\n this.options.pane.forEach(function (paneOptions) {\n new Pane_Pane(// eslint-disable-line no-new\n paneOptions, _this);\n }, this);\n}\n/**\n * Get selection dimensions\n * @private\n */\nfunction onPointerGetSelectionBox(event) {\n var marker = event.args.marker,\n xAxis = this.chart.xAxis[0],\n yAxis = this.chart.yAxis[0],\n inverted = this.chart.inverted,\n radialAxis = inverted ? yAxis : xAxis,\n linearAxis = inverted ? xAxis : yAxis;\n if (this.chart.polar) {\n event.preventDefault();\n var start = (marker.attr ? marker.attr('start') : marker.start) - radialAxis.startAngleRad, r = (marker.attr ? marker.attr('r') : marker.r), end = (marker.attr ? marker.attr('end') : marker.end) - radialAxis.startAngleRad, innerR = (marker.attr ? marker.attr('innerR') : marker.innerR);\n event.result.x = start + radialAxis.pos;\n event.result.width = end - start;\n // `innerR` goes from pane's center but `toValue` computes values from\n // top\n event.result.y = linearAxis.len + linearAxis.pos - r;\n event.result.height = r - innerR;\n }\n}\n/**\n * Get attrs for Polar selection marker\n * @private\n */\nfunction onPointerGetSelectionMarkerAttrs(event) {\n var chart = this.chart;\n if (chart.polar && chart.hoverPane && chart.hoverPane.axis) {\n event.preventDefault();\n var center = chart.hoverPane.center,\n mouseDownX = chart.mouseDownX || 0,\n mouseDownY = chart.mouseDownY || 0,\n chartY = event.args.chartY,\n chartX = event.args.chartX,\n fullCircle = Math.PI * 2,\n startAngleRad = chart.hoverPane.axis.startAngleRad,\n endAngleRad = chart.hoverPane.axis.endAngleRad,\n linearAxis = chart.inverted ? chart.xAxis[0] : chart.yAxis[0],\n attrs = {};\n var shapeType = 'arc';\n attrs.x = center[0] + chart.plotLeft;\n attrs.y = center[1] + chart.plotTop;\n // Adjust the width of the selection marker\n if (this.zoomHor) {\n var paneRadRange = startAngleRad > 0 ?\n endAngleRad - startAngleRad :\n Math.abs(startAngleRad) + Math.abs(endAngleRad);\n var startAngle = Math.atan2(mouseDownY - chart.plotTop - center[1],\n mouseDownX - chart.plotLeft - center[0]) - startAngleRad,\n endAngle = Math.atan2(chartY - chart.plotTop - center[1],\n chartX - chart.plotLeft - center[0]) - startAngleRad;\n attrs.r = center[2] / 2;\n attrs.innerR = center[3] / 2;\n if (startAngle <= 0) {\n startAngle += fullCircle;\n }\n if (endAngle <= 0) {\n endAngle += fullCircle;\n }\n if (endAngle < startAngle) {\n // Swapping angles\n endAngle = [startAngle, startAngle = endAngle][0];\n }\n // If pane is not a full circle we need to let users zoom to the min\n // We do this by swapping angles after pointer crosses\n // middle angle (swapAngle) of the missing slice of the pane\n if (paneRadRange < fullCircle) {\n var swapAngle = endAngleRad + (fullCircle - paneRadRange) / 2;\n if (startAngleRad + endAngle > swapAngle) {\n endAngle = startAngle;\n startAngle = startAngleRad <= 0 ? startAngleRad : 0;\n }\n }\n var start = attrs.start =\n Math.max(startAngle + startAngleRad,\n startAngleRad),\n end = attrs.end =\n Math.min(endAngle + startAngleRad,\n endAngleRad);\n // Adjust the selection shape for polygon grid lines\n if (linearAxis.options.gridLineInterpolation === 'polygon') {\n var radialAxis = chart.hoverPane.axis,\n min = start - radialAxis.startAngleRad + radialAxis.pos,\n max = end - start;\n var path = linearAxis.getPlotLinePath({\n value: linearAxis.max\n }),\n pathStart = radialAxis.toValue(min),\n pathEnd = radialAxis.toValue(min + max);\n if (pathStart < radialAxis.getExtremes().min) {\n var _a = radialAxis.getExtremes(),\n min_1 = _a.min,\n max_1 = _a.max;\n pathStart = max_1 - (min_1 - pathStart);\n }\n if (pathEnd < radialAxis.getExtremes().min) {\n var _b = radialAxis.getExtremes(),\n min_2 = _b.min,\n max_2 = _b.max;\n pathEnd = max_2 - (min_2 - pathEnd);\n }\n if (pathEnd < pathStart) {\n // Swapping angles\n pathEnd = [pathStart, pathStart = pathEnd][0];\n }\n // Get trimmed path\n path = trimPath(path, pathStart, pathEnd, radialAxis);\n // Add center to the path\n path.push([\n 'L', center[0] + chart.plotLeft,\n chart.plotTop + center[1]\n ]);\n attrs.d = path;\n shapeType = 'path';\n }\n }\n // Adjust the height of the selection marker\n if (this.zoomVert) {\n var linearAxis_1 = chart.inverted ? chart.xAxis[0] : chart.yAxis[0];\n var innerR = Math.sqrt(Math.pow(mouseDownX - chart.plotLeft - center[0], 2) +\n Math.pow(mouseDownY - chart.plotTop - center[1], 2)),\n r = Math.sqrt(Math.pow(chartX - chart.plotLeft - center[0], 2) +\n Math.pow(chartY - chart.plotTop - center[1], 2));\n if (r < innerR) {\n // Swapping angles\n innerR = [r, r = innerR][0];\n }\n if (r > center[2] / 2) {\n r = center[2] / 2;\n }\n if (innerR < center[3] / 2) {\n innerR = center[3] / 2;\n }\n if (!this.zoomHor) {\n attrs.start = startAngleRad;\n attrs.end = endAngleRad;\n }\n attrs.r = r;\n attrs.innerR = innerR;\n if (linearAxis_1.options.gridLineInterpolation === 'polygon') {\n var end = linearAxis_1.toValue(linearAxis_1.len + linearAxis_1.pos - innerR),\n start = linearAxis_1.toValue(linearAxis_1.len + linearAxis_1.pos - r),\n path = linearAxis_1.getPlotLinePath({\n value: start\n }).concat(linearAxis_1.getPlotLinePath({\n value: end,\n reverse: true\n }));\n attrs.d = path;\n shapeType = 'path';\n }\n }\n if (this.zoomHor &&\n this.zoomVert &&\n linearAxis.options.gridLineInterpolation === 'polygon') {\n var radialAxis = chart.hoverPane.axis,\n start = attrs.start || 0,\n end = attrs.end || 0,\n min = start - radialAxis.startAngleRad + radialAxis.pos,\n max = end - start,\n pathStart = radialAxis.toValue(min),\n pathEnd = radialAxis.toValue(min + max);\n // Trim path\n if (attrs.d instanceof Array) {\n var innerPath = attrs.d.slice(0, attrs.d.length / 2), outerPath = attrs.d.slice(attrs.d.length / 2, attrs.d.length);\n outerPath = PolarComposition_spreadArray([], outerPath, true).reverse();\n var radialAxis_1 = chart.hoverPane.axis;\n innerPath = trimPath(innerPath, pathStart, pathEnd, radialAxis_1);\n outerPath = trimPath(outerPath, pathStart, pathEnd, radialAxis_1);\n if (outerPath) {\n (outerPath[0][0]) = 'L';\n }\n outerPath = PolarComposition_spreadArray([], outerPath, true).reverse();\n attrs.d = innerPath.concat(outerPath);\n shapeType = 'path';\n }\n }\n event.attrs = attrs;\n event.shapeType = shapeType;\n }\n}\n/**\n * @private\n */\nfunction onSeriesAfterInit() {\n var chart = this.chart;\n if (chart.polar) {\n this.polar = new PolarAdditions(this);\n // Add flags that identifies radial inverted series\n if (chart.inverted) {\n this.isRadialSeries = true;\n if (this.is('column')) {\n this.isRadialBar = true;\n }\n }\n }\n}\n/**\n * Extend translate. The plotX and plotY values are computed as if the polar\n * chart were a cartesian plane, where plotX denotes the angle in radians\n * and (yAxis.len - plotY) is the pixel distance from center.\n * @private\n */\nfunction onSeriesAfterTranslate() {\n if (this.chart.polar && this.xAxis) {\n var series = this,\n xAxis = series.xAxis,\n yAxis = series.yAxis,\n chart_1 = series.chart;\n // Prepare k-d-tree handling. It searches by angle (clientX) in\n // case of shared tooltip, and by two dimensional distance in case\n // of non-shared.\n series.kdByAngle = chart_1.tooltip && chart_1.tooltip.shared;\n if (series.kdByAngle || chart_1.inverted) {\n series.searchPoint = searchPointByAngleOrInverted;\n }\n else {\n series.options.findNearestPointBy = 'xy';\n }\n var points = series.points;\n var i = points.length;\n while (i--) {\n // Translate plotX, plotY from angle and radius to true plot\n // coordinates\n if (!series.is('column') && !series.is('columnrange')) {\n series.polar.toXY(points[i]);\n }\n // Treat points below Y axis min as null (#10082)\n if (!chart_1.hasParallelCoordinates &&\n !series.yAxis.reversed) {\n if (PolarComposition_pick(points[i].y, Number.MIN_VALUE) < yAxis.min ||\n points[i].x < xAxis.min ||\n points[i].x > xAxis.max) {\n // Destroy markers\n points[i].isNull = true;\n // Destroy column's graphic\n points[i].plotY = NaN;\n }\n else {\n // Restore isNull flag\n points[i].isNull =\n points[i].isValid && !points[i].isValid();\n }\n }\n }\n // Perform clip after render\n if (!this.hasClipCircleSetter) {\n this.hasClipCircleSetter = !!series.eventsToUnbind.push(PolarComposition_addEvent(series, 'afterRender', function () {\n var circ;\n if (chart_1.polar && this.options.clip !== false) {\n // For clipping purposes there is a need for\n // coordinates from the absolute center\n circ = this.yAxis.pane.center;\n if (!this.clipCircle) {\n this.clipCircle = clipCircle(chart_1.renderer, circ[0], circ[1], circ[2] / 2, circ[3] / 2);\n }\n else {\n this.clipCircle.animate({\n x: circ[0],\n y: circ[1],\n r: circ[2] / 2,\n innerR: circ[3] / 2\n });\n }\n this.group.clip(this.clipCircle);\n this.setClip = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n }\n }));\n }\n }\n}\n/**\n * Search a k-d tree by the point angle (used for shared tooltips in polar) or\n * the inverted point.\n * charts\n * @private\n */\nfunction searchPointByAngleOrInverted(e) {\n var series = this,\n chart = series.chart,\n xAxis = series.xAxis,\n yAxis = series.yAxis,\n center = xAxis.pane && xAxis.pane.center,\n plotX = e.chartX - (center && center[0] || 0) - chart.plotLeft,\n plotY = e.chartY - (center && center[1] || 0) - chart.plotTop;\n var searchKDTreePoint = chart.inverted ? {\n clientX: e.chartX - yAxis.pos,\n plotY: e.chartY - xAxis.pos\n } : {\n clientX: 180 + (Math.atan2(plotX,\n plotY) * (-180 / Math.PI))\n };\n return series.searchKDTree(searchKDTreePoint);\n}\n/**\n * Trim polygonal path\n * @private\n */\nfunction trimPath(path, start, end, radialAxis) {\n var tickInterval = radialAxis.tickInterval,\n ticks = radialAxis.tickPositions;\n var lastTick = find(ticks,\n function (tick) { return tick >= end; }),\n firstTick = find(PolarComposition_spreadArray([],\n ticks,\n true).reverse(),\n function (tick) { return tick <= start; });\n if (!PolarComposition_defined(lastTick)) {\n lastTick = ticks[ticks.length - 1];\n }\n if (!PolarComposition_defined(firstTick)) {\n firstTick = ticks[0];\n lastTick += tickInterval;\n path[0][0] = 'L';\n // To do: figure out why -3 or -2\n path.unshift(path[path.length - 3]);\n }\n path = path.slice(ticks.indexOf(firstTick), ticks.indexOf(lastTick) + 1);\n path[0][0] = 'M';\n return path;\n}\n/**\n * Extend chart.get to also search in panes. Used internally in\n * responsiveness and chart.update.\n * @private\n */\nfunction wrapChartGet(proceed, id) {\n return find(this.pane || [], function (pane) { return (\n // @todo remove id or define id type:\n pane.options.id === id); }) || proceed.call(this, id);\n}\n/**\n * Align column data labels outside the columns. #1199.\n * @private\n */\nfunction wrapColumnSeriesAlignDataLabel(proceed, point, dataLabel, options, alignTo, isNew) {\n var chart = this.chart,\n inside = PolarComposition_pick(options.inside, !!this.options.stacking);\n var angle,\n shapeArgs,\n labelPos;\n if (chart.polar) {\n angle = point.rectPlotX / Math.PI * 180;\n if (!chart.inverted) {\n // Align nicely outside the perimeter of the columns\n options = findAlignments(angle, options);\n }\n else { // Required corrections for data labels of inverted bars\n // The plotX and plotY are correctly set therefore they\n // don't need to be swapped (inverted argument is false)\n this.forceDL = chart.isInsidePlot(point.plotX, point.plotY);\n // Checks if labels should be positioned inside\n if (inside && point.shapeArgs) {\n shapeArgs = point.shapeArgs;\n // Calculates pixel positions for a data label to be\n // inside\n labelPos =\n this.yAxis.postTranslate(\n // Angle\n ((shapeArgs.start || 0) + (shapeArgs.end || 0)) / 2 -\n this\n .xAxis.startAngleRad, \n // Radius\n point.barX +\n point.pointWidth / 2);\n alignTo = PolarComposition_merge(alignTo, {\n x: labelPos.x - chart.plotLeft,\n y: labelPos.y - chart.plotTop\n });\n }\n else if (point.tooltipPos) {\n alignTo = PolarComposition_merge(alignTo, {\n x: point.tooltipPos[0],\n y: point.tooltipPos[1]\n });\n }\n options.align = PolarComposition_pick(options.align, 'center');\n options.verticalAlign =\n PolarComposition_pick(options.verticalAlign, 'middle');\n }\n highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default().prototype.alignDataLabel.call(this, point, dataLabel, options, alignTo, isNew);\n // Hide label of a point (only inverted) that is outside the\n // visible y range\n if (this.isRadialBar && point.shapeArgs &&\n point.shapeArgs.start === point.shapeArgs.end) {\n dataLabel.hide();\n }\n else {\n dataLabel.show();\n }\n }\n else {\n proceed.call(this, point, dataLabel, options, alignTo, isNew);\n }\n}\n/**\n * Extend the column prototype's translate method\n * @private\n */\nfunction onAfterColumnTranslate() {\n var series = this,\n options = series.options,\n stacking = options.stacking,\n chart = series.chart,\n xAxis = series.xAxis,\n yAxis = series.yAxis,\n reversed = yAxis.reversed,\n center = yAxis.center,\n startAngleRad = xAxis.startAngleRad,\n endAngleRad = xAxis.endAngleRad,\n visibleRange = endAngleRad - startAngleRad;\n var threshold = options.threshold,\n thresholdAngleRad = 0,\n points,\n point,\n i,\n yMin,\n yMax,\n start = 0,\n end = 0,\n tooltipPos,\n pointX,\n pointY,\n stackValues,\n stack,\n barX,\n innerR,\n r;\n // Postprocess plot coordinates\n if (xAxis.isRadial) {\n points = series.points;\n i = points.length;\n yMin = yAxis.translate(yAxis.min);\n yMax = yAxis.translate(yAxis.max);\n threshold = options.threshold || 0;\n if (chart.inverted) {\n // Finding a correct threshold\n if (PolarComposition_isNumber(threshold)) {\n thresholdAngleRad = yAxis.translate(threshold);\n // Checks if threshold is outside the visible range\n if (PolarComposition_defined(thresholdAngleRad)) {\n if (thresholdAngleRad < 0) {\n thresholdAngleRad = 0;\n }\n else if (thresholdAngleRad > visibleRange) {\n thresholdAngleRad = visibleRange;\n }\n // Adding start angle offset\n series.translatedThreshold =\n thresholdAngleRad + startAngleRad;\n }\n }\n }\n while (i--) {\n point = points[i];\n barX = point.barX;\n pointX = point.x;\n pointY = point.y;\n point.shapeType = 'arc';\n if (chart.inverted) {\n point.plotY = yAxis.translate(pointY);\n if (stacking && yAxis.stacking) {\n stack = yAxis.stacking.stacks[(pointY < 0 ? '-' : '') +\n series.stackKey];\n if (series.visible && stack && stack[pointX]) {\n if (!point.isNull) {\n stackValues = stack[pointX].points[series.getStackIndicator(void 0, pointX, series.index).key];\n // Translating to radial values\n start = yAxis.translate(stackValues[0]);\n end = yAxis.translate(stackValues[1]);\n // If starting point is beyond the\n // range, set it to 0\n if (PolarComposition_defined(start)) {\n start = highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().clamp(start, 0, visibleRange);\n }\n }\n }\n }\n else {\n // Initial start and end angles for radial bar\n start = thresholdAngleRad;\n end = point.plotY;\n }\n if (start > end) {\n // Swapping start and end\n end = [start, start = end][0];\n }\n // Prevent from rendering point outside the\n // acceptable circular range\n if (!reversed) {\n if (start < yMin) {\n start = yMin;\n }\n else if (end > yMax) {\n end = yMax;\n }\n else if (end < yMin || start > yMax) {\n start = end = 0;\n }\n }\n else {\n if (end > yMin) {\n end = yMin;\n }\n else if (start < yMax) {\n start = yMax;\n }\n else if (start > yMin || end < yMax) {\n start = end = visibleRange;\n }\n }\n if (yAxis.min > yAxis.max) {\n start = end = reversed ? visibleRange : 0;\n }\n start += startAngleRad;\n end += startAngleRad;\n if (center) {\n point.barX = barX += center[3] / 2;\n }\n // In case when radius, inner radius or both are negative, a\n // point is rendered but partially or as a center point\n innerR = Math.max(barX, 0);\n r = Math.max(barX + point.pointWidth, 0);\n // Handle border radius\n var brOption = options.borderRadius,\n brValue = typeof brOption === 'object' ?\n brOption.radius : brOption,\n borderRadius = PolarComposition_relativeLength(brValue || 0,\n r - innerR);\n point.shapeArgs = {\n x: center[0],\n y: center[1],\n r: r,\n innerR: innerR,\n start: start,\n end: end,\n borderRadius: borderRadius\n };\n // Fade out the points if not inside the polar \"plot area\"\n point.opacity = start === end ? 0 : void 0;\n // A correct value for stacked or not fully visible\n // point\n point.plotY = (PolarComposition_defined(series.translatedThreshold) &&\n (start < series.translatedThreshold ? start : end)) -\n startAngleRad;\n // Non-inverted polar columns\n }\n else {\n start = barX + startAngleRad;\n point.shapeArgs = series.polar.arc(point.yBottom, point.plotY, start, start + point.pointWidth);\n // Disallow border radius on polar columns for now. It would\n // take some refactoring to work with the `scope` and the\n // `where` options. Those options would require that only\n // individual corners be rounded, in practice individual calls\n // to applyBorderRadius from the extended `arc` function. That\n // would be a viable solution, though it would not be perfect\n // until we implemented rounding that included the lower points\n // in the stack, like we have for cartesian column.\n point.shapeArgs.borderRadius = 0;\n }\n // Provided a correct coordinates for the tooltip\n series.polar.toXY(point);\n if (chart.inverted) {\n tooltipPos = yAxis.postTranslate(point.rectPlotY, barX + point.pointWidth / 2);\n point.tooltipPos = [\n tooltipPos.x - chart.plotLeft,\n tooltipPos.y - chart.plotTop\n ];\n }\n else {\n point.tooltipPos = [point.plotX, point.plotY];\n }\n if (center) {\n point.ttBelow = point.plotY > center[1];\n }\n }\n }\n}\n/**\n * Extend getSegmentPath to allow connecting ends across 0 to provide a\n * closed circle in line-like series.\n * @private\n */\nfunction wrapLineSeriesGetGraphPath(proceed, points) {\n var series = this;\n var firstValid,\n popLastPoint;\n // Connect the path\n if (this.chart.polar) {\n points = points || this.points;\n // Append first valid point in order to connect the ends\n for (var i = 0; i < points.length; i++) {\n if (!points[i].isNull) {\n firstValid = i;\n break;\n }\n }\n /**\n * Polar charts only. Whether to connect the ends of a line series\n * plot across the extremes.\n *\n * @sample {highcharts} highcharts/plotoptions/line-connectends-false/\n * Do not connect\n *\n * @type {boolean}\n * @since 2.3.0\n * @product highcharts\n * @apioption plotOptions.series.connectEnds\n */\n if (this.options.connectEnds !== false &&\n typeof firstValid !== 'undefined') {\n this.connectEnds = true; // Re-used in splines\n points.splice(points.length, 0, points[firstValid]);\n popLastPoint = true;\n }\n // For area charts, pseudo points are added to the graph, now we\n // need to translate these\n points.forEach(function (point) {\n if (typeof point.polarPlotY === 'undefined') {\n series.polar.toXY(point);\n }\n });\n }\n // Run uber method\n var ret = proceed.apply(this,\n [].slice.call(arguments, 1));\n // #6212 points.splice method is adding points to an array. In case of\n // areaspline getGraphPath method is used two times and in both times\n // points are added to an array. That is why points.pop is used, to get\n // unmodified points.\n if (popLastPoint) {\n points.pop();\n }\n return ret;\n}\n/**\n * Extend getCoordinates to prepare for polar axis values\n * @private\n */\nfunction wrapPointerGetCoordinates(proceed, e) {\n var chart = this.chart;\n var ret = {\n xAxis: [],\n yAxis: []\n };\n if (chart.polar) {\n chart.axes.forEach(function (axis) {\n // Skip colorAxis\n if (axis.coll === 'colorAxis') {\n return;\n }\n var isXAxis = axis.isXAxis,\n center = axis.center,\n x = e.chartX - center[0] - chart.plotLeft,\n y = e.chartY - center[1] - chart.plotTop;\n ret[isXAxis ? 'xAxis' : 'yAxis'].push({\n axis: axis,\n value: axis.translate(isXAxis ?\n Math.PI - Math.atan2(x, y) : // Angle\n // distance from center\n Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)), true)\n });\n });\n }\n else {\n ret = proceed.call(this, e);\n }\n return ret;\n}\n/**\n * Prevent zooming on mobile devices\n * @private\n */\nfunction wrapPointerPinch(proceed, e) {\n if (this.chart.polar) {\n return;\n }\n proceed.call(this, e);\n}\n/**\n * Define the animate method for regular series\n * @private\n */\nfunction wrapSeriesAnimate(proceed, init) {\n var series = this,\n chart = this.chart,\n group = this.group,\n markerGroup = this.markerGroup,\n center = this.xAxis && this.xAxis.center,\n plotLeft = chart.plotLeft,\n plotTop = chart.plotTop;\n var animation = this.options.animation,\n attribs,\n paneInnerR,\n graphic,\n shapeArgs,\n r,\n innerR;\n // Specific animation for polar charts\n if (chart.polar) {\n if (series.isRadialBar) {\n if (!init) {\n // Run the pie animation for radial bars\n series.startAngleRad = PolarComposition_pick(series.translatedThreshold, series.xAxis.startAngleRad);\n highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().seriesTypes.pie.prototype.animate.call(series, init);\n }\n }\n else {\n animation = PolarComposition_animObject(animation);\n // A different animation needed for column like series\n if (series.is('column')) {\n if (!init) {\n paneInnerR = center[3] / 2;\n series.points.forEach(function (point) {\n graphic = point.graphic;\n shapeArgs = point.shapeArgs;\n r = shapeArgs && shapeArgs.r;\n innerR = shapeArgs && shapeArgs.innerR;\n if (graphic && shapeArgs) {\n // Start values\n graphic.attr({\n r: paneInnerR,\n innerR: paneInnerR\n });\n // Animate\n graphic.animate({\n r: r,\n innerR: innerR\n }, series.options.animation);\n }\n });\n }\n }\n else {\n // Initialize the animation\n if (init) {\n // Scale down the group and place it in the center\n attribs = {\n translateX: center[0] + plotLeft,\n translateY: center[1] + plotTop,\n scaleX: 0.001,\n scaleY: 0.001\n };\n group.attr(attribs);\n if (markerGroup) {\n markerGroup.attr(attribs);\n }\n // Run the animation\n }\n else {\n attribs = {\n translateX: plotLeft,\n translateY: plotTop,\n scaleX: 1,\n scaleY: 1\n };\n group.animate(attribs, animation);\n if (markerGroup) {\n markerGroup.animate(attribs, animation);\n }\n }\n }\n }\n // For non-polar charts, revert to the basic animation\n }\n else {\n proceed.call(this, init);\n }\n}\n/**\n * Overridden method for calculating a spline from one point to the next\n * @private\n */\nfunction wrapSplineSeriesGetPointSpline(proceed, segment, point, i) {\n var ret,\n connectors;\n if (this.chart.polar) {\n // `moveTo` or `lineTo`\n if (!i) {\n ret = ['M', point.plotX, point.plotY];\n }\n else { // Curve from last point to this\n connectors = getConnectors(segment, i, true, this.connectEnds);\n var rightContX = connectors.prevPointCont &&\n connectors.prevPointCont.rightContX;\n var rightContY = connectors.prevPointCont &&\n connectors.prevPointCont.rightContY;\n ret = [\n 'C',\n PolarComposition_isNumber(rightContX) ? rightContX : connectors.plotX,\n PolarComposition_isNumber(rightContY) ? rightContY : connectors.plotY,\n PolarComposition_isNumber(connectors.leftContX) ?\n connectors.leftContX :\n connectors.plotX,\n PolarComposition_isNumber(connectors.leftContY) ?\n connectors.leftContY :\n connectors.plotY,\n connectors.plotX,\n connectors.plotY\n ];\n }\n }\n else {\n ret = proceed.call(this, segment, point, i);\n }\n return ret;\n}\n/**\n * Extend the point pos method to calculate point positions for the polar chart.\n * @private\n */\nfunction wrapPointPos(proceed, chartCoordinates, plotY) {\n if (plotY === void 0) { plotY = this.plotY; }\n if (!this.destroyed) {\n var _a = this,\n plotX = _a.plotX,\n series = _a.series,\n chart = series.chart;\n if (chart.polar &&\n PolarComposition_isNumber(plotX) &&\n PolarComposition_isNumber(plotY)) {\n return [\n plotX + (chartCoordinates ? chart.plotLeft : 0),\n plotY + (chartCoordinates ? chart.plotTop : 0)\n ];\n }\n return proceed.call(this, chartCoordinates, plotY);\n }\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * Extensions for polar charts. Additionally, much of the geometry required\n * for polar charts is gathered in RadialAxes.js.\n * @private\n */\nvar PolarAdditions = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function PolarAdditions(series) {\n this.series = series;\n }\n /* *\n *\n * Static Functions\n *\n * */\n PolarAdditions.compose = function (AxisClass, ChartClass, PointerClass, SeriesClass, TickClass, PointClass, AreaSplineRangeSeriesClass, ColumnSeriesClass, LineSeriesClass, SplineSeriesClass) {\n Pane_Pane.compose(ChartClass, PointerClass);\n Axis_RadialAxis.compose(AxisClass, TickClass);\n if (PolarComposition_pushUnique(PolarComposition_composed, 'Polar')) {\n var chartProto = ChartClass.prototype,\n pointProto = PointClass.prototype,\n pointerProto = PointerClass.prototype,\n seriesProto = SeriesClass.prototype;\n PolarComposition_addEvent(ChartClass, 'afterDrawChartBox', onChartAfterDrawChartBox);\n PolarComposition_addEvent(ChartClass, 'createAxes', onChartCreateAxes);\n PolarComposition_addEvent(ChartClass, 'init', onChartAfterInit);\n PolarComposition_wrap(chartProto, 'get', wrapChartGet);\n PolarComposition_wrap(pointerProto, 'getCoordinates', wrapPointerGetCoordinates);\n PolarComposition_wrap(pointerProto, 'pinch', wrapPointerPinch);\n PolarComposition_addEvent(PointerClass, 'getSelectionMarkerAttrs', onPointerGetSelectionMarkerAttrs);\n PolarComposition_addEvent(PointerClass, 'getSelectionBox', onPointerGetSelectionBox);\n PolarComposition_addEvent(SeriesClass, 'afterInit', onSeriesAfterInit);\n PolarComposition_addEvent(SeriesClass, 'afterTranslate', onSeriesAfterTranslate, { order: 2 } // Run after translation of ||-coords\n );\n PolarComposition_addEvent(SeriesClass, 'afterColumnTranslate', onAfterColumnTranslate, { order: 4 });\n PolarComposition_wrap(seriesProto, 'animate', wrapSeriesAnimate);\n PolarComposition_wrap(pointProto, 'pos', wrapPointPos);\n if (ColumnSeriesClass) {\n var columnProto = ColumnSeriesClass.prototype;\n PolarComposition_wrap(columnProto, 'alignDataLabel', wrapColumnSeriesAlignDataLabel);\n PolarComposition_wrap(columnProto, 'animate', wrapSeriesAnimate);\n }\n if (LineSeriesClass) {\n var lineProto = LineSeriesClass.prototype;\n PolarComposition_wrap(lineProto, 'getGraphPath', wrapLineSeriesGetGraphPath);\n }\n if (SplineSeriesClass) {\n var splineProto = SplineSeriesClass.prototype;\n PolarComposition_wrap(splineProto, 'getPointSpline', wrapSplineSeriesGetPointSpline);\n if (AreaSplineRangeSeriesClass) {\n var areaSplineRangeProto = AreaSplineRangeSeriesClass.prototype;\n // #6430 Areasplinerange series use unwrapped getPointSpline\n // method, so we need to set this method again.\n areaSplineRangeProto.getPointSpline =\n splineProto.getPointSpline;\n }\n }\n }\n };\n /* *\n *\n * Functions\n *\n * */\n PolarAdditions.prototype.arc = function (low, high, start, end) {\n var series = this.series,\n center = series.xAxis.center,\n len = series.yAxis.len,\n paneInnerR = center[3] / 2;\n var r = len - high + paneInnerR,\n innerR = len - PolarComposition_pick(low,\n len) + paneInnerR;\n // Prevent columns from shooting through the pane's center\n if (series.yAxis.reversed) {\n if (r < 0) {\n r = paneInnerR;\n }\n if (innerR < 0) {\n innerR = paneInnerR;\n }\n }\n // Return a new shapeArgs\n return {\n x: center[0],\n y: center[1],\n r: r,\n innerR: innerR,\n start: start,\n end: end\n };\n };\n /**\n * Translate a point's plotX and plotY from the internal angle and radius\n * measures to true plotX, plotY coordinates\n * @private\n */\n PolarAdditions.prototype.toXY = function (point) {\n var series = this.series,\n chart = series.chart,\n xAxis = series.xAxis,\n yAxis = series.yAxis,\n plotX = point.plotX,\n inverted = chart.inverted,\n pointY = point.y;\n var plotY = point.plotY,\n radius = inverted ? plotX : yAxis.len - plotY,\n clientX;\n // Corrected y position of inverted series other than column\n if (inverted && series && !series.isRadialBar) {\n point.plotY = plotY =\n PolarComposition_isNumber(pointY) ? yAxis.translate(pointY) : 0;\n }\n // Save rectangular plotX, plotY for later computation\n point.rectPlotX = plotX;\n point.rectPlotY = plotY;\n if (yAxis.center) {\n radius += yAxis.center[3] / 2;\n }\n // Find the polar plotX and plotY. Avoid setting plotX and plotY to NaN\n // when plotY is undefined (#15438)\n if (PolarComposition_isNumber(plotY)) {\n var xy = inverted ? yAxis.postTranslate(plotY,\n radius) :\n xAxis.postTranslate(plotX,\n radius);\n point.plotX = point.polarPlotX = xy.x - chart.plotLeft;\n point.plotY = point.polarPlotY = xy.y - chart.plotTop;\n }\n // If shared tooltip, record the angle in degrees in order to align X\n // points. Otherwise, use a standard k-d tree to get the nearest point\n // in two dimensions.\n if (series.kdByAngle) {\n clientX = ((plotX / Math.PI * 180) + xAxis.pane.options.startAngle) % 360;\n if (clientX < 0) { // #2665\n clientX += 360;\n }\n point.clientX = clientX;\n }\n else {\n point.clientX = point.plotX;\n }\n };\n return PolarAdditions;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var PolarComposition = (PolarAdditions);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"StackItem\"],\"commonjs\":[\"highcharts\",\"StackItem\"],\"commonjs2\":[\"highcharts\",\"StackItem\"],\"root\":[\"Highcharts\",\"StackItem\"]}\nvar highcharts_StackItem_commonjs_highcharts_StackItem_commonjs2_highcharts_StackItem_root_Highcharts_StackItem_ = __webpack_require__(184);\nvar highcharts_StackItem_commonjs_highcharts_StackItem_commonjs2_highcharts_StackItem_root_Highcharts_StackItem_default = /*#__PURE__*/__webpack_require__.n(highcharts_StackItem_commonjs_highcharts_StackItem_commonjs2_highcharts_StackItem_root_Highcharts_StackItem_);\n;// ./code/es5/es-modules/Core/Axis/WaterfallAxis.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar WaterfallAxis_composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\n\nvar WaterfallAxis_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, WaterfallAxis_objectEach = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).objectEach, WaterfallAxis_pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique;\n/* *\n *\n * Namespace\n *\n * */\nvar WaterfallAxis;\n(function (WaterfallAxis) {\n /* *\n *\n * Interfaces\n *\n * */\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n function compose(AxisClass, ChartClass) {\n if (WaterfallAxis_pushUnique(WaterfallAxis_composed, 'Axis.Waterfall')) {\n WaterfallAxis_addEvent(AxisClass, 'init', onAxisInit);\n WaterfallAxis_addEvent(AxisClass, 'afterBuildStacks', onAxisAfterBuildStacks);\n WaterfallAxis_addEvent(AxisClass, 'afterRender', onAxisAfterRender);\n WaterfallAxis_addEvent(ChartClass, 'beforeRedraw', onChartBeforeRedraw);\n }\n }\n WaterfallAxis.compose = compose;\n /**\n * @private\n */\n function onAxisAfterBuildStacks() {\n var axis = this,\n stacks = axis.waterfall.stacks;\n if (stacks) {\n stacks.changed = false;\n delete stacks.alreadyChanged;\n }\n }\n /**\n * @private\n */\n function onAxisAfterRender() {\n var axis = this,\n stackLabelOptions = axis.options.stackLabels;\n if (stackLabelOptions && stackLabelOptions.enabled &&\n axis.waterfall.stacks) {\n axis.waterfall.renderStackTotals();\n }\n }\n /**\n * @private\n */\n function onAxisInit() {\n var axis = this;\n if (!axis.waterfall) {\n axis.waterfall = new Composition(axis);\n }\n }\n /**\n * @private\n */\n function onChartBeforeRedraw() {\n var axes = this.axes,\n series = this.series;\n for (var _i = 0, series_1 = series; _i < series_1.length; _i++) {\n var serie = series_1[_i];\n if (serie.options.stacking) {\n for (var _a = 0, axes_1 = axes; _a < axes_1.length; _a++) {\n var axis = axes_1[_a];\n if (!axis.isXAxis) {\n axis.waterfall.stacks.changed = true;\n }\n }\n break;\n }\n }\n }\n /* *\n *\n * Classes\n *\n * */\n var Composition = /** @class */ (function () {\n /* *\n *\n * Constructors\n *\n * */\n function Composition(axis) {\n this.axis = axis;\n this.stacks = {\n changed: false\n };\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Calls StackItem.prototype.render function that creates and renders\n * stack total label for each waterfall stack item.\n *\n * @private\n * @function Highcharts.Axis#renderWaterfallStackTotals\n */\n Composition.prototype.renderStackTotals = function () {\n var yAxis = this.axis,\n waterfallStacks = yAxis.waterfall.stacks,\n stackTotalGroup = (yAxis.stacking && yAxis.stacking.stackTotalGroup),\n dummyStackItem = new (highcharts_StackItem_commonjs_highcharts_StackItem_commonjs2_highcharts_StackItem_root_Highcharts_StackItem_default())(yAxis,\n yAxis.options.stackLabels || {},\n false, 0,\n void 0);\n this.dummyStackItem = dummyStackItem;\n // Render each waterfall stack total\n if (stackTotalGroup) {\n WaterfallAxis_objectEach(waterfallStacks, function (type) {\n WaterfallAxis_objectEach(type, function (stackItem, key) {\n dummyStackItem.total = stackItem.stackTotal;\n dummyStackItem.x = +key;\n if (stackItem.label) {\n dummyStackItem.label = stackItem.label;\n }\n highcharts_StackItem_commonjs_highcharts_StackItem_commonjs2_highcharts_StackItem_root_Highcharts_StackItem_default().prototype.render.call(dummyStackItem, stackTotalGroup);\n stackItem.label = dummyStackItem.label;\n delete dummyStackItem.label;\n });\n });\n }\n dummyStackItem.total = null;\n };\n return Composition;\n }());\n WaterfallAxis.Composition = Composition;\n})(WaterfallAxis || (WaterfallAxis = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Axis_WaterfallAxis = (WaterfallAxis);\n\n;// ./code/es5/es-modules/Series/Waterfall/WaterfallPoint.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\nvar WaterfallPoint_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\nvar WaterfallPoint_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber;\n/* *\n *\n * Class\n *\n * */\nvar WaterfallPoint = /** @class */ (function (_super) {\n WaterfallPoint_extends(WaterfallPoint, _super);\n function WaterfallPoint() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n WaterfallPoint.prototype.getClassName = function () {\n var className = highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default().prototype.getClassName.call(this);\n if (this.isSum) {\n className += ' highcharts-sum';\n }\n else if (this.isIntermediateSum) {\n className += ' highcharts-intermediate-sum';\n }\n return className;\n };\n // Pass the null test in ColumnSeries.translate.\n WaterfallPoint.prototype.isValid = function () {\n return (WaterfallPoint_isNumber(this.y) ||\n this.isSum ||\n Boolean(this.isIntermediateSum));\n };\n return WaterfallPoint;\n}((highcharts_Series_types_column_commonjs_highcharts_Series_types_column_commonjs2_highcharts_Series_types_column_root_Highcharts_Series_types_column_default()).prototype.pointClass));\n/* *\n *\n * Export\n *\n * */\n/* harmony default export */ var Waterfall_WaterfallPoint = (WaterfallPoint);\n\n;// ./code/es5/es-modules/Series/Waterfall/WaterfallSeriesDefaults.js\n/* *\n *\n * (c) 2010-2024 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 *\n * API Options\n *\n * */\n/**\n * A waterfall chart displays sequentially introduced positive or negative\n * values in cumulative columns.\n *\n * @sample highcharts/demo/waterfall/\n * Waterfall chart\n * @sample highcharts/plotoptions/waterfall-inverted/\n * Horizontal (inverted) waterfall\n * @sample highcharts/plotoptions/waterfall-stacked/\n * Stacked waterfall chart\n *\n * @extends plotOptions.column\n * @excluding boostThreshold, boostBlending\n * @product highcharts\n * @requires highcharts-more\n * @optionparent plotOptions.waterfall\n */\nvar WaterfallSeriesDefaults = {\n /**\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @apioption plotOptions.waterfall.color\n */\n /**\n * The color used specifically for positive point columns. When not\n * specified, the general series color is used.\n *\n * In styled mode, the waterfall colors can be set with the\n * `.highcharts-point-negative`, `.highcharts-sum` and\n * `.highcharts-intermediate-sum` classes.\n *\n * @sample {highcharts} highcharts/demo/waterfall/\n * Waterfall\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @product highcharts\n * @apioption plotOptions.waterfall.upColor\n */\n dataLabels: {\n inside: true\n },\n /**\n * The width of the line connecting waterfall columns.\n *\n * @product highcharts\n */\n lineWidth: 1,\n /**\n * The color of the line that connects columns in a waterfall series.\n *\n * In styled mode, the stroke can be set with the `.highcharts-graph`\n * class.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @since 3.0\n * @product highcharts\n */\n lineColor: \"#333333\" /* Palette.neutralColor80 */,\n /**\n * A name for the dash style to use for the line connecting the columns\n * of the waterfall series. Possible values: Dash, DashDot, Dot,\n * LongDash, LongDashDot, LongDashDotDot, ShortDash, ShortDashDot,\n * ShortDashDotDot, ShortDot, Solid\n *\n * In styled mode, the stroke dash-array can be set with the\n * `.highcharts-graph` class.\n *\n * @type {Highcharts.DashStyleValue}\n * @since 3.0\n * @product highcharts\n */\n dashStyle: 'Dot',\n /**\n * The color of the border of each waterfall column.\n *\n * In styled mode, the border stroke can be set with the\n * `.highcharts-point` class.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @since 3.0\n * @product highcharts\n */\n borderColor: \"#333333\" /* Palette.neutralColor80 */,\n states: {\n hover: {\n lineWidthPlus: 0 // #3126\n }\n }\n};\n/**\n * A `waterfall` series. If the [type](#series.waterfall.type) option\n * is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends series,plotOptions.waterfall\n * @excluding dataParser, dataURL, boostThreshold, boostBlending\n * @product highcharts\n * @requires highcharts-more\n * @apioption series.waterfall\n */\n/**\n * An array of data points for the series. For the `waterfall` series\n * type, points can be given in the following ways:\n *\n * 1. An array of numerical values. In this case, the numerical values will be\n * interpreted as `y` options. The `x` values will be automatically\n * calculated, either starting at 0 and incremented by 1, or from\n * `pointStart` and `pointInterval` given in the series options. If the axis\n * has categories, these will be used. Example:\n * ```js\n * data: [0, 5, 3, 5]\n * ```\n *\n * 2. An array of arrays with 2 values. In this case, the values correspond to\n * `x,y`. If the first value is a string, it is applied as the name of the\n * point, and the `x` value is inferred.\n * ```js\n * data: [\n * [0, 7],\n * [1, 8],\n * [2, 3]\n * ]\n * ```\n *\n * 3. 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\n * data points exceeds the series'\n * [turboThreshold](#series.waterfall.turboThreshold), this option is not\n * available.\n * ```js\n * data: [{\n * x: 1,\n * y: 8,\n * name: \"Point2\",\n * color: \"#00FF00\"\n * }, {\n * x: 1,\n * y: 8,\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<number|Array<(number|string),(number|null)>|null|*>}\n * @extends series.line.data\n * @excluding marker\n * @product highcharts\n * @apioption series.waterfall.data\n */\n/**\n * When this property is true, the points acts as a summary column for\n * the values added or subtracted since the last intermediate sum,\n * or since the start of the series. The `y` value is ignored.\n *\n * @sample {highcharts} highcharts/demo/waterfall/\n * Waterfall\n *\n * @type {boolean}\n * @default false\n * @product highcharts\n * @apioption series.waterfall.data.isIntermediateSum\n */\n/**\n * When this property is true, the point display the total sum across\n * the entire series. The `y` value is ignored.\n *\n * @sample {highcharts} highcharts/demo/waterfall/\n * Waterfall\n *\n * @type {boolean}\n * @default false\n * @product highcharts\n * @apioption series.waterfall.data.isSum\n */\n''; // Adds doclets above to transpiled file\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Waterfall_WaterfallSeriesDefaults = (WaterfallSeriesDefaults);\n\n;// ./code/es5/es-modules/Series/Waterfall/WaterfallSeries.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar WaterfallSeries_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar WaterfallSeries_a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, WaterfallSeries_ColumnSeries = WaterfallSeries_a.column, WaterfallSeries_LineSeries = WaterfallSeries_a.line;\n\nvar WaterfallSeries_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, WaterfallSeries_arrayMax = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).arrayMax, WaterfallSeries_arrayMin = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).arrayMin, WaterfallSeries_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, WaterfallSeries_crisp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).crisp, WaterfallSeries_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, WaterfallSeries_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, WaterfallSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, WaterfallSeries_objectEach = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).objectEach, WaterfallSeries_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n\n\n\n/* *\n *\n * Functions\n *\n * */\n/**\n * Returns true if the key is a direct property of the object.\n * @private\n * @param {*} obj\n * Object with property to test\n * @param {string} key\n * Property key to test\n * @return {boolean}\n * Whether it is a direct property\n */\nfunction ownProp(obj, key) {\n return Object.hasOwnProperty.call(obj, key);\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * Waterfall series type.\n *\n * @private\n */\nvar WaterfallSeries = /** @class */ (function (_super) {\n WaterfallSeries_extends(WaterfallSeries, _super);\n function WaterfallSeries() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n // After generating points, set y-values for all sums.\n WaterfallSeries.prototype.generatePoints = function () {\n // Parent call:\n WaterfallSeries_ColumnSeries.prototype.generatePoints.apply(this);\n var processedYData = this.getColumn('y',\n true);\n for (var i = 0, len = this.points.length; i < len; i++) {\n var point = this.points[i],\n y = processedYData[i];\n // Override point value for sums. #3710 Update point does not\n // propagate to sum\n if (WaterfallSeries_isNumber(y) && (point.isIntermediateSum || point.isSum)) {\n point.y = WaterfallSeries_correctFloat(y);\n }\n }\n };\n // Call default processData then override yData to reflect waterfall's\n // extremes on yAxis\n WaterfallSeries.prototype.processData = function (force) {\n var series = this,\n options = series.options,\n yData = series.getColumn('y'), \n // #3710 Update point does not propagate to sum\n points = options.data,\n dataLength = yData.length,\n threshold = options.threshold || 0;\n var point,\n subSum,\n sum,\n dataMin,\n dataMax,\n y;\n sum = subSum = dataMin = dataMax = 0;\n for (var i = 0; i < dataLength; i++) {\n y = yData[i];\n point = (points === null || points === void 0 ? void 0 : points[i]) || {};\n if (y === 'sum' || point.isSum) {\n yData[i] = WaterfallSeries_correctFloat(sum);\n }\n else if (y === 'intermediateSum' ||\n point.isIntermediateSum) {\n yData[i] = WaterfallSeries_correctFloat(subSum);\n subSum = 0;\n }\n else {\n sum += y;\n subSum += y;\n }\n dataMin = Math.min(sum, dataMin);\n dataMax = Math.max(sum, dataMax);\n }\n _super.prototype.processData.call(this, force);\n // Record extremes only if stacking was not set:\n if (!options.stacking) {\n series.dataMin = dataMin + threshold;\n series.dataMax = dataMax;\n }\n return;\n };\n // Return y value or string if point is sum\n WaterfallSeries.prototype.toYData = function (pt) {\n if (pt.isSum) {\n return 'sum';\n }\n if (pt.isIntermediateSum) {\n return 'intermediateSum';\n }\n return pt.y;\n };\n // Postprocess mapping between options and SVG attributes\n WaterfallSeries.prototype.pointAttribs = function (point, state) {\n var upColor = this.options.upColor;\n // Set or reset up color (#3710, update to negative)\n if (upColor && !point.options.color && WaterfallSeries_isNumber(point.y)) {\n point.color = point.y > 0 ? upColor : void 0;\n }\n var attr = WaterfallSeries_ColumnSeries.prototype.pointAttribs.call(this,\n point,\n state);\n // The dashStyle option in waterfall applies to the graph, not\n // the points\n delete attr.dashstyle;\n return attr;\n };\n // Return an empty path initially, because we need to know the stroke-width\n // in order to set the final path.\n WaterfallSeries.prototype.getGraphPath = function () {\n return [['M', 0, 0]];\n };\n // Draw columns' connector lines\n WaterfallSeries.prototype.getCrispPath = function () {\n var _a;\n var // Skip points where Y is not a number (#18636)\n data = this.data.filter(function (d) { return WaterfallSeries_isNumber(d.y); }),\n yAxis = this.yAxis,\n length = data.length,\n graphLineWidth = ((_a = this.graph) === null || _a === void 0 ? void 0 : _a.strokeWidth()) || 0,\n reversedXAxis = this.xAxis.reversed,\n reversedYAxis = this.yAxis.reversed,\n stacking = this.options.stacking,\n path = [];\n for (var i = 1; i < length; i++) {\n if (!( // Skip lines that would pass over the null point (#18636)\n this.options.connectNulls ||\n WaterfallSeries_isNumber(this.data[data[i].index - 1].y))) {\n continue;\n }\n var box = data[i].box,\n prevPoint = data[i - 1],\n prevY = prevPoint.y || 0,\n prevBox = data[i - 1].box;\n if (!box || !prevBox) {\n continue;\n }\n var prevStack = yAxis.waterfall.stacks[this.stackKey],\n isPos = prevY > 0 ? -prevBox.height : 0;\n if (prevStack && prevBox && box) {\n var prevStackX = prevStack[i - 1];\n // Y position of the connector is different when series are\n // stacked, yAxis is reversed and it also depends on point's\n // value\n var yPos = void 0;\n if (stacking) {\n var connectorThreshold = prevStackX.connectorThreshold;\n yPos = WaterfallSeries_crisp(yAxis.translate(connectorThreshold, false, true, false, true) +\n (reversedYAxis ? isPos : 0), graphLineWidth);\n }\n else {\n yPos = WaterfallSeries_crisp(prevBox.y + (prevPoint.minPointLengthOffset || 0), graphLineWidth);\n }\n path.push([\n 'M',\n (prevBox.x || 0) + (reversedXAxis ?\n 0 :\n (prevBox.width || 0)),\n yPos\n ], [\n 'L',\n (box.x || 0) + (reversedXAxis ?\n (box.width || 0) :\n 0),\n yPos\n ]);\n }\n if (prevBox &&\n path.length &&\n ((!stacking && prevY < 0 && !reversedYAxis) ||\n (prevY > 0 && reversedYAxis))) {\n var nextLast = path[path.length - 2];\n if (nextLast && typeof nextLast[2] === 'number') {\n nextLast[2] += prevBox.height || 0;\n }\n var last = path[path.length - 1];\n if (last && typeof last[2] === 'number') {\n last[2] += prevBox.height || 0;\n }\n }\n }\n return path;\n };\n // The graph is initially drawn with an empty definition, then updated with\n // crisp rendering.\n WaterfallSeries.prototype.drawGraph = function () {\n WaterfallSeries_LineSeries.prototype.drawGraph.call(this);\n if (this.graph) {\n this.graph.attr({\n d: this.getCrispPath()\n });\n }\n };\n // Waterfall has stacking along the x-values too.\n WaterfallSeries.prototype.setStackedPoints = function (axis) {\n var _a;\n var series = this, options = series.options, waterfallStacks = (_a = axis.waterfall) === null || _a === void 0 ? void 0 : _a.stacks, seriesThreshold = options.threshold || 0, stackKey = series.stackKey, xData = series.getColumn('x'), yData = series.getColumn('y'), xLength = xData.length;\n var stackThreshold = seriesThreshold,\n interSum = stackThreshold,\n actualStackX,\n totalYVal = 0,\n actualSum = 0,\n prevSum = 0,\n statesLen,\n posTotal,\n negTotal,\n xPoint,\n yVal,\n x,\n alreadyChanged,\n changed;\n // Function responsible for calculating correct values for stackState\n // array of each stack item. The arguments are: firstS - the value for\n // the first state, nextS - the difference between the previous and the\n // newest state, sInx - counter used in the for that updates each state\n // when necessary, sOff - offset that must be added to each state when\n // they need to be updated (if point isn't a total sum)\n // eslint-disable-next-line require-jsdoc\n var calculateStackState = function (firstS,\n nextS,\n sInx,\n sOff) {\n if (actualStackX) {\n if (!statesLen) {\n actualStackX.stackState[0] = firstS;\n statesLen = actualStackX.stackState.length;\n }\n else {\n for (sInx; sInx < statesLen; sInx++) {\n actualStackX.stackState[sInx] += sOff;\n }\n }\n actualStackX.stackState.push(actualStackX.stackState[statesLen - 1] + nextS);\n }\n };\n if (axis.stacking && waterfallStacks) {\n // Code responsible for creating stacks for waterfall series\n if (series.reserveSpace()) {\n changed = waterfallStacks.changed;\n alreadyChanged = waterfallStacks.alreadyChanged;\n // In case of a redraw, stack for each x value must be emptied\n // (only for the first series in a specific stack) and\n // recalculated once more\n if (alreadyChanged &&\n alreadyChanged.indexOf(stackKey) < 0) {\n changed = true;\n }\n if (!waterfallStacks[stackKey]) {\n waterfallStacks[stackKey] = {};\n }\n var actualStack = waterfallStacks[stackKey];\n if (actualStack) {\n for (var i = 0; i < xLength; i++) {\n x = xData[i];\n if (!actualStack[x] || changed) {\n actualStack[x] = {\n negTotal: 0,\n posTotal: 0,\n stackTotal: 0,\n threshold: 0,\n stateIndex: 0,\n stackState: [],\n label: ((changed &&\n actualStack[x]) ?\n actualStack[x].label :\n void 0)\n };\n }\n actualStackX = actualStack[x];\n yVal = yData[i];\n if (yVal >= 0) {\n actualStackX.posTotal += yVal;\n }\n else {\n actualStackX.negTotal += yVal;\n }\n // Points do not exist yet, so raw data is used\n xPoint = options.data[i];\n posTotal = actualStackX.absolutePos =\n actualStackX.posTotal;\n negTotal = actualStackX.absoluteNeg =\n actualStackX.negTotal;\n actualStackX.stackTotal = posTotal + negTotal;\n statesLen = actualStackX.stackState.length;\n if (xPoint && xPoint.isIntermediateSum) {\n calculateStackState(prevSum, actualSum, 0, prevSum);\n prevSum = actualSum;\n actualSum = seriesThreshold;\n // Swapping values\n stackThreshold ^= interSum;\n interSum ^= stackThreshold;\n stackThreshold ^= interSum;\n }\n else if (xPoint && xPoint.isSum) {\n calculateStackState(seriesThreshold, totalYVal, statesLen, 0);\n stackThreshold = seriesThreshold;\n }\n else {\n calculateStackState(stackThreshold, yVal, 0, totalYVal);\n if (xPoint) {\n totalYVal += yVal;\n actualSum += yVal;\n }\n }\n actualStackX.stateIndex++;\n actualStackX.threshold = stackThreshold;\n stackThreshold += actualStackX.stackTotal;\n }\n }\n waterfallStacks.changed = false;\n if (!waterfallStacks.alreadyChanged) {\n waterfallStacks.alreadyChanged = [];\n }\n waterfallStacks.alreadyChanged.push(stackKey);\n }\n }\n };\n // Extremes for a non-stacked series are recorded in processData.\n // In case of stacking, use Series.stackedYData to calculate extremes.\n WaterfallSeries.prototype.getExtremes = function () {\n var stacking = this.options.stacking;\n var yAxis,\n waterfallStacks,\n stackedYNeg,\n stackedYPos;\n if (stacking) {\n yAxis = this.yAxis;\n waterfallStacks = yAxis.waterfall.stacks;\n stackedYNeg = this.stackedYNeg = [];\n stackedYPos = this.stackedYPos = [];\n // The visible y range can be different when stacking is set to\n // overlap and different when it's set to normal\n if (stacking === 'overlap') {\n WaterfallSeries_objectEach(waterfallStacks[this.stackKey], function (stackX) {\n stackedYNeg.push(WaterfallSeries_arrayMin(stackX.stackState));\n stackedYPos.push(WaterfallSeries_arrayMax(stackX.stackState));\n });\n }\n else {\n WaterfallSeries_objectEach(waterfallStacks[this.stackKey], function (stackX) {\n stackedYNeg.push(stackX.negTotal + stackX.threshold);\n stackedYPos.push(stackX.posTotal + stackX.threshold);\n });\n }\n return {\n dataMin: WaterfallSeries_arrayMin(stackedYNeg),\n dataMax: WaterfallSeries_arrayMax(stackedYPos)\n };\n }\n // When not stacking, data extremes have already been computed in the\n // processData function.\n return {\n dataMin: this.dataMin,\n dataMax: this.dataMax\n };\n };\n /* *\n *\n * Static Properties\n *\n * */\n WaterfallSeries.defaultOptions = WaterfallSeries_merge(WaterfallSeries_ColumnSeries.defaultOptions, Waterfall_WaterfallSeriesDefaults);\n WaterfallSeries.compose = Axis_WaterfallAxis.compose;\n return WaterfallSeries;\n}(WaterfallSeries_ColumnSeries));\nWaterfallSeries_extend(WaterfallSeries.prototype, {\n pointValKey: 'y',\n // Property needed to prevent lines between the columns from disappearing\n // when negativeColor is used.\n showLine: true,\n pointClass: Waterfall_WaterfallPoint\n});\n// Translate data points from raw values\nWaterfallSeries_addEvent(WaterfallSeries, 'afterColumnTranslate', function () {\n var series = this,\n options = series.options,\n points = series.points,\n yAxis = series.yAxis,\n minPointLength = WaterfallSeries_pick(options.minPointLength, 5),\n halfMinPointLength = minPointLength / 2,\n threshold = options.threshold || 0,\n stacking = options.stacking,\n actualStack = yAxis.waterfall.stacks[series.stackKey],\n processedYData = series.getColumn('y',\n true);\n var previousIntermediate = threshold,\n previousY = threshold,\n y,\n total,\n yPos,\n hPos;\n for (var i = 0; i < points.length; i++) {\n var point = points[i],\n yValue = processedYData[i],\n shapeArgs = point.shapeArgs,\n box = WaterfallSeries_extend({\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n shapeArgs || {});\n point.box = box;\n var range = [0,\n yValue],\n pointY = point.y || 0;\n // Code responsible for correct positions of stacked points\n // starts here\n if (stacking) {\n if (actualStack) {\n var actualStackX = actualStack[i];\n if (stacking === 'overlap') {\n total =\n actualStackX.stackState[actualStackX.stateIndex--];\n y = pointY >= 0 ? total : total - pointY;\n if (ownProp(actualStackX, 'absolutePos')) {\n delete actualStackX.absolutePos;\n }\n if (ownProp(actualStackX, 'absoluteNeg')) {\n delete actualStackX.absoluteNeg;\n }\n }\n else {\n if (pointY >= 0) {\n total = actualStackX.threshold +\n actualStackX.posTotal;\n actualStackX.posTotal -= pointY;\n y = total;\n }\n else {\n total = actualStackX.threshold +\n actualStackX.negTotal;\n actualStackX.negTotal -= pointY;\n y = total - pointY;\n }\n if (!actualStackX.posTotal) {\n if (WaterfallSeries_isNumber(actualStackX.absolutePos) &&\n ownProp(actualStackX, 'absolutePos')) {\n actualStackX.posTotal =\n actualStackX.absolutePos;\n delete actualStackX.absolutePos;\n }\n }\n if (!actualStackX.negTotal) {\n if (WaterfallSeries_isNumber(actualStackX.absoluteNeg) &&\n ownProp(actualStackX, 'absoluteNeg')) {\n actualStackX.negTotal =\n actualStackX.absoluteNeg;\n delete actualStackX.absoluteNeg;\n }\n }\n }\n if (!point.isSum) {\n // The connectorThreshold property is later used in\n // getCrispPath function to draw a connector line in a\n // correct place\n actualStackX.connectorThreshold =\n actualStackX.threshold + actualStackX.stackTotal;\n }\n if (yAxis.reversed) {\n yPos = (pointY >= 0) ? (y - pointY) : (y + pointY);\n hPos = y;\n }\n else {\n yPos = y;\n hPos = y - pointY;\n }\n point.below = yPos <= threshold;\n box.y = yAxis.translate(yPos, false, true, false, true);\n box.height = Math.abs(box.y -\n yAxis.translate(hPos, false, true, false, true));\n var dummyStackItem = yAxis.waterfall.dummyStackItem;\n if (dummyStackItem) {\n dummyStackItem.x = i;\n dummyStackItem.label = actualStack[i].label;\n dummyStackItem.setOffset(series.pointXOffset || 0, series.barW || 0, series.stackedYNeg[i], series.stackedYPos[i], void 0, this.xAxis);\n }\n }\n }\n else {\n // Up points\n y = Math.max(previousY, previousY + pointY) + range[0];\n box.y = yAxis.translate(y, false, true, false, true);\n // Sum points\n if (point.isSum) {\n box.y = yAxis.translate(range[1], false, true, false, true);\n box.height = Math.min(yAxis.translate(range[0], false, true, false, true), yAxis.len) - box.y; // #4256\n point.below = range[1] <= threshold;\n }\n else if (point.isIntermediateSum) {\n if (pointY >= 0) {\n yPos = range[1] + previousIntermediate;\n hPos = previousIntermediate;\n }\n else {\n yPos = previousIntermediate;\n hPos = range[1] + previousIntermediate;\n }\n if (yAxis.reversed) {\n // Swapping values\n yPos ^= hPos;\n hPos ^= yPos;\n yPos ^= hPos;\n }\n box.y = yAxis.translate(yPos, false, true, false, true);\n box.height = Math.abs(box.y -\n Math.min(yAxis.translate(hPos, false, true, false, true), yAxis.len));\n previousIntermediate += range[1];\n point.below = yPos <= threshold;\n // If it's not the sum point, update previous stack end position\n // and get shape height (#3886)\n }\n else {\n box.height = yValue > 0 ?\n yAxis.translate(previousY, false, true, false, true) - box.y :\n yAxis.translate(previousY, false, true, false, true) - yAxis.translate(previousY - yValue, false, true, false, true);\n previousY += yValue;\n point.below = previousY < threshold;\n }\n // #3952 Negative sum or intermediate sum not rendered correctly\n if (box.height < 0) {\n box.y += box.height;\n box.height *= -1;\n }\n }\n point.plotY = box.y;\n point.yBottom = box.y + box.height;\n if (box.height <= minPointLength && !point.isNull) {\n box.height = minPointLength;\n box.y -= halfMinPointLength;\n point.yBottom = box.y + box.height;\n point.plotY = box.y;\n if (pointY < 0) {\n point.minPointLengthOffset = -halfMinPointLength;\n }\n else {\n point.minPointLengthOffset = halfMinPointLength;\n }\n }\n else {\n // #8024, empty gaps in the line for null data\n if (point.isNull) {\n box.width = 0;\n }\n point.minPointLengthOffset = 0;\n }\n // Correct tooltip placement (#3014)\n var tooltipY = point.plotY + (point.negative ? box.height : 0);\n if (point.below) { // #15334\n point.plotY += box.height;\n }\n if (point.tooltipPos) {\n if (series.chart.inverted) {\n point.tooltipPos[0] = yAxis.len - tooltipY;\n }\n else {\n point.tooltipPos[1] = tooltipY;\n }\n }\n // Check point position after recalculation (#16788)\n point.isInside = this.isPointInside(point);\n // Crisp vector coordinates\n var crispBottom = WaterfallSeries_crisp(point.yBottom,\n series.borderWidth);\n box.y = WaterfallSeries_crisp(box.y, series.borderWidth);\n box.height = crispBottom - box.y;\n WaterfallSeries_merge(true, point.shapeArgs, box);\n }\n}, { order: 2 });\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('waterfall', WaterfallSeries);\n/* *\n *\n * Export\n *\n * */\n/* harmony default export */ var Waterfall_WaterfallSeries = (WaterfallSeries);\n\n;// ./code/es5/es-modules/masters/highcharts-more.src.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\nG.RadialAxis = Axis_RadialAxis;\nBubble_BubbleSeries.compose(G.Axis, G.Chart, G.Legend);\nPackedBubble_PackedBubbleSeries.compose(G.Axis, G.Chart, G.Legend);\nPane_Pane.compose(G.Chart, G.Pointer);\nPolarComposition.compose(G.Axis, G.Chart, G.Pointer, G.Series, G.Tick, G.Point, (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.areasplinerange, (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.column, (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.line, (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.spline);\nWaterfall_WaterfallSeries.compose(G.Axis, G.Chart);\n/* harmony default export */ var highcharts_more_src = (G);\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"],"names":["root","factory","exports","module","require","define","amd","__WEBPACK_EXTERNAL_MODULE__944__","__WEBPACK_EXTERNAL_MODULE__512__","__WEBPACK_EXTERNAL_MODULE__820__","__WEBPACK_EXTERNAL_MODULE__448__","__WEBPACK_EXTERNAL_MODULE__620__","__WEBPACK_EXTERNAL_MODULE__984__","__WEBPACK_EXTERNAL_MODULE__260__","__WEBPACK_EXTERNAL_MODULE__960__","__WEBPACK_EXTERNAL_MODULE__28__","__WEBPACK_EXTERNAL_MODULE__184__","CenteredUtilities","extendStatics","RadialAxis","WaterfallAxis","__webpack_modules__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","__webpack_exports__","highcharts_more_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default","highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_","highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default","deg2rad","fireEvent","isNumber","pick","relativeLength","getCenter","handleSlicingRoom","i","value","options","chart","slicingRoom","slicedOffset","plotWidth","plotHeight","centerOption","center","smallestSize","Math","min","thickness","size","innerSize","parseFloat","positions","angular","test","getStartAndEndRadians","start","end","startAngle","endAngle","Series_CenteredUtilities","addEvent","correctFloat","defined","PaneComposition_pick","chartGetHoverPane","eventArgs","hoverPane","pane","forEach","isInsidePane","chartX","plotLeft","chartY","plotTop","x","y","insideSlice","cx","cy","distance","sqrt","pow","angle","atan2","PI","ceil","onChartAfterIsInsiderPlot","e","_a","polar","inverted","isInsidePlot","some","axis","normalizedStartAngleRad","normalizedEndAngleRad","onPointerAfterGetHoverData","hoverPoint","plotX","plotY","onPointerBeforeGetHoverData","getHoverPane","filter","s","visible","shared","directTouch","enableMouseTracking","xAxis","ChartClass","PointerClass","chartProto","collectionsWithUpdate","push","Pane_PaneDefaults","background","shape","borderRadius","borderWidth","borderColor","backgroundColor","linearGradient","x1","y1","x2","y2","stops","from","Number","MAX_VALUE","innerRadius","to","outerRadius","extend","merge","splat","Pane","coll","init","setOptions","render","renderer","group","g","attr","zIndex","add","updateCenter","backgroundOption","len","max","length","renderBackground","destroy","splice","backgroundOptions","attribs","className","method","styledMode","path","getPlotBandPath","update","redraw","axes","compose","__extends","b","setPrototypeOf","__proto__","Array","p","__","constructor","create","seriesTypes","area","AreaPoint","pointClass","areaProto","AreaRangePoint_defined","AreaRangePoint_isNumber","AreaRangePoint","_super","apply","arguments","setState","prevState","state","series","isPolar","plotHigh","yAxis","toPixels","high","plotLow","low","lowerStateMarkerGraphic","stateMarkerGraphic","upperStateMarkerGraphic","graphic","graphics","plotHighX","plotLowX","originalSettings","modifyMarkerSettings","restoreMarkerSettings","haloPath","isInside","isTopInside","concat","isValid","AreaRangeSeries_extends","TypeError","String","noop","AreaRangeSeries_a","AreaSeries","AreaRangeSeries_areaProto","columnProto","column","AreaRangeSeries_addEvent","AreaRangeSeries_defined","AreaRangeSeries_extend","isArray","AreaRangeSeries_isNumber","AreaRangeSeries_pick","AreaRangeSeries_merge","areaRangeSeriesOptions","lineWidth","threshold","tooltip","pointFormat","trackByArea","dataLabels","align","verticalAlign","xLow","xHigh","yLow","yHigh","AreaRangeSeries","toYData","point","highToXY","xy","postTranslate","rectPlotX","getGraphPath","points","pointShim","highPoints","highAreaPoints","connectEnds","connectNulls","step","highAreaPoint","yBottom","doCurve","isNull","polarPlotY","lowerPath","left","right","higherPath","higherAreaPath","linePath","graphPath","areaPath","isArea","xMap","drawDataLabels","_b","up","upperDataLabelOptions","lowerDataLabelOptions","data","originalDataLabels","dataLabelOptions","enabled","hasDataLabels","_c","_d","inside","_plotY","dataLabel","dataLabelUpper","below","_e","_f","label","alignDataLabel","originalMarkerSettings","marker","symbol","lowMarker","drawPoints","pointLength","origProps","negative","zone","zones","getZone","hasMarkerChanged","oldOptions","oldMarker","height","width","defaultOptions","_this","pointArrayMap","join","translate","dataModify","modifyValue","order","tooltipPos","pos","posHigh","deferTranslatePolar","pointValKey","setStackedPoints","registerSeriesType","AreaSplineRangeSeries_extends","splineProto","spline","AreaSplineRangeSeries_merge","AreaSplineRangeSeries_extend","AreaSplineRangeSeries","AreaRange_AreaRangeSeries","getPointSpline","BoxPlot_BoxPlotSeriesDefaults","whiskerLength","fillColor","medianWidth","whiskerWidth","highcharts_Series_types_column_commonjs_highcharts_Series_types_column_commonjs2_highcharts_Series_types_column_root_Highcharts_Series_types_column_","highcharts_Series_types_column_commonjs_highcharts_Series_types_column_commonjs2_highcharts_Series_types_column_root_Highcharts_Series_types_column_default","BoxPlotSeries_extends","__spreadArray","pack","ar","l","slice","BoxPlotSeries_noop","crisp","BoxPlotSeries_extend","BoxPlotSeries_merge","BoxPlotSeries_pick","BoxPlotSeries_relativeLength","BoxPlotSeries","pointAttribs","getWhiskerPair","halfWidth","stemX","upperWhiskerLength","lowerWhiskerLength","strokeWidth","whiskers","getWhisker","xLen","yPos","halfLen","crispedYPos","highPlot","lowPlot","q1Plot","q3Plot","medianPlot","medianPath","boxPath","doQuartiles","_i","points_1","verb","shapeArgs","boxAttr","stemAttr","whiskersAttr","medianAttr","color","pointWhiskerLength","stem","addClass","box","medianShape","stroke","stemColor","stemWidth","dashstyle","stemDashStyle","dashStyle","whiskerColor","whiskerDashStyle","fill","lineColor","boxDashStyle","medianColor","medianDashStyle","pointXOffset","barW","boxStrokeWidth","q1","median","q3","Bubble_BubbleLegendDefaults","connectorClassName","connectorColor","connectorDistance","connectorWidth","labels","allowOverlap","format","formatter","style","fontSize","maxSize","minSize","legendIndex","ranges","sizeBy","sizeByAbsoluteValue","zThreshold","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default","highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_","highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default","parse","BubbleLegendItem_noop","arrayMax","arrayMin","BubbleLegendItem_isNumber","BubbleLegendItem_merge","BubbleLegendItem_pick","stableSort","BubbleLegendItem","legend","addToLegend","items","drawLegendSymbol","connectorSpace","itemDistance","legendItem","bubbleLegend","autoRanges","maxLabel","getMaxLabelSize","radius","movementX","labelWidth","labelHeight","seriesIndex","baseline","bubbleAttribs","connectorAttribs","labelAttribs","rtl","fillOpacity","range","setOpacity","getRangeRadius","bubbleSeries","zMax","zMin","getRadius","symbols","connectors","bubbleItems","css","itemStyle","translateX","translateY","renderRange","hideOverlappingLabels","mainRange","labelsOptions","elementCenter","absoluteRadius","abs","labelsAlign","posX","posY","crispMovement","connectorLength","circle","colorIndex","crispLine","text","formatLabel","position","getBBox","placed","alignAttr","labelSize","numberFormatter","index","newOpacity","oldOpacity","show","hide","getRanges","zData","rangesOptions","minZ","maxZ","isBubble","ignoreSeries","getColumn","displayNegative","reverse","predictBubbleSizes","calculatedSize","legendOptions","floating","horizontal","layout","lastLineHeight","plotSizeX","plotSizeY","pxSizes","getPxExtremes","minPxSize","maxPxSize","plotSize","updateRanges","bubbleLegendOptions","correctSizes","composed","BubbleLegendComposition_addEvent","objectEach","pushUnique","wrap","chartDrawChartBox","proceed","callback","bubbleSizes","getVisibleBubbleSeriesIndex","allItems","item","getMargins","setScale","updateNames","ticks","tick","isNew","isNewLabel","retranslateItems","getLinesHeights","dataTable","rowCount","lastLine","legendItem2","lines","j","itemHeight","onLegendAfterGetAllItems","bubbleSeriesIndex","destroyItem","onLegendItemClick","defaultPrevented","status","orgTranslateX","orgTranslateY","actualLine","round","LegendClass","highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_","highcharts_Point_commonjs_highcharts_Point_commonjs2_highcharts_Point_root_Highcharts_Point_default","BubblePoint_extends","ScatterPoint","scatter","BubblePoint_extend","BubblePoint","computedSize","ttBelow","BubbleSeries_extends","BubbleSeries_color","BubbleSeries_composed","BubbleSeries_noop","Series","BubbleSeries_a","BubbleSeries_columnProto","ScatterSeries","BubbleSeries_addEvent","BubbleSeries_arrayMax","BubbleSeries_arrayMin","clamp","BubbleSeries_extend","BubbleSeries_isNumber","BubbleSeries_merge","BubbleSeries_pick","BubbleSeries_pushUnique","onAxisFoundExtremes","hasActiveSeries","axisLength","isXAxis","pxMin","pxMax","transA","bubblePadding","reserveSpace","allowZoomOutside","onPoint","getRadii","radii","dataMin","logarithmic","keys","onAxisAfterRender","tickPositions","dataMax","categories","type","find","tickCount","BubbleSeries","AxisClass","Bubble_BubbleLegendComposition","animate","animationLimit","hasRendered","markerAttribs","animation","yData","zExtremes","bubbleZExtremes","valid_1","zMin_1","zMax_1","otherSeries","zExtremes_1","getZExtremes","yValue","sizeByArea","zRange","hasData","markerOptions","translateBubble","zoneAxis","z","dlBox","getPxSize","isPercent","parseInt","searchKDTree","compareX","suppliedPointEvaluator","suppliedBSideCheckEvaluator","p1","p2","comparisonProp","ret","p1Dist","p2Dist","flip","states","hover","radiusPlus","softThreshold","halo","turboThreshold","applyZones","keysAffectYAxis","parallelArrays","trackerGroups","specialGroup","target","ColumnRangePoint_extends","ColumnRangePoint_a","ColumnRangePoint_columnProto","ColumnRangePoint_AreaRangePoint","arearange","ColumnRangePoint_extend","ColumnRangePoint_isNumber","ColumnRangePoint","ColumnRangeSeries_extends","ColumnRangeSeries_noop","ColumnRangeSeries_a","ColumnRangeSeries_AreaRangeSeries","ColumnSeries","ColumnRangeSeries_columnProto","ColumnRangeSeries_addEvent","ColumnRangeSeries_clamp","ColumnRangeSeries_extend","ColumnRangeSeries_isNumber","ColumnRangeSeries_merge","ColumnRangeSeries_pick","columnRangeOptions","where","pointRange","legendSymbol","ColumnRangeSeries","stacking","translate3dPoints","translate3dShapes","afterColumnTranslate","heightDifference","startAngleRad","isRadial","safeDistance","chartWidth","chartHeight","minPointLength","rectPlotY","barX","shapeType","arc","pointWidth","crispCol","adjustForMissingColumns","drawGraph","getSymbol","drawTracker","getColumnMetrics","ColumnPyramid_ColumnPyramidSeriesDefaults","ColumnPyramidSeries_extends","ColumnPyramidSeries_ColumnSeries","ColumnPyramidSeries_clamp","ColumnPyramidSeries_merge","ColumnPyramidSeries_pick","ColumnPyramidSeries","dense","closestPointRange","metrics","offset","translatedThreshold","getThreshold","seriesBarW","pointPadding","barY","barH","stackTotal","stackHeight","topXwidth","bottomXwidth","invBarPos","x3","x4","centerInCategory","total","topPointY","ErrorBar_ErrorBarSeriesDefaults","grouping","linkedTo","ErrorBarSeries_extends","ErrorBarSeries_AreaRangeSeries","ErrorBarSeries_addEvent","ErrorBarSeries_merge","ErrorBarSeries_extend","ErrorBarSeries","linkedParent","columnMetrics","valKey","BoxPlot_BoxPlotSeries","GaugePoint_extends","GaugePoint","GaugeSeries_extends","GaugeSeries_noop","GaugeSeries_Series","GaugeSeries_ColumnSeries","GaugeSeries_clamp","GaugeSeries_isNumber","GaugeSeries_extend","GaugeSeries_merge","GaugeSeries_pick","pInt","GaugeSeries_defined","GaugeSeries","generatePoints","dialOptions","dial","baseLength","rearLength","baseWidth","topWidth","overshoot","rotation","endAngleRad","percentage","pivot","pivotOptions","plotGroup","seriesGroup","clip","clipRect","setData","processData","crop","defer","headerFormat","showInLegend","fixedBox","forceDL","noSharedTooltip","DragNodesComposition_composed","DragNodesComposition_addEvent","DragNodesComposition_pushUnique","onChartLoad","mousedownUnbinder","mousemoveUnbinder","mouseupUnbinder","container","event","hasDraggableNodes","draggable","onMouseDown","onMouseMove","ownerDocument","onMouseUp","Series_DragNodesComposition","normalizedEvent","pointer","normalize","fixedPosition","inDragMode","diffX","diffY","graphLayoutsLookup","newPlotX","newPlotY","hasDragged","redrawHalo","restartSimulation","enableSimulation","fixedDraggable","setAnimation","GraphLayoutComposition_composed","GraphLayoutComposition_addEvent","GraphLayoutComposition_pushUnique","onChartAfterPrint","updateSimulation","onChartBeforePrint","onChartPredraw","stop","onChartRender","systemsStable","afterRender","layoutStep","maxIterations","isFinite","temperature","isStable","beforeStep","Series_GraphLayoutComposition","integrations","layouts","highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_","highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default","PackedBubblePoint_extends","PackedBubblePoint","removeElementFromCollection","nodes","firePointEvent","seriesOptions","isParentNode","parentNode","temp","allowPointSelect","select","getSelectedPoints","getSelectedParentNodes","bubble","PackedBubbleSeriesDefaults_isNumber","PackedBubble_PackedBubbleSeriesDefaults","useSimulation","parentNodeFormatter","name","parentNodeTextPath","padding","transition","layoutAlgorithm","initialPositions","initialPositionRadius","parentNodeLimit","seriesInteraction","dragBetweenSeries","parentNodeOptions","gravitationalConstant","maxSpeed","integration","splitSeries","friction","Networkgraph_VerletIntegration","attractive","link","force","distanceXY","massFactor","getMass","translatedX","diffTemperature","translatedY","fromNode","degree","toNode","attractiveForceFunction","k","barycenter","xFactor","yFactor","top","node","mass","getK","integrate","prevX","prevY","frictionX","dispX","frictionY","dispY","signX","signY","vectorLength","repulsive","factor","repulsiveForceFunction","PackedBubbleIntegration","centerX","centerY","nodes_1","repNode","Networkgraph_EulerIntegration","distanceR","getDegree","phi","QuadTreeNode","body","isEmpty","isInternal","boxSize","divideBox","halfHeight","getBoxPosition","insert","depth","newQuadTreeNode","NaN","updateMassAndCenter","pointMass","QuadTree","maxDepth","isRoot","calculateMassAndCenter","visitNodeRecursive","insertNodes","beforeCallback","afterCallback","goFurther","qtNode","win","ReingoldFruchtermanLayout_clamp","ReingoldFruchtermanLayout_defined","isFunction","ReingoldFruchtermanLayout_fireEvent","ReingoldFruchtermanLayout_pick","ReingoldFruchtermanLayout","currentStep","initialRendering","links","simulation","euler","verlet","setInitialRendering","attractiveForce","repulsiveForce","approximation","enable","forces","initPositions","finishedAnimating","setK","resetSimulation","allSeries","createQuadTree","quadTree","anyLayout","forceName","applyLimits","coolDown","startTemperature","prevSystemTemperature","systemTemperature","getSystemTemperature","allSeries_1","cancelAnimationFrame","requestAnimationFrame","setArea","w","h","linkLength","addElementsToCollection","elements","collection","elements_1","element","indexOf","clear","forcedStop","setMaxIterations","setTemperature","setDiffTemperature","setCircularPositions","setRandomPositions","rootNodes","linksTo","visitedNodes","addToNodes","linksFrom","id","sortedNodes","rootNodes_1","rootNode","node_1","iEnd","cos","sin","nodesLength","unrandom","rand","floor","args","barycenterForces","getBarycenter","systemMass","barnesHutApproximation","quadNode","goDeeper","getDistXY","theta","repulsiveForces","_loop_1","this_1","attractiveForces","nodes_2","applyLimitBox","temperatureStep","vector","getDistR","nodeA","nodeB","xDist","yDist","absX","absY","PackedBubbleLayout_extends","PackedBubbleLayout_addEvent","PackedBubbleLayout_pick","chartGetSelectedParentNodes","selectedParentsNodes","selected","onChartBeforeRedraw","allDataPoints","PackedBubbleLayout","Networkgraph_ReingoldFruchtermanLayout","packedbubble","calculateParentRadius","tempDiff","neighbours","parentNodeRadius","SimulationSeriesUtilities_merge","syncTimeout","animObject","SimulationSeriesUtilities","initDataLabels","dlOptions","dataLabelsGroup","initDataLabelsGroup","opacity","getPlotBox","initDataLabelsDefer","deferDataLabels","highcharts_SVGElement_commonjs_highcharts_SVGElement_commonjs2_highcharts_SVGElement_root_Highcharts_SVGElement_","highcharts_SVGElement_commonjs_highcharts_SVGElement_commonjs2_highcharts_SVGElement_root_Highcharts_SVGElement_default","TextPath_deg2rad","TextPath_addEvent","TextPath_merge","uniqueKey","TextPath_defined","TextPath_extend","setTextPath","textPathOptions","attributes","dy","startOffset","textAnchor","url","textWrapper","textPath","undo","textPathId","textAttribs","dx","transform","children","tagName","href","added","textCache","buildText","setPolygon","bBox","tp","querySelector","polygon","fontMetrics","b_1","descender_1","lineCleanerRegex","RegExp","innerHTML","replace","split","numOfLines","appendTopAndBottom","charIndex","positionOfChar","getRotationOfChar","cosRot","sinRot","lineIndex","lineLen","line","lineCharIndex","srcCharIndex","getStartPositionOfChar","lower","upper","unshift","charPos","getEndPositionOfChar","drawTextPath","labelOptions","formatPrefix","useHTML","getDataLabelPath","dataLabelPath","PackedBubbleSeries_extends","PackedBubbleSeries_color","PackedBubbleSeries_noop","seriesProto","PackedBubbleSeries_BubbleSeries","PackedBubbleSeries_initDataLabels","PackedBubbleSeries_initDataLabelsDefer","PackedBubbleSeries_addEvent","PackedBubbleSeries_clamp","PackedBubbleSeries_defined","PackedBubbleSeries_extend","PackedBubbleSeries_fireEvent","PackedBubbleSeries_isArray","PackedBubbleSeries_isNumber","PackedBubbleSeries_merge","PackedBubbleSeries_pick","Extensions_TextPath","SVGElementClass","svgElementProto","PackedBubbleSeries","parentNodeMass","PackedBubble_PackedBubbleLayout","accumulateAllPoints","is","valueData","addLayout","layoutOptions","layoutType","chartOptions","graphLayoutsStorage","forExport","collisionNmb","addSeriesLayout","seriesLayout","parentNodeLayout","createParentNodes","seriesBox","calculateZExtremes","valMin","Infinity","valMax","checkOverlap","bubble1","bubble2","nodeAdded","parentMarkerOptions","brighten","normal","dataLabelOnNull","deferLayout","nodeMarker","parentOptions","parentAttribs","parentNodesGroup","graph","div","getPointRadius","extremes","allDataPointsLength","minRadius","maxRadius","eventsToUnbind","isDirty","dnPoint","removed","distanceXY_1","layout_1","addPoint","remove","placeBubbles","calculatedBubble","positionBubble","bubblePos","stage","arr","sortedArr","sort","stages","rawPositions","resizeRadius","hasParentMarker","lastBubble","newOrigin","nextBubble","asin","acos","alfa","beta","finalAngle","gamma","cosA","sinA","minX","maxX","minY","maxY","POSITIVE_INFINITY","NEGATIVE_INFINITY","positions_1","spaceRatio","smallerDimension","positions_2","setVisible","positions_3","axisTypes","invertible","isCartesian","requireSorting","indexateNodes","searchPoint","Polygon_PolygonSeriesDefaults","stickyTracking","followPointer","PolygonSeries_extends","PolygonSeries_noop","PolygonSeries_a","PolygonSeries_AreaSeries","LineSeries","PolygonSeries_ScatterSeries","PolygonSeries_extend","PolygonSeries_merge","PolygonSeries","Axis_RadialAxisDefaults","circular","gridLineWidth","maxPadding","minPadding","showLastLabel","tickLength","radial","gridLineInterpolation","title","radialGauge","endOnTick","minorGridLineWidth","minorTickInterval","minorTickLength","minorTickPosition","minorTickWidth","startOnTick","tickPixelInterval","tickPosition","tickWidth","RadialAxis_composed","RadialAxis_noop","RadialAxis_addEvent","RadialAxis_correctFloat","RadialAxis_defined","RadialAxis_extend","RadialAxis_fireEvent","isObject","RadialAxis_merge","RadialAxis_pick","RadialAxis_pushUnique","RadialAxis_relativeLength","RadialAxis_wrap","beforeSetTickPositions","autoConnect","isCircular","userMax","createLabelCollector","map","Boolean","createLabelCollectorHidden","getCrosshairPosition","getPosition","getLinePath","_lineWidth","r","horiz","open","innerR","xBounds","yBounds","angleRad","getOffset","axisProto","axisOffset","side","xOnPerimeter","radiusToPixels","percentRegex","fullRadius","getPlotLinePath","transFrom","transTo","innerRatio","otherAxis","crossPos","isCrosshair","paneInnerR","translatedVal","getTitlePosition","titleOptions","middle","modify","setAxisSize","setAxisTranslation","onAxisAfterInit","isHidden","paneOptions","fullCircle","normalizedStart","normalizedEnd","onAxisAutoLabelAlign","preventDefault","onAxisDestroy","labelCollectors","labelCollector","onAxisInit","isX","paneIndex","userOptions","radialAxis","renderHidden","setCategories","setTitle","onAxisInitialAxisTranslation","onTickAfterGetLabelPosition","labelBBox","correctAngle","labelYPosCorrection","optionsY","centerSlot","labelDir","reducedAngle1","reducedAngle2","tickInterval","onTickAfterGetPosition","onGlobalSetOptions","radialDefaultOptions","sector","minPixelPadding","minPointOffset","defaultPolarOptions","stackLabels","reversedStacks","plotBands","wrapTickGetMarkPath","endPoint","TickClass","Axis_RadialAxis","PolarComposition_spreadArray","PolarComposition_animObject","PolarComposition_composed","PolarComposition_addEvent","PolarComposition_defined","PolarComposition_isNumber","PolarComposition_merge","PolarComposition_pick","PolarComposition_pushUnique","PolarComposition_relativeLength","PolarComposition_splat","PolarComposition_uniqueKey","PolarComposition_wrap","onChartAfterDrawChartBox","onChartAfterInit","onChartCreateAxes","onPointerGetSelectionBox","linearAxis","result","onPointerGetSelectionMarkerAttrs","mouseDownX","mouseDownY","attrs","zoomHor","paneRadRange","pathStart","toValue","pathEnd","getExtremes","min_1","max_1","min_2","max_2","trimPath","zoomVert","linearAxis_1","innerPath","outerPath","radialAxis_1","onSeriesAfterInit","PolarAdditions","isRadialSeries","isRadialBar","onSeriesAfterTranslate","chart_1","kdByAngle","searchPointByAngleOrInverted","findNearestPointBy","toXY","hasParallelCoordinates","reversed","MIN_VALUE","hasClipCircleSetter","circ","clipPath","wrapper","clipCircle","createElement","defs","setClip","searchKDTreePoint","clientX","lastTick","firstTick","wrapChartGet","wrapColumnSeriesAlignDataLabel","alignTo","labelPos","onAfterColumnTranslate","yMin","yMax","pointX","pointY","stackValues","stack","visibleRange","thresholdAngleRad","stacks","stackKey","getStackIndicator","brOption","brValue","wrapLineSeriesGetGraphPath","firstValid","popLastPoint","pop","wrapPointerGetCoordinates","wrapPointerPinch","wrapSeriesAnimate","markerGroup","pie","scaleX","scaleY","wrapSplineSeriesGetPointSpline","segment","rightContX","getConnectors","calculateNeighbours","leftContX","leftContY","rightContY","jointAngle","addedNumber","prevPointInd","nextPointInd","previousPoint","nextPoint","previousX","previousY","nextX","nextY","smoothing","dLControlPoint","dRControlPoint","leftContAngle","prevPointCont","wrapPointPos","chartCoordinates","destroyed","SeriesClass","PointClass","AreaSplineRangeSeriesClass","ColumnSeriesClass","LineSeriesClass","SplineSeriesClass","Pane_Pane","pointProto","pointerProto","areaSplineRangeProto","polarPlotX","highcharts_StackItem_commonjs_highcharts_StackItem_commonjs2_highcharts_StackItem_root_Highcharts_StackItem_","highcharts_StackItem_commonjs_highcharts_StackItem_commonjs2_highcharts_StackItem_root_Highcharts_StackItem_default","WaterfallAxis_composed","WaterfallAxis_addEvent","WaterfallAxis_objectEach","WaterfallAxis_pushUnique","onAxisAfterBuildStacks","waterfall","changed","alreadyChanged","stackLabelOptions","renderStackTotals","Composition","series_1","serie","axes_1","waterfallStacks","stackTotalGroup","dummyStackItem","stackItem","Axis_WaterfallAxis","WaterfallPoint_extends","WaterfallPoint_isNumber","WaterfallPoint","getClassName","isSum","isIntermediateSum","Waterfall_WaterfallSeriesDefaults","lineWidthPlus","WaterfallSeries_extends","WaterfallSeries_a","WaterfallSeries_ColumnSeries","WaterfallSeries_LineSeries","WaterfallSeries_addEvent","WaterfallSeries_arrayMax","WaterfallSeries_arrayMin","WaterfallSeries_correctFloat","WaterfallSeries_crisp","WaterfallSeries_extend","WaterfallSeries_isNumber","WaterfallSeries_merge","WaterfallSeries_objectEach","WaterfallSeries_pick","ownProp","WaterfallSeries","processedYData","subSum","sum","dataLength","pt","upColor","getCrispPath","graphLineWidth","reversedXAxis","reversedYAxis","prevPoint","prevBox","prevStack","isPos","prevStackX","connectorThreshold","minPointLengthOffset","nextLast","last","actualStackX","statesLen","posTotal","negTotal","xPoint","yVal","seriesThreshold","xData","xLength","stackThreshold","interSum","totalYVal","actualSum","prevSum","calculateStackState","firstS","nextS","sInx","sOff","stackState","actualStack","stateIndex","absolutePos","absoluteNeg","stackedYNeg","stackedYPos","stackX","showLine","hPos","halfMinPointLength","previousIntermediate","setOffset","tooltipY","isPointInside","crispBottom","G","Bubble_BubbleSeries","Axis","Chart","Legend","PackedBubble_PackedBubbleSeries","Pointer","PolarComposition","Tick","Point","areasplinerange","Waterfall_WaterfallSeries"],"mappings":"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"}
Hacked By AnonymousFox1.0, Coded By AnonymousFox