Hacked By AnonymousFox
{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highcharts JS v12.1.2 (2025-01-09)\n * @module highcharts/modules/treemap\n * @requires highcharts\n *\n * (c) 2014-2024 Highsoft AS\n * Authors: Jon Arild Nygard / Oystein Moseng\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\")[\"Templating\"], require(\"highcharts\")[\"Color\"], require(\"highcharts\")[\"SeriesRegistry\"], require(\"highcharts\")[\"SVGElement\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/modules/treemap\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"Templating\"], [\"highcharts/highcharts\",\"Color\"], [\"highcharts/highcharts\",\"SeriesRegistry\"], [\"highcharts/highcharts\",\"SVGElement\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/modules/treemap\"] = factory(require(\"highcharts\"), require(\"highcharts\")[\"Templating\"], require(\"highcharts\")[\"Color\"], require(\"highcharts\")[\"SeriesRegistry\"], require(\"highcharts\")[\"SVGElement\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"Templating\"], root[\"Highcharts\"][\"Color\"], root[\"Highcharts\"][\"SeriesRegistry\"], root[\"Highcharts\"][\"SVGElement\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__984__, __WEBPACK_EXTERNAL_MODULE__620__, __WEBPACK_EXTERNAL_MODULE__512__, __WEBPACK_EXTERNAL_MODULE__28__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 620:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__620__;\n\n/***/ }),\n\n/***/ 28:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__28__;\n\n/***/ }),\n\n/***/ 512:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__512__;\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 */ treemap_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;// ./code/es5/es-modules/Extensions/Breadcrumbs/BreadcrumbsDefaults.js\n/* *\n *\n * Highcharts Breadcrumbs module\n *\n * Authors: Grzegorz Blachlinski, Karol Kolodziej\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 * @optionparent lang\n */\nvar lang = {\n /**\n * @since 10.0.0\n * @product highcharts highmaps\n *\n * @private\n */\n mainBreadcrumb: 'Main'\n};\n/**\n * Options for breadcrumbs. Breadcrumbs general options are defined in\n * `navigation.breadcrumbs`. Specific options for drilldown are set in\n * `drilldown.breadcrumbs` and for tree-like series traversing, in\n * `plotOptions[series].breadcrumbs`.\n *\n * @since 10.0.0\n * @product highcharts\n * @optionparent navigation.breadcrumbs\n */\nvar options = {\n /**\n * A collection of attributes for the buttons. The object takes SVG\n * attributes like `fill`, `stroke`, `stroke-width`, as well as `style`,\n * a collection of CSS properties for the text.\n *\n * The object can also be extended with states, so you can set\n * presentational options for `hover`, `select` or `disabled` button\n * states.\n *\n * @sample {highcharts} highcharts/breadcrumbs/single-button\n * Themed, single button\n *\n * @type {Highcharts.SVGAttributes}\n * @since 10.0.0\n * @product highcharts\n */\n buttonTheme: {\n /** @ignore */\n fill: 'none',\n /** @ignore */\n height: 18,\n /** @ignore */\n padding: 2,\n /** @ignore */\n 'stroke-width': 0,\n /** @ignore */\n zIndex: 7,\n /** @ignore */\n states: {\n select: {\n fill: 'none'\n }\n },\n style: {\n color: \"#334eff\" /* Palette.highlightColor80 */\n }\n },\n /**\n * The default padding for each button and separator in each direction.\n *\n * @type {number}\n * @since 10.0.0\n */\n buttonSpacing: 5,\n /**\n * Fires when clicking on the breadcrumbs button. Two arguments are\n * passed to the function. First breadcrumb button as an SVG element.\n * Second is the breadcrumbs class, containing reference to the chart,\n * series etc.\n *\n * ```js\n * click: function(button, breadcrumbs) {\n * console.log(button);\n * }\n * ```\n *\n * Return false to stop default buttons click action.\n *\n * @type {Highcharts.BreadcrumbsClickCallbackFunction}\n * @since 10.0.0\n * @apioption navigation.breadcrumbs.events.click\n */\n /**\n * When the breadcrumbs are floating, the plot area will not move to\n * make space for it. By default, the chart will not make space for the\n * buttons. This property won't work when positioned in the middle.\n *\n * @sample highcharts/breadcrumbs/single-button\n * Floating button\n *\n * @type {boolean}\n * @since 10.0.0\n */\n floating: false,\n /**\n * A format string for the breadcrumbs button. Variables are enclosed by\n * curly brackets. Available values are passed in the declared point\n * options.\n *\n * @type {string|undefined}\n * @since 10.0.0\n * @default undefined\n * @sample {highcharts} highcharts/breadcrumbs/format Display custom\n * values in breadcrumb button.\n */\n format: void 0,\n /**\n * Callback function to format the breadcrumb text from scratch.\n *\n * @type {Highcharts.BreadcrumbsFormatterCallbackFunction}\n * @since 10.0.0\n * @default undefined\n * @apioption navigation.breadcrumbs.formatter\n */\n /**\n * What box to align the button to. Can be either `plotBox` or\n * `spacingBox`.\n *\n * @type {Highcharts.ButtonRelativeToValue}\n * @default plotBox\n * @since 10.0.0\n * @product highcharts highmaps\n */\n relativeTo: 'plotBox',\n /**\n * Whether to reverse the order of buttons. This is common in Arabic\n * and Hebrew.\n *\n * @sample {highcharts} highcharts/breadcrumbs/rtl\n * Breadcrumbs in RTL\n *\n * @type {boolean}\n * @since 10.2.0\n */\n rtl: false,\n /**\n * Positioning for the button row. The breadcrumbs buttons will be\n * aligned properly for the default chart layout (title, subtitle,\n * legend, range selector) for the custom chart layout set the position\n * properties.\n *\n * @sample {highcharts} highcharts/breadcrumbs/single-button\n * Single, right aligned button\n *\n * @type {Highcharts.BreadcrumbsAlignOptions}\n * @since 10.0.0\n * @product highcharts highmaps\n */\n position: {\n /**\n * Horizontal alignment of the breadcrumbs buttons.\n *\n * @type {Highcharts.AlignValue}\n */\n align: 'left',\n /**\n * Vertical alignment of the breadcrumbs buttons.\n *\n * @type {Highcharts.VerticalAlignValue}\n */\n verticalAlign: 'top',\n /**\n * The X offset of the breadcrumbs button group.\n *\n * @type {number}\n */\n x: 0,\n /**\n * The Y offset of the breadcrumbs button group. When `undefined`,\n * and `floating` is `false`, the `y` position is adapted so that\n * the breadcrumbs are rendered outside the target area.\n *\n * @type {number|undefined}\n */\n y: void 0\n },\n /**\n * Options object for Breadcrumbs separator.\n *\n * @since 10.0.0\n */\n separator: {\n /**\n * @type {string}\n * @since 10.0.0\n * @product highcharts\n */\n text: '/',\n /**\n * CSS styles for the breadcrumbs separator.\n *\n * In styled mode, the breadcrumbs separators are styled by the\n * `.highcharts-separator` rule with its different states.\n * @type {Highcharts.CSSObject}\n * @since 10.0.0\n */\n style: {\n color: \"#666666\" /* Palette.neutralColor60 */,\n fontSize: '0.8em'\n }\n },\n /**\n * Show full path or only a single button.\n *\n * @sample {highcharts} highcharts/breadcrumbs/single-button\n * Single, styled button\n *\n * @type {boolean}\n * @since 10.0.0\n */\n showFullPath: true,\n /**\n * CSS styles for all breadcrumbs.\n *\n * In styled mode, the breadcrumbs buttons are styled by the\n * `.highcharts-breadcrumbs-buttons .highcharts-button` rule with its\n * different states.\n *\n * @type {Highcharts.SVGAttributes}\n * @since 10.0.0\n */\n style: {},\n /**\n * Whether to use HTML to render the breadcrumbs items texts.\n *\n * @type {boolean}\n * @since 10.0.0\n */\n useHTML: false,\n /**\n * The z index of the breadcrumbs group.\n *\n * @type {number}\n * @since 10.0.0\n */\n zIndex: 7\n};\n/* *\n *\n * Default Export\n *\n * */\nvar BreadcrumbsDefaults = {\n lang: lang,\n options: options\n};\n/* harmony default export */ var Breadcrumbs_BreadcrumbsDefaults = (BreadcrumbsDefaults);\n\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/Extensions/Breadcrumbs/Breadcrumbs.js\n/* *\n *\n * Highcharts Breadcrumbs module\n *\n * Authors: Grzegorz Blachlinski, Karol Kolodziej\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nvar format = (highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default()).format;\n\nvar composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\nvar addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, isString = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isString, merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, objectEach = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).objectEach, pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Shift the drillUpButton to make the space for resetZoomButton, #8095.\n * @private\n */\nfunction onChartAfterShowResetZoom() {\n var chart = this;\n if (chart.breadcrumbs) {\n var bbox = chart.resetZoomButton &&\n chart.resetZoomButton.getBBox(),\n breadcrumbsOptions = chart.breadcrumbs.options;\n if (bbox &&\n breadcrumbsOptions.position.align === 'right' &&\n breadcrumbsOptions.relativeTo === 'plotBox') {\n chart.breadcrumbs.alignBreadcrumbsGroup(-bbox.width - breadcrumbsOptions.buttonSpacing);\n }\n }\n}\n/**\n * Remove resize/afterSetExtremes at chart destroy.\n * @private\n */\nfunction onChartDestroy() {\n if (this.breadcrumbs) {\n this.breadcrumbs.destroy();\n this.breadcrumbs = void 0;\n }\n}\n/**\n * Logic for making space for the buttons above the plot area\n * @private\n */\nfunction onChartGetMargins() {\n var breadcrumbs = this.breadcrumbs;\n if (breadcrumbs &&\n !breadcrumbs.options.floating &&\n breadcrumbs.level) {\n var breadcrumbsOptions = breadcrumbs.options,\n buttonTheme = breadcrumbsOptions.buttonTheme,\n breadcrumbsHeight = ((buttonTheme.height || 0) +\n 2 * (buttonTheme.padding || 0) +\n breadcrumbsOptions.buttonSpacing),\n verticalAlign = breadcrumbsOptions.position.verticalAlign;\n if (verticalAlign === 'bottom') {\n this.marginBottom = (this.marginBottom || 0) + breadcrumbsHeight;\n breadcrumbs.yOffset = breadcrumbsHeight;\n }\n else if (verticalAlign !== 'middle') {\n this.plotTop += breadcrumbsHeight;\n breadcrumbs.yOffset = -breadcrumbsHeight;\n }\n else {\n breadcrumbs.yOffset = void 0;\n }\n }\n}\n/**\n * @private\n */\nfunction onChartRedraw() {\n this.breadcrumbs && this.breadcrumbs.redraw();\n}\n/**\n * After zooming out, shift the drillUpButton to the previous position, #8095.\n * @private\n */\nfunction onChartSelection(event) {\n if (event.resetSelection === true &&\n this.breadcrumbs) {\n this.breadcrumbs.alignBreadcrumbsGroup();\n }\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * The Breadcrumbs class\n *\n * @private\n * @class\n * @name Highcharts.Breadcrumbs\n *\n * @param {Highcharts.Chart} chart\n * Chart object\n * @param {Highcharts.Options} userOptions\n * User options\n */\nvar Breadcrumbs = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function Breadcrumbs(chart, userOptions) {\n this.elementList = {};\n this.isDirty = true;\n this.level = 0;\n this.list = [];\n var chartOptions = merge(chart.options.drilldown &&\n chart.options.drilldown.drillUpButton,\n Breadcrumbs.defaultOptions,\n chart.options.navigation && chart.options.navigation.breadcrumbs,\n userOptions);\n this.chart = chart;\n this.options = chartOptions || {};\n }\n /* *\n *\n * Functions\n *\n * */\n Breadcrumbs.compose = function (ChartClass, highchartsDefaultOptions) {\n if (pushUnique(composed, 'Breadcrumbs')) {\n addEvent(ChartClass, 'destroy', onChartDestroy);\n addEvent(ChartClass, 'afterShowResetZoom', onChartAfterShowResetZoom);\n addEvent(ChartClass, 'getMargins', onChartGetMargins);\n addEvent(ChartClass, 'redraw', onChartRedraw);\n addEvent(ChartClass, 'selection', onChartSelection);\n // Add language support.\n extend(highchartsDefaultOptions.lang, Breadcrumbs_BreadcrumbsDefaults.lang);\n }\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * Update Breadcrumbs properties, like level and list.\n *\n * @function Highcharts.Breadcrumbs#updateProperties\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n */\n Breadcrumbs.prototype.updateProperties = function (list) {\n this.setList(list);\n this.setLevel();\n this.isDirty = true;\n };\n /**\n * Set breadcrumbs list.\n * @function Highcharts.Breadcrumbs#setList\n *\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n * @param {Highcharts.BreadcrumbsOptions} list\n * Breadcrumbs list.\n */\n Breadcrumbs.prototype.setList = function (list) {\n this.list = list;\n };\n /**\n * Calculate level on which chart currently is.\n *\n * @function Highcharts.Breadcrumbs#setLevel\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n */\n Breadcrumbs.prototype.setLevel = function () {\n this.level = this.list.length && this.list.length - 1;\n };\n /**\n * Get Breadcrumbs level\n *\n * @function Highcharts.Breadcrumbs#getLevel\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n */\n Breadcrumbs.prototype.getLevel = function () {\n return this.level;\n };\n /**\n * Default button text formatter.\n *\n * @function Highcharts.Breadcrumbs#getButtonText\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n * @param {Highcharts.Breadcrumbs} breadcrumb\n * Breadcrumb.\n * @return {string}\n * Formatted text.\n */\n Breadcrumbs.prototype.getButtonText = function (breadcrumb) {\n var breadcrumbs = this,\n chart = breadcrumbs.chart,\n breadcrumbsOptions = breadcrumbs.options,\n lang = chart.options.lang,\n textFormat = pick(breadcrumbsOptions.format,\n breadcrumbsOptions.showFullPath ?\n '{level.name}' : '← {level.name}'),\n defaultText = lang && pick(lang.drillUpText,\n lang.mainBreadcrumb);\n var returnText = breadcrumbsOptions.formatter &&\n breadcrumbsOptions.formatter(breadcrumb) ||\n format(textFormat, { level: breadcrumb.levelOptions },\n chart) || '';\n if (((isString(returnText) &&\n !returnText.length) ||\n returnText === '← ') &&\n defined(defaultText)) {\n returnText = !breadcrumbsOptions.showFullPath ?\n '← ' + defaultText :\n defaultText;\n }\n return returnText;\n };\n /**\n * Redraw.\n *\n * @function Highcharts.Breadcrumbs#redraw\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n */\n Breadcrumbs.prototype.redraw = function () {\n if (this.isDirty) {\n this.render();\n }\n if (this.group) {\n this.group.align();\n }\n this.isDirty = false;\n };\n /**\n * Create a group, then draw breadcrumbs together with the separators.\n *\n * @function Highcharts.Breadcrumbs#render\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n */\n Breadcrumbs.prototype.render = function () {\n var breadcrumbs = this,\n chart = breadcrumbs.chart,\n breadcrumbsOptions = breadcrumbs.options;\n // A main group for the breadcrumbs.\n if (!breadcrumbs.group && breadcrumbsOptions) {\n breadcrumbs.group = chart.renderer\n .g('breadcrumbs-group')\n .addClass('highcharts-no-tooltip highcharts-breadcrumbs')\n .attr({\n zIndex: breadcrumbsOptions.zIndex\n })\n .add();\n }\n // Draw breadcrumbs.\n if (breadcrumbsOptions.showFullPath) {\n this.renderFullPathButtons();\n }\n else {\n this.renderSingleButton();\n }\n this.alignBreadcrumbsGroup();\n };\n /**\n * Draw breadcrumbs together with the separators.\n *\n * @function Highcharts.Breadcrumbs#renderFullPathButtons\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n */\n Breadcrumbs.prototype.renderFullPathButtons = function () {\n // Make sure that only one type of button is visible.\n this.destroySingleButton();\n this.resetElementListState();\n this.updateListElements();\n this.destroyListElements();\n };\n /**\n * Render Single button - when showFullPath is not used. The button is\n * similar to the old drillUpButton\n *\n * @function Highcharts.Breadcrumbs#renderSingleButton\n * @param {Highcharts.Breadcrumbs} this Breadcrumbs class.\n */\n Breadcrumbs.prototype.renderSingleButton = function () {\n var breadcrumbs = this,\n chart = breadcrumbs.chart,\n list = breadcrumbs.list,\n breadcrumbsOptions = breadcrumbs.options,\n buttonSpacing = breadcrumbsOptions.buttonSpacing;\n // Make sure that only one type of button is visible.\n this.destroyListElements();\n // Draw breadcrumbs. Initial position for calculating the breadcrumbs\n // group.\n var posX = breadcrumbs.group ?\n breadcrumbs.group.getBBox().width :\n buttonSpacing,\n posY = buttonSpacing;\n var previousBreadcrumb = list[list.length - 2];\n if (!chart.drillUpButton && (this.level > 0)) {\n chart.drillUpButton = breadcrumbs.renderButton(previousBreadcrumb, posX, posY);\n }\n else if (chart.drillUpButton) {\n if (this.level > 0) {\n // Update button.\n this.updateSingleButton();\n }\n else {\n this.destroySingleButton();\n }\n }\n };\n /**\n * Update group position based on align and it's width.\n *\n * @function Highcharts.Breadcrumbs#renderSingleButton\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n */\n Breadcrumbs.prototype.alignBreadcrumbsGroup = function (xOffset) {\n var breadcrumbs = this;\n if (breadcrumbs.group) {\n var breadcrumbsOptions = breadcrumbs.options,\n buttonTheme = breadcrumbsOptions.buttonTheme,\n positionOptions = breadcrumbsOptions.position,\n alignTo = (breadcrumbsOptions.relativeTo === 'chart' ||\n breadcrumbsOptions.relativeTo === 'spacingBox' ?\n void 0 :\n 'plotBox'),\n bBox = breadcrumbs.group.getBBox(),\n additionalSpace = 2 * (buttonTheme.padding || 0) +\n breadcrumbsOptions.buttonSpacing;\n // Store positionOptions\n positionOptions.width = bBox.width + additionalSpace;\n positionOptions.height = bBox.height + additionalSpace;\n var newPositions = merge(positionOptions);\n // Add x offset if specified.\n if (xOffset) {\n newPositions.x += xOffset;\n }\n if (breadcrumbs.options.rtl) {\n newPositions.x += positionOptions.width;\n }\n newPositions.y = pick(newPositions.y, this.yOffset, 0);\n breadcrumbs.group.align(newPositions, true, alignTo);\n }\n };\n /**\n * Render a button.\n *\n * @function Highcharts.Breadcrumbs#renderButton\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n * @param {Highcharts.Breadcrumbs} breadcrumb\n * Current breadcrumb\n * @param {Highcharts.Breadcrumbs} posX\n * Initial horizontal position\n * @param {Highcharts.Breadcrumbs} posY\n * Initial vertical position\n * @return {SVGElement|void}\n * Returns the SVG button\n */\n Breadcrumbs.prototype.renderButton = function (breadcrumb, posX, posY) {\n var breadcrumbs = this,\n chart = this.chart,\n breadcrumbsOptions = breadcrumbs.options,\n buttonTheme = merge(breadcrumbsOptions.buttonTheme);\n var button = chart.renderer\n .button(breadcrumbs.getButtonText(breadcrumb),\n posX,\n posY,\n function (e) {\n // Extract events from button object and call\n var buttonEvents = breadcrumbsOptions.events &&\n breadcrumbsOptions.events.click;\n var callDefaultEvent;\n if (buttonEvents) {\n callDefaultEvent = buttonEvents.call(breadcrumbs, e, breadcrumb);\n }\n // (difference in behaviour of showFullPath and drillUp)\n if (callDefaultEvent !== false) {\n // For single button we are not going to the button\n // level, but the one level up\n if (!breadcrumbsOptions.showFullPath) {\n e.newLevel = breadcrumbs.level - 1;\n }\n else {\n e.newLevel = breadcrumb.level;\n }\n fireEvent(breadcrumbs, 'up', e);\n }\n }, buttonTheme)\n .addClass('highcharts-breadcrumbs-button')\n .add(breadcrumbs.group);\n if (!chart.styledMode) {\n button.attr(breadcrumbsOptions.style);\n }\n return button;\n };\n /**\n * Render a separator.\n *\n * @function Highcharts.Breadcrumbs#renderSeparator\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n * @param {Highcharts.Breadcrumbs} posX\n * Initial horizontal position\n * @param {Highcharts.Breadcrumbs} posY\n * Initial vertical position\n * @return {Highcharts.SVGElement}\n * Returns the SVG button\n */\n Breadcrumbs.prototype.renderSeparator = function (posX, posY) {\n var breadcrumbs = this,\n chart = this.chart,\n breadcrumbsOptions = breadcrumbs.options,\n separatorOptions = breadcrumbsOptions.separator;\n var separator = chart.renderer\n .label(separatorOptions.text,\n posX,\n posY,\n void 0,\n void 0,\n void 0,\n false)\n .addClass('highcharts-breadcrumbs-separator')\n .add(breadcrumbs.group);\n if (!chart.styledMode) {\n separator.css(separatorOptions.style);\n }\n return separator;\n };\n /**\n * Update.\n * @function Highcharts.Breadcrumbs#update\n *\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n * @param {Highcharts.BreadcrumbsOptions} options\n * Breadcrumbs class.\n * @param {boolean} redraw\n * Redraw flag\n */\n Breadcrumbs.prototype.update = function (options) {\n merge(true, this.options, options);\n this.destroy();\n this.isDirty = true;\n };\n /**\n * Update button text when the showFullPath set to false.\n * @function Highcharts.Breadcrumbs#updateSingleButton\n *\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n */\n Breadcrumbs.prototype.updateSingleButton = function () {\n var chart = this.chart,\n currentBreadcrumb = this.list[this.level - 1];\n if (chart.drillUpButton) {\n chart.drillUpButton.attr({\n text: this.getButtonText(currentBreadcrumb)\n });\n }\n };\n /**\n * Destroy the chosen breadcrumbs group\n *\n * @function Highcharts.Breadcrumbs#destroy\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n */\n Breadcrumbs.prototype.destroy = function () {\n this.destroySingleButton();\n // Destroy elements one by one. It's necessary because\n // g().destroy() does not remove added HTML\n this.destroyListElements(true);\n // Then, destroy the group itself.\n if (this.group) {\n this.group.destroy();\n }\n this.group = void 0;\n };\n /**\n * Destroy the elements' buttons and separators.\n *\n * @function Highcharts.Breadcrumbs#destroyListElements\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n */\n Breadcrumbs.prototype.destroyListElements = function (force) {\n var elementList = this.elementList;\n objectEach(elementList, function (element, level) {\n if (force ||\n !elementList[level].updated) {\n element = elementList[level];\n element.button && element.button.destroy();\n element.separator && element.separator.destroy();\n delete element.button;\n delete element.separator;\n delete elementList[level];\n }\n });\n if (force) {\n this.elementList = {};\n }\n };\n /**\n * Destroy the single button if exists.\n *\n * @function Highcharts.Breadcrumbs#destroySingleButton\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n */\n Breadcrumbs.prototype.destroySingleButton = function () {\n if (this.chart.drillUpButton) {\n this.chart.drillUpButton.destroy();\n this.chart.drillUpButton = void 0;\n }\n };\n /**\n * Reset state for all buttons in elementList.\n *\n * @function Highcharts.Breadcrumbs#resetElementListState\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n */\n Breadcrumbs.prototype.resetElementListState = function () {\n objectEach(this.elementList, function (element) {\n element.updated = false;\n });\n };\n /**\n * Update rendered elements inside the elementList.\n *\n * @function Highcharts.Breadcrumbs#updateListElements\n *\n * @param {Highcharts.Breadcrumbs} this\n * Breadcrumbs class.\n */\n Breadcrumbs.prototype.updateListElements = function () {\n var breadcrumbs = this,\n elementList = breadcrumbs.elementList,\n buttonSpacing = breadcrumbs.options.buttonSpacing,\n posY = buttonSpacing,\n list = breadcrumbs.list,\n rtl = breadcrumbs.options.rtl,\n rtlFactor = rtl ? -1 : 1,\n updateXPosition = function (element,\n spacing) {\n return rtlFactor * element.getBBox().width +\n rtlFactor * spacing;\n }, adjustToRTL = function (element, posX, posY) {\n element.translate(posX - element.getBBox().width, posY);\n };\n // Initial position for calculating the breadcrumbs group.\n var posX = breadcrumbs.group ?\n updateXPosition(breadcrumbs.group,\n buttonSpacing) :\n buttonSpacing,\n currentBreadcrumb,\n breadcrumb;\n for (var i = 0, iEnd = list.length; i < iEnd; ++i) {\n var isLast = i === iEnd - 1;\n var button = void 0,\n separator = void 0;\n breadcrumb = list[i];\n if (elementList[breadcrumb.level]) {\n currentBreadcrumb = elementList[breadcrumb.level];\n button = currentBreadcrumb.button;\n // Render a separator if it was not created before.\n if (!currentBreadcrumb.separator &&\n !isLast) {\n // Add spacing for the next separator\n posX += rtlFactor * buttonSpacing;\n currentBreadcrumb.separator =\n breadcrumbs.renderSeparator(posX, posY);\n if (rtl) {\n adjustToRTL(currentBreadcrumb.separator, posX, posY);\n }\n posX += updateXPosition(currentBreadcrumb.separator, buttonSpacing);\n }\n else if (currentBreadcrumb.separator &&\n isLast) {\n currentBreadcrumb.separator.destroy();\n delete currentBreadcrumb.separator;\n }\n elementList[breadcrumb.level].updated = true;\n }\n else {\n // Render a button.\n button = breadcrumbs.renderButton(breadcrumb, posX, posY);\n if (rtl) {\n adjustToRTL(button, posX, posY);\n }\n posX += updateXPosition(button, buttonSpacing);\n // Render a separator.\n if (!isLast) {\n separator = breadcrumbs.renderSeparator(posX, posY);\n if (rtl) {\n adjustToRTL(separator, posX, posY);\n }\n posX += updateXPosition(separator, buttonSpacing);\n }\n elementList[breadcrumb.level] = {\n button: button,\n separator: separator,\n updated: true\n };\n }\n if (button) {\n button.setState(isLast ? 2 : 0);\n }\n }\n };\n /* *\n *\n * Static Properties\n *\n * */\n Breadcrumbs.defaultOptions = Breadcrumbs_BreadcrumbsDefaults.options;\n return Breadcrumbs;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Breadcrumbs_Breadcrumbs = (Breadcrumbs);\n/* *\n *\n * API Declarations\n *\n * */\n/**\n * Callback function to react on button clicks.\n *\n * @callback Highcharts.BreadcrumbsClickCallbackFunction\n *\n * @param {Highcharts.Event} event\n * Event.\n *\n * @param {Highcharts.BreadcrumbOptions} options\n * Breadcrumb options.\n *\n * @param {global.Event} e\n * Event arguments.\n */\n/**\n * Callback function to format the breadcrumb text from scratch.\n *\n * @callback Highcharts.BreadcrumbsFormatterCallbackFunction\n *\n * @param {Highcharts.Event} event\n * Event.\n *\n * @param {Highcharts.BreadcrumbOptions} options\n * Breadcrumb options.\n *\n * @return {string}\n * Formatted text or false\n */\n/**\n * Options for the one breadcrumb.\n *\n * @interface Highcharts.BreadcrumbOptions\n */\n/**\n * Level connected to a specific breadcrumb.\n * @name Highcharts.BreadcrumbOptions#level\n * @type {number}\n */\n/**\n * Options for series or point connected to a specific breadcrumb.\n * @name Highcharts.BreadcrumbOptions#levelOptions\n * @type {SeriesOptions|PointOptionsObject}\n */\n/**\n * Options for aligning breadcrumbs group.\n *\n * @interface Highcharts.BreadcrumbsAlignOptions\n */\n/**\n * Align of a Breadcrumb group.\n * @default right\n * @name Highcharts.BreadcrumbsAlignOptions#align\n * @type {AlignValue}\n */\n/**\n * Vertical align of a Breadcrumb group.\n * @default top\n * @name Highcharts.BreadcrumbsAlignOptions#verticalAlign\n * @type {VerticalAlignValue}\n */\n/**\n * X offset of a Breadcrumbs group.\n * @name Highcharts.BreadcrumbsAlignOptions#x\n * @type {number}\n */\n/**\n * Y offset of a Breadcrumbs group.\n * @name Highcharts.BreadcrumbsAlignOptions#y\n * @type {number}\n */\n/**\n * Options for all breadcrumbs.\n *\n * @interface Highcharts.BreadcrumbsOptions\n */\n/**\n * Button theme.\n * @name Highcharts.BreadcrumbsOptions#buttonTheme\n * @type { SVGAttributes | undefined }\n */\n(''); // Keeps doclets above in JS file\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\",\"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\",\"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/Series/ColorMapComposition.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 columnProto = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.column.prototype;\n\n\nvar ColorMapComposition_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, ColorMapComposition_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined;\n/* *\n *\n * Composition\n *\n * */\nvar ColorMapComposition;\n(function (ColorMapComposition) {\n /* *\n *\n * Constants\n *\n * */\n ColorMapComposition.pointMembers = {\n dataLabelOnNull: true,\n moveToTopOnHover: true,\n isValid: pointIsValid\n };\n ColorMapComposition.seriesMembers = {\n colorKey: 'value',\n axisTypes: ['xAxis', 'yAxis', 'colorAxis'],\n parallelArrays: ['x', 'y', 'value'],\n pointArrayMap: ['value'],\n trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],\n colorAttribs: seriesColorAttribs,\n pointAttribs: columnProto.pointAttribs\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n function compose(SeriesClass) {\n var PointClass = SeriesClass.prototype.pointClass;\n ColorMapComposition_addEvent(PointClass, 'afterSetState', onPointAfterSetState);\n return SeriesClass;\n }\n ColorMapComposition.compose = compose;\n /**\n * Move points to the top of the z-index order when hovered.\n * @private\n */\n function onPointAfterSetState(e) {\n var point = this,\n series = point.series,\n renderer = series.chart.renderer;\n if (point.moveToTopOnHover && point.graphic) {\n if (!series.stateMarkerGraphic) {\n // Create a `use` element and add it to the end of the group,\n // which would make it appear on top of the other elements. This\n // deals with z-index without reordering DOM elements (#13049).\n series.stateMarkerGraphic = new (highcharts_SVGElement_commonjs_highcharts_SVGElement_commonjs2_highcharts_SVGElement_root_Highcharts_SVGElement_default())(renderer, 'use')\n .css({\n pointerEvents: 'none'\n })\n .add(point.graphic.parentGroup);\n }\n if ((e === null || e === void 0 ? void 0 : e.state) === 'hover') {\n // Give the graphic DOM element the same id as the Point\n // instance\n point.graphic.attr({\n id: this.id\n });\n series.stateMarkerGraphic.attr({\n href: \"\" + renderer.url + \"#\".concat(this.id),\n visibility: 'visible'\n });\n }\n else {\n series.stateMarkerGraphic.attr({\n href: ''\n });\n }\n }\n }\n /**\n * Color points have a value option that determines whether or not it is\n * a null point\n * @private\n */\n function pointIsValid() {\n return (this.value !== null &&\n this.value !== Infinity &&\n this.value !== -Infinity &&\n // Undefined is allowed, but NaN is not (#17279)\n (this.value === void 0 || !isNaN(this.value)));\n }\n /**\n * Get the color attributes to apply on the graphic\n * @private\n * @function Highcharts.colorMapSeriesMixin.colorAttribs\n * @param {Highcharts.Point} point\n * @return {Highcharts.SVGAttributes}\n * The SVG attributes\n */\n function seriesColorAttribs(point) {\n var ret = {};\n if (ColorMapComposition_defined(point.color) &&\n (!point.state || point.state === 'normal') // #15746\n ) {\n ret[this.colorProp || 'fill'] = point.color;\n }\n return ret;\n }\n})(ColorMapComposition || (ColorMapComposition = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Series_ColorMapComposition = (ColorMapComposition);\n\n;// ./code/es5/es-modules/Series/Treemap/TreemapAlgorithmGroup.js\n/* *\n *\n * (c) 2014-2024 Highsoft AS\n *\n * Authors: Jon Arild Nygard / Oystein Moseng\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 * */\nvar TreemapAlgorithmGroup = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function TreemapAlgorithmGroup(h, w, d, p) {\n this.height = h;\n this.width = w;\n this.plot = p;\n this.direction = d;\n this.startDirection = d;\n this.total = 0;\n this.nW = 0;\n this.lW = 0;\n this.nH = 0;\n this.lH = 0;\n this.elArr = [];\n this.lP = {\n total: 0,\n lH: 0,\n nH: 0,\n lW: 0,\n nW: 0,\n nR: 0,\n lR: 0,\n aspectRatio: function (w, h) {\n return Math.max((w / h), (h / w));\n }\n };\n }\n /* *\n *\n * Functions\n *\n * */\n TreemapAlgorithmGroup.prototype.addElement = function (el) {\n this.lP.total = this.elArr[this.elArr.length - 1];\n this.total = this.total + el;\n if (this.direction === 0) {\n // Calculate last point old aspect ratio\n this.lW = this.nW;\n this.lP.lH = this.lP.total / this.lW;\n this.lP.lR = this.lP.aspectRatio(this.lW, this.lP.lH);\n // Calculate last point new aspect ratio\n this.nW = this.total / this.height;\n this.lP.nH = this.lP.total / this.nW;\n this.lP.nR = this.lP.aspectRatio(this.nW, this.lP.nH);\n }\n else {\n // Calculate last point old aspect ratio\n this.lH = this.nH;\n this.lP.lW = this.lP.total / this.lH;\n this.lP.lR = this.lP.aspectRatio(this.lP.lW, this.lH);\n // Calculate last point new aspect ratio\n this.nH = this.total / this.width;\n this.lP.nW = this.lP.total / this.nH;\n this.lP.nR = this.lP.aspectRatio(this.lP.nW, this.nH);\n }\n this.elArr.push(el);\n };\n TreemapAlgorithmGroup.prototype.reset = function () {\n this.nW = 0;\n this.lW = 0;\n this.elArr = [];\n this.total = 0;\n };\n return TreemapAlgorithmGroup;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Treemap_TreemapAlgorithmGroup = (TreemapAlgorithmGroup);\n\n;// ./code/es5/es-modules/Series/Treemap/TreemapNode.js\n/* *\n *\n * (c) 2010-2024 Pawel Lysy\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 * */\nvar TreemapNode = /** @class */ (function () {\n function TreemapNode() {\n /* *\n *\n * Properties\n *\n * */\n this.childrenTotal = 0;\n this.visible = false;\n }\n /* *\n *\n * Functions\n *\n * */\n TreemapNode.prototype.init = function (id, i, children, height, level, series, parent) {\n this.id = id;\n this.i = i;\n this.children = children;\n this.height = height;\n this.level = level;\n this.series = series;\n this.parent = parent;\n return this;\n };\n return TreemapNode;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Treemap_TreemapNode = (TreemapNode);\n\n;// ./code/es5/es-modules/Series/DrawPointUtilities.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n/* *\n *\n * Functions\n *\n * */\n/**\n * Handles the drawing of a component.\n * Can be used for any type of component that reserves the graphic property,\n * and provides a shouldDraw on its context.\n *\n * @private\n *\n * @todo add type checking.\n * @todo export this function to enable usage\n */\nfunction draw(point, params) {\n var animatableAttribs = params.animatableAttribs,\n onComplete = params.onComplete,\n css = params.css,\n renderer = params.renderer;\n var animation = (point.series && point.series.chart.hasRendered) ?\n // Chart-level animation on updates\n void 0 :\n // Series-level animation on new points\n (point.series &&\n point.series.options.animation);\n var graphic = point.graphic;\n params.attribs = __assign(__assign({}, params.attribs), { 'class': point.getClassName() }) || {};\n if ((point.shouldDraw())) {\n if (!graphic) {\n if (params.shapeType === 'text') {\n graphic = renderer.text();\n }\n else if (params.shapeType === 'image') {\n graphic = renderer.image(params.imageUrl || '')\n .attr(params.shapeArgs || {});\n }\n else {\n graphic = renderer[params.shapeType](params.shapeArgs || {});\n }\n point.graphic = graphic;\n graphic.add(params.group);\n }\n if (css) {\n graphic.css(css);\n }\n graphic\n .attr(params.attribs)\n .animate(animatableAttribs, params.isNew ? false : animation, onComplete);\n }\n else if (graphic) {\n var destroy_1 = function () {\n point.graphic = graphic = (graphic && graphic.destroy());\n if (typeof onComplete === 'function') {\n onComplete();\n }\n };\n // Animate only runs complete callback if something was animated.\n if (Object.keys(animatableAttribs).length) {\n graphic.animate(animatableAttribs, void 0, function () { return destroy_1(); });\n }\n else {\n destroy_1();\n }\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar DrawPointUtilities = {\n draw: draw\n};\n/* harmony default export */ var Series_DrawPointUtilities = (DrawPointUtilities);\n\n;// ./code/es5/es-modules/Series/Treemap/TreemapPoint.js\n/* *\n *\n * (c) 2014-2024 Highsoft AS\n *\n * Authors: Jon Arild Nygard / Oystein Moseng\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\n\nvar _a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, PiePoint = _a.pie.prototype.pointClass, ScatterPoint = _a.scatter.prototype.pointClass;\n\nvar TreemapPoint_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, TreemapPoint_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Class\n *\n * */\nvar TreemapPoint = /** @class */ (function (_super) {\n __extends(TreemapPoint, _super);\n function TreemapPoint() {\n /* *\n *\n * Properties\n *\n * */\n var _this = _super !== null && _super.apply(this,\n arguments) || this;\n _this.groupedPointsAmount = 0;\n _this.shapeType = 'rect';\n return _this;\n }\n /* *\n *\n * Functions\n *\n * */\n TreemapPoint.prototype.draw = function (params) {\n Series_DrawPointUtilities.draw(this, params);\n };\n TreemapPoint.prototype.getClassName = function () {\n var series = this.series,\n options = series.options;\n var className = _super.prototype.getClassName.call(this);\n // Above the current level\n if (this.node.level <= series.nodeMap[series.rootNode].level &&\n this.node.children.length) {\n className += ' highcharts-above-level';\n }\n else if (!this.node.isGroup &&\n !this.node.isLeaf &&\n !series.nodeMap[series.rootNode].isGroup &&\n !TreemapPoint_pick(options.interactByLeaf, !options.allowTraversingTree)) {\n className += ' highcharts-internal-node-interactive';\n }\n else if (!this.node.isGroup &&\n !this.node.isLeaf &&\n !series.nodeMap[series.rootNode].isGroup) {\n className += ' highcharts-internal-node';\n }\n return className;\n };\n /**\n * A tree point is valid if it has han id too, assume it may be a parent\n * item.\n *\n * @private\n * @function Highcharts.Point#isValid\n */\n TreemapPoint.prototype.isValid = function () {\n return Boolean(this.id || isNumber(this.value));\n };\n TreemapPoint.prototype.setState = function (state) {\n _super.prototype.setState.apply(this, arguments);\n // Graphic does not exist when point is not visible.\n if (this.graphic) {\n this.graphic.attr({\n zIndex: state === 'hover' ? 1 : 0\n });\n }\n };\n TreemapPoint.prototype.shouldDraw = function () {\n return isNumber(this.plotY) && this.y !== null;\n };\n return TreemapPoint;\n}(ScatterPoint));\nTreemapPoint_extend(TreemapPoint.prototype, {\n setVisible: PiePoint.prototype.setVisible\n});\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Treemap_TreemapPoint = (TreemapPoint);\n\n;// ./code/es5/es-modules/Series/Treemap/TreemapSeriesDefaults.js\n/* *\n *\n * (c) 2014-2024 Highsoft AS\n *\n * Authors: Jon Arild Nygard / Oystein Moseng\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nvar TreemapSeriesDefaults_isString = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isString;\n/* *\n *\n * API Options\n *\n * */\n/**\n * A treemap displays hierarchical data using nested rectangles. The data\n * can be laid out in varying ways depending on options.\n *\n * @sample highcharts/demo/treemap-large-dataset/\n * Treemap\n *\n * @extends plotOptions.scatter\n * @excluding connectEnds, connectNulls, dataSorting, dragDrop, jitter, marker\n * @product highcharts\n * @requires modules/treemap\n * @optionparent plotOptions.treemap\n */\nvar TreemapSeriesDefaults = {\n /**\n * When enabled the user can click on a point which is a parent and\n * zoom in on its children. Deprecated and replaced by\n * [allowTraversingTree](#plotOptions.treemap.allowTraversingTree).\n *\n * @sample {highcharts} highcharts/plotoptions/treemap-allowdrilltonode/\n * Enabled\n *\n * @deprecated\n * @type {boolean}\n * @default false\n * @since 4.1.0\n * @product highcharts\n * @apioption plotOptions.treemap.allowDrillToNode\n */\n /**\n * When enabled the user can click on a point which is a parent and\n * zoom in on its children.\n *\n * @sample {highcharts} highcharts/plotoptions/treemap-allowtraversingtree/\n * Enabled\n * @sample {highcharts} highcharts/plotoptions/treemap-grouping-traversing/\n * Traversing to Grouped Points node\n *\n * @since 7.0.3\n * @product highcharts\n */\n allowTraversingTree: false,\n animationLimit: 250,\n /**\n * The border radius for each treemap item.\n */\n borderRadius: 0,\n /**\n * Options for the breadcrumbs, the navigation at the top leading the\n * way up through the traversed levels.\n *\n *\n * @since 10.0.0\n * @product highcharts\n * @extends navigation.breadcrumbs\n * @apioption plotOptions.treemap.breadcrumbs\n */\n /**\n * When the series contains less points than the crop threshold, all\n * points are drawn, event if the points fall outside the visible plot\n * area at the current zoom. The advantage of drawing all points\n * (including markers and columns), is that animation is performed on\n * updates. On the other hand, when the series contains more points than\n * the crop threshold, the series data is cropped to only contain points\n * that fall within the plot area. The advantage of cropping away\n * invisible points is to increase performance on large series.\n *\n * @type {number}\n * @default 300\n * @since 4.1.0\n * @product highcharts\n * @apioption plotOptions.treemap.cropThreshold\n */\n /**\n * Fires on a request for change of root node for the tree, before the\n * update is made. An event object is passed to the function, containing\n * additional properties `newRootId`, `previousRootId`, `redraw` and\n * `trigger`.\n *\n * @sample {highcharts} highcharts/plotoptions/treemap-events-setrootnode/\n * Alert update information on setRootNode event.\n *\n * @type {Function}\n * @default undefined\n * @since 7.0.3\n * @product highcharts\n * @apioption plotOptions.treemap.events.setRootNode\n */\n /**\n * This option decides if the user can interact with the parent nodes\n * or just the leaf nodes. When this option is undefined, it will be\n * true by default. However when allowTraversingTree is true, then it\n * will be false by default.\n *\n * @sample {highcharts} highcharts/plotoptions/treemap-interactbyleaf-false/\n * False\n * @sample {highcharts} highcharts/plotoptions/treemap-interactbyleaf-true-and-allowtraversingtree/\n * InteractByLeaf and allowTraversingTree is true\n *\n * @type {boolean}\n * @since 4.1.2\n * @product highcharts\n * @apioption plotOptions.treemap.interactByLeaf\n */\n /**\n * The sort index of the point inside the treemap level.\n *\n * @sample {highcharts} highcharts/plotoptions/treemap-sortindex/\n * Sort by years\n *\n * @type {number}\n * @since 4.1.10\n * @product highcharts\n * @apioption plotOptions.treemap.sortIndex\n */\n /**\n * A series specific or series type specific color set to apply instead\n * of the global [colors](#colors) when\n * [colorByPoint](#plotOptions.treemap.colorByPoint) is true.\n *\n * @type {Array<Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject>}\n * @since 3.0\n * @product highcharts\n * @apioption plotOptions.treemap.colors\n */\n /**\n * Whether to display this series type or specific series item in the\n * legend.\n */\n showInLegend: false,\n /**\n * @ignore-option\n */\n marker: void 0,\n /**\n * When using automatic point colors pulled from the `options.colors`\n * collection, this option determines whether the chart should receive\n * one color per series or one color per point.\n *\n * @see [series colors](#plotOptions.treemap.colors)\n *\n * @since 2.0\n * @product highcharts\n * @apioption plotOptions.treemap.colorByPoint\n */\n colorByPoint: false,\n /**\n * @since 4.1.0\n */\n dataLabels: {\n defer: false,\n enabled: true,\n formatter: function () {\n var point = this && this.point ?\n this.point :\n {},\n name = TreemapSeriesDefaults_isString(point.name) ? point.name : '';\n return name;\n },\n inside: true,\n padding: 2,\n verticalAlign: 'middle',\n style: {\n textOverflow: 'ellipsis'\n }\n },\n tooltip: {\n headerFormat: '',\n pointFormat: '<b>{point.name}</b>: {point.value}<br/>',\n /**\n * The HTML of the grouped point's nodes in the tooltip. Works only for\n * Treemap series grouping and analogously to\n * [pointFormat](#tooltip.pointFormat).\n *\n * The grouped nodes point tooltip can be also formatted using\n * `tooltip.formatter` callback function and `point.isGroupNode` flag.\n *\n * @type {string}\n * @default '+ {point.groupedPointsAmount} more...'\n * @apioption tooltip.clusterFormat\n */\n clusterFormat: '+ {point.groupedPointsAmount} more...<br/>'\n },\n /**\n * Whether to ignore hidden points when the layout algorithm runs.\n * If `false`, hidden points will leave open spaces.\n *\n * @since 5.0.8\n */\n ignoreHiddenPoint: true,\n /**\n * This option decides which algorithm is used for setting position\n * and dimensions of the points.\n *\n * @see [How to write your own algorithm](https://www.highcharts.com/docs/chart-and-series-types/treemap)\n *\n * @sample {highcharts} highcharts/plotoptions/treemap-layoutalgorithm-sliceanddice/\n * SliceAndDice by default\n * @sample {highcharts} highcharts/plotoptions/treemap-layoutalgorithm-stripes/\n * Stripes\n * @sample {highcharts} highcharts/plotoptions/treemap-layoutalgorithm-squarified/\n * Squarified\n * @sample {highcharts} highcharts/plotoptions/treemap-layoutalgorithm-strip/\n * Strip\n *\n * @since 4.1.0\n * @validvalue [\"sliceAndDice\", \"stripes\", \"squarified\", \"strip\"]\n */\n layoutAlgorithm: 'sliceAndDice',\n /**\n * Defines which direction the layout algorithm will start drawing.\n *\n * @since 4.1.0\n * @validvalue [\"vertical\", \"horizontal\"]\n */\n layoutStartingDirection: 'vertical',\n /**\n * Enabling this option will make the treemap alternate the drawing\n * direction between vertical and horizontal. The next levels starting\n * direction will always be the opposite of the previous.\n *\n * @sample {highcharts} highcharts/plotoptions/treemap-alternatestartingdirection-true/\n * Enabled\n *\n * @since 4.1.0\n */\n alternateStartingDirection: false,\n /**\n * Used together with the levels and allowTraversingTree options. When\n * set to false the first level visible to be level one, which is\n * dynamic when traversing the tree. Otherwise the level will be the\n * same as the tree structure.\n *\n * @since 4.1.0\n */\n levelIsConstant: true,\n /**\n * Options for the button appearing when traversing down in a treemap.\n *\n * Since v9.3.3 the `traverseUpButton` is replaced by `breadcrumbs`.\n *\n * @deprecated\n */\n traverseUpButton: {\n /**\n * The position of the button.\n */\n position: {\n /**\n * Vertical alignment of the button.\n *\n * @type {Highcharts.VerticalAlignValue}\n * @default top\n * @product highcharts\n * @apioption plotOptions.treemap.traverseUpButton.position.verticalAlign\n */\n /**\n * Horizontal alignment of the button.\n *\n * @type {Highcharts.AlignValue}\n */\n align: 'right',\n /**\n * Horizontal offset of the button.\n */\n x: -10,\n /**\n * Vertical offset of the button.\n */\n y: 10\n }\n },\n /**\n * Set options on specific levels. Takes precedence over series options,\n * but not point options.\n *\n * @sample {highcharts} highcharts/plotoptions/treemap-levels/\n * Styling dataLabels and borders\n * @sample {highcharts} highcharts/demo/treemap-with-levels/\n * Different layoutAlgorithm\n *\n * @type {Array<*>}\n * @since 4.1.0\n * @product highcharts\n * @apioption plotOptions.treemap.levels\n */\n /**\n * Can set a `borderColor` on all points which lies on the same level.\n *\n * @type {Highcharts.ColorString}\n * @since 4.1.0\n * @product highcharts\n * @apioption plotOptions.treemap.levels.borderColor\n */\n /**\n * Set the dash style of the border of all the point which lies on the\n * level. See\n * [plotOptions.scatter.dashStyle](#plotoptions.scatter.dashstyle)\n * for possible options.\n *\n * @type {Highcharts.DashStyleValue}\n * @since 4.1.0\n * @product highcharts\n * @apioption plotOptions.treemap.levels.borderDashStyle\n */\n /**\n * Can set the borderWidth on all points which lies on the same level.\n *\n * @type {number}\n * @since 4.1.0\n * @product highcharts\n * @apioption plotOptions.treemap.levels.borderWidth\n */\n /**\n * Can set a color on all points which lies on the same level.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @since 4.1.0\n * @product highcharts\n * @apioption plotOptions.treemap.levels.color\n */\n /**\n * A configuration object to define how the color of a child varies from\n * the parent's color. The variation is distributed among the children\n * of node. For example when setting brightness, the brightness change\n * will range from the parent's original brightness on the first child,\n * to the amount set in the `to` setting on the last node. This allows a\n * gradient-like color scheme that sets children out from each other\n * while highlighting the grouping on treemaps and sectors on sunburst\n * charts.\n *\n * @sample highcharts/demo/sunburst/\n * Sunburst with color variation\n *\n * @sample highcharts/series-treegraph/color-variation\n * Treegraph nodes with color variation\n *\n * @since 6.0.0\n * @product highcharts\n * @apioption plotOptions.treemap.levels.colorVariation\n */\n /**\n * The key of a color variation. Currently supports `brightness` only.\n *\n * @type {string}\n * @since 6.0.0\n * @product highcharts\n * @validvalue [\"brightness\"]\n * @apioption plotOptions.treemap.levels.colorVariation.key\n */\n /**\n * The ending value of a color variation. The last sibling will receive\n * this value.\n *\n * @type {number}\n * @since 6.0.0\n * @product highcharts\n * @apioption plotOptions.treemap.levels.colorVariation.to\n */\n /**\n * Can set the options of dataLabels on each point which lies on the\n * level.\n * [plotOptions.treemap.dataLabels](#plotOptions.treemap.dataLabels) for\n * possible values.\n *\n * @extends plotOptions.treemap.dataLabels\n * @since 4.1.0\n * @product highcharts\n * @apioption plotOptions.treemap.levels.dataLabels\n */\n /**\n * Can set the layoutAlgorithm option on a specific level.\n *\n * @type {string}\n * @since 4.1.0\n * @product highcharts\n * @validvalue [\"sliceAndDice\", \"stripes\", \"squarified\", \"strip\"]\n * @apioption plotOptions.treemap.levels.layoutAlgorithm\n */\n /**\n * Can set the layoutStartingDirection option on a specific level.\n *\n * @type {string}\n * @since 4.1.0\n * @product highcharts\n * @validvalue [\"vertical\", \"horizontal\"]\n * @apioption plotOptions.treemap.levels.layoutStartingDirection\n */\n /**\n * Decides which level takes effect from the options set in the levels\n * object.\n *\n * @sample {highcharts} highcharts/plotoptions/treemap-levels/\n * Styling of both levels\n *\n * @type {number}\n * @since 4.1.0\n * @product highcharts\n * @apioption plotOptions.treemap.levels.level\n */\n // Presentational options\n /**\n * The color of the border surrounding each tree map item.\n *\n * @type {Highcharts.ColorString}\n */\n borderColor: \"#e6e6e6\" /* Palette.neutralColor10 */,\n /**\n * The width of the border surrounding each tree map item.\n */\n borderWidth: 1,\n colorKey: 'colorValue',\n /**\n * The opacity of a point in treemap. When a point has children, the\n * visibility of the children is determined by the opacity.\n *\n * @since 4.2.4\n */\n opacity: 0.15,\n /**\n * A wrapper object for all the series options in specific states.\n *\n * @extends plotOptions.heatmap.states\n */\n states: {\n /**\n * Options for the hovered series\n *\n * @extends plotOptions.heatmap.states.hover\n * @excluding halo\n */\n hover: {\n /**\n * The border color for the hovered state.\n */\n borderColor: \"#999999\" /* Palette.neutralColor40 */,\n /**\n * Brightness for the hovered point. Defaults to 0 if the\n * heatmap series is loaded first, otherwise 0.1.\n *\n * @type {number}\n * @default undefined\n */\n brightness: (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.heatmap ? 0 : 0.1,\n /**\n * @extends plotOptions.heatmap.states.hover.halo\n */\n halo: false,\n /**\n * The opacity of a point in treemap. When a point has children,\n * the visibility of the children is determined by the opacity.\n *\n * @since 4.2.4\n */\n opacity: 0.75,\n /**\n * The shadow option for hovered state.\n */\n shadow: false\n }\n },\n legendSymbol: 'rectangle',\n /**\n * This option enables automatic traversing to the last child level upon\n * node interaction. This feature simplifies navigation by immediately\n * focusing on the deepest layer of the data structure without intermediate\n * steps.\n *\n * @sample {highcharts} highcharts/plotoptions/treemap-traverse-to-leaf/\n * Traverse to leaf enabled\n *\n * @since 11.4.4\n *\n * @product highcharts\n */\n traverseToLeaf: false,\n /**\n * An option to optimize treemap series rendering by grouping smaller leaf\n * nodes below a certain square area threshold in pixels. If the square area\n * of a point becomes smaller than the specified threshold, determined by\n * the `pixelWidth` and/or `pixelHeight` options, then this point is moved\n * into one group point per series.\n *\n * @sample {highcharts} highcharts/plotoptions/treemap-grouping-simple\n * Simple demo of Treemap grouping\n * @sample {highcharts} highcharts/plotoptions/treemap-grouping-multiple-parents\n * Treemap grouping with multiple parents\n * @sample {highcharts} highcharts/plotoptions/treemap-grouping-advanced\n * Advanced demo of Treemap grouping\n *\n * @since 12.1.0\n *\n * @excluding allowOverlap, animation, dataLabels, drillToCluster, events,\n * layoutAlgorithm, marker, states, zones\n *\n * @product highcharts\n */\n cluster: {\n /**\n * An additional, individual class name for the grouped point's graphic\n * representation.\n *\n * @type string\n * @product highcharts\n */\n className: void 0,\n /**\n * Individual color for the grouped point. By default the color is\n * pulled from the parent color.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @product highcharts\n */\n color: void 0,\n /**\n * Enable or disable Treemap grouping.\n *\n * @type {boolean}\n * @since 12.1.0\n * @product highcharts\n */\n enabled: false,\n /**\n * The pixel threshold width of area, which is used in Treemap grouping.\n *\n * @type {number}\n * @since 12.1.0\n * @product highcharts\n */\n pixelWidth: void 0,\n /**\n * The pixel threshold height of area, which is used in Treemap\n * grouping.\n *\n * @type {number}\n * @since 12.1.0\n * @product highcharts\n */\n pixelHeight: void 0,\n /**\n * The name of the point of grouped nodes shown in the tooltip,\n * dataLabels, etc. By default it is set to '+ n', where n is number of\n * grouped points.\n *\n * @type {string}\n * @since 12.1.0\n * @product highcharts\n */\n name: void 0,\n /**\n * A configuration property that specifies the factor by which the value\n * and size of a grouped node are reduced. This can be particularly\n * useful when a grouped node occupies a disproportionately large\n * portion of the graph, ensuring better visual balance and readability.\n *\n * @type {number}\n * @since 12.1.0\n * @product highcharts\n */\n reductionFactor: void 0,\n /**\n * Defines the minimum number of child nodes required to create a group\n * of small nodes.\n *\n * @type {number}\n * @since 12.1.0\n * @product highcharts\n */\n minimumClusterSize: 5,\n layoutAlgorithm: {\n distance: 0,\n gridSize: 0,\n kmeansThreshold: 0\n },\n marker: {\n lineWidth: 0,\n radius: 0\n }\n }\n};\n/**\n * A `treemap` series. If the [type](#series.treemap.type) option is\n * not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends series,plotOptions.treemap\n * @excluding dataParser, dataURL, stack, dataSorting\n * @product highcharts\n * @requires modules/treemap\n * @apioption series.treemap\n */\n/**\n * An array of data points for the series. For the `treemap` 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 `value` 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.treemap.turboThreshold),\n * this option is not available.\n * ```js\n * data: [{\n * value: 9,\n * name: \"Point2\",\n * color: \"#00FF00\"\n * }, {\n * value: 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-objects/\n * Config objects\n *\n * @type {Array<number|null|*>}\n * @extends series.heatmap.data\n * @excluding x, y, pointPadding\n * @product highcharts\n * @apioption series.treemap.data\n */\n/**\n * The value of the point, resulting in a relative area of the point\n * in the treemap.\n *\n * @type {number|null}\n * @product highcharts\n * @apioption series.treemap.data.value\n */\n/**\n * Serves a purpose only if a `colorAxis` object is defined in the chart\n * options. This value will decide which color the point gets from the\n * scale of the colorAxis.\n *\n * @type {number}\n * @since 4.1.0\n * @product highcharts\n * @apioption series.treemap.data.colorValue\n */\n/**\n * Only for treemap. Use this option to build a tree structure. The\n * value should be the id of the point which is the parent. If no points\n * has a matching id, or this option is undefined, then the parent will\n * be set to the root.\n *\n * @sample {highcharts} highcharts/point/parent/\n * Point parent\n * @sample {highcharts} highcharts/demo/treemap-with-levels/\n * Example where parent id is not matching\n *\n * @type {string}\n * @since 4.1.0\n * @product highcharts\n * @apioption series.treemap.data.parent\n */\n''; // Keeps doclets above detached\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Treemap_TreemapSeriesDefaults = (TreemapSeriesDefaults);\n\n;// ./code/es5/es-modules/Series/Treemap/TreemapUtilities.js\n/* *\n *\n * (c) 2014-2024 Highsoft AS\n *\n * Authors: Jon Arild Nygard / Oystein Moseng\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * Namespace\n *\n * */\nvar TreemapUtilities;\n(function (TreemapUtilities) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Functions\n *\n * */\n /**\n * @todo find correct name for this function.\n * @todo Similar to reduce, this function is likely redundant\n */\n function recursive(item, func, context) {\n var next = func.call(context || this,\n item);\n if (next !== false) {\n recursive(next, func, context);\n }\n }\n TreemapUtilities.recursive = recursive;\n})(TreemapUtilities || (TreemapUtilities = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Treemap_TreemapUtilities = (TreemapUtilities);\n\n;// ./code/es5/es-modules/Series/TreeUtilities.js\n/* *\n *\n * (c) 2014-2024 Highsoft AS\n *\n * Authors: Jon Arild Nygard / Oystein Moseng\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nvar TreeUtilities_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, TreeUtilities_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, isObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isObject, TreeUtilities_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, TreeUtilities_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, relativeLength = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).relativeLength;\n/* *\n *\n * Functions\n *\n * */\n/* eslint-disable valid-jsdoc */\n/**\n * @private\n */\nfunction getColor(node, options) {\n var index = options.index,\n mapOptionsToLevel = options.mapOptionsToLevel,\n parentColor = options.parentColor,\n parentColorIndex = options.parentColorIndex,\n series = options.series,\n colors = options.colors,\n siblings = options.siblings,\n points = series.points,\n chartOptionsChart = series.chart.options.chart;\n var getColorByPoint,\n point,\n level,\n colorByPoint,\n colorIndexByPoint,\n color,\n colorIndex;\n /**\n * @private\n */\n var variateColor = function (color) {\n var colorVariation = level && level.colorVariation;\n if (colorVariation &&\n colorVariation.key === 'brightness' &&\n index &&\n siblings) {\n return highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default().parse(color).brighten(colorVariation.to * (index / siblings)).get();\n }\n return color;\n };\n if (node) {\n point = points[node.i];\n level = mapOptionsToLevel[node.level] || {};\n getColorByPoint = point && level.colorByPoint;\n if (getColorByPoint) {\n colorIndexByPoint = point.index % (colors ?\n colors.length :\n chartOptionsChart.colorCount);\n colorByPoint = colors && colors[colorIndexByPoint];\n }\n // Select either point color, level color or inherited color.\n if (!series.chart.styledMode) {\n color = TreeUtilities_pick(point && point.options.color, level && level.color, colorByPoint, parentColor && variateColor(parentColor), series.color);\n }\n colorIndex = TreeUtilities_pick(point && point.options.colorIndex, level && level.colorIndex, colorIndexByPoint, parentColorIndex, options.colorIndex);\n }\n return {\n color: color,\n colorIndex: colorIndex\n };\n}\n/**\n * Creates a map from level number to its given options.\n *\n * @private\n *\n * @param {Object} params\n * Object containing parameters.\n * - `defaults` Object containing default options. The default options are\n * merged with the userOptions to get the final options for a specific\n * level.\n * - `from` The lowest level number.\n * - `levels` User options from series.levels.\n * - `to` The highest level number.\n *\n * @return {Highcharts.Dictionary<object>|null}\n * Returns a map from level number to its given options.\n */\nfunction getLevelOptions(params) {\n var result = {};\n var defaults,\n converted,\n i,\n from,\n to,\n levels;\n if (isObject(params)) {\n from = TreeUtilities_isNumber(params.from) ? params.from : 1;\n levels = params.levels;\n converted = {};\n defaults = isObject(params.defaults) ? params.defaults : {};\n if (isArray(levels)) {\n converted = levels.reduce(function (obj, item) {\n var level,\n levelIsConstant,\n options;\n if (isObject(item) && TreeUtilities_isNumber(item.level)) {\n options = TreeUtilities_merge({}, item);\n levelIsConstant = TreeUtilities_pick(options.levelIsConstant, defaults.levelIsConstant);\n // Delete redundant properties.\n delete options.levelIsConstant;\n delete options.level;\n // Calculate which level these options apply to.\n level = item.level + (levelIsConstant ? 0 : from - 1);\n if (isObject(obj[level])) {\n TreeUtilities_merge(true, obj[level], options); // #16329\n }\n else {\n obj[level] = options;\n }\n }\n return obj;\n }, {});\n }\n to = TreeUtilities_isNumber(params.to) ? params.to : 1;\n for (i = 0; i <= to; i++) {\n result[i] = TreeUtilities_merge({}, defaults, isObject(converted[i]) ? converted[i] : {});\n }\n }\n return result;\n}\n/**\n * @private\n * @todo Combine buildTree and buildNode with setTreeValues\n * @todo Remove logic from Treemap and make it utilize this mixin.\n */\nfunction setTreeValues(tree, options) {\n var before = options.before,\n idRoot = options.idRoot,\n mapIdToNode = options.mapIdToNode,\n nodeRoot = mapIdToNode[idRoot],\n levelIsConstant = (options.levelIsConstant !== false),\n points = options.points,\n point = points[tree.i],\n optionsPoint = point && point.options || {},\n children = [];\n var childrenTotal = 0;\n tree.levelDynamic = tree.level - (levelIsConstant ? 0 : nodeRoot.level);\n tree.name = TreeUtilities_pick(point && point.name, '');\n tree.visible = (idRoot === tree.id ||\n options.visible === true);\n if (typeof before === 'function') {\n tree = before(tree, options);\n }\n // First give the children some values\n tree.children.forEach(function (child, i) {\n var newOptions = TreeUtilities_extend({},\n options);\n TreeUtilities_extend(newOptions, {\n index: i,\n siblings: tree.children.length,\n visible: tree.visible\n });\n child = setTreeValues(child, newOptions);\n children.push(child);\n if (child.visible) {\n childrenTotal += child.val;\n }\n });\n // Set the values\n var value = TreeUtilities_pick(optionsPoint.value,\n childrenTotal);\n tree.visible = value >= 0 && (childrenTotal > 0 || tree.visible);\n tree.children = children;\n tree.childrenTotal = childrenTotal;\n tree.isLeaf = tree.visible && !childrenTotal;\n tree.val = value;\n return tree;\n}\n/**\n * Update the rootId property on the series. Also makes sure that it is\n * accessible to exporting.\n *\n * @private\n *\n * @param {Object} series\n * The series to operate on.\n *\n * @return {string}\n * Returns the resulting rootId after update.\n */\nfunction updateRootId(series) {\n var rootId,\n options;\n if (isObject(series)) {\n // Get the series options.\n options = isObject(series.options) ? series.options : {};\n // Calculate the rootId.\n rootId = TreeUtilities_pick(series.rootNode, options.rootId, '');\n // Set rootId on series.userOptions to pick it up in exporting.\n if (isObject(series.userOptions)) {\n series.userOptions.rootId = rootId;\n }\n // Set rootId on series to pick it up on next update.\n series.rootNode = rootId;\n }\n return rootId;\n}\n/**\n * Get the node width, which relies on the plot width and the nodeDistance\n * option.\n *\n * @private\n */\nfunction getNodeWidth(series, columnCount) {\n var chart = series.chart,\n options = series.options,\n _a = options.nodeDistance,\n nodeDistance = _a === void 0 ? 0 : _a,\n _b = options.nodeWidth,\n nodeWidth = _b === void 0 ? 0 : _b,\n _c = chart.plotSizeX,\n plotSizeX = _c === void 0 ? 1 : _c;\n // Node width auto means they are evenly distributed along the width of\n // the plot area\n if (nodeWidth === 'auto') {\n if (typeof nodeDistance === 'string' && /%$/.test(nodeDistance)) {\n var fraction = parseFloat(nodeDistance) / 100,\n total = columnCount + fraction * (columnCount - 1);\n return plotSizeX / total;\n }\n var nDistance = Number(nodeDistance);\n return ((plotSizeX + nDistance) /\n (columnCount || 1)) - nDistance;\n }\n return relativeLength(nodeWidth, plotSizeX);\n}\n/* *\n *\n * Default Export\n *\n * */\nvar TreeUtilities = {\n getColor: getColor,\n getLevelOptions: getLevelOptions,\n getNodeWidth: getNodeWidth,\n setTreeValues: setTreeValues,\n updateRootId: updateRootId\n};\n/* harmony default export */ var Series_TreeUtilities = (TreeUtilities);\n\n;// ./code/es5/es-modules/Series/Treemap/TreemapSeries.js\n/* *\n *\n * (c) 2014-2024 Highsoft AS\n *\n * Authors: Jon Arild Nygard / Oystein Moseng\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar TreemapSeries_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 color = (highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default()).parse;\n\n\nvar TreemapSeries_composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed, noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\nvar TreemapSeries_a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, ColumnSeries = TreemapSeries_a.column, ScatterSeries = TreemapSeries_a.scatter;\n\n\n\n\n\n\nvar TreemapSeries_getColor = Series_TreeUtilities.getColor, TreemapSeries_getLevelOptions = Series_TreeUtilities.getLevelOptions, TreemapSeries_updateRootId = Series_TreeUtilities.updateRootId;\n\nvar TreemapSeries_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, crisp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).crisp, TreemapSeries_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error, TreemapSeries_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, TreemapSeries_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, TreemapSeries_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, TreemapSeries_isObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isObject, TreemapSeries_isString = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isString, TreemapSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, TreemapSeries_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, TreemapSeries_pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique, splat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).splat, stableSort = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).stableSort;\n/* *\n *\n * Constants\n *\n * */\nvar axisMax = 100;\n/* *\n *\n * Variables\n *\n * */\nvar treemapAxisDefaultValues = false;\n/* *\n *\n * Functions\n *\n * */\n/** @private */\nfunction onSeriesAfterBindAxes() {\n var series = this,\n xAxis = series.xAxis,\n yAxis = series.yAxis;\n var treeAxis;\n if (xAxis && yAxis) {\n if (series.is('treemap')) {\n treeAxis = {\n endOnTick: false,\n gridLineWidth: 0,\n lineWidth: 0,\n min: 0,\n minPadding: 0,\n max: axisMax,\n maxPadding: 0,\n startOnTick: false,\n title: void 0,\n tickPositions: []\n };\n TreemapSeries_extend(yAxis.options, treeAxis);\n TreemapSeries_extend(xAxis.options, treeAxis);\n treemapAxisDefaultValues = true;\n }\n else if (treemapAxisDefaultValues) {\n yAxis.setOptions(yAxis.userOptions);\n xAxis.setOptions(xAxis.userOptions);\n treemapAxisDefaultValues = false;\n }\n }\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * @private\n * @class\n * @name Highcharts.seriesTypes.treemap\n *\n * @augments Highcharts.Series\n */\nvar TreemapSeries = /** @class */ (function (_super) {\n TreemapSeries_extends(TreemapSeries, _super);\n function TreemapSeries() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Static Functions\n *\n * */\n TreemapSeries.compose = function (SeriesClass) {\n if (TreemapSeries_pushUnique(TreemapSeries_composed, 'TreemapSeries')) {\n TreemapSeries_addEvent(SeriesClass, 'afterBindAxes', onSeriesAfterBindAxes);\n }\n };\n /* *\n *\n * Function\n *\n * */\n /* eslint-disable valid-jsdoc */\n TreemapSeries.prototype.algorithmCalcPoints = function (directionChange, last, group, childrenArea) {\n var plot = group.plot,\n end = group.elArr.length - 1;\n var pX,\n pY,\n pW,\n pH,\n gW = group.lW,\n gH = group.lH,\n keep,\n i = 0;\n if (last) {\n gW = group.nW;\n gH = group.nH;\n }\n else {\n keep = group.elArr[end];\n }\n for (var _i = 0, _a = group.elArr; _i < _a.length; _i++) {\n var p = _a[_i];\n if (last || (i < end)) {\n if (group.direction === 0) {\n pX = plot.x;\n pY = plot.y;\n pW = gW;\n pH = p / pW;\n }\n else {\n pX = plot.x;\n pY = plot.y;\n pH = gH;\n pW = p / pH;\n }\n childrenArea.push({\n x: pX,\n y: pY,\n width: pW,\n height: correctFloat(pH)\n });\n if (group.direction === 0) {\n plot.y = plot.y + pH;\n }\n else {\n plot.x = plot.x + pW;\n }\n }\n i = i + 1;\n }\n // Reset variables\n group.reset();\n if (group.direction === 0) {\n group.width = group.width - gW;\n }\n else {\n group.height = group.height - gH;\n }\n plot.y = plot.parent.y + (plot.parent.height - group.height);\n plot.x = plot.parent.x + (plot.parent.width - group.width);\n if (directionChange) {\n group.direction = 1 - group.direction;\n }\n // If not last, then add uncalculated element\n if (!last) {\n group.addElement(keep);\n }\n };\n TreemapSeries.prototype.algorithmFill = function (directionChange, parent, children) {\n var childrenArea = [];\n var pTot,\n direction = parent.direction,\n x = parent.x,\n y = parent.y,\n width = parent.width,\n height = parent.height,\n pX,\n pY,\n pW,\n pH;\n for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {\n var child = children_1[_i];\n pTot =\n (parent.width * parent.height) * (child.val / parent.val);\n pX = x;\n pY = y;\n if (direction === 0) {\n pH = height;\n pW = pTot / pH;\n width = width - pW;\n x = x + pW;\n }\n else {\n pW = width;\n pH = pTot / pW;\n height = height - pH;\n y = y + pH;\n }\n childrenArea.push({\n x: pX,\n y: pY,\n width: pW,\n height: pH,\n direction: 0,\n val: 0\n });\n if (directionChange) {\n direction = 1 - direction;\n }\n }\n return childrenArea;\n };\n TreemapSeries.prototype.algorithmLowAspectRatio = function (directionChange, parent, children) {\n var series = this,\n childrenArea = [],\n plot = {\n x: parent.x,\n y: parent.y,\n parent: parent\n },\n direction = parent.direction,\n end = children.length - 1,\n group = new Treemap_TreemapAlgorithmGroup(parent.height,\n parent.width,\n direction,\n plot);\n var pTot,\n i = 0;\n // Loop through and calculate all areas\n for (var _i = 0, children_2 = children; _i < children_2.length; _i++) {\n var child = children_2[_i];\n pTot =\n (parent.width * parent.height) * (child.val / parent.val);\n group.addElement(pTot);\n if (group.lP.nR > group.lP.lR) {\n series.algorithmCalcPoints(directionChange, false, group, childrenArea, plot // @todo no supported\n );\n }\n // If last child, then calculate all remaining areas\n if (i === end) {\n series.algorithmCalcPoints(directionChange, true, group, childrenArea, plot // @todo not supported\n );\n }\n ++i;\n }\n return childrenArea;\n };\n /**\n * Over the alignment method by setting z index.\n * @private\n */\n TreemapSeries.prototype.alignDataLabel = function (point, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dataLabel, \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n labelOptions) {\n ColumnSeries.prototype.alignDataLabel.apply(this, arguments);\n if (point.dataLabel) {\n // `point.node.zIndex` could be undefined (#6956)\n point.dataLabel.attr({ zIndex: (point.node.zIndex || 0) + 1 });\n }\n };\n TreemapSeries.prototype.applyTreeGrouping = function () {\n var series = this,\n parentList = series.parentList || {},\n cluster = series.options.cluster,\n minimumClusterSize = (cluster === null || cluster === void 0 ? void 0 : cluster.minimumClusterSize) || 5;\n if (cluster === null || cluster === void 0 ? void 0 : cluster.enabled) {\n var parentGroups_1 = {};\n var checkIfHide_1 = function (node) {\n var _a;\n if ((_a = node === null || node === void 0 ? void 0 : node.point) === null || _a === void 0 ? void 0 : _a.shapeArgs) {\n var _b = node.point.shapeArgs,\n _c = _b.width,\n width = _c === void 0 ? 0 : _c,\n _d = _b.height,\n height = _d === void 0 ? 0 : _d,\n area = width * height;\n var _e = cluster.pixelWidth,\n pixelWidth = _e === void 0 ? 0 : _e,\n _f = cluster.pixelHeight,\n pixelHeight = _f === void 0 ? 0 : _f,\n compareHeight = TreemapSeries_defined(pixelHeight),\n thresholdArea = pixelHeight ?\n pixelWidth * pixelHeight :\n pixelWidth * pixelWidth;\n if (width < pixelWidth ||\n height < (compareHeight ? pixelHeight : pixelWidth) ||\n area < thresholdArea) {\n if (!node.isGroup && TreemapSeries_defined(node.parent)) {\n if (!parentGroups_1[node.parent]) {\n parentGroups_1[node.parent] = [];\n }\n parentGroups_1[node.parent].push(node);\n }\n }\n }\n node === null || node === void 0 ? void 0 : node.children.forEach(function (child) {\n checkIfHide_1(child);\n });\n };\n checkIfHide_1(series.tree);\n var _loop_1 = function (parent_1) {\n if (parentGroups_1[parent_1]) {\n if (parentGroups_1[parent_1].length > minimumClusterSize) {\n parentGroups_1[parent_1].forEach(function (node) {\n var index = parentList[parent_1].indexOf(node.i);\n if (index !== -1) {\n parentList[parent_1].splice(index, 1);\n var id_1 = \"highcharts-grouped-treemap-points-\".concat(node.parent || 'root');\n var groupPoint = series.points\n .find(function (p) { return p.id === id_1; });\n if (!groupPoint) {\n var PointClass = series.pointClass,\n pointIndex = series.points.length;\n groupPoint = new PointClass(series, {\n className: cluster.className,\n color: cluster.color,\n id: id_1,\n index: pointIndex,\n isGroup: true,\n value: 0\n });\n TreemapSeries_extend(groupPoint, {\n formatPrefix: 'cluster'\n });\n series.points.push(groupPoint);\n parentList[parent_1].push(pointIndex);\n parentList[id_1] = [];\n }\n var amount = groupPoint.groupedPointsAmount + 1,\n val = series.points[groupPoint.index]\n .options.value || 0,\n name_1 = cluster.name ||\n \"+ \".concat(amount);\n // Update the point directly in points array to\n // prevent wrong instance update\n series.points[groupPoint.index]\n .groupedPointsAmount = amount;\n series.points[groupPoint.index].options.value =\n val + (node.point.value || 0);\n series.points[groupPoint.index].name = name_1;\n parentList[id_1].push(node.point.index);\n }\n });\n }\n }\n };\n for (var parent_1 in parentGroups_1) {\n _loop_1(parent_1);\n }\n series.nodeMap = {};\n series.nodeList = [];\n series.parentList = parentList;\n var tree = series.buildTree('', -1, 0,\n series.parentList);\n series.translate(tree);\n }\n };\n /**\n * Recursive function which calculates the area for all children of a\n * node.\n *\n * @private\n * @function Highcharts.Series#calculateChildrenAreas\n *\n * @param {Object} parent\n * The node which is parent to the children.\n *\n * @param {Object} area\n * The rectangular area of the parent.\n */\n TreemapSeries.prototype.calculateChildrenAreas = function (parent, area) {\n var series = this,\n options = series.options,\n mapOptionsToLevel = series.mapOptionsToLevel,\n level = mapOptionsToLevel[parent.level + 1],\n algorithm = TreemapSeries_pick(((level === null || level === void 0 ? void 0 : level.layoutAlgorithm) &&\n series[level === null || level === void 0 ? void 0 : level.layoutAlgorithm] &&\n level.layoutAlgorithm),\n series.options.layoutAlgorithm),\n alternate = options.alternateStartingDirection, \n // Collect all children which should be included\n children = parent.children.filter(function (n) {\n return parent.isGroup || !n.ignore;\n });\n if (!algorithm) {\n return;\n }\n var childrenValues = [];\n if (level && level.layoutStartingDirection) {\n area.direction = level.layoutStartingDirection === 'vertical' ?\n 0 :\n 1;\n }\n childrenValues = series[algorithm](area, children);\n var i = -1;\n for (var _i = 0, children_3 = children; _i < children_3.length; _i++) {\n var child = children_3[_i];\n var values = childrenValues[++i];\n child.values = TreemapSeries_merge(values, {\n val: child.childrenTotal,\n direction: (alternate ? 1 - area.direction : area.direction)\n });\n child.pointValues = TreemapSeries_merge(values, {\n x: (values.x / series.axisRatio),\n // Flip y-values to avoid visual regression with csvCoord in\n // Axis.translate at setPointValues. #12488\n y: axisMax - values.y - values.height,\n width: (values.width / series.axisRatio)\n });\n // If node has children, then call method recursively\n if (child.children.length) {\n series.calculateChildrenAreas(child, child.values);\n }\n }\n };\n /**\n * Create level list.\n * @private\n */\n TreemapSeries.prototype.createList = function (e) {\n var chart = this.chart,\n breadcrumbs = chart.breadcrumbs,\n list = [];\n if (breadcrumbs) {\n var currentLevelNumber = 0;\n list.push({\n level: currentLevelNumber,\n levelOptions: chart.series[0]\n });\n var node = e.target.nodeMap[e.newRootId];\n var extraNodes = [];\n // When the root node is set and has parent,\n // recreate the path from the node tree.\n while (node.parent || node.parent === '') {\n extraNodes.push(node);\n node = e.target.nodeMap[node.parent];\n }\n for (var _i = 0, _a = extraNodes.reverse(); _i < _a.length; _i++) {\n var node_1 = _a[_i];\n list.push({\n level: ++currentLevelNumber,\n levelOptions: node_1\n });\n }\n // If the list has only first element, we should clear it\n if (list.length <= 1) {\n list.length = 0;\n }\n }\n return list;\n };\n /**\n * Extend drawDataLabels with logic to handle custom options related to\n * the treemap series:\n *\n * - Points which is not a leaf node, has dataLabels disabled by\n * default.\n *\n * - Options set on series.levels is merged in.\n *\n * - Width of the dataLabel is set to match the width of the point\n * shape.\n *\n * @private\n */\n TreemapSeries.prototype.drawDataLabels = function () {\n var _a,\n _b;\n var series = this,\n mapOptionsToLevel = series.mapOptionsToLevel,\n points = series.points.filter(function (n) {\n return n.node.visible || TreemapSeries_defined(n.dataLabel);\n }), padding = (_a = splat(series.options.dataLabels || {})[0]) === null || _a === void 0 ? void 0 : _a.padding;\n var options,\n level;\n for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n var point = points_1[_i];\n level = mapOptionsToLevel[point.node.level];\n // Set options to new object to avoid problems with scope\n options = { style: {} };\n // If not a leaf, then label should be disabled as default\n if (!point.node.isLeaf &&\n !point.node.isGroup ||\n (point.node.isGroup &&\n point.node.level <= series.nodeMap[series.rootNode].level)) {\n options.enabled = false;\n }\n // If options for level exists, include them as well\n if (level && level.dataLabels) {\n options = TreemapSeries_merge(options, level.dataLabels);\n series.hasDataLabels = function () { return true; };\n }\n // Set dataLabel width to the width of the point shape minus the\n // padding\n if (point.shapeArgs) {\n var css = {\n width: ((point.shapeArgs.width || 0) -\n 2 * (options.padding || padding || 0)) + 'px',\n lineClamp: Math.floor((point.shapeArgs.height || 0) / 16)\n };\n TreemapSeries_extend(options.style, css);\n (_b = point.dataLabel) === null || _b === void 0 ? void 0 : _b.css(css);\n }\n // Merge custom options with point options\n point.dlOptions = TreemapSeries_merge(options, point.options.dataLabels);\n }\n _super.prototype.drawDataLabels.call(this, points);\n };\n /**\n * Override drawPoints\n * @private\n */\n TreemapSeries.prototype.drawPoints = function (points) {\n if (points === void 0) { points = this.points; }\n var series = this,\n chart = series.chart,\n renderer = chart.renderer,\n styledMode = chart.styledMode,\n options = series.options,\n shadow = styledMode ? {} : options.shadow,\n borderRadius = options.borderRadius,\n withinAnimationLimit = chart.pointCount < options.animationLimit,\n allowTraversingTree = options.allowTraversingTree;\n for (var _i = 0, points_2 = points; _i < points_2.length; _i++) {\n var point = points_2[_i];\n var levelDynamic = point.node.levelDynamic,\n animatableAttribs = {},\n attribs = {},\n css = {},\n groupKey = 'level-group-' + point.node.level,\n hasGraphic = !!point.graphic,\n shouldAnimate = withinAnimationLimit && hasGraphic,\n shapeArgs = point.shapeArgs;\n // Don't bother with calculate styling if the point is not drawn\n if (point.shouldDraw()) {\n point.isInside = true;\n if (borderRadius) {\n attribs.r = borderRadius;\n }\n TreemapSeries_merge(true, // Extend object\n // Which object to extend\n shouldAnimate ? animatableAttribs : attribs, \n // Add shapeArgs to animate/attr if graphic exists\n hasGraphic ? shapeArgs : {}, \n // Add style attribs if !styleMode\n styledMode ?\n {} :\n series.pointAttribs(point, point.selected ? 'select' : void 0));\n // In styled mode apply point.color. Use CSS, otherwise the\n // fill used in the style sheet will take precedence over\n // the fill attribute.\n if (series.colorAttribs && styledMode) {\n // Heatmap is loaded\n TreemapSeries_extend(css, series.colorAttribs(point));\n }\n if (!series[groupKey]) {\n series[groupKey] = renderer.g(groupKey)\n .attr({\n // @todo Set the zIndex based upon the number of\n // levels, instead of using 1000\n zIndex: 1000 - (levelDynamic || 0)\n })\n .add(series.group);\n series[groupKey].survive = true;\n }\n }\n // Draw the point\n point.draw({\n animatableAttribs: animatableAttribs,\n attribs: attribs,\n css: css,\n group: series[groupKey],\n imageUrl: point.imageUrl,\n renderer: renderer,\n shadow: shadow,\n shapeArgs: shapeArgs,\n shapeType: point.shapeType\n });\n // If setRootNode is allowed, set a point cursor on clickables &\n // add drillId to point\n if (allowTraversingTree && point.graphic) {\n point.drillId = options.interactByLeaf ?\n series.drillToByLeaf(point) :\n series.drillToByGroup(point);\n }\n }\n };\n /**\n * Finds the drill id for a parent node. Returns false if point should\n * not have a click event.\n * @private\n */\n TreemapSeries.prototype.drillToByGroup = function (point) {\n var drillId = false;\n if ((!point.node.isLeaf ||\n point.node.isGroup) &&\n (point.node.level - this.nodeMap[this.rootNode].level) === 1) {\n drillId = point.id;\n }\n return drillId;\n };\n /**\n * Finds the drill id for a leaf node. Returns false if point should not\n * have a click event\n * @private\n */\n TreemapSeries.prototype.drillToByLeaf = function (point) {\n var traverseToLeaf = point.series.options.traverseToLeaf;\n var drillId = false,\n nodeParent;\n if ((point.node.parent !== this.rootNode) &&\n point.node.isLeaf) {\n if (traverseToLeaf) {\n drillId = point.id;\n }\n else {\n nodeParent = point.node;\n while (!drillId) {\n if (typeof nodeParent.parent !== 'undefined') {\n nodeParent = this.nodeMap[nodeParent.parent];\n }\n if (nodeParent.parent === this.rootNode) {\n drillId = nodeParent.id;\n }\n }\n }\n }\n return drillId;\n };\n /**\n * @todo remove this function at a suitable version.\n * @private\n */\n TreemapSeries.prototype.drillToNode = function (id, redraw) {\n error(32, false, void 0, { 'treemap.drillToNode': 'use treemap.setRootNode' });\n this.setRootNode(id, redraw);\n };\n TreemapSeries.prototype.drillUp = function () {\n var series = this,\n node = series.nodeMap[series.rootNode];\n if (node && TreemapSeries_isString(node.parent)) {\n series.setRootNode(node.parent, true, { trigger: 'traverseUpButton' });\n }\n };\n TreemapSeries.prototype.getExtremes = function () {\n // Get the extremes from the value data\n var _a = _super.prototype.getExtremes.call(this,\n this.colorValueData),\n dataMin = _a.dataMin,\n dataMax = _a.dataMax;\n this.valueMin = dataMin;\n this.valueMax = dataMax;\n // Get the extremes from the y data\n return _super.prototype.getExtremes.call(this);\n };\n /**\n * Creates an object map from parent id to childrens index.\n *\n * @private\n * @function Highcharts.Series#getListOfParents\n *\n * @param {Highcharts.SeriesTreemapDataOptions} [data]\n * List of points set in options.\n *\n * @param {Array<string>} [existingIds]\n * List of all point ids.\n *\n * @return {Object}\n * Map from parent id to children index in data.\n */\n TreemapSeries.prototype.getListOfParents = function (data, existingIds) {\n var arr = TreemapSeries_isArray(data) ? data : [],\n ids = TreemapSeries_isArray(existingIds) ? existingIds : [],\n listOfParents = arr.reduce(function (prev,\n curr,\n i) {\n var parent = TreemapSeries_pick(curr.parent, '');\n if (typeof prev[parent] === 'undefined') {\n prev[parent] = [];\n }\n prev[parent].push(i);\n return prev;\n }, {\n '': [] // Root of tree\n });\n // If parent does not exist, hoist parent to root of tree.\n for (var _i = 0, _a = Object.keys(listOfParents); _i < _a.length; _i++) {\n var parent_2 = _a[_i];\n var children = listOfParents[parent_2];\n if ((parent_2 !== '') && (ids.indexOf(parent_2) === -1)) {\n for (var _b = 0, children_4 = children; _b < children_4.length; _b++) {\n var child = children_4[_b];\n listOfParents[''].push(child);\n }\n delete listOfParents[parent_2];\n }\n }\n return listOfParents;\n };\n /**\n * Creates a tree structured object from the series points.\n * @private\n */\n TreemapSeries.prototype.getTree = function () {\n var series = this,\n allIds = this.data.map(function (d) {\n return d.id;\n });\n series.parentList = series.getListOfParents(this.data, allIds);\n series.nodeMap = {};\n series.nodeList = [];\n return series.buildTree('', -1, 0, series.parentList || {});\n };\n TreemapSeries.prototype.buildTree = function (id, index, level, list, parent) {\n var series = this,\n children = [],\n point = series.points[index];\n var height = 0,\n child;\n // Actions\n for (var _i = 0, _a = (list[id] || []); _i < _a.length; _i++) {\n var i = _a[_i];\n child = series.buildTree(series.points[i].id, i, level + 1, list, id);\n height = Math.max(child.height + 1, height);\n children.push(child);\n }\n var node = new series.NodeClass().init(id,\n index,\n children,\n height,\n level,\n series,\n parent);\n for (var _b = 0, children_5 = children; _b < children_5.length; _b++) {\n var child_1 = children_5[_b];\n child_1.parentNode = node;\n }\n series.nodeMap[node.id] = node;\n series.nodeList.push(node);\n if (point) {\n point.node = node;\n node.point = point;\n }\n return node;\n };\n /**\n * Define hasData function for non-cartesian series. Returns true if the\n * series has points at all.\n * @private\n */\n TreemapSeries.prototype.hasData = function () {\n return !!this.dataTable.rowCount;\n };\n TreemapSeries.prototype.init = function (chart, options) {\n var series = this,\n breadcrumbsOptions = TreemapSeries_merge(options.drillUpButton,\n options.breadcrumbs),\n setOptionsEvent = TreemapSeries_addEvent(series, 'setOptions',\n function (event) {\n var options = event.userOptions;\n if (TreemapSeries_defined(options.allowDrillToNode) &&\n !TreemapSeries_defined(options.allowTraversingTree)) {\n options.allowTraversingTree = options.allowDrillToNode;\n delete options.allowDrillToNode;\n }\n if (TreemapSeries_defined(options.drillUpButton) &&\n !TreemapSeries_defined(options.traverseUpButton)) {\n options.traverseUpButton = options.drillUpButton;\n delete options.drillUpButton;\n }\n });\n _super.prototype.init.call(this, chart, options);\n // Treemap's opacity is a different option from other series\n delete series.opacity;\n // Handle deprecated options.\n series.eventsToUnbind.push(setOptionsEvent);\n if (series.options.allowTraversingTree) {\n series.eventsToUnbind.push(TreemapSeries_addEvent(series, 'click', series.onClickDrillToNode));\n series.eventsToUnbind.push(TreemapSeries_addEvent(series, 'setRootNode', function (e) {\n var chart = series.chart;\n if (chart.breadcrumbs) {\n // Create a list using the event after drilldown.\n chart.breadcrumbs.updateProperties(series.createList(e));\n }\n }));\n series.eventsToUnbind.push(TreemapSeries_addEvent(series, 'update', \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n function (e, redraw) {\n var breadcrumbs = this.chart.breadcrumbs;\n if (breadcrumbs && e.options.breadcrumbs) {\n breadcrumbs.update(e.options.breadcrumbs);\n }\n }));\n series.eventsToUnbind.push(TreemapSeries_addEvent(series, 'destroy', function destroyEvents(e) {\n var chart = this.chart;\n if (chart.breadcrumbs && !e.keepEventsForUpdate) {\n chart.breadcrumbs.destroy();\n chart.breadcrumbs = void 0;\n }\n }));\n }\n if (!chart.breadcrumbs) {\n chart.breadcrumbs = new Breadcrumbs_Breadcrumbs(chart, breadcrumbsOptions);\n }\n series.eventsToUnbind.push(TreemapSeries_addEvent(chart.breadcrumbs, 'up', function (e) {\n var drillUpsNumber = this.level - e.newLevel;\n for (var i = 0; i < drillUpsNumber; i++) {\n series.drillUp();\n }\n }));\n };\n /**\n * Add drilling on the suitable points.\n * @private\n */\n TreemapSeries.prototype.onClickDrillToNode = function (event) {\n var series = this,\n point = event.point,\n drillId = point && point.drillId;\n // If a drill id is returned, add click event and cursor.\n if (TreemapSeries_isString(drillId)) {\n point.setState(''); // Remove hover\n series.setRootNode(drillId, true, { trigger: 'click' });\n }\n };\n /**\n * Get presentational attributes\n * @private\n */\n TreemapSeries.prototype.pointAttribs = function (point, state) {\n var series = this,\n mapOptionsToLevel = (TreemapSeries_isObject(series.mapOptionsToLevel) ?\n series.mapOptionsToLevel :\n {}),\n level = point && mapOptionsToLevel[point.node.level] || {},\n options = this.options,\n stateOptions = state && options.states && options.states[state] || {},\n className = (point && point.getClassName()) || '', \n // Set attributes by precedence. Point trumps level trumps series.\n // Stroke width uses pick because it can be 0.\n attr = {\n 'stroke': (point && point.borderColor) ||\n level.borderColor ||\n stateOptions.borderColor ||\n options.borderColor,\n 'stroke-width': TreemapSeries_pick(point && point.borderWidth,\n level.borderWidth,\n stateOptions.borderWidth,\n options.borderWidth),\n 'dashstyle': (point && point.borderDashStyle) ||\n level.borderDashStyle ||\n stateOptions.borderDashStyle ||\n options.borderDashStyle,\n 'fill': (point && point.color) || this.color\n };\n var opacity;\n // Hide levels above the current view\n if (className.indexOf('highcharts-above-level') !== -1) {\n attr.fill = 'none';\n attr['stroke-width'] = 0;\n // Nodes with children that accept interaction\n }\n else if (className.indexOf('highcharts-internal-node-interactive') !== -1) {\n opacity = TreemapSeries_pick(stateOptions.opacity, options.opacity);\n attr.fill = color(attr.fill).setOpacity(opacity).get();\n attr.cursor = 'pointer';\n // Hide nodes that have children\n }\n else if (className.indexOf('highcharts-internal-node') !== -1) {\n attr.fill = 'none';\n }\n else if (state) {\n // Brighten and hoist the hover nodes\n attr.fill = color(attr.fill)\n .brighten(stateOptions.brightness)\n .get();\n }\n return attr;\n };\n /**\n * Set the node's color recursively, from the parent down.\n * @private\n */\n TreemapSeries.prototype.setColorRecursive = function (node, parentColor, colorIndex, index, siblings) {\n var series = this,\n chart = series && series.chart,\n colors = chart && chart.options && chart.options.colors;\n if (node) {\n var colorInfo = TreemapSeries_getColor(node, {\n colors: colors,\n index: index,\n mapOptionsToLevel: series.mapOptionsToLevel,\n parentColor: parentColor,\n parentColorIndex: colorIndex,\n series: series,\n siblings: siblings\n }),\n point = series.points[node.i];\n if (point) {\n point.color = colorInfo.color;\n point.colorIndex = colorInfo.colorIndex;\n }\n var i = -1;\n // Do it all again with the children\n for (var _i = 0, _a = (node.children || []); _i < _a.length; _i++) {\n var child = _a[_i];\n series.setColorRecursive(child, colorInfo.color, colorInfo.colorIndex, ++i, node.children.length);\n }\n }\n };\n TreemapSeries.prototype.setPointValues = function () {\n var series = this;\n var points = series.points,\n xAxis = series.xAxis,\n yAxis = series.yAxis;\n var styledMode = series.chart.styledMode;\n // Get the crisp correction in classic mode. For this to work in\n // styled mode, we would need to first add the shape (without x,\n // y, width and height), then read the rendered stroke width\n // using point.graphic.strokeWidth(), then modify and apply the\n // shapeArgs. This applies also to column series, but the\n // downside is performance and code complexity.\n var getStrokeWidth = function (point) { return (styledMode ?\n 0 :\n (series.pointAttribs(point)['stroke-width'] || 0)); };\n for (var _i = 0, points_3 = points; _i < points_3.length; _i++) {\n var point = points_3[_i];\n var _a = point.node,\n values = _a.pointValues,\n visible = _a.visible;\n // Points which is ignored, have no values.\n if (values && visible) {\n var height = values.height,\n width = values.width,\n x = values.x,\n y = values.y;\n var strokeWidth = getStrokeWidth(point);\n var x1 = crisp(xAxis.toPixels(x,\n true),\n strokeWidth,\n true);\n var x2 = crisp(xAxis.toPixels(x + width,\n true),\n strokeWidth,\n true);\n var y1 = crisp(yAxis.toPixels(y,\n true),\n strokeWidth,\n true);\n var y2 = crisp(yAxis.toPixels(y + height,\n true),\n strokeWidth,\n true);\n // Set point values\n var shapeArgs = {\n x: Math.min(x1,\n x2),\n y: Math.min(y1,\n y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n point.plotX = shapeArgs.x + (shapeArgs.width / 2);\n point.plotY = shapeArgs.y + (shapeArgs.height / 2);\n point.shapeArgs = shapeArgs;\n }\n else {\n // Reset visibility\n delete point.plotX;\n delete point.plotY;\n }\n }\n };\n /**\n * Sets a new root node for the series.\n *\n * @private\n * @function Highcharts.Series#setRootNode\n *\n * @param {string} id\n * The id of the new root node.\n *\n * @param {boolean} [redraw=true]\n * Whether to redraw the chart or not.\n *\n * @param {Object} [eventArguments]\n * Arguments to be accessed in event handler.\n *\n * @param {string} [eventArguments.newRootId]\n * Id of the new root.\n *\n * @param {string} [eventArguments.previousRootId]\n * Id of the previous root.\n *\n * @param {boolean} [eventArguments.redraw]\n * Whether to redraw the chart after.\n *\n * @param {Object} [eventArguments.series]\n * The series to update the root of.\n *\n * @param {string} [eventArguments.trigger]\n * The action which triggered the event. Undefined if the setRootNode is\n * called directly.\n *\n * @emits Highcharts.Series#event:setRootNode\n */\n TreemapSeries.prototype.setRootNode = function (id, redraw, eventArguments) {\n var series = this,\n eventArgs = TreemapSeries_extend({\n newRootId: id,\n previousRootId: series.rootNode,\n redraw: TreemapSeries_pick(redraw,\n true),\n series: series\n },\n eventArguments);\n /**\n * The default functionality of the setRootNode event.\n *\n * @private\n * @param {Object} args The event arguments.\n * @param {string} args.newRootId Id of the new root.\n * @param {string} args.previousRootId Id of the previous root.\n * @param {boolean} args.redraw Whether to redraw the chart after.\n * @param {Object} args.series The series to update the root of.\n * @param {string} [args.trigger=undefined] The action which\n * triggered the event. Undefined if the setRootNode is called\n * directly.\n */\n var defaultFn = function (args) {\n var series = args.series;\n // Store previous and new root ids on the series.\n series.idPreviousRoot = args.previousRootId;\n series.rootNode = args.newRootId;\n // Redraw the chart\n series.isDirty = true; // Force redraw\n if (args.redraw) {\n series.chart.redraw();\n }\n };\n // Fire setRootNode event.\n TreemapSeries_fireEvent(series, 'setRootNode', eventArgs, defaultFn);\n };\n /**\n * Workaround for `inactive` state. Since `series.opacity` option is\n * already reserved, don't use that state at all by disabling\n * `inactiveOtherPoints` and not inheriting states by points.\n * @private\n */\n TreemapSeries.prototype.setState = function (state) {\n this.options.inactiveOtherPoints = true;\n _super.prototype.setState.call(this, state, false);\n this.options.inactiveOtherPoints = false;\n };\n TreemapSeries.prototype.setTreeValues = function (tree) {\n var _a,\n _b,\n _c;\n var series = this,\n options = series.options,\n idRoot = series.rootNode,\n mapIdToNode = series.nodeMap,\n nodeRoot = mapIdToNode[idRoot],\n levelIsConstant = (typeof options.levelIsConstant === 'boolean' ?\n options.levelIsConstant :\n true),\n children = [],\n point = series.points[tree.i];\n // First give the children some values\n var childrenTotal = 0;\n for (var _i = 0, _d = tree.children; _i < _d.length; _i++) {\n var child = _d[_i];\n child = series.setTreeValues(child);\n children.push(child);\n if (!child.ignore) {\n childrenTotal += child.val;\n }\n }\n // Sort the children\n stableSort(children, function (a, b) { return ((a.sortIndex || 0) - (b.sortIndex || 0)); });\n // Set the values\n var val = TreemapSeries_pick(point && point.options.value,\n childrenTotal);\n if (point) {\n point.value = val;\n }\n if ((point === null || point === void 0 ? void 0 : point.isGroup) && ((_a = options.cluster) === null || _a === void 0 ? void 0 : _a.reductionFactor)) {\n val /= options.cluster.reductionFactor;\n }\n if (((_c = (_b = tree.parentNode) === null || _b === void 0 ? void 0 : _b.point) === null || _c === void 0 ? void 0 : _c.isGroup) && series.rootNode !== tree.parent) {\n tree.visible = false;\n }\n TreemapSeries_extend(tree, {\n children: children,\n childrenTotal: childrenTotal,\n // Ignore this node if point is not visible\n ignore: !(TreemapSeries_pick(point && point.visible, true) && (val > 0)),\n isLeaf: tree.visible && !childrenTotal,\n isGroup: point === null || point === void 0 ? void 0 : point.isGroup,\n levelDynamic: (tree.level - (levelIsConstant ? 0 : nodeRoot.level)),\n name: TreemapSeries_pick(point && point.name, ''),\n sortIndex: TreemapSeries_pick(point && point.sortIndex, -val),\n val: val\n });\n return tree;\n };\n TreemapSeries.prototype.sliceAndDice = function (parent, children) {\n return this.algorithmFill(true, parent, children);\n };\n TreemapSeries.prototype.squarified = function (parent, children) {\n return this.algorithmLowAspectRatio(true, parent, children);\n };\n TreemapSeries.prototype.strip = function (parent, children) {\n return this.algorithmLowAspectRatio(false, parent, children);\n };\n TreemapSeries.prototype.stripes = function (parent, children) {\n return this.algorithmFill(false, parent, children);\n };\n TreemapSeries.prototype.translate = function (tree) {\n var _a;\n var series = this,\n options = series.options,\n applyGrouping = !tree;\n var // NOTE: updateRootId modifies series.\n rootId = TreemapSeries_updateRootId(series),\n rootNode,\n pointValues,\n seriesArea,\n val;\n if (!tree && !rootId.startsWith('highcharts-grouped-treemap-points-')) {\n // Group points are removed, but not destroyed during generatePoints\n (this.points || []).forEach(function (point) {\n if (point.isGroup) {\n point.destroy();\n }\n });\n // Call prototype function\n _super.prototype.translate.call(this);\n // @todo Only if series.isDirtyData is true\n tree = series.getTree();\n }\n // Ensure `tree` and `series.tree` are synchronized\n series.tree = tree = tree || series.tree;\n rootNode = series.nodeMap[rootId];\n if (rootId !== '' && !rootNode) {\n series.setRootNode('', false);\n rootId = series.rootNode;\n rootNode = series.nodeMap[rootId];\n }\n if (!((_a = rootNode.point) === null || _a === void 0 ? void 0 : _a.isGroup)) {\n series.mapOptionsToLevel = TreemapSeries_getLevelOptions({\n from: rootNode.level + 1,\n levels: options.levels,\n to: tree.height,\n defaults: {\n levelIsConstant: series.options.levelIsConstant,\n colorByPoint: options.colorByPoint\n }\n });\n }\n // Parents of the root node is by default visible\n Treemap_TreemapUtilities.recursive(series.nodeMap[series.rootNode], function (node) {\n var p = node.parent;\n var next = false;\n node.visible = true;\n if (p || p === '') {\n next = series.nodeMap[p];\n }\n return next;\n });\n // Children of the root node is by default visible\n Treemap_TreemapUtilities.recursive(series.nodeMap[series.rootNode].children, function (children) {\n var next = false;\n for (var _i = 0, children_6 = children; _i < children_6.length; _i++) {\n var child = children_6[_i];\n child.visible = true;\n if (child.children.length) {\n next = (next || []).concat(child.children);\n }\n }\n return next;\n });\n series.setTreeValues(tree);\n // Calculate plotting values.\n series.axisRatio = (series.xAxis.len / series.yAxis.len);\n series.nodeMap[''].pointValues = pointValues = {\n x: 0,\n y: 0,\n width: axisMax,\n height: axisMax\n };\n series.nodeMap[''].values = seriesArea = TreemapSeries_merge(pointValues, {\n width: (pointValues.width * series.axisRatio),\n direction: (options.layoutStartingDirection === 'vertical' ? 0 : 1),\n val: tree.val\n });\n series.calculateChildrenAreas(tree, seriesArea);\n // Logic for point colors\n if (!series.colorAxis &&\n !options.colorByPoint) {\n series.setColorRecursive(series.tree);\n }\n // Update axis extremes according to the root node.\n if (options.allowTraversingTree) {\n if (rootNode.pointValues) {\n val = rootNode.pointValues;\n series.xAxis.setExtremes(val.x, val.x + val.width, false);\n series.yAxis.setExtremes(val.y, val.y + val.height, false);\n series.xAxis.setScale();\n series.yAxis.setScale();\n }\n }\n // Assign values to points.\n series.setPointValues();\n if (applyGrouping) {\n series.applyTreeGrouping();\n }\n };\n /* *\n *\n * Static Properties\n *\n * */\n TreemapSeries.defaultOptions = TreemapSeries_merge(ScatterSeries.defaultOptions, Treemap_TreemapSeriesDefaults);\n return TreemapSeries;\n}(ScatterSeries));\nTreemapSeries_extend(TreemapSeries.prototype, {\n buildKDTree: noop,\n colorAttribs: Series_ColorMapComposition.seriesMembers.colorAttribs,\n colorKey: 'colorValue', // Point color option key\n directTouch: true,\n getExtremesFromAll: true,\n getSymbol: noop,\n optionalAxis: 'colorAxis',\n parallelArrays: ['x', 'y', 'value', 'colorValue'],\n pointArrayMap: ['value', 'colorValue'],\n pointClass: Treemap_TreemapPoint,\n NodeClass: Treemap_TreemapNode,\n trackerGroups: ['group', 'dataLabelsGroup'],\n utils: Treemap_TreemapUtilities\n});\nSeries_ColorMapComposition.compose(TreemapSeries);\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('treemap', TreemapSeries);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Treemap_TreemapSeries = (TreemapSeries);\n\n;// ./code/es5/es-modules/masters/modules/treemap.src.js\n\n\n\n\n\nvar G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\nG.Breadcrumbs = G.Breadcrumbs || Breadcrumbs_Breadcrumbs;\nG.Breadcrumbs.compose(G.Chart, G.defaultOptions);\nTreemap_TreemapSeries.compose(G.Series);\n/* harmony default export */ var treemap_src = ((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()));\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__984__","__WEBPACK_EXTERNAL_MODULE__620__","__WEBPACK_EXTERNAL_MODULE__512__","__WEBPACK_EXTERNAL_MODULE__28__","extendStatics","ColorMapComposition","TreemapUtilities","__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__","treemap_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","Breadcrumbs_BreadcrumbsDefaults","lang","mainBreadcrumb","options","buttonTheme","fill","height","padding","zIndex","states","select","style","color","buttonSpacing","floating","format","relativeTo","rtl","position","align","verticalAlign","x","y","separator","text","fontSize","showFullPath","useHTML","highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_","highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default","composed","addEvent","defined","extend","fireEvent","isString","merge","objectEach","pick","pushUnique","onChartAfterShowResetZoom","chart","breadcrumbs","bbox","resetZoomButton","getBBox","breadcrumbsOptions","alignBreadcrumbsGroup","width","onChartDestroy","destroy","onChartGetMargins","level","breadcrumbsHeight","marginBottom","yOffset","plotTop","onChartRedraw","redraw","onChartSelection","event","resetSelection","Breadcrumbs","userOptions","elementList","isDirty","list","chartOptions","drilldown","drillUpButton","defaultOptions","navigation","compose","ChartClass","highchartsDefaultOptions","updateProperties","setList","setLevel","length","getLevel","getButtonText","breadcrumb","textFormat","defaultText","drillUpText","returnText","formatter","levelOptions","render","group","renderer","g","addClass","attr","add","renderFullPathButtons","renderSingleButton","destroySingleButton","resetElementListState","updateListElements","destroyListElements","posX","previousBreadcrumb","renderButton","updateSingleButton","xOffset","positionOptions","alignTo","bBox","additionalSpace","newPositions","posY","button","e","callDefaultEvent","buttonEvents","events","click","newLevel","styledMode","renderSeparator","separatorOptions","label","css","update","currentBreadcrumb","force","element","updated","rtlFactor","updateXPosition","spacing","adjustToRTL","translate","i","iEnd","isLast","setState","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_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_SVGElement_commonjs_highcharts_SVGElement_commonjs2_highcharts_SVGElement_root_Highcharts_SVGElement_","highcharts_SVGElement_commonjs_highcharts_SVGElement_commonjs2_highcharts_SVGElement_root_Highcharts_SVGElement_default","columnProto","seriesTypes","column","ColorMapComposition_addEvent","ColorMapComposition_defined","onPointAfterSetState","series","point","moveToTopOnHover","graphic","stateMarkerGraphic","pointerEvents","parentGroup","state","id","href","url","concat","visibility","pointMembers","dataLabelOnNull","isValid","value","Infinity","isNaN","seriesMembers","colorKey","axisTypes","parallelArrays","pointArrayMap","trackerGroups","colorAttribs","ret","colorProp","pointAttribs","SeriesClass","pointClass","Series_ColorMapComposition","TreemapAlgorithmGroup","h","w","p","plot","direction","startDirection","total","nW","lW","nH","lH","elArr","lP","nR","lR","aspectRatio","Math","max","addElement","el","push","reset","TreemapNode","childrenTotal","visible","init","children","parent","__assign","assign","t","s","arguments","apply","params","animatableAttribs","onComplete","animation","hasRendered","attribs","getClassName","shouldDraw","shapeType","image","imageUrl","shapeArgs","animate","isNew","destroy_1","keys","__extends","b","setPrototypeOf","__proto__","Array","__","constructor","create","_a","PiePoint","pie","ScatterPoint","scatter","TreemapPoint_extend","isNumber","TreemapPoint_pick","TreemapPoint","_super","_this","groupedPointsAmount","draw","Series_DrawPointUtilities","className","node","nodeMap","rootNode","isGroup","isLeaf","interactByLeaf","allowTraversingTree","Boolean","plotY","setVisible","TreemapSeriesDefaults_isString","TreemapSeriesDefaults","animationLimit","borderRadius","showInLegend","marker","colorByPoint","dataLabels","defer","enabled","name","inside","textOverflow","tooltip","headerFormat","pointFormat","clusterFormat","ignoreHiddenPoint","layoutAlgorithm","layoutStartingDirection","alternateStartingDirection","levelIsConstant","traverseUpButton","borderColor","borderWidth","opacity","hover","brightness","heatmap","halo","shadow","legendSymbol","traverseToLeaf","cluster","pixelWidth","pixelHeight","reductionFactor","minimumClusterSize","distance","gridSize","kmeansThreshold","lineWidth","radius","recursive","item","func","context","next","Treemap_TreemapUtilities","isArray","TreeUtilities_isNumber","isObject","TreeUtilities_merge","TreeUtilities_pick","relativeLength","colorVariation","colorIndexByPoint","colorIndex","index","mapOptionsToLevel","parentColor","parentColorIndex","colors","siblings","points","chartOptionsChart","colorCount","parse","brighten","to","defaults","converted","from","levels","result","reduce","rootId","TreemapSeries_extends","TypeError","String","TreemapSeries_composed","noop","TreemapSeries_a","ColumnSeries","ScatterSeries","TreemapSeries_addEvent","correctFloat","crisp","TreemapSeries_defined","error","TreemapSeries_extend","TreemapSeries_fireEvent","TreemapSeries_isArray","TreemapSeries_isObject","TreemapSeries_isString","TreemapSeries_merge","TreemapSeries_pick","TreemapSeries_pushUnique","splat","stableSort","treemapAxisDefaultValues","onSeriesAfterBindAxes","treeAxis","xAxis","yAxis","is","endOnTick","gridLineWidth","min","minPadding","maxPadding","startOnTick","title","tickPositions","setOptions","TreemapSeries","algorithmCalcPoints","directionChange","last","childrenArea","pX","pY","pW","pH","keep","end","gW","gH","_i","algorithmFill","pTot","children_1","child","val","algorithmLowAspectRatio","children_2","alignDataLabel","dataLabel","labelOptions","applyTreeGrouping","parentList","parentGroups_1","checkIfHide_1","_b","_c","_d","_e","_f","compareHeight","thresholdArea","area","forEach","tree","_loop_1","parent_1","indexOf","splice","id_1","groupPoint","find","PointClass","pointIndex","formatPrefix","amount","name_1","nodeList","buildTree","calculateChildrenAreas","algorithm","alternate","filter","ignore","childrenValues","children_3","values","pointValues","axisRatio","axisMax","createList","currentLevelNumber","target","newRootId","extraNodes","reverse","node_1","drawDataLabels","points_1","hasDataLabels","lineClamp","floor","dlOptions","drawPoints","withinAnimationLimit","pointCount","points_2","levelDynamic","groupKey","hasGraphic","shouldAnimate","isInside","r","selected","survive","drillId","drillToByLeaf","drillToByGroup","nodeParent","drillToNode","setRootNode","drillUp","trigger","getExtremes","colorValueData","dataMin","dataMax","valueMin","valueMax","getListOfParents","data","existingIds","arr","ids","listOfParents","prev","curr","parent_2","children_4","getTree","allIds","map","NodeClass","children_5","child_1","parentNode","hasData","dataTable","rowCount","setOptionsEvent","allowDrillToNode","eventsToUnbind","onClickDrillToNode","keepEventsForUpdate","drillUpsNumber","stateOptions","borderDashStyle","setOpacity","cursor","setColorRecursive","colorInfo","TreemapSeries_getColor","setPointValues","points_3","strokeWidth","x1","toPixels","x2","y1","y2","abs","plotX","eventArguments","previousRootId","args","idPreviousRoot","inactiveOtherPoints","setTreeValues","idRoot","nodeRoot","mapIdToNode","sortIndex","sliceAndDice","squarified","strip","stripes","seriesArea","applyGrouping","TreemapSeries_updateRootId","startsWith","TreemapSeries_getLevelOptions","children_6","len","colorAxis","setExtremes","setScale","buildKDTree","directTouch","getExtremesFromAll","getSymbol","optionalAxis","utils","registerSeriesType","G","Chart","Treemap_TreemapSeries","Series"],"mappings":"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"}
Hacked By AnonymousFox1.0, Coded By AnonymousFox