{"version":3,"sources":[""],"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(root[\"_Highcharts\"], root[\"_Highcharts\"][\"SeriesRegistry\"], root[\"_Highcharts\"][\"Templating\"], root[\"_Highcharts\"][\"AST\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/modules/annotations\", [\"highcharts/highcharts\"], function (amd1) {return factory(amd1,amd1[\"SeriesRegistry\"],amd1[\"Templating\"],amd1[\"AST\"]);});\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/modules/annotations\"] = factory(root[\"_Highcharts\"], root[\"_Highcharts\"][\"SeriesRegistry\"], root[\"_Highcharts\"][\"Templating\"], root[\"_Highcharts\"][\"AST\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"SeriesRegistry\"], root[\"Highcharts\"][\"Templating\"], root[\"Highcharts\"][\"AST\"]);\n})(typeof window === 'undefined' ? this : window, (__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__512__, __WEBPACK_EXTERNAL_MODULE__984__, __WEBPACK_EXTERNAL_MODULE__660__) => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 660:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__660__;\n\n/***/ }),\n\n/***/ 512:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__512__;\n\n/***/ }),\n\n/***/ 984:\n/***/ ((module) => {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__984__;\n\n/***/ }),\n\n/***/ 944:\n/***/ ((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(() => {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = (module) => {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\t() => (module['default']) :\n/******/ \t\t\t\t() => (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(() => {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = (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(() => {\n/******/ \t\t__webpack_require__.o = (obj, prop) => (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\": () => (/* 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/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\nconst { addEvent, erase, find, fireEvent, pick, wrap } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 const 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 const 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((annotationOptions, i) => {\n if (\n // Verify that it has not been previously added in a responsive rule\n !chart.annotations.some((annotation) => annotation.options === annotationOptions)) {\n const 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 const annotations = chart.annotations, 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, annotationHeader = (chart.options.lang &&\n chart.options.lang.exportData &&\n chart.options.lang.exportData.annotationHeader), columnHeaderFormatter = function (index) {\n let 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((annotation) => {\n if (annotation.options.labelOptions &&\n annotation.options.labelOptions.includeInDataExport) {\n annotation.labels.forEach((label) => {\n if (label.options.text) {\n const annotationText = label.options.text;\n label.points.forEach((points) => {\n const annotationX = points.x, xAxisIndex = points.series.xAxis ?\n points.series.xAxis.index :\n -1;\n let wasAdded = false;\n // Annotation not connected to any xAxis -\n // add new row.\n if (xAxisIndex === -1) {\n const n = event.dataRows[0].length, newRow = new Array(n);\n for (let i = 0; i < n; ++i) {\n newRow[i] = '';\n }\n newRow.push(annotationText);\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((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);\n }\n else {\n row.push(annotationText);\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 const n = event.dataRows[0].length, newRow = new Array(n);\n for (let i = 0; i < n; ++i) {\n newRow[i] = '';\n }\n newRow[0] = annotationX;\n newRow.push(annotationText);\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 let maxRowLen = 0;\n event.dataRows.forEach((row) => {\n maxRowLen = Math.max(maxRowLen, row.length);\n });\n const newRows = maxRowLen - event.dataRows[0].length;\n for (let i = 0; i < newRows; i++) {\n const 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((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 const annotations = this.annotations, annotation = (idOrAnnotation.coll === 'annotations') ?\n idOrAnnotation :\n find(annotations, 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 const 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 const chartProto = ChartClass.prototype;\n if (!chartProto.addAnnotation) {\n const 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 const Constructor = (AnnotationClass.types[userOptions.type] ||\n AnnotationClass), annotation = new Constructor(this, 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 */ const Annotations_AnnotationChart = (AnnotationChart);\n\n;// ./code/es-modules/Extensions/Annotations/AnnotationDefaults.js\n/* *\n *\n * Imports\n *\n * */\n\nconst { defined } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 */\nconst 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}\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}\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}\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}\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}\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}\n * @since 7.1.0\n * @apioption annotations.events.afterUpdate\n */\n /**\n * Fires when the annotation is clicked.\n *\n * @type {Highcharts.EventCallbackFunction}\n * @since 7.1.0\n * @apioption annotations.events.click\n */\n /**\n * Fires when the annotation is dragged.\n *\n * @type {Highcharts.EventCallbackFunction}\n * @apioption annotations.events.drag\n */\n /**\n * Event callback when annotation is removed from the chart.\n *\n * @type {Highcharts.EventCallbackFunction}\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 */ const Annotations_AnnotationDefaults = (AnnotationDefaults);\n\n;// ./code/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\nconst { doc, isTouchDevice } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { addEvent: EventEmitter_addEvent, fireEvent: EventEmitter_fireEvent, objectEach, pick: EventEmitter_pick, removeEvent } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n * Class\n *\n * */\n/**\n * @private\n */\nclass EventEmitter {\n /* *\n *\n * Functions\n *\n * */\n /**\n * Add emitter events.\n * @private\n */\n addEvents() {\n const emitter = this, addMouseDownEvent = function (element) {\n EventEmitter_addEvent(element, isTouchDevice ? 'touchstart' : 'mousedown', (e) => {\n emitter.onMouseDown(e);\n }, { passive: false });\n };\n addMouseDownEvent(this.graphic.element);\n (emitter.labels || []).forEach((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, (event, type) => {\n const eventHandler = function (e) {\n if (type !== 'click' || !emitter.cancelClick) {\n event.call(emitter, emitter.chart.pointer?.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 const cssPointer = {\n cursor: {\n x: 'ew-resize',\n y: 'ns-resize',\n xy: 'move'\n }[emitter.options.draggable]\n };\n emitter.graphic.css(cssPointer);\n (emitter.labels || []).forEach((label) => {\n if (label.options.useHTML && label.graphic.text) {\n label.graphic.text.css(cssPointer);\n }\n });\n }\n }\n if (!emitter.isUpdating) {\n EventEmitter_fireEvent(emitter, 'add');\n }\n }\n /**\n * Destroy the event emitter.\n */\n destroy() {\n this.removeDocEvents();\n removeEvent(this);\n this.hcEvents = null;\n }\n /**\n * Map mouse move event to the radians.\n * @private\n */\n mouseMoveToRadians(e, cx, cy) {\n let prevDy = e.prevChartY - cy, prevDx = e.prevChartX - cx, dy = e.chartY - cy, dx = e.chartX - cx, 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 mouseMoveToScale(e, cx, cy) {\n const prevDx = e.prevChartX - cx, prevDy = e.prevChartY - cy, dx = e.chartX - cx, dy = e.chartY - cy;\n let sx = (dx || 1) / (prevDx || 1), sy = (dy || 1) / (prevDy || 1);\n if (this.chart.inverted) {\n const 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 mouseMoveToTranslation(e) {\n let dx = e.chartX - e.prevChartX, dy = e.chartY - e.prevChartY, 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 onDrag(e) {\n if (this.chart.isInsidePlot(e.chartX - this.chart.plotLeft, e.chartY - this.chart.plotTop, {\n visiblePlotOnly: true\n })) {\n const translation = this.mouseMoveToTranslation(e);\n if (this.options.draggable === 'x') {\n translation.y = 0;\n }\n if (this.options.draggable === 'y') {\n translation.x = 0;\n }\n const emitter = this;\n if (emitter.points.length) {\n emitter.translate(translation.x, translation.y);\n }\n else {\n emitter.shapes.forEach((shape) => shape.translate(translation.x, translation.y));\n emitter.labels.forEach((label) => label.translate(translation.x, translation.y));\n }\n this.redraw(false);\n }\n }\n /**\n * Mouse down handler.\n * @private\n */\n onMouseDown(e) {\n if (e.preventDefault) {\n e.preventDefault();\n }\n // On right click, do nothing:\n if (e.button === 2) {\n return;\n }\n const emitter = this, 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 = (e?.sourceCapabilities?.firesTouchEvents) || false;\n e = pointer?.normalize(e) || e;\n let prevChartX = e.chartX, 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?.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 const annotation = EventEmitter_pick(emitter.target && emitter.target.annotation, 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 onMouseUp() {\n this.removeDocEvents();\n }\n /**\n * Remove emitter document events.\n * @private\n */\n removeDocEvents() {\n if (this.removeDrag) {\n this.removeDrag = this.removeDrag();\n }\n if (this.removeMouseUp) {\n this.removeMouseUp = this.removeMouseUp();\n }\n }\n}\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const Annotations_EventEmitter = (EventEmitter);\n\n;// ./code/es-modules/Extensions/Annotations/ControlPoint.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nconst { merge, pick: ControlPoint_pick } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 */\nclass ControlPoint extends Annotations_EventEmitter {\n /* *\n *\n * Constructor\n *\n * */\n constructor(chart, target, options, index) {\n super();\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}\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 }\n /* *\n *\n * Functions\n *\n * */\n /**\n * Destroy the control point.\n * @private\n */\n destroy() {\n super.destroy();\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 redraw(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 render() {\n const chart = this.chart, 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 setVisibility(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} userOptions\n * New options for the control point.\n */\n update(userOptions) {\n const chart = this.chart, target = this.target, index = this.index, options = merge(true, this.options, userOptions);\n this.destroy();\n this.constructor(chart, target, options, index);\n this.render(chart.controlPointsGroup);\n this.redraw();\n }\n}\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const 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/es-modules/Extensions/Annotations/MockPoint.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nconst { series: { prototype: seriesProto } } = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default());\n\nconst { defined: MockPoint_defined, fireEvent: MockPoint_fireEvent } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 */\nclass MockPoint {\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 static fromPoint(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 static pointToPixels(point, paneCoordinates) {\n const series = point.series, chart = series.chart;\n let x = point.plotX || 0, y = point.plotY || 0, 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 static pointToOptions(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 *\n * Constructor\n *\n * */\n constructor(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 * Apply options for the point.\n * @private\n * @param {Highcharts.AnnotationMockPointOptionsObject} options\n */\n applyOptions(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 getOptions() {\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 hasDynamicOptions() {\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 isInsidePlot() {\n const plotX = this.plotX, plotY = this.plotY, xAxis = this.series.xAxis, yAxis = this.series.yAxis, 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 refresh() {\n const series = this.series, xAxis = series.xAxis, yAxis = series.yAxis, 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 refreshOptions() {\n const series = this.series, xAxis = series.xAxis, 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 rotate(cx, cy, radians) {\n if (!this.hasDynamicOptions()) {\n const cos = Math.cos(radians), sin = Math.sin(radians), x = this.plotX - cx, y = this.plotY - cy, tx = x * cos - y * sin, 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 scale(cx, cy, sx, sy) {\n if (!this.hasDynamicOptions()) {\n const x = this.plotX * sx, y = this.plotY * sy, tx = (1 - sx) * cx, 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 setAxis(options, xOrY) {\n const axisName = (xOrY + 'Axis'), axisOptions = options[axisName], 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}\n * A quadruple of numbers which denotes x, y, width and height of the box\n **/\n toAnchor() {\n const anchor = [this.plotX, 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 translate(_cx, _cy, dx, dy) {\n if (!this.hasDynamicOptions()) {\n this.plotX += dx;\n this.plotY += dy;\n this.refreshOptions();\n }\n }\n}\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const 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/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 const controlPoints = this.controlPoints, controlPointsOptions = this.options.controlPoints || [];\n controlPointsOptions.forEach((controlPointOptions, i) => {\n const options = highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().merge(this.options.controlPointOptions, 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 const plotBox = point.series.getPlotBox(), chart = point.series.chart, box = point.mock ?\n point.toAnchor() :\n chart.tooltip &&\n chart.tooltip.getAnchor.call({\n chart: point.series.chart\n }, point) ||\n [0, 0, 0, 0], 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 const controlProto = ControlTargetClass.prototype;\n if (!controlProto.addControlPoints) {\n highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().merge(true, controlProto, {\n addControlPoints,\n anchor,\n destroyControlTarget,\n getPointsOptions,\n linkPoints,\n point,\n redrawControlPoints,\n renderControlPoints,\n transform,\n transformPoint,\n translate,\n translatePoint\n });\n }\n }\n ControlTarget.compose = compose;\n /**\n * Destroy control points.\n * @private\n */\n function destroyControlTarget() {\n this.controlPoints.forEach((controlPoint) => 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}\n * An array of points' options.\n */\n function getPointsOptions() {\n const 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}\n * An array of point-like objects.\n */\n function linkPoints() {\n const pointsOptions = this.getPointsOptions(), points = this.points, len = (pointsOptions && pointsOptions.length) || 0;\n let i, 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 const pointConfig = pointOptions.call(point, 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((controlPoint) => controlPoint.redraw(animation));\n }\n /**\n * Render control points.\n * @private\n */\n function renderControlPoints() {\n this.controlPoints.forEach((controlPoint) => 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 if (this.chart.inverted) {\n const temp = cx;\n cx = cy;\n cy = temp;\n }\n this.points.forEach((_point, i) => (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 let 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 */ const Annotations_ControlTarget = (ControlTarget);\n\n;// ./code/es-modules/Extensions/Annotations/Controllables/Controllable.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nconst { merge: Controllable_merge } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n * Class\n *\n * */\n/**\n * It provides methods for handling points, control points\n * and points transformations.\n * @private\n */\nclass Controllable {\n /* *\n *\n * Constructor\n *\n * */\n constructor(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 attr(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ..._args) {\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 attrsFromOptions(options) {\n const map = this.constructor.attrsMap, attrs = {}, styledMode = this.chart.styledMode;\n let key, 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 destroy() {\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 init(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 redraw(animation) {\n this.redrawControlPoints(animation);\n }\n /**\n * Render a controllable.\n * @private\n */\n render(\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 rotate(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 scale(cx, cy, sx, sy) {\n this.transform('scale', cx, cy, sx, sy);\n }\n /**\n * Set control points' visibility.\n * @private\n */\n setControlPointsVisibility(visible) {\n this.controlPoints.forEach((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 shouldBeDrawn() {\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 translateShape(dx, dy, translateSecondPoint) {\n const chart = this.annotation.chart, \n // Annotation.options\n shapeOptions = this.annotation.userOptions, \n // Chart.options.annotations\n annotationIndex = chart.annotations.indexOf(this.annotation), 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 update(newOptions) {\n const annotation = this.annotation, options = Controllable_merge(true, this.options, newOptions), parentGroup = this.graphic.parentGroup, Constructor = this.constructor;\n this.destroy();\n const newControllable = new Constructor(annotation, options, this.index, this.itemType);\n Controllable_merge(true, this, newControllable);\n this.render(parentGroup);\n this.redraw();\n }\n}\nAnnotations_ControlTarget.compose(Controllable);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const 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}\n*/ /**\n* @name Highcharts.AnnotationControllable#points\n* @type {Array}\n*/\n(''); // Keeps doclets above in JS file\n\n;// ./code/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 *
\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 * 
\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}\n * @since 6.0.0\n * @optionparent defs\n */\nconst 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}\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 * */\nconst ControllableDefaults = {\n defaultMarkers\n};\n/* harmony default export */ const Controllables_ControllableDefaults = (ControllableDefaults);\n\n;// ./code/es-modules/Extensions/Annotations/Controllables/ControllablePath.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nconst { defaultMarkers: ControllablePath_defaultMarkers } = Controllables_ControllableDefaults;\n\n\nconst { addEvent: ControllablePath_addEvent, defined: ControllablePath_defined, extend, merge: ControllablePath_merge, uniqueKey } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n * Constants\n *\n * */\nconst markerEndSetter = createMarkerSetter('marker-end');\nconst markerStartSetter = createMarkerSetter('marker-start');\n// See TRACKER_FILL in highcharts.src.js\nconst 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 const options = { attributes: { id } };\n const 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 const ast = ControllablePath_merge(true, {\n attributes: {\n markerWidth: 20,\n markerHeight: 20,\n refX: 0,\n refY: 0,\n orient: 'auto'\n }\n }, markerOptions, options);\n const 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 */\nclass ControllablePath extends Controllables_Controllable {\n /* *\n *\n * Static Functions\n *\n * */\n static compose(ChartClass, SVGRendererClass) {\n const svgRendererProto = SVGRendererClass.prototype;\n if (!svgRendererProto.addMarker) {\n ControllablePath_addEvent(ChartClass, 'afterGetContainer', onChartAfterGetContainer);\n svgRendererProto.addMarker = svgRendererAddMarker;\n }\n }\n /* *\n *\n * Constructors\n *\n * */\n constructor(annotation, options, index) {\n super(annotation, options, index, 'shape');\n /* *\n *\n * Properties\n *\n * */\n this.type = 'path';\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 toD() {\n const dOption = this.options.d;\n if (dOption) {\n return typeof dOption === 'function' ?\n dOption.call(this) :\n dOption;\n }\n const points = this.points, len = points.length, d = [];\n let showPath = len, point = points[0], position = showPath && this.anchor(point).absolutePosition, pointIndex = 0, 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 shouldBeDrawn() {\n return super.shouldBeDrawn() || !!this.options.d;\n }\n render(parent) {\n const options = this.options, 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.render();\n extend(this.graphic, { markerStartSetter, markerEndSetter });\n this.setMarkers(this);\n }\n redraw(animation) {\n if (this.graphic) {\n const d = this.toD(), 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.redraw(animation);\n }\n /**\n * Set markers.\n * @private\n * @param {Highcharts.AnnotationControllablePath} item\n */\n setMarkers(item) {\n const itemOptions = item.options, chart = item.chart, defs = chart.options.defs, fill = itemOptions.fill, color = ControllablePath_defined(fill) && fill !== 'none' ?\n fill :\n itemOptions.stroke;\n const setMarker = function (markerType) {\n const markerId = itemOptions[markerType];\n let def, predefinedMarker, key, 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 *\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}\n */\nControllablePath.attrsMap = {\n dashStyle: 'dashstyle',\n strokeWidth: 'stroke-width',\n stroke: 'stroke',\n fill: 'fill',\n zIndex: 'zIndex'\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const Controllables_ControllablePath = (ControllablePath);\n\n;// ./code/es-modules/Extensions/Annotations/Controllables/ControllableRect.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\n\nconst { merge: ControllableRect_merge } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 */\nclass ControllableRect extends Controllables_Controllable {\n /* *\n *\n * Constructors\n *\n * */\n constructor(annotation, options, index) {\n super(annotation, options, index, 'shape');\n /* *\n *\n * Properties\n *\n * */\n this.type = 'rect';\n this.translate = super.translateShape;\n }\n /* *\n *\n * Functions\n *\n * */\n render(parent) {\n const 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.render();\n }\n redraw(animation) {\n if (this.graphic) {\n const 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.redraw(animation);\n }\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 */\nControllableRect.attrsMap = ControllableRect_merge(Controllables_ControllablePath.attrsMap, {\n width: 'width',\n height: 'height'\n});\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const Controllables_ControllableRect = (ControllableRect);\n\n;// ./code/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\n\nconst { merge: ControllableCircle_merge } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 */\nclass ControllableCircle extends Controllables_Controllable {\n /* *\n *\n * Constructors\n *\n * */\n constructor(annotation, options, index) {\n super(annotation, options, index, 'shape');\n /* *\n *\n * Properties\n *\n * */\n this.type = 'circle';\n this.translate = super.translateShape;\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n redraw(animation) {\n if (this.graphic) {\n const 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.redraw.call(this, animation);\n }\n /**\n * @private\n */\n render(parent) {\n const 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.render();\n }\n /**\n * Set the radius.\n * @private\n * @param {number} r\n * A radius to be set\n */\n setRadius(r) {\n this.options.r = r;\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.AnnotationControllableCircle.attrsMap\n * @type {Highcharts.Dictionary}\n */\nControllableCircle.attrsMap = ControllableCircle_merge(Controllables_ControllablePath.attrsMap, { r: 'r' });\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const Controllables_ControllableCircle = (ControllableCircle);\n\n;// ./code/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\n\n\n\nconst { merge: ControllableEllipse_merge, defined: ControllableEllipse_defined } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 */\nclass ControllableEllipse extends Controllables_Controllable {\n /* *\n *\n * Constructor\n *\n * */\n constructor(annotation, options, index) {\n super(annotation, options, index, 'shape');\n /* *\n *\n * Properties\n *\n * */\n this.type = 'ellipse';\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n init(annotation, options, index) {\n if (ControllableEllipse_defined(options.yAxis)) {\n options.points.forEach((point) => {\n point.yAxis = options.yAxis;\n });\n }\n if (ControllableEllipse_defined(options.xAxis)) {\n options.points.forEach((point) => {\n point.xAxis = options.xAxis;\n });\n }\n super.init(annotation, options, index);\n }\n /**\n * Render the element\n * @private\n * @param parent\n * Parent SVG element.\n */\n render(parent) {\n this.graphic = this.annotation.chart.renderer.createElement('ellipse')\n .attr(this.attrsFromOptions(this.options))\n .add(parent);\n super.render();\n }\n /**\n * Translate the points. Mostly used to handle dragging of the ellipse.\n * @private\n */\n translate(dx, dy) {\n super.translateShape(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 getDistanceFromLine(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 getAttrs(position, position2) {\n const 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 let angle = Math.atan(tan) * 180 / Math.PI;\n if (cx < x1) {\n angle += 180;\n }\n const ry = this.getRY();\n return { cx, cy, rx, ry, angle };\n }\n /**\n * Get the value of minor radius of the ellipse.\n * @private\n */\n getRY() {\n const 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 getYAxis() {\n const 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 getAbsolutePosition(point) {\n return this.anchor(point).absolutePosition;\n }\n /**\n * Redraw the element\n * @private\n * @param animation\n * Display an animation\n */\n redraw(animation) {\n if (this.graphic) {\n const position = this.getAbsolutePosition(this.points[0]), position2 = this.getAbsolutePosition(this.points[1]), attrs = this.getAttrs(position, 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.redraw(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 setYRadius(ry) {\n const 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 *\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}\n */\nControllableEllipse.attrsMap = ControllableEllipse_merge(Controllables_ControllablePath.attrsMap, {\n ry: 'ry'\n});\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const 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/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\nconst { format } = (highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default());\n\n\nconst { extend: ControllableLabel_extend, getAlignFactor, isNumber, pick: ControllableLabel_pick } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 const anchorX = options && options.anchorX, anchorY = options && options.anchorY;\n let path, yOffset, 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 */\nclass ControllableLabel extends Controllables_Controllable {\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 static alignedPosition(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 static compose(SVGRendererClass) {\n const 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 static justifiedOptions(chart, label, alignOptions, alignAttr) {\n const align = alignOptions.align, verticalAlign = alignOptions.verticalAlign, padding = label.box ? 0 : (label.padding || 0), 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, y = (alignAttr.y || 0) - chart.plotTop;\n let 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 * Constructors\n *\n * */\n constructor(annotation, options, index) {\n super(annotation, options, index, 'label');\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 translatePoint(dx, dy) {\n super.translatePoint(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 translate(dx, dy) {\n const chart = this.annotation.chart, \n // Annotation.options\n labelOptions = this.annotation.userOptions, \n // Chart.options.annotations\n annotationIndex = chart.annotations.indexOf(this.annotation), chartAnnotations = chart.options.annotations, chartOptions = chartAnnotations[annotationIndex];\n if (chart.inverted) {\n const 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 render(parent) {\n const options = this.options, attrs = this.attrsFromOptions(options), 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.render();\n }\n redraw(animation) {\n const options = this.options, text = this.text || options.format || options.text, label = this.graphic, 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 const anchor = this.anchor(point);\n const 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.redraw(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 anchor(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _point) {\n const anchor = super.anchor.apply(this, arguments), x = this.options.x || 0, 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 position(anchor) {\n const item = this.graphic, chart = this.annotation.chart, tooltip = chart.tooltip, point = this.points[0], itemOptions = this.options, anchorAbsolutePosition = anchor.absolutePosition, anchorRelativePosition = anchor.relativePosition;\n let itemPosition, alignTo, itemPosRelativeX, itemPosRelativeY, showItem = point.series.visible &&\n Annotations_MockPoint.prototype.isInsidePlot.call(point);\n if (item && showItem) {\n const { width = 0, height = 0 } = item;\n if (itemOptions.distance && tooltip) {\n itemPosition = tooltip.getPosition.call({\n 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,\n 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 *\n * Static Properties\n *\n * */\n/**\n * A map object which allows to map options attributes to element attributes\n *\n * @type {Highcharts.Dictionary}\n */\nControllableLabel.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}\n */\nControllableLabel.shapesWithoutBackground = ['connector'];\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const Controllables_ControllableLabel = (ControllableLabel);\n\n;// ./code/es-modules/Extensions/Annotations/Controllables/ControllableImage.js\n/* *\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\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 */\nclass ControllableImage extends Controllables_Controllable {\n /* *\n *\n * Constructors\n *\n * */\n constructor(annotation, options, index) {\n super(annotation, options, index, 'shape');\n /* *\n *\n * Properties\n *\n * */\n this.type = 'image';\n this.translate = super.translateShape;\n }\n render(parent) {\n const attrs = this.attrsFromOptions(this.options), 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.render();\n }\n redraw(animation) {\n if (this.graphic) {\n const anchor = this.anchor(this.points[0]), position = Controllables_ControllableLabel.prototype.position.call(this, 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.redraw(animation);\n }\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}\n */\nControllableImage.attrsMap = {\n width: 'width',\n height: 'height',\n zIndex: 'zIndex'\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const 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/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\nconst { addEvent: BaseForm_addEvent, createElement } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n * Class\n *\n * */\nclass BaseForm {\n /* *\n *\n * Constructor\n *\n * */\n constructor(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 createPopupContainer(parentDiv, className = 'highcharts-popup highcharts-no-tooltip') {\n return createElement('div', { 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 addCloseButton(className = 'highcharts-popup-close') {\n const popup = this, iconsURL = this.iconsURL;\n // Create close popup button.\n const closeButton = createElement('button', { className }, void 0, 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((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 closeButtonEvents() {\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 showPopup(toolbarClass = 'highcharts-annotation-toolbar') {\n const popupDiv = this.container, 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 closePopup() {\n this.container.style.display = 'none';\n }\n}\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const Shared_BaseForm = (BaseForm);\n\n;// ./code/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\nconst { doc: PopupAnnotations_doc, isFirefox } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { createElement: PopupAnnotations_createElement, isArray, isObject, objectEach: PopupAnnotations_objectEach, pick: PopupAnnotations_pick, stableSort } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 const popupDiv = this.container, lang = this.lang;\n // Create title of annotations\n let lhsCol = PopupAnnotations_createElement('h2', {\n className: 'highcharts-popup-main-title'\n }, void 0, 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 const bottomRow = PopupAnnotations_createElement('div', {\n className: 'highcharts-popup-bottom-row'\n }, void 0, 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 const lang = this.lang, popupDiv = this.container, showForm = this.showForm, 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 const label = PopupAnnotations_createElement('p', {\n className: 'highcharts-annotation-label'\n }, void 0, 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 let button = this.addButton(popupDiv, lang.editButton || 'Edit', 'edit', popupDiv, () => {\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} 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 if (!chart) {\n return;\n }\n const addInput = this.addInput, lang = this.lang;\n let parentFullName, titleName;\n PopupAnnotations_objectEach(options, (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, (a) => (a[1].match(/format/g) ? -1 : 1));\n if (isFirefox) {\n storage.reverse(); // (#14691)\n }\n storage.forEach((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 * */\nconst PopupAnnotations = {\n addForm,\n addToolbar\n};\n/* harmony default export */ const Popup_PopupAnnotations = (PopupAnnotations);\n\n;// ./code/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\nconst { doc: PopupIndicators_doc } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { seriesTypes } = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default());\n\nconst { addEvent: PopupIndicators_addEvent, createElement: PopupIndicators_createElement, defined: PopupIndicators_defined, isArray: PopupIndicators_isArray, isObject: PopupIndicators_isObject, objectEach: PopupIndicators_objectEach, stableSort: PopupIndicators_stableSort } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 */\nconst 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}\n * Reference to two HTML columns (lhsCol, rhsCol)\n */\nfunction addColsContainer(container) {\n // Left column\n const lhsCol = PopupIndicators_createElement('div', {\n className: 'highcharts-popup-lhs-col'\n }, void 0, container);\n // Right column\n const rhsCol = PopupIndicators_createElement('div', {\n className: 'highcharts-popup-rhs-col'\n }, void 0, 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 const lang = this.lang;\n let buttonParentDiv;\n if (!chart) {\n return;\n }\n // Add tabs\n this.tabs.init.call(this, chart);\n // Get all tabs content divs\n const 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 const 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 const 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 const 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 let item, 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, (a, b) => {\n const seriesAName = a.indicatorFullName.toLowerCase(), 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 const indicatorList = PopupIndicators_createElement('ul', {\n className: 'highcharts-indicator-list'\n }, void 0, lhsCol);\n const rhsColWrapper = rhsCol.querySelectorAll('.highcharts-popup-rhs-col-wrapper')[0];\n filteredSeriesArray.forEach((seriesSet) => {\n const { indicatorFullName, indicatorType, series } = seriesSet;\n item = PopupIndicators_createElement('li', {\n className: 'highcharts-indicator-list'\n }, void 0, indicatorList);\n const btn = PopupIndicators_createElement('button', {\n className: 'highcharts-indicator-list-item',\n textContent: indicatorFullName\n }, void 0, item);\n ['click', 'touchstart'].forEach((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 const { series, indicatorType } = filteredSeriesArray[0];\n selectIndicator(series, 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} 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 if (!chart) {\n return;\n }\n const addInput = this.addInput;\n PopupIndicators_objectEach(fields, (value, fieldName) => {\n // Create name like params.styles.fontSize\n const 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 const selectBox = addSelection.call(this, type, parentFullName, 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 const 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 const handleInputChange = function (inputText) {\n // Apply some filters.\n addIndicatorList.call(popup, chart, popup.container, 'add', inputText);\n };\n // Add input field with the label and button.\n const 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((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 const 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 const selectBox = PopupIndicators_createElement('select', {\n name: selectName,\n className: 'highcharts-popup-field',\n id: 'highcharts-select-' + optionName\n }, null, 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((series) => {\n const seriesOptions = series.options, 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 const dropdownKey = parameterName + '-' + indicatorType, parameterOption = dropdownParameters[dropdownKey];\n parameterOption.forEach((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} filteredSeriesArray\n * Returns array of filtered series based on filter string.\n */\nfunction filterSeries(series, filter) {\n const popup = this, lang = popup.chart && popup.chart.options.lang, indicatorAliases = lang &&\n lang.navigation &&\n lang.navigation.popup &&\n lang.navigation.popup.indicatorAliases, filteredSeriesArray = [];\n let filteredSeries;\n PopupIndicators_objectEach(series, (series, value) => {\n const seriesOptions = series && series.options;\n // Allow only indicators.\n if (series.params || seriesOptions &&\n seriesOptions.params) {\n const { indicatorFullName, indicatorType } = getNameType(series, value);\n if (filter) {\n // Replace invalid characters.\n const validFilter = filter.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const regex = new RegExp(validFilter, 'i'), alias = indicatorAliases &&\n indicatorAliases[indicatorType] &&\n indicatorAliases[indicatorType].join(' ') || '';\n if (indicatorFullName.match(regex) ||\n alias.match(regex)) {\n filteredSeries = {\n indicatorFullName,\n indicatorType,\n series: series\n };\n filteredSeriesArray.push(filteredSeries);\n }\n }\n else {\n filteredSeries = {\n indicatorFullName,\n 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} filteredSeriesArray\n * Returns array of filtered series based on filter string.\n */\nfunction filterSeriesArray(series) {\n const filteredSeriesArray = [];\n // Allow only indicators.\n series.forEach((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 let counter = 0;\n this.series.forEach((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}\n * Full name and series type.\n */\nfunction getNameType(series, indicatorType) {\n const options = series.options;\n // Add mode\n let seriesName = (seriesTypes[indicatorType] &&\n seriesTypes[indicatorType].prototype.nameBase) ||\n indicatorType.toUpperCase(), 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 const popup = this;\n // Won't work without the chart.\n if (!chart) {\n return;\n }\n // Add selection boxes.\n const selectBox = addSelection.call(popup, indicatorType, optionName, 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 * */\nconst PopupIndicators = {\n addForm: PopupIndicators_addForm,\n getAmount\n};\n/* harmony default export */ const Popup_PopupIndicators = (PopupIndicators);\n\n;// ./code/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\nconst { doc: PopupTabs_doc } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { addEvent: PopupTabs_addEvent, createElement: PopupTabs_createElement } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 const 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 const popupDiv = this.container, lang = this.lang;\n let className = 'highcharts-tab-item';\n if (disableTab === 0) {\n className += ' highcharts-tab-disabled';\n }\n // Tab 1\n const menuItem = PopupTabs_createElement('button', {\n className\n }, void 0, 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 const popupDiv = this.container, tabs = popupDiv\n .querySelectorAll('.highcharts-tab-item'), tabsContent = popupDiv\n .querySelectorAll('.highcharts-tab-item-content');\n for (let 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 const indicatorsCount = this.indicators.getAmount.call(chart);\n // Create menu items\n const firstTab = addMenuItem.call(this, 'add'); // Run by default\n addMenuItem.call(this, 'edit', 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 const 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 const popup = this, popupDiv = this.container, tabs = popupDiv.querySelectorAll('.highcharts-tab-item');\n tabs.forEach((tab, i) => {\n if (disableTab === 0 &&\n tab.getAttribute('highcharts-data-tab-type') === 'edit') {\n return;\n }\n ['click', 'touchstart'].forEach((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 * */\nconst PopupTabs = {\n init\n};\n/* harmony default export */ const Popup_PopupTabs = (PopupTabs);\n\n;// ./code/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\n\n\nconst { doc: Popup_doc } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { getOptions } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\n\n\n\nconst { addEvent: Popup_addEvent, createElement: Popup_createElement, extend: Popup_extend, fireEvent: Popup_fireEvent, pick: Popup_pick } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 const 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 const fieldsOutput = {\n actionType: type,\n linkedTo: linkedTo && linkedTo.getAttribute('value') || '',\n fields: {}\n };\n inputList.forEach((input) => {\n const 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((select) => {\n const 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 const 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 * */\nclass Popup extends Shared_BaseForm {\n /* *\n *\n * Constructor\n *\n * */\n constructor(parentDiv, iconsURL, chart) {\n super(parentDiv, iconsURL);\n this.chart = chart;\n this.lang = (getOptions().lang.navigation || {}).popup || {};\n Popup_addEvent(this.container, 'mousedown', () => {\n const activeAnnotation = chart &&\n chart.navigationBindings &&\n chart.navigationBindings.activeAnnotation;\n if (activeAnnotation) {\n activeAnnotation.cancelClick = true;\n const unbind = Popup_addEvent(Popup_doc, 'click', () => {\n setTimeout(() => {\n activeAnnotation.cancelClick = false;\n }, 0);\n unbind();\n });\n }\n });\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 addInput(option, indicatorType, parentDiv, inputAttributes) {\n const 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 const input = Popup_createElement('input', {\n name: inputName,\n value: inputAttributes.value,\n type: inputAttributes.type,\n className: 'highcharts-popup-field'\n }, void 0, parentDiv);\n input.setAttribute('highcharts-data-name', option);\n return input;\n }\n closeButtonEvents() {\n if (this.chart) {\n const 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.closeButtonEvents();\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 addButton(parentDiv, label, type, fieldsDiv, callback) {\n const button = Popup_createElement('button', void 0, void 0, parentDiv);\n button.appendChild(Popup_doc.createTextNode(label));\n if (callback) {\n ['click', 'touchstart'].forEach((eventName) => {\n Popup_addEvent(button, eventName, () => {\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 showForm(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}\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 */ const Popup_Popup = (Popup);\n\n;// ./code/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\nconst { composed } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\n\nconst { addEvent: PopupComposition_addEvent, pushUnique, wrap: PopupComposition_wrap } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 * */\nconst PopupComposition = {\n compose\n};\n/* harmony default export */ const Popup_PopupComposition = (PopupComposition);\n\n;// ./code/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\n\nconst { getDeferredAnimation } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst { destroyObjectProperties, erase: Annotation_erase, fireEvent: Annotation_fireEvent, merge: Annotation_merge, pick: Annotation_pick, splat } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n * Functions\n *\n * */\n/**\n * Hide or show annotation attached to points.\n * @private\n */\nfunction adjustVisibility(item) {\n const label = item.graphic, hasVisiblePoints = item.points.some((point) => (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 const mergedOptions = {};\n ['labels', 'shapes'].forEach((name) => {\n const someBaseOptions = baseOptions[name], newOptionsValue = newOptions[name];\n if (someBaseOptions) {\n if (newOptionsValue) {\n mergedOptions[name] = splat(newOptionsValue).map((basicOptions, i) => Annotation_merge(someBaseOptions[i], basicOptions));\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 */\nclass Annotation extends Annotations_EventEmitter {\n /* *\n *\n * Static Functions\n *\n * */\n /**\n * @private\n */\n static compose(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 * Constructors\n *\n * */\n constructor(chart, userOptions) {\n super();\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}\n */\n this.points = [];\n /**\n * The array of control points.\n * @private\n * @name Highcharts.Annotation#controlPoints\n * @type {Array}\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}\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}\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 const labelsAndShapes = getLabelsAndShapesOptions(this.options, 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 }\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n addClipPaths() {\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 addLabels() {\n const labelsOptions = (this.options.labels || []);\n labelsOptions.forEach((labelOptions, i) => {\n const label = this.initLabel(labelOptions, i);\n Annotation_merge(true, labelsOptions[i], label.options);\n });\n }\n /**\n * @private\n */\n addShapes() {\n const shapes = this.options.shapes || [];\n shapes.forEach((shapeOptions, i) => {\n const shape = this.initShape(shapeOptions, 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 destroy() {\n const chart = this.chart, 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.destroy();\n this.destroyControlTarget();\n destroyObjectProperties(this, chart);\n }\n /**\n * Destroy a single item.\n * @private\n */\n destroyItem(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 getClipBox() {\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 initProperties(chart, userOptions) {\n this.setOptions(userOptions);\n const labelsAndShapes = getLabelsAndShapesOptions(this.options, 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 init(_annotationOrChart, _userOptions, index = this.index) {\n const chart = this.chart, 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 initLabel(labelOptions, index) {\n const options = Annotation_merge(this.options.labelOptions, {\n controlPointOptions: this.options.controlPointOptions\n }, labelOptions), label = new Controllables_ControllableLabel(this, options, 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 initShape(shapeOptions, index) {\n const options = Annotation_merge(this.options.shapeOptions, {\n controlPointOptions: this.options.controlPointOptions\n }, shapeOptions), shape = new (Annotation.shapesMap[options.type])(this, options, index);\n shape.itemType = 'shape';\n this.shapes.push(shape);\n return shape;\n }\n /**\n * @private\n */\n redraw(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 redrawItem(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 redrawItems(items, animation) {\n let 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 remove() {\n // Let chart.update() remove annotations on demand\n return this.chart.removeAnnotation(this);\n }\n /**\n * @private\n */\n render() {\n const 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 renderItem(item) {\n item.render(item.itemType === 'label' ?\n this.labelsGroup :\n this.shapesGroup);\n }\n /**\n * @private\n */\n renderItems(items) {\n let i = items.length;\n while (i--) {\n this.renderItem(items[i]);\n }\n }\n /**\n * @private\n */\n setClipAxes() {\n const xAxes = this.chart.xAxis, yAxes = this.chart.yAxis, linkedAxes = (this.options.labels || [])\n .concat(this.options.shapes || [])\n .reduce((axes, labelOrShape) => {\n const 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 setControlPointsVisibility(visible) {\n const setItemControlPointsVisibility = function (item) {\n item.setControlPointsVisibility(visible);\n };\n this.controlPoints.forEach((controlPoint) => {\n controlPoint.setVisibility(visible);\n });\n this.shapes.forEach(setItemControlPointsVisibility);\n this.labels.forEach(setItemControlPointsVisibility);\n }\n /**\n * @private\n */\n setLabelCollector() {\n const 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 setOptions(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 setVisibility(visible) {\n const options = this.options, navigation = this.chart.navigationBindings, visibility = Annotation_pick(visible, !options.visible);\n this.graphic.attr('visibility', visibility ? 'inherit' : 'hidden');\n if (!visibility) {\n const 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} userOptions\n * New user options for the annotation.\n *\n */\n update(userOptions, redraw) {\n const chart = this.chart, labelsAndShapes = getLabelsAndShapesOptions(this.userOptions, userOptions), userOptionsIndex = chart.annotations.indexOf(this), options = Annotation_merge(true, this.userOptions, 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 *\n * Static Properties\n *\n * */\n/**\n * @private\n */\nAnnotation.ControlPoint = Annotations_ControlPoint;\n/**\n * @private\n */\nAnnotation.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 */\nAnnotation.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 */\nAnnotation.types = {};\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}\n */\nAnnotation.prototype.nonDOMEvents = ['add', 'afterUpdate', 'drag', 'remove'];\nAnnotations_ControlTarget.compose(Annotation);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const 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/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 class Additions {\n /* *\n *\n * Constructor\n *\n * */\n constructor(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 addUpdate(updateFn) {\n this.chart.navigation.updates.push(updateFn);\n }\n /**\n * @private\n */\n update(options, redraw) {\n this.updates.forEach((updateFn) => {\n updateFn.call(this.chart, options, redraw);\n });\n }\n }\n ChartNavigationComposition.Additions = Additions;\n})(ChartNavigationComposition || (ChartNavigationComposition = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const Chart_ChartNavigationComposition = (ChartNavigationComposition);\n\n;// ./code/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\nconst { defined: NavigationBindingsUtilities_defined, isNumber: NavigationBindingsUtilities_isNumber, pick: NavigationBindingsUtilities_pick } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\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 */\nconst 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} 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((coord) => {\n const extremes = coord.axis.getExtremes(), axisMin = extremes.min, 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 const predefinedType = annotationsFieldsTypes[key];\n let 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 * */\nconst NavigationBindingUtilities = {\n annotationsFieldsTypes,\n getAssignedAxis,\n getFieldType\n};\n/* harmony default export */ const NavigationBindingsUtilities = (NavigationBindingUtilities);\n\n;// ./code/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\nconst { getAssignedAxis: NavigationBindingsDefaults_getAssignedAxis } = NavigationBindingsUtilities;\n\nconst { isNumber: NavigationBindingsDefaults_isNumber, merge: NavigationBindingsDefaults_merge } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n * Constants\n *\n * */\n/**\n * @optionparent lang\n */\nconst 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 */\nconst 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|*}\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 const coords = this.chart.pointer?.getCoordinates(e), coordsX = coords && NavigationBindingsDefaults_getAssignedAxis(coords.xAxis), coordsY = coords && NavigationBindingsDefaults_getAssignedAxis(coords.yAxis), 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 const shapes = annotation.options.shapes, mockPointOpts = ((shapes && shapes[0] && shapes[0].point) ||\n {});\n let distance;\n if (NavigationBindingsDefaults_isNumber(mockPointOpts.xAxis) &&\n NavigationBindingsDefaults_isNumber(mockPointOpts.yAxis)) {\n const inverted = this.chart.inverted, x = this.chart.xAxis[mockPointOpts.xAxis]\n .toPixels(mockPointOpts.x), 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 const coords = this.chart.pointer?.getCoordinates(e), coordsX = coords && NavigationBindingsDefaults_getAssignedAxis(coords.xAxis), coordsY = coords && NavigationBindingsDefaults_getAssignedAxis(coords.yAxis), 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 const target = annotation.shapes[0], 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 const target = annotation.shapes[0], position = target.getAbsolutePosition(target.points[0]), position2 = target.getAbsolutePosition(target.points[1]), newR = target.getDistanceFromLine(position, position2, e.chartX, e.chartY), yAxis = target.getYAxis(), 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 const coords = this.chart.pointer?.getCoordinates(e), coordsX = coords && NavigationBindingsDefaults_getAssignedAxis(coords.xAxis), coordsY = coords && NavigationBindingsDefaults_getAssignedAxis(coords.yAxis);\n // Exit if clicked out of axes area\n if (!coordsX || !coordsY) {\n return;\n }\n const x = coordsX.value, y = coordsY.value, xAxis = coordsX.axis.index, yAxis = coordsY.axis.index, 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, yAxis, x, y },\n { xAxis, yAxis, x, y },\n { xAxis, yAxis, x, y },\n { xAxis, yAxis, x, 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 const shapes = annotation.options.shapes, points = ((shapes && shapes[0] && shapes[0].points) ||\n []), coords = this.chart.pointer?.getCoordinates(e), coordsX = coords && NavigationBindingsDefaults_getAssignedAxis(coords.xAxis), coordsY = coords && NavigationBindingsDefaults_getAssignedAxis(coords.yAxis);\n if (coordsX && coordsY) {\n const x = coordsX.value, 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 const coords = this.chart.pointer?.getCoordinates(e), coordsX = coords && NavigationBindingsDefaults_getAssignedAxis(coords.xAxis), coordsY = coords && NavigationBindingsDefaults_getAssignedAxis(coords.yAxis), 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 * */\nconst NavigationBindingDefaults = {\n lang,\n navigation\n};\n/* harmony default export */ const NavigationBindingsDefaults = (NavigationBindingDefaults);\n\n;// ./code/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\nconst { setOptions } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\nconst { format: NavigationBindings_format } = (highcharts_Templating_commonjs_highcharts_Templating_commonjs2_highcharts_Templating_root_Highcharts_Templating_default());\n\nconst { composed: NavigationBindings_composed, doc: NavigationBindings_doc, win } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n\n\nconst { getAssignedAxis: NavigationBindings_getAssignedAxis, getFieldType: NavigationBindings_getFieldType } = NavigationBindingsUtilities;\n\nconst { addEvent: NavigationBindings_addEvent, attr, defined: NavigationBindings_defined, fireEvent: NavigationBindings_fireEvent, isArray: NavigationBindings_isArray, isFunction, isNumber: NavigationBindings_isNumber, isObject: NavigationBindings_isObject, merge: NavigationBindings_merge, objectEach: NavigationBindings_objectEach, pick: NavigationBindings_pick, pushUnique: NavigationBindings_pushUnique } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\n/* *\n *\n * Functions\n *\n * */\n/**\n * IE 9-11 polyfill for Element.closest():\n * @private\n */\nfunction closestPolyfill(el, s) {\n const ElementProto = win.Element.prototype, elementMatches = ElementProto.matches ||\n ElementProto.msMatchesSelector ||\n ElementProto.webkitMatchesSelector;\n let 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 const 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 const navigationBindings = this.navigationBindings, disabledClassName = 'highcharts-disabled-btn';\n if (this && navigationBindings) {\n // Check if the buttons should be enabled/disabled based on\n // visible series.\n let buttonsEnabled = false;\n this.series.forEach((series) => {\n if (!series.options.isInternal && series.visible) {\n buttonsEnabled = true;\n }\n });\n if (this.navigationBindings &&\n this.navigationBindings.container &&\n this.navigationBindings.container[0]) {\n const container = this.navigationBindings.container[0];\n NavigationBindings_objectEach(navigationBindings.boundClassNames, (value, key) => {\n // Get the HTML element corresponding to the className taken\n // from StockToolsBindings.\n const buttonNode = container.querySelectorAll('.' + key);\n if (buttonNode) {\n for (let i = 0; i < buttonNode.length; i++) {\n const button = buttonNode[i], 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) {\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 const 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 const annotation = this, navigation = annotation.chart.navigationBindings, 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 const config = {};\n navigation.fieldsToOptions(data.fields, config);\n navigation.deselectAnnotation();\n const 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 let touchStartX, 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 const 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 */\nclass NavigationBindings {\n /* *\n *\n * Static Functions\n *\n * */\n static compose(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, (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 * Constructor\n *\n * */\n constructor(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 * Functions\n *\n * */\n getCoords(e) {\n const coords = this.chart.pointer?.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 initEvents() {\n const navigation = this, chart = navigation.chart, bindingsContainer = navigation.container, options = navigation.options;\n // Shorthand object for getting events for buttons:\n navigation.boundClassNames = {};\n NavigationBindings_objectEach((options.bindings || {}), (value) => {\n navigation.boundClassNames[value.className] = value;\n });\n // Handle multiple containers with the same class names:\n [].forEach.call(bindingsContainer, (subContainer) => {\n navigation.eventsToUnbind.push(NavigationBindings_addEvent(subContainer, 'click', (event) => {\n const bindings = navigation.getButtonEvents(subContainer, 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 || {}), (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 initUpdate() {\n const navigation = this;\n Chart_ChartNavigationComposition\n .compose(this.chart).navigation\n .addUpdate((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 bindingsButtonClick(button, events, clickEvent) {\n const navigation = this, chart = navigation.chart, svgContainer = chart.renderer.boxWrapper;\n let 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 bindingsChartClick(chart, clickEvent) {\n chart = this.chart;\n const navigation = this, activeAnnotation = navigation.activeAnnotation, selectedButton = navigation.selectedButton, 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(() => {\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 bindingsContainerMouseMove(_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\n *\n * @param {Highcharts.Dictionary} 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 fieldsToOptions(fields, config) {\n NavigationBindings_objectEach(fields, (value, field) => {\n const parsedValue = parseFloat(value), path = field.split('.'), 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 let parent = config;\n path.forEach((name, index) => {\n if (name !== '__proto__' && name !== 'constructor') {\n const nextName = NavigationBindings_pick(path[index + 1], '');\n if (pathLength === index) {\n // Last index, put value:\n parent[name] = value;\n }\n else if (!parent[name]) {\n // Create middle property:\n parent[name] = nextName.match(/\\d/g) ?\n [] :\n {};\n parent = parent[name];\n }\n else {\n // Jump into next property\n parent = parent[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 deselectAnnotation() {\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}\n * Annotation options to be displayed in popup box\n */\n annotationToFields(annotation) {\n const options = annotation.options, editables = NavigationBindings.annotationsEditable, nestedEditables = editables.nestedOptions, type = NavigationBindings_pick(options.type, options.shapes && options.shapes[0] &&\n options.shapes[0].type, options.labels && options.labels[0] &&\n options.labels[0].type, 'label'), nonEditables = NavigationBindings.annotationsNonEditable[options.langKey] || [], 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 let 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((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, (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, (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, (option, key) => {\n if (key === 'typeOptions') {\n visualOptions[key] = {};\n NavigationBindings_objectEach(options[key], (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>}\n * Array of class names with corresponding elements\n */\n getClickedClassNames(container, event) {\n let element = event.target, classNames = [], 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((name) => ([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 getButtonEvents(container, event) {\n const navigation = this, classNames = this.getClickedClassNames(container, event);\n let bindings;\n classNames.forEach((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 update(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 removeEvents() {\n this.eventsToUnbind.forEach((unbinder) => unbinder());\n }\n /**\n * @private\n * @function Highcharts.NavigationBindings#destroy\n */\n destroy() {\n this.removeEvents();\n }\n}\n/* *\n *\n * Static Properties\n *\n * */\n// Define which options from annotations should show up in edit box:\nNavigationBindings.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\nNavigationBindings.annotationsNonEditable = {\n rectangle: ['crosshairX', 'crosshairY', 'labelOptions'],\n ellipse: ['labelOptions'],\n circle: ['labelOptions']\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ const 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|undefined}\n*/\n(''); // Keeps doclets above in JS file\n\n;// ./code/es-modules/masters/modules/annotations.src.js\n\n\n\n\n\nconst 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 */ const 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","define","amd","amd1","window","__WEBPACK_EXTERNAL_MODULE__944__","__WEBPACK_EXTERNAL_MODULE__512__","__WEBPACK_EXTERNAL_MODULE__984__","__WEBPACK_EXTERNAL_MODULE__660__","AnnotationChart","ControlTarget","DropdownProperties","ChartNavigationComposition","__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","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","Annotations_EventEmitter","addEvents","emitter","addMouseDownEvent","element","e","onMouseDown","passive","useHTML","events","eventHandler","cancelClick","pointer","normalize","target","nonDOMEvents","indexOf","div","draggable","onDrag","styledMode","cssPointer","cursor","y","xy","css","isUpdating","removeDocEvents","hcEvents","mouseMoveToRadians","cx","cy","prevDy","prevChartY","prevDx","prevChartX","dy","chartY","dx","chartX","temp","inverted","atan2","mouseMoveToScale","sx","sy","mouseMoveToTranslation","isInsidePlot","plotLeft","plotTop","visiblePlotOnly","translation","translate","shapes","shape","preventDefault","button","firesTouchEvents","sourceCapabilities","removeDrag","hasDragged","removeMouseUp","onMouseUp","merge","ControlPoint_pick","Annotations_ControlPoint","constructor","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","fromPoint","point","yAxis","pointToPixels","paneCoordinates","plotX","plotY","mock","plotWidth","plotHeight","getPlotBox","translateX","translateY","pointToOptions","applyOptions","getOptions","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","attrsFromOptions","mappedKey","map","attrsMap","attrs","tracker","_parentGroup","className","addClass","setControlPointsVisibility","shouldBeDrawn","translateShape","translateSecondPoint","shapeOptions","annotationIndex","chartOptions","newOptions","parentGroup","Constructor","Controllables_Controllable","defaultMarkers","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_merge","ControllableRect","rect","Boolean","Controllables_ControllablePath","ControllableCircle_merge","ControllableCircle","r","circle","setRadius","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","format","ControllableLabel_extend","getAlignFactor","isNumber","ControllableLabel_pick","symbolConnector","w","h","anchorX","anchorY","yOffset","lateral","ControllableLabel","alignedPosition","alignOptions","round","align","verticalAlign","symbols","connector","justifiedOptions","alignAttr","off","padding","bBox","getBBox","chartAnnotations","getContrast","shapesWithoutBackground","backgroundColor","shadow","labelrank","String","formatter","anchorAbsolutePosition","anchorRelativePosition","itemPosition","alignTo","itemPosRelativeX","itemPosRelativeY","showItem","distance","getPosition","getPlayingField","negative","ttBelow","overflow","crop","borderColor","borderWidth","borderRadius","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","Shared_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","b","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_doc","Popup_addEvent","Popup_createElement","Popup_extend","Popup_fireEvent","Popup_pick","Popup","activeAnnotation","navigationBindings","unbind","setTimeout","inputAttributes","inputName","selectedButtonElement","addButton","fieldsDiv","callback","getFields","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","Popup_PopupComposition","NagivationBindingsClass","getDeferredAnimation","destroyObjectProperties","Annotation_erase","Annotation_fireEvent","Annotation_merge","Annotation_pick","getLabelsAndShapesOptions","baseOptions","mergedOptions","someBaseOptions","newOptionsValue","basicOptions","Annotation","NavigationBindingsClass","defaultOptions","labelsAndShapes","addClipPaths","setClipAxes","clipXAxis","clipYAxis","getClipBox","addLabels","labelsOptions","initLabel","addShapes","initShape","destroyItem","labelCollectors","labelCollector","left","initProperties","setOptions","_annotationOrChart","_userOptions","animOptions","setLabelCollector","shapesMap","redrawItems","redrawItem","renderItem","adjustVisibility","hasVisiblePoints","visibility","show","hide","items","shapesGroup","labelsGroup","renderItems","xAxes","yAxes","linkedAxes","concat","reduce","axes","labelOrShape","setItemControlPointsVisibility","allowOverlap","userOptionsIndex","ControlPoint","fontSize","fontWeight","Additions","updates","addUpdate","updateFn","Chart_ChartNavigationComposition","NavigationBindingsUtilities_defined","NavigationBindingsUtilities_isNumber","NavigationBindingsUtilities_pick","annotationsFieldsTypes","title","NavigationBindingsUtilities","getAssignedAxis","coords","coord","extremes","axis","getExtremes","axisMin","min","axisMax","minPointOffset","isInternal","getFieldType","predefinedType","fieldType","NavigationBindingsDefaults_getAssignedAxis","NavigationBindingsDefaults_isNumber","NavigationBindingsDefaults_merge","NavigationBindingsDefaults","simpleShapes","lines","ellipse","rectangle","typeOptions","backgroundColors","bindingsClassName","bindings","circleAnnotation","start","getCoordinates","coordsX","coordsY","annotationsOptions","steps","mockPointOpts","pow","ellipseAnnotation","newR","newRY","rectangleAnnotation","labelAnnotation","defer","NavigationBindings_format","NavigationBindings_composed","NavigationBindings_doc","win","NavigationBindings_getAssignedAxis","NavigationBindings_getFieldType","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","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","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","nextName","editables","annotationsEditable","nestedEditables","nestedOptions","nonEditables","annotationsNonEditable","visualOptions","traverse","parentEditables","parentKey","nextParent","arrayOption","nestedOption","nestedKey","toString","typeOption","typeKey","getClickedClassNames","classNames","elemClassName","removeEvents","unbinder","background","innerBackground","outerBackground","line","verticalLine","measure","fibonacci","tunnel","pitchfork","crookedLine","basicAnnotation","G","Chart","Pointer","SVGRenderer"],"mappings":"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"}