Hacked By AnonymousFox

Current Path : C:/AppServ/www/financial/stacked/code/es5/modules/
Upload File :
Current File : C:/AppServ/www/financial/stacked/code/es5/modules/funnel.js.map

{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highcharts JS v12.1.2 (2025-01-09)\n * @module highcharts/modules/funnel\n * @requires highcharts\n *\n * Highcharts funnel module\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"highcharts\"), require(\"highcharts\")[\"SeriesRegistry\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/modules/funnel\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"SeriesRegistry\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/modules/funnel\"] = factory(require(\"highcharts\"), require(\"highcharts\")[\"SeriesRegistry\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"SeriesRegistry\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__512__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 512:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__512__;\n\n/***/ }),\n\n/***/ 944:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__944__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"default\": function() { return /* binding */ funnel_src; }\n});\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\"],\"commonjs\":[\"highcharts\"],\"commonjs2\":[\"highcharts\"],\"root\":[\"Highcharts\"]}\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_ = __webpack_require__(944);\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default = /*#__PURE__*/__webpack_require__.n(highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_);\n;// ./code/es5/es-modules/Series/Funnel/FunnelSeriesDefaults.js\n/* *\n *\n *  Highcharts funnel module\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n *  API Options\n *\n * */\n/**\n * Funnel charts are a type of chart often used to visualize stages in a\n * sales project, where the top are the initial stages with the most\n * clients. It requires that the modules/funnel.js file is loaded.\n *\n * @sample highcharts/demo/funnel/\n *         Funnel demo\n *\n * @extends      plotOptions.pie\n * @excluding    innerSize,size,dataSorting\n * @product      highcharts\n * @requires     modules/funnel\n * @optionparent plotOptions.funnel\n */\nvar FunnelSeriesDefaults = {\n    /**\n     * Initial animation is by default disabled for the funnel chart.\n     */\n    animation: false,\n    /**\n     * The corner radius of the border surrounding all points or series. A\n     * number signifies pixels. A percentage string, like for example `50%`,\n     * signifies a size relative to the series width.\n     *\n     * @sample highcharts/plotoptions/funnel-border-radius\n     *         Funnel and pyramid with rounded border\n     */\n    borderRadius: 0,\n    /**\n     * The center of the series. By default, it is centered in the middle\n     * of the plot area, so it fills the plot area height.\n     *\n     * @type    {Array<number|string>}\n     * @default [\"50%\", \"50%\"]\n     * @since   3.0\n     */\n    center: ['50%', '50%'],\n    /**\n     * The width of the funnel compared to the width of the plot area,\n     * or the pixel width if it is a number.\n     *\n     * @type  {number|string}\n     * @since 3.0\n     */\n    width: '90%',\n    /**\n     * The width of the neck, the lower part of the funnel. A number defines\n     * pixel width, a percentage string defines a percentage of the plot\n     * area width.\n     *\n     * @sample {highcharts} highcharts/demo/funnel/\n     *         Funnel demo\n     *\n     * @type  {number|string}\n     * @since 3.0\n     */\n    neckWidth: '30%',\n    /**\n     * The height of the funnel or pyramid. If it is a number it defines\n     * the pixel height, if it is a percentage string it is the percentage\n     * of the plot area height.\n     *\n     * @sample {highcharts} highcharts/demo/funnel/\n     *         Funnel demo\n     *\n     * @type  {number|string}\n     * @since 3.0\n     */\n    height: '100%',\n    /**\n     * The height of the neck, the lower part of the funnel. A number\n     * defines pixel width, a percentage string defines a percentage of the\n     * plot area height.\n     *\n     * @type {number|string}\n     */\n    neckHeight: '25%',\n    /**\n     * A reversed funnel has the widest area down. A reversed funnel with\n     * no neck width and neck height is a pyramid.\n     *\n     * @since 3.0.10\n     */\n    reversed: false,\n    /**\n     * To avoid adapting the data label size in Pie.drawDataLabels.\n     * @ignore-option\n     */\n    size: true,\n    dataLabels: {\n        connectorWidth: 1,\n        verticalAlign: 'middle'\n    },\n    /**\n     * Options for the series states.\n     */\n    states: {\n        /**\n         * @excluding halo, marker, lineWidth, lineWidthPlus\n         * @apioption plotOptions.funnel.states.hover\n         */\n        /**\n         * Options for a selected funnel item.\n         *\n         * @excluding halo, marker, lineWidth, lineWidthPlus\n         */\n        select: {\n            /**\n             * A specific color for the selected point.\n             *\n             * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n             */\n            color: \"#cccccc\" /* Palette.neutralColor20 */,\n            /**\n             * A specific border color for the selected point.\n             *\n             * @type {Highcharts.ColorString}\n             */\n            borderColor: \"#000000\" /* Palette.neutralColor100 */\n        }\n    }\n};\n/**\n * A `funnel` series. If the [type](#series.funnel.type) option is\n * not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.funnel\n * @excluding dataParser, dataURL, stack, xAxis, yAxis, dataSorting,\n *            boostBlending, boostThreshold\n * @product   highcharts\n * @requires  modules/funnel\n * @apioption series.funnel\n */\n/**\n * An array of data points for the series. For the `funnel` series type,\n * points can be given in the following ways:\n *\n * 1.  An array of numerical values. In this case, the numerical values\n * will be interpreted as `y` options. Example:\n *\n *  ```js\n *  data: [0, 5, 3, 5]\n *  ```\n *\n * 2.  An array of objects with named values. The following snippet shows only a\n * few settings, see the complete options set below. If the total number of data\n * points exceeds the series' [turboThreshold](#series.funnel.turboThreshold),\n * this option is not available.\n *\n *  ```js\n *     data: [{\n *         y: 3,\n *         name: \"Point2\",\n *         color: \"#00FF00\"\n *     }, {\n *         y: 1,\n *         name: \"Point1\",\n *         color: \"#FF00FF\"\n *     }]\n *  ```\n *\n * @sample {highcharts} highcharts/chart/reflow-true/\n *         Numerical values\n * @sample {highcharts} highcharts/series/data-array-of-arrays/\n *         Arrays of numeric x and y\n * @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/\n *         Arrays of datetime x and y\n * @sample {highcharts} highcharts/series/data-array-of-name-value/\n *         Arrays of point.name and y\n * @sample {highcharts} highcharts/series/data-array-of-objects/\n *         Config objects\n *\n * @type      {Array<number|null|*>}\n * @extends   series.pie.data\n * @excluding sliced\n * @product   highcharts\n * @apioption series.funnel.data\n */\n''; // Keeps doclets above separate\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var Funnel_FunnelSeriesDefaults = (FunnelSeriesDefaults);\n\n;// ./code/es5/es-modules/Extensions/BorderRadius.js\n/* *\n *\n *  Highcharts Border Radius module\n *\n *  Author: Torstein Honsi\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\n\nvar defaultOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defaultOptions;\n\nvar noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\nvar addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, isObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isObject, merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, relativeLength = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).relativeLength;\n/* *\n *\n *  Constants\n *\n * */\nvar defaultBorderRadiusOptions = {\n    radius: 0,\n    scope: 'stack',\n    where: void 0\n};\n/* *\n *\n *  Variables\n *\n * */\nvar oldArc = noop;\nvar oldRoundedRect = noop;\n/* *\n *\n *  Functions\n *\n * */\n/**\n * @private\n */\nfunction applyBorderRadius(path, i, r) {\n    var a = path[i];\n    var b = path[i + 1];\n    if (b[0] === 'Z') {\n        b = path[0];\n    }\n    var line,\n        arc,\n        fromLineToArc;\n    // From straight line to arc\n    if ((a[0] === 'M' || a[0] === 'L') && b[0] === 'A') {\n        line = a;\n        arc = b;\n        fromLineToArc = true;\n        // From arc to straight line\n    }\n    else if (a[0] === 'A' && (b[0] === 'M' || b[0] === 'L')) {\n        line = b;\n        arc = a;\n    }\n    if (line && arc && arc.params) {\n        var bigR = arc[1], \n            // In our use cases, outer pie slice arcs are clockwise and inner\n            // arcs (donut/sunburst etc) are anti-clockwise\n            clockwise = arc[5], params = arc.params, start = params.start, end = params.end, cx = params.cx, cy = params.cy;\n        // Some geometric constants\n        var relativeR = clockwise ? (bigR - r) : (bigR + r), \n            // The angle, on the big arc, that the border radius arc takes up\n            angleOfBorderRadius = relativeR ? Math.asin(r / relativeR) : 0,\n            angleOffset = clockwise ?\n                angleOfBorderRadius :\n                -angleOfBorderRadius, \n            // The distance along the radius of the big arc to the starting\n            // point of the small border radius arc\n            distanceBigCenterToStartArc = (Math.cos(angleOfBorderRadius) *\n                relativeR);\n        // From line to arc\n        if (fromLineToArc) {\n            // Update the cache\n            params.start = start + angleOffset;\n            // First move to the start position at the radial line. We want to\n            // start one borderRadius closer to the center.\n            line[1] = cx + distanceBigCenterToStartArc * Math.cos(start);\n            line[2] = cy + distanceBigCenterToStartArc * Math.sin(start);\n            // Now draw an arc towards the point where the small circle touches\n            // the great circle.\n            path.splice(i + 1, 0, [\n                'A',\n                r,\n                r,\n                0, // Slanting,\n                0, // Long arc\n                1, // Clockwise\n                cx + bigR * Math.cos(params.start),\n                cy + bigR * Math.sin(params.start)\n            ]);\n            // From arc to line\n        }\n        else {\n            // Update the cache\n            params.end = end - angleOffset;\n            // End the big arc a bit earlier\n            arc[6] = cx + bigR * Math.cos(params.end);\n            arc[7] = cy + bigR * Math.sin(params.end);\n            // Draw a small arc towards a point on the end angle, but one\n            // borderRadius closer to the center relative to the perimeter.\n            path.splice(i + 1, 0, [\n                'A',\n                r,\n                r,\n                0,\n                0,\n                1,\n                cx + distanceBigCenterToStartArc * Math.cos(end),\n                cy + distanceBigCenterToStartArc * Math.sin(end)\n            ]);\n        }\n        // Long or short arc must be reconsidered because we have modified the\n        // start and end points\n        arc[4] = Math.abs(params.end - params.start) < Math.PI ? 0 : 1;\n    }\n}\n/**\n * Extend arc with borderRadius.\n * @private\n */\nfunction arc(x, y, w, h, options) {\n    if (options === void 0) { options = {}; }\n    var path = oldArc(x,\n        y,\n        w,\n        h,\n        options),\n        _a = options.innerR,\n        innerR = _a === void 0 ? 0 : _a,\n        _b = options.r,\n        r = _b === void 0 ? w : _b,\n        _c = options.start,\n        start = _c === void 0 ? 0 : _c,\n        _d = options.end,\n        end = _d === void 0 ? 0 : _d;\n    if (options.open || !options.borderRadius) {\n        return path;\n    }\n    var alpha = end - start,\n        sinHalfAlpha = Math.sin(alpha / 2),\n        borderRadius = Math.max(Math.min(relativeLength(options.borderRadius || 0,\n        r - innerR), \n        // Cap to half the sector radius\n        (r - innerR) / 2, \n        // For smaller pie slices, cap to the largest small circle that\n        // can be fitted within the sector\n        (r * sinHalfAlpha) / (1 + sinHalfAlpha)), 0), \n        // For the inner radius, we need an extra cap because the inner arc\n        // is shorter than the outer arc\n        innerBorderRadius = Math.min(borderRadius, 2 * (alpha / Math.PI) * innerR);\n    // Apply turn-by-turn border radius. Start at the end since we're\n    // splicing in arc segments.\n    var i = path.length - 1;\n    while (i--) {\n        applyBorderRadius(path, i, i > 1 ? innerBorderRadius : borderRadius);\n    }\n    return path;\n}\n/** @private */\nfunction seriesOnAfterColumnTranslate() {\n    var _a,\n        _b;\n    if (this.options.borderRadius &&\n        !(this.chart.is3d && this.chart.is3d())) {\n        var _c = this,\n            options = _c.options,\n            yAxis = _c.yAxis,\n            percent = options.stacking === 'percent',\n            seriesDefault = (_b = (_a = defaultOptions.plotOptions) === null || _a === void 0 ? void 0 : _a[this.type]) === null || _b === void 0 ? void 0 : _b.borderRadius,\n            borderRadius = optionsToObject(options.borderRadius,\n            isObject(seriesDefault) ? seriesDefault : {}),\n            reversed = yAxis.options.reversed;\n        for (var _i = 0, _d = this.points; _i < _d.length; _i++) {\n            var point = _d[_i];\n            var shapeArgs = point.shapeArgs;\n            if (point.shapeType === 'roundedRect' && shapeArgs) {\n                var _e = shapeArgs.width,\n                    width = _e === void 0 ? 0 : _e,\n                    _f = shapeArgs.height,\n                    height = _f === void 0 ? 0 : _f,\n                    _g = shapeArgs.y,\n                    y = _g === void 0 ? 0 : _g;\n                var brBoxY = y,\n                    brBoxHeight = height;\n                // It would be nice to refactor StackItem.getStackBox/\n                // setOffset so that we could get a reliable box out of\n                // it. Currently it is close if we remove the label\n                // offset, but we still need to run crispCol and also\n                // flip it if inverted, so atm it is simpler to do it\n                // like the below.\n                if (borderRadius.scope === 'stack' &&\n                    point.stackTotal) {\n                    var stackEnd = yAxis.translate(percent ? 100 : point.stackTotal,\n                        false,\n                        true,\n                        false,\n                        true),\n                        stackThreshold = yAxis.translate(options.threshold || 0,\n                        false,\n                        true,\n                        false,\n                        true),\n                        box = this.crispCol(0,\n                        Math.min(stackEnd,\n                        stackThreshold), 0,\n                        Math.abs(stackEnd - stackThreshold));\n                    brBoxY = box.y;\n                    brBoxHeight = box.height;\n                }\n                var flip = (point.negative ? -1 : 1) *\n                        (reversed ? -1 : 1) === -1;\n                // Handle the where option\n                var where = borderRadius.where;\n                // Waterfall, hanging columns should have rounding on\n                // all sides\n                if (!where &&\n                    this.is('waterfall') &&\n                    Math.abs((point.yBottom || 0) -\n                        (this.translatedThreshold || 0)) > this.borderWidth) {\n                    where = 'all';\n                }\n                if (!where) {\n                    where = 'end';\n                }\n                // Get the radius\n                var r = Math.min(relativeLength(borderRadius.radius,\n                    width),\n                    width / 2, \n                    // Cap to the height, but not if where is `end`\n                    where === 'all' ? height / 2 : Infinity) || 0;\n                // If the `where` option is 'end', cut off the\n                // rectangles by making the border-radius box one r\n                // greater, so that the imaginary radius falls outside\n                // the rectangle.\n                if (where === 'end') {\n                    if (flip) {\n                        brBoxY -= r;\n                        brBoxHeight += r;\n                    }\n                    else {\n                        brBoxHeight += r;\n                    }\n                }\n                extend(shapeArgs, { brBoxHeight: brBoxHeight, brBoxY: brBoxY, r: r });\n            }\n        }\n    }\n}\n/** @private */\nfunction compose(SeriesClass, SVGElementClass, SVGRendererClass) {\n    var PieSeriesClass = SeriesClass.types.pie;\n    if (!SVGElementClass.symbolCustomAttribs.includes('borderRadius')) {\n        var symbols = SVGRendererClass.prototype.symbols;\n        addEvent(SeriesClass, 'afterColumnTranslate', seriesOnAfterColumnTranslate, {\n            // After columnrange and polar column modifications\n            order: 9\n        });\n        addEvent(PieSeriesClass, 'afterTranslate', pieSeriesOnAfterTranslate);\n        SVGElementClass.symbolCustomAttribs.push('borderRadius', 'brBoxHeight', 'brBoxY');\n        oldArc = symbols.arc;\n        oldRoundedRect = symbols.roundedRect;\n        symbols.arc = arc;\n        symbols.roundedRect = roundedRect;\n    }\n}\n/** @private */\nfunction optionsToObject(options, seriesBROptions) {\n    if (!isObject(options)) {\n        options = { radius: options || 0 };\n    }\n    return merge(defaultBorderRadiusOptions, seriesBROptions, options);\n}\n/** @private */\nfunction pieSeriesOnAfterTranslate() {\n    var borderRadius = optionsToObject(this.options.borderRadius);\n    for (var _i = 0, _a = this.points; _i < _a.length; _i++) {\n        var point = _a[_i];\n        var shapeArgs = point.shapeArgs;\n        if (shapeArgs) {\n            shapeArgs.borderRadius = relativeLength(borderRadius.radius, (shapeArgs.r || 0) - ((shapeArgs.innerR) || 0));\n        }\n    }\n}\n/**\n * Extend roundedRect with individual cutting through rOffset.\n * @private\n */\nfunction roundedRect(x, y, width, height, options) {\n    if (options === void 0) { options = {}; }\n    var path = oldRoundedRect(x,\n        y,\n        width,\n        height,\n        options),\n        _a = options.r,\n        r = _a === void 0 ? 0 : _a,\n        _b = options.brBoxHeight,\n        brBoxHeight = _b === void 0 ? height : _b,\n        _c = options.brBoxY,\n        brBoxY = _c === void 0 ? y : _c,\n        brOffsetTop = y - brBoxY,\n        brOffsetBtm = (brBoxY + brBoxHeight) - (y + height), \n        // When the distance to the border-radius box is greater than the r\n        // itself, it means no border radius. The -0.1 accounts for float\n        // rounding errors.\n        rTop = (brOffsetTop - r) > -0.1 ? 0 : r,\n        rBtm = (brOffsetBtm - r) > -0.1 ? 0 : r,\n        cutTop = Math.max(rTop && brOffsetTop, 0),\n        cutBtm = Math.max(rBtm && brOffsetBtm, 0);\n    /*\n\n    The naming of control points:\n\n      / a -------- b \\\n     /                \\\n    h                  c\n    |                  |\n    |                  |\n    |                  |\n    g                  d\n     \\                /\n      \\ f -------- e /\n\n    */\n    var a = [x + rTop,\n        y],\n        b = [x + width - rTop,\n        y],\n        c = [x + width,\n        y + rTop],\n        d = [\n            x + width,\n        y + height - rBtm\n        ],\n        e = [\n            x + width - rBtm,\n            y + height\n        ],\n        f = [x + rBtm,\n        y + height],\n        g = [x,\n        y + height - rBtm],\n        h = [x,\n        y + rTop];\n    var applyPythagoras = function (r,\n        altitude) { return Math.sqrt(Math.pow(r, 2) - Math.pow(altitude, 2)); };\n    // Inside stacks, cut off part of the top\n    if (cutTop) {\n        var base = applyPythagoras(rTop,\n            rTop - cutTop);\n        a[0] -= base;\n        b[0] += base;\n        c[1] = h[1] = y + rTop - cutTop;\n    }\n    // Column is lower than the radius. Cut off bottom inside the top\n    // radius.\n    if (height < rTop - cutTop) {\n        var base = applyPythagoras(rTop,\n            rTop - cutTop - height);\n        c[0] = d[0] = x + width - rTop + base;\n        e[0] = Math.min(c[0], e[0]);\n        f[0] = Math.max(d[0], f[0]);\n        g[0] = h[0] = x + rTop - base;\n        c[1] = h[1] = y + height;\n    }\n    // Inside stacks, cut off part of the bottom\n    if (cutBtm) {\n        var base = applyPythagoras(rBtm,\n            rBtm - cutBtm);\n        e[0] += base;\n        f[0] -= base;\n        d[1] = g[1] = y + height - rBtm + cutBtm;\n    }\n    // Cut off top inside the bottom radius\n    if (height < rBtm - cutBtm) {\n        var base = applyPythagoras(rBtm,\n            rBtm - cutBtm - height);\n        c[0] = d[0] = x + width - rBtm + base;\n        b[0] = Math.min(c[0], b[0]);\n        a[0] = Math.max(d[0], a[0]);\n        g[0] = h[0] = x + rBtm - base;\n        d[1] = g[1] = y;\n    }\n    // Preserve the box for data labels\n    path.length = 0;\n    path.push(__spreadArray(['M'], a, true), __spreadArray(['L'], b, true), __spreadArray(['A', rTop, rTop, 0, 0, 1], c, true), __spreadArray(['L'], d, true), __spreadArray(['A', rBtm, rBtm, 0, 0, 1], e, true), __spreadArray(['L'], f, true), __spreadArray(['A', rBtm, rBtm, 0, 0, 1], g, true), __spreadArray(['L'], h, true), __spreadArray(['A', rTop, rTop, 0, 0, 1], a, true), ['Z']);\n    return path;\n}\n/* *\n *\n *  Default Export\n *\n * */\nvar BorderRadius = {\n    compose: compose,\n    optionsToObject: optionsToObject\n};\n/* harmony default export */ var Extensions_BorderRadius = (BorderRadius);\n/* *\n *\n *  API Declarations\n *\n * */\n/**\n * Detailed options for border radius.\n *\n * @sample  {highcharts} highcharts/plotoptions/column-borderradius/\n *          Rounded columns\n * @sample  highcharts/plotoptions/series-border-radius\n *          Column and pie with rounded border\n *\n * @interface Highcharts.BorderRadiusOptionsObject\n */ /**\n* The border radius. A number signifies pixels. A percentage string, like for\n* example `50%`, signifies a relative size. For columns this is relative to the\n* column width, for pies it is relative to the radius and the inner radius.\n*\n* @name Highcharts.BorderRadiusOptionsObject#radius\n* @type {string|number}\n*/ /**\n* The scope of the rounding for column charts. In a stacked column chart, the\n* value `point` means each single point will get rounded corners. The value\n* `stack` means the rounding will apply to the full stack, so that only points\n* close to the top or bottom will receive rounding.\n*\n* @name Highcharts.BorderRadiusOptionsObject#scope\n* @validvalue [\"point\", \"stack\"]\n* @type {string}\n*/ /**\n* For column charts, where in the point or stack to apply rounding. The `end`\n* value means only those corners at the point value will be rounded, leaving\n* the corners at the base or threshold unrounded. This is the most intuitive\n* behaviour. The `all` value means also the base will be rounded.\n*\n* @name Highcharts.BorderRadiusOptionsObject#where\n* @validvalue [\"all\", \"end\"]\n* @type {string}\n* @default end\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/es5/es-modules/Series/Funnel/FunnelSeries.js\n/* *\n *\n *  Highcharts funnel module\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar __extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed, FunnelSeries_noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\n\nvar _a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, ColumnSeries = _a.column, PieSeries = _a.pie;\n\nvar FunnelSeries_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, FunnelSeries_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, FunnelSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique, FunnelSeries_relativeLength = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).relativeLength, splat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).splat;\n/* *\n *\n *  Constants\n *\n * */\nvar baseAlignDataLabel = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).series.prototype.alignDataLabel;\n/* *\n *\n *  Functions\n *\n * */\n/**\n * Get positions - either an integer or a percentage string must be\n * given.\n * @private\n * @param {number|string|undefined} length\n *        Length\n * @param {number} relativeTo\n *        Relative factor\n * @return {number}\n *         Relative position\n */\nfunction getLength(length, relativeTo) {\n    return (/%$/).test(length) ?\n        relativeTo * parseInt(length, 10) / 100 :\n        parseInt(length, 10);\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * @private\n * @class\n * @name Highcharts.seriesTypes.funnel\n *\n * @augments Highcharts.Series\n */\nvar FunnelSeries = /** @class */ (function (_super) {\n    __extends(FunnelSeries, _super);\n    function FunnelSeries() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /* eslint-disable valid-jsdoc */\n    /**\n     * @private\n     */\n    FunnelSeries.prototype.alignDataLabel = function (point, dataLabel, options, alignTo, isNew) {\n        var _a;\n        var series = point.series,\n            reversed = series.options.reversed,\n            dlBox = point.dlBox || point.shapeArgs,\n            align = options.align,\n            _b = options.padding,\n            padding = _b === void 0 ? 0 : _b,\n            verticalAlign = options.verticalAlign,\n            inside = ((series.options || {}).dataLabels || {}).inside,\n            centerY = series.center[1],\n            plotY = point.plotY || 0,\n            pointPlotY = (reversed ?\n                2 * centerY - plotY :\n                plotY), \n            // #16176: Only SVGLabel has height set\n            dataLabelHeight = (_a = dataLabel.height) !== null && _a !== void 0 ? _a : dataLabel.getBBox().height,\n            widthAtLabel = series.getWidthAt(pointPlotY - dlBox.height / 2 +\n                dataLabelHeight),\n            offset = verticalAlign === 'middle' ?\n                (dlBox.topWidth - dlBox.bottomWidth) / 4 :\n                (widthAtLabel - dlBox.bottomWidth) / 2;\n        var y = dlBox.y,\n            x = dlBox.x;\n        if (verticalAlign === 'middle') {\n            y = dlBox.y - dlBox.height / 2 + dataLabelHeight / 2;\n        }\n        else if (verticalAlign === 'top') {\n            y = dlBox.y - dlBox.height + dataLabelHeight + padding;\n        }\n        if (verticalAlign === 'top' && !reversed ||\n            verticalAlign === 'bottom' && reversed ||\n            verticalAlign === 'middle') {\n            if (align === 'right') {\n                x = dlBox.x - padding + offset;\n            }\n            else if (align === 'left') {\n                x = dlBox.x + padding - offset;\n            }\n        }\n        alignTo = {\n            x: x,\n            y: reversed ? y - dlBox.height : y,\n            width: dlBox.bottomWidth,\n            height: dlBox.height\n        };\n        options.verticalAlign = 'bottom';\n        if (inside) {\n            // If the distance were positive (as default), the overlapping\n            // labels logic would skip these labels and they would be allowed\n            // to overlap.\n            options.distance = void 0;\n        }\n        // Call the parent method\n        if (inside && point.visible) {\n            baseAlignDataLabel.call(series, point, dataLabel, options, alignTo, isNew);\n        }\n        if (inside) {\n            if (!point.visible && point.dataLabel) {\n                // Avoid animation from top\n                point.dataLabel.placed = false;\n            }\n            // If label is inside and we have contrast, set it:\n            if (point.contrastColor) {\n                dataLabel.css({\n                    color: point.contrastColor\n                });\n            }\n        }\n    };\n    /**\n     * Extend the data label method.\n     * @private\n     */\n    FunnelSeries.prototype.drawDataLabels = function () {\n        (splat(this.options.dataLabels || {})[0].inside ?\n            ColumnSeries :\n            PieSeries).prototype.drawDataLabels.call(this);\n    };\n    /** @private */\n    FunnelSeries.prototype.getDataLabelPosition = function (point, distance) {\n        var y = point.plotY || 0,\n            sign = point.half ? 1 : -1,\n            x = this.getX(y, !!point.half,\n            point);\n        return {\n            distance: distance,\n            // Initial position of the data label - it's utilized for finding\n            // the final position for the label\n            natural: {\n                x: 0,\n                y: y\n            },\n            computed: {\n            // Used for generating connector path - initialized later in\n            // drawDataLabels function x: undefined, y: undefined\n            },\n            // Left - funnel on the left side of the data label\n            // Right - funnel on the right side of the data label\n            alignment: point.half ? 'right' : 'left',\n            connectorPosition: {\n                breakAt: {\n                    x: x + (distance - 5) * sign,\n                    y: y\n                },\n                touchingSliceAt: {\n                    x: x + distance * sign,\n                    y: y\n                }\n            }\n        };\n    };\n    /**\n     * Overrides the pie translate method.\n     * @private\n     */\n    FunnelSeries.prototype.translate = function () {\n        var series = this,\n            chart = series.chart,\n            options = series.options,\n            reversed = options.reversed,\n            ignoreHiddenPoint = options.ignoreHiddenPoint,\n            borderRadiusObject = Extensions_BorderRadius.optionsToObject(options.borderRadius),\n            plotWidth = chart.plotWidth,\n            plotHeight = chart.plotHeight,\n            center = options.center,\n            centerX = getLength(center[0],\n            plotWidth),\n            centerY = getLength(center[1],\n            plotHeight),\n            width = getLength(options.width,\n            plotWidth),\n            height = getLength(options.height,\n            plotHeight),\n            neckWidth = getLength(options.neckWidth,\n            plotWidth),\n            neckHeight = getLength(options.neckHeight,\n            plotHeight),\n            neckY = (centerY - height / 2) + height - neckHeight,\n            points = series.points,\n            borderRadius = FunnelSeries_relativeLength(borderRadiusObject.radius,\n            width),\n            radiusScope = borderRadiusObject.scope,\n            half = (options.dataLabels.position === 'left' ?\n                1 :\n                0),\n            roundingFactors = function (angle) {\n                var tan = Math.tan(angle / 2),\n            cosA = Math.cos(alpha),\n            sinA = Math.sin(alpha);\n            var r = borderRadius, t = r / tan, k = Math.tan((Math.PI - angle) / 3.2104);\n            if (t > maxT) {\n                t = maxT;\n                r = t * tan;\n            }\n            k *= r;\n            return {\n                dx: [t * cosA, (t - k) * cosA, t - k, t],\n                dy: [t * sinA, (t - k) * sinA, t - k, t]\n                    .map(function (i) { return (reversed ? -i : i); })\n            };\n        };\n        var sum = 0,\n            cumulative = 0, // Start at top\n            tempWidth,\n            path,\n            fraction,\n            alpha, // The angle between top and left point's edges\n            maxT,\n            x1,\n            y1,\n            x2,\n            x3,\n            y3,\n            x4,\n            y5;\n        series.getWidthAt = function (y) {\n            var top = (centerY - height / 2);\n            return (y > neckY || height === neckHeight) ?\n                neckWidth :\n                neckWidth + (width - neckWidth) *\n                    (1 - (y - top) / (height - neckHeight));\n        };\n        series.getX = function (y, half, point) {\n            var _a,\n                _b,\n                _c,\n                _d;\n            return centerX + (half ? -1 : 1) *\n                ((series.getWidthAt(reversed ? 2 * centerY - y : y) / 2) +\n                    ((_c = (_b = (_a = point.dataLabel) === null || _a === void 0 ? void 0 : _a.dataLabelPosition) === null || _b === void 0 ? void 0 : _b.distance) !== null && _c !== void 0 ? _c : FunnelSeries_relativeLength(((_d = this.options.dataLabels) === null || _d === void 0 ? void 0 : _d.distance) || 0, width)));\n        };\n        // Expose\n        series.center = [centerX, centerY, height];\n        series.centerX = centerX;\n        /*\n        Individual point coordinate naming:\n\n        x1,y1 _________________ x2,y1\n        \\                         /\n         \\                       /\n          \\                     /\n           \\                   /\n            \\                 /\n           x3,y3 _________ x4,y3\n\n        Additional for the base of the neck:\n\n             |               |\n             |               |\n             |               |\n           x3,y5 _________ x4,y5\n\n        */\n        // get the total sum\n        for (var _i = 0, points_1 = points; _i < points_1.length; _i++) {\n            var point = points_1[_i];\n            if (point.y && point.isValid() &&\n                (!ignoreHiddenPoint || point.visible !== false)) {\n                sum += point.y;\n            }\n        }\n        for (var _a = 0, points_2 = points; _a < points_2.length; _a++) {\n            var point = points_2[_a];\n            // Set start and end positions\n            y5 = null;\n            fraction = sum ? point.y / sum : 0;\n            y1 = centerY - height / 2 + cumulative * height;\n            y3 = y1 + fraction * height;\n            tempWidth = series.getWidthAt(y1);\n            x1 = centerX - tempWidth / 2;\n            x2 = x1 + tempWidth;\n            tempWidth = series.getWidthAt(y3);\n            x3 = centerX - tempWidth / 2;\n            x4 = x3 + tempWidth;\n            // The entire point is within the neck\n            if (correctFloat(y1) >= neckY) {\n                x1 = x3 = centerX - neckWidth / 2;\n                x2 = x4 = centerX + neckWidth / 2;\n                // The base of the neck\n            }\n            else if (y3 > neckY) {\n                y5 = y3;\n                tempWidth = series.getWidthAt(neckY);\n                x3 = centerX - tempWidth / 2;\n                x4 = x3 + tempWidth;\n                y3 = neckY;\n            }\n            if (reversed) {\n                y1 = 2 * centerY - y1;\n                y3 = 2 * centerY - y3;\n                if (y5 !== null) {\n                    y5 = 2 * centerY - y5;\n                }\n            }\n            if (borderRadius && (radiusScope === 'point' ||\n                point.index === 0 ||\n                point.index === points.length - 1 ||\n                y5 !== null)) {\n                // Creating the path of funnel points with rounded corners\n                // (#18839)\n                var h = Math.abs(y3 - y1),\n                    xSide = x2 - x4,\n                    lBase = x4 - x3,\n                    lSide = Math.sqrt(xSide * xSide + h * h);\n                // If xSide equals zero, return Infinity to avoid dividing\n                // by zero (#20319)\n                alpha = Math.atan(xSide !== 0 ? h / xSide : Infinity);\n                maxT = lSide / 2;\n                if (y5 !== null) {\n                    maxT = Math.min(maxT, Math.abs(y5 - y3) / 2);\n                }\n                if (lBase >= 1) {\n                    maxT = Math.min(maxT, lBase / 2);\n                }\n                // Creating a point base\n                var f = roundingFactors(alpha);\n                if (radiusScope === 'stack' && point.index !== 0) {\n                    path = [\n                        ['M', x1, y1],\n                        ['L', x2, y1]\n                    ];\n                }\n                else {\n                    path = [\n                        ['M', x1 + f.dx[0], y1 + f.dy[0]],\n                        [\n                            'C',\n                            x1 + f.dx[1], y1 + f.dy[1],\n                            x1 + f.dx[2], y1,\n                            x1 + f.dx[3], y1\n                        ],\n                        ['L', x2 - f.dx[3], y1],\n                        [\n                            'C',\n                            x2 - f.dx[2], y1,\n                            x2 - f.dx[1], y1 + f.dy[1],\n                            x2 - f.dx[0], y1 + f.dy[0]\n                        ]\n                    ];\n                }\n                if (y5 !== null) {\n                    // Closure of point with extension\n                    var fr = roundingFactors(Math.PI / 2);\n                    f = roundingFactors(Math.PI / 2 + alpha);\n                    path.push(['L', x4 + f.dx[0], y3 - f.dy[0]], [\n                        'C',\n                        x4 + f.dx[1], y3 - f.dy[1],\n                        x4, y3 + f.dy[2],\n                        x4, y3 + f.dy[3]\n                    ]);\n                    if (radiusScope === 'stack' &&\n                        point.index !== points.length - 1) {\n                        path.push(['L', x4, y5], ['L', x3, y5]);\n                    }\n                    else {\n                        path.push(['L', x4, y5 - fr.dy[3]], [\n                            'C',\n                            x4, y5 - fr.dy[2],\n                            x4 - fr.dx[2], y5,\n                            x4 - fr.dx[3], y5\n                        ], ['L', x3 + fr.dx[3], y5], [\n                            'C',\n                            x3 + fr.dx[2], y5,\n                            x3, y5 - fr.dy[2],\n                            x3, y5 - fr.dy[3]\n                        ]);\n                    }\n                    path.push(['L', x3, y3 + f.dy[3]], [\n                        'C',\n                        x3, y3 + f.dy[2],\n                        x3 - f.dx[1], y3 - f.dy[1],\n                        x3 - f.dx[0], y3 - f.dy[0]\n                    ]);\n                }\n                else if (lBase >= 1) {\n                    // Closure of point without extension\n                    f = roundingFactors(Math.PI - alpha);\n                    if (radiusScope === 'stack' && point.index === 0) {\n                        path.push(['L', x4, y3], ['L', x3, y3]);\n                    }\n                    else {\n                        path.push(['L', x4 + f.dx[0], y3 - f.dy[0]], [\n                            'C',\n                            x4 + f.dx[1], y3 - f.dy[1],\n                            x4 - f.dx[2], y3,\n                            x4 - f.dx[3], y3\n                        ], ['L', x3 + f.dx[3], y3], [\n                            'C',\n                            x3 + f.dx[2], y3,\n                            x3 - f.dx[1], y3 - f.dy[1],\n                            x3 - f.dx[0], y3 - f.dy[0]\n                        ]);\n                    }\n                }\n                else {\n                    // Creating a rounded tip of the \"pyramid\"\n                    f = roundingFactors(Math.PI - alpha * 2);\n                    path.push(['L', x3 + f.dx[0], y3 - f.dy[0]], [\n                        'C',\n                        x3 + f.dx[1], y3 - f.dy[1],\n                        x3 - f.dx[1], y3 - f.dy[1],\n                        x3 - f.dx[0], y3 - f.dy[0]\n                    ]);\n                }\n            }\n            else {\n                // Creating the path of funnel points without rounded corners\n                path = [\n                    ['M', x1, y1],\n                    ['L', x2, y1],\n                    ['L', x4, y3]\n                ];\n                if (y5 !== null) {\n                    path.push(['L', x4, y5], ['L', x3, y5]);\n                }\n                path.push(['L', x3, y3]);\n            }\n            path.push(['Z']);\n            // Prepare for using shared dr\n            point.shapeType = 'path';\n            point.shapeArgs = { d: path };\n            // For tooltips and data labels\n            point.percentage = fraction * 100;\n            point.plotX = centerX;\n            point.plotY = (y1 + (y5 || y3)) / 2;\n            // Placement of tooltips and data labels\n            point.tooltipPos = [\n                centerX,\n                point.plotY\n            ];\n            point.dlBox = {\n                x: x3,\n                y: y1,\n                topWidth: x2 - x1,\n                bottomWidth: x4 - x3,\n                height: Math.abs(pick(y5, y3) - y1),\n                width: NaN\n            };\n            // Slice is a noop on funnel points\n            point.slice = FunnelSeries_noop;\n            // Mimicking pie data label placement logic\n            point.half = half;\n            if (point.isValid() &&\n                (!ignoreHiddenPoint || point.visible !== false)) {\n                cumulative += fraction;\n            }\n        }\n        fireEvent(series, 'afterTranslate');\n    };\n    /**\n     * Funnel items don't have angles (#2289).\n     * @private\n     */\n    FunnelSeries.prototype.sortByAngle = function (points) {\n        points.sort(function (a, b) { return (a.plotY - b.plotY); });\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    FunnelSeries.defaultOptions = FunnelSeries_merge(PieSeries.defaultOptions, Funnel_FunnelSeriesDefaults);\n    return FunnelSeries;\n}(PieSeries));\nFunnelSeries_extend(FunnelSeries.prototype, {\n    animate: FunnelSeries_noop\n});\n/* *\n *\n *  Class Namespace\n *\n * */\n(function (FunnelSeries) {\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /** @private */\n    function compose(ChartClass) {\n        if (pushUnique(composed, 'FunnelSeries')) {\n            FunnelSeries_addEvent(ChartClass, 'afterHideAllOverlappingLabels', onChartAfterHideAllOverlappingLabels);\n        }\n    }\n    FunnelSeries.compose = compose;\n    /** @private */\n    function onChartAfterHideAllOverlappingLabels() {\n        for (var _i = 0, _a = this.series; _i < _a.length; _i++) {\n            var series = _a[_i];\n            var dataLabelsOptions = series.options && series.options.dataLabels;\n            if (isArray(dataLabelsOptions)) {\n                dataLabelsOptions = dataLabelsOptions[0];\n            }\n            if (series.is('pie') &&\n                series.placeDataLabels &&\n                dataLabelsOptions &&\n                !dataLabelsOptions.inside) {\n                series.placeDataLabels();\n            }\n        }\n    }\n})(FunnelSeries || (FunnelSeries = {}));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('funnel', FunnelSeries);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var Funnel_FunnelSeries = (FunnelSeries);\n\n;// ./code/es5/es-modules/Series/Pyramid/PyramidSeriesDefaults.js\n/* *\n *\n *  Highcharts funnel module\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n *  API Options\n *\n * */\nvar PyramidSeriesDefaults = {\n    /**\n     * The pyramid neck height is zero by default, as opposed to the funnel,\n     * which shares the same layout logic.\n     *\n     * @since 3.0.10\n     */\n    neckHeight: '0%',\n    /**\n     * The pyramid neck width is zero by default, as opposed to the funnel,\n     * which shares the same layout logic.\n     *\n     * @since 3.0.10\n     */\n    neckWidth: '0%',\n    /**\n     * The pyramid is reversed by default, as opposed to the funnel, which\n     * shares the layout engine, and is not reversed.\n     *\n     * @since 3.0.10\n     */\n    reversed: true\n};\n/**\n * A `pyramid` series. If the [type](#series.pyramid.type) option is\n * not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.pyramid\n * @excluding dataParser, dataURL, stack, xAxis, yAxis, dataSorting,\n *            boostThreshold, boostBlending\n * @product   highcharts\n * @requires  modules/funnel\n * @apioption series.pyramid\n */\n/**\n * An array of data points for the series. For the `pyramid` series\n * type, points can be given in the following ways:\n *\n * 1. An array of numerical values. In this case, the numerical values will be\n *    interpreted as `y` options. Example:\n *    ```js\n *    data: [0, 5, 3, 5]\n *    ```\n *\n * 2. An array of objects with named values. The following snippet shows only a\n *    few settings, see the complete options set below. If the total number of\n *    data points exceeds the series'\n *    [turboThreshold](#series.pyramid.turboThreshold), this option is not\n *    available.\n *    ```js\n *    data: [{\n *        y: 9,\n *        name: \"Point2\",\n *        color: \"#00FF00\"\n *    }, {\n *        y: 6,\n *        name: \"Point1\",\n *        color: \"#FF00FF\"\n *    }]\n *    ```\n *\n * @sample {highcharts} highcharts/chart/reflow-true/\n *         Numerical values\n * @sample {highcharts} highcharts/series/data-array-of-objects/\n *         Config objects\n *\n * @type      {Array<number|null|*>}\n * @extends   series.pie.data\n * @excluding sliced\n * @product   highcharts\n * @apioption series.pyramid.data\n */\n''; // Keeps doclets above separate\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var Pyramid_PyramidSeriesDefaults = (PyramidSeriesDefaults);\n\n;// ./code/es5/es-modules/Series/Pyramid/PyramidSeries.js\n/* *\n *\n *  Highcharts funnel module\n *\n *  (c) 2010-2024 Torstein Honsi\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar PyramidSeries_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\n\n\nvar PyramidSeries_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * Pyramid series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.pyramid\n *\n * @augments Highcharts.Series\n */\nvar PyramidSeries = /** @class */ (function (_super) {\n    PyramidSeries_extends(PyramidSeries, _super);\n    function PyramidSeries() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * A pyramid series is a special type of funnel, without neck and reversed\n     * by default.\n     *\n     * @sample highcharts/demo/pyramid/\n     *         Pyramid chart\n     *\n     * @extends      plotOptions.funnel\n     * @product      highcharts\n     * @requires     modules/funnel\n     * @optionparent plotOptions.pyramid\n     */\n    PyramidSeries.defaultOptions = PyramidSeries_merge(Funnel_FunnelSeries.defaultOptions, Pyramid_PyramidSeriesDefaults);\n    return PyramidSeries;\n}(Funnel_FunnelSeries));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('pyramid', PyramidSeries);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var Pyramid_PyramidSeries = ((/* unused pure expression or super */ null && (PyramidSeries)));\n\n;// ./code/es5/es-modules/masters/modules/funnel.src.js\n\n\n\n\n\nvar G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\nFunnel_FunnelSeries.compose(G.Chart);\n/* harmony default export */ var funnel_src = ((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()));\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"],"names":["root","factory","exports","module","require","define","amd","__WEBPACK_EXTERNAL_MODULE__944__","__WEBPACK_EXTERNAL_MODULE__512__","extendStatics","__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__","funnel_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","Funnel_FunnelSeriesDefaults","animation","borderRadius","center","width","neckWidth","height","neckHeight","reversed","size","dataLabels","connectorWidth","verticalAlign","states","select","color","borderColor","isObject","defaultOptions","noop","addEvent","extend","merge","defaultBorderRadiusOptions","relativeLength","radius","scope","where","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default","__extends","b","setPrototypeOf","__proto__","Array","p","__","constructor","create","composed","FunnelSeries_noop","_a","seriesTypes","ColumnSeries","column","PieSeries","pie","FunnelSeries_addEvent","correctFloat","FunnelSeries_extend","fireEvent","isArray","FunnelSeries_merge","pick","pushUnique","FunnelSeries_relativeLength","splat","baseAlignDataLabel","series","alignDataLabel","getLength","length","relativeTo","test","parseInt","FunnelSeries","_super","apply","arguments","point","dataLabel","options","alignTo","isNew","dlBox","shapeArgs","align","_b","padding","inside","centerY","plotY","dataLabelHeight","getBBox","widthAtLabel","getWidthAt","pointPlotY","offset","topWidth","bottomWidth","y","x","distance","visible","placed","contrastColor","css","drawDataLabels","getDataLabelPosition","sign","half","getX","natural","computed","alignment","connectorPosition","breakAt","touchingSliceAt","translate","seriesBROptions","tempWidth","path","fraction","alpha","maxT","x1","y1","x2","x3","y3","x4","y5","chart","ignoreHiddenPoint","borderRadiusObject","plotWidth","plotHeight","centerX","neckY","points","radiusScope","position","roundingFactors","angle","tan","Math","cosA","cos","sinA","sin","r","t","k","PI","dx","dy","map","i","sum","cumulative","top","_c","_d","dataLabelPosition","_i","points_1","isValid","points_2","index","h","abs","xSide","lBase","lSide","sqrt","atan","Infinity","min","f","fr","push","shapeType","percentage","plotX","tooltipPos","NaN","slice","sortByAngle","sort","animate","onChartAfterHideAllOverlappingLabels","dataLabelsOptions","is","placeDataLabels","compose","ChartClass","registerSeriesType","Funnel_FunnelSeries","Pyramid_PyramidSeriesDefaults","PyramidSeries_extends","TypeError","String","PyramidSeries_merge","PyramidSeries","G","Chart"],"mappings":"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"}

Hacked By AnonymousFox1.0, Coded By AnonymousFox