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.js.map

{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highstock JS v12.1.2 (2025-01-09)\n * @module highcharts/indicators/indicators\n * @requires highcharts\n * @requires highcharts/modules/stock\n *\n * Indicator series type for Highcharts Stock\n *\n * (c) 2010-2024 Pawel Fus, Sebastian Bochan\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\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/indicators/indicators\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"Chart\"], [\"highcharts/highcharts\",\"SeriesRegistry\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/indicators/indicators\"] = factory(require(\"highcharts\"), require(\"highcharts\")[\"Chart\"], require(\"highcharts\")[\"SeriesRegistry\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"Chart\"], root[\"Highcharts\"][\"SeriesRegistry\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__960__, __WEBPACK_EXTERNAL_MODULE__512__) {\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/***/ 512:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__512__;\n\n/***/ }),\n\n/***/ 944:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__944__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"default\": function() { return /* binding */ indicators_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/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/masters/indicators/indicators.src.js\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_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__","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_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","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","userOptions","fillColor","secondLinePoints","firstLinePoints","originalColor","color","nextPoints","area","fillGraph","drawGraph","lineName","styles","indicatorGetGraphPath","areaPath","path","higherAreaPath","getGraphPath","indicatorToYData","pointColl","indicatorTranslate","value","LinesNames","translate","modifyValue","yAxis","toPixels","compose","IndicatorClass","proto","toYData","Indicators_MultipleLinesComposition","G"],"mappings":"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"}

Hacked By AnonymousFox1.0, Coded By AnonymousFox