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

{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highstock JS v12.1.2 (2025-01-09)\n * @module highcharts/indicators/dmi\n * @requires highcharts\n * @requires highcharts/modules/stock\n *\n * Indicator series type for Highcharts Stock\n *\n * (c) 2010-2024 Rafal Sebestjanski\n *\n * License: www.highcharts.com/license\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"highcharts\"), require(\"highcharts\")[\"SeriesRegistry\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/indicators/dmi\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"SeriesRegistry\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/indicators/dmi\"] = factory(require(\"highcharts\"), require(\"highcharts\")[\"SeriesRegistry\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"SeriesRegistry\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__512__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 512:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__512__;\n\n/***/ }),\n\n/***/ 944:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__944__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"default\": function() { return /* binding */ dmi_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\",\"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/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, error = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).error, 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 = 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 = merge(mainLineOptions[lineName].styles, gappedExtend);\n                }\n                else {\n                    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                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/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 __extends = (undefined && undefined.__extends) || (function () {\n    var extendStatics = function (d,\n        b) {\n            extendStatics = Object.setPrototypeOf ||\n                ({ __proto__: [] } instanceof Array && function (d,\n        b) { d.__proto__ = b; }) ||\n                function (d,\n        b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\n\n\nvar 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, extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, 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    __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 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 correctFloat(Math.abs(plusDI - minusDI) / Math.abs(plusDI + minusDI) * 100);\n    };\n    DMIIndicator.prototype.smoothValues = function (accumulatedValues, currentValue, period) {\n        return correctFloat(accumulatedValues - accumulatedValues / period + currentValue);\n    };\n    DMIIndicator.prototype.getTR = function (currentPoint, prevPoint) {\n        return 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            !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(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}(SMAIndicator));\nextend(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/masters/indicators/dmi.src.js\n\n\n\n\n/* harmony default export */ var dmi_src = ((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()));\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"],"names":["root","factory","exports","module","require","define","amd","__WEBPACK_EXTERNAL_MODULE__944__","__WEBPACK_EXTERNAL_MODULE__512__","extendStatics","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__","dmi_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default","smaProto","seriesTypes","sma","defined","error","merge","linesApiNames","pointArrayMap","areaLinesNames","getLineName","propertyName","charAt","toUpperCase","slice","getTranslatedLinesNames","indicator","excludedValue","translatedLines","forEach","push","indicatorDrawGraph","point","pointValKey","mainLinePoints","points","mainLineOptions","options","mainLinePath","graph","gappedExtend","gapSize","secondaryLines","secondaryLinesNames","pointsLength","length","plotLine","index","x","plotX","plotY","isNull","userOptions","fillColor","secondLinePoints","indexOf","firstLinePoints","originalColor","color","nextPoints","area","fillGraph","drawGraph","lineName","i","styles","indicatorGetGraphPath","areaPath","path","higherAreaPath","getGraphPath","apply","arguments","indicatorToYData","pointColl","indicatorTranslate","value","_this","LinesNames","translate","dataModify","modifyValue","yAxis","toPixels","compose","IndicatorClass","proto","toYData","Indicators_MultipleLinesComposition","__extends","b","setPrototypeOf","__proto__","Array","p","__","constructor","create","SMAIndicator","correctFloat","extend","isArray","DMIIndicator_merge","DMIIndicator","_super","calculateDM","yVal","isPositiveDM","currentHigh","currentLow","previousHigh","previousLow","Math","max","calculateDI","smoothedDM","tr","calculateDX","plusDI","minusDI","abs","smoothValues","accumulatedValues","currentValue","period","getTR","currentPoint","prevPoint","getValues","series","params","xVal","xData","yData","yValLen","DMI","prevSmoothedPlusDM","prevSmoothedMinusDM","prevSmoothedTR","smoothedPlusDM","smoothedMinusDM","smoothedTR","plusDM","minusDM","TR","DX","values","defaultOptions","marker","enabled","tooltip","pointFormat","plusDILine","lineWidth","lineColor","minusDILine","dataGrouping","approximation","nameBase","parallelArrays","registerSeriesType"],"mappings":"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"}

Hacked By AnonymousFox1.0, Coded By AnonymousFox