Hacked By AnonymousFox

Current Path : C:/AppServ/www/financial/stacked/code/es5/modules/
Upload File :
Current File : C:/AppServ/www/financial/stacked/code/es5/modules/navigator.js.map

{"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