Hacked By AnonymousFox
{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highstock JS v12.1.2 (2025-01-09)\n * @module highcharts/modules/stock-tools\n * @requires highcharts\n * @requires highcharts/modules/stock\n *\n * Advanced Highcharts Stock tools\n *\n * (c) 2010-2024 Highsoft AS\n * Author: Torstein Honsi\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\")[\"Templating\"], require(\"highcharts\")[\"Series\"], require(\"highcharts\")[\"AST\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/modules/stock-tools\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"Templating\"], [\"highcharts/highcharts\",\"Series\"], [\"highcharts/highcharts\",\"AST\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/modules/stock-tools\"] = factory(require(\"highcharts\"), require(\"highcharts\")[\"Templating\"], require(\"highcharts\")[\"Series\"], require(\"highcharts\")[\"AST\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"Templating\"], root[\"Highcharts\"][\"Series\"], root[\"Highcharts\"][\"AST\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__984__, __WEBPACK_EXTERNAL_MODULE__820__, __WEBPACK_EXTERNAL_MODULE__660__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 660:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__660__;\n\n/***/ }),\n\n/***/ 820:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__820__;\n\n/***/ }),\n\n/***/ 984:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__984__;\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 */ stock_tools_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;// ./code/es5/es-modules/Core/Chart/ChartNavigationComposition.js\n/**\n *\n * (c) 2010-2024 Paweł Fus\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * Composition\n *\n * */\nvar ChartNavigationComposition;\n(function (ChartNavigationComposition) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Functions\n *\n * */\n /* eslint-disable valid-jsdoc */\n /**\n * @private\n */\n function compose(chart) {\n if (!chart.navigation) {\n chart.navigation = new Additions(chart);\n }\n return chart;\n }\n ChartNavigationComposition.compose = compose;\n /* *\n *\n * Class\n *\n * */\n /**\n * Initializes `chart.navigation` object which delegates `update()` methods\n * to all other common classes (used in exporting and navigationBindings).\n * @private\n */\n var Additions = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function Additions(chart) {\n this.updates = [];\n this.chart = chart;\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Registers an `update()` method in the `chart.navigation` object.\n *\n * @private\n * @param {UpdateFunction} updateFn\n * The `update()` method that will be called in `chart.update()`.\n */\n Additions.prototype.addUpdate = function (updateFn) {\n this.chart.navigation.updates.push(updateFn);\n };\n /**\n * @private\n */\n Additions.prototype.update = function (options, redraw) {\n var _this = this;\n this.updates.forEach(function (updateFn) {\n updateFn.call(_this.chart, options, redraw);\n });\n };\n return Additions;\n }());\n ChartNavigationComposition.Additions = Additions;\n})(ChartNavigationComposition || (ChartNavigationComposition = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Chart_ChartNavigationComposition = (ChartNavigationComposition);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Templating\"],\"commonjs\":[\"highcharts\",\"Templating\"],\"commonjs2\":[\"highcharts\",\"Templating\"],\"root\":[\"Highcharts\",\"Templating\"]}\nvar highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_ = __webpack_require__(984);\nvar highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default = /*#__PURE__*/__webpack_require__.n(highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_);\n;// ./code/es5/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js\n/* *\n *\n * (c) 2009-2024 Highsoft, Black Label\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Constants\n *\n * */\n/**\n * Define types for editable fields per annotation. There is no need to define\n * numbers, because they won't change their type to string.\n * @private\n */\nvar annotationsFieldsTypes = {\n backgroundColor: 'string',\n borderColor: 'string',\n borderRadius: 'string',\n color: 'string',\n fill: 'string',\n fontSize: 'string',\n labels: 'string',\n name: 'string',\n stroke: 'string',\n title: 'string'\n};\n/* *\n *\n * Functions\n *\n * */\n/**\n * Returns the first xAxis or yAxis that was clicked with its value.\n *\n * @private\n *\n * @param {Array<Highcharts.PointerAxisCoordinateObject>} coords\n * All the chart's x or y axes with a current pointer's axis value.\n *\n * @return {Highcharts.PointerAxisCoordinateObject}\n * Object with a first found axis and its value that pointer\n * is currently pointing.\n */\nfunction getAssignedAxis(coords) {\n return coords.filter(function (coord) {\n var extremes = coord.axis.getExtremes(),\n axisMin = extremes.min,\n axisMax = extremes.max, \n // Correct axis edges when axis has series\n // with pointRange (like column)\n minPointOffset = pick(coord.axis.minPointOffset, 0);\n return isNumber(axisMin) && isNumber(axisMax) &&\n coord.value >= (axisMin - minPointOffset) &&\n coord.value <= (axisMax + minPointOffset) &&\n // Don't count navigator axis\n !coord.axis.options.isInternal;\n })[0]; // If the axes overlap, return the first axis that was found.\n}\n/**\n * Get field type according to value\n *\n * @private\n *\n * @param {'boolean'|'number'|'string'} value\n * Atomic type (one of: string, number, boolean)\n *\n * @return {'checkbox'|'number'|'text'}\n * Field type (one of: text, number, checkbox)\n */\nfunction getFieldType(key, value) {\n var predefinedType = annotationsFieldsTypes[key];\n var fieldType = typeof value;\n if (defined(predefinedType)) {\n fieldType = predefinedType;\n }\n return {\n 'string': 'text',\n 'number': 'number',\n 'boolean': 'checkbox'\n }[fieldType];\n}\n/* *\n *\n * Default Export\n *\n * */\nvar NavigationBindingUtilities = {\n annotationsFieldsTypes: annotationsFieldsTypes,\n getAssignedAxis: getAssignedAxis,\n getFieldType: getFieldType\n};\n/* harmony default export */ var NavigationBindingsUtilities = (NavigationBindingUtilities);\n\n;// ./code/es5/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js\n/* *\n *\n * (c) 2009-2024 Highsoft, Black Label\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar NavigationBindingsDefaults_getAssignedAxis = NavigationBindingsUtilities.getAssignedAxis;\n\nvar NavigationBindingsDefaults_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n * Constants\n *\n * */\n/**\n * @optionparent lang\n */\nvar lang = {\n /**\n * Configure the Popup strings in the chart. Requires the\n * `annotations.js` or `annotations-advanced.src.js` module to be\n * loaded.\n * @since 7.0.0\n * @product highcharts highstock\n */\n navigation: {\n /**\n * Translations for all field names used in popup.\n *\n * @product highcharts highstock\n */\n popup: {\n simpleShapes: 'Simple shapes',\n lines: 'Lines',\n circle: 'Circle',\n ellipse: 'Ellipse',\n rectangle: 'Rectangle',\n label: 'Label',\n shapeOptions: 'Shape options',\n typeOptions: 'Details',\n fill: 'Fill',\n format: 'Text',\n strokeWidth: 'Line width',\n stroke: 'Line color',\n title: 'Title',\n name: 'Name',\n labelOptions: 'Label options',\n labels: 'Labels',\n backgroundColor: 'Background color',\n backgroundColors: 'Background colors',\n borderColor: 'Border color',\n borderRadius: 'Border radius',\n borderWidth: 'Border width',\n style: 'Style',\n padding: 'Padding',\n fontSize: 'Font size',\n color: 'Color',\n height: 'Height',\n shapes: 'Shape options'\n }\n }\n};\n/**\n * @optionparent navigation\n * @product highcharts highstock\n */\nvar navigation = {\n /**\n * A CSS class name where all bindings will be attached to. Multiple\n * charts on the same page should have separate class names to prevent\n * duplicating events.\n *\n * Default value of versions < 7.0.4 `highcharts-bindings-wrapper`\n *\n * @since 7.0.0\n * @type {string}\n */\n bindingsClassName: 'highcharts-bindings-container',\n /**\n * Bindings definitions for custom HTML buttons. Each binding implements\n * simple event-driven interface:\n *\n * - `className`: classname used to bind event to\n *\n * - `init`: initial event, fired on button click\n *\n * - `start`: fired on first click on a chart\n *\n * - `steps`: array of sequential events fired one after another on each\n * of users clicks\n *\n * - `end`: last event to be called after last step event\n *\n * @type {Highcharts.Dictionary<Highcharts.NavigationBindingsOptionsObject>|*}\n *\n * @sample {highstock} stock/stocktools/stocktools-thresholds\n * Custom bindings\n * @sample {highcharts} highcharts/annotations/bindings/\n * Simple binding\n * @sample {highcharts} highcharts/annotations/bindings-custom-annotation/\n * Custom annotation binding\n *\n * @since 7.0.0\n * @requires modules/annotations\n * @product highcharts highstock\n */\n bindings: {\n /**\n * A circle annotation bindings. Includes `start` and one event in\n * `steps` array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @default {\"className\": \"highcharts-circle-annotation\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n circleAnnotation: {\n /** @ignore-option */\n className: 'highcharts-circle-annotation',\n /** @ignore-option */\n start: function (e) {\n var _a;\n var coords = (_a = this.chart.pointer) === null || _a === void 0 ? void 0 : _a.getCoordinates(e),\n coordsX = coords && NavigationBindingsDefaults_getAssignedAxis(coords.xAxis),\n coordsY = coords && NavigationBindingsDefaults_getAssignedAxis(coords.yAxis),\n navigation = this.chart.options.navigation;\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n return this.chart.addAnnotation(merge({\n langKey: 'circle',\n type: 'basicAnnotation',\n shapes: [{\n type: 'circle',\n point: {\n x: coordsX.value,\n y: coordsY.value,\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index\n },\n r: 5\n }]\n }, navigation.annotationsOptions, navigation.bindings.circleAnnotation\n .annotationsOptions));\n },\n /** @ignore-option */\n steps: [\n function (e, annotation) {\n var shapes = annotation.options.shapes,\n mockPointOpts = ((shapes && shapes[0] && shapes[0].point) ||\n {});\n var distance;\n if (NavigationBindingsDefaults_isNumber(mockPointOpts.xAxis) &&\n NavigationBindingsDefaults_isNumber(mockPointOpts.yAxis)) {\n var inverted = this.chart.inverted,\n x = this.chart.xAxis[mockPointOpts.xAxis]\n .toPixels(mockPointOpts.x),\n y = this.chart.yAxis[mockPointOpts.yAxis]\n .toPixels(mockPointOpts.y);\n distance = Math.max(Math.sqrt(Math.pow(inverted ? y - e.chartX : x - e.chartX, 2) +\n Math.pow(inverted ? x - e.chartY : y - e.chartY, 2)), 5);\n }\n annotation.update({\n shapes: [{\n r: distance\n }]\n });\n }\n ]\n },\n /**\n * A ellipse annotation bindings. Includes `start` and two events in\n * `steps` array. First updates the second point, responsible for a\n * rx width, and second updates the ry width.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @default {\"className\": \"highcharts-ellipse-annotation\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n ellipseAnnotation: {\n className: 'highcharts-ellipse-annotation',\n start: function (e) {\n var _a;\n var coords = (_a = this.chart.pointer) === null || _a === void 0 ? void 0 : _a.getCoordinates(e),\n coordsX = coords && NavigationBindingsDefaults_getAssignedAxis(coords.xAxis),\n coordsY = coords && NavigationBindingsDefaults_getAssignedAxis(coords.yAxis),\n navigation = this.chart.options.navigation;\n if (!coordsX || !coordsY) {\n return;\n }\n return this.chart.addAnnotation(merge({\n langKey: 'ellipse',\n type: 'basicAnnotation',\n shapes: [\n {\n type: 'ellipse',\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [{\n x: coordsX.value,\n y: coordsY.value\n }, {\n x: coordsX.value,\n y: coordsY.value\n }],\n ry: 1\n }\n ]\n }, navigation.annotationsOptions, navigation.bindings.ellipseAnnotation\n .annotationOptions));\n },\n steps: [\n function (e, annotation) {\n var target = annotation.shapes[0],\n position = target.getAbsolutePosition(target.points[1]);\n target.translatePoint(e.chartX - position.x, e.chartY - position.y, 1);\n target.redraw(false);\n },\n function (e, annotation) {\n var target = annotation.shapes[0],\n position = target.getAbsolutePosition(target.points[0]),\n position2 = target.getAbsolutePosition(target.points[1]),\n newR = target.getDistanceFromLine(position,\n position2,\n e.chartX,\n e.chartY),\n yAxis = target.getYAxis(),\n newRY = Math.abs(yAxis.toValue(0) - yAxis.toValue(newR));\n target.setYRadius(newRY);\n target.redraw(false);\n }\n ]\n },\n /**\n * A rectangle annotation bindings. Includes `start` and one event\n * in `steps` array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @default {\"className\": \"highcharts-rectangle-annotation\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n rectangleAnnotation: {\n /** @ignore-option */\n className: 'highcharts-rectangle-annotation',\n /** @ignore-option */\n start: function (e) {\n var _a;\n var coords = (_a = this.chart.pointer) === null || _a === void 0 ? void 0 : _a.getCoordinates(e),\n coordsX = coords && NavigationBindingsDefaults_getAssignedAxis(coords.xAxis),\n coordsY = coords && NavigationBindingsDefaults_getAssignedAxis(coords.yAxis);\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var x = coordsX.value,\n y = coordsY.value,\n xAxis = coordsX.axis.index,\n yAxis = coordsY.axis.index,\n navigation = this.chart.options.navigation;\n return this.chart.addAnnotation(merge({\n langKey: 'rectangle',\n type: 'basicAnnotation',\n shapes: [{\n type: 'path',\n points: [\n { xAxis: xAxis, yAxis: yAxis, x: x, y: y },\n { xAxis: xAxis, yAxis: yAxis, x: x, y: y },\n { xAxis: xAxis, yAxis: yAxis, x: x, y: y },\n { xAxis: xAxis, yAxis: yAxis, x: x, y: y },\n { command: 'Z' }\n ]\n }]\n }, navigation\n .annotationsOptions, navigation\n .bindings\n .rectangleAnnotation\n .annotationsOptions));\n },\n /** @ignore-option */\n steps: [\n function (e, annotation) {\n var _a;\n var shapes = annotation.options.shapes,\n points = ((shapes && shapes[0] && shapes[0].points) ||\n []),\n coords = (_a = this.chart.pointer) === null || _a === void 0 ? void 0 : _a.getCoordinates(e),\n coordsX = coords && NavigationBindingsDefaults_getAssignedAxis(coords.xAxis),\n coordsY = coords && NavigationBindingsDefaults_getAssignedAxis(coords.yAxis);\n if (coordsX && coordsY) {\n var x = coordsX.value,\n y = coordsY.value;\n // Top right point\n points[1].x = x;\n // Bottom right point (cursor position)\n points[2].x = x;\n points[2].y = y;\n // Bottom left\n points[3].y = y;\n annotation.update({\n shapes: [{\n points: points\n }]\n });\n }\n }\n ]\n },\n /**\n * A label annotation bindings. Includes `start` event only.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @default {\"className\": \"highcharts-label-annotation\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n labelAnnotation: {\n /** @ignore-option */\n className: 'highcharts-label-annotation',\n /** @ignore-option */\n start: function (e) {\n var _a;\n var coords = (_a = this.chart.pointer) === null || _a === void 0 ? void 0 : _a.getCoordinates(e),\n coordsX = coords && NavigationBindingsDefaults_getAssignedAxis(coords.xAxis),\n coordsY = coords && NavigationBindingsDefaults_getAssignedAxis(coords.yAxis),\n navigation = this.chart.options.navigation;\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n return this.chart.addAnnotation(merge({\n langKey: 'label',\n type: 'basicAnnotation',\n labelOptions: {\n format: '{y:.2f}',\n overflow: 'none',\n crop: true\n },\n labels: [{\n point: {\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n x: coordsX.value,\n y: coordsY.value\n }\n }]\n }, navigation\n .annotationsOptions, navigation\n .bindings\n .labelAnnotation\n .annotationsOptions));\n }\n }\n },\n /**\n * Path where Highcharts will look for icons. Change this to use icons\n * from a different server.\n *\n * @type {string}\n * @default https://code.highcharts.com/12.1.2/gfx/stock-icons/\n * @since 7.1.3\n * @apioption navigation.iconsURL\n */\n /**\n * A `showPopup` event. Fired when selecting for example an annotation.\n *\n * @type {Function}\n * @apioption navigation.events.showPopup\n */\n /**\n * A `closePopup` event. Fired when Popup should be hidden, for example\n * when clicking on an annotation again.\n *\n * @type {Function}\n * @apioption navigation.events.closePopup\n */\n /**\n * Event fired on a button click.\n *\n * @type {Function}\n * @sample highcharts/annotations/gui/\n * Change icon in a dropddown on event\n * @sample highcharts/annotations/gui-buttons/\n * Change button class on event\n * @apioption navigation.events.selectButton\n */\n /**\n * Event fired when button state should change, for example after\n * adding an annotation.\n *\n * @type {Function}\n * @sample highcharts/annotations/gui/\n * Change icon in a dropddown on event\n * @sample highcharts/annotations/gui-buttons/\n * Change button class on event\n * @apioption navigation.events.deselectButton\n */\n /**\n * Events to communicate between Stock Tools and custom GUI.\n *\n * @since 7.0.0\n * @product highcharts highstock\n * @optionparent navigation.events\n */\n events: {},\n /**\n * Additional options to be merged into all annotations.\n *\n * @sample stock/stocktools/navigation-annotation-options\n * Set red color of all line annotations\n *\n * @type {Highcharts.AnnotationsOptions}\n * @extends annotations\n * @exclude crookedLine, elliottWave, fibonacci, infinityLine,\n * measure, pitchfork, tunnel, verticalLine, basicAnnotation\n * @requires modules/annotations\n * @apioption navigation.annotationsOptions\n */\n annotationsOptions: {\n animation: {\n defer: 0\n }\n }\n};\n/* *\n *\n * Default Export\n *\n * */\nvar NavigationBindingDefaults = {\n lang: lang,\n navigation: navigation\n};\n/* harmony default export */ var NavigationBindingsDefaults = (NavigationBindingDefaults);\n\n;// ./code/es5/es-modules/Extensions/Annotations/NavigationBindings.js\n/* *\n *\n * (c) 2009-2024 Highsoft, Black Label\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nvar setOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).setOptions;\n\nvar format = (highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default()).format;\n\nvar composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed, doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc, win = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).win;\n\n\nvar NavigationBindings_getAssignedAxis = NavigationBindingsUtilities.getAssignedAxis, NavigationBindings_getFieldType = NavigationBindingsUtilities.getFieldType;\n\nvar addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, attr = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).attr, NavigationBindings_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, isFunction = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isFunction, NavigationBindings_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, isObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isObject, NavigationBindings_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, objectEach = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).objectEach, NavigationBindings_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique;\n/* *\n *\n * Functions\n *\n * */\n/**\n * IE 9-11 polyfill for Element.closest():\n * @private\n */\nfunction closestPolyfill(el, s) {\n var ElementProto = win.Element.prototype,\n elementMatches = ElementProto.matches ||\n ElementProto.msMatchesSelector ||\n ElementProto.webkitMatchesSelector;\n var ret = null;\n if (ElementProto.closest) {\n ret = ElementProto.closest.call(el, s);\n }\n else {\n do {\n if (elementMatches.call(el, s)) {\n return el;\n }\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n }\n return ret;\n}\n/**\n * @private\n */\nfunction onAnnotationRemove() {\n if (this.chart.navigationBindings) {\n this.chart.navigationBindings.deselectAnnotation();\n }\n}\n/**\n * @private\n */\nfunction onChartDestroy() {\n if (this.navigationBindings) {\n this.navigationBindings.destroy();\n }\n}\n/**\n * @private\n */\nfunction onChartLoad() {\n var options = this.options;\n if (options && options.navigation && options.navigation.bindings) {\n this.navigationBindings = new NavigationBindings(this, options.navigation);\n this.navigationBindings.initEvents();\n this.navigationBindings.initUpdate();\n }\n}\n/**\n * @private\n */\nfunction onChartRender() {\n var navigationBindings = this.navigationBindings,\n disabledClassName = 'highcharts-disabled-btn';\n if (this && navigationBindings) {\n // Check if the buttons should be enabled/disabled based on\n // visible series.\n var buttonsEnabled_1 = false;\n this.series.forEach(function (series) {\n if (!series.options.isInternal && series.visible) {\n buttonsEnabled_1 = true;\n }\n });\n if (this.navigationBindings &&\n this.navigationBindings.container &&\n this.navigationBindings.container[0]) {\n var container_1 = this.navigationBindings.container[0];\n objectEach(navigationBindings.boundClassNames, function (value, key) {\n // Get the HTML element corresponding to the className taken\n // from StockToolsBindings.\n var buttonNode = container_1.querySelectorAll('.' + key);\n if (buttonNode) {\n for (var i = 0; i < buttonNode.length; i++) {\n var button = buttonNode[i],\n cls = button.className;\n if (value.noDataState === 'normal') {\n // If button has noDataState: 'normal', and has\n // disabledClassName, remove this className.\n if (cls.indexOf(disabledClassName) !== -1) {\n button.classList.remove(disabledClassName);\n }\n }\n else if (!buttonsEnabled_1) {\n if (cls.indexOf(disabledClassName) === -1) {\n button.className += ' ' + disabledClassName;\n }\n }\n else {\n // Enable all buttons by deleting the className.\n if (cls.indexOf(disabledClassName) !== -1) {\n button.classList.remove(disabledClassName);\n }\n }\n }\n }\n });\n }\n }\n}\n/**\n * @private\n */\nfunction onNavigationBindingsClosePopup() {\n this.deselectAnnotation();\n}\n/**\n * @private\n */\nfunction onNavigationBindingsDeselectButton() {\n this.selectedButtonElement = null;\n}\n/**\n * Show edit-annotation form:\n * @private\n */\nfunction selectableAnnotation(annotationType) {\n var originalClick = annotationType.prototype.defaultOptions.events &&\n annotationType.prototype.defaultOptions.events.click;\n /**\n * Select and show popup\n * @private\n */\n function selectAndShowPopup(eventArguments) {\n var annotation = this,\n navigation = annotation.chart.navigationBindings,\n prevAnnotation = navigation.activeAnnotation;\n if (originalClick) {\n originalClick.call(annotation, eventArguments);\n }\n if (prevAnnotation !== annotation) {\n // Select current:\n navigation.deselectAnnotation();\n navigation.activeAnnotation = annotation;\n annotation.setControlPointsVisibility(true);\n fireEvent(navigation, 'showPopup', {\n annotation: annotation,\n formType: 'annotation-toolbar',\n options: navigation.annotationToFields(annotation),\n onSubmit: function (data) {\n if (data.actionType === 'remove') {\n navigation.activeAnnotation = false;\n navigation.chart.removeAnnotation(annotation);\n }\n else {\n var config = {};\n navigation.fieldsToOptions(data.fields, config);\n navigation.deselectAnnotation();\n var typeOptions = config.typeOptions;\n if (annotation.options.type === 'measure') {\n // Manually disable crooshars according to\n // stroke width of the shape:\n typeOptions.crosshairY.enabled = (typeOptions.crosshairY\n .strokeWidth !== 0);\n typeOptions.crosshairX.enabled = (typeOptions.crosshairX\n .strokeWidth !== 0);\n }\n annotation.update(config);\n }\n }\n });\n }\n else {\n // Deselect current:\n fireEvent(navigation, 'closePopup');\n }\n // Let bubble event to chart.click:\n eventArguments.activeAnnotation = true;\n }\n // #18276, show popup on touchend, but not on touchmove\n var touchStartX,\n touchStartY;\n /**\n *\n */\n function saveCoords(e) {\n touchStartX = e.touches[0].clientX;\n touchStartY = e.touches[0].clientY;\n }\n /**\n *\n */\n function checkForTouchmove(e) {\n var hasMoved = touchStartX ? Math.sqrt(Math.pow(touchStartX - e.changedTouches[0].clientX, 2) +\n Math.pow(touchStartY - e.changedTouches[0].clientY, 2)) >= 4 : false;\n if (!hasMoved) {\n selectAndShowPopup.call(this, e);\n }\n }\n NavigationBindings_merge(true, annotationType.prototype.defaultOptions.events, {\n click: selectAndShowPopup,\n touchstart: saveCoords,\n touchend: checkForTouchmove\n });\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * @private\n */\nvar NavigationBindings = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function NavigationBindings(chart, options) {\n this.boundClassNames = void 0;\n this.chart = chart;\n this.options = options;\n this.eventsToUnbind = [];\n this.container =\n this.chart.container.getElementsByClassName(this.options.bindingsClassName || '');\n if (!this.container.length) {\n this.container = doc.getElementsByClassName(this.options.bindingsClassName || '');\n }\n }\n /* *\n *\n * Static Functions\n *\n * */\n NavigationBindings.compose = function (AnnotationClass, ChartClass) {\n if (pushUnique(composed, 'NavigationBindings')) {\n addEvent(AnnotationClass, 'remove', onAnnotationRemove);\n // Basic shapes:\n selectableAnnotation(AnnotationClass);\n // Advanced annotations:\n objectEach(AnnotationClass.types, function (annotationType) {\n selectableAnnotation(annotationType);\n });\n addEvent(ChartClass, 'destroy', onChartDestroy);\n addEvent(ChartClass, 'load', onChartLoad);\n addEvent(ChartClass, 'render', onChartRender);\n addEvent(NavigationBindings, 'closePopup', onNavigationBindingsClosePopup);\n addEvent(NavigationBindings, 'deselectButton', onNavigationBindingsDeselectButton);\n setOptions(NavigationBindingsDefaults);\n }\n };\n /* *\n *\n * Functions\n *\n * */\n NavigationBindings.prototype.getCoords = function (e) {\n var _a;\n var coords = (_a = this.chart.pointer) === null || _a === void 0 ? void 0 : _a.getCoordinates(e);\n return [\n coords && NavigationBindings_getAssignedAxis(coords.xAxis),\n coords && NavigationBindings_getAssignedAxis(coords.yAxis)\n ];\n };\n /**\n * Init all events connected to NavigationBindings.\n *\n * @private\n * @function Highcharts.NavigationBindings#initEvents\n */\n NavigationBindings.prototype.initEvents = function () {\n var navigation = this,\n chart = navigation.chart,\n bindingsContainer = navigation.container,\n options = navigation.options;\n // Shorthand object for getting events for buttons:\n navigation.boundClassNames = {};\n objectEach((options.bindings || {}), function (value) {\n navigation.boundClassNames[value.className] = value;\n });\n // Handle multiple containers with the same class names:\n [].forEach.call(bindingsContainer, function (subContainer) {\n navigation.eventsToUnbind.push(addEvent(subContainer, 'click', function (event) {\n var bindings = navigation.getButtonEvents(subContainer,\n event);\n if (bindings &&\n (!bindings.button.classList\n .contains('highcharts-disabled-btn'))) {\n navigation.bindingsButtonClick(bindings.button, bindings.events, event);\n }\n }));\n });\n objectEach((options.events || {}), function (callback, eventName) {\n if (isFunction(callback)) {\n navigation.eventsToUnbind.push(addEvent(navigation, eventName, callback, { passive: false }));\n }\n });\n navigation.eventsToUnbind.push(addEvent(chart.container, 'click', function (e) {\n if (!chart.cancelClick &&\n chart.isInsidePlot(e.chartX - chart.plotLeft, e.chartY - chart.plotTop, {\n visiblePlotOnly: true\n })) {\n navigation.bindingsChartClick(this, e);\n }\n }));\n navigation.eventsToUnbind.push(addEvent(chart.container, (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isTouchDevice ? 'touchmove' : 'mousemove', function (e) {\n navigation.bindingsContainerMouseMove(this, e);\n }, (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isTouchDevice ? { passive: false } : void 0));\n };\n /**\n * Common chart.update() delegation, shared between bindings and exporting.\n *\n * @private\n * @function Highcharts.NavigationBindings#initUpdate\n */\n NavigationBindings.prototype.initUpdate = function () {\n var navigation = this;\n Chart_ChartNavigationComposition\n .compose(this.chart).navigation\n .addUpdate(function (options) {\n navigation.update(options);\n });\n };\n /**\n * Hook for click on a button, method selects/unselects buttons,\n * then calls `bindings.init` callback.\n *\n * @private\n * @function Highcharts.NavigationBindings#bindingsButtonClick\n *\n * @param {Highcharts.HTMLDOMElement} [button]\n * Clicked button\n *\n * @param {Object} events\n * Events passed down from bindings (`init`, `start`, `step`, `end`)\n *\n * @param {Highcharts.PointerEventObject} clickEvent\n * Browser's click event\n */\n NavigationBindings.prototype.bindingsButtonClick = function (button, events, clickEvent) {\n var navigation = this,\n chart = navigation.chart,\n svgContainer = chart.renderer.boxWrapper;\n var shouldEventBeFired = true;\n if (navigation.selectedButtonElement) {\n if (navigation.selectedButtonElement.classList === button.classList) {\n shouldEventBeFired = false;\n }\n fireEvent(navigation, 'deselectButton', { button: navigation.selectedButtonElement });\n if (navigation.nextEvent) {\n // Remove in-progress annotations adders:\n if (navigation.currentUserDetails &&\n navigation.currentUserDetails.coll === 'annotations') {\n chart.removeAnnotation(navigation.currentUserDetails);\n }\n navigation.mouseMoveEvent = navigation.nextEvent = false;\n }\n }\n if (shouldEventBeFired) {\n navigation.selectedButton = events;\n navigation.selectedButtonElement = button;\n fireEvent(navigation, 'selectButton', { button: button });\n // Call \"init\" event, for example to open modal window\n if (events.init) {\n events.init.call(navigation, button, clickEvent);\n }\n if (events.start || events.steps) {\n chart.renderer.boxWrapper.addClass('highcharts-draw-mode');\n }\n }\n else {\n chart.stockTools && button.classList.remove('highcharts-active');\n svgContainer.removeClass('highcharts-draw-mode');\n navigation.nextEvent = false;\n navigation.mouseMoveEvent = false;\n navigation.selectedButton = null;\n }\n };\n /**\n * Hook for click on a chart, first click on a chart calls `start` event,\n * then on all subsequent clicks iterate over `steps` array.\n * When finished, calls `end` event.\n *\n * @private\n * @function Highcharts.NavigationBindings#bindingsChartClick\n *\n * @param {Highcharts.Chart} chart\n * Chart that click was performed on.\n *\n * @param {Highcharts.PointerEventObject} clickEvent\n * Browser's click event.\n */\n NavigationBindings.prototype.bindingsChartClick = function (chart, clickEvent) {\n chart = this.chart;\n var navigation = this,\n activeAnnotation = navigation.activeAnnotation,\n selectedButton = navigation.selectedButton,\n svgContainer = chart.renderer.boxWrapper;\n if (activeAnnotation) {\n // Click outside popups, should close them and deselect the\n // annotation\n if (!activeAnnotation.cancelClick && // #15729\n !clickEvent.activeAnnotation &&\n // Element could be removed in the child action, e.g. button\n clickEvent.target.parentNode &&\n // TO DO: Polyfill for IE11?\n !closestPolyfill(clickEvent.target, '.highcharts-popup')) {\n fireEvent(navigation, 'closePopup');\n }\n else if (activeAnnotation.cancelClick) {\n // Reset cancelClick after the other event handlers have run\n setTimeout(function () {\n activeAnnotation.cancelClick = false;\n }, 0);\n }\n }\n if (!selectedButton || !selectedButton.start) {\n return;\n }\n if (!navigation.nextEvent) {\n // Call init method:\n navigation.currentUserDetails = selectedButton.start.call(navigation, clickEvent);\n // If steps exists (e.g. Annotations), bind them:\n if (navigation.currentUserDetails && selectedButton.steps) {\n navigation.stepIndex = 0;\n navigation.steps = true;\n navigation.mouseMoveEvent = navigation.nextEvent =\n selectedButton.steps[navigation.stepIndex];\n }\n else {\n fireEvent(navigation, 'deselectButton', { button: navigation.selectedButtonElement });\n svgContainer.removeClass('highcharts-draw-mode');\n navigation.steps = false;\n navigation.selectedButton = null;\n // First click is also the last one:\n if (selectedButton.end) {\n selectedButton.end.call(navigation, clickEvent, navigation.currentUserDetails);\n }\n }\n }\n else {\n navigation.nextEvent(clickEvent, navigation.currentUserDetails);\n if (navigation.steps) {\n navigation.stepIndex++;\n if (selectedButton.steps[navigation.stepIndex]) {\n // If we have more steps, bind them one by one:\n navigation.mouseMoveEvent = navigation.nextEvent = selectedButton.steps[navigation.stepIndex];\n }\n else {\n fireEvent(navigation, 'deselectButton', { button: navigation.selectedButtonElement });\n svgContainer.removeClass('highcharts-draw-mode');\n // That was the last step, call end():\n if (selectedButton.end) {\n selectedButton.end.call(navigation, clickEvent, navigation.currentUserDetails);\n }\n navigation.nextEvent = false;\n navigation.mouseMoveEvent = false;\n navigation.selectedButton = null;\n }\n }\n }\n };\n /**\n * Hook for mouse move on a chart's container. It calls current step.\n *\n * @private\n * @function Highcharts.NavigationBindings#bindingsContainerMouseMove\n *\n * @param {Highcharts.HTMLDOMElement} container\n * Chart's container.\n *\n * @param {global.Event} moveEvent\n * Browser's move event.\n */\n NavigationBindings.prototype.bindingsContainerMouseMove = function (_container, moveEvent) {\n if (this.mouseMoveEvent) {\n this.mouseMoveEvent(moveEvent, this.currentUserDetails);\n }\n };\n /**\n * Translate fields (e.g. `params.period` or `marker.styles.color`) to\n * Highcharts options object (e.g. `{ params: { period } }`).\n *\n * @private\n * @function Highcharts.NavigationBindings#fieldsToOptions<T>\n *\n * @param {Highcharts.Dictionary<string>} fields\n * Fields from popup form.\n *\n * @param {T} config\n * Default config to be modified.\n *\n * @return {T}\n * Modified config\n */\n NavigationBindings.prototype.fieldsToOptions = function (fields, config) {\n objectEach(fields, function (value, field) {\n var parsedValue = parseFloat(value),\n path = field.split('.'),\n pathLength = path.length - 1;\n // If it's a number (not \"format\" options), parse it:\n if (NavigationBindings_isNumber(parsedValue) &&\n !value.match(/px|em/g) &&\n !field.match(/format/g)) {\n value = parsedValue;\n }\n // Remove values like 0\n if (value !== 'undefined') {\n var parent_1 = config;\n path.forEach(function (name, index) {\n if (name !== '__proto__' && name !== 'constructor') {\n var nextName = NavigationBindings_pick(path[index + 1], '');\n if (pathLength === index) {\n // Last index, put value:\n parent_1[name] = value;\n }\n else if (!parent_1[name]) {\n // Create middle property:\n parent_1[name] = nextName.match(/\\d/g) ?\n [] :\n {};\n parent_1 = parent_1[name];\n }\n else {\n // Jump into next property\n parent_1 = parent_1[name];\n }\n }\n });\n }\n });\n return config;\n };\n /**\n * Shorthand method to deselect an annotation.\n *\n * @function Highcharts.NavigationBindings#deselectAnnotation\n */\n NavigationBindings.prototype.deselectAnnotation = function () {\n if (this.activeAnnotation) {\n this.activeAnnotation.setControlPointsVisibility(false);\n this.activeAnnotation = false;\n }\n };\n /**\n * Generates API config for popup in the same format as options for\n * Annotation object.\n *\n * @function Highcharts.NavigationBindings#annotationToFields\n *\n * @param {Highcharts.Annotation} annotation\n * Annotations object\n *\n * @return {Highcharts.Dictionary<string>}\n * Annotation options to be displayed in popup box\n */\n NavigationBindings.prototype.annotationToFields = function (annotation) {\n var options = annotation.options,\n editables = NavigationBindings.annotationsEditable,\n nestedEditables = editables.nestedOptions,\n type = NavigationBindings_pick(options.type,\n options.shapes && options.shapes[0] &&\n options.shapes[0].type,\n options.labels && options.labels[0] &&\n options.labels[0].type, 'label'),\n nonEditables = NavigationBindings.annotationsNonEditable[options.langKey] || [],\n visualOptions = {\n langKey: options.langKey,\n type: type\n };\n /**\n * Nested options traversing. Method goes down to the options and copies\n * allowed options (with values) to new object, which is last parameter:\n * \"parent\".\n *\n * @private\n *\n * @param {*} option\n * Atomic type or object/array\n *\n * @param {string} key\n * Option name, for example \"visible\" or \"x\", \"y\"\n *\n * @param {Object} parentEditables\n * Editables from NavigationBindings.annotationsEditable\n *\n * @param {Object} parent\n * Where new options will be assigned\n */\n function traverse(option, key, parentEditables, parent, parentKey) {\n var nextParent;\n if (parentEditables &&\n NavigationBindings_defined(option) &&\n nonEditables.indexOf(key) === -1 &&\n ((parentEditables.indexOf &&\n parentEditables.indexOf(key)) >= 0 ||\n parentEditables[key] || // Nested array\n parentEditables === true // Simple array\n )) {\n // Roots:\n if (isArray(option)) {\n parent[key] = [];\n option.forEach(function (arrayOption, i) {\n if (!isObject(arrayOption)) {\n // Simple arrays, e.g. [String, Number, Boolean]\n traverse(arrayOption, 0, nestedEditables[key], parent[key], key);\n }\n else {\n // Advanced arrays, e.g. [Object, Object]\n parent[key][i] = {};\n objectEach(arrayOption, function (nestedOption, nestedKey) {\n traverse(nestedOption, nestedKey, nestedEditables[key], parent[key][i], key);\n });\n }\n });\n }\n else if (isObject(option)) {\n nextParent = {};\n if (isArray(parent)) {\n parent.push(nextParent);\n nextParent[key] = {};\n nextParent = nextParent[key];\n }\n else {\n parent[key] = nextParent;\n }\n objectEach(option, function (nestedOption, nestedKey) {\n traverse(nestedOption, nestedKey, key === 0 ?\n parentEditables :\n nestedEditables[key], nextParent, key);\n });\n }\n else {\n // Leaf:\n if (key === 'format') {\n parent[key] = [\n format(option, annotation.labels[0].points[0]).toString(),\n 'text'\n ];\n }\n else if (isArray(parent)) {\n parent.push([option, NavigationBindings_getFieldType(parentKey, option)]);\n }\n else {\n parent[key] = [option, NavigationBindings_getFieldType(key, option)];\n }\n }\n }\n }\n objectEach(options, function (option, key) {\n if (key === 'typeOptions') {\n visualOptions[key] = {};\n objectEach(options[key], function (typeOption, typeKey) {\n traverse(typeOption, typeKey, nestedEditables, visualOptions[key], typeKey);\n });\n }\n else {\n traverse(option, key, editables[type], visualOptions, key);\n }\n });\n return visualOptions;\n };\n /**\n * Get all class names for all parents in the element. Iterates until finds\n * main container.\n *\n * @private\n * @function Highcharts.NavigationBindings#getClickedClassNames\n *\n * @param {Highcharts.HTMLDOMElement} container\n * Container that event is bound to.\n *\n * @param {global.Event} event\n * Browser's event.\n *\n * @return {Array<Array<string, Highcharts.HTMLDOMElement>>}\n * Array of class names with corresponding elements\n */\n NavigationBindings.prototype.getClickedClassNames = function (container, event) {\n var element = event.target,\n classNames = [],\n elemClassName;\n while (element && element.tagName) {\n elemClassName = attr(element, 'class');\n if (elemClassName) {\n classNames = classNames.concat(elemClassName\n .split(' ')\n // eslint-disable-next-line no-loop-func\n .map(function (name) { return ([name, element]); }));\n }\n element = element.parentNode;\n if (element === container) {\n return classNames;\n }\n }\n return classNames;\n };\n /**\n * Get events bound to a button. It's a custom event delegation to find all\n * events connected to the element.\n *\n * @private\n * @function Highcharts.NavigationBindings#getButtonEvents\n *\n * @param {Highcharts.HTMLDOMElement} container\n * Container that event is bound to.\n *\n * @param {global.Event} event\n * Browser's event.\n *\n * @return {Object}\n * Object with events (init, start, steps, and end)\n */\n NavigationBindings.prototype.getButtonEvents = function (container, event) {\n var navigation = this,\n classNames = this.getClickedClassNames(container,\n event);\n var bindings;\n classNames.forEach(function (className) {\n if (navigation.boundClassNames[className[0]] && !bindings) {\n bindings = {\n events: navigation.boundClassNames[className[0]],\n button: className[1]\n };\n }\n });\n return bindings;\n };\n /**\n * Bindings are just events, so the whole update process is simply\n * removing old events and adding new ones.\n *\n * @private\n * @function Highcharts.NavigationBindings#update\n */\n NavigationBindings.prototype.update = function (options) {\n this.options = NavigationBindings_merge(true, this.options, options);\n this.removeEvents();\n this.initEvents();\n };\n /**\n * Remove all events created in the navigation.\n *\n * @private\n * @function Highcharts.NavigationBindings#removeEvents\n */\n NavigationBindings.prototype.removeEvents = function () {\n this.eventsToUnbind.forEach(function (unbinder) { return unbinder(); });\n };\n /**\n * @private\n * @function Highcharts.NavigationBindings#destroy\n */\n NavigationBindings.prototype.destroy = function () {\n this.removeEvents();\n };\n /* *\n *\n * Static Properties\n *\n * */\n // Define which options from annotations should show up in edit box:\n NavigationBindings.annotationsEditable = {\n // `typeOptions` are always available\n // Nested and shared options:\n nestedOptions: {\n labelOptions: ['style', 'format', 'backgroundColor'],\n labels: ['style'],\n label: ['style'],\n style: ['fontSize', 'color'],\n background: ['fill', 'strokeWidth', 'stroke'],\n innerBackground: ['fill', 'strokeWidth', 'stroke'],\n outerBackground: ['fill', 'strokeWidth', 'stroke'],\n shapeOptions: ['fill', 'strokeWidth', 'stroke'],\n shapes: ['fill', 'strokeWidth', 'stroke'],\n line: ['strokeWidth', 'stroke'],\n backgroundColors: [true],\n connector: ['fill', 'strokeWidth', 'stroke'],\n crosshairX: ['strokeWidth', 'stroke'],\n crosshairY: ['strokeWidth', 'stroke']\n },\n // Simple shapes:\n circle: ['shapes'],\n ellipse: ['shapes'],\n verticalLine: [],\n label: ['labelOptions'],\n // Measure\n measure: ['background', 'crosshairY', 'crosshairX'],\n // Others:\n fibonacci: [],\n tunnel: ['background', 'line', 'height'],\n pitchfork: ['innerBackground', 'outerBackground'],\n rect: ['shapes'],\n // Crooked lines, elliots, arrows etc:\n crookedLine: [],\n basicAnnotation: ['shapes', 'labelOptions']\n };\n // Define non editable fields per annotation, for example Rectangle inherits\n // options from Measure, but crosshairs are not available\n NavigationBindings.annotationsNonEditable = {\n rectangle: ['crosshairX', 'crosshairY', 'labelOptions'],\n ellipse: ['labelOptions'],\n circle: ['labelOptions']\n };\n return NavigationBindings;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Annotations_NavigationBindings = (NavigationBindings);\n/* *\n *\n * API Declarations\n *\n * */\n/**\n * A config object for navigation bindings in annotations.\n *\n * @interface Highcharts.NavigationBindingsOptionsObject\n */ /**\n* ClassName of the element for a binding.\n* @name Highcharts.NavigationBindingsOptionsObject#className\n* @type {string|undefined}\n*/ /**\n* Last event to be fired after last step event.\n* @name Highcharts.NavigationBindingsOptionsObject#end\n* @type {Function|undefined}\n*/ /**\n* Initial event, fired on a button click.\n* @name Highcharts.NavigationBindingsOptionsObject#init\n* @type {Function|undefined}\n*/ /**\n* Event fired on first click on a chart.\n* @name Highcharts.NavigationBindingsOptionsObject#start\n* @type {Function|undefined}\n*/ /**\n* Last event to be fired after last step event. Array of step events to be\n* called sequentially after each user click.\n* @name Highcharts.NavigationBindingsOptionsObject#steps\n* @type {Array<Function>|undefined}\n*/\n(''); // Keeps doclets above in JS file\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Series\"],\"commonjs\":[\"highcharts\",\"Series\"],\"commonjs2\":[\"highcharts\",\"Series\"],\"root\":[\"Highcharts\",\"Series\"]}\nvar highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_ = __webpack_require__(820);\nvar highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default = /*#__PURE__*/__webpack_require__.n(highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_);\n;// ./code/es5/es-modules/Stock/StockTools/StockToolsUtilities.js\n/**\n *\n * Events generator for Stock tools\n *\n * (c) 2009-2024 Paweł Fus\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar getOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).getOptions;\n\nvar StockToolsUtilities_getAssignedAxis = NavigationBindingsUtilities.getAssignedAxis, StockToolsUtilities_getFieldType = NavigationBindingsUtilities.getFieldType;\n\n\nvar StockToolsUtilities_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, StockToolsUtilities_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, StockToolsUtilities_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, uniqueKey = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).uniqueKey;\n/* *\n *\n * Constants\n *\n * */\n/**\n * @private\n */\nvar indicatorsWithAxes = [\n 'apo',\n 'ad',\n 'aroon',\n 'aroonoscillator',\n 'atr',\n 'ao',\n 'cci',\n 'chaikin',\n 'cmf',\n 'cmo',\n 'disparityindex',\n 'dmi',\n 'dpo',\n 'linearRegressionAngle',\n 'linearRegressionIntercept',\n 'linearRegressionSlope',\n 'klinger',\n 'macd',\n 'mfi',\n 'momentum',\n 'natr',\n 'obv',\n 'ppo',\n 'roc',\n 'rsi',\n 'slowstochastic',\n 'stochastic',\n 'trix',\n 'williamsr'\n];\n/**\n * @private\n */\nvar indicatorsWithVolume = [\n 'ad',\n 'cmf',\n 'klinger',\n 'mfi',\n 'obv',\n 'vbp',\n 'vwap'\n];\n/* *\n *\n * Functions\n *\n * */\n/**\n * Generates function which will add a flag series using modal in GUI.\n * Method fires an event \"showPopup\" with config:\n * `{type, options, callback}`.\n *\n * Example: NavigationBindings.utils.addFlagFromForm('url(...)') - will\n * generate function that shows modal in GUI.\n *\n * @private\n * @function bindingsUtils.addFlagFromForm\n *\n * @param {Highcharts.FlagsShapeValue} type\n * Type of flag series, e.g. \"squarepin\"\n *\n * @return {Function}\n * Callback to be used in `start` callback\n */\nfunction addFlagFromForm(type) {\n return function (e) {\n var navigation = this,\n chart = navigation.chart,\n toolbar = chart.stockTools,\n point = attractToPoint(e,\n chart);\n if (!point) {\n return;\n }\n var pointConfig = {\n x: point.x,\n y: point.y\n };\n var seriesOptions = {\n type: 'flags',\n onSeries: point.series.id,\n shape: type,\n data: [pointConfig],\n xAxis: point.xAxis,\n yAxis: point.yAxis,\n point: {\n events: {\n click: function () {\n var point = this,\n options = point.options;\n StockToolsUtilities_fireEvent(navigation, 'showPopup', {\n point: point,\n formType: 'annotation-toolbar',\n options: {\n langKey: 'flags',\n type: 'flags',\n title: [\n options.title,\n StockToolsUtilities_getFieldType('title', options.title)\n ],\n name: [\n options.name,\n StockToolsUtilities_getFieldType('name', options.name)\n ]\n },\n onSubmit: function (updated) {\n if (updated.actionType === 'remove') {\n point.remove();\n }\n else {\n point.update(navigation.fieldsToOptions(updated.fields, {}));\n }\n }\n });\n }\n }\n }\n };\n if (!toolbar || !toolbar.guiEnabled) {\n chart.addSeries(seriesOptions);\n }\n StockToolsUtilities_fireEvent(navigation, 'showPopup', {\n formType: 'flag',\n // Enabled options:\n options: {\n langKey: 'flags',\n type: 'flags',\n title: ['A', StockToolsUtilities_getFieldType('label', 'A')],\n name: ['Flag A', StockToolsUtilities_getFieldType('label', 'Flag A')]\n },\n // Callback on submit:\n onSubmit: function (data) {\n navigation.fieldsToOptions(data.fields, seriesOptions.data[0]);\n chart.addSeries(seriesOptions);\n }\n });\n };\n}\n/**\n * @private\n * @todo\n * Consider using getHoverData(), but always kdTree (columns?)\n */\nfunction attractToPoint(e, chart) {\n var _a;\n var coords = (_a = chart.pointer) === null || _a === void 0 ? void 0 : _a.getCoordinates(e);\n var coordsX,\n coordsY,\n distX = Number.MAX_VALUE,\n closestPoint;\n if (chart.navigationBindings && coords) {\n coordsX = StockToolsUtilities_getAssignedAxis(coords.xAxis);\n coordsY = StockToolsUtilities_getAssignedAxis(coords.yAxis);\n }\n // Exit if clicked out of axes area.\n if (!coordsX || !coordsY) {\n return;\n }\n var x = coordsX.value;\n var y = coordsY.value;\n // Search by 'x' but only in yAxis' series.\n coordsY.axis.series.forEach(function (series) {\n if (series.points) {\n var point = series.searchPoint(e,\n true);\n if (point && distX > Math.abs(point.x - x)) {\n distX = Math.abs(point.x - x);\n closestPoint = point;\n }\n }\n });\n if (closestPoint && closestPoint.x && closestPoint.y) {\n return {\n x: closestPoint.x,\n y: closestPoint.y,\n below: y < closestPoint.y,\n series: closestPoint.series,\n xAxis: closestPoint.series.xAxis.index || 0,\n yAxis: closestPoint.series.yAxis.index || 0\n };\n }\n}\n/**\n * Shorthand to check if given yAxis comes from navigator.\n *\n * @private\n * @function bindingsUtils.isNotNavigatorYAxis\n *\n * @param {Highcharts.Axis} axis\n * Axis to check.\n *\n * @return {boolean}\n * True, if axis comes from navigator.\n */\nfunction isNotNavigatorYAxis(axis) {\n return axis.userOptions.className !== 'highcharts-navigator-yaxis';\n}\n/**\n * Check if any of the price indicators are enabled.\n * @private\n * @function bindingsUtils.isLastPriceEnabled\n *\n * @param {Array} series\n * Array of series.\n *\n * @return {boolean}\n * Tells which indicator is enabled.\n */\nfunction isPriceIndicatorEnabled(series) {\n return series.some(function (s) { return s.lastVisiblePrice || s.lastPrice; });\n}\n/**\n * @private\n */\nfunction manageIndicators(data) {\n var chart = this.chart,\n seriesConfig = {\n linkedTo: data.linkedTo,\n type: data.type\n };\n var yAxis,\n parentSeries,\n defaultOptions,\n series;\n if (data.actionType === 'edit') {\n this.fieldsToOptions(data.fields, seriesConfig);\n series = chart.get(data.seriesId);\n if (series) {\n series.update(seriesConfig, false);\n }\n }\n else if (data.actionType === 'remove') {\n series = chart.get(data.seriesId);\n if (series) {\n yAxis = series.yAxis;\n if (series.linkedSeries) {\n series.linkedSeries.forEach(function (linkedSeries) {\n linkedSeries.remove(false);\n });\n }\n series.remove(false);\n if (indicatorsWithAxes.indexOf(series.type) >= 0) {\n var removedYAxisProps = {\n height: yAxis.options.height,\n top: yAxis.options.top\n };\n yAxis.remove(false);\n this.resizeYAxes(removedYAxisProps);\n }\n }\n }\n else {\n seriesConfig.id = uniqueKey();\n this.fieldsToOptions(data.fields, seriesConfig);\n parentSeries = chart.get(seriesConfig.linkedTo);\n defaultOptions = getOptions().plotOptions;\n // Make sure that indicator uses the SUM approx if SUM approx is used\n // by parent series (#13950).\n if (typeof parentSeries !== 'undefined' &&\n parentSeries instanceof (highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default()) &&\n parentSeries.getDGApproximation() === 'sum' &&\n // If indicator has defined approx type, use it (e.g. \"ranges\")\n !StockToolsUtilities_defined(defaultOptions && defaultOptions[seriesConfig.type] &&\n defaultOptions.dataGrouping &&\n defaultOptions.dataGrouping.approximation)) {\n seriesConfig.dataGrouping = {\n approximation: 'sum'\n };\n }\n if (indicatorsWithAxes.indexOf(data.type) >= 0) {\n yAxis = chart.addAxis({\n id: uniqueKey(),\n offset: 0,\n opposite: true,\n title: {\n text: ''\n },\n tickPixelInterval: 40,\n showLastLabel: false,\n labels: {\n align: 'left',\n y: -2\n }\n }, false, false);\n seriesConfig.yAxis = yAxis.options.id;\n this.resizeYAxes();\n }\n else {\n seriesConfig.yAxis = chart.get(data.linkedTo).options.yAxis;\n }\n if (indicatorsWithVolume.indexOf(data.type) >= 0) {\n seriesConfig.params.volumeSeriesID = chart.series.filter(function (series) {\n return series.options.type === 'column';\n })[0].options.id;\n }\n chart.addSeries(seriesConfig, false);\n }\n StockToolsUtilities_fireEvent(this, 'deselectButton', {\n button: this.selectedButtonElement\n });\n chart.redraw();\n}\n/**\n * Update height for an annotation. Height is calculated as a difference\n * between last point in `typeOptions` and current position. It's a value,\n * not pixels height.\n *\n * @private\n * @function bindingsUtils.updateHeight\n *\n * @param {Highcharts.PointerEventObject} e\n * normalized browser event\n *\n * @param {Highcharts.Annotation} annotation\n * Annotation to be updated\n */\nfunction updateHeight(e, annotation) {\n var options = annotation.options.typeOptions,\n yAxis = StockToolsUtilities_isNumber(options.yAxis) && this.chart.yAxis[options.yAxis];\n if (yAxis && options.points) {\n annotation.update({\n typeOptions: {\n height: yAxis.toValue(e[yAxis.horiz ? 'chartX' : 'chartY']) -\n (options.points[1].y || 0)\n }\n });\n }\n}\n/**\n * Update each point after specified index, most of the annotations use\n * this. For example crooked line: logic behind updating each point is the\n * same, only index changes when adding an annotation.\n *\n * Example: NavigationBindings.utils.updateNthPoint(1) - will generate\n * function that updates all consecutive points except point with index=0.\n *\n * @private\n * @function bindingsUtils.updateNthPoint\n *\n * @param {number} startIndex\n * Index from which point should update\n *\n * @return {Function}\n * Callback to be used in steps array\n */\nfunction updateNthPoint(startIndex) {\n return function (e, annotation) {\n var options = annotation.options.typeOptions,\n xAxis = StockToolsUtilities_isNumber(options.xAxis) && this.chart.xAxis[options.xAxis],\n yAxis = StockToolsUtilities_isNumber(options.yAxis) && this.chart.yAxis[options.yAxis];\n if (xAxis && yAxis) {\n options.points.forEach(function (point, index) {\n if (index >= startIndex) {\n point.x = xAxis.toValue(e[xAxis.horiz ? 'chartX' : 'chartY']);\n point.y = yAxis.toValue(e[yAxis.horiz ? 'chartX' : 'chartY']);\n }\n });\n annotation.update({\n typeOptions: {\n points: options.points\n }\n });\n }\n };\n}\n/**\n * Update size of background (rect) in some annotations: Measure, Simple\n * Rect.\n *\n * @private\n * @function Highcharts.NavigationBindingsUtilsObject.updateRectSize\n *\n * @param {Highcharts.PointerEventObject} event\n * Normalized browser event\n *\n * @param {Highcharts.Annotation} annotation\n * Annotation to be updated\n */\nfunction updateRectSize(event, annotation) {\n var chart = annotation.chart,\n options = annotation.options.typeOptions,\n xAxis = StockToolsUtilities_isNumber(options.xAxis) && chart.xAxis[options.xAxis],\n yAxis = StockToolsUtilities_isNumber(options.yAxis) && chart.yAxis[options.yAxis];\n if (xAxis && yAxis) {\n var x = xAxis.toValue(event[xAxis.horiz ? 'chartX' : 'chartY']), y = yAxis.toValue(event[yAxis.horiz ? 'chartX' : 'chartY']), width = x - options.point.x, height = options.point.y - y;\n annotation.update({\n typeOptions: {\n background: {\n width: chart.inverted ? height : width,\n height: chart.inverted ? width : height\n }\n }\n });\n }\n}\n/**\n * Compares two arrays of strings, checking their length and if corresponding\n * elements are equal.\n *\n * @param {string[]} a\n * The first array to compare.\n * @param {string[]} b\n * The second array to compare.\n * @return {boolean}\n * Return `true` if the arrays are equal, otherwise `false`.\n */\nfunction shallowArraysEqual(a, b) {\n if (!StockToolsUtilities_defined(a) || !StockToolsUtilities_defined(b)) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/* *\n *\n * Default Export\n *\n * */\nvar StockToolsUtilities = {\n indicatorsWithAxes: indicatorsWithAxes,\n indicatorsWithVolume: indicatorsWithVolume,\n addFlagFromForm: addFlagFromForm,\n attractToPoint: attractToPoint,\n getAssignedAxis: StockToolsUtilities_getAssignedAxis,\n isNotNavigatorYAxis: isNotNavigatorYAxis,\n isPriceIndicatorEnabled: isPriceIndicatorEnabled,\n manageIndicators: manageIndicators,\n shallowArraysEqual: shallowArraysEqual,\n updateHeight: updateHeight,\n updateNthPoint: updateNthPoint,\n updateRectSize: updateRectSize\n};\n/* harmony default export */ var StockTools_StockToolsUtilities = (StockToolsUtilities);\n\n;// ./code/es5/es-modules/Stock/StockTools/StockToolsBindings.js\n/**\n *\n * Events generator for Stock tools\n *\n * (c) 2009-2024 Paweł Fus\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nvar StockToolsBindings_addFlagFromForm = StockTools_StockToolsUtilities.addFlagFromForm, StockToolsBindings_attractToPoint = StockTools_StockToolsUtilities.attractToPoint, StockToolsBindings_isNotNavigatorYAxis = StockTools_StockToolsUtilities.isNotNavigatorYAxis, StockToolsBindings_isPriceIndicatorEnabled = StockTools_StockToolsUtilities.isPriceIndicatorEnabled, StockToolsBindings_manageIndicators = StockTools_StockToolsUtilities.manageIndicators, StockToolsBindings_updateHeight = StockTools_StockToolsUtilities.updateHeight, StockToolsBindings_updateNthPoint = StockTools_StockToolsUtilities.updateNthPoint, StockToolsBindings_updateRectSize = StockTools_StockToolsUtilities.updateRectSize;\n\nvar StockToolsBindings_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, StockToolsBindings_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n * Constants\n *\n * */\n/**\n * @sample {highstock} stock/stocktools/custom-stock-tools-bindings\n * Custom stock tools bindings\n *\n * @type {Highcharts.Dictionary<Highcharts.NavigationBindingsOptionsObject>}\n * @since 7.0.0\n * @optionparent navigation.bindings\n */\nvar StockToolsBindings = {\n // Line type annotations:\n /**\n * A segment annotation bindings. Includes `start` and one event in `steps`\n * array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-segment\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n segment: {\n /** @ignore-option */\n className: 'highcharts-segment',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var navigation = this.chart.options.navigation,\n options = StockToolsBindings_merge({\n langKey: 'segment',\n type: 'crookedLine',\n typeOptions: {\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [{\n x: coordsX.value,\n y: coordsY.value\n }, {\n x: coordsX.value,\n y: coordsY.value\n }]\n }\n },\n navigation.annotationsOptions,\n navigation.bindings.segment.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateNthPoint(1)\n ]\n },\n /**\n * A segment with an arrow annotation bindings. Includes `start` and one\n * event in `steps` array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-arrow-segment\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n arrowSegment: {\n /** @ignore-option */\n className: 'highcharts-arrow-segment',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var navigation = this.chart.options.navigation,\n options = StockToolsBindings_merge({\n langKey: 'arrowSegment',\n type: 'crookedLine',\n typeOptions: {\n line: {\n markerEnd: 'arrow'\n },\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [{\n x: coordsX.value,\n y: coordsY.value\n }, {\n x: coordsX.value,\n y: coordsY.value\n }]\n }\n },\n navigation.annotationsOptions,\n navigation.bindings.arrowSegment.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateNthPoint(1)\n ]\n },\n /**\n * A ray annotation bindings. Includes `start` and one event in `steps`\n * array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-ray\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n ray: {\n /** @ignore-option */\n className: 'highcharts-ray',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var navigation = this.chart.options.navigation,\n options = StockToolsBindings_merge({\n langKey: 'ray',\n type: 'infinityLine',\n typeOptions: {\n type: 'ray',\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [{\n x: coordsX.value,\n y: coordsY.value\n }, {\n x: coordsX.value,\n y: coordsY.value\n }]\n }\n },\n navigation.annotationsOptions,\n navigation.bindings.ray.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateNthPoint(1)\n ]\n },\n /**\n * A ray with an arrow annotation bindings. Includes `start` and one event\n * in `steps` array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-arrow-ray\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n arrowRay: {\n /** @ignore-option */\n className: 'highcharts-arrow-ray',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var navigation = this.chart.options.navigation,\n options = StockToolsBindings_merge({\n langKey: 'arrowRay',\n type: 'infinityLine',\n typeOptions: {\n type: 'ray',\n line: {\n markerEnd: 'arrow'\n },\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [{\n x: coordsX.value,\n y: coordsY.value\n }, {\n x: coordsX.value,\n y: coordsY.value\n }]\n }\n },\n navigation.annotationsOptions,\n navigation.bindings.arrowRay.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateNthPoint(1)\n ]\n },\n /**\n * A line annotation. Includes `start` and one event in `steps` array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-infinity-line\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n infinityLine: {\n /** @ignore-option */\n className: 'highcharts-infinity-line',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var navigation = this.chart.options.navigation,\n options = StockToolsBindings_merge({\n langKey: 'infinityLine',\n type: 'infinityLine',\n typeOptions: {\n type: 'line',\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [{\n x: coordsX.value,\n y: coordsY.value\n }, {\n x: coordsX.value,\n y: coordsY.value\n }]\n }\n },\n navigation.annotationsOptions,\n navigation.bindings.infinityLine.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateNthPoint(1)\n ]\n },\n /**\n * A line with arrow annotation. Includes `start` and one event in `steps`\n * array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-arrow-infinity-line\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n arrowInfinityLine: {\n /** @ignore-option */\n className: 'highcharts-arrow-infinity-line',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var navigation = this.chart.options.navigation,\n options = StockToolsBindings_merge({\n langKey: 'arrowInfinityLine',\n type: 'infinityLine',\n typeOptions: {\n type: 'line',\n line: {\n markerEnd: 'arrow'\n },\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [{\n x: coordsX.value,\n y: coordsY.value\n }, {\n x: coordsX.value,\n y: coordsY.value\n }]\n }\n },\n navigation.annotationsOptions,\n navigation.bindings.arrowInfinityLine\n .annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateNthPoint(1)\n ]\n },\n /**\n * A horizontal line annotation. Includes `start` event.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-horizontal-line\", \"start\": function() {}, \"annotationsOptions\": {}}\n */\n horizontalLine: {\n /** @ignore-option */\n className: 'highcharts-horizontal-line',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var navigation = this.chart.options.navigation,\n options = StockToolsBindings_merge({\n langKey: 'horizontalLine',\n type: 'infinityLine',\n draggable: 'y',\n typeOptions: {\n type: 'horizontalLine',\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [{\n x: coordsX.value,\n y: coordsY.value\n }]\n }\n },\n navigation.annotationsOptions,\n navigation.bindings\n .horizontalLine.annotationsOptions);\n this.chart.addAnnotation(options);\n }\n },\n /**\n * A vertical line annotation. Includes `start` event.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-vertical-line\", \"start\": function() {}, \"annotationsOptions\": {}}\n */\n verticalLine: {\n /** @ignore-option */\n className: 'highcharts-vertical-line',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var navigation = this.chart.options.navigation,\n options = StockToolsBindings_merge({\n langKey: 'verticalLine',\n type: 'infinityLine',\n draggable: 'x',\n typeOptions: {\n type: 'verticalLine',\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [{\n x: coordsX.value,\n y: coordsY.value\n }]\n }\n },\n navigation.annotationsOptions,\n navigation.bindings.verticalLine.annotationsOptions);\n this.chart.addAnnotation(options);\n }\n },\n /**\n * Crooked line (three points) annotation bindings. Includes `start` and two\n * events in `steps` (for second and third points in crooked line) array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-crooked3\", \"start\": function() {}, \"steps\": [function() {}, function() {}], \"annotationsOptions\": {}}\n */\n // Crooked Line type annotations:\n crooked3: {\n /** @ignore-option */\n className: 'highcharts-crooked3',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var x = coordsX.value,\n y = coordsY.value,\n navigation = this.chart.options.navigation,\n options = StockToolsBindings_merge({\n langKey: 'crooked3',\n type: 'crookedLine',\n typeOptions: {\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [\n { x: x,\n y: y },\n { x: x,\n y: y },\n { x: x,\n y: y }\n ]\n }\n },\n navigation.annotationsOptions,\n navigation.bindings.crooked3.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateNthPoint(1),\n StockToolsBindings_updateNthPoint(2)\n ]\n },\n /**\n * Crooked line (five points) annotation bindings. Includes `start` and four\n * events in `steps` (for all consequent points in crooked line) array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-crooked5\", \"start\": function() {}, \"steps\": [function() {}, function() {}, function() {}, function() {}], \"annotationsOptions\": {}}\n */\n crooked5: {\n /** @ignore-option */\n className: 'highcharts-crooked5',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var x = coordsX.value,\n y = coordsY.value,\n navigation = this.chart.options.navigation,\n options = StockToolsBindings_merge({\n langKey: 'crooked5',\n type: 'crookedLine',\n typeOptions: {\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [\n { x: x,\n y: y },\n { x: x,\n y: y },\n { x: x,\n y: y },\n { x: x,\n y: y },\n { x: x,\n y: y }\n ]\n }\n },\n navigation.annotationsOptions,\n navigation.bindings.crooked5.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateNthPoint(1),\n StockToolsBindings_updateNthPoint(2),\n StockToolsBindings_updateNthPoint(3),\n StockToolsBindings_updateNthPoint(4)\n ]\n },\n /**\n * Elliott wave (three points) annotation bindings. Includes `start` and two\n * events in `steps` (for second and third points) array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-elliott3\", \"start\": function() {}, \"steps\": [function() {}, function() {}], \"annotationsOptions\": {}}\n */\n elliott3: {\n /** @ignore-option */\n className: 'highcharts-elliott3',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var x = coordsX.value, y = coordsY.value, navigation = this.chart.options.navigation, options = StockToolsBindings_merge({\n langKey: 'elliott3',\n type: 'elliottWave',\n typeOptions: {\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [\n { x: x, y: y },\n { x: x, y: y },\n { x: x, y: y },\n { x: x, y: y }\n ]\n },\n labelOptions: {\n style: {\n color: \"#666666\" /* Palette.neutralColor60 */\n }\n }\n }, navigation.annotationsOptions, navigation.bindings.elliott3.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateNthPoint(1),\n StockToolsBindings_updateNthPoint(2),\n StockToolsBindings_updateNthPoint(3)\n ]\n },\n /**\n * Elliott wave (five points) annotation bindings. Includes `start` and four\n * event in `steps` (for all consequent points in Elliott wave) array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-elliott3\", \"start\": function() {}, \"steps\": [function() {}, function() {}, function() {}, function() {}], \"annotationsOptions\": {}}\n */\n elliott5: {\n /** @ignore-option */\n className: 'highcharts-elliott5',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var x = coordsX.value, y = coordsY.value, navigation = this.chart.options.navigation, options = StockToolsBindings_merge({\n langKey: 'elliott5',\n type: 'elliottWave',\n typeOptions: {\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [\n { x: x, y: y },\n { x: x, y: y },\n { x: x, y: y },\n { x: x, y: y },\n { x: x, y: y },\n { x: x, y: y }\n ]\n },\n labelOptions: {\n style: {\n color: \"#666666\" /* Palette.neutralColor60 */\n }\n }\n }, navigation.annotationsOptions, navigation.bindings.elliott5.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateNthPoint(1),\n StockToolsBindings_updateNthPoint(2),\n StockToolsBindings_updateNthPoint(3),\n StockToolsBindings_updateNthPoint(4),\n StockToolsBindings_updateNthPoint(5)\n ]\n },\n /**\n * A measure (x-dimension) annotation bindings. Includes `start` and one\n * event in `steps` array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-measure-x\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n measureX: {\n /** @ignore-option */\n className: 'highcharts-measure-x',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var x = coordsX.value, y = coordsY.value, navigation = this.chart.options.navigation, options = StockToolsBindings_merge({\n langKey: 'measure',\n type: 'measure',\n typeOptions: {\n selectType: 'x',\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n point: { x: x, y: y },\n crosshairX: {\n strokeWidth: 1,\n stroke: \"#000000\" /* Palette.neutralColor100 */\n },\n crosshairY: {\n enabled: false,\n strokeWidth: 0,\n stroke: \"#000000\" /* Palette.neutralColor100 */\n },\n background: {\n width: 0,\n height: 0,\n strokeWidth: 0,\n stroke: \"#ffffff\" /* Palette.backgroundColor */\n }\n },\n labelOptions: {\n style: {\n color: \"#666666\" /* Palette.neutralColor60 */\n }\n }\n }, navigation.annotationsOptions, navigation.bindings.measureX.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateRectSize\n ]\n },\n /**\n * A measure (y-dimension) annotation bindings. Includes `start` and one\n * event in `steps` array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-measure-y\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n measureY: {\n /** @ignore-option */\n className: 'highcharts-measure-y',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var x = coordsX.value, y = coordsY.value, navigation = this.chart.options.navigation, options = StockToolsBindings_merge({\n langKey: 'measure',\n type: 'measure',\n typeOptions: {\n selectType: 'y',\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n point: { x: x, y: y },\n crosshairX: {\n enabled: false,\n strokeWidth: 0,\n stroke: \"#000000\" /* Palette.neutralColor100 */\n },\n crosshairY: {\n strokeWidth: 1,\n stroke: \"#000000\" /* Palette.neutralColor100 */\n },\n background: {\n width: 0,\n height: 0,\n strokeWidth: 0,\n stroke: \"#ffffff\" /* Palette.backgroundColor */\n }\n },\n labelOptions: {\n style: {\n color: \"#666666\" /* Palette.neutralColor60 */\n }\n }\n }, navigation.annotationsOptions, navigation.bindings.measureY.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateRectSize\n ]\n },\n /**\n * A measure (xy-dimension) annotation bindings. Includes `start` and one\n * event in `steps` array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-measure-xy\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n measureXY: {\n /** @ignore-option */\n className: 'highcharts-measure-xy',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var x = coordsX.value, y = coordsY.value, navigation = this.chart.options.navigation, options = StockToolsBindings_merge({\n langKey: 'measure',\n type: 'measure',\n typeOptions: {\n selectType: 'xy',\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n point: { x: x, y: y },\n background: {\n width: 0,\n height: 0,\n strokeWidth: 0,\n stroke: \"#ffffff\" /* Palette.backgroundColor */\n },\n crosshairX: {\n strokeWidth: 1,\n stroke: \"#000000\" /* Palette.neutralColor100 */\n },\n crosshairY: {\n strokeWidth: 1,\n stroke: \"#000000\" /* Palette.neutralColor100 */\n }\n },\n labelOptions: {\n style: {\n color: \"#666666\" /* Palette.neutralColor60 */\n }\n }\n }, navigation.annotationsOptions, navigation.bindings.measureXY.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateRectSize\n ]\n },\n // Advanced type annotations:\n /**\n * A fibonacci annotation bindings. Includes `start` and two events in\n * `steps` array (updates second point, then height).\n *\n * @sample {highstock} stock/stocktools/custom-stock-tools-bindings\n * Custom stock tools bindings\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-fibonacci\", \"start\": function() {}, \"steps\": [function() {}, function() {}], \"annotationsOptions\": { \"typeOptions\": { \"reversed\": false }}}\n */\n fibonacci: {\n className: 'highcharts-fibonacci',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var x = coordsX.value, y = coordsY.value, navigation = this.chart.options.navigation, options = StockToolsBindings_merge({\n langKey: 'fibonacci',\n type: 'fibonacci',\n typeOptions: {\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [\n { x: x, y: y },\n { x: x, y: y }\n ]\n },\n labelOptions: {\n style: {\n color: \"#666666\" /* Palette.neutralColor60 */\n }\n }\n }, navigation.annotationsOptions, navigation.bindings.fibonacci.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateNthPoint(1),\n StockToolsBindings_updateHeight\n ]\n },\n /**\n * A parallel channel (tunnel) annotation bindings. Includes `start` and\n * two events in `steps` array (updates second point, then height).\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-parallel-channel\", \"start\": function() {}, \"steps\": [function() {}, function() {}], \"annotationsOptions\": {}}\n */\n parallelChannel: {\n /** @ignore-option */\n className: 'highcharts-parallel-channel',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var x = coordsX.value,\n y = coordsY.value,\n navigation = this.chart.options.navigation,\n options = StockToolsBindings_merge({\n langKey: 'parallelChannel',\n type: 'tunnel',\n typeOptions: {\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [\n { x: x,\n y: y },\n { x: x,\n y: y }\n ]\n }\n },\n navigation.annotationsOptions,\n navigation.bindings.parallelChannel\n .annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateNthPoint(1),\n StockToolsBindings_updateHeight\n ]\n },\n /**\n * An Andrew's pitchfork annotation bindings. Includes `start` and two\n * events in `steps` array (sets second and third control points).\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-pitchfork\", \"start\": function() {}, \"steps\": [function() {}, function() {}], \"annotationsOptions\": {}}\n */\n pitchfork: {\n /** @ignore-option */\n className: 'highcharts-pitchfork',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var x = coordsX.value, y = coordsY.value, navigation = this.chart.options.navigation, options = StockToolsBindings_merge({\n langKey: 'pitchfork',\n type: 'pitchfork',\n typeOptions: {\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [{\n x: coordsX.value,\n y: coordsY.value,\n controlPoint: {\n style: {\n fill: \"#f21313\" /* Palette.negativeColor */\n }\n }\n },\n { x: x, y: y },\n { x: x, y: y }\n ],\n innerBackground: {\n fill: 'rgba(100, 170, 255, 0.8)'\n }\n },\n shapeOptions: {\n strokeWidth: 2\n }\n }, navigation.annotationsOptions, navigation.bindings.pitchfork.annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n steps: [\n StockToolsBindings_updateNthPoint(1),\n StockToolsBindings_updateNthPoint(2)\n ]\n },\n // Labels with arrow and auto increments\n /**\n * A vertical counter annotation bindings. Includes `start` event. On click,\n * finds the closest point and marks it with a numeric annotation -\n * incrementing counter on each add.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-vertical-counter\", \"start\": function() {}, \"annotationsOptions\": {}}\n */\n verticalCounter: {\n /** @ignore-option */\n className: 'highcharts-vertical-counter',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var closestPoint = StockToolsBindings_attractToPoint(e,\n this.chart);\n // Exit if clicked out of axes area\n if (!closestPoint) {\n return;\n }\n this.verticalCounter = this.verticalCounter || 0;\n var navigation = this.chart.options.navigation, options = StockToolsBindings_merge({\n langKey: 'verticalCounter',\n type: 'verticalLine',\n typeOptions: {\n point: {\n x: closestPoint.x,\n y: closestPoint.y,\n xAxis: closestPoint.xAxis,\n yAxis: closestPoint.yAxis\n },\n label: {\n offset: closestPoint.below ? 40 : -40,\n text: this.verticalCounter.toString()\n }\n },\n labelOptions: {\n style: {\n color: \"#666666\" /* Palette.neutralColor60 */,\n fontSize: '0.7em'\n }\n },\n shapeOptions: {\n stroke: 'rgba(0, 0, 0, 0.75)',\n strokeWidth: 1\n }\n }, navigation.annotationsOptions, navigation.bindings\n .verticalCounter.annotationsOptions), annotation = this.chart.addAnnotation(options);\n this.verticalCounter++;\n annotation.options.events.click.call(annotation, {});\n }\n },\n /**\n * A time cycles annotation bindings. Includes `start` event and 1 `step`\n * event. first click marks the beginning of the circle, and the second one\n * sets its diameter.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-time-cycles\", \"start\": function() {}, \"steps\": [function (){}] \"annotationsOptions\": {}}\n */\n timeCycles: {\n className: 'highcharts-time-cycles',\n start: function (e) {\n var closestPoint = StockToolsBindings_attractToPoint(e,\n this.chart);\n // Exit if clicked out of axes area\n if (!closestPoint) {\n return;\n }\n var navigation = this.chart.options.navigation, options = StockToolsBindings_merge({\n langKey: 'timeCycles',\n type: 'timeCycles',\n typeOptions: {\n xAxis: closestPoint.xAxis,\n yAxis: closestPoint.yAxis,\n points: [{\n x: closestPoint.x\n }, {\n x: closestPoint.x\n }],\n line: {\n stroke: 'rgba(0, 0, 0, 0.75)',\n fill: 'transparent',\n strokeWidth: 2\n }\n }\n }, navigation.annotationsOptions, navigation.bindings.timeCycles.annotationsOptions), annotation = this.chart.addAnnotation(options);\n annotation.options.events.click.call(annotation, {});\n return annotation;\n },\n steps: [\n StockToolsBindings_updateNthPoint(1)\n ]\n },\n verticalLabel: {\n /** @ignore-option */\n className: 'highcharts-vertical-label',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var closestPoint = StockToolsBindings_attractToPoint(e,\n this.chart);\n // Exit if clicked out of axes area\n if (!closestPoint) {\n return;\n }\n var navigation = this.chart.options.navigation, options = StockToolsBindings_merge({\n langKey: 'verticalLabel',\n type: 'verticalLine',\n typeOptions: {\n point: {\n x: closestPoint.x,\n y: closestPoint.y,\n xAxis: closestPoint.xAxis,\n yAxis: closestPoint.yAxis\n },\n label: {\n offset: closestPoint.below ? 40 : -40\n }\n },\n labelOptions: {\n style: {\n color: \"#666666\" /* Palette.neutralColor60 */,\n fontSize: '0.7em'\n }\n },\n shapeOptions: {\n stroke: 'rgba(0, 0, 0, 0.75)',\n strokeWidth: 1\n }\n }, navigation.annotationsOptions, navigation.bindings\n .verticalLabel.annotationsOptions), annotation = this.chart.addAnnotation(options);\n annotation.options.events.click.call(annotation, {});\n }\n },\n /**\n * A vertical arrow annotation bindings. Includes `start` event. On click,\n * finds the closest point and marks it with an arrow.\n * `${palette.positiveColor}` is the color of the arrow when\n * pointing from above and `${palette.negativeColor}`\n * when pointing from below the point.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-vertical-arrow\", \"start\": function() {}, \"annotationsOptions\": {}}\n */\n verticalArrow: {\n /** @ignore-option */\n className: 'highcharts-vertical-arrow',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var closestPoint = StockToolsBindings_attractToPoint(e,\n this.chart);\n // Exit if clicked out of axes area\n if (!closestPoint) {\n return;\n }\n var navigation = this.chart.options.navigation, options = StockToolsBindings_merge({\n langKey: 'verticalArrow',\n type: 'verticalLine',\n typeOptions: {\n point: {\n x: closestPoint.x,\n y: closestPoint.y,\n xAxis: closestPoint.xAxis,\n yAxis: closestPoint.yAxis\n },\n label: {\n offset: closestPoint.below ? 40 : -40,\n format: ' '\n },\n connector: {\n fill: 'none',\n stroke: closestPoint.below ?\n \"#f21313\" /* Palette.negativeColor */ :\n \"#06b535\" /* Palette.positiveColor */\n }\n },\n shapeOptions: {\n stroke: 'rgba(0, 0, 0, 0.75)',\n strokeWidth: 1\n }\n }, navigation.annotationsOptions, navigation.bindings\n .verticalArrow.annotationsOptions), annotation = this.chart.addAnnotation(options);\n annotation.options.events.click.call(annotation, {});\n }\n },\n /**\n * The Fibonacci Time Zones annotation bindings. Includes `start` and one\n * event in `steps` array.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-fibonacci-time-zones\", \"start\": function() {}, \"steps\": [function() {}], \"annotationsOptions\": {}}\n */\n fibonacciTimeZones: {\n /** @ignore-option */\n className: 'highcharts-fibonacci-time-zones',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n start: function (e) {\n var _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n var navigation = this.chart.options.navigation,\n options = StockToolsBindings_merge({\n type: 'fibonacciTimeZones',\n langKey: 'fibonacciTimeZones',\n typeOptions: {\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [{\n x: coordsX.value\n }]\n }\n },\n navigation.annotationsOptions,\n navigation.bindings.fibonacciTimeZones\n .annotationsOptions);\n return this.chart.addAnnotation(options);\n },\n /** @ignore-option */\n // eslint-disable-next-line valid-jsdoc\n steps: [\n function (e, annotation) {\n var mockPointOpts = annotation.options.typeOptions.points,\n x = mockPointOpts && mockPointOpts[0].x,\n _a = this.getCoords(e),\n coordsX = _a[0],\n coordsY = _a[1];\n if (coordsX && coordsY) {\n annotation.update({\n typeOptions: {\n xAxis: coordsX.axis.index,\n yAxis: coordsY.axis.index,\n points: [{\n x: x\n }, {\n x: coordsX.value\n }]\n }\n });\n }\n }\n ]\n },\n // Flag types:\n /**\n * A flag series bindings. Includes `start` event. On click, finds the\n * closest point and marks it with a flag with `'circlepin'` shape.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-flag-circlepin\", \"start\": function() {}}\n */\n flagCirclepin: {\n /** @ignore-option */\n className: 'highcharts-flag-circlepin',\n /** @ignore-option */\n start: StockToolsBindings_addFlagFromForm('circlepin')\n },\n /**\n * A flag series bindings. Includes `start` event. On click, finds the\n * closest point and marks it with a flag with `'diamondpin'` shape.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-flag-diamondpin\", \"start\": function() {}}\n */\n flagDiamondpin: {\n /** @ignore-option */\n className: 'highcharts-flag-diamondpin',\n /** @ignore-option */\n start: StockToolsBindings_addFlagFromForm('flag')\n },\n /**\n * A flag series bindings. Includes `start` event.\n * On click, finds the closest point and marks it with a flag with\n * `'squarepin'` shape.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-flag-squarepin\", \"start\": function() {}}\n */\n flagSquarepin: {\n /** @ignore-option */\n className: 'highcharts-flag-squarepin',\n /** @ignore-option */\n start: StockToolsBindings_addFlagFromForm('squarepin')\n },\n /**\n * A flag series bindings. Includes `start` event.\n * On click, finds the closest point and marks it with a flag without pin\n * shape.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-flag-simplepin\", \"start\": function() {}}\n */\n flagSimplepin: {\n /** @ignore-option */\n className: 'highcharts-flag-simplepin',\n /** @ignore-option */\n start: StockToolsBindings_addFlagFromForm('nopin')\n },\n // Other tools:\n /**\n * Enables zooming in xAxis on a chart. Includes `start` event which\n * changes [chart.zoomType](#chart.zoomType).\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-zoom-x\", \"init\": function() {}}\n */\n zoomX: {\n /** @ignore-option */\n className: 'highcharts-zoom-x',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n init: function (button) {\n this.chart.update({\n chart: {\n zooming: {\n type: 'x'\n }\n }\n });\n StockToolsBindings_fireEvent(this, 'deselectButton', { button: button });\n }\n },\n /**\n * Enables zooming in yAxis on a chart. Includes `start` event which\n * changes [chart.zoomType](#chart.zoomType).\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-zoom-y\", \"init\": function() {}}\n */\n zoomY: {\n /** @ignore-option */\n className: 'highcharts-zoom-y',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n init: function (button) {\n this.chart.update({\n chart: {\n zooming: {\n type: 'y'\n }\n }\n });\n StockToolsBindings_fireEvent(this, 'deselectButton', { button: button });\n }\n },\n /**\n * Enables zooming in xAxis and yAxis on a chart. Includes `start` event\n * which changes [chart.zoomType](#chart.zoomType).\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-zoom-xy\", \"init\": function() {}}\n */\n zoomXY: {\n /** @ignore-option */\n className: 'highcharts-zoom-xy',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n init: function (button) {\n this.chart.update({\n chart: {\n zooming: {\n type: 'xy'\n }\n }\n });\n StockToolsBindings_fireEvent(this, 'deselectButton', { button: button });\n }\n },\n /**\n * Changes main series to `'line'` type.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-series-type-line\", \"init\": function() {}}\n */\n seriesTypeLine: {\n /** @ignore-option */\n className: 'highcharts-series-type-line',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n init: function (button) {\n this.chart.series[0].update({\n type: 'line',\n useOhlcData: true\n });\n StockToolsBindings_fireEvent(this, 'deselectButton', { button: button });\n }\n },\n /**\n * Changes main series to `'ohlc'` type.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-series-type-ohlc\", \"init\": function() {}}\n */\n seriesTypeOhlc: {\n /** @ignore-option */\n className: 'highcharts-series-type-ohlc',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n init: function (button) {\n this.chart.series[0].update({\n type: 'ohlc'\n });\n StockToolsBindings_fireEvent(this, 'deselectButton', { button: button });\n }\n },\n /**\n * Changes main series to `'candlestick'` type.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-series-type-candlestick\", \"init\": function() {}}\n */\n seriesTypeCandlestick: {\n /** @ignore-option */\n className: 'highcharts-series-type-candlestick',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n init: function (button) {\n this.chart.series[0].update({\n type: 'candlestick'\n });\n StockToolsBindings_fireEvent(this, 'deselectButton', { button: button });\n }\n },\n /**\n * Changes main series to `'heikinashi'` type.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-series-type-heikinashi\", \"init\": function() {}}\n */\n seriesTypeHeikinAshi: {\n /** @ignore-option */\n className: 'highcharts-series-type-heikinashi',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n init: function (button) {\n this.chart.series[0].update({\n type: 'heikinashi'\n });\n StockToolsBindings_fireEvent(this, 'deselectButton', { button: button });\n }\n },\n /**\n * Change main series to `'hlc'` type.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-series-type-hlc\", \"init\": function () {}}\n */\n seriesTypeHLC: {\n className: 'highcharts-series-type-hlc',\n init: function (button) {\n this.chart.series[0].update({\n type: 'hlc',\n useOhlcData: true\n });\n StockToolsBindings_fireEvent(this, 'deselectButton', { button: button });\n }\n },\n /**\n * Changes main series to `'hollowcandlestick'` type.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-series-type-hollowcandlestick\", \"init\": function() {}}\n */\n seriesTypeHollowCandlestick: {\n /** @ignore-option */\n className: 'highcharts-series-type-hollowcandlestick',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n init: function (button) {\n this.chart.series[0].update({\n type: 'hollowcandlestick'\n });\n StockToolsBindings_fireEvent(this, 'deselectButton', { button: button });\n }\n },\n /**\n * Displays chart in fullscreen.\n *\n * **Note**: Fullscreen is not supported on iPhone due to iOS limitations.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"noDataState\": \"normal\", \"highcharts-full-screen\", \"init\": function() {}}\n */\n fullScreen: {\n /** @ignore-option */\n className: 'highcharts-full-screen',\n noDataState: 'normal',\n /** @ignore-option */\n init: function (button) {\n if (this.chart.fullscreen) {\n this.chart.fullscreen.toggle();\n }\n StockToolsBindings_fireEvent(this, 'deselectButton', { button: button });\n }\n },\n /**\n * Hides/shows two price indicators:\n * - last price in the dataset\n * - last price in the selected range\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-current-price-indicator\", \"init\": function() {}}\n */\n currentPriceIndicator: {\n /** @ignore-option */\n className: 'highcharts-current-price-indicator',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n init: function (button) {\n var chart = this.chart,\n series = chart.series,\n gui = chart.stockTools,\n priceIndicatorEnabled = StockToolsBindings_isPriceIndicatorEnabled(chart.series);\n if (gui && gui.guiEnabled) {\n series.forEach(function (series) {\n series.update({\n lastPrice: { enabled: !priceIndicatorEnabled },\n lastVisiblePrice: {\n enabled: !priceIndicatorEnabled,\n label: { enabled: true }\n }\n }, false);\n });\n chart.redraw();\n }\n StockToolsBindings_fireEvent(this, 'deselectButton', { button: button });\n }\n },\n /**\n * Indicators bindings. Includes `init` event to show a popup.\n *\n * Note: In order to show base series from the chart in the popup's\n * dropdown each series requires\n * [series.id](https://api.highcharts.com/highstock/series.line.id) to be\n * defined.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-indicators\", \"init\": function() {}}\n */\n indicators: {\n /** @ignore-option */\n className: 'highcharts-indicators',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n init: function () {\n var navigation = this;\n StockToolsBindings_fireEvent(navigation, 'showPopup', {\n formType: 'indicators',\n options: {},\n // Callback on submit:\n onSubmit: function (data) {\n StockToolsBindings_manageIndicators.call(navigation, data);\n }\n });\n }\n },\n /**\n * Hides/shows all annotations on a chart.\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-toggle-annotations\", \"init\": function() {}}\n */\n toggleAnnotations: {\n /** @ignore-option */\n className: 'highcharts-toggle-annotations',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n init: function (button) {\n var chart = this.chart,\n gui = chart.stockTools,\n iconsURL = gui.getIconsURL();\n this.toggledAnnotations = !this.toggledAnnotations;\n (chart.annotations || []).forEach(function (annotation) {\n annotation.setVisibility(!this.toggledAnnotations);\n }, this);\n if (gui && gui.guiEnabled) {\n if (this.toggledAnnotations) {\n button.firstChild.style['background-image'] =\n 'url(\"' + iconsURL +\n 'annotations-hidden.svg\")';\n }\n else {\n button.firstChild.style['background-image'] =\n 'url(\"' + iconsURL +\n 'annotations-visible.svg\")';\n }\n }\n StockToolsBindings_fireEvent(this, 'deselectButton', { button: button });\n }\n },\n /**\n * Save a chart in localStorage under `highcharts-chart` key.\n * Stored items:\n * - annotations\n * - indicators (with yAxes)\n * - flags\n *\n * @type {Highcharts.NavigationBindingsOptionsObject}\n * @product highstock\n * @default {\"className\": \"highcharts-save-chart\", \"noDataState\": \"normal\", \"init\": function() {}}\n */\n saveChart: {\n /** @ignore-option */\n className: 'highcharts-save-chart',\n noDataState: 'normal',\n // eslint-disable-next-line valid-jsdoc\n /** @ignore-option */\n init: function (button) {\n var navigation = this,\n chart = navigation.chart,\n annotations = [],\n indicators = [],\n flags = [],\n yAxes = [];\n chart.annotations.forEach(function (annotation, index) {\n annotations[index] = annotation.userOptions;\n });\n chart.series.forEach(function (series) {\n if (series.is('sma')) {\n indicators.push(series.userOptions);\n }\n else if (series.type === 'flags') {\n flags.push(series.userOptions);\n }\n });\n chart.yAxis.forEach(function (yAxis) {\n if (StockToolsBindings_isNotNavigatorYAxis(yAxis)) {\n yAxes.push(yAxis.options);\n }\n });\n highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().win.localStorage.setItem('highcharts-chart', JSON.stringify({\n annotations: annotations,\n indicators: indicators,\n flags: flags,\n yAxes: yAxes\n }));\n StockToolsBindings_fireEvent(this, 'deselectButton', { button: button });\n }\n }\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var StockTools_StockToolsBindings = (StockToolsBindings);\n\n;// ./code/es5/es-modules/Stock/StockTools/StockToolsDefaults.js\n/* *\n *\n * GUI generator for Stock tools\n *\n * (c) 2009-2024 Sebastian Bochan\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * Constants\n *\n * */\n/**\n * @optionparent lang\n */\nvar StockToolsDefaults_lang = {\n /**\n * Configure the stockTools GUI titles(hints) in the chart. Requires\n * the `stock-tools.js` module to be loaded.\n *\n * @product highstock\n * @since 7.0.0\n */\n stockTools: {\n gui: {\n // Main buttons:\n simpleShapes: 'Simple shapes',\n lines: 'Lines',\n crookedLines: 'Crooked lines',\n measure: 'Measure',\n advanced: 'Advanced',\n toggleAnnotations: 'Toggle annotations',\n verticalLabels: 'Vertical labels',\n flags: 'Flags',\n zoomChange: 'Zoom change',\n typeChange: 'Type change',\n saveChart: 'Save chart',\n indicators: 'Indicators',\n currentPriceIndicator: 'Current Price Indicators',\n // Other features:\n zoomX: 'Zoom X',\n zoomY: 'Zoom Y',\n zoomXY: 'Zooom XY',\n fullScreen: 'Fullscreen',\n typeOHLC: 'OHLC',\n typeLine: 'Line',\n typeCandlestick: 'Candlestick',\n typeHLC: 'HLC',\n typeHollowCandlestick: 'Hollow Candlestick',\n typeHeikinAshi: 'Heikin Ashi',\n // Basic shapes:\n circle: 'Circle',\n ellipse: 'Ellipse',\n label: 'Label',\n rectangle: 'Rectangle',\n // Flags:\n flagCirclepin: 'Flag circle',\n flagDiamondpin: 'Flag diamond',\n flagSquarepin: 'Flag square',\n flagSimplepin: 'Flag simple',\n // Measures:\n measureXY: 'Measure XY',\n measureX: 'Measure X',\n measureY: 'Measure Y',\n // Segment, ray and line:\n segment: 'Segment',\n arrowSegment: 'Arrow segment',\n ray: 'Ray',\n arrowRay: 'Arrow ray',\n line: 'Line',\n arrowInfinityLine: 'Arrow line',\n horizontalLine: 'Horizontal line',\n verticalLine: 'Vertical line',\n infinityLine: 'Infinity line',\n // Crooked lines:\n crooked3: 'Crooked 3 line',\n crooked5: 'Crooked 5 line',\n elliott3: 'Elliott 3 line',\n elliott5: 'Elliott 5 line',\n // Counters:\n verticalCounter: 'Vertical counter',\n verticalLabel: 'Vertical label',\n verticalArrow: 'Vertical arrow',\n // Advanced:\n fibonacci: 'Fibonacci',\n fibonacciTimeZones: 'Fibonacci Time Zones',\n pitchfork: 'Pitchfork',\n parallelChannel: 'Parallel channel',\n timeCycles: 'Time Cycles'\n }\n },\n navigation: {\n popup: {\n // Annotations:\n circle: 'Circle',\n ellipse: 'Ellipse',\n rectangle: 'Rectangle',\n label: 'Label',\n segment: 'Segment',\n arrowSegment: 'Arrow segment',\n ray: 'Ray',\n arrowRay: 'Arrow ray',\n line: 'Line',\n arrowInfinityLine: 'Arrow line',\n horizontalLine: 'Horizontal line',\n verticalLine: 'Vertical line',\n crooked3: 'Crooked 3 line',\n crooked5: 'Crooked 5 line',\n elliott3: 'Elliott 3 line',\n elliott5: 'Elliott 5 line',\n verticalCounter: 'Vertical counter',\n verticalLabel: 'Vertical label',\n verticalArrow: 'Vertical arrow',\n fibonacci: 'Fibonacci',\n fibonacciTimeZones: 'Fibonacci Time Zones',\n pitchfork: 'Pitchfork',\n parallelChannel: 'Parallel channel',\n infinityLine: 'Infinity line',\n measure: 'Measure',\n measureXY: 'Measure XY',\n measureX: 'Measure X',\n measureY: 'Measure Y',\n timeCycles: 'Time Cycles',\n // Flags:\n flags: 'Flags',\n // GUI elements:\n addButton: 'Add',\n saveButton: 'Save',\n editButton: 'Edit',\n removeButton: 'Remove',\n series: 'Series',\n volume: 'Volume',\n connector: 'Connector',\n // Field names:\n innerBackground: 'Inner background',\n outerBackground: 'Outer background',\n crosshairX: 'Crosshair X',\n crosshairY: 'Crosshair Y',\n tunnel: 'Tunnel',\n background: 'Background',\n // Indicators' searchbox (#16019):\n noFilterMatch: 'No match',\n // Indicators' params (#15170):\n searchIndicators: 'Search Indicators',\n clearFilter: '\\u2715 clear filter',\n index: 'Index',\n period: 'Period',\n periods: 'Periods',\n standardDeviation: 'Standard deviation',\n periodTenkan: 'Tenkan period',\n periodSenkouSpanB: 'Senkou Span B period',\n periodATR: 'ATR period',\n multiplierATR: 'ATR multiplier',\n shortPeriod: 'Short period',\n longPeriod: 'Long period',\n signalPeriod: 'Signal period',\n decimals: 'Decimals',\n algorithm: 'Algorithm',\n topBand: 'Top band',\n bottomBand: 'Bottom band',\n initialAccelerationFactor: 'Initial acceleration factor',\n maxAccelerationFactor: 'Max acceleration factor',\n increment: 'Increment',\n multiplier: 'Multiplier',\n ranges: 'Ranges',\n highIndex: 'High index',\n lowIndex: 'Low index',\n deviation: 'Deviation',\n xAxisUnit: 'x-axis unit',\n factor: 'Factor',\n fastAvgPeriod: 'Fast average period',\n slowAvgPeriod: 'Slow average period',\n average: 'Average',\n /**\n * Configure the aliases for indicator names.\n *\n * @product highstock\n * @since 9.3.0\n */\n indicatorAliases: {\n // Overlays\n /**\n * Acceleration Bands alias.\n *\n * @default ['Acceleration Bands']\n * @type {Array<string>}\n */\n abands: ['Acceleration Bands'],\n /**\n * Bollinger Bands alias.\n *\n * @default ['Bollinger Bands']\n * @type {Array<string>}\n */\n bb: ['Bollinger Bands'],\n /**\n * Double Exponential Moving Average alias.\n *\n * @default ['Double Exponential Moving Average']\n * @type {Array<string>}\n */\n dema: ['Double Exponential Moving Average'],\n /**\n * Exponential Moving Average alias.\n *\n * @default ['Exponential Moving Average']\n * @type {Array<string>}\n */\n ema: ['Exponential Moving Average'],\n /**\n * Ichimoku Kinko Hyo alias.\n *\n * @default ['Ichimoku Kinko Hyo']\n * @type {Array<string>}\n */\n ikh: ['Ichimoku Kinko Hyo'],\n /**\n * Keltner Channels alias.\n *\n * @default ['Keltner Channels']\n * @type {Array<string>}\n */\n keltnerchannels: ['Keltner Channels'],\n /**\n * Linear Regression alias.\n *\n * @default ['Linear Regression']\n * @type {Array<string>}\n */\n linearRegression: ['Linear Regression'],\n /**\n * Pivot Points alias.\n *\n * @default ['Pivot Points']\n * @type {Array<string>}\n */\n pivotpoints: ['Pivot Points'],\n /**\n * Price Channel alias.\n *\n * @default ['Price Channel']\n * @type {Array<string>}\n */\n pc: ['Price Channel'],\n /**\n * Price Envelopes alias.\n *\n * @default ['Price Envelopes']\n * @type {Array<string>}\n */\n priceenvelopes: ['Price Envelopes'],\n /**\n * Parabolic SAR alias.\n *\n * @default ['Parabolic SAR']\n * @type {Array<string>}\n */\n psar: ['Parabolic SAR'],\n /**\n * Simple Moving Average alias.\n *\n * @default ['Simple Moving Average']\n * @type {Array<string>}\n */\n sma: ['Simple Moving Average'],\n /**\n * Super Trend alias.\n *\n * @default ['Super Trend']\n * @type {Array<string>}\n */\n supertrend: ['Super Trend'],\n /**\n * Triple Exponential Moving Average alias.\n *\n * @default ['Triple Exponential Moving Average']\n * @type {Array<string>}\n */\n tema: ['Triple Exponential Moving Average'],\n /**\n * Volume by Price alias.\n *\n * @default ['Volume by Price']\n * @type {Array<string>}\n */\n vbp: ['Volume by Price'],\n /**\n * Volume Weighted Moving Average alias.\n *\n * @default ['Volume Weighted Moving Average']\n * @type {Array<string>}\n */\n vwap: ['Volume Weighted Moving Average'],\n /**\n * Weighted Moving Average alias.\n *\n * @default ['Weighted Moving Average']\n * @type {Array<string>}\n */\n wma: ['Weighted Moving Average'],\n /**\n * Zig Zagalias.\n *\n * @default ['Zig Zag']\n * @type {Array<string>}\n */\n zigzag: ['Zig Zag'],\n // Oscilators\n /**\n * Absolute price indicator alias.\n *\n * @default ['Absolute price indicator']\n * @type {Array<string>}\n */\n apo: ['Absolute price indicator'],\n /**\n * Accumulation/Distribution alias.\n *\n * @default ['Accumulation/Distribution’]\n * @type {Array<string>}\n */\n ad: ['Accumulation/Distribution'],\n /**\n * Aroon alias.\n *\n * @default ['Aroon']\n * @type {Array<string>}\n */\n aroon: ['Aroon'],\n /**\n * Aroon oscillator alias.\n *\n * @default ['Aroon oscillator']\n * @type {Array<string>}\n */\n aroonoscillator: ['Aroon oscillator'],\n /**\n * Average True Range alias.\n *\n * @default ['Average True Range’]\n * @type {Array<string>}\n */\n atr: ['Average True Range'],\n /**\n * Awesome oscillator alias.\n *\n * @default ['Awesome oscillator’]\n * @type {Array<string>}\n */\n ao: ['Awesome oscillator'],\n /**\n * Commodity Channel Index alias.\n *\n * @default ['Commodity Channel Index’]\n * @type {Array<string>}\n */\n cci: ['Commodity Channel Index'],\n /**\n * Chaikin alias.\n *\n * @default ['Chaikin’]\n * @type {Array<string>}\n */\n chaikin: ['Chaikin'],\n /**\n * Chaikin Money Flow alias.\n *\n * @default ['Chaikin Money Flow’]\n * @type {Array<string>}\n */\n cmf: ['Chaikin Money Flow'],\n /**\n * Chande Momentum Oscillator alias.\n *\n * @default ['Chande Momentum Oscillator’]\n * @type {Array<string>}\n */\n cmo: ['Chande Momentum Oscillator'],\n /**\n * Disparity Index alias.\n *\n * @default ['Disparity Index’]\n * @type {Array<string>}\n */\n disparityindex: ['Disparity Index'],\n /**\n * Directional Movement Index alias.\n *\n * @default ['Directional Movement Index’]\n * @type {Array<string>}\n */\n dmi: ['Directional Movement Index'],\n /**\n * Detrended price oscillator alias.\n *\n * @default ['Detrended price oscillator’]\n * @type {Array<string>}\n */\n dpo: ['Detrended price oscillator'],\n /**\n * Klinger Oscillator alias.\n *\n * @default [‘Klinger Oscillator’]\n * @type {Array<string>}\n */\n klinger: ['Klinger Oscillator'],\n /**\n * Linear Regression Angle alias.\n *\n * @default [‘Linear Regression Angle’]\n * @type {Array<string>}\n */\n linearRegressionAngle: ['Linear Regression Angle'],\n /**\n * Linear Regression Intercept alias.\n *\n * @default [‘Linear Regression Intercept’]\n * @type {Array<string>}\n */\n linearRegressionIntercept: ['Linear Regression Intercept'],\n /**\n * Linear Regression Slope alias.\n *\n * @default [‘Linear Regression Slope’]\n * @type {Array<string>}\n */\n linearRegressionSlope: ['Linear Regression Slope'],\n /**\n * Moving Average Convergence Divergence alias.\n *\n * @default ['Moving Average Convergence Divergence’]\n * @type {Array<string>}\n */\n macd: ['Moving Average Convergence Divergence'],\n /**\n * Money Flow Index alias.\n *\n * @default ['Money Flow Index’]\n * @type {Array<string>}\n */\n mfi: ['Money Flow Index'],\n /**\n * Momentum alias.\n *\n * @default [‘Momentum’]\n * @type {Array<string>}\n */\n momentum: ['Momentum'],\n /**\n * Normalized Average True Range alias.\n *\n * @default ['Normalized Average True Range’]\n * @type {Array<string>}\n */\n natr: ['Normalized Average True Range'],\n /**\n * On-Balance Volume alias.\n *\n * @default ['On-Balance Volume’]\n * @type {Array<string>}\n */\n obv: ['On-Balance Volume'],\n /**\n * Percentage Price oscillator alias.\n *\n * @default ['Percentage Price oscillator’]\n * @type {Array<string>}\n */\n ppo: ['Percentage Price oscillator'],\n /**\n * Rate of Change alias.\n *\n * @default ['Rate of Change’]\n * @type {Array<string>}\n */\n roc: ['Rate of Change'],\n /**\n * Relative Strength Index alias.\n *\n * @default ['Relative Strength Index’]\n * @type {Array<string>}\n */\n rsi: ['Relative Strength Index'],\n /**\n * Slow Stochastic alias.\n *\n * @default [‘Slow Stochastic’]\n * @type {Array<string>}\n */\n slowstochastic: ['Slow Stochastic'],\n /**\n * Stochastic alias.\n *\n * @default [‘Stochastic’]\n * @type {Array<string>}\n */\n stochastic: ['Stochastic'],\n /**\n * TRIX alias.\n *\n * @default [‘TRIX’]\n * @type {Array<string>}\n */\n trix: ['TRIX'],\n /**\n * Williams %R alias.\n *\n * @default [‘Williams %R’]\n * @type {Array<string>}\n */\n williamsr: ['Williams %R']\n }\n }\n }\n};\n/**\n * Configure the stockTools gui strings in the chart. Requires the\n * [stockTools module]() to be loaded. For a description of the module\n * and information on its features, see [Highcharts StockTools]().\n *\n * @product highstock\n *\n * @sample stock/demo/stock-tools-gui Stock Tools GUI\n *\n * @sample stock/demo/stock-tools-custom-gui Stock Tools customized GUI\n *\n * @since 7.0.0\n * @optionparent stockTools\n */\nvar stockTools = {\n /**\n * Definitions of buttons in Stock Tools GUI.\n */\n gui: {\n /**\n * Path where Highcharts will look for icons. Change this to use\n * icons from a different server.\n *\n * Since 7.1.3 use [iconsURL](#navigation.iconsURL) for popup and\n * stock tools.\n *\n * @deprecated\n * @apioption stockTools.gui.iconsURL\n *\n */\n /**\n * Enable or disable the stockTools gui.\n */\n enabled: true,\n /**\n * A CSS class name to apply to the stocktools' div,\n * allowing unique CSS styling for each chart.\n */\n className: 'highcharts-bindings-wrapper',\n /**\n * A CSS class name to apply to the container of buttons,\n * allowing unique CSS styling for each chart.\n */\n toolbarClassName: 'stocktools-toolbar',\n /**\n * A collection of strings pointing to config options for the\n * toolbar items. Each name refers to a unique key from the\n * definitions object.\n *\n * @type {Array<string>}\n * @default [\n * 'indicators',\n * 'separator',\n * 'simpleShapes',\n * 'lines',\n * 'crookedLines',\n * 'measure',\n * 'advanced',\n * 'toggleAnnotations',\n * 'separator',\n * 'verticalLabels',\n * 'flags',\n * 'separator',\n * 'zoomChange',\n * 'fullScreen',\n * 'typeChange',\n * 'separator',\n * 'currentPriceIndicator',\n * 'saveChart'\n * ]\n */\n buttons: [\n 'indicators',\n 'separator',\n 'simpleShapes',\n 'lines',\n 'crookedLines',\n 'measure',\n 'advanced',\n 'toggleAnnotations',\n 'separator',\n 'verticalLabels',\n 'flags',\n 'separator',\n 'zoomChange',\n 'fullScreen',\n 'typeChange',\n 'separator',\n 'currentPriceIndicator',\n 'saveChart'\n ],\n /**\n * An options object of the buttons definitions. Each name refers to\n * unique key from buttons array.\n */\n definitions: {\n separator: {\n elementType: 'span',\n /**\n * A predefined background symbol for the button.\n */\n symbol: 'separator.svg'\n },\n simpleShapes: {\n /**\n * A collection of strings pointing to config options for\n * the items.\n *\n * @type {Array}\n * @default [\n * 'label',\n * 'circle',\n * 'ellipse',\n * 'rectangle'\n * ]\n *\n */\n items: [\n 'label',\n 'circle',\n 'ellipse',\n 'rectangle'\n ],\n circle: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n *\n */\n symbol: 'circle.svg'\n },\n ellipse: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n *\n */\n symbol: 'ellipse.svg'\n },\n rectangle: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n *\n */\n symbol: 'rectangle.svg'\n },\n label: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n *\n */\n symbol: 'label.svg'\n }\n },\n flags: {\n /**\n * A collection of strings pointing to config options for\n * the items.\n *\n * @type {Array}\n * @default [\n * 'flagCirclepin',\n * 'flagDiamondpin',\n * 'flagSquarepin',\n * 'flagSimplepin'\n * ]\n *\n */\n items: [\n 'flagCirclepin',\n 'flagDiamondpin',\n 'flagSquarepin',\n 'flagSimplepin'\n ],\n flagSimplepin: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n *\n */\n symbol: 'flag-basic.svg'\n },\n flagDiamondpin: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n *\n */\n symbol: 'flag-diamond.svg'\n },\n flagSquarepin: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'flag-trapeze.svg'\n },\n flagCirclepin: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'flag-elipse.svg'\n }\n },\n lines: {\n /**\n * A collection of strings pointing to config options for\n * the items.\n *\n * @type {Array}\n * @default [\n * 'segment',\n * 'arrowSegment',\n * 'ray',\n * 'arrowRay',\n * 'line',\n * 'arrowInfinityLine',\n * 'horizontalLine',\n * 'verticalLine'\n * ]\n */\n items: [\n 'segment',\n 'arrowSegment',\n 'ray',\n 'arrowRay',\n 'line',\n 'arrowInfinityLine',\n 'horizontalLine',\n 'verticalLine'\n ],\n segment: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'segment.svg'\n },\n arrowSegment: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'arrow-segment.svg'\n },\n ray: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'ray.svg'\n },\n arrowRay: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'arrow-ray.svg'\n },\n line: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'line.svg'\n },\n arrowInfinityLine: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'arrow-line.svg'\n },\n verticalLine: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'vertical-line.svg'\n },\n horizontalLine: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'horizontal-line.svg'\n }\n },\n crookedLines: {\n /**\n * A collection of strings pointing to config options for\n * the items.\n *\n * @type {Array}\n * @default [\n * 'elliott3',\n * 'elliott5',\n * 'crooked3',\n * 'crooked5'\n * ]\n *\n */\n items: [\n 'elliott3',\n 'elliott5',\n 'crooked3',\n 'crooked5'\n ],\n crooked3: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'crooked-3.svg'\n },\n crooked5: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'crooked-5.svg'\n },\n elliott3: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'elliott-3.svg'\n },\n elliott5: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'elliott-5.svg'\n }\n },\n verticalLabels: {\n /**\n * A collection of strings pointing to config options for\n * the items.\n *\n * @type {Array}\n * @default [\n * 'verticalCounter',\n * 'verticalLabel',\n * 'verticalArrow'\n * ]\n */\n items: [\n 'verticalCounter',\n 'verticalLabel',\n 'verticalArrow'\n ],\n verticalCounter: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'vertical-counter.svg'\n },\n verticalLabel: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'vertical-label.svg'\n },\n verticalArrow: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'vertical-arrow.svg'\n }\n },\n advanced: {\n /**\n * A collection of strings pointing to config options for\n * the items.\n *\n * @type {Array}\n * @default [\n * 'fibonacci',\n * 'fibonacciTimeZones',\n * 'pitchfork',\n * 'parallelChannel',\n * 'timeCycles'\n * ]\n */\n items: [\n 'fibonacci',\n 'fibonacciTimeZones',\n 'pitchfork',\n 'parallelChannel',\n 'timeCycles'\n ],\n pitchfork: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'pitchfork.svg'\n },\n fibonacci: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'fibonacci.svg'\n },\n fibonacciTimeZones: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'fibonacci-timezone.svg'\n },\n parallelChannel: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'parallel-channel.svg'\n },\n timeCycles: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'time-cycles.svg'\n }\n },\n measure: {\n /**\n * A collection of strings pointing to config options for\n * the items.\n *\n * @type {Array}\n * @default [\n * 'measureXY',\n * 'measureX',\n * 'measureY'\n * ]\n */\n items: [\n 'measureXY',\n 'measureX',\n 'measureY'\n ],\n measureX: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'measure-x.svg'\n },\n measureY: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'measure-y.svg'\n },\n measureXY: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'measure-xy.svg'\n }\n },\n toggleAnnotations: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'annotations-visible.svg'\n },\n currentPriceIndicator: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'current-price-show.svg'\n },\n indicators: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'indicators.svg'\n },\n zoomChange: {\n /**\n * A collection of strings pointing to config options for\n * the items.\n *\n * @type {Array}\n * @default [\n * 'zoomX',\n * 'zoomY',\n * 'zoomXY'\n * ]\n */\n items: [\n 'zoomX',\n 'zoomY',\n 'zoomXY'\n ],\n zoomX: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'zoom-x.svg'\n },\n zoomY: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'zoom-y.svg'\n },\n zoomXY: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'zoom-xy.svg'\n }\n },\n typeChange: {\n /**\n * A collection of strings pointing to config options for\n * the items.\n *\n * @type {Array}\n * @default [\n * 'typeOHLC',\n * 'typeLine',\n * 'typeCandlestick'\n * 'typeHollowCandlestick'\n * ]\n */\n items: [\n 'typeOHLC',\n 'typeLine',\n 'typeCandlestick',\n 'typeHollowCandlestick',\n 'typeHLC',\n 'typeHeikinAshi'\n ],\n typeOHLC: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'series-ohlc.svg'\n },\n typeLine: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'series-line.svg'\n },\n typeCandlestick: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'series-candlestick.svg'\n },\n typeHLC: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'series-hlc.svg'\n },\n typeHeikinAshi: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'series-heikin-ashi.svg'\n },\n typeHollowCandlestick: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'series-hollow-candlestick.svg'\n }\n },\n fullScreen: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'fullscreen.svg'\n },\n saveChart: {\n /**\n * A predefined background symbol for the button.\n *\n * @type {string}\n */\n symbol: 'save-chart.svg'\n }\n },\n /**\n * Whether the stock tools toolbar is visible.\n *\n * @since 11.4.4\n */\n visible: true\n }\n};\n/* *\n *\n * Default Exports\n *\n * */\nvar StockToolsDefaults = {\n lang: StockToolsDefaults_lang,\n stockTools: stockTools\n};\n/* harmony default export */ var StockTools_StockToolsDefaults = (StockToolsDefaults);\n\n;// ./code/es5/es-modules/Stock/StockTools/StockTools.js\n/**\n *\n * Events generator for Stock tools\n *\n * (c) 2009-2024 Paweł Fus\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar StockTools_setOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).setOptions;\n\nvar StockTools_getAssignedAxis = NavigationBindingsUtilities.getAssignedAxis;\n\n\n\nvar StockTools_isNotNavigatorYAxis = StockTools_StockToolsUtilities.isNotNavigatorYAxis, StockTools_isPriceIndicatorEnabled = StockTools_StockToolsUtilities.isPriceIndicatorEnabled;\n\nvar correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, StockTools_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, StockTools_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, StockTools_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction compose(NavigationBindingsClass) {\n var _a;\n var navigationProto = NavigationBindingsClass.prototype;\n if (!((_a = navigationProto.utils) === null || _a === void 0 ? void 0 : _a.manageIndicators)) {\n // Extends NavigationBindings to support indicators and resizers:\n navigationProto.getYAxisPositions = navigationGetYAxisPositions;\n navigationProto.getYAxisResizers = navigationGetYAxisResizers;\n navigationProto.recalculateYAxisPositions =\n navigationRecalculateYAxisPositions;\n navigationProto.resizeYAxes = navigationResizeYAxes;\n navigationProto.utils = navigationProto.utils || {};\n navigationProto.utils.indicatorsWithAxes = StockTools_StockToolsUtilities.indicatorsWithAxes;\n navigationProto.utils.indicatorsWithVolume = StockTools_StockToolsUtilities.indicatorsWithVolume;\n navigationProto.utils.getAssignedAxis = StockTools_getAssignedAxis;\n navigationProto.utils.isPriceIndicatorEnabled = StockTools_isPriceIndicatorEnabled;\n navigationProto.utils.manageIndicators = StockTools_StockToolsUtilities.manageIndicators;\n StockTools_setOptions(StockTools_StockToolsDefaults);\n StockTools_setOptions({\n navigation: {\n bindings: StockTools_StockToolsBindings\n }\n });\n }\n}\n/**\n * Get current positions for all yAxes. If new axis does not have position,\n * returned is default height and last available top place.\n *\n * @private\n * @function Highcharts.NavigationBindings#getYAxisPositions\n *\n * @param {Array<Highcharts.Axis>} yAxes\n * Array of yAxes available in the chart.\n *\n * @param {number} plotHeight\n * Available height in the chart.\n *\n * @param {number} defaultHeight\n * Default height in percents.\n *\n * @param {Highcharts.AxisPositions} removedYAxisProps\n * Height and top value of the removed yAxis in percents.\n *\n * @return {Highcharts.YAxisPositions}\n * An object containing an array of calculated positions\n * in percentages. Format: `{top: Number, height: Number}`\n * and maximum value of top + height of axes.\n */\nfunction navigationGetYAxisPositions(yAxes, plotHeight, defaultHeight, removedYAxisProps) {\n var allAxesHeight = 0,\n previousAxisHeight,\n removedHeight,\n removedTop;\n /** @private */\n function isPercentage(prop) {\n return StockTools_defined(prop) && !StockTools_isNumber(prop) && prop.match('%');\n }\n if (removedYAxisProps) {\n removedTop = correctFloat((parseFloat(removedYAxisProps.top) / 100));\n removedHeight = correctFloat((parseFloat(removedYAxisProps.height) / 100));\n }\n var positions = yAxes.map(function (yAxis,\n index) {\n var height = correctFloat(isPercentage(yAxis.options.height) ?\n parseFloat(yAxis.options.height) / 100 :\n yAxis.height / plotHeight),\n top = correctFloat(isPercentage(yAxis.options.top) ?\n parseFloat(yAxis.options.top) / 100 :\n (yAxis.top - yAxis.chart.plotTop) / plotHeight);\n if (!removedHeight) {\n // New axis' height is NaN so we can check if\n // the axis is newly created this way\n if (!StockTools_isNumber(height)) {\n // Check if the previous axis is the\n // indicator axis (every indicator inherits from sma)\n height = yAxes[index - 1].series\n .every(function (s) { return s.is('sma'); }) ?\n previousAxisHeight : defaultHeight / 100;\n }\n if (!StockTools_isNumber(top)) {\n top = allAxesHeight;\n }\n previousAxisHeight = height;\n allAxesHeight = correctFloat(Math.max(allAxesHeight, (top || 0) + (height || 0)));\n }\n else {\n // Move all axes which were below the removed axis up.\n if (top > removedTop) {\n top -= removedHeight;\n }\n allAxesHeight = Math.max(allAxesHeight, (top || 0) + (height || 0));\n }\n return {\n height: height * 100,\n top: top * 100\n };\n });\n return { positions: positions, allAxesHeight: allAxesHeight };\n}\n/**\n * Get current resize options for each yAxis. Note that each resize is\n * linked to the next axis, except the last one which shouldn't affect\n * axes in the navigator. Because indicator can be removed with it's yAxis\n * in the middle of yAxis array, we need to bind closest yAxes back.\n *\n * @private\n * @function Highcharts.NavigationBindings#getYAxisResizers\n *\n * @param {Array<Highcharts.Axis>} yAxes\n * Array of yAxes available in the chart\n *\n * @return {Array<object>}\n * An array of resizer options.\n * Format: `{enabled: Boolean, controlledAxis: { next: [String]}}`\n */\nfunction navigationGetYAxisResizers(yAxes) {\n var resizers = [];\n yAxes.forEach(function (_yAxis, index) {\n var nextYAxis = yAxes[index + 1];\n // We have next axis, bind them:\n if (nextYAxis) {\n resizers[index] = {\n enabled: true,\n controlledAxis: {\n next: [\n StockTools_pick(nextYAxis.options.id, nextYAxis.index)\n ]\n }\n };\n }\n else {\n // Remove binding:\n resizers[index] = {\n enabled: false\n };\n }\n });\n return resizers;\n}\n/**\n * Utility to modify calculated positions according to the remaining/needed\n * space. Later, these positions are used in `yAxis.update({ top, height })`\n *\n * @private\n * @function Highcharts.NavigationBindings#recalculateYAxisPositions\n * @param {Array<Highcharts.Dictionary<number>>} positions\n * Default positions of all yAxes.\n * @param {number} changedSpace\n * How much space should be added or removed.\n * @param {boolean} modifyHeight\n * Update only `top` or both `top` and `height`.\n * @param {number} adder\n * `-1` or `1`, to determine whether we should add or remove space.\n *\n * @return {Array<object>}\n * Modified positions,\n */\nfunction navigationRecalculateYAxisPositions(positions, changedSpace, modifyHeight, adder) {\n positions.forEach(function (position, index) {\n var prevPosition = positions[index - 1];\n position.top = !prevPosition ? 0 :\n correctFloat(prevPosition.height + prevPosition.top);\n if (modifyHeight) {\n position.height = correctFloat(position.height + adder * changedSpace);\n }\n });\n return positions;\n}\n/**\n * Resize all yAxes (except navigator) to fit the plotting height. Method\n * checks if new axis is added, if the new axis will fit under previous\n * axes it is placed there. If not, current plot area is scaled\n * to make room for new axis.\n *\n * If axis is removed, the current plot area stretches to fit into 100%\n * of the plot area.\n *\n * @private\n */\nfunction navigationResizeYAxes(removedYAxisProps) {\n // The height of the new axis before rescalling. In %, but as a number.\n var defaultHeight = 20;\n var chart = this.chart, \n // Only non-navigator axes\n yAxes = chart.yAxis.filter(StockTools_isNotNavigatorYAxis),\n plotHeight = chart.plotHeight, \n // Gather current heights (in %)\n _a = this.getYAxisPositions(yAxes,\n plotHeight,\n defaultHeight,\n removedYAxisProps),\n positions = _a.positions,\n allAxesHeight = _a.allAxesHeight,\n resizers = this.getYAxisResizers(yAxes);\n // Check if the axis is being either added or removed and\n // if the new indicator axis will fit under existing axes.\n // if so, there is no need to scale them.\n if (!removedYAxisProps &&\n allAxesHeight <= correctFloat(0.8 + defaultHeight / 100)) {\n positions[positions.length - 1] = {\n height: defaultHeight,\n top: correctFloat(allAxesHeight * 100 - defaultHeight)\n };\n }\n else {\n positions.forEach(function (position) {\n position.height = (position.height / (allAxesHeight * 100)) * 100;\n position.top = (position.top / (allAxesHeight * 100)) * 100;\n });\n }\n positions.forEach(function (position, index) {\n yAxes[index].update({\n height: position.height + '%',\n top: position.top + '%',\n resize: resizers[index],\n offset: 0\n }, false);\n });\n}\n/* *\n *\n * Default Export\n *\n * */\nvar StockTools = {\n compose: compose\n};\n/* harmony default export */ var StockTools_StockTools = (StockTools);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"AST\"],\"commonjs\":[\"highcharts\",\"AST\"],\"commonjs2\":[\"highcharts\",\"AST\"],\"root\":[\"Highcharts\",\"AST\"]}\nvar highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_ = __webpack_require__(660);\nvar highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default = /*#__PURE__*/__webpack_require__.n(highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_);\n;// ./code/es5/es-modules/Stock/StockTools/StockToolbar.js\n/* *\n *\n * GUI generator for Stock tools\n *\n * (c) 2009-2024 Sebastian Bochan\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\n\nvar StockToolbar_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, createElement = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).createElement, css = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).css, StockToolbar_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, StockToolbar_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, getStyle = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).getStyle, StockToolbar_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, StockToolbar_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, StockToolbar_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\nvar StockToolbar_shallowArraysEqual = StockTools_StockToolsUtilities.shallowArraysEqual;\n/* *\n *\n * Classes\n *\n * */\n/**\n * Toolbar Class\n *\n * @private\n * @class\n *\n * @param {object} options\n * Options of toolbar\n *\n * @param {Highcharts.Dictionary<string>|undefined} langOptions\n * Language options\n *\n * @param {Highcharts.Chart} chart\n * Reference to chart\n */\nvar Toolbar = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function Toolbar(options, langOptions, chart) {\n this.width = 0;\n this.isDirty = false;\n this.chart = chart;\n this.options = options;\n this.lang = langOptions;\n // Set url for icons.\n this.iconsURL = this.getIconsURL();\n this.guiEnabled = options.enabled;\n this.visible = StockToolbar_pick(options.visible, true);\n this.guiClassName = options.className;\n this.toolbarClassName = options.toolbarClassName;\n // General events collection which should be removed upon\n // destroy/update:\n this.eventsToUnbind = [];\n if (this.guiEnabled) {\n this.createContainer();\n this.createButtons();\n this.showHideNavigation();\n }\n StockToolbar_fireEvent(this, 'afterInit');\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Create and set up stockTools buttons with their events and submenus.\n * @private\n */\n Toolbar.prototype.createButtons = function () {\n var _this = this;\n var lang = this.lang,\n guiOptions = this.options,\n toolbar = this.toolbar,\n buttons = guiOptions.buttons,\n defs = guiOptions.definitions,\n allButtons = toolbar.childNodes;\n this.buttonList = buttons;\n // Create buttons\n buttons.forEach(function (btnName) {\n var button = _this.addButton(toolbar,\n defs,\n btnName,\n lang);\n _this.eventsToUnbind.push(StockToolbar_addEvent(button.buttonWrapper, 'click', function () { return _this.eraseActiveButtons(allButtons, button.buttonWrapper); }));\n if (StockToolbar_isArray(defs[btnName].items)) {\n // Create submenu buttons\n _this.addSubmenu(button, defs[btnName]);\n }\n });\n };\n /**\n * Create submenu (list of buttons) for the option. In example main button\n * is Line, in submenu will be buttons with types of lines.\n *\n * @private\n *\n * @param {Highcharts.Dictionary<Highcharts.HTMLDOMElement>} parentBtn\n * Button which has submenu\n *\n * @param {Highcharts.StockToolsGuiDefinitionsButtonsOptions} button\n * List of all buttons\n */\n Toolbar.prototype.addSubmenu = function (parentBtn, button) {\n var _this = this;\n var submenuArrow = parentBtn.submenuArrow,\n buttonWrapper = parentBtn.buttonWrapper,\n buttonWidth = getStyle(buttonWrapper, 'width'),\n wrapper = this.wrapper,\n menuWrapper = this.listWrapper,\n allButtons = this.toolbar.childNodes, \n // Create submenu container\n submenuWrapper = this.submenu = createElement('ul', {\n className: 'highcharts-submenu-wrapper'\n },\n void 0,\n buttonWrapper);\n // Create submenu buttons and select the first one\n this.addSubmenuItems(buttonWrapper, button);\n // Show / hide submenu\n this.eventsToUnbind.push(StockToolbar_addEvent(submenuArrow, 'click', function (e) {\n e.stopPropagation();\n // Erase active class on all other buttons\n _this.eraseActiveButtons(allButtons, buttonWrapper);\n // Hide menu\n if (buttonWrapper.className\n .indexOf('highcharts-current') >= 0) {\n menuWrapper.style.width =\n menuWrapper.startWidth + 'px';\n buttonWrapper.classList.remove('highcharts-current');\n submenuWrapper.style.display = 'none';\n }\n else {\n // Show menu\n // to calculate height of element\n submenuWrapper.style.display = 'block';\n var topMargin = submenuWrapper.offsetHeight -\n buttonWrapper.offsetHeight - 3;\n // Calculate position of submenu in the box\n // if submenu is inside, reset top margin\n if (\n // Cut on the bottom\n !(submenuWrapper.offsetHeight +\n buttonWrapper.offsetTop >\n wrapper.offsetHeight &&\n // Cut on the top\n buttonWrapper.offsetTop > topMargin)) {\n topMargin = 0;\n }\n // Apply calculated styles\n css(submenuWrapper, {\n top: -topMargin + 'px',\n left: buttonWidth + 3 + 'px'\n });\n buttonWrapper.className += ' highcharts-current';\n menuWrapper.startWidth = wrapper.offsetWidth;\n menuWrapper.style.width = menuWrapper.startWidth +\n getStyle(menuWrapper, 'padding-left') +\n submenuWrapper.offsetWidth + 3 + 'px';\n }\n }));\n };\n /**\n * Create buttons in submenu\n *\n * @private\n *\n * @param {Highcharts.HTMLDOMElement} buttonWrapper\n * Button where submenu is placed\n *\n * @param {Highcharts.StockToolsGuiDefinitionsButtonsOptions} button\n * List of all buttons options\n */\n Toolbar.prototype.addSubmenuItems = function (buttonWrapper, button) {\n var _this = this;\n var _self = this,\n submenuWrapper = this.submenu,\n lang = this.lang,\n menuWrapper = this.listWrapper,\n items = button.items;\n var submenuBtn;\n // Add items to submenu\n items.forEach(function (btnName) {\n // Add buttons to submenu\n submenuBtn = _this.addButton(submenuWrapper, button, btnName, lang);\n _this.eventsToUnbind.push(StockToolbar_addEvent(submenuBtn.mainButton, 'click', function () {\n _self.switchSymbol(this, buttonWrapper, true);\n menuWrapper.style.width =\n menuWrapper.startWidth + 'px';\n submenuWrapper.style.display = 'none';\n }));\n });\n // Select first submenu item\n var firstSubmenuItem = submenuWrapper.querySelectorAll('li > .highcharts-menu-item-btn')[0];\n // Replace current symbol, in main button, with submenu's button style\n this.switchSymbol(firstSubmenuItem, false);\n };\n /**\n * Erase active class on all other buttons.\n * @private\n */\n Toolbar.prototype.eraseActiveButtons = function (buttons, currentButton, submenuItems) {\n [].forEach.call(buttons, function (btn) {\n if (btn !== currentButton) {\n btn.classList.remove('highcharts-current');\n btn.classList.remove('highcharts-active');\n submenuItems =\n btn.querySelectorAll('.highcharts-submenu-wrapper');\n // Hide submenu\n if (submenuItems.length > 0) {\n submenuItems[0].style.display = 'none';\n }\n }\n });\n };\n /**\n * Create single button. Consist of HTML elements `li`, `button`, and (if\n * exists) submenu container.\n *\n * @private\n *\n * @param {Highcharts.HTMLDOMElement} target\n * HTML reference, where button should be added\n *\n * @param {object} options\n * All options, by btnName refer to particular button\n *\n * @param {string} btnName\n * Button name of functionality mapped for specific class\n *\n * @param {Highcharts.Dictionary<string>} lang\n * All titles, by btnName refer to particular button\n *\n * @return {object}\n * References to all created HTML elements\n */\n Toolbar.prototype.addButton = function (target, options, btnName, lang) {\n if (lang === void 0) { lang = {}; }\n var btnOptions = options[btnName],\n items = btnOptions.items,\n classMapping = Toolbar.prototype.classMapping,\n userClassName = btnOptions.className || '';\n // Main button wrapper\n var buttonWrapper = createElement('li', {\n className: StockToolbar_pick(classMapping[btnName], '') + ' ' + userClassName,\n title: lang[btnName] || btnName\n },\n void 0,\n target);\n // Single button\n var elementType = (btnOptions.elementType || 'button');\n var mainButton = createElement(elementType, {\n className: 'highcharts-menu-item-btn'\n },\n void 0,\n buttonWrapper);\n // Submenu\n if (items && items.length) {\n // Arrow is a hook to show / hide submenu\n var submenuArrow = createElement('button', {\n className: 'highcharts-submenu-item-arrow ' +\n 'highcharts-arrow-right'\n },\n void 0,\n buttonWrapper);\n submenuArrow.style.backgroundImage = 'url(' +\n this.iconsURL + 'arrow-bottom.svg)';\n return {\n buttonWrapper: buttonWrapper,\n mainButton: mainButton,\n submenuArrow: submenuArrow\n };\n }\n mainButton.style.backgroundImage = 'url(' +\n this.iconsURL + btnOptions.symbol + ')';\n return {\n buttonWrapper: buttonWrapper,\n mainButton: mainButton\n };\n };\n /**\n * Create navigation's HTML elements: container and arrows.\n * @private\n */\n Toolbar.prototype.addNavigation = function () {\n var wrapper = this.wrapper;\n // Arrow wrapper\n this.arrowWrapper = createElement('div', {\n className: 'highcharts-arrow-wrapper'\n });\n this.arrowUp = createElement('div', {\n className: 'highcharts-arrow-up'\n }, void 0, this.arrowWrapper);\n this.arrowUp.style.backgroundImage =\n 'url(' + this.iconsURL + 'arrow-right.svg)';\n this.arrowDown = createElement('div', {\n className: 'highcharts-arrow-down'\n }, void 0, this.arrowWrapper);\n this.arrowDown.style.backgroundImage =\n 'url(' + this.iconsURL + 'arrow-right.svg)';\n wrapper.insertBefore(this.arrowWrapper, wrapper.childNodes[0]);\n // Attach scroll events\n this.scrollButtons();\n };\n /**\n * Add events to navigation (two arrows) which allows user to scroll\n * top/down GUI buttons, if container's height is not enough.\n * @private\n */\n Toolbar.prototype.scrollButtons = function () {\n var wrapper = this.wrapper,\n toolbar = this.toolbar,\n step = 0.1 * wrapper.offsetHeight; // 0.1 = 10%\n var targetY = 0;\n this.eventsToUnbind.push(StockToolbar_addEvent(this.arrowUp, 'click', function () {\n if (targetY > 0) {\n targetY -= step;\n toolbar.style.marginTop = -targetY + 'px';\n }\n }));\n this.eventsToUnbind.push(StockToolbar_addEvent(this.arrowDown, 'click', function () {\n if (wrapper.offsetHeight + targetY <=\n toolbar.offsetHeight + step) {\n targetY += step;\n toolbar.style.marginTop = -targetY + 'px';\n }\n }));\n };\n /*\n * Create the stockTools container and sets up event bindings.\n *\n */\n Toolbar.prototype.createContainer = function () {\n var _this = this;\n var chart = this.chart,\n guiOptions = this.options,\n container = chart.container,\n navigation = chart.options.navigation,\n bindingsClassName = navigation === null || navigation === void 0 ? void 0 : navigation.bindingsClassName,\n self = this;\n var listWrapper,\n toolbar;\n // Create main container\n var wrapper = this.wrapper = createElement('div', {\n className: 'highcharts-stocktools-wrapper ' +\n guiOptions.className + ' ' + bindingsClassName\n });\n container.appendChild(wrapper);\n this.showHideBtn = createElement('div', {\n className: 'highcharts-toggle-toolbar highcharts-arrow-left'\n }, void 0, wrapper);\n // Toggle menu\n this.eventsToUnbind.push(StockToolbar_addEvent(this.showHideBtn, 'click', function () {\n _this.update({\n gui: {\n visible: !self.visible\n }\n });\n }));\n // Mimic event behaviour of being outside chart.container\n [\n 'mousedown',\n 'mousemove',\n 'click',\n 'touchstart'\n ].forEach(function (eventType) {\n StockToolbar_addEvent(wrapper, eventType, function (e) {\n return e.stopPropagation();\n });\n });\n StockToolbar_addEvent(wrapper, 'mouseover', function (e) { var _a; return (_a = chart.pointer) === null || _a === void 0 ? void 0 : _a.onContainerMouseLeave(e); });\n // Toolbar\n this.toolbar = toolbar = createElement('ul', {\n className: 'highcharts-stocktools-toolbar ' +\n guiOptions.toolbarClassName\n });\n // Add container for list of buttons\n this.listWrapper = listWrapper = createElement('div', {\n className: 'highcharts-menu-wrapper'\n });\n wrapper.insertBefore(listWrapper, wrapper.childNodes[0]);\n listWrapper.insertBefore(toolbar, listWrapper.childNodes[0]);\n this.showHideToolbar();\n // Add navigation which allows user to scroll down / top GUI buttons\n this.addNavigation();\n };\n /**\n * Function called in redraw verifies if the navigation should be visible.\n * @private\n */\n Toolbar.prototype.showHideNavigation = function () {\n // Arrows\n // 50px space for arrows\n if (this.visible &&\n this.toolbar.offsetHeight > (this.wrapper.offsetHeight - 50)) {\n this.arrowWrapper.style.display = 'block';\n }\n else {\n // Reset margin if whole toolbar is visible\n this.toolbar.style.marginTop = '0px';\n // Hide arrows\n this.arrowWrapper.style.display = 'none';\n }\n };\n /**\n * Create button which shows or hides GUI toolbar.\n * @private\n */\n Toolbar.prototype.showHideToolbar = function () {\n var wrapper = this.wrapper,\n toolbar = this.listWrapper,\n submenu = this.submenu, \n // Show hide toolbar\n showHideBtn = this.showHideBtn;\n var visible = this.visible;\n showHideBtn.style.backgroundImage =\n 'url(' + this.iconsURL + 'arrow-right.svg)';\n if (!visible) {\n // Hide\n if (submenu) {\n submenu.style.display = 'none';\n }\n showHideBtn.style.left = '0px';\n visible = this.visible = false;\n toolbar.classList.add('highcharts-hide');\n showHideBtn.classList.add('highcharts-arrow-right');\n wrapper.style.height = showHideBtn.offsetHeight + 'px';\n }\n else {\n wrapper.style.height = '100%';\n toolbar.classList.remove('highcharts-hide');\n showHideBtn.classList.remove('highcharts-arrow-right');\n showHideBtn.style.top = getStyle(toolbar, 'padding-top') + 'px';\n showHideBtn.style.left = (wrapper.offsetWidth +\n getStyle(toolbar, 'padding-left')) + 'px';\n }\n };\n /*\n * In main GUI button, replace icon and class with submenu button's\n * class / symbol.\n *\n * @param {HTMLDOMElement} - submenu button\n * @param {Boolean} - true or false\n *\n */\n Toolbar.prototype.switchSymbol = function (button, redraw) {\n var buttonWrapper = button.parentNode,\n buttonWrapperClass = buttonWrapper.className, \n // Main button in first level og GUI\n mainNavButton = buttonWrapper.parentNode.parentNode;\n // If the button is disabled, don't do anything\n if (buttonWrapperClass.indexOf('highcharts-disabled-btn') > -1) {\n return;\n }\n // Set class\n mainNavButton.className = '';\n if (buttonWrapperClass) {\n mainNavButton.classList.add(buttonWrapperClass.trim());\n }\n // Set icon\n mainNavButton\n .querySelectorAll('.highcharts-menu-item-btn')[0]\n .style.backgroundImage =\n button.style.backgroundImage;\n // Set active class\n if (redraw) {\n this.toggleButtonActiveClass(mainNavButton);\n }\n };\n /**\n * Set select state (active class) on button.\n * @private\n */\n Toolbar.prototype.toggleButtonActiveClass = function (button) {\n var classList = button.classList;\n if (classList.contains('highcharts-active')) {\n classList.remove('highcharts-active');\n }\n else {\n classList.add('highcharts-active');\n }\n };\n /**\n * Remove active class from all buttons except defined.\n * @private\n */\n Toolbar.prototype.unselectAllButtons = function (button) {\n var activeBtns = button.parentNode\n .querySelectorAll('.highcharts-active');\n [].forEach.call(activeBtns, function (activeBtn) {\n if (activeBtn !== button) {\n activeBtn.classList.remove('highcharts-active');\n }\n });\n };\n /**\n * Update GUI with given options.\n * @private\n */\n Toolbar.prototype.update = function (options, redraw) {\n this.isDirty = !!options.gui.definitions;\n StockToolbar_merge(true, this.chart.options.stockTools, options);\n StockToolbar_merge(true, this.options, options.gui);\n this.visible = StockToolbar_pick(this.options.visible && this.options.enabled, true);\n // If Stock Tools are updated, then bindings should be updated too:\n if (this.chart.navigationBindings) {\n this.chart.navigationBindings.update();\n }\n this.chart.isDirtyBox = true;\n if (StockToolbar_pick(redraw, true)) {\n this.chart.redraw();\n }\n };\n /**\n * Destroy all HTML GUI elements.\n * @private\n */\n Toolbar.prototype.destroy = function () {\n var stockToolsDiv = this.wrapper,\n parent = stockToolsDiv && stockToolsDiv.parentNode;\n this.eventsToUnbind.forEach(function (unbinder) { return unbinder(); });\n // Remove the empty element\n if (parent) {\n parent.removeChild(stockToolsDiv);\n }\n };\n /**\n * Redraws the toolbar based on the current state of the options.\n * @private\n */\n Toolbar.prototype.redraw = function () {\n if (this.options.enabled !== this.guiEnabled) {\n this.handleGuiEnabledChange();\n }\n else {\n if (!this.guiEnabled) {\n return;\n }\n this.updateClassNames();\n this.updateButtons();\n this.updateVisibility();\n this.showHideNavigation();\n this.showHideToolbar();\n }\n };\n /**\n * Hadles the change of the `enabled` option.\n * @private\n */\n Toolbar.prototype.handleGuiEnabledChange = function () {\n if (this.options.enabled === false) {\n this.destroy();\n this.visible = false;\n }\n if (this.options.enabled === true) {\n this.createContainer();\n this.createButtons();\n }\n this.guiEnabled = this.options.enabled;\n };\n /**\n * Updates the class names of the GUI and toolbar elements.\n * @private\n */\n Toolbar.prototype.updateClassNames = function () {\n if (this.options.className !== this.guiClassName) {\n if (this.guiClassName) {\n this.wrapper.classList.remove(this.guiClassName);\n }\n if (this.options.className) {\n this.wrapper.classList.add(this.options.className);\n }\n this.guiClassName = this.options.className;\n }\n if (this.options.toolbarClassName !== this.toolbarClassName) {\n if (this.toolbarClassName) {\n this.toolbar.classList.remove(this.toolbarClassName);\n }\n if (this.options.toolbarClassName) {\n this.toolbar.classList.add(this.options.toolbarClassName);\n }\n this.toolbarClassName = this.options.toolbarClassName;\n }\n };\n /**\n * Updates the buttons in the toolbar if the button options have changed.\n * @private\n */\n Toolbar.prototype.updateButtons = function () {\n if (!StockToolbar_shallowArraysEqual(this.options.buttons, this.buttonList) ||\n this.isDirty) {\n this.toolbar.innerHTML = (highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default()).emptyHTML;\n this.createButtons();\n }\n };\n /**\n * Updates visibility based on current options.\n * @private\n */\n Toolbar.prototype.updateVisibility = function () {\n if (StockToolbar_defined(this.options.visible)) {\n this.visible = this.options.visible;\n }\n };\n /**\n * @private\n */\n Toolbar.prototype.getIconsURL = function () {\n return this.chart.options.navigation.iconsURL ||\n this.options.iconsURL ||\n 'https://code.highcharts.com/12.1.2/gfx/stock-icons/';\n };\n return Toolbar;\n}());\nToolbar.prototype.classMapping = {\n circle: 'highcharts-circle-annotation',\n ellipse: 'highcharts-ellipse-annotation',\n rectangle: 'highcharts-rectangle-annotation',\n label: 'highcharts-label-annotation',\n segment: 'highcharts-segment',\n arrowSegment: 'highcharts-arrow-segment',\n ray: 'highcharts-ray',\n arrowRay: 'highcharts-arrow-ray',\n line: 'highcharts-infinity-line',\n arrowInfinityLine: 'highcharts-arrow-infinity-line',\n verticalLine: 'highcharts-vertical-line',\n horizontalLine: 'highcharts-horizontal-line',\n crooked3: 'highcharts-crooked3',\n crooked5: 'highcharts-crooked5',\n elliott3: 'highcharts-elliott3',\n elliott5: 'highcharts-elliott5',\n pitchfork: 'highcharts-pitchfork',\n fibonacci: 'highcharts-fibonacci',\n fibonacciTimeZones: 'highcharts-fibonacci-time-zones',\n parallelChannel: 'highcharts-parallel-channel',\n measureX: 'highcharts-measure-x',\n measureY: 'highcharts-measure-y',\n measureXY: 'highcharts-measure-xy',\n timeCycles: 'highcharts-time-cycles',\n verticalCounter: 'highcharts-vertical-counter',\n verticalLabel: 'highcharts-vertical-label',\n verticalArrow: 'highcharts-vertical-arrow',\n currentPriceIndicator: 'highcharts-current-price-indicator',\n indicators: 'highcharts-indicators',\n flagCirclepin: 'highcharts-flag-circlepin',\n flagDiamondpin: 'highcharts-flag-diamondpin',\n flagSquarepin: 'highcharts-flag-squarepin',\n flagSimplepin: 'highcharts-flag-simplepin',\n zoomX: 'highcharts-zoom-x',\n zoomY: 'highcharts-zoom-y',\n zoomXY: 'highcharts-zoom-xy',\n typeLine: 'highcharts-series-type-line',\n typeOHLC: 'highcharts-series-type-ohlc',\n typeHLC: 'highcharts-series-type-hlc',\n typeCandlestick: 'highcharts-series-type-candlestick',\n typeHollowCandlestick: 'highcharts-series-type-hollowcandlestick',\n typeHeikinAshi: 'highcharts-series-type-heikinashi',\n fullScreen: 'highcharts-full-screen',\n toggleAnnotations: 'highcharts-toggle-annotations',\n saveChart: 'highcharts-save-chart',\n separator: 'highcharts-separator'\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var StockToolbar = (Toolbar);\n\n;// ./code/es5/es-modules/Stock/StockTools/StockToolsGui.js\n/* *\n *\n * GUI generator for Stock tools\n *\n * (c) 2009-2024 Sebastian Bochan\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar StockToolsGui_setOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).setOptions;\n\n\n\nvar StockToolsGui_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, StockToolsGui_getStyle = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).getStyle, StockToolsGui_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, StockToolsGui_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Verify if Toolbar should be added.\n * @private\n */\nfunction chartSetStockTools(options) {\n var chartOptions = this.options,\n lang = chartOptions.lang,\n guiOptions = StockToolsGui_merge(chartOptions.stockTools && chartOptions.stockTools.gui,\n options && options.gui),\n langOptions = lang && lang.stockTools && lang.stockTools.gui;\n this.stockTools = new StockToolbar(guiOptions, langOptions, this);\n if (this.stockTools.guiEnabled) {\n this.isDirtyBox = true;\n }\n}\n/**\n * @private\n */\nfunction StockToolsGui_compose(ChartClass, NavigationBindingsClass) {\n var chartProto = ChartClass.prototype;\n if (!chartProto.setStockTools) {\n StockToolsGui_addEvent(ChartClass, 'afterGetContainer', onChartAfterGetContainer);\n StockToolsGui_addEvent(ChartClass, 'beforeRedraw', onChartBeforeRedraw);\n StockToolsGui_addEvent(ChartClass, 'beforeRender', onChartBeforeRedraw);\n StockToolsGui_addEvent(ChartClass, 'destroy', StockToolsGui_onChartDestroy);\n StockToolsGui_addEvent(ChartClass, 'getMargins', onChartGetMargins, { order: 0 });\n StockToolsGui_addEvent(ChartClass, 'render', StockToolsGui_onChartRender);\n chartProto.setStockTools = chartSetStockTools;\n StockToolsGui_addEvent(NavigationBindingsClass, 'deselectButton', StockToolsGui_onNavigationBindingsDeselectButton);\n StockToolsGui_addEvent(NavigationBindingsClass, 'selectButton', onNavigationBindingsSelectButton);\n StockToolsGui_setOptions(StockTools_StockToolsDefaults);\n }\n}\n/**\n * Run HTML generator\n * @private\n */\nfunction onChartAfterGetContainer() {\n this.setStockTools();\n}\n/**\n * Handle beforeRedraw and beforeRender\n * @private\n */\nfunction onChartBeforeRedraw() {\n if (this.stockTools) {\n this.stockTools.redraw();\n setOffset(this);\n }\n}\n/**\n * Function to calculate and set the offset width for stock tools.\n * @private\n */\nfunction setOffset(chart) {\n var _a;\n if ((_a = chart.stockTools) === null || _a === void 0 ? void 0 : _a.guiEnabled) {\n var optionsChart = chart.options.chart;\n var listWrapper = chart.stockTools.listWrapper;\n var offsetWidth = listWrapper && ((listWrapper.startWidth +\n StockToolsGui_getStyle(listWrapper, 'padding-left') +\n StockToolsGui_getStyle(listWrapper, 'padding-right')) || listWrapper.offsetWidth);\n chart.stockTools.width = offsetWidth;\n var dirty = false;\n if (offsetWidth < chart.plotWidth) {\n var nextX = StockToolsGui_pick(optionsChart.spacingLeft,\n optionsChart.spacing && optionsChart.spacing[3], 0) + offsetWidth;\n var diff = nextX - chart.spacingBox.x;\n chart.spacingBox.x = nextX;\n chart.spacingBox.width -= diff;\n dirty = true;\n }\n else if (offsetWidth === 0) {\n dirty = true;\n }\n if (offsetWidth !== chart.stockTools.prevOffsetWidth) {\n chart.stockTools.prevOffsetWidth = offsetWidth;\n if (dirty) {\n chart.isDirtyLegend = true;\n }\n }\n }\n}\n/**\n * @private\n */\nfunction StockToolsGui_onChartDestroy() {\n if (this.stockTools) {\n this.stockTools.destroy();\n }\n}\n/**\n * @private\n */\nfunction onChartGetMargins() {\n var _a;\n var offsetWidth = ((_a = this.stockTools) === null || _a === void 0 ? void 0 : _a.visible) && this.stockTools.guiEnabled ?\n this.stockTools.width : 0;\n if (offsetWidth && offsetWidth < this.plotWidth) {\n this.plotLeft += offsetWidth;\n this.spacing[3] += offsetWidth;\n }\n}\n/**\n * Check if the correct price indicator button is displayed, #15029.\n * @private\n */\nfunction StockToolsGui_onChartRender() {\n var _a,\n _b;\n var stockTools = this.stockTools,\n button = stockTools &&\n stockTools.toolbar &&\n stockTools.toolbar.querySelector('.highcharts-current-price-indicator');\n // Change the initial button background.\n if (stockTools &&\n this.navigationBindings &&\n this.options.series &&\n button) {\n if ((_b = (_a = this.navigationBindings.utils) === null || _a === void 0 ? void 0 : _a.isPriceIndicatorEnabled) === null || _b === void 0 ? void 0 : _b.call(_a, this.series)) {\n button.firstChild.style['background-image'] =\n 'url(\"' + stockTools.getIconsURL() + 'current-price-hide.svg\")';\n }\n else {\n button.firstChild.style['background-image'] =\n 'url(\"' + stockTools.getIconsURL() + 'current-price-show.svg\")';\n }\n }\n}\n/**\n * @private\n */\nfunction StockToolsGui_onNavigationBindingsDeselectButton(event) {\n var className = 'highcharts-submenu-wrapper',\n gui = this.chart.stockTools;\n if (gui && gui.guiEnabled) {\n var button = event.button;\n // If deselecting a button from a submenu, select state for it's parent\n if (button.parentNode.className.indexOf(className) >= 0) {\n button = button.parentNode.parentNode;\n }\n button.classList.remove('highcharts-active');\n }\n}\n/**\n * Communication with bindings\n * @private\n */\nfunction onNavigationBindingsSelectButton(event) {\n var className = 'highcharts-submenu-wrapper',\n gui = this.chart.stockTools;\n if (gui && gui.guiEnabled) {\n var button = event.button;\n // Unselect other active buttons\n gui.unselectAllButtons(event.button);\n // If clicked on a submenu, select state for it's parent\n if (button.parentNode.className.indexOf(className) >= 0) {\n button = button.parentNode.parentNode;\n }\n // Set active class on the current button\n gui.toggleButtonActiveClass(button);\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar StockToolsGui = {\n compose: StockToolsGui_compose\n};\n/* harmony default export */ var StockTools_StockToolsGui = (StockToolsGui);\n\n;// ./code/es5/es-modules/masters/modules/stock-tools.src.js\n\n\n\n\n\n\n\nvar G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\nG.NavigationBindings = G.NavigationBindings || Annotations_NavigationBindings;\nG.Toolbar = StockToolbar;\nStockTools_StockTools.compose(G.NavigationBindings);\nStockTools_StockToolsGui.compose(G.Chart, G.NavigationBindings);\n/* harmony default export */ var stock_tools_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__984__","__WEBPACK_EXTERNAL_MODULE__820__","__WEBPACK_EXTERNAL_MODULE__660__","ChartNavigationComposition","Additions","__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__","stock_tools_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","compose","chart","navigation","updates","addUpdate","updateFn","push","update","options","redraw","_this","forEach","Chart_ChartNavigationComposition","highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_","highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default","defined","isNumber","pick","annotationsFieldsTypes","backgroundColor","borderColor","borderRadius","color","fill","fontSize","labels","name","stroke","title","coords","filter","coord","extremes","axis","getExtremes","axisMin","min","axisMax","max","minPointOffset","value","isInternal","predefinedType","fieldType","NavigationBindingsDefaults_isNumber","merge","NavigationBindingsDefaults","lang","popup","simpleShapes","lines","circle","ellipse","rectangle","label","shapeOptions","typeOptions","format","strokeWidth","labelOptions","backgroundColors","borderWidth","style","padding","height","shapes","bindingsClassName","bindings","circleAnnotation","className","start","e","_a","pointer","getCoordinates","coordsX","NavigationBindingsDefaults_getAssignedAxis","xAxis","coordsY","yAxis","addAnnotation","langKey","type","point","x","y","index","r","annotationsOptions","steps","annotation","distance","mockPointOpts","inverted","toPixels","Math","sqrt","pow","chartX","chartY","ellipseAnnotation","points","ry","annotationOptions","target","position","getAbsolutePosition","translatePoint","position2","newR","getDistanceFromLine","getYAxis","newRY","abs","toValue","setYRadius","rectangleAnnotation","command","labelAnnotation","overflow","crop","events","animation","defer","setOptions","composed","doc","win","addEvent","attr","NavigationBindings_defined","fireEvent","isArray","isFunction","NavigationBindings_isNumber","isObject","NavigationBindings_merge","objectEach","NavigationBindings_pick","pushUnique","onAnnotationRemove","navigationBindings","deselectAnnotation","onChartDestroy","destroy","onChartLoad","NavigationBindings","initEvents","initUpdate","onChartRender","disabledClassName","buttonsEnabled_1","series","visible","container","container_1","boundClassNames","buttonNode","querySelectorAll","i","length","button","cls","noDataState","indexOf","classList","remove","onNavigationBindingsClosePopup","onNavigationBindingsDeselectButton","selectedButtonElement","selectableAnnotation","annotationType","touchStartX","touchStartY","originalClick","defaultOptions","click","selectAndShowPopup","eventArguments","prevAnnotation","activeAnnotation","setControlPointsVisibility","formType","annotationToFields","onSubmit","data","actionType","removeAnnotation","config","fieldsToOptions","fields","crosshairY","enabled","crosshairX","touchstart","touches","clientX","clientY","touchend","changedTouches","eventsToUnbind","getElementsByClassName","AnnotationClass","ChartClass","types","getCoords","NavigationBindings_getAssignedAxis","bindingsContainer","subContainer","event","getButtonEvents","contains","bindingsButtonClick","callback","eventName","passive","cancelClick","isInsidePlot","plotLeft","plotTop","visiblePlotOnly","bindingsChartClick","isTouchDevice","bindingsContainerMouseMove","clickEvent","svgContainer","renderer","boxWrapper","shouldEventBeFired","nextEvent","currentUserDetails","coll","mouseMoveEvent","selectedButton","init","addClass","stockTools","removeClass","parentNode","closestPolyfill","el","s","ElementProto","Element","elementMatches","matches","msMatchesSelector","webkitMatchesSelector","ret","closest","parentElement","nodeType","setTimeout","stepIndex","end","_container","moveEvent","field","parsedValue","parseFloat","path","split","pathLength","match","parent_1","nextName","editables","annotationsEditable","nestedEditables","nestedOptions","nonEditables","annotationsNonEditable","visualOptions","traverse","option","parentEditables","parent","parentKey","nextParent","arrayOption","nestedOption","nestedKey","toString","NavigationBindings_getFieldType","typeOption","typeKey","getClickedClassNames","elemClassName","element","classNames","tagName","concat","map","removeEvents","unbinder","background","innerBackground","outerBackground","line","connector","verticalLine","measure","fibonacci","tunnel","pitchfork","rect","crookedLine","basicAnnotation","highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_","highcharts_Series_commonjs_highcharts_Series_commonjs2_highcharts_Series_root_Highcharts_Series_default","getOptions","StockToolsUtilities_defined","StockToolsUtilities_fireEvent","StockToolsUtilities_isNumber","uniqueKey","indicatorsWithAxes","indicatorsWithVolume","attractToPoint","closestPoint","distX","Number","MAX_VALUE","StockToolsUtilities_getAssignedAxis","searchPoint","below","StockTools_StockToolsUtilities","addFlagFromForm","toolbar","pointConfig","seriesOptions","onSeries","id","shape","StockToolsUtilities_getFieldType","updated","guiEnabled","addSeries","getAssignedAxis","isNotNavigatorYAxis","userOptions","isPriceIndicatorEnabled","some","lastVisiblePrice","lastPrice","manageIndicators","parentSeries","seriesConfig","linkedTo","seriesId","linkedSeries","removedYAxisProps","top","resizeYAxes","plotOptions","getDGApproximation","dataGrouping","approximation","addAxis","offset","opposite","text","tickPixelInterval","showLastLabel","align","params","volumeSeriesID","shallowArraysEqual","b","updateHeight","horiz","updateNthPoint","startIndex","updateRectSize","width","StockToolsBindings_addFlagFromForm","StockToolsBindings_attractToPoint","StockToolsBindings_isNotNavigatorYAxis","StockToolsBindings_isPriceIndicatorEnabled","StockToolsBindings_manageIndicators","StockToolsBindings_updateHeight","StockToolsBindings_updateNthPoint","StockToolsBindings_updateRectSize","StockToolsBindings_fireEvent","StockToolsBindings_merge","StockToolsBindings","segment","arrowSegment","markerEnd","ray","arrowRay","infinityLine","arrowInfinityLine","horizontalLine","draggable","crooked3","crooked5","elliott3","elliott5","measureX","selectType","measureY","measureXY","parallelChannel","controlPoint","verticalCounter","timeCycles","verticalLabel","verticalArrow","fibonacciTimeZones","flagCirclepin","flagDiamondpin","flagSquarepin","flagSimplepin","zoomX","zooming","zoomY","zoomXY","seriesTypeLine","useOhlcData","seriesTypeOhlc","seriesTypeCandlestick","seriesTypeHeikinAshi","seriesTypeHLC","seriesTypeHollowCandlestick","fullScreen","fullscreen","toggle","currentPriceIndicator","gui","priceIndicatorEnabled","indicators","toggleAnnotations","iconsURL","getIconsURL","toggledAnnotations","annotations","setVisibility","firstChild","saveChart","flags","yAxes","is","localStorage","setItem","JSON","stringify","StockTools_StockToolsDefaults","crookedLines","advanced","verticalLabels","zoomChange","typeChange","typeOHLC","typeLine","typeCandlestick","typeHLC","typeHollowCandlestick","typeHeikinAshi","addButton","saveButton","editButton","removeButton","volume","noFilterMatch","searchIndicators","clearFilter","period","periods","standardDeviation","periodTenkan","periodSenkouSpanB","periodATR","multiplierATR","shortPeriod","longPeriod","signalPeriod","decimals","algorithm","topBand","bottomBand","initialAccelerationFactor","maxAccelerationFactor","increment","multiplier","ranges","highIndex","lowIndex","deviation","xAxisUnit","factor","fastAvgPeriod","slowAvgPeriod","average","indicatorAliases","abands","bb","dema","ema","ikh","keltnerchannels","linearRegression","pivotpoints","pc","priceenvelopes","psar","sma","supertrend","tema","vbp","vwap","wma","zigzag","apo","ad","aroon","aroonoscillator","atr","ao","cci","chaikin","cmf","cmo","disparityindex","dmi","dpo","klinger","linearRegressionAngle","linearRegressionIntercept","linearRegressionSlope","macd","mfi","momentum","natr","obv","ppo","roc","rsi","slowstochastic","stochastic","trix","williamsr","toolbarClassName","buttons","definitions","separator","elementType","symbol","items","StockTools_setOptions","StockTools_isNotNavigatorYAxis","StockTools_isPriceIndicatorEnabled","correctFloat","StockTools_defined","StockTools_isNumber","StockTools_pick","navigationGetYAxisPositions","plotHeight","defaultHeight","previousAxisHeight","removedHeight","removedTop","allAxesHeight","isPercentage","positions","every","navigationGetYAxisResizers","resizers","_yAxis","nextYAxis","controlledAxis","next","navigationRecalculateYAxisPositions","changedSpace","modifyHeight","adder","prevPosition","navigationResizeYAxes","getYAxisPositions","getYAxisResizers","resize","highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_","highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default","StockToolbar_addEvent","createElement","css","StockToolbar_defined","StockToolbar_fireEvent","getStyle","StockToolbar_isArray","StockToolbar_merge","StockToolbar_pick","StockToolbar_shallowArraysEqual","Toolbar","langOptions","isDirty","guiClassName","createContainer","createButtons","showHideNavigation","guiOptions","defs","allButtons","childNodes","buttonList","btnName","buttonWrapper","eraseActiveButtons","addSubmenu","parentBtn","submenuArrow","buttonWidth","wrapper","menuWrapper","listWrapper","submenuWrapper","submenu","addSubmenuItems","stopPropagation","startWidth","display","topMargin","offsetHeight","offsetTop","left","offsetWidth","submenuBtn","_self","mainButton","switchSymbol","firstSubmenuItem","currentButton","submenuItems","btn","btnOptions","classMapping","userClassName","backgroundImage","addNavigation","arrowWrapper","arrowUp","arrowDown","insertBefore","scrollButtons","step","targetY","marginTop","self","appendChild","showHideBtn","eventType","onContainerMouseLeave","showHideToolbar","add","buttonWrapperClass","mainNavButton","trim","toggleButtonActiveClass","unselectAllButtons","activeBtns","activeBtn","isDirtyBox","stockToolsDiv","removeChild","handleGuiEnabledChange","updateClassNames","updateButtons","updateVisibility","innerHTML","emptyHTML","StockToolsGui_setOptions","StockToolsGui_addEvent","StockToolsGui_getStyle","StockToolsGui_merge","StockToolsGui_pick","chartSetStockTools","chartOptions","onChartAfterGetContainer","setStockTools","onChartBeforeRedraw","setOffset","optionsChart","dirty","plotWidth","nextX","spacingLeft","spacing","diff","spacingBox","prevOffsetWidth","isDirtyLegend","StockToolsGui_onChartDestroy","onChartGetMargins","StockToolsGui_onChartRender","_b","querySelector","utils","StockToolsGui_onNavigationBindingsDeselectButton","onNavigationBindingsSelectButton","G","StockTools_StockTools","NavigationBindingsClass","navigationProto","recalculateYAxisPositions","StockTools_StockToolsGui","chartProto","order","Chart"],"mappings":"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"}
Hacked By AnonymousFox1.0, Coded By AnonymousFox