Hacked By AnonymousFox
{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highstock JS v12.1.2 (2025-01-09)\n * @module highcharts/indicators/ichimoku-kinko-hyo\n * @requires highcharts\n * @requires highcharts/modules/stock\n *\n * Indicator series type for Highcharts Stock\n *\n * (c) 2010-2024 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\")[\"dataGrouping\"][\"approximations\"], require(\"highcharts\")[\"Color\"], require(\"highcharts\")[\"SeriesRegistry\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/indicators/ichimoku-kinko-hyo\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"dataGrouping\",\"approximations\"], [\"highcharts/highcharts\",\"Color\"], [\"highcharts/highcharts\",\"SeriesRegistry\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/indicators/ichimoku-kinko-hyo\"] = factory(require(\"highcharts\"), require(\"highcharts\")[\"dataGrouping\"][\"approximations\"], require(\"highcharts\")[\"Color\"], require(\"highcharts\")[\"SeriesRegistry\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"dataGrouping\"][\"approximations\"], root[\"Highcharts\"][\"Color\"], root[\"Highcharts\"][\"SeriesRegistry\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__956__, __WEBPACK_EXTERNAL_MODULE__620__, __WEBPACK_EXTERNAL_MODULE__512__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 620:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__620__;\n\n/***/ }),\n\n/***/ 512:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__512__;\n\n/***/ }),\n\n/***/ 956:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__956__;\n\n/***/ }),\n\n/***/ 944:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__944__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ ichimoku_kinko_hyo_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\",\"dataGrouping\",\"approximations\"],\"commonjs\":[\"highcharts\",\"dataGrouping\",\"approximations\"],\"commonjs2\":[\"highcharts\",\"dataGrouping\",\"approximations\"],\"root\":[\"Highcharts\",\"dataGrouping\",\"approximations\"]}\nvar highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_ = __webpack_require__(956);\nvar highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_default = /*#__PURE__*/__webpack_require__.n(highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_);\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Color\"],\"commonjs\":[\"highcharts\",\"Color\"],\"commonjs2\":[\"highcharts\",\"Color\"],\"root\":[\"Highcharts\",\"Color\"]}\nvar highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_ = __webpack_require__(620);\nvar highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default = /*#__PURE__*/__webpack_require__.n(highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_);\n// 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/IKH/IKHIndicator.js\n/* *\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar __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 color = (highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default()).parse;\n\nvar SMAIndicator = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.sma;\n\nvar defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, getClosestDistance = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).getClosestDistance, merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, objectEach = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).objectEach;\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction maxHigh(arr) {\n return arr.reduce(function (max, res) {\n return Math.max(max, res[1]);\n }, -Infinity);\n}\n/**\n * @private\n */\nfunction minLow(arr) {\n return arr.reduce(function (min, res) {\n return Math.min(min, res[2]);\n }, Infinity);\n}\n/**\n * @private\n */\nfunction highlowLevel(arr) {\n return {\n high: maxHigh(arr),\n low: minLow(arr)\n };\n}\n/**\n * Check two lines intersection (line a1-a2 and b1-b2)\n * Source: https://en.wikipedia.org/wiki/Line%E2%80%93line_intersection\n * @private\n */\nfunction checkLineIntersection(a1, a2, b1, b2) {\n if (a1 && a2 && b1 && b2) {\n var saX = a2.plotX - a1.plotX, // Auxiliary section a2-a1 X\n saY = a2.plotY - a1.plotY, // Auxiliary section a2-a1 Y\n sbX = b2.plotX - b1.plotX, // Auxiliary section b2-b1 X\n sbY = b2.plotY - b1.plotY, // Auxiliary section b2-b1 Y\n sabX = a1.plotX - b1.plotX, // Auxiliary section a1-b1 X\n sabY = a1.plotY - b1.plotY, // Auxiliary section a1-b1 Y\n // First degree Bézier parameters\n u = (-saY * sabX + saX * sabY) / (-sbX * saY + saX * sbY), t = (sbX * sabY - sbY * sabX) / (-sbX * saY + saX * sbY);\n if (u >= 0 && u <= 1 && t >= 0 && t <= 1) {\n return {\n plotX: a1.plotX + t * saX,\n plotY: a1.plotY + t * saY\n };\n }\n }\n}\n/**\n * Parameter opt (indicator options object) include indicator, points,\n * nextPoints, color, options, gappedExtend and graph properties\n * @private\n */\nfunction drawSenkouSpan(opt) {\n var indicator = opt.indicator;\n indicator.points = opt.points;\n indicator.nextPoints = opt.nextPoints;\n indicator.color = opt.color;\n indicator.options = merge(opt.options.senkouSpan.styles, opt.gap);\n indicator.graph = opt.graph;\n indicator.fillGraph = true;\n highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.drawGraph.call(indicator);\n}\n/**\n * Data integrity in Ichimoku is different than default 'averages':\n * Point: [undefined, value, value, ...] is correct\n * Point: [undefined, undefined, undefined, ...] is incorrect\n * @private\n */\nfunction ichimokuAverages() {\n var ret = [];\n var isEmptyRange;\n [].forEach.call(arguments, function (arr, i) {\n ret.push(highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_default().average(arr));\n isEmptyRange = !isEmptyRange && typeof ret[i] === 'undefined';\n });\n // Return undefined when first elem. is undefined and let\n // sum method handle null (#7377)\n return isEmptyRange ? void 0 : ret;\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * The IKH series type.\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.ikh\n *\n * @augments Highcharts.Series\n */\nvar IKHIndicator = /** @class */ (function (_super) {\n __extends(IKHIndicator, _super);\n function IKHIndicator() {\n /* *\n *\n * Static Properties\n *\n * */\n var _this = _super !== null && _super.apply(this,\n arguments) || this;\n /* *\n *\n * Properties\n *\n * */\n _this.data = [];\n _this.options = {};\n _this.points = [];\n _this.graphCollection = [];\n return _this;\n }\n /* *\n *\n * Functions\n *\n * */\n IKHIndicator.prototype.init = function () {\n _super.prototype.init.apply(this, arguments);\n // Set default color for lines:\n this.options = merge({\n tenkanLine: {\n styles: {\n lineColor: this.color\n }\n },\n kijunLine: {\n styles: {\n lineColor: this.color\n }\n },\n chikouLine: {\n styles: {\n lineColor: this.color\n }\n },\n senkouSpanA: {\n styles: {\n lineColor: this.color,\n fill: color(this.color).setOpacity(0.5).get()\n }\n },\n senkouSpanB: {\n styles: {\n lineColor: this.color,\n fill: color(this.color).setOpacity(0.5).get()\n }\n },\n senkouSpan: {\n styles: {\n fill: color(this.color).setOpacity(0.2).get()\n }\n }\n }, this.options);\n };\n IKHIndicator.prototype.toYData = function (point) {\n return [\n point.tenkanSen,\n point.kijunSen,\n point.chikouSpan,\n point.senkouSpanA,\n point.senkouSpanB\n ];\n };\n IKHIndicator.prototype.translate = function () {\n var indicator = this;\n highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.translate.apply(indicator);\n for (var _i = 0, _a = indicator.points; _i < _a.length; _i++) {\n var point = _a[_i];\n for (var _b = 0, _c = indicator.pointArrayMap; _b < _c.length; _b++) {\n var key = _c[_b];\n var pointValue = point[key];\n if (isNumber(pointValue)) {\n point['plot' + key] = indicator.yAxis.toPixels(pointValue, true);\n // Add extra parameters for support tooltip in moved\n // lines\n point.plotY = point['plot' + key];\n point.tooltipPos = [\n point.plotX,\n point['plot' + key]\n ];\n point.isNull = false;\n }\n }\n }\n };\n IKHIndicator.prototype.drawGraph = function () {\n var indicator = this,\n mainLinePoints = indicator.points,\n mainLineOptions = indicator.options,\n mainLinePath = indicator.graph,\n mainColor = indicator.color,\n gappedExtend = {\n options: {\n gapSize: mainLineOptions.gapSize\n }\n },\n pointArrayMapLength = indicator.pointArrayMap.length,\n allIchimokuPoints = [\n [],\n [],\n [],\n [],\n [],\n []\n ],\n ikhMap = {\n tenkanLine: allIchimokuPoints[0],\n kijunLine: allIchimokuPoints[1],\n chikouLine: allIchimokuPoints[2],\n senkouSpanA: allIchimokuPoints[3],\n senkouSpanB: allIchimokuPoints[4],\n senkouSpan: allIchimokuPoints[5]\n },\n intersectIndexColl = [],\n senkouSpanOptions = indicator\n .options.senkouSpan,\n color = senkouSpanOptions.color ||\n senkouSpanOptions.styles.fill,\n negativeColor = senkouSpanOptions.negativeColor, \n // Points to create color and negativeColor senkouSpan\n points = [\n [], // Points color\n [] // Points negative color\n ], \n // For span, we need an access to the next points, used in\n // getGraphPath()\n nextPoints = [\n [], // Next points color\n [] // Next points negative color\n ];\n var pointsLength = mainLinePoints.length,\n lineIndex = 0,\n position,\n point,\n i,\n startIntersect,\n endIntersect,\n sectionPoints,\n sectionNextPoints,\n pointsPlotYSum,\n nextPointsPlotYSum,\n senkouSpanTempColor,\n concatArrIndex,\n j,\n k;\n indicator.ikhMap = ikhMap;\n // Generate points for all lines and spans lines:\n while (pointsLength--) {\n point = mainLinePoints[pointsLength];\n for (i = 0; i < pointArrayMapLength; i++) {\n position = indicator.pointArrayMap[i];\n if (defined(point[position])) {\n allIchimokuPoints[i].push({\n plotX: point.plotX,\n plotY: point['plot' + position],\n isNull: false\n });\n }\n }\n if (negativeColor && pointsLength !== mainLinePoints.length - 1) {\n // Check if lines intersect\n var index = ikhMap.senkouSpanB.length - 1,\n intersect = checkLineIntersection(ikhMap.senkouSpanA[index - 1],\n ikhMap.senkouSpanA[index],\n ikhMap.senkouSpanB[index - 1],\n ikhMap.senkouSpanB[index]);\n if (intersect) {\n var intersectPointObj = {\n plotX: intersect.plotX,\n plotY: intersect.plotY,\n isNull: false,\n intersectPoint: true\n };\n // Add intersect point to ichimoku points collection\n // Create senkouSpan sections\n ikhMap.senkouSpanA.splice(index, 0, intersectPointObj);\n ikhMap.senkouSpanB.splice(index, 0, intersectPointObj);\n intersectIndexColl.push(index);\n }\n }\n }\n // Modify options and generate lines:\n objectEach(ikhMap, function (values, lineName) {\n if (mainLineOptions[lineName] &&\n lineName !== 'senkouSpan') {\n // First line is rendered by default option\n indicator.points = allIchimokuPoints[lineIndex];\n indicator.options = merge(mainLineOptions[lineName].styles, gappedExtend);\n indicator.graph = indicator['graph' + lineName];\n indicator.fillGraph = false;\n indicator.color = mainColor;\n highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.drawGraph.call(indicator);\n // Now save line\n indicator['graph' + lineName] = indicator.graph;\n }\n lineIndex++;\n });\n // Generate senkouSpan area:\n // If graphCollection exist then remove svg\n // element and indicator property\n if (indicator.graphCollection) {\n for (var _i = 0, _a = indicator.graphCollection; _i < _a.length; _i++) {\n var graphName = _a[_i];\n indicator[graphName].destroy();\n delete indicator[graphName];\n }\n }\n // Clean graphCollection or initialize it\n indicator.graphCollection = [];\n // When user set negativeColor property\n if (negativeColor && ikhMap.senkouSpanA[0] && ikhMap.senkouSpanB[0]) {\n // Add first and last point to senkouSpan area sections\n intersectIndexColl.unshift(0);\n intersectIndexColl.push(ikhMap.senkouSpanA.length - 1);\n // Populate points and nextPoints arrays\n for (j = 0; j < intersectIndexColl.length - 1; j++) {\n startIntersect = intersectIndexColl[j];\n endIntersect = intersectIndexColl[j + 1];\n sectionPoints = ikhMap.senkouSpanB.slice(startIntersect, endIntersect + 1);\n sectionNextPoints = ikhMap.senkouSpanA.slice(startIntersect, endIntersect + 1);\n // Add points to color or negativeColor arrays\n // Check the middle point (if exist)\n if (Math.floor(sectionPoints.length / 2) >= 1) {\n var x = Math.floor(sectionPoints.length / 2);\n // When middle points has equal values\n // Compare all points plotY value sum\n if (sectionPoints[x].plotY === sectionNextPoints[x].plotY) {\n pointsPlotYSum = 0;\n nextPointsPlotYSum = 0;\n for (k = 0; k < sectionPoints.length; k++) {\n pointsPlotYSum += sectionPoints[k].plotY;\n nextPointsPlotYSum += sectionNextPoints[k].plotY;\n }\n concatArrIndex =\n pointsPlotYSum > nextPointsPlotYSum ? 0 : 1;\n points[concatArrIndex] = points[concatArrIndex].concat(sectionPoints);\n nextPoints[concatArrIndex] = nextPoints[concatArrIndex].concat(sectionNextPoints);\n }\n else {\n // Compare middle point of the section\n concatArrIndex = (sectionPoints[x].plotY > sectionNextPoints[x].plotY) ? 0 : 1;\n points[concatArrIndex] = points[concatArrIndex].concat(sectionPoints);\n nextPoints[concatArrIndex] = nextPoints[concatArrIndex].concat(sectionNextPoints);\n }\n }\n else {\n // Compare first point of the section\n concatArrIndex = (sectionPoints[0].plotY > sectionNextPoints[0].plotY) ? 0 : 1;\n points[concatArrIndex] = points[concatArrIndex].concat(sectionPoints);\n nextPoints[concatArrIndex] = nextPoints[concatArrIndex].concat(sectionNextPoints);\n }\n }\n // Render color and negativeColor paths\n ['graphsenkouSpanColor', 'graphsenkouSpanNegativeColor'].forEach(function (areaName, i) {\n if (points[i].length && nextPoints[i].length) {\n senkouSpanTempColor = i === 0 ? color : negativeColor;\n drawSenkouSpan({\n indicator: indicator,\n points: points[i],\n nextPoints: nextPoints[i],\n color: senkouSpanTempColor,\n options: mainLineOptions,\n gap: gappedExtend,\n graph: indicator[areaName]\n });\n // Now save line\n indicator[areaName] = indicator.graph;\n indicator.graphCollection.push(areaName);\n }\n });\n }\n else {\n // When user set only senkouSpan style.fill property\n drawSenkouSpan({\n indicator: indicator,\n points: ikhMap.senkouSpanB,\n nextPoints: ikhMap.senkouSpanA,\n color: color,\n options: mainLineOptions,\n gap: gappedExtend,\n graph: indicator.graphsenkouSpan\n });\n // Now save line\n indicator.graphsenkouSpan = indicator.graph;\n }\n // Clean temporary properties:\n delete indicator.nextPoints;\n delete indicator.fillGraph;\n // Restore options and draw the Tenkan line:\n indicator.points = mainLinePoints;\n indicator.options = mainLineOptions;\n indicator.graph = mainLinePath;\n indicator.color = mainColor;\n };\n IKHIndicator.prototype.getGraphPath = function (points) {\n var indicator = this;\n var path = [],\n spanA,\n spanAarr = [];\n points = points || this.points;\n // Render Senkou Span\n if (indicator.fillGraph && indicator.nextPoints) {\n spanA = highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.getGraphPath.call(indicator, \n // Reverse points, so Senkou Span A will start from the end:\n indicator.nextPoints);\n if (spanA && spanA.length) {\n spanA[0][0] = 'L';\n path = highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.getGraphPath\n .call(indicator, points);\n spanAarr = spanA.slice(0, path.length);\n for (var i = spanAarr.length - 1; i >= 0; i--) {\n path.push(spanAarr[i]);\n }\n }\n }\n else {\n path = highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().seriesTypes.sma.prototype.getGraphPath\n .apply(indicator, arguments);\n }\n return path;\n };\n IKHIndicator.prototype.getValues = function (series, params) {\n var period = params.period,\n periodTenkan = params.periodTenkan,\n periodSenkouSpanB = params.periodSenkouSpanB,\n xVal = series.xData,\n yVal = series.yData,\n xAxis = series.xAxis,\n yValLen = (yVal && yVal.length) || 0,\n closestPointRange = getClosestDistance(xAxis.series.map(function (s) { return s.getColumn('x'); })),\n IKH = [],\n xData = [];\n var date,\n slicedTSY,\n slicedKSY,\n slicedSSBY,\n pointTS,\n pointKS,\n pointSSB,\n i,\n TS,\n KS,\n CS,\n SSA,\n SSB;\n // Ikh requires close value\n if (xVal.length <= period ||\n !isArray(yVal[0]) ||\n yVal[0].length !== 4) {\n return;\n }\n // Add timestamps at the beginning\n var dateStart = xVal[0] - period * closestPointRange;\n for (i = 0; i < period; i++) {\n xData.push(dateStart + i * closestPointRange);\n }\n for (i = 0; i < yValLen; i++) {\n // Tenkan Sen\n if (i >= periodTenkan) {\n slicedTSY = yVal.slice(i - periodTenkan, i);\n pointTS = highlowLevel(slicedTSY);\n TS = (pointTS.high + pointTS.low) / 2;\n }\n if (i >= period) {\n slicedKSY = yVal.slice(i - period, i);\n pointKS = highlowLevel(slicedKSY);\n KS = (pointKS.high + pointKS.low) / 2;\n SSA = (TS + KS) / 2;\n }\n if (i >= periodSenkouSpanB) {\n slicedSSBY = yVal.slice(i - periodSenkouSpanB, i);\n pointSSB = highlowLevel(slicedSSBY);\n SSB = (pointSSB.high + pointSSB.low) / 2;\n }\n CS = yVal[i][3];\n date = xVal[i];\n if (typeof IKH[i] === 'undefined') {\n IKH[i] = [];\n }\n if (typeof IKH[i + period - 1] === 'undefined') {\n IKH[i + period - 1] = [];\n }\n IKH[i + period - 1][0] = TS;\n IKH[i + period - 1][1] = KS;\n IKH[i + period - 1][2] = void 0;\n if (typeof IKH[i + 1] === 'undefined') {\n IKH[i + 1] = [];\n }\n IKH[i + 1][2] = CS;\n if (i <= period) {\n IKH[i + period - 1][3] = void 0;\n IKH[i + period - 1][4] = void 0;\n }\n if (typeof IKH[i + 2 * period - 2] === 'undefined') {\n IKH[i + 2 * period - 2] = [];\n }\n IKH[i + 2 * period - 2][3] = SSA;\n IKH[i + 2 * period - 2][4] = SSB;\n xData.push(date);\n }\n // Add timestamps for further points\n for (i = 1; i <= period; i++) {\n xData.push(date + i * closestPointRange);\n }\n return {\n values: IKH,\n xData: xData,\n yData: IKH\n };\n };\n /**\n * Ichimoku Kinko Hyo (IKH). This series requires `linkedTo` option to be\n * set.\n *\n * @sample stock/indicators/ichimoku-kinko-hyo\n * Ichimoku Kinko Hyo indicator\n *\n * @extends plotOptions.sma\n * @since 6.0.0\n * @excluding allAreas, colorAxis, compare, compareBase, joinBy, keys,\n * navigatorOptions, pointInterval, pointIntervalUnit,\n * pointPlacement, pointRange, pointStart, showInNavigator,\n * stacking\n * @product highstock\n * @requires stock/indicators/indicators\n * @requires stock/indicators/ichimoku-kinko-hyo\n * @optionparent plotOptions.ikh\n */\n IKHIndicator.defaultOptions = merge(SMAIndicator.defaultOptions, {\n /**\n * @excluding index\n */\n params: {\n index: void 0, // Unused index, do not inherit (#15362)\n period: 26,\n /**\n * The base period for Tenkan calculations.\n */\n periodTenkan: 9,\n /**\n * The base period for Senkou Span B calculations\n */\n periodSenkouSpanB: 52\n },\n marker: {\n enabled: false\n },\n tooltip: {\n pointFormat: '<span style=\"color:{point.color}\">\\u25CF</span> <b> {series.name}</b><br/>' +\n 'TENKAN SEN: {point.tenkanSen:.3f}<br/>' +\n 'KIJUN SEN: {point.kijunSen:.3f}<br/>' +\n 'CHIKOU SPAN: {point.chikouSpan:.3f}<br/>' +\n 'SENKOU SPAN A: {point.senkouSpanA:.3f}<br/>' +\n 'SENKOU SPAN B: {point.senkouSpanB:.3f}<br/>'\n },\n /**\n * The styles for Tenkan line\n */\n tenkanLine: {\n styles: {\n /**\n * Pixel width of the line.\n */\n lineWidth: 1,\n /**\n * Color of the line.\n *\n * @type {Highcharts.ColorString}\n */\n lineColor: void 0\n }\n },\n /**\n * The styles for Kijun line\n */\n kijunLine: {\n styles: {\n /**\n * Pixel width of the line.\n */\n lineWidth: 1,\n /**\n * Color of the line.\n *\n * @type {Highcharts.ColorString}\n */\n lineColor: void 0\n }\n },\n /**\n * The styles for Chikou line\n */\n chikouLine: {\n styles: {\n /**\n * Pixel width of the line.\n */\n lineWidth: 1,\n /**\n * Color of the line.\n *\n * @type {Highcharts.ColorString}\n */\n lineColor: void 0\n }\n },\n /**\n * The styles for Senkou Span A line\n */\n senkouSpanA: {\n styles: {\n /**\n * Pixel width of the line.\n */\n lineWidth: 1,\n /**\n * Color of the line.\n *\n * @type {Highcharts.ColorString}\n */\n lineColor: void 0\n }\n },\n /**\n * The styles for Senkou Span B line\n */\n senkouSpanB: {\n styles: {\n /**\n * Pixel width of the line.\n */\n lineWidth: 1,\n /**\n * Color of the line.\n *\n * @type {Highcharts.ColorString}\n */\n lineColor: void 0\n }\n },\n /**\n * The styles for area between Senkou Span A and B.\n */\n senkouSpan: {\n /**\n * Color of the area between Senkou Span A and B,\n * when Senkou Span A is above Senkou Span B. Note that if\n * a `style.fill` is defined, the `color` takes precedence and\n * the `style.fill` is ignored.\n *\n * @see [senkouSpan.styles.fill](#series.ikh.senkouSpan.styles.fill)\n *\n * @sample stock/indicators/ichimoku-kinko-hyo\n * Ichimoku Kinko Hyo color\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @since 7.0.0\n * @apioption plotOptions.ikh.senkouSpan.color\n */\n /**\n * Color of the area between Senkou Span A and B,\n * when Senkou Span A is under Senkou Span B.\n *\n * @sample stock/indicators/ikh-negative-color\n * Ichimoku Kinko Hyo negativeColor\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @since 7.0.0\n * @apioption plotOptions.ikh.senkouSpan.negativeColor\n */\n styles: {\n /**\n * Color of the area between Senkou Span A and B.\n *\n * @deprecated\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n fill: 'rgba(255, 0, 0, 0.5)'\n }\n },\n dataGrouping: {\n approximation: 'ichimoku-averages'\n }\n });\n return IKHIndicator;\n}(SMAIndicator));\nextend(IKHIndicator.prototype, {\n pointArrayMap: [\n 'tenkanSen',\n 'kijunSen',\n 'chikouSpan',\n 'senkouSpanA',\n 'senkouSpanB'\n ],\n pointValKey: 'tenkanSen',\n nameComponents: ['periodSenkouSpanB', 'period', 'periodTenkan']\n});\n/* *\n *\n * Registry\n *\n * */\n(highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_default())[\"ichimoku-averages\"] = ichimokuAverages;\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('ikh', IKHIndicator);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var IKH_IKHIndicator = ((/* unused pure expression or super */ null && (IKHIndicator)));\n/* *\n *\n * API Options\n *\n * */\n/**\n * A `IKH` series. If the [type](#series.ikh.type) option is not\n * specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends series,plotOptions.ikh\n * @since 6.0.0\n * @product highstock\n * @excluding dataParser, dataURL\n * @requires stock/indicators/indicators\n * @requires stock/indicators/ichimoku-kinko-hyo\n * @apioption series.ikh\n */\n(''); // Add doclet above to transpiled file\n\n;// ./code/es5/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js\n\n\n\n\n/* harmony default export */ var ichimoku_kinko_hyo_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__956__","__WEBPACK_EXTERNAL_MODULE__620__","__WEBPACK_EXTERNAL_MODULE__512__","extendStatics","__webpack_modules__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","__webpack_exports__","ichimoku_kinko_hyo_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_","highcharts_dataGrouping_approximations_commonjs_highcharts_dataGrouping_approximations_commonjs2_highcharts_dataGrouping_approximations_root_Highcharts_dataGrouping_approximations_default","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default","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","color","parse","SMAIndicator","seriesTypes","sma","defined","extend","isArray","isNumber","getClosestDistance","merge","objectEach","highlowLevel","arr","high","reduce","max","res","Math","Infinity","low","min","drawSenkouSpan","opt","indicator","points","nextPoints","options","senkouSpan","styles","gap","graph","fillGraph","drawGraph","IKHIndicator","_super","_this","apply","arguments","data","graphCollection","init","tenkanLine","lineColor","kijunLine","chikouLine","senkouSpanA","fill","setOpacity","senkouSpanB","toYData","point","tenkanSen","kijunSen","chikouSpan","translate","_i","_a","length","_b","_c","pointArrayMap","pointValue","yAxis","toPixels","plotY","tooltipPos","plotX","isNull","position","i","startIntersect","endIntersect","sectionPoints","sectionNextPoints","pointsPlotYSum","nextPointsPlotYSum","senkouSpanTempColor","concatArrIndex","j","k","mainLinePoints","mainLineOptions","mainLinePath","mainColor","gappedExtend","gapSize","pointArrayMapLength","allIchimokuPoints","ikhMap","intersectIndexColl","senkouSpanOptions","negativeColor","pointsLength","lineIndex","push","index","intersect","checkLineIntersection","a1","a2","b1","b2","saX","saY","sbX","sbY","sabX","sabY","u","t","intersectPointObj","intersectPoint","splice","values","lineName","graphName","destroy","unshift","slice","floor","x","concat","forEach","areaName","graphsenkouSpan","getGraphPath","spanA","path","spanAarr","getValues","series","params","date","pointTS","pointKS","pointSSB","TS","KS","CS","SSA","SSB","period","periodTenkan","periodSenkouSpanB","xVal","xData","yVal","yData","xAxis","yValLen","closestPointRange","map","s","getColumn","IKH","dateStart","defaultOptions","marker","enabled","tooltip","pointFormat","lineWidth","dataGrouping","approximation","pointValKey","nameComponents","isEmptyRange","ret","average","registerSeriesType"],"mappings":"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"}
Hacked By AnonymousFox1.0, Coded By AnonymousFox