Hacked By AnonymousFox
{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highcharts JS v12.1.2 (2025-01-09)\n * @module highcharts/modules/annotations\n * @requires highcharts\n *\n * Annotations module\n *\n * (c) 2009-2024 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\")[\"SeriesRegistry\"], require(\"highcharts\")[\"Templating\"], require(\"highcharts\")[\"AST\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/modules/annotations\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"SeriesRegistry\"], [\"highcharts/highcharts\",\"Templating\"], [\"highcharts/highcharts\",\"AST\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/modules/annotations\"] = factory(require(\"highcharts\"), require(\"highcharts\")[\"SeriesRegistry\"], require(\"highcharts\")[\"Templating\"], require(\"highcharts\")[\"AST\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"SeriesRegistry\"], root[\"Highcharts\"][\"Templating\"], root[\"Highcharts\"][\"AST\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__512__, __WEBPACK_EXTERNAL_MODULE__984__, __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/***/ 512:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__512__;\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 */ annotations_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/Extensions/Annotations/AnnotationChart.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 addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, erase = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).erase, find = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).find, fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, wrap = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).wrap;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Add an annotation to the chart after render time.\n *\n * @sample highcharts/annotations/add-annotation/\n * Add annotation\n *\n * @function Highcharts.Chart#addAnnotation\n *\n * @param {Highcharts.AnnotationsOptions} options\n * The annotation options for the new, detailed annotation.\n *\n * @param {boolean} [redraw]\n *\n * @return {Highcharts.Annotation}\n * The newly generated annotation.\n */\nfunction chartAddAnnotation(userOptions, redraw) {\n var annotation = this.initAnnotation(userOptions);\n this.options.annotations.push(annotation.options);\n if (pick(redraw, true)) {\n annotation.redraw();\n annotation.graphic.attr({\n opacity: 1\n });\n }\n return annotation;\n}\n/**\n * @private\n */\nfunction chartCallback() {\n var chart = this;\n chart.plotBoxClip = this.renderer.clipRect(this.plotBox);\n chart.controlPointsGroup = chart.renderer\n .g('control-points')\n .attr({ zIndex: 99 })\n .clip(chart.plotBoxClip)\n .add();\n chart.options.annotations.forEach(function (annotationOptions, i) {\n if (\n // Verify that it has not been previously added in a responsive rule\n !chart.annotations.some(function (annotation) {\n return annotation.options === annotationOptions;\n })) {\n var annotation = chart.initAnnotation(annotationOptions);\n chart.options.annotations[i] = annotation.options;\n }\n });\n chart.drawAnnotations();\n addEvent(chart, 'redraw', chart.drawAnnotations);\n addEvent(chart, 'destroy', function () {\n chart.plotBoxClip.destroy();\n chart.controlPointsGroup.destroy();\n });\n addEvent(chart, 'exportData', function (event) {\n var annotations = chart.annotations,\n csvColumnHeaderFormatter = ((this.options.exporting &&\n this.options.exporting.csv) ||\n {}).columnHeaderFormatter, \n // If second row doesn't have xValues\n // then it is a title row thus multiple level header is in use.\n multiLevelHeaders = !event.dataRows[1].xValues,\n annotationHeader = (chart.options.lang &&\n chart.options.lang.exportData &&\n chart.options.lang.exportData.annotationHeader),\n columnHeaderFormatter = function (index) {\n var s;\n if (csvColumnHeaderFormatter) {\n s = csvColumnHeaderFormatter(index);\n if (s !== false) {\n return s;\n }\n }\n s = annotationHeader + ' ' + index;\n if (multiLevelHeaders) {\n return {\n columnTitle: s,\n topLevelColumnTitle: s\n };\n }\n return s;\n }, startRowLength = event.dataRows[0].length, annotationSeparator = (chart.options.exporting &&\n chart.options.exporting.csv &&\n chart.options.exporting.csv.annotations &&\n chart.options.exporting.csv.annotations.itemDelimiter), joinAnnotations = (chart.options.exporting &&\n chart.options.exporting.csv &&\n chart.options.exporting.csv.annotations &&\n chart.options.exporting.csv.annotations.join);\n annotations.forEach(function (annotation) {\n if (annotation.options.labelOptions &&\n annotation.options.labelOptions.includeInDataExport) {\n annotation.labels.forEach(function (label) {\n if (label.options.text) {\n var annotationText_1 = label.options.text;\n label.points.forEach(function (points) {\n var annotationX = points.x,\n xAxisIndex = points.series.xAxis ?\n points.series.xAxis.index :\n -1;\n var wasAdded = false;\n // Annotation not connected to any xAxis -\n // add new row.\n if (xAxisIndex === -1) {\n var n = event.dataRows[0].length,\n newRow = new Array(n);\n for (var i = 0; i < n; ++i) {\n newRow[i] = '';\n }\n newRow.push(annotationText_1);\n newRow.xValues = [];\n newRow.xValues[xAxisIndex] = annotationX;\n event.dataRows.push(newRow);\n wasAdded = true;\n }\n // Annotation placed on a exported data point\n // - add new column\n if (!wasAdded) {\n event.dataRows.forEach(function (row) {\n if (!wasAdded &&\n row.xValues &&\n xAxisIndex !== void 0 &&\n annotationX === row.xValues[xAxisIndex]) {\n if (joinAnnotations &&\n row.length > startRowLength) {\n row[row.length - 1] += (annotationSeparator +\n annotationText_1);\n }\n else {\n row.push(annotationText_1);\n }\n wasAdded = true;\n }\n });\n }\n // Annotation not placed on any exported data point,\n // but connected to the xAxis - add new row\n if (!wasAdded) {\n var n = event.dataRows[0].length,\n newRow = new Array(n);\n for (var i = 0; i < n; ++i) {\n newRow[i] = '';\n }\n newRow[0] = annotationX;\n newRow.push(annotationText_1);\n newRow.xValues = [];\n if (xAxisIndex !== void 0) {\n newRow.xValues[xAxisIndex] = annotationX;\n }\n event.dataRows.push(newRow);\n }\n });\n }\n });\n }\n });\n var maxRowLen = 0;\n event.dataRows.forEach(function (row) {\n maxRowLen = Math.max(maxRowLen, row.length);\n });\n var newRows = maxRowLen - event.dataRows[0].length;\n for (var i = 0; i < newRows; i++) {\n var header = columnHeaderFormatter(i + 1);\n if (multiLevelHeaders) {\n event.dataRows[0].push(header.topLevelColumnTitle);\n event.dataRows[1].push(header.columnTitle);\n }\n else {\n event.dataRows[0].push(header);\n }\n }\n });\n}\n/**\n * @private\n */\nfunction chartDrawAnnotations() {\n this.plotBoxClip.attr(this.plotBox);\n this.annotations.forEach(function (annotation) {\n annotation.redraw();\n annotation.graphic.animate({\n opacity: 1\n }, annotation.animationConfig);\n });\n}\n/**\n * Remove an annotation from the chart.\n *\n * @function Highcharts.Chart#removeAnnotation\n *\n * @param {number|string|Highcharts.Annotation} idOrAnnotation\n * The annotation's id or direct annotation object.\n */\nfunction chartRemoveAnnotation(idOrAnnotation) {\n var annotations = this.annotations,\n annotation = (idOrAnnotation.coll === 'annotations') ?\n idOrAnnotation :\n find(annotations,\n function (annotation) {\n return annotation.options.id === idOrAnnotation;\n });\n if (annotation) {\n fireEvent(annotation, 'remove');\n erase(this.options.annotations, annotation.options);\n erase(annotations, annotation);\n annotation.destroy();\n }\n}\n/**\n * Create lookups initially\n * @private\n */\nfunction onChartAfterInit() {\n var chart = this;\n chart.annotations = [];\n if (!this.options.annotations) {\n this.options.annotations = [];\n }\n}\n/**\n * @private\n */\nfunction wrapPointerOnContainerMouseDown(proceed) {\n if (!this.chart.hasDraggedAnnotation) {\n proceed.apply(this, Array.prototype.slice.call(arguments, 1));\n }\n}\n/* *\n *\n * Composition\n *\n * */\n/**\n * @private\n */\nvar AnnotationChart;\n(function (AnnotationChart) {\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n function compose(AnnotationClass, ChartClass, PointerClass) {\n var chartProto = ChartClass.prototype;\n if (!chartProto.addAnnotation) {\n var pointerProto = PointerClass.prototype;\n addEvent(ChartClass, 'afterInit', onChartAfterInit);\n chartProto.addAnnotation = chartAddAnnotation;\n chartProto.callbacks.push(chartCallback);\n chartProto.collectionsWithInit.annotations = [chartAddAnnotation];\n chartProto.collectionsWithUpdate.push('annotations');\n chartProto.drawAnnotations = chartDrawAnnotations;\n chartProto.removeAnnotation = chartRemoveAnnotation;\n chartProto.initAnnotation = function chartInitAnnotation(userOptions) {\n var Constructor = (AnnotationClass.types[userOptions.type] ||\n AnnotationClass),\n annotation = new Constructor(this,\n userOptions);\n this.annotations.push(annotation);\n return annotation;\n };\n wrap(pointerProto, 'onContainerMouseDown', wrapPointerOnContainerMouseDown);\n }\n }\n AnnotationChart.compose = compose;\n})(AnnotationChart || (AnnotationChart = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Annotations_AnnotationChart = (AnnotationChart);\n\n;// ./code/es5/es-modules/Extensions/Annotations/AnnotationDefaults.js\n/* *\n *\n * Imports\n *\n * */\n\nvar defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined;\n/* *\n *\n * API Options\n *\n * */\n/**\n * A basic type of an annotation. It allows to add custom labels\n * or shapes. The items can be tied to points, axis coordinates\n * or chart pixel coordinates.\n *\n * @sample highcharts/annotations/basic/\n * Basic annotations\n * @sample highcharts/demo/annotations/\n * Advanced annotations\n * @sample highcharts/css/annotations\n * Styled mode\n * @sample highcharts/annotations-advanced/controllable\n * Controllable items\n * @sample {highstock} stock/annotations/fibonacci-retracements\n * Custom annotation, Fibonacci retracement\n *\n * @type {Array<*>}\n * @since 6.0.0\n * @requires modules/annotations\n * @optionparent annotations\n */\nvar AnnotationDefaults = {\n /**\n * Sets an ID for an annotation. Can be user later when\n * removing an annotation in [Chart#removeAnnotation(id)](\n * /class-reference/Highcharts.Chart#removeAnnotation) method.\n *\n * @type {number|string}\n * @apioption annotations.id\n */\n /**\n * Whether the annotation is visible.\n *\n * @sample highcharts/annotations/visible/\n * Set annotation visibility\n */\n visible: true,\n /**\n * Enable or disable the initial animation when a series is\n * displayed for the `annotation`. The animation can also be set\n * as a configuration object. Please note that this option only\n * applies to the initial animation.\n * For other animations, see [chart.animation](#chart.animation)\n * and the animation parameter under the API methods.\n * The following properties are supported:\n *\n * - `defer`: The animation delay time in milliseconds.\n *\n * @sample {highcharts} highcharts/annotations/defer/\n * Animation defer settings\n * @type {boolean|Partial<Highcharts.AnimationOptionsObject>}\n * @since 8.2.0\n */\n animation: {},\n /**\n * Whether to hide the part of the annotation\n * that is outside the plot area.\n *\n * @sample highcharts/annotations/label-crop-overflow/\n * Crop line annotation\n * @type {boolean}\n * @since 9.3.0\n */\n crop: true,\n /**\n * The animation delay time in milliseconds.\n * Set to `0` renders annotation immediately.\n * As `undefined` inherits defer time from the [series.animation.defer](#plotOptions.series.animation.defer).\n *\n * @type {number}\n * @since 8.2.0\n * @apioption annotations.animation.defer\n */\n /**\n * Allow an annotation to be draggable by a user. Possible\n * values are `'x'`, `'xy'`, `'y'` and `''` (disabled).\n *\n * @sample highcharts/annotations/draggable/\n * Annotations draggable: 'xy'\n *\n * @type {Highcharts.AnnotationDraggableValue}\n */\n draggable: 'xy',\n /**\n * Options for annotation's labels. Each label inherits options\n * from the labelOptions object. An option from the labelOptions\n * can be overwritten by config for a specific label.\n *\n * @requires modules/annotations\n */\n labelOptions: {\n /**\n * The alignment of the annotation's label. If right,\n * the right side of the label should be touching the point.\n *\n * @sample highcharts/annotations/label-position/\n * Set labels position\n *\n * @type {Highcharts.AlignValue}\n */\n align: 'center',\n /**\n * Whether to allow the annotation's labels to overlap.\n * To make the labels less sensitive for overlapping,\n * the can be set to 0.\n *\n * @sample highcharts/annotations/tooltip-like/\n * Hide overlapping labels\n */\n allowOverlap: false,\n /**\n * The background color or gradient for the annotation's\n * label.\n *\n * @sample highcharts/annotations/label-presentation/\n * Set labels graphic options\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n backgroundColor: 'rgba(0, 0, 0, 0.75)',\n /**\n * The border color for the annotation's label.\n *\n * @sample highcharts/annotations/label-presentation/\n * Set labels graphic options\n *\n * @type {Highcharts.ColorString}\n */\n borderColor: \"#000000\" /* Palette.neutralColor100 */,\n /**\n * The border radius in pixels for the annotation's label.\n *\n * @sample highcharts/annotations/label-presentation/\n * Set labels graphic options\n */\n borderRadius: 3,\n /**\n * The border width in pixels for the annotation's label\n *\n * @sample highcharts/annotations/label-presentation/\n * Set labels graphic options\n */\n borderWidth: 1,\n /**\n * A class name for styling by CSS.\n *\n * @sample highcharts/css/annotations\n * Styled mode annotations\n *\n * @since 6.0.5\n */\n className: 'highcharts-no-tooltip',\n /**\n * Whether to hide the annotation's label\n * that is outside the plot area.\n *\n * @sample highcharts/annotations/label-crop-overflow/\n * Crop or justify labels\n */\n crop: false,\n /**\n * The label's pixel distance from the point.\n *\n * @sample highcharts/annotations/label-position/\n * Set labels position\n *\n * @type {number}\n * @apioption annotations.labelOptions.distance\n */\n /**\n * A\n * [format](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting)\n * string for the data label.\n *\n * @see [plotOptions.series.dataLabels.format](plotOptions.series.dataLabels.format.html)\n *\n * @sample highcharts/annotations/label-text/\n * Set labels text\n *\n * @type {string}\n * @apioption annotations.labelOptions.format\n */\n /**\n * Alias for the format option.\n *\n * @see [format](annotations.labelOptions.format.html)\n *\n * @sample highcharts/annotations/label-text/\n * Set labels text\n *\n * @type {string}\n * @apioption annotations.labelOptions.text\n */\n /**\n * Callback JavaScript function to format the annotation's\n * label. Note that if a `format` or `text` are defined,\n * the format or text take precedence and the formatter is\n * ignored. `This` refers to a point object.\n *\n * @sample highcharts/annotations/label-text/\n * Set labels text\n *\n * @type {Highcharts.FormatterCallbackFunction<Highcharts.Point>}\n * @default function () { return defined(this.y) ? this.y : 'Annotation label'; }\n */\n formatter: function () {\n return defined(this.y) ? '' + this.y : 'Annotation label';\n },\n /**\n * Whether the annotation is visible in the exported data\n * table.\n *\n * @sample highcharts/annotations/include-in-data-export/\n * Do not include in the data export\n *\n * @since 8.2.0\n * @requires modules/export-data\n */\n includeInDataExport: true,\n /**\n * How to handle the annotation's label that flow outside\n * the plot area. The justify option aligns the label inside\n * the plot area.\n *\n * @sample highcharts/annotations/label-crop-overflow/\n * Crop or justify labels\n *\n * @validvalue [\"allow\", \"justify\"]\n */\n overflow: 'justify',\n /**\n * When either the borderWidth or the backgroundColor is\n * set, this is the padding within the box.\n *\n * @sample highcharts/annotations/label-presentation/\n * Set labels graphic options\n */\n padding: 5,\n /**\n * The shadow of the box. The shadow can be an object\n * configuration containing `color`, `offsetX`, `offsetY`,\n * `opacity` and `width`.\n *\n * @sample highcharts/annotations/label-presentation/\n * Set labels graphic options\n *\n * @type {boolean|Highcharts.ShadowOptionsObject}\n */\n shadow: false,\n /**\n * The name of a symbol to use for the border around the\n * label. Symbols are predefined functions on the Renderer\n * object.\n *\n * @sample highcharts/annotations/shapes/\n * Available shapes for labels\n */\n shape: 'callout',\n /**\n * Styles for the annotation's label.\n *\n * @see [plotOptions.series.dataLabels.style](plotOptions.series.dataLabels.style.html)\n *\n * @sample highcharts/annotations/label-presentation/\n * Set labels graphic options\n *\n * @type {Highcharts.CSSObject}\n */\n style: {\n /** @ignore */\n fontSize: '0.7em',\n /** @ignore */\n fontWeight: 'normal',\n /** @ignore */\n color: 'contrast'\n },\n /**\n * Whether to [use HTML](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting#html)\n * to render the annotation's label.\n */\n useHTML: false,\n /**\n * The vertical alignment of the annotation's label.\n *\n * @sample highcharts/annotations/label-position/\n * Set labels position\n *\n * @type {Highcharts.VerticalAlignValue}\n */\n verticalAlign: 'bottom',\n /**\n * The x position offset of the label relative to the point.\n * Note that if a `distance` is defined, the distance takes\n * precedence over `x` and `y` options.\n *\n * @sample highcharts/annotations/label-position/\n * Set labels position\n */\n x: 0,\n /**\n * The y position offset of the label relative to the point.\n * Note that if a `distance` is defined, the distance takes\n * precedence over `x` and `y` options.\n *\n * @sample highcharts/annotations/label-position/\n * Set labels position\n */\n y: -16\n },\n /**\n * An array of labels for the annotation. For options that apply\n * to multiple labels, they can be added to the\n * [labelOptions](annotations.labelOptions.html).\n *\n * @type {Array<*>}\n * @extends annotations.labelOptions\n * @apioption annotations.labels\n */\n /**\n * This option defines the point to which the label will be\n * connected. It can be either the point which exists in the\n * series - it is referenced by the point's id - or a new point\n * with defined x, y properties and optionally axes.\n *\n * @sample highcharts/annotations/mock-point/\n * Attach annotation to a mock point\n * @sample highcharts/annotations/mock-points/\n * Attach annotation to a mock point with different ways\n *\n * @declare Highcharts.AnnotationMockPointOptionsObject\n * @type {\n * string|\n * Highcharts.AnnotationMockPointOptionsObject|\n * Highcharts.AnnotationMockPointFunction\n * }\n * @requires modules/annotations\n * @apioption annotations.labels.point\n */\n /**\n * An array of shapes for the annotation. For options that apply\n * to multiple shapes, then can be added to the\n * [shapeOptions](annotations.shapeOptions.html).\n *\n * @type {Array<*>}\n * @extends annotations.shapeOptions\n * @apioption annotations.shapes\n */\n /**\n * This option defines the point to which the shape will be\n * connected. It can be either the point which exists in the\n * series - it is referenced by the point's id - or a new point\n * with defined x, y properties and optionally axes.\n *\n * @sample highcharts/annotations/mock-points/\n * Attach annotation to a mock point with different ways\n *\n * @declare Highcharts.AnnotationMockPointOptionsObject\n * @type {\n * string|\n * Highcharts.AnnotationMockPointOptionsObject|\n * Highcharts.AnnotationMockPointFunction\n * }\n * @extends annotations.labels.point\n * @requires modules/annotations\n * @apioption annotations.shapes.point\n */\n /**\n * An array of points for the shape\n * or a callback function that returns that shape point.\n *\n * This option is available\n * for shapes which can use multiple points such as path. A\n * point can be either a point object or a point's id.\n *\n * @see [annotations.shapes.point](annotations.shapes.point.html)\n *\n * @type {Array<Highcharts.AnnotationShapePointOptions>}\n * @extends annotations.labels.point\n * @apioption annotations.shapes.points\n */\n /**\n * The URL for an image to use as the annotation shape. Note,\n * type has to be set to `'image'`.\n *\n * @see [annotations.shapes.type](annotations.shapes.type)\n * @sample highcharts/annotations/shape-src/\n * Define a marker image url for annotations\n *\n * @type {string}\n * @apioption annotations.shapes.src\n */\n /**\n * Id of the marker which will be drawn at the final vertex of\n * the path. Custom markers can be defined in defs property.\n *\n * @see [defs.markers](defs.markers.html)\n *\n * @sample highcharts/annotations/custom-markers/\n * Define a custom marker for annotations\n *\n * @type {string}\n * @apioption annotations.shapes.markerEnd\n */\n /**\n * Id of the marker which will be drawn at the first vertex of\n * the path. Custom markers can be defined in defs property.\n *\n * @see [defs.markers](defs.markers.html)\n *\n * @sample {highcharts} highcharts/annotations/custom-markers/\n * Define a custom marker for annotations\n *\n * @type {string}\n * @apioption annotations.shapes.markerStart\n */\n /**\n * Options for annotation's shapes. Each shape inherits options\n * from the shapeOptions object. An option from the shapeOptions\n * can be overwritten by config for a specific shape.\n *\n * @requires modules/annotations\n */\n shapeOptions: {\n /**\n *\n * The radius of the shape in y direction.\n * Used for the ellipse.\n *\n * @sample highcharts/annotations/ellipse/\n * Ellipse annotation\n *\n * @type {number}\n * @apioption annotations.shapeOptions.ry\n **/\n /**\n *\n * The xAxis index to which the points should be attached.\n * Used for the ellipse.\n *\n * @type {number}\n * @apioption annotations.shapeOptions.xAxis\n **/\n /**\n * The yAxis index to which the points should be attached.\n * Used for the ellipse.\n *\n * @type {number}\n * @apioption annotations.shapeOptions.yAxis\n **/\n /**\n * The width of the shape.\n *\n * @sample highcharts/annotations/shape/\n * Basic shape annotation\n *\n * @type {number}\n * @apioption annotations.shapeOptions.width\n **/\n /**\n * The height of the shape.\n *\n * @sample highcharts/annotations/shape/\n * Basic shape annotation\n *\n * @type {number}\n * @apioption annotations.shapeOptions.height\n */\n /**\n * The type of the shape.\n * Available options are circle, rect and ellipse.\n *\n * @sample highcharts/annotations/shape/\n * Basic shape annotation\n *\n * @sample highcharts/annotations/ellipse/\n * Ellipse annotation\n *\n * @type {string}\n * @default rect\n * @apioption annotations.shapeOptions.type\n */\n /**\n * The URL for an image to use as the annotation shape.\n * Note, type has to be set to `'image'`.\n *\n * @see [annotations.shapeOptions.type](annotations.shapeOptions.type)\n * @sample highcharts/annotations/shape-src/\n * Define a marker image url for annotations\n *\n * @type {string}\n * @apioption annotations.shapeOptions.src\n */\n /**\n * Name of the dash style to use for the shape's stroke.\n *\n * @sample {highcharts} highcharts/plotoptions/series-dashstyle-all/\n * Possible values demonstrated\n *\n * @type {Highcharts.DashStyleValue}\n * @apioption annotations.shapeOptions.dashStyle\n */\n /**\n * The color of the shape's stroke.\n *\n * @sample highcharts/annotations/shape/\n * Basic shape annotation\n *\n * @type {Highcharts.ColorString}\n */\n stroke: 'rgba(0, 0, 0, 0.75)',\n /**\n * The pixel stroke width of the shape.\n *\n * @sample highcharts/annotations/shape/\n * Basic shape annotation\n */\n strokeWidth: 1,\n /**\n * The color of the shape's fill.\n *\n * @sample highcharts/annotations/shape/\n * Basic shape annotation\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n fill: 'rgba(0, 0, 0, 0.75)',\n /**\n * The radius of the shape.\n *\n * @sample highcharts/annotations/shape/\n * Basic shape annotation\n */\n r: 0,\n /**\n * Defines additional snapping area around an annotation\n * making this annotation to focus. Defined in pixels.\n */\n snap: 2\n },\n /**\n * Options for annotation's control points. Each control point\n * inherits options from controlPointOptions object.\n * Options from the controlPointOptions can be overwritten\n * by options in a specific control point.\n *\n * @declare Highcharts.AnnotationControlPointOptionsObject\n * @requires modules/annotations\n */\n controlPointOptions: {\n /**\n * @type {Highcharts.AnnotationControlPointPositionerFunction}\n * @apioption annotations.controlPointOptions.positioner\n */\n /**\n * @type {Highcharts.Dictionary<Function>}\n */\n events: {},\n /**\n * @type {Highcharts.SVGAttributes}\n */\n style: {\n cursor: 'pointer',\n fill: \"#ffffff\" /* Palette.backgroundColor */,\n stroke: \"#000000\" /* Palette.neutralColor100 */,\n 'stroke-width': 2\n },\n height: 10,\n symbol: 'circle',\n visible: false,\n width: 10\n },\n /**\n * Event callback when annotation is added to the chart.\n *\n * @type {Highcharts.EventCallbackFunction<Highcharts.Annotation>}\n * @since 7.1.0\n * @apioption annotations.events.add\n */\n /**\n * Event callback when annotation is updated (e.g. drag and\n * dropped or resized by control points).\n *\n * @type {Highcharts.EventCallbackFunction<Highcharts.Annotation>}\n * @since 7.1.0\n * @apioption annotations.events.afterUpdate\n */\n /**\n * Fires when the annotation is clicked.\n *\n * @type {Highcharts.EventCallbackFunction<Highcharts.Annotation>}\n * @since 7.1.0\n * @apioption annotations.events.click\n */\n /**\n * Fires when the annotation is dragged.\n *\n * @type {Highcharts.EventCallbackFunction<Highcharts.Annotation>}\n * @apioption annotations.events.drag\n */\n /**\n * Event callback when annotation is removed from the chart.\n *\n * @type {Highcharts.EventCallbackFunction<Highcharts.Annotation>}\n * @since 7.1.0\n * @apioption annotations.events.remove\n */\n /**\n * Events available in annotations.\n *\n * @requires modules/annotations\n */\n events: {},\n /**\n * The Z index of the annotation.\n */\n zIndex: 6\n}; // Type options are expected but not set\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Annotations_AnnotationDefaults = (AnnotationDefaults);\n\n;// ./code/es5/es-modules/Extensions/Annotations/EventEmitter.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 doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc, isTouchDevice = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isTouchDevice;\n\nvar EventEmitter_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, EventEmitter_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, objectEach = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).objectEach, EventEmitter_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, removeEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).removeEvent;\n/* *\n *\n * Class\n *\n * */\n/**\n * @private\n */\nvar EventEmitter = /** @class */ (function () {\n function EventEmitter() {\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Add emitter events.\n * @private\n */\n EventEmitter.prototype.addEvents = function () {\n var emitter = this,\n addMouseDownEvent = function (element) {\n EventEmitter_addEvent(element,\n isTouchDevice ? 'touchstart' : 'mousedown',\n function (e) {\n emitter.onMouseDown(e);\n }, { passive: false });\n };\n addMouseDownEvent(this.graphic.element);\n (emitter.labels || []).forEach(function (label) {\n if (label.options.useHTML && label.graphic.text) {\n // Mousedown event bound to HTML element (#13070).\n addMouseDownEvent(label.graphic.text.element);\n }\n });\n objectEach(emitter.options.events, function (event, type) {\n var eventHandler = function (e) {\n var _a;\n if (type !== 'click' || !emitter.cancelClick) {\n event.call(emitter, (_a = emitter.chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(e), emitter.target);\n }\n };\n if ((emitter.nonDOMEvents || []).indexOf(type) === -1) {\n EventEmitter_addEvent(emitter.graphic.element, type, eventHandler, { passive: false });\n if (emitter.graphic.div) {\n EventEmitter_addEvent(emitter.graphic.div, type, eventHandler, { passive: false });\n }\n }\n else {\n EventEmitter_addEvent(emitter, type, eventHandler, { passive: false });\n }\n });\n if (emitter.options.draggable) {\n EventEmitter_addEvent(emitter, 'drag', emitter.onDrag);\n if (!emitter.graphic.renderer.styledMode) {\n var cssPointer_1 = {\n cursor: {\n x: 'ew-resize',\n y: 'ns-resize',\n xy: 'move'\n }[emitter.options.draggable]\n };\n emitter.graphic.css(cssPointer_1);\n (emitter.labels || []).forEach(function (label) {\n if (label.options.useHTML && label.graphic.text) {\n label.graphic.text.css(cssPointer_1);\n }\n });\n }\n }\n if (!emitter.isUpdating) {\n EventEmitter_fireEvent(emitter, 'add');\n }\n };\n /**\n * Destroy the event emitter.\n */\n EventEmitter.prototype.destroy = function () {\n this.removeDocEvents();\n removeEvent(this);\n this.hcEvents = null;\n };\n /**\n * Map mouse move event to the radians.\n * @private\n */\n EventEmitter.prototype.mouseMoveToRadians = function (e, cx, cy) {\n var prevDy = e.prevChartY - cy,\n prevDx = e.prevChartX - cx,\n dy = e.chartY - cy,\n dx = e.chartX - cx,\n temp;\n if (this.chart.inverted) {\n temp = prevDx;\n prevDx = prevDy;\n prevDy = temp;\n temp = dx;\n dx = dy;\n dy = temp;\n }\n return Math.atan2(dy, dx) - Math.atan2(prevDy, prevDx);\n };\n /**\n * Map mouse move to the scale factors.\n * @private\n */\n EventEmitter.prototype.mouseMoveToScale = function (e, cx, cy) {\n var prevDx = e.prevChartX - cx,\n prevDy = e.prevChartY - cy,\n dx = e.chartX - cx,\n dy = e.chartY - cy;\n var sx = (dx || 1) / (prevDx || 1), sy = (dy || 1) / (prevDy || 1);\n if (this.chart.inverted) {\n var temp = sy;\n sy = sx;\n sx = temp;\n }\n return {\n x: sx,\n y: sy\n };\n };\n /**\n * Map mouse move event to the distance between two following events.\n * @private\n */\n EventEmitter.prototype.mouseMoveToTranslation = function (e) {\n var dx = e.chartX - e.prevChartX,\n dy = e.chartY - e.prevChartY,\n temp;\n if (this.chart.inverted) {\n temp = dy;\n dy = dx;\n dx = temp;\n }\n return {\n x: dx,\n y: dy\n };\n };\n /**\n * Drag and drop event. All basic annotations should share this\n * capability as well as the extended ones.\n * @private\n */\n EventEmitter.prototype.onDrag = function (e) {\n if (this.chart.isInsidePlot(e.chartX - this.chart.plotLeft, e.chartY - this.chart.plotTop, {\n visiblePlotOnly: true\n })) {\n var translation_1 = this.mouseMoveToTranslation(e);\n if (this.options.draggable === 'x') {\n translation_1.y = 0;\n }\n if (this.options.draggable === 'y') {\n translation_1.x = 0;\n }\n var emitter = this;\n if (emitter.points.length) {\n emitter.translate(translation_1.x, translation_1.y);\n }\n else {\n emitter.shapes.forEach(function (shape) {\n return shape.translate(translation_1.x, translation_1.y);\n });\n emitter.labels.forEach(function (label) {\n return label.translate(translation_1.x, translation_1.y);\n });\n }\n this.redraw(false);\n }\n };\n /**\n * Mouse down handler.\n * @private\n */\n EventEmitter.prototype.onMouseDown = function (e) {\n var _a;\n if (e.preventDefault) {\n e.preventDefault();\n }\n // On right click, do nothing:\n if (e.button === 2) {\n return;\n }\n var emitter = this,\n pointer = emitter.chart.pointer, \n // Using experimental property on event object to check if event was\n // created by touch on screen on hybrid device (#18122)\n firesTouchEvents = ((_a = e === null || e === void 0 ? void 0 : e.sourceCapabilities) === null || _a === void 0 ? void 0 : _a.firesTouchEvents) || false;\n e = (pointer === null || pointer === void 0 ? void 0 : pointer.normalize(e)) || e;\n var prevChartX = e.chartX,\n prevChartY = e.chartY;\n emitter.cancelClick = false;\n emitter.chart.hasDraggedAnnotation = true;\n emitter.removeDrag = EventEmitter_addEvent(doc, isTouchDevice || firesTouchEvents ? 'touchmove' : 'mousemove', function (e) {\n emitter.hasDragged = true;\n e = (pointer === null || pointer === void 0 ? void 0 : pointer.normalize(e)) || e;\n e.prevChartX = prevChartX;\n e.prevChartY = prevChartY;\n EventEmitter_fireEvent(emitter, 'drag', e);\n prevChartX = e.chartX;\n prevChartY = e.chartY;\n }, isTouchDevice || firesTouchEvents ? { passive: false } : void 0);\n emitter.removeMouseUp = EventEmitter_addEvent(doc, isTouchDevice || firesTouchEvents ? 'touchend' : 'mouseup', function () {\n // Sometimes the target is the annotation and sometimes its the\n // controllable\n var annotation = EventEmitter_pick(emitter.target && emitter.target.annotation,\n emitter.target);\n if (annotation) {\n // Keep annotation selected after dragging control point\n annotation.cancelClick = emitter.hasDragged;\n }\n emitter.cancelClick = emitter.hasDragged;\n emitter.chart.hasDraggedAnnotation = false;\n if (emitter.hasDragged) {\n // ControlPoints vs Annotation:\n EventEmitter_fireEvent(EventEmitter_pick(annotation, // #15952\n emitter), 'afterUpdate');\n }\n emitter.hasDragged = false;\n emitter.onMouseUp();\n }, isTouchDevice || firesTouchEvents ? { passive: false } : void 0);\n };\n /**\n * Mouse up handler.\n */\n EventEmitter.prototype.onMouseUp = function () {\n this.removeDocEvents();\n };\n /**\n * Remove emitter document events.\n * @private\n */\n EventEmitter.prototype.removeDocEvents = function () {\n if (this.removeDrag) {\n this.removeDrag = this.removeDrag();\n }\n if (this.removeMouseUp) {\n this.removeMouseUp = this.removeMouseUp();\n }\n };\n return EventEmitter;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Annotations_EventEmitter = (EventEmitter);\n\n;// ./code/es5/es-modules/Extensions/Annotations/ControlPoint.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, ControlPoint_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Class\n *\n * */\n/**\n * A control point class which is a connection between controllable\n * transform methods and a user actions.\n *\n * @requires modules/annotations\n *\n * @class\n * @name Highcharts.AnnotationControlPoint\n *\n * @hideconstructor\n *\n * @param {Highcharts.Chart} chart\n * A chart instance.\n *\n * @param {Highcharts.AnnotationControllable} target\n * A controllable instance which is a target for a control point.\n *\n * @param {Highcharts.AnnotationControlPointOptionsObject} options\n * An options object.\n *\n * @param {number} [index]\n * Point index.\n */\nvar ControlPoint = /** @class */ (function (_super) {\n __extends(ControlPoint, _super);\n /* *\n *\n * Constructor\n *\n * */\n function ControlPoint(chart, target, options, index) {\n var _this = _super.call(this) || this;\n /**\n * List of events for `annotation.options.events` that should not be\n * added to `annotation.graphic` but to the `annotation`.\n * @private\n * @name Highcharts.AnnotationControlPoint#nonDOMEvents\n * @type {Array<string>}\n */\n _this.nonDOMEvents = ['drag'];\n _this.chart = chart;\n _this.target = target;\n _this.options = options;\n _this.index = ControlPoint_pick(options.index, index);\n return _this;\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Destroy the control point.\n * @private\n */\n ControlPoint.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.graphic) {\n this.graphic = this.graphic.destroy();\n }\n this.chart = null;\n this.target = null;\n this.options = null;\n };\n /**\n * Redraw the control point.\n * @private\n * @param {boolean} [animation]\n */\n ControlPoint.prototype.redraw = function (animation) {\n this.graphic[animation ? 'animate' : 'attr'](this.options.positioner.call(this, this.target));\n };\n /**\n * Render the control point.\n * @private\n */\n ControlPoint.prototype.render = function () {\n var chart = this.chart,\n options = this.options;\n this.graphic = chart.renderer\n .symbol(options.symbol, 0, 0, options.width, options.height)\n .add(chart.controlPointsGroup)\n .css(options.style);\n this.setVisibility(options.visible);\n // `npm test -- --tests \"highcharts/annotations-advanced/*\"`\n this.addEvents();\n };\n /**\n * Set the visibility of the control point.\n *\n * @function Highcharts.AnnotationControlPoint#setVisibility\n *\n * @param {boolean} visible\n * Visibility of the control point.\n *\n */\n ControlPoint.prototype.setVisibility = function (visible) {\n this.graphic[visible ? 'show' : 'hide']();\n this.options.visible = visible;\n };\n /**\n * Update the control point.\n *\n * @function Highcharts.AnnotationControlPoint#update\n *\n * @param {Partial<Highcharts.AnnotationControlPointOptionsObject>} userOptions\n * New options for the control point.\n */\n ControlPoint.prototype.update = function (userOptions) {\n var chart = this.chart,\n target = this.target,\n index = this.index,\n options = merge(true,\n this.options,\n userOptions);\n this.destroy();\n this.constructor(chart, target, options, index);\n this.render(chart.controlPointsGroup);\n this.redraw();\n };\n return ControlPoint;\n}(Annotations_EventEmitter));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Annotations_ControlPoint = (ControlPoint);\n/* *\n *\n * API Declarations\n *\n * */\n/**\n * Callback to modify annotation's positioner controls.\n *\n * @callback Highcharts.AnnotationControlPointPositionerFunction\n * @param {Highcharts.AnnotationControlPoint} this\n * @param {Highcharts.AnnotationControllable} target\n * @return {Highcharts.PositionObject}\n */\n(''); // Keeps doclets above in JS file\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"SeriesRegistry\"],\"commonjs\":[\"highcharts\",\"SeriesRegistry\"],\"commonjs2\":[\"highcharts\",\"SeriesRegistry\"],\"root\":[\"Highcharts\",\"SeriesRegistry\"]}\nvar highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_ = __webpack_require__(512);\nvar highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default = /*#__PURE__*/__webpack_require__.n(highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_);\n;// ./code/es5/es-modules/Extensions/Annotations/MockPoint.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar seriesProto = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).series.prototype;\n\nvar MockPoint_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, MockPoint_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent;\n/* *\n *\n * Class\n *\n * */\n/**\n * A trimmed point object which imitates {@link Highchart.Point} class. It is\n * created when there is a need of pointing to some chart's position using axis\n * values or pixel values\n *\n * @requires modules/annotations\n *\n * @private\n * @class\n * @name Highcharts.AnnotationMockPoint\n *\n * @hideconstructor\n *\n * @param {Highcharts.Chart} chart\n * The chart instance.\n *\n * @param {Highcharts.AnnotationControllable|null} target\n * The related controllable.\n *\n * @param {Highcharts.AnnotationMockPointOptionsObject|Function} options\n * The options object.\n */\nvar MockPoint = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function MockPoint(chart, target, options) {\n /* *\n *\n * Functions\n *\n * */\n /**\n * A flag indicating that a point is not the real one.\n *\n * @type {boolean}\n * @default true\n */\n this.mock = true;\n // Circular reference for formats and formatters\n this.point = this;\n /**\n * A mock series instance imitating a real series from a real point.\n *\n * @name Annotation.AnnotationMockPoint#series\n * @type {Highcharts.AnnotationMockSeries}\n */\n this.series = {\n visible: true,\n chart: chart,\n getPlotBox: seriesProto.getPlotBox\n };\n /**\n * @name Annotation.AnnotationMockPoint#target\n * @type {Highcharts.AnnotationControllable|null}\n */\n this.target = target || null;\n /**\n * Options for the mock point.\n *\n * @name Annotation.AnnotationMockPoint#options\n * @type {Highcharts.AnnotationsMockPointOptionsObject}\n */\n this.options = options;\n /**\n * If an xAxis is set it represents the point's value in terms of the\n * xAxis.\n *\n * @name Annotation.AnnotationMockPoint#x\n * @type {number|undefined}\n */\n /**\n * If an yAxis is set it represents the point's value in terms of the\n * yAxis.\n *\n * @name Annotation.AnnotationMockPoint#y\n * @type {number|undefined}\n */\n /**\n * It represents the point's pixel x coordinate relative to its plot\n * box.\n *\n * @name Annotation.AnnotationMockPoint#plotX\n * @type {number|undefined}\n */\n /**\n * It represents the point's pixel y position relative to its plot box.\n *\n * @name Annotation.AnnotationMockPoint#plotY\n * @type {number|undefined}\n */\n /**\n * Whether the point is inside the plot box.\n *\n * @name Annotation.AnnotationMockPoint#isInside\n * @type {boolean|undefined}\n */\n this.applyOptions(this.getOptions());\n }\n /* *\n *\n * Static Functions\n *\n * */\n /**\n * Create a mock point from a real Highcharts point.\n *\n * @private\n * @static\n *\n * @param {Highcharts.Point} point\n *\n * @return {Highcharts.AnnotationMockPoint}\n * A mock point instance.\n */\n MockPoint.fromPoint = function (point) {\n return new MockPoint(point.series.chart, null, {\n x: point.x,\n y: point.y,\n xAxis: point.series.xAxis,\n yAxis: point.series.yAxis\n });\n };\n /**\n * Get the pixel position from the point like object.\n *\n * @private\n * @static\n *\n * @param {Highcharts.AnnotationPointType} point\n *\n * @param {boolean} [paneCoordinates]\n * Whether the pixel position should be relative\n *\n * @return {Highcharts.PositionObject} pixel position\n */\n MockPoint.pointToPixels = function (point, paneCoordinates) {\n var series = point.series,\n chart = series.chart;\n var x = point.plotX || 0,\n y = point.plotY || 0,\n plotBox;\n if (chart.inverted) {\n if (point.mock) {\n x = point.plotY;\n y = point.plotX;\n }\n else {\n x = chart.plotWidth - (point.plotY || 0);\n y = chart.plotHeight - (point.plotX || 0);\n }\n }\n if (series && !paneCoordinates) {\n plotBox = series.getPlotBox();\n x += plotBox.translateX;\n y += plotBox.translateY;\n }\n return {\n x: x,\n y: y\n };\n };\n /**\n * Get fresh mock point options from the point like object.\n *\n * @private\n * @static\n *\n * @param {Highcharts.AnnotationPointType} point\n *\n * @return {Highcharts.AnnotationMockPointOptionsObject}\n * A mock point's options.\n */\n MockPoint.pointToOptions = function (point) {\n return {\n x: point.x,\n y: point.y,\n xAxis: point.series.xAxis,\n yAxis: point.series.yAxis\n };\n };\n /**\n * Apply options for the point.\n * @private\n * @param {Highcharts.AnnotationMockPointOptionsObject} options\n */\n MockPoint.prototype.applyOptions = function (options) {\n this.command = options.command;\n this.setAxis(options, 'x');\n this.setAxis(options, 'y');\n this.refresh();\n };\n /**\n * Get the point's options.\n * @private\n * @return {Highcharts.AnnotationMockPointOptionsObject}\n * The mock point's options.\n */\n MockPoint.prototype.getOptions = function () {\n return this.hasDynamicOptions() ?\n this.options(this.target) :\n this.options;\n };\n /**\n * Check if the point has dynamic options.\n * @private\n * @return {boolean}\n * A positive flag if the point has dynamic options.\n */\n MockPoint.prototype.hasDynamicOptions = function () {\n return typeof this.options === 'function';\n };\n /**\n * Check if the point is inside its pane.\n * @private\n * @return {boolean} A flag indicating whether the point is inside the pane.\n */\n MockPoint.prototype.isInsidePlot = function () {\n var plotX = this.plotX,\n plotY = this.plotY,\n xAxis = this.series.xAxis,\n yAxis = this.series.yAxis,\n e = {\n x: plotX,\n y: plotY,\n isInsidePlot: true,\n options: {}\n };\n if (xAxis) {\n e.isInsidePlot = MockPoint_defined(plotX) && plotX >= 0 && plotX <= xAxis.len;\n }\n if (yAxis) {\n e.isInsidePlot =\n e.isInsidePlot &&\n MockPoint_defined(plotY) &&\n plotY >= 0 && plotY <= yAxis.len;\n }\n MockPoint_fireEvent(this.series.chart, 'afterIsInsidePlot', e);\n return e.isInsidePlot;\n };\n /**\n * Refresh point values and coordinates based on its options.\n * @private\n */\n MockPoint.prototype.refresh = function () {\n var series = this.series,\n xAxis = series.xAxis,\n yAxis = series.yAxis,\n options = this.getOptions();\n if (xAxis) {\n this.x = options.x;\n this.plotX = xAxis.toPixels(options.x, true);\n }\n else {\n this.x = void 0;\n this.plotX = options.x;\n }\n if (yAxis) {\n this.y = options.y;\n this.plotY = yAxis.toPixels(options.y, true);\n }\n else {\n this.y = null;\n this.plotY = options.y;\n }\n this.isInside = this.isInsidePlot();\n };\n /**\n * Refresh point options based on its plot coordinates.\n * @private\n */\n MockPoint.prototype.refreshOptions = function () {\n var series = this.series,\n xAxis = series.xAxis,\n yAxis = series.yAxis;\n this.x = this.options.x = xAxis ?\n this.options.x = xAxis.toValue(this.plotX, true) :\n this.plotX;\n this.y = this.options.y = yAxis ?\n yAxis.toValue(this.plotY, true) :\n this.plotY;\n };\n /**\n * Rotate the point.\n * @private\n * @param {number} cx origin x rotation\n * @param {number} cy origin y rotation\n * @param {number} radians\n */\n MockPoint.prototype.rotate = function (cx, cy, radians) {\n if (!this.hasDynamicOptions()) {\n var cos = Math.cos(radians),\n sin = Math.sin(radians),\n x = this.plotX - cx,\n y = this.plotY - cy,\n tx = x * cos - y * sin,\n ty = x * sin + y * cos;\n this.plotX = tx + cx;\n this.plotY = ty + cy;\n this.refreshOptions();\n }\n };\n /**\n * Scale the point.\n *\n * @private\n *\n * @param {number} cx\n * Origin x transformation.\n *\n * @param {number} cy\n * Origin y transformation.\n *\n * @param {number} sx\n * Scale factor x.\n *\n * @param {number} sy\n * Scale factor y.\n */\n MockPoint.prototype.scale = function (cx, cy, sx, sy) {\n if (!this.hasDynamicOptions()) {\n var x = this.plotX * sx,\n y = this.plotY * sy,\n tx = (1 - sx) * cx,\n ty = (1 - sy) * cy;\n this.plotX = tx + x;\n this.plotY = ty + y;\n this.refreshOptions();\n }\n };\n /**\n * Set x or y axis.\n * @private\n * @param {Highcharts.AnnotationMockPointOptionsObject} options\n * @param {string} xOrY\n * 'x' or 'y' string literal\n */\n MockPoint.prototype.setAxis = function (options, xOrY) {\n var axisName = (xOrY + 'Axis'),\n axisOptions = options[axisName],\n chart = this.series.chart;\n this.series[axisName] =\n typeof axisOptions === 'object' ?\n axisOptions :\n MockPoint_defined(axisOptions) ?\n (chart[axisName][axisOptions] ||\n // @todo v--- (axisName)[axisOptions] ?\n chart.get(axisOptions)) :\n null;\n };\n /**\n * Transform the mock point to an anchor (relative position on the chart).\n * @private\n * @return {Array<number>}\n * A quadruple of numbers which denotes x, y, width and height of the box\n **/\n MockPoint.prototype.toAnchor = function () {\n var anchor = [this.plotX,\n this.plotY, 0, 0];\n if (this.series.chart.inverted) {\n anchor[0] = this.plotY;\n anchor[1] = this.plotX;\n }\n return anchor;\n };\n /**\n * Translate the point.\n *\n * @private\n *\n * @param {number|undefined} cx\n * Origin x transformation.\n *\n * @param {number|undefined} cy\n * Origin y transformation.\n *\n * @param {number} dx\n * Translation for x coordinate.\n *\n * @param {number} dy\n * Translation for y coordinate.\n **/\n MockPoint.prototype.translate = function (_cx, _cy, dx, dy) {\n if (!this.hasDynamicOptions()) {\n this.plotX += dx;\n this.plotY += dy;\n this.refreshOptions();\n }\n };\n return MockPoint;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Annotations_MockPoint = (MockPoint);\n/* *\n *\n * API Declarations\n *\n * */\n/**\n * @private\n * @interface Highcharts.AnnotationMockLabelOptionsObject\n */ /**\n* Point instance of the point.\n* @name Highcharts.AnnotationMockLabelOptionsObject#point\n* @type {Highcharts.AnnotationMockPoint}\n*/ /**\n* X value translated to x axis scale.\n* @name Highcharts.AnnotationMockLabelOptionsObject#x\n* @type {number|null}\n*/ /**\n* Y value translated to y axis scale.\n* @name Highcharts.AnnotationMockLabelOptionsObject#y\n* @type {number|null}\n*/\n/**\n * Object of shape point.\n *\n * @interface Highcharts.AnnotationMockPointOptionsObject\n */ /**\n* The x position of the point. Units can be either in axis\n* or chart pixel coordinates.\n*\n* @type {number}\n* @name Highcharts.AnnotationMockPointOptionsObject.x\n*/ /**\n* The y position of the point. Units can be either in axis\n* or chart pixel coordinates.\n*\n* @type {number}\n* @name Highcharts.AnnotationMockPointOptionsObject.y\n*/ /**\n* This number defines which xAxis the point is connected to.\n* It refers to either the axis id or the index of the axis in\n* the xAxis array. If the option is not configured or the axis\n* is not found the point's x coordinate refers to the chart\n* pixels.\n*\n* @type {number|string|null}\n* @name Highcharts.AnnotationMockPointOptionsObject.xAxis\n*/ /**\n* This number defines which yAxis the point is connected to.\n* It refers to either the axis id or the index of the axis in\n* the yAxis array. If the option is not configured or the axis\n* is not found the point's y coordinate refers to the chart\n* pixels.\n*\n* @type {number|string|null}\n* @name Highcharts.AnnotationMockPointOptionsObject.yAxis\n*/\n/**\n * Callback function that returns the annotation shape point.\n *\n * @callback Highcharts.AnnotationMockPointFunction\n *\n * @param {Highcharts.Annotation} annotation\n * An annotation instance.\n *\n * @return {Highcharts.AnnotationMockPointOptionsObject}\n * Annotations shape point.\n */\n/**\n * A mock series instance imitating a real series from a real point.\n * @private\n * @interface Highcharts.AnnotationMockSeries\n */ /**\n* Whether a series is visible.\n* @name Highcharts.AnnotationMockSeries#visible\n* @type {boolean}\n*/ /**\n* A chart instance.\n* @name Highcharts.AnnotationMockSeries#chart\n* @type {Highcharts.Chart}\n*/ /**\n* @name Highcharts.AnnotationMockSeries#getPlotBox\n* @type {Function}\n*/\n/**\n * Indicates if this is a mock point for an annotation.\n * @name Highcharts.Point#mock\n * @type {boolean|undefined}\n */\n(''); // Keeps doclets above in JS file\n\n;// ./code/es5/es-modules/Extensions/Annotations/ControlTarget.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\n\n/* *\n *\n * Composition Namespace\n *\n * */\nvar ControlTarget;\n(function (ControlTarget) {\n /* *\n *\n * Declarations\n *\n * */\n /* *\n *\n * Functions\n *\n * */\n /**\n * Add control points.\n * @private\n */\n function addControlPoints() {\n var _this = this;\n var controlPoints = this.controlPoints,\n controlPointsOptions = this.options.controlPoints || [];\n controlPointsOptions.forEach(function (controlPointOptions, i) {\n var options = highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().merge(_this.options.controlPointOptions,\n controlPointOptions);\n if (!options.index) {\n options.index = i;\n }\n controlPointsOptions[i] = options;\n controlPoints.push(new Annotations_ControlPoint(_this.chart, _this, options));\n });\n }\n /**\n * Returns object which denotes anchor position - relative and absolute.\n * @private\n * @param {Highcharts.AnnotationPointType} point\n * An annotation point.\n *\n * @return {Highcharts.AnnotationAnchorObject}\n * An annotation anchor.\n */\n function anchor(point) {\n var plotBox = point.series.getPlotBox(),\n chart = point.series.chart,\n box = point.mock ?\n point.toAnchor() :\n chart.tooltip &&\n chart.tooltip.getAnchor.call({\n chart: point.series.chart\n },\n point) ||\n [0, 0, 0, 0],\n anchor = {\n x: box[0] + (this.options.x || 0),\n y: box[1] + (this.options.y || 0),\n height: box[2] || 0,\n width: box[3] || 0\n };\n return {\n relativePosition: anchor,\n absolutePosition: highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().merge(anchor, {\n x: anchor.x + (point.mock ? plotBox.translateX : chart.plotLeft),\n y: anchor.y + (point.mock ? plotBox.translateY : chart.plotTop)\n })\n };\n }\n /**\n * Adds shared functions to be used with targets of ControlPoint.\n * @private\n */\n function compose(ControlTargetClass) {\n var controlProto = ControlTargetClass.prototype;\n if (!controlProto.addControlPoints) {\n highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().merge(true, controlProto, {\n addControlPoints: addControlPoints,\n anchor: anchor,\n destroyControlTarget: destroyControlTarget,\n getPointsOptions: getPointsOptions,\n linkPoints: linkPoints,\n point: point,\n redrawControlPoints: redrawControlPoints,\n renderControlPoints: renderControlPoints,\n transform: transform,\n transformPoint: transformPoint,\n translate: translate,\n translatePoint: translatePoint\n });\n }\n }\n ControlTarget.compose = compose;\n /**\n * Destroy control points.\n * @private\n */\n function destroyControlTarget() {\n this.controlPoints.forEach(function (controlPoint) { return controlPoint.destroy(); });\n this.chart = null;\n this.controlPoints = null;\n this.points = null;\n this.options = null;\n if (this.annotation) {\n this.annotation = null;\n }\n }\n /**\n * Get the points options.\n * @private\n * @return {Array<Highcharts.PointOptionsObject>}\n * An array of points' options.\n */\n function getPointsOptions() {\n var options = this.options;\n return (options.points ||\n (options.point && highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().splat(options.point)));\n }\n /**\n * Find point-like objects based on points options.\n * @private\n * @return {Array<Annotation.PointLike>}\n * An array of point-like objects.\n */\n function linkPoints() {\n var pointsOptions = this.getPointsOptions(),\n points = this.points,\n len = (pointsOptions && pointsOptions.length) || 0;\n var i,\n point;\n for (i = 0; i < len; i++) {\n point = this.point(pointsOptions[i], points[i]);\n if (!point) {\n points.length = 0;\n return;\n }\n if (point.mock) {\n point.refresh();\n }\n points[i] = point;\n }\n return points;\n }\n /**\n * Map point's options to a point-like object.\n * @private\n * @param {string|Function|Highcharts.AnnotationMockPointOptionsObject|Highcharts.AnnotationPointType} pointOptions\n * Point's options.\n * @param {Highcharts.AnnotationPointType} point\n * A point-like instance.\n * @return {Highcharts.AnnotationPointType|null}\n * If the point is found/set returns this point, otherwise null\n */\n function point(pointOptions, point) {\n if (pointOptions && pointOptions.series) {\n return pointOptions;\n }\n if (!point || point.series === null) {\n if (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().isObject(pointOptions)) {\n point = new Annotations_MockPoint(this.chart, this, pointOptions);\n }\n else if (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().isString(pointOptions)) {\n point = this.chart.get(pointOptions) || null;\n }\n else if (typeof pointOptions === 'function') {\n var pointConfig = pointOptions.call(point,\n this);\n point = pointConfig.series ?\n pointConfig :\n new Annotations_MockPoint(this.chart, this, pointOptions);\n }\n }\n return point;\n }\n /**\n * Redraw control points.\n * @private\n */\n function redrawControlPoints(animation) {\n this.controlPoints.forEach(function (controlPoint) { return controlPoint.redraw(animation); });\n }\n /**\n * Render control points.\n * @private\n */\n function renderControlPoints() {\n this.controlPoints.forEach(function (controlPoint) { return controlPoint.render(); });\n }\n /**\n * Transform control points with a specific transformation.\n * @private\n * @param {string} transformation\n * A transformation name\n * @param {number|null} cx\n * Origin x transformation\n * @param {number|null} cy\n * Origin y transformation\n * @param {number} p1\n * Param for the transformation\n * @param {number} [p2]\n * Param for the transformation\n */\n function transform(transformation, cx, cy, p1, p2) {\n var _this = this;\n if (this.chart.inverted) {\n var temp = cx;\n cx = cy;\n cy = temp;\n }\n this.points.forEach(function (_point, i) { return (_this.transformPoint(transformation, cx, cy, p1, p2, i)); }, this);\n }\n /**\n * Transform a point with a specific transformation\n * If a transformed point is a real point it is replaced with\n * the mock point.\n * @private\n * @param {string} transformation\n * A transformation name\n * @param {number|null} cx\n * Origin x transformation\n * @param {number|null} cy\n * Origin y transformation\n * @param {number} p1\n * Param for the transformation\n * @param {number|undefined} p2\n * Param for the transformation\n * @param {number} i\n * Index of the point\n */\n function transformPoint(transformation, cx, cy, p1, p2, i) {\n var point = this.points[i];\n if (!point.mock) {\n point = this.points[i] = Annotations_MockPoint.fromPoint(point);\n }\n point[transformation](cx, cy, p1, p2);\n }\n /**\n * Translate control points.\n * @private\n * @param {number} dx\n * Translation for x coordinate\n * @param {number} dy\n * Translation for y coordinate\n **/\n function translate(dx, dy) {\n this.transform('translate', null, null, dx, dy);\n }\n /**\n * Translate a specific control point.\n * @private\n * @param {number} dx\n * Translation for x coordinate\n * @param {number} dy\n * Translation for y coordinate\n * @param {number} i\n * Index of the point\n **/\n function translatePoint(dx, dy, i) {\n this.transformPoint('translate', null, null, dx, dy, i);\n }\n})(ControlTarget || (ControlTarget = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Annotations_ControlTarget = (ControlTarget);\n\n;// ./code/es5/es-modules/Extensions/Annotations/Controllables/Controllable.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nvar Controllable_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n * Class\n *\n * */\n/**\n * It provides methods for handling points, control points\n * and points transformations.\n * @private\n */\nvar Controllable = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function Controllable(annotation, options, index, itemType) {\n this.annotation = annotation;\n this.chart = annotation.chart;\n this.collection = (itemType === 'label' ? 'labels' : 'shapes');\n this.controlPoints = [];\n this.options = options;\n this.points = [];\n this.index = index;\n this.itemType = itemType;\n this.init(annotation, options, index);\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Redirect attr usage on the controllable graphic element.\n * @private\n */\n Controllable.prototype.attr = function () {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _args = [];\n for (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n var _i = 0; \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _i < arguments.length; \n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _i++) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _args[_i] = arguments[_i];\n }\n this.graphic.attr.apply(this.graphic, arguments);\n };\n /**\n * Utility function for mapping item's options\n * to element's attribute\n * @private\n * @param {Highcharts.AnnotationsLabelsOptions|Highcharts.AnnotationsShapesOptions} options\n * @return {Highcharts.SVGAttributes}\n * Mapped options.\n */\n Controllable.prototype.attrsFromOptions = function (options) {\n var map = this.constructor.attrsMap,\n attrs = {},\n styledMode = this.chart.styledMode;\n var key,\n mappedKey;\n for (key in options) { // eslint-disable-line guard-for-in\n mappedKey = map[key];\n if (typeof map[key] !== 'undefined' &&\n (!styledMode ||\n ['fill', 'stroke', 'stroke-width']\n .indexOf(mappedKey) === -1)) {\n attrs[mappedKey] = options[key];\n }\n }\n return attrs;\n };\n /**\n * Destroy a controllable.\n * @private\n */\n Controllable.prototype.destroy = function () {\n if (this.graphic) {\n this.graphic = this.graphic.destroy();\n }\n if (this.tracker) {\n this.tracker = this.tracker.destroy();\n }\n this.destroyControlTarget();\n };\n /**\n * Init the controllable\n * @private\n */\n Controllable.prototype.init = function (annotation, options, index) {\n this.annotation = annotation;\n this.chart = annotation.chart;\n this.options = options;\n this.points = [];\n this.controlPoints = [];\n this.index = index;\n this.linkPoints();\n this.addControlPoints();\n };\n /**\n * Redraw a controllable.\n * @private\n */\n Controllable.prototype.redraw = function (animation) {\n this.redrawControlPoints(animation);\n };\n /**\n * Render a controllable.\n * @private\n */\n Controllable.prototype.render = function (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _parentGroup) {\n if (this.options.className && this.graphic) {\n this.graphic.addClass(this.options.className);\n }\n this.renderControlPoints();\n };\n /**\n * Rotate a controllable.\n * @private\n * @param {number} cx\n * Origin x rotation\n * @param {number} cy\n * Origin y rotation\n * @param {number} radians\n **/\n Controllable.prototype.rotate = function (cx, cy, radians) {\n this.transform('rotate', cx, cy, radians);\n };\n /**\n * Scale a controllable.\n * @private\n * @param {number} cx\n * Origin x rotation\n * @param {number} cy\n * Origin y rotation\n * @param {number} sx\n * Scale factor x\n * @param {number} sy\n * Scale factor y\n */\n Controllable.prototype.scale = function (cx, cy, sx, sy) {\n this.transform('scale', cx, cy, sx, sy);\n };\n /**\n * Set control points' visibility.\n * @private\n */\n Controllable.prototype.setControlPointsVisibility = function (visible) {\n this.controlPoints.forEach(function (controlPoint) {\n controlPoint.setVisibility(visible);\n });\n };\n /**\n * Check if a controllable should be rendered/redrawn.\n * @private\n * @return {boolean}\n * Whether a controllable should be drawn.\n */\n Controllable.prototype.shouldBeDrawn = function () {\n return !!this.points.length;\n };\n /**\n * Translate shape within controllable item.\n * Replaces `controllable.translate` method.\n * @private\n * @param {number} dx\n * Translation for x coordinate\n * @param {number} dy\n * Translation for y coordinate\n * @param {boolean|undefined} translateSecondPoint\n * If the shape has two points attached to it, this option allows you\n * to translate also the second point.\n */\n Controllable.prototype.translateShape = function (dx, dy, translateSecondPoint) {\n var chart = this.annotation.chart, \n // Annotation.options\n shapeOptions = this.annotation.userOptions, \n // Chart.options.annotations\n annotationIndex = chart.annotations.indexOf(this.annotation),\n chartOptions = chart.options.annotations[annotationIndex];\n this.translatePoint(dx, dy, 0);\n if (translateSecondPoint) {\n this.translatePoint(dx, dy, 1);\n }\n // Options stored in:\n // - chart (for exporting)\n // - current config (for redraws)\n chartOptions[this.collection][this.index]\n .point = this.options.point;\n shapeOptions[this.collection][this.index]\n .point = this.options.point;\n };\n /**\n * Update a controllable.\n * @private\n */\n Controllable.prototype.update = function (newOptions) {\n var annotation = this.annotation,\n options = Controllable_merge(true,\n this.options,\n newOptions),\n parentGroup = this.graphic.parentGroup,\n Constructor = this.constructor;\n this.destroy();\n var newControllable = new Constructor(annotation,\n options,\n this.index,\n this.itemType);\n Controllable_merge(true, this, newControllable);\n this.render(parentGroup);\n this.redraw();\n };\n return Controllable;\n}());\nAnnotations_ControlTarget.compose(Controllable);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Controllables_Controllable = (Controllable);\n/* *\n *\n * API Declarations\n *\n * */\n/**\n * An object which denotes a controllable's anchor positions - relative and\n * absolute.\n *\n * @private\n * @interface Highcharts.AnnotationAnchorObject\n */ /**\n* Relative to the plot area position\n* @name Highcharts.AnnotationAnchorObject#relativePosition\n* @type {Highcharts.BBoxObject}\n*/ /**\n* Absolute position\n* @name Highcharts.AnnotationAnchorObject#absolutePosition\n* @type {Highcharts.BBoxObject}\n*/\n/**\n * @interface Highcharts.AnnotationControllable\n */ /**\n* @name Highcharts.AnnotationControllable#annotation\n* @type {Highcharts.Annotation}\n*/ /**\n* @name Highcharts.AnnotationControllable#chart\n* @type {Highcharts.Chart}\n*/ /**\n* @name Highcharts.AnnotationControllable#collection\n* @type {string}\n*/ /**\n* @private\n* @name Highcharts.AnnotationControllable#controlPoints\n* @type {Array<Highcharts.AnnotationControlPoint>}\n*/ /**\n* @name Highcharts.AnnotationControllable#points\n* @type {Array<Highcharts.Point>}\n*/\n(''); // Keeps doclets above in JS file\n\n;// ./code/es5/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/**\n * Options for configuring markers for annotations.\n *\n * An example of the arrow marker:\n * <pre>\n * {\n * arrow: {\n * id: 'arrow',\n * tagName: 'marker',\n * refY: 5,\n * refX: 5,\n * markerWidth: 10,\n * markerHeight: 10,\n * children: [{\n * tagName: 'path',\n * attrs: {\n * d: 'M 0 0 L 10 5 L 0 10 Z',\n * 'stroke-width': 0\n * }\n * }]\n * }\n * }\n * </pre>\n *\n * @sample highcharts/annotations/custom-markers/\n * Define a custom marker for annotations\n *\n * @sample highcharts/css/annotations-markers/\n * Define markers in a styled mode\n *\n * @type {Highcharts.Dictionary<Highcharts.ASTNode>}\n * @since 6.0.0\n * @optionparent defs\n */\nvar defaultMarkers = {\n /**\n * @type {Highcharts.ASTNode}\n */\n arrow: {\n tagName: 'marker',\n attributes: {\n id: 'arrow',\n refY: 5,\n refX: 9,\n markerWidth: 10,\n markerHeight: 10\n },\n /**\n * @type {Array<Highcharts.DefsOptions>}\n */\n children: [{\n tagName: 'path',\n attributes: {\n d: 'M 0 0 L 10 5 L 0 10 Z', // Triangle (used as an arrow)\n 'stroke-width': 0\n }\n }]\n },\n /**\n * @type {Highcharts.ASTNode}\n */\n 'reverse-arrow': {\n tagName: 'marker',\n attributes: {\n id: 'reverse-arrow',\n refY: 5,\n refX: 1,\n markerWidth: 10,\n markerHeight: 10\n },\n children: [{\n tagName: 'path',\n attributes: {\n // Reverse triangle (used as an arrow)\n d: 'M 0 5 L 10 0 L 10 10 Z',\n 'stroke-width': 0\n }\n }]\n }\n};\n/* *\n *\n * Default Export\n *\n * */\nvar ControllableDefaults = {\n defaultMarkers: defaultMarkers\n};\n/* harmony default export */ var Controllables_ControllableDefaults = (ControllableDefaults);\n\n;// ./code/es5/es-modules/Extensions/Annotations/Controllables/ControllablePath.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ControllablePath_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar ControllablePath_defaultMarkers = Controllables_ControllableDefaults.defaultMarkers;\n\n\nvar ControllablePath_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, ControllablePath_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, ControllablePath_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, uniqueKey = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).uniqueKey;\n/* *\n *\n * Constants\n *\n * */\nvar markerEndSetter = createMarkerSetter('marker-end');\nvar markerStartSetter = createMarkerSetter('marker-start');\n// See TRACKER_FILL in highcharts.src.js\nvar TRACKER_FILL = 'rgba(192,192,192,' + ((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).svg ? 0.0001 : 0.002) + ')';\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction createMarkerSetter(markerType) {\n return function (value) {\n this.attr(markerType, 'url(#' + value + ')');\n };\n}\n/**\n * @private\n */\nfunction onChartAfterGetContainer() {\n this.options.defs = ControllablePath_merge(ControllablePath_defaultMarkers, this.options.defs || {});\n /// objectEach(this.options.defs, function (def): void {\n // const attributes = def.attributes;\n // if (\n // def.tagName === 'marker' &&\n // attributes &&\n // attributes.id &&\n // attributes.display !== 'none'\n // ) {\n // this.renderer.addMarker(attributes.id, def);\n // }\n // }, this);\n}\n/**\n * @private\n */\nfunction svgRendererAddMarker(id, markerOptions) {\n var options = { attributes: { id: id } };\n var attrs = {\n stroke: markerOptions.color || 'none',\n fill: markerOptions.color || 'rgba(0, 0, 0, 0.75)'\n };\n options.children = (markerOptions.children &&\n markerOptions.children.map(function (child) {\n return ControllablePath_merge(attrs, child);\n }));\n var ast = ControllablePath_merge(true, {\n attributes: {\n markerWidth: 20,\n markerHeight: 20,\n refX: 0,\n refY: 0,\n orient: 'auto'\n }\n },\n markerOptions,\n options);\n var marker = this.definition(ast);\n marker.id = id;\n return marker;\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * A controllable path class.\n *\n * @requires modules/annotations\n *\n * @private\n * @class\n * @name Highcharts.AnnotationControllablePath\n *\n * @param {Highcharts.Annotation}\n * Related annotation.\n *\n * @param {Highcharts.AnnotationsShapeOptions} options\n * A path's options object.\n *\n * @param {number} index\n * Index of the path.\n */\nvar ControllablePath = /** @class */ (function (_super) {\n ControllablePath_extends(ControllablePath, _super);\n /* *\n *\n * Constructors\n *\n * */\n function ControllablePath(annotation, options, index) {\n var _this = _super.call(this,\n annotation,\n options,\n index, 'shape') || this;\n /* *\n *\n * Properties\n *\n * */\n _this.type = 'path';\n return _this;\n }\n /* *\n *\n * Static Functions\n *\n * */\n ControllablePath.compose = function (ChartClass, SVGRendererClass) {\n var svgRendererProto = SVGRendererClass.prototype;\n if (!svgRendererProto.addMarker) {\n ControllablePath_addEvent(ChartClass, 'afterGetContainer', onChartAfterGetContainer);\n svgRendererProto.addMarker = svgRendererAddMarker;\n }\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * Map the controllable path to 'd' path attribute.\n *\n * @return {Highcharts.SVGPathArray|null}\n * A path's d attribute.\n */\n ControllablePath.prototype.toD = function () {\n var dOption = this.options.d;\n if (dOption) {\n return typeof dOption === 'function' ?\n dOption.call(this) :\n dOption;\n }\n var points = this.points,\n len = points.length,\n d = [];\n var showPath = len,\n point = points[0],\n position = showPath && this.anchor(point).absolutePosition,\n pointIndex = 0,\n command;\n if (position) {\n d.push(['M', position.x, position.y]);\n while (++pointIndex < len && showPath) {\n point = points[pointIndex];\n command = point.command || 'L';\n position = this.anchor(point).absolutePosition;\n if (command === 'M') {\n d.push([command, position.x, position.y]);\n }\n else if (command === 'L') {\n d.push([command, position.x, position.y]);\n }\n else if (command === 'Z') {\n d.push([command]);\n }\n showPath = point.series.visible;\n }\n }\n return (showPath && this.graphic ?\n this.chart.renderer.crispLine(d, this.graphic.strokeWidth()) :\n null);\n };\n ControllablePath.prototype.shouldBeDrawn = function () {\n return _super.prototype.shouldBeDrawn.call(this) || !!this.options.d;\n };\n ControllablePath.prototype.render = function (parent) {\n var options = this.options,\n attrs = this.attrsFromOptions(options);\n this.graphic = this.annotation.chart.renderer\n .path([['M', 0, 0]])\n .attr(attrs)\n .add(parent);\n this.tracker = this.annotation.chart.renderer\n .path([['M', 0, 0]])\n .addClass('highcharts-tracker-line')\n .attr({\n zIndex: 2\n })\n .add(parent);\n if (!this.annotation.chart.styledMode) {\n this.tracker.attr({\n 'stroke-linejoin': 'round', // #1225\n stroke: TRACKER_FILL,\n fill: TRACKER_FILL,\n 'stroke-width': this.graphic.strokeWidth() +\n options.snap * 2\n });\n }\n _super.prototype.render.call(this);\n extend(this.graphic, { markerStartSetter: markerStartSetter, markerEndSetter: markerEndSetter });\n this.setMarkers(this);\n };\n ControllablePath.prototype.redraw = function (animation) {\n if (this.graphic) {\n var d = this.toD(),\n action = animation ? 'animate' : 'attr';\n if (d) {\n this.graphic[action]({ d: d });\n this.tracker[action]({ d: d });\n }\n else {\n this.graphic.attr({ d: 'M 0 ' + -9e9 });\n this.tracker.attr({ d: 'M 0 ' + -9e9 });\n }\n this.graphic.placed = this.tracker.placed = !!d;\n }\n _super.prototype.redraw.call(this, animation);\n };\n /**\n * Set markers.\n * @private\n * @param {Highcharts.AnnotationControllablePath} item\n */\n ControllablePath.prototype.setMarkers = function (item) {\n var itemOptions = item.options,\n chart = item.chart,\n defs = chart.options.defs,\n fill = itemOptions.fill,\n color = ControllablePath_defined(fill) && fill !== 'none' ?\n fill :\n itemOptions.stroke;\n var setMarker = function (markerType) {\n var markerId = itemOptions[markerType];\n var def,\n predefinedMarker,\n key,\n marker;\n if (markerId) {\n for (key in defs) { // eslint-disable-line guard-for-in\n def = defs[key];\n if ((markerId === (def.attributes && def.attributes.id) ||\n // Legacy, for\n // unit-tests/annotations/annotations-shapes\n markerId === def.id) &&\n def.tagName === 'marker') {\n predefinedMarker = def;\n break;\n }\n }\n if (predefinedMarker) {\n marker = item[markerType] = chart.renderer\n .addMarker((itemOptions.id || uniqueKey()) + '-' + markerId, ControllablePath_merge(predefinedMarker, { color: color }));\n item.attr(markerType, marker.getAttribute('id'));\n }\n }\n };\n ['markerStart', 'markerEnd']\n .forEach(setMarker);\n };\n /* *\n *\n * Static Properties\n *\n * */\n /**\n * A map object which allows to map options attributes to element attributes\n *\n * @name Highcharts.AnnotationControllablePath.attrsMap\n * @type {Highcharts.Dictionary<string>}\n */\n ControllablePath.attrsMap = {\n dashStyle: 'dashstyle',\n strokeWidth: 'stroke-width',\n stroke: 'stroke',\n fill: 'fill',\n zIndex: 'zIndex'\n };\n return ControllablePath;\n}(Controllables_Controllable));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Controllables_ControllablePath = (ControllablePath);\n\n;// ./code/es5/es-modules/Extensions/Annotations/Controllables/ControllableRect.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ControllableRect_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\nvar ControllableRect_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n * Class\n *\n * */\n/**\n * A controllable rect class.\n *\n * @requires modules/annotations\n *\n * @private\n * @class\n * @name Highcharts.AnnotationControllableRect\n *\n * @param {Highcharts.Annotation} annotation\n * An annotation instance.\n *\n * @param {Highcharts.AnnotationsShapeOptions} options\n * A rect's options.\n *\n * @param {number} index\n * Index of the rectangle\n */\nvar ControllableRect = /** @class */ (function (_super) {\n ControllableRect_extends(ControllableRect, _super);\n /* *\n *\n * Constructors\n *\n * */\n function ControllableRect(annotation, options, index) {\n var _this = _super.call(this,\n annotation,\n options,\n index, 'shape') || this;\n /* *\n *\n * Properties\n *\n * */\n _this.type = 'rect';\n _this.translate = _super.prototype.translateShape;\n return _this;\n }\n /* *\n *\n * Functions\n *\n * */\n ControllableRect.prototype.render = function (parent) {\n var attrs = this.attrsFromOptions(this.options);\n this.graphic = this.annotation.chart.renderer\n .rect(0, -9e9, 0, 0)\n .attr(attrs)\n .add(parent);\n _super.prototype.render.call(this);\n };\n ControllableRect.prototype.redraw = function (animation) {\n if (this.graphic) {\n var position = this.anchor(this.points[0]).absolutePosition;\n if (position) {\n this.graphic[animation ? 'animate' : 'attr']({\n x: position.x,\n y: position.y,\n width: this.options.width,\n height: this.options.height\n });\n }\n else {\n this.attr({\n x: 0,\n y: -9e9\n });\n }\n this.graphic.placed = Boolean(position);\n }\n _super.prototype.redraw.call(this, animation);\n };\n /* *\n *\n * Static Properties\n *\n * */\n /**\n * A map object which allows to map options attributes to element attributes\n *\n * @type {Annotation.ControllableRect.AttrsMap}\n */\n ControllableRect.attrsMap = ControllableRect_merge(Controllables_ControllablePath.attrsMap, {\n width: 'width',\n height: 'height'\n });\n return ControllableRect;\n}(Controllables_Controllable));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Controllables_ControllableRect = (ControllableRect);\n\n;// ./code/es5/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ControllableCircle_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\nvar ControllableCircle_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge;\n/* *\n *\n * Class\n *\n * */\n/**\n * A controllable circle class.\n *\n * @requires modules/annotations\n *\n * @private\n * @class\n * @name Highcharts.AnnotationControllableCircle\n *\n * @param {Highcharts.Annotation} annotation an annotation instance\n * @param {Highcharts.AnnotationsShapeOptions} options a shape's options\n * @param {number} index of the circle\n */\nvar ControllableCircle = /** @class */ (function (_super) {\n ControllableCircle_extends(ControllableCircle, _super);\n /* *\n *\n * Constructors\n *\n * */\n function ControllableCircle(annotation, options, index) {\n var _this = _super.call(this,\n annotation,\n options,\n index, 'shape') || this;\n /* *\n *\n * Properties\n *\n * */\n _this.type = 'circle';\n _this.translate = _super.prototype.translateShape;\n return _this;\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n ControllableCircle.prototype.redraw = function (animation) {\n if (this.graphic) {\n var position = this.anchor(this.points[0]).absolutePosition;\n if (position) {\n this.graphic[animation ? 'animate' : 'attr']({\n x: position.x,\n y: position.y,\n r: this.options.r\n });\n }\n else {\n this.graphic.attr({\n x: 0,\n y: -9e9\n });\n }\n this.graphic.placed = !!position;\n }\n _super.prototype.redraw.call(this, animation);\n };\n /**\n * @private\n */\n ControllableCircle.prototype.render = function (parent) {\n var attrs = this.attrsFromOptions(this.options);\n this.graphic = this.annotation.chart.renderer\n .circle(0, -9e9, 0)\n .attr(attrs)\n .add(parent);\n _super.prototype.render.call(this);\n };\n /**\n * Set the radius.\n * @private\n * @param {number} r\n * A radius to be set\n */\n ControllableCircle.prototype.setRadius = function (r) {\n this.options.r = r;\n };\n /* *\n *\n * Static Properties\n *\n * */\n /**\n * A map object which allows to map options attributes to element\n * attributes.\n *\n * @name Highcharts.AnnotationControllableCircle.attrsMap\n * @type {Highcharts.Dictionary<string>}\n */\n ControllableCircle.attrsMap = ControllableCircle_merge(Controllables_ControllablePath.attrsMap, { r: 'r' });\n return ControllableCircle;\n}(Controllables_Controllable));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Controllables_ControllableCircle = (ControllableCircle);\n\n;// ./code/es5/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js\n/* *\n *\n * Author: Pawel Lysy\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ControllableEllipse_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n\nvar ControllableEllipse_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, ControllableEllipse_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined;\n/* *\n *\n * Class\n *\n * */\n/**\n * A controllable ellipse class.\n *\n * @requires modules/annotations\n *\n * @private\n * @class\n * @name Highcharts.AnnotationControllableEllipse\n *\n * @param {Highcharts.Annotation} annotation an annotation instance\n * @param {Highcharts.AnnotationsShapeOptions} options a shape's options\n * @param {number} index of the Ellipse\n */\nvar ControllableEllipse = /** @class */ (function (_super) {\n ControllableEllipse_extends(ControllableEllipse, _super);\n /* *\n *\n * Constructor\n *\n * */\n function ControllableEllipse(annotation, options, index) {\n var _this = _super.call(this,\n annotation,\n options,\n index, 'shape') || this;\n /* *\n *\n * Properties\n *\n * */\n _this.type = 'ellipse';\n return _this;\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n ControllableEllipse.prototype.init = function (annotation, options, index) {\n if (ControllableEllipse_defined(options.yAxis)) {\n options.points.forEach(function (point) {\n point.yAxis = options.yAxis;\n });\n }\n if (ControllableEllipse_defined(options.xAxis)) {\n options.points.forEach(function (point) {\n point.xAxis = options.xAxis;\n });\n }\n _super.prototype.init.call(this, annotation, options, index);\n };\n /**\n * Render the element\n * @private\n * @param parent\n * Parent SVG element.\n */\n ControllableEllipse.prototype.render = function (parent) {\n this.graphic = this.annotation.chart.renderer.createElement('ellipse')\n .attr(this.attrsFromOptions(this.options))\n .add(parent);\n _super.prototype.render.call(this);\n };\n /**\n * Translate the points. Mostly used to handle dragging of the ellipse.\n * @private\n */\n ControllableEllipse.prototype.translate = function (dx, dy) {\n _super.prototype.translateShape.call(this, dx, dy, true);\n };\n /**\n * Get the distance from the line to the point.\n * @private\n * @param point1\n * First point which is on the line\n * @param point2\n * Second point\n * @param x0\n * Point's x value from which you want to calculate the distance from\n * @param y0\n * Point's y value from which you want to calculate the distance from\n */\n ControllableEllipse.prototype.getDistanceFromLine = function (point1, point2, x0, y0) {\n return Math.abs((point2.y - point1.y) * x0 - (point2.x - point1.x) * y0 +\n point2.x * point1.y - point2.y * point1.x) / Math.sqrt((point2.y - point1.y) * (point2.y - point1.y) +\n (point2.x - point1.x) * (point2.x - point1.x));\n };\n /**\n * The function calculates the svg attributes of the ellipse, and returns\n * all parameters necessary to draw the ellipse.\n * @private\n * @param position\n * Absolute position of the first point in points array\n * @param position2\n * Absolute position of the second point in points array\n */\n ControllableEllipse.prototype.getAttrs = function (position, position2) {\n var x1 = position.x, y1 = position.y, x2 = position2.x, y2 = position2.y, cx = (x1 + x2) / 2, cy = (y1 + y2) / 2, rx = Math.sqrt((x1 - x2) * (x1 - x2) / 4 + (y1 - y2) * (y1 - y2) / 4), tan = (y2 - y1) / (x2 - x1);\n var angle = Math.atan(tan) * 180 / Math.PI;\n if (cx < x1) {\n angle += 180;\n }\n var ry = this.getRY();\n return { cx: cx, cy: cy, rx: rx, ry: ry, angle: angle };\n };\n /**\n * Get the value of minor radius of the ellipse.\n * @private\n */\n ControllableEllipse.prototype.getRY = function () {\n var yAxis = this.getYAxis();\n return ControllableEllipse_defined(yAxis) ?\n Math.abs(yAxis.toPixels(this.options.ry) - yAxis.toPixels(0)) :\n this.options.ry;\n };\n /**\n * Get the yAxis object to which the ellipse is pinned.\n * @private\n */\n ControllableEllipse.prototype.getYAxis = function () {\n var yAxisIndex = this.options.yAxis;\n return this.chart.yAxis[yAxisIndex];\n };\n /**\n * Get the absolute coordinates of the MockPoint\n * @private\n * @param point\n * MockPoint that is added through options\n */\n ControllableEllipse.prototype.getAbsolutePosition = function (point) {\n return this.anchor(point).absolutePosition;\n };\n /**\n * Redraw the element\n * @private\n * @param animation\n * Display an animation\n */\n ControllableEllipse.prototype.redraw = function (animation) {\n if (this.graphic) {\n var position = this.getAbsolutePosition(this.points[0]),\n position2 = this.getAbsolutePosition(this.points[1]),\n attrs = this.getAttrs(position,\n position2);\n if (position) {\n this.graphic[animation ? 'animate' : 'attr']({\n cx: attrs.cx,\n cy: attrs.cy,\n rx: attrs.rx,\n ry: attrs.ry,\n rotation: attrs.angle,\n rotationOriginX: attrs.cx,\n rotationOriginY: attrs.cy\n });\n }\n else {\n this.graphic.attr({\n x: 0,\n y: -9e9\n });\n }\n this.graphic.placed = Boolean(position);\n }\n _super.prototype.redraw.call(this, animation);\n };\n /**\n * Set the radius Y.\n * @private\n * @param {number} ry\n * A radius in y direction to be set\n */\n ControllableEllipse.prototype.setYRadius = function (ry) {\n var shapes = this.annotation.userOptions.shapes;\n this.options.ry = ry;\n if (shapes && shapes[0]) {\n shapes[0].ry = ry;\n shapes[0].ry = ry;\n }\n };\n /* *\n *\n * Static Properties\n *\n * */\n /**\n * A map object which allows to map options attributes to element\n * attributes.\n *\n * @name Highcharts.AnnotationControllableEllipse.attrsMap\n * @type {Highcharts.Dictionary<string>}\n */\n ControllableEllipse.attrsMap = ControllableEllipse_merge(Controllables_ControllablePath.attrsMap, {\n ry: 'ry'\n });\n return ControllableEllipse;\n}(Controllables_Controllable));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Controllables_ControllableEllipse = (ControllableEllipse);\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/Controllables/ControllableLabel.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ControllableLabel_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar format = (highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default()).format;\n\n\nvar ControllableLabel_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, getAlignFactor = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).getAlignFactor, isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, ControllableLabel_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Functions\n *\n * */\n/**\n * General symbol definition for labels with connector\n * @private\n */\nfunction symbolConnector(x, y, w, h, options) {\n var anchorX = options && options.anchorX,\n anchorY = options && options.anchorY;\n var path,\n yOffset,\n lateral = w / 2;\n if (isNumber(anchorX) && isNumber(anchorY)) {\n path = [['M', anchorX, anchorY]];\n // Prefer 45 deg connectors\n yOffset = y - anchorY;\n if (yOffset < 0) {\n yOffset = -h - yOffset;\n }\n if (yOffset < w) {\n lateral = anchorX < x + (w / 2) ? yOffset : w - yOffset;\n }\n // Anchor below label\n if (anchorY > y + h) {\n path.push(['L', x + lateral, y + h]);\n // Anchor above label\n }\n else if (anchorY < y) {\n path.push(['L', x + lateral, y]);\n // Anchor left of label\n }\n else if (anchorX < x) {\n path.push(['L', x, y + h / 2]);\n // Anchor right of label\n }\n else if (anchorX > x + w) {\n path.push(['L', x + w, y + h / 2]);\n }\n }\n return path || [];\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * A controllable label class.\n *\n * @requires modules/annotations\n *\n * @private\n * @class\n * @name Highcharts.AnnotationControllableLabel\n *\n * @param {Highcharts.Annotation} annotation\n * An annotation instance.\n * @param {Highcharts.AnnotationsLabelOptions} options\n * A label's options.\n * @param {number} index\n * Index of the label.\n */\nvar ControllableLabel = /** @class */ (function (_super) {\n ControllableLabel_extends(ControllableLabel, _super);\n /* *\n *\n * Constructors\n *\n * */\n function ControllableLabel(annotation, options, index) {\n return _super.call(this, annotation, options, index, 'label') || this;\n }\n /* *\n *\n * Static Functions\n *\n * */\n /**\n * Returns new aligned position based alignment options and box to align to.\n * It is almost a one-to-one copy from SVGElement.prototype.align\n * except it does not use and mutate an element\n *\n * @param {Highcharts.AnnotationAlignObject} alignOptions\n *\n * @param {Highcharts.BBoxObject} box\n *\n * @return {Highcharts.PositionObject}\n * Aligned position.\n */\n ControllableLabel.alignedPosition = function (alignOptions, box) {\n return {\n x: Math.round((box.x || 0) + (alignOptions.x || 0) +\n (box.width - (alignOptions.width || 0)) *\n getAlignFactor(alignOptions.align)),\n y: Math.round((box.y || 0) + (alignOptions.y || 0) +\n (box.height - (alignOptions.height || 0)) *\n getAlignFactor(alignOptions.verticalAlign))\n };\n };\n ControllableLabel.compose = function (SVGRendererClass) {\n var symbols = SVGRendererClass.prototype.symbols;\n symbols.connector = symbolConnector;\n };\n /**\n * Returns new alignment options for a label if the label is outside the\n * plot area. It is almost a one-to-one copy from\n * Series.prototype.justifyDataLabel except it does not mutate the label and\n * it works with absolute instead of relative position.\n */\n ControllableLabel.justifiedOptions = function (chart, label, alignOptions, alignAttr) {\n var align = alignOptions.align,\n verticalAlign = alignOptions.verticalAlign,\n padding = label.box ? 0 : (label.padding || 0),\n bBox = label.getBBox(), \n //\n options = {\n align: align,\n verticalAlign: verticalAlign,\n x: alignOptions.x,\n y: alignOptions.y,\n width: label.width,\n height: label.height\n }, \n //\n x = (alignAttr.x || 0) - chart.plotLeft,\n y = (alignAttr.y || 0) - chart.plotTop;\n var off;\n // Off left\n off = x + padding;\n if (off < 0) {\n if (align === 'right') {\n options.align = 'left';\n }\n else {\n options.x = (options.x || 0) - off;\n }\n }\n // Off right\n off = x + bBox.width - padding;\n if (off > chart.plotWidth) {\n if (align === 'left') {\n options.align = 'right';\n }\n else {\n options.x = (options.x || 0) + chart.plotWidth - off;\n }\n }\n // Off top\n off = y + padding;\n if (off < 0) {\n if (verticalAlign === 'bottom') {\n options.verticalAlign = 'top';\n }\n else {\n options.y = (options.y || 0) - off;\n }\n }\n // Off bottom\n off = y + bBox.height - padding;\n if (off > chart.plotHeight) {\n if (verticalAlign === 'top') {\n options.verticalAlign = 'bottom';\n }\n else {\n options.y = (options.y || 0) + chart.plotHeight - off;\n }\n }\n return options;\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * Translate the point of the label by deltaX and deltaY translations.\n * The point is the label's anchor.\n *\n * @param {number} dx translation for x coordinate\n * @param {number} dy translation for y coordinate\n */\n ControllableLabel.prototype.translatePoint = function (dx, dy) {\n _super.prototype.translatePoint.call(this, dx, dy, 0);\n };\n /**\n * Translate x and y position relative to the label's anchor.\n *\n * @param {number} dx translation for x coordinate\n * @param {number} dy translation for y coordinate\n */\n ControllableLabel.prototype.translate = function (dx, dy) {\n var chart = this.annotation.chart, \n // Annotation.options\n labelOptions = this.annotation.userOptions, \n // Chart.options.annotations\n annotationIndex = chart.annotations.indexOf(this.annotation),\n chartAnnotations = chart.options.annotations,\n chartOptions = chartAnnotations[annotationIndex];\n if (chart.inverted) {\n var temp = dx;\n dx = dy;\n dy = temp;\n }\n // Local options:\n this.options.x += dx;\n this.options.y += dy;\n // Options stored in chart:\n chartOptions[this.collection][this.index].x = this.options.x;\n chartOptions[this.collection][this.index].y = this.options.y;\n labelOptions[this.collection][this.index].x = this.options.x;\n labelOptions[this.collection][this.index].y = this.options.y;\n };\n ControllableLabel.prototype.render = function (parent) {\n var options = this.options,\n attrs = this.attrsFromOptions(options),\n style = options.style;\n this.graphic = this.annotation.chart.renderer\n .label('', 0, -9999, // #10055\n options.shape, null, null, options.useHTML, null, 'annotation-label')\n .attr(attrs)\n .add(parent);\n if (!this.annotation.chart.styledMode) {\n if (style.color === 'contrast') {\n style.color = this.annotation.chart.renderer.getContrast(ControllableLabel.shapesWithoutBackground.indexOf(options.shape) > -1 ? '#FFFFFF' : options.backgroundColor);\n }\n this.graphic\n .css(options.style)\n .shadow(options.shadow);\n }\n this.graphic.labelrank = options.labelrank;\n _super.prototype.render.call(this);\n };\n ControllableLabel.prototype.redraw = function (animation) {\n var options = this.options,\n text = this.text || options.format || options.text,\n label = this.graphic,\n point = this.points[0];\n if (!label) {\n this.redraw(animation);\n return;\n }\n label.attr({\n text: text ?\n format(String(text), point, this.annotation.chart) :\n options.formatter.call(point, this)\n });\n var anchor = this.anchor(point);\n var attrs = this.position(anchor);\n if (attrs) {\n label.alignAttr = attrs;\n attrs.anchorX = anchor.absolutePosition.x;\n attrs.anchorY = anchor.absolutePosition.y;\n label[animation ? 'animate' : 'attr'](attrs);\n }\n else {\n label.attr({\n x: 0,\n y: -9999 // #10055\n });\n }\n label.placed = !!attrs;\n _super.prototype.redraw.call(this, animation);\n };\n /**\n * All basic shapes don't support alignTo() method except label.\n * For a controllable label, we need to subtract translation from\n * options.\n */\n ControllableLabel.prototype.anchor = function (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _point) {\n var anchor = _super.prototype.anchor.apply(this,\n arguments),\n x = this.options.x || 0,\n y = this.options.y || 0;\n anchor.absolutePosition.x -= x;\n anchor.absolutePosition.y -= y;\n anchor.relativePosition.x -= x;\n anchor.relativePosition.y -= y;\n return anchor;\n };\n /**\n * Returns the label position relative to its anchor.\n */\n ControllableLabel.prototype.position = function (anchor) {\n var item = this.graphic,\n chart = this.annotation.chart,\n tooltip = chart.tooltip,\n point = this.points[0],\n itemOptions = this.options,\n anchorAbsolutePosition = anchor.absolutePosition,\n anchorRelativePosition = anchor.relativePosition;\n var itemPosition,\n alignTo,\n itemPosRelativeX,\n itemPosRelativeY,\n showItem = point.series.visible &&\n Annotations_MockPoint.prototype.isInsidePlot.call(point);\n if (item && showItem) {\n var _a = item.width,\n width = _a === void 0 ? 0 : _a,\n _b = item.height,\n height = _b === void 0 ? 0 : _b;\n if (itemOptions.distance && tooltip) {\n itemPosition = tooltip.getPosition.call({\n chart: chart,\n distance: ControllableLabel_pick(itemOptions.distance, 16),\n getPlayingField: tooltip.getPlayingField,\n pointer: tooltip.pointer\n }, width, height, {\n plotX: anchorRelativePosition.x,\n plotY: anchorRelativePosition.y,\n negative: point.negative,\n ttBelow: point.ttBelow,\n h: (anchorRelativePosition.height ||\n anchorRelativePosition.width)\n });\n }\n else if (itemOptions.positioner) {\n itemPosition = itemOptions.positioner.call(this);\n }\n else {\n alignTo = {\n x: anchorAbsolutePosition.x,\n y: anchorAbsolutePosition.y,\n width: 0,\n height: 0\n };\n itemPosition = ControllableLabel.alignedPosition(ControllableLabel_extend(itemOptions, {\n width: width,\n height: height\n }), alignTo);\n if (this.options.overflow === 'justify') {\n itemPosition = ControllableLabel.alignedPosition(ControllableLabel.justifiedOptions(chart, item, itemOptions, itemPosition), alignTo);\n }\n }\n if (itemOptions.crop) {\n itemPosRelativeX = itemPosition.x - chart.plotLeft;\n itemPosRelativeY = itemPosition.y - chart.plotTop;\n showItem =\n chart.isInsidePlot(itemPosRelativeX, itemPosRelativeY) &&\n chart.isInsidePlot(itemPosRelativeX + width, itemPosRelativeY + height);\n }\n }\n return showItem ? itemPosition : null;\n };\n /* *\n *\n * Static Properties\n *\n * */\n /**\n * A map object which allows to map options attributes to element attributes\n *\n * @type {Highcharts.Dictionary<string>}\n */\n ControllableLabel.attrsMap = {\n backgroundColor: 'fill',\n borderColor: 'stroke',\n borderWidth: 'stroke-width',\n zIndex: 'zIndex',\n borderRadius: 'r',\n padding: 'padding'\n };\n /**\n * Shapes which do not have background - the object is used for proper\n * setting of the contrast color.\n *\n * @type {Array<string>}\n */\n ControllableLabel.shapesWithoutBackground = ['connector'];\n return ControllableLabel;\n}(Controllables_Controllable));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Controllables_ControllableLabel = (ControllableLabel);\n\n;// ./code/es5/es-modules/Extensions/Annotations/Controllables/ControllableImage.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar ControllableImage_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\n/* *\n *\n * Class\n *\n * */\n/**\n * A controllable image class.\n *\n * @requires modules/annotations\n *\n * @private\n * @class\n * @name Highcharts.AnnotationControllableImage\n *\n * @param {Highcharts.Annotation} annotation\n * An annotation instance.\n *\n * @param {Highcharts.AnnotationsShapeOptions} options\n * A controllable's options.\n *\n * @param {number} index\n * Index of the image.\n */\nvar ControllableImage = /** @class */ (function (_super) {\n ControllableImage_extends(ControllableImage, _super);\n /* *\n *\n * Constructors\n *\n * */\n function ControllableImage(annotation, options, index) {\n var _this = _super.call(this,\n annotation,\n options,\n index, 'shape') || this;\n /* *\n *\n * Properties\n *\n * */\n _this.type = 'image';\n _this.translate = _super.prototype.translateShape;\n return _this;\n }\n ControllableImage.prototype.render = function (parent) {\n var attrs = this.attrsFromOptions(this.options),\n options = this.options;\n this.graphic = this.annotation.chart.renderer\n .image(options.src, 0, -9e9, options.width, options.height)\n .attr(attrs)\n .add(parent);\n this.graphic.width = options.width;\n this.graphic.height = options.height;\n _super.prototype.render.call(this);\n };\n ControllableImage.prototype.redraw = function (animation) {\n if (this.graphic) {\n var anchor = this.anchor(this.points[0]),\n position = Controllables_ControllableLabel.prototype.position.call(this,\n anchor);\n if (position) {\n this.graphic[animation ? 'animate' : 'attr']({\n x: position.x,\n y: position.y\n });\n }\n else {\n this.graphic.attr({\n x: 0,\n y: -9e9\n });\n }\n this.graphic.placed = Boolean(position);\n }\n _super.prototype.redraw.call(this, animation);\n };\n /* *\n *\n * Static Properties\n *\n * */\n /**\n * A map object which allows to map options attributes to element attributes\n *\n * @name Highcharts.AnnotationControllableImage.attrsMap\n * @type {Highcharts.Dictionary<string>}\n */\n ControllableImage.attrsMap = {\n width: 'width',\n height: 'height',\n zIndex: 'zIndex'\n };\n return ControllableImage;\n}(Controllables_Controllable));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Controllables_ControllableImage = (ControllableImage);\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/Shared/BaseForm.js\n/* *\n *\n * (c) 2009-2024 Highsoft AS\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * Imports\n *\n * */\n\n\nvar BaseForm_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, createElement = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).createElement;\n/* *\n *\n * Class\n *\n * */\nvar BaseForm = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function BaseForm(parentDiv, iconsURL) {\n this.iconsURL = iconsURL;\n this.container = this.createPopupContainer(parentDiv);\n this.closeButton = this.addCloseButton();\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Create popup div container.\n *\n * @param {HTMLElement} parentDiv\n * Parent div to attach popup.\n *\n * @param {string} className\n * Class name of the popup.\n *\n * @return {HTMLElement}\n * Popup div.\n */\n BaseForm.prototype.createPopupContainer = function (parentDiv, className) {\n if (className === void 0) { className = 'highcharts-popup highcharts-no-tooltip'; }\n return createElement('div', { className: className }, void 0, parentDiv);\n };\n /**\n * Create HTML element and attach click event to close popup.\n *\n * @param {string} className\n * Class name of the close button.\n *\n * @return {HTMLElement}\n * Close button.\n */\n BaseForm.prototype.addCloseButton = function (className) {\n if (className === void 0) { className = 'highcharts-popup-close'; }\n var popup = this,\n iconsURL = this.iconsURL;\n // Create close popup button.\n var closeButton = createElement('button', { className: className },\n void 0,\n this.container);\n closeButton.style['background-image'] = 'url(' +\n (iconsURL.match(/png|svg|jpeg|jpg|gif/ig) ?\n iconsURL : iconsURL + 'close.svg') + ')';\n ['click', 'touchstart'].forEach(function (eventName) {\n BaseForm_addEvent(closeButton, eventName, popup.closeButtonEvents.bind(popup));\n });\n // Close popup when press ESC\n BaseForm_addEvent(document, 'keydown', function (event) {\n if (event.code === 'Escape') {\n popup.closeButtonEvents();\n }\n });\n return closeButton;\n };\n /**\n * Close button events.\n * @return {void}\n */\n BaseForm.prototype.closeButtonEvents = function () {\n this.closePopup();\n };\n /**\n * Reset content of the current popup and show.\n *\n * @param {string} toolbarClass\n * Class name of the toolbar which styles should be reset.\n */\n BaseForm.prototype.showPopup = function (toolbarClass) {\n if (toolbarClass === void 0) { toolbarClass = 'highcharts-annotation-toolbar'; }\n var popupDiv = this.container,\n popupCloseButton = this.closeButton;\n this.type = void 0;\n // Reset content.\n popupDiv.innerHTML = (highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default()).emptyHTML;\n // Reset toolbar styles if exists.\n if (popupDiv.className.indexOf(toolbarClass) >= 0) {\n popupDiv.classList.remove(toolbarClass);\n // Reset toolbar inline styles\n popupDiv.removeAttribute('style');\n }\n // Add close button.\n popupDiv.appendChild(popupCloseButton);\n popupDiv.style.display = 'block';\n popupDiv.style.height = '';\n };\n /**\n * Hide popup.\n */\n BaseForm.prototype.closePopup = function () {\n this.container.style.display = 'none';\n };\n return BaseForm;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Shared_BaseForm = (BaseForm);\n\n;// ./code/es5/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js\n/* *\n *\n * Popup 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 PopupAnnotations_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc, isFirefox = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isFirefox;\n\nvar PopupAnnotations_createElement = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).createElement, isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, isObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isObject, PopupAnnotations_objectEach = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).objectEach, PopupAnnotations_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, stableSort = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).stableSort;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Create annotation simple form.\n * It contains fields with param names.\n * @private\n * @param {Highcharts.Chart} chart\n * Chart\n * @param {Object} options\n * Options\n * @param {Function} callback\n * On click callback\n * @param {boolean} [isInit]\n * If it is a form declared for init annotation\n */\nfunction addForm(chart, options, callback, isInit) {\n if (!chart) {\n return;\n }\n var popupDiv = this.container,\n lang = this.lang;\n // Create title of annotations\n var lhsCol = PopupAnnotations_createElement('h2', {\n className: 'highcharts-popup-main-title'\n },\n void 0,\n popupDiv);\n lhsCol.appendChild(PopupAnnotations_doc.createTextNode(lang[options.langKey] || options.langKey || ''));\n // Left column\n lhsCol = PopupAnnotations_createElement('div', {\n className: ('highcharts-popup-lhs-col highcharts-popup-lhs-full')\n }, void 0, popupDiv);\n var bottomRow = PopupAnnotations_createElement('div', {\n className: 'highcharts-popup-bottom-row'\n },\n void 0,\n popupDiv);\n addFormFields.call(this, lhsCol, chart, '', options, [], true);\n this.addButton(bottomRow, isInit ?\n (lang.addButton || 'Add') :\n (lang.saveButton || 'Save'), isInit ? 'add' : 'save', popupDiv, callback);\n}\n/**\n * Create annotation simple form. It contains two buttons\n * (edit / remove) and text label.\n * @private\n * @param {Highcharts.Chart} - chart\n * @param {Highcharts.AnnotationsOptions} - options\n * @param {Function} - on click callback\n */\nfunction addToolbar(chart, options, callback) {\n var _this = this;\n var lang = this.lang,\n popupDiv = this.container,\n showForm = this.showForm,\n toolbarClass = 'highcharts-annotation-toolbar';\n // Set small size\n if (popupDiv.className.indexOf(toolbarClass) === -1) {\n popupDiv.className += ' ' + toolbarClass + ' highcharts-no-mousewheel';\n }\n // Set position\n if (chart) {\n popupDiv.style.top = chart.plotTop + 10 + 'px';\n }\n // Create label\n var label = PopupAnnotations_createElement('p', {\n className: 'highcharts-annotation-label'\n },\n void 0,\n popupDiv);\n label.setAttribute('aria-label', 'Annotation type');\n label.appendChild(PopupAnnotations_doc.createTextNode(PopupAnnotations_pick(\n // Advanced annotations:\n lang[options.langKey] || options.langKey, \n // Basic shapes:\n options.shapes && options.shapes[0].type, '')));\n // Add buttons\n var button = this.addButton(popupDiv, lang.editButton || 'Edit', 'edit', popupDiv, function () {\n showForm.call(_this, 'annotation-edit', chart, options, callback);\n });\n button.className += ' highcharts-annotation-edit-button';\n button.style['background-image'] = 'url(' +\n this.iconsURL + 'edit.svg)';\n button = this.addButton(popupDiv, lang.removeButton || 'Remove', 'remove', popupDiv, callback);\n button.className += ' highcharts-annotation-remove-button';\n button.style['background-image'] = 'url(' +\n this.iconsURL + 'destroy.svg)';\n}\n/**\n * Create annotation's form fields.\n * @private\n * @param {Highcharts.HTMLDOMElement} parentDiv\n * Div where inputs are placed\n * @param {Highcharts.Chart} chart\n * Chart\n * @param {string} parentNode\n * Name of parent to create chain of names\n * @param {Highcharts.AnnotationsOptions} options\n * Options\n * @param {Array<unknown>} storage\n * Array where all items are stored\n * @param {boolean} [isRoot]\n * Recursive flag for root\n */\nfunction addFormFields(parentDiv, chart, parentNode, options, storage, isRoot) {\n var _this = this;\n if (!chart) {\n return;\n }\n var addInput = this.addInput,\n lang = this.lang;\n var parentFullName,\n titleName;\n PopupAnnotations_objectEach(options, function (value, option) {\n // Create name like params.styles.fontSize\n parentFullName = parentNode !== '' ? parentNode + '.' + option : option;\n if (isObject(value)) {\n if (\n // Value is object of options\n !isArray(value) ||\n // Array of objects with params. i.e labels in Fibonacci\n (isArray(value) && isObject(value[0]))) {\n titleName = lang[option] || option;\n if (!titleName.match(/\\d/g)) {\n storage.push([\n true,\n titleName,\n parentDiv\n ]);\n }\n addFormFields.call(_this, parentDiv, chart, parentFullName, value, storage, false);\n }\n else {\n storage.push([\n _this,\n parentFullName,\n 'annotation',\n parentDiv,\n value\n ]);\n }\n }\n });\n if (isRoot) {\n stableSort(storage, function (a) { return (a[1].match(/format/g) ? -1 : 1); });\n if (isFirefox) {\n storage.reverse(); // (#14691)\n }\n storage.forEach(function (genInput) {\n if (genInput[0] === true) {\n PopupAnnotations_createElement('span', {\n className: 'highcharts-annotation-title'\n }, void 0, genInput[2]).appendChild(PopupAnnotations_doc.createTextNode(genInput[1]));\n }\n else {\n genInput[4] = {\n value: genInput[4][0],\n type: genInput[4][1]\n };\n addInput.apply(genInput[0], genInput.splice(1));\n }\n });\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar PopupAnnotations = {\n addForm: addForm,\n addToolbar: addToolbar\n};\n/* harmony default export */ var Popup_PopupAnnotations = (PopupAnnotations);\n\n;// ./code/es5/es-modules/Extensions/Annotations/Popup/PopupIndicators.js\n/* *\n *\n * Popup 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\nvar PopupIndicators_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc;\n\nvar seriesTypes = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes;\n\nvar PopupIndicators_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, PopupIndicators_createElement = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).createElement, PopupIndicators_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, PopupIndicators_isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, PopupIndicators_isObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isObject, PopupIndicators_objectEach = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).objectEach, PopupIndicators_stableSort = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).stableSort;\n/* *\n *\n * Enums\n *\n * */\n/**\n * Enum for properties which should have dropdown list.\n * @private\n */\nvar DropdownProperties;\n(function (DropdownProperties) {\n DropdownProperties[DropdownProperties[\"params.algorithm\"] = 0] = \"params.algorithm\";\n DropdownProperties[DropdownProperties[\"params.average\"] = 1] = \"params.average\";\n})(DropdownProperties || (DropdownProperties = {}));\n/**\n * List of available algorithms for the specific indicator.\n * @private\n */\nvar dropdownParameters = {\n 'algorithm-pivotpoints': ['standard', 'fibonacci', 'camarilla'],\n 'average-disparityindex': ['sma', 'ema', 'dema', 'tema', 'wma']\n};\n/* *\n *\n * Functions\n *\n * */\n/**\n * Create two columns (divs) in HTML.\n * @private\n * @param {Highcharts.HTMLDOMElement} container\n * Container of columns\n * @return {Highcharts.Dictionary<Highcharts.HTMLDOMElement>}\n * Reference to two HTML columns (lhsCol, rhsCol)\n */\nfunction addColsContainer(container) {\n // Left column\n var lhsCol = PopupIndicators_createElement('div', {\n className: 'highcharts-popup-lhs-col'\n },\n void 0,\n container);\n // Right column\n var rhsCol = PopupIndicators_createElement('div', {\n className: 'highcharts-popup-rhs-col'\n },\n void 0,\n container);\n // Wrapper content\n PopupIndicators_createElement('div', {\n className: 'highcharts-popup-rhs-col-wrapper'\n }, void 0, rhsCol);\n return {\n lhsCol: lhsCol,\n rhsCol: rhsCol\n };\n}\n/**\n * Create indicator's form. It contains two tabs (ADD and EDIT) with\n * content.\n * @private\n */\nfunction PopupIndicators_addForm(chart, _options, callback) {\n var lang = this.lang;\n var buttonParentDiv;\n if (!chart) {\n return;\n }\n // Add tabs\n this.tabs.init.call(this, chart);\n // Get all tabs content divs\n var tabsContainers = this.container\n .querySelectorAll('.highcharts-tab-item-content');\n // ADD tab\n addColsContainer(tabsContainers[0]);\n addSearchBox.call(this, chart, tabsContainers[0]);\n addIndicatorList.call(this, chart, tabsContainers[0], 'add');\n buttonParentDiv = tabsContainers[0]\n .querySelectorAll('.highcharts-popup-rhs-col')[0];\n this.addButton(buttonParentDiv, lang.addButton || 'add', 'add', buttonParentDiv, callback);\n // EDIT tab\n addColsContainer(tabsContainers[1]);\n addIndicatorList.call(this, chart, tabsContainers[1], 'edit');\n buttonParentDiv = tabsContainers[1]\n .querySelectorAll('.highcharts-popup-rhs-col')[0];\n this.addButton(buttonParentDiv, lang.saveButton || 'save', 'edit', buttonParentDiv, callback);\n this.addButton(buttonParentDiv, lang.removeButton || 'remove', 'remove', buttonParentDiv, callback);\n}\n/**\n * Create typical inputs for chosen indicator. Fields are extracted from\n * defaultOptions (ADD mode) or current indicator (ADD mode). Two extra\n * fields are added:\n * - hidden input - contains indicator type (required for callback)\n * - select - list of series which can be linked with indicator\n * @private\n * @param {Highcharts.Chart} chart\n * Chart\n * @param {Highcharts.Series} series\n * Indicator\n * @param {string} seriesType\n * Indicator type like: sma, ema, etc.\n * @param {Highcharts.HTMLDOMElement} rhsColWrapper\n * Element where created HTML list is added\n */\nfunction PopupIndicators_addFormFields(chart, series, seriesType, rhsColWrapper) {\n var fields = series.params || series.options.params;\n // Reset current content\n rhsColWrapper.innerHTML = (highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default()).emptyHTML;\n // Create title (indicator name in the right column)\n PopupIndicators_createElement('h3', {\n className: 'highcharts-indicator-title'\n }, void 0, rhsColWrapper).appendChild(PopupIndicators_doc.createTextNode(getNameType(series, seriesType).indicatorFullName));\n // Input type\n PopupIndicators_createElement('input', {\n type: 'hidden',\n name: 'highcharts-type-' + seriesType,\n value: seriesType\n }, void 0, rhsColWrapper);\n // List all series with id\n listAllSeries.call(this, seriesType, 'series', chart, rhsColWrapper, series, series.linkedParent && series.linkedParent.options.id);\n if (fields.volumeSeriesID) {\n listAllSeries.call(this, seriesType, 'volume', chart, rhsColWrapper, series, series.linkedParent && fields.volumeSeriesID);\n }\n // Add param fields\n addParamInputs.call(this, chart, 'params', fields, seriesType, rhsColWrapper);\n}\n/**\n * Create HTML list of all indicators (ADD mode) or added indicators\n * (EDIT mode).\n *\n * @private\n *\n * @param {Highcharts.AnnotationChart} chart\n * The chart object.\n *\n * @param {string} [optionName]\n * Name of the option into which selection is being added.\n *\n * @param {HTMLDOMElement} [parentDiv]\n * HTML parent element.\n *\n * @param {string} listType\n * Type of list depending on the selected bookmark.\n * Might be 'add' or 'edit'.\n *\n * @param {string|undefined} filter\n * Applied filter string from the input.\n * For the first iteration, it's an empty string.\n */\nfunction addIndicatorList(chart, parentDiv, listType, filter) {\n /**\n *\n */\n function selectIndicator(series, indicatorType) {\n var button = rhsColWrapper.parentNode\n .children[1];\n PopupIndicators_addFormFields.call(popup, chart, series, indicatorType, rhsColWrapper);\n if (button) {\n button.style.display = 'block';\n }\n // Add hidden input with series.id\n if (isEdit && series.options) {\n PopupIndicators_createElement('input', {\n type: 'hidden',\n name: 'highcharts-id-' + indicatorType,\n value: series.options.id\n }, void 0, rhsColWrapper).setAttribute('highcharts-data-series-id', series.options.id);\n }\n }\n var popup = this, lang = popup.lang, lhsCol = parentDiv.querySelectorAll('.highcharts-popup-lhs-col')[0], rhsCol = parentDiv.querySelectorAll('.highcharts-popup-rhs-col')[0], isEdit = listType === 'edit', series = (isEdit ?\n chart.series : // EDIT mode\n chart.options.plotOptions || {} // ADD mode\n );\n if (!chart && series) {\n return;\n }\n var item,\n filteredSeriesArray = [];\n // Filter and sort the series.\n if (!isEdit && !PopupIndicators_isArray(series)) {\n // Apply filters only for the 'add' indicator list.\n filteredSeriesArray = filterSeries.call(this, series, filter);\n }\n else if (PopupIndicators_isArray(series)) {\n filteredSeriesArray = filterSeriesArray.call(this, series);\n }\n // Sort indicators alphabetically.\n PopupIndicators_stableSort(filteredSeriesArray, function (a, b) {\n var seriesAName = a.indicatorFullName.toLowerCase(),\n seriesBName = b.indicatorFullName.toLowerCase();\n return (seriesAName < seriesBName) ?\n -1 : (seriesAName > seriesBName) ? 1 : 0;\n });\n // If the list exists remove it from the DOM\n // in order to create a new one with different filters.\n if (lhsCol.children[1]) {\n lhsCol.children[1].remove();\n }\n // Create wrapper for list.\n var indicatorList = PopupIndicators_createElement('ul', {\n className: 'highcharts-indicator-list'\n },\n void 0,\n lhsCol);\n var rhsColWrapper = rhsCol.querySelectorAll('.highcharts-popup-rhs-col-wrapper')[0];\n filteredSeriesArray.forEach(function (seriesSet) {\n var indicatorFullName = seriesSet.indicatorFullName,\n indicatorType = seriesSet.indicatorType,\n series = seriesSet.series;\n item = PopupIndicators_createElement('li', {\n className: 'highcharts-indicator-list'\n }, void 0, indicatorList);\n var btn = PopupIndicators_createElement('button', {\n className: 'highcharts-indicator-list-item',\n textContent: indicatorFullName\n },\n void 0,\n item);\n ['click', 'touchstart'].forEach(function (eventName) {\n PopupIndicators_addEvent(btn, eventName, function () {\n selectIndicator(series, indicatorType);\n });\n });\n });\n // Select first item from the list\n if (filteredSeriesArray.length > 0) {\n var _a = filteredSeriesArray[0],\n series_1 = _a.series,\n indicatorType = _a.indicatorType;\n selectIndicator(series_1, indicatorType);\n }\n else if (!isEdit) {\n highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default().setElementHTML(rhsColWrapper.parentNode.children[0], lang.noFilterMatch || '');\n rhsColWrapper.parentNode.children[1]\n .style.display = 'none';\n }\n}\n/**\n * Recurrent function which lists all fields, from params object and\n * create them as inputs. Each input has unique `data-name` attribute,\n * which keeps chain of fields i.e params.styles.fontSize.\n * @private\n * @param {Highcharts.Chart} chart\n * Chart\n * @param {string} parentNode\n * Name of parent to create chain of names\n * @param {Highcharts.PopupFieldsDictionary<string>} fields\n * Params which are based for input create\n * @param {string} type\n * Indicator type like: sma, ema, etc.\n * @param {Highcharts.HTMLDOMElement} parentDiv\n * Element where created HTML list is added\n */\nfunction addParamInputs(chart, parentNode, fields, type, parentDiv) {\n var _this = this;\n if (!chart) {\n return;\n }\n var addInput = this.addInput;\n PopupIndicators_objectEach(fields, function (value, fieldName) {\n // Create name like params.styles.fontSize\n var parentFullName = parentNode + '.' + fieldName;\n if (PopupIndicators_defined(value) && // Skip if field is unnecessary, #15362\n parentFullName) {\n if (PopupIndicators_isObject(value)) {\n // (15733) 'Periods' has an arrayed value. Label must be\n // created here.\n addInput.call(_this, parentFullName, type, parentDiv, {});\n addParamInputs.call(_this, chart, parentFullName, value, type, parentDiv);\n }\n // If the option is listed in dropdown enum,\n // add the selection box for it.\n if (parentFullName in DropdownProperties) {\n // Add selection boxes.\n var selectBox = addSelection.call(_this,\n type,\n parentFullName,\n parentDiv);\n // Add possible dropdown options.\n addSelectionOptions.call(_this, chart, parentNode, selectBox, type, fieldName, value);\n }\n else if (\n // Skip volume field which is created by addFormFields.\n parentFullName !== 'params.volumeSeriesID' &&\n !PopupIndicators_isArray(value) // Skip params declared in array.\n ) {\n addInput.call(_this, parentFullName, type, parentDiv, {\n value: value,\n type: 'number'\n } // All inputs are text type\n );\n }\n }\n });\n}\n/**\n * Add searchbox HTML element and its' label.\n *\n * @private\n *\n * @param {Highcharts.AnnotationChart} chart\n * The chart object.\n *\n * @param {HTMLDOMElement} parentDiv\n * HTML parent element.\n */\nfunction addSearchBox(chart, parentDiv) {\n var popup = this, lhsCol = parentDiv.querySelectorAll('.highcharts-popup-lhs-col')[0], options = 'searchIndicators', inputAttributes = {\n value: '',\n type: 'text',\n htmlFor: 'search-indicators',\n labelClassName: 'highcharts-input-search-indicators-label'\n }, clearFilterText = this.lang.clearFilter, inputWrapper = PopupIndicators_createElement('div', {\n className: 'highcharts-input-wrapper'\n }, void 0, lhsCol);\n var handleInputChange = function (inputText) {\n // Apply some filters.\n addIndicatorList.call(popup,\n chart,\n popup.container, 'add',\n inputText);\n };\n // Add input field with the label and button.\n var input = this.addInput(options, 'input', inputWrapper, inputAttributes), button = PopupIndicators_createElement('a', {\n textContent: clearFilterText\n }, void 0, inputWrapper);\n input.classList.add('highcharts-input-search-indicators');\n button.classList.add('clear-filter-button');\n // Add input change events.\n PopupIndicators_addEvent(input, 'input', function () {\n handleInputChange(this.value);\n // Show clear filter button.\n if (this.value.length) {\n button.style.display = 'inline-block';\n }\n else {\n button.style.display = 'none';\n }\n });\n // Add clear filter click event.\n ['click', 'touchstart'].forEach(function (eventName) {\n PopupIndicators_addEvent(button, eventName, function () {\n // Clear the input.\n input.value = '';\n handleInputChange('');\n // Hide clear filter button- no longer necessary.\n button.style.display = 'none';\n });\n });\n}\n/**\n * Add selection HTML element and its' label.\n *\n * @private\n *\n * @param {string} indicatorType\n * Type of the indicator i.e. sma, ema...\n *\n * @param {string} [optionName]\n * Name of the option into which selection is being added.\n *\n * @param {HTMLDOMElement} [parentDiv]\n * HTML parent element.\n */\nfunction addSelection(indicatorType, optionName, parentDiv) {\n var optionParamList = optionName.split('.'), labelText = optionParamList[optionParamList.length - 1], selectName = 'highcharts-' + optionName + '-type-' + indicatorType, lang = this.lang;\n // Add a label for the selection box.\n PopupIndicators_createElement('label', {\n htmlFor: selectName\n }, null, parentDiv).appendChild(PopupIndicators_doc.createTextNode(lang[labelText] || optionName));\n // Create a selection box.\n var selectBox = PopupIndicators_createElement('select', {\n name: selectName,\n className: 'highcharts-popup-field',\n id: 'highcharts-select-' + optionName\n },\n null,\n parentDiv);\n selectBox.setAttribute('id', 'highcharts-select-' + optionName);\n return selectBox;\n}\n/**\n * Get and add selection options.\n *\n * @private\n *\n * @param {Highcharts.AnnotationChart} chart\n * The chart object.\n *\n * @param {string} [optionName]\n * Name of the option into which selection is being added.\n *\n * @param {HTMLSelectElement} [selectBox]\n * HTML select box element to which the options are being added.\n *\n * @param {string|undefined} indicatorType\n * Type of the indicator i.e. sma, ema...\n *\n * @param {string|undefined} parameterName\n * Name of the parameter which should be applied.\n *\n * @param {string|undefined} selectedOption\n * Default value in dropdown.\n */\nfunction addSelectionOptions(chart, optionName, selectBox, indicatorType, parameterName, selectedOption, currentSeries) {\n // Get and apply selection options for the possible series.\n if (optionName === 'series' || optionName === 'volume') {\n // List all series which have id - mandatory for indicator.\n chart.series.forEach(function (series) {\n var seriesOptions = series.options,\n seriesName = seriesOptions.name ||\n seriesOptions.params ?\n series.name :\n seriesOptions.id || '';\n if (seriesOptions.id !== 'highcharts-navigator-series' &&\n seriesOptions.id !== (currentSeries &&\n currentSeries.options &&\n currentSeries.options.id)) {\n if (!PopupIndicators_defined(selectedOption) &&\n optionName === 'volume' &&\n series.type === 'column') {\n selectedOption = seriesOptions.id;\n }\n PopupIndicators_createElement('option', {\n value: seriesOptions.id\n }, void 0, selectBox).appendChild(PopupIndicators_doc.createTextNode(seriesName));\n }\n });\n }\n else if (indicatorType && parameterName) {\n // Get and apply options for the possible parameters.\n var dropdownKey = parameterName + '-' + indicatorType,\n parameterOption = dropdownParameters[dropdownKey];\n parameterOption.forEach(function (element) {\n PopupIndicators_createElement('option', {\n value: element\n }, void 0, selectBox).appendChild(PopupIndicators_doc.createTextNode(element));\n });\n }\n // Add the default dropdown value if defined.\n if (PopupIndicators_defined(selectedOption)) {\n selectBox.value = selectedOption;\n }\n}\n/**\n * Filter object of series which are not indicators.\n * If the filter string exists, check against it.\n *\n * @private\n *\n * @param {Highcharts.FilteredSeries} series\n * All series are available in the plotOptions.\n *\n * @param {string|undefined} filter\n * Applied filter string from the input.\n * For the first iteration, it's an empty string.\n *\n * @return {Array<Highcharts.FilteredSeries>} filteredSeriesArray\n * Returns array of filtered series based on filter string.\n */\nfunction filterSeries(series, filter) {\n var popup = this,\n lang = popup.chart && popup.chart.options.lang,\n indicatorAliases = lang &&\n lang.navigation &&\n lang.navigation.popup &&\n lang.navigation.popup.indicatorAliases,\n filteredSeriesArray = [];\n var filteredSeries;\n PopupIndicators_objectEach(series, function (series, value) {\n var seriesOptions = series && series.options;\n // Allow only indicators.\n if (series.params || seriesOptions &&\n seriesOptions.params) {\n var _a = getNameType(series,\n value),\n indicatorFullName = _a.indicatorFullName,\n indicatorType = _a.indicatorType;\n if (filter) {\n // Replace invalid characters.\n var validFilter = filter.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n var regex = new RegExp(validFilter, 'i'),\n alias = indicatorAliases &&\n indicatorAliases[indicatorType] &&\n indicatorAliases[indicatorType].join(' ') || '';\n if (indicatorFullName.match(regex) ||\n alias.match(regex)) {\n filteredSeries = {\n indicatorFullName: indicatorFullName,\n indicatorType: indicatorType,\n series: series\n };\n filteredSeriesArray.push(filteredSeries);\n }\n }\n else {\n filteredSeries = {\n indicatorFullName: indicatorFullName,\n indicatorType: indicatorType,\n series: series\n };\n filteredSeriesArray.push(filteredSeries);\n }\n }\n });\n return filteredSeriesArray;\n}\n/**\n * Filter an array of series and map its names and types.\n *\n * @private\n *\n * @param {Highcharts.FilteredSeries} series\n * All series that are available in the plotOptions.\n *\n * @return {Array<Highcharts.FilteredSeries>} filteredSeriesArray\n * Returns array of filtered series based on filter string.\n */\nfunction filterSeriesArray(series) {\n var filteredSeriesArray = [];\n // Allow only indicators.\n series.forEach(function (series) {\n if (series.is('sma')) {\n filteredSeriesArray.push({\n indicatorFullName: series.name,\n indicatorType: series.type,\n series: series\n });\n }\n });\n return filteredSeriesArray;\n}\n/**\n * Get amount of indicators added to chart.\n * @private\n * @return {number} - Amount of indicators\n */\nfunction getAmount() {\n var counter = 0;\n this.series.forEach(function (serie) {\n if (serie.params ||\n serie.options.params) {\n counter++;\n }\n });\n return counter;\n}\n/**\n * Extract full name and type of requested indicator.\n *\n * @private\n *\n * @param {Highcharts.Series} series\n * Series which name is needed(EDITmode - defaultOptions.series,\n * ADDmode - indicator series).\n *\n * @param {string} [indicatorType]\n * Type of the indicator i.e. sma, ema...\n *\n * @return {Highcharts.Dictionary<string>}\n * Full name and series type.\n */\nfunction getNameType(series, indicatorType) {\n var options = series.options;\n // Add mode\n var seriesName = (seriesTypes[indicatorType] &&\n seriesTypes[indicatorType].prototype.nameBase) ||\n indicatorType.toUpperCase(),\n seriesType = indicatorType;\n // Edit\n if (options && options.type) {\n seriesType = series.options.type;\n seriesName = series.name;\n }\n return {\n indicatorFullName: seriesName,\n indicatorType: seriesType\n };\n}\n/**\n * Create the selection box for the series,\n * add options and apply the default one.\n *\n * @private\n *\n * @param {string} indicatorType\n * Type of the indicator i.e. sma, ema...\n *\n * @param {string} [optionName]\n * Name of the option into which selection is being added.\n *\n * @param {Highcharts.AnnotationChart} chart\n * The chart object.\n *\n * @param {HTMLDOMElement} [parentDiv]\n * HTML parent element.\n *\n * @param {string|undefined} selectedOption\n * Default value in dropdown.\n */\nfunction listAllSeries(indicatorType, optionName, chart, parentDiv, currentSeries, selectedOption) {\n var popup = this;\n // Won't work without the chart.\n if (!chart) {\n return;\n }\n // Add selection boxes.\n var selectBox = addSelection.call(popup,\n indicatorType,\n optionName,\n parentDiv);\n // Add possible dropdown options.\n addSelectionOptions.call(popup, chart, optionName, selectBox, void 0, void 0, void 0, currentSeries);\n // Add the default dropdown value if defined.\n if (PopupIndicators_defined(selectedOption)) {\n selectBox.value = selectedOption;\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar PopupIndicators = {\n addForm: PopupIndicators_addForm,\n getAmount: getAmount\n};\n/* harmony default export */ var Popup_PopupIndicators = (PopupIndicators);\n\n;// ./code/es5/es-modules/Extensions/Annotations/Popup/PopupTabs.js\n/* *\n *\n * Popup 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 PopupTabs_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc;\n\nvar PopupTabs_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, PopupTabs_createElement = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).createElement;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Create tab content\n * @private\n * @return {HTMLDOMElement} - created HTML tab-content element\n */\nfunction addContentItem() {\n var popupDiv = this.container;\n return PopupTabs_createElement('div', {\n // #12100\n className: 'highcharts-tab-item-content highcharts-no-mousewheel'\n }, void 0, popupDiv);\n}\n/**\n * Create tab menu item\n * @private\n * @param {string} tabName\n * `add` or `edit`\n * @param {number} [disableTab]\n * Disable tab when 0\n * @return {Highcharts.HTMLDOMElement}\n * Created HTML tab-menu element\n */\nfunction addMenuItem(tabName, disableTab) {\n var popupDiv = this.container,\n lang = this.lang;\n var className = 'highcharts-tab-item';\n if (disableTab === 0) {\n className += ' highcharts-tab-disabled';\n }\n // Tab 1\n var menuItem = PopupTabs_createElement('button', {\n className: className\n },\n void 0,\n popupDiv);\n menuItem.appendChild(PopupTabs_doc.createTextNode(lang[tabName + 'Button'] || tabName));\n menuItem.setAttribute('highcharts-data-tab-type', tabName);\n return menuItem;\n}\n/**\n * Set all tabs as invisible.\n * @private\n */\nfunction deselectAll() {\n var popupDiv = this.container,\n tabs = popupDiv\n .querySelectorAll('.highcharts-tab-item'),\n tabsContent = popupDiv\n .querySelectorAll('.highcharts-tab-item-content');\n for (var i = 0; i < tabs.length; i++) {\n tabs[i].classList.remove('highcharts-tab-item-active');\n tabsContent[i].classList.remove('highcharts-tab-item-show');\n }\n}\n/**\n * Init tabs. Create tab menu items, tabs containers\n * @private\n * @param {Highcharts.Chart} chart\n * Reference to current chart\n */\nfunction init(chart) {\n if (!chart) {\n return;\n }\n var indicatorsCount = this.indicators.getAmount.call(chart);\n // Create menu items\n var firstTab = addMenuItem.call(this, 'add'); // Run by default\n addMenuItem.call(this, 'edit',\n indicatorsCount);\n // Create tabs containers\n addContentItem.call(this);\n addContentItem.call(this);\n switchTabs.call(this, indicatorsCount);\n // Activate first tab\n selectTab.call(this, firstTab, 0);\n}\n/**\n * Set tab as visible\n * @private\n * @param {globals.Element} - current tab\n * @param {number} - Index of tab in menu\n */\nfunction selectTab(tab, index) {\n var allTabs = this.container\n .querySelectorAll('.highcharts-tab-item-content');\n tab.className += ' highcharts-tab-item-active';\n allTabs[index].className += ' highcharts-tab-item-show';\n}\n/**\n * Add click event to each tab\n * @private\n * @param {number} disableTab\n * Disable tab when 0\n */\nfunction switchTabs(disableTab) {\n var popup = this,\n popupDiv = this.container,\n tabs = popupDiv.querySelectorAll('.highcharts-tab-item');\n tabs.forEach(function (tab, i) {\n if (disableTab === 0 &&\n tab.getAttribute('highcharts-data-tab-type') === 'edit') {\n return;\n }\n ['click', 'touchstart'].forEach(function (eventName) {\n PopupTabs_addEvent(tab, eventName, function () {\n // Reset class on other elements\n deselectAll.call(popup);\n selectTab.call(popup, this, i);\n });\n });\n });\n}\n/* *\n *\n * Default Export\n *\n * */\nvar PopupTabs = {\n init: init\n};\n/* harmony default export */ var Popup_PopupTabs = (PopupTabs);\n\n;// ./code/es5/es-modules/Extensions/Annotations/Popup/Popup.js\n/* *\n *\n * Popup 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\nvar Popup_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\n\nvar Popup_doc = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).doc;\n\nvar getOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).getOptions;\n\n\n\n\nvar Popup_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, Popup_createElement = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).createElement, Popup_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, Popup_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, Popup_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Get values from all inputs and selections then create JSON.\n *\n * @private\n *\n * @param {Highcharts.HTMLDOMElement} parentDiv\n * The container where inputs and selections are created.\n *\n * @param {string} type\n * Type of the popup bookmark (add|edit|remove).\n */\nfunction getFields(parentDiv, type) {\n var inputList = Array.prototype.slice.call(parentDiv.querySelectorAll('input')), selectList = Array.prototype.slice.call(parentDiv.querySelectorAll('select')), optionSeries = '#highcharts-select-series > option:checked', optionVolume = '#highcharts-select-volume > option:checked', linkedTo = parentDiv.querySelectorAll(optionSeries)[0], volumeTo = parentDiv.querySelectorAll(optionVolume)[0];\n var fieldsOutput = {\n actionType: type,\n linkedTo: linkedTo && linkedTo.getAttribute('value') || '',\n fields: {}\n };\n inputList.forEach(function (input) {\n var param = input.getAttribute('highcharts-data-name'), seriesId = input.getAttribute('highcharts-data-series-id');\n // Params\n if (seriesId) {\n fieldsOutput.seriesId = input.value;\n }\n else if (param) {\n fieldsOutput.fields[param] = input.value;\n }\n else {\n // Type like sma / ema\n fieldsOutput.type = input.value;\n }\n });\n selectList.forEach(function (select) {\n var id = select.id;\n // Get inputs only for the parameters, not for series and volume.\n if (id !== 'highcharts-select-series' &&\n id !== 'highcharts-select-volume') {\n var parameter = id.split('highcharts-select-')[1];\n fieldsOutput.fields[parameter] = select.value;\n }\n });\n if (volumeTo) {\n fieldsOutput.fields['params.volumeSeriesID'] = volumeTo\n .getAttribute('value') || '';\n }\n return fieldsOutput;\n}\n/* *\n *\n * Class\n *\n * */\nvar Popup = /** @class */ (function (_super) {\n Popup_extends(Popup, _super);\n /* *\n *\n * Constructor\n *\n * */\n function Popup(parentDiv, iconsURL, chart) {\n var _this = _super.call(this,\n parentDiv,\n iconsURL) || this;\n _this.chart = chart;\n _this.lang = (getOptions().lang.navigation || {}).popup || {};\n Popup_addEvent(_this.container, 'mousedown', function () {\n var activeAnnotation = chart &&\n chart.navigationBindings &&\n chart.navigationBindings.activeAnnotation;\n if (activeAnnotation) {\n activeAnnotation.cancelClick = true;\n var unbind_1 = Popup_addEvent(Popup_doc, 'click',\n function () {\n setTimeout(function () {\n activeAnnotation.cancelClick = false;\n }, 0);\n unbind_1();\n });\n }\n });\n return _this;\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Create input with label.\n *\n * @private\n *\n * @param {string} option\n * Chain of fields i.e params.styles.fontSize separated by the dot.\n *\n * @param {string} indicatorType\n * Type of the indicator i.e. sma, ema...\n *\n * @param {HTMLDOMElement} parentDiv\n * HTML parent element.\n *\n * @param {Highcharts.InputAttributes} inputAttributes\n * Attributes of the input.\n *\n * @return {HTMLInputElement}\n * Return created input element.\n */\n Popup.prototype.addInput = function (option, indicatorType, parentDiv, inputAttributes) {\n var optionParamList = option.split('.'), optionName = optionParamList[optionParamList.length - 1], lang = this.lang, inputName = 'highcharts-' + indicatorType + '-' + Popup_pick(inputAttributes.htmlFor, optionName);\n if (!optionName.match(/^\\d+$/)) {\n // Add label\n Popup_createElement('label', {\n htmlFor: inputName,\n className: inputAttributes.labelClassName\n }, void 0, parentDiv).appendChild(Popup_doc.createTextNode(lang[optionName] || optionName));\n }\n // Add input\n var input = Popup_createElement('input', {\n name: inputName,\n value: inputAttributes.value,\n type: inputAttributes.type,\n className: 'highcharts-popup-field'\n },\n void 0,\n parentDiv);\n input.setAttribute('highcharts-data-name', option);\n return input;\n };\n Popup.prototype.closeButtonEvents = function () {\n if (this.chart) {\n var navigationBindings = this.chart.navigationBindings;\n Popup_fireEvent(navigationBindings, 'closePopup');\n if (navigationBindings &&\n navigationBindings.selectedButtonElement) {\n Popup_fireEvent(navigationBindings, 'deselectButton', { button: navigationBindings.selectedButtonElement });\n }\n }\n else {\n _super.prototype.closeButtonEvents.call(this);\n }\n };\n /**\n * Create button.\n * @private\n * @param {Highcharts.HTMLDOMElement} parentDiv\n * Container where elements should be added\n * @param {string} label\n * Text placed as button label\n * @param {string} type\n * add | edit | remove\n * @param {Function} callback\n * On click callback\n * @param {Highcharts.HTMLDOMElement} fieldsDiv\n * Container where inputs are generated\n * @return {Highcharts.HTMLDOMElement}\n * HTML button\n */\n Popup.prototype.addButton = function (parentDiv, label, type, fieldsDiv, callback) {\n var _this = this;\n var button = Popup_createElement('button',\n void 0,\n void 0,\n parentDiv);\n button.appendChild(Popup_doc.createTextNode(label));\n if (callback) {\n ['click', 'touchstart'].forEach(function (eventName) {\n Popup_addEvent(button, eventName, function () {\n _this.closePopup();\n return callback(getFields(fieldsDiv, type));\n });\n });\n }\n return button;\n };\n /**\n * Create content and show popup.\n * @private\n * @param {string} - type of popup i.e indicators\n * @param {Highcharts.Chart} - chart\n * @param {Highcharts.AnnotationsOptions} - options\n * @param {Function} - on click callback\n */\n Popup.prototype.showForm = function (type, chart, options, callback) {\n if (!chart) {\n return;\n }\n // Show blank popup\n this.showPopup();\n // Indicator form\n if (type === 'indicators') {\n this.indicators.addForm.call(this, chart, options, callback);\n }\n // Annotation small toolbar\n if (type === 'annotation-toolbar') {\n this.annotations.addToolbar.call(this, chart, options, callback);\n }\n // Annotation edit form\n if (type === 'annotation-edit') {\n this.annotations.addForm.call(this, chart, options, callback);\n }\n // Flags form - add / edit\n if (type === 'flag') {\n this.annotations.addForm.call(this, chart, options, callback, true);\n }\n this.type = type;\n // Explicit height is needed to make inner elements scrollable\n this.container.style.height = this.container.offsetHeight + 'px';\n };\n return Popup;\n}(Shared_BaseForm));\nPopup_extend(Popup.prototype, {\n annotations: Popup_PopupAnnotations,\n indicators: Popup_PopupIndicators,\n tabs: Popup_PopupTabs\n});\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Popup_Popup = (Popup);\n\n;// ./code/es5/es-modules/Extensions/Annotations/Popup/PopupComposition.js\n/* *\n *\n * Popup 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 composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\n\nvar PopupComposition_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique, PopupComposition_wrap = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).wrap;\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction compose(NagivationBindingsClass, PointerClass) {\n if (pushUnique(composed, 'Popup')) {\n PopupComposition_addEvent(NagivationBindingsClass, 'closePopup', onNavigationBindingsClosePopup);\n PopupComposition_addEvent(NagivationBindingsClass, 'showPopup', onNavigationBindingsShowPopup);\n PopupComposition_wrap(PointerClass.prototype, 'onContainerMouseDown', wrapPointerOnContainerMouserDown);\n }\n}\n/**\n * @private\n */\nfunction onNavigationBindingsClosePopup() {\n if (this.popup) {\n this.popup.closePopup();\n }\n}\n/**\n * @private\n */\nfunction onNavigationBindingsShowPopup(config) {\n if (!this.popup) {\n // Add popup to main container\n this.popup = new Popup_Popup(this.chart.container, (this.chart.options.navigation.iconsURL ||\n (this.chart.options.stockTools &&\n this.chart.options.stockTools.gui.iconsURL) ||\n 'https://code.highcharts.com/12.1.2/gfx/stock-icons/'), this.chart);\n }\n this.popup.showForm(config.formType, this.chart, config.options, config.onSubmit);\n}\n/**\n * `onContainerMouseDown` blocks internal popup events, due to e.preventDefault.\n * Related issue #4606\n * @private\n */\nfunction wrapPointerOnContainerMouserDown(proceed, e) {\n // Elements is not in popup\n if (!this.inClass(e.target, 'highcharts-popup')) {\n proceed.apply(this, Array.prototype.slice.call(arguments, 1));\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar PopupComposition = {\n compose: compose\n};\n/* harmony default export */ var Popup_PopupComposition = (PopupComposition);\n\n;// ./code/es5/es-modules/Extensions/Annotations/Annotation.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\nvar Annotation_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar getDeferredAnimation = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).getDeferredAnimation;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar destroyObjectProperties = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).destroyObjectProperties, Annotation_erase = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).erase, Annotation_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, Annotation_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, Annotation_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, splat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).splat;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Hide or show annotation attached to points.\n * @private\n */\nfunction adjustVisibility(item) {\n var label = item.graphic,\n hasVisiblePoints = item.points.some(function (point) { return (point.series.visible !== false &&\n point.visible !== false); });\n if (label) {\n if (!hasVisiblePoints) {\n label.hide();\n }\n else if (label.visibility === 'hidden') {\n label.show();\n }\n }\n}\n/**\n * @private\n */\nfunction getLabelsAndShapesOptions(baseOptions, newOptions) {\n var mergedOptions = {};\n ['labels', 'shapes'].forEach(function (name) {\n var someBaseOptions = baseOptions[name],\n newOptionsValue = newOptions[name];\n if (someBaseOptions) {\n if (newOptionsValue) {\n mergedOptions[name] = splat(newOptionsValue).map(function (basicOptions, i) {\n return Annotation_merge(someBaseOptions[i], basicOptions);\n });\n }\n else {\n mergedOptions[name] = baseOptions[name];\n }\n }\n });\n return mergedOptions;\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * An annotation class which serves as a container for items like labels or\n * shapes. Created items are positioned on the chart either by linking them to\n * existing points or created mock points\n *\n * @requires modules/annotations\n *\n * @class\n * @name Highcharts.Annotation\n *\n * @param {Highcharts.Chart} chart\n * A chart instance\n * @param {Highcharts.AnnotationsOptions} userOptions\n * The annotation options\n */\nvar Annotation = /** @class */ (function (_super) {\n Annotation_extends(Annotation, _super);\n /* *\n *\n * Constructors\n *\n * */\n function Annotation(chart, userOptions) {\n var _this = _super.call(this) || this;\n _this.coll = 'annotations';\n /**\n * The chart that the annotation belongs to.\n *\n * @name Highcharts.Annotation#chart\n * @type {Highcharts.Chart}\n */\n _this.chart = chart;\n /**\n * The array of points which defines the annotation.\n * @private\n * @name Highcharts.Annotation#points\n * @type {Array<Highcharts.Point>}\n */\n _this.points = [];\n /**\n * The array of control points.\n * @private\n * @name Highcharts.Annotation#controlPoints\n * @type {Array<Annotation.ControlPoint>}\n */\n _this.controlPoints = [];\n _this.coll = 'annotations';\n _this.index = -1;\n /**\n * The array of labels which belong to the annotation.\n * @private\n * @name Highcharts.Annotation#labels\n * @type {Array<Highcharts.AnnotationLabelType>}\n */\n _this.labels = [];\n /**\n * The array of shapes which belong to the annotation.\n * @private\n * @name Highcharts.Annotation#shapes\n * @type {Array<Highcharts.AnnotationShapeType>}\n */\n _this.shapes = [];\n /**\n * The options for the annotations.\n *\n * @name Highcharts.Annotation#options\n * @type {Highcharts.AnnotationsOptions}\n */\n _this.options = Annotation_merge(_this.defaultOptions, userOptions);\n /**\n * The user options for the annotations.\n *\n * @name Highcharts.Annotation#userOptions\n * @type {Highcharts.AnnotationsOptions}\n */\n _this.userOptions = userOptions;\n // Handle labels and shapes - those are arrays\n // Merging does not work with arrays (stores reference)\n var labelsAndShapes = getLabelsAndShapesOptions(_this.options,\n userOptions);\n _this.options.labels = labelsAndShapes.labels;\n _this.options.shapes = labelsAndShapes.shapes;\n /**\n * The callback that reports to the overlapping-labels module which\n * labels it should account for.\n * @private\n * @name Highcharts.Annotation#labelCollector\n * @type {Function}\n */\n /**\n * The group svg element.\n *\n * @name Highcharts.Annotation#group\n * @type {Highcharts.SVGElement}\n */\n /**\n * The group svg element of the annotation's shapes.\n *\n * @name Highcharts.Annotation#shapesGroup\n * @type {Highcharts.SVGElement}\n */\n /**\n * The group svg element of the annotation's labels.\n *\n * @name Highcharts.Annotation#labelsGroup\n * @type {Highcharts.SVGElement}\n */\n _this.init(chart, _this.options);\n return _this;\n }\n /* *\n *\n * Static Functions\n *\n * */\n /**\n * @private\n */\n Annotation.compose = function (ChartClass, NavigationBindingsClass, PointerClass, SVGRendererClass) {\n Annotations_AnnotationChart.compose(Annotation, ChartClass, PointerClass);\n Controllables_ControllableLabel.compose(SVGRendererClass);\n Controllables_ControllablePath.compose(ChartClass, SVGRendererClass);\n NavigationBindingsClass.compose(Annotation, ChartClass);\n Popup_PopupComposition.compose(NavigationBindingsClass, PointerClass);\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n Annotation.prototype.addClipPaths = function () {\n this.setClipAxes();\n if (this.clipXAxis &&\n this.clipYAxis &&\n this.options.crop // #15399\n ) {\n this.clipRect = this.chart.renderer.clipRect(this.getClipBox());\n }\n };\n /**\n * @private\n */\n Annotation.prototype.addLabels = function () {\n var _this = this;\n var labelsOptions = (this.options.labels || []);\n labelsOptions.forEach(function (labelOptions, i) {\n var label = _this.initLabel(labelOptions,\n i);\n Annotation_merge(true, labelsOptions[i], label.options);\n });\n };\n /**\n * @private\n */\n Annotation.prototype.addShapes = function () {\n var _this = this;\n var shapes = this.options.shapes || [];\n shapes.forEach(function (shapeOptions, i) {\n var shape = _this.initShape(shapeOptions,\n i);\n Annotation_merge(true, shapes[i], shape.options);\n });\n };\n /**\n * Destroy the annotation. This function does not touch the chart\n * that the annotation belongs to (all annotations are kept in\n * the chart.annotations array) - it is recommended to use\n * {@link Highcharts.Chart#removeAnnotation} instead.\n * @private\n */\n Annotation.prototype.destroy = function () {\n var chart = this.chart,\n destroyItem = function (item) {\n item.destroy();\n };\n this.labels.forEach(destroyItem);\n this.shapes.forEach(destroyItem);\n this.clipXAxis = null;\n this.clipYAxis = null;\n Annotation_erase(chart.labelCollectors, this.labelCollector);\n _super.prototype.destroy.call(this);\n this.destroyControlTarget();\n destroyObjectProperties(this, chart);\n };\n /**\n * Destroy a single item.\n * @private\n */\n Annotation.prototype.destroyItem = function (item) {\n // Erase from shapes or labels array\n Annotation_erase(this[item.itemType + 's'], item);\n item.destroy();\n };\n /**\n * @private\n */\n Annotation.prototype.getClipBox = function () {\n if (this.clipXAxis && this.clipYAxis) {\n return {\n x: this.clipXAxis.left,\n y: this.clipYAxis.top,\n width: this.clipXAxis.width,\n height: this.clipYAxis.height\n };\n }\n };\n /**\n * Initialize the annotation properties.\n * @private\n */\n Annotation.prototype.initProperties = function (chart, userOptions) {\n this.setOptions(userOptions);\n var labelsAndShapes = getLabelsAndShapesOptions(this.options,\n userOptions);\n this.options.labels = labelsAndShapes.labels;\n this.options.shapes = labelsAndShapes.shapes;\n this.chart = chart;\n this.points = [];\n this.controlPoints = [];\n this.coll = 'annotations';\n this.userOptions = userOptions;\n this.labels = [];\n this.shapes = [];\n };\n /**\n * Initialize the annotation.\n * @private\n */\n Annotation.prototype.init = function (_annotationOrChart, _userOptions, index) {\n if (index === void 0) { index = this.index; }\n var chart = this.chart,\n animOptions = this.options.animation;\n this.index = index;\n this.linkPoints();\n this.addControlPoints();\n this.addShapes();\n this.addLabels();\n this.setLabelCollector();\n this.animationConfig = getDeferredAnimation(chart, animOptions);\n };\n /**\n * Initialisation of a single label\n * @private\n */\n Annotation.prototype.initLabel = function (labelOptions, index) {\n var options = Annotation_merge(this.options.labelOptions, {\n controlPointOptions: this.options.controlPointOptions\n },\n labelOptions),\n label = new Controllables_ControllableLabel(this,\n options,\n index);\n label.itemType = 'label';\n this.labels.push(label);\n return label;\n };\n /**\n * Initialisation of a single shape\n * @private\n * @param {Object} shapeOptions\n * a config object for a single shape\n * @param {number} index\n * annotation may have many shapes, this is the shape's index saved in\n * shapes.index.\n */\n Annotation.prototype.initShape = function (shapeOptions, index) {\n var options = Annotation_merge(this.options.shapeOptions, {\n controlPointOptions: this.options.controlPointOptions\n },\n shapeOptions),\n shape = new (Annotation.shapesMap[options.type])(this,\n options,\n index);\n shape.itemType = 'shape';\n this.shapes.push(shape);\n return shape;\n };\n /**\n * @private\n */\n Annotation.prototype.redraw = function (animation) {\n this.linkPoints();\n if (!this.graphic) {\n this.render();\n }\n if (this.clipRect) {\n this.clipRect.animate(this.getClipBox());\n }\n this.redrawItems(this.shapes, animation);\n this.redrawItems(this.labels, animation);\n this.redrawControlPoints(animation);\n };\n /**\n * Redraw a single item.\n * @private\n */\n Annotation.prototype.redrawItem = function (item, animation) {\n item.linkPoints();\n if (!item.shouldBeDrawn()) {\n this.destroyItem(item);\n }\n else {\n if (!item.graphic) {\n this.renderItem(item);\n }\n item.redraw(Annotation_pick(animation, true) && item.graphic.placed);\n if (item.points.length) {\n adjustVisibility(item);\n }\n }\n };\n /**\n * @private\n */\n Annotation.prototype.redrawItems = function (items, animation) {\n var i = items.length;\n // Needs a backward loop. Labels/shapes array might be modified due to\n // destruction of the item\n while (i--) {\n this.redrawItem(items[i], animation);\n }\n };\n /**\n * See {@link Highcharts.Chart#removeAnnotation}.\n * @private\n */\n Annotation.prototype.remove = function () {\n // Let chart.update() remove annotations on demand\n return this.chart.removeAnnotation(this);\n };\n /**\n * @private\n */\n Annotation.prototype.render = function () {\n var renderer = this.chart.renderer;\n this.graphic = renderer\n .g('annotation')\n .attr({\n opacity: 0,\n zIndex: this.options.zIndex,\n visibility: this.options.visible ?\n 'inherit' :\n 'hidden'\n })\n .add();\n this.shapesGroup = renderer\n .g('annotation-shapes')\n .add(this.graphic);\n if (this.options.crop) { // #15399\n this.shapesGroup.clip(this.chart.plotBoxClip);\n }\n this.labelsGroup = renderer\n .g('annotation-labels')\n .attr({\n // `hideOverlappingLabels` requires translation\n translateX: 0,\n translateY: 0\n })\n .add(this.graphic);\n this.addClipPaths();\n if (this.clipRect) {\n this.graphic.clip(this.clipRect);\n }\n // Render shapes and labels before adding events (#13070).\n this.renderItems(this.shapes);\n this.renderItems(this.labels);\n this.addEvents();\n this.renderControlPoints();\n };\n /**\n * @private\n */\n Annotation.prototype.renderItem = function (item) {\n item.render(item.itemType === 'label' ?\n this.labelsGroup :\n this.shapesGroup);\n };\n /**\n * @private\n */\n Annotation.prototype.renderItems = function (items) {\n var i = items.length;\n while (i--) {\n this.renderItem(items[i]);\n }\n };\n /**\n * @private\n */\n Annotation.prototype.setClipAxes = function () {\n var xAxes = this.chart.xAxis,\n yAxes = this.chart.yAxis,\n linkedAxes = (this.options.labels || [])\n .concat(this.options.shapes || [])\n .reduce(function (axes,\n labelOrShape) {\n var point = labelOrShape &&\n (labelOrShape.point ||\n (labelOrShape.points && labelOrShape.points[0]));\n return [\n xAxes[point && point.xAxis] || axes[0],\n yAxes[point && point.yAxis] || axes[1]\n ];\n }, []);\n this.clipXAxis = linkedAxes[0];\n this.clipYAxis = linkedAxes[1];\n };\n /**\n * @private\n */\n Annotation.prototype.setControlPointsVisibility = function (visible) {\n var setItemControlPointsVisibility = function (item) {\n item.setControlPointsVisibility(visible);\n };\n this.controlPoints.forEach(function (controlPoint) {\n controlPoint.setVisibility(visible);\n });\n this.shapes.forEach(setItemControlPointsVisibility);\n this.labels.forEach(setItemControlPointsVisibility);\n };\n /**\n * @private\n */\n Annotation.prototype.setLabelCollector = function () {\n var annotation = this;\n annotation.labelCollector = function () {\n return annotation.labels.reduce(function (labels, label) {\n if (!label.options.allowOverlap) {\n labels.push(label.graphic);\n }\n return labels;\n }, []);\n };\n annotation.chart.labelCollectors.push(annotation.labelCollector);\n };\n /**\n * Set an annotation options.\n * @private\n * @param {Highcharts.AnnotationsOptions} userOptions\n * User options for an annotation\n */\n Annotation.prototype.setOptions = function (userOptions) {\n this.options = Annotation_merge(this.defaultOptions, userOptions);\n };\n /**\n * Set the annotation's visibility.\n * @private\n * @param {boolean} [visible]\n * Whether to show or hide an annotation. If the param is omitted, the\n * annotation's visibility is toggled.\n */\n Annotation.prototype.setVisibility = function (visible) {\n var options = this.options,\n navigation = this.chart.navigationBindings,\n visibility = Annotation_pick(visible, !options.visible);\n this.graphic.attr('visibility', visibility ? 'inherit' : 'hidden');\n if (!visibility) {\n var setItemControlPointsVisibility = function (item) {\n item.setControlPointsVisibility(visibility);\n };\n this.shapes.forEach(setItemControlPointsVisibility);\n this.labels.forEach(setItemControlPointsVisibility);\n if (navigation.activeAnnotation === this &&\n navigation.popup &&\n navigation.popup.type === 'annotation-toolbar') {\n Annotation_fireEvent(navigation, 'closePopup');\n }\n }\n options.visible = visibility;\n };\n /**\n * Updates an annotation.\n *\n * @function Highcharts.Annotation#update\n *\n * @param {Partial<Highcharts.AnnotationsOptions>} userOptions\n * New user options for the annotation.\n *\n */\n Annotation.prototype.update = function (userOptions, redraw) {\n var chart = this.chart,\n labelsAndShapes = getLabelsAndShapesOptions(this.userOptions,\n userOptions),\n userOptionsIndex = chart.annotations.indexOf(this),\n options = Annotation_merge(true,\n this.userOptions,\n userOptions);\n options.labels = labelsAndShapes.labels;\n options.shapes = labelsAndShapes.shapes;\n this.destroy();\n this.initProperties(chart, options);\n this.init(chart, options);\n // Update options in chart options, used in exporting (#9767, #21507):\n chart.options.annotations[userOptionsIndex] = this.options;\n this.isUpdating = true;\n if (Annotation_pick(redraw, true)) {\n chart.drawAnnotations();\n }\n Annotation_fireEvent(this, 'afterUpdate');\n this.isUpdating = false;\n };\n /* *\n *\n * Static Properties\n *\n * */\n /**\n * @private\n */\n Annotation.ControlPoint = Annotations_ControlPoint;\n /**\n * @private\n */\n Annotation.MockPoint = Annotations_MockPoint;\n /**\n * An object uses for mapping between a shape type and a constructor.\n * To add a new shape type extend this object with type name as a key\n * and a constructor as its value.\n *\n * @private\n */\n Annotation.shapesMap = {\n 'rect': Controllables_ControllableRect,\n 'circle': Controllables_ControllableCircle,\n 'ellipse': Controllables_ControllableEllipse,\n 'path': Controllables_ControllablePath,\n 'image': Controllables_ControllableImage\n };\n /**\n * @private\n */\n Annotation.types = {};\n return Annotation;\n}(Annotations_EventEmitter));\nAnnotation.prototype.defaultOptions = Annotations_AnnotationDefaults;\n/**\n * List of events for `annotation.options.events` that should not be\n * added to `annotation.graphic` but to the `annotation`.\n *\n * @private\n * @type {Array<string>}\n */\nAnnotation.prototype.nonDOMEvents = ['add', 'afterUpdate', 'drag', 'remove'];\nAnnotations_ControlTarget.compose(Annotation);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Annotations_Annotation = (Annotation);\n/* *\n *\n * API Declarations\n *\n * */\n/**\n * Possible directions for draggable annotations. An empty string (`''`)\n * makes the annotation undraggable.\n *\n * @typedef {''|'x'|'xy'|'y'} Highcharts.AnnotationDraggableValue\n * @requires modules/annotations\n */\n/**\n * @private\n * @typedef {\n * Highcharts.AnnotationControllableCircle|\n * Highcharts.AnnotationControllableImage|\n * Highcharts.AnnotationControllablePath|\n * Highcharts.AnnotationControllableRect\n * } Highcharts.AnnotationShapeType\n * @requires modules/annotations\n */\n/**\n * @private\n * @typedef {\n * Highcharts.AnnotationControllableLabel\n * } Highcharts.AnnotationLabelType\n * @requires modules/annotations\n */\n/**\n * A point-like object, a mock point or a point used in series.\n * @private\n * @typedef {\n * Highcharts.AnnotationMockPoint|\n * Highcharts.Point\n * } Highcharts.AnnotationPointType\n * @requires modules/annotations\n */\n/**\n * Shape point as string, object or function.\n *\n * @typedef {\n * string|\n * Highcharts.AnnotationMockPointOptionsObject|\n * Highcharts.AnnotationMockPointFunction\n * } Highcharts.AnnotationShapePointOptions\n */\n(''); // Keeps doclets above in JS file\n\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;// ./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 NavigationBindingsUtilities_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, NavigationBindingsUtilities_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, NavigationBindingsUtilities_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 = NavigationBindingsUtilities_pick(coord.axis.minPointOffset, 0);\n return NavigationBindingsUtilities_isNumber(axisMin) && NavigationBindingsUtilities_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 (NavigationBindingsUtilities_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, NavigationBindingsDefaults_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(NavigationBindingsDefaults_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(NavigationBindingsDefaults_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(NavigationBindingsDefaults_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(NavigationBindingsDefaults_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 NavigationBindings_format = (highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default()).format;\n\nvar NavigationBindings_composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed, NavigationBindings_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 NavigationBindings_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, NavigationBindings_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, NavigationBindings_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, NavigationBindings_isObject = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isObject, NavigationBindings_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, NavigationBindings_objectEach = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).objectEach, NavigationBindings_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, NavigationBindings_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 NavigationBindings_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 NavigationBindings_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 NavigationBindings_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 NavigationBindings_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 = NavigationBindings_doc.getElementsByClassName(this.options.bindingsClassName || '');\n }\n }\n /* *\n *\n * Static Functions\n *\n * */\n NavigationBindings.compose = function (AnnotationClass, ChartClass) {\n if (NavigationBindings_pushUnique(NavigationBindings_composed, 'NavigationBindings')) {\n NavigationBindings_addEvent(AnnotationClass, 'remove', onAnnotationRemove);\n // Basic shapes:\n selectableAnnotation(AnnotationClass);\n // Advanced annotations:\n NavigationBindings_objectEach(AnnotationClass.types, function (annotationType) {\n selectableAnnotation(annotationType);\n });\n NavigationBindings_addEvent(ChartClass, 'destroy', onChartDestroy);\n NavigationBindings_addEvent(ChartClass, 'load', onChartLoad);\n NavigationBindings_addEvent(ChartClass, 'render', onChartRender);\n NavigationBindings_addEvent(NavigationBindings, 'closePopup', NavigationBindings_onNavigationBindingsClosePopup);\n NavigationBindings_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 NavigationBindings_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(NavigationBindings_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 NavigationBindings_objectEach((options.events || {}), function (callback, eventName) {\n if (isFunction(callback)) {\n navigation.eventsToUnbind.push(NavigationBindings_addEvent(navigation, eventName, callback, { passive: false }));\n }\n });\n navigation.eventsToUnbind.push(NavigationBindings_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(NavigationBindings_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 NavigationBindings_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 NavigationBindings_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 NavigationBindings_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 NavigationBindings_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 NavigationBindings_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 NavigationBindings_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 (NavigationBindings_isArray(option)) {\n parent[key] = [];\n option.forEach(function (arrayOption, i) {\n if (!NavigationBindings_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 NavigationBindings_objectEach(arrayOption, function (nestedOption, nestedKey) {\n traverse(nestedOption, nestedKey, nestedEditables[key], parent[key][i], key);\n });\n }\n });\n }\n else if (NavigationBindings_isObject(option)) {\n nextParent = {};\n if (NavigationBindings_isArray(parent)) {\n parent.push(nextParent);\n nextParent[key] = {};\n nextParent = nextParent[key];\n }\n else {\n parent[key] = nextParent;\n }\n NavigationBindings_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 NavigationBindings_format(option, annotation.labels[0].points[0]).toString(),\n 'text'\n ];\n }\n else if (NavigationBindings_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 NavigationBindings_objectEach(options, function (option, key) {\n if (key === 'typeOptions') {\n visualOptions[key] = {};\n NavigationBindings_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;// ./code/es5/es-modules/masters/modules/annotations.src.js\n\n\n\n\n\nvar G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\nG.Annotation = G.Annotation || Annotations_Annotation;\nG.NavigationBindings = G.NavigationBindings || Annotations_NavigationBindings;\nG.Annotation.compose(G.Chart, G.NavigationBindings, G.Pointer, G.SVGRenderer);\n/* harmony default export */ var annotations_src = ((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()));\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"],"names":["root","factory","exports","module","require","define","amd","__WEBPACK_EXTERNAL_MODULE__944__","__WEBPACK_EXTERNAL_MODULE__512__","__WEBPACK_EXTERNAL_MODULE__984__","__WEBPACK_EXTERNAL_MODULE__660__","extendStatics","DropdownProperties","ChartNavigationComposition","Additions","AnnotationChart","ControlTarget","__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__","annotations_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","addEvent","erase","find","fireEvent","pick","wrap","chartAddAnnotation","userOptions","redraw","annotation","initAnnotation","options","annotations","push","graphic","attr","opacity","chartCallback","chart","plotBoxClip","renderer","clipRect","plotBox","controlPointsGroup","g","zIndex","clip","add","forEach","annotationOptions","i","some","drawAnnotations","destroy","event","csvColumnHeaderFormatter","exporting","csv","columnHeaderFormatter","multiLevelHeaders","dataRows","xValues","annotationHeader","lang","exportData","startRowLength","length","annotationSeparator","itemDelimiter","joinAnnotations","join","labelOptions","includeInDataExport","labels","label","text","annotationText_1","points","annotationX","x","xAxisIndex","series","xAxis","index","wasAdded","newRow","Array","row","maxRowLen","Math","max","newRows","header","s","columnTitle","topLevelColumnTitle","chartDrawAnnotations","animate","animationConfig","chartRemoveAnnotation","idOrAnnotation","coll","id","onChartAfterInit","wrapPointerOnContainerMouseDown","proceed","hasDraggedAnnotation","apply","slice","arguments","compose","AnnotationClass","ChartClass","PointerClass","chartProto","addAnnotation","pointerProto","callbacks","collectionsWithInit","collectionsWithUpdate","removeAnnotation","types","type","Annotations_AnnotationChart","defined","doc","isTouchDevice","EventEmitter_addEvent","EventEmitter_fireEvent","objectEach","EventEmitter_pick","removeEvent","EventEmitter","addEvents","emitter","addMouseDownEvent","element","e","onMouseDown","passive","useHTML","events","eventHandler","_a","cancelClick","pointer","normalize","target","nonDOMEvents","indexOf","div","draggable","onDrag","styledMode","cssPointer_1","cursor","y","xy","css","isUpdating","removeDocEvents","hcEvents","mouseMoveToRadians","cx","cy","temp","prevDy","prevChartY","prevDx","prevChartX","dy","chartY","dx","chartX","inverted","atan2","mouseMoveToScale","sx","sy","mouseMoveToTranslation","isInsidePlot","plotLeft","plotTop","visiblePlotOnly","translation_1","translate","shapes","shape","preventDefault","button","firesTouchEvents","sourceCapabilities","removeDrag","hasDragged","removeMouseUp","onMouseUp","__extends","b","setPrototypeOf","__proto__","p","__","constructor","create","merge","ControlPoint_pick","ControlPoint","_super","_this","animation","positioner","render","symbol","width","height","style","setVisibility","visible","update","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default","seriesProto","MockPoint_defined","MockPoint_fireEvent","MockPoint","mock","point","getPlotBox","applyOptions","getOptions","fromPoint","yAxis","pointToPixels","paneCoordinates","plotX","plotY","plotWidth","plotHeight","translateX","translateY","pointToOptions","command","setAxis","refresh","hasDynamicOptions","len","toPixels","isInside","refreshOptions","toValue","rotate","radians","cos","sin","tx","ty","scale","xOrY","axisName","axisOptions","toAnchor","anchor","_cx","_cy","addControlPoints","controlPoints","controlPointsOptions","controlPointOptions","box","tooltip","getAnchor","relativePosition","absolutePosition","destroyControlTarget","controlPoint","getPointsOptions","splat","linkPoints","pointsOptions","pointOptions","isObject","isString","pointConfig","redrawControlPoints","renderControlPoints","transform","transformation","p1","p2","_point","transformPoint","Annotations_MockPoint","translatePoint","ControlTargetClass","controlProto","Annotations_ControlTarget","Controllable_merge","Controllable","itemType","collection","init","_args","_i","attrsFromOptions","mappedKey","map","attrsMap","attrs","tracker","_parentGroup","className","addClass","setControlPointsVisibility","shouldBeDrawn","translateShape","translateSecondPoint","shapeOptions","annotationIndex","chartOptions","newOptions","parentGroup","Constructor","ControllablePath_extends","TypeError","String","ControllablePath_defaultMarkers","arrow","tagName","attributes","refY","refX","markerWidth","markerHeight","children","ControllablePath_addEvent","ControllablePath_defined","extend","ControllablePath_merge","uniqueKey","markerEndSetter","createMarkerSetter","markerStartSetter","TRACKER_FILL","svg","markerType","value","onChartAfterGetContainer","defs","svgRendererAddMarker","markerOptions","stroke","color","fill","child","ast","orient","marker","ControllablePath","SVGRendererClass","svgRendererProto","addMarker","toD","dOption","showPath","position","pointIndex","crispLine","strokeWidth","parent","path","snap","setMarkers","action","placed","item","itemOptions","def","predefinedMarker","markerId","getAttribute","dashStyle","ControllableRect_extends","ControllableRect_merge","ControllableRect","rect","Boolean","Controllables_ControllablePath","ControllableCircle_extends","ControllableCircle_merge","ControllableCircle","r","circle","setRadius","ControllableEllipse_extends","ControllableEllipse_merge","ControllableEllipse_defined","ControllableEllipse","createElement","getDistanceFromLine","point1","point2","x0","y0","abs","sqrt","getAttrs","position2","x1","y1","x2","y2","rx","angle","atan","PI","ry","getRY","getYAxis","yAxisIndex","getAbsolutePosition","rotation","rotationOriginX","rotationOriginY","setYRadius","highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_","highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default","ControllableLabel_extends","format","ControllableLabel_extend","getAlignFactor","isNumber","ControllableLabel_pick","symbolConnector","w","h","yOffset","anchorX","anchorY","lateral","ControllableLabel","alignedPosition","alignOptions","round","align","verticalAlign","symbols","connector","justifiedOptions","alignAttr","off","padding","bBox","getBBox","chartAnnotations","getContrast","shapesWithoutBackground","backgroundColor","shadow","labelrank","formatter","itemPosition","alignTo","itemPosRelativeX","itemPosRelativeY","anchorAbsolutePosition","anchorRelativePosition","showItem","_b","distance","getPosition","getPlayingField","negative","ttBelow","overflow","crop","borderColor","borderWidth","borderRadius","ControllableImage_extends","ControllableImage","image","src","Controllables_ControllableLabel","highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_","highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default","BaseForm_addEvent","BaseForm","parentDiv","iconsURL","container","createPopupContainer","closeButton","addCloseButton","popup","match","eventName","closeButtonEvents","bind","document","code","closePopup","showPopup","toolbarClass","popupDiv","popupCloseButton","innerHTML","emptyHTML","classList","remove","removeAttribute","appendChild","display","PopupAnnotations_doc","isFirefox","PopupAnnotations_createElement","isArray","PopupAnnotations_objectEach","PopupAnnotations_pick","stableSort","addFormFields","parentNode","storage","isRoot","parentFullName","titleName","addInput","option","reverse","genInput","createTextNode","splice","PopupIndicators_doc","seriesTypes","PopupIndicators_addEvent","PopupIndicators_createElement","PopupIndicators_defined","PopupIndicators_isArray","PopupIndicators_isObject","PopupIndicators_objectEach","PopupIndicators_stableSort","dropdownParameters","addColsContainer","lhsCol","rhsCol","PopupIndicators_addFormFields","seriesType","rhsColWrapper","fields","params","getNameType","indicatorFullName","name","listAllSeries","linkedParent","volumeSeriesID","addParamInputs","addIndicatorList","listType","filter","selectIndicator","indicatorType","isEdit","setAttribute","querySelectorAll","plotOptions","filteredSeriesArray","filterSeriesArray","filterSeries","seriesAName","toLowerCase","seriesBName","indicatorList","seriesSet","btn","textContent","setElementHTML","noFilterMatch","fieldName","selectBox","addSelection","addSelectionOptions","addSearchBox","clearFilterText","clearFilter","inputWrapper","handleInputChange","inputText","input","htmlFor","labelClassName","optionName","optionParamList","split","labelText","selectName","parameterName","selectedOption","currentSeries","seriesOptions","seriesName","parameterOption","filteredSeries","indicatorAliases","navigation","regex","RegExp","replace","alias","is","nameBase","toUpperCase","PopupTabs_doc","PopupTabs_addEvent","PopupTabs_createElement","addContentItem","addMenuItem","tabName","disableTab","menuItem","deselectAll","tabs","tabsContent","selectTab","tab","allTabs","switchTabs","Popup_extends","Popup_doc","Popup_addEvent","Popup_createElement","Popup_extend","Popup_fireEvent","Popup_pick","Popup","activeAnnotation","navigationBindings","unbind_1","setTimeout","inputAttributes","inputName","selectedButtonElement","addButton","fieldsDiv","callback","inputList","selectList","linkedTo","volumeTo","fieldsOutput","actionType","param","seriesId","select","parameter","showForm","indicators","addForm","addToolbar","offsetHeight","isInit","langKey","bottomRow","saveButton","top","editButton","removeButton","_options","buttonParentDiv","tabsContainers","getAmount","counter","serie","indicatorsCount","firstTab","composed","PopupComposition_addEvent","pushUnique","PopupComposition_wrap","onNavigationBindingsClosePopup","onNavigationBindingsShowPopup","config","stockTools","gui","formType","onSubmit","wrapPointerOnContainerMouserDown","inClass","NagivationBindingsClass","Annotation_extends","getDeferredAnimation","destroyObjectProperties","Annotation_erase","Annotation_fireEvent","Annotation_merge","Annotation_pick","getLabelsAndShapesOptions","baseOptions","mergedOptions","someBaseOptions","newOptionsValue","basicOptions","Annotation","defaultOptions","labelsAndShapes","NavigationBindingsClass","Popup_PopupComposition","addClipPaths","setClipAxes","clipXAxis","clipYAxis","getClipBox","addLabels","labelsOptions","initLabel","addShapes","initShape","destroyItem","labelCollectors","labelCollector","left","initProperties","setOptions","_annotationOrChart","_userOptions","animOptions","setLabelCollector","shapesMap","redrawItems","redrawItem","renderItem","hasVisiblePoints","visibility","show","hide","items","shapesGroup","labelsGroup","renderItems","xAxes","yAxes","linkedAxes","concat","reduce","axes","labelOrShape","setItemControlPointsVisibility","allowOverlap","userOptionsIndex","fontSize","fontWeight","updates","addUpdate","updateFn","Chart_ChartNavigationComposition","NavigationBindingsUtilities_defined","NavigationBindingsUtilities_isNumber","NavigationBindingsUtilities_pick","annotationsFieldsTypes","title","coords","coord","extremes","axis","getExtremes","axisMin","min","axisMax","minPointOffset","isInternal","NavigationBindingsDefaults_isNumber","NavigationBindingsDefaults_merge","NavigationBindingsDefaults","simpleShapes","lines","ellipse","rectangle","typeOptions","backgroundColors","bindingsClassName","bindings","circleAnnotation","start","getCoordinates","coordsX","NavigationBindingsDefaults_getAssignedAxis","coordsY","annotationsOptions","steps","mockPointOpts","pow","ellipseAnnotation","newR","newRY","rectangleAnnotation","labelAnnotation","defer","NavigationBindings_format","NavigationBindings_composed","NavigationBindings_doc","win","NavigationBindings_getFieldType","predefinedType","fieldType","NavigationBindings_addEvent","NavigationBindings_defined","NavigationBindings_fireEvent","NavigationBindings_isArray","isFunction","NavigationBindings_isNumber","NavigationBindings_isObject","NavigationBindings_merge","NavigationBindings_objectEach","NavigationBindings_pick","NavigationBindings_pushUnique","onAnnotationRemove","deselectAnnotation","onChartDestroy","onChartLoad","NavigationBindings","initEvents","initUpdate","onChartRender","disabledClassName","buttonsEnabled_1","container_1","boundClassNames","buttonNode","cls","noDataState","NavigationBindings_onNavigationBindingsClosePopup","onNavigationBindingsDeselectButton","selectableAnnotation","annotationType","touchStartX","touchStartY","originalClick","click","selectAndShowPopup","eventArguments","prevAnnotation","annotationToFields","data","fieldsToOptions","crosshairY","enabled","crosshairX","touchstart","touches","clientX","clientY","touchend","changedTouches","eventsToUnbind","getElementsByClassName","getCoords","NavigationBindings_getAssignedAxis","bindingsContainer","subContainer","getButtonEvents","contains","bindingsButtonClick","bindingsChartClick","bindingsContainerMouseMove","clickEvent","svgContainer","boxWrapper","shouldEventBeFired","nextEvent","currentUserDetails","mouseMoveEvent","selectedButton","removeClass","closestPolyfill","el","ElementProto","Element","elementMatches","matches","msMatchesSelector","webkitMatchesSelector","ret","closest","parentElement","nodeType","stepIndex","end","_container","moveEvent","field","parsedValue","parseFloat","pathLength","parent_1","nextName","editables","annotationsEditable","nestedEditables","nestedOptions","nonEditables","annotationsNonEditable","visualOptions","traverse","parentEditables","parentKey","nextParent","arrayOption","nestedOption","nestedKey","toString","typeOption","typeKey","getClickedClassNames","elemClassName","classNames","removeEvents","unbinder","background","innerBackground","outerBackground","line","verticalLine","measure","fibonacci","tunnel","pitchfork","crookedLine","basicAnnotation","G","Chart","Pointer","SVGRenderer"],"mappings":"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"}
Hacked By AnonymousFox1.0, Coded By AnonymousFox