Hacked By AnonymousFox

Current Path : C:/AppServ/www/financial/stacked/code/es5/indicators/
Upload File :
Current File : C:/AppServ/www/financial/stacked/code/es5/indicators/indicators-all.js.map

{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highstock JS v12.1.2 (2025-01-09)\n * @module highcharts/indicators/indicators-all\n * @requires highcharts\n * @requires highcharts/modules/stock\n *\n * All technical indicators for Highcharts Stock\n *\n * (c) 2010-2024 Pawel Fus\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\")[\"Chart\"], require(\"highcharts\")[\"SeriesRegistry\"], require(\"highcharts\")[\"dataGrouping\"][\"approximations\"], require(\"highcharts\")[\"Color\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/indicators/indicators-all\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"Chart\"], [\"highcharts/highcharts\",\"SeriesRegistry\"], [\"highcharts/highcharts\",\"dataGrouping\",\"approximations\"], [\"highcharts/highcharts\",\"Color\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/indicators/indicators-all\"] = factory(require(\"highcharts\"), require(\"highcharts\")[\"Chart\"], require(\"highcharts\")[\"SeriesRegistry\"], require(\"highcharts\")[\"dataGrouping\"][\"approximations\"], require(\"highcharts\")[\"Color\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"Chart\"], root[\"Highcharts\"][\"SeriesRegistry\"], root[\"Highcharts\"][\"dataGrouping\"][\"approximations\"], root[\"Highcharts\"][\"Color\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__960__, __WEBPACK_EXTERNAL_MODULE__512__, __WEBPACK_EXTERNAL_MODULE__956__, __WEBPACK_EXTERNAL_MODULE__620__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 960:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__960__;\n\n/***/ }),\n\n/***/ 620:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__620__;\n\n/***/ }),\n\n/***/ 512:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__512__;\n\n/***/ }),\n\n/***/ 956:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__956__;\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 */ indicators_all_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\",\"Chart\"],\"commonjs\":[\"highcharts\",\"Chart\"],\"commonjs2\":[\"highcharts\",\"Chart\"],\"root\":[\"Highcharts\",\"Chart\"]}\nvar highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_ = __webpack_require__(960);\nvar highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default = /*#__PURE__*/__webpack_require__.n(highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_);\n// 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/Stock/Indicators/SMA/SMAIndicator.js\n/* *\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})();\nvar __assign = (undefined && undefined.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\n\n\nvar LineSeries = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.line;\n\nvar addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error, extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/**\n *\n * Return the parent series values in the legacy two-dimensional yData\n * format\n * @private\n */\nvar tableToMultiYData = function (series, processed) {\n    var yData = [],\n        pointArrayMap = series.pointArrayMap,\n        table = processed && series.dataTable.modified || series.dataTable;\n    if (!pointArrayMap) {\n        return series.getColumn('y', processed);\n    }\n    var columns = pointArrayMap.map(function (key) {\n            return series.getColumn(key,\n        processed);\n    });\n    var _loop_1 = function (i) {\n            var values = pointArrayMap.map(function (key,\n        colIndex) { var _a; return ((_a = columns[colIndex]) === null || _a === void 0 ? void 0 : _a[i]) || 0; });\n        yData.push(values);\n    };\n    for (var i = 0; i < table.rowCount; i++) {\n        _loop_1(i);\n    }\n    return yData;\n};\n/* *\n *\n *  Class\n *\n * */\n/**\n * The SMA series type.\n *\n * @private\n */\nvar SMAIndicator = /** @class */ (function (_super) {\n    __extends(SMAIndicator, _super);\n    function SMAIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /**\n     * @private\n     */\n    SMAIndicator.prototype.destroy = function () {\n        this.dataEventsToUnbind.forEach(function (unbinder) {\n            unbinder();\n        });\n        _super.prototype.destroy.apply(this, arguments);\n    };\n    /**\n     * @private\n     */\n    SMAIndicator.prototype.getName = function () {\n        var params = [];\n        var name = this.name;\n        if (!name) {\n            (this.nameComponents || []).forEach(function (component, index) {\n                params.push(this.options.params[component] +\n                    pick(this.nameSuffixes[index], ''));\n            }, this);\n            name = (this.nameBase || this.type.toUpperCase()) +\n                (this.nameComponents ? ' (' + params.join(', ') + ')' : '');\n        }\n        return name;\n    };\n    /**\n     * @private\n     */\n    SMAIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData || [],\n            yVal = series.yData,\n            yValLen = yVal.length,\n            SMA = [],\n            xData = [],\n            yData = [];\n        var i,\n            index = -1,\n            range = 0,\n            SMAPoint,\n            sum = 0;\n        if (xVal.length < period) {\n            return;\n        }\n        // Switch index for OHLC / Candlestick / Arearange\n        if (isArray(yVal[0])) {\n            index = params.index ? params.index : 0;\n        }\n        // Accumulate first N-points\n        while (range < period - 1) {\n            sum += index < 0 ? yVal[range] : yVal[range][index];\n            range++;\n        }\n        // Calculate value one-by-one for each period in visible data\n        for (i = range; i < yValLen; i++) {\n            sum += index < 0 ? yVal[i] : yVal[i][index];\n            SMAPoint = [xVal[i], sum / period];\n            SMA.push(SMAPoint);\n            xData.push(SMAPoint[0]);\n            yData.push(SMAPoint[1]);\n            sum -= (index < 0 ?\n                yVal[i - range] :\n                yVal[i - range][index]);\n        }\n        return {\n            values: SMA,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /**\n     * @private\n     */\n    SMAIndicator.prototype.init = function (chart, options) {\n        var indicator = this;\n        _super.prototype.init.call(indicator, chart, options);\n        // Only after series are linked indicator can be processed.\n        var linkedSeriesUnbiner = addEvent((highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default()), 'afterLinkSeries',\n            function (_a) {\n                var isUpdating = _a.isUpdating;\n            // #18643 indicator shouldn't recalculate\n            // values while series updating.\n            if (isUpdating) {\n                return;\n            }\n            var hasEvents = !!indicator.dataEventsToUnbind.length;\n            if (indicator.linkedParent) {\n                if (!hasEvents) {\n                    // No matter which indicator, always recalculate after\n                    // updating the data.\n                    indicator.dataEventsToUnbind.push(addEvent(indicator.linkedParent, 'updatedData', function () {\n                        indicator.recalculateValues();\n                    }));\n                    // Some indicators (like VBP) requires an additional\n                    // event (afterSetExtremes) to properly show the data.\n                    if (indicator.calculateOn.xAxis) {\n                        indicator.dataEventsToUnbind.push(addEvent(indicator.linkedParent.xAxis, indicator.calculateOn.xAxis, function () {\n                            indicator.recalculateValues();\n                        }));\n                    }\n                }\n                // Most indicators are being calculated on chart's init.\n                if (indicator.calculateOn.chart === 'init') {\n                    // When closestPointRange is set, it is an indication\n                    // that `Series.processData` has run. If it hasn't we\n                    // need to `recalculateValues`.\n                    if (!indicator.closestPointRange) {\n                        indicator.recalculateValues();\n                    }\n                }\n                else if (!hasEvents) {\n                    // Some indicators (like VBP) has to recalculate their\n                    // values after other chart's events (render).\n                    var unbinder_1 = addEvent(indicator.chart,\n                        indicator.calculateOn.chart,\n                        function () {\n                            indicator.recalculateValues();\n                        // Call this just once.\n                        unbinder_1();\n                    });\n                }\n            }\n            else {\n                return error('Series ' +\n                    indicator.options.linkedTo +\n                    ' not found! Check `linkedTo`.', false, chart);\n            }\n        }, {\n            order: 0\n        });\n        // Make sure we find series which is a base for an indicator\n        // chart.linkSeries();\n        indicator.dataEventsToUnbind = [];\n        indicator.eventsToUnbind.push(linkedSeriesUnbiner);\n    };\n    /**\n     * @private\n     */\n    SMAIndicator.prototype.recalculateValues = function () {\n        var _this = this;\n        var _a;\n        var croppedDataValues = [],\n            indicator = this,\n            table = this.dataTable,\n            oldData = indicator.points || [],\n            oldDataLength = indicator.dataTable.rowCount,\n            emptySet = {\n                values: [],\n                xData: [],\n                yData: []\n            };\n        var overwriteData = true,\n            oldFirstPointIndex,\n            oldLastPointIndex,\n            min,\n            max;\n        // For the newer data table, temporarily set the parent series `yData`\n        // to the legacy format that is documented for custom indicators, and\n        // get the xData from the data table\n        var yData = indicator.linkedParent.yData,\n            processedYData = indicator.linkedParent.processedYData;\n        indicator.linkedParent.xData = indicator.linkedParent\n            .getColumn('x');\n        indicator.linkedParent.yData = tableToMultiYData(indicator.linkedParent);\n        indicator.linkedParent.processedYData = tableToMultiYData(indicator.linkedParent, true);\n        // Updating an indicator with redraw=false may destroy data.\n        // If there will be a following update for the parent series,\n        // we will try to access Series object without any properties\n        // (except for prototyped ones). This is what happens\n        // for example when using Axis.setDataGrouping(). See #16670\n        var processedData = indicator.linkedParent.options &&\n                // #18176, #18177 indicators should work with empty dataset\n                indicator.linkedParent.dataTable.rowCount ?\n                (indicator.getValues(indicator.linkedParent,\n            indicator.options.params) || emptySet) : emptySet;\n        // Reset\n        delete indicator.linkedParent.xData;\n        indicator.linkedParent.yData = yData;\n        indicator.linkedParent.processedYData = processedYData;\n        var pointArrayMap = indicator.pointArrayMap || ['y'],\n            valueColumns = {};\n        // Split legacy twodimensional values into value columns\n        processedData.yData\n            .forEach(function (values) {\n            pointArrayMap.forEach(function (key, index) {\n                var column = valueColumns[key] || [];\n                column.push(isArray(values) ? values[index] : values);\n                if (!valueColumns[key]) {\n                    valueColumns[key] = column;\n                }\n            });\n        });\n        // We need to update points to reflect changes in all,\n        // x and y's, values. However, do it only for non-grouped\n        // data - grouping does it for us (#8572)\n        if (oldDataLength &&\n            !indicator.hasGroupedData &&\n            indicator.visible &&\n            indicator.points) {\n            // When data is cropped update only avaliable points (#9493)\n            if (indicator.cropped) {\n                if (indicator.xAxis) {\n                    min = indicator.xAxis.min;\n                    max = indicator.xAxis.max;\n                }\n                var croppedData = indicator.cropData(table,\n                    min,\n                    max);\n                var keys = __spreadArray(['x'], (indicator.pointArrayMap || ['y']), true);\n                var _loop_2 = function (i) {\n                        var values = keys.map(function (key) {\n                            return _this.getColumn(key)[i] || 0;\n                    });\n                    croppedDataValues.push(values);\n                };\n                for (var i = 0; i < (((_a = croppedData.modified) === null || _a === void 0 ? void 0 : _a.rowCount) || 0); i++) {\n                    _loop_2(i);\n                }\n                var indicatorXData = indicator.getColumn('x');\n                oldFirstPointIndex = processedData.xData.indexOf(indicatorXData[0]);\n                oldLastPointIndex = processedData.xData.indexOf(indicatorXData[indicatorXData.length - 1]);\n                // Check if indicator points should be shifted (#8572)\n                if (oldFirstPointIndex === -1 &&\n                    oldLastPointIndex === processedData.xData.length - 2) {\n                    if (croppedDataValues[0][0] === oldData[0].x) {\n                        croppedDataValues.shift();\n                    }\n                }\n                indicator.updateData(croppedDataValues);\n            }\n            else if (indicator.updateAllPoints || // #18710\n                // Omit addPoint() and removePoint() cases\n                processedData.xData.length !== oldDataLength - 1 &&\n                    processedData.xData.length !== oldDataLength + 1) {\n                overwriteData = false;\n                indicator.updateData(processedData.values);\n            }\n        }\n        if (overwriteData) {\n            table.setColumns(__assign(__assign({}, valueColumns), { x: processedData.xData }));\n            indicator.options.data = processedData.values;\n        }\n        if (indicator.calculateOn.xAxis &&\n            indicator.getColumn('x', true).length) {\n            indicator.isDirty = true;\n            indicator.redraw();\n        }\n        indicator.isDirtyData = !!indicator.linkedSeries.length;\n        fireEvent(indicator, 'updatedData'); // #18689\n    };\n    /**\n     * @private\n     */\n    SMAIndicator.prototype.processData = function () {\n        var series = this,\n            compareToMain = series.options.compareToMain,\n            linkedParent = series.linkedParent;\n        _super.prototype.processData.apply(series, arguments);\n        if (series.dataModify &&\n            linkedParent &&\n            linkedParent.dataModify &&\n            linkedParent.dataModify.compareValue &&\n            compareToMain) {\n            series.dataModify.compareValue =\n                linkedParent.dataModify.compareValue;\n        }\n        return;\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * The parameter allows setting line series type and use OHLC indicators.\n     * Data in OHLC format is required.\n     *\n     * @sample {highstock} stock/indicators/use-ohlc-data\n     *         Use OHLC data format to plot line chart\n     *\n     * @type      {boolean}\n     * @product   highstock\n     * @apioption plotOptions.line.useOhlcData\n     */\n    /**\n     * Simple moving average indicator (SMA). This series requires `linkedTo`\n     * option to be set.\n     *\n     * @sample stock/indicators/sma\n     *         Simple moving average indicator\n     *\n     * @extends      plotOptions.line\n     * @since        6.0.0\n     * @excluding    allAreas, colorAxis, dragDrop, joinBy, keys,\n     *               navigatorOptions, pointInterval, pointIntervalUnit,\n     *               pointPlacement, pointRange, pointStart, showInNavigator,\n     *               stacking, useOhlcData\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @optionparent plotOptions.sma\n     */\n    SMAIndicator.defaultOptions = merge(LineSeries.defaultOptions, {\n        /**\n         * The name of the series as shown in the legend, tooltip etc. If not\n         * set, it will be based on a technical indicator type and default\n         * params.\n         *\n         * @type {string}\n         */\n        name: void 0,\n        tooltip: {\n            /**\n             * Number of decimals in indicator series.\n             */\n            valueDecimals: 4\n        },\n        /**\n         * The main series ID that indicator will be based on. Required for this\n         * indicator.\n         *\n         * @type {string}\n         */\n        linkedTo: void 0,\n        /**\n         * Whether to compare indicator to the main series values\n         * or indicator values.\n         *\n         * @sample {highstock} stock/plotoptions/series-comparetomain/\n         *         Difference between comparing SMA values to the main series\n         *         and its own values.\n         *\n         * @type {boolean}\n         */\n        compareToMain: false,\n        /**\n         * Parameters used in calculation of regression series' points.\n         */\n        params: {\n            /**\n             * The point index which indicator calculations will base. For\n             * example using OHLC data, index=2 means the indicator will be\n             * calculated using Low values.\n             */\n            index: 3,\n            /**\n             * The base period for indicator calculations. This is the number of\n             * data points which are taken into account for the indicator\n             * calculations.\n             */\n            period: 14\n        }\n    });\n    return SMAIndicator;\n}(LineSeries));\nextend(SMAIndicator.prototype, {\n    calculateOn: {\n        chart: 'init'\n    },\n    hasDerivedData: true,\n    nameComponents: ['period'],\n    nameSuffixes: [], // E.g. Zig Zag uses extra '%'' in the legend name\n    useCommonDataGrouping: true\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('sma', SMAIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var SMA_SMAIndicator = ((/* unused pure expression or super */ null && (SMAIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `SMA` series. If the [type](#series.sma.type) option is not specified, it\n * is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.sma\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL, useOhlcData\n * @requires  stock/indicators/indicators\n * @apioption series.sma\n */\n(''); // Adds doclet above to the transpiled file\n\n;// ./code/es5/es-modules/Stock/Indicators/EMA/EMAIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar EMAIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar EMAIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, EMAIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, EMAIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The EMA series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.ema\n *\n * @augments Highcharts.Series\n */\nvar EMAIndicator = /** @class */ (function (_super) {\n    EMAIndicator_extends(EMAIndicator, _super);\n    function EMAIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    EMAIndicator.prototype.accumulatePeriodPoints = function (period, index, yVal) {\n        var sum = 0,\n            i = 0,\n            y = 0;\n        while (i < period) {\n            y = index < 0 ? yVal[i] : yVal[i][index];\n            sum = sum + y;\n            i++;\n        }\n        return sum;\n    };\n    EMAIndicator.prototype.calculateEma = function (xVal, yVal, i, EMApercent, calEMA, index, SMA) {\n        var x = xVal[i - 1],\n            yValue = index < 0 ?\n                yVal[i - 1] :\n                yVal[i - 1][index],\n            y = typeof calEMA === 'undefined' ?\n                SMA : correctFloat((yValue * EMApercent) +\n                (calEMA * (1 - EMApercent)));\n        return [x, y];\n    };\n    EMAIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            EMApercent = 2 / (period + 1),\n            EMA = [],\n            xData = [],\n            yData = [];\n        var calEMA,\n            EMAPoint,\n            i,\n            index = -1,\n            sum = 0,\n            SMA = 0;\n        // Check period, if bigger than points length, skip\n        if (yValLen < period) {\n            return;\n        }\n        // Switch index for OHLC / Candlestick / Arearange\n        if (EMAIndicator_isArray(yVal[0])) {\n            index = params.index ? params.index : 0;\n        }\n        // Accumulate first N-points\n        sum = this.accumulatePeriodPoints(period, index, yVal);\n        // First point\n        SMA = sum / period;\n        // Calculate value one-by-one for each period in visible data\n        for (i = period; i < yValLen + 1; i++) {\n            EMAPoint = this.calculateEma(xVal, yVal, i, EMApercent, calEMA, index, SMA);\n            EMA.push(EMAPoint);\n            xData.push(EMAPoint[0]);\n            yData.push(EMAPoint[1]);\n            calEMA = EMAPoint[1];\n        }\n        return {\n            values: EMA,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Exponential moving average indicator (EMA). This series requires the\n     * `linkedTo` option to be set.\n     *\n     * @sample stock/indicators/ema\n     * Exponential moving average indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @optionparent plotOptions.ema\n     */\n    EMAIndicator.defaultOptions = EMAIndicator_merge(EMAIndicator_SMAIndicator.defaultOptions, {\n        params: {\n            /**\n             * The point index which indicator calculations will base. For\n             * example using OHLC data, index=2 means the indicator will be\n             * calculated using Low values.\n             *\n             * By default index value used to be set to 0. Since\n             * Highcharts Stock 7 by default index is set to 3\n             * which means that the ema indicator will be\n             * calculated using Close values.\n             */\n            index: 3,\n            period: 9 // @merge 14 in v6.2\n        }\n    });\n    return EMAIndicator;\n}(EMAIndicator_SMAIndicator));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('ema', EMAIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var EMA_EMAIndicator = ((/* unused pure expression or super */ null && (EMAIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `EMA` series. If the [type](#series.ema.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.ema\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @apioption series.ema\n */\n''; // Adds doclet above to the transpiled file\n\n;// ./code/es5/es-modules/Stock/Indicators/AD/ADIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n * */\n\nvar ADIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar ADIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar ADIndicator_error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error, ADIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, ADIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The AD series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.ad\n *\n * @augments Highcharts.Series\n */\nvar ADIndicator = /** @class */ (function (_super) {\n    ADIndicator_extends(ADIndicator, _super);\n    function ADIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Static Functions\n     *\n     * */\n    ADIndicator.populateAverage = function (xVal, yVal, yValVolume, i, \n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    _period) {\n        var high = yVal[i][1],\n            low = yVal[i][2],\n            close = yVal[i][3],\n            volume = yValVolume[i],\n            adY = close === high && close === low || high === low ?\n                0 :\n                ((2 * close - low - high) / (high - low)) * volume,\n            adX = xVal[i];\n        return [adX, adY];\n    };\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    ADIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            volumeSeriesID = params.volumeSeriesID,\n            volumeSeries = series.chart.get(volumeSeriesID),\n            yValVolume = volumeSeries === null || volumeSeries === void 0 ? void 0 : volumeSeries.getColumn('y'),\n            yValLen = yVal ? yVal.length : 0,\n            AD = [],\n            xData = [],\n            yData = [];\n        var len,\n            i,\n            ADPoint;\n        if (xVal.length <= period &&\n            yValLen &&\n            yVal[0].length !== 4) {\n            return;\n        }\n        if (!volumeSeries) {\n            ADIndicator_error('Series ' +\n                volumeSeriesID +\n                ' not found! Check `volumeSeriesID`.', true, series.chart);\n            return;\n        }\n        // When i = period <-- skip first N-points\n        // Calculate value one-by-one for each period in visible data\n        for (i = period; i < yValLen; i++) {\n            len = AD.length;\n            ADPoint = ADIndicator.populateAverage(xVal, yVal, yValVolume, i, period);\n            if (len > 0) {\n                ADPoint[1] += AD[len - 1][1];\n            }\n            AD.push(ADPoint);\n            xData.push(ADPoint[0]);\n            yData.push(ADPoint[1]);\n        }\n        return {\n            values: AD,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Accumulation Distribution (AD). This series requires `linkedTo` option to\n     * be set.\n     *\n     * @sample stock/indicators/accumulation-distribution\n     *         Accumulation/Distribution indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/accumulation-distribution\n     * @optionparent plotOptions.ad\n     */\n    ADIndicator.defaultOptions = ADIndicator_merge(ADIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * @excluding index\n         */\n        params: {\n            index: void 0, // Unused index, do not inherit (#15362)\n            /**\n             * The id of volume series which is mandatory.\n             * For example using OHLC data, volumeSeriesID='volume' means\n             * the indicator will be calculated using OHLC and volume values.\n             *\n             * @since 6.0.0\n             */\n            volumeSeriesID: 'volume'\n        }\n    });\n    return ADIndicator;\n}(ADIndicator_SMAIndicator));\nADIndicator_extend(ADIndicator.prototype, {\n    nameComponents: false,\n    nameBase: 'Accumulation/Distribution'\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('ad', ADIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var AD_ADIndicator = (ADIndicator);\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `AD` series. If the [type](#series.ad.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.ad\n * @since     6.0.0\n * @excluding dataParser, dataURL\n * @product   highstock\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/accumulation-distribution\n * @apioption series.ad\n */\n''; // Add doclet above to transpiled file\n\n;// ./code/es5/es-modules/Stock/Indicators/AO/AOIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar AOIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\nvar _a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, columnProto = _a.column.prototype, AOIndicator_SMAIndicator = _a.sma;\n\nvar AOIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, AOIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, AOIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, AOIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The AO series type\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.ao\n *\n * @augments Highcharts.Series\n */\nvar AOIndicator = /** @class */ (function (_super) {\n    AOIndicator_extends(AOIndicator, _super);\n    function AOIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    AOIndicator.prototype.drawGraph = function () {\n        var indicator = this,\n            options = indicator.options,\n            points = indicator.points,\n            userColor = indicator.userOptions.color,\n            positiveColor = options.greaterBarColor,\n            negativeColor = options.lowerBarColor,\n            firstPoint = points[0];\n        var i;\n        if (!userColor && firstPoint) {\n            firstPoint.color = positiveColor;\n            for (i = 1; i < points.length; i++) {\n                if (points[i].y > points[i - 1].y) {\n                    points[i].color = positiveColor;\n                }\n                else if (points[i].y < points[i - 1].y) {\n                    points[i].color = negativeColor;\n                }\n                else {\n                    points[i].color = points[i - 1].color;\n                }\n            }\n        }\n    };\n    AOIndicator.prototype.getValues = function (series) {\n        var shortPeriod = 5,\n            longPeriod = 34,\n            xVal = series.xData || [],\n            yVal = series.yData || [],\n            yValLen = yVal.length,\n            AO = [], // 0- date, 1- Awesome Oscillator\n            xData = [],\n            yData = [],\n            high = 1,\n            low = 2;\n        var shortSMA, // Shorter Period SMA\n            longSMA, // Longer Period SMA\n            awesome,\n            shortLastIndex,\n            longLastIndex,\n            price,\n            i,\n            j,\n            longSum = 0,\n            shortSum = 0;\n        if (xVal.length <= longPeriod ||\n            !AOIndicator_isArray(yVal[0]) ||\n            yVal[0].length !== 4) {\n            return;\n        }\n        for (i = 0; i < longPeriod - 1; i++) {\n            price = (yVal[i][high] + yVal[i][low]) / 2;\n            if (i >= longPeriod - shortPeriod) {\n                shortSum = AOIndicator_correctFloat(shortSum + price);\n            }\n            longSum = AOIndicator_correctFloat(longSum + price);\n        }\n        for (j = longPeriod - 1; j < yValLen; j++) {\n            price = (yVal[j][high] + yVal[j][low]) / 2;\n            shortSum = AOIndicator_correctFloat(shortSum + price);\n            longSum = AOIndicator_correctFloat(longSum + price);\n            shortSMA = shortSum / shortPeriod;\n            longSMA = longSum / longPeriod;\n            awesome = AOIndicator_correctFloat(shortSMA - longSMA);\n            AO.push([xVal[j], awesome]);\n            xData.push(xVal[j]);\n            yData.push(awesome);\n            shortLastIndex = j + 1 - shortPeriod;\n            longLastIndex = j + 1 - longPeriod;\n            shortSum = AOIndicator_correctFloat(shortSum -\n                (yVal[shortLastIndex][high] +\n                    yVal[shortLastIndex][low]) / 2);\n            longSum = AOIndicator_correctFloat(longSum -\n                (yVal[longLastIndex][high] +\n                    yVal[longLastIndex][low]) / 2);\n        }\n        return {\n            values: AO,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Awesome Oscillator. This series requires the `linkedTo` option to\n     * be set and should be loaded after the `stock/indicators/indicators.js`\n     *\n     * @sample {highstock} stock/indicators/ao\n     *         Awesome\n     *\n     * @extends      plotOptions.sma\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, joinBy, keys, navigatorOptions,\n     *               params, pointInterval, pointIntervalUnit, pointPlacement,\n     *               pointRange, pointStart, showInNavigator, stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/ao\n     * @optionparent plotOptions.ao\n     */\n    AOIndicator.defaultOptions = AOIndicator_merge(AOIndicator_SMAIndicator.defaultOptions, {\n        params: {\n            // Index and period are unchangeable, do not inherit (#15362)\n            index: void 0,\n            period: void 0\n        },\n        /**\n         * Color of the Awesome oscillator series bar that is greater than the\n         * previous one. Note that if a `color` is defined, the `color`\n         * takes precedence and the `greaterBarColor` is ignored.\n         *\n         * @sample {highstock} stock/indicators/ao/\n         *         greaterBarColor\n         *\n         * @type  {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n         * @since 7.0.0\n         */\n        greaterBarColor: \"#06b535\" /* Palette.positiveColor */,\n        /**\n         * Color of the Awesome oscillator series bar that is lower than the\n         * previous one. Note that if a `color` is defined, the `color`\n         * takes precedence and the `lowerBarColor` is ignored.\n         *\n         * @sample {highstock} stock/indicators/ao/\n         *         lowerBarColor\n         *\n         * @type  {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n         * @since 7.0.0\n         */\n        lowerBarColor: \"#f21313\" /* Palette.negativeColor */,\n        threshold: 0,\n        groupPadding: 0.2,\n        pointPadding: 0.2,\n        crisp: false,\n        states: {\n            hover: {\n                halo: {\n                    size: 0\n                }\n            }\n        }\n    });\n    return AOIndicator;\n}(AOIndicator_SMAIndicator));\nAOIndicator_extend(AOIndicator.prototype, {\n    nameBase: 'AO',\n    nameComponents: void 0,\n    // Columns support:\n    markerAttribs: noop,\n    getColumnMetrics: columnProto.getColumnMetrics,\n    crispCol: columnProto.crispCol,\n    translate: columnProto.translate,\n    drawPoints: columnProto.drawPoints\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('ao', AOIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var AO_AOIndicator = ((/* unused pure expression or super */ null && (AOIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * An `AO` series. If the [type](#series.ao.type)\n * option is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.ao\n * @since     7.0.0\n * @product   highstock\n * @excluding allAreas, colorAxis, dataParser, dataURL, joinBy, keys,\n *            navigatorOptions, pointInterval, pointIntervalUnit,\n *            pointPlacement, pointRange, pointStart, showInNavigator, stacking\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/ao\n * @apioption series.ao\n */\n''; // For including the above in the doclets\n\n;// ./code/es5/es-modules/Stock/Indicators/MultipleLinesComposition.js\n/**\n *\n *  (c) 2010-2024 Wojciech Chmiel\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar smaProto = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma.prototype;\n\nvar defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, MultipleLinesComposition_error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error, MultipleLinesComposition_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Composition\n *\n * */\nvar MultipleLinesComposition;\n(function (MultipleLinesComposition) {\n    /* *\n     *\n     *  Declarations\n     *\n     * */\n    /* *\n     *\n     *  Constants\n     *\n     * */\n    /**\n     * Additional lines DOCS names. Elements of linesApiNames array should\n     * be consistent with DOCS line names defined in your implementation.\n     * Notice that linesApiNames should have decreased amount of elements\n     * relative to pointArrayMap (without pointValKey).\n     *\n     * @private\n     * @type {Array<string>}\n     */\n    var linesApiNames = ['bottomLine'];\n    /**\n     * Lines ids. Required to plot appropriate amount of lines.\n     * Notice that pointArrayMap should have more elements than\n     * linesApiNames, because it contains main line and additional lines ids.\n     * Also it should be consistent with amount of lines calculated in\n     * getValues method from your implementation.\n     *\n     * @private\n     * @type {Array<string>}\n     */\n    var pointArrayMap = ['top', 'bottom'];\n    /**\n     * Names of the lines, between which the area should be plotted.\n     * If the drawing of the area should\n     * be disabled for some indicators, leave this option as an empty array.\n     * Names should be the same as the names in the pointArrayMap.\n     *\n     * @private\n     * @type {Array<string>}\n     */\n    var areaLinesNames = ['top'];\n    /**\n     * Main line id.\n     *\n     * @private\n     * @type {string}\n     */\n    var pointValKey = 'top';\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /**\n     * Composition useful for all indicators that have more than one line.\n     * Compose it with your implementation where you will provide the\n     * `getValues` method appropriate to your indicator and `pointArrayMap`,\n     * `pointValKey`, `linesApiNames` properties. Notice that `pointArrayMap`\n     * should be consistent with the amount of lines calculated in the\n     * `getValues` method.\n     *\n     * @private\n     */\n    function compose(IndicatorClass) {\n        var proto = IndicatorClass.prototype;\n        proto.linesApiNames = (proto.linesApiNames ||\n            linesApiNames.slice());\n        proto.pointArrayMap = (proto.pointArrayMap ||\n            pointArrayMap.slice());\n        proto.pointValKey = (proto.pointValKey ||\n            pointValKey);\n        proto.areaLinesNames = (proto.areaLinesNames ||\n            areaLinesNames.slice());\n        proto.drawGraph = indicatorDrawGraph;\n        proto.getGraphPath = indicatorGetGraphPath;\n        proto.toYData = indicatorToYData;\n        proto.translate = indicatorTranslate;\n        return IndicatorClass;\n    }\n    MultipleLinesComposition.compose = compose;\n    /**\n     * Generate the API name of the line\n     *\n     * @private\n     * @param propertyName name of the line\n     */\n    function getLineName(propertyName) {\n        return ('plot' +\n            propertyName.charAt(0).toUpperCase() +\n            propertyName.slice(1));\n    }\n    /**\n     * Create translatedLines Collection based on pointArrayMap.\n     *\n     * @private\n     * @param {string} [excludedValue]\n     *        Main line id\n     * @return {Array<string>}\n     *         Returns translated lines names without excluded value.\n     */\n    function getTranslatedLinesNames(indicator, excludedValue) {\n        var translatedLines = [];\n        (indicator.pointArrayMap || []).forEach(function (propertyName) {\n            if (propertyName !== excludedValue) {\n                translatedLines.push(getLineName(propertyName));\n            }\n        });\n        return translatedLines;\n    }\n    /**\n     * Draw main and additional lines.\n     *\n     * @private\n     */\n    function indicatorDrawGraph() {\n        var indicator = this,\n            pointValKey = indicator.pointValKey,\n            linesApiNames = indicator.linesApiNames,\n            areaLinesNames = indicator.areaLinesNames,\n            mainLinePoints = indicator.points,\n            mainLineOptions = indicator.options,\n            mainLinePath = indicator.graph,\n            gappedExtend = {\n                options: {\n                    gapSize: mainLineOptions.gapSize\n                }\n            }, \n            // Additional lines point place holders:\n            secondaryLines = [],\n            secondaryLinesNames = getTranslatedLinesNames(indicator,\n            pointValKey);\n        var pointsLength = mainLinePoints.length,\n            point;\n        // Generate points for additional lines:\n        secondaryLinesNames.forEach(function (plotLine, index) {\n            // Create additional lines point place holders\n            secondaryLines[index] = [];\n            while (pointsLength--) {\n                point = mainLinePoints[pointsLength];\n                secondaryLines[index].push({\n                    x: point.x,\n                    plotX: point.plotX,\n                    plotY: point[plotLine],\n                    isNull: !defined(point[plotLine])\n                });\n            }\n            pointsLength = mainLinePoints.length;\n        });\n        // Modify options and generate area fill:\n        if (indicator.userOptions.fillColor && areaLinesNames.length) {\n            var index = secondaryLinesNames.indexOf(getLineName(areaLinesNames[0])),\n                secondLinePoints = secondaryLines[index],\n                firstLinePoints = areaLinesNames.length === 1 ?\n                    mainLinePoints :\n                    secondaryLines[secondaryLinesNames.indexOf(getLineName(areaLinesNames[1]))],\n                originalColor = indicator.color;\n            indicator.points = firstLinePoints;\n            indicator.nextPoints = secondLinePoints;\n            indicator.color = indicator.userOptions.fillColor;\n            indicator.options = MultipleLinesComposition_merge(mainLinePoints, gappedExtend);\n            indicator.graph = indicator.area;\n            indicator.fillGraph = true;\n            smaProto.drawGraph.call(indicator);\n            indicator.area = indicator.graph;\n            // Clean temporary properties:\n            delete indicator.nextPoints;\n            delete indicator.fillGraph;\n            indicator.color = originalColor;\n        }\n        // Modify options and generate additional lines:\n        linesApiNames.forEach(function (lineName, i) {\n            if (secondaryLines[i]) {\n                indicator.points = secondaryLines[i];\n                if (mainLineOptions[lineName]) {\n                    indicator.options = MultipleLinesComposition_merge(mainLineOptions[lineName].styles, gappedExtend);\n                }\n                else {\n                    MultipleLinesComposition_error('Error: \"There is no ' + lineName +\n                        ' in DOCS options declared. Check if linesApiNames' +\n                        ' are consistent with your DOCS line names.\"');\n                }\n                indicator.graph = indicator['graph' + lineName];\n                smaProto.drawGraph.call(indicator);\n                // Now save lines:\n                indicator['graph' + lineName] = indicator.graph;\n            }\n            else {\n                MultipleLinesComposition_error('Error: \"' + lineName + ' doesn\\'t have equivalent ' +\n                    'in pointArrayMap. To many elements in linesApiNames ' +\n                    'relative to pointArrayMap.\"');\n            }\n        });\n        // Restore options and draw a main line:\n        indicator.points = mainLinePoints;\n        indicator.options = mainLineOptions;\n        indicator.graph = mainLinePath;\n        smaProto.drawGraph.call(indicator);\n    }\n    /**\n     * Create the path based on points provided as argument.\n     * If indicator.nextPoints option is defined, create the areaFill.\n     *\n     * @private\n     * @param points Points on which the path should be created\n     */\n    function indicatorGetGraphPath(points) {\n        var areaPath,\n            path = [],\n            higherAreaPath = [];\n        points = points || this.points;\n        // Render Span\n        if (this.fillGraph && this.nextPoints) {\n            areaPath = smaProto.getGraphPath.call(this, this.nextPoints);\n            if (areaPath && areaPath.length) {\n                areaPath[0][0] = 'L';\n                path = smaProto.getGraphPath.call(this, points);\n                higherAreaPath = areaPath.slice(0, path.length);\n                // Reverse points, so that the areaFill will start from the end:\n                for (var i = higherAreaPath.length - 1; i >= 0; i--) {\n                    path.push(higherAreaPath[i]);\n                }\n            }\n        }\n        else {\n            path = smaProto.getGraphPath.apply(this, arguments);\n        }\n        return path;\n    }\n    /**\n     * @private\n     * @param {Highcharts.Point} point\n     *        Indicator point\n     * @return {Array<number>}\n     *         Returns point Y value for all lines\n     */\n    function indicatorToYData(point) {\n        var pointColl = [];\n        (this.pointArrayMap || []).forEach(function (propertyName) {\n            pointColl.push(point[propertyName]);\n        });\n        return pointColl;\n    }\n    /**\n     * Add lines plot pixel values.\n     *\n     * @private\n     */\n    function indicatorTranslate() {\n        var _this = this;\n        var pointArrayMap = this.pointArrayMap;\n        var LinesNames = [],\n            value;\n        LinesNames = getTranslatedLinesNames(this);\n        smaProto.translate.apply(this, arguments);\n        this.points.forEach(function (point) {\n            pointArrayMap.forEach(function (propertyName, i) {\n                value = point[propertyName];\n                // If the modifier, like for example compare exists,\n                // modified the original value by that method, #15867.\n                if (_this.dataModify) {\n                    value = _this.dataModify.modifyValue(value);\n                }\n                if (value !== null) {\n                    point[LinesNames[i]] = _this.yAxis.toPixels(value, true);\n                }\n            });\n        });\n    }\n})(MultipleLinesComposition || (MultipleLinesComposition = {}));\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var Indicators_MultipleLinesComposition = (MultipleLinesComposition);\n\n;// ./code/es5/es-modules/Stock/Indicators/Aroon/AroonIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar AroonIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar AroonIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar AroonIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, AroonIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, AroonIndicator_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n *  Functions\n *\n * */\n// Utils\n// Index of element with extreme value from array (min or max)\n/**\n * @private\n */\nfunction getExtremeIndexInArray(arr, extreme) {\n    var extremeValue = arr[0],\n        valueIndex = 0,\n        i;\n    for (i = 1; i < arr.length; i++) {\n        if (extreme === 'max' && arr[i] >= extremeValue ||\n            extreme === 'min' && arr[i] <= extremeValue) {\n            extremeValue = arr[i];\n            valueIndex = i;\n        }\n    }\n    return valueIndex;\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Aroon series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.aroon\n *\n * @augments Highcharts.Series\n */\nvar AroonIndicator = /** @class */ (function (_super) {\n    AroonIndicator_extends(AroonIndicator, _super);\n    function AroonIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    AroonIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0, \n            // 0- date, 1- Aroon Up, 2- Aroon Down\n            AR = [],\n            xData = [],\n            yData = [],\n            low = 2,\n            high = 1;\n        var aroonUp,\n            aroonDown,\n            xLow,\n            xHigh,\n            i,\n            slicedY;\n        // For a N-period, we start from N-1 point, to calculate Nth point\n        // That is why we later need to comprehend slice() elements list\n        // with (+1)\n        for (i = period - 1; i < yValLen; i++) {\n            slicedY = yVal.slice(i - period + 1, i + 2);\n            xLow = getExtremeIndexInArray(slicedY.map(function (elem) {\n                return AroonIndicator_pick(elem[low], elem);\n            }), 'min');\n            xHigh = getExtremeIndexInArray(slicedY.map(function (elem) {\n                return AroonIndicator_pick(elem[high], elem);\n            }), 'max');\n            aroonUp = (xHigh / period) * 100;\n            aroonDown = (xLow / period) * 100;\n            if (xVal[i + 1]) {\n                AR.push([xVal[i + 1], aroonUp, aroonDown]);\n                xData.push(xVal[i + 1]);\n                yData.push([aroonUp, aroonDown]);\n            }\n        }\n        return {\n            values: AR,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Aroon. This series requires the `linkedTo` option to be\n     * set and should be loaded after the `stock/indicators/indicators.js`.\n     *\n     * @sample {highstock} stock/indicators/aroon\n     *         Aroon\n     *\n     * @extends      plotOptions.sma\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, compare, compareBase, joinBy, keys,\n     *               navigatorOptions, pointInterval, pointIntervalUnit,\n     *               pointPlacement, pointRange, pointStart, showInNavigator,\n     *               stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/aroon\n     * @optionparent plotOptions.aroon\n     */\n    AroonIndicator.defaultOptions = AroonIndicator_merge(AroonIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * Parameters used in calculation of aroon series points.\n         *\n         * @excluding index\n         */\n        params: {\n            index: void 0, // Unchangeable index, do not inherit (#15362)\n            period: 25\n        },\n        marker: {\n            enabled: false\n        },\n        tooltip: {\n            pointFormat: '<span style=\"color:{point.color}\">\\u25CF</span><b> {series.name}</b><br/>Aroon Up: {point.y}<br/>Aroon Down: {point.aroonDown}<br/>'\n        },\n        /**\n         * AroonDown line options.\n         */\n        aroonDown: {\n            /**\n             * Styles for an aroonDown line.\n             */\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line. If not set, it's inherited from\n                 * [plotOptions.aroon.color](#plotOptions.aroon.color).\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: void 0\n            }\n        },\n        dataGrouping: {\n            approximation: 'averages'\n        }\n    });\n    return AroonIndicator;\n}(AroonIndicator_SMAIndicator));\nAroonIndicator_extend(AroonIndicator.prototype, {\n    areaLinesNames: [],\n    linesApiNames: ['aroonDown'],\n    nameBase: 'Aroon',\n    pointArrayMap: ['y', 'aroonDown'],\n    pointValKey: 'y'\n});\nIndicators_MultipleLinesComposition.compose(AroonIndicator);\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('aroon', AroonIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var Aroon_AroonIndicator = ((/* unused pure expression or super */ null && (AroonIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A Aroon indicator. If the [type](#series.aroon.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.aroon\n * @since     7.0.0\n * @product   highstock\n * @excluding allAreas, colorAxis, compare, compareBase, dataParser, dataURL,\n *            joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,\n *            pointPlacement, pointRange, pointStart, showInNavigator, stacking\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/aroon\n * @apioption series.aroon\n */\n''; // To avoid removal of the above jsdoc\n\n;// ./code/es5/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar AroonOscillatorIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar AroonOscillatorIndicator_AroonIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.aroon;\n\nvar AroonOscillatorIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, AroonOscillatorIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Aroon Oscillator series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.aroonoscillator\n *\n * @augments Highcharts.Series\n */\nvar AroonOscillatorIndicator = /** @class */ (function (_super) {\n    AroonOscillatorIndicator_extends(AroonOscillatorIndicator, _super);\n    function AroonOscillatorIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    AroonOscillatorIndicator.prototype.getValues = function (series, params) {\n        // 0- date, 1- Aroon Oscillator\n        var ARO = [],\n            xData = [],\n            yData = [];\n        var aroonUp,\n            aroonDown,\n            oscillator,\n            i;\n        var aroon = _super.prototype.getValues.call(this,\n            series,\n            params);\n        for (i = 0; i < aroon.yData.length; i++) {\n            aroonUp = aroon.yData[i][0];\n            aroonDown = aroon.yData[i][1];\n            oscillator = aroonUp - aroonDown;\n            ARO.push([aroon.xData[i], oscillator]);\n            xData.push(aroon.xData[i]);\n            yData.push(oscillator);\n        }\n        return {\n            values: ARO,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Aroon Oscillator. This series requires the `linkedTo` option to be set\n     * and should be loaded after the `stock/indicators/indicators.js` and\n     * `stock/indicators/aroon.js`.\n     *\n     * @sample {highstock} stock/indicators/aroon-oscillator\n     *         Aroon Oscillator\n     *\n     * @extends      plotOptions.aroon\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, aroonDown, colorAxis, compare, compareBase,\n     *               joinBy, keys, navigatorOptions, pointInterval,\n     *               pointIntervalUnit, pointPlacement, pointRange, pointStart,\n     *               showInNavigator, stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/aroon\n     * @requires     stock/indicators/aroon-oscillator\n     * @optionparent plotOptions.aroonoscillator\n     */\n    AroonOscillatorIndicator.defaultOptions = AroonOscillatorIndicator_merge(AroonOscillatorIndicator_AroonIndicator.defaultOptions, {\n        tooltip: {\n            pointFormat: '<span style=\"color:{point.color}\">\\u25CF</span><b> {series.name}</b>: {point.y}'\n        }\n    });\n    return AroonOscillatorIndicator;\n}(AroonOscillatorIndicator_AroonIndicator));\nAroonOscillatorIndicator_extend(AroonOscillatorIndicator.prototype, {\n    nameBase: 'Aroon Oscillator',\n    linesApiNames: [],\n    pointArrayMap: ['y'],\n    pointValKey: 'y'\n});\nIndicators_MultipleLinesComposition.compose(AroonOscillatorIndicator_AroonIndicator);\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('aroonoscillator', AroonOscillatorIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var AroonOscillator_AroonOscillatorIndicator = ((/* unused pure expression or super */ null && (AroonOscillatorIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * An `Aroon Oscillator` series. If the [type](#series.aroonoscillator.type)\n * option is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.aroonoscillator\n * @since     7.0.0\n * @product   highstock\n * @excluding allAreas, aroonDown, colorAxis, compare, compareBase, dataParser,\n *            dataURL, joinBy, keys, navigatorOptions, pointInterval,\n *            pointIntervalUnit, pointPlacement, pointRange, pointStart,\n *            showInNavigator, stacking\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/aroon\n * @requires  stock/indicators/aroon-oscillator\n * @apioption series.aroonoscillator\n */\n''; // Adds doclet above to the transpiled file\n\n;// ./code/es5/es-modules/Stock/Indicators/ATR/ATRIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ATRIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar ATRIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar ATRIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, ATRIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Functions\n *\n * */\n// Utils:\n/**\n * @private\n */\nfunction accumulateAverage(points, xVal, yVal, i) {\n    var xValue = xVal[i],\n        yValue = yVal[i];\n    points.push([xValue, yValue]);\n}\n/**\n * @private\n */\nfunction getTR(currentPoint, prevPoint) {\n    var pointY = currentPoint, prevY = prevPoint, HL = pointY[1] - pointY[2], HCp = typeof prevY === 'undefined' ? 0 : Math.abs(pointY[1] - prevY[3]), LCp = typeof prevY === 'undefined' ? 0 : Math.abs(pointY[2] - prevY[3]), TR = Math.max(HL, HCp, LCp);\n    return TR;\n}\n/**\n * @private\n */\nfunction populateAverage(points, xVal, yVal, i, period, prevATR) {\n    var x = xVal[i - 1],\n        TR = getTR(yVal[i - 1],\n        yVal[i - 2]),\n        y = (((prevATR * (period - 1)) + TR) / period);\n    return [x, y];\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The ATR series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.atr\n *\n * @augments Highcharts.Series\n */\nvar ATRIndicator = /** @class */ (function (_super) {\n    ATRIndicator_extends(ATRIndicator, _super);\n    function ATRIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    ATRIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            xValue = xVal[0],\n            yValue = yVal[0],\n            points = [[xValue,\n            yValue]],\n            ATR = [],\n            xData = [],\n            yData = [];\n        var point,\n            i,\n            prevATR = 0,\n            range = 1,\n            TR = 0;\n        if ((xVal.length <= period) ||\n            !ATRIndicator_isArray(yVal[0]) ||\n            yVal[0].length !== 4) {\n            return;\n        }\n        for (i = 1; i <= yValLen; i++) {\n            accumulateAverage(points, xVal, yVal, i);\n            if (period < range) {\n                point = populateAverage(points, xVal, yVal, i, period, prevATR);\n                prevATR = point[1];\n                ATR.push(point);\n                xData.push(point[0]);\n                yData.push(point[1]);\n            }\n            else if (period === range) {\n                prevATR = TR / (i - 1);\n                ATR.push([xVal[i - 1], prevATR]);\n                xData.push(xVal[i - 1]);\n                yData.push(prevATR);\n                range++;\n            }\n            else {\n                TR += getTR(yVal[i - 1], yVal[i - 2]);\n                range++;\n            }\n        }\n        return {\n            values: ATR,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Average true range indicator (ATR). This series requires `linkedTo`\n     * option to be set.\n     *\n     * @sample stock/indicators/atr\n     *         ATR indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/atr\n     * @optionparent plotOptions.atr\n     */\n    ATRIndicator.defaultOptions = ATRIndicator_merge(ATRIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * @excluding index\n         */\n        params: {\n            index: void 0 // Unused index, do not inherit (#15362)\n        }\n    });\n    return ATRIndicator;\n}(ATRIndicator_SMAIndicator));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('atr', ATRIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var ATR_ATRIndicator = ((/* unused pure expression or super */ null && (ATRIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `ATR` series. If the [type](#series.atr.type) option is not specified, it\n * is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.atr\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/atr\n * @apioption series.atr\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/BB/BBIndicator.js\n/**\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar BBIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar BBIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar BBIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, BBIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, BBIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Functions\n *\n * */\n// Utils:\n/**\n * @private\n */\nfunction getStandardDeviation(arr, index, isOHLC, mean) {\n    var arrLen = arr.length;\n    var i = 0,\n        std = 0,\n        value,\n        variance = 0;\n    for (; i < arrLen; i++) {\n        value = (isOHLC ? arr[i][index] : arr[i]) - mean;\n        variance += value * value;\n    }\n    variance = variance / (arrLen - 1);\n    std = Math.sqrt(variance);\n    return std;\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * Bollinger Bands series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.bb\n *\n * @augments Highcharts.Series\n */\nvar BBIndicator = /** @class */ (function (_super) {\n    BBIndicator_extends(BBIndicator, _super);\n    function BBIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    BBIndicator.prototype.init = function () {\n        highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.init.apply(this, arguments);\n        // Set default color for lines:\n        this.options = BBIndicator_merge({\n            topLine: {\n                styles: {\n                    lineColor: this.color\n                }\n            },\n            bottomLine: {\n                styles: {\n                    lineColor: this.color\n                }\n            }\n        }, this.options);\n    };\n    BBIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            standardDeviation = params.standardDeviation,\n            xData = [],\n            yData = [],\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0, \n            // 0- date, 1-middle line, 2-top line, 3-bottom line\n            BB = [];\n        // Middle line, top line and bottom line\n        var ML,\n            TL,\n            BL,\n            date,\n            slicedX,\n            slicedY,\n            stdDev,\n            point,\n            i;\n        if (xVal.length < period) {\n            return;\n        }\n        var isOHLC = BBIndicator_isArray(yVal[0]);\n        for (i = period; i <= yValLen; i++) {\n            slicedX = xVal.slice(i - period, i);\n            slicedY = yVal.slice(i - period, i);\n            point = highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.getValues.call(this, {\n                xData: slicedX,\n                yData: slicedY\n            }, params);\n            date = point.xData[0];\n            ML = point.yData[0];\n            stdDev = getStandardDeviation(slicedY, params.index, isOHLC, ML);\n            TL = ML + standardDeviation * stdDev;\n            BL = ML - standardDeviation * stdDev;\n            BB.push([date, TL, ML, BL]);\n            xData.push(date);\n            yData.push([TL, ML, BL]);\n        }\n        return {\n            values: BB,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Bollinger bands (BB). This series requires the `linkedTo` option to be\n     * set and should be loaded after the `stock/indicators/indicators.js` file.\n     *\n     * @sample stock/indicators/bollinger-bands\n     *         Bollinger bands\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/bollinger-bands\n     * @optionparent plotOptions.bb\n     */\n    BBIndicator.defaultOptions = BBIndicator_merge(BBIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * Option for fill color between lines in Bollinger Bands Indicator.\n         *\n         * @sample {highstock} stock/indicators/indicator-area-fill\n         *      Background fill between lines.\n         *\n         * @type      {Highcharts.ColorType}\n         * @since     9.3.2\n         * @apioption plotOptions.bb.fillColor\n         */\n        /**\n         * Parameters used in calculation of the regression points.\n         */\n        params: {\n            period: 20,\n            /**\n             * Standard deviation for top and bottom bands.\n             */\n            standardDeviation: 2,\n            index: 3\n        },\n        /**\n         * Bottom line options.\n         */\n        bottomLine: {\n            /**\n             * Styles for the bottom line.\n             */\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line. If not set, it's inherited from\n                 * [plotOptions.bb.color](#plotOptions.bb.color).\n                 *\n                 * @type  {Highcharts.ColorString}\n                 */\n                lineColor: void 0\n            }\n        },\n        /**\n         * Top line options.\n         *\n         * @extends plotOptions.bb.bottomLine\n         */\n        topLine: {\n            /**\n             * Styles for the top line.\n             */\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line. If not set, it's inherited from\n                 * [plotOptions.bb.color](#plotOptions.bb.color).\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: void 0\n            }\n        },\n        tooltip: {\n            pointFormat: '<span style=\"color:{point.color}\">\\u25CF</span><b> {series.name}</b><br/>Top: {point.top}<br/>Middle: {point.middle}<br/>Bottom: {point.bottom}<br/>'\n        },\n        marker: {\n            enabled: false\n        },\n        dataGrouping: {\n            approximation: 'averages'\n        }\n    });\n    return BBIndicator;\n}(BBIndicator_SMAIndicator));\nBBIndicator_extend(BBIndicator.prototype, {\n    areaLinesNames: ['top', 'bottom'],\n    linesApiNames: ['topLine', 'bottomLine'],\n    nameComponents: ['period', 'standardDeviation'],\n    pointArrayMap: ['top', 'middle', 'bottom'],\n    pointValKey: 'middle'\n});\nIndicators_MultipleLinesComposition.compose(BBIndicator);\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('bb', BBIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var BB_BBIndicator = ((/* unused pure expression or super */ null && (BBIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A bollinger bands indicator. If the [type](#series.bb.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.bb\n * @since     6.0.0\n * @excluding dataParser, dataURL\n * @product   highstock\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/bollinger-bands\n * @apioption series.bb\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/CCI/CCIIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n * */\n\nvar CCIIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar CCIIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar CCIIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, CCIIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Functions\n *\n * */\n// Utils:\n/**\n * @private\n */\nfunction sumArray(array) {\n    return array.reduce(function (prev, cur) {\n        return prev + cur;\n    }, 0);\n}\n/**\n * @private\n */\nfunction meanDeviation(arr, sma) {\n    var len = arr.length;\n    var sum = 0,\n        i;\n    for (i = 0; i < len; i++) {\n        sum += Math.abs(sma - (arr[i]));\n    }\n    return sum;\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The CCI series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.cci\n *\n * @augments Highcharts.Series\n */\nvar CCIIndicator = /** @class */ (function (_super) {\n    CCIIndicator_extends(CCIIndicator, _super);\n    function CCIIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    CCIIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            TP = [],\n            CCI = [],\n            xData = [],\n            yData = [];\n        var CCIPoint,\n            p,\n            periodTP = [],\n            len,\n            range = 1,\n            smaTP,\n            TPtemp,\n            meanDev,\n            i;\n        // CCI requires close value\n        if (xVal.length <= period ||\n            !CCIIndicator_isArray(yVal[0]) ||\n            yVal[0].length !== 4) {\n            return;\n        }\n        // Accumulate first N-points\n        while (range < period) {\n            p = yVal[range - 1];\n            TP.push((p[1] + p[2] + p[3]) / 3);\n            range++;\n        }\n        for (i = period; i <= yValLen; i++) {\n            p = yVal[i - 1];\n            TPtemp = (p[1] + p[2] + p[3]) / 3;\n            len = TP.push(TPtemp);\n            periodTP = TP.slice(len - period);\n            smaTP = sumArray(periodTP) / period;\n            meanDev = meanDeviation(periodTP, smaTP) / period;\n            CCIPoint = ((TPtemp - smaTP) / (0.015 * meanDev));\n            CCI.push([xVal[i - 1], CCIPoint]);\n            xData.push(xVal[i - 1]);\n            yData.push(CCIPoint);\n        }\n        return {\n            values: CCI,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Commodity Channel Index (CCI). This series requires `linkedTo` option to\n     * be set.\n     *\n     * @sample stock/indicators/cci\n     *         CCI indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/cci\n     * @optionparent plotOptions.cci\n     */\n    CCIIndicator.defaultOptions = CCIIndicator_merge(CCIIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * @excluding index\n         */\n        params: {\n            index: void 0 // Unused index, do not inherit (#15362)\n        }\n    });\n    return CCIIndicator;\n}(CCIIndicator_SMAIndicator));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('cci', CCIIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var CCI_CCIIndicator = ((/* unused pure expression or super */ null && (CCIIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `CCI` series. If the [type](#series.cci.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.cci\n * @since     6.0.0\n * @excluding dataParser, dataURL\n * @product   highstock\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/cci\n * @apioption series.cci\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/CMF/CMFIndicator.js\n/* *\n *\n *  (c) 2010-2024 Highsoft AS\n *\n *  Author: Sebastian Domas\n *\n *  Chaikin Money Flow indicator for Highcharts Stock\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar CMFIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar CMFIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar CMFIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The CMF series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.cmf\n *\n * @augments Highcharts.Series\n */\nvar CMFIndicator = /** @class */ (function (_super) {\n    CMFIndicator_extends(CMFIndicator, _super);\n    function CMFIndicator() {\n        /* *\n         *\n         *  Static Properties\n         *\n         * */\n        var _this = _super !== null && _super.apply(this,\n            arguments) || this;\n        _this.nameBase = 'Chaikin Money Flow';\n        return _this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /**\n     * Checks if the series and volumeSeries are accessible, number of\n     * points.x is longer than period, is series has OHLC data\n     * @private\n     * @param {Highcharts.CMFIndicator} this indicator to use.\n     * @return {boolean} True if series is valid and can be computed,\n     * otherwise false.\n     */\n    CMFIndicator.prototype.isValid = function () {\n        var _a;\n        var chart = this.chart,\n            options = this.options,\n            series = this.linkedParent,\n            volumeSeries = (this.volumeSeries ||\n                (this.volumeSeries =\n                    chart.get(options.params.volumeSeriesID))),\n            isSeriesOHLC = (((_a = series === null || series === void 0 ? void 0 : series.pointArrayMap) === null || _a === void 0 ? void 0 : _a.length) === 4);\n        /**\n         * @private\n         * @param {Highcharts.Series} serie to check length validity on.\n         * @return {boolean|undefined} true if length is valid.\n         */\n        function isLengthValid(serie) {\n            return serie.dataTable.rowCount >=\n                options.params.period;\n        }\n        return !!(series &&\n            volumeSeries &&\n            isLengthValid(series) &&\n            isLengthValid(volumeSeries) && isSeriesOHLC);\n    };\n    /**\n     * Returns indicator's data.\n     * @private\n     * @param {Highcharts.CMFIndicator} this indicator to use.\n     * @param {Highcharts.Series} series to calculate values from\n     * @param {Highcharts.CMFIndicatorParamsOptions} params to pass\n     * @return {boolean|Highcharts.IndicatorNullableValuesObject} Returns false if the\n     * indicator is not valid, otherwise returns Values object.\n     */\n    CMFIndicator.prototype.getValues = function (series, params) {\n        if (!this.isValid()) {\n            return;\n        }\n        return this.getMoneyFlow(series.xData, series.yData, this.volumeSeries.getColumn('y'), params.period);\n    };\n    /**\n     * @private\n     *\n     * @param {Array<number>} xData\n     * x timestamp values\n     *\n     * @param {Array<number>} seriesYData\n     * yData of basic series\n     *\n     * @param {Array<number>} volumeSeriesYData\n     * yData of volume series\n     *\n     * @param {number} period\n     * indicator's param\n     *\n     * @return {Highcharts.IndicatorNullableValuesObject}\n     * object containing computed money flow data\n     */\n    CMFIndicator.prototype.getMoneyFlow = function (xData, seriesYData, volumeSeriesYData, period) {\n        var len = seriesYData.length,\n            moneyFlowVolume = [],\n            moneyFlowXData = [],\n            moneyFlowYData = [],\n            values = [];\n        var i,\n            point,\n            nullIndex = -1,\n            sumVolume = 0,\n            sumMoneyFlowVolume = 0;\n        /**\n         * Calculates money flow volume, changes i, nullIndex vars from\n         * upper scope!\n         *\n         * @private\n         *\n         * @param {Array<number>} ohlc\n         * OHLC point\n         *\n         * @param {number} volume\n         * Volume point's y value\n         *\n         * @return {number|null}\n         * Volume * moneyFlowMultiplier\n         */\n        function getMoneyFlowVolume(ohlc, volume) {\n            var high = ohlc[1],\n                low = ohlc[2],\n                close = ohlc[3],\n                isValid = volume !== null &&\n                    high !== null &&\n                    low !== null &&\n                    close !== null &&\n                    high !== low;\n            /**\n             * @private\n             * @param {number} h\n             * High value\n             * @param {number} l\n             * Low value\n             * @param {number} c\n             * Close value\n             * @return {number}\n             * Calculated multiplier for the point\n             */\n            function getMoneyFlowMultiplier(h, l, c) {\n                return ((c - l) - (h - c)) / (h - l);\n            }\n            return isValid ?\n                getMoneyFlowMultiplier(high, low, close) * volume :\n                ((nullIndex = i), null);\n        }\n        if (period > 0 && period <= len) {\n            for (i = 0; i < period; i++) {\n                moneyFlowVolume[i] = getMoneyFlowVolume(seriesYData[i], volumeSeriesYData[i]);\n                sumVolume += volumeSeriesYData[i];\n                sumMoneyFlowVolume += moneyFlowVolume[i];\n            }\n            moneyFlowXData.push(xData[i - 1]);\n            moneyFlowYData.push(i - nullIndex >= period && sumVolume !== 0 ?\n                sumMoneyFlowVolume / sumVolume :\n                null);\n            values.push([moneyFlowXData[0], moneyFlowYData[0]]);\n            for (; i < len; i++) {\n                moneyFlowVolume[i] = getMoneyFlowVolume(seriesYData[i], volumeSeriesYData[i]);\n                sumVolume -= volumeSeriesYData[i - period];\n                sumVolume += volumeSeriesYData[i];\n                sumMoneyFlowVolume -= moneyFlowVolume[i - period];\n                sumMoneyFlowVolume += moneyFlowVolume[i];\n                point = [\n                    xData[i],\n                    i - nullIndex >= period ?\n                        sumMoneyFlowVolume / sumVolume :\n                        null\n                ];\n                moneyFlowXData.push(point[0]);\n                moneyFlowYData.push(point[1]);\n                values.push([point[0], point[1]]);\n            }\n        }\n        return {\n            values: values,\n            xData: moneyFlowXData,\n            yData: moneyFlowYData\n        };\n    };\n    /**\n     * Chaikin Money Flow indicator (cmf).\n     *\n     * @sample stock/indicators/cmf/\n     *         Chaikin Money Flow indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @excluding    animationLimit\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/cmf\n     * @optionparent plotOptions.cmf\n     */\n    CMFIndicator.defaultOptions = CMFIndicator_merge(CMFIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * @excluding index\n         */\n        params: {\n            index: void 0, // Unused index, do not inherit (#15362)\n            /**\n             * The id of another series to use its data as volume data for the\n             * indicator calculation.\n             */\n            volumeSeriesID: 'volume'\n        }\n    });\n    return CMFIndicator;\n}(CMFIndicator_SMAIndicator));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('cmf', CMFIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var CMF_CMFIndicator = ((/* unused pure expression or super */ null && (CMFIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `CMF` series. If the [type](#series.cmf.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.cmf\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/cmf\n * @apioption series.cmf\n */\n''; // Adds doclet above to the transpiled file\n\n;// ./code/es5/es-modules/Stock/Indicators/DMI/DMIIndicator.js\n/* *\n *  (c) 2010-2024 Rafal Sebestjanski\n *\n *  Directional Movement Index (DMI) indicator for Highcharts Stock\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar DMIIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar DMIIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar DMIIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, DMIIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, DMIIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, DMIIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Directional Movement Index (DMI) series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.dmi\n *\n * @augments Highcharts.Series\n */\nvar DMIIndicator = /** @class */ (function (_super) {\n    DMIIndicator_extends(DMIIndicator, _super);\n    function DMIIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    DMIIndicator.prototype.calculateDM = function (yVal, i, isPositiveDM) {\n        var currentHigh = yVal[i][1],\n            currentLow = yVal[i][2],\n            previousHigh = yVal[i - 1][1],\n            previousLow = yVal[i - 1][2];\n        var DM;\n        if (currentHigh - previousHigh > previousLow - currentLow) {\n            // For +DM\n            DM = isPositiveDM ? Math.max(currentHigh - previousHigh, 0) : 0;\n        }\n        else {\n            // For -DM\n            DM = !isPositiveDM ? Math.max(previousLow - currentLow, 0) : 0;\n        }\n        return DMIIndicator_correctFloat(DM);\n    };\n    DMIIndicator.prototype.calculateDI = function (smoothedDM, tr) {\n        return smoothedDM / tr * 100;\n    };\n    DMIIndicator.prototype.calculateDX = function (plusDI, minusDI) {\n        return DMIIndicator_correctFloat(Math.abs(plusDI - minusDI) / Math.abs(plusDI + minusDI) * 100);\n    };\n    DMIIndicator.prototype.smoothValues = function (accumulatedValues, currentValue, period) {\n        return DMIIndicator_correctFloat(accumulatedValues - accumulatedValues / period + currentValue);\n    };\n    DMIIndicator.prototype.getTR = function (currentPoint, prevPoint) {\n        return DMIIndicator_correctFloat(Math.max(\n        // `currentHigh - currentLow`\n        currentPoint[1] - currentPoint[2], \n        // `currentHigh - previousClose`\n        !prevPoint ? 0 : Math.abs(currentPoint[1] - prevPoint[3]), \n        // `currentLow - previousClose`\n        !prevPoint ? 0 : Math.abs(currentPoint[2] - prevPoint[3])));\n    };\n    DMIIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            DMI = [],\n            xData = [],\n            yData = [];\n        if (\n        // Check period, if bigger than points length, skip\n        (xVal.length <= period) ||\n            // Only ohlc data is valid\n            !DMIIndicator_isArray(yVal[0]) ||\n            yVal[0].length !== 4) {\n            return;\n        }\n        var prevSmoothedPlusDM = 0,\n            prevSmoothedMinusDM = 0,\n            prevSmoothedTR = 0,\n            i;\n        for (i = 1; i < yValLen; i++) {\n            var smoothedPlusDM = void 0,\n                smoothedMinusDM = void 0,\n                smoothedTR = void 0,\n                plusDM = // +DM\n                 void 0, // +DM\n                minusDM = // -DM\n                 void 0, // -DM\n                TR = void 0,\n                plusDI = // +DI\n                 void 0, // +DI\n                minusDI = // -DI\n                 void 0, // -DI\n                DX = void 0;\n            if (i <= period) {\n                plusDM = this.calculateDM(yVal, i, true);\n                minusDM = this.calculateDM(yVal, i);\n                TR = this.getTR(yVal[i], yVal[i - 1]);\n                // Accumulate first period values to smooth them later\n                prevSmoothedPlusDM += plusDM;\n                prevSmoothedMinusDM += minusDM;\n                prevSmoothedTR += TR;\n                // Get all values for the first point\n                if (i === period) {\n                    plusDI = this.calculateDI(prevSmoothedPlusDM, prevSmoothedTR);\n                    minusDI = this.calculateDI(prevSmoothedMinusDM, prevSmoothedTR);\n                    DX = this.calculateDX(prevSmoothedPlusDM, prevSmoothedMinusDM);\n                    DMI.push([xVal[i], DX, plusDI, minusDI]);\n                    xData.push(xVal[i]);\n                    yData.push([DX, plusDI, minusDI]);\n                }\n            }\n            else {\n                // Calculate current values\n                plusDM = this.calculateDM(yVal, i, true);\n                minusDM = this.calculateDM(yVal, i);\n                TR = this.getTR(yVal[i], yVal[i - 1]);\n                // Smooth +DM, -DM and TR\n                smoothedPlusDM = this.smoothValues(prevSmoothedPlusDM, plusDM, period);\n                smoothedMinusDM = this.smoothValues(prevSmoothedMinusDM, minusDM, period);\n                smoothedTR = this.smoothValues(prevSmoothedTR, TR, period);\n                // Save current smoothed values for the next step\n                prevSmoothedPlusDM = smoothedPlusDM;\n                prevSmoothedMinusDM = smoothedMinusDM;\n                prevSmoothedTR = smoothedTR;\n                // Get all next points (except the first one calculated above)\n                plusDI = this.calculateDI(prevSmoothedPlusDM, prevSmoothedTR);\n                minusDI = this.calculateDI(prevSmoothedMinusDM, prevSmoothedTR);\n                DX = this.calculateDX(prevSmoothedPlusDM, prevSmoothedMinusDM);\n                DMI.push([xVal[i], DX, plusDI, minusDI]);\n                xData.push(xVal[i]);\n                yData.push([DX, plusDI, minusDI]);\n            }\n        }\n        return {\n            values: DMI,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Directional Movement Index (DMI).\n     * This series requires the `linkedTo` option to be set and should\n     * be loaded after the `stock/indicators/indicators.js` file.\n     *\n     * @sample stock/indicators/dmi\n     *         DMI indicator\n     *\n     * @extends      plotOptions.sma\n     * @since 9.1.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, joinBy, keys, navigatorOptions,\n     *               pointInterval, pointIntervalUnit, pointPlacement,\n     *               pointRange, pointStart, showInNavigator, stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/dmi\n     * @optionparent plotOptions.dmi\n     */\n    DMIIndicator.defaultOptions = DMIIndicator_merge(DMIIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * @excluding index\n         */\n        params: {\n            index: void 0 // Unused index, do not inherit (#15362)\n        },\n        marker: {\n            enabled: false\n        },\n        tooltip: {\n            pointFormat: '<span style=\"color: {point.color}\">' +\n                '\\u25CF</span><b> {series.name}</b><br/>' +\n                '<span style=\"color: {point.color}\">DX</span>: {point.y}<br/>' +\n                '<span style=\"color: ' +\n                '{point.series.options.plusDILine.styles.lineColor}\">' +\n                '+DI</span>: {point.plusDI}<br/>' +\n                '<span style=\"color: ' +\n                '{point.series.options.minusDILine.styles.lineColor}\">' +\n                '-DI</span>: {point.minusDI}<br/>'\n        },\n        /**\n         * +DI line options.\n         */\n        plusDILine: {\n            /**\n             * Styles for the +DI line.\n             */\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line.\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: \"#06b535\" /* Palette.positiveColor */ // Green-ish\n            }\n        },\n        /**\n         * -DI line options.\n         */\n        minusDILine: {\n            /**\n             * Styles for the -DI line.\n             */\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line.\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: \"#f21313\" /* Palette.negativeColor */ // Red-ish\n            }\n        },\n        dataGrouping: {\n            approximation: 'averages'\n        }\n    });\n    return DMIIndicator;\n}(DMIIndicator_SMAIndicator));\nDMIIndicator_extend(DMIIndicator.prototype, {\n    areaLinesNames: [],\n    nameBase: 'DMI',\n    linesApiNames: ['plusDILine', 'minusDILine'],\n    pointArrayMap: ['y', 'plusDI', 'minusDI'],\n    parallelArrays: ['x', 'y', 'plusDI', 'minusDI'],\n    pointValKey: 'y'\n});\nIndicators_MultipleLinesComposition.compose(DMIIndicator);\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('dmi', DMIIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var DMI_DMIIndicator = ((/* unused pure expression or super */ null && (DMIIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * The Directional Movement Index (DMI) indicator series.\n * If the [type](#series.dmi.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.dmi\n * @since 9.1.0\n * @product   highstock\n * @excluding allAreas, colorAxis,  dataParser, dataURL, joinBy, keys,\n *            navigatorOptions, pointInterval, pointIntervalUnit,\n *            pointPlacement, pointRange, pointStart, showInNavigator, stacking\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/dmi\n * @apioption series.dmi\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/DPO/DPOIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar DPOIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar DPOIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar DPOIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, DPOIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, DPOIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, DPOIndicator_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n *  Functions\n *\n * */\n// Utils:\n/**\n * @private\n */\nfunction accumulatePoints(sum, yVal, i, index, subtract) {\n    var price = DPOIndicator_pick(yVal[i][index],\n        yVal[i]);\n    if (subtract) {\n        return DPOIndicator_correctFloat(sum - price);\n    }\n    return DPOIndicator_correctFloat(sum + price);\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The DPO series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.dpo\n *\n * @augments Highcharts.Series\n */\nvar DPOIndicator = /** @class */ (function (_super) {\n    DPOIndicator_extends(DPOIndicator, _super);\n    function DPOIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    DPOIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            index = params.index,\n            offset = Math.floor(period / 2 + 1),\n            range = period + offset,\n            xVal = series.xData || [],\n            yVal = series.yData || [],\n            yValLen = yVal.length, \n            // 0- date, 1- Detrended Price Oscillator\n            DPO = [],\n            xData = [],\n            yData = [];\n        var oscillator,\n            periodIndex,\n            rangeIndex,\n            price,\n            i,\n            j,\n            sum = 0;\n        if (xVal.length <= range) {\n            return;\n        }\n        // Accumulate first N-points for SMA\n        for (i = 0; i < period - 1; i++) {\n            sum = accumulatePoints(sum, yVal, i, index);\n        }\n        // Detrended Price Oscillator formula:\n        // DPO = Price - Simple moving average [from (n / 2 + 1) days ago]\n        for (j = 0; j <= yValLen - range; j++) {\n            periodIndex = j + period - 1;\n            rangeIndex = j + range - 1;\n            // Adding the last period point\n            sum = accumulatePoints(sum, yVal, periodIndex, index);\n            price = DPOIndicator_pick(yVal[rangeIndex][index], yVal[rangeIndex]);\n            oscillator = price - sum / period;\n            // Subtracting the first period point\n            sum = accumulatePoints(sum, yVal, j, index, true);\n            DPO.push([xVal[rangeIndex], oscillator]);\n            xData.push(xVal[rangeIndex]);\n            yData.push(oscillator);\n        }\n        return {\n            values: DPO,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Detrended Price Oscillator. This series requires the `linkedTo` option to\n     * be set and should be loaded after the `stock/indicators/indicators.js`.\n     *\n     * @sample {highstock} stock/indicators/dpo\n     *         Detrended Price Oscillator\n     *\n     * @extends      plotOptions.sma\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, compare, compareBase, joinBy, keys,\n     *               navigatorOptions, pointInterval, pointIntervalUnit,\n     *               pointPlacement, pointRange, pointStart, showInNavigator,\n     *               stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/dpo\n     * @optionparent plotOptions.dpo\n     */\n    DPOIndicator.defaultOptions = DPOIndicator_merge(DPOIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * Parameters used in calculation of Detrended Price Oscillator series\n         * points.\n         */\n        params: {\n            index: 0,\n            /**\n             * Period for Detrended Price Oscillator\n             */\n            period: 21\n        }\n    });\n    return DPOIndicator;\n}(DPOIndicator_SMAIndicator));\nDPOIndicator_extend(DPOIndicator.prototype, {\n    nameBase: 'DPO'\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('dpo', DPOIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var DPO_DPOIndicator = ((/* unused pure expression or super */ null && (DPOIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A Detrended Price Oscillator. If the [type](#series.dpo.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.dpo\n * @since     7.0.0\n * @product   highstock\n * @excluding allAreas, colorAxis, compare, compareBase, dataParser, dataURL,\n *            joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,\n *            pointPlacement, pointRange, pointStart, showInNavigator, stacking\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/dpo\n * @apioption series.dpo\n */\n''; // To include the above in the js output'\n\n;// ./code/es5/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ChaikinIndicator_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 // For historic reasons, AD is built into Chaikin\n\nvar ChaikinIndicator_EMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.ema;\n\nvar ChaikinIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, ChaikinIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, ChaikinIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, ChaikinIndicator_error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Chaikin series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.chaikin\n *\n * @augments Highcharts.Series\n */\nvar ChaikinIndicator = /** @class */ (function (_super) {\n    ChaikinIndicator_extends(ChaikinIndicator, _super);\n    function ChaikinIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    ChaikinIndicator.prototype.getValues = function (series, params) {\n        var periods = params.periods,\n            period = params.period, \n            // 0- date, 1- Chaikin Oscillator\n            CHA = [],\n            xData = [],\n            yData = [];\n        var oscillator,\n            i;\n        // Check if periods are correct\n        if (periods.length !== 2 || periods[1] <= periods[0]) {\n            ChaikinIndicator_error('Error: \"Chaikin requires two periods. Notice, first ' +\n                'period should be lower than the second one.\"');\n            return;\n        }\n        // Accumulation Distribution Line data\n        var ADL = AD_ADIndicator.prototype.getValues.call(this,\n            series, {\n                volumeSeriesID: params.volumeSeriesID,\n                period: period\n            });\n        // Check if adl is calculated properly, if not skip\n        if (!ADL) {\n            return;\n        }\n        // Shorter Period EMA\n        var SPE = _super.prototype.getValues.call(this,\n            ADL, {\n                period: periods[0]\n            });\n        // Longer Period EMA\n        var LPE = _super.prototype.getValues.call(this,\n            ADL, {\n                period: periods[1]\n            });\n        // Check if ema is calculated properly, if not skip\n        if (!SPE || !LPE) {\n            return;\n        }\n        var periodsOffset = periods[1] - periods[0];\n        for (i = 0; i < LPE.yData.length; i++) {\n            oscillator = ChaikinIndicator_correctFloat(SPE.yData[i + periodsOffset] -\n                LPE.yData[i]);\n            CHA.push([LPE.xData[i], oscillator]);\n            xData.push(LPE.xData[i]);\n            yData.push(oscillator);\n        }\n        return {\n            values: CHA,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Chaikin Oscillator. This series requires the `linkedTo` option to\n     * be set and should be loaded after the `stock/indicators/indicators.js`.\n     *\n     * @sample {highstock} stock/indicators/chaikin\n     *         Chaikin Oscillator\n     *\n     * @extends      plotOptions.ema\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, joinBy, keys, navigatorOptions,\n     *               pointInterval, pointIntervalUnit, pointPlacement,\n     *               pointRange, pointStart, showInNavigator, stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/chaikin\n     * @optionparent plotOptions.chaikin\n     */\n    ChaikinIndicator.defaultOptions = ChaikinIndicator_merge(ChaikinIndicator_EMAIndicator.defaultOptions, {\n        /**\n         * Parameters used in calculation of Chaikin Oscillator\n         * series points.\n         *\n         * @excluding index\n         */\n        params: {\n            index: void 0, // Unused index, do not inherit (#15362)\n            /**\n             * The id of volume series which is mandatory.\n             * For example using OHLC data, volumeSeriesID='volume' means\n             * the indicator will be calculated using OHLC and volume values.\n             */\n            volumeSeriesID: 'volume',\n            /**\n             * Parameter used indirectly for calculating the `AD` indicator.\n             * Decides about the number of data points that are taken\n             * into account for the indicator calculations.\n             */\n            period: 9,\n            /**\n             * Periods for Chaikin Oscillator calculations.\n             *\n             * @type    {Array<number>}\n             * @default [3, 10]\n             */\n            periods: [3, 10]\n        }\n    });\n    return ChaikinIndicator;\n}(ChaikinIndicator_EMAIndicator));\nChaikinIndicator_extend(ChaikinIndicator.prototype, {\n    nameBase: 'Chaikin Osc',\n    nameComponents: ['periods']\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('chaikin', ChaikinIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var Chaikin_ChaikinIndicator = ((/* unused pure expression or super */ null && (ChaikinIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `Chaikin Oscillator` series. If the [type](#series.chaikin.type)\n * option is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.chaikin\n * @since     7.0.0\n * @product   highstock\n * @excluding allAreas, colorAxis, dataParser, dataURL, joinBy, keys,\n *            navigatorOptions, pointInterval, pointIntervalUnit,\n *            pointPlacement, pointRange, pointStart, stacking, showInNavigator\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/chaikin\n * @apioption series.chaikin\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/CMO/CMOIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar CMOIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar CMOIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, CMOIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The CMO series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.cmo\n *\n * @augments Highcharts.Series\n */\nvar CMOIndicator = /** @class */ (function (_super) {\n    CMOIndicator_extends(CMOIndicator, _super);\n    function CMOIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    CMOIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            CMO = [],\n            xData = [],\n            yData = [];\n        var i,\n            index = params.index,\n            values;\n        if (xVal.length < period) {\n            return;\n        }\n        if (isNumber(yVal[0])) {\n            values = yVal;\n        }\n        else {\n            // In case of the situation, where the series type has data length\n            // shorter then 4 (HLC, range), this ensures that we are not trying\n            // to reach the index out of bounds\n            index = Math.min(index, yVal[0].length - 1);\n            values = yVal.map(function (value) { return value[index]; });\n        }\n        var firstAddedSum = 0,\n            sumOfHigherValues = 0,\n            sumOfLowerValues = 0,\n            y;\n        // Calculate first point, check if the first value\n        // was added to sum of higher/lower values, and what was the value.\n        for (var j = period; j > 0; j--) {\n            if (values[j] > values[j - 1]) {\n                sumOfHigherValues += values[j] - values[j - 1];\n            }\n            else if (values[j] < values[j - 1]) {\n                sumOfLowerValues += values[j - 1] - values[j];\n            }\n        }\n        // You might divide by 0 if all values are equal,\n        // so return 0 in this case.\n        y =\n            sumOfHigherValues + sumOfLowerValues > 0 ?\n                (100 * (sumOfHigherValues - sumOfLowerValues)) /\n                    (sumOfHigherValues + sumOfLowerValues) :\n                0;\n        xData.push(xVal[period]);\n        yData.push(y);\n        CMO.push([xVal[period], y]);\n        for (i = period + 1; i < yValLen; i++) {\n            firstAddedSum = Math.abs(values[i - period - 1] - values[i - period]);\n            if (values[i] > values[i - 1]) {\n                sumOfHigherValues += values[i] - values[i - 1];\n            }\n            else if (values[i] < values[i - 1]) {\n                sumOfLowerValues += values[i - 1] - values[i];\n            }\n            // Check, to which sum was the first value added to,\n            // and subtract this value from given sum.\n            if (values[i - period] > values[i - period - 1]) {\n                sumOfHigherValues -= firstAddedSum;\n            }\n            else {\n                sumOfLowerValues -= firstAddedSum;\n            }\n            // Same as above.\n            y =\n                sumOfHigherValues + sumOfLowerValues > 0 ?\n                    (100 * (sumOfHigherValues - sumOfLowerValues)) /\n                        (sumOfHigherValues + sumOfLowerValues) :\n                    0;\n            xData.push(xVal[i]);\n            yData.push(y);\n            CMO.push([xVal[i], y]);\n        }\n        return {\n            values: CMO,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Chande Momentum Oscilator (CMO) technical indicator. This series\n     * requires the `linkedTo` option to be set and should be loaded after\n     * the `stock/indicators/indicators.js` file.\n     *\n     * @sample stock/indicators/cmo\n     *         CMO indicator\n     *\n     * @extends      plotOptions.sma\n     * @since 9.1.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/cmo\n     * @optionparent plotOptions.cmo\n     */\n    CMOIndicator.defaultOptions = CMOIndicator_merge(CMOIndicator_SMAIndicator.defaultOptions, {\n        params: {\n            period: 20,\n            index: 3\n        }\n    });\n    return CMOIndicator;\n}(CMOIndicator_SMAIndicator));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('cmo', CMOIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var CMO_CMOIndicator = ((/* unused pure expression or super */ null && (CMOIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `CMO` series. If the [type](#series.cmo.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.cmo\n * @since 9.1.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/cmo\n * @apioption series.cmo\n */\n(''); // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar DEMAIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar DEMAIndicator_EMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.ema;\n\nvar DEMAIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, DEMAIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, DEMAIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The DEMA series Type\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.dema\n *\n * @augments Highcharts.Series\n */\nvar DEMAIndicator = /** @class */ (function (_super) {\n    DEMAIndicator_extends(DEMAIndicator, _super);\n    function DEMAIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    DEMAIndicator.prototype.getEMA = function (yVal, prevEMA, SMA, index, i, xVal) {\n        return _super.prototype.calculateEma.call(this, xVal || [], yVal, typeof i === 'undefined' ? 1 : i, this.EMApercent, prevEMA, typeof index === 'undefined' ? -1 : index, SMA);\n    };\n    DEMAIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            EMAvalues = [],\n            doubledPeriod = 2 * period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            DEMA = [],\n            xDataDema = [],\n            yDataDema = [];\n        var accumulatePeriodPoints = 0,\n            EMA = 0, \n            // EMA(EMA)\n            EMAlevel2, \n            // EMA of previous point\n            prevEMA,\n            prevEMAlevel2, \n            // EMA values array\n            i,\n            index = -1,\n            DEMAPoint,\n            SMA = 0;\n        this.EMApercent = (2 / (period + 1));\n        // Check period, if bigger than EMA points length, skip\n        if (yValLen < 2 * period - 1) {\n            return;\n        }\n        // Switch index for OHLC / Candlestick / Arearange\n        if (DEMAIndicator_isArray(yVal[0])) {\n            index = params.index ? params.index : 0;\n        }\n        // Accumulate first N-points\n        accumulatePeriodPoints =\n            _super.prototype.accumulatePeriodPoints.call(this, period, index, yVal);\n        // First point\n        SMA = accumulatePeriodPoints / period;\n        accumulatePeriodPoints = 0;\n        // Calculate value one-by-one for each period in visible data\n        for (i = period; i < yValLen + 2; i++) {\n            if (i < yValLen + 1) {\n                EMA = this.getEMA(yVal, prevEMA, SMA, index, i)[1];\n                EMAvalues.push(EMA);\n            }\n            prevEMA = EMA;\n            // Summing first period points for EMA(EMA)\n            if (i < doubledPeriod) {\n                accumulatePeriodPoints += EMA;\n            }\n            else {\n                // Calculate DEMA\n                // First DEMA point\n                if (i === doubledPeriod) {\n                    SMA = accumulatePeriodPoints / period;\n                }\n                EMA = EMAvalues[i - period - 1];\n                EMAlevel2 = this.getEMA([EMA], prevEMAlevel2, SMA)[1];\n                DEMAPoint = [\n                    xVal[i - 2],\n                    DEMAIndicator_correctFloat(2 * EMA - EMAlevel2)\n                ];\n                DEMA.push(DEMAPoint);\n                xDataDema.push(DEMAPoint[0]);\n                yDataDema.push(DEMAPoint[1]);\n                prevEMAlevel2 = EMAlevel2;\n            }\n        }\n        return {\n            values: DEMA,\n            xData: xDataDema,\n            yData: yDataDema\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Double exponential moving average (DEMA) indicator. This series requires\n     * `linkedTo` option to be set and should be loaded after the\n     * `stock/indicators/indicators.js`.\n     *\n     * @sample {highstock} stock/indicators/dema\n     *         DEMA indicator\n     *\n     * @extends      plotOptions.ema\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, compare, compareBase, joinBy, keys,\n     *               navigatorOptions, pointInterval, pointIntervalUnit,\n     *               pointPlacement, pointRange, pointStart, showInNavigator,\n     *               stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/dema\n     * @optionparent plotOptions.dema\n     */\n    DEMAIndicator.defaultOptions = DEMAIndicator_merge(DEMAIndicator_EMAIndicator.defaultOptions);\n    return DEMAIndicator;\n}(DEMAIndicator_EMAIndicator));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('dema', DEMAIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var DEMA_DEMAIndicator = ((/* unused pure expression or super */ null && (DEMAIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `DEMA` series. If the [type](#series.dema.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.dema\n * @since     7.0.0\n * @product   highstock\n * @excluding allAreas, colorAxis, compare, compareBase, dataParser, dataURL,\n *            joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,\n *            pointPlacement, pointRange, pointStart, showInNavigator, stacking\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/dema\n * @apioption series.dema\n */\n''; // Adds doclet above to the transpiled file\n\n;// ./code/es5/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar TEMAIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar TEMAIndicator_EMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.ema;\n\nvar TEMAIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, TEMAIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, TEMAIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The TEMA series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.tema\n *\n * @augments Highcharts.Series\n */\nvar TEMAIndicator = /** @class */ (function (_super) {\n    TEMAIndicator_extends(TEMAIndicator, _super);\n    function TEMAIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    TEMAIndicator.prototype.getEMA = function (yVal, prevEMA, SMA, index, i, xVal) {\n        return _super.prototype.calculateEma.call(this, xVal || [], yVal, typeof i === 'undefined' ? 1 : i, this.EMApercent, prevEMA, typeof index === 'undefined' ? -1 : index, SMA);\n    };\n    TEMAIndicator.prototype.getTemaPoint = function (xVal, tripledPeriod, EMAlevels, i) {\n        var TEMAPoint = [\n                xVal[i - 3],\n                TEMAIndicator_correctFloat(3 * EMAlevels.level1 -\n                    3 * EMAlevels.level2 + EMAlevels.level3)\n            ];\n        return TEMAPoint;\n    };\n    TEMAIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            doubledPeriod = 2 * period,\n            tripledPeriod = 3 * period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            tema = [],\n            xDataTema = [],\n            yDataTema = [], \n            // EMA values array\n            emaValues = [],\n            emaLevel2Values = [], \n            // This object contains all EMA EMAlevels calculated like below\n            // EMA = level1\n            // EMA(EMA) = level2,\n            // EMA(EMA(EMA)) = level3,\n            emaLevels = {};\n        var index = -1,\n            accumulatePeriodPoints = 0,\n            sma = 0, \n            // EMA of previous point\n            prevEMA,\n            prevEMAlevel2,\n            i,\n            temaPoint;\n        this.EMApercent = (2 / (period + 1));\n        // Check period, if bigger than EMA points length, skip\n        if (yValLen < 3 * period - 2) {\n            return;\n        }\n        // Switch index for OHLC / Candlestick / Arearange\n        if (TEMAIndicator_isArray(yVal[0])) {\n            index = params.index ? params.index : 0;\n        }\n        // Accumulate first N-points\n        accumulatePeriodPoints = _super.prototype.accumulatePeriodPoints.call(this, period, index, yVal);\n        // First point\n        sma = accumulatePeriodPoints / period;\n        accumulatePeriodPoints = 0;\n        // Calculate value one-by-one for each period in visible data\n        for (i = period; i < yValLen + 3; i++) {\n            if (i < yValLen + 1) {\n                emaLevels.level1 = this.getEMA(yVal, prevEMA, sma, index, i)[1];\n                emaValues.push(emaLevels.level1);\n            }\n            prevEMA = emaLevels.level1;\n            // Summing first period points for ema(ema)\n            if (i < doubledPeriod) {\n                accumulatePeriodPoints += emaLevels.level1;\n            }\n            else {\n                // Calculate dema\n                // First dema point\n                if (i === doubledPeriod) {\n                    sma = accumulatePeriodPoints / period;\n                    accumulatePeriodPoints = 0;\n                }\n                emaLevels.level1 = emaValues[i - period - 1];\n                emaLevels.level2 = this.getEMA([emaLevels.level1], prevEMAlevel2, sma)[1];\n                emaLevel2Values.push(emaLevels.level2);\n                prevEMAlevel2 = emaLevels.level2;\n                // Summing first period points for ema(ema(ema))\n                if (i < tripledPeriod) {\n                    accumulatePeriodPoints += emaLevels.level2;\n                }\n                else {\n                    // Calculate tema\n                    // First tema point\n                    if (i === tripledPeriod) {\n                        sma = accumulatePeriodPoints / period;\n                    }\n                    if (i === yValLen + 1) {\n                        // Calculate the last ema and emaEMA points\n                        emaLevels.level1 = emaValues[i - period - 1];\n                        emaLevels.level2 = this.getEMA([emaLevels.level1], prevEMAlevel2, sma)[1];\n                        emaLevel2Values.push(emaLevels.level2);\n                    }\n                    emaLevels.level1 = emaValues[i - period - 2];\n                    emaLevels.level2 = emaLevel2Values[i - 2 * period - 1];\n                    emaLevels.level3 = this.getEMA([emaLevels.level2], emaLevels.prevLevel3, sma)[1];\n                    temaPoint = this.getTemaPoint(xVal, tripledPeriod, emaLevels, i);\n                    // Make sure that point exists (for TRIX oscillator)\n                    if (temaPoint) {\n                        tema.push(temaPoint);\n                        xDataTema.push(temaPoint[0]);\n                        yDataTema.push(temaPoint[1]);\n                    }\n                    emaLevels.prevLevel3 = emaLevels.level3;\n                }\n            }\n        }\n        return {\n            values: tema,\n            xData: xDataTema,\n            yData: yDataTema\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Triple exponential moving average (TEMA) indicator. This series requires\n     * `linkedTo` option to be set and should be loaded after the\n     * `stock/indicators/indicators.js`.\n     *\n     * @sample {highstock} stock/indicators/tema\n     *         TEMA indicator\n     *\n     * @extends      plotOptions.ema\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, compare, compareBase, joinBy, keys,\n     *               navigatorOptions, pointInterval, pointIntervalUnit,\n     *               pointPlacement, pointRange, pointStart, showInNavigator,\n     *               stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/tema\n     * @optionparent plotOptions.tema\n     */\n    TEMAIndicator.defaultOptions = TEMAIndicator_merge(TEMAIndicator_EMAIndicator.defaultOptions);\n    return TEMAIndicator;\n}(TEMAIndicator_EMAIndicator));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('tema', TEMAIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var TEMA_TEMAIndicator = ((/* unused pure expression or super */ null && (TEMAIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `TEMA` series. If the [type](#series.tema.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.tema\n * @since     7.0.0\n * @product   highstock\n * @excluding allAreas, colorAxis, compare, compareBase, dataParser, dataURL,\n *            joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,\n *            pointPlacement, pointRange, pointStart, showInNavigator, stacking\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/tema\n * @apioption series.tema\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar TRIXIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar TRIXIndicator_TEMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.tema;\n\nvar TRIXIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, TRIXIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The TRIX series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.trix\n *\n * @augments Highcharts.Series\n */\nvar TRIXIndicator = /** @class */ (function (_super) {\n    TRIXIndicator_extends(TRIXIndicator, _super);\n    function TRIXIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    // TRIX is calculated using TEMA so we just extend getTemaPoint method.\n    TRIXIndicator.prototype.getTemaPoint = function (xVal, tripledPeriod, EMAlevels, i) {\n        if (i > tripledPeriod) {\n            return [\n                xVal[i - 3],\n                EMAlevels.prevLevel3 !== 0 ?\n                    TRIXIndicator_correctFloat(EMAlevels.level3 - EMAlevels.prevLevel3) /\n                        EMAlevels.prevLevel3 * 100 : null\n            ];\n        }\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Triple exponential average (TRIX) oscillator. This series requires\n     * `linkedTo` option to be set.\n     *\n     * @sample {highstock} stock/indicators/trix\n     * TRIX indicator\n     *\n     * @extends      plotOptions.tema\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, compare, compareBase, joinBy, keys,\n     *               navigatorOptions, pointInterval, pointIntervalUnit,\n     *               pointPlacement, pointRange, pointStart, showInNavigator,\n     *               stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/tema\n     * @requires     stock/indicators/trix\n     * @optionparent plotOptions.trix\n     */\n    TRIXIndicator.defaultOptions = TRIXIndicator_merge(TRIXIndicator_TEMAIndicator.defaultOptions);\n    return TRIXIndicator;\n}(TRIXIndicator_TEMAIndicator));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('trix', TRIXIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var TRIX_TRIXIndicator = ((/* unused pure expression or super */ null && (TRIXIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `TRIX` series. If the [type](#series.trix.type) option is not specified, it\n * is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.trix\n * @since     7.0.0\n * @product   highstock\n * @excluding allAreas, colorAxis, compare, compareBase, dataParser, dataURL,\n *            joinBy, keys, navigatorOptions, pointInterval, pointIntervalUnit,\n *            pointPlacement, pointRange, pointStart, showInNavigator, stacking\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/tema\n * @apioption series.trix\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/APO/APOIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar APOIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar APOIndicator_EMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.ema;\n\nvar APOIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, APOIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, APOIndicator_error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The APO series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.apo\n *\n * @augments Highcharts.Series\n */\nvar APOIndicator = /** @class */ (function (_super) {\n    APOIndicator_extends(APOIndicator, _super);\n    function APOIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    APOIndicator.prototype.getValues = function (series, params) {\n        var periods = params.periods,\n            index = params.index, \n            // 0- date, 1- Absolute price oscillator\n            APO = [],\n            xData = [],\n            yData = [];\n        var oscillator,\n            i;\n        // Check if periods are correct\n        if (periods.length !== 2 || periods[1] <= periods[0]) {\n            APOIndicator_error('Error: \"APO requires two periods. Notice, first period ' +\n                'should be lower than the second one.\"');\n            return;\n        }\n        // Shorter Period EMA\n        var SPE = _super.prototype.getValues.call(this,\n            series, {\n                index: index,\n                period: periods[0]\n            });\n        // Longer Period EMA\n        var LPE = _super.prototype.getValues.call(this,\n            series, {\n                index: index,\n                period: periods[1]\n            });\n        // Check if ema is calculated properly, if not skip\n        if (!SPE || !LPE) {\n            return;\n        }\n        var periodsOffset = periods[1] - periods[0];\n        for (i = 0; i < LPE.yData.length; i++) {\n            oscillator = (SPE.yData[i + periodsOffset] -\n                LPE.yData[i]);\n            APO.push([LPE.xData[i], oscillator]);\n            xData.push(LPE.xData[i]);\n            yData.push(oscillator);\n        }\n        return {\n            values: APO,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Absolute Price Oscillator. This series requires the `linkedTo` option to\n     * be set and should be loaded after the `stock/indicators/indicators.js`.\n     *\n     * @sample {highstock} stock/indicators/apo\n     *         Absolute Price Oscillator\n     *\n     * @extends      plotOptions.ema\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, joinBy, keys, navigatorOptions,\n     *               pointInterval, pointIntervalUnit, pointPlacement,\n     *               pointRange, pointStart, showInNavigator, stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/apo\n     * @optionparent plotOptions.apo\n     */\n    APOIndicator.defaultOptions = APOIndicator_merge(APOIndicator_EMAIndicator.defaultOptions, {\n        /**\n         * Parameters used in calculation of Absolute Price Oscillator\n         * series points.\n         *\n         * @excluding period\n         */\n        params: {\n            period: void 0, // Unchangeable period, do not inherit (#15362)\n            /**\n             * Periods for Absolute Price Oscillator calculations.\n             *\n             * @type    {Array<number>}\n             * @default [10, 20]\n             * @since   7.0.0\n             */\n            periods: [10, 20]\n        }\n    });\n    return APOIndicator;\n}(APOIndicator_EMAIndicator));\nAPOIndicator_extend(APOIndicator.prototype, {\n    nameBase: 'APO',\n    nameComponents: ['periods']\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('apo', APOIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var APO_APOIndicator = ((/* unused pure expression or super */ null && (APOIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * An `Absolute Price Oscillator` series. If the [type](#series.apo.type) option\n * is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.apo\n * @since     7.0.0\n * @product   highstock\n * @excluding allAreas, colorAxis, dataParser, dataURL, joinBy, keys,\n *            navigatorOptions, pointInterval, pointIntervalUnit,\n *            pointPlacement, pointRange, pointStart, showInNavigator, stacking\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/apo\n * @apioption series.apo\n */\n''; // To include the above in the js output\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"dataGrouping\",\"approximations\"],\"commonjs\":[\"highcharts\",\"dataGrouping\",\"approximations\"],\"commonjs2\":[\"highcharts\",\"dataGrouping\",\"approximations\"],\"root\":[\"Highcharts\",\"dataGrouping\",\"approximations\"]}\nvar highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_ = __webpack_require__(956);\nvar highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_default = /*#__PURE__*/__webpack_require__.n(highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_);\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/es5/es-modules/Stock/Indicators/IKH/IKHIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar IKHIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar color = (highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default()).parse;\n\nvar IKHIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar IKHIndicator_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, IKHIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, IKHIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, IKHIndicator_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, getClosestDistance = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).getClosestDistance, IKHIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, objectEach = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).objectEach;\n/* *\n *\n *  Functions\n *\n * */\n/**\n * @private\n */\nfunction maxHigh(arr) {\n    return arr.reduce(function (max, res) {\n        return Math.max(max, res[1]);\n    }, -Infinity);\n}\n/**\n * @private\n */\nfunction minLow(arr) {\n    return arr.reduce(function (min, res) {\n        return Math.min(min, res[2]);\n    }, Infinity);\n}\n/**\n * @private\n */\nfunction highlowLevel(arr) {\n    return {\n        high: maxHigh(arr),\n        low: minLow(arr)\n    };\n}\n/**\n * Check two lines intersection (line a1-a2 and b1-b2)\n * Source: https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection\n * @private\n */\nfunction checkLineIntersection(a1, a2, b1, b2) {\n    if (a1 && a2 && b1 && b2) {\n        var saX = a2.plotX - a1.plotX, // Auxiliary section a2-a1 X\n            saY = a2.plotY - a1.plotY, // Auxiliary section a2-a1 Y\n            sbX = b2.plotX - b1.plotX, // Auxiliary section b2-b1 X\n            sbY = b2.plotY - b1.plotY, // Auxiliary section b2-b1 Y\n            sabX = a1.plotX - b1.plotX, // Auxiliary section a1-b1 X\n            sabY = a1.plotY - b1.plotY, // Auxiliary section a1-b1 Y\n            // First degree Bézier parameters\n            u = (-saY * sabX + saX * sabY) / (-sbX * saY + saX * sbY), t = (sbX * sabY - sbY * sabX) / (-sbX * saY + saX * sbY);\n        if (u >= 0 && u <= 1 && t >= 0 && t <= 1) {\n            return {\n                plotX: a1.plotX + t * saX,\n                plotY: a1.plotY + t * saY\n            };\n        }\n    }\n}\n/**\n * Parameter opt (indicator options object) include indicator, points,\n * nextPoints, color, options, gappedExtend and graph properties\n * @private\n */\nfunction drawSenkouSpan(opt) {\n    var indicator = opt.indicator;\n    indicator.points = opt.points;\n    indicator.nextPoints = opt.nextPoints;\n    indicator.color = opt.color;\n    indicator.options = IKHIndicator_merge(opt.options.senkouSpan.styles, opt.gap);\n    indicator.graph = opt.graph;\n    indicator.fillGraph = true;\n    highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.drawGraph.call(indicator);\n}\n/**\n * Data integrity in Ichimoku is different than default 'averages':\n * Point: [undefined, value, value, ...] is correct\n * Point: [undefined, undefined, undefined, ...] is incorrect\n * @private\n */\nfunction ichimokuAverages() {\n    var ret = [];\n    var isEmptyRange;\n    [].forEach.call(arguments, function (arr, i) {\n        ret.push(highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_default().average(arr));\n        isEmptyRange = !isEmptyRange && typeof ret[i] === 'undefined';\n    });\n    // Return undefined when first elem. is undefined and let\n    // sum method handle null (#7377)\n    return isEmptyRange ? void 0 : ret;\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The IKH series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.ikh\n *\n * @augments Highcharts.Series\n */\nvar IKHIndicator = /** @class */ (function (_super) {\n    IKHIndicator_extends(IKHIndicator, _super);\n    function IKHIndicator() {\n        /* *\n         *\n         *  Static Properties\n         *\n         * */\n        var _this = _super !== null && _super.apply(this,\n            arguments) || this;\n        /* *\n         *\n         *  Properties\n         *\n         * */\n        _this.data = [];\n        _this.options = {};\n        _this.points = [];\n        _this.graphCollection = [];\n        return _this;\n    }\n    /* *\n     *\n     * Functions\n     *\n     * */\n    IKHIndicator.prototype.init = function () {\n        _super.prototype.init.apply(this, arguments);\n        // Set default color for lines:\n        this.options = IKHIndicator_merge({\n            tenkanLine: {\n                styles: {\n                    lineColor: this.color\n                }\n            },\n            kijunLine: {\n                styles: {\n                    lineColor: this.color\n                }\n            },\n            chikouLine: {\n                styles: {\n                    lineColor: this.color\n                }\n            },\n            senkouSpanA: {\n                styles: {\n                    lineColor: this.color,\n                    fill: color(this.color).setOpacity(0.5).get()\n                }\n            },\n            senkouSpanB: {\n                styles: {\n                    lineColor: this.color,\n                    fill: color(this.color).setOpacity(0.5).get()\n                }\n            },\n            senkouSpan: {\n                styles: {\n                    fill: color(this.color).setOpacity(0.2).get()\n                }\n            }\n        }, this.options);\n    };\n    IKHIndicator.prototype.toYData = function (point) {\n        return [\n            point.tenkanSen,\n            point.kijunSen,\n            point.chikouSpan,\n            point.senkouSpanA,\n            point.senkouSpanB\n        ];\n    };\n    IKHIndicator.prototype.translate = function () {\n        var indicator = this;\n        highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.translate.apply(indicator);\n        for (var _i = 0, _a = indicator.points; _i < _a.length; _i++) {\n            var point = _a[_i];\n            for (var _b = 0, _c = indicator.pointArrayMap; _b < _c.length; _b++) {\n                var key = _c[_b];\n                var pointValue = point[key];\n                if (IKHIndicator_isNumber(pointValue)) {\n                    point['plot' + key] = indicator.yAxis.toPixels(pointValue, true);\n                    // Add extra parameters for support tooltip in moved\n                    // lines\n                    point.plotY = point['plot' + key];\n                    point.tooltipPos = [\n                        point.plotX,\n                        point['plot' + key]\n                    ];\n                    point.isNull = false;\n                }\n            }\n        }\n    };\n    IKHIndicator.prototype.drawGraph = function () {\n        var indicator = this,\n            mainLinePoints = indicator.points,\n            mainLineOptions = indicator.options,\n            mainLinePath = indicator.graph,\n            mainColor = indicator.color,\n            gappedExtend = {\n                options: {\n                    gapSize: mainLineOptions.gapSize\n                }\n            },\n            pointArrayMapLength = indicator.pointArrayMap.length,\n            allIchimokuPoints = [\n                [],\n                [],\n                [],\n                [],\n                [],\n                []\n            ],\n            ikhMap = {\n                tenkanLine: allIchimokuPoints[0],\n                kijunLine: allIchimokuPoints[1],\n                chikouLine: allIchimokuPoints[2],\n                senkouSpanA: allIchimokuPoints[3],\n                senkouSpanB: allIchimokuPoints[4],\n                senkouSpan: allIchimokuPoints[5]\n            },\n            intersectIndexColl = [],\n            senkouSpanOptions = indicator\n                .options.senkouSpan,\n            color = senkouSpanOptions.color ||\n                senkouSpanOptions.styles.fill,\n            negativeColor = senkouSpanOptions.negativeColor, \n            // Points to create color and negativeColor senkouSpan\n            points = [\n                [], // Points color\n                [] // Points negative color\n            ], \n            // For span, we need an access to the next points, used in\n            // getGraphPath()\n            nextPoints = [\n                [], // Next points color\n                [] // Next points negative color\n            ];\n        var pointsLength = mainLinePoints.length,\n            lineIndex = 0,\n            position,\n            point,\n            i,\n            startIntersect,\n            endIntersect,\n            sectionPoints,\n            sectionNextPoints,\n            pointsPlotYSum,\n            nextPointsPlotYSum,\n            senkouSpanTempColor,\n            concatArrIndex,\n            j,\n            k;\n        indicator.ikhMap = ikhMap;\n        // Generate points for all lines and spans lines:\n        while (pointsLength--) {\n            point = mainLinePoints[pointsLength];\n            for (i = 0; i < pointArrayMapLength; i++) {\n                position = indicator.pointArrayMap[i];\n                if (IKHIndicator_defined(point[position])) {\n                    allIchimokuPoints[i].push({\n                        plotX: point.plotX,\n                        plotY: point['plot' + position],\n                        isNull: false\n                    });\n                }\n            }\n            if (negativeColor && pointsLength !== mainLinePoints.length - 1) {\n                // Check if lines intersect\n                var index = ikhMap.senkouSpanB.length - 1,\n                    intersect = checkLineIntersection(ikhMap.senkouSpanA[index - 1],\n                    ikhMap.senkouSpanA[index],\n                    ikhMap.senkouSpanB[index - 1],\n                    ikhMap.senkouSpanB[index]);\n                if (intersect) {\n                    var intersectPointObj = {\n                            plotX: intersect.plotX,\n                            plotY: intersect.plotY,\n                            isNull: false,\n                            intersectPoint: true\n                        };\n                    // Add intersect point to ichimoku points collection\n                    // Create senkouSpan sections\n                    ikhMap.senkouSpanA.splice(index, 0, intersectPointObj);\n                    ikhMap.senkouSpanB.splice(index, 0, intersectPointObj);\n                    intersectIndexColl.push(index);\n                }\n            }\n        }\n        // Modify options and generate lines:\n        objectEach(ikhMap, function (values, lineName) {\n            if (mainLineOptions[lineName] &&\n                lineName !== 'senkouSpan') {\n                // First line is rendered by default option\n                indicator.points = allIchimokuPoints[lineIndex];\n                indicator.options = IKHIndicator_merge(mainLineOptions[lineName].styles, gappedExtend);\n                indicator.graph = indicator['graph' + lineName];\n                indicator.fillGraph = false;\n                indicator.color = mainColor;\n                highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.drawGraph.call(indicator);\n                // Now save line\n                indicator['graph' + lineName] = indicator.graph;\n            }\n            lineIndex++;\n        });\n        // Generate senkouSpan area:\n        // If graphCollection exist then remove svg\n        // element and indicator property\n        if (indicator.graphCollection) {\n            for (var _i = 0, _a = indicator.graphCollection; _i < _a.length; _i++) {\n                var graphName = _a[_i];\n                indicator[graphName].destroy();\n                delete indicator[graphName];\n            }\n        }\n        // Clean graphCollection or initialize it\n        indicator.graphCollection = [];\n        // When user set negativeColor property\n        if (negativeColor && ikhMap.senkouSpanA[0] && ikhMap.senkouSpanB[0]) {\n            // Add first and last point to senkouSpan area sections\n            intersectIndexColl.unshift(0);\n            intersectIndexColl.push(ikhMap.senkouSpanA.length - 1);\n            // Populate points and nextPoints arrays\n            for (j = 0; j < intersectIndexColl.length - 1; j++) {\n                startIntersect = intersectIndexColl[j];\n                endIntersect = intersectIndexColl[j + 1];\n                sectionPoints = ikhMap.senkouSpanB.slice(startIntersect, endIntersect + 1);\n                sectionNextPoints = ikhMap.senkouSpanA.slice(startIntersect, endIntersect + 1);\n                // Add points to color or negativeColor arrays\n                // Check the middle point (if exist)\n                if (Math.floor(sectionPoints.length / 2) >= 1) {\n                    var x = Math.floor(sectionPoints.length / 2);\n                    // When middle points has equal values\n                    // Compare all points plotY value sum\n                    if (sectionPoints[x].plotY === sectionNextPoints[x].plotY) {\n                        pointsPlotYSum = 0;\n                        nextPointsPlotYSum = 0;\n                        for (k = 0; k < sectionPoints.length; k++) {\n                            pointsPlotYSum += sectionPoints[k].plotY;\n                            nextPointsPlotYSum += sectionNextPoints[k].plotY;\n                        }\n                        concatArrIndex =\n                            pointsPlotYSum > nextPointsPlotYSum ? 0 : 1;\n                        points[concatArrIndex] = points[concatArrIndex].concat(sectionPoints);\n                        nextPoints[concatArrIndex] = nextPoints[concatArrIndex].concat(sectionNextPoints);\n                    }\n                    else {\n                        // Compare middle point of the section\n                        concatArrIndex = (sectionPoints[x].plotY > sectionNextPoints[x].plotY) ? 0 : 1;\n                        points[concatArrIndex] = points[concatArrIndex].concat(sectionPoints);\n                        nextPoints[concatArrIndex] = nextPoints[concatArrIndex].concat(sectionNextPoints);\n                    }\n                }\n                else {\n                    // Compare first point of the section\n                    concatArrIndex = (sectionPoints[0].plotY > sectionNextPoints[0].plotY) ? 0 : 1;\n                    points[concatArrIndex] = points[concatArrIndex].concat(sectionPoints);\n                    nextPoints[concatArrIndex] = nextPoints[concatArrIndex].concat(sectionNextPoints);\n                }\n            }\n            // Render color and negativeColor paths\n            ['graphsenkouSpanColor', 'graphsenkouSpanNegativeColor'].forEach(function (areaName, i) {\n                if (points[i].length && nextPoints[i].length) {\n                    senkouSpanTempColor = i === 0 ? color : negativeColor;\n                    drawSenkouSpan({\n                        indicator: indicator,\n                        points: points[i],\n                        nextPoints: nextPoints[i],\n                        color: senkouSpanTempColor,\n                        options: mainLineOptions,\n                        gap: gappedExtend,\n                        graph: indicator[areaName]\n                    });\n                    // Now save line\n                    indicator[areaName] = indicator.graph;\n                    indicator.graphCollection.push(areaName);\n                }\n            });\n        }\n        else {\n            // When user set only senkouSpan style.fill property\n            drawSenkouSpan({\n                indicator: indicator,\n                points: ikhMap.senkouSpanB,\n                nextPoints: ikhMap.senkouSpanA,\n                color: color,\n                options: mainLineOptions,\n                gap: gappedExtend,\n                graph: indicator.graphsenkouSpan\n            });\n            // Now save line\n            indicator.graphsenkouSpan = indicator.graph;\n        }\n        // Clean temporary properties:\n        delete indicator.nextPoints;\n        delete indicator.fillGraph;\n        // Restore options and draw the Tenkan line:\n        indicator.points = mainLinePoints;\n        indicator.options = mainLineOptions;\n        indicator.graph = mainLinePath;\n        indicator.color = mainColor;\n    };\n    IKHIndicator.prototype.getGraphPath = function (points) {\n        var indicator = this;\n        var path = [],\n            spanA,\n            spanAarr = [];\n        points = points || this.points;\n        // Render Senkou Span\n        if (indicator.fillGraph && indicator.nextPoints) {\n            spanA = highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.getGraphPath.call(indicator, \n            // Reverse points, so Senkou Span A will start from the end:\n            indicator.nextPoints);\n            if (spanA && spanA.length) {\n                spanA[0][0] = 'L';\n                path = highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.getGraphPath\n                    .call(indicator, points);\n                spanAarr = spanA.slice(0, path.length);\n                for (var i = spanAarr.length - 1; i >= 0; i--) {\n                    path.push(spanAarr[i]);\n                }\n            }\n        }\n        else {\n            path = highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.getGraphPath\n                .apply(indicator, arguments);\n        }\n        return path;\n    };\n    IKHIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            periodTenkan = params.periodTenkan,\n            periodSenkouSpanB = params.periodSenkouSpanB,\n            xVal = series.xData,\n            yVal = series.yData,\n            xAxis = series.xAxis,\n            yValLen = (yVal && yVal.length) || 0,\n            closestPointRange = getClosestDistance(xAxis.series.map(function (s) { return s.getColumn('x'); })),\n            IKH = [],\n            xData = [];\n        var date,\n            slicedTSY,\n            slicedKSY,\n            slicedSSBY,\n            pointTS,\n            pointKS,\n            pointSSB,\n            i,\n            TS,\n            KS,\n            CS,\n            SSA,\n            SSB;\n        // Ikh requires close value\n        if (xVal.length <= period ||\n            !IKHIndicator_isArray(yVal[0]) ||\n            yVal[0].length !== 4) {\n            return;\n        }\n        // Add timestamps at the beginning\n        var dateStart = xVal[0] - period * closestPointRange;\n        for (i = 0; i < period; i++) {\n            xData.push(dateStart + i * closestPointRange);\n        }\n        for (i = 0; i < yValLen; i++) {\n            // Tenkan Sen\n            if (i >= periodTenkan) {\n                slicedTSY = yVal.slice(i - periodTenkan, i);\n                pointTS = highlowLevel(slicedTSY);\n                TS = (pointTS.high + pointTS.low) / 2;\n            }\n            if (i >= period) {\n                slicedKSY = yVal.slice(i - period, i);\n                pointKS = highlowLevel(slicedKSY);\n                KS = (pointKS.high + pointKS.low) / 2;\n                SSA = (TS + KS) / 2;\n            }\n            if (i >= periodSenkouSpanB) {\n                slicedSSBY = yVal.slice(i - periodSenkouSpanB, i);\n                pointSSB = highlowLevel(slicedSSBY);\n                SSB = (pointSSB.high + pointSSB.low) / 2;\n            }\n            CS = yVal[i][3];\n            date = xVal[i];\n            if (typeof IKH[i] === 'undefined') {\n                IKH[i] = [];\n            }\n            if (typeof IKH[i + period - 1] === 'undefined') {\n                IKH[i + period - 1] = [];\n            }\n            IKH[i + period - 1][0] = TS;\n            IKH[i + period - 1][1] = KS;\n            IKH[i + period - 1][2] = void 0;\n            if (typeof IKH[i + 1] === 'undefined') {\n                IKH[i + 1] = [];\n            }\n            IKH[i + 1][2] = CS;\n            if (i <= period) {\n                IKH[i + period - 1][3] = void 0;\n                IKH[i + period - 1][4] = void 0;\n            }\n            if (typeof IKH[i + 2 * period - 2] === 'undefined') {\n                IKH[i + 2 * period - 2] = [];\n            }\n            IKH[i + 2 * period - 2][3] = SSA;\n            IKH[i + 2 * period - 2][4] = SSB;\n            xData.push(date);\n        }\n        // Add timestamps for further points\n        for (i = 1; i <= period; i++) {\n            xData.push(date + i * closestPointRange);\n        }\n        return {\n            values: IKH,\n            xData: xData,\n            yData: IKH\n        };\n    };\n    /**\n     * Ichimoku Kinko Hyo (IKH). This series requires `linkedTo` option to be\n     * set.\n     *\n     * @sample stock/indicators/ichimoku-kinko-hyo\n     *         Ichimoku Kinko Hyo indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @excluding    allAreas, colorAxis, compare, compareBase, joinBy, keys,\n     *               navigatorOptions, pointInterval, pointIntervalUnit,\n     *               pointPlacement, pointRange, pointStart, showInNavigator,\n     *               stacking\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/ichimoku-kinko-hyo\n     * @optionparent plotOptions.ikh\n     */\n    IKHIndicator.defaultOptions = IKHIndicator_merge(IKHIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * @excluding index\n         */\n        params: {\n            index: void 0, // Unused index, do not inherit (#15362)\n            period: 26,\n            /**\n             * The base period for Tenkan calculations.\n             */\n            periodTenkan: 9,\n            /**\n             * The base period for Senkou Span B calculations\n             */\n            periodSenkouSpanB: 52\n        },\n        marker: {\n            enabled: false\n        },\n        tooltip: {\n            pointFormat: '<span style=\"color:{point.color}\">\\u25CF</span> <b> {series.name}</b><br/>' +\n                'TENKAN SEN: {point.tenkanSen:.3f}<br/>' +\n                'KIJUN SEN: {point.kijunSen:.3f}<br/>' +\n                'CHIKOU SPAN: {point.chikouSpan:.3f}<br/>' +\n                'SENKOU SPAN A: {point.senkouSpanA:.3f}<br/>' +\n                'SENKOU SPAN B: {point.senkouSpanB:.3f}<br/>'\n        },\n        /**\n         * The styles for Tenkan line\n         */\n        tenkanLine: {\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line.\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: void 0\n            }\n        },\n        /**\n         * The styles for Kijun line\n         */\n        kijunLine: {\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line.\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: void 0\n            }\n        },\n        /**\n         * The styles for Chikou line\n         */\n        chikouLine: {\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line.\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: void 0\n            }\n        },\n        /**\n         * The styles for Senkou Span A line\n         */\n        senkouSpanA: {\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line.\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: void 0\n            }\n        },\n        /**\n         * The styles for Senkou Span B line\n         */\n        senkouSpanB: {\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line.\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: void 0\n            }\n        },\n        /**\n         * The styles for area between Senkou Span A and B.\n         */\n        senkouSpan: {\n            /**\n             * Color of the area between Senkou Span A and B,\n             * when Senkou Span A is above Senkou Span B. Note that if\n             * a `style.fill` is defined, the `color` takes precedence and\n             * the `style.fill` is ignored.\n             *\n             * @see [senkouSpan.styles.fill](#series.ikh.senkouSpan.styles.fill)\n             *\n             * @sample stock/indicators/ichimoku-kinko-hyo\n             *         Ichimoku Kinko Hyo color\n             *\n             * @type      {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n             * @since     7.0.0\n             * @apioption plotOptions.ikh.senkouSpan.color\n             */\n            /**\n             * Color of the area between Senkou Span A and B,\n             * when Senkou Span A is under Senkou Span B.\n             *\n             * @sample stock/indicators/ikh-negative-color\n             *         Ichimoku Kinko Hyo negativeColor\n             *\n             * @type      {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n             * @since     7.0.0\n             * @apioption plotOptions.ikh.senkouSpan.negativeColor\n             */\n            styles: {\n                /**\n                 * Color of the area between Senkou Span A and B.\n                 *\n                 * @deprecated\n                 * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n                 */\n                fill: 'rgba(255, 0, 0, 0.5)'\n            }\n        },\n        dataGrouping: {\n            approximation: 'ichimoku-averages'\n        }\n    });\n    return IKHIndicator;\n}(IKHIndicator_SMAIndicator));\nIKHIndicator_extend(IKHIndicator.prototype, {\n    pointArrayMap: [\n        'tenkanSen',\n        'kijunSen',\n        'chikouSpan',\n        'senkouSpanA',\n        'senkouSpanB'\n    ],\n    pointValKey: 'tenkanSen',\n    nameComponents: ['periodSenkouSpanB', 'period', 'periodTenkan']\n});\n/* *\n *\n *  Registry\n *\n * */\n(highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_default())[\"ichimoku-averages\"] = ichimokuAverages;\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('ikh', IKHIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var IKH_IKHIndicator = ((/* unused pure expression or super */ null && (IKHIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `IKH` series. If the [type](#series.ikh.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.ikh\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/ichimoku-kinko-hyo\n * @apioption series.ikh\n */\n(''); // Add doclet above to transpiled file\n\n;// ./code/es5/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar KeltnerChannelsIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar KeltnerChannelsIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar KeltnerChannelsIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, KeltnerChannelsIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, KeltnerChannelsIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Keltner Channels series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.keltnerchannels\n *\n * @augments Highcharts.Series\n */\nvar KeltnerChannelsIndicator = /** @class */ (function (_super) {\n    KeltnerChannelsIndicator_extends(KeltnerChannelsIndicator, _super);\n    function KeltnerChannelsIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    KeltnerChannelsIndicator.prototype.init = function () {\n        highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.init.apply(this, arguments);\n        // Set default color for lines:\n        this.options = KeltnerChannelsIndicator_merge({\n            topLine: {\n                styles: {\n                    lineColor: this.color\n                }\n            },\n            bottomLine: {\n                styles: {\n                    lineColor: this.color\n                }\n            }\n        }, this.options);\n    };\n    KeltnerChannelsIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            periodATR = params.periodATR,\n            multiplierATR = params.multiplierATR,\n            index = params.index,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0, \n            // Keltner Channels array structure:\n            // 0-date, 1-top line, 2-middle line, 3-bottom line\n            KC = [],\n            seriesEMA = highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.ema.prototype.getValues(series, {\n                period: period,\n                index: index\n            }),\n            seriesATR = highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.atr.prototype.getValues(series, {\n                period: periodATR\n            }),\n            xData = [],\n            yData = [];\n        // Middle line, top line and bottom lineI\n        var ML,\n            TL,\n            BL,\n            date,\n            pointEMA,\n            pointATR,\n            i;\n        if (yValLen < period) {\n            return;\n        }\n        for (i = period; i <= yValLen; i++) {\n            pointEMA = seriesEMA.values[i - period];\n            pointATR = seriesATR.values[i - periodATR];\n            date = pointEMA[0];\n            TL = KeltnerChannelsIndicator_correctFloat(pointEMA[1] + (multiplierATR * pointATR[1]));\n            BL = KeltnerChannelsIndicator_correctFloat(pointEMA[1] - (multiplierATR * pointATR[1]));\n            ML = pointEMA[1];\n            KC.push([date, TL, ML, BL]);\n            xData.push(date);\n            yData.push([TL, ML, BL]);\n        }\n        return {\n            values: KC,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Keltner Channels. This series requires the `linkedTo` option to be set\n     * and should be loaded after the `stock/indicators/indicators.js`,\n     * `stock/indicators/atr.js`, and `stock/ema/.js`.\n     *\n     * @sample {highstock} stock/indicators/keltner-channels\n     *         Keltner Channels\n     *\n     * @extends      plotOptions.sma\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, compare, compareBase, joinBy, keys,\n     *               navigatorOptions, pointInterval, pointIntervalUnit,\n     *               pointPlacement, pointRange, pointStart,showInNavigator,\n     *               stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/keltner-channels\n     * @optionparent plotOptions.keltnerchannels\n     */\n    KeltnerChannelsIndicator.defaultOptions = KeltnerChannelsIndicator_merge(KeltnerChannelsIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * Option for fill color between lines in Keltner Channels Indicator.\n         *\n         * @sample {highstock} stock/indicators/indicator-area-fill\n         *      Background fill between lines.\n         *\n         * @type {Highcharts.Color}\n         * @since 9.3.2\n         * @apioption plotOptions.keltnerchannels.fillColor\n         *\n         */\n        params: {\n            /**\n             * The point index which indicator calculations will base. For\n             * example using OHLC data, index=2 means the indicator will be\n             * calculated using Low values.\n             */\n            index: 0,\n            period: 20,\n            /**\n             * The ATR period.\n             */\n            periodATR: 10,\n            /**\n             * The ATR multiplier.\n             */\n            multiplierATR: 2\n        },\n        /**\n         * Bottom line options.\n         *\n         */\n        bottomLine: {\n            /**\n             * Styles for a bottom line.\n             *\n             */\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line. If not set, it's inherited from\n                 * `plotOptions.keltnerchannels.color`\n                 */\n                lineColor: void 0\n            }\n        },\n        /**\n         * Top line options.\n         *\n         * @extends plotOptions.keltnerchannels.bottomLine\n         */\n        topLine: {\n            styles: {\n                lineWidth: 1,\n                lineColor: void 0\n            }\n        },\n        tooltip: {\n            pointFormat: '<span style=\"color:{point.color}\">\\u25CF</span><b> {series.name}</b><br/>Upper Channel: {point.top}<br/>EMA({series.options.params.period}): {point.middle}<br/>Lower Channel: {point.bottom}<br/>'\n        },\n        marker: {\n            enabled: false\n        },\n        dataGrouping: {\n            approximation: 'averages'\n        },\n        lineWidth: 1\n    });\n    return KeltnerChannelsIndicator;\n}(KeltnerChannelsIndicator_SMAIndicator));\nKeltnerChannelsIndicator_extend(KeltnerChannelsIndicator.prototype, {\n    nameBase: 'Keltner Channels',\n    areaLinesNames: ['top', 'bottom'],\n    nameComponents: ['period', 'periodATR', 'multiplierATR'],\n    linesApiNames: ['topLine', 'bottomLine'],\n    pointArrayMap: ['top', 'middle', 'bottom'],\n    pointValKey: 'middle'\n});\nIndicators_MultipleLinesComposition.compose(KeltnerChannelsIndicator);\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('keltnerchannels', KeltnerChannelsIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var KeltnerChannels_KeltnerChannelsIndicator = ((/* unused pure expression or super */ null && (KeltnerChannelsIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A Keltner Channels indicator. If the [type](#series.keltnerchannels.type)\n * option is not specified, it is inherited from[chart.type](#chart.type).\n *\n * @extends      series,plotOptions.keltnerchannels\n * @since        7.0.0\n * @product      highstock\n * @excluding    allAreas, colorAxis, compare, compareBase, dataParser, dataURL,\n *               joinBy, keys, navigatorOptions, pointInterval,\n *               pointIntervalUnit, pointPlacement, pointRange, pointStart,\n *               stacking, showInNavigator\n * @requires     stock/indicators/indicators\n * @requires     stock/indicators/keltner-channels\n * @apioption    series.keltnerchannels\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar KlingerIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar KlingerIndicator_a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, KlingerIndicator_EMAIndicator = KlingerIndicator_a.ema, KlingerIndicator_SMAIndicator = KlingerIndicator_a.sma;\n\nvar KlingerIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, KlingerIndicator_error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error, KlingerIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, KlingerIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, KlingerIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Klinger oscillator series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.klinger\n *\n * @augments Highcharts.Series\n */\nvar KlingerIndicator = /** @class */ (function (_super) {\n    KlingerIndicator_extends(KlingerIndicator, _super);\n    function KlingerIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    KlingerIndicator.prototype.calculateTrend = function (yVal, i) {\n        var isUpward = yVal[i][1] + yVal[i][2] + yVal[i][3] >\n                yVal[i - 1][1] + yVal[i - 1][2] + yVal[i - 1][3];\n        return isUpward ? 1 : -1;\n    };\n    // Checks if the series and volumeSeries are accessible, number of\n    // points.x is longer than period, is series has OHLC data\n    KlingerIndicator.prototype.isValidData = function (firstYVal) {\n        var chart = this.chart,\n            options = this.options,\n            series = this.linkedParent,\n            isSeriesOHLC = KlingerIndicator_isArray(firstYVal) &&\n                firstYVal.length === 4,\n            volumeSeries = this.volumeSeries ||\n                (this.volumeSeries =\n                    chart.get(options.params.volumeSeriesID));\n        if (!volumeSeries) {\n            KlingerIndicator_error('Series ' +\n                options.params.volumeSeriesID +\n                ' not found! Check `volumeSeriesID`.', true, series.chart);\n        }\n        var isLengthValid = [series,\n            volumeSeries].every(function (series) {\n                return series && series.dataTable.rowCount >=\n                    options.params.slowAvgPeriod;\n        });\n        return !!(isLengthValid && isSeriesOHLC);\n    };\n    KlingerIndicator.prototype.getCM = function (previousCM, DM, trend, previousTrend, prevoiusDM) {\n        return KlingerIndicator_correctFloat(DM + (trend === previousTrend ? previousCM : prevoiusDM));\n    };\n    KlingerIndicator.prototype.getDM = function (high, low) {\n        return KlingerIndicator_correctFloat(high - low);\n    };\n    KlingerIndicator.prototype.getVolumeForce = function (yVal) {\n        var volumeForce = [];\n        var CM = 0, // Cumulative measurement\n            DM, // Daily measurement\n            force,\n            i = 1, // Start from second point\n            previousCM = 0,\n            previousDM = yVal[0][1] - yVal[0][2], // Initial DM\n            previousTrend = 0,\n            trend;\n        for (i; i < yVal.length; i++) {\n            trend = this.calculateTrend(yVal, i);\n            DM = this.getDM(yVal[i][1], yVal[i][2]);\n            // For the first iteration when the previousTrend doesn't exist,\n            // previousCM doesn't exist either, but it doesn't matter becouse\n            // it's filltered out in the getCM method in else statement,\n            // (in this iteration, previousCM can be raplaced with the DM).\n            CM = this.getCM(previousCM, DM, trend, previousTrend, previousDM);\n            force = this.volumeSeries.getColumn('y')[i] *\n                trend * Math.abs(2 * ((DM / CM) - 1)) * 100;\n            volumeForce.push([force]);\n            // Before next iteration, assign the current as the previous.\n            previousTrend = trend;\n            previousCM = CM;\n            previousDM = DM;\n        }\n        return volumeForce;\n    };\n    KlingerIndicator.prototype.getEMA = function (yVal, prevEMA, SMA, EMApercent, index, i, xVal) {\n        return KlingerIndicator_EMAIndicator.prototype.calculateEma(xVal || [], yVal, typeof i === 'undefined' ? 1 : i, EMApercent, prevEMA, typeof index === 'undefined' ? -1 : index, SMA);\n    };\n    KlingerIndicator.prototype.getSMA = function (period, index, values) {\n        return KlingerIndicator_EMAIndicator.prototype\n            .accumulatePeriodPoints(period, index, values) / period;\n    };\n    KlingerIndicator.prototype.getValues = function (series, params) {\n        var Klinger = [],\n            xVal = series.xData,\n            yVal = series.yData,\n            xData = [],\n            yData = [],\n            calcSingal = [];\n        var KO,\n            i = 0,\n            fastEMA = 0,\n            slowEMA,\n            previousFastEMA = void 0,\n            previousSlowEMA = void 0,\n            signal = null;\n        // If the necessary conditions are not fulfilled, don't proceed.\n        if (!this.isValidData(yVal[0])) {\n            return;\n        }\n        // Calculate the Volume Force array.\n        var volumeForce = this.getVolumeForce(yVal);\n        // Calculate SMA for the first points.\n        var SMAFast = this.getSMA(params.fastAvgPeriod, 0,\n            volumeForce),\n            SMASlow = this.getSMA(params.slowAvgPeriod, 0,\n            volumeForce);\n        // Calculate EMApercent for the first points.\n        var fastEMApercent = 2 / (params.fastAvgPeriod + 1), slowEMApercent = 2 / (params.slowAvgPeriod + 1);\n        // Calculate KO\n        for (i; i < yVal.length; i++) {\n            // Get EMA for fast period.\n            if (i >= params.fastAvgPeriod) {\n                fastEMA = this.getEMA(volumeForce, previousFastEMA, SMAFast, fastEMApercent, 0, i, xVal)[1];\n                previousFastEMA = fastEMA;\n            }\n            // Get EMA for slow period.\n            if (i >= params.slowAvgPeriod) {\n                slowEMA = this.getEMA(volumeForce, previousSlowEMA, SMASlow, slowEMApercent, 0, i, xVal)[1];\n                previousSlowEMA = slowEMA;\n                KO = KlingerIndicator_correctFloat(fastEMA - slowEMA);\n                calcSingal.push(KO);\n                // Calculate signal SMA\n                if (calcSingal.length >= params.signalPeriod) {\n                    signal = calcSingal.slice(-params.signalPeriod)\n                        .reduce(function (prev, curr) {\n                        return prev + curr;\n                    }) / params.signalPeriod;\n                }\n                Klinger.push([xVal[i], KO, signal]);\n                xData.push(xVal[i]);\n                yData.push([KO, signal]);\n            }\n        }\n        return {\n            values: Klinger,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Klinger oscillator. This series requires the `linkedTo` option to be set\n     * and should be loaded after the `stock/indicators/indicators.js` file.\n     *\n     * @sample stock/indicators/klinger\n     *         Klinger oscillator\n     *\n     * @extends      plotOptions.sma\n     * @since 9.1.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/klinger\n     * @optionparent plotOptions.klinger\n     */\n    KlingerIndicator.defaultOptions = KlingerIndicator_merge(KlingerIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * Parameters used in calculation of Klinger Oscillator.\n         *\n         * @excluding index, period\n         */\n        params: {\n            /**\n             * The fast period for indicator calculations.\n             */\n            fastAvgPeriod: 34,\n            /**\n             * The slow period for indicator calculations.\n             */\n            slowAvgPeriod: 55,\n            /**\n             * The base period for signal calculations.\n             */\n            signalPeriod: 13,\n            /**\n             * The id of another series to use its data as volume data for the\n             * indiator calculation.\n             */\n            volumeSeriesID: 'volume'\n        },\n        signalLine: {\n            /**\n             * Styles for a signal line.\n             */\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line. If not set, it's inherited from\n                 * [plotOptions.klinger.color\n                 * ](#plotOptions.klinger.color).\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: '#ff0000'\n            }\n        },\n        dataGrouping: {\n            approximation: 'averages'\n        },\n        tooltip: {\n            pointFormat: '<span style=\"color: {point.color}\">\\u25CF</span>' +\n                '<b> {series.name}</b><br/>' +\n                '<span style=\"color: {point.color}\">Klinger</span>: ' +\n                '{point.y}<br/>' +\n                '<span style=\"color: ' +\n                '{point.series.options.signalLine.styles.lineColor}\">' +\n                'Signal</span>' +\n                ': {point.signal}<br/>'\n        }\n    });\n    return KlingerIndicator;\n}(KlingerIndicator_SMAIndicator));\nKlingerIndicator_extend(KlingerIndicator.prototype, {\n    areaLinesNames: [],\n    linesApiNames: ['signalLine'],\n    nameBase: 'Klinger',\n    nameComponents: ['fastAvgPeriod', 'slowAvgPeriod'],\n    pointArrayMap: ['y', 'signal'],\n    parallelArrays: ['x', 'y', 'signal'],\n    pointValKey: 'y'\n});\nIndicators_MultipleLinesComposition.compose(KlingerIndicator);\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('klinger', KlingerIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var Klinger_KlingerIndicator = ((/* unused pure expression or super */ null && (KlingerIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A Klinger oscillator. If the [type](#series.klinger.type)\n * option is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.klinger\n * @since 9.1.0\n * @product   highstock\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/klinger\n * @apioption series.klinger\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/MACD/MACDIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar MACDIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar MACDIndicator_noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\nvar MACDIndicator_a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, ColumnSeries = MACDIndicator_a.column, MACDIndicator_SMAIndicator = MACDIndicator_a.sma;\n\nvar MACDIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, MACDIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, MACDIndicator_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, MACDIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The MACD series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.macd\n *\n * @augments Highcharts.Series\n */\nvar MACDIndicator = /** @class */ (function (_super) {\n    MACDIndicator_extends(MACDIndicator, _super);\n    function MACDIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    MACDIndicator.prototype.init = function () {\n        highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.init.apply(this, arguments);\n        var originalColor = this.color;\n        // Check whether series is initialized. It may be not initialized,\n        // when any of required indicators is missing.\n        if (this.options) {\n            // If the default colour doesn't set, get the next available from\n            // the array and apply it #15608.\n            if (MACDIndicator_defined(this.colorIndex)) {\n                if (this.options.signalLine &&\n                    this.options.signalLine.styles &&\n                    !this.options.signalLine.styles.lineColor) {\n                    this.options.colorIndex = this.colorIndex + 1;\n                    this.getCyclic('color', void 0, this.chart.options.colors);\n                    this.options.signalLine.styles.lineColor =\n                        this.color;\n                }\n                if (this.options.macdLine &&\n                    this.options.macdLine.styles &&\n                    !this.options.macdLine.styles.lineColor) {\n                    this.options.colorIndex = this.colorIndex + 1;\n                    this.getCyclic('color', void 0, this.chart.options.colors);\n                    this.options.macdLine.styles.lineColor =\n                        this.color;\n                }\n            }\n            // Zones have indexes automatically calculated, we need to\n            // translate them to support multiple lines within one indicator\n            this.macdZones = {\n                zones: this.options.macdLine.zones,\n                startIndex: 0\n            };\n            this.signalZones = {\n                zones: this.macdZones.zones.concat(this.options.signalLine.zones),\n                startIndex: this.macdZones.zones.length\n            };\n        }\n        // Reset color and index #15608.\n        this.color = originalColor;\n    };\n    MACDIndicator.prototype.toYData = function (point) {\n        return [point.y, point.signal, point.MACD];\n    };\n    MACDIndicator.prototype.translate = function () {\n        var indicator = this, plotNames = ['plotSignal', 'plotMACD'];\n        highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().seriesTypes.column.prototype.translate.apply(indicator);\n        indicator.points.forEach(function (point) {\n            [point.signal, point.MACD].forEach(function (value, i) {\n                if (value !== null) {\n                    point[plotNames[i]] =\n                        indicator.yAxis.toPixels(value, true);\n                }\n            });\n        });\n    };\n    MACDIndicator.prototype.destroy = function () {\n        // This.graph is null due to removing two times the same SVG element\n        this.graph = null;\n        this.graphmacd = this.graphmacd && this.graphmacd.destroy();\n        this.graphsignal = this.graphsignal && this.graphsignal.destroy();\n        highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.destroy.apply(this, arguments);\n    };\n    MACDIndicator.prototype.drawGraph = function () {\n        var indicator = this,\n            mainLinePoints = indicator.points,\n            mainLineOptions = indicator.options,\n            histogramZones = indicator.zones,\n            gappedExtend = {\n                options: {\n                    gapSize: mainLineOptions.gapSize\n                }\n            },\n            otherSignals = [[],\n            []];\n        var point,\n            pointsLength = mainLinePoints.length;\n        // Generate points for top and bottom lines:\n        while (pointsLength--) {\n            point = mainLinePoints[pointsLength];\n            if (MACDIndicator_defined(point.plotMACD)) {\n                otherSignals[0].push({\n                    plotX: point.plotX,\n                    plotY: point.plotMACD,\n                    isNull: !MACDIndicator_defined(point.plotMACD)\n                });\n            }\n            if (MACDIndicator_defined(point.plotSignal)) {\n                otherSignals[1].push({\n                    plotX: point.plotX,\n                    plotY: point.plotSignal,\n                    isNull: !MACDIndicator_defined(point.plotMACD)\n                });\n            }\n        }\n        // Modify options and generate smoothing line:\n        ['macd', 'signal'].forEach(function (lineName, i) {\n            var _a;\n            indicator.points = otherSignals[i];\n            indicator.options = MACDIndicator_merge(((_a = mainLineOptions[\"\" + lineName + \"Line\"]) === null || _a === void 0 ? void 0 : _a.styles) || {}, gappedExtend);\n            indicator.graph = indicator[\"graph\".concat(lineName)];\n            // Zones extension:\n            indicator.zones = (indicator[\"\" + lineName + \"Zones\"].zones || []).slice(indicator[\"\" + lineName + \"Zones\"].startIndex || 0);\n            highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.drawGraph.call(indicator);\n            indicator[\"graph\".concat(lineName)] = indicator.graph;\n        });\n        // Restore options:\n        indicator.points = mainLinePoints;\n        indicator.options = mainLineOptions;\n        indicator.zones = histogramZones;\n    };\n    MACDIndicator.prototype.applyZones = function () {\n        // Histogram zones are handled by drawPoints method\n        // Here we need to apply zones for all lines\n        var histogramZones = this.zones;\n        // `signalZones.zones` contains all zones:\n        this.zones = this.signalZones.zones;\n        highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.applyZones.call(this);\n        // `applyZones` hides only main series.graph, hide macd line manually\n        if (this.graphmacd && this.options.macdLine.zones.length) {\n            this.graphmacd.hide();\n        }\n        this.zones = histogramZones;\n    };\n    MACDIndicator.prototype.getValues = function (series, params) {\n        var indexToShift = (params.longPeriod - params.shortPeriod), // #14197\n            MACD = [],\n            xMACD = [],\n            yMACD = [];\n        var shortEMA,\n            longEMA,\n            i,\n            j = 0,\n            signalLine = [];\n        if (series.xData.length <\n            params.longPeriod + params.signalPeriod) {\n            return;\n        }\n        // Calculating the short and long EMA used when calculating the MACD\n        shortEMA = highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.ema.prototype.getValues(series, {\n            period: params.shortPeriod,\n            index: params.index\n        });\n        longEMA = highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.ema.prototype.getValues(series, {\n            period: params.longPeriod,\n            index: params.index\n        });\n        shortEMA = shortEMA.values;\n        longEMA = longEMA.values;\n        // Subtract each Y value from the EMA's and create the new dataset\n        // (MACD)\n        for (i = 0; i <= shortEMA.length; i++) {\n            if (MACDIndicator_defined(longEMA[i]) &&\n                MACDIndicator_defined(longEMA[i][1]) &&\n                MACDIndicator_defined(shortEMA[i + indexToShift]) &&\n                MACDIndicator_defined(shortEMA[i + indexToShift][0])) {\n                MACD.push([\n                    shortEMA[i + indexToShift][0],\n                    0,\n                    null,\n                    shortEMA[i + indexToShift][1] -\n                        longEMA[i][1]\n                ]);\n            }\n        }\n        // Set the Y and X data of the MACD. This is used in calculating the\n        // signal line.\n        for (i = 0; i < MACD.length; i++) {\n            xMACD.push(MACD[i][0]);\n            yMACD.push([0, null, MACD[i][3]]);\n        }\n        // Setting the signalline (Signal Line: X-day EMA of MACD line).\n        signalLine = highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.ema.prototype.getValues({\n            xData: xMACD,\n            yData: yMACD\n        }, {\n            period: params.signalPeriod,\n            index: 2\n        });\n        signalLine = signalLine.values;\n        // Setting the MACD Histogram. In comparison to the loop with pure\n        // MACD this loop uses MACD x value not xData.\n        for (i = 0; i < MACD.length; i++) {\n            // Detect the first point\n            if (MACD[i][0] >= signalLine[0][0]) {\n                MACD[i][2] = signalLine[j][1];\n                yMACD[i] = [0, signalLine[j][1], MACD[i][3]];\n                if (MACD[i][3] === null) {\n                    MACD[i][1] = 0;\n                    yMACD[i][0] = 0;\n                }\n                else {\n                    MACD[i][1] = MACDIndicator_correctFloat(MACD[i][3] -\n                        signalLine[j][1]);\n                    yMACD[i][0] = MACDIndicator_correctFloat(MACD[i][3] -\n                        signalLine[j][1]);\n                }\n                j++;\n            }\n        }\n        return {\n            values: MACD,\n            xData: xMACD,\n            yData: yMACD\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Moving Average Convergence Divergence (MACD). This series requires\n     * `linkedTo` option to be set and should be loaded after the\n     * `stock/indicators/indicators.js`.\n     *\n     * @sample stock/indicators/macd\n     *         MACD indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/macd\n     * @optionparent plotOptions.macd\n     */\n    MACDIndicator.defaultOptions = MACDIndicator_merge(MACDIndicator_SMAIndicator.defaultOptions, {\n        params: {\n            /**\n             * The short period for indicator calculations.\n             */\n            shortPeriod: 12,\n            /**\n             * The long period for indicator calculations.\n             */\n            longPeriod: 26,\n            /**\n             * The base period for signal calculations.\n             */\n            signalPeriod: 9,\n            period: 26\n        },\n        /**\n         * The styles for signal line\n         */\n        signalLine: {\n            /**\n             * @sample stock/indicators/macd-zones\n             *         Zones in MACD\n             *\n             * @extends plotOptions.macd.zones\n             */\n            zones: [],\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line.\n                 *\n                 * @type  {Highcharts.ColorString}\n                 */\n                lineColor: void 0\n            }\n        },\n        /**\n         * The styles for macd line\n         */\n        macdLine: {\n            /**\n             * @sample stock/indicators/macd-zones\n             *         Zones in MACD\n             *\n             * @extends plotOptions.macd.zones\n             */\n            zones: [],\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line.\n                 *\n                 * @type  {Highcharts.ColorString}\n                 */\n                lineColor: void 0\n            }\n        },\n        /**\n         * @type {number|null}\n         */\n        threshold: 0,\n        groupPadding: 0.1,\n        pointPadding: 0.1,\n        crisp: false,\n        states: {\n            hover: {\n                halo: {\n                    size: 0\n                }\n            }\n        },\n        tooltip: {\n            pointFormat: '<span style=\"color:{point.color}\">\\u25CF</span> <b> {series.name}</b><br/>' +\n                'Value: {point.MACD}<br/>' +\n                'Signal: {point.signal}<br/>' +\n                'Histogram: {point.y}<br/>'\n        },\n        dataGrouping: {\n            approximation: 'averages'\n        },\n        minPointLength: 0\n    });\n    return MACDIndicator;\n}(MACDIndicator_SMAIndicator));\nMACDIndicator_extend(MACDIndicator.prototype, {\n    nameComponents: ['longPeriod', 'shortPeriod', 'signalPeriod'],\n    // \"y\" value is treated as Histogram data\n    pointArrayMap: ['y', 'signal', 'MACD'],\n    parallelArrays: ['x', 'y', 'signal', 'MACD'],\n    pointValKey: 'y',\n    // Columns support:\n    markerAttribs: MACDIndicator_noop,\n    getColumnMetrics: (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).seriesTypes.column.prototype.getColumnMetrics,\n    crispCol: (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).seriesTypes.column.prototype.crispCol,\n    drawPoints: (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).seriesTypes.column.prototype.drawPoints\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('macd', MACDIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var MACD_MACDIndicator = ((/* unused pure expression or super */ null && (MACDIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `MACD` series. If the [type](#series.macd.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.macd\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/macd\n * @apioption series.macd\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/MFI/MFIIndicator.js\n/* *\n *\n *  Money Flow Index indicator for Highcharts Stock\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\nvar MFIIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar MFIIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar MFIIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, MFIIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, MFIIndicator_error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error, MFIIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray;\n/* *\n *\n *  Functions\n *\n * */\n// Utils:\n/**\n *\n */\nfunction MFIIndicator_sumArray(array) {\n    return array.reduce(function (prev, cur) {\n        return prev + cur;\n    });\n}\n/**\n *\n */\nfunction toFixed(a, n) {\n    return parseFloat(a.toFixed(n));\n}\n/**\n *\n */\nfunction calculateTypicalPrice(point) {\n    return (point[1] + point[2] + point[3]) / 3;\n}\n/**\n *\n */\nfunction calculateRawMoneyFlow(typicalPrice, volume) {\n    return typicalPrice * volume;\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The MFI series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.mfi\n *\n * @augments Highcharts.Series\n */\nvar MFIIndicator = /** @class */ (function (_super) {\n    MFIIndicator_extends(MFIIndicator, _super);\n    function MFIIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    MFIIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            decimals = params.decimals,\n            volumeSeries = series.chart.get(params.volumeSeriesID),\n            yValVolume = (volumeSeries === null || volumeSeries === void 0 ? void 0 : volumeSeries.getColumn('y')) || [],\n            MFI = [],\n            xData = [],\n            yData = [],\n            positiveMoneyFlow = [],\n            negativeMoneyFlow = [];\n        var newTypicalPrice,\n            oldTypicalPrice,\n            rawMoneyFlow,\n            negativeMoneyFlowSum,\n            positiveMoneyFlowSum,\n            moneyFlowRatio,\n            MFIPoint,\n            i,\n            isUp = false, \n            // MFI starts calculations from the second point\n            // Cause we need to calculate change between two points\n            range = 1;\n        if (!volumeSeries) {\n            MFIIndicator_error('Series ' +\n                params.volumeSeriesID +\n                ' not found! Check `volumeSeriesID`.', true, series.chart);\n            return;\n        }\n        // MFI requires high low and close values\n        if ((xVal.length <= period) || !MFIIndicator_isArray(yVal[0]) ||\n            yVal[0].length !== 4 ||\n            !yValVolume) {\n            return;\n        }\n        // Calculate first typical price\n        newTypicalPrice = calculateTypicalPrice(yVal[range]);\n        // Accumulate first N-points\n        while (range < period + 1) {\n            // Calculate if up or down\n            oldTypicalPrice = newTypicalPrice;\n            newTypicalPrice = calculateTypicalPrice(yVal[range]);\n            isUp = newTypicalPrice >= oldTypicalPrice;\n            // Calculate raw money flow\n            rawMoneyFlow = calculateRawMoneyFlow(newTypicalPrice, yValVolume[range]);\n            // Add to array\n            positiveMoneyFlow.push(isUp ? rawMoneyFlow : 0);\n            negativeMoneyFlow.push(isUp ? 0 : rawMoneyFlow);\n            range++;\n        }\n        for (i = range - 1; i < yValLen; i++) {\n            if (i > range - 1) {\n                // Remove first point from array\n                positiveMoneyFlow.shift();\n                negativeMoneyFlow.shift();\n                // Calculate if up or down\n                oldTypicalPrice = newTypicalPrice;\n                newTypicalPrice = calculateTypicalPrice(yVal[i]);\n                isUp = newTypicalPrice > oldTypicalPrice;\n                // Calculate raw money flow\n                rawMoneyFlow = calculateRawMoneyFlow(newTypicalPrice, yValVolume[i]);\n                // Add to array\n                positiveMoneyFlow.push(isUp ? rawMoneyFlow : 0);\n                negativeMoneyFlow.push(isUp ? 0 : rawMoneyFlow);\n            }\n            // Calculate sum of negative and positive money flow:\n            negativeMoneyFlowSum = MFIIndicator_sumArray(negativeMoneyFlow);\n            positiveMoneyFlowSum = MFIIndicator_sumArray(positiveMoneyFlow);\n            moneyFlowRatio = positiveMoneyFlowSum / negativeMoneyFlowSum;\n            MFIPoint = toFixed(100 - (100 / (1 + moneyFlowRatio)), decimals);\n            MFI.push([xVal[i], MFIPoint]);\n            xData.push(xVal[i]);\n            yData.push(MFIPoint);\n        }\n        return {\n            values: MFI,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Money Flow Index. This series requires `linkedTo` option to be set and\n     * should be loaded after the `stock/indicators/indicators.js` file.\n     *\n     * @sample stock/indicators/mfi\n     *         Money Flow Index Indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/mfi\n     * @optionparent plotOptions.mfi\n     */\n    MFIIndicator.defaultOptions = MFIIndicator_merge(MFIIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * @excluding index\n         */\n        params: {\n            index: void 0, // Unchangeable index, do not inherit (#15362)\n            /**\n             * The id of volume series which is mandatory.\n             * For example using OHLC data, volumeSeriesID='volume' means\n             * the indicator will be calculated using OHLC and volume values.\n             */\n            volumeSeriesID: 'volume',\n            /**\n             * Number of maximum decimals that are used in MFI calculations.\n             */\n            decimals: 4\n        }\n    });\n    return MFIIndicator;\n}(MFIIndicator_SMAIndicator));\nMFIIndicator_extend(MFIIndicator.prototype, {\n    nameBase: 'Money Flow Index'\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('mfi', MFIIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var MFI_MFIIndicator = ((/* unused pure expression or super */ null && (MFIIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `MFI` series. If the [type](#series.mfi.type) option is not specified, it\n * is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.mfi\n * @since     6.0.0\n * @excluding dataParser, dataURL\n * @product   highstock\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/mfi\n * @apioption series.mfi\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar MomentumIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar MomentumIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar MomentumIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, MomentumIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, MomentumIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Functions\n *\n * */\n/**\n * @private\n */\nfunction MomentumIndicator_populateAverage(xVal, yVal, i, period, index) {\n    var mmY = yVal[i - 1][index] - yVal[i - period - 1][index],\n        mmX = xVal[i - 1];\n    return [mmX, mmY];\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Momentum series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.momentum\n *\n * @augments Highcharts.Series\n */\nvar MomentumIndicator = /** @class */ (function (_super) {\n    MomentumIndicator_extends(MomentumIndicator, _super);\n    function MomentumIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    MomentumIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            index = params.index,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            MM = [],\n            xData = [],\n            yData = [];\n        var i,\n            MMPoint;\n        if (xVal.length <= period) {\n            return;\n        }\n        // Switch index for OHLC / Candlestick / Arearange\n        if (!MomentumIndicator_isArray(yVal[0])) {\n            return;\n        }\n        // Calculate value one-by-one for each period in visible data\n        for (i = (period + 1); i < yValLen; i++) {\n            MMPoint = MomentumIndicator_populateAverage(xVal, yVal, i, period, index);\n            MM.push(MMPoint);\n            xData.push(MMPoint[0]);\n            yData.push(MMPoint[1]);\n        }\n        MMPoint = MomentumIndicator_populateAverage(xVal, yVal, i, period, index);\n        MM.push(MMPoint);\n        xData.push(MMPoint[0]);\n        yData.push(MMPoint[1]);\n        return {\n            values: MM,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Momentum. This series requires `linkedTo` option to be set.\n     *\n     * @sample stock/indicators/momentum\n     *         Momentum indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/momentum\n     * @optionparent plotOptions.momentum\n     */\n    MomentumIndicator.defaultOptions = MomentumIndicator_merge(MomentumIndicator_SMAIndicator.defaultOptions, {\n        params: {\n            index: 3\n        }\n    });\n    return MomentumIndicator;\n}(MomentumIndicator_SMAIndicator));\nMomentumIndicator_extend(MomentumIndicator.prototype, {\n    nameBase: 'Momentum'\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('momentum', MomentumIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var Momentum_MomentumIndicator = ((/* unused pure expression or super */ null && (MomentumIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `Momentum` series. If the [type](#series.momentum.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.momentum\n * @since     6.0.0\n * @excluding dataParser, dataURL\n * @product   highstock\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/momentum\n * @apioption series.momentum\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/NATR/NATRIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar NATRIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar NATRIndicator_ATRIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.atr;\n\nvar NATRIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The NATR series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.natr\n *\n * @augments Highcharts.Series\n */\nvar NATRIndicator = /** @class */ (function (_super) {\n    NATRIndicator_extends(NATRIndicator, _super);\n    function NATRIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    NATRIndicator.prototype.getValues = function (series, params) {\n        var atrData = (_super.prototype.getValues.apply(this,\n            arguments)),\n            atrLength = atrData.values.length,\n            yVal = series.yData;\n        var i = 0,\n            period = params.period - 1;\n        if (!atrData) {\n            return;\n        }\n        for (; i < atrLength; i++) {\n            atrData.yData[i] = (atrData.values[i][1] / yVal[period][3] * 100);\n            atrData.values[i][1] = atrData.yData[i];\n            period++;\n        }\n        return atrData;\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Normalized average true range indicator (NATR). This series requires\n     * `linkedTo` option to be set and should be loaded after the\n     * `stock/indicators/indicators.js` and `stock/indicators/atr.js`.\n     *\n     * @sample {highstock} stock/indicators/natr\n     *         NATR indicator\n     *\n     * @extends      plotOptions.atr\n     * @since        7.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/natr\n     * @optionparent plotOptions.natr\n     */\n    NATRIndicator.defaultOptions = NATRIndicator_merge(NATRIndicator_ATRIndicator.defaultOptions, {\n        tooltip: {\n            valueSuffix: '%'\n        }\n    });\n    return NATRIndicator;\n}(NATRIndicator_ATRIndicator));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('natr', NATRIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var NATR_NATRIndicator = ((/* unused pure expression or super */ null && (NATRIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `NATR` series. If the [type](#series.natr.type) option is not specified, it\n * is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.natr\n * @since     7.0.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/atr\n * @requires  stock/indicators/natr\n * @apioption series.natr\n */\n''; // To include the above in the js output'\n\n;// ./code/es5/es-modules/Stock/Indicators/OBV/OBVIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar OBVIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar OBVIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar OBVIndicator_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, OBVIndicator_error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error, OBVIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, OBVIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The OBV series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.obv\n *\n * @augments Highcharts.Series\n */\nvar OBVIndicator = /** @class */ (function (_super) {\n    OBVIndicator_extends(OBVIndicator, _super);\n    function OBVIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    OBVIndicator.prototype.getValues = function (series, params) {\n        var volumeSeries = series.chart.get(params.volumeSeriesID),\n            xVal = series.xData,\n            yVal = series.yData,\n            OBV = [],\n            xData = [],\n            yData = [],\n            hasOHLC = !OBVIndicator_isNumber(yVal[0]);\n        var OBVPoint = [],\n            i = 1,\n            previousOBV = 0,\n            curentOBV = 0,\n            previousClose = 0,\n            curentClose = 0,\n            volume;\n        // Checks if volume series exists.\n        if (volumeSeries) {\n            volume = volumeSeries.getColumn('y');\n            // Add first point and get close value.\n            OBVPoint = [xVal[0], previousOBV];\n            previousClose = hasOHLC ?\n                yVal[0][3] : yVal[0];\n            OBV.push(OBVPoint);\n            xData.push(xVal[0]);\n            yData.push(OBVPoint[1]);\n            for (i; i < yVal.length; i++) {\n                curentClose = hasOHLC ?\n                    yVal[i][3] : yVal[i];\n                if (curentClose > previousClose) { // Up\n                    curentOBV = previousOBV + volume[i];\n                }\n                else if (curentClose === previousClose) { // Constant\n                    curentOBV = previousOBV;\n                }\n                else { // Down\n                    curentOBV = previousOBV - volume[i];\n                }\n                // Add point.\n                OBVPoint = [xVal[i], curentOBV];\n                // Assign current as previous for next iteration.\n                previousOBV = curentOBV;\n                previousClose = curentClose;\n                OBV.push(OBVPoint);\n                xData.push(xVal[i]);\n                yData.push(OBVPoint[1]);\n            }\n        }\n        else {\n            OBVIndicator_error('Series ' +\n                params.volumeSeriesID +\n                ' not found! Check `volumeSeriesID`.', true, series.chart);\n            return;\n        }\n        return {\n            values: OBV,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * On-Balance Volume (OBV) technical indicator. This series\n     * requires the `linkedTo` option to be set and should be loaded after\n     * the `stock/indicators/indicators.js` file. Through the `volumeSeriesID`\n     * there also should be linked the volume series.\n     *\n     * @sample stock/indicators/obv\n     *         OBV indicator\n     *\n     * @extends      plotOptions.sma\n     * @since 9.1.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/obv\n     * @excluding    allAreas, colorAxis, joinBy, keys, navigatorOptions,\n     *               pointInterval, pointIntervalUnit, pointPlacement,\n     *               pointRange, pointStart, showInNavigator, stacking\n     * @optionparent plotOptions.obv\n     */\n    OBVIndicator.defaultOptions = OBVIndicator_merge(OBVIndicator_SMAIndicator.defaultOptions, {\n        marker: {\n            enabled: false\n        },\n        /**\n         * @excluding index, period\n         */\n        params: {\n            // Index and period are unchangeable, do not inherit (#15362)\n            index: void 0,\n            period: void 0,\n            /**\n             * The id of another series to use its data as volume data for the\n             * indicator calculation.\n             */\n            volumeSeriesID: 'volume'\n        },\n        tooltip: {\n            valueDecimals: 0\n        }\n    });\n    return OBVIndicator;\n}(OBVIndicator_SMAIndicator));\nOBVIndicator_extend(OBVIndicator.prototype, {\n    nameComponents: void 0\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('obv', OBVIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var OBV_OBVIndicator = ((/* unused pure expression or super */ null && (OBVIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `OBV` series. If the [type](#series.obv.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.obv\n * @since 9.1.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/obv\n * @apioption series.obv\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar PivotPointsPoint_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar SMAPoint = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma.prototype.pointClass;\n/* *\n *\n *  Functions\n *\n * */\n/**\n * @private\n */\nfunction destroyExtraLabels(point, functionName) {\n    var props = point.series.pointArrayMap;\n    var prop,\n        i = props.length;\n    (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma.prototype.pointClass.prototype[functionName].call(point);\n    while (i--) {\n        prop = 'dataLabel' + props[i];\n        // S4 dataLabel could be removed by parent method:\n        if (point[prop] && point[prop].element) {\n            point[prop].destroy();\n        }\n        point[prop] = null;\n    }\n}\n/* *\n *\n *  Class\n *\n * */\nvar PivotPointsPoint = /** @class */ (function (_super) {\n    PivotPointsPoint_extends(PivotPointsPoint, _super);\n    function PivotPointsPoint() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    PivotPointsPoint.prototype.destroyElements = function () {\n        destroyExtraLabels(this, 'destroyElements');\n    };\n    // This method is called when removing points, e.g. series.update()\n    PivotPointsPoint.prototype.destroy = function () {\n        destroyExtraLabels(this, 'destroyElements');\n    };\n    return PivotPointsPoint;\n}(SMAPoint));\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var PivotPoints_PivotPointsPoint = (PivotPointsPoint);\n\n;// ./code/es5/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar PivotPointsIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar PivotPointsIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar PivotPointsIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, PivotPointsIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, PivotPointsIndicator_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, PivotPointsIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray;\n/**\n *\n *  Class\n *\n **/\n/**\n * The Pivot Points series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.pivotpoints\n *\n * @augments Highcharts.Series\n */\nvar PivotPointsIndicator = /** @class */ (function (_super) {\n    PivotPointsIndicator_extends(PivotPointsIndicator, _super);\n    function PivotPointsIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    PivotPointsIndicator.prototype.toYData = function (point) {\n        return [point.P]; // The rest should not affect extremes\n    };\n    PivotPointsIndicator.prototype.translate = function () {\n        var indicator = this;\n        _super.prototype.translate.apply(indicator);\n        indicator.points.forEach(function (point) {\n            indicator.pointArrayMap.forEach(function (value) {\n                if (PivotPointsIndicator_defined(point[value])) {\n                    point['plot' + value] = (indicator.yAxis.toPixels(point[value], true));\n                }\n            });\n        });\n        // Pivot points are rendered as horizontal lines\n        // And last point start not from the next one (as it's the last one)\n        // But from the approximated last position in a given range\n        indicator.plotEndPoint = indicator.xAxis.toPixels(indicator.endPoint, true);\n    };\n    PivotPointsIndicator.prototype.getGraphPath = function (points) {\n        var indicator = this,\n            allPivotPoints = ([[],\n            [],\n            [],\n            [],\n            [],\n            [],\n            [],\n            [],\n            []]),\n            pointArrayMapLength = indicator.pointArrayMap.length;\n        var endPoint = indicator.plotEndPoint,\n            path = [],\n            position,\n            point,\n            pointsLength = points.length,\n            i;\n        while (pointsLength--) {\n            point = points[pointsLength];\n            for (i = 0; i < pointArrayMapLength; i++) {\n                position = indicator.pointArrayMap[i];\n                if (PivotPointsIndicator_defined(point[position])) {\n                    allPivotPoints[i].push({\n                        // Start left:\n                        plotX: point.plotX,\n                        plotY: point['plot' + position],\n                        isNull: false\n                    }, {\n                        // Go to right:\n                        plotX: endPoint,\n                        plotY: point['plot' + position],\n                        isNull: false\n                    }, {\n                        // And add null points in path to generate breaks:\n                        plotX: endPoint,\n                        plotY: null,\n                        isNull: true\n                    });\n                }\n            }\n            endPoint = point.plotX;\n        }\n        allPivotPoints.forEach(function (pivotPoints) {\n            path = path.concat(_super.prototype.getGraphPath.call(indicator, pivotPoints));\n        });\n        return path;\n    };\n    // TODO: Rewrite this logic to use multiple datalabels\n    PivotPointsIndicator.prototype.drawDataLabels = function () {\n        var indicator = this,\n            pointMapping = indicator.pointArrayMap;\n        var currentLabel,\n            pointsLength,\n            point,\n            i;\n        if (indicator.options.dataLabels.enabled) {\n            pointsLength = indicator.points.length;\n            // For every Resistance/Support group we need to render labels.\n            // Add one more item, which will just store dataLabels from\n            // previous iteration\n            pointMapping.concat([false]).forEach(function (position, k) {\n                i = pointsLength;\n                while (i--) {\n                    point = indicator.points[i];\n                    if (!position) {\n                        // Store S4 dataLabel too:\n                        point['dataLabel' + pointMapping[k - 1]] =\n                            point.dataLabel;\n                    }\n                    else {\n                        point.y = point[position];\n                        point.pivotLine = position;\n                        point.plotY = point['plot' + position];\n                        currentLabel = point['dataLabel' + position];\n                        // Store previous label\n                        if (k) {\n                            point['dataLabel' + pointMapping[k - 1]] = point.dataLabel;\n                        }\n                        if (!point.dataLabels) {\n                            point.dataLabels = [];\n                        }\n                        point.dataLabels[0] = point.dataLabel =\n                            currentLabel =\n                                currentLabel && currentLabel.element ?\n                                    currentLabel :\n                                    null;\n                    }\n                }\n                _super.prototype.drawDataLabels\n                    .call(indicator);\n            });\n        }\n    };\n    PivotPointsIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            placement = this[params.algorithm + 'Placement'], \n            // 0- from, 1- to, 2- R1, 3- R2, 4- pivot, 5- S1 etc.\n            PP = [],\n            xData = [],\n            yData = [];\n        var endTimestamp,\n            slicedXLen,\n            slicedX,\n            slicedY,\n            lastPP,\n            pivot,\n            avg,\n            i;\n        // Pivot Points requires high, low and close values\n        if (xVal.length < period ||\n            !PivotPointsIndicator_isArray(yVal[0]) ||\n            yVal[0].length !== 4) {\n            return;\n        }\n        for (i = period + 1; i <= yValLen + period; i += period) {\n            slicedX = xVal.slice(i - period - 1, i);\n            slicedY = yVal.slice(i - period - 1, i);\n            slicedXLen = slicedX.length;\n            endTimestamp = slicedX[slicedXLen - 1];\n            pivot = this.getPivotAndHLC(slicedY);\n            avg = placement(pivot);\n            lastPP = PP.push([endTimestamp]\n                .concat(avg));\n            xData.push(endTimestamp);\n            yData.push(PP[lastPP - 1].slice(1));\n        }\n        // We don't know exact position in ordinal axis\n        // So we use simple logic:\n        // Get first point in last range, calculate visible average range\n        // and multiply by period\n        this.endPoint = slicedX[0] + ((endTimestamp - slicedX[0]) /\n            slicedXLen) * period;\n        return {\n            values: PP,\n            xData: xData,\n            yData: yData\n        };\n    };\n    PivotPointsIndicator.prototype.getPivotAndHLC = function (values) {\n        var close = values[values.length - 1][3];\n        var high = -Infinity,\n            low = Infinity;\n        values.forEach(function (p) {\n            high = Math.max(high, p[1]);\n            low = Math.min(low, p[2]);\n        });\n        var pivot = (high + low + close) / 3;\n        return [pivot, high, low, close];\n    };\n    PivotPointsIndicator.prototype.standardPlacement = function (values) {\n        var diff = values[1] - values[2],\n            avg = [\n                null,\n                null,\n                values[0] + diff,\n                values[0] * 2 - values[2],\n                values[0],\n                values[0] * 2 - values[1],\n                values[0] - diff,\n                null,\n                null\n            ];\n        return avg;\n    };\n    PivotPointsIndicator.prototype.camarillaPlacement = function (values) {\n        var diff = values[1] - values[2],\n            avg = [\n                values[3] + diff * 1.5,\n                values[3] + diff * 1.25,\n                values[3] + diff * 1.1666,\n                values[3] + diff * 1.0833,\n                values[0],\n                values[3] - diff * 1.0833,\n                values[3] - diff * 1.1666,\n                values[3] - diff * 1.25,\n                values[3] - diff * 1.5\n            ];\n        return avg;\n    };\n    PivotPointsIndicator.prototype.fibonacciPlacement = function (values) {\n        var diff = values[1] - values[2],\n            avg = [\n                null,\n                values[0] + diff,\n                values[0] + diff * 0.618,\n                values[0] + diff * 0.382,\n                values[0],\n                values[0] - diff * 0.382,\n                values[0] - diff * 0.618,\n                values[0] - diff,\n                null\n            ];\n        return avg;\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Pivot points indicator. This series requires the `linkedTo` option to be\n     * set and should be loaded after `stock/indicators/indicators.js` file.\n     *\n     * @sample stock/indicators/pivot-points\n     *         Pivot points\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/pivot-points\n     * @optionparent plotOptions.pivotpoints\n     */\n    PivotPointsIndicator.defaultOptions = PivotPointsIndicator_merge(PivotPointsIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * @excluding index\n         */\n        params: {\n            index: void 0, // Unchangeable index, do not inherit (#15362)\n            period: 28,\n            /**\n             * Algorithm used to calculate resistance and support lines based\n             * on pivot points. Implemented algorithms: `'standard'`,\n             * `'fibonacci'` and `'camarilla'`\n             */\n            algorithm: 'standard'\n        },\n        marker: {\n            enabled: false\n        },\n        enableMouseTracking: false,\n        dataLabels: {\n            enabled: true,\n            format: '{point.pivotLine}'\n        },\n        dataGrouping: {\n            approximation: 'averages'\n        }\n    });\n    return PivotPointsIndicator;\n}(PivotPointsIndicator_SMAIndicator));\nPivotPointsIndicator_extend(PivotPointsIndicator.prototype, {\n    nameBase: 'Pivot Points',\n    pointArrayMap: ['R4', 'R3', 'R2', 'R1', 'P', 'S1', 'S2', 'S3', 'S4'],\n    pointValKey: 'P',\n    pointClass: PivotPoints_PivotPointsPoint\n});\n/* *\n *\n *  Registry\n *\n * */\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('pivotpoints', PivotPointsIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var PivotPoints_PivotPointsIndicator = ((/* unused pure expression or super */ null && (PivotPointsIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A pivot points indicator. If the [type](#series.pivotpoints.type) option is\n * not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.pivotpoints\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/pivot-points\n * @apioption series.pivotpoints\n */\n''; // To include the above in the js output'\n\n;// ./code/es5/es-modules/Stock/Indicators/PPO/PPOIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar PPOIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar PPOIndicator_EMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.ema;\n\nvar PPOIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, PPOIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, PPOIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, PPOIndicator_error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The PPO series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.ppo\n *\n * @augments Highcharts.Series\n */\nvar PPOIndicator = /** @class */ (function (_super) {\n    PPOIndicator_extends(PPOIndicator, _super);\n    function PPOIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    PPOIndicator.prototype.getValues = function (series, params) {\n        var periods = params.periods,\n            index = params.index, \n            // 0- date, 1- Percentage Price Oscillator\n            PPO = [],\n            xData = [],\n            yData = [];\n        var oscillator,\n            i;\n        // Check if periods are correct\n        if (periods.length !== 2 || periods[1] <= periods[0]) {\n            PPOIndicator_error('Error: \"PPO requires two periods. Notice, first period ' +\n                'should be lower than the second one.\"');\n            return;\n        }\n        // Shorter Period EMA\n        var SPE = _super.prototype.getValues.call(this,\n            series, {\n                index: index,\n                period: periods[0]\n            });\n        // Longer Period EMA\n        var LPE = _super.prototype.getValues.call(this,\n            series, {\n                index: index,\n                period: periods[1]\n            });\n        // Check if ema is calculated properly, if not skip\n        if (!SPE || !LPE) {\n            return;\n        }\n        var periodsOffset = periods[1] - periods[0];\n        for (i = 0; i < LPE.yData.length; i++) {\n            oscillator = PPOIndicator_correctFloat((SPE.yData[i + periodsOffset] -\n                LPE.yData[i]) /\n                LPE.yData[i] *\n                100);\n            PPO.push([LPE.xData[i], oscillator]);\n            xData.push(LPE.xData[i]);\n            yData.push(oscillator);\n        }\n        return {\n            values: PPO,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Percentage Price Oscillator. This series requires the\n     * `linkedTo` option to be set and should be loaded after the\n     * `stock/indicators/indicators.js`.\n     *\n     * @sample {highstock} stock/indicators/ppo\n     *         Percentage Price Oscillator\n     *\n     * @extends      plotOptions.ema\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, joinBy, keys, navigatorOptions,\n     *               pointInterval, pointIntervalUnit, pointPlacement,\n     *               pointRange, pointStart, showInNavigator, stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/ppo\n     * @optionparent plotOptions.ppo\n     */\n    PPOIndicator.defaultOptions = PPOIndicator_merge(PPOIndicator_EMAIndicator.defaultOptions, {\n        /**\n         * Parameters used in calculation of Percentage Price Oscillator series\n         * points.\n         *\n         * @excluding period\n         */\n        params: {\n            period: void 0, // Unchangeable period, do not inherit (#15362)\n            /**\n             * Periods for Percentage Price Oscillator calculations.\n             *\n             * @type    {Array<number>}\n             * @default [12, 26]\n             */\n            periods: [12, 26]\n        }\n    });\n    return PPOIndicator;\n}(PPOIndicator_EMAIndicator));\nPPOIndicator_extend(PPOIndicator.prototype, {\n    nameBase: 'PPO',\n    nameComponents: ['periods']\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('ppo', PPOIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var PPO_PPOIndicator = ((/* unused pure expression or super */ null && (PPOIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `Percentage Price Oscillator` series. If the [type](#series.ppo.type)\n * option is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.ppo\n * @since     7.0.0\n * @product   highstock\n * @excluding allAreas, colorAxis, dataParser, dataURL, joinBy, keys,\n *            navigatorOptions, pointInterval, pointIntervalUnit,\n *            pointPlacement, pointRange, pointStart, showInNavigator, stacking\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/ppo\n * @apioption series.ppo\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/ArrayUtilities.js\n/**\n *\n *  (c) 2010-2024 Pawel Fus & Daniel Studencki\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n *  Functions\n *\n * */\n/**\n * Get extremes of array filled by OHLC data.\n *\n * @private\n *\n * @param {Array<Array<number>>} arr\n * Array of OHLC points (arrays).\n *\n * @param {number} minIndex\n * Index of \"low\" value in point array.\n *\n * @param {number} maxIndex\n * Index of \"high\" value in point array.\n *\n * @return {Array<number,number>}\n * Returns array with min and max value.\n */\nfunction getArrayExtremes(arr, minIndex, maxIndex) {\n    return arr.reduce(function (prev, target) { return [\n        Math.min(prev[0], target[minIndex]),\n        Math.max(prev[1], target[maxIndex])\n    ]; }, [Number.MAX_VALUE, -Number.MAX_VALUE]);\n}\n/* *\n *\n *  Default Export\n *\n * */\nvar ArrayUtilities = {\n    getArrayExtremes: getArrayExtremes\n};\n/* harmony default export */ var Indicators_ArrayUtilities = (ArrayUtilities);\n\n;// ./code/es5/es-modules/Core/Color/Palettes.js\n/*\n * Series palettes for Highcharts. Series colors are defined in highcharts.css.\n * **Do not edit this file!** This file is generated using the 'gulp palette' task.\n */\nvar SeriesPalettes = {\n    /**\n     * Colors for data series and points\n     */\n    colors: [\n        '#2caffe',\n        '#544fc5',\n        '#00e272',\n        '#fe6a35',\n        '#6b8abc',\n        '#d568fb',\n        '#2ee0ca',\n        '#fa4b42',\n        '#feb56a',\n        '#91e8e1'\n    ],\n};\n/* harmony default export */ var Palettes = (SeriesPalettes);\n\n;// ./code/es5/es-modules/Stock/Indicators/PC/PCIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar PCIndicator_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 PCIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar PCIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, PCIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Price Channel series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.pc\n *\n * @augments Highcharts.Series\n */\nvar PCIndicator = /** @class */ (function (_super) {\n    PCIndicator_extends(PCIndicator, _super);\n    function PCIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    PCIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0, \n            // 0- date, 1-top line, 2-middle line, 3-bottom line\n            PC = [], \n            // Middle line, top line and bottom line\n            low = 2,\n            high = 1,\n            xData = [],\n            yData = [];\n        var ML,\n            TL,\n            BL,\n            date,\n            slicedY,\n            extremes,\n            i;\n        if (yValLen < period) {\n            return;\n        }\n        for (i = period; i <= yValLen; i++) {\n            date = xVal[i - 1];\n            slicedY = yVal.slice(i - period, i);\n            extremes = Indicators_ArrayUtilities.getArrayExtremes(slicedY, low, high);\n            TL = extremes[1];\n            BL = extremes[0];\n            ML = (TL + BL) / 2;\n            PC.push([date, TL, ML, BL]);\n            xData.push(date);\n            yData.push([TL, ML, BL]);\n        }\n        return {\n            values: PC,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Price channel (PC). This series requires the `linkedTo` option to be\n     * set and should be loaded after the `stock/indicators/indicators.js`.\n     *\n     * @sample {highstock} stock/indicators/price-channel\n     *         Price Channel\n     *\n     * @extends      plotOptions.sma\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, compare, compareBase, joinBy, keys,\n     *               navigatorOptions, pointInterval, pointIntervalUnit,\n     *               pointPlacement, pointRange, pointStart, showInNavigator,\n     *               stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/price-channel\n     * @optionparent plotOptions.pc\n     */\n    PCIndicator.defaultOptions = PCIndicator_merge(PCIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * Option for fill color between lines in Price channel Indicator.\n         *\n         * @sample {highstock} stock/indicators/indicator-area-fill\n         *      background fill between lines\n         *\n         * @type {Highcharts.Color}\n         * @apioption plotOptions.pc.fillColor\n         *\n         */\n        /**\n         * @excluding index\n         */\n        params: {\n            index: void 0, // Unchangeable index, do not inherit (#15362)\n            period: 20\n        },\n        lineWidth: 1,\n        topLine: {\n            styles: {\n                /**\n                 * Color of the top line. If not set, it's inherited from\n                 * [plotOptions.pc.color](#plotOptions.pc.color).\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: Palettes.colors[2],\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1\n            }\n        },\n        bottomLine: {\n            styles: {\n                /**\n                 * Color of the bottom line. If not set, it's inherited from\n                 * [plotOptions.pc.color](#plotOptions.pc.color).\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: Palettes.colors[8],\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1\n            }\n        },\n        dataGrouping: {\n            approximation: 'averages'\n        }\n    });\n    return PCIndicator;\n}(PCIndicator_SMAIndicator));\nPCIndicator_extend(PCIndicator.prototype, {\n    areaLinesNames: ['top', 'bottom'],\n    nameBase: 'Price Channel',\n    nameComponents: ['period'],\n    linesApiNames: ['topLine', 'bottomLine'],\n    pointArrayMap: ['top', 'middle', 'bottom'],\n    pointValKey: 'middle'\n});\nIndicators_MultipleLinesComposition.compose(PCIndicator);\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('pc', PCIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var PC_PCIndicator = ((/* unused pure expression or super */ null && (PCIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A Price channel indicator. If the [type](#series.pc.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends      series,plotOptions.pc\n * @since        7.0.0\n * @product      highstock\n * @excluding    allAreas, colorAxis, compare, compareBase, dataParser, dataURL,\n *               joinBy, keys, navigatorOptions, pointInterval,\n *               pointIntervalUnit, pointPlacement, pointRange, pointStart,\n *               showInNavigator, stacking\n * @requires     stock/indicators/indicators\n * @requires     stock/indicators/price-channel\n * @apioption    series.pc\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar PriceEnvelopesIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar PriceEnvelopesIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar PriceEnvelopesIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, PriceEnvelopesIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, PriceEnvelopesIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Price Envelopes series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.priceenvelopes\n *\n * @augments Highcharts.Series\n */\nvar PriceEnvelopesIndicator = /** @class */ (function (_super) {\n    PriceEnvelopesIndicator_extends(PriceEnvelopesIndicator, _super);\n    function PriceEnvelopesIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    PriceEnvelopesIndicator.prototype.init = function () {\n        _super.prototype.init.apply(this, arguments);\n        // Set default color for lines:\n        this.options = PriceEnvelopesIndicator_merge({\n            topLine: {\n                styles: {\n                    lineColor: this.color\n                }\n            },\n            bottomLine: {\n                styles: {\n                    lineColor: this.color\n                }\n            }\n        }, this.options);\n    };\n    PriceEnvelopesIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            topPercent = params.topBand,\n            botPercent = params.bottomBand,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0, \n            // 0- date, 1-top line, 2-middle line, 3-bottom line\n            PE = [], \n            // Middle line, top line and bottom line\n            xData = [],\n            yData = [];\n        var ML,\n            TL,\n            BL,\n            date,\n            slicedX,\n            slicedY,\n            point,\n            i;\n        // Price envelopes requires close value\n        if (xVal.length < period ||\n            !PriceEnvelopesIndicator_isArray(yVal[0]) ||\n            yVal[0].length !== 4) {\n            return;\n        }\n        for (i = period; i <= yValLen; i++) {\n            slicedX = xVal.slice(i - period, i);\n            slicedY = yVal.slice(i - period, i);\n            point = _super.prototype.getValues.call(this, {\n                xData: slicedX,\n                yData: slicedY\n            }, params);\n            date = point.xData[0];\n            ML = point.yData[0];\n            TL = ML * (1 + topPercent);\n            BL = ML * (1 - botPercent);\n            PE.push([date, TL, ML, BL]);\n            xData.push(date);\n            yData.push([TL, ML, BL]);\n        }\n        return {\n            values: PE,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Price envelopes indicator based on [SMA](#plotOptions.sma) calculations.\n     * This series requires the `linkedTo` option to be set and should be loaded\n     * after the `stock/indicators/indicators.js` file.\n     *\n     * @sample stock/indicators/price-envelopes\n     *         Price envelopes\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/price-envelopes\n     * @optionparent plotOptions.priceenvelopes\n     */\n    PriceEnvelopesIndicator.defaultOptions = PriceEnvelopesIndicator_merge(PriceEnvelopesIndicator_SMAIndicator.defaultOptions, {\n        marker: {\n            enabled: false\n        },\n        tooltip: {\n            pointFormat: '<span style=\"color:{point.color}\">\\u25CF</span><b> {series.name}</b><br/>Top: {point.top}<br/>Middle: {point.middle}<br/>Bottom: {point.bottom}<br/>'\n        },\n        params: {\n            period: 20,\n            /**\n             * Percentage above the moving average that should be displayed.\n             * 0.1 means 110%. Relative to the calculated value.\n             */\n            topBand: 0.1,\n            /**\n             * Percentage below the moving average that should be displayed.\n             * 0.1 means 90%. Relative to the calculated value.\n             */\n            bottomBand: 0.1\n        },\n        /**\n         * Bottom line options.\n         */\n        bottomLine: {\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line. If not set, it's inherited from\n                 * [plotOptions.priceenvelopes.color](\n                 * #plotOptions.priceenvelopes.color).\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: void 0\n            }\n        },\n        /**\n         * Top line options.\n         *\n         * @extends plotOptions.priceenvelopes.bottomLine\n         */\n        topLine: {\n            styles: {\n                lineWidth: 1\n            }\n        },\n        dataGrouping: {\n            approximation: 'averages'\n        }\n        /**\n         * Option for fill color between lines in Price Envelopes Indicator.\n         *\n         * @sample {highstock} stock/indicators/indicator-area-fill\n         *      Background fill between lines.\n         *\n         * @type      {Highcharts.Color}\n         * @since 11.0.0\n         * @apioption plotOptions.priceenvelopes.fillColor\n         *\n         */\n    });\n    return PriceEnvelopesIndicator;\n}(PriceEnvelopesIndicator_SMAIndicator));\nPriceEnvelopesIndicator_extend(PriceEnvelopesIndicator.prototype, {\n    areaLinesNames: ['top', 'bottom'],\n    linesApiNames: ['topLine', 'bottomLine'],\n    nameComponents: ['period', 'topBand', 'bottomBand'],\n    nameBase: 'Price envelopes',\n    pointArrayMap: ['top', 'middle', 'bottom'],\n    parallelArrays: ['x', 'y', 'top', 'bottom'],\n    pointValKey: 'middle'\n});\nIndicators_MultipleLinesComposition.compose(PriceEnvelopesIndicator);\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('priceenvelopes', PriceEnvelopesIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var PriceEnvelopes_PriceEnvelopesIndicator = ((/* unused pure expression or super */ null && (PriceEnvelopesIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A price envelopes indicator. If the [type](#series.priceenvelopes.type)\n * option is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.priceenvelopes\n * @since     6.0.0\n * @excluding dataParser, dataURL\n * @product   highstock\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/price-envelopes\n * @apioption series.priceenvelopes\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/PSAR/PSARIndicator.js\n/* *\n *\n *  Parabolic SAR indicator for Highcharts Stock\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\nvar PSARIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar PSARIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar PSARIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Functions\n *\n * */\n// Utils:\n/**\n *\n */\nfunction PSARIndicator_toFixed(a, n) {\n    return parseFloat(a.toFixed(n));\n}\n/**\n *\n */\nfunction calculateDirection(previousDirection, low, high, PSAR) {\n    if ((previousDirection === 1 && low > PSAR) ||\n        (previousDirection === -1 && high > PSAR)) {\n        return 1;\n    }\n    return -1;\n}\n/* *\n * Method for calculating acceleration factor\n * dir - direction\n * pDir - previous Direction\n * eP - extreme point\n * pEP - previous extreme point\n * inc - increment for acceleration factor\n * maxAcc - maximum acceleration factor\n * initAcc - initial acceleration factor\n */\n/**\n *\n */\nfunction getAccelerationFactor(dir, pDir, eP, pEP, pAcc, inc, maxAcc, initAcc) {\n    if (dir === pDir) {\n        if (dir === 1 && (eP > pEP)) {\n            return (pAcc === maxAcc) ? maxAcc : PSARIndicator_toFixed(pAcc + inc, 2);\n        }\n        if (dir === -1 && (eP < pEP)) {\n            return (pAcc === maxAcc) ? maxAcc : PSARIndicator_toFixed(pAcc + inc, 2);\n        }\n        return pAcc;\n    }\n    return initAcc;\n}\n/**\n *\n */\nfunction getExtremePoint(high, low, previousDirection, previousExtremePoint) {\n    if (previousDirection === 1) {\n        return (high > previousExtremePoint) ? high : previousExtremePoint;\n    }\n    return (low < previousExtremePoint) ? low : previousExtremePoint;\n}\n/**\n *\n */\nfunction getEPMinusPSAR(EP, PSAR) {\n    return EP - PSAR;\n}\n/**\n *\n */\nfunction getAccelerationFactorMultiply(accelerationFactor, EPMinusSAR) {\n    return accelerationFactor * EPMinusSAR;\n}\n/* *\n * Method for calculating PSAR\n * pdir - previous direction\n * sDir - second previous Direction\n * PSAR - previous PSAR\n * pACCMultiply - previous acceleration factor multiply\n * sLow - second previous low\n * pLow - previous low\n * sHigh - second previous high\n * pHigh - previous high\n * pEP - previous extreme point\n */\n/**\n *\n */\nfunction getPSAR(pdir, sDir, PSAR, pACCMulti, sLow, pLow, pHigh, sHigh, pEP) {\n    if (pdir === sDir) {\n        if (pdir === 1) {\n            return (PSAR + pACCMulti < Math.min(sLow, pLow)) ?\n                PSAR + pACCMulti :\n                Math.min(sLow, pLow);\n        }\n        return (PSAR + pACCMulti > Math.max(sHigh, pHigh)) ?\n            PSAR + pACCMulti :\n            Math.max(sHigh, pHigh);\n    }\n    return pEP;\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Parabolic SAR series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.psar\n *\n * @augments Highcharts.Series\n */\nvar PSARIndicator = /** @class */ (function (_super) {\n    PSARIndicator_extends(PSARIndicator, _super);\n    function PSARIndicator() {\n        /* *\n         *\n         *  Static Properties\n         *\n         * */\n        var _this = _super !== null && _super.apply(this,\n            arguments) || this;\n        _this.nameComponents = void 0;\n        return _this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    PSARIndicator.prototype.getValues = function (series, params) {\n        var xVal = series.xData,\n            yVal = series.yData,\n            maxAccelerationFactor = params.maxAccelerationFactor,\n            increment = params.increment, \n            // Set initial acc factor (for every new trend!)\n            initialAccelerationFactor = params.initialAccelerationFactor,\n            decimals = params.decimals,\n            index = params.index,\n            PSARArr = [],\n            xData = [],\n            yData = [];\n        var accelerationFactor = params.initialAccelerationFactor,\n            direction, \n            // Extreme point is the lowest low for falling and highest high\n            // for rising psar - and we are starting with falling\n            extremePoint = yVal[0][1],\n            EPMinusPSAR,\n            accelerationFactorMultiply,\n            newDirection,\n            previousDirection = 1,\n            prevLow,\n            prevPrevLow,\n            prevHigh,\n            prevPrevHigh,\n            PSAR = yVal[0][2],\n            newExtremePoint,\n            high,\n            low,\n            ind;\n        if (index >= yVal.length) {\n            return;\n        }\n        for (ind = 0; ind < index; ind++) {\n            extremePoint = Math.max(yVal[ind][1], extremePoint);\n            PSAR = Math.min(yVal[ind][2], PSARIndicator_toFixed(PSAR, decimals));\n        }\n        direction = (yVal[ind][1] > PSAR) ? 1 : -1;\n        EPMinusPSAR = getEPMinusPSAR(extremePoint, PSAR);\n        accelerationFactor = params.initialAccelerationFactor;\n        accelerationFactorMultiply = getAccelerationFactorMultiply(accelerationFactor, EPMinusPSAR);\n        PSARArr.push([xVal[index], PSAR]);\n        xData.push(xVal[index]);\n        yData.push(PSARIndicator_toFixed(PSAR, decimals));\n        for (ind = index + 1; ind < yVal.length; ind++) {\n            prevLow = yVal[ind - 1][2];\n            prevPrevLow = yVal[ind - 2][2];\n            prevHigh = yVal[ind - 1][1];\n            prevPrevHigh = yVal[ind - 2][1];\n            high = yVal[ind][1];\n            low = yVal[ind][2];\n            // Null points break PSAR\n            if (prevPrevLow !== null &&\n                prevPrevHigh !== null &&\n                prevLow !== null &&\n                prevHigh !== null &&\n                high !== null &&\n                low !== null) {\n                PSAR = getPSAR(direction, previousDirection, PSAR, accelerationFactorMultiply, prevPrevLow, prevLow, prevHigh, prevPrevHigh, extremePoint);\n                newExtremePoint = getExtremePoint(high, low, direction, extremePoint);\n                newDirection = calculateDirection(previousDirection, low, high, PSAR);\n                accelerationFactor = getAccelerationFactor(newDirection, direction, newExtremePoint, extremePoint, accelerationFactor, increment, maxAccelerationFactor, initialAccelerationFactor);\n                EPMinusPSAR = getEPMinusPSAR(newExtremePoint, PSAR);\n                accelerationFactorMultiply = getAccelerationFactorMultiply(accelerationFactor, EPMinusPSAR);\n                PSARArr.push([xVal[ind], PSARIndicator_toFixed(PSAR, decimals)]);\n                xData.push(xVal[ind]);\n                yData.push(PSARIndicator_toFixed(PSAR, decimals));\n                previousDirection = direction;\n                direction = newDirection;\n                extremePoint = newExtremePoint;\n            }\n        }\n        return {\n            values: PSARArr,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /**\n     * Parabolic SAR. This series requires `linkedTo`\n     * option to be set and should be loaded\n     * after `stock/indicators/indicators.js` file.\n     *\n     * @sample stock/indicators/psar\n     *         Parabolic SAR Indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/psar\n     * @optionparent plotOptions.psar\n     */\n    PSARIndicator.defaultOptions = PSARIndicator_merge(PSARIndicator_SMAIndicator.defaultOptions, {\n        lineWidth: 0,\n        marker: {\n            enabled: true\n        },\n        states: {\n            hover: {\n                lineWidthPlus: 0\n            }\n        },\n        /**\n         * @excluding period\n         */\n        params: {\n            period: void 0, // Unchangeable period, do not inherit (#15362)\n            /**\n             * The initial value for acceleration factor.\n             * Acceleration factor is starting with this value\n             * and increases by specified increment each time\n             * the extreme point makes a new high.\n             * AF can reach a maximum of maxAccelerationFactor,\n             * no matter how long the uptrend extends.\n             */\n            initialAccelerationFactor: 0.02,\n            /**\n             * The Maximum value for acceleration factor.\n             * AF can reach a maximum of maxAccelerationFactor,\n             * no matter how long the uptrend extends.\n             */\n            maxAccelerationFactor: 0.2,\n            /**\n             * Acceleration factor increases by increment each time\n             * the extreme point makes a new high.\n             *\n             * @since 6.0.0\n             */\n            increment: 0.02,\n            /**\n             * Index from which PSAR is starting calculation\n             *\n             * @since 6.0.0\n             */\n            index: 2,\n            /**\n             * Number of maximum decimals that are used in PSAR calculations.\n             *\n             * @since 6.0.0\n             */\n            decimals: 4\n        }\n    });\n    return PSARIndicator;\n}(PSARIndicator_SMAIndicator));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('psar', PSARIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var PSAR_PSARIndicator = ((/* unused pure expression or super */ null && (PSARIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `PSAR` series. If the [type](#series.psar.type) option is not specified, it\n * is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.psar\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/psar\n * @apioption series.psar\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/ROC/ROCIndicator.js\n/* *\n *\n *  (c) 2010-2024 Kacper Madej\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ROCIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar ROCIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar ROCIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, ROCIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, ROCIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend;\n/* *\n *\n *  Functions\n *\n * */\n// Utils:\n/**\n *\n */\nfunction ROCIndicator_populateAverage(xVal, yVal, i, period, index) {\n    /* Calculated as:\n\n       (Closing Price [today] - Closing Price [n days ago]) /\n        Closing Price [n days ago] * 100\n\n       Return y as null when avoiding division by zero */\n    var nDaysAgoY,\n        rocY;\n    if (index < 0) {\n        // Y data given as an array of values\n        nDaysAgoY = yVal[i - period];\n        rocY = nDaysAgoY ?\n            (yVal[i] - nDaysAgoY) / nDaysAgoY * 100 :\n            null;\n    }\n    else {\n        // Y data given as an array of arrays and the index should be used\n        nDaysAgoY = yVal[i - period][index];\n        rocY = nDaysAgoY ?\n            (yVal[i][index] - nDaysAgoY) / nDaysAgoY * 100 :\n            null;\n    }\n    return [xVal[i], rocY];\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The ROC series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.roc\n *\n * @augments Highcharts.Series\n */\nvar ROCIndicator = /** @class */ (function (_super) {\n    ROCIndicator_extends(ROCIndicator, _super);\n    function ROCIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    ROCIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            ROC = [],\n            xData = [],\n            yData = [];\n        var i,\n            index = -1,\n            ROCPoint;\n        // Period is used as a number of time periods ago, so we need more\n        // (at least 1 more) data than the period value\n        if (xVal.length <= period) {\n            return;\n        }\n        // Switch index for OHLC / Candlestick / Arearange\n        if (ROCIndicator_isArray(yVal[0])) {\n            index = params.index;\n        }\n        // I = period <-- skip first N-points\n        // Calculate value one-by-one for each period in visible data\n        for (i = period; i < yValLen; i++) {\n            ROCPoint = ROCIndicator_populateAverage(xVal, yVal, i, period, index);\n            ROC.push(ROCPoint);\n            xData.push(ROCPoint[0]);\n            yData.push(ROCPoint[1]);\n        }\n        return {\n            values: ROC,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Rate of change indicator (ROC). The indicator value for each point\n     * is defined as:\n     *\n     * `(C - Cn) / Cn * 100`\n     *\n     * where: `C` is the close value of the point of the same x in the\n     * linked series and `Cn` is the close value of the point `n` periods\n     * ago. `n` is set through [period](#plotOptions.roc.params.period).\n     *\n     * This series requires `linkedTo` option to be set.\n     *\n     * @sample stock/indicators/roc\n     *         Rate of change indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/roc\n     * @optionparent plotOptions.roc\n     */\n    ROCIndicator.defaultOptions = ROCIndicator_merge(ROCIndicator_SMAIndicator.defaultOptions, {\n        params: {\n            index: 3,\n            period: 9\n        }\n    });\n    return ROCIndicator;\n}(ROCIndicator_SMAIndicator));\nROCIndicator_extend(ROCIndicator.prototype, {\n    nameBase: 'Rate of Change'\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('roc', ROCIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var ROC_ROCIndicator = ((/* unused pure expression or super */ null && (ROCIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `ROC` series. If the [type](#series.wma.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * Rate of change indicator (ROC). The indicator value for each point\n * is defined as:\n *\n * `(C - Cn) / Cn * 100`\n *\n * where: `C` is the close value of the point of the same x in the\n * linked series and `Cn` is the close value of the point `n` periods\n * ago. `n` is set through [period](#series.roc.params.period).\n *\n * This series requires `linkedTo` option to be set.\n *\n * @extends   series,plotOptions.roc\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/roc\n * @apioption series.roc\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/RSI/RSIIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar RSIIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar RSIIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar RSIIndicator_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, RSIIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Functions\n *\n * */\n// Utils:\n/**\n *\n */\nfunction RSIIndicator_toFixed(a, n) {\n    return parseFloat(a.toFixed(n));\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The RSI series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.rsi\n *\n * @augments Highcharts.Series\n */\nvar RSIIndicator = /** @class */ (function (_super) {\n    RSIIndicator_extends(RSIIndicator, _super);\n    function RSIIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    RSIIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            decimals = params.decimals, \n            // RSI starts calculations from the second point\n            // Cause we need to calculate change between two points\n            RSI = [],\n            xData = [],\n            yData = [];\n        var gain = 0,\n            loss = 0,\n            index = params.index,\n            range = 1,\n            RSIPoint,\n            change,\n            avgGain,\n            avgLoss,\n            i,\n            values;\n        if ((xVal.length < period)) {\n            return;\n        }\n        if (RSIIndicator_isNumber(yVal[0])) {\n            values = yVal;\n        }\n        else {\n            // In case of the situation, where the series type has data length\n            // longer then 4 (HLC, range), this ensures that we are not trying\n            // to reach the index out of bounds\n            index = Math.min(index, yVal[0].length - 1);\n            values = yVal\n                .map(function (value) { return value[index]; });\n        }\n        // Calculate changes for first N points\n        while (range < period) {\n            change = RSIIndicator_toFixed(values[range] - values[range - 1], decimals);\n            if (change > 0) {\n                gain += change;\n            }\n            else {\n                loss += Math.abs(change);\n            }\n            range++;\n        }\n        // Average for first n-1 points:\n        avgGain = RSIIndicator_toFixed(gain / (period - 1), decimals);\n        avgLoss = RSIIndicator_toFixed(loss / (period - 1), decimals);\n        for (i = range; i < yValLen; i++) {\n            change = RSIIndicator_toFixed(values[i] - values[i - 1], decimals);\n            if (change > 0) {\n                gain = change;\n                loss = 0;\n            }\n            else {\n                gain = 0;\n                loss = Math.abs(change);\n            }\n            // Calculate smoothed averages, RS, RSI values:\n            avgGain = RSIIndicator_toFixed((avgGain * (period - 1) + gain) / period, decimals);\n            avgLoss = RSIIndicator_toFixed((avgLoss * (period - 1) + loss) / period, decimals);\n            // If average-loss is equal zero, then by definition RSI is set\n            // to 100:\n            if (avgLoss === 0) {\n                RSIPoint = 100;\n                // If average-gain is equal zero, then by definition RSI is set\n                // to 0:\n            }\n            else if (avgGain === 0) {\n                RSIPoint = 0;\n            }\n            else {\n                RSIPoint = RSIIndicator_toFixed(100 - (100 / (1 + (avgGain / avgLoss))), decimals);\n            }\n            RSI.push([xVal[i], RSIPoint]);\n            xData.push(xVal[i]);\n            yData.push(RSIPoint);\n        }\n        return {\n            values: RSI,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Relative strength index (RSI) technical indicator. This series\n     * requires the `linkedTo` option to be set and should be loaded after\n     * the `stock/indicators/indicators.js` file.\n     *\n     * @sample stock/indicators/rsi\n     *         RSI indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/rsi\n     * @optionparent plotOptions.rsi\n     */\n    RSIIndicator.defaultOptions = RSIIndicator_merge(RSIIndicator_SMAIndicator.defaultOptions, {\n        params: {\n            decimals: 4,\n            index: 3\n        }\n    });\n    return RSIIndicator;\n}(RSIIndicator_SMAIndicator));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('rsi', RSIIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var RSI_RSIIndicator = ((/* unused pure expression or super */ null && (RSIIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `RSI` series. If the [type](#series.rsi.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.rsi\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/rsi\n * @apioption series.rsi\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar StochasticIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\n\nvar StochasticIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar StochasticIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, StochasticIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, StochasticIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Stochastic series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.stochastic\n *\n * @augments Highcharts.Series\n */\nvar StochasticIndicator = /** @class */ (function (_super) {\n    StochasticIndicator_extends(StochasticIndicator, _super);\n    function StochasticIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    StochasticIndicator.prototype.init = function () {\n        _super.prototype.init.apply(this, arguments);\n        // Set default color for lines:\n        this.options = StochasticIndicator_merge({\n            smoothedLine: {\n                styles: {\n                    lineColor: this.color\n                }\n            }\n        }, this.options);\n    };\n    StochasticIndicator.prototype.getValues = function (series, params) {\n        var periodK = params.periods[0],\n            periodD = params.periods[1],\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0, \n            // 0- date, 1-%K, 2-%D\n            SO = [],\n            xData = [],\n            yData = [],\n            close = 3,\n            low = 2,\n            high = 1;\n        var slicedY,\n            CL,\n            HL,\n            LL,\n            K,\n            D = null,\n            points,\n            extremes,\n            i;\n        // Stochastic requires close value\n        if (yValLen < periodK ||\n            !StochasticIndicator_isArray(yVal[0]) ||\n            yVal[0].length !== 4) {\n            return;\n        }\n        // If the value of initial points is constant, wait until it changes\n        // to calculate correct Stochastic values\n        var constantValues = true,\n            j = 0;\n        // For a N-period, we start from N-1 point, to calculate Nth point\n        // That is why we later need to comprehend slice() elements list\n        // with (+1)\n        for (i = periodK - 1; i < yValLen; i++) {\n            slicedY = yVal.slice(i - periodK + 1, i + 1);\n            // Calculate %K\n            extremes = Indicators_ArrayUtilities.getArrayExtremes(slicedY, low, high);\n            LL = extremes[0]; // Lowest low in %K periods\n            CL = yVal[i][close] - LL;\n            HL = extremes[1] - LL;\n            K = CL / HL * 100;\n            if (isNaN(K) && constantValues) {\n                j++;\n                continue;\n            }\n            else if (constantValues && !isNaN(K)) {\n                constantValues = false;\n            }\n            var length_1 = xData.push(xVal[i]);\n            // If N-period previous values are constant which results in NaN %K,\n            // we need to use previous %K value if it is a number,\n            // otherwise we should use null\n            if (isNaN(K)) {\n                yData.push([\n                    yData[length_1 - 2] &&\n                        typeof yData[length_1 - 2][0] === 'number' ?\n                        yData[length_1 - 2][0] : null,\n                    null\n                ]);\n            }\n            else {\n                yData.push([K, null]);\n            }\n            // Calculate smoothed %D, which is SMA of %K\n            if (i >= j + (periodK - 1) + (periodD - 1)) {\n                points = _super.prototype.getValues.call(this, {\n                    xData: xData.slice(-periodD),\n                    yData: yData.slice(-periodD)\n                }, {\n                    period: periodD\n                });\n                D = points.yData[0];\n            }\n            SO.push([xVal[i], K, D]);\n            yData[length_1 - 1][1] = D;\n        }\n        return {\n            values: SO,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Stochastic oscillator. This series requires the `linkedTo` option to be\n     * set and should be loaded after the `stock/indicators/indicators.js` file.\n     *\n     * @sample stock/indicators/stochastic\n     *         Stochastic oscillator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, joinBy, keys, navigatorOptions,\n     *               pointInterval, pointIntervalUnit, pointPlacement,\n     *               pointRange, pointStart, showInNavigator, stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/stochastic\n     * @optionparent plotOptions.stochastic\n     */\n    StochasticIndicator.defaultOptions = StochasticIndicator_merge(StochasticIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * @excluding index, period\n         */\n        params: {\n            // Index and period are unchangeable, do not inherit (#15362)\n            index: void 0,\n            period: void 0,\n            /**\n             * Periods for Stochastic oscillator: [%K, %D].\n             *\n             * @type    {Array<number,number>}\n             * @default [14, 3]\n             */\n            periods: [14, 3]\n        },\n        marker: {\n            enabled: false\n        },\n        tooltip: {\n            pointFormat: '<span style=\"color:{point.color}\">\\u25CF</span><b> {series.name}</b><br/>%K: {point.y}<br/>%D: {point.smoothed}<br/>'\n        },\n        /**\n         * Smoothed line options.\n         */\n        smoothedLine: {\n            /**\n             * Styles for a smoothed line.\n             */\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line. If not set, it's inherited from\n                 * [plotOptions.stochastic.color\n                 * ](#plotOptions.stochastic.color).\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: void 0\n            }\n        },\n        dataGrouping: {\n            approximation: 'averages'\n        }\n    });\n    return StochasticIndicator;\n}(StochasticIndicator_SMAIndicator));\nStochasticIndicator_extend(StochasticIndicator.prototype, {\n    areaLinesNames: [],\n    nameComponents: ['periods'],\n    nameBase: 'Stochastic',\n    pointArrayMap: ['y', 'smoothed'],\n    parallelArrays: ['x', 'y', 'smoothed'],\n    pointValKey: 'y',\n    linesApiNames: ['smoothedLine']\n});\nIndicators_MultipleLinesComposition.compose(StochasticIndicator);\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('stochastic', StochasticIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var Stochastic_StochasticIndicator = ((/* unused pure expression or super */ null && (StochasticIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A Stochastic indicator. If the [type](#series.stochastic.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.stochastic\n * @since     6.0.0\n * @product   highstock\n * @excluding allAreas, colorAxis,  dataParser, dataURL, joinBy, keys,\n *            navigatorOptions, pointInterval, pointIntervalUnit,\n *            pointPlacement, pointRange, pointStart, showInNavigator, stacking\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/stochastic\n * @apioption series.stochastic\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar SlowStochasticIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar SlowStochasticIndicator_a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, SlowStochasticIndicator_SMAIndicator = SlowStochasticIndicator_a.sma, SlowStochasticIndicator_StochasticIndicator = SlowStochasticIndicator_a.stochastic;\n\nvar SlowStochasticIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, SlowStochasticIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Slow Stochastic series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.slowstochastic\n *\n * @augments Highcharts.Series\n */\nvar SlowStochasticIndicator = /** @class */ (function (_super) {\n    SlowStochasticIndicator_extends(SlowStochasticIndicator, _super);\n    function SlowStochasticIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    SlowStochasticIndicator.prototype.getValues = function (series, params) {\n        var periods = params.periods,\n            fastValues = _super.prototype.getValues.call(this,\n            series,\n            params),\n            slowValues = {\n                values: [],\n                xData: [],\n                yData: []\n            };\n        if (!fastValues) {\n            return;\n        }\n        slowValues.xData = fastValues.xData.slice(periods[1] - 1);\n        var fastYData = fastValues.yData.slice(periods[1] - 1);\n        // Get SMA(%D)\n        var smoothedValues = SlowStochasticIndicator_SMAIndicator.prototype.getValues.call(this, {\n                xData: slowValues.xData,\n                yData: fastYData\n            }, {\n                index: 1,\n                period: periods[2]\n            });\n        if (!smoothedValues) {\n            return;\n        }\n        // Format data\n        for (var i = 0, xDataLen = slowValues.xData.length; i < xDataLen; i++) {\n            slowValues.yData[i] = [\n                fastYData[i][1],\n                smoothedValues.yData[i - periods[2] + 1] || null\n            ];\n            slowValues.values[i] = [\n                slowValues.xData[i],\n                fastYData[i][1],\n                smoothedValues.yData[i - periods[2] + 1] || null\n            ];\n        }\n        return slowValues;\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Slow Stochastic oscillator. This series requires the `linkedTo` option\n     * to be set and should be loaded after `stock/indicators/indicators.js`\n     * and `stock/indicators/stochastic.js` files.\n     *\n     * @sample stock/indicators/slow-stochastic\n     *         Slow Stochastic oscillator\n     *\n     * @extends      plotOptions.stochastic\n     * @since        8.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/stochastic\n     * @requires     stock/indicators/slow-stochastic\n     * @optionparent plotOptions.slowstochastic\n     */\n    SlowStochasticIndicator.defaultOptions = SlowStochasticIndicator_merge(SlowStochasticIndicator_StochasticIndicator.defaultOptions, {\n        params: {\n            /**\n             * Periods for Slow Stochastic oscillator: [%K, %D, SMA(%D)].\n             *\n             * @type    {Array<number,number,number>}\n             * @default [14, 3, 3]\n             */\n            periods: [14, 3, 3]\n        }\n    });\n    return SlowStochasticIndicator;\n}(SlowStochasticIndicator_StochasticIndicator));\nSlowStochasticIndicator_extend(SlowStochasticIndicator.prototype, {\n    nameBase: 'Slow Stochastic'\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('slowstochastic', SlowStochasticIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var SlowStochastic_SlowStochasticIndicator = ((/* unused pure expression or super */ null && (SlowStochasticIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A Slow Stochastic indicator. If the [type](#series.slowstochastic.type)\n * option is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.slowstochastic\n * @since     8.0.0\n * @product   highstock\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/stochastic\n * @requires  stock/indicators/slow-stochastic\n * @apioption series.slowstochastic\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar SupertrendIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar SupertrendIndicator_a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, SupertrendIndicator_ATRIndicator = SupertrendIndicator_a.atr, SupertrendIndicator_SMAIndicator = SupertrendIndicator_a.sma;\n\nvar SupertrendIndicator_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, SupertrendIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, SupertrendIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, SupertrendIndicator_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, SupertrendIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, SupertrendIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, SupertrendIndicator_objectEach = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).objectEach;\n/* *\n *\n *  Functions\n *\n * */\n// Utils:\n/**\n * @private\n */\nfunction createPointObj(mainSeries, index) {\n    return {\n        index: index,\n        close: mainSeries.getColumn('close')[index],\n        x: mainSeries.getColumn('x')[index]\n    };\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Supertrend series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.supertrend\n *\n * @augments Highcharts.Series\n */\nvar SupertrendIndicator = /** @class */ (function (_super) {\n    SupertrendIndicator_extends(SupertrendIndicator, _super);\n    function SupertrendIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    SupertrendIndicator.prototype.init = function () {\n        var indicator = this;\n        _super.prototype.init.apply(indicator, arguments);\n        // Only after series are linked add some additional logic/properties.\n        var unbinder = SupertrendIndicator_addEvent(this.chart.constructor, 'afterLinkSeries',\n            function () {\n                // Protection for a case where the indicator is being updated,\n                // for a brief moment the indicator is deleted.\n                if (indicator.options) {\n                    var options = indicator.options,\n            parentOptions = indicator.linkedParent.options;\n                // Indicator cropThreshold has to be equal linked series one\n                // reduced by period due to points comparison in drawGraph\n                // (#9787)\n                options.cropThreshold = (parentOptions.cropThreshold -\n                    (options.params.period - 1));\n            }\n            unbinder();\n        }, {\n            order: 1\n        });\n    };\n    SupertrendIndicator.prototype.drawGraph = function () {\n        var indicator = this,\n            indicOptions = indicator.options, \n            // Series that indicator is linked to\n            mainSeries = indicator.linkedParent,\n            mainXData = mainSeries.getColumn('x'),\n            mainLinePoints = (mainSeries ? mainSeries.points : []),\n            indicPoints = indicator.points,\n            indicPath = indicator.graph, \n            // Points offset between lines\n            tempOffset = mainLinePoints.length - indicPoints.length,\n            offset = tempOffset > 0 ? tempOffset : 0, \n            // @todo: fix when ichi-moku indicator is merged to master.\n            gappedExtend = {\n                options: {\n                    gapSize: indicOptions.gapSize\n                }\n            }, \n            // Sorted supertrend points array\n            groupedPoints = {\n                top: [], // Rising trend line points\n                bottom: [], // Falling trend line points\n                intersect: [] // Change trend line points\n            }, \n            // Options for trend lines\n            supertrendLineOptions = {\n                top: {\n                    styles: {\n                        lineWidth: indicOptions.lineWidth,\n                        lineColor: (indicOptions.fallingTrendColor ||\n                            indicOptions.color),\n                        dashStyle: indicOptions.dashStyle\n                    }\n                },\n                bottom: {\n                    styles: {\n                        lineWidth: indicOptions.lineWidth,\n                        lineColor: (indicOptions.risingTrendColor ||\n                            indicOptions.color),\n                        dashStyle: indicOptions.dashStyle\n                    }\n                },\n                intersect: indicOptions.changeTrendLine\n            };\n        var // Supertrend line point\n            point, \n            // Supertrend line next point (has smaller x pos than point)\n            nextPoint, \n            // Main series points\n            mainPoint,\n            nextMainPoint, \n            // Used when supertrend and main points are shifted\n            // relative to each other\n            prevMainPoint,\n            prevPrevMainPoint, \n            // Used when particular point color is set\n            pointColor, \n            // Temporary points that fill groupedPoints array\n            newPoint,\n            newNextPoint,\n            indicPointsLen = indicPoints.length;\n        // Loop which sort supertrend points\n        while (indicPointsLen--) {\n            point = indicPoints[indicPointsLen];\n            nextPoint = indicPoints[indicPointsLen - 1];\n            mainPoint = mainLinePoints[indicPointsLen - 1 + offset];\n            nextMainPoint = mainLinePoints[indicPointsLen - 2 + offset];\n            prevMainPoint = mainLinePoints[indicPointsLen + offset];\n            prevPrevMainPoint = mainLinePoints[indicPointsLen + offset + 1];\n            pointColor = point.options.color;\n            newPoint = {\n                x: point.x,\n                plotX: point.plotX,\n                plotY: point.plotY,\n                isNull: false\n            };\n            // When mainPoint is the last one (left plot area edge)\n            // but supertrend has additional one\n            if (!nextMainPoint &&\n                mainPoint &&\n                SupertrendIndicator_isNumber(mainXData[mainPoint.index - 1])) {\n                nextMainPoint = createPointObj(mainSeries, mainPoint.index - 1);\n            }\n            // When prevMainPoint is the last one (right plot area edge)\n            // but supertrend has additional one (and points are shifted)\n            if (!prevPrevMainPoint &&\n                prevMainPoint &&\n                SupertrendIndicator_isNumber(mainXData[prevMainPoint.index + 1])) {\n                prevPrevMainPoint = createPointObj(mainSeries, prevMainPoint.index + 1);\n            }\n            // When points are shifted (right or left plot area edge)\n            if (!mainPoint &&\n                nextMainPoint &&\n                SupertrendIndicator_isNumber(mainXData[nextMainPoint.index + 1])) {\n                mainPoint = createPointObj(mainSeries, nextMainPoint.index + 1);\n            }\n            else if (!mainPoint &&\n                prevMainPoint &&\n                SupertrendIndicator_isNumber(mainXData[prevMainPoint.index - 1])) {\n                mainPoint = createPointObj(mainSeries, prevMainPoint.index - 1);\n            }\n            // Check if points are shifted relative to each other\n            if (point &&\n                mainPoint &&\n                prevMainPoint &&\n                nextMainPoint &&\n                point.x !== mainPoint.x) {\n                if (point.x === prevMainPoint.x) {\n                    nextMainPoint = mainPoint;\n                    mainPoint = prevMainPoint;\n                }\n                else if (point.x === nextMainPoint.x) {\n                    mainPoint = nextMainPoint;\n                    nextMainPoint = {\n                        close: mainSeries.getColumn('close')[mainPoint.index - 1],\n                        x: mainXData[mainPoint.index - 1]\n                    };\n                }\n                else if (prevPrevMainPoint && point.x === prevPrevMainPoint.x) {\n                    mainPoint = prevPrevMainPoint;\n                    nextMainPoint = prevMainPoint;\n                }\n            }\n            if (nextPoint && nextMainPoint && mainPoint) {\n                newNextPoint = {\n                    x: nextPoint.x,\n                    plotX: nextPoint.plotX,\n                    plotY: nextPoint.plotY,\n                    isNull: false\n                };\n                if (point.y >= mainPoint.close &&\n                    nextPoint.y >= nextMainPoint.close) {\n                    point.color = (pointColor || indicOptions.fallingTrendColor ||\n                        indicOptions.color);\n                    groupedPoints.top.push(newPoint);\n                }\n                else if (point.y < mainPoint.close &&\n                    nextPoint.y < nextMainPoint.close) {\n                    point.color = (pointColor || indicOptions.risingTrendColor ||\n                        indicOptions.color);\n                    groupedPoints.bottom.push(newPoint);\n                }\n                else {\n                    groupedPoints.intersect.push(newPoint);\n                    groupedPoints.intersect.push(newNextPoint);\n                    // Additional null point to make a gap in line\n                    groupedPoints.intersect.push(SupertrendIndicator_merge(newNextPoint, {\n                        isNull: true\n                    }));\n                    if (point.y >= mainPoint.close &&\n                        nextPoint.y < nextMainPoint.close) {\n                        point.color = (pointColor || indicOptions.fallingTrendColor ||\n                            indicOptions.color);\n                        nextPoint.color = (pointColor || indicOptions.risingTrendColor ||\n                            indicOptions.color);\n                        groupedPoints.top.push(newPoint);\n                        groupedPoints.top.push(SupertrendIndicator_merge(newNextPoint, {\n                            isNull: true\n                        }));\n                    }\n                    else if (point.y < mainPoint.close &&\n                        nextPoint.y >= nextMainPoint.close) {\n                        point.color = (pointColor || indicOptions.risingTrendColor ||\n                            indicOptions.color);\n                        nextPoint.color = (pointColor || indicOptions.fallingTrendColor ||\n                            indicOptions.color);\n                        groupedPoints.bottom.push(newPoint);\n                        groupedPoints.bottom.push(SupertrendIndicator_merge(newNextPoint, {\n                            isNull: true\n                        }));\n                    }\n                }\n            }\n            else if (mainPoint) {\n                if (point.y >= mainPoint.close) {\n                    point.color = (pointColor || indicOptions.fallingTrendColor ||\n                        indicOptions.color);\n                    groupedPoints.top.push(newPoint);\n                }\n                else {\n                    point.color = (pointColor || indicOptions.risingTrendColor ||\n                        indicOptions.color);\n                    groupedPoints.bottom.push(newPoint);\n                }\n            }\n        }\n        // Generate lines:\n        SupertrendIndicator_objectEach(groupedPoints, function (values, lineName) {\n            indicator.points = values;\n            indicator.options = SupertrendIndicator_merge(supertrendLineOptions[lineName].styles, gappedExtend);\n            indicator.graph = indicator['graph' + lineName + 'Line'];\n            SupertrendIndicator_SMAIndicator.prototype.drawGraph.call(indicator);\n            // Now save line\n            indicator['graph' + lineName + 'Line'] = indicator.graph;\n        });\n        // Restore options:\n        indicator.points = indicPoints;\n        indicator.options = indicOptions;\n        indicator.graph = indicPath;\n    };\n    // Supertrend (Multiplier, Period) Formula:\n    // BASIC UPPERBAND = (HIGH + LOW) / 2 + Multiplier * ATR(Period)\n    // BASIC LOWERBAND = (HIGH + LOW) / 2 - Multiplier * ATR(Period)\n    // FINAL UPPERBAND =\n    //     IF(\n    //      Current BASICUPPERBAND  < Previous FINAL UPPERBAND AND\n    //      Previous Close > Previous FINAL UPPERBAND\n    //     ) THEN (Current BASIC UPPERBAND)\n    //     ELSE (Previous FINALUPPERBAND)\n    // FINAL LOWERBAND =\n    //     IF(\n    //      Current BASIC LOWERBAND  > Previous FINAL LOWERBAND AND\n    //      Previous Close < Previous FINAL LOWERBAND\n    //     ) THEN (Current BASIC LOWERBAND)\n    //     ELSE (Previous FINAL LOWERBAND)\n    // SUPERTREND =\n    //     IF(\n    //      Previous Supertrend == Previous FINAL UPPERBAND AND\n    //      Current Close < Current FINAL UPPERBAND\n    //     ) THAN Current FINAL UPPERBAND\n    //     ELSE IF(\n    //      Previous Supertrend == Previous FINAL LOWERBAND AND\n    //      Current Close < Current FINAL LOWERBAND\n    //     ) THAN Current FINAL UPPERBAND\n    //     ELSE IF(\n    //      Previous Supertrend == Previous FINAL UPPERBAND AND\n    //      Current Close > Current FINAL UPPERBAND\n    //     ) THAN Current FINAL LOWERBAND\n    //     ELSE IF(\n    //      Previous Supertrend == Previous FINAL LOWERBAND AND\n    //      Current Close > Current FINAL LOWERBAND\n    //     ) THAN Current FINAL LOWERBAND\n    SupertrendIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            multiplier = params.multiplier,\n            xVal = series.xData,\n            yVal = series.yData, \n            // 0- date, 1- Supertrend indicator\n            st = [],\n            xData = [],\n            yData = [],\n            close = 3,\n            low = 2,\n            high = 1,\n            periodsOffset = (period === 0) ? 0 : period - 1,\n            finalUp = [],\n            finalDown = [];\n        var atrData = [],\n            basicUp,\n            basicDown,\n            supertrend,\n            prevFinalUp,\n            prevFinalDown,\n            prevST, // Previous Supertrend\n            prevY,\n            y,\n            i;\n        if ((xVal.length <= period) || !SupertrendIndicator_isArray(yVal[0]) ||\n            yVal[0].length !== 4 || period < 0) {\n            return;\n        }\n        atrData = SupertrendIndicator_ATRIndicator.prototype.getValues.call(this, series, {\n            period: period\n        }).yData;\n        for (i = 0; i < atrData.length; i++) {\n            y = yVal[periodsOffset + i];\n            prevY = yVal[periodsOffset + i - 1] || [];\n            prevFinalUp = finalUp[i - 1];\n            prevFinalDown = finalDown[i - 1];\n            prevST = yData[i - 1];\n            if (i === 0) {\n                prevFinalUp = prevFinalDown = prevST = 0;\n            }\n            basicUp = SupertrendIndicator_correctFloat((y[high] + y[low]) / 2 + multiplier * atrData[i]);\n            basicDown = SupertrendIndicator_correctFloat((y[high] + y[low]) / 2 - multiplier * atrData[i]);\n            if ((basicUp < prevFinalUp) ||\n                (prevY[close] > prevFinalUp)) {\n                finalUp[i] = basicUp;\n            }\n            else {\n                finalUp[i] = prevFinalUp;\n            }\n            if ((basicDown > prevFinalDown) ||\n                (prevY[close] < prevFinalDown)) {\n                finalDown[i] = basicDown;\n            }\n            else {\n                finalDown[i] = prevFinalDown;\n            }\n            if (prevST === prevFinalUp && y[close] < finalUp[i] ||\n                prevST === prevFinalDown && y[close] < finalDown[i]) {\n                supertrend = finalUp[i];\n            }\n            else if (prevST === prevFinalUp && y[close] > finalUp[i] ||\n                prevST === prevFinalDown && y[close] > finalDown[i]) {\n                supertrend = finalDown[i];\n            }\n            st.push([xVal[periodsOffset + i], supertrend]);\n            xData.push(xVal[periodsOffset + i]);\n            yData.push(supertrend);\n        }\n        return {\n            values: st,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Supertrend indicator. This series requires the `linkedTo` option to be\n     * set and should be loaded after the `stock/indicators/indicators.js` and\n     * `stock/indicators/sma.js`.\n     *\n     * @sample {highstock} stock/indicators/supertrend\n     *         Supertrend indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, cropThreshold, negativeColor, colorAxis, joinBy,\n     *               keys, navigatorOptions, pointInterval, pointIntervalUnit,\n     *               pointPlacement, pointRange, pointStart, showInNavigator,\n     *               stacking, threshold\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/supertrend\n     * @optionparent plotOptions.supertrend\n     */\n    SupertrendIndicator.defaultOptions = SupertrendIndicator_merge(SupertrendIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * Parameters used in calculation of Supertrend indicator series points.\n         *\n         * @excluding index\n         */\n        params: {\n            index: void 0, // Unchangeable index, do not inherit (#15362)\n            /**\n             * Multiplier for Supertrend Indicator.\n             */\n            multiplier: 3,\n            /**\n             * The base period for indicator Supertrend Indicator calculations.\n             * This is the number of data points which are taken into account\n             * for the indicator calculations.\n             */\n            period: 10\n        },\n        /**\n         * Color of the Supertrend series line that is beneath the main series.\n         *\n         * @sample {highstock} stock/indicators/supertrend/\n         *         Example with risingTrendColor\n         *\n         * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n         */\n        risingTrendColor: \"#06b535\" /* Palette.positiveColor */,\n        /**\n         * Color of the Supertrend series line that is above the main series.\n         *\n         * @sample {highstock} stock/indicators/supertrend/\n         *         Example with fallingTrendColor\n         *\n         * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n         */\n        fallingTrendColor: \"#f21313\" /* Palette.negativeColor */,\n        /**\n         * The styles for the Supertrend line that intersect main series.\n         *\n         * @sample {highstock} stock/indicators/supertrend/\n         *         Example with changeTrendLine\n         */\n        changeTrendLine: {\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1,\n                /**\n                 * Color of the line.\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                lineColor: \"#333333\" /* Palette.neutralColor80 */,\n                /**\n                 * The dash or dot style of the grid lines. For possible\n                 * values, see\n                 * [this demonstration](https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/plotoptions/series-dashstyle-all/).\n                 *\n                 * @sample {highcharts} highcharts/yaxis/gridlinedashstyle/\n                 *         Long dashes\n                 * @sample {highstock} stock/xaxis/gridlinedashstyle/\n                 *         Long dashes\n                 *\n                 * @type  {Highcharts.DashStyleValue}\n                 * @since 7.0.0\n                 */\n                dashStyle: 'LongDash'\n            }\n        }\n    });\n    return SupertrendIndicator;\n}(SupertrendIndicator_SMAIndicator));\nSupertrendIndicator_extend(SupertrendIndicator.prototype, {\n    nameBase: 'Supertrend',\n    nameComponents: ['multiplier', 'period']\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('supertrend', SupertrendIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var Supertrend_SupertrendIndicator = ((/* unused pure expression or super */ null && (SupertrendIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `Supertrend indicator` series. If the [type](#series.supertrend.type)\n * option is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.supertrend\n * @since     7.0.0\n * @product   highstock\n * @excluding allAreas, colorAxis, cropThreshold, data, dataParser, dataURL,\n *            joinBy, keys, navigatorOptions, negativeColor, pointInterval,\n *            pointIntervalUnit, pointPlacement, pointRange, pointStart,\n *            showInNavigator, stacking, threshold\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/supertrend\n * @apioption series.supertrend\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/VBP/VBPPoint.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar VBPPoint_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 *  Imports\n *\n * */\n\nvar VBPPoint_SMAPoint = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma.prototype.pointClass;\n/* *\n *\n *  Class\n *\n * */\nvar VBPPoint = /** @class */ (function (_super) {\n    VBPPoint_extends(VBPPoint, _super);\n    function VBPPoint() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    // Required for destroying negative part of volume\n    VBPPoint.prototype.destroy = function () {\n        // @todo: this.negativeGraphic doesn't seem to be used anywhere\n        if (this.negativeGraphic) {\n            this.negativeGraphic = this.negativeGraphic.destroy();\n        }\n        _super.prototype.destroy.apply(this, arguments);\n    };\n    return VBPPoint;\n}(VBPPoint_SMAPoint));\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var VBP_VBPPoint = (VBPPoint);\n\n;// ./code/es5/es-modules/Stock/Indicators/VBP/VBPIndicator.js\n/* *\n *\n *  (c) 2010-2024 Paweł Dalek\n *\n *  Volume By Price (VBP) indicator for Highcharts Stock\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar VBPIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar animObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).animObject;\n\nvar VBPIndicator_noop = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).noop;\n\nvar VBPIndicator_a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, VBPIndicator_columnProto = VBPIndicator_a.column.prototype, VBPIndicator_SMAIndicator = VBPIndicator_a.sma;\n\nvar VBPIndicator_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, arrayMax = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).arrayMax, arrayMin = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).arrayMin, VBPIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, VBPIndicator_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, VBPIndicator_error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error, VBPIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, VBPIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, VBPIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Constants\n *\n * */\nvar abs = Math.abs;\n/* *\n *\n *  Functions\n *\n * */\n// Utils\n/**\n * @private\n */\nfunction arrayExtremesOHLC(data) {\n    var dataLength = data.length;\n    var min = data[0][3],\n        max = min,\n        i = 1,\n        currentPoint;\n    for (; i < dataLength; i++) {\n        currentPoint = data[i][3];\n        if (currentPoint < min) {\n            min = currentPoint;\n        }\n        if (currentPoint > max) {\n            max = currentPoint;\n        }\n    }\n    return {\n        min: min,\n        max: max\n    };\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Volume By Price (VBP) series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.vbp\n *\n * @augments Highcharts.Series\n */\nvar VBPIndicator = /** @class */ (function (_super) {\n    VBPIndicator_extends(VBPIndicator, _super);\n    function VBPIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    VBPIndicator.prototype.init = function (chart, options) {\n        var indicator = this;\n        // Series.update() sends data that is not necessary as everything is\n        // calculated in getValues(), #17007\n        delete options.data;\n        _super.prototype.init.apply(indicator, arguments);\n        // Only after series are linked add some additional logic/properties.\n        var unbinder = VBPIndicator_addEvent(this.chart.constructor, 'afterLinkSeries',\n            function () {\n                // Protection for a case where the indicator is being updated,\n                // for a brief moment the indicator is deleted.\n                if (indicator.options) {\n                    var params = indicator.options.params,\n            baseSeries = indicator.linkedParent,\n            volumeSeries = chart.get(params.volumeSeriesID);\n                indicator.addCustomEvents(baseSeries, volumeSeries);\n            }\n            unbinder();\n        }, {\n            order: 1\n        });\n        return indicator;\n    };\n    // Adds events related with removing series\n    VBPIndicator.prototype.addCustomEvents = function (baseSeries, volumeSeries) {\n        var indicator = this,\n            toEmptyIndicator = function () {\n                indicator.chart.redraw();\n            indicator.setData([]);\n            indicator.zoneStarts = [];\n            if (indicator.zoneLinesSVG) {\n                indicator.zoneLinesSVG = indicator.zoneLinesSVG.destroy();\n            }\n        };\n        // If base series is deleted, indicator series data is filled with\n        // an empty array\n        indicator.dataEventsToUnbind.push(VBPIndicator_addEvent(baseSeries, 'remove', function () {\n            toEmptyIndicator();\n        }));\n        // If volume series is deleted, indicator series data is filled with\n        // an empty array\n        if (volumeSeries) {\n            indicator.dataEventsToUnbind.push(VBPIndicator_addEvent(volumeSeries, 'remove', function () {\n                toEmptyIndicator();\n            }));\n        }\n        return indicator;\n    };\n    // Initial animation\n    VBPIndicator.prototype.animate = function (init) {\n        var series = this,\n            inverted = series.chart.inverted,\n            group = series.group,\n            attr = {};\n        if (!init && group) {\n            var position = inverted ? series.yAxis.top : series.xAxis.left;\n            if (inverted) {\n                group['forceAnimate:translateY'] = true;\n                attr.translateY = position;\n            }\n            else {\n                group['forceAnimate:translateX'] = true;\n                attr.translateX = position;\n            }\n            group.animate(attr, VBPIndicator_extend(animObject(series.options.animation), {\n                step: function (val, fx) {\n                    series.group.attr({\n                        scaleX: Math.max(0.001, fx.pos)\n                    });\n                }\n            }));\n        }\n    };\n    VBPIndicator.prototype.drawPoints = function () {\n        var indicator = this;\n        if (indicator.options.volumeDivision.enabled) {\n            indicator.posNegVolume(true, true);\n            VBPIndicator_columnProto.drawPoints.apply(indicator, arguments);\n            indicator.posNegVolume(false, false);\n        }\n        VBPIndicator_columnProto.drawPoints.apply(indicator, arguments);\n    };\n    // Function responsible for dividing volume into positive and negative\n    VBPIndicator.prototype.posNegVolume = function (initVol, pos) {\n        var indicator = this, signOrder = pos ?\n                ['positive', 'negative'] :\n                ['negative', 'positive'], volumeDivision = indicator.options.volumeDivision, pointLength = indicator.points.length;\n        var posWidths = [],\n            negWidths = [],\n            i = 0,\n            pointWidth,\n            priceZone,\n            wholeVol,\n            point;\n        if (initVol) {\n            indicator.posWidths = posWidths;\n            indicator.negWidths = negWidths;\n        }\n        else {\n            posWidths = indicator.posWidths;\n            negWidths = indicator.negWidths;\n        }\n        for (; i < pointLength; i++) {\n            point = indicator.points[i];\n            point[signOrder[0] + 'Graphic'] = point.graphic;\n            point.graphic = point[signOrder[1] + 'Graphic'];\n            if (initVol) {\n                pointWidth = point.shapeArgs.width;\n                priceZone = indicator.priceZones[i];\n                wholeVol = priceZone.wholeVolumeData;\n                if (wholeVol) {\n                    posWidths.push(pointWidth / wholeVol * priceZone.positiveVolumeData);\n                    negWidths.push(pointWidth / wholeVol * priceZone.negativeVolumeData);\n                }\n                else {\n                    posWidths.push(0);\n                    negWidths.push(0);\n                }\n            }\n            point.color = pos ?\n                volumeDivision.styles.positiveColor :\n                volumeDivision.styles.negativeColor;\n            point.shapeArgs.width = pos ?\n                indicator.posWidths[i] :\n                indicator.negWidths[i];\n            point.shapeArgs.x = pos ?\n                point.shapeArgs.x :\n                indicator.posWidths[i];\n        }\n    };\n    VBPIndicator.prototype.translate = function () {\n        var indicator = this,\n            options = indicator.options,\n            chart = indicator.chart,\n            yAxis = indicator.yAxis,\n            yAxisMin = yAxis.min,\n            zoneLinesOptions = indicator.options.zoneLines,\n            priceZones = (indicator.priceZones);\n        var yBarOffset = 0,\n            volumeDataArray,\n            maxVolume,\n            primalBarWidth,\n            barHeight,\n            barHeightP,\n            oldBarHeight,\n            barWidth,\n            pointPadding,\n            chartPlotTop,\n            barX,\n            barY;\n        VBPIndicator_columnProto.translate.apply(indicator);\n        var indicatorPoints = indicator.points;\n        // Do translate operation when points exist\n        if (indicatorPoints.length) {\n            pointPadding = options.pointPadding < 0.5 ?\n                options.pointPadding :\n                0.1;\n            volumeDataArray = indicator.volumeDataArray;\n            maxVolume = arrayMax(volumeDataArray);\n            primalBarWidth = chart.plotWidth / 2;\n            chartPlotTop = chart.plotTop;\n            barHeight = abs(yAxis.toPixels(yAxisMin) -\n                yAxis.toPixels(yAxisMin + indicator.rangeStep));\n            oldBarHeight = abs(yAxis.toPixels(yAxisMin) -\n                yAxis.toPixels(yAxisMin + indicator.rangeStep));\n            if (pointPadding) {\n                barHeightP = abs(barHeight * (1 - 2 * pointPadding));\n                yBarOffset = abs((barHeight - barHeightP) / 2);\n                barHeight = abs(barHeightP);\n            }\n            indicatorPoints.forEach(function (point, index) {\n                barX = point.barX = point.plotX = 0;\n                barY = point.plotY = (yAxis.toPixels(priceZones[index].start) -\n                    chartPlotTop -\n                    (yAxis.reversed ?\n                        (barHeight - oldBarHeight) :\n                        barHeight) -\n                    yBarOffset);\n                barWidth = VBPIndicator_correctFloat(primalBarWidth *\n                    priceZones[index].wholeVolumeData / maxVolume);\n                point.pointWidth = barWidth;\n                point.shapeArgs = indicator.crispCol.apply(// eslint-disable-line no-useless-call\n                indicator, [barX, barY, barWidth, barHeight]);\n                point.volumeNeg = priceZones[index].negativeVolumeData;\n                point.volumePos = priceZones[index].positiveVolumeData;\n                point.volumeAll = priceZones[index].wholeVolumeData;\n            });\n            if (zoneLinesOptions.enabled) {\n                indicator.drawZones(chart, yAxis, indicator.zoneStarts, zoneLinesOptions.styles);\n            }\n        }\n    };\n    VBPIndicator.prototype.getExtremes = function () {\n        var prevCompare = this.options.compare,\n            prevCumulative = this.options.cumulative;\n        var ret;\n        // Temporarily disable cumulative and compare while getting the extremes\n        if (this.options.compare) {\n            this.options.compare = void 0;\n            ret = _super.prototype.getExtremes.call(this);\n            this.options.compare = prevCompare;\n        }\n        else if (this.options.cumulative) {\n            this.options.cumulative = false;\n            ret = _super.prototype.getExtremes.call(this);\n            this.options.cumulative = prevCumulative;\n        }\n        else {\n            ret = _super.prototype.getExtremes.call(this);\n        }\n        return ret;\n    };\n    VBPIndicator.prototype.getValues = function (series, params) {\n        var indicator = this,\n            xValues = series.getColumn('x',\n            true),\n            yValues = series.processedYData,\n            chart = indicator.chart,\n            ranges = params.ranges,\n            VBP = [],\n            xData = [],\n            yData = [],\n            volumeSeries = chart.get(params.volumeSeriesID);\n        // Checks if base series exists\n        if (!series.chart) {\n            VBPIndicator_error('Base series not found! In case it has been removed, add ' +\n                'a new one.', true, chart);\n            return;\n        }\n        // Checks if volume series exists and if it has data\n        if (!volumeSeries ||\n            !volumeSeries.getColumn('x', true).length) {\n            var errorMessage = volumeSeries &&\n                    !volumeSeries.getColumn('x',\n                true).length ?\n                    ' does not contain any data.' :\n                    ' not found! Check `volumeSeriesID`.';\n            VBPIndicator_error('Series ' +\n                params.volumeSeriesID + errorMessage, true, chart);\n            return;\n        }\n        // Checks if series data fits the OHLC format\n        var isOHLC = VBPIndicator_isArray(yValues[0]);\n        if (isOHLC && yValues[0].length !== 4) {\n            VBPIndicator_error('Type of ' +\n                series.name +\n                ' series is different than line, OHLC or candlestick.', true, chart);\n            return;\n        }\n        // Price zones contains all the information about the zones (index,\n        // start, end, volumes, etc.)\n        var priceZones = indicator.priceZones = indicator.specifyZones(isOHLC,\n            xValues,\n            yValues,\n            ranges,\n            volumeSeries);\n        priceZones.forEach(function (zone, index) {\n            VBP.push([zone.x, zone.end]);\n            xData.push(VBP[index][0]);\n            yData.push(VBP[index][1]);\n        });\n        return {\n            values: VBP,\n            xData: xData,\n            yData: yData\n        };\n    };\n    // Specifying where each zone should start ans end\n    VBPIndicator.prototype.specifyZones = function (isOHLC, xValues, yValues, ranges, volumeSeries) {\n        var indicator = this,\n            rangeExtremes = (isOHLC ? arrayExtremesOHLC(yValues) : false),\n            zoneStarts = indicator.zoneStarts = [],\n            priceZones = [];\n        var lowRange = rangeExtremes ?\n                rangeExtremes.min :\n                arrayMin(yValues),\n            highRange = rangeExtremes ?\n                rangeExtremes.max :\n                arrayMax(yValues),\n            i = 0,\n            j = 1;\n        // If the compare mode is set on the main series, change the VBP\n        // zones to fit new extremes, #16277.\n        var mainSeries = indicator.linkedParent;\n        if (!indicator.options.compareToMain &&\n            mainSeries.dataModify) {\n            lowRange = mainSeries.dataModify.modifyValue(lowRange);\n            highRange = mainSeries.dataModify.modifyValue(highRange);\n        }\n        if (!VBPIndicator_defined(lowRange) || !VBPIndicator_defined(highRange)) {\n            if (this.points.length) {\n                this.setData([]);\n                this.zoneStarts = [];\n                if (this.zoneLinesSVG) {\n                    this.zoneLinesSVG = this.zoneLinesSVG.destroy();\n                }\n            }\n            return [];\n        }\n        var rangeStep = indicator.rangeStep =\n                VBPIndicator_correctFloat(highRange - lowRange) / ranges;\n        zoneStarts.push(lowRange);\n        for (; i < ranges - 1; i++) {\n            zoneStarts.push(VBPIndicator_correctFloat(zoneStarts[i] + rangeStep));\n        }\n        zoneStarts.push(highRange);\n        var zoneStartsLength = zoneStarts.length;\n        //    Creating zones\n        for (; j < zoneStartsLength; j++) {\n            priceZones.push({\n                index: j - 1,\n                x: xValues[0],\n                start: zoneStarts[j - 1],\n                end: zoneStarts[j]\n            });\n        }\n        return indicator.volumePerZone(isOHLC, priceZones, volumeSeries, xValues, yValues);\n    };\n    // Calculating sum of volume values for a specific zone\n    VBPIndicator.prototype.volumePerZone = function (isOHLC, priceZones, volumeSeries, xValues, yValues) {\n        var indicator = this, volumeXData = volumeSeries.getColumn('x', true), volumeYData = volumeSeries.getColumn('y', true), lastZoneIndex = priceZones.length - 1, baseSeriesLength = yValues.length, volumeSeriesLength = volumeYData.length;\n        var previousValue,\n            startFlag,\n            endFlag,\n            value,\n            i;\n        // Checks if each point has a corresponding volume value\n        if (abs(baseSeriesLength - volumeSeriesLength)) {\n            // If the first point don't have volume, add 0 value at the\n            // beginning of the volume array\n            if (xValues[0] !== volumeXData[0]) {\n                volumeYData.unshift(0);\n            }\n            // If the last point don't have volume, add 0 value at the end\n            // of the volume array\n            if (xValues[baseSeriesLength - 1] !==\n                volumeXData[volumeSeriesLength - 1]) {\n                volumeYData.push(0);\n            }\n        }\n        indicator.volumeDataArray = [];\n        priceZones.forEach(function (zone) {\n            zone.wholeVolumeData = 0;\n            zone.positiveVolumeData = 0;\n            zone.negativeVolumeData = 0;\n            for (i = 0; i < baseSeriesLength; i++) {\n                startFlag = false;\n                endFlag = false;\n                value = isOHLC ? yValues[i][3] : yValues[i];\n                previousValue = i ?\n                    (isOHLC ?\n                        yValues[i - 1][3] :\n                        yValues[i - 1]) :\n                    value;\n                // If the compare mode is set on the main series,\n                // change the VBP zones to fit new extremes, #16277.\n                var mainSeries = indicator.linkedParent;\n                if (!indicator.options.compareToMain &&\n                    mainSeries.dataModify) {\n                    value = mainSeries.dataModify.modifyValue(value);\n                    previousValue = mainSeries.dataModify\n                        .modifyValue(previousValue);\n                }\n                // Checks if this is the point with the\n                // lowest close value and if so, adds it calculations\n                if (value <= zone.start && zone.index === 0) {\n                    startFlag = true;\n                }\n                // Checks if this is the point with the highest\n                // close value and if so, adds it calculations\n                if (value >= zone.end && zone.index === lastZoneIndex) {\n                    endFlag = true;\n                }\n                if ((value > zone.start || startFlag) &&\n                    (value < zone.end || endFlag)) {\n                    zone.wholeVolumeData += volumeYData[i];\n                    if (previousValue > value) {\n                        zone.negativeVolumeData += volumeYData[i];\n                    }\n                    else {\n                        zone.positiveVolumeData += volumeYData[i];\n                    }\n                }\n            }\n            indicator.volumeDataArray.push(zone.wholeVolumeData);\n        });\n        return priceZones;\n    };\n    // Function responsible for drawing additional lines indicating zones\n    VBPIndicator.prototype.drawZones = function (chart, yAxis, zonesValues, zonesStyles) {\n        var indicator = this,\n            renderer = chart.renderer,\n            leftLinePos = 0,\n            rightLinePos = chart.plotWidth,\n            verticalOffset = chart.plotTop;\n        var zoneLinesSVG = indicator.zoneLinesSVG,\n            zoneLinesPath = [],\n            verticalLinePos;\n        zonesValues.forEach(function (value) {\n            verticalLinePos = yAxis.toPixels(value) - verticalOffset;\n            zoneLinesPath = zoneLinesPath.concat(chart.renderer.crispLine([[\n                    'M',\n                    leftLinePos,\n                    verticalLinePos\n                ], [\n                    'L',\n                    rightLinePos,\n                    verticalLinePos\n                ]], zonesStyles.lineWidth));\n        });\n        // Create zone lines one path or update it while animating\n        if (zoneLinesSVG) {\n            zoneLinesSVG.animate({\n                d: zoneLinesPath\n            });\n        }\n        else {\n            zoneLinesSVG = indicator.zoneLinesSVG =\n                renderer\n                    .path(zoneLinesPath)\n                    .attr({\n                    'stroke-width': zonesStyles.lineWidth,\n                    'stroke': zonesStyles.color,\n                    'dashstyle': zonesStyles.dashStyle,\n                    'zIndex': indicator.group.zIndex + 0.1\n                })\n                    .add(indicator.group);\n        }\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Volume By Price indicator.\n     *\n     * This series requires `linkedTo` option to be set.\n     *\n     * @sample stock/indicators/volume-by-price\n     *         Volume By Price indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/volume-by-price\n     * @optionparent plotOptions.vbp\n     */\n    VBPIndicator.defaultOptions = VBPIndicator_merge(VBPIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * @excluding index, period\n         */\n        params: {\n            // Index and period are unchangeable, do not inherit (#15362)\n            index: void 0,\n            period: void 0,\n            /**\n             * The number of price zones.\n             */\n            ranges: 12,\n            /**\n             * The id of volume series which is mandatory. For example using\n             * OHLC data, volumeSeriesID='volume' means the indicator will be\n             * calculated using OHLC and volume values.\n             */\n            volumeSeriesID: 'volume'\n        },\n        /**\n         * The styles for lines which determine price zones.\n         */\n        zoneLines: {\n            /**\n             * Enable/disable zone lines.\n             */\n            enabled: true,\n            /**\n             * Specify the style of zone lines.\n             *\n             * @type    {Highcharts.CSSObject}\n             * @default {\"color\": \"#0A9AC9\", \"dashStyle\": \"LongDash\", \"lineWidth\": 1}\n             */\n            styles: {\n                /** @ignore-option */\n                color: '#0A9AC9',\n                /** @ignore-option */\n                dashStyle: 'LongDash',\n                /** @ignore-option */\n                lineWidth: 1\n            }\n        },\n        /**\n         * The styles for bars when volume is divided into positive/negative.\n         */\n        volumeDivision: {\n            /**\n             * Option to control if volume is divided.\n             */\n            enabled: true,\n            styles: {\n                /**\n                 * Color of positive volume bars.\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                positiveColor: 'rgba(144, 237, 125, 0.8)',\n                /**\n                 * Color of negative volume bars.\n                 *\n                 * @type {Highcharts.ColorString}\n                 */\n                negativeColor: 'rgba(244, 91, 91, 0.8)'\n            }\n        },\n        // To enable series animation; must be animationLimit > pointCount\n        animationLimit: 1000,\n        enableMouseTracking: false,\n        pointPadding: 0,\n        zIndex: -1,\n        crisp: true,\n        dataGrouping: {\n            enabled: false\n        },\n        dataLabels: {\n            align: 'left',\n            allowOverlap: true,\n            enabled: true,\n            format: 'P: {point.volumePos:.2f} | N: {point.volumeNeg:.2f}',\n            padding: 0,\n            style: {\n                /** @internal */\n                fontSize: '0.5em'\n            },\n            verticalAlign: 'top'\n        }\n    });\n    return VBPIndicator;\n}(VBPIndicator_SMAIndicator));\nVBPIndicator_extend(VBPIndicator.prototype, {\n    nameBase: 'Volume by Price',\n    nameComponents: ['ranges'],\n    calculateOn: {\n        chart: 'render',\n        xAxis: 'afterSetExtremes'\n    },\n    pointClass: VBP_VBPPoint,\n    markerAttribs: VBPIndicator_noop,\n    drawGraph: VBPIndicator_noop,\n    getColumnMetrics: VBPIndicator_columnProto.getColumnMetrics,\n    crispCol: VBPIndicator_columnProto.crispCol\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('vbp', VBPIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var VBP_VBPIndicator = ((/* unused pure expression or super */ null && (VBPIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `Volume By Price (VBP)` series. If the [type](#series.vbp.type) option is\n * not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.vbp\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL, compare, compareBase, compareStart\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/volume-by-price\n * @apioption series.vbp\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js\n/* *\n *\n *  (c) 2010-2024 Paweł Dalek\n *\n *  Volume Weighted Average Price (VWAP) indicator for Highcharts Stock\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar VWAPIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar VWAPIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar VWAPIndicator_error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error, VWAPIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, VWAPIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Volume Weighted Average Price (VWAP) series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.vwap\n *\n * @augments Highcharts.Series\n */\nvar VWAPIndicator = /** @class */ (function (_super) {\n    VWAPIndicator_extends(VWAPIndicator, _super);\n    function VWAPIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    VWAPIndicator.prototype.getValues = function (series, params) {\n        var indicator = this,\n            chart = series.chart,\n            xValues = series.xData,\n            yValues = series.yData,\n            period = params.period;\n        var isOHLC = true,\n            volumeSeries;\n        // Checks if volume series exists\n        if (!(volumeSeries = (chart.get(params.volumeSeriesID)))) {\n            VWAPIndicator_error('Series ' +\n                params.volumeSeriesID +\n                ' not found! Check `volumeSeriesID`.', true, chart);\n            return;\n        }\n        // Checks if series data fits the OHLC format\n        if (!(VWAPIndicator_isArray(yValues[0]))) {\n            isOHLC = false;\n        }\n        return indicator.calculateVWAPValues(isOHLC, xValues, yValues, volumeSeries, period);\n    };\n    /**\n     * Main algorithm used to calculate Volume Weighted Average Price (VWAP)\n     * values\n     *\n     * @private\n     *\n     * @param {boolean} isOHLC\n     * Says if data has OHLC format\n     *\n     * @param {Array<number>} xValues\n     * Array of timestamps\n     *\n     * @param {Array<number|Array<number,number,number,number>>} yValues\n     * Array of yValues, can be an array of a four arrays (OHLC) or array of\n     * values (line)\n     *\n     * @param {Array<*>} volumeSeries\n     * Volume series\n     *\n     * @param {number} period\n     * Number of points to be calculated\n     *\n     * @return {Object}\n     * Object contains computed VWAP\n     **/\n    VWAPIndicator.prototype.calculateVWAPValues = function (isOHLC, xValues, yValues, volumeSeries, period) {\n        var volumeValues = volumeSeries.getColumn('y'),\n            volumeLength = volumeValues.length,\n            pointsLength = xValues.length,\n            cumulativePrice = [],\n            cumulativeVolume = [],\n            xData = [],\n            yData = [],\n            VWAP = [];\n        var commonLength,\n            typicalPrice,\n            cPrice,\n            cVolume,\n            i,\n            j;\n        if (pointsLength <= volumeLength) {\n            commonLength = pointsLength;\n        }\n        else {\n            commonLength = volumeLength;\n        }\n        for (i = 0, j = 0; i < commonLength; i++) {\n            // Depending on whether series is OHLC or line type, price is\n            // average of the high, low and close or a simple value\n            typicalPrice = isOHLC ?\n                ((yValues[i][1] + yValues[i][2] +\n                    yValues[i][3]) / 3) :\n                yValues[i];\n            typicalPrice *= volumeValues[i];\n            cPrice = j ?\n                (cumulativePrice[i - 1] + typicalPrice) :\n                typicalPrice;\n            cVolume = j ?\n                (cumulativeVolume[i - 1] + volumeValues[i]) :\n                volumeValues[i];\n            cumulativePrice.push(cPrice);\n            cumulativeVolume.push(cVolume);\n            VWAP.push([xValues[i], (cPrice / cVolume)]);\n            xData.push(VWAP[i][0]);\n            yData.push(VWAP[i][1]);\n            j++;\n            if (j === period) {\n                j = 0;\n            }\n        }\n        return {\n            values: VWAP,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Volume Weighted Average Price indicator.\n     *\n     * This series requires `linkedTo` option to be set.\n     *\n     * @sample stock/indicators/vwap\n     *         Volume Weighted Average Price indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/vwap\n     * @optionparent plotOptions.vwap\n     */\n    VWAPIndicator.defaultOptions = VWAPIndicator_merge(VWAPIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * @excluding index\n         */\n        params: {\n            index: void 0, // Unchangeable index, do not inherit (#15362)\n            period: 30,\n            /**\n             * The id of volume series which is mandatory. For example using\n             * OHLC data, volumeSeriesID='volume' means the indicator will be\n             * calculated using OHLC and volume values.\n             */\n            volumeSeriesID: 'volume'\n        }\n    });\n    return VWAPIndicator;\n}(VWAPIndicator_SMAIndicator));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('vwap', VWAPIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var VWAP_VWAPIndicator = ((/* unused pure expression or super */ null && (VWAPIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `Volume Weighted Average Price (VWAP)` series. If the\n * [type](#series.vwap.type) option is not specified, it is inherited from\n * [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.vwap\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/vwap\n * @apioption series.vwap\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar WilliamsRIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar WilliamsRIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar WilliamsRIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, WilliamsRIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, WilliamsRIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Williams %R series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.williamsr\n *\n * @augments Highcharts.Series\n */\nvar WilliamsRIndicator = /** @class */ (function (_super) {\n    WilliamsRIndicator_extends(WilliamsRIndicator, _super);\n    function WilliamsRIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    WilliamsRIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            WR = [], // 0- date, 1- Williams %R\n            xData = [],\n            yData = [],\n            close = 3,\n            low = 2,\n            high = 1;\n        var slicedY,\n            extremes,\n            R,\n            HH, // Highest high value in period\n            LL, // Lowest low value in period\n            CC, // Current close value\n            i;\n        // Williams %R requires close value\n        if (xVal.length < period ||\n            !WilliamsRIndicator_isArray(yVal[0]) ||\n            yVal[0].length !== 4) {\n            return;\n        }\n        // For a N-period, we start from N-1 point, to calculate Nth point\n        // That is why we later need to comprehend slice() elements list\n        // with (+1)\n        for (i = period - 1; i < yValLen; i++) {\n            slicedY = yVal.slice(i - period + 1, i + 1);\n            extremes = Indicators_ArrayUtilities.getArrayExtremes(slicedY, low, high);\n            LL = extremes[0];\n            HH = extremes[1];\n            CC = yVal[i][close];\n            R = ((HH - CC) / (HH - LL)) * -100;\n            if (xVal[i]) {\n                WR.push([xVal[i], R]);\n                xData.push(xVal[i]);\n                yData.push(R);\n            }\n        }\n        return {\n            values: WR,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Williams %R. This series requires the `linkedTo` option to be\n     * set and should be loaded after the `stock/indicators/indicators.js`.\n     *\n     * @sample {highstock} stock/indicators/williams-r\n     *         Williams %R\n     *\n     * @extends      plotOptions.sma\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, joinBy, keys, navigatorOptions,\n     *               pointInterval, pointIntervalUnit, pointPlacement,\n     *               pointRange, pointStart, showInNavigator, stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/williams-r\n     * @optionparent plotOptions.williamsr\n     */\n    WilliamsRIndicator.defaultOptions = WilliamsRIndicator_merge(WilliamsRIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * Parameters used in calculation of Williams %R series points.\n         * @excluding index\n         */\n        params: {\n            index: void 0, // Unchangeable index, do not inherit (#15362)\n            /**\n             * Period for Williams %R oscillator\n             */\n            period: 14\n        }\n    });\n    return WilliamsRIndicator;\n}(WilliamsRIndicator_SMAIndicator));\nWilliamsRIndicator_extend(WilliamsRIndicator.prototype, {\n    nameBase: 'Williams %R'\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('williamsr', WilliamsRIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var WilliamsR_WilliamsRIndicator = ((/* unused pure expression or super */ null && (WilliamsRIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `Williams %R Oscillator` series. If the [type](#series.williamsr.type)\n * option is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.williamsr\n * @since     7.0.0\n * @product   highstock\n * @excluding allAreas, colorAxis, dataParser, dataURL, joinBy, keys,\n *            navigatorOptions, pointInterval, pointIntervalUnit,\n *            pointPlacement, pointRange, pointStart, showInNavigator, stacking\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/williams-r\n * @apioption series.williamsr\n */\n''; // Adds doclets above to the transpiled file\n\n;// ./code/es5/es-modules/Stock/Indicators/WMA/WMAIndicator.js\n/* *\n *\n *  (c) 2010-2024 Kacper Madej\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar WMAIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar WMAIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar WMAIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, WMAIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Functions\n *\n * */\n// Utils:\n/**\n * @private\n */\nfunction WMAIndicator_accumulateAverage(points, xVal, yVal, i, index) {\n    var xValue = xVal[i],\n        yValue = index < 0 ? yVal[i] : yVal[i][index];\n    points.push([xValue, yValue]);\n}\n/**\n * @private\n */\nfunction weightedSumArray(array, pLen) {\n    // The denominator is the sum of the number of days as a triangular number.\n    // If there are 5 days, the triangular numbers are 5, 4, 3, 2, and 1.\n    // The sum is 5 + 4 + 3 + 2 + 1 = 15.\n    var denominator = (pLen + 1) / 2 * pLen;\n    // Reduce VS loop => reduce\n    return array.reduce(function (prev, cur, i) {\n        return [null, prev[1] + cur[1] * (i + 1)];\n    })[1] / denominator;\n}\n/**\n * @private\n */\nfunction WMAIndicator_populateAverage(points, xVal, yVal, i) {\n    var pLen = points.length,\n        wmaY = weightedSumArray(points,\n        pLen),\n        wmaX = xVal[i - 1];\n    points.shift(); // Remove point until range < period\n    return [wmaX, wmaY];\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The SMA series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.wma\n *\n * @augments Highcharts.Series\n */\nvar WMAIndicator = /** @class */ (function (_super) {\n    WMAIndicator_extends(WMAIndicator, _super);\n    function WMAIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    WMAIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            xValue = xVal[0],\n            wma = [],\n            xData = [],\n            yData = [];\n        var range = 1,\n            index = -1,\n            i,\n            wmaPoint,\n            yValue = yVal[0];\n        if (xVal.length < period) {\n            return;\n        }\n        // Switch index for OHLC / Candlestick\n        if (WMAIndicator_isArray(yVal[0])) {\n            index = params.index;\n            yValue = yVal[0][index];\n        }\n        // Starting point\n        var points = [[xValue,\n            yValue]];\n        // Accumulate first N-points\n        while (range !== period) {\n            WMAIndicator_accumulateAverage(points, xVal, yVal, range, index);\n            range++;\n        }\n        // Calculate value one-by-one for each period in visible data\n        for (i = range; i < yValLen; i++) {\n            wmaPoint = WMAIndicator_populateAverage(points, xVal, yVal, i);\n            wma.push(wmaPoint);\n            xData.push(wmaPoint[0]);\n            yData.push(wmaPoint[1]);\n            WMAIndicator_accumulateAverage(points, xVal, yVal, i, index);\n        }\n        wmaPoint = WMAIndicator_populateAverage(points, xVal, yVal, i);\n        wma.push(wmaPoint);\n        xData.push(wmaPoint[0]);\n        yData.push(wmaPoint[1]);\n        return {\n            values: wma,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Weighted moving average indicator (WMA). This series requires `linkedTo`\n     * option to be set.\n     *\n     * @sample stock/indicators/wma\n     *         Weighted moving average indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/wma\n     * @optionparent plotOptions.wma\n     */\n    WMAIndicator.defaultOptions = WMAIndicator_merge(WMAIndicator_SMAIndicator.defaultOptions, {\n        params: {\n            index: 3,\n            period: 9\n        }\n    });\n    return WMAIndicator;\n}(WMAIndicator_SMAIndicator));\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('wma', WMAIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var WMA_WMAIndicator = ((/* unused pure expression or super */ null && (WMAIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `WMA` series. If the [type](#series.wma.type) option is not specified, it\n * is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.wma\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/wma\n * @apioption series.wma\n */\n''; // Adds doclet above to the transpiled file\n\n;// ./code/es5/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js\n/* *\n *\n *  (c) 2010-2024 Kacper Madej\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ZigzagIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar ZigzagIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar ZigzagIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, ZigzagIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Zig Zag series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.zigzag\n *\n * @augments Highcharts.Series\n */\nvar ZigzagIndicator = /** @class */ (function (_super) {\n    ZigzagIndicator_extends(ZigzagIndicator, _super);\n    function ZigzagIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    ZigzagIndicator.prototype.getValues = function (series, params) {\n        var lowIndex = params.lowIndex,\n            highIndex = params.highIndex,\n            deviation = params.deviation / 100,\n            deviations = {\n                'low': 1 + deviation,\n                'high': 1 - deviation\n            },\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            zigzag = [],\n            xData = [],\n            yData = [];\n        var i,\n            j,\n            zigzagPoint,\n            directionUp,\n            exitLoop = false,\n            yIndex = false;\n        // Exit if not enough points or no low or high values\n        if (!xVal || xVal.length <= 1 ||\n            (yValLen &&\n                (typeof yVal[0][lowIndex] === 'undefined' ||\n                    typeof yVal[0][highIndex] === 'undefined'))) {\n            return;\n        }\n        // Set first zigzag point candidate\n        var firstZigzagLow = yVal[0][lowIndex],\n            firstZigzagHigh = yVal[0][highIndex];\n        // Search for a second zigzag point candidate,\n        // this will also set first zigzag point\n        for (i = 1; i < yValLen; i++) {\n            // Required change to go down\n            if (yVal[i][lowIndex] <= firstZigzagHigh * deviations.high) {\n                zigzag.push([xVal[0], firstZigzagHigh]);\n                // Second zigzag point candidate\n                zigzagPoint = [xVal[i], yVal[i][lowIndex]];\n                // Next line will be going up\n                directionUp = true;\n                exitLoop = true;\n                // Required change to go up\n            }\n            else if (yVal[i][highIndex] >= firstZigzagLow * deviations.low) {\n                zigzag.push([xVal[0], firstZigzagLow]);\n                // Second zigzag point candidate\n                zigzagPoint = [xVal[i], yVal[i][highIndex]];\n                // Next line will be going down\n                directionUp = false;\n                exitLoop = true;\n            }\n            if (exitLoop) {\n                xData.push(zigzag[0][0]);\n                yData.push(zigzag[0][1]);\n                j = i++;\n                i = yValLen;\n            }\n        }\n        // Search for next zigzags\n        for (i = j; i < yValLen; i++) {\n            if (directionUp) { // Next line up\n                // lower when going down -> change zigzag candidate\n                if (yVal[i][lowIndex] <= zigzagPoint[1]) {\n                    zigzagPoint = [xVal[i], yVal[i][lowIndex]];\n                }\n                // Required change to go down -> new zigzagpoint and\n                // direction change\n                if (yVal[i][highIndex] >=\n                    zigzagPoint[1] * deviations.low) {\n                    yIndex = highIndex;\n                }\n            }\n            else { // Next line down\n                // higher when going up -> change zigzag candidate\n                if (yVal[i][highIndex] >= zigzagPoint[1]) {\n                    zigzagPoint = [xVal[i], yVal[i][highIndex]];\n                }\n                // Required change to go down -> new zigzagpoint and\n                // direction change\n                if (yVal[i][lowIndex] <=\n                    zigzagPoint[1] * deviations.high) {\n                    yIndex = lowIndex;\n                }\n            }\n            if (yIndex !== false) { // New zigzag point and direction change\n                zigzag.push(zigzagPoint);\n                xData.push(zigzagPoint[0]);\n                yData.push(zigzagPoint[1]);\n                zigzagPoint = [xVal[i], yVal[i][yIndex]];\n                directionUp = !directionUp;\n                yIndex = false;\n            }\n        }\n        var zigzagLen = zigzag.length;\n        // No zigzag for last point\n        if (zigzagLen !== 0 &&\n            zigzag[zigzagLen - 1][0] < xVal[yValLen - 1]) {\n            // Set last point from zigzag candidate\n            zigzag.push(zigzagPoint);\n            xData.push(zigzagPoint[0]);\n            yData.push(zigzagPoint[1]);\n        }\n        return {\n            values: zigzag,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Zig Zag indicator.\n     *\n     * This series requires `linkedTo` option to be set.\n     *\n     * @sample stock/indicators/zigzag\n     *         Zig Zag indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        6.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/zigzag\n     * @optionparent plotOptions.zigzag\n     */\n    ZigzagIndicator.defaultOptions = ZigzagIndicator_merge(ZigzagIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * @excluding index, period\n         */\n        params: {\n            // Index and period are unchangeable, do not inherit (#15362)\n            index: void 0,\n            period: void 0,\n            /**\n             * The point index which indicator calculations will base - low\n             * value.\n             *\n             * For example using OHLC data, index=2 means the indicator will be\n             * calculated using Low values.\n             */\n            lowIndex: 2,\n            /**\n             * The point index which indicator calculations will base - high\n             * value.\n             *\n             * For example using OHLC data, index=1 means the indicator will be\n             * calculated using High values.\n             */\n            highIndex: 1,\n            /**\n             * The threshold for the value change.\n             *\n             * For example deviation=1 means the indicator will ignore all price\n             * movements less than 1%.\n             */\n            deviation: 1\n        }\n    });\n    return ZigzagIndicator;\n}(ZigzagIndicator_SMAIndicator));\nZigzagIndicator_extend(ZigzagIndicator.prototype, {\n    nameComponents: ['deviation'],\n    nameSuffixes: ['%'],\n    nameBase: 'Zig Zag'\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('zigzag', ZigzagIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var Zigzag_ZigzagIndicator = ((/* unused pure expression or super */ null && (ZigzagIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `Zig Zag` series. If the [type](#series.zigzag.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.zigzag\n * @since     6.0.0\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/zigzag\n * @apioption series.zigzag\n */\n''; // Adds doclets above to transpiled file\n\n;// ./code/es5/es-modules/Stock/Indicators/LinearRegression/LinearRegressionIndicator.js\n/**\n *\n *  (c) 2010-2024 Kamil Kulig\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar LinearRegressionIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar LinearRegressionIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar LinearRegressionIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, LinearRegressionIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, LinearRegressionIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * Linear regression series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.linearregression\n *\n * @augments Highcharts.Series\n */\nvar LinearRegressionIndicator = /** @class */ (function (_super) {\n    LinearRegressionIndicator_extends(LinearRegressionIndicator, _super);\n    function LinearRegressionIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /**\n     * Return the slope and intercept of a straight line function.\n     *\n     * @private\n     *\n     * @param {Array<number>} xData\n     * List of all x coordinates in a period.\n     *\n     * @param {Array<number>} yData\n     * List of all y coordinates in a period.\n     *\n     * @return {Highcharts.RegressionLineParametersObject}\n     * Object that contains the slope and the intercept of a straight line\n     * function.\n     */\n    LinearRegressionIndicator.prototype.getRegressionLineParameters = function (xData, yData) {\n        // Least squares method\n        var yIndex = this.options.params.index,\n            getSingleYValue = function (yValue,\n            yIndex) {\n                return LinearRegressionIndicator_isArray(yValue) ? yValue[yIndex] : yValue;\n        }, xSum = xData.reduce(function (accX, val) {\n            return val + accX;\n        }, 0), ySum = yData.reduce(function (accY, val) {\n            return getSingleYValue(val, yIndex) + accY;\n        }, 0), xMean = xSum / xData.length, yMean = ySum / yData.length;\n        var xError,\n            yError,\n            i,\n            formulaNumerator = 0,\n            formulaDenominator = 0;\n        for (i = 0; i < xData.length; i++) {\n            xError = xData[i] - xMean;\n            yError = getSingleYValue(yData[i], yIndex) - yMean;\n            formulaNumerator += xError * yError;\n            formulaDenominator += Math.pow(xError, 2);\n        }\n        var slope = formulaDenominator ?\n                formulaNumerator / formulaDenominator : 0; // Don't divide by 0\n            return {\n                slope: slope,\n                intercept: yMean - slope * xMean\n            };\n    };\n    /**\n     * Return the y value on a straight line.\n     *\n     * @private\n     *\n     * @param {Highcharts.RegressionLineParametersObject} lineParameters\n     * Object that contains the slope and the intercept of a straight line\n     * function.\n     *\n     * @param {number} endPointX\n     * X coordinate of the point.\n     *\n     * @return {number}\n     * Y value of the point that lies on the line.\n     */\n    LinearRegressionIndicator.prototype.getEndPointY = function (lineParameters, endPointX) {\n        return lineParameters.slope * endPointX + lineParameters.intercept;\n    };\n    /**\n     * Transform the coordinate system so that x values start at 0 and\n     * apply xAxisUnit.\n     *\n     * @private\n     *\n     * @param {Array<number>} xData\n     * List of all x coordinates in a period\n     *\n     * @param {number} xAxisUnit\n     * Option (see the API)\n     *\n     * @return {Array<number>}\n     * Array of transformed x data\n     */\n    LinearRegressionIndicator.prototype.transformXData = function (xData, xAxisUnit) {\n        var xOffset = xData[0];\n        return xData.map(function (xValue) {\n            return (xValue - xOffset) / xAxisUnit;\n        });\n    };\n    /**\n     * Find the closest distance between points in the base series.\n     * @private\n     * @param {Array<number>} xData list of all x coordinates in the base series\n     * @return {number} - closest distance between points in the base series\n     */\n    LinearRegressionIndicator.prototype.findClosestDistance = function (xData) {\n        var distance,\n            closestDistance,\n            i;\n        for (i = 1; i < xData.length - 1; i++) {\n            distance = xData[i] - xData[i - 1];\n            if (distance > 0 &&\n                (typeof closestDistance === 'undefined' ||\n                    distance < closestDistance)) {\n                closestDistance = distance;\n            }\n        }\n        return closestDistance;\n    };\n    // Required to be implemented - starting point for indicator's logic\n    LinearRegressionIndicator.prototype.getValues = function (baseSeries, regressionSeriesParams) {\n        var xData = baseSeries.xData,\n            yData = baseSeries.yData,\n            period = regressionSeriesParams.period, \n            // Format required to be returned\n            indicatorData = {\n                xData: [], // By getValues() method\n                yData: [],\n                values: []\n            },\n            xAxisUnit = this.options.params.xAxisUnit ||\n                this.findClosestDistance(xData);\n        var lineParameters,\n            i,\n            periodStart,\n            periodEnd,\n            endPointX,\n            endPointY,\n            periodXData,\n            periodYData,\n            periodTransformedXData;\n        // Iteration logic: x value of the last point within the period\n        // (end point) is used to represent the y value (regression)\n        // of the entire period.\n        for (i = period - 1; i <= xData.length - 1; i++) {\n            periodStart = i - period + 1; // Adjusted for slice() function\n            periodEnd = i + 1; // (as above)\n            endPointX = xData[i];\n            periodXData = xData.slice(periodStart, periodEnd);\n            periodYData = yData.slice(periodStart, periodEnd);\n            periodTransformedXData = this.transformXData(periodXData, xAxisUnit);\n            lineParameters = this.getRegressionLineParameters(periodTransformedXData, periodYData);\n            endPointY = this.getEndPointY(lineParameters, periodTransformedXData[periodTransformedXData.length - 1]);\n            // @todo this is probably not used anywhere\n            indicatorData.values.push({\n                regressionLineParameters: lineParameters,\n                x: endPointX,\n                y: endPointY\n            });\n            if (LinearRegressionIndicator_isArray(indicatorData.xData)) {\n                indicatorData.xData.push(endPointX);\n            }\n            if (LinearRegressionIndicator_isArray(indicatorData.yData)) {\n                indicatorData.yData.push(endPointY);\n            }\n        }\n        return indicatorData;\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Linear regression indicator. This series requires `linkedTo` option to be\n     * set.\n     *\n     * @sample {highstock} stock/indicators/linear-regression\n     *         Linear regression indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        7.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/regressions\n     * @optionparent plotOptions.linearregression\n     */\n    LinearRegressionIndicator.defaultOptions = LinearRegressionIndicator_merge(LinearRegressionIndicator_SMAIndicator.defaultOptions, {\n        params: {\n            /**\n             * Unit (in milliseconds) for the x axis distances used to\n             * compute the regression line parameters (slope & intercept)\n             * for every range. In Highcharts Stock the x axis values are\n             * always represented in milliseconds which may cause that\n             * distances between points are \"big\" integer numbers.\n             *\n             * Highcharts Stock's linear regression algorithm (least squares\n             * method) will utilize these \"big\" integers for finding the\n             * slope and the intercept of the regression line for each\n             * period. In consequence, this value may be a very \"small\"\n             * decimal number that's hard to interpret by a human.\n             *\n             * For instance: `xAxisUnit` equaled to `86400000` ms (1 day)\n             * forces the algorithm to treat `86400000` as `1` while\n             * computing the slope and the intercept. This may enhance the\n             * legibility of the indicator's values.\n             *\n             * Default value is the closest distance between two data\n             * points.\n             *\n             * In `v9.0.2`, the default value has been changed\n             * from `undefined` to `null`.\n             *\n             * @sample {highstock} stock/plotoptions/linear-regression-xaxisunit\n             *         xAxisUnit set to 1 minute\n             *\n             * @example\n             * // In Liniear Regression Slope Indicator series `xAxisUnit`is\n             * // `86400000` (1 day) and period is `3`. There're 3 points in\n             * // the base series:\n             *\n             * data: [\n             *   [Date.UTC(2020, 0, 1), 1],\n             *   [Date.UTC(2020, 0, 2), 3],\n             *   [Date.UTC(2020, 0, 3), 5]\n             * ]\n             *\n             * // This will produce one point in the indicator series that\n             * // has a `y` value of `2` (slope of the regression line). If\n             * // we change the `xAxisUnit` to `1` (ms) the value of the\n             * // indicator's point will be `2.3148148148148148e-8` which is\n             * // harder to interpert for a human.\n             *\n             * @type    {null|number}\n             * @product highstock\n             */\n            xAxisUnit: null\n        },\n        tooltip: {\n            valueDecimals: 4\n        }\n    });\n    return LinearRegressionIndicator;\n}(LinearRegressionIndicator_SMAIndicator));\nLinearRegressionIndicator_extend(LinearRegressionIndicator.prototype, {\n    nameBase: 'Linear Regression Indicator'\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('linearRegression', LinearRegressionIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var LinearRegression_LinearRegressionIndicator = ((/* unused pure expression or super */ null && (LinearRegressionIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A linear regression series. If the\n * [type](#series.linearregression.type) option is not specified, it is\n * inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.linearregression\n * @since     7.0.0\n * @product   highstock\n * @excluding dataParser,dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/regressions\n * @apioption series.linearregression\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopesIndicator.js\n/**\n *\n *  (c) 2010-2024 Kamil Kulig\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar LinearRegressionSlopesIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar LinearRegressionSlopesIndicator_LinearRegressionIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.linearRegression;\n\nvar LinearRegressionSlopesIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, LinearRegressionSlopesIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Linear Regression Slope series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.linearRegressionSlope\n *\n * @augments Highcharts.Series\n */\nvar LinearRegressionSlopesIndicator = /** @class */ (function (_super) {\n    LinearRegressionSlopesIndicator_extends(LinearRegressionSlopesIndicator, _super);\n    function LinearRegressionSlopesIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    LinearRegressionSlopesIndicator.prototype.getEndPointY = function (lineParameters) {\n        return lineParameters.slope;\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Linear regression slope indicator. This series requires `linkedTo`\n     * option to be set.\n     *\n     * @sample {highstock} stock/indicators/linear-regression-slope\n     *         Linear regression slope indicator\n     *\n     * @extends      plotOptions.linearregression\n     * @since        7.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires  stock/indicators/regressions\n     * @optionparent plotOptions.linearregressionslope\n     */\n    LinearRegressionSlopesIndicator.defaultOptions = LinearRegressionSlopesIndicator_merge(LinearRegressionSlopesIndicator_LinearRegressionIndicator.defaultOptions);\n    return LinearRegressionSlopesIndicator;\n}(LinearRegressionSlopesIndicator_LinearRegressionIndicator));\nLinearRegressionSlopesIndicator_extend(LinearRegressionSlopesIndicator.prototype, {\n    nameBase: 'Linear Regression Slope Indicator'\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('linearRegressionSlope', LinearRegressionSlopesIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var LinearRegressionSlopes_LinearRegressionSlopesIndicator = ((/* unused pure expression or super */ null && (LinearRegressionSlopesIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A linear regression intercept series. If the\n * [type](#series.linearregressionslope.type) option is not specified, it is\n * inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.linearregressionslope\n * @since     7.0.0\n * @product   highstock\n * @excluding dataParser,dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/regressions\n * @apioption series.linearregressionslope\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionInterceptIndicator.js\n/**\n *\n *  (c) 2010-2024 Kamil Kulig\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar LinearRegressionInterceptIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar LinearRegressionInterceptIndicator_LinearRegressionIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.linearRegression;\n\nvar LinearRegressionInterceptIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, LinearRegressionInterceptIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Linear Regression Intercept series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.linearRegressionIntercept\n *\n * @augments Highcharts.Series\n */\nvar LinearRegressionInterceptIndicator = /** @class */ (function (_super) {\n    LinearRegressionInterceptIndicator_extends(LinearRegressionInterceptIndicator, _super);\n    function LinearRegressionInterceptIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    LinearRegressionInterceptIndicator.prototype.getEndPointY = function (lineParameters) {\n        return lineParameters.intercept;\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Linear regression intercept indicator. This series requires `linkedTo`\n     * option to be set.\n     *\n     * @sample {highstock} stock/indicators/linear-regression-intercept\n     *         Linear intercept slope indicator\n     *\n     * @extends      plotOptions.linearregression\n     * @since        7.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires  stock/indicators/regressions\n     * @optionparent plotOptions.linearregressionintercept\n     */\n    LinearRegressionInterceptIndicator.defaultOptions = LinearRegressionInterceptIndicator_merge(LinearRegressionInterceptIndicator_LinearRegressionIndicator.defaultOptions);\n    return LinearRegressionInterceptIndicator;\n}(LinearRegressionInterceptIndicator_LinearRegressionIndicator));\nLinearRegressionInterceptIndicator_extend(LinearRegressionInterceptIndicator.prototype, {\n    nameBase: 'Linear Regression Intercept Indicator'\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('linearRegressionIntercept', LinearRegressionInterceptIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var LinearRegressionIntercept_LinearRegressionInterceptIndicator = ((/* unused pure expression or super */ null && (LinearRegressionInterceptIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A linear regression intercept series. If the\n * [type](#series.linearregressionintercept.type) option is not specified, it is\n * inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.linearregressionintercept\n * @since     7.0.0\n * @product   highstock\n * @excluding dataParser,dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/regressions\n * @apioption series.linearregressionintercept\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngleIndicator.js\n/**\n *\n *  (c) 2010-2024 Kamil Kulig\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar LinearRegressionAngleIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar LinearRegressionAngleIndicator_LinearRegressionIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.linearRegression;\n\nvar LinearRegressionAngleIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, LinearRegressionAngleIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Linear Regression Angle series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.linearRegressionAngle\n *\n * @augments Highcharts.Series\n */\nvar LinearRegressionAngleIndicator = /** @class */ (function (_super) {\n    LinearRegressionAngleIndicator_extends(LinearRegressionAngleIndicator, _super);\n    function LinearRegressionAngleIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    /**\n     * Convert a slope of a line to angle (in degrees) between\n     * the line and x axis\n     * @private\n     * @param {number} slope of the straight line function\n     * @return {number} angle in degrees\n     */\n    LinearRegressionAngleIndicator.prototype.slopeToAngle = function (slope) {\n        return Math.atan(slope) * (180 / Math.PI); // Rad to deg\n    };\n    LinearRegressionAngleIndicator.prototype.getEndPointY = function (lineParameters) {\n        return this.slopeToAngle(lineParameters.slope);\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Linear regression angle indicator. This series requires `linkedTo`\n     * option to be set.\n     *\n     * @sample {highstock} stock/indicators/linear-regression-angle\n     *         Linear intercept angle indicator\n     *\n     * @extends      plotOptions.linearregression\n     * @since        7.0.0\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires  stock/indicators/regressions\n     * @optionparent plotOptions.linearregressionangle\n     */\n    LinearRegressionAngleIndicator.defaultOptions = LinearRegressionAngleIndicator_merge(LinearRegressionAngleIndicator_LinearRegressionIndicator.defaultOptions, {\n        tooltip: {\n            pointFormat: '<span style=\"color:{point.color}\">\\u25CF</span>' +\n                '{series.name}: <b>{point.y}°</b><br/>'\n        }\n    });\n    return LinearRegressionAngleIndicator;\n}(LinearRegressionAngleIndicator_LinearRegressionIndicator));\nLinearRegressionAngleIndicator_extend(LinearRegressionAngleIndicator.prototype, {\n    nameBase: 'Linear Regression Angle Indicator'\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('linearRegressionAngle', LinearRegressionAngleIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var LinearRegressionAngle_LinearRegressionAngleIndicator = ((/* unused pure expression or super */ null && (LinearRegressionAngleIndicator)));\n/**\n * A linear regression intercept series. If the\n * [type](#series.linearregressionangle.type) option is not specified, it is\n * inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.linearregressionangle\n * @since     7.0.0\n * @product   highstock\n * @excluding dataParser,dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/regressions\n * @apioption series.linearregressionangle\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/ABands/ABandsIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ABandsIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar ABandsIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar ABandsIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, ABandsIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, ABandsIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Functions\n *\n * */\n/**\n * @private\n */\nfunction getBaseForBand(low, high, factor) {\n    return (((ABandsIndicator_correctFloat(high - low)) /\n        ((ABandsIndicator_correctFloat(high + low)) / 2)) * 1000) * factor;\n}\n/**\n * @private\n */\nfunction getPointUB(high, base) {\n    return high * (ABandsIndicator_correctFloat(1 + 2 * base));\n}\n/**\n * @private\n */\nfunction getPointLB(low, base) {\n    return low * (ABandsIndicator_correctFloat(1 - 2 * base));\n}\n/* *\n *\n *  Class\n *\n * */\n/**\n * The ABands series type\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.abands\n *\n * @augments Highcharts.Series\n */\nvar ABandsIndicator = /** @class */ (function (_super) {\n    ABandsIndicator_extends(ABandsIndicator, _super);\n    function ABandsIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    ABandsIndicator.prototype.getValues = function (series, params) {\n        var period = params.period,\n            factor = params.factor,\n            index = params.index,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0, \n            // Upperbands\n            UB = [], \n            // Lowerbands\n            LB = [], \n            // ABANDS array structure:\n            // 0-date, 1-top line, 2-middle line, 3-bottom line\n            ABANDS = [],\n            low = 2,\n            high = 1,\n            xData = [],\n            yData = [];\n        // Middle line, top line and bottom line\n        var ML,\n            TL,\n            BL,\n            date,\n            bandBase,\n            pointSMA,\n            ubSMA,\n            lbSMA,\n            slicedX,\n            slicedY,\n            i;\n        if (yValLen < period) {\n            return;\n        }\n        for (i = 0; i <= yValLen; i++) {\n            // Get UB and LB values of every point. This condition\n            // is necessary, because there is a need to calculate current\n            // UB nad LB values simultaneously with given period SMA\n            // in one for loop.\n            if (i < yValLen) {\n                bandBase = getBaseForBand(yVal[i][low], yVal[i][high], factor);\n                UB.push(getPointUB(yVal[i][high], bandBase));\n                LB.push(getPointLB(yVal[i][low], bandBase));\n            }\n            if (i >= period) {\n                slicedX = xVal.slice(i - period, i);\n                slicedY = yVal.slice(i - period, i);\n                ubSMA = _super.prototype.getValues.call(this, {\n                    xData: slicedX,\n                    yData: UB.slice(i - period, i)\n                }, {\n                    period: period\n                });\n                lbSMA = _super.prototype.getValues.call(this, {\n                    xData: slicedX,\n                    yData: LB.slice(i - period, i)\n                }, {\n                    period: period\n                });\n                pointSMA = _super.prototype.getValues.call(this, {\n                    xData: slicedX,\n                    yData: slicedY\n                }, {\n                    period: period,\n                    index: index\n                });\n                date = pointSMA.xData[0];\n                TL = ubSMA.yData[0];\n                BL = lbSMA.yData[0];\n                ML = pointSMA.yData[0];\n                ABANDS.push([date, TL, ML, BL]);\n                xData.push(date);\n                yData.push([TL, ML, BL]);\n            }\n        }\n        return {\n            values: ABANDS,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Acceleration bands (ABANDS). This series requires the `linkedTo` option\n     * to be set and should be loaded after the\n     * `stock/indicators/indicators.js`.\n     *\n     * @sample {highstock} stock/indicators/acceleration-bands\n     *         Acceleration Bands\n     *\n     * @extends      plotOptions.sma\n     * @mixes        Highcharts.MultipleLinesMixin\n     * @since        7.0.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, compare, compareBase, joinBy, keys,\n     *               navigatorOptions, pointInterval, pointIntervalUnit,\n     *               pointPlacement, pointRange, pointStart, showInNavigator,\n     *               stacking,\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/acceleration-bands\n     * @optionparent plotOptions.abands\n     */\n    ABandsIndicator.defaultOptions = ABandsIndicator_merge(ABandsIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * Option for fill color between lines in Accelleration bands Indicator.\n         *\n         * @sample {highstock} stock/indicators/indicator-area-fill\n         *      Background fill between lines.\n         *\n         * @type {Highcharts.Color}\n         * @since 9.3.2\n         * @apioption plotOptions.abands.fillColor\n         *\n         */\n        params: {\n            period: 20,\n            /**\n             * The algorithms factor value used to calculate bands.\n             *\n             * @product highstock\n             */\n            factor: 0.001,\n            index: 3\n        },\n        lineWidth: 1,\n        topLine: {\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1\n            }\n        },\n        bottomLine: {\n            styles: {\n                /**\n                 * Pixel width of the line.\n                 */\n                lineWidth: 1\n            }\n        },\n        dataGrouping: {\n            approximation: 'averages'\n        }\n    });\n    return ABandsIndicator;\n}(ABandsIndicator_SMAIndicator));\nABandsIndicator_extend(ABandsIndicator.prototype, {\n    areaLinesNames: ['top', 'bottom'],\n    linesApiNames: ['topLine', 'bottomLine'],\n    nameBase: 'Acceleration Bands',\n    nameComponents: ['period', 'factor'],\n    pointArrayMap: ['top', 'middle', 'bottom'],\n    pointValKey: 'middle'\n});\nIndicators_MultipleLinesComposition.compose(ABandsIndicator);\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('abands', ABandsIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var ABands_ABandsIndicator = ((/* unused pure expression or super */ null && (ABandsIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * An Acceleration bands indicator. If the [type](#series.abands.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.abands\n * @since     7.0.0\n * @product   highstock\n * @excluding allAreas, colorAxis, compare, compareBase, dataParser, dataURL,\n *            joinBy, keys, navigatorOptions, pointInterval,\n *            pointIntervalUnit, pointPlacement, pointRange, pointStart,\n *            stacking, showInNavigator,\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/acceleration-bands\n * @apioption series.abands\n */\n''; // To include the above in jsdoc\n\n;// ./code/es5/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js\n/* *\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar TrendLineIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar TrendLineIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar TrendLineIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, TrendLineIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, TrendLineIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Trend line series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.trendline\n *\n * @augments Highcharts.Series\n */\nvar TrendLineIndicator = /** @class */ (function (_super) {\n    TrendLineIndicator_extends(TrendLineIndicator, _super);\n    function TrendLineIndicator() {\n        /* *\n         *\n         *  Static Properties\n         *\n         * */\n        var _this = _super !== null && _super.apply(this,\n            arguments) || this;\n        _this.updateAllPoints = true;\n        return _this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    TrendLineIndicator.prototype.getValues = function (series, params) {\n        var orgXVal = series.xData,\n            yVal = series.yData,\n            xVal = [],\n            LR = [],\n            xData = [],\n            yData = [],\n            index = params.index;\n        var numerator = 0,\n            denominator = 0,\n            xValSum = 0,\n            yValSum = 0,\n            counter = 0;\n        // Create an array of consecutive xValues, (don't remove duplicates)\n        for (var i = 0; i < orgXVal.length; i++) {\n            if (i === 0 || orgXVal[i] !== orgXVal[i - 1]) {\n                counter++;\n            }\n            xVal.push(counter);\n        }\n        for (var i = 0; i < xVal.length; i++) {\n            xValSum += xVal[i];\n            yValSum += TrendLineIndicator_isArray(yVal[i]) ? yVal[i][index] : yVal[i];\n        }\n        var meanX = xValSum / xVal.length, meanY = yValSum / yVal.length;\n        for (var i = 0; i < xVal.length; i++) {\n            var y = TrendLineIndicator_isArray(yVal[i]) ? yVal[i][index] : yVal[i];\n            numerator += (xVal[i] - meanX) * (y - meanY);\n            denominator += Math.pow(xVal[i] - meanX, 2);\n        }\n        // Calculate linear regression:\n        for (var i = 0; i < xVal.length; i++) {\n            // Check if the xVal is already used\n            if (orgXVal[i] === xData[xData.length - 1]) {\n                continue;\n            }\n            var x = orgXVal[i],\n                y = meanY + (numerator / denominator) * (xVal[i] - meanX);\n            LR.push([x, y]);\n            xData.push(x);\n            yData.push(y);\n        }\n        return {\n            xData: xData,\n            yData: yData,\n            values: LR\n        };\n    };\n    /**\n     * Trendline (linear regression) fits a straight line to the selected data\n     * using a method called the Sum Of Least Squares. This series requires the\n     * `linkedTo` option to be set.\n     *\n     * @sample stock/indicators/trendline\n     *         Trendline indicator\n     *\n     * @extends      plotOptions.sma\n     * @since        7.1.3\n     * @product      highstock\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/trendline\n     * @optionparent plotOptions.trendline\n     */\n    TrendLineIndicator.defaultOptions = TrendLineIndicator_merge(TrendLineIndicator_SMAIndicator.defaultOptions, {\n        /**\n         * @excluding period\n         */\n        params: {\n            period: void 0, // Unchangeable period, do not inherit (#15362)\n            /**\n             * The point index which indicator calculations will base. For\n             * example using OHLC data, index=2 means the indicator will be\n             * calculated using Low values.\n             *\n             * @default 3\n             */\n            index: 3\n        }\n    });\n    return TrendLineIndicator;\n}(TrendLineIndicator_SMAIndicator));\nTrendLineIndicator_extend(TrendLineIndicator.prototype, {\n    nameBase: 'Trendline',\n    nameComponents: void 0\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('trendline', TrendLineIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var TrendLine_TrendLineIndicator = ((/* unused pure expression or super */ null && (TrendLineIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * A `TrendLine` series. If the [type](#series.trendline.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.trendline\n * @since     7.1.3\n * @product   highstock\n * @excluding dataParser, dataURL\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/trendline\n * @apioption series.trendline\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js\n/* *\n *  (c) 2010-2024 Rafal Sebestjanski\n *\n *  Disparity Index technical indicator for Highcharts Stock\n *\n *  License: www.highcharts.com/license\n *\n *  !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar DisparityIndexIndicator_extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n        p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\nvar DisparityIndexIndicator_SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar DisparityIndexIndicator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, DisparityIndexIndicator_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, DisparityIndexIndicator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, DisparityIndexIndicator_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, DisparityIndexIndicator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n *  Class\n *\n * */\n/**\n * The Disparity Index series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.disparityindex\n *\n * @augments Highcharts.Series\n */\nvar DisparityIndexIndicator = /** @class */ (function (_super) {\n    DisparityIndexIndicator_extends(DisparityIndexIndicator, _super);\n    function DisparityIndexIndicator() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    /* *\n     *\n     *  Functions\n     *\n     * */\n    DisparityIndexIndicator.prototype.init = function () {\n        var args = arguments,\n            ctx = this, // Disparity Index indicator\n            params = args[1].params, // Options.params\n            averageType = params && params.average ? params.average : void 0;\n        ctx.averageIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes[averageType] || DisparityIndexIndicator_SMAIndicator;\n        ctx.averageIndicator.prototype.init.apply(ctx, args);\n    };\n    DisparityIndexIndicator.prototype.calculateDisparityIndex = function (curPrice, periodAverage) {\n        return DisparityIndexIndicator_correctFloat(curPrice - periodAverage) / periodAverage * 100;\n    };\n    DisparityIndexIndicator.prototype.getValues = function (series, params) {\n        var index = params.index,\n            xVal = series.xData,\n            yVal = series.yData,\n            yValLen = yVal ? yVal.length : 0,\n            disparityIndexPoint = [],\n            xData = [],\n            yData = [], \n            // \"as any\" because getValues doesn't exist on typeof Series\n            averageIndicator = this.averageIndicator,\n            isOHLC = DisparityIndexIndicator_isArray(yVal[0]), \n            // Get the average indicator's values\n            values = averageIndicator.prototype.getValues(series,\n            params),\n            yValues = values.yData,\n            start = xVal.indexOf(values.xData[0]);\n        // Check period, if bigger than points length, skip\n        if (!yValues || yValues.length === 0 ||\n            !DisparityIndexIndicator_defined(index) ||\n            yVal.length <= start) {\n            return;\n        }\n        // Get the Disparity Index indicator's values\n        for (var i = start; i < yValLen; i++) {\n            var disparityIndexValue = this.calculateDisparityIndex(isOHLC ? yVal[i][index] : yVal[i],\n                yValues[i - start]);\n            disparityIndexPoint.push([\n                xVal[i],\n                disparityIndexValue\n            ]);\n            xData.push(xVal[i]);\n            yData.push(disparityIndexValue);\n        }\n        return {\n            values: disparityIndexPoint,\n            xData: xData,\n            yData: yData\n        };\n    };\n    /* *\n     *\n     *  Static Properties\n     *\n     * */\n    /**\n     * Disparity Index.\n     * This series requires the `linkedTo` option to be set and should\n     * be loaded after the `stock/indicators/indicators.js` file.\n     *\n     * @sample stock/indicators/disparity-index\n     *         Disparity Index indicator\n     *\n     * @extends      plotOptions.sma\n     * @since 9.1.0\n     * @product      highstock\n     * @excluding    allAreas, colorAxis, joinBy, keys, navigatorOptions,\n     *               pointInterval, pointIntervalUnit, pointPlacement,\n     *               pointRange, pointStart, showInNavigator, stacking\n     * @requires     stock/indicators/indicators\n     * @requires     stock/indicators/disparity-index\n     * @optionparent plotOptions.disparityindex\n     */\n    DisparityIndexIndicator.defaultOptions = DisparityIndexIndicator_merge(DisparityIndexIndicator_SMAIndicator.defaultOptions, {\n        params: {\n            /**\n             * The average used to calculate the Disparity Index indicator.\n             * By default it uses SMA, with EMA as an option. To use other\n             * averages, e.g. TEMA, the `stock/indicators/tema.js` file needs to\n             * be loaded.\n             *\n             * If value is different than `ema`, `dema`, `tema` or `wma`,\n             * then sma is used.\n             */\n            average: 'sma',\n            index: 3\n        },\n        marker: {\n            enabled: false\n        },\n        dataGrouping: {\n            approximation: 'averages'\n        }\n    });\n    return DisparityIndexIndicator;\n}(DisparityIndexIndicator_SMAIndicator));\nDisparityIndexIndicator_extend(DisparityIndexIndicator.prototype, {\n    nameBase: 'Disparity Index',\n    nameComponents: ['period', 'average']\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('disparityindex', DisparityIndexIndicator);\n/* *\n *\n *  Default Export\n *\n * */\n/* harmony default export */ var DisparityIndex_DisparityIndexIndicator = ((/* unused pure expression or super */ null && (DisparityIndexIndicator)));\n/* *\n *\n *  API Options\n *\n * */\n/**\n * The Disparity Index indicator series.\n * If the [type](#series.disparityindex.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends   series,plotOptions.disparityindex\n * @since 9.1.0\n * @product   highstock\n * @excluding allAreas, colorAxis,  dataParser, dataURL, joinBy, keys,\n *            navigatorOptions, pointInterval, pointIntervalUnit,\n *            pointPlacement, pointRange, pointStart, showInNavigator, stacking\n * @requires  stock/indicators/indicators\n * @requires  stock/indicators/disparity-index\n * @apioption series.disparityindex\n */\n''; // To include the above in the js output\n\n;// ./code/es5/es-modules/masters/indicators/indicators-all.src.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\nG.MultipleLinesComposition =\n    G.MultipleLinesComposition || Indicators_MultipleLinesComposition;\n/* harmony default export */ var indicators_all_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__960__","__WEBPACK_EXTERNAL_MODULE__512__","__WEBPACK_EXTERNAL_MODULE__956__","__WEBPACK_EXTERNAL_MODULE__620__","extendStatics","MultipleLinesComposition","__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__","indicators_all_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_","highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default","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","__assign","assign","t","s","i","arguments","length","apply","__spreadArray","to","from","pack","ar","l","slice","concat","LineSeries","seriesTypes","line","addEvent","fireEvent","error","extend","isArray","merge","pick","tableToMultiYData","series","processed","yData","pointArrayMap","table","dataTable","modified","getColumn","columns","map","_loop_1","values","colIndex","_a","push","rowCount","SMAIndicator","_super","destroy","dataEventsToUnbind","forEach","unbinder","getName","params","name","nameComponents","component","index","options","nameSuffixes","nameBase","type","toUpperCase","join","getValues","SMAPoint","period","xVal","xData","yVal","yValLen","SMA","range","sum","init","chart","indicator","linkedSeriesUnbiner","isUpdating","hasEvents","linkedParent","linkedTo","recalculateValues","calculateOn","xAxis","closestPointRange","unbinder_1","order","eventsToUnbind","oldFirstPointIndex","oldLastPointIndex","min","max","_this","croppedDataValues","oldData","points","oldDataLength","overwriteData","processedYData","processedData","valueColumns","column","hasGroupedData","visible","cropped","croppedData","cropData","keys","_loop_2","indicatorXData","indexOf","x","shift","updateData","updateAllPoints","setColumns","data","isDirty","redraw","isDirtyData","linkedSeries","processData","compareToMain","dataModify","compareValue","defaultOptions","tooltip","valueDecimals","hasDerivedData","useCommonDataGrouping","registerSeriesType","EMAIndicator_extends","TypeError","String","EMAIndicator_SMAIndicator","sma","correctFloat","EMAIndicator_isArray","EMAIndicator_merge","EMAIndicator","accumulatePeriodPoints","calculateEma","EMApercent","calEMA","yValue","EMAPoint","EMA","ADIndicator_extends","ADIndicator_SMAIndicator","ADIndicator_error","ADIndicator_extend","ADIndicator_merge","ADIndicator","populateAverage","yValVolume","_period","high","low","close","volume","len","ADPoint","volumeSeriesID","volumeSeries","AD","AOIndicator_extends","noop","columnProto","AOIndicator_SMAIndicator","AOIndicator_extend","AOIndicator_merge","AOIndicator_correctFloat","AOIndicator_isArray","AOIndicator","drawGraph","userColor","userOptions","color","positiveColor","greaterBarColor","negativeColor","lowerBarColor","firstPoint","y","awesome","shortLastIndex","longLastIndex","price","j","AO","longSum","shortSum","longPeriod","shortSMA","threshold","groupPadding","pointPadding","crisp","states","hover","halo","size","markerAttribs","getColumnMetrics","crispCol","translate","drawPoints","smaProto","defined","MultipleLinesComposition_error","MultipleLinesComposition_merge","linesApiNames","areaLinesNames","getLineName","propertyName","charAt","getTranslatedLinesNames","excludedValue","translatedLines","indicatorDrawGraph","point","pointValKey","mainLinePoints","mainLineOptions","mainLinePath","graph","gappedExtend","gapSize","secondaryLines","secondaryLinesNames","pointsLength","plotLine","plotX","plotY","isNull","fillColor","secondLinePoints","firstLinePoints","originalColor","nextPoints","area","fillGraph","lineName","styles","indicatorGetGraphPath","areaPath","path","higherAreaPath","getGraphPath","indicatorToYData","pointColl","indicatorTranslate","value","LinesNames","modifyValue","yAxis","toPixels","compose","IndicatorClass","proto","toYData","Indicators_MultipleLinesComposition","AroonIndicator_extends","AroonIndicator_SMAIndicator","AroonIndicator_extend","AroonIndicator_merge","AroonIndicator_pick","getExtremeIndexInArray","arr","extreme","extremeValue","valueIndex","AroonIndicator","aroonUp","aroonDown","xLow","slicedY","AR","elem","marker","enabled","pointFormat","lineWidth","lineColor","dataGrouping","approximation","AroonOscillatorIndicator_extends","AroonOscillatorIndicator_AroonIndicator","aroon","AroonOscillatorIndicator_extend","AroonOscillatorIndicator_merge","AroonOscillatorIndicator","oscillator","ARO","ATRIndicator_extends","ATRIndicator_SMAIndicator","ATRIndicator_isArray","ATRIndicator_merge","getTR","currentPoint","prevPoint","Math","pointY","abs","prevY","ATRIndicator","prevATR","ATR","TR","accumulateAverage","xValue","BBIndicator_extends","BBIndicator_SMAIndicator","BBIndicator_extend","BBIndicator_isArray","BBIndicator_merge","BBIndicator","topLine","bottomLine","ML","TL","BL","date","slicedX","stdDev","standardDeviation","BB","isOHLC","getStandardDeviation","mean","arrLen","variance","sqrt","CCIIndicator_extends","CCIIndicator_SMAIndicator","CCIIndicator_isArray","CCIIndicator_merge","CCIIndicator","CCIPoint","smaTP","TPtemp","meanDev","TP","CCI","periodTP","sumArray","array","reduce","prev","cur","meanDeviation","CMFIndicator_extends","CMFIndicator_SMAIndicator","CMFIndicator_merge","CMFIndicator","isValid","isSeriesOHLC","isLengthValid","serie","getMoneyFlow","seriesYData","volumeSeriesYData","moneyFlowVolume","moneyFlowXData","moneyFlowYData","nullIndex","sumVolume","sumMoneyFlowVolume","getMoneyFlowVolume","ohlc","getMoneyFlowMultiplier","h","c","DMIIndicator_extends","DMIIndicator_SMAIndicator","DMIIndicator_correctFloat","DMIIndicator_extend","DMIIndicator_isArray","DMIIndicator_merge","DMIIndicator","calculateDM","isPositiveDM","currentHigh","currentLow","previousHigh","previousLow","calculateDI","smoothedDM","tr","calculateDX","plusDI","minusDI","smoothValues","accumulatedValues","currentValue","DMI","prevSmoothedPlusDM","prevSmoothedMinusDM","prevSmoothedTR","smoothedPlusDM","smoothedMinusDM","smoothedTR","plusDM","minusDM","DX","plusDILine","minusDILine","parallelArrays","DPOIndicator_extends","DPOIndicator_SMAIndicator","DPOIndicator_extend","DPOIndicator_merge","DPOIndicator_correctFloat","DPOIndicator_pick","accumulatePoints","subtract","DPOIndicator","periodIndex","rangeIndex","offset","floor","DPO","ChaikinIndicator_extends","ChaikinIndicator_EMAIndicator","ema","ChaikinIndicator_correctFloat","ChaikinIndicator_extend","ChaikinIndicator_merge","ChaikinIndicator_error","ChaikinIndicator","periods","CHA","ADL","AD_ADIndicator","SPE","LPE","periodsOffset","CMOIndicator_extends","CMOIndicator_SMAIndicator","isNumber","CMOIndicator_merge","CMOIndicator","CMO","firstAddedSum","sumOfHigherValues","sumOfLowerValues","DEMAIndicator_extends","DEMAIndicator_EMAIndicator","DEMAIndicator_correctFloat","DEMAIndicator_isArray","DEMAIndicator_merge","DEMAIndicator","getEMA","prevEMA","EMAlevel2","prevEMAlevel2","DEMAPoint","EMAvalues","doubledPeriod","DEMA","xDataDema","yDataDema","TEMAIndicator_extends","TEMAIndicator_EMAIndicator","TEMAIndicator_correctFloat","TEMAIndicator_isArray","TEMAIndicator_merge","TEMAIndicator","getTemaPoint","tripledPeriod","EMAlevels","level1","level2","level3","temaPoint","tema","xDataTema","yDataTema","emaValues","emaLevel2Values","emaLevels","prevLevel3","TRIXIndicator_extends","TRIXIndicator_TEMAIndicator","TRIXIndicator_correctFloat","TRIXIndicator_merge","TRIXIndicator","APOIndicator_extends","APOIndicator_EMAIndicator","APOIndicator_extend","APOIndicator_merge","APOIndicator_error","APOIndicator","APO","highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_","highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_default","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default","IKHIndicator_extends","parse","IKHIndicator_SMAIndicator","IKHIndicator_defined","IKHIndicator_extend","IKHIndicator_isArray","IKHIndicator_isNumber","getClosestDistance","IKHIndicator_merge","objectEach","highlowLevel","res","Infinity","drawSenkouSpan","opt","senkouSpan","gap","IKHIndicator","graphCollection","tenkanLine","kijunLine","chikouLine","senkouSpanA","fill","setOpacity","senkouSpanB","tenkanSen","kijunSen","chikouSpan","_i","_b","_c","pointValue","tooltipPos","position","startIntersect","endIntersect","sectionPoints","sectionNextPoints","pointsPlotYSum","nextPointsPlotYSum","senkouSpanTempColor","concatArrIndex","k","mainColor","pointArrayMapLength","allIchimokuPoints","ikhMap","intersectIndexColl","senkouSpanOptions","lineIndex","intersect","checkLineIntersection","a1","a2","b1","b2","saX","saY","sbX","sbY","sabX","sabY","u","intersectPointObj","intersectPoint","splice","graphName","unshift","areaName","graphsenkouSpan","spanA","spanAarr","pointTS","pointKS","pointSSB","TS","KS","CS","SSA","SSB","periodTenkan","periodSenkouSpanB","IKH","dateStart","isEmptyRange","ret","average","KeltnerChannelsIndicator_extends","KeltnerChannelsIndicator_SMAIndicator","KeltnerChannelsIndicator_correctFloat","KeltnerChannelsIndicator_extend","KeltnerChannelsIndicator_merge","KeltnerChannelsIndicator","pointEMA","pointATR","periodATR","multiplierATR","KC","seriesEMA","seriesATR","atr","KlingerIndicator_extends","KlingerIndicator_a","KlingerIndicator_EMAIndicator","KlingerIndicator_SMAIndicator","KlingerIndicator_correctFloat","KlingerIndicator_error","KlingerIndicator_extend","KlingerIndicator_isArray","KlingerIndicator_merge","KlingerIndicator","calculateTrend","isUpward","isValidData","firstYVal","every","slowAvgPeriod","getCM","previousCM","DM","trend","previousTrend","prevoiusDM","getDM","getVolumeForce","volumeForce","CM","previousDM","getSMA","KO","slowEMA","Klinger","calcSingal","fastEMA","previousFastEMA","previousSlowEMA","signal","SMAFast","fastAvgPeriod","SMASlow","fastEMApercent","slowEMApercent","signalPeriod","curr","signalLine","MACDIndicator_extends","MACDIndicator_noop","MACDIndicator_a","MACDIndicator_SMAIndicator","MACDIndicator_extend","MACDIndicator_correctFloat","MACDIndicator_defined","MACDIndicator_merge","MACDIndicator","colorIndex","getCyclic","colors","macdLine","macdZones","zones","startIndex","signalZones","MACD","plotNames","graphmacd","graphsignal","histogramZones","otherSignals","plotMACD","plotSignal","applyZones","hide","shortEMA","longEMA","indexToShift","shortPeriod","xMACD","yMACD","minPointLength","MFIIndicator_extends","MFIIndicator_SMAIndicator","MFIIndicator_extend","MFIIndicator_merge","MFIIndicator_error","MFIIndicator_isArray","MFIIndicator_sumArray","calculateTypicalPrice","MFIIndicator","newTypicalPrice","oldTypicalPrice","rawMoneyFlow","negativeMoneyFlowSum","MFIPoint","decimals","MFI","positiveMoneyFlow","negativeMoneyFlow","isUp","typicalPrice","parseFloat","positiveMoneyFlowSum","toFixed","MomentumIndicator_extends","MomentumIndicator_SMAIndicator","MomentumIndicator_extend","MomentumIndicator_isArray","MomentumIndicator_merge","MomentumIndicator_populateAverage","mmY","MomentumIndicator","MMPoint","MM","NATRIndicator_extends","NATRIndicator_ATRIndicator","NATRIndicator_merge","NATRIndicator","atrData","atrLength","valueSuffix","OBVIndicator_extends","OBVIndicator_SMAIndicator","OBVIndicator_isNumber","OBVIndicator_error","OBVIndicator_extend","OBVIndicator_merge","OBVIndicator","OBV","hasOHLC","OBVPoint","previousOBV","curentOBV","previousClose","curentClose","PivotPointsPoint_extends","destroyExtraLabels","functionName","props","pointClass","element","PivotPointsPoint","destroyElements","PivotPointsIndicator_extends","PivotPointsIndicator_SMAIndicator","PivotPointsIndicator_merge","PivotPointsIndicator_extend","PivotPointsIndicator_defined","PivotPointsIndicator_isArray","PivotPointsIndicator","P","plotEndPoint","endPoint","allPivotPoints","pivotPoints","drawDataLabels","currentLabel","pointMapping","dataLabels","pivotLine","dataLabel","endTimestamp","slicedXLen","lastPP","avg","placement","algorithm","PP","getPivotAndHLC","standardPlacement","diff","camarillaPlacement","fibonacciPlacement","enableMouseTracking","format","PPOIndicator_extends","PPOIndicator_EMAIndicator","PPOIndicator_correctFloat","PPOIndicator_extend","PPOIndicator_merge","PPOIndicator_error","PPOIndicator","PPO","Indicators_ArrayUtilities","getArrayExtremes","minIndex","maxIndex","target","Number","MAX_VALUE","PCIndicator_extends","PCIndicator_SMAIndicator","PCIndicator_merge","PCIndicator_extend","PCIndicator","extremes","PC","PriceEnvelopesIndicator_extends","PriceEnvelopesIndicator_SMAIndicator","PriceEnvelopesIndicator_extend","PriceEnvelopesIndicator_isArray","PriceEnvelopesIndicator_merge","PriceEnvelopesIndicator","topPercent","topBand","botPercent","bottomBand","PE","PSARIndicator_extends","PSARIndicator_SMAIndicator","PSARIndicator_merge","PSARIndicator_toFixed","PSARIndicator","pdir","sDir","PSAR","pACCMulti","pEP","dir","pDir","pAcc","previousDirection","previousExtremePoint","direction","EPMinusPSAR","accelerationFactorMultiply","newDirection","prevLow","prevPrevLow","prevHigh","prevPrevHigh","newExtremePoint","ind","maxAccelerationFactor","increment","initialAccelerationFactor","PSARArr","accelerationFactor","extremePoint","EP","eP","lineWidthPlus","ROCIndicator_extends","ROCIndicator_SMAIndicator","ROCIndicator_isArray","ROCIndicator_merge","ROCIndicator_extend","ROCIndicator","ROCPoint","ROC","ROCIndicator_populateAverage","nDaysAgoY","rocY","RSIIndicator_extends","RSIIndicator_SMAIndicator","RSIIndicator_isNumber","RSIIndicator_merge","RSIIndicator_toFixed","RSIIndicator","RSIPoint","change","avgGain","avgLoss","RSI","gain","loss","StochasticIndicator_extends","StochasticIndicator_SMAIndicator","StochasticIndicator_extend","StochasticIndicator_isArray","StochasticIndicator_merge","StochasticIndicator","smoothedLine","LL","K","periodK","periodD","SO","D","constantValues","isNaN","CL","length_1","SlowStochasticIndicator_extends","SlowStochasticIndicator_a","SlowStochasticIndicator_SMAIndicator","SlowStochasticIndicator_StochasticIndicator","stochastic","SlowStochasticIndicator_extend","SlowStochasticIndicator_merge","SlowStochasticIndicator","fastValues","slowValues","fastYData","smoothedValues","xDataLen","SupertrendIndicator_extends","SupertrendIndicator_a","SupertrendIndicator_ATRIndicator","SupertrendIndicator_SMAIndicator","SupertrendIndicator_addEvent","SupertrendIndicator_correctFloat","SupertrendIndicator_isArray","SupertrendIndicator_isNumber","SupertrendIndicator_extend","SupertrendIndicator_merge","SupertrendIndicator_objectEach","createPointObj","mainSeries","SupertrendIndicator","parentOptions","cropThreshold","nextPoint","mainPoint","nextMainPoint","prevMainPoint","prevPrevMainPoint","pointColor","newPoint","newNextPoint","indicOptions","mainXData","indicPoints","indicPath","tempOffset","groupedPoints","top","bottom","supertrendLineOptions","fallingTrendColor","dashStyle","risingTrendColor","changeTrendLine","indicPointsLen","basicUp","basicDown","supertrend","prevFinalUp","prevFinalDown","prevST","multiplier","st","finalUp","finalDown","VBPPoint_extends","VBPPoint","negativeGraphic","VBPIndicator_extends","animObject","VBPIndicator_noop","VBPIndicator_a","VBPIndicator_columnProto","VBPIndicator_SMAIndicator","VBPIndicator_addEvent","arrayMax","arrayMin","VBPIndicator_correctFloat","VBPIndicator_defined","VBPIndicator_error","VBPIndicator_extend","VBPIndicator_isArray","VBPIndicator_merge","VBPIndicator","baseSeries","addCustomEvents","toEmptyIndicator","setData","zoneStarts","zoneLinesSVG","animate","inverted","group","attr","left","translateY","translateX","animation","step","val","fx","scaleX","pos","volumeDivision","posNegVolume","initVol","pointWidth","priceZone","wholeVol","signOrder","pointLength","posWidths","negWidths","graphic","shapeArgs","width","priceZones","wholeVolumeData","positiveVolumeData","negativeVolumeData","maxVolume","primalBarWidth","barHeight","barHeightP","oldBarHeight","barWidth","chartPlotTop","barX","barY","yAxisMin","zoneLinesOptions","zoneLines","yBarOffset","indicatorPoints","volumeDataArray","plotWidth","plotTop","rangeStep","start","reversed","volumeNeg","volumePos","volumeAll","drawZones","getExtremes","prevCompare","compare","prevCumulative","cumulative","xValues","yValues","ranges","VBP","errorMessage","specifyZones","zone","end","rangeExtremes","arrayExtremesOHLC","dataLength","lowRange","highRange","zoneStartsLength","volumePerZone","previousValue","startFlag","endFlag","volumeXData","volumeYData","lastZoneIndex","baseSeriesLength","volumeSeriesLength","zonesValues","zonesStyles","verticalLinePos","renderer","rightLinePos","verticalOffset","zoneLinesPath","crispLine","zIndex","add","animationLimit","align","allowOverlap","padding","style","fontSize","verticalAlign","VWAPIndicator_extends","VWAPIndicator_SMAIndicator","VWAPIndicator_error","VWAPIndicator_isArray","VWAPIndicator_merge","VWAPIndicator","calculateVWAPValues","commonLength","cPrice","cVolume","volumeValues","volumeLength","cumulativePrice","cumulativeVolume","VWAP","WilliamsRIndicator_extends","WilliamsRIndicator_SMAIndicator","WilliamsRIndicator_extend","WilliamsRIndicator_isArray","WilliamsRIndicator_merge","WilliamsRIndicator","R","HH","WR","WMAIndicator_extends","WMAIndicator_SMAIndicator","WMAIndicator_isArray","WMAIndicator_merge","WMAIndicator_accumulateAverage","WMAIndicator_populateAverage","pLen","wmaY","wmaX","WMAIndicator","wmaPoint","wma","ZigzagIndicator_extends","ZigzagIndicator_SMAIndicator","ZigzagIndicator_merge","ZigzagIndicator_extend","ZigzagIndicator","zigzagPoint","directionUp","lowIndex","highIndex","deviation","deviations","zigzag","exitLoop","yIndex","firstZigzagLow","firstZigzagHigh","zigzagLen","LinearRegressionIndicator_extends","LinearRegressionIndicator_SMAIndicator","LinearRegressionIndicator_isArray","LinearRegressionIndicator_extend","LinearRegressionIndicator_merge","LinearRegressionIndicator","getRegressionLineParameters","xError","getSingleYValue","xSum","accX","ySum","accY","xMean","yMean","formulaNumerator","formulaDenominator","pow","slope","intercept","getEndPointY","lineParameters","endPointX","transformXData","xAxisUnit","xOffset","findClosestDistance","distance","closestDistance","regressionSeriesParams","periodStart","periodEnd","endPointY","periodXData","periodYData","periodTransformedXData","indicatorData","regressionLineParameters","LinearRegressionSlopesIndicator_extends","LinearRegressionSlopesIndicator_LinearRegressionIndicator","linearRegression","LinearRegressionSlopesIndicator_extend","LinearRegressionSlopesIndicator_merge","LinearRegressionSlopesIndicator","LinearRegressionInterceptIndicator_extends","LinearRegressionInterceptIndicator_LinearRegressionIndicator","LinearRegressionInterceptIndicator_extend","LinearRegressionInterceptIndicator_merge","LinearRegressionInterceptIndicator","LinearRegressionAngleIndicator_extends","LinearRegressionAngleIndicator_LinearRegressionIndicator","LinearRegressionAngleIndicator_extend","LinearRegressionAngleIndicator_merge","LinearRegressionAngleIndicator","slopeToAngle","PI","atan","ABandsIndicator_extends","ABandsIndicator_SMAIndicator","ABandsIndicator_correctFloat","ABandsIndicator_extend","ABandsIndicator_merge","ABandsIndicator","bandBase","pointSMA","ubSMA","lbSMA","factor","UB","LB","ABANDS","TrendLineIndicator_extends","TrendLineIndicator_SMAIndicator","TrendLineIndicator_extend","TrendLineIndicator_merge","TrendLineIndicator_isArray","TrendLineIndicator","orgXVal","LR","numerator","denominator","xValSum","yValSum","counter","meanX","meanY","DisparityIndexIndicator_extends","DisparityIndexIndicator_SMAIndicator","DisparityIndexIndicator_correctFloat","DisparityIndexIndicator_defined","DisparityIndexIndicator_extend","DisparityIndexIndicator_isArray","DisparityIndexIndicator_merge","DisparityIndexIndicator","args","averageType","ctx","averageIndicator","calculateDisparityIndex","curPrice","periodAverage","disparityIndexPoint","disparityIndexValue","G"],"mappings":"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"}

Hacked By AnonymousFox1.0, Coded By AnonymousFox