Hacked By AnonymousFox

Current Path : C:/AppServ/www/financial/stacked/code/
Upload File :
Current File : C:/AppServ/www/financial/stacked/code/highcharts-3d.js.map

{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highcharts JS v12.1.2 (2025-01-09)\n * @module highcharts/highcharts-3d\n * @requires highcharts\n *\n * 3D features for Highcharts JS\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(root[\"_Highcharts\"], root[\"_Highcharts\"][\"Color\"], root[\"_Highcharts\"][\"SeriesRegistry\"], root[\"_Highcharts\"][\"RendererRegistry\"], root[\"_Highcharts\"][\"Series\"], root[\"_Highcharts\"][\"StackItem\"], root[\"_Highcharts\"][\"Axis\"], root[\"_Highcharts\"][\"Series\"][\"types\"][\"scatter\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/highcharts-3d\", [\"highcharts/highcharts\"], function (amd1) {return factory(amd1,amd1[\"Color\"],amd1[\"SeriesRegistry\"],amd1[\"RendererRegistry\"],amd1[\"Series\"],amd1[\"StackItem\"],amd1[\"Axis\"],amd1[\"Series\"],[\"types\"],[\"scatter\"]);});\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/highcharts-3d\"] = factory(root[\"_Highcharts\"], root[\"_Highcharts\"][\"Color\"], root[\"_Highcharts\"][\"SeriesRegistry\"], root[\"_Highcharts\"][\"RendererRegistry\"], root[\"_Highcharts\"][\"Series\"], root[\"_Highcharts\"][\"StackItem\"], root[\"_Highcharts\"][\"Axis\"], root[\"_Highcharts\"][\"Series\"][\"types\"][\"scatter\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"Color\"], root[\"Highcharts\"][\"SeriesRegistry\"], root[\"Highcharts\"][\"RendererRegistry\"], root[\"Highcharts\"][\"Series\"], root[\"Highcharts\"][\"StackItem\"], root[\"Highcharts\"][\"Axis\"], root[\"Highcharts\"][\"Series\"][\"types\"][\"scatter\"]);\n})(typeof window === 'undefined' ? this : window, (__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__620__, __WEBPACK_EXTERNAL_MODULE__512__, __WEBPACK_EXTERNAL_MODULE__608__, __WEBPACK_EXTERNAL_MODULE__820__, __WEBPACK_EXTERNAL_MODULE__184__, __WEBPACK_EXTERNAL_MODULE__532__, __WEBPACK_EXTERNAL_MODULE__632__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 532:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__532__;\n\n/***/ }),\n\n/***/ 620:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__620__;\n\n/***/ }),\n\n/***/ 608:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__608__;\n\n/***/ }),\n\n/***/ 632:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__632__;\n\n/***/ }),\n\n/***/ 820:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__820__;\n\n/***/ }),\n\n/***/ 512:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__512__;\n\n/***/ }),\n\n/***/ 184:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__184__;\n\n/***/ }),\n\n/***/ 944:\n/***/ ((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(() => {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = (module) => {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\t() => (module['default']) :\n/******/ \t\t\t\t() => (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(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (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(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (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\": () => (/* binding */ highcharts_3d_src)\n});\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\"],\"commonjs\":[\"highcharts\"],\"commonjs2\":[\"highcharts\"],\"root\":[\"Highcharts\"]}\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_ = __webpack_require__(944);\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default = /*#__PURE__*/__webpack_require__.n(highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_);\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"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;// ./code/es-modules/Core/Math3D.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\nconst { deg2rad } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { pick } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n *  Functions\n *\n * */\n/* eslint-disable max-len */\n/**\n * Apply 3-D rotation\n * Euler Angles (XYZ):\n *     cosA = cos(Alfa|Roll)\n *     cosB = cos(Beta|Pitch)\n *     cosG = cos(Gamma|Yaw)\n *\n * Composite rotation:\n * |          cosB * cosG             |           cosB * sinG            |    -sinB    |\n * | sinA * sinB * cosG - cosA * sinG | sinA * sinB * sinG + cosA * cosG | sinA * cosB |\n * | cosA * sinB * cosG + sinA * sinG | cosA * sinB * sinG - sinA * cosG | cosA * cosB |\n *\n * Now, Gamma/Yaw is not used (angle=0), so we assume cosG = 1 and sinG = 0, so\n * we get:\n * |     cosB    |   0    |   - sinB    |\n * | sinA * sinB |  cosA  | sinA * cosB |\n * | cosA * sinB | - sinA | cosA * cosB |\n *\n * But in browsers, y is reversed, so we get sinA => -sinA. The general result\n * is:\n * |      cosB     |   0    |    - sinB     |     | x |     | px |\n * | - sinA * sinB |  cosA  | - sinA * cosB |  x  | y |  =  | py |\n * |  cosA * sinB  |  sinA  |  cosA * cosB  |     | z |     | pz |\n *\n * @private\n * @function rotate3D\n */\n/* eslint-enable max-len */\n/**\n * Rotates the position as defined in angles.\n * @private\n * @param {number} x\n *        X coordinate\n * @param {number} y\n *        Y coordinate\n * @param {number} z\n *        Z coordinate\n * @param {Highcharts.Rotation3DObject} angles\n *        Rotation angles\n * @return {Highcharts.Position3DObject}\n *         Rotated position\n */\nfunction rotate3D(x, y, z, angles) {\n    return {\n        x: angles.cosB * x - angles.sinB * z,\n        y: -angles.sinA * angles.sinB * x + angles.cosA * y -\n            angles.cosB * angles.sinA * z,\n        z: angles.cosA * angles.sinB * x + angles.sinA * y +\n            angles.cosA * angles.cosB * z\n    };\n}\n/**\n * Transforms a given array of points according to the angles in chart.options.\n *\n * @private\n * @function Highcharts.perspective\n *\n * @param {Array<Highcharts.Position3DObject>} points\n * The array of points\n *\n * @param {Highcharts.Chart} chart\n * The chart\n *\n * @param {boolean} [insidePlotArea]\n * Whether to verify that the points are inside the plotArea\n *\n * @param {boolean} [useInvertedPersp]\n * Whether to use inverted perspective in calculations\n *\n * @return {Array<Highcharts.Position3DObject>}\n * An array of transformed points\n *\n * @requires highcharts-3d\n */\nfunction perspective(points, chart, insidePlotArea, useInvertedPersp) {\n    const options3d = chart.options.chart.options3d, \n    /* The useInvertedPersp argument is used for inverted charts with\n     * already inverted elements, such as dataLabels or tooltip positions.\n     */\n    inverted = pick(useInvertedPersp, insidePlotArea ? chart.inverted : false), origin = {\n        x: chart.plotWidth / 2,\n        y: chart.plotHeight / 2,\n        z: options3d.depth / 2,\n        vd: pick(options3d.depth, 1) * pick(options3d.viewDistance, 0)\n    }, scale = chart.scale3d || 1, beta = deg2rad * options3d.beta * (inverted ? -1 : 1), alpha = deg2rad * options3d.alpha * (inverted ? -1 : 1), angles = {\n        cosA: Math.cos(alpha),\n        cosB: Math.cos(-beta),\n        sinA: Math.sin(alpha),\n        sinB: Math.sin(-beta)\n    };\n    if (!insidePlotArea) {\n        origin.x += chart.plotLeft;\n        origin.y += chart.plotTop;\n    }\n    // Transform each point\n    return points.map(function (point) {\n        const rotated = rotate3D((inverted ? point.y : point.x) - origin.x, (inverted ? point.x : point.y) - origin.y, (point.z || 0) - origin.z, angles), \n        // Apply perspective\n        coordinate = perspective3D(rotated, origin, origin.vd);\n        // Apply translation\n        coordinate.x = coordinate.x * scale + origin.x;\n        coordinate.y = coordinate.y * scale + origin.y;\n        coordinate.z = rotated.z * scale + origin.z;\n        return {\n            x: (inverted ? coordinate.y : coordinate.x),\n            y: (inverted ? coordinate.x : coordinate.y),\n            z: coordinate.z\n        };\n    });\n}\n/**\n * Perspective3D function is available in global Highcharts scope because is\n * needed also outside of perspective() function (#8042).\n * @private\n * @function Highcharts.perspective3D\n *\n * @param {Highcharts.Position3DObject} coordinate\n * 3D position\n *\n * @param {Highcharts.Position3DObject} origin\n * 3D root position\n *\n * @param {number} distance\n * Perspective distance\n *\n * @return {Highcharts.PositionObject}\n * Perspective 3D Position\n *\n * @requires highcharts-3d\n */\nfunction perspective3D(coordinate, origin, distance) {\n    const projection = ((distance > 0) &&\n        (distance < Number.POSITIVE_INFINITY)) ?\n        distance / (coordinate.z + origin.z + distance) :\n        1;\n    return {\n        x: coordinate.x * projection,\n        y: coordinate.y * projection\n    };\n}\n/**\n * Calculate a distance from camera to points - made for calculating zIndex of\n * scatter points.\n *\n * @private\n * @function Highcharts.pointCameraDistance\n *\n * @param {Highcharts.Dictionary<number>} coordinates\n * Coordinates of the specific point\n *\n * @param {Highcharts.Chart} chart\n * Related chart\n *\n * @return {number}\n * Distance from camera to point\n *\n * @requires highcharts-3d\n */\nfunction pointCameraDistance(coordinates, chart) {\n    const options3d = chart.options.chart.options3d, cameraPosition = {\n        x: chart.plotWidth / 2,\n        y: chart.plotHeight / 2,\n        z: pick(options3d.depth, 1) * pick(options3d.viewDistance, 0) +\n            options3d.depth\n    }, \n    // Added support for objects with plotX or x coordinates.\n    distance = Math.sqrt(Math.pow(cameraPosition.x - pick(coordinates.plotX, coordinates.x), 2) +\n        Math.pow(cameraPosition.y - pick(coordinates.plotY, coordinates.y), 2) +\n        Math.pow(cameraPosition.z - pick(coordinates.plotZ, coordinates.z), 2));\n    return distance;\n}\n/**\n * Calculate area of a 2D polygon using Shoelace algorithm\n * https://en.wikipedia.org/wiki/Shoelace_formula\n *\n * @private\n * @function Highcharts.shapeArea\n *\n * @param {Array<Highcharts.PositionObject>} vertexes\n * 2D Polygon\n *\n * @return {number}\n * Calculated area\n *\n * @requires highcharts-3d\n */\nfunction shapeArea(vertexes) {\n    let area = 0, i, j;\n    for (i = 0; i < vertexes.length; i++) {\n        j = (i + 1) % vertexes.length;\n        area += vertexes[i].x * vertexes[j].y - vertexes[j].x * vertexes[i].y;\n    }\n    return area / 2;\n}\n/**\n * Calculate area of a 3D polygon after perspective projection\n *\n * @private\n * @function Highcharts.shapeArea3d\n *\n * @param {Array<Highcharts.Position3DObject>} vertexes\n * 3D Polygon\n *\n * @param {Highcharts.Chart} chart\n * Related chart\n *\n * @param {boolean} [insidePlotArea]\n * Whether to verify that the points are inside the plotArea\n *\n * @return {number}\n * Calculated area\n *\n * @requires highcharts-3d\n */\nfunction shapeArea3D(vertexes, chart, insidePlotArea) {\n    return shapeArea(perspective(vertexes, chart, insidePlotArea));\n}\n/* *\n *\n *  Default Export\n *\n * */\nconst Math3D = {\n    perspective,\n    perspective3D,\n    pointCameraDistance,\n    shapeArea,\n    shapeArea3D\n};\n/* harmony default export */ const Core_Math3D = (Math3D);\n\n;// ./code/es-modules/Core/Chart/Chart3D.js\n/* *\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  Extension for 3D charts\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nconst { parse: color } = (highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default());\n\nconst { defaultOptions: genericDefaultOptions } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { perspective: Chart3D_perspective, shapeArea3D: Chart3D_shapeArea3D } = Core_Math3D;\n\nconst { addEvent, isArray, merge, pick: Chart3D_pick, wrap } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n *  Composition\n *\n * */\nvar Chart3D;\n(function (Chart3D) {\n    /* *\n     *\n     *  Declarations\n     *\n     * */\n    /* *\n     *\n     *  Constants\n     *\n     * */\n    /**\n     * @optionparent\n     * @private\n     */\n    Chart3D.defaultOptions = {\n        chart: {\n            /**\n             * Options to render charts in 3 dimensions. This feature requires\n             * `highcharts-3d.js`, found in the download package or online at\n             * [code.highcharts.com/highcharts-3d.js](https://code.highcharts.com/highcharts-3d.js).\n             *\n             * @since    4.0\n             * @product  highcharts\n             * @requires highcharts-3d\n             */\n            options3d: {\n                /**\n                 * Whether to render the chart using the 3D functionality.\n                 *\n                 * @since   4.0\n                 * @product highcharts\n                 */\n                enabled: false,\n                /**\n                 * One of the two rotation angles for the chart.\n                 *\n                 * @since   4.0\n                 * @product highcharts\n                 */\n                alpha: 0,\n                /**\n                 * One of the two rotation angles for the chart.\n                 *\n                 * @since   4.0\n                 * @product highcharts\n                 */\n                beta: 0,\n                /**\n                 * The total depth of the chart.\n                 *\n                 * @since   4.0\n                 * @product highcharts\n                 */\n                depth: 100,\n                /**\n                 * Whether the 3d box should automatically adjust to the chart\n                 * plot area.\n                 *\n                 * @since   4.2.4\n                 * @product highcharts\n                 */\n                fitToPlot: true,\n                /**\n                 * Defines the distance the viewer is standing in front of the\n                 * chart, this setting is important to calculate the perspective\n                 * effect in column and scatter charts. It is not used for 3D\n                 * pie charts.\n                 *\n                 * @since   4.0\n                 * @product highcharts\n                 */\n                viewDistance: 25,\n                /**\n                 * Set it to `\"auto\"` to automatically move the labels to the\n                 * best edge.\n                 *\n                 * @type    {\"auto\"|null}\n                 * @since   5.0.12\n                 * @product highcharts\n                 */\n                axisLabelPosition: null,\n                /**\n                 * Provides the option to draw a frame around the charts by\n                 * defining a bottom, front and back panel.\n                 *\n                 * @since    4.0\n                 * @product  highcharts\n                 * @requires highcharts-3d\n                 */\n                frame: {\n                    /**\n                     * Whether the frames are visible.\n                     */\n                    visible: 'default',\n                    /**\n                     * General pixel thickness for the frame faces.\n                     */\n                    size: 1,\n                    /**\n                     * The bottom of the frame around a 3D chart.\n                     *\n                     * @since    4.0\n                     * @product  highcharts\n                     * @requires highcharts-3d\n                     */\n                    /**\n                     * The color of the panel.\n                     *\n                     * @type      {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n                     * @default   transparent\n                     * @since     4.0\n                     * @product   highcharts\n                     * @apioption chart.options3d.frame.bottom.color\n                     */\n                    /**\n                     * The thickness of the panel.\n                     *\n                     * @type      {number}\n                     * @default   1\n                     * @since     4.0\n                     * @product   highcharts\n                     * @apioption chart.options3d.frame.bottom.size\n                     */\n                    /**\n                     * Whether to display the frame. Possible values are `true`,\n                     * `false`, `\"auto\"` to display only the frames behind the\n                     * data, and `\"default\"` to display faces behind the data\n                     * based on the axis layout, ignoring the point of view.\n                     *\n                     * @sample {highcharts} highcharts/3d/scatter-frame/\n                     *         Auto frames\n                     *\n                     * @type      {boolean|\"default\"|\"auto\"}\n                     * @default   default\n                     * @since     5.0.12\n                     * @product   highcharts\n                     * @apioption chart.options3d.frame.bottom.visible\n                     */\n                    /**\n                     * The bottom of the frame around a 3D chart.\n                     */\n                    bottom: {},\n                    /**\n                     * The top of the frame around a 3D chart.\n                     *\n                     * @extends chart.options3d.frame.bottom\n                     */\n                    top: {},\n                    /**\n                     * The left side of the frame around a 3D chart.\n                     *\n                     * @extends chart.options3d.frame.bottom\n                     */\n                    left: {},\n                    /**\n                     * The right of the frame around a 3D chart.\n                     *\n                     * @extends chart.options3d.frame.bottom\n                     */\n                    right: {},\n                    /**\n                     * The back side of the frame around a 3D chart.\n                     *\n                     * @extends chart.options3d.frame.bottom\n                     */\n                    back: {},\n                    /**\n                     * The front of the frame around a 3D chart.\n                     *\n                     * @extends chart.options3d.frame.bottom\n                     */\n                    front: {}\n                }\n            }\n        }\n    };\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /**\n     * @private\n     */\n    function compose(ChartClass, FxClass) {\n        const chartProto = ChartClass.prototype;\n        const fxProto = FxClass.prototype;\n        /**\n         * Shorthand to check the is3d flag.\n         * @private\n         * @return {boolean}\n         * Whether it is a 3D chart.\n         */\n        chartProto.is3d = function () {\n            return !!this.options.chart.options3d?.enabled;\n        };\n        chartProto.propsRequireDirtyBox.push('chart.options3d');\n        chartProto.propsRequireUpdateSeries.push('chart.options3d');\n        /**\n         * Animation setter for matrix property.\n         * @private\n         */\n        fxProto.matrixSetter = function () {\n            let interpolated;\n            if (this.pos < 1 &&\n                (isArray(this.start) || isArray(this.end))) {\n                const start = (this.start ||\n                    [1, 0, 0, 1, 0, 0]), end = this.end || [1, 0, 0, 1, 0, 0];\n                interpolated = [];\n                for (let i = 0; i < 6; i++) {\n                    interpolated.push(this.pos * end[i] + (1 - this.pos) * start[i]);\n                }\n            }\n            else {\n                interpolated = this.end;\n            }\n            this.elem.attr(this.prop, interpolated, null, true);\n        };\n        merge(true, genericDefaultOptions, Chart3D.defaultOptions);\n        addEvent(ChartClass, 'init', onInit);\n        addEvent(ChartClass, 'addSeries', onAddSeries);\n        addEvent(ChartClass, 'afterDrawChartBox', onAfterDrawChartBox);\n        addEvent(ChartClass, 'afterGetContainer', onAfterGetContainer);\n        addEvent(ChartClass, 'afterInit', onAfterInit);\n        addEvent(ChartClass, 'afterSetChartSize', onAfterSetChartSize);\n        addEvent(ChartClass, 'beforeRedraw', onBeforeRedraw);\n        addEvent(ChartClass, 'beforeRender', onBeforeRender);\n        wrap(chartProto, 'isInsidePlot', wrapIsInsidePlot);\n        wrap(chartProto, 'renderSeries', wrapRenderSeries);\n        wrap(chartProto, 'setClassName', wrapSetClassName);\n    }\n    Chart3D.compose = compose;\n    /**\n     * Legacy support for HC < 6 to make 'scatter' series in a 3D chart route to\n     * the real 'scatter3d' series type. (#8407)\n     * @private\n     */\n    function onAddSeries(e) {\n        if (this.is3d()) {\n            if (e.options.type === 'scatter') {\n                e.options.type = 'scatter3d';\n            }\n        }\n    }\n    /**\n     * @private\n     */\n    function onAfterDrawChartBox() {\n        if (this.chart3d &&\n            this.is3d()) {\n            const chart = this, renderer = chart.renderer, options3d = chart.options.chart.options3d, frame = chart.chart3d.get3dFrame(), xm = chart.plotLeft, xp = chart.plotLeft + chart.plotWidth, ym = chart.plotTop, yp = chart.plotTop + chart.plotHeight, zm = 0, zp = options3d.depth, xmm = xm - (frame.left.visible ? frame.left.size : 0), xpp = xp + (frame.right.visible ? frame.right.size : 0), ymm = ym - (frame.top.visible ? frame.top.size : 0), ypp = yp + (frame.bottom.visible ? frame.bottom.size : 0), zmm = zm - (frame.front.visible ? frame.front.size : 0), zpp = zp + (frame.back.visible ? frame.back.size : 0), verb = chart.hasRendered ? 'animate' : 'attr';\n            chart.chart3d.frame3d = frame;\n            if (!chart.frameShapes) {\n                chart.frameShapes = {\n                    bottom: renderer.polyhedron().add(),\n                    top: renderer.polyhedron().add(),\n                    left: renderer.polyhedron().add(),\n                    right: renderer.polyhedron().add(),\n                    back: renderer.polyhedron().add(),\n                    front: renderer.polyhedron().add()\n                };\n            }\n            chart.frameShapes.bottom[verb]({\n                'class': 'highcharts-3d-frame highcharts-3d-frame-bottom',\n                zIndex: frame.bottom.frontFacing ? -1000 : 1000,\n                faces: [{\n                        fill: color(frame.bottom.color).brighten(0.1).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xpp,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xpp,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xmm,\n                                y: ypp,\n                                z: zpp\n                            }],\n                        enabled: frame.bottom.visible\n                    },\n                    {\n                        fill: color(frame.bottom.color).brighten(0.1).get(),\n                        vertexes: [{\n                                x: xm,\n                                y: yp,\n                                z: zp\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zp\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zm\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zm\n                            }],\n                        enabled: frame.bottom.visible\n                    },\n                    {\n                        fill: color(frame.bottom.color).brighten(-0.1).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xmm,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zp\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zm\n                            }],\n                        enabled: frame.bottom.visible && !frame.left.visible\n                    },\n                    {\n                        fill: color(frame.bottom.color).brighten(-0.1).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xpp,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zm\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zp\n                            }],\n                        enabled: frame.bottom.visible && !frame.right.visible\n                    },\n                    {\n                        fill: color(frame.bottom.color).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xmm,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zm\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zm\n                            }],\n                        enabled: frame.bottom.visible && !frame.front.visible\n                    },\n                    {\n                        fill: color(frame.bottom.color).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xpp,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zp\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zp\n                            }],\n                        enabled: frame.bottom.visible && !frame.back.visible\n                    }]\n            });\n            chart.frameShapes.top[verb]({\n                'class': 'highcharts-3d-frame highcharts-3d-frame-top',\n                zIndex: frame.top.frontFacing ? -1000 : 1000,\n                faces: [{\n                        fill: color(frame.top.color).brighten(0.1).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xpp,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xpp,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xmm,\n                                y: ymm,\n                                z: zmm\n                            }],\n                        enabled: frame.top.visible\n                    },\n                    {\n                        fill: color(frame.top.color).brighten(0.1).get(),\n                        vertexes: [{\n                                x: xm,\n                                y: ym,\n                                z: zm\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zm\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zp\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zp\n                            }],\n                        enabled: frame.top.visible\n                    },\n                    {\n                        fill: color(frame.top.color).brighten(-0.1).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xmm,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zm\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zp\n                            }],\n                        enabled: frame.top.visible && !frame.left.visible\n                    },\n                    {\n                        fill: color(frame.top.color).brighten(-0.1).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xpp,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zp\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zm\n                            }],\n                        enabled: frame.top.visible && !frame.right.visible\n                    },\n                    {\n                        fill: color(frame.top.color).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xpp,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zm\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zm\n                            }],\n                        enabled: frame.top.visible && !frame.front.visible\n                    },\n                    {\n                        fill: color(frame.top.color).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xmm,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zp\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zp\n                            }],\n                        enabled: frame.top.visible && !frame.back.visible\n                    }]\n            });\n            chart.frameShapes.left[verb]({\n                'class': 'highcharts-3d-frame highcharts-3d-frame-left',\n                zIndex: frame.left.frontFacing ? -1000 : 1000,\n                faces: [{\n                        fill: color(frame.left.color).brighten(0.1).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zm\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zp\n                            }, {\n                                x: xmm,\n                                y: ypp,\n                                z: zpp\n                            }],\n                        enabled: frame.left.visible && !frame.bottom.visible\n                    },\n                    {\n                        fill: color(frame.left.color).brighten(0.1).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zp\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zm\n                            }, {\n                                x: xmm,\n                                y: ymm,\n                                z: zmm\n                            }],\n                        enabled: frame.left.visible && !frame.top.visible\n                    },\n                    {\n                        fill: color(frame.left.color).brighten(-0.1).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xmm,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xmm,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xmm,\n                                y: ypp,\n                                z: zmm\n                            }],\n                        enabled: frame.left.visible\n                    },\n                    {\n                        fill: color(frame.left.color).brighten(-0.1).get(),\n                        vertexes: [{\n                                x: xm,\n                                y: ym,\n                                z: zp\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zp\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zm\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zm\n                            }],\n                        enabled: frame.left.visible\n                    },\n                    {\n                        fill: color(frame.left.color).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xmm,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zm\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zm\n                            }],\n                        enabled: frame.left.visible && !frame.front.visible\n                    },\n                    {\n                        fill: color(frame.left.color).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xmm,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zp\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zp\n                            }],\n                        enabled: frame.left.visible && !frame.back.visible\n                    }]\n            });\n            chart.frameShapes.right[verb]({\n                'class': 'highcharts-3d-frame highcharts-3d-frame-right',\n                zIndex: frame.right.frontFacing ? -1000 : 1000,\n                faces: [{\n                        fill: color(frame.right.color).brighten(0.1).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zp\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zm\n                            }, {\n                                x: xpp,\n                                y: ypp,\n                                z: zmm\n                            }],\n                        enabled: frame.right.visible && !frame.bottom.visible\n                    },\n                    {\n                        fill: color(frame.right.color).brighten(0.1).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zm\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zp\n                            }, {\n                                x: xpp,\n                                y: ymm,\n                                z: zpp\n                            }],\n                        enabled: frame.right.visible && !frame.top.visible\n                    },\n                    {\n                        fill: color(frame.right.color).brighten(-0.1).get(),\n                        vertexes: [{\n                                x: xp,\n                                y: ym,\n                                z: zm\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zm\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zp\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zp\n                            }],\n                        enabled: frame.right.visible\n                    },\n                    {\n                        fill: color(frame.right.color).brighten(-0.1).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xpp,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xpp,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xpp,\n                                y: ypp,\n                                z: zpp\n                            }],\n                        enabled: frame.right.visible\n                    },\n                    {\n                        fill: color(frame.right.color).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xpp,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zm\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zm\n                            }],\n                        enabled: frame.right.visible && !frame.front.visible\n                    },\n                    {\n                        fill: color(frame.right.color).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xpp,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zp\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zp\n                            }],\n                        enabled: frame.right.visible && !frame.back.visible\n                    }]\n            });\n            chart.frameShapes.back[verb]({\n                'class': 'highcharts-3d-frame highcharts-3d-frame-back',\n                zIndex: frame.back.frontFacing ? -1000 : 1000,\n                faces: [{\n                        fill: color(frame.back.color).brighten(0.1).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xmm,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zp\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zp\n                            }],\n                        enabled: frame.back.visible && !frame.bottom.visible\n                    },\n                    {\n                        fill: color(frame.back.color).brighten(0.1).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xpp,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zp\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zp\n                            }],\n                        enabled: frame.back.visible && !frame.top.visible\n                    },\n                    {\n                        fill: color(frame.back.color).brighten(-0.1).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xmm,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zp\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zp\n                            }],\n                        enabled: frame.back.visible && !frame.left.visible\n                    },\n                    {\n                        fill: color(frame.back.color).brighten(-0.1).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xpp,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zp\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zp\n                            }],\n                        enabled: frame.back.visible && !frame.right.visible\n                    },\n                    {\n                        fill: color(frame.back.color).get(),\n                        vertexes: [{\n                                x: xm,\n                                y: ym,\n                                z: zp\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zp\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zp\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zp\n                            }],\n                        enabled: frame.back.visible\n                    },\n                    {\n                        fill: color(frame.back.color).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xpp,\n                                y: ypp,\n                                z: zpp\n                            }, {\n                                x: xpp,\n                                y: ymm,\n                                z: zpp\n                            }, {\n                                x: xmm,\n                                y: ymm,\n                                z: zpp\n                            }],\n                        enabled: frame.back.visible\n                    }]\n            });\n            chart.frameShapes.front[verb]({\n                'class': 'highcharts-3d-frame highcharts-3d-frame-front',\n                zIndex: frame.front.frontFacing ? -1000 : 1000,\n                faces: [{\n                        fill: color(frame.front.color).brighten(0.1).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xpp,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zm\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zm\n                            }],\n                        enabled: frame.front.visible && !frame.bottom.visible\n                    },\n                    {\n                        fill: color(frame.front.color).brighten(0.1).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xmm,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zm\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zm\n                            }],\n                        enabled: frame.front.visible && !frame.top.visible\n                    },\n                    {\n                        fill: color(frame.front.color).brighten(-0.1).get(),\n                        vertexes: [{\n                                x: xmm,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xmm,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zm\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zm\n                            }],\n                        enabled: frame.front.visible && !frame.left.visible\n                    },\n                    {\n                        fill: color(frame.front.color).brighten(-0.1).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xpp,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xp,\n                                y: ym,\n                                z: zm\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zm\n                            }],\n                        enabled: frame.front.visible && !frame.right.visible\n                    },\n                    {\n                        fill: color(frame.front.color).get(),\n                        vertexes: [{\n                                x: xp,\n                                y: ym,\n                                z: zm\n                            }, {\n                                x: xm,\n                                y: ym,\n                                z: zm\n                            }, {\n                                x: xm,\n                                y: yp,\n                                z: zm\n                            }, {\n                                x: xp,\n                                y: yp,\n                                z: zm\n                            }],\n                        enabled: frame.front.visible\n                    },\n                    {\n                        fill: color(frame.front.color).get(),\n                        vertexes: [{\n                                x: xpp,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xmm,\n                                y: ypp,\n                                z: zmm\n                            }, {\n                                x: xmm,\n                                y: ymm,\n                                z: zmm\n                            }, {\n                                x: xpp,\n                                y: ymm,\n                                z: zmm\n                            }],\n                        enabled: frame.front.visible\n                    }]\n            });\n        }\n    }\n    /**\n     * Add the required CSS classes for column sides (#6018)\n     * @private\n     */\n    function onAfterGetContainer() {\n        if (this.styledMode) {\n            // Add definitions used by brighter and darker faces of the cuboids.\n            [{\n                    name: 'darker',\n                    slope: 0.6\n                }, {\n                    name: 'brighter',\n                    slope: 1.4\n                }].forEach(function (cfg) {\n                this.renderer.definition({\n                    tagName: 'filter',\n                    attributes: {\n                        id: 'highcharts-' + cfg.name\n                    },\n                    children: [{\n                            tagName: 'feComponentTransfer',\n                            children: [{\n                                    tagName: 'feFuncR',\n                                    attributes: {\n                                        type: 'linear',\n                                        slope: cfg.slope\n                                    }\n                                }, {\n                                    tagName: 'feFuncG',\n                                    attributes: {\n                                        type: 'linear',\n                                        slope: cfg.slope\n                                    }\n                                }, {\n                                    tagName: 'feFuncB',\n                                    attributes: {\n                                        type: 'linear',\n                                        slope: cfg.slope\n                                    }\n                                }]\n                        }]\n                });\n            }, this);\n        }\n    }\n    /**\n     * Legacy support for HC < 6 to make 'scatter' series in a 3D chart route to\n     * the real 'scatter3d' series type. (#8407)\n     * @private\n     */\n    function onAfterInit() {\n        const options = this.options;\n        if (this.is3d()) {\n            (options.series || []).forEach(function (s) {\n                const type = (s.type ||\n                    options.chart.type ||\n                    options.chart.defaultSeriesType);\n                if (type === 'scatter') {\n                    s.type = 'scatter3d';\n                }\n            });\n        }\n    }\n    /**\n     * @private\n     */\n    function onAfterSetChartSize() {\n        const chart = this, options3d = chart.options.chart.options3d;\n        if (chart.chart3d &&\n            chart.is3d()) {\n            // Add a 0-360 normalisation for alfa and beta angles in 3d graph\n            if (options3d) {\n                options3d.alpha = options3d.alpha % 360 +\n                    (options3d.alpha >= 0 ? 0 : 360);\n                options3d.beta = options3d.beta % 360 +\n                    (options3d.beta >= 0 ? 0 : 360);\n            }\n            const inverted = chart.inverted, clipBox = chart.clipBox, margin = chart.margin, x = inverted ? 'y' : 'x', y = inverted ? 'x' : 'y', w = inverted ? 'height' : 'width', h = inverted ? 'width' : 'height';\n            clipBox[x] = -(margin[3] || 0);\n            clipBox[y] = -(margin[0] || 0);\n            clipBox[w] = (chart.chartWidth + (margin[3] || 0) + (margin[1] || 0));\n            clipBox[h] = (chart.chartHeight + (margin[0] || 0) + (margin[2] || 0));\n            // Set scale, used later in perspective method():\n            // getScale uses perspective, so scale3d has to be reset.\n            chart.scale3d = 1;\n            if (options3d.fitToPlot === true) {\n                chart.scale3d = chart.chart3d.getScale(options3d.depth);\n            }\n            // Recalculate the 3d frame with every call of setChartSize,\n            // instead of doing it after every redraw(). It avoids ticks\n            // and axis title outside of chart.\n            chart.chart3d.frame3d = chart.chart3d.get3dFrame(); // #7942\n        }\n    }\n    /**\n     * @private\n     */\n    function onBeforeRedraw() {\n        if (this.is3d()) {\n            // Set to force a redraw of all elements\n            this.isDirtyBox = true;\n        }\n    }\n    /**\n     * @private\n     */\n    function onBeforeRender() {\n        if (this.chart3d && this.is3d()) {\n            this.chart3d.frame3d = this.chart3d.get3dFrame();\n        }\n    }\n    /**\n     * @private\n     */\n    function onInit() {\n        if (!this.chart3d) {\n            this.chart3d = new Additions(this);\n        }\n    }\n    /**\n     * @private\n     */\n    function wrapIsInsidePlot(proceed) {\n        return this.is3d() || proceed.apply(this, [].slice.call(arguments, 1));\n    }\n    /**\n     * Draw the series in the reverse order (#3803, #3917)\n     * @private\n     */\n    function wrapRenderSeries(proceed) {\n        let series, i = this.series.length;\n        if (this.is3d()) {\n            while (i--) {\n                series = this.series[i];\n                series.translate();\n                series.render();\n            }\n        }\n        else {\n            proceed.call(this);\n        }\n    }\n    /**\n     * @private\n     */\n    function wrapSetClassName(proceed) {\n        proceed.apply(this, [].slice.call(arguments, 1));\n        if (this.is3d()) {\n            this.container.className += ' highcharts-3d-chart';\n        }\n    }\n    /* *\n     *\n     *  Class\n     *\n     * */\n    class Additions {\n        /* *\n         *\n         *  Constructors\n         *\n         * */\n        constructor(chart) {\n            this.chart = chart;\n        }\n        /* *\n         *\n         *  Functions\n         *\n         * */\n        get3dFrame() {\n            const chart = this.chart, options3d = chart.options.chart.options3d, frameOptions = options3d.frame, xm = chart.plotLeft, xp = chart.plotLeft + chart.plotWidth, ym = chart.plotTop, yp = chart.plotTop + chart.plotHeight, zm = 0, zp = options3d.depth, faceOrientation = function (vertexes) {\n                const area = Chart3D_shapeArea3D(vertexes, chart);\n                // Give it 0.5 squared-pixel as a margin for rounding errors\n                if (area > 0.5) {\n                    return 1;\n                }\n                if (area < -0.5) {\n                    return -1;\n                }\n                return 0;\n            }, bottomOrientation = faceOrientation([\n                { x: xm, y: yp, z: zp },\n                { x: xp, y: yp, z: zp },\n                { x: xp, y: yp, z: zm },\n                { x: xm, y: yp, z: zm }\n            ]), topOrientation = faceOrientation([\n                { x: xm, y: ym, z: zm },\n                { x: xp, y: ym, z: zm },\n                { x: xp, y: ym, z: zp },\n                { x: xm, y: ym, z: zp }\n            ]), leftOrientation = faceOrientation([\n                { x: xm, y: ym, z: zm },\n                { x: xm, y: ym, z: zp },\n                { x: xm, y: yp, z: zp },\n                { x: xm, y: yp, z: zm }\n            ]), rightOrientation = faceOrientation([\n                { x: xp, y: ym, z: zp },\n                { x: xp, y: ym, z: zm },\n                { x: xp, y: yp, z: zm },\n                { x: xp, y: yp, z: zp }\n            ]), frontOrientation = faceOrientation([\n                { x: xm, y: yp, z: zm },\n                { x: xp, y: yp, z: zm },\n                { x: xp, y: ym, z: zm },\n                { x: xm, y: ym, z: zm }\n            ]), backOrientation = faceOrientation([\n                { x: xm, y: ym, z: zp },\n                { x: xp, y: ym, z: zp },\n                { x: xp, y: yp, z: zp },\n                { x: xm, y: yp, z: zp }\n            ]), defaultShowFront = false, defaultShowBack = true;\n            let defaultShowBottom = false, defaultShowTop = false, defaultShowLeft = false, defaultShowRight = false;\n            // The 'default' criteria to visible faces of the frame is looking\n            // up every axis to decide whenever the left/right//top/bottom sides\n            // of the frame will be shown\n            []\n                .concat(chart.xAxis, chart.yAxis, chart.zAxis)\n                .forEach(function (axis) {\n                if (axis) {\n                    if (axis.horiz) {\n                        if (axis.opposite) {\n                            defaultShowTop = true;\n                        }\n                        else {\n                            defaultShowBottom = true;\n                        }\n                    }\n                    else {\n                        if (axis.opposite) {\n                            defaultShowRight = true;\n                        }\n                        else {\n                            defaultShowLeft = true;\n                        }\n                    }\n                }\n            });\n            const getFaceOptions = function (sources, faceOrientation, defaultVisible) {\n                const faceAttrs = ['size', 'color', 'visible'], options = {};\n                for (let i = 0; i < faceAttrs.length; i++) {\n                    const attr = faceAttrs[i];\n                    for (let j = 0; j < sources.length; j++) {\n                        if (typeof sources[j] === 'object') {\n                            const val = sources[j][attr];\n                            if (typeof val !== 'undefined' && val !== null) {\n                                options[attr] = val;\n                                break;\n                            }\n                        }\n                    }\n                }\n                let isVisible = defaultVisible;\n                if (options.visible === true || options.visible === false) {\n                    isVisible = options.visible;\n                }\n                else if (options.visible === 'auto') {\n                    isVisible = faceOrientation > 0;\n                }\n                return {\n                    size: Chart3D_pick(options.size, 1),\n                    color: Chart3D_pick(options.color, 'none'),\n                    frontFacing: faceOrientation > 0,\n                    visible: isVisible\n                };\n            };\n            // Docs @TODO: Add all frame options (left, right, top, bottom,\n            // front, back) to apioptions JSDoc once the new system is up.\n            const ret = {\n                axes: {},\n                // FIXME: Previously, left/right, top/bottom and front/back\n                // pairs shared size and color.\n                // For compatibility and consistency sake, when one face have\n                // size/color/visibility set, the opposite face will default to\n                // the same values. Also, left/right used to be called 'side',\n                // so that's also added as a fallback.\n                bottom: getFaceOptions([frameOptions.bottom, frameOptions.top, frameOptions], bottomOrientation, defaultShowBottom),\n                top: getFaceOptions([frameOptions.top, frameOptions.bottom, frameOptions], topOrientation, defaultShowTop),\n                left: getFaceOptions([\n                    frameOptions.left,\n                    frameOptions.right,\n                    frameOptions.side,\n                    frameOptions\n                ], leftOrientation, defaultShowLeft),\n                right: getFaceOptions([\n                    frameOptions.right,\n                    frameOptions.left,\n                    frameOptions.side,\n                    frameOptions\n                ], rightOrientation, defaultShowRight),\n                back: getFaceOptions([frameOptions.back, frameOptions.front, frameOptions], backOrientation, defaultShowBack),\n                front: getFaceOptions([frameOptions.front, frameOptions.back, frameOptions], frontOrientation, defaultShowFront)\n            };\n            // Decide the bast place to put axis title/labels based on the\n            // visible faces. Ideally, The labels can only be on the edge\n            // between a visible face and an invisible one. Also, the Y label\n            // should be one the left-most edge (right-most if opposite).\n            if (options3d.axisLabelPosition === 'auto') {\n                const isValidEdge = function (face1, face2) {\n                    return ((face1.visible !== face2.visible) ||\n                        (face1.visible &&\n                            face2.visible &&\n                            (face1.frontFacing !== face2.frontFacing)));\n                };\n                const yEdges = [];\n                if (isValidEdge(ret.left, ret.front)) {\n                    yEdges.push({\n                        y: (ym + yp) / 2,\n                        x: xm,\n                        z: zm,\n                        xDir: { x: 1, y: 0, z: 0 }\n                    });\n                }\n                if (isValidEdge(ret.left, ret.back)) {\n                    yEdges.push({\n                        y: (ym + yp) / 2,\n                        x: xm,\n                        z: zp,\n                        xDir: { x: 0, y: 0, z: -1 }\n                    });\n                }\n                if (isValidEdge(ret.right, ret.front)) {\n                    yEdges.push({\n                        y: (ym + yp) / 2,\n                        x: xp,\n                        z: zm,\n                        xDir: { x: 0, y: 0, z: 1 }\n                    });\n                }\n                if (isValidEdge(ret.right, ret.back)) {\n                    yEdges.push({\n                        y: (ym + yp) / 2,\n                        x: xp,\n                        z: zp,\n                        xDir: { x: -1, y: 0, z: 0 }\n                    });\n                }\n                const xBottomEdges = [];\n                if (isValidEdge(ret.bottom, ret.front)) {\n                    xBottomEdges.push({\n                        x: (xm + xp) / 2,\n                        y: yp,\n                        z: zm,\n                        xDir: { x: 1, y: 0, z: 0 }\n                    });\n                }\n                if (isValidEdge(ret.bottom, ret.back)) {\n                    xBottomEdges.push({\n                        x: (xm + xp) / 2,\n                        y: yp,\n                        z: zp,\n                        xDir: { x: -1, y: 0, z: 0 }\n                    });\n                }\n                const xTopEdges = [];\n                if (isValidEdge(ret.top, ret.front)) {\n                    xTopEdges.push({\n                        x: (xm + xp) / 2,\n                        y: ym,\n                        z: zm,\n                        xDir: { x: 1, y: 0, z: 0 }\n                    });\n                }\n                if (isValidEdge(ret.top, ret.back)) {\n                    xTopEdges.push({\n                        x: (xm + xp) / 2,\n                        y: ym,\n                        z: zp,\n                        xDir: { x: -1, y: 0, z: 0 }\n                    });\n                }\n                const zBottomEdges = [];\n                if (isValidEdge(ret.bottom, ret.left)) {\n                    zBottomEdges.push({\n                        z: (zm + zp) / 2,\n                        y: yp,\n                        x: xm,\n                        xDir: { x: 0, y: 0, z: -1 }\n                    });\n                }\n                if (isValidEdge(ret.bottom, ret.right)) {\n                    zBottomEdges.push({\n                        z: (zm + zp) / 2,\n                        y: yp,\n                        x: xp,\n                        xDir: { x: 0, y: 0, z: 1 }\n                    });\n                }\n                const zTopEdges = [];\n                if (isValidEdge(ret.top, ret.left)) {\n                    zTopEdges.push({\n                        z: (zm + zp) / 2,\n                        y: ym,\n                        x: xm,\n                        xDir: { x: 0, y: 0, z: -1 }\n                    });\n                }\n                if (isValidEdge(ret.top, ret.right)) {\n                    zTopEdges.push({\n                        z: (zm + zp) / 2,\n                        y: ym,\n                        x: xp,\n                        xDir: { x: 0, y: 0, z: 1 }\n                    });\n                }\n                const pickEdge = function (edges, axis, mult) {\n                    if (edges.length === 0) {\n                        return null;\n                    }\n                    if (edges.length === 1) {\n                        return edges[0];\n                    }\n                    const projections = Chart3D_perspective(edges, chart, false);\n                    let best = 0;\n                    for (let i = 1; i < projections.length; i++) {\n                        if (mult * projections[i][axis] >\n                            mult * projections[best][axis]) {\n                            best = i;\n                        }\n                        else if ((mult * projections[i][axis] ===\n                            mult * projections[best][axis]) &&\n                            (projections[i].z < projections[best].z)) {\n                            best = i;\n                        }\n                    }\n                    return edges[best];\n                };\n                ret.axes = {\n                    y: {\n                        'left': pickEdge(yEdges, 'x', -1),\n                        'right': pickEdge(yEdges, 'x', +1)\n                    },\n                    x: {\n                        'top': pickEdge(xTopEdges, 'y', -1),\n                        'bottom': pickEdge(xBottomEdges, 'y', +1)\n                    },\n                    z: {\n                        'top': pickEdge(zTopEdges, 'y', -1),\n                        'bottom': pickEdge(zBottomEdges, 'y', +1)\n                    }\n                };\n            }\n            else {\n                ret.axes = {\n                    y: {\n                        'left': {\n                            x: xm, z: zm, xDir: { x: 1, y: 0, z: 0 }\n                        },\n                        'right': {\n                            x: xp, z: zm, xDir: { x: 0, y: 0, z: 1 }\n                        }\n                    },\n                    x: {\n                        'top': {\n                            y: ym, z: zm, xDir: { x: 1, y: 0, z: 0 }\n                        },\n                        'bottom': {\n                            y: yp,\n                            z: zm,\n                            xDir: { x: 1, y: 0, z: 0 }\n                        }\n                    },\n                    z: {\n                        'top': {\n                            x: defaultShowLeft ? xp : xm,\n                            y: ym,\n                            xDir: defaultShowLeft ?\n                                { x: 0, y: 0, z: 1 } :\n                                { x: 0, y: 0, z: -1 }\n                        },\n                        'bottom': {\n                            x: defaultShowLeft ? xp : xm,\n                            y: yp,\n                            xDir: defaultShowLeft ?\n                                { x: 0, y: 0, z: 1 } :\n                                { x: 0, y: 0, z: -1 }\n                        }\n                    }\n                };\n            }\n            return ret;\n        }\n        /**\n         * Calculate scale of the 3D view. That is required to fit chart's 3D\n         * projection into the actual plotting area. Reported as #4933.\n         *\n         * **Note:**\n         * This function should ideally take the plot values instead of a chart\n         * object, but since the chart object is needed for perspective it is\n         * not practical. Possible to make both getScale and perspective more\n         * logical and also immutable.\n         *\n         * @private\n         * @function getScale\n         *\n         * @param {number} depth\n         * The depth of the chart\n         *\n         * @return {number}\n         * The scale to fit the 3D chart into the plotting area.\n         *\n         * @requires highcharts-3d\n         */\n        getScale(depth) {\n            const chart = this.chart, plotLeft = chart.plotLeft, plotRight = chart.plotWidth + plotLeft, plotTop = chart.plotTop, plotBottom = chart.plotHeight + plotTop, originX = plotLeft + chart.plotWidth / 2, originY = plotTop + chart.plotHeight / 2, bbox3d = {\n                minX: Number.MAX_VALUE,\n                maxX: -Number.MAX_VALUE,\n                minY: Number.MAX_VALUE,\n                maxY: -Number.MAX_VALUE\n            };\n            let corners, scale = 1;\n            // Top left corners:\n            corners = [{\n                    x: plotLeft,\n                    y: plotTop,\n                    z: 0\n                }, {\n                    x: plotLeft,\n                    y: plotTop,\n                    z: depth\n                }];\n            // Top right corners:\n            [0, 1].forEach(function (i) {\n                corners.push({\n                    x: plotRight,\n                    y: corners[i].y,\n                    z: corners[i].z\n                });\n            });\n            // All bottom corners:\n            [0, 1, 2, 3].forEach(function (i) {\n                corners.push({\n                    x: corners[i].x,\n                    y: plotBottom,\n                    z: corners[i].z\n                });\n            });\n            // Calculate 3D corners:\n            corners = Chart3D_perspective(corners, chart, false);\n            // Get bounding box of 3D element:\n            corners.forEach(function (corner) {\n                bbox3d.minX = Math.min(bbox3d.minX, corner.x);\n                bbox3d.maxX = Math.max(bbox3d.maxX, corner.x);\n                bbox3d.minY = Math.min(bbox3d.minY, corner.y);\n                bbox3d.maxY = Math.max(bbox3d.maxY, corner.y);\n            });\n            // Left edge:\n            if (plotLeft > bbox3d.minX) {\n                scale = Math.min(scale, 1 - Math.abs((plotLeft + originX) / (bbox3d.minX + originX)) % 1);\n            }\n            // Right edge:\n            if (plotRight < bbox3d.maxX) {\n                scale = Math.min(scale, (plotRight - originX) / (bbox3d.maxX - originX));\n            }\n            // Top edge:\n            if (plotTop > bbox3d.minY) {\n                if (bbox3d.minY < 0) {\n                    scale = Math.min(scale, (plotTop + originY) / (-bbox3d.minY + plotTop + originY));\n                }\n                else {\n                    scale = Math.min(scale, 1 - (plotTop + originY) / (bbox3d.minY + originY) % 1);\n                }\n            }\n            // Bottom edge:\n            if (plotBottom < bbox3d.maxY) {\n                scale = Math.min(scale, Math.abs((plotBottom - originY) / (bbox3d.maxY - originY)));\n            }\n            return scale;\n        }\n    }\n    Chart3D.Additions = Additions;\n})(Chart3D || (Chart3D = {}));\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ const Chart_Chart3D = (Chart3D);\n/* *\n *\n *  API Declarations\n *\n * */\n/**\n * Note: As of v5.0.12, `frame.left` or `frame.right` should be used instead.\n *\n * The side for the frame around a 3D chart.\n *\n * @deprecated\n * @since     4.0\n * @product   highcharts\n * @requires  highcharts-3d\n * @apioption chart.options3d.frame.side\n */\n/**\n * The color of the panel.\n *\n * @deprecated\n * @type      {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @default   transparent\n * @since     4.0\n * @product   highcharts\n * @apioption chart.options3d.frame.side.color\n */\n/**\n * The thickness of the panel.\n *\n * @deprecated\n * @type      {number}\n * @default   1\n * @since     4.0\n * @product   highcharts\n * @apioption chart.options3d.frame.side.size\n */\n''; // Keeps doclets above in JS file\n\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;// ./code/es-modules/Series/Area3D/Area3DSeries.js\n/* *\n *\n *  (c) 2010-2024 Grzegorz Blachliński\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nconst { composed } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { perspective: Area3DSeries_perspective } = Core_Math3D;\n\nconst { line: { prototype: lineProto } } = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes;\n\nconst { pushUnique, wrap: Area3DSeries_wrap } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n *  Functions\n *\n * */\n/**\n *\n */\nfunction compose(AreaSeriesClass) {\n    if (pushUnique(composed, 'Area3DSeries')) {\n        Area3DSeries_wrap(AreaSeriesClass.prototype, 'getGraphPath', wrapAreaSeriesGetGraphPath);\n    }\n}\n/**\n *\n */\nfunction wrapAreaSeriesGetGraphPath(proceed) {\n    const series = this, svgPath = proceed.apply(series, [].slice.call(arguments, 1));\n    // Do not do this if the chart is not 3D\n    if (!series.chart.is3d()) {\n        return svgPath;\n    }\n    const getGraphPath = lineProto.getGraphPath, options = series.options, translatedThreshold = Math.round(// #10909\n    series.yAxis.getThreshold(options.threshold));\n    let bottomPoints = [];\n    if (series.rawPointsX) {\n        for (let i = 0; i < series.points.length; i++) {\n            bottomPoints.push({\n                x: series.rawPointsX[i],\n                y: options.stacking ?\n                    series.points[i].yBottom : translatedThreshold,\n                z: series.zPadding\n            });\n        }\n    }\n    const options3d = series.chart.options.chart.options3d;\n    bottomPoints = Area3DSeries_perspective(bottomPoints, series.chart, true).map((point) => ({ plotX: point.x, plotY: point.y, plotZ: point.z }));\n    if (series.group && options3d && options3d.depth && options3d.beta) {\n        // Markers should take the global zIndex of series group.\n        if (series.markerGroup) {\n            series.markerGroup.add(series.group);\n            series.markerGroup.attr({\n                translateX: 0,\n                translateY: 0\n            });\n        }\n        series.group.attr({\n            zIndex: Math.max(1, (options3d.beta > 270 || options3d.beta < 90) ?\n                options3d.depth - Math.round(series.zPadding || 0) :\n                Math.round(series.zPadding || 0))\n        });\n    }\n    bottomPoints.reversed = true;\n    const bottomPath = getGraphPath.call(series, bottomPoints, true, true);\n    if (bottomPath[0] && bottomPath[0][0] === 'M') {\n        bottomPath[0] = ['L', bottomPath[0][1], bottomPath[0][2]];\n    }\n    if (series.areaPath) {\n        // Remove previously used bottomPath and add the new one.\n        const areaPath = series.areaPath.splice(0, series.areaPath.length / 2).concat(bottomPath);\n        // Use old xMap in the new areaPath\n        areaPath.xMap = series.areaPath.xMap;\n        series.areaPath = areaPath;\n    }\n    series.graphPath = svgPath;\n    return svgPath;\n}\n/* *\n *\n *  Default Export\n *\n * */\nconst Area3DSeries = {\n    compose\n};\n/* harmony default export */ const Area3D_Area3DSeries = (Area3DSeries);\n\n;// ./code/es-modules/Core/Axis/Axis3DDefaults.js\n/* *\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  Extension for 3d axes\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 xAxis\n */\nconst Axis3DDefaults = {\n    labels: {\n        /**\n         * Defines how the labels are be repositioned according to the 3D\n         * chart orientation.\n         *\n         * - `'offset'`: Maintain a fixed horizontal/vertical distance from\n         *   the tick marks, despite the chart orientation. This is the\n         *   backwards compatible behavior, and causes skewing of X and Z\n         *   axes.\n         *\n         * - `'chart'`: Preserve 3D position relative to the chart. This\n         *   looks nice, but hard to read if the text isn't forward-facing.\n         *\n         * - `'flap'`: Rotated text along the axis to compensate for the\n         *   chart orientation. This tries to maintain text as legible as\n         *   possible on all orientations.\n         *\n         * - `'ortho'`: Rotated text along the axis direction so that the\n         *   labels are orthogonal to the axis. This is very similar to\n         *   `'flap'`, but prevents skewing the labels (X and Y scaling are\n         *   still present).\n         *\n         * @sample highcharts/3d/skewed-labels/\n         *         Skewed labels\n         *\n         * @since      5.0.15\n         * @validvalue ['offset', 'chart', 'flap', 'ortho']\n         * @product    highcharts\n         * @requires   highcharts-3d\n         */\n        position3d: 'offset',\n        /**\n         * If enabled, the axis labels will skewed to follow the\n         * perspective.\n         *\n         * This will fix overlapping labels and titles, but texts become\n         * less legible due to the distortion.\n         *\n         * The final appearance depends heavily on `labels.position3d`.\n         *\n         * @sample highcharts/3d/skewed-labels/\n         *         Skewed labels\n         *\n         * @since    5.0.15\n         * @product  highcharts\n         * @requires highcharts-3d\n         */\n        skew3d: false\n    },\n    title: {\n        /**\n         * Defines how the title is repositioned according to the 3D chart\n         * orientation.\n         *\n         * - `'offset'`: Maintain a fixed horizontal/vertical distance from\n         *   the tick marks, despite the chart orientation. This is the\n         *   backwards compatible behavior, and causes skewing of X and Z\n         *   axes.\n         *\n         * - `'chart'`: Preserve 3D position relative to the chart. This\n         *   looks nice, but hard to read if the text isn't forward-facing.\n         *\n         * - `'flap'`: Rotated text along the axis to compensate for the\n         *   chart orientation. This tries to maintain text as legible as\n         *   possible on all orientations.\n         *\n         * - `'ortho'`: Rotated text along the axis direction so that the\n         *   labels are orthogonal to the axis. This is very similar to\n         *   `'flap'`, but prevents skewing the labels (X and Y scaling are\n         *   still present).\n         *\n         * - `undefined`: Will use the config from `labels.position3d`\n         *\n         * @sample highcharts/3d/skewed-labels/\n         *         Skewed labels\n         *\n         * @type     {\"offset\"|\"chart\"|\"flap\"|\"ortho\"|null}\n         * @since    5.0.15\n         * @product  highcharts\n         * @requires highcharts-3d\n         */\n        position3d: null,\n        /**\n         * If enabled, the axis title will skewed to follow the perspective.\n         *\n         * This will fix overlapping labels and titles, but texts become\n         * less legible due to the distortion.\n         *\n         * The final appearance depends heavily on `title.position3d`.\n         *\n         * A `null` value will use the config from `labels.skew3d`.\n         *\n         * @sample highcharts/3d/skewed-labels/\n         *         Skewed labels\n         *\n         * @type     {boolean|null}\n         * @since    5.0.15\n         * @product  highcharts\n         * @requires highcharts-3d\n         */\n        skew3d: null\n    }\n};\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ const Axis_Axis3DDefaults = (Axis3DDefaults);\n\n;// ./code/es-modules/Core/Axis/Tick3DComposition.js\n/* *\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  Extension for 3d axes\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nconst { composed: Tick3DComposition_composed } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { addEvent: Tick3DComposition_addEvent, extend, pushUnique: Tick3DComposition_pushUnique, wrap: Tick3DComposition_wrap } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n *  Functions\n *\n * */\n/**\n * @private\n */\nfunction Tick3DComposition_compose(TickClass) {\n    if (Tick3DComposition_pushUnique(Tick3DComposition_composed, 'Axis.Tick3D')) {\n        Tick3DComposition_addEvent(TickClass, 'afterGetLabelPosition', onTickAfterGetLabelPosition);\n        Tick3DComposition_wrap(TickClass.prototype, 'getMarkPath', wrapTickGetMarkPath);\n    }\n}\n/**\n * @private\n */\nfunction onTickAfterGetLabelPosition(e) {\n    const axis3D = this.axis.axis3D;\n    if (axis3D) {\n        extend(e.pos, axis3D.fix3dPosition(e.pos));\n    }\n}\n/**\n * @private\n */\nfunction wrapTickGetMarkPath(proceed) {\n    const axis3D = this.axis.axis3D, path = proceed.apply(this, [].slice.call(arguments, 1));\n    if (axis3D) {\n        const start = path[0];\n        const end = path[1];\n        if (start[0] === 'M' && end[0] === 'L') {\n            const pArr = [\n                axis3D.fix3dPosition({ x: start[1], y: start[2], z: 0 }),\n                axis3D.fix3dPosition({ x: end[1], y: end[2], z: 0 })\n            ];\n            return this.axis.chart.renderer.toLineSegments(pArr);\n        }\n    }\n    return path;\n}\n/* *\n *\n *  Default Export\n *\n * */\nconst Tick3DAdditions = {\n    compose: Tick3DComposition_compose\n};\n/* harmony default export */ const Tick3DComposition = (Tick3DAdditions);\n\n;// ./code/es-modules/Core/Axis/Axis3DComposition.js\n/* *\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  Extension for 3d axes\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nconst { defaultOptions } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { deg2rad: Axis3DComposition_deg2rad } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { perspective: Axis3DComposition_perspective, perspective3D: Axis3DComposition_perspective3D, shapeArea: Axis3DComposition_shapeArea } = Core_Math3D;\n\n\nconst { addEvent: Axis3DComposition_addEvent, merge: Axis3DComposition_merge, pick: Axis3DComposition_pick, wrap: Axis3DComposition_wrap } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n *  Functions\n *\n * */\n/**\n * @private\n */\nfunction onAxisAfterSetOptions() {\n    const axis = this, chart = axis.chart, options = axis.options;\n    if (chart.is3d && chart.is3d() && axis.coll !== 'colorAxis') {\n        options.tickWidth = Axis3DComposition_pick(options.tickWidth, 0);\n        options.gridLineWidth = Axis3DComposition_pick(options.gridLineWidth, 1);\n    }\n}\n/**\n * @private\n */\nfunction onAxisDrawCrosshair(e) {\n    const axis = this;\n    if (axis.chart.is3d() &&\n        axis.coll !== 'colorAxis') {\n        if (e.point) {\n            e.point.crosshairPos = axis.isXAxis ?\n                e.point.axisXpos :\n                axis.len - e.point.axisYpos;\n        }\n    }\n}\n/**\n * @private\n */\nfunction onAxisInit() {\n    const axis = this;\n    if (!axis.axis3D) {\n        axis.axis3D = new Axis3DAdditions(axis);\n    }\n}\n/**\n * Do not draw axislines in 3D.\n * @private\n */\nfunction wrapAxisGetLinePath(proceed) {\n    const axis = this;\n    // Do not do this if the chart is not 3D\n    if (!axis.chart.is3d() || axis.coll === 'colorAxis') {\n        return proceed.apply(axis, [].slice.call(arguments, 1));\n    }\n    return [];\n}\n/**\n * @private\n */\nfunction wrapAxisGetPlotBandPath(proceed) {\n    // Do not do this if the chart is not 3D\n    if (!this.chart.is3d() || this.coll === 'colorAxis') {\n        return proceed.apply(this, [].slice.call(arguments, 1));\n    }\n    const args = arguments, from = args[1], to = args[2], path = [], fromPath = this.getPlotLinePath({ value: from }), toPath = this.getPlotLinePath({ value: to });\n    if (fromPath && toPath) {\n        for (let i = 0; i < fromPath.length; i += 2) {\n            const fromStartSeg = fromPath[i], fromEndSeg = fromPath[i + 1], toStartSeg = toPath[i], toEndSeg = toPath[i + 1];\n            if (fromStartSeg[0] === 'M' &&\n                fromEndSeg[0] === 'L' &&\n                toStartSeg[0] === 'M' &&\n                toEndSeg[0] === 'L') {\n                path.push(fromStartSeg, fromEndSeg, toEndSeg, \n                // `lineTo` instead of `moveTo`\n                ['L', toStartSeg[1], toStartSeg[2]], ['Z']);\n            }\n        }\n    }\n    return path;\n}\n/**\n * @private\n */\nfunction wrapAxisGetPlotLinePath(proceed) {\n    const axis = this, axis3D = axis.axis3D, chart = axis.chart, path = proceed.apply(axis, [].slice.call(arguments, 1));\n    // Do not do this if the chart is not 3D\n    if (axis.coll === 'colorAxis' ||\n        !chart.chart3d ||\n        !chart.is3d()) {\n        return path;\n    }\n    if (path === null) {\n        return path;\n    }\n    const options3d = chart.options.chart.options3d, d = axis.isZAxis ? chart.plotWidth : options3d.depth, frame = chart.chart3d.frame3d, startSegment = path[0], endSegment = path[1];\n    let pArr, pathSegments = [];\n    if (startSegment[0] === 'M' && endSegment[0] === 'L') {\n        pArr = [\n            axis3D.swapZ({ x: startSegment[1], y: startSegment[2], z: 0 }),\n            axis3D.swapZ({ x: startSegment[1], y: startSegment[2], z: d }),\n            axis3D.swapZ({ x: endSegment[1], y: endSegment[2], z: 0 }),\n            axis3D.swapZ({ x: endSegment[1], y: endSegment[2], z: d })\n        ];\n        if (!this.horiz) { // Y-Axis\n            if (frame.front.visible) {\n                pathSegments.push(pArr[0], pArr[2]);\n            }\n            if (frame.back.visible) {\n                pathSegments.push(pArr[1], pArr[3]);\n            }\n            if (frame.left.visible) {\n                pathSegments.push(pArr[0], pArr[1]);\n            }\n            if (frame.right.visible) {\n                pathSegments.push(pArr[2], pArr[3]);\n            }\n        }\n        else if (this.isZAxis) { // Z-Axis\n            if (frame.left.visible) {\n                pathSegments.push(pArr[0], pArr[2]);\n            }\n            if (frame.right.visible) {\n                pathSegments.push(pArr[1], pArr[3]);\n            }\n            if (frame.top.visible) {\n                pathSegments.push(pArr[0], pArr[1]);\n            }\n            if (frame.bottom.visible) {\n                pathSegments.push(pArr[2], pArr[3]);\n            }\n        }\n        else { // X-Axis\n            if (frame.front.visible) {\n                pathSegments.push(pArr[0], pArr[2]);\n            }\n            if (frame.back.visible) {\n                pathSegments.push(pArr[1], pArr[3]);\n            }\n            if (frame.top.visible) {\n                pathSegments.push(pArr[0], pArr[1]);\n            }\n            if (frame.bottom.visible) {\n                pathSegments.push(pArr[2], pArr[3]);\n            }\n        }\n        pathSegments = Axis3DComposition_perspective(pathSegments, this.chart, false);\n    }\n    return chart.renderer.toLineSegments(pathSegments);\n}\n/**\n * Wrap getSlotWidth function to calculate individual width value for each\n * slot (#8042).\n * @private\n */\nfunction wrapAxisGetSlotWidth(proceed, tick) {\n    const axis = this, { chart, gridGroup, tickPositions, ticks } = axis;\n    if (axis.categories &&\n        chart.frameShapes &&\n        chart.is3d() &&\n        gridGroup &&\n        tick &&\n        tick.label) {\n        const firstGridLine = (gridGroup.element.childNodes[0].getBBox()), frame3DLeft = chart.frameShapes.left.getBBox(), options3d = chart.options.chart.options3d, origin = {\n            x: chart.plotWidth / 2,\n            y: chart.plotHeight / 2,\n            z: options3d.depth / 2,\n            vd: (Axis3DComposition_pick(options3d.depth, 1) *\n                Axis3DComposition_pick(options3d.viewDistance, 0))\n        }, index = tickPositions.indexOf(tick.pos), prevTick = ticks[tickPositions[index - 1]], nextTick = ticks[tickPositions[index + 1]];\n        let labelPos, prevLabelPos, nextLabelPos;\n        // Check whether the tick is not the first one and previous tick\n        // exists, then calculate position of previous label.\n        if (prevTick?.label?.xy) {\n            prevLabelPos = Axis3DComposition_perspective3D({\n                x: prevTick.label.xy.x,\n                y: prevTick.label.xy.y,\n                z: null\n            }, origin, origin.vd);\n        }\n        // If next label position is defined, then recalculate its position\n        // basing on the perspective.\n        if (nextTick && nextTick.label && nextTick.label.xy) {\n            nextLabelPos = Axis3DComposition_perspective3D({\n                x: nextTick.label.xy.x,\n                y: nextTick.label.xy.y,\n                z: null\n            }, origin, origin.vd);\n        }\n        labelPos = {\n            x: tick.label.xy.x,\n            y: tick.label.xy.y,\n            z: null\n        };\n        labelPos = Axis3DComposition_perspective3D(labelPos, origin, origin.vd);\n        // If tick is first one, check whether next label position is\n        // already calculated, then return difference between the first and\n        // the second label. If there is no next label position calculated,\n        // return the difference between the first grid line and left 3d\n        // frame.\n        return Math.abs(prevLabelPos ?\n            labelPos.x - prevLabelPos.x : nextLabelPos ?\n            nextLabelPos.x - labelPos.x :\n            firstGridLine.x - frame3DLeft.x);\n    }\n    return proceed.apply(axis, [].slice.call(arguments, 1));\n}\n/**\n * @private\n */\nfunction wrapAxisGetTitlePosition(proceed) {\n    const pos = proceed.apply(this, [].slice.call(arguments, 1));\n    return this.axis3D ?\n        this.axis3D.fix3dPosition(pos, true) :\n        pos;\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * Adds 3D support to axes.\n * @private\n * @class\n */\nclass Axis3DAdditions {\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /**\n     * Extends axis class with 3D support.\n     * @private\n     */\n    static compose(AxisClass, TickClass) {\n        Tick3DComposition.compose(TickClass);\n        if (!AxisClass.keepProps.includes('axis3D')) {\n            Axis3DComposition_merge(true, defaultOptions.xAxis, Axis_Axis3DDefaults);\n            AxisClass.keepProps.push('axis3D');\n            Axis3DComposition_addEvent(AxisClass, 'init', onAxisInit);\n            Axis3DComposition_addEvent(AxisClass, 'afterSetOptions', onAxisAfterSetOptions);\n            Axis3DComposition_addEvent(AxisClass, 'drawCrosshair', onAxisDrawCrosshair);\n            const axisProto = AxisClass.prototype;\n            Axis3DComposition_wrap(axisProto, 'getLinePath', wrapAxisGetLinePath);\n            Axis3DComposition_wrap(axisProto, 'getPlotBandPath', wrapAxisGetPlotBandPath);\n            Axis3DComposition_wrap(axisProto, 'getPlotLinePath', wrapAxisGetPlotLinePath);\n            Axis3DComposition_wrap(axisProto, 'getSlotWidth', wrapAxisGetSlotWidth);\n            Axis3DComposition_wrap(axisProto, 'getTitlePosition', wrapAxisGetTitlePosition);\n        }\n    }\n    /* *\n     *\n     *  Constructors\n     *\n     * */\n    /**\n     * @private\n     */\n    constructor(axis) {\n        this.axis = axis;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /**\n     * @private\n     * @param {Highcharts.Axis} axis\n     * Related axis.\n     * @param {Highcharts.Position3DObject} pos\n     * Position to fix.\n     * @param {boolean} [isTitle]\n     * Whether this is a title position.\n     * @return {Highcharts.Position3DObject}\n     * Fixed position.\n     */\n    fix3dPosition(pos, isTitle) {\n        const axis3D = this;\n        const axis = axis3D.axis;\n        const chart = axis.chart;\n        // Do not do this if the chart is not 3D\n        if (axis.coll === 'colorAxis' ||\n            !chart.chart3d ||\n            !chart.is3d()) {\n            return pos;\n        }\n        const alpha = Axis3DComposition_deg2rad * chart.options.chart.options3d.alpha, beta = Axis3DComposition_deg2rad * chart.options.chart.options3d.beta, positionMode = Axis3DComposition_pick(isTitle && axis.options.title.position3d, axis.options.labels.position3d), skew = Axis3DComposition_pick(isTitle && axis.options.title.skew3d, axis.options.labels.skew3d), frame = chart.chart3d.frame3d, plotLeft = chart.plotLeft, plotRight = chart.plotWidth + plotLeft, plotTop = chart.plotTop, plotBottom = chart.plotHeight + plotTop;\n        let offsetX = 0, offsetY = 0, vecX, vecY = { x: 0, y: 1, z: 0 }, \n        // Indicates that we are labelling an X or Z axis on the \"back\" of\n        // the chart\n        reverseFlap = false;\n        pos = axis.axis3D.swapZ({ x: pos.x, y: pos.y, z: 0 });\n        if (axis.isZAxis) { // Z Axis\n            if (axis.opposite) {\n                if (frame.axes.z.top === null) {\n                    return {};\n                }\n                offsetY = pos.y - plotTop;\n                pos.x = frame.axes.z.top.x;\n                pos.y = frame.axes.z.top.y;\n                vecX = frame.axes.z.top.xDir;\n                reverseFlap = !frame.top.frontFacing;\n            }\n            else {\n                if (frame.axes.z.bottom === null) {\n                    return {};\n                }\n                offsetY = pos.y - plotBottom;\n                pos.x = frame.axes.z.bottom.x;\n                pos.y = frame.axes.z.bottom.y;\n                vecX = frame.axes.z.bottom.xDir;\n                reverseFlap = !frame.bottom.frontFacing;\n            }\n        }\n        else if (axis.horiz) { // X Axis\n            if (axis.opposite) {\n                if (frame.axes.x.top === null) {\n                    return {};\n                }\n                offsetY = pos.y - plotTop;\n                pos.y = frame.axes.x.top.y;\n                pos.z = frame.axes.x.top.z;\n                vecX = frame.axes.x.top.xDir;\n                reverseFlap = !frame.top.frontFacing;\n            }\n            else {\n                if (frame.axes.x.bottom === null) {\n                    return {};\n                }\n                offsetY = pos.y - plotBottom;\n                pos.y = frame.axes.x.bottom.y;\n                pos.z = frame.axes.x.bottom.z;\n                vecX = frame.axes.x.bottom.xDir;\n                reverseFlap = !frame.bottom.frontFacing;\n            }\n        }\n        else { // Y Axis\n            if (axis.opposite) {\n                if (frame.axes.y.right === null) {\n                    return {};\n                }\n                offsetX = pos.x - plotRight;\n                pos.x = frame.axes.y.right.x;\n                pos.z = frame.axes.y.right.z;\n                vecX = frame.axes.y.right.xDir;\n                // Rotate 90º on opposite edge\n                vecX = { x: vecX.z, y: vecX.y, z: -vecX.x };\n            }\n            else {\n                if (frame.axes.y.left === null) {\n                    return {};\n                }\n                offsetX = pos.x - plotLeft;\n                pos.x = frame.axes.y.left.x;\n                pos.z = frame.axes.y.left.z;\n                vecX = frame.axes.y.left.xDir;\n            }\n        }\n        if (positionMode === 'chart') {\n            // Labels preserve their direction relative to the chart\n            // nothing to do\n        }\n        else if (positionMode === 'flap') {\n            // Labels are rotated around the axis direction to face the screen\n            if (!axis.horiz) { // Y Axis\n                vecX = { x: Math.cos(beta), y: 0, z: Math.sin(beta) };\n            }\n            else { // X and Z Axis\n                let sin = Math.sin(alpha);\n                const cos = Math.cos(alpha);\n                if (axis.opposite) {\n                    sin = -sin;\n                }\n                if (reverseFlap) {\n                    sin = -sin;\n                }\n                vecY = { x: vecX.z * sin, y: cos, z: -vecX.x * sin };\n            }\n        }\n        else if (positionMode === 'ortho') {\n            // Labels will be rotated to be orthogonal to the axis\n            if (!axis.horiz) { // Y Axis\n                vecX = { x: Math.cos(beta), y: 0, z: Math.sin(beta) };\n            }\n            else { // X and Z Axis\n                const sina = Math.sin(alpha);\n                const cosa = Math.cos(alpha);\n                const sinb = Math.sin(beta);\n                const cosb = Math.cos(beta);\n                const vecZ = { x: sinb * cosa, y: -sina, z: -cosa * cosb };\n                vecY = {\n                    x: vecX.y * vecZ.z - vecX.z * vecZ.y,\n                    y: vecX.z * vecZ.x - vecX.x * vecZ.z,\n                    z: vecX.x * vecZ.y - vecX.y * vecZ.x\n                };\n                let scale = 1 / Math.sqrt(vecY.x * vecY.x + vecY.y * vecY.y + vecY.z * vecY.z);\n                if (reverseFlap) {\n                    scale = -scale;\n                }\n                vecY = {\n                    x: scale * vecY.x, y: scale * vecY.y, z: scale * vecY.z\n                };\n            }\n        }\n        else { // Position mode  == 'offset'\n            // Labels will be skewd to maintain vertical / horizontal offsets\n            // from axis\n            if (!axis.horiz) { // Y Axis\n                vecX = { x: Math.cos(beta), y: 0, z: Math.sin(beta) };\n            }\n            else { // X and Z Axis\n                vecY = {\n                    x: Math.sin(beta) * Math.sin(alpha),\n                    y: Math.cos(alpha),\n                    z: -Math.cos(beta) * Math.sin(alpha)\n                };\n            }\n        }\n        pos.x += offsetX * vecX.x + offsetY * vecY.x;\n        pos.y += offsetX * vecX.y + offsetY * vecY.y;\n        pos.z += offsetX * vecX.z + offsetY * vecY.z;\n        const projected = Axis3DComposition_perspective([pos], axis.chart)[0];\n        if (skew) {\n            // Check if the label text would be mirrored\n            const isMirrored = Axis3DComposition_shapeArea(Axis3DComposition_perspective([\n                pos,\n                { x: pos.x + vecX.x, y: pos.y + vecX.y, z: pos.z + vecX.z },\n                { x: pos.x + vecY.x, y: pos.y + vecY.y, z: pos.z + vecY.z }\n            ], axis.chart)) < 0;\n            if (isMirrored) {\n                vecX = { x: -vecX.x, y: -vecX.y, z: -vecX.z };\n            }\n            const pointsProjected = Axis3DComposition_perspective([\n                { x: pos.x, y: pos.y, z: pos.z },\n                { x: pos.x + vecX.x, y: pos.y + vecX.y, z: pos.z + vecX.z },\n                { x: pos.x + vecY.x, y: pos.y + vecY.y, z: pos.z + vecY.z }\n            ], axis.chart);\n            projected.matrix = [\n                pointsProjected[1].x - pointsProjected[0].x,\n                pointsProjected[1].y - pointsProjected[0].y,\n                pointsProjected[2].x - pointsProjected[0].x,\n                pointsProjected[2].y - pointsProjected[0].y,\n                projected.x,\n                projected.y\n            ];\n            projected.matrix[4] -= projected.x * projected.matrix[0] +\n                projected.y * projected.matrix[2];\n            projected.matrix[5] -= projected.x * projected.matrix[1] +\n                projected.y * projected.matrix[3];\n        }\n        return projected;\n    }\n    /**\n     * @private\n     */\n    swapZ(p, insidePlotArea) {\n        const axis = this.axis;\n        if (axis.isZAxis) {\n            const plotLeft = insidePlotArea ? 0 : axis.chart.plotLeft;\n            return {\n                x: plotLeft + p.z,\n                y: p.y,\n                z: p.x - plotLeft\n            };\n        }\n        return p;\n    }\n}\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ const Axis3DComposition = (Axis3DAdditions);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"RendererRegistry\"],\"commonjs\":[\"highcharts\",\"RendererRegistry\"],\"commonjs2\":[\"highcharts\",\"RendererRegistry\"],\"root\":[\"Highcharts\",\"RendererRegistry\"]}\nvar highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_ = __webpack_require__(608);\nvar highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_default = /*#__PURE__*/__webpack_require__.n(highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_);\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Series\"],\"commonjs\":[\"highcharts\",\"Series\"],\"commonjs2\":[\"highcharts\",\"Series\"],\"root\":[\"Highcharts\",\"Series\"]}\nvar highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_ = __webpack_require__(820);\nvar highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default = /*#__PURE__*/__webpack_require__.n(highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_);\n;// ./code/es-modules/Core/Series/Series3D.js\n/* *\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  Extension to the Series object in 3D charts.\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nconst { composed: Series3D_composed } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { perspective: Series3D_perspective } = Core_Math3D;\n\n\nconst { addEvent: Series3D_addEvent, extend: Series3D_extend, isNumber, merge: Series3D_merge, pick: Series3D_pick, pushUnique: Series3D_pushUnique } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n *  Class\n *\n * */\nclass Series3D extends (highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default()) {\n    /* *\n     *\n     *  Static Functions\n     *\n     * */\n    static compose(SeriesClass) {\n        if (Series3D_pushUnique(Series3D_composed, 'Core.Series3D')) {\n            Series3D_addEvent(SeriesClass, 'afterTranslate', function () {\n                if (this.chart.is3d()) {\n                    this.translate3dPoints();\n                }\n            });\n            Series3D_extend(SeriesClass.prototype, {\n                translate3dPoints: Series3D.prototype.translate3dPoints\n            });\n        }\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /**\n     * Translate the plotX, plotY properties and add plotZ.\n     * @private\n     */\n    translate3dPoints() {\n        const series = this, seriesOptions = series.options, chart = series.chart, zAxis = Series3D_pick(series.zAxis, chart.options.zAxis[0]), rawPoints = [], rawPointsX = [], stack = seriesOptions.stacking ?\n            (isNumber(seriesOptions.stack) ? seriesOptions.stack : 0) :\n            series.index || 0;\n        let projectedPoint, zValue;\n        series.zPadding = stack *\n            (seriesOptions.depth || 0 + (seriesOptions.groupZPadding || 1));\n        series.data.forEach((rawPoint) => {\n            if (zAxis && zAxis.translate) {\n                zValue = zAxis.logarithmic && zAxis.val2lin ?\n                    zAxis.val2lin(rawPoint.z) :\n                    rawPoint.z; // #4562\n                rawPoint.plotZ = zAxis.translate(zValue);\n                rawPoint.isInside = rawPoint.isInside ?\n                    (zValue >= zAxis.min &&\n                        zValue <= zAxis.max) :\n                    false;\n            }\n            else {\n                rawPoint.plotZ = series.zPadding;\n            }\n            rawPoint.axisXpos = rawPoint.plotX;\n            rawPoint.axisYpos = rawPoint.plotY;\n            rawPoint.axisZpos = rawPoint.plotZ;\n            rawPoints.push({\n                x: rawPoint.plotX,\n                y: rawPoint.plotY,\n                z: rawPoint.plotZ\n            });\n            rawPointsX.push(rawPoint.plotX || 0);\n        });\n        series.rawPointsX = rawPointsX;\n        const projectedPoints = Series3D_perspective(rawPoints, chart, true);\n        series.data.forEach((rawPoint, i) => {\n            projectedPoint = projectedPoints[i];\n            rawPoint.plotX = projectedPoint.x;\n            rawPoint.plotY = projectedPoint.y;\n            rawPoint.plotZ = projectedPoint.z;\n        });\n    }\n}\n/* *\n *\n *  Static Properties\n *\n * */\nSeries3D.defaultOptions = Series3D_merge((highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default()).defaultOptions);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ const Series_Series3D = (Series3D);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"StackItem\"],\"commonjs\":[\"highcharts\",\"StackItem\"],\"commonjs2\":[\"highcharts\",\"StackItem\"],\"root\":[\"Highcharts\",\"StackItem\"]}\nvar highcharts_StackItem_commonjs_highcharts_StackItem_commonjs2_highcharts_StackItem_root_Highcharts_StackItem_ = __webpack_require__(184);\nvar highcharts_StackItem_commonjs_highcharts_StackItem_commonjs2_highcharts_StackItem_root_Highcharts_StackItem_default = /*#__PURE__*/__webpack_require__.n(highcharts_StackItem_commonjs_highcharts_StackItem_commonjs2_highcharts_StackItem_root_Highcharts_StackItem_);\n;// ./code/es-modules/Core/Renderer/SVG/SVGElement3D.js\n/* *\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  Extensions to the SVGRenderer class to enable 3D shapes\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nconst { parse: SVGElement3D_color } = (highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default());\n\nconst { Element: SVGElement } = highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_default().getRendererType().prototype;\n\nconst { defined, pick: SVGElement3D_pick } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n *  Class\n *\n * */\nclass SVGElement3D extends SVGElement {\n    constructor() {\n        /* *\n         *\n         *  Static Properties\n         *\n         * */\n        super(...arguments);\n        /* *\n         *\n         *  Properties\n         *\n         * */\n        this.parts = ['front', 'top', 'side'];\n        this.pathType = 'cuboid';\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /**\n     * The init is used by base - renderer.Element\n     * @private\n     */\n    initArgs(args) {\n        const elem3d = this, renderer = elem3d.renderer, paths = renderer[elem3d.pathType + 'Path'](args), zIndexes = paths.zIndexes;\n        // Build parts\n        for (const part of elem3d.parts) {\n            const attribs = {\n                'class': 'highcharts-3d-' + part,\n                zIndex: zIndexes[part] || 0\n            };\n            if (renderer.styledMode) {\n                if (part === 'top') {\n                    attribs.filter = 'url(#highcharts-brighter)';\n                }\n                else if (part === 'side') {\n                    attribs.filter = 'url(#highcharts-darker)';\n                }\n            }\n            elem3d[part] = renderer.path(paths[part])\n                .attr(attribs)\n                .add(elem3d);\n        }\n        elem3d.attr({\n            'stroke-linejoin': 'round',\n            zIndex: zIndexes.group\n        });\n        // Store information if any side of element was rendered by force.\n        elem3d.forcedSides = paths.forcedSides;\n    }\n    /**\n     * Single property setter that applies options to each part\n     * @private\n     */\n    singleSetterForParts(prop, val, values, verb, duration, complete) {\n        const elem3d = this, newAttr = {}, optionsToApply = [null, null, (verb || 'attr'), duration, complete], hasZIndexes = values && values.zIndexes;\n        if (!values) {\n            newAttr[prop] = val;\n            optionsToApply[0] = newAttr;\n        }\n        else {\n            // It is needed to deal with the whole group zIndexing\n            // in case of graph rotation\n            if (hasZIndexes && hasZIndexes.group) {\n                elem3d.attr({\n                    zIndex: hasZIndexes.group\n                });\n            }\n            for (const part of Object.keys(values)) {\n                newAttr[part] = {};\n                newAttr[part][prop] = values[part];\n                // Include zIndexes if provided\n                if (hasZIndexes) {\n                    newAttr[part].zIndex = values.zIndexes[part] || 0;\n                }\n            }\n            optionsToApply[1] = newAttr;\n        }\n        return this.processParts.apply(elem3d, optionsToApply);\n    }\n    /**\n     * Calls function for each part. Used for attr, animate and destroy.\n     * @private\n     */\n    processParts(props, partsProps, verb, duration, complete) {\n        const elem3d = this;\n        for (const part of elem3d.parts) {\n            // If different props for different parts\n            if (partsProps) {\n                props = SVGElement3D_pick(partsProps[part], false);\n            }\n            // Only if something to set, but allow undefined\n            if (props !== false) {\n                elem3d[part][verb](props, duration, complete);\n            }\n        }\n        return elem3d;\n    }\n    /**\n     * Destroy all parts\n     * @private\n     */\n    destroy() {\n        this.processParts(null, null, 'destroy');\n        return super.destroy();\n    }\n    // Following functions are SVGElement3DCuboid (= base)\n    attr(args, val, complete, continueAnimation) {\n        // Resolve setting attributes by string name\n        if (typeof args === 'string' && typeof val !== 'undefined') {\n            const key = args;\n            args = {};\n            args[key] = val;\n        }\n        if (args.shapeArgs || defined(args.x)) {\n            return this.singleSetterForParts('d', null, this.renderer[this.pathType + 'Path'](args.shapeArgs || args));\n        }\n        return super.attr(args, void 0, complete, continueAnimation);\n    }\n    animate(args, duration, complete) {\n        if (defined(args.x) && defined(args.y)) {\n            const paths = this.renderer[this.pathType + 'Path'](args), forcedSides = paths.forcedSides;\n            this.singleSetterForParts('d', null, paths, 'animate', duration, complete);\n            this.attr({\n                zIndex: paths.zIndexes.group\n            });\n            // If sides that are forced to render changed, recalculate colors.\n            if (forcedSides !== this.forcedSides) {\n                this.forcedSides = forcedSides;\n                if (!this.renderer.styledMode) {\n                    this.fillSetter(this.fill);\n                }\n            }\n        }\n        else {\n            super.animate(args, duration, complete);\n        }\n        return this;\n    }\n    fillSetter(fill) {\n        const elem3d = this;\n        elem3d.forcedSides = elem3d.forcedSides || [];\n        elem3d.singleSetterForParts('fill', null, {\n            front: fill,\n            // Do not change color if side was forced to render.\n            top: SVGElement3D_color(fill).brighten(elem3d.forcedSides.indexOf('top') >= 0 ? 0 : 0.1).get(),\n            side: SVGElement3D_color(fill).brighten(elem3d.forcedSides.indexOf('side') >= 0 ? 0 : -0.1).get()\n        });\n        // Fill for animation getter (#6776)\n        elem3d.color = elem3d.fill = fill;\n        return elem3d;\n    }\n}\nSVGElement3D.types = {\n    base: SVGElement3D,\n    cuboid: SVGElement3D\n};\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ const SVG_SVGElement3D = (SVGElement3D);\n\n;// ./code/es-modules/Core/Renderer/SVG/SVGRenderer3D.js\n/* *\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  Extensions to the SVGRenderer class to enable 3D shapes\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nconst { animObject } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { parse: SVGRenderer3D_color } = (highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default());\n\nconst { charts, deg2rad: SVGRenderer3D_deg2rad } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { perspective: SVGRenderer3D_perspective, shapeArea: SVGRenderer3D_shapeArea } = Core_Math3D;\n\n\nconst { defined: SVGRenderer3D_defined, extend: SVGRenderer3D_extend, merge: SVGRenderer3D_merge, pick: SVGRenderer3D_pick } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n *  Constants\n *\n * */\nconst cos = Math.cos, sin = Math.sin, PI = Math.PI, dFactor = (4 * (Math.sqrt(2) - 1) / 3) / (PI / 2);\n/* *\n *\n *  Functions\n *\n * */\n/**\n * Method to construct a curved path. Can 'wrap' around more then 180\n * degrees.\n * @private\n */\nfunction curveTo(cx, cy, rx, ry, start, end, dx, dy) {\n    const arcAngle = end - start;\n    let result = [];\n    if ((end > start) && (end - start > Math.PI / 2 + 0.0001)) {\n        result = result.concat(curveTo(cx, cy, rx, ry, start, start + (Math.PI / 2), dx, dy));\n        result = result.concat(curveTo(cx, cy, rx, ry, start + (Math.PI / 2), end, dx, dy));\n        return result;\n    }\n    if ((end < start) && (start - end > Math.PI / 2 + 0.0001)) {\n        result = result.concat(curveTo(cx, cy, rx, ry, start, start - (Math.PI / 2), dx, dy));\n        result = result.concat(curveTo(cx, cy, rx, ry, start - (Math.PI / 2), end, dx, dy));\n        return result;\n    }\n    return [[\n            'C',\n            cx + (rx * Math.cos(start)) -\n                ((rx * dFactor * arcAngle) * Math.sin(start)) + dx,\n            cy + (ry * Math.sin(start)) +\n                ((ry * dFactor * arcAngle) * Math.cos(start)) + dy,\n            cx + (rx * Math.cos(end)) +\n                ((rx * dFactor * arcAngle) * Math.sin(end)) + dx,\n            cy + (ry * Math.sin(end)) -\n                ((ry * dFactor * arcAngle) * Math.cos(end)) + dy,\n            cx + (rx * Math.cos(end)) + dx,\n            cy + (ry * Math.sin(end)) + dy\n        ]];\n}\n/* *\n *\n *  Composition\n *\n * */\nvar SVGRenderer3D;\n(function (SVGRenderer3D) {\n    /* *\n     *\n     *  Declarations\n     *\n     * */\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /** @private */\n    function compose(SVGRendererClass) {\n        const rendererProto = SVGRendererClass.prototype;\n        if (!rendererProto.element3d) {\n            SVGRenderer3D_extend(rendererProto, {\n                Element3D: SVG_SVGElement3D,\n                arc3d,\n                arc3dPath,\n                cuboid,\n                cuboidPath,\n                element3d,\n                face3d,\n                polyhedron,\n                toLinePath,\n                toLineSegments\n            });\n        }\n    }\n    SVGRenderer3D.compose = compose;\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /** @private */\n    function toLinePath(points, closed) {\n        const result = [];\n        // Put \"L x y\" for each point\n        for (const point of points) {\n            result.push(['L', point.x, point.y]);\n        }\n        if (points.length) {\n            // Set the first element to M\n            result[0][0] = 'M';\n            // If it is a closed line, add Z\n            if (closed) {\n                result.push(['Z']);\n            }\n        }\n        return result;\n    }\n    /** @private */\n    function toLineSegments(points) {\n        const result = [];\n        let m = true;\n        for (const point of points) {\n            result.push(m ? ['M', point.x, point.y] : ['L', point.x, point.y]);\n            m = !m;\n        }\n        return result;\n    }\n    /**\n     * A 3-D Face is defined by it's 3D vertexes, and is only visible if it's\n     * vertexes are counter-clockwise (Back-face culling). It is used as a\n     * polyhedron Element.\n     * @private\n     */\n    function face3d(args) {\n        const renderer = this, elementProto = renderer.Element.prototype, ret = renderer.createElement('path');\n        ret.vertexes = [];\n        ret.insidePlotArea = false;\n        ret.enabled = true;\n        /* eslint-disable no-invalid-this */\n        ret.attr = function (hash) {\n            if (typeof hash === 'object' &&\n                (SVGRenderer3D_defined(hash.enabled) ||\n                    SVGRenderer3D_defined(hash.vertexes) ||\n                    SVGRenderer3D_defined(hash.insidePlotArea))) {\n                this.enabled = SVGRenderer3D_pick(hash.enabled, this.enabled);\n                this.vertexes = SVGRenderer3D_pick(hash.vertexes, this.vertexes);\n                this.insidePlotArea = SVGRenderer3D_pick(hash.insidePlotArea, this.insidePlotArea);\n                delete hash.enabled;\n                delete hash.vertexes;\n                delete hash.insidePlotArea;\n                const chart = charts[renderer.chartIndex], vertexes2d = SVGRenderer3D_perspective(this.vertexes, chart, this.insidePlotArea), path = renderer.toLinePath(vertexes2d, true), area = SVGRenderer3D_shapeArea(vertexes2d);\n                hash.d = path;\n                hash.visibility = (this.enabled && area > 0) ?\n                    'inherit' : 'hidden';\n            }\n            return elementProto.attr.apply(this, arguments);\n        };\n        ret.animate = function (params) {\n            if (typeof params === 'object' &&\n                (SVGRenderer3D_defined(params.enabled) ||\n                    SVGRenderer3D_defined(params.vertexes) ||\n                    SVGRenderer3D_defined(params.insidePlotArea))) {\n                this.enabled = SVGRenderer3D_pick(params.enabled, this.enabled);\n                this.vertexes = SVGRenderer3D_pick(params.vertexes, this.vertexes);\n                this.insidePlotArea = SVGRenderer3D_pick(params.insidePlotArea, this.insidePlotArea);\n                delete params.enabled;\n                delete params.vertexes;\n                delete params.insidePlotArea;\n                const chart = charts[renderer.chartIndex], vertexes2d = SVGRenderer3D_perspective(this.vertexes, chart, this.insidePlotArea), path = renderer.toLinePath(vertexes2d, true), area = SVGRenderer3D_shapeArea(vertexes2d), visibility = (this.enabled && area > 0) ?\n                    'visible' : 'hidden';\n                params.d = path;\n                this.attr('visibility', visibility);\n            }\n            return elementProto.animate.apply(this, arguments);\n        };\n        /* eslint-enable no-invalid-this */\n        return ret.attr(args);\n    }\n    /**\n     * A Polyhedron is a handy way of defining a group of 3-D faces. It's only\n     * attribute is `faces`, an array of attributes of each one of it's Face3D\n     * instances.\n     * @private\n     */\n    function polyhedron(args) {\n        const renderer = this, elementProto = renderer.Element.prototype, result = renderer.g(), destroy = result.destroy;\n        if (!this.styledMode) {\n            result.attr({\n                'stroke-linejoin': 'round'\n            });\n        }\n        result.faces = [];\n        // Destroy all children\n        result.destroy = function () {\n            for (let i = 0; i < result.faces.length; i++) {\n                result.faces[i].destroy();\n            }\n            return destroy.call(this);\n        };\n        result.attr = function (hash, val, complete, continueAnimation) {\n            if (typeof hash === 'object' && SVGRenderer3D_defined(hash.faces)) {\n                while (result.faces.length > hash.faces.length) {\n                    result.faces.pop().destroy();\n                }\n                while (result.faces.length < hash.faces.length) {\n                    result.faces.push(renderer.face3d().add(result));\n                }\n                for (let i = 0; i < hash.faces.length; i++) {\n                    if (renderer.styledMode) {\n                        delete hash.faces[i].fill;\n                    }\n                    result.faces[i].attr(hash.faces[i], null, complete, continueAnimation);\n                }\n                delete hash.faces;\n            }\n            return elementProto.attr.apply(this, arguments);\n        };\n        result.animate = function (params, duration, complete) {\n            if (params && params.faces) {\n                while (result.faces.length > params.faces.length) {\n                    result.faces.pop().destroy();\n                }\n                while (result.faces.length < params.faces.length) {\n                    result.faces.push(renderer.face3d().add(result));\n                }\n                for (let i = 0; i < params.faces.length; i++) {\n                    result.faces[i].animate(params.faces[i], duration, complete);\n                }\n                delete params.faces;\n            }\n            return elementProto.animate.apply(this, arguments);\n        };\n        return result.attr(args);\n    }\n    /**\n     * Return result, generalization\n     * @private\n     * @requires highcharts-3d\n     */\n    function element3d(type, shapeArgs) {\n        const elem3d = new SVG_SVGElement3D.types[type](this, 'g');\n        elem3d.initArgs(shapeArgs);\n        return elem3d;\n    }\n    /**\n     * Generalized, so now use simply\n     * @private\n     */\n    function cuboid(shapeArgs) {\n        return this.element3d('cuboid', shapeArgs);\n    }\n    /**\n     * Generates a cuboid path and zIndexes\n     * @private\n     */\n    function cuboidPath(shapeArgs) {\n        const x = shapeArgs.x || 0, y = shapeArgs.y || 0, z = shapeArgs.z || 0, \n        // For side calculation (right/left)\n        // there is a need for height (and other shapeArgs arguments)\n        // to be at least 1px\n        h = shapeArgs.height || 0, w = shapeArgs.width || 0, d = shapeArgs.depth || 0, chart = charts[this.chartIndex], options3d = chart.options.chart.options3d, alpha = options3d.alpha, \n        // Priority for x axis is the biggest,\n        // because of x direction has biggest influence on zIndex\n        incrementX = 1000000, \n        // Y axis has the smallest priority in case of our charts\n        // (needs to be set because of stacking)\n        incrementY = 10, incrementZ = 100, forcedSides = [];\n        let shape, zIndex = 0, \n        // The 8 corners of the cube\n        pArr = [{\n                x: x,\n                y: y,\n                z: z\n            }, {\n                x: x + w,\n                y: y,\n                z: z\n            }, {\n                x: x + w,\n                y: y + h,\n                z: z\n            }, {\n                x: x,\n                y: y + h,\n                z: z\n            }, {\n                x: x,\n                y: y + h,\n                z: z + d\n            }, {\n                x: x + w,\n                y: y + h,\n                z: z + d\n            }, {\n                x: x + w,\n                y: y,\n                z: z + d\n            }, {\n                x: x,\n                y: y,\n                z: z + d\n            }];\n        // Apply perspective\n        pArr = SVGRenderer3D_perspective(pArr, chart, shapeArgs.insidePlotArea);\n        /**\n         * Helper method to decide which side is visible\n         * @private\n         */\n        const mapSidePath = (i) => {\n            // Added support for 0 value in columns, where height is 0\n            // but the shape is rendered.\n            // Height is used from 1st to 6th element of pArr\n            if (h === 0 && i > 1 && i < 6) { // [2, 3, 4, 5]\n                return {\n                    x: pArr[i].x,\n                    // When height is 0 instead of cuboid we render plane\n                    // so it is needed to add fake 10 height to imitate\n                    // cuboid for side calculation\n                    y: pArr[i].y + 10,\n                    z: pArr[i].z\n                };\n            }\n            // It is needed to calculate dummy sides (front/back) for\n            // breaking points in case of x and depth values. If column has\n            // side, it means that x values of front and back side are\n            // different.\n            if (pArr[0].x === pArr[7].x && i >= 4) { // [4, 5, 6, 7]\n                return {\n                    x: pArr[i].x + 10,\n                    // When height is 0 instead of cuboid we render plane\n                    // so it is needed to add fake 10 height to imitate\n                    // cuboid for side calculation\n                    y: pArr[i].y,\n                    z: pArr[i].z\n                };\n            }\n            // Added dummy depth\n            if (d === 0 && i < 2 || i > 5) { // [0, 1, 6, 7]\n                return {\n                    x: pArr[i].x,\n                    // When height is 0 instead of cuboid we render plane\n                    // so it is needed to add fake 10 height to imitate\n                    // cuboid for side calculation\n                    y: pArr[i].y,\n                    z: pArr[i].z + 10\n                };\n            }\n            return pArr[i];\n        }, \n        /**\n         * Method creating the final side\n         * @private\n         */\n        mapPath = (i) => (pArr[i]), \n        /**\n         * First value - path with specific face\n         * Second value - added info about side for later calculations.\n         *                 Possible second values are 0 for path1, 1 for\n         *                 path2 and -1 for no path chosen.\n         * Third value - string containing information about current side of\n         *               cuboid for forcing side rendering.\n         * @private\n         */\n        pickShape = (verticesIndex1, verticesIndex2, side) => {\n            const // An array of vertices for cuboid face\n            face1 = verticesIndex1.map(mapPath), face2 = verticesIndex2.map(mapPath), \n            // Dummy face is calculated the same way as standard face,\n            // but if cuboid height is 0 additional height is added so\n            // it is possible to use this vertices array for visible\n            // face calculation\n            dummyFace1 = verticesIndex1.map(mapSidePath), dummyFace2 = verticesIndex2.map(mapSidePath);\n            let ret = [[], -1];\n            if (SVGRenderer3D_shapeArea(face1) < 0) {\n                ret = [face1, 0];\n            }\n            else if (SVGRenderer3D_shapeArea(face2) < 0) {\n                ret = [face2, 1];\n            }\n            else if (side) {\n                forcedSides.push(side);\n                if (SVGRenderer3D_shapeArea(dummyFace1) < 0) {\n                    ret = [face1, 0];\n                }\n                else if (SVGRenderer3D_shapeArea(dummyFace2) < 0) {\n                    ret = [face2, 1];\n                }\n                else {\n                    ret = [face1, 0]; // Force side calculation.\n                }\n            }\n            return ret;\n        };\n        // Front or back\n        const front = [3, 2, 1, 0], back = [7, 6, 5, 4];\n        shape = pickShape(front, back, 'front');\n        const path1 = shape[0], isFront = shape[1];\n        // Top or bottom\n        const top = [1, 6, 7, 0], bottom = [4, 5, 2, 3];\n        shape = pickShape(top, bottom, 'top');\n        const path2 = shape[0], isTop = shape[1];\n        // Side\n        const right = [1, 2, 5, 6], left = [0, 7, 4, 3];\n        shape = pickShape(right, left, 'side');\n        const path3 = shape[0], isRight = shape[1];\n        /* New block used for calculating zIndex. It is basing on X, Y and Z\n        position of specific columns. All zIndexes (for X, Y and Z values) are\n        added to the final zIndex, where every value has different priority. The\n        biggest priority is in X and Z directions, the lowest index is for\n        stacked columns (Y direction and the same X and Z positions). Big\n        differences between priorities is made because we need to ensure that\n        even for big changes in Y and Z parameters all columns will be drawn\n        correctly. */\n        if (isRight === 1) {\n            // It is needed to connect value with current chart width\n            // for big chart size.\n            zIndex += incrementX * (chart.plotWidth - x);\n        }\n        else if (!isRight) {\n            zIndex += incrementX * x;\n        }\n        zIndex += incrementY * (!isTop ||\n            // Numbers checked empirically\n            (alpha >= 0 && alpha <= 180 || alpha < 360 && alpha > 357.5) ?\n            chart.plotHeight - y : 10 + y);\n        if (isFront === 1) {\n            zIndex += incrementZ * (z);\n        }\n        else if (!isFront) {\n            zIndex += incrementZ * (1000 - z);\n        }\n        return {\n            front: this.toLinePath(path1, true),\n            top: this.toLinePath(path2, true),\n            side: this.toLinePath(path3, true),\n            zIndexes: {\n                group: Math.round(zIndex)\n            },\n            forcedSides: forcedSides,\n            // Additional info about zIndexes\n            isFront: isFront,\n            isTop: isTop\n        }; // #4774\n    }\n    /** @private */\n    function arc3d(attribs) {\n        const renderer = this, wrapper = renderer.g(), elementProto = renderer.Element.prototype, customAttribs = [\n            'alpha', 'beta',\n            'x', 'y', 'r', 'innerR', 'start', 'end', 'depth'\n        ];\n        /**\n         * Get custom attributes. Don't mutate the original object and return an\n         * object with only custom attr.\n         * @private\n         */\n        function extractCustom(params) {\n            const ca = {};\n            params = SVGRenderer3D_merge(params); // Don't mutate the original object\n            let key;\n            for (key in params) {\n                if (customAttribs.indexOf(key) !== -1) {\n                    ca[key] = params[key];\n                    delete params[key];\n                }\n            }\n            return Object.keys(ca).length ? [ca, params] : false;\n        }\n        attribs = SVGRenderer3D_merge(attribs);\n        attribs.alpha = (attribs.alpha || 0) * SVGRenderer3D_deg2rad;\n        attribs.beta = (attribs.beta || 0) * SVGRenderer3D_deg2rad;\n        // Create the different sub sections of the shape\n        wrapper.top = renderer.path();\n        wrapper.side1 = renderer.path();\n        wrapper.side2 = renderer.path();\n        wrapper.inn = renderer.path();\n        wrapper.out = renderer.path();\n        /* eslint-disable no-invalid-this */\n        // Add all faces\n        wrapper.onAdd = function () {\n            const parent = wrapper.parentGroup, className = wrapper.attr('class');\n            wrapper.top.add(wrapper);\n            // These faces are added outside the wrapper group because the\n            // z-index relates to neighbour elements as well\n            for (const face of ['out', 'inn', 'side1', 'side2']) {\n                wrapper[face]\n                    .attr({\n                    'class': className + ' highcharts-3d-side'\n                })\n                    .add(parent);\n            }\n        };\n        // Cascade to faces\n        for (const fn of ['addClass', 'removeClass']) {\n            wrapper[fn] = function () {\n                const args = arguments;\n                for (const face of ['top', 'out', 'inn', 'side1', 'side2']) {\n                    wrapper[face][fn].apply(wrapper[face], args);\n                }\n            };\n        }\n        /**\n         * Compute the transformed paths and set them to the composite shapes\n         * @private\n         */\n        wrapper.setPaths = function (attribs) {\n            const paths = wrapper.renderer.arc3dPath(attribs), zIndex = paths.zTop * 100;\n            wrapper.attribs = attribs;\n            wrapper.top.attr({ d: paths.top, zIndex: paths.zTop });\n            wrapper.inn.attr({ d: paths.inn, zIndex: paths.zInn });\n            wrapper.out.attr({ d: paths.out, zIndex: paths.zOut });\n            wrapper.side1.attr({ d: paths.side1, zIndex: paths.zSide1 });\n            wrapper.side2.attr({ d: paths.side2, zIndex: paths.zSide2 });\n            // Show all children\n            wrapper.zIndex = zIndex;\n            wrapper.attr({ zIndex: zIndex });\n            // Set the radial gradient center the first time\n            if (attribs.center) {\n                wrapper.top.setRadialReference(attribs.center);\n                delete attribs.center;\n            }\n        };\n        wrapper.setPaths(attribs);\n        /**\n         * Apply the fill to the top and a darker shade to the sides\n         * @private\n         */\n        wrapper.fillSetter = function (value) {\n            const darker = SVGRenderer3D_color(value).brighten(-0.1).get();\n            this.fill = value;\n            this.side1.attr({ fill: darker });\n            this.side2.attr({ fill: darker });\n            this.inn.attr({ fill: darker });\n            this.out.attr({ fill: darker });\n            this.top.attr({ fill: value });\n            return this;\n        };\n        // Apply the same value to all. These properties cascade down to the\n        // children when set to the composite arc3d.\n        for (const setter of ['opacity', 'translateX', 'translateY', 'visibility']) {\n            wrapper[setter + 'Setter'] = function (value, key) {\n                wrapper[key] = value;\n                for (const el of ['out', 'inn', 'side1', 'side2', 'top']) {\n                    wrapper[el].attr(key, value);\n                }\n            };\n        }\n        // Override attr to remove shape attributes and use those to set child\n        // paths\n        wrapper.attr = function (params) {\n            if (typeof params === 'object') {\n                const paramArr = extractCustom(params);\n                if (paramArr) {\n                    const ca = paramArr[0];\n                    arguments[0] = paramArr[1];\n                    // Translate alpha and beta to rotation\n                    if (ca.alpha !== void 0) {\n                        ca.alpha *= SVGRenderer3D_deg2rad;\n                    }\n                    if (ca.beta !== void 0) {\n                        ca.beta *= SVGRenderer3D_deg2rad;\n                    }\n                    SVGRenderer3D_extend(wrapper.attribs, ca);\n                    if (wrapper.attribs) {\n                        wrapper.setPaths(wrapper.attribs);\n                    }\n                }\n            }\n            return elementProto.attr.apply(wrapper, arguments);\n        };\n        // Override the animate function by sucking out custom parameters\n        // related to the shapes directly, and update the shapes from the\n        // animation step.\n        wrapper.animate = function (params, animation, complete) {\n            const from = this.attribs, randomProp = 'data-' +\n                Math.random().toString(26).substring(2, 9);\n            // Attribute-line properties connected to 3D. These shouldn't have\n            // been in the attribs collection in the first place.\n            delete params.center;\n            delete params.z;\n            const anim = animObject(SVGRenderer3D_pick(animation, this.renderer.globalAnimation));\n            if (anim.duration) {\n                const paramArr = extractCustom(params);\n                // Params need to have a property in order for the step to run\n                // (#5765, #7097, #7437)\n                wrapper[randomProp] = 0;\n                params[randomProp] = 1;\n                wrapper[randomProp + 'Setter'] = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n                if (paramArr) {\n                    const to = paramArr[0], // Custom attr\n                    interpolate = (key, pos) => (from[key] + (SVGRenderer3D_pick(to[key], from[key]) -\n                        from[key]) * pos);\n                    anim.step = function (a, fx) {\n                        if (fx.prop === randomProp) {\n                            fx.elem.setPaths(SVGRenderer3D_merge(from, {\n                                x: interpolate('x', fx.pos),\n                                y: interpolate('y', fx.pos),\n                                r: interpolate('r', fx.pos),\n                                innerR: interpolate('innerR', fx.pos),\n                                start: interpolate('start', fx.pos),\n                                end: interpolate('end', fx.pos),\n                                depth: interpolate('depth', fx.pos)\n                            }));\n                        }\n                    };\n                }\n                animation = anim; // Only when duration (#5572)\n            }\n            return elementProto.animate.call(this, params, animation, complete);\n        };\n        // Destroy all children\n        wrapper.destroy = function () {\n            this.top.destroy();\n            this.out.destroy();\n            this.inn.destroy();\n            this.side1.destroy();\n            this.side2.destroy();\n            return elementProto.destroy.call(this);\n        };\n        // Hide all children\n        wrapper.hide = function () {\n            this.top.hide();\n            this.out.hide();\n            this.inn.hide();\n            this.side1.hide();\n            this.side2.hide();\n        };\n        wrapper.show = function (inherit) {\n            this.top.show(inherit);\n            this.out.show(inherit);\n            this.inn.show(inherit);\n            this.side1.show(inherit);\n            this.side2.show(inherit);\n        };\n        /* eslint-enable no-invalid-this */\n        return wrapper;\n    }\n    /**\n     * Generate the paths required to draw a 3D arc.\n     * @private\n     */\n    function arc3dPath(shapeArgs) {\n        const cx = shapeArgs.x || 0, // X coordinate of the center\n        cy = shapeArgs.y || 0, // Y coordinate of the center\n        start = shapeArgs.start || 0, // Start angle\n        end = (shapeArgs.end || 0) - 0.00001, // End angle\n        r = shapeArgs.r || 0, // Radius\n        ir = shapeArgs.innerR || 0, // Inner radius\n        d = shapeArgs.depth || 0, // Depth\n        alpha = shapeArgs.alpha || 0, // Alpha rotation of the chart\n        beta = shapeArgs.beta || 0; // Beta rotation of the chart\n        // Derived Variables\n        const cs = Math.cos(start), // Cosinus of the start angle\n        ss = Math.sin(start), // Sinus of the start angle\n        ce = Math.cos(end), // Cosinus of the end angle\n        se = Math.sin(end), // Sinus of the end angle\n        rx = r * Math.cos(beta), // X-radius\n        ry = r * Math.cos(alpha), // Y-radius\n        irx = ir * Math.cos(beta), // X-radius (inner)\n        iry = ir * Math.cos(alpha), // Y-radius (inner)\n        dx = d * Math.sin(beta), // Distance between top and bottom in x\n        dy = d * Math.sin(alpha); // Distance between top and bottom in y\n        // TOP\n        let top = [\n            ['M', cx + (rx * cs), cy + (ry * ss)]\n        ];\n        top = top.concat(curveTo(cx, cy, rx, ry, start, end, 0, 0));\n        top.push([\n            'L', cx + (irx * ce), cy + (iry * se)\n        ]);\n        top = top.concat(curveTo(cx, cy, irx, iry, end, start, 0, 0));\n        top.push(['Z']);\n        // OUTSIDE\n        const b = (beta > 0 ? Math.PI / 2 : 0), a = (alpha > 0 ? 0 : Math.PI / 2);\n        const start2 = start > -b ? start : (end > -b ? -b : start), end2 = end < PI - a ? end : (start < PI - a ? PI - a : end), midEnd = 2 * PI - a;\n        // When slice goes over bottom middle, need to add both, left and right\n        // outer side. Additionally, when we cross right hand edge, create sharp\n        // edge. Outer shape/wall:\n        //\n        //            -------\n        //          /    ^    \\\n        //    4)   /   /   \\   \\  1)\n        //        /   /     \\   \\\n        //       /   /       \\   \\\n        // (c)=> ====         ==== <=(d)\n        //       \\   \\       /   /\n        //        \\   \\<=(a)/   /\n        //         \\   \\   /   / <=(b)\n        //    3)    \\    v    /  2)\n        //            -------\n        //\n        // (a) - inner side\n        // (b) - outer side\n        // (c) - left edge (sharp)\n        // (d) - right edge (sharp)\n        // 1..n - rendering order for startAngle = 0, when set to e.g 90, order\n        // changes clockwise (1->2, 2->3, n->1) and counterclockwise for\n        // negative startAngle\n        let out = [\n            ['M', cx + (rx * cos(start2)), cy + (ry * sin(start2))]\n        ];\n        out = out.concat(curveTo(cx, cy, rx, ry, start2, end2, 0, 0));\n        // When shape is wide, it can cross both, (c) and (d) edges, when using\n        // startAngle\n        if (end > midEnd && start < midEnd) {\n            // Go to outer side\n            out.push([\n                'L', cx + (rx * cos(end2)) + dx, cy + (ry * sin(end2)) + dy\n            ]);\n            // Curve to the right edge of the slice (d)\n            out = out.concat(curveTo(cx, cy, rx, ry, end2, midEnd, dx, dy));\n            // Go to the inner side\n            out.push([\n                'L', cx + (rx * cos(midEnd)), cy + (ry * sin(midEnd))\n            ]);\n            // Curve to the true end of the slice\n            out = out.concat(curveTo(cx, cy, rx, ry, midEnd, end, 0, 0));\n            // Go to the outer side\n            out.push([\n                'L', cx + (rx * cos(end)) + dx, cy + (ry * sin(end)) + dy\n            ]);\n            // Go back to middle (d)\n            out = out.concat(curveTo(cx, cy, rx, ry, end, midEnd, dx, dy));\n            out.push([\n                'L', cx + (rx * cos(midEnd)), cy + (ry * sin(midEnd))\n            ]);\n            // Go back to the left edge\n            out = out.concat(curveTo(cx, cy, rx, ry, midEnd, end2, 0, 0));\n            // But shape can cross also only (c) edge:\n        }\n        else if (end > PI - a && start < PI - a) {\n            // Go to outer side\n            out.push([\n                'L',\n                cx + (rx * Math.cos(end2)) + dx,\n                cy + (ry * Math.sin(end2)) + dy\n            ]);\n            // Curve to the true end of the slice\n            out = out.concat(curveTo(cx, cy, rx, ry, end2, end, dx, dy));\n            // Go to the inner side\n            out.push([\n                'L', cx + (rx * Math.cos(end)), cy + (ry * Math.sin(end))\n            ]);\n            // Go back to the artificial end2\n            out = out.concat(curveTo(cx, cy, rx, ry, end, end2, 0, 0));\n        }\n        out.push([\n            'L',\n            cx + (rx * Math.cos(end2)) + dx,\n            cy + (ry * Math.sin(end2)) + dy\n        ]);\n        out = out.concat(curveTo(cx, cy, rx, ry, end2, start2, dx, dy));\n        out.push(['Z']);\n        // INSIDE\n        let inn = [\n            ['M', cx + (irx * cs), cy + (iry * ss)]\n        ];\n        inn = inn.concat(curveTo(cx, cy, irx, iry, start, end, 0, 0));\n        inn.push([\n            'L',\n            cx + (irx * Math.cos(end)) + dx,\n            cy + (iry * Math.sin(end)) + dy\n        ]);\n        inn = inn.concat(curveTo(cx, cy, irx, iry, end, start, dx, dy));\n        inn.push(['Z']);\n        // SIDES\n        const side1 = [\n            ['M', cx + (rx * cs), cy + (ry * ss)],\n            ['L', cx + (rx * cs) + dx, cy + (ry * ss) + dy],\n            ['L', cx + (irx * cs) + dx, cy + (iry * ss) + dy],\n            ['L', cx + (irx * cs), cy + (iry * ss)],\n            ['Z']\n        ];\n        const side2 = [\n            ['M', cx + (rx * ce), cy + (ry * se)],\n            ['L', cx + (rx * ce) + dx, cy + (ry * se) + dy],\n            ['L', cx + (irx * ce) + dx, cy + (iry * se) + dy],\n            ['L', cx + (irx * ce), cy + (iry * se)],\n            ['Z']\n        ];\n        // Correction for changed position of vanishing point caused by alpha\n        // and beta rotations\n        const angleCorr = Math.atan2(dy, -dx);\n        let angleEnd = Math.abs(end + angleCorr), angleStart = Math.abs(start + angleCorr), angleMid = Math.abs((start + end) / 2 + angleCorr);\n        /**\n         * Set to 0-PI range\n         * @private\n         */\n        function toZeroPIRange(angle) {\n            angle = angle % (2 * Math.PI);\n            if (angle > Math.PI) {\n                angle = 2 * Math.PI - angle;\n            }\n            return angle;\n        }\n        angleEnd = toZeroPIRange(angleEnd);\n        angleStart = toZeroPIRange(angleStart);\n        angleMid = toZeroPIRange(angleMid);\n        // *1e5 is to compensate pInt in zIndexSetter\n        const incPrecision = 1e5, a1 = angleMid * incPrecision, a2 = angleStart * incPrecision, a3 = angleEnd * incPrecision;\n        return {\n            top: top,\n            // Max angle is PI, so this is always higher\n            zTop: Math.PI * incPrecision + 1,\n            out: out,\n            zOut: Math.max(a1, a2, a3),\n            inn: inn,\n            zInn: Math.max(a1, a2, a3),\n            side1: side1,\n            // To keep below zOut and zInn in case of same values\n            zSide1: a3 * 0.99,\n            side2: side2,\n            zSide2: a2 * 0.99\n        };\n    }\n})(SVGRenderer3D || (SVGRenderer3D = {}));\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ const SVG_SVGRenderer3D = (SVGRenderer3D);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Axis\"],\"commonjs\":[\"highcharts\",\"Axis\"],\"commonjs2\":[\"highcharts\",\"Axis\"],\"root\":[\"Highcharts\",\"Axis\"]}\nvar highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_ = __webpack_require__(532);\nvar highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_default = /*#__PURE__*/__webpack_require__.n(highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_);\n;// ./code/es-modules/Core/Axis/ZAxis.js\n/* *\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nconst { defaultOptions: ZAxis_defaultOptions } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { addEvent: ZAxis_addEvent, merge: ZAxis_merge, pick: ZAxis_pick, splat } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n *  Functions\n *\n * */\n/**\n * @private\n */\nfunction chartAddZAxis(options) {\n    return new ZAxis(this, options);\n}\n/**\n * Get the Z axis in addition to the default X and Y.\n * @private\n */\nfunction onChartAfterCreateAxes() {\n    const zAxisOptions = this.options.zAxis = splat(this.options.zAxis || {});\n    if (!this.is3d()) {\n        return;\n    }\n    this.zAxis = [];\n    zAxisOptions.forEach((axisOptions) => {\n        this.addZAxis(axisOptions).setScale();\n    });\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * 3D axis for z coordinates.\n * @private\n */\nclass ZAxis extends (highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_default()) {\n    constructor() {\n        /* *\n         *\n         *  Static Properties\n         *\n         * */\n        super(...arguments);\n        this.isZAxis = true;\n    }\n    static compose(ChartClass) {\n        const chartProto = ChartClass.prototype;\n        if (!chartProto.addZAxis) {\n            ZAxis_defaultOptions.zAxis = ZAxis_merge(ZAxis_defaultOptions.xAxis, {\n                offset: 0,\n                lineWidth: 0\n            });\n            chartProto.addZAxis = chartAddZAxis;\n            chartProto.collectionsWithInit.zAxis = [chartProto.addZAxis];\n            chartProto.collectionsWithUpdate.push('zAxis');\n            ZAxis_addEvent(ChartClass, 'afterCreateAxes', onChartAfterCreateAxes);\n        }\n    }\n    /* *\n     *\n     *  Constructor\n     *\n     * */\n    init(chart, userOptions) {\n        // #14793, this used to be set on the prototype\n        this.isZAxis = true;\n        super.init(chart, userOptions, 'zAxis');\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    getSeriesExtremes() {\n        this.hasVisibleSeries = false;\n        // Reset properties in case we're redrawing (#3353)\n        this.dataMin = this.dataMax = this.ignoreMinPadding = (this.ignoreMaxPadding = void 0);\n        if (this.stacking) {\n            this.stacking.buildStacks();\n        }\n        // Loop through this axis' series\n        this.series.forEach((series) => {\n            if (series.reserveSpace()) {\n                let threshold = series.options.threshold;\n                this.hasVisibleSeries = true;\n                // Validate threshold in logarithmic axes\n                if (this.positiveValuesOnly && threshold <= 0) {\n                    threshold = void 0;\n                }\n                const zData = series.getColumn('z');\n                if (zData.length) {\n                    this.dataMin = Math.min(ZAxis_pick(this.dataMin, zData[0]), Math.min.apply(null, zData));\n                    this.dataMax = Math.max(ZAxis_pick(this.dataMax, zData[0]), Math.max.apply(null, zData));\n                }\n            }\n        });\n    }\n    /**\n     * @private\n     */\n    setAxisSize() {\n        const chart = this.chart;\n        super.setAxisSize();\n        this.width = this.len = (chart.options.chart.options3d &&\n            chart.options.chart.options3d.depth) || 0;\n        this.right = chart.chartWidth - this.width - this.left;\n    }\n}\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ const Axis_ZAxis = (ZAxis);\n\n;// ./code/es-modules/Series/Column3D/Column3DComposition.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\nconst { composed: Column3DComposition_composed } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { perspective: Column3DComposition_perspective } = Core_Math3D;\n\nconst { addEvent: Column3DComposition_addEvent, extend: Column3DComposition_extend, pick: Column3DComposition_pick, pushUnique: Column3DComposition_pushUnique, wrap: Column3DComposition_wrap } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n *  Functions\n *\n * */\n/** @private */\nfunction columnSeriesTranslate3dShapes() {\n    const series = this, chart = series.chart, seriesOptions = series.options, depth = seriesOptions.depth, stack = seriesOptions.stacking ?\n        (seriesOptions.stack || 0) :\n        series.index; // #4743\n    let z = stack * (depth + (seriesOptions.groupZPadding || 1)), borderCrisp = series.borderWidth % 2 ? 0.5 : 0, point2dPos; // Position of point in 2D, used for 3D position calculation\n    if (chart.inverted && !series.yAxis.reversed) {\n        borderCrisp *= -1;\n    }\n    if (seriesOptions.grouping !== false) {\n        z = 0;\n    }\n    z += (seriesOptions.groupZPadding || 1);\n    for (const point of series.points) {\n        // #7103 Reset outside3dPlot flag\n        point.outside3dPlot = null;\n        if (point.y !== null) {\n            const shapeArgs = Column3DComposition_extend({ x: 0, y: 0, width: 0, height: 0 }, point.shapeArgs || {}), \n            // Array for final shapeArgs calculation.\n            // We are checking two dimensions (x and y).\n            dimensions = [['x', 'width'], ['y', 'height']], tooltipPos = point.tooltipPos;\n            let borderlessBase; // Crisped rects can have +/- 0.5 pixels offset.\n            // #3131 We need to check if column is inside plotArea.\n            for (const d of dimensions) {\n                borderlessBase = shapeArgs[d[0]] - borderCrisp;\n                if (borderlessBase < 0) {\n                    // If borderLessBase is smaller than 0, it is needed to set\n                    // its value to 0 or 0.5 depending on borderWidth\n                    // borderWidth may be even or odd.\n                    shapeArgs[d[1]] += shapeArgs[d[0]] + borderCrisp;\n                    shapeArgs[d[0]] = -borderCrisp;\n                    borderlessBase = 0;\n                }\n                if ((borderlessBase + shapeArgs[d[1]] >\n                    series[d[0] + 'Axis'].len) &&\n                    // Do not change height/width of column if 0 (#6708)\n                    shapeArgs[d[1]] !== 0) {\n                    shapeArgs[d[1]] =\n                        series[d[0] + 'Axis'].len -\n                            shapeArgs[d[0]];\n                }\n                if (\n                // Do not remove columns with zero height/width.\n                shapeArgs[d[1]] !== 0 &&\n                    (shapeArgs[d[0]] >= series[d[0] + 'Axis'].len ||\n                        shapeArgs[d[0]] + shapeArgs[d[1]] <= borderCrisp)) {\n                    // Set args to 0 if column is outside the chart.\n                    for (const key in shapeArgs) { // eslint-disable-line guard-for-in\n                        // #13840\n                        shapeArgs[key] = key === 'y' ? -9999 : 0;\n                    }\n                    // #7103 outside3dPlot flag is set on Points which are\n                    // currently outside of plot.\n                    point.outside3dPlot = true;\n                }\n            }\n            // Change from 2d to 3d\n            if (point.shapeType === 'roundedRect') {\n                point.shapeType = 'cuboid';\n            }\n            point.shapeArgs = Column3DComposition_extend(shapeArgs, {\n                z,\n                depth,\n                insidePlotArea: true\n            });\n            // Point's position in 2D\n            point2dPos = {\n                x: shapeArgs.x + shapeArgs.width / 2,\n                y: shapeArgs.y,\n                z: z + depth / 2 // The center of column in Z dimension\n            };\n            // Recalculate point positions for inverted graphs\n            if (chart.inverted) {\n                point2dPos.x = shapeArgs.height;\n                point2dPos.y = point.clientX || 0;\n            }\n            // Crosshair positions\n            point.axisXpos = point2dPos.x;\n            point.axisYpos = point2dPos.y;\n            point.axisZpos = point2dPos.z;\n            // Calculate and store point's position in 3D,\n            // using perspective method.\n            point.plot3d = Column3DComposition_perspective([point2dPos], chart, true, false)[0];\n            // Translate the tooltip position in 3d space\n            if (tooltipPos) {\n                const translatedTTPos = Column3DComposition_perspective([{\n                        x: tooltipPos[0],\n                        y: tooltipPos[1],\n                        z: z + depth / 2 // The center of column in Z dimension\n                    }], chart, true, false)[0];\n                point.tooltipPos = [translatedTTPos.x, translatedTTPos.y];\n            }\n        }\n    }\n    // Store for later use #4067\n    series.z = z;\n}\n/** @private */\nfunction Column3DComposition_compose(SeriesClass, StackItemClass) {\n    if (Column3DComposition_pushUnique(Column3DComposition_composed, 'Column3D')) {\n        const seriesProto = SeriesClass.prototype, stackItemProto = StackItemClass.prototype, { column: ColumnSeriesClass, columnRange: ColumnRangeSeriesClass } = SeriesClass.types;\n        Column3DComposition_wrap(seriesProto, 'alignDataLabel', wrapSeriesAlignDataLabel);\n        Column3DComposition_wrap(seriesProto, 'justifyDataLabel', wrapSeriesJustifyDataLabel);\n        Column3DComposition_wrap(stackItemProto, 'getStackBox', wrapStackItemGetStackBox);\n        if (ColumnSeriesClass) {\n            const columnSeriesProto = ColumnSeriesClass.prototype, columnPointProto = columnSeriesProto.pointClass.prototype;\n            columnSeriesProto.translate3dPoints = () => void 0;\n            columnSeriesProto.translate3dShapes = columnSeriesTranslate3dShapes;\n            Column3DComposition_addEvent(columnSeriesProto, 'afterInit', onColumnSeriesAfterInit);\n            Column3DComposition_wrap(columnPointProto, 'hasNewShapeType', wrapColumnPointHasNewShapeType);\n            Column3DComposition_wrap(columnSeriesProto, 'animate', wrapColumnSeriesAnimate);\n            Column3DComposition_wrap(columnSeriesProto, 'plotGroup', wrapColumnSeriesPlotGroup);\n            Column3DComposition_wrap(columnSeriesProto, 'pointAttribs', wrapColumnSeriesPointAttribs);\n            Column3DComposition_wrap(columnSeriesProto, 'setState', wrapColumnSeriesSetState);\n            Column3DComposition_wrap(columnSeriesProto, 'setVisible', wrapColumnSeriesSetVisible);\n            Column3DComposition_wrap(columnSeriesProto, 'translate', wrapColumnSeriesTranslate);\n        }\n        if (ColumnRangeSeriesClass) {\n            const columnRangeSeriesProto = ColumnRangeSeriesClass.prototype, columnRangePointProto = columnRangeSeriesProto.pointClass.prototype;\n            Column3DComposition_wrap(columnRangePointProto, 'hasNewShapeType', wrapColumnPointHasNewShapeType);\n            Column3DComposition_wrap(columnRangeSeriesProto, 'plotGroup', wrapColumnSeriesPlotGroup);\n            Column3DComposition_wrap(columnRangeSeriesProto, 'pointAttribs', wrapColumnSeriesPointAttribs);\n            Column3DComposition_wrap(columnRangeSeriesProto, 'setState', wrapColumnSeriesSetState);\n            Column3DComposition_wrap(columnRangeSeriesProto, 'setVisible', wrapColumnSeriesSetVisible);\n        }\n    }\n}\n/**\n * @private\n * @param {Highcharts.Chart} chart\n * Chart with stacks\n * @param {string} stacking\n * Stacking option\n */\nfunction retrieveStacks(chart, stacking) {\n    const series = chart.series, stacks = { totalStacks: 0 };\n    let stackNumber, i = 1;\n    series.forEach(function (s) {\n        stackNumber = Column3DComposition_pick(s.options.stack, (stacking ? 0 : series.length - 1 - s.index)); // #3841, #4532\n        if (!stacks[stackNumber]) {\n            stacks[stackNumber] = { series: [s], position: i };\n            i++;\n        }\n        else {\n            stacks[stackNumber].series.push(s);\n        }\n    });\n    stacks.totalStacks = i + 1;\n    return stacks;\n}\n/** @private */\nfunction onColumnSeriesAfterInit() {\n    if (this.chart.is3d()) {\n        const series = this, seriesOptions = series.options, grouping = seriesOptions.grouping, stacking = seriesOptions.stacking, reversedStacks = series.yAxis.options.reversedStacks;\n        let z = 0;\n        // @todo grouping === true ?\n        if (!(typeof grouping !== 'undefined' && !grouping)) {\n            const stacks = retrieveStacks(this.chart, stacking), stack = seriesOptions.stack || 0;\n            let i; // Position within the stack\n            for (i = 0; i < stacks[stack].series.length; i++) {\n                if (stacks[stack].series[i] === this) {\n                    break;\n                }\n            }\n            z = (10 * (stacks.totalStacks - stacks[stack].position)) +\n                (reversedStacks ? i : -i); // #4369\n            // In case when axis is reversed, columns are also reversed inside\n            // the group (#3737)\n            if (!this.xAxis.reversed) {\n                z = (stacks.totalStacks * 10) - z;\n            }\n        }\n        seriesOptions.depth = seriesOptions.depth || 25;\n        series.z = series.z || 0;\n        seriesOptions.zIndex = z;\n    }\n}\n/**\n * In 3D mode, simple checking for a new shape to animate is not enough.\n * Additionally check if graphic is a group of elements\n * @private\n */\nfunction wrapColumnPointHasNewShapeType(proceed, ...args) {\n    return this.series.chart.is3d() ?\n        this.graphic && this.graphic.element.nodeName !== 'g' :\n        proceed.apply(this, args);\n}\n/** @private */\nfunction wrapColumnSeriesAnimate(proceed) {\n    if (!this.chart.is3d()) {\n        proceed.apply(this, [].slice.call(arguments, 1));\n    }\n    else {\n        const args = arguments, init = args[1], yAxis = this.yAxis, series = this, reversed = this.yAxis.reversed;\n        if (init) {\n            for (const point of series.points) {\n                if (point.y !== null) {\n                    point.height = point.shapeArgs.height;\n                    point.shapey = point.shapeArgs.y; // #2968\n                    point.shapeArgs.height = 1;\n                    if (!reversed) {\n                        if (point.stackY) {\n                            point.shapeArgs.y =\n                                point.plotY +\n                                    yAxis.translate(point.stackY);\n                        }\n                        else {\n                            point.shapeArgs.y =\n                                point.plotY +\n                                    (point.negative ?\n                                        -point.height :\n                                        point.height);\n                        }\n                    }\n                }\n            }\n        }\n        else { // Run the animation\n            for (const point of series.points) {\n                if (point.y !== null) {\n                    point.shapeArgs.height = point.height;\n                    point.shapeArgs.y = point.shapey; // #2968\n                    // null value do not have a graphic\n                    if (point.graphic) {\n                        point.graphic[point.outside3dPlot ?\n                            'attr' :\n                            'animate'](point.shapeArgs, series.options.animation);\n                    }\n                }\n            }\n            // Redraw datalabels to the correct position\n            this.drawDataLabels();\n        }\n    }\n}\n/**\n * In case of 3d columns there is no sense to add these columns to a specific\n * series group. If a series is added to a group all columns will have the same\n * zIndex in comparison to another series.\n * @private\n */\nfunction wrapColumnSeriesPlotGroup(proceed, prop, _name, _visibility, _zIndex, parent) {\n    if (prop !== 'dataLabelsGroup' && prop !== 'markerGroup') {\n        if (this.chart.is3d()) {\n            if (this[prop]) {\n                delete this[prop];\n            }\n            if (parent) {\n                if (!this.chart.columnGroup) {\n                    this.chart.columnGroup =\n                        this.chart.renderer.g('columnGroup').add(parent);\n                }\n                this[prop] = this.chart.columnGroup;\n                this.chart.columnGroup.attr(this.getPlotBox());\n                this[prop].survive = true;\n                if (prop === 'group') {\n                    arguments[3] = 'visible';\n                    // For 3D column group and markerGroup should be visible\n                }\n            }\n        }\n    }\n    return proceed.apply(this, Array.prototype.slice.call(arguments, 1));\n}\n/** @private */\nfunction wrapColumnSeriesPointAttribs(proceed) {\n    const attr = proceed.apply(this, [].slice.call(arguments, 1));\n    if (this.chart.is3d && this.chart.is3d()) {\n        // Set the fill color to the fill color to provide a smooth edge\n        attr.stroke = this.options.edgeColor || attr.fill;\n        attr['stroke-width'] = Column3DComposition_pick(this.options.edgeWidth, 1); // #4055\n    }\n    return attr;\n}\n/**\n * In 3D mode, all column-series are rendered in one main group. Because of that\n * we need to apply inactive state on all points.\n * @private\n */\nfunction wrapColumnSeriesSetState(proceed, state, inherit) {\n    const is3d = this.chart.is3d && this.chart.is3d();\n    if (is3d) {\n        this.options.inactiveOtherPoints = true;\n    }\n    proceed.call(this, state, inherit);\n    if (is3d) {\n        this.options.inactiveOtherPoints = false;\n    }\n}\n/**\n * When series is not added to group it is needed to change setVisible method to\n * allow correct Legend funcionality. This wrap is basing on pie chart series.\n * @private\n */\nfunction wrapColumnSeriesSetVisible(proceed, vis) {\n    const series = this;\n    if (series.chart.is3d()) {\n        for (const point of series.points) {\n            point.visible = point.options.visible = vis =\n                typeof vis === 'undefined' ?\n                    !Column3DComposition_pick(series.visible, point.visible) : vis;\n            series.options.data[series.data.indexOf(point)] =\n                point.options;\n            if (point.graphic) {\n                point.graphic.attr({\n                    visibility: vis ? 'visible' : 'hidden'\n                });\n            }\n        }\n    }\n    proceed.apply(this, Array.prototype.slice.call(arguments, 1));\n}\n/** @private */\nfunction wrapColumnSeriesTranslate(proceed) {\n    proceed.apply(this, [].slice.call(arguments, 1));\n    // Do not do this if the chart is not 3D\n    if (this.chart.is3d()) {\n        this.translate3dShapes();\n    }\n}\n/** @private */\nfunction wrapSeriesAlignDataLabel(proceed, point, _dataLabel, options, alignTo) {\n    const chart = this.chart;\n    // In 3D we need to pass point.outsidePlot option to the justifyDataLabel\n    // method for disabling justifying dataLabels in columns outside plot\n    options.outside3dPlot = point.outside3dPlot;\n    // Only do this for 3D columns and it's derived series\n    if (chart.is3d() &&\n        this.is('column')) {\n        const series = this, seriesOptions = series.options, inside = Column3DComposition_pick(options.inside, !!series.options.stacking), options3d = chart.options.chart.options3d, xOffset = point.pointWidth / 2 || 0;\n        let dLPosition = {\n            x: alignTo.x + xOffset,\n            y: alignTo.y,\n            z: series.z + seriesOptions.depth / 2\n        };\n        if (chart.inverted) {\n            // Inside dataLabels are positioned according to above\n            // logic and there is no need to position them using\n            // non-3D algorighm (that use alignTo.width)\n            if (inside) {\n                alignTo.width = 0;\n                dLPosition.x += point.shapeArgs.height / 2;\n            }\n            // When chart is upside down\n            // (alpha angle between 180 and 360 degrees)\n            // it is needed to add column width to calculated value.\n            if (options3d.alpha >= 90 && options3d.alpha <= 270) {\n                dLPosition.y += point.shapeArgs.width;\n            }\n        }\n        // `dLPosition` is recalculated for 3D graphs\n        dLPosition = Column3DComposition_perspective([dLPosition], chart, true, false)[0];\n        alignTo.x = dLPosition.x - xOffset;\n        // #7103 If point is outside of plotArea, hide data label.\n        alignTo.y = point.outside3dPlot ? -9e9 : dLPosition.y;\n    }\n    proceed.apply(this, [].slice.call(arguments, 1));\n}\n/**\n * Don't use justifyDataLabel when point is outsidePlot.\n * @private\n */\nfunction wrapSeriesJustifyDataLabel(proceed) {\n    return (!(arguments[2].outside3dPlot) ?\n        proceed.apply(this, [].slice.call(arguments, 1)) :\n        false);\n}\n/**\n * Added stackLabels position calculation for 3D charts.\n * @private\n */\nfunction wrapStackItemGetStackBox(proceed, stackBoxProps) {\n    const stackBox = proceed.apply(this, [].slice.call(arguments, 1));\n    // Only do this for 3D graph\n    const stackItem = this, chart = this.axis.chart, { width: xWidth } = stackBoxProps;\n    if (chart.is3d() && stackItem.base) {\n        // First element of stackItem.base is an index of base series.\n        const baseSeriesInd = +(stackItem.base).split(',')[0];\n        const columnSeries = chart.series[baseSeriesInd];\n        const options3d = chart.options.chart.options3d;\n        // Only do this if base series is a column or inherited type,\n        // use its barW, z and depth parameters\n        // for correct stackLabels position calculation\n        if (columnSeries &&\n            columnSeries.type === 'column') {\n            let dLPosition = {\n                x: stackBox.x + (chart.inverted ? stackBox.height : xWidth / 2),\n                y: stackBox.y,\n                z: columnSeries.options.depth / 2\n            };\n            if (chart.inverted) {\n                // Do not use default offset calculation logic\n                // for 3D inverted stackLabels.\n                stackBox.width = 0;\n                // When chart is upside down\n                // (alpha angle between 180 and 360 degrees)\n                // it is needed to add column width to calculated value.\n                if (options3d.alpha >= 90 && options3d.alpha <= 270) {\n                    dLPosition.y += xWidth;\n                }\n            }\n            dLPosition = Column3DComposition_perspective([dLPosition], chart, true, false)[0];\n            stackBox.x = dLPosition.x - xWidth / 2;\n            stackBox.y = dLPosition.y;\n        }\n    }\n    return stackBox;\n}\n/* *\n *\n *  Default Export\n *\n * */\nconst Column3DComposition = {\n    compose: Column3DComposition_compose\n};\n/* harmony default export */ const Column3D_Column3DComposition = (Column3DComposition);\n/* *\n *\n *  API Options\n *\n * */\n/**\n * Depth of the columns in a 3D column chart.\n *\n * @type      {number}\n * @default   25\n * @since     4.0\n * @product   highcharts\n * @requires  highcharts-3d\n * @apioption plotOptions.column.depth\n */\n/**\n * 3D columns only. The color of the edges. Similar to `borderColor`, except it\n * defaults to the same color as the column.\n *\n * @type      {Highcharts.ColorString}\n * @product   highcharts\n * @requires  highcharts-3d\n * @apioption plotOptions.column.edgeColor\n */\n/**\n * 3D columns only. The width of the colored edges.\n *\n * @type      {number}\n * @default   1\n * @product   highcharts\n * @requires  highcharts-3d\n * @apioption plotOptions.column.edgeWidth\n */\n/**\n * The spacing between columns on the Z Axis in a 3D chart.\n *\n * @type      {number}\n * @default   1\n * @since     4.0\n * @product   highcharts\n * @requires  highcharts-3d\n * @apioption plotOptions.column.groupZPadding\n */\n''; // Keeps doclets above in transpiled file\n\n;// ./code/es-modules/Series/Pie3D/Pie3DPoint.js\n/* *\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  3D pie series\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nconst { pie: { prototype: { pointClass: PiePoint } } } = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes;\n/* *\n *\n *  Class\n *\n * */\nclass Pie3DPoint extends PiePoint {\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /**\n     * @private\n     */\n    haloPath() {\n        return this.series?.chart.is3d() ?\n            [] : super.haloPath.apply(this, arguments);\n    }\n}\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ const Pie3D_Pie3DPoint = (Pie3DPoint);\n\n;// ./code/es-modules/Series/Pie3D/Pie3DSeries.js\n/* *\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  3D pie series\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nconst { composed: Pie3DSeries_composed, deg2rad: Pie3DSeries_deg2rad } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\n\nconst { pie: PieSeries } = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes;\n\nconst { extend: Pie3DSeries_extend, pick: Pie3DSeries_pick, pushUnique: Pie3DSeries_pushUnique } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n *  Class\n *\n * */\nclass Pie3DSeries extends PieSeries {\n    /* *\n     *\n     *  Static Functions\n     *\n     * */\n    static compose(SeriesClass) {\n        if (Pie3DSeries_pushUnique(Pie3DSeries_composed, 'Pie3D')) {\n            SeriesClass.types.pie = Pie3DSeries;\n        }\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /**\n     * @private\n     */\n    addPoint() {\n        super.addPoint.apply(this, arguments);\n        if (this.chart.is3d()) {\n            // Destroy (and rebuild) everything!!!\n            this.update(this.userOptions, true); // #3845 pass the old options\n        }\n    }\n    /**\n     * @private\n     */\n    animate(init) {\n        if (!this.chart.is3d()) {\n            super.animate.apply(this, arguments);\n        }\n        else {\n            const center = this.center, group = this.group, markerGroup = this.markerGroup;\n            let animation = this.options.animation, attribs;\n            if (animation === true) {\n                animation = {};\n            }\n            // Initialize the animation\n            if (init) {\n                // Scale down the group and place it in the center\n                group.oldtranslateX = Pie3DSeries_pick(group.oldtranslateX, group.translateX);\n                group.oldtranslateY = Pie3DSeries_pick(group.oldtranslateY, group.translateY);\n                attribs = {\n                    translateX: center[0],\n                    translateY: center[1],\n                    scaleX: 0.001, // #1499\n                    scaleY: 0.001\n                };\n                group.attr(attribs);\n                if (markerGroup) {\n                    markerGroup.attrSetters = group.attrSetters;\n                    markerGroup.attr(attribs);\n                }\n                // Run the animation\n            }\n            else {\n                attribs = {\n                    translateX: group.oldtranslateX,\n                    translateY: group.oldtranslateY,\n                    scaleX: 1,\n                    scaleY: 1\n                };\n                group.animate(attribs, animation);\n                if (markerGroup) {\n                    markerGroup.animate(attribs, animation);\n                }\n            }\n        }\n    }\n    /**\n     * @private\n     */\n    getDataLabelPosition(point, distance) {\n        const labelPosition = super.getDataLabelPosition(point, distance);\n        if (this.chart.is3d()) {\n            const options3d = this.chart.options.chart.options3d, shapeArgs = point.shapeArgs, r = shapeArgs.r, \n            // #3240 issue with datalabels for 0 and null values\n            a1 = ((shapeArgs.alpha || options3d?.alpha) *\n                Pie3DSeries_deg2rad), b1 = ((shapeArgs.beta || options3d?.beta) *\n                Pie3DSeries_deg2rad), a2 = (shapeArgs.start + shapeArgs.end) / 2, connectorPosition = labelPosition.connectorPosition, yOffset = (-r * (1 - Math.cos(a1)) * Math.sin(a2)), xOffset = r * (Math.cos(b1) - 1) * Math.cos(a2);\n            // Apply perspective on label positions\n            for (const coordinates of [\n                labelPosition?.natural,\n                connectorPosition.breakAt,\n                connectorPosition.touchingSliceAt\n            ]) {\n                coordinates.x += xOffset;\n                coordinates.y += yOffset;\n            }\n        }\n        return labelPosition;\n    }\n    /**\n     * @private\n     */\n    pointAttribs(point) {\n        const attr = super.pointAttribs.apply(this, arguments), options = this.options;\n        if (this.chart.is3d() && !this.chart.styledMode) {\n            attr.stroke = options.edgeColor || point.color || this.color;\n            attr['stroke-width'] = Pie3DSeries_pick(options.edgeWidth, 1);\n        }\n        return attr;\n    }\n    /**\n     * @private\n     */\n    translate() {\n        super.translate.apply(this, arguments);\n        // Do not do this if the chart is not 3D\n        if (!this.chart.is3d()) {\n            return;\n        }\n        const series = this, seriesOptions = series.options, depth = seriesOptions.depth || 0, options3d = series.chart.options.chart.options3d, alpha = options3d.alpha, beta = options3d.beta;\n        let z = seriesOptions.stacking ?\n            (seriesOptions.stack || 0) * depth :\n            series._i * depth;\n        z += depth / 2;\n        if (seriesOptions.grouping !== false) {\n            z = 0;\n        }\n        for (const point of series.points) {\n            const shapeArgs = point.shapeArgs;\n            point.shapeType = 'arc3d';\n            shapeArgs.z = z;\n            shapeArgs.depth = depth * 0.75;\n            shapeArgs.alpha = alpha;\n            shapeArgs.beta = beta;\n            shapeArgs.center = series.center;\n            const angle = (shapeArgs.end + shapeArgs.start) / 2;\n            point.slicedTranslation = {\n                translateX: Math.round(Math.cos(angle) *\n                    seriesOptions.slicedOffset *\n                    Math.cos(alpha * Pie3DSeries_deg2rad)),\n                translateY: Math.round(Math.sin(angle) *\n                    seriesOptions.slicedOffset *\n                    Math.cos(alpha * Pie3DSeries_deg2rad))\n            };\n        }\n    }\n    /**\n     * @private\n     */\n    drawTracker() {\n        super.drawTracker.apply(this, arguments);\n        // Do not do this if the chart is not 3D\n        if (!this.chart.is3d()) {\n            return;\n        }\n        for (const point of this.points) {\n            if (point.graphic) {\n                for (const face of ['out', 'inn', 'side1', 'side2']) {\n                    if (point.graphic) {\n                        point.graphic[face].element.point = point;\n                    }\n                }\n            }\n        }\n    }\n}\nPie3DSeries_extend(Pie3DSeries.prototype, {\n    pointClass: Pie3D_Pie3DPoint\n});\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ const Pie3D_Pie3DSeries = (Pie3DSeries);\n/* *\n *\n *  API Options\n *\n * */\n/**\n * The thickness of a 3D pie.\n *\n * @type      {number}\n * @default   0\n * @since     4.0\n * @product   highcharts\n * @requires  highcharts-3d\n * @apioption plotOptions.pie.depth\n */\n''; // Keeps doclets above after transpiledion\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Series\",\"types\",\"scatter\"],\"commonjs\":[\"highcharts\",\"Series\",\"types\",\"scatter\"],\"commonjs2\":[\"highcharts\",\"Series\",\"types\",\"scatter\"],\"root\":[\"Highcharts\",\"Series\",\"types\",\"scatter\"]}\nvar highcharts_Series_types_scatter_commonjs_highcharts_Series_types_scatter_commonjs2_highcharts_Series_types_scatter_root_Highcharts_Series_types_scatter_ = __webpack_require__(632);\nvar highcharts_Series_types_scatter_commonjs_highcharts_Series_types_scatter_commonjs2_highcharts_Series_types_scatter_root_Highcharts_Series_types_scatter_default = /*#__PURE__*/__webpack_require__.n(highcharts_Series_types_scatter_commonjs_highcharts_Series_types_scatter_commonjs2_highcharts_Series_types_scatter_root_Highcharts_Series_types_scatter_);\n;// ./code/es-modules/Series/Scatter3D/Scatter3DPoint.js\n/* *\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  Scatter 3D series.\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nconst { pointClass: ScatterPoint } = (highcharts_Series_types_scatter_commonjs_highcharts_Series_types_scatter_commonjs2_highcharts_Series_types_scatter_root_Highcharts_Series_types_scatter_default()).prototype;\n\nconst { defined: Scatter3DPoint_defined } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n *  Class\n *\n * */\nclass Scatter3DPoint extends ScatterPoint {\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    applyOptions() {\n        super.applyOptions.apply(this, arguments);\n        if (!Scatter3DPoint_defined(this.z)) {\n            this.z = 0;\n        }\n        return this;\n    }\n}\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ const Scatter3D_Scatter3DPoint = (Scatter3DPoint);\n\n;// ./code/es-modules/Series/Scatter3D/Scatter3DSeriesDefaults.js\n/* *\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  Scatter 3D series.\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A 3D scatter plot uses x, y and z coordinates to display values for three\n * variables for a set of data.\n *\n * @sample {highcharts} highcharts/3d/scatter/\n *         Simple 3D scatter\n * @sample {highcharts} highcharts/demo/3d-scatter-draggable\n *         Draggable 3d scatter\n *\n * @extends      plotOptions.scatter\n * @excluding    boostThreshold, boostBlending, cluster, dragDrop,\n *               legendSymbolColor\n * @product      highcharts\n * @requires     highcharts-3d\n * @optionparent plotOptions.scatter3d\n */\nconst Scatter3DSeriesDefaults = {\n    tooltip: {\n        pointFormat: 'x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>z: <b>{point.z}</b><br/>'\n    }\n};\n/**\n * A `scatter3d` series. If the [type](#series.scatter3d.type) option is\n * not specified, it is inherited from [chart.type](#chart.type).\n *\n * scatter3d](#plotOptions.scatter3d).\n *\n * @extends   series,plotOptions.scatter3d\n * @excluding boostThreshold, boostBlending\n * @product   highcharts\n * @requires  highcharts-3d\n * @apioption series.scatter3d\n */\n/**\n * An array of data points for the series. For the `scatter3d` series\n * type, points can be given in the following ways:\n *\n * 1.  An array of arrays with 3 values. In this case, the values correspond\n * to `x,y,z`. If the first value is a string, it is applied as the name\n * of the point, and the `x` value is inferred.\n *\n *  ```js\n *     data: [\n *         [0, 0, 1],\n *         [1, 8, 7],\n *         [2, 9, 2]\n *     ]\n *  ```\n *\n * 3.  An array of objects with named values. The following snippet shows only a\n * few settings, see the complete options set below. If the total number of data\n * points exceeds the series'\n * [turboThreshold](#series.scatter3d.turboThreshold), this option is not\n * available.\n *\n *  ```js\n *     data: [{\n *         x: 1,\n *         y: 2,\n *         z: 24,\n *         name: \"Point2\",\n *         color: \"#00FF00\"\n *     }, {\n *         x: 1,\n *         y: 4,\n *         z: 12,\n *         name: \"Point1\",\n *         color: \"#FF00FF\"\n *     }]\n *  ```\n *\n * @sample {highcharts} highcharts/chart/reflow-true/\n *         Numerical values\n * @sample {highcharts} highcharts/series/data-array-of-arrays/\n *         Arrays of numeric x and y\n * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/\n *         Arrays of datetime x and y\n * @sample {highcharts} highcharts/series/data-array-of-name-value/\n *         Arrays of point.name and y\n * @sample {highcharts} highcharts/series/data-array-of-objects/\n *         Config objects\n *\n * @type      {Array<Array<number>|*>}\n * @extends   series.scatter.data\n * @product   highcharts\n * @apioption series.scatter3d.data\n */\n/**\n * The z value for each data point.\n *\n * @type      {number}\n * @product   highcharts\n * @apioption series.scatter3d.data.z\n */\n''; // Detachs doclets above\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ const Scatter3D_Scatter3DSeriesDefaults = (Scatter3DSeriesDefaults);\n\n;// ./code/es-modules/Series/Scatter3D/Scatter3DSeries.js\n/* *\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  Scatter 3D series.\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nconst { pointCameraDistance: Scatter3DSeries_pointCameraDistance } = Core_Math3D;\n\n\n\n\n\nconst { extend: Scatter3DSeries_extend, merge: Scatter3DSeries_merge } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n *  Class\n *\n * */\n/**\n * @private\n * @class\n * @name Highcharts.seriesTypes.scatter3d\n *\n * @augments Highcharts.Series\n */\nclass Scatter3DSeries extends (highcharts_Series_types_scatter_commonjs_highcharts_Series_types_scatter_commonjs2_highcharts_Series_types_scatter_root_Highcharts_Series_types_scatter_default()) {\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    pointAttribs(point) {\n        const attribs = super.pointAttribs.apply(this, arguments);\n        if (this.chart.is3d() && point) {\n            attribs.zIndex =\n                Scatter3DSeries_pointCameraDistance(point, this.chart);\n        }\n        return attribs;\n    }\n}\n/* *\n *\n *  Static Properties\n *\n * */\nScatter3DSeries.defaultOptions = Scatter3DSeries_merge((highcharts_Series_types_scatter_commonjs_highcharts_Series_types_scatter_commonjs2_highcharts_Series_types_scatter_root_Highcharts_Series_types_scatter_default()).defaultOptions, Scatter3D_Scatter3DSeriesDefaults);\nScatter3DSeries_extend(Scatter3DSeries.prototype, {\n    axisTypes: ['xAxis', 'yAxis', 'zAxis'],\n    // Require direct touch rather than using the k-d-tree, because the\n    // k-d-tree currently doesn't take the xyz coordinate system into\n    // account (#4552)\n    directTouch: true,\n    parallelArrays: ['x', 'y', 'z'],\n    pointArrayMap: ['x', 'y', 'z'],\n    pointClass: Scatter3D_Scatter3DPoint\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('scatter3d', Scatter3DSeries);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ const Scatter3D_Scatter3DSeries = ((/* unused pure expression or super */ null && (Scatter3DSeries)));\n\n;// ./code/es-modules/masters/highcharts-3d.src.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n// Compositions\nArea3D_Area3DSeries.compose(G.seriesTypes.area);\nAxis3DComposition.compose(G.Axis, G.Tick);\nChart_Chart3D.compose(G.Chart, G.Fx);\nColumn3D_Column3DComposition.compose(G.Series, (highcharts_StackItem_commonjs_highcharts_StackItem_commonjs2_highcharts_StackItem_root_Highcharts_StackItem_default()));\nPie3D_Pie3DSeries.compose(G.Series);\nSeries_Series3D.compose(G.Series);\nSVG_SVGRenderer3D.compose(highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_default().getRendererType());\nAxis_ZAxis.compose(G.Chart);\n/* harmony default export */ const highcharts_3d_src = (G);\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"],"names":["root","factory","exports","module","define","amd","amd1","window","__WEBPACK_EXTERNAL_MODULE__944__","__WEBPACK_EXTERNAL_MODULE__620__","__WEBPACK_EXTERNAL_MODULE__512__","__WEBPACK_EXTERNAL_MODULE__608__","__WEBPACK_EXTERNAL_MODULE__820__","__WEBPACK_EXTERNAL_MODULE__184__","__WEBPACK_EXTERNAL_MODULE__532__","__WEBPACK_EXTERNAL_MODULE__632__","Chart3D","SVGRenderer3D","__webpack_modules__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","__webpack_exports__","highcharts_3d_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default","deg2rad","pick","perspective","points","chart","insidePlotArea","useInvertedPersp","options3d","options","inverted","origin","x","plotWidth","y","plotHeight","z","depth","vd","viewDistance","scale","scale3d","beta","alpha","angles","cosA","Math","cos","cosB","sinA","sin","sinB","plotLeft","plotTop","map","point","rotated","coordinate","perspective3D","distance","projection","Number","POSITIVE_INFINITY","shapeArea","vertexes","area","i","j","length","Core_Math3D","pointCameraDistance","coordinates","cameraPosition","sqrt","pow","plotX","plotY","plotZ","shapeArea3D","parse","color","defaultOptions","genericDefaultOptions","Chart3D_perspective","Chart3D_shapeArea3D","addEvent","isArray","merge","Chart3D_pick","wrap","onAddSeries","e","is3d","type","onAfterDrawChartBox","chart3d","renderer","frame","get3dFrame","xm","xp","ym","yp","zp","xmm","left","visible","size","xpp","right","ymm","top","ypp","bottom","zmm","zm","front","zpp","back","verb","hasRendered","frame3d","frameShapes","polyhedron","add","zIndex","frontFacing","faces","fill","brighten","enabled","onAfterGetContainer","styledMode","name","slope","forEach","cfg","tagName","attributes","id","children","onAfterInit","series","s","defaultSeriesType","onAfterSetChartSize","clipBox","margin","chartWidth","chartHeight","fitToPlot","getScale","onBeforeRedraw","isDirtyBox","onBeforeRender","onInit","Additions","wrapIsInsidePlot","proceed","apply","slice","arguments","wrapRenderSeries","translate","render","wrapSetClassName","container","className","axisLabelPosition","compose","ChartClass","FxClass","chartProto","fxProto","propsRequireDirtyBox","push","propsRequireUpdateSeries","matrixSetter","interpolated","pos","start","end","elem","attr","constructor","frameOptions","faceOrientation","bottomOrientation","topOrientation","leftOrientation","rightOrientation","frontOrientation","backOrientation","defaultShowBottom","defaultShowTop","defaultShowLeft","defaultShowRight","concat","xAxis","yAxis","zAxis","axis","horiz","opposite","getFaceOptions","sources","defaultVisible","faceAttrs","val","isVisible","ret","axes","side","isValidEdge","face1","face2","yEdges","xDir","xBottomEdges","xTopEdges","zBottomEdges","zTopEdges","pickEdge","edges","mult","projections","best","plotRight","plotBottom","originX","originY","bbox3d","minX","MAX_VALUE","maxX","minY","maxY","corners","corner","min","max","abs","Chart_Chart3D","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default","composed","Area3DSeries_perspective","line","lineProto","seriesTypes","pushUnique","Area3DSeries_wrap","wrapAreaSeriesGetGraphPath","svgPath","getGraphPath","translatedThreshold","round","getThreshold","threshold","bottomPoints","rawPointsX","stacking","yBottom","zPadding","group","markerGroup","translateX","translateY","reversed","bottomPath","areaPath","splice","xMap","graphPath","Axis_Axis3DDefaults","labels","position3d","skew3d","title","Tick3DComposition_composed","Tick3DComposition_addEvent","extend","Tick3DComposition_pushUnique","Tick3DComposition_wrap","onTickAfterGetLabelPosition","axis3D","fix3dPosition","wrapTickGetMarkPath","path","pArr","toLineSegments","Tick3DComposition","TickClass","Axis3DComposition_deg2rad","Axis3DComposition_perspective","Axis3DComposition_perspective3D","Axis3DComposition_shapeArea","Axis3DComposition_addEvent","Axis3DComposition_merge","Axis3DComposition_pick","Axis3DComposition_wrap","onAxisAfterSetOptions","coll","tickWidth","gridLineWidth","onAxisDrawCrosshair","crosshairPos","isXAxis","axisXpos","len","axisYpos","onAxisInit","Axis3DAdditions","wrapAxisGetLinePath","wrapAxisGetPlotBandPath","args","from","to","fromPath","getPlotLinePath","value","toPath","fromStartSeg","fromEndSeg","toStartSeg","toEndSeg","wrapAxisGetPlotLinePath","isZAxis","startSegment","endSegment","pathSegments","swapZ","wrapAxisGetSlotWidth","tick","gridGroup","tickPositions","ticks","categories","label","labelPos","prevLabelPos","nextLabelPos","firstGridLine","element","childNodes","getBBox","frame3DLeft","index","indexOf","prevTick","nextTick","xy","wrapAxisGetTitlePosition","AxisClass","keepProps","includes","axisProto","isTitle","positionMode","skew","offsetX","offsetY","vecX","vecY","reverseFlap","sina","cosa","vecZ","sinb","projected","pointsProjected","matrix","p","highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_","highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_default","highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_","highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default","Series3D_composed","Series3D_perspective","Series3D_addEvent","Series3D_extend","isNumber","Series3D_merge","Series3D_pick","Series3D_pushUnique","Series3D","SeriesClass","translate3dPoints","projectedPoint","zValue","seriesOptions","rawPoints","stack","groupZPadding","data","rawPoint","logarithmic","val2lin","isInside","axisZpos","projectedPoints","highcharts_StackItem_commonjs_highcharts_StackItem_commonjs2_highcharts_StackItem_root_Highcharts_StackItem_","highcharts_StackItem_commonjs_highcharts_StackItem_commonjs2_highcharts_StackItem_root_Highcharts_StackItem_default","SVGElement3D_color","Element","SVGElement","getRendererType","defined","SVGElement3D_pick","SVGElement3D","parts","pathType","initArgs","elem3d","paths","zIndexes","part","attribs","filter","forcedSides","singleSetterForParts","values","duration","complete","newAttr","optionsToApply","hasZIndexes","keys","processParts","props","partsProps","destroy","continueAnimation","shapeArgs","animate","fillSetter","types","base","cuboid","animObject","SVGRenderer3D_color","charts","SVGRenderer3D_deg2rad","SVGRenderer3D_perspective","SVGRenderer3D_shapeArea","SVGRenderer3D_defined","SVGRenderer3D_extend","SVGRenderer3D_merge","SVGRenderer3D_pick","PI","dFactor","curveTo","cx","cy","rx","ry","dx","dy","arcAngle","result","toLinePath","closed","m","face3d","elementProto","createElement","hash","chartIndex","vertexes2d","visibility","params","g","pop","element3d","SVG_SVGElement3D","cuboidPath","h","height","w","width","shape","mapSidePath","mapPath","pickShape","verticesIndex1","verticesIndex2","dummyFace1","dummyFace2","path1","isFront","path2","isTop","path3","isRight","incrementX","incrementY","incrementZ","arc3d","wrapper","customAttribs","extractCustom","ca","fn","side1","side2","inn","out","onAdd","parent","parentGroup","face","setter","setPaths","arc3dPath","zTop","zInn","zOut","zSide1","zSide2","center","setRadialReference","darker","el","paramArr","animation","randomProp","random","toString","substring","anim","globalAnimation","noop","interpolate","step","fx","r","innerR","hide","show","inherit","ir","cs","ss","ce","se","irx","iry","b","start2","end2","midEnd","angleCorr","atan2","angleEnd","angleStart","angleMid","toZeroPIRange","angle","a1","a2","a3","SVGRendererClass","rendererProto","Element3D","SVG_SVGRenderer3D","highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_","highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_default","ZAxis_defaultOptions","ZAxis_addEvent","ZAxis_merge","ZAxis_pick","splat","chartAddZAxis","ZAxis","onChartAfterCreateAxes","zAxisOptions","axisOptions","addZAxis","setScale","offset","lineWidth","collectionsWithInit","collectionsWithUpdate","init","userOptions","getSeriesExtremes","hasVisibleSeries","dataMin","dataMax","ignoreMinPadding","ignoreMaxPadding","buildStacks","reserveSpace","positiveValuesOnly","zData","getColumn","setAxisSize","Column3DComposition_composed","Column3DComposition_perspective","Column3DComposition_addEvent","Column3DComposition_extend","Column3DComposition_pick","Column3DComposition_pushUnique","Column3DComposition_wrap","columnSeriesTranslate3dShapes","borderCrisp","borderWidth","point2dPos","grouping","outside3dPlot","borderlessBase","dimensions","tooltipPos","shapeType","clientX","plot3d","translatedTTPos","onColumnSeriesAfterInit","reversedStacks","stacks","retrieveStacks","totalStacks","stackNumber","position","wrapColumnPointHasNewShapeType","graphic","nodeName","wrapColumnSeriesAnimate","shapey","stackY","negative","drawDataLabels","wrapColumnSeriesPlotGroup","_name","_visibility","_zIndex","columnGroup","getPlotBox","survive","Array","wrapColumnSeriesPointAttribs","stroke","edgeColor","edgeWidth","wrapColumnSeriesSetState","state","inactiveOtherPoints","wrapColumnSeriesSetVisible","vis","wrapColumnSeriesTranslate","translate3dShapes","wrapSeriesAlignDataLabel","_dataLabel","alignTo","is","inside","xOffset","pointWidth","dLPosition","wrapSeriesJustifyDataLabel","wrapStackItemGetStackBox","stackBoxProps","stackBox","xWidth","stackItem","baseSeriesInd","split","columnSeries","pie","pointClass","PiePoint","Pie3D_Pie3DPoint","haloPath","Pie3DSeries_composed","Pie3DSeries_deg2rad","PieSeries","Pie3DSeries_extend","Pie3DSeries_pick","Pie3DSeries_pushUnique","Pie3DSeries","addPoint","update","oldtranslateX","oldtranslateY","scaleX","scaleY","attrSetters","getDataLabelPosition","labelPosition","b1","connectorPosition","yOffset","natural","breakAt","touchingSliceAt","pointAttribs","_i","slicedTranslation","slicedOffset","drawTracker","highcharts_Series_types_scatter_commonjs_highcharts_Series_types_scatter_commonjs2_highcharts_Series_types_scatter_root_Highcharts_Series_types_scatter_","highcharts_Series_types_scatter_commonjs_highcharts_Series_types_scatter_commonjs2_highcharts_Series_types_scatter_root_Highcharts_Series_types_scatter_default","ScatterPoint","Scatter3DPoint_defined","Scatter3D_Scatter3DPoint","applyOptions","Scatter3DSeries_pointCameraDistance","Scatter3DSeries_extend","Scatter3DSeries_merge","Scatter3DSeries","tooltip","pointFormat","axisTypes","directTouch","parallelArrays","pointArrayMap","registerSeriesType","G","Area3D_Area3DSeries","AreaSeriesClass","Axis3DComposition","Axis","Tick","Chart","Fx","Column3D_Column3DComposition","StackItemClass","seriesProto","stackItemProto","column","ColumnSeriesClass","columnRange","ColumnRangeSeriesClass","columnSeriesProto","columnPointProto","columnRangeSeriesProto","Series","Pie3D_Pie3DSeries","Series_Series3D","Axis_ZAxis"],"mappings":"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"}

Hacked By AnonymousFox1.0, Coded By AnonymousFox