Hacked By AnonymousFox
{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highcharts JS v12.1.2 (2025-01-09)\n * @module highcharts/modules/navigator\n * @requires highcharts\n *\n * Standalone navigator module\n *\n * (c) 2009-2024 Mateusz Bernacik\n *\n * License: www.highcharts.com/license\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"highcharts\"), require(\"highcharts\")[\"Chart\"], require(\"highcharts\")[\"Axis\"], require(\"highcharts\")[\"Color\"], require(\"highcharts\")[\"SeriesRegistry\"], require(\"highcharts\")[\"RendererRegistry\"], require(\"highcharts\")[\"SVGRenderer\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/modules/navigator\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"Chart\"], [\"highcharts/highcharts\",\"Axis\"], [\"highcharts/highcharts\",\"Color\"], [\"highcharts/highcharts\",\"SeriesRegistry\"], [\"highcharts/highcharts\",\"RendererRegistry\"], [\"highcharts/highcharts\",\"SVGRenderer\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/modules/navigator\"] = factory(require(\"highcharts\"), require(\"highcharts\")[\"Chart\"], require(\"highcharts\")[\"Axis\"], require(\"highcharts\")[\"Color\"], require(\"highcharts\")[\"SeriesRegistry\"], require(\"highcharts\")[\"RendererRegistry\"], require(\"highcharts\")[\"SVGRenderer\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"Chart\"], root[\"Highcharts\"][\"Axis\"], root[\"Highcharts\"][\"Color\"], root[\"Highcharts\"][\"SeriesRegistry\"], root[\"Highcharts\"][\"RendererRegistry\"], root[\"Highcharts\"][\"SVGRenderer\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__960__, __WEBPACK_EXTERNAL_MODULE__532__, __WEBPACK_EXTERNAL_MODULE__620__, __WEBPACK_EXTERNAL_MODULE__512__, __WEBPACK_EXTERNAL_MODULE__608__, __WEBPACK_EXTERNAL_MODULE__540__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 532:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__532__;\n\n/***/ }),\n\n/***/ 960:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__960__;\n\n/***/ }),\n\n/***/ 620:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__620__;\n\n/***/ }),\n\n/***/ 608:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__608__;\n\n/***/ }),\n\n/***/ 540:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__540__;\n\n/***/ }),\n\n/***/ 512:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__512__;\n\n/***/ }),\n\n/***/ 944:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__944__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ navigator_src; }\n});\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\"],\"commonjs\":[\"highcharts\"],\"commonjs2\":[\"highcharts\"],\"root\":[\"Highcharts\"]}\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_ = __webpack_require__(944);\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default = /*#__PURE__*/__webpack_require__.n(highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_);\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Chart\"],\"commonjs\":[\"highcharts\",\"Chart\"],\"commonjs2\":[\"highcharts\",\"Chart\"],\"root\":[\"Highcharts\",\"Chart\"]}\nvar highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_ = __webpack_require__(960);\nvar highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default = /*#__PURE__*/__webpack_require__.n(highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_);\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Axis\"],\"commonjs\":[\"highcharts\",\"Axis\"],\"commonjs2\":[\"highcharts\",\"Axis\"],\"root\":[\"Highcharts\",\"Axis\"]}\nvar highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_ = __webpack_require__(532);\nvar highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_default = /*#__PURE__*/__webpack_require__.n(highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_);\n;// ./code/es5/es-modules/Stock/Navigator/ChartNavigatorComposition.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar isTouchDevice = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isTouchDevice;\n\nvar addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Constants\n *\n * */\nvar composedMembers = [];\n/* *\n *\n * Variables\n *\n * */\nvar NavigatorConstructor;\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction compose(ChartClass, NavigatorClass) {\n if (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().pushUnique(composedMembers, ChartClass)) {\n var chartProto = ChartClass.prototype;\n NavigatorConstructor = NavigatorClass;\n chartProto.callbacks.push(onChartCallback);\n addEvent(ChartClass, 'afterAddSeries', onChartAfterAddSeries);\n addEvent(ChartClass, 'afterSetChartSize', onChartAfterSetChartSize);\n addEvent(ChartClass, 'afterUpdate', onChartAfterUpdate);\n addEvent(ChartClass, 'beforeRender', onChartBeforeRender);\n addEvent(ChartClass, 'beforeShowResetZoom', onChartBeforeShowResetZoom);\n addEvent(ChartClass, 'update', onChartUpdate);\n }\n}\n/**\n * Handle adding new series.\n * @private\n */\nfunction onChartAfterAddSeries() {\n if (this.navigator) {\n // Recompute which series should be shown in navigator, and add them\n this.navigator.setBaseSeries(null, false);\n }\n}\n/**\n * For stock charts, extend the Chart.setChartSize method so that we can set the\n * final top position of the navigator once the height of the chart, including\n * the legend, is determined. #367. We can't use Chart.getMargins, because\n * labels offsets are not calculated yet.\n * @private\n */\nfunction onChartAfterSetChartSize() {\n var _a;\n var legend = this.legend,\n navigator = this.navigator;\n var legendOptions,\n xAxis,\n yAxis;\n if (navigator) {\n legendOptions = legend && legend.options;\n xAxis = navigator.xAxis;\n yAxis = navigator.yAxis;\n var scrollbarHeight = navigator.scrollbarHeight,\n scrollButtonSize = navigator.scrollButtonSize;\n // Compute the top position\n if (this.inverted) {\n navigator.left = navigator.opposite ?\n this.chartWidth - scrollbarHeight -\n navigator.height :\n this.spacing[3] + scrollbarHeight;\n navigator.top = this.plotTop + scrollButtonSize;\n }\n else {\n navigator.left = pick(xAxis.left, this.plotLeft + scrollButtonSize);\n navigator.top = navigator.navigatorOptions.top ||\n this.chartHeight -\n navigator.height -\n scrollbarHeight -\n (((_a = this.scrollbar) === null || _a === void 0 ? void 0 : _a.options.margin) || 0) -\n this.spacing[2] -\n (this.rangeSelector && this.extraBottomMargin ?\n this.rangeSelector.getHeight() :\n 0) -\n ((legendOptions &&\n legendOptions.verticalAlign === 'bottom' &&\n legendOptions.layout !== 'proximate' && // #13392\n legendOptions.enabled &&\n !legendOptions.floating) ?\n legend.legendHeight +\n pick(legendOptions.margin, 10) :\n 0) -\n (this.titleOffset ? this.titleOffset[2] : 0);\n }\n if (xAxis && yAxis) { // False if navigator is disabled (#904)\n if (this.inverted) {\n xAxis.options.left = yAxis.options.left = navigator.left;\n }\n else {\n xAxis.options.top = yAxis.options.top = navigator.top;\n }\n xAxis.setAxisSize();\n yAxis.setAxisSize();\n }\n }\n}\n/**\n * Initialize navigator, if no scrolling exists yet.\n * @private\n */\nfunction onChartAfterUpdate(event) {\n if (!this.navigator && !this.scroller &&\n (this.options.navigator.enabled ||\n this.options.scrollbar.enabled)) {\n this.scroller = this.navigator = new NavigatorConstructor(this);\n if (pick(event.redraw, true)) {\n this.redraw(event.animation); // #7067\n }\n }\n}\n/**\n * Initialize navigator for stock charts\n * @private\n */\nfunction onChartBeforeRender() {\n var options = this.options;\n if (options.navigator.enabled ||\n options.scrollbar.enabled) {\n this.scroller = this.navigator = new NavigatorConstructor(this);\n }\n}\n/**\n * For Stock charts. For x only zooming, do not to create the zoom button\n * because X axis zooming is already allowed by the Navigator and Range\n * selector. (#9285)\n * @private\n */\nfunction onChartBeforeShowResetZoom() {\n var chartOptions = this.options,\n navigator = chartOptions.navigator,\n rangeSelector = chartOptions.rangeSelector;\n if (((navigator && navigator.enabled) ||\n (rangeSelector && rangeSelector.enabled)) &&\n ((!isTouchDevice &&\n this.zooming.type === 'x') ||\n (isTouchDevice && this.zooming.pinchType === 'x'))) {\n return false;\n }\n}\n/**\n * @private\n */\nfunction onChartCallback(chart) {\n var navigator = chart.navigator;\n // Initialize the navigator\n if (navigator && chart.xAxis[0]) {\n var extremes = chart.xAxis[0].getExtremes();\n navigator.render(extremes.min, extremes.max);\n }\n}\n/**\n * Merge options, if no scrolling exists yet\n * @private\n */\nfunction onChartUpdate(e) {\n var navigatorOptions = (e.options.navigator || {}),\n scrollbarOptions = (e.options.scrollbar || {});\n if (!this.navigator && !this.scroller &&\n (navigatorOptions.enabled || scrollbarOptions.enabled)) {\n merge(true, this.options.navigator, navigatorOptions);\n merge(true, this.options.scrollbar, scrollbarOptions);\n delete e.options.navigator;\n delete e.options.scrollbar;\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar ChartNavigatorComposition = {\n compose: compose\n};\n/* harmony default export */ var Navigator_ChartNavigatorComposition = (ChartNavigatorComposition);\n\n;// ./code/es5/es-modules/Core/Axis/NavigatorAxisComposition.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar NavigatorAxisComposition_isTouchDevice = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isTouchDevice;\n\nvar NavigatorAxisComposition_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, NavigatorAxisComposition_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction onAxisInit() {\n var axis = this;\n if (!axis.navigatorAxis) {\n axis.navigatorAxis = new NavigatorAxisAdditions(axis);\n }\n}\n/**\n * For Stock charts, override selection zooming with some special features\n * because X axis zooming is already allowed by the Navigator and Range\n * selector.\n * @private\n */\nfunction onAxisSetExtremes(e) {\n var axis = this,\n chart = axis.chart,\n chartOptions = chart.options,\n navigator = chartOptions.navigator,\n navigatorAxis = axis.navigatorAxis,\n pinchType = chart.zooming.pinchType,\n rangeSelector = chartOptions.rangeSelector,\n zoomType = chart.zooming.type;\n var zoomed;\n if (axis.isXAxis &&\n ((navigator === null || navigator === void 0 ? void 0 : navigator.enabled) || (rangeSelector === null || rangeSelector === void 0 ? void 0 : rangeSelector.enabled))) {\n // For y only zooming, ignore the X axis completely\n if (zoomType === 'y' && e.trigger === 'zoom') {\n zoomed = false;\n // For xy zooming, record the state of the zoom before zoom selection,\n // then when the reset button is pressed, revert to this state. This\n // should apply only if the chart is initialized with a range (#6612),\n // otherwise zoom all the way out.\n }\n else if (((e.trigger === 'zoom' && zoomType === 'xy') ||\n (NavigatorAxisComposition_isTouchDevice && pinchType === 'xy')) &&\n axis.options.range) {\n var previousZoom = navigatorAxis.previousZoom;\n // Minimum defined, zooming in\n if (defined(e.min)) {\n navigatorAxis.previousZoom = [axis.min, axis.max];\n // Minimum undefined, resetting zoom\n }\n else if (previousZoom) {\n e.min = previousZoom[0];\n e.max = previousZoom[1];\n navigatorAxis.previousZoom = void 0;\n }\n }\n }\n if (typeof zoomed !== 'undefined') {\n e.preventDefault();\n }\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * @private\n * @class\n */\nvar NavigatorAxisAdditions = /** @class */ (function () {\n /* *\n *\n * Constructors\n *\n * */\n function NavigatorAxisAdditions(axis) {\n this.axis = axis;\n }\n /* *\n *\n * Static Functions\n *\n * */\n /**\n * @private\n */\n NavigatorAxisAdditions.compose = function (AxisClass) {\n if (!AxisClass.keepProps.includes('navigatorAxis')) {\n AxisClass.keepProps.push('navigatorAxis');\n NavigatorAxisComposition_addEvent(AxisClass, 'init', onAxisInit);\n NavigatorAxisComposition_addEvent(AxisClass, 'setExtremes', onAxisSetExtremes);\n }\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n NavigatorAxisAdditions.prototype.destroy = function () {\n this.axis = void 0;\n };\n /**\n * Add logic to normalize the zoomed range in order to preserve the pressed\n * state of range selector buttons\n *\n * @private\n * @function Highcharts.Axis#toFixedRange\n */\n NavigatorAxisAdditions.prototype.toFixedRange = function (pxMin, pxMax, fixedMin, fixedMax) {\n var axis = this.axis,\n halfPointRange = (axis.pointRange || 0) / 2;\n var newMin = NavigatorAxisComposition_pick(fixedMin,\n axis.translate(pxMin,\n true, !axis.horiz)),\n newMax = NavigatorAxisComposition_pick(fixedMax,\n axis.translate(pxMax,\n true, !axis.horiz));\n // Add/remove half point range to/from the extremes (#1172)\n if (!defined(fixedMin)) {\n newMin = correctFloat(newMin + halfPointRange);\n }\n if (!defined(fixedMax)) {\n newMax = correctFloat(newMax - halfPointRange);\n }\n if (!isNumber(newMin) || !isNumber(newMax)) { // #1195, #7411\n newMin = newMax = void 0;\n }\n return {\n min: newMin,\n max: newMax\n };\n };\n return NavigatorAxisAdditions;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var NavigatorAxisComposition = (NavigatorAxisAdditions);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"Color\"],\"commonjs\":[\"highcharts\",\"Color\"],\"commonjs2\":[\"highcharts\",\"Color\"],\"root\":[\"Highcharts\",\"Color\"]}\nvar highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_ = __webpack_require__(620);\nvar highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default = /*#__PURE__*/__webpack_require__.n(highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_);\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"SeriesRegistry\"],\"commonjs\":[\"highcharts\",\"SeriesRegistry\"],\"commonjs2\":[\"highcharts\",\"SeriesRegistry\"],\"root\":[\"Highcharts\",\"SeriesRegistry\"]}\nvar highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_ = __webpack_require__(512);\nvar highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default = /*#__PURE__*/__webpack_require__.n(highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_);\n;// ./code/es5/es-modules/Stock/Navigator/NavigatorDefaults.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar color = (highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default()).parse;\n\nvar seriesTypes = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes;\n/* *\n *\n * Constants\n *\n * */\n/**\n * The navigator is a small series below the main series, displaying\n * a view of the entire data set. It provides tools to zoom in and\n * out on parts of the data as well as panning across the dataset.\n *\n * @product highstock gantt\n * @optionparent navigator\n */\nvar NavigatorDefaults = {\n /**\n * Whether the navigator and scrollbar should adapt to updated data\n * in the base X axis. When loading data async, as in the demo below,\n * this should be `false`. Otherwise new data will trigger navigator\n * redraw, which will cause unwanted looping. In the demo below, the\n * data in the navigator is set only once. On navigating, only the main\n * chart content is updated.\n *\n * @sample {highstock} stock/demo/lazy-loading/\n * Set to false with async data loading\n *\n * @type {boolean}\n * @default true\n * @apioption navigator.adaptToUpdatedData\n */\n /**\n * An integer identifying the index to use for the base series, or a\n * string representing the id of the series.\n *\n * **Note**: As of Highcharts 5.0, this is now a deprecated option.\n * Prefer [series.showInNavigator](#plotOptions.series.showInNavigator).\n *\n * @see [series.showInNavigator](#plotOptions.series.showInNavigator)\n *\n * @deprecated\n * @type {number|string}\n * @default 0\n * @apioption navigator.baseSeries\n */\n /**\n * Enable or disable the navigator.\n *\n * @sample {highstock} stock/navigator/enabled/\n * Disable the navigator\n *\n * @type {boolean}\n * @default true\n * @apioption navigator.enabled\n */\n /**\n * When the chart is inverted, whether to draw the navigator on the\n * opposite side.\n *\n * @type {boolean}\n * @default false\n * @since 5.0.8\n * @apioption navigator.opposite\n */\n /**\n * The height of the navigator.\n *\n * @sample {highstock} stock/navigator/height/\n * A higher navigator\n */\n height: 40,\n /**\n * The distance from the nearest element, the X axis or X axis labels.\n *\n * @sample {highstock} stock/navigator/margin/\n * A margin of 2 draws the navigator closer to the X axis labels\n */\n margin: 25,\n /**\n * Whether the mask should be inside the range marking the zoomed\n * range, or outside. In Highcharts Stock 1.x it was always `false`.\n *\n * @sample {highstock} stock/demo/maskinside-false/\n * False, mask outside\n *\n * @since 2.0\n */\n maskInside: true,\n /**\n * Options for the handles for dragging the zoomed area.\n *\n * @sample {highstock} stock/navigator/handles/\n * Colored handles\n */\n handles: {\n /**\n * Width for handles.\n *\n * @sample {highstock} stock/navigator/styled-handles/\n * Styled handles\n *\n * @since 6.0.0\n */\n width: 7,\n /**\n * Border radius of the handles.\n *\n * @sample {highstock} stock/navigator/handles-border-radius/\n * Border radius on the navigator handles.\n *\n * @since 11.4.2\n */\n borderRadius: 0,\n /**\n * Height for handles.\n *\n * @sample {highstock} stock/navigator/styled-handles/\n * Styled handles\n *\n * @since 6.0.0\n */\n height: 15,\n /**\n * Array to define shapes of handles. 0-index for left, 1-index for\n * right.\n *\n * Additionally, the URL to a graphic can be given on this form:\n * `url(graphic.png)`. Note that for the image to be applied to\n * exported charts, its URL needs to be accessible by the export\n * server.\n *\n * Custom callbacks for symbol path generation can also be added to\n * `Highcharts.SVGRenderer.prototype.symbols`. The callback is then\n * used by its method name, as shown in the demo.\n *\n * @sample {highstock} stock/navigator/styled-handles/\n * Styled handles\n *\n * @type {Array<string>}\n * @default [\"navigator-handle\", \"navigator-handle\"]\n * @since 6.0.0\n */\n symbols: ['navigator-handle', 'navigator-handle'],\n /**\n * Allows to enable/disable handles.\n *\n * @since 6.0.0\n */\n enabled: true,\n /**\n * The width for the handle border and the stripes inside.\n *\n * @sample {highstock} stock/navigator/styled-handles/\n * Styled handles\n *\n * @since 6.0.0\n * @apioption navigator.handles.lineWidth\n */\n lineWidth: 1,\n /**\n * The fill for the handle.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n backgroundColor: \"#f2f2f2\" /* Palette.neutralColor5 */,\n /**\n * The stroke for the handle border and the stripes inside.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n borderColor: \"#999999\" /* Palette.neutralColor40 */\n },\n /**\n * The color of the mask covering the areas of the navigator series\n * that are currently not visible in the main series. The default\n * color is bluish with an opacity of 0.3 to see the series below.\n *\n * @see In styled mode, the mask is styled with the\n * `.highcharts-navigator-mask` and\n * `.highcharts-navigator-mask-inside` classes.\n *\n * @sample {highstock} stock/navigator/maskfill/\n * Blue, semi transparent mask\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @default rgba(102,133,194,0.3)\n */\n maskFill: color(\"#667aff\" /* Palette.highlightColor60 */).setOpacity(0.3).get(),\n /**\n * The color of the line marking the currently zoomed area in the\n * navigator.\n *\n * @sample {highstock} stock/navigator/outline/\n * 2px blue outline\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @default #cccccc\n */\n outlineColor: \"#999999\" /* Palette.neutralColor40 */,\n /**\n * The width of the line marking the currently zoomed area in the\n * navigator.\n *\n * @see In styled mode, the outline stroke width is set with the\n * `.highcharts-navigator-outline` class.\n *\n * @sample {highstock} stock/navigator/outline/\n * 2px blue outline\n *\n * @type {number}\n */\n outlineWidth: 1,\n /**\n * Options for the navigator series. Available options are the same\n * as any series, documented at [plotOptions](#plotOptions.series)\n * and [series](#series).\n *\n * Unless data is explicitly defined on navigator.series, the data\n * is borrowed from the first series in the chart.\n *\n * Default series options for the navigator series are:\n * ```js\n * series: {\n * type: 'areaspline',\n * fillOpacity: 0.05,\n * dataGrouping: {\n * smoothed: true\n * },\n * lineWidth: 1,\n * marker: {\n * enabled: false\n * }\n * }\n * ```\n *\n * @see In styled mode, the navigator series is styled with the\n * `.highcharts-navigator-series` class.\n *\n * @sample {highstock} stock/navigator/series-data/\n * Using a separate data set for the navigator\n * @sample {highstock} stock/navigator/series/\n * A green navigator series\n *\n * @type {*|Array<*>|Highcharts.SeriesOptionsType|Array<Highcharts.SeriesOptionsType>}\n */\n series: {\n /**\n * The type of the navigator series.\n *\n * Heads up:\n * In column-type navigator, zooming is limited to at least one\n * point with its `pointRange`.\n *\n * @sample {highstock} stock/navigator/column/\n * Column type navigator\n *\n * @type {string}\n * @default {highstock} `areaspline` if defined, otherwise `line`\n * @default {gantt} gantt\n */\n type: (typeof seriesTypes.areaspline === 'undefined' ?\n 'line' :\n 'areaspline'),\n /**\n * The fill opacity of the navigator series.\n */\n fillOpacity: 0.05,\n /**\n * The pixel line width of the navigator series.\n */\n lineWidth: 1,\n /**\n * @ignore-option\n */\n compare: null,\n /**\n * @ignore-option\n */\n sonification: {\n enabled: false\n },\n /**\n * Unless data is explicitly defined, the data is borrowed from the\n * first series in the chart.\n *\n * @type {Array<number|Array<number|string|null>|object|null>}\n * @product highstock\n * @apioption navigator.series.data\n */\n /**\n * Data grouping options for the navigator series.\n *\n * @extends plotOptions.series.dataGrouping\n */\n dataGrouping: {\n approximation: 'average',\n enabled: true,\n groupPixelWidth: 2,\n // Replace smoothed property by anchors, #12455.\n firstAnchor: 'firstPoint',\n anchor: 'middle',\n lastAnchor: 'lastPoint',\n // Day and week differs from plotOptions.series.dataGrouping\n units: [\n ['millisecond', [1, 2, 5, 10, 20, 25, 50, 100, 200, 500]],\n ['second', [1, 2, 5, 10, 15, 30]],\n ['minute', [1, 2, 5, 10, 15, 30]],\n ['hour', [1, 2, 3, 4, 6, 8, 12]],\n ['day', [1, 2, 3, 4]],\n ['week', [1, 2, 3]],\n ['month', [1, 3, 6]],\n ['year', null]\n ]\n },\n /**\n * Data label options for the navigator series. Data labels are\n * disabled by default on the navigator series.\n *\n * @extends plotOptions.series.dataLabels\n */\n dataLabels: {\n enabled: false,\n zIndex: 2 // #1839\n },\n id: 'highcharts-navigator-series',\n className: 'highcharts-navigator-series',\n /**\n * Sets the fill color of the navigator series.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @apioption navigator.series.color\n */\n /**\n * Line color for the navigator series. Allows setting the color\n * while disallowing the default candlestick setting.\n *\n * @type {Highcharts.ColorString|null}\n */\n lineColor: null, // #4602\n marker: {\n enabled: false\n },\n /**\n * Since Highcharts Stock v8, default value is the same as default\n * `pointRange` defined for a specific type (e.g. `null` for\n * column type).\n *\n * In Highcharts Stock version < 8, defaults to 0.\n *\n * @extends plotOptions.series.pointRange\n * @type {number|null}\n * @apioption navigator.series.pointRange\n */\n /**\n * The threshold option. Setting it to 0 will make the default\n * navigator area series draw its area from the 0 value and up.\n *\n * @type {number|null}\n */\n threshold: null\n },\n /**\n * Enable or disable navigator sticking to right, while adding new\n * points. If `undefined`, the navigator sticks to the axis maximum only\n * if it was already at the maximum prior to adding points.\n *\n * @type {boolean}\n * @default undefined\n * @since 10.2.1\n * @sample {highstock} stock/navigator/sticktomax-false/\n * stickToMax set to false\n * @apioption navigator.stickToMax\n */\n /**\n * Options for the navigator X axis. Default series options for the\n * navigator xAxis are:\n * ```js\n * xAxis: {\n * tickWidth: 0,\n * lineWidth: 0,\n * gridLineWidth: 1,\n * tickPixelInterval: 200,\n * labels: {\n * align: 'left',\n * style: {\n * color: '#888'\n * },\n * x: 3,\n * y: -4\n * }\n * }\n * ```\n *\n * @extends xAxis\n * @excluding linkedTo, maxZoom, minRange, opposite, range, scrollbar,\n * showEmpty, maxRange\n */\n xAxis: {\n /**\n * Additional range on the right side of the xAxis. Works similar to\n * `xAxis.maxPadding`, but the value is set in terms of axis values,\n * percentage or pixels.\n *\n * If it's a number, it is interpreted as axis values, which in a\n * datetime axis equals milliseconds.\n *\n * If it's a percentage string, is interpreted as percentages of the\n * axis length. An overscroll of 50% will make a 100px axis 50px longer.\n *\n * If it's a pixel string, it is interpreted as a fixed pixel value, but\n * limited to 90% of the axis length.\n *\n * If it's undefined, the value is inherited from `xAxis.overscroll`.\n *\n * Can be set for both, main xAxis and navigator's xAxis.\n *\n * @type {number | string | undefined}\n * @since 6.0.0\n * @apioption navigator.xAxis.overscroll\n */\n className: 'highcharts-navigator-xaxis',\n tickLength: 0,\n lineWidth: 0,\n gridLineColor: \"#e6e6e6\" /* Palette.neutralColor10 */,\n id: 'navigator-x-axis',\n gridLineWidth: 1,\n tickPixelInterval: 200,\n labels: {\n align: 'left',\n /**\n * @type {Highcharts.CSSObject}\n */\n style: {\n /** @ignore */\n color: \"#000000\" /* Palette.neutralColor100 */,\n /** @ignore */\n fontSize: '0.7em',\n /** @ignore */\n opacity: 0.6,\n /** @ignore */\n textOutline: '2px contrast'\n },\n x: 3,\n y: -4\n },\n crosshair: false\n },\n /**\n * Options for the navigator Y axis. Default series options for the\n * navigator yAxis are:\n * ```js\n * yAxis: {\n * gridLineWidth: 0,\n * startOnTick: false,\n * endOnTick: false,\n * minPadding: 0.1,\n * maxPadding: 0.1,\n * labels: {\n * enabled: false\n * },\n * title: {\n * text: null\n * },\n * tickWidth: 0\n * }\n * ```\n *\n * @extends yAxis\n * @excluding height, linkedTo, maxZoom, minRange, ordinal, range,\n * showEmpty, scrollbar, top, units, maxRange, minLength,\n * maxLength, resize\n */\n yAxis: {\n className: 'highcharts-navigator-yaxis',\n gridLineWidth: 0,\n startOnTick: false,\n endOnTick: false,\n minPadding: 0.1,\n id: 'navigator-y-axis',\n maxPadding: 0.1,\n labels: {\n enabled: false\n },\n crosshair: false,\n title: {\n text: null\n },\n tickLength: 0,\n tickWidth: 0\n }\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Navigator_NavigatorDefaults = (NavigatorDefaults);\n/* *\n *\n * API Options\n *\n * */\n/**\n * Maximum range which can be set using the navigator's handles.\n * Opposite of [xAxis.minRange](#xAxis.minRange).\n *\n * @sample {highstock} stock/navigator/maxrange/\n * Defined max and min range\n *\n * @type {number}\n * @since 6.0.0\n * @product highstock gantt\n * @apioption xAxis.maxRange\n */\n(''); // Keeps doclets above in JS file\n\n;// ./code/es5/es-modules/Core/Renderer/SVG/Symbols.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar Symbols_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, Symbols_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, Symbols_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Functions\n *\n * */\n/* eslint-disable require-jsdoc, valid-jsdoc */\n/**\n *\n */\nfunction arc(cx, cy, w, h, options) {\n var arc = [];\n if (options) {\n var start = options.start || 0,\n rx = Symbols_pick(options.r,\n w),\n ry = Symbols_pick(options.r,\n h || w), \n // Subtract a small number to prevent cos and sin of start and end\n // from becoming equal on 360 arcs (#1561). The size of the circle\n // affects the constant, therefore the division by `rx`. If the\n // proximity is too small, the arc disappears. If it is too great, a\n // gap appears. This can be seen in the animation of the official\n // bubble demo (#20586).\n proximity = 0.0002 / (options.borderRadius ? 1 : Math.max(rx, 1)),\n fullCircle = (Math.abs((options.end || 0) - start - 2 * Math.PI) <\n proximity),\n end = (options.end || 0) - (fullCircle ? proximity : 0),\n innerRadius = options.innerR,\n open_1 = Symbols_pick(options.open,\n fullCircle),\n cosStart = Math.cos(start),\n sinStart = Math.sin(start),\n cosEnd = Math.cos(end),\n sinEnd = Math.sin(end), \n // Proximity takes care of rounding errors around PI (#6971)\n longArc = Symbols_pick(options.longArc,\n end - start - Math.PI < proximity ? 0 : 1);\n var arcSegment = [\n 'A', // ArcTo\n rx, // X radius\n ry, // Y radius\n 0, // Slanting\n longArc, // Long or short arc\n Symbols_pick(options.clockwise, 1), // Clockwise\n cx + rx * cosEnd,\n cy + ry * sinEnd\n ];\n arcSegment.params = { start: start, end: end, cx: cx, cy: cy }; // Memo for border radius\n arc.push([\n 'M',\n cx + rx * cosStart,\n cy + ry * sinStart\n ], arcSegment);\n if (Symbols_defined(innerRadius)) {\n arcSegment = [\n 'A', // ArcTo\n innerRadius, // X radius\n innerRadius, // Y radius\n 0, // Slanting\n longArc, // Long or short arc\n // Clockwise - opposite to the outer arc clockwise\n Symbols_defined(options.clockwise) ? 1 - options.clockwise : 0,\n cx + innerRadius * cosStart,\n cy + innerRadius * sinStart\n ];\n // Memo for border radius\n arcSegment.params = {\n start: end,\n end: start,\n cx: cx,\n cy: cy\n };\n arc.push(open_1 ?\n [\n 'M',\n cx + innerRadius * cosEnd,\n cy + innerRadius * sinEnd\n ] : [\n 'L',\n cx + innerRadius * cosEnd,\n cy + innerRadius * sinEnd\n ], arcSegment);\n }\n if (!open_1) {\n arc.push(['Z']);\n }\n }\n return arc;\n}\n/**\n * Callout shape used for default tooltips.\n */\nfunction callout(x, y, w, h, options) {\n var arrowLength = 6,\n halfDistance = 6,\n r = Math.min((options && options.r) || 0,\n w,\n h),\n safeDistance = r + halfDistance,\n anchorX = options && options.anchorX,\n anchorY = options && options.anchorY || 0;\n var path = roundedRect(x,\n y,\n w,\n h, { r: r });\n if (!Symbols_isNumber(anchorX)) {\n return path;\n }\n // Do not render a connector, if anchor starts inside the label\n if (anchorX < w && anchorX > 0 && anchorY < h && anchorY > 0) {\n return path;\n }\n // Anchor on right side\n if (x + anchorX > w - safeDistance) {\n // Chevron\n if (anchorY > y + safeDistance &&\n anchorY < y + h - safeDistance) {\n path.splice(3, 1, ['L', x + w, anchorY - halfDistance], ['L', x + w + arrowLength, anchorY], ['L', x + w, anchorY + halfDistance], ['L', x + w, y + h - r]);\n // Simple connector\n }\n else {\n if (anchorX < w) { // Corner connector\n var isTopCorner = anchorY < y + safeDistance,\n cornerY = isTopCorner ? y : y + h,\n sliceStart = isTopCorner ? 2 : 5;\n path.splice(sliceStart, 0, ['L', anchorX, anchorY], ['L', x + w - r, cornerY]);\n }\n else { // Side connector\n path.splice(3, 1, ['L', x + w, h / 2], ['L', anchorX, anchorY], ['L', x + w, h / 2], ['L', x + w, y + h - r]);\n }\n }\n // Anchor on left side\n }\n else if (x + anchorX < safeDistance) {\n // Chevron\n if (anchorY > y + safeDistance &&\n anchorY < y + h - safeDistance) {\n path.splice(7, 1, ['L', x, anchorY + halfDistance], ['L', x - arrowLength, anchorY], ['L', x, anchorY - halfDistance], ['L', x, y + r]);\n // Simple connector\n }\n else {\n if (anchorX > 0) { // Corner connector\n var isTopCorner = anchorY < y + safeDistance,\n cornerY = isTopCorner ? y : y + h,\n sliceStart = isTopCorner ? 1 : 6;\n path.splice(sliceStart, 0, ['L', anchorX, anchorY], ['L', x + r, cornerY]);\n }\n else { // Side connector\n path.splice(7, 1, ['L', x, h / 2], ['L', anchorX, anchorY], ['L', x, h / 2], ['L', x, y + r]);\n }\n }\n }\n else if ( // Replace bottom\n anchorY > h &&\n anchorX < w - safeDistance) {\n path.splice(5, 1, ['L', anchorX + halfDistance, y + h], ['L', anchorX, y + h + arrowLength], ['L', anchorX - halfDistance, y + h], ['L', x + r, y + h]);\n }\n else if ( // Replace top\n anchorY < 0 &&\n anchorX > safeDistance) {\n path.splice(1, 1, ['L', anchorX - halfDistance, y], ['L', anchorX, y - arrowLength], ['L', anchorX + halfDistance, y], ['L', w - r, y]);\n }\n return path;\n}\n/**\n *\n */\nfunction circle(x, y, w, h) {\n // Return a full arc\n return arc(x + w / 2, y + h / 2, w / 2, h / 2, {\n start: Math.PI * 0.5,\n end: Math.PI * 2.5,\n open: false\n });\n}\n/**\n *\n */\nfunction diamond(x, y, w, h) {\n return [\n ['M', x + w / 2, y],\n ['L', x + w, y + h / 2],\n ['L', x + w / 2, y + h],\n ['L', x, y + h / 2],\n ['Z']\n ];\n}\n// #15291\n/**\n *\n */\nfunction rect(x, y, w, h, options) {\n if (options && options.r) {\n return roundedRect(x, y, w, h, options);\n }\n return [\n ['M', x, y],\n ['L', x + w, y],\n ['L', x + w, y + h],\n ['L', x, y + h],\n ['Z']\n ];\n}\n/**\n *\n */\nfunction roundedRect(x, y, w, h, options) {\n var r = (options === null || options === void 0 ? void 0 : options.r) || 0;\n return [\n ['M', x + r, y],\n ['L', x + w - r, y], // Top side\n ['A', r, r, 0, 0, 1, x + w, y + r], // Top-right corner\n ['L', x + w, y + h - r], // Right side\n ['A', r, r, 0, 0, 1, x + w - r, y + h], // Bottom-right corner\n ['L', x + r, y + h], // Bottom side\n ['A', r, r, 0, 0, 1, x, y + h - r], // Bottom-left corner\n ['L', x, y + r], // Left side\n ['A', r, r, 0, 0, 1, x + r, y],\n ['Z'] // Top-left corner\n ];\n}\n/**\n *\n */\nfunction triangle(x, y, w, h) {\n return [\n ['M', x + w / 2, y],\n ['L', x + w, y + h],\n ['L', x, y + h],\n ['Z']\n ];\n}\n/**\n *\n */\nfunction triangleDown(x, y, w, h) {\n return [\n ['M', x, y],\n ['L', x + w, y],\n ['L', x + w / 2, y + h],\n ['Z']\n ];\n}\nvar Symbols = {\n arc: arc,\n callout: callout,\n circle: circle,\n diamond: diamond,\n rect: rect,\n roundedRect: roundedRect,\n square: rect,\n triangle: triangle,\n 'triangle-down': triangleDown\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var SVG_Symbols = (Symbols);\n\n;// ./code/es5/es-modules/Stock/Navigator/NavigatorSymbols.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n\n\nvar relativeLength = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).relativeLength;\n/* *\n *\n * Constants\n *\n * */\n/**\n * Draw one of the handles on the side of the zoomed range in the navigator.\n * @private\n */\nfunction navigatorHandle(_x, _y, width, height, options) {\n if (options === void 0) { options = {}; }\n var halfWidth = options.width ? options.width / 2 : width,\n markerPosition = 1.5,\n r = relativeLength(options.borderRadius || 0,\n Math.min(halfWidth * 2,\n height));\n height = options.height || height;\n return __spreadArray([\n ['M', -markerPosition, height / 2 - 3.5],\n ['L', -markerPosition, height / 2 + 4.5],\n ['M', markerPosition - 1, height / 2 - 3.5],\n ['L', markerPosition - 1, height / 2 + 4.5]\n ], SVG_Symbols.rect(-halfWidth - 1, 0.5, halfWidth * 2 + 1, height, { r: r }), true);\n}\n/* *\n *\n * Default Export\n *\n * */\nvar NavigatorSymbols = {\n 'navigator-handle': navigatorHandle\n};\n/* harmony default export */ var Navigator_NavigatorSymbols = (NavigatorSymbols);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"RendererRegistry\"],\"commonjs\":[\"highcharts\",\"RendererRegistry\"],\"commonjs2\":[\"highcharts\",\"RendererRegistry\"],\"root\":[\"Highcharts\",\"RendererRegistry\"]}\nvar highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_ = __webpack_require__(608);\nvar highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_default = /*#__PURE__*/__webpack_require__.n(highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_);\n;// ./code/es5/es-modules/Stock/Utilities/StockUtilities.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar StockUtilities_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Sets the chart.fixedRange to the specified value. If the value is larger\n * than actual range, sets it to the maximum possible range. (#20327)\n *\n * @private\n * @function Highcharts.StockChart#setFixedRange\n * @param {number|undefined} range\n * Range to set in axis units.\n */\nfunction setFixedRange(range) {\n var xAxis = this.xAxis[0];\n if (StockUtilities_defined(xAxis.dataMax) &&\n StockUtilities_defined(xAxis.dataMin) &&\n range) {\n this.fixedRange = Math.min(range, xAxis.dataMax - xAxis.dataMin);\n }\n else {\n this.fixedRange = range;\n }\n}\nvar StockUtilities = {\n setFixedRange: setFixedRange\n};\n/* harmony default export */ var Utilities_StockUtilities = (StockUtilities);\n\n;// ./code/es5/es-modules/Stock/Navigator/NavigatorComposition.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar setOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).setOptions;\n\nvar composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\n\n\n\nvar getRendererType = (highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_default()).getRendererType;\n\nvar NavigatorComposition_setFixedRange = Utilities_StockUtilities.setFixedRange;\n\nvar NavigatorComposition_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique;\n/* *\n *\n * Variables\n *\n * */\n/* *\n *\n * Functions\n *\n * */\n/**\n * @private\n */\nfunction NavigatorComposition_compose(ChartClass, AxisClass, SeriesClass) {\n NavigatorAxisComposition.compose(AxisClass);\n if (pushUnique(composed, 'Navigator')) {\n ChartClass.prototype.setFixedRange = NavigatorComposition_setFixedRange;\n extend(getRendererType().prototype.symbols, Navigator_NavigatorSymbols);\n NavigatorComposition_addEvent(SeriesClass, 'afterUpdate', onSeriesAfterUpdate);\n setOptions({ navigator: Navigator_NavigatorDefaults });\n }\n}\n/**\n * Handle updating series\n * @private\n */\nfunction onSeriesAfterUpdate() {\n if (this.chart.navigator && !this.options.isInternal) {\n this.chart.navigator.setBaseSeries(null, false);\n }\n}\n/* *\n *\n * Default Export\n *\n * */\nvar NavigatorComposition = {\n compose: NavigatorComposition_compose\n};\n/* harmony default export */ var Navigator_NavigatorComposition = (NavigatorComposition);\n\n;// ./code/es5/es-modules/Core/Axis/ScrollbarAxis.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar ScrollbarAxis_composed = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).composed;\n\nvar ScrollbarAxis_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, ScrollbarAxis_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, ScrollbarAxis_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, ScrollbarAxis_pushUnique = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pushUnique;\n/* *\n *\n * Composition\n *\n * */\nvar ScrollbarAxis;\n(function (ScrollbarAxis) {\n /* *\n *\n * Variables\n *\n * */\n var Scrollbar;\n /* *\n *\n * Functions\n *\n * */\n /**\n * Attaches to axis events to create scrollbars if enabled.\n *\n * @private\n *\n * @param {Highcharts.Axis} AxisClass\n * Axis class to extend.\n *\n * @param {Highcharts.Scrollbar} ScrollbarClass\n * Scrollbar class to use.\n */\n function compose(AxisClass, ScrollbarClass) {\n if (ScrollbarAxis_pushUnique(ScrollbarAxis_composed, 'Axis.Scrollbar')) {\n Scrollbar = ScrollbarClass;\n ScrollbarAxis_addEvent(AxisClass, 'afterGetOffset', onAxisAfterGetOffset);\n ScrollbarAxis_addEvent(AxisClass, 'afterInit', onAxisAfterInit);\n ScrollbarAxis_addEvent(AxisClass, 'afterRender', onAxisAfterRender);\n }\n }\n ScrollbarAxis.compose = compose;\n /** @private */\n function getExtremes(axis) {\n var axisMin = ScrollbarAxis_pick(axis.options && axis.options.min,\n axis.min);\n var axisMax = ScrollbarAxis_pick(axis.options && axis.options.max,\n axis.max);\n return {\n axisMin: axisMin,\n axisMax: axisMax,\n scrollMin: ScrollbarAxis_defined(axis.dataMin) ?\n Math.min(axisMin, axis.min, axis.dataMin, ScrollbarAxis_pick(axis.threshold, Infinity)) : axisMin,\n scrollMax: ScrollbarAxis_defined(axis.dataMax) ?\n Math.max(axisMax, axis.max, axis.dataMax, ScrollbarAxis_pick(axis.threshold, -Infinity)) : axisMax\n };\n }\n /**\n * Make space for a scrollbar.\n * @private\n */\n function onAxisAfterGetOffset() {\n var axis = this,\n scrollbar = axis.scrollbar,\n opposite = scrollbar && !scrollbar.options.opposite,\n index = axis.horiz ? 2 : opposite ? 3 : 1;\n if (scrollbar) {\n // Reset scrollbars offsets\n axis.chart.scrollbarsOffsets = [0, 0];\n axis.chart.axisOffset[index] +=\n scrollbar.size + (scrollbar.options.margin || 0);\n }\n }\n /**\n * Wrap axis initialization and create scrollbar if enabled.\n * @private\n */\n function onAxisAfterInit() {\n var axis = this;\n if (axis.options &&\n axis.options.scrollbar &&\n axis.options.scrollbar.enabled) {\n // Predefined options:\n axis.options.scrollbar.vertical = !axis.horiz;\n axis.options.startOnTick = axis.options.endOnTick = false;\n axis.scrollbar = new Scrollbar(axis.chart.renderer, axis.options.scrollbar, axis.chart);\n ScrollbarAxis_addEvent(axis.scrollbar, 'changed', function (e) {\n var _a = getExtremes(axis),\n axisMin = _a.axisMin,\n axisMax = _a.axisMax,\n unitedMin = _a.scrollMin,\n unitedMax = _a.scrollMax,\n range = unitedMax - unitedMin;\n var to,\n from;\n // #12834, scroll when show/hide series, wrong extremes\n if (!ScrollbarAxis_defined(axisMin) || !ScrollbarAxis_defined(axisMax)) {\n return;\n }\n if ((axis.horiz && !axis.reversed) ||\n (!axis.horiz && axis.reversed)) {\n to = unitedMin + range * this.to;\n from = unitedMin + range * this.from;\n }\n else {\n // Y-values in browser are reversed, but this also\n // applies for reversed horizontal axis:\n to = unitedMin + range * (1 - this.from);\n from = unitedMin + range * (1 - this.to);\n }\n if (this.shouldUpdateExtremes(e.DOMType)) {\n // #17977, set animation to undefined instead of true\n var animate = e.DOMType === 'mousemove' ||\n e.DOMType === 'touchmove' ? false : void 0;\n axis.setExtremes(from, to, true, animate, e);\n }\n else {\n // When live redraw is disabled, don't change extremes\n // Only change the position of the scrollbar thumb\n this.setRange(this.from, this.to);\n }\n });\n }\n }\n /**\n * Wrap rendering axis, and update scrollbar if one is created.\n * @private\n */\n function onAxisAfterRender() {\n var axis = this,\n _a = getExtremes(axis),\n scrollMin = _a.scrollMin,\n scrollMax = _a.scrollMax,\n scrollbar = axis.scrollbar,\n offset = (axis.axisTitleMargin + (axis.titleOffset || 0)),\n scrollbarsOffsets = axis.chart.scrollbarsOffsets,\n axisMargin = axis.options.margin || 0;\n var offsetsIndex,\n from,\n to;\n if (scrollbar && scrollbarsOffsets) {\n if (axis.horiz) {\n // Reserve space for labels/title\n if (!axis.opposite) {\n scrollbarsOffsets[1] += offset;\n }\n scrollbar.position(axis.left, (axis.top +\n axis.height +\n 2 +\n scrollbarsOffsets[1] -\n (axis.opposite ? axisMargin : 0)), axis.width, axis.height);\n // Next scrollbar should reserve space for margin (if set)\n if (!axis.opposite) {\n scrollbarsOffsets[1] += axisMargin;\n }\n offsetsIndex = 1;\n }\n else {\n // Reserve space for labels/title\n if (axis.opposite) {\n scrollbarsOffsets[0] += offset;\n }\n var xPosition = void 0;\n if (!scrollbar.options.opposite) {\n xPosition = axis.opposite ? 0 : axisMargin;\n }\n else {\n xPosition = axis.left +\n axis.width +\n 2 +\n scrollbarsOffsets[0] -\n (axis.opposite ? 0 : axisMargin);\n }\n scrollbar.position(xPosition, axis.top, axis.width, axis.height);\n // Next scrollbar should reserve space for margin (if set)\n if (axis.opposite) {\n scrollbarsOffsets[0] += axisMargin;\n }\n offsetsIndex = 0;\n }\n scrollbarsOffsets[offsetsIndex] += scrollbar.size +\n (scrollbar.options.margin || 0);\n if (isNaN(scrollMin) ||\n isNaN(scrollMax) ||\n !ScrollbarAxis_defined(axis.min) ||\n !ScrollbarAxis_defined(axis.max) ||\n axis.dataMin === axis.dataMax // #10733\n ) {\n // Default action: when data extremes are the same or there is\n // not extremes on the axis, but scrollbar exists, make it\n // full size\n scrollbar.setRange(0, 1);\n }\n else if (axis.min === axis.max) { // #20359\n // When the extremes are the same, set the scrollbar to a point\n // within the extremes range. Utilize pointRange to perform the\n // calculations. (#20359)\n var interval = axis.pointRange / (axis.dataMax +\n 1);\n from = interval * axis.min;\n to = interval * (axis.max + 1);\n scrollbar.setRange(from, to);\n }\n else {\n from = ((axis.min - scrollMin) /\n (scrollMax - scrollMin));\n to = ((axis.max - scrollMin) /\n (scrollMax - scrollMin));\n if ((axis.horiz && !axis.reversed) ||\n (!axis.horiz && axis.reversed)) {\n scrollbar.setRange(from, to);\n }\n else {\n // Inverse vertical axis\n scrollbar.setRange(1 - to, 1 - from);\n }\n }\n }\n }\n})(ScrollbarAxis || (ScrollbarAxis = {}));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Axis_ScrollbarAxis = (ScrollbarAxis);\n\n;// ./code/es5/es-modules/Stock/Scrollbar/ScrollbarDefaults.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * Constant\n *\n * */\n/**\n *\n * The scrollbar is a means of panning over the X axis of a stock chart.\n * Scrollbars can also be applied to other types of axes.\n *\n * Another approach to scrollable charts is the [chart.scrollablePlotArea](\n * https://api.highcharts.com/highcharts/chart.scrollablePlotArea) option that\n * is especially suitable for simpler cartesian charts on mobile.\n *\n * In styled mode, all the presentational options for the\n * scrollbar are replaced by the classes `.highcharts-scrollbar-thumb`,\n * `.highcharts-scrollbar-arrow`, `.highcharts-scrollbar-button`,\n * `.highcharts-scrollbar-rifles` and `.highcharts-scrollbar-track`.\n *\n * @sample stock/yaxis/inverted-bar-scrollbar/\n * A scrollbar on a simple bar chart\n *\n * @product highstock gantt\n * @optionparent scrollbar\n *\n * @private\n */\nvar ScrollbarDefaults = {\n /**\n * The height of the scrollbar. If `buttonsEnabled` is true , the height\n * also applies to the width of the scroll arrows so that they are always\n * squares.\n *\n * @sample stock/scrollbar/style/\n * Non-default height\n *\n * @type {number}\n */\n height: 10,\n /**\n * The border rounding radius of the bar.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n */\n barBorderRadius: 5,\n /**\n * The corner radius of the scrollbar buttons.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n */\n buttonBorderRadius: 0,\n /**\n * Enable or disable the buttons at the end of the scrollbar.\n *\n * @since 11.0.0\n */\n buttonsEnabled: false,\n /**\n * Enable or disable the scrollbar.\n *\n * @sample stock/scrollbar/enabled/\n * Disable the scrollbar, only use navigator\n *\n * @type {boolean}\n * @default true\n * @apioption scrollbar.enabled\n */\n /**\n * Whether to redraw the main chart as the scrollbar or the navigator\n * zoomed window is moved. Defaults to `true` for modern browsers and\n * `false` for legacy IE browsers as well as mobile devices.\n *\n * @sample stock/scrollbar/liveredraw\n * Setting live redraw to false\n *\n * @type {boolean}\n * @since 1.3\n */\n liveRedraw: void 0,\n /**\n * The margin between the scrollbar and its axis when the scrollbar is\n * applied directly to an axis, or the navigator in case that is enabled.\n * Defaults to 10 for axis, 0 for navigator.\n *\n * @type {number|undefined}\n */\n margin: void 0,\n /**\n * The minimum width of the scrollbar.\n *\n * @since 1.2.5\n */\n minWidth: 6,\n /** @ignore-option */\n opposite: true,\n /**\n * Whether to show or hide the scrollbar when the scrolled content is\n * zoomed out to it full extent.\n *\n * @type {boolean}\n * @default true\n * @apioption scrollbar.showFull\n */\n step: 0.2,\n /**\n * The z index of the scrollbar group.\n */\n zIndex: 3,\n /**\n * The background color of the scrollbar itself.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n barBackgroundColor: \"#cccccc\" /* Palette.neutralColor20 */,\n /**\n * The width of the bar's border.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n */\n barBorderWidth: 0,\n /**\n * The color of the scrollbar's border.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n barBorderColor: \"#cccccc\" /* Palette.neutralColor20 */,\n /**\n * The color of the small arrow inside the scrollbar buttons.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n buttonArrowColor: \"#333333\" /* Palette.neutralColor80 */,\n /**\n * The color of scrollbar buttons.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n buttonBackgroundColor: \"#e6e6e6\" /* Palette.neutralColor10 */,\n /**\n * The color of the border of the scrollbar buttons.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n buttonBorderColor: \"#cccccc\" /* Palette.neutralColor20 */,\n /**\n * The border width of the scrollbar buttons.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n */\n buttonBorderWidth: 1,\n /**\n * The color of the small rifles in the middle of the scrollbar.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n rifleColor: 'none',\n /**\n * The color of the track background.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n trackBackgroundColor: 'rgba(255, 255, 255, 0.001)', // #18922\n /**\n * The color of the border of the scrollbar track.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n */\n trackBorderColor: \"#cccccc\" /* Palette.neutralColor20 */,\n /**\n * The corner radius of the border of the scrollbar track.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n */\n trackBorderRadius: 5,\n /**\n * The width of the border of the scrollbar track.\n *\n * @sample stock/scrollbar/style/\n * Scrollbar styling\n */\n trackBorderWidth: 1\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Scrollbar_ScrollbarDefaults = (ScrollbarDefaults);\n\n;// ./code/es5/es-modules/Stock/Scrollbar/Scrollbar.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\nvar defaultOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defaultOptions;\n\n\n\n\nvar Scrollbar_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, Scrollbar_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, crisp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).crisp, Scrollbar_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, destroyObjectProperties = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).destroyObjectProperties, fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, Scrollbar_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, Scrollbar_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, removeEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).removeEvent;\n/* *\n *\n * Constants\n *\n * */\n/* eslint-disable no-invalid-this, valid-jsdoc */\n/**\n * A reusable scrollbar, internally used in Highcharts Stock's\n * navigator and optionally on individual axes.\n *\n * @private\n * @class\n * @name Highcharts.Scrollbar\n * @param {Highcharts.SVGRenderer} renderer\n * @param {Highcharts.ScrollbarOptions} options\n * @param {Highcharts.Chart} chart\n */\nvar Scrollbar = /** @class */ (function () {\n /* *\n *\n * Constructors\n *\n * */\n function Scrollbar(renderer, options, chart) {\n /* *\n *\n * Properties\n *\n * */\n this._events = [];\n this.chartX = 0;\n this.chartY = 0;\n this.from = 0;\n this.scrollbarButtons = [];\n this.scrollbarLeft = 0;\n this.scrollbarStrokeWidth = 1;\n this.scrollbarTop = 0;\n this.size = 0;\n this.to = 0;\n this.trackBorderWidth = 1;\n this.x = 0;\n this.y = 0;\n this.init(renderer, options, chart);\n }\n /* *\n *\n * Static Functions\n *\n * */\n Scrollbar.compose = function (AxisClass) {\n Axis_ScrollbarAxis.compose(AxisClass, Scrollbar);\n };\n /**\n * When we have vertical scrollbar, rifles and arrow in buttons should be\n * rotated. The same method is used in Navigator's handles, to rotate them.\n *\n * @function Highcharts.swapXY\n *\n * @param {Highcharts.SVGPathArray} path\n * Path to be rotated.\n *\n * @param {boolean} [vertical]\n * If vertical scrollbar, swap x-y values.\n *\n * @return {Highcharts.SVGPathArray}\n * Rotated path.\n *\n * @requires modules/stock\n */\n Scrollbar.swapXY = function (path, vertical) {\n if (vertical) {\n path.forEach(function (seg) {\n var len = seg.length;\n var temp;\n for (var i = 0; i < len; i += 2) {\n temp = seg[i + 1];\n if (typeof temp === 'number') {\n seg[i + 1] = seg[i + 2];\n seg[i + 2] = temp;\n }\n }\n });\n }\n return path;\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * Set up the mouse and touch events for the Scrollbar\n *\n * @private\n * @function Highcharts.Scrollbar#addEvents\n */\n Scrollbar.prototype.addEvents = function () {\n var buttonsOrder = this.options.inverted ? [1, 0] : [0, 1],\n buttons = this.scrollbarButtons,\n bar = this.scrollbarGroup.element,\n track = this.track.element,\n mouseDownHandler = this.mouseDownHandler.bind(this),\n mouseMoveHandler = this.mouseMoveHandler.bind(this),\n mouseUpHandler = this.mouseUpHandler.bind(this);\n var _events = [\n // Mouse events\n [\n buttons[buttonsOrder[0]].element,\n 'click',\n this.buttonToMinClick.bind(this)\n ],\n [\n buttons[buttonsOrder[1]].element,\n 'click',\n this.buttonToMaxClick.bind(this)\n ],\n [track, 'click',\n this.trackClick.bind(this)],\n [bar, 'mousedown',\n mouseDownHandler],\n [bar.ownerDocument, 'mousemove',\n mouseMoveHandler],\n [bar.ownerDocument, 'mouseup',\n mouseUpHandler],\n // Touch events\n [bar, 'touchstart',\n mouseDownHandler],\n [bar.ownerDocument, 'touchmove',\n mouseMoveHandler],\n [bar.ownerDocument, 'touchend',\n mouseUpHandler]\n ];\n // Add them all\n _events.forEach(function (args) {\n Scrollbar_addEvent.apply(null, args);\n });\n this._events = _events;\n };\n Scrollbar.prototype.buttonToMaxClick = function (e) {\n var scroller = this;\n var range = ((scroller.to - scroller.from) *\n Scrollbar_pick(scroller.options.step, 0.2));\n scroller.updatePosition(scroller.from + range, scroller.to + range);\n fireEvent(scroller, 'changed', {\n from: scroller.from,\n to: scroller.to,\n trigger: 'scrollbar',\n DOMEvent: e\n });\n };\n Scrollbar.prototype.buttonToMinClick = function (e) {\n var scroller = this;\n var range = Scrollbar_correctFloat(scroller.to - scroller.from) *\n Scrollbar_pick(scroller.options.step, 0.2);\n scroller.updatePosition(Scrollbar_correctFloat(scroller.from - range), Scrollbar_correctFloat(scroller.to - range));\n fireEvent(scroller, 'changed', {\n from: scroller.from,\n to: scroller.to,\n trigger: 'scrollbar',\n DOMEvent: e\n });\n };\n /**\n * Get normalized (0-1) cursor position over the scrollbar\n *\n * @private\n * @function Highcharts.Scrollbar#cursorToScrollbarPosition\n *\n * @param {*} normalizedEvent\n * normalized event, with chartX and chartY values\n *\n * @return {Highcharts.Dictionary<number>}\n * Local position {chartX, chartY}\n */\n Scrollbar.prototype.cursorToScrollbarPosition = function (normalizedEvent) {\n var scroller = this,\n options = scroller.options,\n minWidthDifference = options.minWidth > scroller.calculatedWidth ?\n options.minWidth :\n 0; // `minWidth` distorts translation\n return {\n chartX: (normalizedEvent.chartX - scroller.x -\n scroller.xOffset) /\n (scroller.barWidth - minWidthDifference),\n chartY: (normalizedEvent.chartY - scroller.y -\n scroller.yOffset) /\n (scroller.barWidth - minWidthDifference)\n };\n };\n /**\n * Destroys allocated elements.\n *\n * @private\n * @function Highcharts.Scrollbar#destroy\n */\n Scrollbar.prototype.destroy = function () {\n var scroller = this,\n navigator = scroller.chart.scroller;\n // Disconnect events added in addEvents\n scroller.removeEvents();\n // Destroy properties\n [\n 'track',\n 'scrollbarRifles',\n 'scrollbar',\n 'scrollbarGroup',\n 'group'\n ].forEach(function (prop) {\n if (scroller[prop] && scroller[prop].destroy) {\n scroller[prop] = scroller[prop].destroy();\n }\n });\n // #6421, chart may have more scrollbars\n if (navigator && scroller === navigator.scrollbar) {\n navigator.scrollbar = null;\n // Destroy elements in collection\n destroyObjectProperties(navigator.scrollbarButtons);\n }\n };\n /**\n * Draw the scrollbar buttons with arrows\n *\n * @private\n * @function Highcharts.Scrollbar#drawScrollbarButton\n * @param {number} index\n * 0 is left, 1 is right\n */\n Scrollbar.prototype.drawScrollbarButton = function (index) {\n var scroller = this,\n renderer = scroller.renderer,\n scrollbarButtons = scroller.scrollbarButtons,\n options = scroller.options,\n size = scroller.size,\n group = renderer.g().add(scroller.group);\n scrollbarButtons.push(group);\n if (options.buttonsEnabled) {\n // Create a rectangle for the scrollbar button\n var rect = renderer.rect()\n .addClass('highcharts-scrollbar-button')\n .add(group);\n // Presentational attributes\n if (!scroller.chart.styledMode) {\n rect.attr({\n stroke: options.buttonBorderColor,\n 'stroke-width': options.buttonBorderWidth,\n fill: options.buttonBackgroundColor\n });\n }\n // Place the rectangle based on the rendered stroke width\n rect.attr(rect.crisp({\n x: -0.5,\n y: -0.5,\n width: size,\n height: size,\n r: options.buttonBorderRadius\n }, rect.strokeWidth()));\n // Button arrow\n var arrow = renderer\n .path(Scrollbar.swapXY([[\n 'M',\n size / 2 + (index ? -1 : 1),\n size / 2 - 3\n ],\n [\n 'L',\n size / 2 + (index ? -1 : 1),\n size / 2 + 3\n ],\n [\n 'L',\n size / 2 + (index ? 2 : -2),\n size / 2\n ]],\n options.vertical))\n .addClass('highcharts-scrollbar-arrow')\n .add(scrollbarButtons[index]);\n if (!scroller.chart.styledMode) {\n arrow.attr({\n fill: options.buttonArrowColor\n });\n }\n }\n };\n /**\n * @private\n * @function Highcharts.Scrollbar#init\n * @param {Highcharts.SVGRenderer} renderer\n * @param {Highcharts.ScrollbarOptions} options\n * @param {Highcharts.Chart} chart\n */\n Scrollbar.prototype.init = function (renderer, options, chart) {\n var scroller = this;\n scroller.scrollbarButtons = [];\n scroller.renderer = renderer;\n scroller.userOptions = options;\n scroller.options = Scrollbar_merge(Scrollbar_ScrollbarDefaults, defaultOptions.scrollbar, options);\n scroller.options.margin = Scrollbar_pick(scroller.options.margin, 10);\n scroller.chart = chart;\n // Backward compatibility\n scroller.size = Scrollbar_pick(scroller.options.size, scroller.options.height);\n // Init\n if (options.enabled) {\n scroller.render();\n scroller.addEvents();\n }\n };\n Scrollbar.prototype.mouseDownHandler = function (e) {\n var _a;\n var scroller = this,\n normalizedEvent = ((_a = scroller.chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(e)) || e,\n mousePosition = scroller.cursorToScrollbarPosition(normalizedEvent);\n scroller.chartX = mousePosition.chartX;\n scroller.chartY = mousePosition.chartY;\n scroller.initPositions = [scroller.from, scroller.to];\n scroller.grabbedCenter = true;\n };\n /**\n * Event handler for the mouse move event.\n * @private\n */\n Scrollbar.prototype.mouseMoveHandler = function (e) {\n var _a;\n var scroller = this,\n normalizedEvent = ((_a = scroller.chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(e)) || e,\n options = scroller.options,\n direction = options.vertical ?\n 'chartY' : 'chartX',\n initPositions = scroller.initPositions || [];\n var scrollPosition,\n chartPosition,\n change;\n // In iOS, a mousemove event with e.pageX === 0 is fired when\n // holding the finger down in the center of the scrollbar. This\n // should be ignored.\n if (scroller.grabbedCenter &&\n // #4696, scrollbar failed on Android\n (!e.touches || e.touches[0][direction] !== 0)) {\n chartPosition = scroller.cursorToScrollbarPosition(normalizedEvent)[direction];\n scrollPosition = scroller[direction];\n change = chartPosition - scrollPosition;\n scroller.hasDragged = true;\n scroller.updatePosition(initPositions[0] + change, initPositions[1] + change);\n if (scroller.hasDragged) {\n fireEvent(scroller, 'changed', {\n from: scroller.from,\n to: scroller.to,\n trigger: 'scrollbar',\n DOMType: e.type,\n DOMEvent: e\n });\n }\n }\n };\n /**\n * Event handler for the mouse up event.\n * @private\n */\n Scrollbar.prototype.mouseUpHandler = function (e) {\n var scroller = this;\n if (scroller.hasDragged) {\n fireEvent(scroller, 'changed', {\n from: scroller.from,\n to: scroller.to,\n trigger: 'scrollbar',\n DOMType: e.type,\n DOMEvent: e\n });\n }\n scroller.grabbedCenter =\n scroller.hasDragged =\n scroller.chartX =\n scroller.chartY = null;\n };\n /**\n * Position the scrollbar, method called from a parent with defined\n * dimensions.\n *\n * @private\n * @function Highcharts.Scrollbar#position\n * @param {number} x\n * x-position on the chart\n * @param {number} y\n * y-position on the chart\n * @param {number} width\n * width of the scrollbar\n * @param {number} height\n * height of the scrollbar\n */\n Scrollbar.prototype.position = function (x, y, width, height) {\n var scroller = this,\n options = scroller.options,\n buttonsEnabled = options.buttonsEnabled,\n _a = options.margin,\n margin = _a === void 0 ? 0 : _a,\n vertical = options.vertical,\n method = scroller.rendered ? 'animate' : 'attr';\n var xOffset = height,\n yOffset = 0;\n // Make the scrollbar visible when it is repositioned, #15763.\n scroller.group.show();\n scroller.x = x;\n scroller.y = y + this.trackBorderWidth;\n scroller.width = width; // Width with buttons\n scroller.height = height;\n scroller.xOffset = xOffset;\n scroller.yOffset = yOffset;\n // If Scrollbar is a vertical type, swap options:\n if (vertical) {\n scroller.width = scroller.yOffset = width = yOffset = scroller.size;\n scroller.xOffset = xOffset = 0;\n scroller.yOffset = yOffset = buttonsEnabled ? scroller.size : 0;\n // Width without buttons\n scroller.barWidth = height - (buttonsEnabled ? width * 2 : 0);\n scroller.x = x = x + margin;\n }\n else {\n scroller.height = height = scroller.size;\n scroller.xOffset = xOffset = buttonsEnabled ? scroller.size : 0;\n // Width without buttons\n scroller.barWidth = width - (buttonsEnabled ? height * 2 : 0);\n scroller.y = scroller.y + margin;\n }\n // Set general position for a group:\n scroller.group[method]({\n translateX: x,\n translateY: scroller.y\n });\n // Resize background/track:\n scroller.track[method]({\n width: width,\n height: height\n });\n // Move right/bottom button to its place:\n scroller.scrollbarButtons[1][method]({\n translateX: vertical ? 0 : width - xOffset,\n translateY: vertical ? height - yOffset : 0\n });\n };\n /**\n * Removes the event handlers attached previously with addEvents.\n *\n * @private\n * @function Highcharts.Scrollbar#removeEvents\n */\n Scrollbar.prototype.removeEvents = function () {\n this._events.forEach(function (args) {\n removeEvent.apply(null, args);\n });\n this._events.length = 0;\n };\n /**\n * Render scrollbar with all required items.\n *\n * @private\n * @function Highcharts.Scrollbar#render\n */\n Scrollbar.prototype.render = function () {\n var scroller = this,\n renderer = scroller.renderer,\n options = scroller.options,\n size = scroller.size,\n styledMode = scroller.chart.styledMode,\n group = renderer.g('scrollbar')\n .attr({\n zIndex: options.zIndex\n })\n .hide() // Initially hide the scrollbar #15863\n .add();\n // Draw the scrollbar group\n scroller.group = group;\n // Draw the scrollbar track:\n scroller.track = renderer.rect()\n .addClass('highcharts-scrollbar-track')\n .attr({\n r: options.trackBorderRadius || 0,\n height: size,\n width: size\n }).add(group);\n if (!styledMode) {\n scroller.track.attr({\n fill: options.trackBackgroundColor,\n stroke: options.trackBorderColor,\n 'stroke-width': options.trackBorderWidth\n });\n }\n var trackBorderWidth = scroller.trackBorderWidth =\n scroller.track.strokeWidth();\n scroller.track.attr({\n x: -crisp(0, trackBorderWidth),\n y: -crisp(0, trackBorderWidth)\n });\n // Draw the scrollbar itself\n scroller.scrollbarGroup = renderer.g().add(group);\n scroller.scrollbar = renderer.rect()\n .addClass('highcharts-scrollbar-thumb')\n .attr({\n height: size - trackBorderWidth,\n width: size - trackBorderWidth,\n r: options.barBorderRadius || 0\n }).add(scroller.scrollbarGroup);\n scroller.scrollbarRifles = renderer\n .path(Scrollbar.swapXY([\n ['M', -3, size / 4],\n ['L', -3, 2 * size / 3],\n ['M', 0, size / 4],\n ['L', 0, 2 * size / 3],\n ['M', 3, size / 4],\n ['L', 3, 2 * size / 3]\n ], options.vertical))\n .addClass('highcharts-scrollbar-rifles')\n .add(scroller.scrollbarGroup);\n if (!styledMode) {\n scroller.scrollbar.attr({\n fill: options.barBackgroundColor,\n stroke: options.barBorderColor,\n 'stroke-width': options.barBorderWidth\n });\n scroller.scrollbarRifles.attr({\n stroke: options.rifleColor,\n 'stroke-width': 1\n });\n }\n scroller.scrollbarStrokeWidth = scroller.scrollbar.strokeWidth();\n scroller.scrollbarGroup.translate(-crisp(0, scroller.scrollbarStrokeWidth), -crisp(0, scroller.scrollbarStrokeWidth));\n // Draw the buttons:\n scroller.drawScrollbarButton(0);\n scroller.drawScrollbarButton(1);\n };\n /**\n * Set scrollbar size, with a given scale.\n *\n * @private\n * @function Highcharts.Scrollbar#setRange\n * @param {number} from\n * scale (0-1) where bar should start\n * @param {number} to\n * scale (0-1) where bar should end\n */\n Scrollbar.prototype.setRange = function (from, to) {\n var scroller = this,\n options = scroller.options,\n vertical = options.vertical,\n minWidth = options.minWidth,\n fullWidth = scroller.barWidth,\n method = (this.rendered &&\n !this.hasDragged &&\n !(this.chart.navigator && this.chart.navigator.hasDragged)) ? 'animate' : 'attr';\n if (!Scrollbar_defined(fullWidth)) {\n return;\n }\n var toPX = fullWidth * Math.min(to, 1);\n var fromPX,\n newSize;\n from = Math.max(from, 0);\n fromPX = Math.ceil(fullWidth * from);\n scroller.calculatedWidth = newSize = Scrollbar_correctFloat(toPX - fromPX);\n // We need to recalculate position, if minWidth is used\n if (newSize < minWidth) {\n fromPX = (fullWidth - minWidth + newSize) * from;\n newSize = minWidth;\n }\n var newPos = Math.floor(fromPX + scroller.xOffset + scroller.yOffset);\n var newRiflesPos = newSize / 2 - 0.5; // -0.5 -> rifle line width / 2\n // Store current position:\n scroller.from = from;\n scroller.to = to;\n if (!vertical) {\n scroller.scrollbarGroup[method]({\n translateX: newPos\n });\n scroller.scrollbar[method]({\n width: newSize\n });\n scroller.scrollbarRifles[method]({\n translateX: newRiflesPos\n });\n scroller.scrollbarLeft = newPos;\n scroller.scrollbarTop = 0;\n }\n else {\n scroller.scrollbarGroup[method]({\n translateY: newPos\n });\n scroller.scrollbar[method]({\n height: newSize\n });\n scroller.scrollbarRifles[method]({\n translateY: newRiflesPos\n });\n scroller.scrollbarTop = newPos;\n scroller.scrollbarLeft = 0;\n }\n if (newSize <= 12) {\n scroller.scrollbarRifles.hide();\n }\n else {\n scroller.scrollbarRifles.show();\n }\n // Show or hide the scrollbar based on the showFull setting\n if (options.showFull === false) {\n if (from <= 0 && to >= 1) {\n scroller.group.hide();\n }\n else {\n scroller.group.show();\n }\n }\n scroller.rendered = true;\n };\n /**\n * Checks if the extremes should be updated in response to a scrollbar\n * change event.\n *\n * @private\n * @function Highcharts.Scrollbar#shouldUpdateExtremes\n */\n Scrollbar.prototype.shouldUpdateExtremes = function (eventType) {\n return (Scrollbar_pick(this.options.liveRedraw, (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).svg &&\n !(highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isTouchDevice &&\n !this.chart.boosted) ||\n // Mouseup always should change extremes\n eventType === 'mouseup' ||\n eventType === 'touchend' ||\n // Internal events\n !Scrollbar_defined(eventType));\n };\n Scrollbar.prototype.trackClick = function (e) {\n var _a;\n var scroller = this;\n var normalizedEvent = ((_a = scroller.chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(e)) || e,\n range = scroller.to - scroller.from,\n top = scroller.y + scroller.scrollbarTop,\n left = scroller.x + scroller.scrollbarLeft;\n if ((scroller.options.vertical && normalizedEvent.chartY > top) ||\n (!scroller.options.vertical && normalizedEvent.chartX > left)) {\n // On the top or on the left side of the track:\n scroller.updatePosition(scroller.from + range, scroller.to + range);\n }\n else {\n // On the bottom or the right side of the track:\n scroller.updatePosition(scroller.from - range, scroller.to - range);\n }\n fireEvent(scroller, 'changed', {\n from: scroller.from,\n to: scroller.to,\n trigger: 'scrollbar',\n DOMEvent: e\n });\n };\n /**\n * Update the scrollbar with new options\n *\n * @private\n * @function Highcharts.Scrollbar#update\n * @param {Highcharts.ScrollbarOptions} options\n */\n Scrollbar.prototype.update = function (options) {\n this.destroy();\n this.init(this.chart.renderer, Scrollbar_merge(true, this.options, options), this.chart);\n };\n /**\n * Update position option in the Scrollbar, with normalized 0-1 scale\n *\n * @private\n * @function Highcharts.Scrollbar#updatePosition\n * @param {number} from\n * @param {number} to\n */\n Scrollbar.prototype.updatePosition = function (from, to) {\n if (to > 1) {\n from = Scrollbar_correctFloat(1 - Scrollbar_correctFloat(to - from));\n to = 1;\n }\n if (from < 0) {\n to = Scrollbar_correctFloat(to - from);\n from = 0;\n }\n this.from = from;\n this.to = to;\n };\n /* *\n *\n * Static Properties\n *\n * */\n Scrollbar.defaultOptions = Scrollbar_ScrollbarDefaults;\n return Scrollbar;\n}());\n/* *\n *\n * Registry\n *\n * */\ndefaultOptions.scrollbar = Scrollbar_merge(true, Scrollbar.defaultOptions, defaultOptions.scrollbar);\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Scrollbar_Scrollbar = (Scrollbar);\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"SVGRenderer\"],\"commonjs\":[\"highcharts\",\"SVGRenderer\"],\"commonjs2\":[\"highcharts\",\"SVGRenderer\"],\"root\":[\"Highcharts\",\"SVGRenderer\"]}\nvar highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_ = __webpack_require__(540);\nvar highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_default = /*#__PURE__*/__webpack_require__.n(highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_);\n;// ./code/es5/es-modules/Stock/Navigator/Navigator.js\n/* *\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\n\n\nvar Navigator_defaultOptions = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defaultOptions;\n\nvar Navigator_isTouchDevice = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isTouchDevice;\n\n\n\n\nvar symbols = (highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_default()).prototype.symbols;\n\nvar Navigator_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, clamp = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).clamp, Navigator_correctFloat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).correctFloat, Navigator_defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, Navigator_destroyObjectProperties = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).destroyObjectProperties, erase = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).erase, Navigator_extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, find = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).find, Navigator_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, Navigator_isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber, Navigator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, Navigator_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, Navigator_removeEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).removeEvent, splat = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).splat;\n/* *\n *\n * Functions\n *\n * */\n/**\n * Finding the min or max of a set of variables where we don't know if they are\n * defined, is a pattern that is repeated several places in Highcharts. Consider\n * making this a global utility method.\n * @private\n */\nfunction numExt(extreme) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var numbers = [].filter.call(args,\n Navigator_isNumber);\n if (numbers.length) {\n return Math[extreme].apply(0, numbers);\n }\n}\n/* *\n *\n * Class\n *\n * */\n/**\n * The Navigator class\n *\n * @private\n * @class\n * @name Highcharts.Navigator\n *\n * @param {Highcharts.Chart} chart\n * Chart object\n */\nvar Navigator = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function Navigator(chart) {\n this.isDirty = false;\n this.scrollbarHeight = 0;\n this.init(chart);\n }\n /* *\n *\n * Static Properties\n *\n * */\n Navigator.compose = function (ChartClass, AxisClass, SeriesClass) {\n Navigator_ChartNavigatorComposition.compose(ChartClass, Navigator);\n Navigator_NavigatorComposition.compose(ChartClass, AxisClass, SeriesClass);\n };\n /* *\n *\n * Functions\n *\n * */\n /**\n * Draw one of the handles on the side of the zoomed range in the navigator.\n *\n * @private\n * @function Highcharts.Navigator#drawHandle\n *\n * @param {number} x\n * The x center for the handle\n *\n * @param {number} index\n * 0 for left and 1 for right\n *\n * @param {boolean|undefined} inverted\n * Flag for chart.inverted\n *\n * @param {string} verb\n * Use 'animate' or 'attr'\n */\n Navigator.prototype.drawHandle = function (x, index, inverted, verb) {\n var navigator = this,\n height = navigator.navigatorOptions.handles.height;\n // Place it\n navigator.handles[index][verb](inverted ? {\n translateX: Math.round(navigator.left + navigator.height / 2),\n translateY: Math.round(navigator.top + parseInt(x, 10) + 0.5 - height)\n } : {\n translateX: Math.round(navigator.left + parseInt(x, 10)),\n translateY: Math.round(navigator.top + navigator.height / 2 - height / 2 - 1)\n });\n };\n /**\n * Render outline around the zoomed range\n *\n * @private\n * @function Highcharts.Navigator#drawOutline\n *\n * @param {number} zoomedMin\n * in pixels position where zoomed range starts\n *\n * @param {number} zoomedMax\n * in pixels position where zoomed range ends\n *\n * @param {boolean|undefined} inverted\n * flag if chart is inverted\n *\n * @param {string} verb\n * use 'animate' or 'attr'\n */\n Navigator.prototype.drawOutline = function (zoomedMin, zoomedMax, inverted, verb) {\n var navigator = this, maskInside = navigator.navigatorOptions.maskInside, outlineWidth = navigator.outline.strokeWidth(), halfOutline = outlineWidth / 2, outlineCorrection = (outlineWidth % 2) / 2, // #5800\n scrollButtonSize = navigator.scrollButtonSize, navigatorSize = navigator.size, navigatorTop = navigator.top, height = navigator.height, lineTop = navigatorTop - halfOutline, lineBtm = navigatorTop + height;\n var left = navigator.left,\n verticalMin,\n path;\n if (inverted) {\n verticalMin = navigatorTop + zoomedMax + outlineCorrection;\n zoomedMax = navigatorTop + zoomedMin + outlineCorrection;\n path = [\n [\n 'M',\n left + height,\n navigatorTop - scrollButtonSize - outlineCorrection\n ],\n // Top right of zoomed range\n ['L', left + height, verticalMin],\n ['L', left, verticalMin], // Top left of z.r.\n ['M', left, zoomedMax], // Bottom left of z.r.\n ['L', left + height, zoomedMax], // Bottom right of z.r.\n [\n 'L',\n left + height,\n navigatorTop + navigatorSize + scrollButtonSize\n ]\n ];\n if (maskInside) {\n path.push(\n // Upper left of zoomed range\n ['M', left + height, verticalMin - halfOutline], \n // Upper right of z.r.\n [\n 'L',\n left + height,\n zoomedMax + halfOutline\n ]);\n }\n }\n else {\n left -= scrollButtonSize;\n zoomedMin += left + scrollButtonSize - outlineCorrection;\n zoomedMax += left + scrollButtonSize - outlineCorrection;\n path = [\n // Left\n ['M', left, lineTop],\n // Upper left of zoomed range\n ['L', zoomedMin, lineTop],\n // Lower left of z.r.\n ['L', zoomedMin, lineBtm],\n // Lower right of z.r.\n ['M', zoomedMax, lineBtm],\n // Upper right of z.r.\n ['L', zoomedMax, lineTop],\n // Right\n [\n 'L',\n left + navigatorSize + scrollButtonSize * 2,\n lineTop\n ]\n ];\n if (maskInside) {\n path.push(\n // Upper left of zoomed range\n ['M', zoomedMin - halfOutline, lineTop], \n // Upper right of z.r.\n ['L', zoomedMax + halfOutline, lineTop]);\n }\n }\n navigator.outline[verb]({\n d: path\n });\n };\n /**\n * Render outline around the zoomed range\n *\n * @private\n * @function Highcharts.Navigator#drawMasks\n *\n * @param {number} zoomedMin\n * in pixels position where zoomed range starts\n *\n * @param {number} zoomedMax\n * in pixels position where zoomed range ends\n *\n * @param {boolean|undefined} inverted\n * flag if chart is inverted\n *\n * @param {string} verb\n * use 'animate' or 'attr'\n */\n Navigator.prototype.drawMasks = function (zoomedMin, zoomedMax, inverted, verb) {\n var navigator = this,\n left = navigator.left,\n top = navigator.top,\n navigatorHeight = navigator.height;\n var height,\n width,\n x,\n y;\n // Determine rectangle position & size\n // According to (non)inverted position:\n if (inverted) {\n x = [left, left, left];\n y = [top, top + zoomedMin, top + zoomedMax];\n width = [navigatorHeight, navigatorHeight, navigatorHeight];\n height = [\n zoomedMin,\n zoomedMax - zoomedMin,\n navigator.size - zoomedMax\n ];\n }\n else {\n x = [left, left + zoomedMin, left + zoomedMax];\n y = [top, top, top];\n width = [\n zoomedMin,\n zoomedMax - zoomedMin,\n navigator.size - zoomedMax\n ];\n height = [navigatorHeight, navigatorHeight, navigatorHeight];\n }\n navigator.shades.forEach(function (shade, i) {\n shade[verb]({\n x: x[i],\n y: y[i],\n width: width[i],\n height: height[i]\n });\n });\n };\n /**\n * Generate and update DOM elements for a navigator:\n *\n * - main navigator group\n *\n * - all shades\n *\n * - outline\n *\n * - handles\n *\n * @private\n * @function Highcharts.Navigator#renderElements\n */\n Navigator.prototype.renderElements = function () {\n var _a,\n _b;\n var navigator = this,\n navigatorOptions = navigator.navigatorOptions,\n maskInside = navigatorOptions.maskInside,\n chart = navigator.chart,\n inverted = chart.inverted,\n renderer = chart.renderer,\n mouseCursor = {\n cursor: inverted ? 'ns-resize' : 'ew-resize'\n }, \n // Create the main navigator group\n navigatorGroup = (_a = navigator.navigatorGroup) !== null && _a !== void 0 ? _a : (navigator.navigatorGroup = renderer\n .g('navigator')\n .attr({\n zIndex: 8,\n visibility: 'hidden'\n })\n .add());\n // Create masks, each mask will get events and fill:\n [\n !maskInside,\n maskInside,\n !maskInside\n ].forEach(function (hasMask, index) {\n var _a;\n var shade = (_a = navigator.shades[index]) !== null && _a !== void 0 ? _a : (navigator.shades[index] = renderer.rect()\n .addClass('highcharts-navigator-mask' +\n (index === 1 ? '-inside' : '-outside'))\n .add(navigatorGroup));\n if (!chart.styledMode) {\n shade.attr({\n fill: hasMask ? navigatorOptions.maskFill : 'rgba(0,0,0,0)'\n });\n if (index === 1) {\n shade.css(mouseCursor);\n }\n }\n });\n // Create the outline:\n if (!navigator.outline) {\n navigator.outline = renderer.path()\n .addClass('highcharts-navigator-outline')\n .add(navigatorGroup);\n }\n if (!chart.styledMode) {\n navigator.outline.attr({\n 'stroke-width': navigatorOptions.outlineWidth,\n stroke: navigatorOptions.outlineColor\n });\n }\n // Create the handlers:\n if ((_b = navigatorOptions.handles) === null || _b === void 0 ? void 0 : _b.enabled) {\n var handlesOptions_1 = navigatorOptions.handles,\n height_1 = handlesOptions_1.height,\n width_1 = handlesOptions_1.width;\n [0, 1].forEach(function (index) {\n var _a;\n var symbolName = handlesOptions_1.symbols[index];\n if (!navigator.handles[index] ||\n navigator.handles[index].symbolUrl !== symbolName) {\n // Generate symbol from scratch if we're dealing with an URL\n (_a = navigator.handles[index]) === null || _a === void 0 ? void 0 : _a.destroy();\n navigator.handles[index] = renderer.symbol(symbolName, -width_1 / 2 - 1, 0, width_1, height_1, handlesOptions_1);\n // Z index is 6 for right handle, 7 for left. Can't be 10,\n // because of the tooltip in inverted chart (#2908).\n navigator.handles[index].attr({ zIndex: 7 - index })\n .addClass('highcharts-navigator-handle ' +\n 'highcharts-navigator-handle-' +\n ['left', 'right'][index]).add(navigatorGroup);\n navigator.addMouseEvents();\n // If the navigator symbol changed, update its path and name\n }\n else if (!navigator.handles[index].isImg &&\n navigator.handles[index].symbolName !== symbolName) {\n var symbolFn = symbols[symbolName],\n path = symbolFn.call(symbols, -width_1 / 2 - 1, 0,\n width_1,\n height_1);\n navigator.handles[index].attr({\n d: path\n });\n navigator.handles[index].symbolName = symbolName;\n }\n if (chart.inverted) {\n navigator.handles[index].attr({\n rotation: 90,\n rotationOriginX: Math.floor(-width_1 / 2),\n rotationOriginY: (height_1 + width_1) / 2\n });\n }\n if (!chart.styledMode) {\n navigator.handles[index]\n .attr({\n fill: handlesOptions_1.backgroundColor,\n stroke: handlesOptions_1.borderColor,\n 'stroke-width': handlesOptions_1.lineWidth,\n width: handlesOptions_1.width,\n height: handlesOptions_1.height,\n x: -width_1 / 2 - 1,\n y: 0\n })\n .css(mouseCursor);\n }\n });\n }\n };\n /**\n * Update navigator\n *\n * @private\n * @function Highcharts.Navigator#update\n *\n * @param {Highcharts.NavigatorOptions} options\n * Options to merge in when updating navigator\n */\n Navigator.prototype.update = function (options, redraw) {\n var _a,\n _b;\n var _this = this;\n var _c,\n _d;\n if (redraw === void 0) { redraw = false; }\n var chart = this.chart,\n invertedUpdate = chart.options.chart.inverted !==\n ((_c = chart.scrollbar) === null || _c === void 0 ? void 0 : _c.options.vertical);\n Navigator_merge(true, chart.options.navigator, options);\n this.navigatorOptions = chart.options.navigator || {};\n this.setOpposite();\n // Revert to destroy/init for navigator/scrollbar enabled toggle\n if (Navigator_defined(options.enabled) || invertedUpdate) {\n this.destroy();\n this.navigatorEnabled = options.enabled || this.navigatorEnabled;\n return this.init(chart);\n }\n if (this.navigatorEnabled) {\n this.isDirty = true;\n if (options.adaptToUpdatedData === false) {\n this.baseSeries.forEach(function (series) {\n Navigator_removeEvent(series, 'updatedData', _this.updatedDataHandler);\n }, this);\n }\n if (options.adaptToUpdatedData) {\n this.baseSeries.forEach(function (series) {\n series.eventsToUnbind.push(Navigator_addEvent(series, 'updatedData', _this.updatedDataHandler));\n }, this);\n }\n // Update navigator series\n if (options.series || options.baseSeries) {\n this.setBaseSeries(void 0, false);\n }\n // Update navigator axis\n if (options.height || options.xAxis || options.yAxis) {\n this.height = (_d = options.height) !== null && _d !== void 0 ? _d : this.height;\n var offsets = this.getXAxisOffsets();\n this.xAxis.update(__assign(__assign({}, options.xAxis), (_a = { offsets: offsets }, _a[chart.inverted ? 'width' : 'height'] = this.height, _a[chart.inverted ? 'height' : 'width'] = void 0, _a)), false);\n this.yAxis.update(__assign(__assign({}, options.yAxis), (_b = {}, _b[chart.inverted ? 'width' : 'height'] = this.height, _b)), false);\n }\n }\n if (redraw) {\n chart.redraw();\n }\n };\n /**\n * Render the navigator\n *\n * @private\n * @function Highcharts.Navigator#render\n * @param {number} min\n * X axis value minimum\n * @param {number} max\n * X axis value maximum\n * @param {number} [pxMin]\n * Pixel value minimum\n * @param {number} [pxMax]\n * Pixel value maximum\n */\n Navigator.prototype.render = function (min, max, pxMin, pxMax) {\n var navigator = this,\n chart = navigator.chart,\n xAxis = navigator.xAxis,\n pointRange = xAxis.pointRange || 0,\n scrollbarXAxis = xAxis.navigatorAxis.fake ? chart.xAxis[0] : xAxis,\n navigatorEnabled = navigator.navigatorEnabled,\n rendered = navigator.rendered,\n inverted = chart.inverted,\n minRange = chart.xAxis[0].minRange,\n maxRange = chart.xAxis[0].options.maxRange,\n scrollButtonSize = navigator.scrollButtonSize;\n var navigatorWidth,\n scrollbarLeft,\n scrollbarTop,\n scrollbarHeight = navigator.scrollbarHeight,\n navigatorSize,\n verb;\n // Don't redraw while moving the handles (#4703).\n if (this.hasDragged && !Navigator_defined(pxMin)) {\n return;\n }\n if (this.isDirty) {\n // Update DOM navigator elements\n this.renderElements();\n }\n min = Navigator_correctFloat(min - pointRange / 2);\n max = Navigator_correctFloat(max + pointRange / 2);\n // Don't render the navigator until we have data (#486, #4202, #5172).\n if (!Navigator_isNumber(min) || !Navigator_isNumber(max)) {\n // However, if navigator was already rendered, we may need to resize\n // it. For example hidden series, but visible navigator (#6022).\n if (rendered) {\n pxMin = 0;\n pxMax = Navigator_pick(xAxis.width, scrollbarXAxis.width);\n }\n else {\n return;\n }\n }\n navigator.left = Navigator_pick(xAxis.left, \n // In case of scrollbar only, without navigator\n chart.plotLeft + scrollButtonSize +\n (inverted ? chart.plotWidth : 0));\n var zoomedMax = navigator.size = navigatorSize = Navigator_pick(xAxis.len, (inverted ? chart.plotHeight : chart.plotWidth) -\n 2 * scrollButtonSize);\n if (inverted) {\n navigatorWidth = scrollbarHeight;\n }\n else {\n navigatorWidth = navigatorSize + 2 * scrollButtonSize;\n }\n // Get the pixel position of the handles\n pxMin = Navigator_pick(pxMin, xAxis.toPixels(min, true));\n pxMax = Navigator_pick(pxMax, xAxis.toPixels(max, true));\n // Verify (#1851, #2238)\n if (!Navigator_isNumber(pxMin) || Math.abs(pxMin) === Infinity) {\n pxMin = 0;\n pxMax = navigatorWidth;\n }\n // Are we below the minRange? (#2618, #6191)\n var newMin = xAxis.toValue(pxMin,\n true),\n newMax = xAxis.toValue(pxMax,\n true),\n currentRange = Math.abs(Navigator_correctFloat(newMax - newMin));\n if (currentRange < minRange) {\n if (this.grabbedLeft) {\n pxMin = xAxis.toPixels(newMax - minRange - pointRange, true);\n }\n else if (this.grabbedRight) {\n pxMax = xAxis.toPixels(newMin + minRange + pointRange, true);\n }\n }\n else if (Navigator_defined(maxRange) &&\n Navigator_correctFloat(currentRange - pointRange) > maxRange) {\n if (this.grabbedLeft) {\n pxMin = xAxis.toPixels(newMax - maxRange - pointRange, true);\n }\n else if (this.grabbedRight) {\n pxMax = xAxis.toPixels(newMin + maxRange + pointRange, true);\n }\n }\n // Handles are allowed to cross, but never exceed the plot area\n navigator.zoomedMax = clamp(Math.max(pxMin, pxMax), 0, zoomedMax);\n navigator.zoomedMin = clamp(navigator.fixedWidth ?\n navigator.zoomedMax - navigator.fixedWidth :\n Math.min(pxMin, pxMax), 0, zoomedMax);\n navigator.range = navigator.zoomedMax - navigator.zoomedMin;\n zoomedMax = Math.round(navigator.zoomedMax);\n var zoomedMin = Math.round(navigator.zoomedMin);\n if (navigatorEnabled) {\n navigator.navigatorGroup.attr({\n visibility: 'inherit'\n });\n // Place elements\n verb = rendered && !navigator.hasDragged ? 'animate' : 'attr';\n navigator.drawMasks(zoomedMin, zoomedMax, inverted, verb);\n navigator.drawOutline(zoomedMin, zoomedMax, inverted, verb);\n if (navigator.navigatorOptions.handles.enabled) {\n navigator.drawHandle(zoomedMin, 0, inverted, verb);\n navigator.drawHandle(zoomedMax, 1, inverted, verb);\n }\n }\n if (navigator.scrollbar) {\n if (inverted) {\n scrollbarTop = navigator.top - scrollButtonSize;\n scrollbarLeft = navigator.left - scrollbarHeight +\n (navigatorEnabled || !scrollbarXAxis.opposite ? 0 :\n // Multiple axes has offsets:\n (scrollbarXAxis.titleOffset || 0) +\n // Self margin from the axis.title\n scrollbarXAxis.axisTitleMargin);\n scrollbarHeight = navigatorSize + 2 * scrollButtonSize;\n }\n else {\n scrollbarTop = navigator.top + (navigatorEnabled ?\n navigator.height :\n -scrollbarHeight);\n scrollbarLeft = navigator.left - scrollButtonSize;\n }\n // Reposition scrollbar\n navigator.scrollbar.position(scrollbarLeft, scrollbarTop, navigatorWidth, scrollbarHeight);\n // Keep scale 0-1\n navigator.scrollbar.setRange(\n // Use real value, not rounded because range can be very small\n // (#1716)\n navigator.zoomedMin / (navigatorSize || 1), navigator.zoomedMax / (navigatorSize || 1));\n }\n navigator.rendered = true;\n this.isDirty = false;\n Navigator_fireEvent(this, 'afterRender');\n };\n /**\n * Set up the mouse and touch events for the navigator\n *\n * @private\n * @function Highcharts.Navigator#addMouseEvents\n */\n Navigator.prototype.addMouseEvents = function () {\n var navigator = this,\n chart = navigator.chart,\n container = chart.container;\n var eventsToUnbind = [],\n mouseMoveHandler,\n mouseUpHandler;\n /**\n * Create mouse events' handlers.\n * Make them as separate functions to enable wrapping them:\n */\n navigator.mouseMoveHandler = mouseMoveHandler = function (e) {\n navigator.onMouseMove(e);\n };\n navigator.mouseUpHandler = mouseUpHandler = function (e) {\n navigator.onMouseUp(e);\n };\n // Add shades and handles mousedown events\n eventsToUnbind = navigator.getPartsEvents('mousedown');\n eventsToUnbind.push(\n // Add mouse move and mouseup events. These are bind to doc/div,\n // because Navigator.grabbedSomething flags are stored in mousedown\n // events\n Navigator_addEvent(chart.renderTo, 'mousemove', mouseMoveHandler), Navigator_addEvent(container.ownerDocument, 'mouseup', mouseUpHandler), \n // Touch events\n Navigator_addEvent(chart.renderTo, 'touchmove', mouseMoveHandler), Navigator_addEvent(container.ownerDocument, 'touchend', mouseUpHandler));\n eventsToUnbind.concat(navigator.getPartsEvents('touchstart'));\n navigator.eventsToUnbind = eventsToUnbind;\n // Data events\n if (navigator.series && navigator.series[0]) {\n eventsToUnbind.push(Navigator_addEvent(navigator.series[0].xAxis, 'foundExtremes', function () {\n chart.navigator.modifyNavigatorAxisExtremes();\n }));\n }\n };\n /**\n * Generate events for handles and masks\n *\n * @private\n * @function Highcharts.Navigator#getPartsEvents\n *\n * @param {string} eventName\n * Event name handler, 'mousedown' or 'touchstart'\n *\n * @return {Array<Function>}\n * An array of functions to remove navigator functions from the\n * events again.\n */\n Navigator.prototype.getPartsEvents = function (eventName) {\n var navigator = this,\n events = [];\n ['shades', 'handles'].forEach(function (name) {\n navigator[name].forEach(function (navigatorItem, index) {\n events.push(Navigator_addEvent(navigatorItem.element, eventName, function (e) {\n navigator[name + 'Mousedown'](e, index);\n }));\n });\n });\n return events;\n };\n /**\n * Mousedown on a shaded mask, either:\n *\n * - will be stored for future drag&drop\n *\n * - will directly shift to a new range\n *\n * @private\n * @function Highcharts.Navigator#shadesMousedown\n *\n * @param {Highcharts.PointerEventObject} e\n * Mouse event\n *\n * @param {number} index\n * Index of a mask in Navigator.shades array\n */\n Navigator.prototype.shadesMousedown = function (e, index) {\n var _a;\n e = ((_a = this.chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(e)) || e;\n var navigator = this,\n chart = navigator.chart,\n xAxis = navigator.xAxis,\n zoomedMin = navigator.zoomedMin,\n navigatorSize = navigator.size,\n range = navigator.range;\n var navigatorPosition = navigator.left,\n chartX = e.chartX,\n fixedMax,\n fixedMin,\n ext,\n left;\n // For inverted chart, swap some options:\n if (chart.inverted) {\n chartX = e.chartY;\n navigatorPosition = navigator.top;\n }\n if (index === 1) {\n // Store information for drag&drop\n navigator.grabbedCenter = chartX;\n navigator.fixedWidth = range;\n navigator.dragOffset = chartX - zoomedMin;\n }\n else {\n // Shift the range by clicking on shaded areas\n left = chartX - navigatorPosition - range / 2;\n if (index === 0) {\n left = Math.max(0, left);\n }\n else if (index === 2 && left + range >= navigatorSize) {\n left = navigatorSize - range;\n if (navigator.reversedExtremes) {\n // #7713\n left -= range;\n fixedMin = navigator.getUnionExtremes().dataMin;\n }\n else {\n // #2293, #3543\n fixedMax = navigator.getUnionExtremes().dataMax;\n }\n }\n if (left !== zoomedMin) { // It has actually moved\n navigator.fixedWidth = range; // #1370\n ext = xAxis.navigatorAxis.toFixedRange(left, left + range, fixedMin, fixedMax);\n if (Navigator_defined(ext.min)) { // #7411\n Navigator_fireEvent(this, 'setRange', {\n min: Math.min(ext.min, ext.max),\n max: Math.max(ext.min, ext.max),\n redraw: true,\n eventArguments: {\n trigger: 'navigator'\n }\n });\n }\n }\n }\n };\n /**\n * Mousedown on a handle mask.\n * Will store necessary information for drag&drop.\n *\n * @private\n * @function Highcharts.Navigator#handlesMousedown\n * @param {Highcharts.PointerEventObject} e\n * Mouse event\n * @param {number} index\n * Index of a handle in Navigator.handles array\n */\n Navigator.prototype.handlesMousedown = function (e, index) {\n var _a;\n e = ((_a = this.chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(e)) || e;\n var navigator = this,\n chart = navigator.chart,\n baseXAxis = chart.xAxis[0], \n // For reversed axes, min and max are changed,\n // so the other extreme should be stored\n reverse = navigator.reversedExtremes;\n if (index === 0) {\n // Grab the left handle\n navigator.grabbedLeft = true;\n navigator.otherHandlePos = navigator.zoomedMax;\n navigator.fixedExtreme = reverse ? baseXAxis.min : baseXAxis.max;\n }\n else {\n // Grab the right handle\n navigator.grabbedRight = true;\n navigator.otherHandlePos = navigator.zoomedMin;\n navigator.fixedExtreme = reverse ? baseXAxis.max : baseXAxis.min;\n }\n chart.setFixedRange(void 0);\n };\n /**\n * Mouse move event based on x/y mouse position.\n *\n * @private\n * @function Highcharts.Navigator#onMouseMove\n *\n * @param {Highcharts.PointerEventObject} e\n * Mouse event\n */\n Navigator.prototype.onMouseMove = function (e) {\n var _a;\n var navigator = this,\n chart = navigator.chart,\n navigatorSize = navigator.navigatorSize,\n range = navigator.range,\n dragOffset = navigator.dragOffset,\n inverted = chart.inverted;\n var left = navigator.left,\n chartX;\n // In iOS, a mousemove event with e.pageX === 0 is fired when holding\n // the finger down in the center of the scrollbar. This should be\n // ignored.\n if (!e.touches || e.touches[0].pageX !== 0) { // #4696\n e = ((_a = chart.pointer) === null || _a === void 0 ? void 0 : _a.normalize(e)) || e;\n chartX = e.chartX;\n // Swap some options for inverted chart\n if (inverted) {\n left = navigator.top;\n chartX = e.chartY;\n }\n // Drag left handle or top handle\n if (navigator.grabbedLeft) {\n navigator.hasDragged = true;\n navigator.render(0, 0, chartX - left, navigator.otherHandlePos);\n // Drag right handle or bottom handle\n }\n else if (navigator.grabbedRight) {\n navigator.hasDragged = true;\n navigator.render(0, 0, navigator.otherHandlePos, chartX - left);\n // Drag scrollbar or open area in navigator\n }\n else if (navigator.grabbedCenter) {\n navigator.hasDragged = true;\n if (chartX < dragOffset) { // Outside left\n chartX = dragOffset;\n // Outside right\n }\n else if (chartX >\n navigatorSize + dragOffset - range) {\n chartX = navigatorSize + dragOffset - range;\n }\n navigator.render(0, 0, chartX - dragOffset, chartX - dragOffset + range);\n }\n if (navigator.hasDragged &&\n navigator.scrollbar &&\n Navigator_pick(navigator.scrollbar.options.liveRedraw, \n // By default, don't run live redraw on touch\n // devices or if the chart is in boost.\n !Navigator_isTouchDevice &&\n !this.chart.boosted)) {\n e.DOMType = e.type;\n setTimeout(function () {\n navigator.onMouseUp(e);\n }, 0);\n }\n }\n };\n /**\n * Mouse up event based on x/y mouse position.\n *\n * @private\n * @function Highcharts.Navigator#onMouseUp\n * @param {Highcharts.PointerEventObject} e\n * Mouse event\n */\n Navigator.prototype.onMouseUp = function (e) {\n var navigator = this,\n chart = navigator.chart,\n xAxis = navigator.xAxis,\n scrollbar = navigator.scrollbar,\n DOMEvent = e.DOMEvent || e,\n inverted = chart.inverted,\n verb = navigator.rendered && !navigator.hasDragged ?\n 'animate' : 'attr';\n var zoomedMax,\n zoomedMin,\n unionExtremes,\n fixedMin,\n fixedMax,\n ext;\n if (\n // MouseUp is called for both, navigator and scrollbar (that order),\n // which causes calling afterSetExtremes twice. Prevent first call\n // by checking if scrollbar is going to set new extremes (#6334)\n (navigator.hasDragged && (!scrollbar || !scrollbar.hasDragged)) ||\n e.trigger === 'scrollbar') {\n unionExtremes = navigator.getUnionExtremes();\n // When dragging one handle, make sure the other one doesn't change\n if (navigator.zoomedMin === navigator.otherHandlePos) {\n fixedMin = navigator.fixedExtreme;\n }\n else if (navigator.zoomedMax === navigator.otherHandlePos) {\n fixedMax = navigator.fixedExtreme;\n }\n // Snap to right edge (#4076)\n if (navigator.zoomedMax === navigator.size) {\n fixedMax = navigator.reversedExtremes ?\n unionExtremes.dataMin :\n unionExtremes.dataMax;\n }\n // Snap to left edge (#7576)\n if (navigator.zoomedMin === 0) {\n fixedMin = navigator.reversedExtremes ?\n unionExtremes.dataMax :\n unionExtremes.dataMin;\n }\n ext = xAxis.navigatorAxis.toFixedRange(navigator.zoomedMin, navigator.zoomedMax, fixedMin, fixedMax);\n if (Navigator_defined(ext.min)) {\n Navigator_fireEvent(this, 'setRange', {\n min: Math.min(ext.min, ext.max),\n max: Math.max(ext.min, ext.max),\n redraw: true,\n animation: navigator.hasDragged ? false : null,\n eventArguments: {\n trigger: 'navigator',\n triggerOp: 'navigator-drag',\n DOMEvent: DOMEvent // #1838\n }\n });\n }\n }\n if (e.DOMType !== 'mousemove' &&\n e.DOMType !== 'touchmove') {\n navigator.grabbedLeft = navigator.grabbedRight =\n navigator.grabbedCenter = navigator.fixedWidth =\n navigator.fixedExtreme = navigator.otherHandlePos =\n navigator.hasDragged = navigator.dragOffset = null;\n }\n // Update position of navigator shades, outline and handles (#12573)\n if (navigator.navigatorEnabled &&\n Navigator_isNumber(navigator.zoomedMin) &&\n Navigator_isNumber(navigator.zoomedMax)) {\n zoomedMin = Math.round(navigator.zoomedMin);\n zoomedMax = Math.round(navigator.zoomedMax);\n if (navigator.shades) {\n navigator.drawMasks(zoomedMin, zoomedMax, inverted, verb);\n }\n if (navigator.outline) {\n navigator.drawOutline(zoomedMin, zoomedMax, inverted, verb);\n }\n if (navigator.navigatorOptions.handles.enabled &&\n Object.keys(navigator.handles).length ===\n navigator.handles.length) {\n navigator.drawHandle(zoomedMin, 0, inverted, verb);\n navigator.drawHandle(zoomedMax, 1, inverted, verb);\n }\n }\n };\n /**\n * Removes the event handlers attached previously with addEvents.\n *\n * @private\n * @function Highcharts.Navigator#removeEvents\n */\n Navigator.prototype.removeEvents = function () {\n if (this.eventsToUnbind) {\n this.eventsToUnbind.forEach(function (unbind) {\n unbind();\n });\n this.eventsToUnbind = void 0;\n }\n this.removeBaseSeriesEvents();\n };\n /**\n * Remove data events.\n *\n * @private\n * @function Highcharts.Navigator#removeBaseSeriesEvents\n */\n Navigator.prototype.removeBaseSeriesEvents = function () {\n var baseSeries = this.baseSeries || [];\n if (this.navigatorEnabled && baseSeries[0]) {\n if (this.navigatorOptions.adaptToUpdatedData !== false) {\n baseSeries.forEach(function (series) {\n Navigator_removeEvent(series, 'updatedData', this.updatedDataHandler);\n }, this);\n }\n // We only listen for extremes-events on the first baseSeries\n if (baseSeries[0].xAxis) {\n Navigator_removeEvent(baseSeries[0].xAxis, 'foundExtremes', this.modifyBaseAxisExtremes);\n }\n }\n };\n /**\n * Calculate the navigator xAxis offsets\n *\n * @private\n */\n Navigator.prototype.getXAxisOffsets = function () {\n return (this.chart.inverted ?\n [this.scrollButtonSize, 0, -this.scrollButtonSize, 0] :\n [0, -this.scrollButtonSize, 0, this.scrollButtonSize]);\n };\n /**\n * Initialize the Navigator object\n *\n * @private\n * @function Highcharts.Navigator#init\n */\n Navigator.prototype.init = function (chart) {\n var _a;\n var chartOptions = chart.options,\n navigatorOptions = chartOptions.navigator || {},\n navigatorEnabled = navigatorOptions.enabled,\n scrollbarOptions = chartOptions.scrollbar || {},\n scrollbarEnabled = scrollbarOptions.enabled,\n height = navigatorEnabled && navigatorOptions.height || 0,\n scrollbarHeight = scrollbarEnabled && scrollbarOptions.height || 0,\n scrollButtonSize = scrollbarOptions.buttonsEnabled && scrollbarHeight || 0;\n this.handles = [];\n this.shades = [];\n this.chart = chart;\n this.setBaseSeries();\n this.height = height;\n this.scrollbarHeight = scrollbarHeight;\n this.scrollButtonSize = scrollButtonSize;\n this.scrollbarEnabled = scrollbarEnabled;\n this.navigatorEnabled = navigatorEnabled;\n this.navigatorOptions = navigatorOptions;\n this.scrollbarOptions = scrollbarOptions;\n this.setOpposite();\n var navigator = this,\n baseSeries = navigator.baseSeries,\n xAxisIndex = chart.xAxis.length,\n yAxisIndex = chart.yAxis.length,\n baseXaxis = baseSeries && baseSeries[0] && baseSeries[0].xAxis ||\n chart.xAxis[0] || { options: {} };\n chart.isDirtyBox = true;\n if (navigator.navigatorEnabled) {\n var offsets = this.getXAxisOffsets();\n // An x axis is required for scrollbar also\n navigator.xAxis = new (highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_default())(chart, Navigator_merge({\n // Inherit base xAxis' break, ordinal options and overscroll\n breaks: baseXaxis.options.breaks,\n ordinal: baseXaxis.options.ordinal,\n overscroll: baseXaxis.options.overscroll\n }, navigatorOptions.xAxis, {\n type: 'datetime',\n yAxis: (_a = navigatorOptions.yAxis) === null || _a === void 0 ? void 0 : _a.id,\n index: xAxisIndex,\n isInternal: true,\n offset: 0,\n keepOrdinalPadding: true, // #2436\n startOnTick: false,\n endOnTick: false,\n // Inherit base xAxis' padding when ordinal is false (#16915).\n minPadding: baseXaxis.options.ordinal ? 0 :\n baseXaxis.options.minPadding,\n maxPadding: baseXaxis.options.ordinal ? 0 :\n baseXaxis.options.maxPadding,\n zoomEnabled: false\n }, chart.inverted ? {\n offsets: offsets,\n width: height\n } : {\n offsets: offsets,\n height: height\n }), 'xAxis');\n navigator.yAxis = new (highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_default())(chart, Navigator_merge(navigatorOptions.yAxis, {\n alignTicks: false,\n offset: 0,\n index: yAxisIndex,\n isInternal: true,\n reversed: Navigator_pick((navigatorOptions.yAxis &&\n navigatorOptions.yAxis.reversed), (chart.yAxis[0] && chart.yAxis[0].reversed), false), // #14060\n zoomEnabled: false\n }, chart.inverted ? {\n width: height\n } : {\n height: height\n }), 'yAxis');\n // If we have a base series, initialize the navigator series\n if (baseSeries || navigatorOptions.series.data) {\n navigator.updateNavigatorSeries(false);\n // If not, set up an event to listen for added series\n }\n else if (chart.series.length === 0) {\n navigator.unbindRedraw = Navigator_addEvent(chart, 'beforeRedraw', function () {\n // We've got one, now add it as base\n if (chart.series.length > 0 && !navigator.series) {\n navigator.setBaseSeries();\n navigator.unbindRedraw(); // Reset\n }\n });\n }\n navigator.reversedExtremes = (chart.inverted && !navigator.xAxis.reversed) || (!chart.inverted && navigator.xAxis.reversed);\n // Render items, so we can bind events to them:\n navigator.renderElements();\n // Add mouse events\n navigator.addMouseEvents();\n // In case of scrollbar only, fake an x axis to get translation\n }\n else {\n navigator.xAxis = {\n chart: chart,\n navigatorAxis: {\n fake: true\n },\n translate: function (value, reverse) {\n var axis = chart.xAxis[0], ext = axis.getExtremes(), scrollTrackWidth = axis.len - 2 * scrollButtonSize, min = numExt('min', axis.options.min, ext.dataMin), valueRange = numExt('max', axis.options.max, ext.dataMax) - min;\n return reverse ?\n // From pixel to value\n (value * valueRange / scrollTrackWidth) + min :\n // From value to pixel\n scrollTrackWidth * (value - min) / valueRange;\n },\n toPixels: function (value) {\n return this.translate(value);\n },\n toValue: function (value) {\n return this.translate(value, true);\n }\n };\n navigator.xAxis.navigatorAxis.axis = navigator.xAxis;\n navigator.xAxis.navigatorAxis.toFixedRange = (NavigatorAxisComposition.prototype.toFixedRange.bind(navigator.xAxis.navigatorAxis));\n }\n // Initialize the scrollbar\n if (chart.options.scrollbar.enabled) {\n var options = Navigator_merge(chart.options.scrollbar, { vertical: chart.inverted });\n if (!Navigator_isNumber(options.margin) && navigator.navigatorEnabled) {\n options.margin = chart.inverted ? -3 : 3;\n }\n chart.scrollbar = navigator.scrollbar = new Scrollbar_Scrollbar(chart.renderer, options, chart);\n Navigator_addEvent(navigator.scrollbar, 'changed', function (e) {\n var range = navigator.size,\n to = range * this.to,\n from = range * this.from;\n navigator.hasDragged = navigator.scrollbar.hasDragged;\n navigator.render(0, 0, from, to);\n if (this.shouldUpdateExtremes(e.DOMType)) {\n setTimeout(function () {\n navigator.onMouseUp(e);\n });\n }\n });\n }\n // Add data events\n navigator.addBaseSeriesEvents();\n // Add redraw events\n navigator.addChartEvents();\n };\n /**\n * Set the opposite property on navigator\n *\n * @private\n */\n Navigator.prototype.setOpposite = function () {\n var navigatorOptions = this.navigatorOptions,\n navigatorEnabled = this.navigatorEnabled,\n chart = this.chart;\n this.opposite = Navigator_pick(navigatorOptions.opposite, Boolean(!navigatorEnabled && chart.inverted)); // #6262\n };\n /**\n * Get the union data extremes of the chart - the outer data extremes of the\n * base X axis and the navigator axis.\n *\n * @private\n * @function Highcharts.Navigator#getUnionExtremes\n */\n Navigator.prototype.getUnionExtremes = function (returnFalseOnNoBaseSeries) {\n var baseAxis = this.chart.xAxis[0],\n time = this.chart.time,\n navAxis = this.xAxis,\n navAxisOptions = navAxis.options,\n baseAxisOptions = baseAxis.options;\n var ret;\n if (!returnFalseOnNoBaseSeries || baseAxis.dataMin !== null) {\n ret = {\n dataMin: Navigator_pick(// #4053\n time.parse(navAxisOptions === null || navAxisOptions === void 0 ? void 0 : navAxisOptions.min), numExt('min', time.parse(baseAxisOptions.min), baseAxis.dataMin, navAxis.dataMin, navAxis.min)),\n dataMax: Navigator_pick(time.parse(navAxisOptions === null || navAxisOptions === void 0 ? void 0 : navAxisOptions.max), numExt('max', time.parse(baseAxisOptions.max), baseAxis.dataMax, navAxis.dataMax, navAxis.max))\n };\n }\n return ret;\n };\n /**\n * Set the base series and update the navigator series from this. With a bit\n * of modification we should be able to make this an API method to be called\n * from the outside\n *\n * @private\n * @function Highcharts.Navigator#setBaseSeries\n * @param {Highcharts.SeriesOptionsType} [baseSeriesOptions]\n * Additional series options for a navigator\n * @param {boolean} [redraw]\n * Whether to redraw after update.\n */\n Navigator.prototype.setBaseSeries = function (baseSeriesOptions, redraw) {\n var chart = this.chart,\n baseSeries = this.baseSeries = [];\n baseSeriesOptions = (baseSeriesOptions ||\n chart.options && chart.options.navigator.baseSeries ||\n (chart.series.length ?\n // Find the first non-navigator series (#8430)\n find(chart.series, function (s) { return (!s.options.isInternal); }).index :\n 0));\n // Iterate through series and add the ones that should be shown in\n // navigator.\n (chart.series || []).forEach(function (series, i) {\n if (\n // Don't include existing nav series\n !series.options.isInternal &&\n (series.options.showInNavigator ||\n (i === baseSeriesOptions ||\n series.options.id === baseSeriesOptions) &&\n series.options.showInNavigator !== false)) {\n baseSeries.push(series);\n }\n });\n // When run after render, this.xAxis already exists\n if (this.xAxis && !this.xAxis.navigatorAxis.fake) {\n this.updateNavigatorSeries(true, redraw);\n }\n };\n /**\n * Update series in the navigator from baseSeries, adding new if does not\n * exist.\n *\n * @private\n * @function Highcharts.Navigator.updateNavigatorSeries\n */\n Navigator.prototype.updateNavigatorSeries = function (addEvents, redraw) {\n var _a,\n _b;\n var navigator = this,\n chart = navigator.chart,\n baseSeries = navigator.baseSeries,\n navSeriesMixin = {\n enableMouseTracking: false,\n index: null, // #6162\n linkedTo: null, // #6734\n group: 'nav', // For columns\n padXAxis: false,\n xAxis: (_a = this.navigatorOptions.xAxis) === null || _a === void 0 ? void 0 : _a.id,\n yAxis: (_b = this.navigatorOptions.yAxis) === null || _b === void 0 ? void 0 : _b.id,\n showInLegend: false,\n stacking: void 0, // #4823\n isInternal: true,\n states: {\n inactive: {\n opacity: 1\n }\n }\n }, \n // Remove navigator series that are no longer in the baseSeries\n navigatorSeries = navigator.series =\n (navigator.series || []).filter(function (navSeries) {\n var base = navSeries.baseSeries;\n if (baseSeries.indexOf(base) < 0) { // Not in array\n // If there is still a base series connected to this\n // series, remove event handler and reference.\n if (base) {\n Navigator_removeEvent(base, 'updatedData', navigator.updatedDataHandler);\n delete base.navigatorSeries;\n }\n // Kill the nav series. It may already have been\n // destroyed (#8715).\n if (navSeries.chart) {\n navSeries.destroy();\n }\n return false;\n }\n return true;\n });\n var baseOptions,\n mergedNavSeriesOptions,\n chartNavigatorSeriesOptions = navigator.navigatorOptions.series,\n baseNavigatorOptions;\n // Go through each base series and merge the options to create new\n // series\n if (baseSeries && baseSeries.length) {\n baseSeries.forEach(function (base) {\n var _a;\n var linkedNavSeries = base.navigatorSeries,\n userNavOptions = Navigator_extend(\n // Grab color and visibility from base as default\n {\n color: base.color,\n visible: base.visible\n }, !isArray(chartNavigatorSeriesOptions) ?\n chartNavigatorSeriesOptions :\n Navigator_defaultOptions.navigator.series);\n // Don't update if the series exists in nav and we have disabled\n // adaptToUpdatedData.\n if (linkedNavSeries &&\n navigator.navigatorOptions.adaptToUpdatedData === false) {\n return;\n }\n navSeriesMixin.name = 'Navigator ' + baseSeries.length;\n baseOptions = base.options || {};\n baseNavigatorOptions = baseOptions.navigatorOptions || {};\n // The dataLabels options are not merged correctly\n // if the settings are an array, #13847.\n userNavOptions.dataLabels = splat(userNavOptions.dataLabels);\n mergedNavSeriesOptions = Navigator_merge(baseOptions, navSeriesMixin, userNavOptions, baseNavigatorOptions);\n // Once nav series type is resolved, pick correct pointRange\n mergedNavSeriesOptions.pointRange = Navigator_pick(\n // Stricte set pointRange in options\n userNavOptions.pointRange, baseNavigatorOptions.pointRange, \n // Fallback to default values, e.g. `null` for column\n Navigator_defaultOptions.plotOptions[mergedNavSeriesOptions.type || 'line'].pointRange);\n // Merge data separately. Do a slice to avoid mutating the\n // navigator options from base series (#4923).\n var navigatorSeriesData = baseNavigatorOptions.data || userNavOptions.data;\n navigator.hasNavigatorData =\n navigator.hasNavigatorData || !!navigatorSeriesData;\n mergedNavSeriesOptions.data = (navigatorSeriesData ||\n ((_a = baseOptions.data) === null || _a === void 0 ? void 0 : _a.slice(0)));\n // Update or add the series\n if (linkedNavSeries && linkedNavSeries.options) {\n linkedNavSeries.update(mergedNavSeriesOptions, redraw);\n }\n else {\n base.navigatorSeries = chart.initSeries(mergedNavSeriesOptions);\n // Set data on initial run with dataSorting enabled (#20318)\n chart.setSortedData();\n base.navigatorSeries.baseSeries = base; // Store ref\n navigatorSeries.push(base.navigatorSeries);\n }\n });\n }\n // If user has defined data (and no base series) or explicitly defined\n // navigator.series as an array, we create these series on top of any\n // base series.\n if (chartNavigatorSeriesOptions.data &&\n !(baseSeries && baseSeries.length) ||\n isArray(chartNavigatorSeriesOptions)) {\n navigator.hasNavigatorData = false;\n // Allow navigator.series to be an array\n chartNavigatorSeriesOptions =\n splat(chartNavigatorSeriesOptions);\n chartNavigatorSeriesOptions.forEach(function (userSeriesOptions, i) {\n navSeriesMixin.name =\n 'Navigator ' + (navigatorSeries.length + 1);\n mergedNavSeriesOptions = Navigator_merge(Navigator_defaultOptions.navigator.series, {\n // Since we don't have a base series to pull color from,\n // try to fake it by using color from series with same\n // index. Otherwise pull from the colors array. We need\n // an explicit color as otherwise updates will increment\n // color counter and we'll get a new color for each\n // update of the nav series.\n color: chart.series[i] &&\n !chart.series[i].options.isInternal &&\n chart.series[i].color ||\n chart.options.colors[i] ||\n chart.options.colors[0]\n }, navSeriesMixin, userSeriesOptions);\n mergedNavSeriesOptions.data = userSeriesOptions.data;\n if (mergedNavSeriesOptions.data) {\n navigator.hasNavigatorData = true;\n navigatorSeries.push(chart.initSeries(mergedNavSeriesOptions));\n }\n });\n }\n if (addEvents) {\n this.addBaseSeriesEvents();\n }\n };\n /**\n * Add data events.\n * For example when main series is updated we need to recalculate extremes\n *\n * @private\n * @function Highcharts.Navigator#addBaseSeriesEvent\n */\n Navigator.prototype.addBaseSeriesEvents = function () {\n var _this = this;\n var navigator = this,\n baseSeries = navigator.baseSeries || [];\n // Bind modified extremes event to first base's xAxis only.\n // In event of > 1 base-xAxes, the navigator will ignore those.\n // Adding this multiple times to the same axis is no problem, as\n // duplicates should be discarded by the browser.\n if (baseSeries[0] && baseSeries[0].xAxis) {\n baseSeries[0].eventsToUnbind.push(Navigator_addEvent(baseSeries[0].xAxis, 'foundExtremes', this.modifyBaseAxisExtremes));\n }\n baseSeries.forEach(function (base) {\n // Link base series show/hide to navigator series visibility\n base.eventsToUnbind.push(Navigator_addEvent(base, 'show', function () {\n if (this.navigatorSeries) {\n this.navigatorSeries.setVisible(true, false);\n }\n }));\n base.eventsToUnbind.push(Navigator_addEvent(base, 'hide', function () {\n if (this.navigatorSeries) {\n this.navigatorSeries.setVisible(false, false);\n }\n }));\n // Respond to updated data in the base series, unless explicitly\n // not adapting to data changes.\n if (_this.navigatorOptions.adaptToUpdatedData !== false) {\n if (base.xAxis) {\n base.eventsToUnbind.push(Navigator_addEvent(base, 'updatedData', _this.updatedDataHandler));\n }\n }\n // Handle series removal\n base.eventsToUnbind.push(Navigator_addEvent(base, 'remove', function () {\n if (baseSeries) {\n erase(baseSeries, base); // #21043\n }\n if (this.navigatorSeries && navigator.series) {\n erase(navigator.series, this.navigatorSeries);\n if (Navigator_defined(this.navigatorSeries.options)) {\n this.navigatorSeries.remove(false);\n }\n delete this.navigatorSeries;\n }\n }));\n });\n };\n /**\n * Get minimum from all base series connected to the navigator\n * @private\n * @param {number} currentSeriesMin\n * Minium from the current series\n * @return {number}\n * Minimum from all series\n */\n Navigator.prototype.getBaseSeriesMin = function (currentSeriesMin) {\n return this.baseSeries.reduce(function (min, series) {\n var _a;\n // #10193\n return Math.min(min, (_a = series.getColumn('x')[0]) !== null && _a !== void 0 ? _a : min);\n }, currentSeriesMin);\n };\n /**\n * Set the navigator x axis extremes to reflect the total. The navigator\n * extremes should always be the extremes of the union of all series in the\n * chart as well as the navigator series.\n *\n * @private\n * @function Highcharts.Navigator#modifyNavigatorAxisExtremes\n */\n Navigator.prototype.modifyNavigatorAxisExtremes = function () {\n var xAxis = this.xAxis;\n if (typeof xAxis.getExtremes !== 'undefined') {\n var unionExtremes = this.getUnionExtremes(true);\n if (unionExtremes &&\n (unionExtremes.dataMin !== xAxis.min ||\n unionExtremes.dataMax !== xAxis.max)) {\n xAxis.min = unionExtremes.dataMin;\n xAxis.max = unionExtremes.dataMax;\n }\n }\n };\n /**\n * Hook to modify the base axis extremes with information from the Navigator\n *\n * @private\n * @function Highcharts.Navigator#modifyBaseAxisExtremes\n */\n Navigator.prototype.modifyBaseAxisExtremes = function () {\n var _a;\n var baseXAxis = this,\n navigator = baseXAxis.chart.navigator,\n baseExtremes = baseXAxis.getExtremes(),\n baseMin = baseExtremes.min,\n baseMax = baseExtremes.max,\n baseDataMin = baseExtremes.dataMin,\n baseDataMax = baseExtremes.dataMax,\n range = baseMax - baseMin,\n stickToMin = navigator.stickToMin,\n stickToMax = navigator.stickToMax,\n overscroll = Navigator_pick((_a = baseXAxis.ordinal) === null || _a === void 0 ? void 0 : _a.convertOverscroll(baseXAxis.options.overscroll), 0),\n navigatorSeries = navigator.series && navigator.series[0],\n hasSetExtremes = !!baseXAxis.setExtremes, \n // When the extremes have been set by range selector button, don't\n // stick to min or max. The range selector buttons will handle the\n // extremes. (#5489)\n unmutable = baseXAxis.eventArgs &&\n baseXAxis.eventArgs.trigger === 'rangeSelectorButton';\n var newMax,\n newMin;\n if (!unmutable) {\n // If the zoomed range is already at the min, move it to the right\n // as new data comes in\n if (stickToMin) {\n newMin = baseDataMin;\n newMax = newMin + range;\n }\n // If the zoomed range is already at the max, move it to the right\n // as new data comes in\n if (stickToMax) {\n newMax = baseDataMax + overscroll;\n // If stickToMin is true, the new min value is set above\n if (!stickToMin) {\n newMin = Math.max(baseDataMin, // Don't go below data extremes (#13184)\n newMax - range, navigator.getBaseSeriesMin(navigatorSeries && navigatorSeries.xData ?\n navigatorSeries.xData[0] :\n -Number.MAX_VALUE));\n }\n }\n // Update the extremes\n if (hasSetExtremes && (stickToMin || stickToMax)) {\n if (Navigator_isNumber(newMin)) {\n baseXAxis.min = baseXAxis.userMin = newMin;\n baseXAxis.max = baseXAxis.userMax = newMax;\n }\n }\n }\n // Reset\n navigator.stickToMin =\n navigator.stickToMax = null;\n };\n /**\n * Handler for updated data on the base series. When data is modified, the\n * navigator series must reflect it. This is called from the Chart.redraw\n * function before axis and series extremes are computed.\n *\n * @private\n * @function Highcharts.Navigator#updateDataHandler\n */\n Navigator.prototype.updatedDataHandler = function () {\n var navigator = this.chart.navigator,\n baseSeries = this,\n navigatorSeries = this.navigatorSeries,\n shouldStickToMax = navigator.reversedExtremes ?\n Math.round(navigator.zoomedMin) === 0 :\n Math.round(navigator.zoomedMax) >= Math.round(navigator.size);\n // If the scrollbar is scrolled all the way to the right, keep right as\n // new data comes in, unless user set navigator.stickToMax to false.\n navigator.stickToMax = Navigator_pick(this.chart.options.navigator &&\n this.chart.options.navigator.stickToMax, shouldStickToMax);\n navigator.stickToMin = navigator.shouldStickToMin(baseSeries, navigator);\n // Set the navigator series data to the new data of the base series\n if (navigatorSeries && !navigator.hasNavigatorData) {\n navigatorSeries.options.pointStart = baseSeries.getColumn('x')[0];\n navigatorSeries.setData(baseSeries.options.data, false, null, false); // #5414\n }\n };\n /**\n * Detect if the zoomed area should stick to the minimum, #14742.\n *\n * @private\n * @function Highcharts.Navigator#shouldStickToMin\n */\n Navigator.prototype.shouldStickToMin = function (baseSeries, navigator) {\n var xDataMin = navigator.getBaseSeriesMin(baseSeries.getColumn('x')[0]),\n xAxis = baseSeries.xAxis,\n max = xAxis.max,\n min = xAxis.min,\n range = xAxis.options.range;\n var stickToMin = true;\n if (Navigator_isNumber(max) && Navigator_isNumber(min)) {\n // If range declared, stick to the minimum only if the range\n // is smaller than the data set range.\n if (range && max - xDataMin > 0) {\n stickToMin = max - xDataMin < range;\n }\n else {\n // If the current axis minimum falls outside the new\n // updated dataset, we must adjust.\n stickToMin = min <= xDataMin;\n }\n }\n else {\n stickToMin = false; // #15864\n }\n return stickToMin;\n };\n /**\n * Add chart events, like redrawing navigator, when chart requires that.\n *\n * @private\n * @function Highcharts.Navigator#addChartEvents\n */\n Navigator.prototype.addChartEvents = function () {\n if (!this.eventsToUnbind) {\n this.eventsToUnbind = [];\n }\n this.eventsToUnbind.push(\n // Move the scrollbar after redraw, like after data updata even if\n // axes don't redraw\n Navigator_addEvent(this.chart, 'redraw', function () {\n var navigator = this.navigator,\n xAxis = navigator && (navigator.baseSeries &&\n navigator.baseSeries[0] &&\n navigator.baseSeries[0].xAxis ||\n this.xAxis[0]); // #5709, #13114\n if (xAxis) {\n navigator.render(xAxis.min,\n xAxis.max);\n }\n }), \n // Make room for the navigator, can be placed around the chart:\n Navigator_addEvent(this.chart, 'getMargins', function () {\n var chart = this,\n navigator = chart.navigator;\n var marginName = navigator.opposite ?\n 'plotTop' : 'marginBottom';\n if (chart.inverted) {\n marginName = navigator.opposite ?\n 'marginRight' : 'plotLeft';\n }\n chart[marginName] =\n (chart[marginName] || 0) + (navigator.navigatorEnabled || !chart.inverted ?\n navigator.height + navigator.scrollbarHeight :\n 0) + navigator.navigatorOptions.margin;\n }), Navigator_addEvent(Navigator, 'setRange', function (e) {\n this.chart.xAxis[0].setExtremes(e.min, e.max, e.redraw, e.animation, e.eventArguments);\n }));\n };\n /**\n * Destroys allocated elements.\n *\n * @private\n * @function Highcharts.Navigator#destroy\n */\n Navigator.prototype.destroy = function () {\n var _this = this;\n // Disconnect events added in addEvents\n this.removeEvents();\n if (this.xAxis) {\n erase(this.chart.xAxis, this.xAxis);\n erase(this.chart.axes, this.xAxis);\n }\n if (this.yAxis) {\n erase(this.chart.yAxis, this.yAxis);\n erase(this.chart.axes, this.yAxis);\n }\n // Destroy series\n (this.series || []).forEach(function (s) {\n if (s.destroy) {\n s.destroy();\n }\n });\n // Destroy properties\n [\n 'series', 'xAxis', 'yAxis', 'shades', 'outline', 'scrollbarTrack',\n 'scrollbarRifles', 'scrollbarGroup', 'scrollbar', 'navigatorGroup',\n 'rendered'\n ].forEach(function (prop) {\n if (_this[prop] && _this[prop].destroy) {\n _this[prop].destroy();\n }\n _this[prop] = null;\n });\n // Destroy elements in collection\n [this.handles].forEach(function (coll) {\n Navigator_destroyObjectProperties(coll);\n });\n this.navigatorEnabled = false;\n };\n return Navigator;\n}());\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var Navigator_Navigator = (Navigator);\n\n;// ./code/es5/es-modules/Stock/Navigator/StandaloneNavigatorDefaults.js\n/* *\n *\n * (c) 2010-2024 Mateusz Bernacik\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n/* *\n *\n * Constants\n *\n * */\nvar standaloneNavigatorDefaults = {\n chart: {\n height: 70,\n margin: [0, 5, 0, 5]\n },\n exporting: {\n enabled: false\n },\n legend: {\n enabled: false\n },\n navigator: {\n enabled: false\n },\n plotOptions: {\n series: {\n states: {\n hover: {\n enabled: false\n }\n },\n marker: {\n enabled: false\n }\n }\n },\n scrollbar: {\n enabled: false\n },\n title: {\n text: ''\n },\n tooltip: {\n enabled: false\n },\n xAxis: {\n visible: false\n },\n yAxis: {\n height: 0,\n visible: false\n }\n};\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var StandaloneNavigatorDefaults = (standaloneNavigatorDefaults);\n\n;// ./code/es5/es-modules/Stock/Navigator/StandaloneNavigator.js\n/* *\n *\n * (c) 2010-2024 Mateusz Bernacik\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\n\n\n\n\n\n\nvar StandaloneNavigator_merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, StandaloneNavigator_addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, StandaloneNavigator_fireEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).fireEvent, StandaloneNavigator_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick;\n/* *\n *\n * Class\n *\n * */\n/**\n * The StandaloneNavigator class. The StandaloneNavigator class allows for\n * creating a standalone navigator component that synchronizes the extremes\n * across multiple bound charts.\n *\n * @class\n * @name Highcharts.StandaloneNavigator\n *\n * @param {string|Highcharts.HTMLDOMElement} [renderTo]\n * The DOM element to render to, or its id.\n *\n * @param {StandaloneNavigatorOptions} userOptions\n * The standalone navigator options.\n */\nvar StandaloneNavigator = /** @class */ (function () {\n /* *\n *\n * Constructor\n *\n * */\n function StandaloneNavigator(element, userOptions) {\n this.boundAxes = [];\n this.userOptions = userOptions;\n this.chartOptions = StandaloneNavigator_merge(highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().getOptions(), StandaloneNavigatorDefaults, { navigator: userOptions });\n if (this.chartOptions.chart && userOptions.height) {\n this.chartOptions.chart.height = userOptions.height;\n }\n var chart = new (highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default())(element,\n this.chartOptions);\n chart.options = StandaloneNavigator_merge(chart.options, { navigator: { enabled: true }, scrollbar: { enabled: true } });\n if (this.chartOptions.navigator && this.chartOptions.scrollbar) {\n this.chartOptions.navigator.enabled = true;\n this.chartOptions.scrollbar.enabled = true;\n }\n this.navigator = new Navigator_Navigator(chart);\n chart.navigator = this.navigator;\n this.initNavigator();\n }\n /* *\n *\n * Static Functions\n *\n * */\n /**\n * Factory function for standalone navigator.\n *\n * @function Highcharts.navigator\n *\n * @param {string|Highcharts.HTMLDOMElement} [renderTo]\n * The DOM element to render to, or its id.\n *\n * @param {StandaloneNavigatorOptions} options\n * The standalone navigator options with chart-like structure.\n *\n * Returns the navigator object.\n */\n StandaloneNavigator.navigator = function (renderTo, options) {\n var nav = new StandaloneNavigator(renderTo,\n options);\n if (!(highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).navigators) {\n (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).navigators = [nav];\n }\n else {\n highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default().navigators.push(nav);\n }\n return nav;\n };\n /**\n * Binds an axis to the standalone navigator,\n * allowing the navigator to control the axis' range.\n *\n * @sample stock/standalone-navigator/bind/\n * Bind chart with a button\n *\n * @function Highcharts.StandaloneNavigator#bind\n *\n * @param {Axis | Chart} axisOrChart\n * The Axis or Chart to bind to the navigator.\n *\n * @param {boolean} [twoWay=true]\n * Enables two-way binding between the navigator and the axis/chart.\n * When true, changes in the navigator's range will update the axis\n * and vice versa. When false, changes in the navigator's range will\n * be reflected in the axis, but changes in the axis ranges won't be\n * reflected on the navigator.\n */\n StandaloneNavigator.prototype.bind = function (axisOrChart, twoWay) {\n var _this = this;\n if (twoWay === void 0) { twoWay = true; }\n var nav = this;\n // If the chart is passed, bind the first xAxis\n var axis = (axisOrChart instanceof (highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default())) ?\n axisOrChart.xAxis[0] :\n axisOrChart;\n if (!(axis instanceof (highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_default()))) {\n return;\n }\n var _a = this.navigator.xAxis,\n min = _a.min,\n max = _a.max,\n removeEventCallbacks = [];\n if (twoWay) {\n var removeSetExtremesEvent = StandaloneNavigator_addEvent(axis, 'setExtremes',\n function (e) {\n if (e.trigger === 'pan' ||\n e.trigger === 'zoom' ||\n e.trigger === 'mouseWheelZoom') {\n nav.setRange(e.min,\n e.max,\n true,\n e.trigger !== 'pan', { trigger: axis });\n }\n });\n removeEventCallbacks.push(removeSetExtremesEvent);\n }\n var removeSetRangeEvent = StandaloneNavigator_addEvent(this.navigator, 'setRange',\n function (e) {\n axis.setExtremes(e.min,\n e.max,\n e.redraw,\n e.animation);\n });\n removeEventCallbacks.push(removeSetRangeEvent);\n var boundAxis = this.boundAxes.filter(function (boundAxis) {\n return boundAxis.axis === axis;\n })[0];\n if (!boundAxis) {\n boundAxis = { axis: axis, callbacks: [] };\n this.boundAxes.push(boundAxis);\n }\n boundAxis.callbacks = removeEventCallbacks;\n // Show axis' series in navigator based on showInNavigator property\n axis.series.forEach(function (series) {\n if (series.options.showInNavigator) {\n nav.addSeries(series.options);\n }\n });\n // Set extremes to match the navigator's extremes\n axis.setExtremes(min, max);\n // Unbind the axis before it's destroyed\n StandaloneNavigator_addEvent(axis, 'destroy', function (e) {\n if (!e.keepEvents) {\n _this.unbind(axis);\n }\n });\n };\n /**\n * Unbinds a single axis or all bound axes from the standalone navigator.\n *\n * @sample stock/standalone-navigator/unbind/\n * Unbind chart with a button\n *\n * @function Highcharts.StandaloneNavigator#unbind\n *\n * @param {Chart | Axis | undefined} axisOrChart\n * Passing a Chart object unbinds the first X axis of the chart,\n * an Axis object unbinds that specific axis,\n * and undefined unbinds all axes bound to the navigator.\n */\n StandaloneNavigator.prototype.unbind = function (axisOrChart) {\n // If no axis or chart is provided, unbind all bound axes\n if (!axisOrChart) {\n this.boundAxes.forEach(function (_a) {\n var callbacks = _a.callbacks;\n callbacks.forEach(function (removeCallback) { return removeCallback(); });\n });\n this.boundAxes.length = 0;\n return;\n }\n var axis = (axisOrChart instanceof (highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_default())) ?\n axisOrChart :\n axisOrChart.xAxis[0];\n for (var i = this.boundAxes.length - 1; i >= 0; i--) {\n if (this.boundAxes[i].axis === axis) {\n this.boundAxes[i].callbacks.forEach(function (callback) { return callback(); });\n this.boundAxes.splice(i, 1);\n }\n }\n };\n /**\n * Destroys allocated standalone navigator elements.\n *\n * @function Highcharts.StandaloneNavigator#destroy\n */\n StandaloneNavigator.prototype.destroy = function () {\n // Disconnect events\n this.boundAxes.forEach(function (_a) {\n var callbacks = _a.callbacks;\n callbacks.forEach(function (removeCallback) { return removeCallback(); });\n });\n this.boundAxes.length = 0;\n this.navigator.destroy();\n this.navigator.chart.destroy();\n };\n /**\n * Updates the standalone navigator's options with a new set of user\n * options.\n *\n * @sample stock/standalone-navigator/update/\n * Bind chart with a button\n *\n * @function Highcharts.StandaloneNavigator#update\n *\n * @param {StandaloneNavigatorOptions} newOptions\n * Updates the standalone navigator's options with new user options.\n *\n * @param {boolean | undefined} redraw\n * Whether to redraw the standalone navigator. By default, if not\n * specified, the standalone navigator will be redrawn.\n */\n StandaloneNavigator.prototype.update = function (newOptions, redraw) {\n this.chartOptions = StandaloneNavigator_merge(this.chartOptions, newOptions.height && { chart: { height: newOptions.height } }, { navigator: newOptions });\n this.navigator.chart.update(this.chartOptions, redraw);\n };\n /**\n * Redraws the standalone navigator.\n *\n * @function Highcharts.StandaloneNavigator#redraw\n */\n StandaloneNavigator.prototype.redraw = function () {\n this.navigator.chart.redraw();\n };\n /**\n * Adds a series to the standalone navigator.\n *\n * @private\n *\n * @param {SeriesOptions} seriesOptions\n * Options for the series to be added to the navigator.\n */\n StandaloneNavigator.prototype.addSeries = function (seriesOptions) {\n this.navigator.chart.addSeries(StandaloneNavigator_merge(seriesOptions, { showInNavigator: StandaloneNavigator_pick(seriesOptions.showInNavigator, true) }));\n this.navigator.setBaseSeries();\n };\n /**\n * Initialize the standalone navigator.\n *\n * @private\n */\n StandaloneNavigator.prototype.initNavigator = function () {\n var _a;\n var nav = this.navigator;\n nav.top = 1;\n nav.xAxis.setScale();\n nav.yAxis.setScale();\n nav.xAxis.render();\n nav.yAxis.render();\n (_a = nav.series) === null || _a === void 0 ? void 0 : _a.forEach(function (s) {\n s.translate();\n s.render();\n s.redraw();\n });\n var _b = this.getInitialExtremes(),\n min = _b.min,\n max = _b.max;\n nav.chart.xAxis[0].userMin = min;\n nav.chart.xAxis[0].userMax = max;\n nav.render(min, max);\n };\n /**\n * Get the current range of the standalone navigator.\n *\n * @sample stock/standalone-navigator/getrange/\n * Report the standalone navigator's range by clicking on a button\n *\n * @function Highcharts.StandaloneNavigator#getRange\n *\n * @return {Highcharts.ExtremesObject}\n * The current range of the standalone navigator.\n */\n StandaloneNavigator.prototype.getRange = function () {\n var _a = this.navigator.chart.xAxis[0].getExtremes(),\n min = _a.min,\n max = _a.max,\n _b = this.navigator.xAxis.getExtremes(),\n userMin = _b.userMin,\n userMax = _b.userMax,\n dataMin = _b.min,\n dataMax = _b.max;\n return {\n min: StandaloneNavigator_pick(min, dataMin),\n max: StandaloneNavigator_pick(max, dataMax),\n dataMin: dataMin,\n dataMax: dataMax,\n userMin: userMin,\n userMax: userMax\n };\n };\n /**\n * Set the range of the standalone navigator.\n *\n * @sample stock/standalone-navigator/setrange/\n * Set range from a button\n *\n * @function Highcharts.StandaloneNavigator#setRange\n *\n * @param {number | undefined} min\n * The new minimum value.\n *\n * @param {number | undefined} max\n * The new maximum value.\n *\n * @emits Highcharts.StandaloneNavigator#event:setRange\n */\n StandaloneNavigator.prototype.setRange = function (min, max, redraw, animation, eventArguments) {\n StandaloneNavigator_fireEvent(this.navigator, 'setRange', {\n min: min,\n max: max,\n redraw: redraw,\n animation: animation,\n eventArguments: StandaloneNavigator_merge(eventArguments, { trigger: 'navigator' })\n });\n };\n /**\n * Get the initial, options based extremes for the standalone navigator.\n *\n * @private\n *\n * @return {{ min: number, max: number }}\n * The initial minimum and maximum extremes values.\n */\n StandaloneNavigator.prototype.getInitialExtremes = function () {\n var _a = this.navigator.xAxis.getExtremes(),\n min = _a.min,\n max = _a.max;\n return {\n min: min,\n max: max\n };\n };\n return StandaloneNavigator;\n}());\n/* harmony default export */ var Navigator_StandaloneNavigator = (StandaloneNavigator);\n/* *\n *\n * API Declarations\n *\n * */\n/**\n * Standalone Navigator options.\n *\n * @interface Highcharts.StandaloneNavigatorOptions\n */ /**\n*/\n''; // Detach doclets above\n\n;// ./code/es5/es-modules/masters/modules/navigator.src.js\n\n\n\n\n\nvar G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());\nG.StandaloneNavigator = G.StandaloneNavigator || Navigator_StandaloneNavigator;\nG.navigator = G.StandaloneNavigator.navigator;\nNavigator_NavigatorComposition.compose(G.Chart, G.Axis, G.Series);\n/* harmony default export */ var navigator_src = ((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()));\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"],"names":["root","factory","exports","module","require","define","amd","__WEBPACK_EXTERNAL_MODULE__944__","__WEBPACK_EXTERNAL_MODULE__960__","__WEBPACK_EXTERNAL_MODULE__532__","__WEBPACK_EXTERNAL_MODULE__620__","__WEBPACK_EXTERNAL_MODULE__512__","__WEBPACK_EXTERNAL_MODULE__608__","__WEBPACK_EXTERNAL_MODULE__540__","NavigatorConstructor","ScrollbarAxis","__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__","navigator_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_","highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default","highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_","highcharts_Axis_commonjs_highcharts_Axis_commonjs2_highcharts_Axis_root_Highcharts_Axis_default","isTouchDevice","addEvent","merge","pick","composedMembers","onChartAfterAddSeries","navigator","setBaseSeries","onChartAfterSetChartSize","_a","legendOptions","xAxis","yAxis","legend","options","scrollbarHeight","scrollButtonSize","inverted","left","opposite","chartWidth","height","spacing","top","plotTop","plotLeft","navigatorOptions","chartHeight","scrollbar","margin","rangeSelector","extraBottomMargin","getHeight","verticalAlign","layout","enabled","floating","legendHeight","titleOffset","setAxisSize","onChartAfterUpdate","event","scroller","redraw","animation","onChartBeforeRender","onChartBeforeShowResetZoom","chartOptions","zooming","type","pinchType","onChartCallback","chart","extremes","getExtremes","render","min","max","onChartUpdate","e","scrollbarOptions","ChartClass","NavigatorClass","pushUnique","chartProto","callbacks","push","NavigatorAxisComposition_isTouchDevice","NavigatorAxisComposition_addEvent","correctFloat","defined","isNumber","NavigatorAxisComposition_pick","onAxisInit","axis","navigatorAxis","NavigatorAxisAdditions","onAxisSetExtremes","zoomed","zoomType","isXAxis","trigger","range","previousZoom","preventDefault","compose","AxisClass","keepProps","includes","destroy","toFixedRange","pxMin","pxMax","fixedMin","fixedMax","halfPointRange","pointRange","newMin","translate","horiz","newMax","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_","highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default","color","parse","seriesTypes","NavigatorDefaults","maskInside","handles","width","borderRadius","symbols","lineWidth","backgroundColor","borderColor","maskFill","setOpacity","outlineColor","outlineWidth","series","areaspline","fillOpacity","compare","sonification","dataGrouping","approximation","groupPixelWidth","firstAnchor","anchor","lastAnchor","units","dataLabels","zIndex","id","className","lineColor","marker","threshold","tickLength","gridLineColor","gridLineWidth","tickPixelInterval","labels","align","style","fontSize","opacity","textOutline","x","y","crosshair","startOnTick","endOnTick","minPadding","maxPadding","title","text","tickWidth","__spreadArray","to","from","pack","arguments","length","ar","i","l","Array","slice","concat","relativeLength","Navigator_NavigatorSymbols","_x","_y","w","h","r","halfWidth","Math","markerPosition","highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_","highcharts_RendererRegistry_commonjs_highcharts_RendererRegistry_commonjs2_highcharts_RendererRegistry_root_Highcharts_RendererRegistry_default","StockUtilities_defined","setOptions","composed","getRendererType","NavigatorComposition_setFixedRange","Utilities_StockUtilities","setFixedRange","dataMax","dataMin","fixedRange","NavigatorComposition_addEvent","extend","onSeriesAfterUpdate","isInternal","SeriesClass","NavigatorAxisComposition","ScrollbarAxis_composed","ScrollbarAxis_addEvent","ScrollbarAxis_defined","ScrollbarAxis_pick","ScrollbarAxis_pushUnique","Scrollbar","axisMin","axisMax","scrollMin","Infinity","scrollMax","onAxisAfterGetOffset","index","scrollbarsOffsets","axisOffset","size","onAxisAfterInit","vertical","renderer","unitedMin","unitedMax","reversed","shouldUpdateExtremes","DOMType","animate","setExtremes","setRange","onAxisAfterRender","offsetsIndex","offset","axisTitleMargin","axisMargin","position","xPosition","isNaN","interval","ScrollbarClass","Axis_ScrollbarAxis","Scrollbar_ScrollbarDefaults","barBorderRadius","buttonBorderRadius","buttonsEnabled","liveRedraw","minWidth","step","barBackgroundColor","barBorderWidth","barBorderColor","buttonArrowColor","buttonBackgroundColor","buttonBorderColor","buttonBorderWidth","rifleColor","trackBackgroundColor","trackBorderColor","trackBorderRadius","trackBorderWidth","defaultOptions","Scrollbar_addEvent","Scrollbar_correctFloat","crisp","Scrollbar_defined","destroyObjectProperties","fireEvent","Scrollbar_merge","Scrollbar_pick","removeEvent","_events","chartX","chartY","scrollbarButtons","scrollbarLeft","scrollbarStrokeWidth","scrollbarTop","init","swapXY","path","forEach","seg","temp","len","addEvents","buttonsOrder","buttons","bar","scrollbarGroup","element","track","mouseDownHandler","bind","mouseMoveHandler","mouseUpHandler","buttonToMinClick","buttonToMaxClick","trackClick","ownerDocument","args","apply","updatePosition","DOMEvent","cursorToScrollbarPosition","normalizedEvent","minWidthDifference","calculatedWidth","xOffset","barWidth","yOffset","removeEvents","drawScrollbarButton","group","g","add","rect","addClass","styledMode","attr","stroke","fill","strokeWidth","arrow","userOptions","pointer","normalize","mousePosition","initPositions","grabbedCenter","change","direction","touches","chartPosition","hasDragged","method","rendered","show","translateX","translateY","hide","scrollbarRifles","fromPX","newSize","fullWidth","toPX","ceil","newPos","floor","newRiflesPos","showFull","eventType","svg","boosted","update","highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_","highcharts_SVGRenderer_commonjs_highcharts_SVGRenderer_commonjs2_highcharts_SVGRenderer_root_Highcharts_SVGRenderer_default","__assign","assign","t","s","p","Navigator_defaultOptions","Navigator_isTouchDevice","Navigator_addEvent","clamp","Navigator_correctFloat","Navigator_defined","Navigator_destroyObjectProperties","erase","Navigator_extend","find","Navigator_fireEvent","isArray","Navigator_isNumber","Navigator_merge","Navigator_pick","Navigator_removeEvent","splat","numExt","extreme","_i","numbers","filter","Navigator","isDirty","Navigator_ChartNavigatorComposition","Navigator_NavigatorComposition","drawHandle","verb","round","parseInt","drawOutline","zoomedMin","zoomedMax","verticalMin","outline","halfOutline","outlineCorrection","navigatorSize","navigatorTop","lineTop","lineBtm","drawMasks","navigatorHeight","shades","shade","renderElements","_b","mouseCursor","cursor","navigatorGroup","visibility","hasMask","css","handlesOptions_1","height_1","width_1","symbolName","symbolUrl","isImg","symbolFn","symbol","addMouseEvents","rotation","rotationOriginX","rotationOriginY","_c","_d","_this","invertedUpdate","setOpposite","navigatorEnabled","adaptToUpdatedData","baseSeries","updatedDataHandler","eventsToUnbind","offsets","getXAxisOffsets","navigatorWidth","scrollbarXAxis","fake","minRange","maxRange","plotWidth","plotHeight","toPixels","abs","toValue","currentRange","grabbedLeft","grabbedRight","fixedWidth","container","onMouseMove","onMouseUp","getPartsEvents","renderTo","modifyNavigatorAxisExtremes","eventName","events","name","navigatorItem","shadesMousedown","ext","navigatorPosition","dragOffset","reversedExtremes","getUnionExtremes","eventArguments","handlesMousedown","baseXAxis","reverse","otherHandlePos","fixedExtreme","pageX","setTimeout","unionExtremes","triggerOp","keys","unbind","removeBaseSeriesEvents","modifyBaseAxisExtremes","scrollbarEnabled","xAxisIndex","yAxisIndex","baseXaxis","isDirtyBox","breaks","ordinal","overscroll","keepOrdinalPadding","zoomEnabled","alignTicks","data","updateNavigatorSeries","unbindRedraw","value","scrollTrackWidth","valueRange","addBaseSeriesEvents","addChartEvents","Boolean","returnFalseOnNoBaseSeries","ret","baseAxis","time","navAxis","navAxisOptions","baseAxisOptions","baseSeriesOptions","showInNavigator","baseOptions","mergedNavSeriesOptions","baseNavigatorOptions","navSeriesMixin","enableMouseTracking","linkedTo","padXAxis","showInLegend","stacking","states","inactive","navigatorSeries","navSeries","base","indexOf","chartNavigatorSeriesOptions","linkedNavSeries","userNavOptions","visible","plotOptions","navigatorSeriesData","hasNavigatorData","initSeries","setSortedData","userSeriesOptions","colors","setVisible","remove","getBaseSeriesMin","currentSeriesMin","reduce","getColumn","baseExtremes","baseMin","baseMax","baseDataMin","baseDataMax","stickToMin","stickToMax","convertOverscroll","hasSetExtremes","eventArgs","xData","Number","MAX_VALUE","userMin","userMax","shouldStickToMax","shouldStickToMin","pointStart","setData","xDataMin","marginName","axes","coll","StandaloneNavigatorDefaults","exporting","hover","tooltip","StandaloneNavigator_merge","StandaloneNavigator_addEvent","StandaloneNavigator_fireEvent","StandaloneNavigator_pick","StandaloneNavigator","boundAxes","getOptions","initNavigator","nav","navigators","axisOrChart","twoWay","removeEventCallbacks","removeSetExtremesEvent","removeSetRangeEvent","boundAxis","addSeries","keepEvents","removeCallback","callback","splice","newOptions","seriesOptions","setScale","getInitialExtremes","getRange","G","Chart","Axis","Series"],"mappings":"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"}
Hacked By AnonymousFox1.0, Coded By AnonymousFox