Hacked By AnonymousFox
{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highcharts Stock JS v12.1.2 (2025-01-09)\n * @module highcharts/indicators/klinger\n * @requires highcharts\n * @requires highcharts/modules/stock\n *\n * Indicator series type for Highcharts Stock\n *\n * (c) 2010-2024 Karol Kolodziej\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/klinger\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"SeriesRegistry\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/indicators/klinger\"] = 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 */ klinger_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/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 __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 _a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, EMAIndicator = _a.ema, SMAIndicator = _a.sma;\n\nvar correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, KlingerIndicator_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, 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 __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 = 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 correctFloat(DM + (trend === previousTrend ? previousCM : prevoiusDM));\n };\n KlingerIndicator.prototype.getDM = function (high, low) {\n return 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 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 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 = 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(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}(SMAIndicator));\nextend(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/masters/indicators/klinger.src.js\n\n\n\n\n/* harmony default export */ var klinger_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__","klinger_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","_a","EMAIndicator","ema","SMAIndicator","correctFloat","KlingerIndicator_error","extend","isArray","KlingerIndicator_merge","KlingerIndicator","_super","calculateTrend","yVal","isUpward","isValidData","firstYVal","chart","series","linkedParent","isSeriesOHLC","volumeSeries","params","volumeSeriesID","isLengthValid","every","dataTable","rowCount","slowAvgPeriod","getCM","previousCM","DM","trend","previousTrend","prevoiusDM","getDM","high","low","getVolumeForce","volumeForce","CM","previousDM","getColumn","Math","abs","getEMA","prevEMA","SMA","EMApercent","xVal","calculateEma","getSMA","period","values","accumulatePeriodPoints","getValues","KO","slowEMA","Klinger","xData","yData","calcSingal","fastEMA","previousFastEMA","previousSlowEMA","signal","SMAFast","fastAvgPeriod","SMASlow","fastEMApercent","slowEMApercent","signalPeriod","reduce","prev","curr","defaultOptions","signalLine","lineWidth","lineColor","dataGrouping","approximation","tooltip","pointFormat","nameBase","nameComponents","parallelArrays","registerSeriesType"],"mappings":"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"}
Hacked By AnonymousFox1.0, Coded By AnonymousFox