@ntlab/ntjs-assets 2.0.27 → 2.0.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/js/cdn.json +1 -1
- package/assets/js/highcharts/es-modules/Accessibility/Accessibility.js +1 -1
- package/assets/js/highcharts/es-modules/Accessibility/AccessibilityComponent.js +1 -1
- package/assets/js/highcharts/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
- package/assets/js/highcharts/es-modules/Accessibility/KeyboardNavigation.js +1 -1
- package/assets/js/highcharts/es-modules/Accessibility/KeyboardNavigationHandler.js +5 -5
- package/assets/js/highcharts/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Accessibility/Options/LangDefaults.js +3 -3
- package/assets/js/highcharts/es-modules/Accessibility/Utils/EventProvider.js +1 -1
- package/assets/js/highcharts/es-modules/Accessibility/Utils/HTMLUtilities.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Animation/Fx.js +4 -2
- package/assets/js/highcharts/es-modules/Core/Axis/Axis.js +3 -3
- package/assets/js/highcharts/es-modules/Core/Axis/AxisDefaults.js +1 -0
- package/assets/js/highcharts/es-modules/Core/Axis/Color/ColorAxisDefaults.js +7 -3
- package/assets/js/highcharts/es-modules/Core/Axis/GridAxis.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Axis/OrdinalAxis.js +5 -2
- package/assets/js/highcharts/es-modules/Core/Axis/RadialAxisDefaults.js +3 -3
- package/assets/js/highcharts/es-modules/Core/Axis/Stacking/StackItem.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Chart/Chart.js +16 -7
- package/assets/js/highcharts/es-modules/Core/Chart/MapChart.js +3 -3
- package/assets/js/highcharts/es-modules/Core/Chart/StockChart.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Color/Color.js +2 -2
- package/assets/js/highcharts/es-modules/Core/Defaults.js +27 -1
- package/assets/js/highcharts/es-modules/Core/Geometry/GeometryUtilities.js +22 -0
- package/assets/js/highcharts/es-modules/Core/Globals.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Legend/Legend.js +82 -14
- package/assets/js/highcharts/es-modules/Core/MSPointer.js +42 -1
- package/assets/js/highcharts/es-modules/Core/Pointer.js +10 -6
- package/assets/js/highcharts/es-modules/Core/Renderer/HTML/AST.js +6 -0
- package/assets/js/highcharts/es-modules/Core/Renderer/HTML/HTMLElement.js +2 -2
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGElement.js +31 -98
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGLabel.js +20 -0
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGRenderer.js +29 -14
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/Symbols.js +18 -18
- package/assets/js/highcharts/es-modules/Core/Responsive.js +6 -1
- package/assets/js/highcharts/es-modules/Core/Series/DataLabel.js +1 -10
- package/assets/js/highcharts/es-modules/Core/Series/DataSeriesComposition.js +0 -2
- package/assets/js/highcharts/es-modules/Core/Series/Point.js +7 -10
- package/assets/js/highcharts/es-modules/Core/Series/Series.js +40 -24
- package/assets/js/highcharts/es-modules/Core/Series/SeriesDefaults.js +18 -12
- package/assets/js/highcharts/es-modules/Core/Templating.js +2 -2
- package/assets/js/highcharts/es-modules/Core/Tooltip.js +6 -3
- package/assets/js/highcharts/es-modules/Data/Connectors/JSONConnector.js +1 -0
- package/assets/js/highcharts/es-modules/Data/Converters/CSVConverter.js +1 -1
- package/assets/js/highcharts/es-modules/Data/Converters/DataConverter.js +7 -7
- package/assets/js/highcharts/es-modules/Data/DataTable.js +106 -5
- package/assets/js/highcharts/es-modules/Data/Formula/FormulaParser.js +2 -2
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/Annotations/NavigationBindings.js +1 -2
- package/assets/js/highcharts/es-modules/Extensions/Boost/Boost.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/Boost/BoostChart.js +8 -2
- package/assets/js/highcharts/es-modules/Extensions/Boost/BoostSeries.js +41 -10
- package/assets/js/highcharts/es-modules/Extensions/Boost/WGLShader.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/BorderRadius.js +3 -3
- package/assets/js/highcharts/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +0 -38
- package/assets/js/highcharts/es-modules/Extensions/Data.js +11 -11
- package/assets/js/highcharts/es-modules/Extensions/DataGrouping/DataGrouping.js +1 -2
- package/assets/js/highcharts/es-modules/Extensions/DataGrouping/DataGroupingDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/DownloadURL.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/Drilldown/Drilldown.js +0 -2
- package/assets/js/highcharts/es-modules/Extensions/Exporting/Exporting.js +14 -14
- package/assets/js/highcharts/es-modules/Extensions/OverlappingDataLabels.js +36 -5
- package/assets/js/highcharts/es-modules/Extensions/Pane/PaneDefaults.js +3 -2
- package/assets/js/highcharts/es-modules/Extensions/ParallelCoordinates/ParallelCoordinates.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/Sonification/MIDI.js +7 -7
- package/assets/js/highcharts/es-modules/Extensions/Sonification/SonificationInstrument.js +0 -1
- package/assets/js/highcharts/es-modules/Extensions/Sonification/TimelineFromChart.js +1 -3
- package/assets/js/highcharts/es-modules/Extensions/TextPath.js +225 -0
- package/assets/js/highcharts/es-modules/Maps/MapUtilities.js +1 -20
- package/assets/js/highcharts/es-modules/Maps/MapView.js +3 -1
- package/assets/js/highcharts/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +3 -0
- package/assets/js/highcharts/es-modules/Series/Area/AreaSeries.js +5 -0
- package/assets/js/highcharts/es-modules/Series/Area/AreaSeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Bar/BarSeries.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Bellcurve/BellcurveSeriesDefaults.js +2 -2
- package/assets/js/highcharts/es-modules/Series/BoxPlot/BoxPlotSeries.js +2 -1
- package/assets/js/highcharts/es-modules/Series/Bubble/BubbleLegendComposition.js +4 -7
- package/assets/js/highcharts/es-modules/Series/Bubble/BubbleLegendDefaults.js +3 -3
- package/assets/js/highcharts/es-modules/Series/Bubble/BubbleSeries.js +4 -4
- package/assets/js/highcharts/es-modules/Series/Column/ColumnSeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +5 -2
- package/assets/js/highcharts/es-modules/Series/Dumbbell/DumbbellSeriesDefaults.js +2 -2
- package/assets/js/highcharts/es-modules/Series/ErrorBar/ErrorBarSeries.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Flags/FlagsSeries.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Flags/FlagsSeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Gantt/GanttSeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Gauge/GaugeSeries.js +1 -1
- package/assets/js/highcharts/es-modules/Series/HLC/HLCSeries.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Item/ItemSeries.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Map/MapSeries.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Map/MapSeriesDefaults.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -1
- package/assets/js/highcharts/es-modules/Series/Organization/OrganizationSeries.js +3 -0
- package/assets/js/highcharts/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
- package/assets/js/highcharts/es-modules/Series/PackedBubble/PackedBubbleSeries.js +8 -5
- package/assets/js/highcharts/es-modules/Series/Pie/PieDataLabel.js +7 -6
- package/assets/js/highcharts/es-modules/Series/Pie/PiePoint.js +6 -6
- package/assets/js/highcharts/es-modules/Series/Pie/PieSeriesDefaults.js +11 -10
- package/assets/js/highcharts/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Sankey/SankeySeries.js +7 -4
- package/assets/js/highcharts/es-modules/Series/Sankey/SankeySeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Sunburst/SunburstSeries.js +8 -5
- package/assets/js/highcharts/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Tilemap/TilemapSeriesDefaults.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Treegraph/TreegraphSeries.js +23 -2
- package/assets/js/highcharts/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Treemap/TreemapPoint.js +2 -1
- package/assets/js/highcharts/es-modules/Series/Treemap/TreemapSeries.js +15 -7
- package/assets/js/highcharts/es-modules/Series/Treemap/TreemapSeriesDefaults.js +15 -1
- package/assets/js/highcharts/es-modules/Series/VariablePie/VariablePieSeriesDefaults.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Variwide/VariwideComposition.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Vector/VectorSeries.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Wordcloud/WordcloudSeries.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Wordcloud/WordcloudSeriesDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/AD/ADIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/APO/APOIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/CMF/CMFIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/IKH/IKHIndicator.js +3 -3
- package/assets/js/highcharts/es-modules/Stock/Indicators/LinearRegression/LinearRegressionIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/MFI/MFIIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/PC/PCIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +3 -3
- package/assets/js/highcharts/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +2 -2
- package/assets/js/highcharts/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +3 -3
- package/assets/js/highcharts/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Navigator/Navigator.js +141 -55
- package/assets/js/highcharts/es-modules/Stock/Navigator/NavigatorDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/RangeSelector/RangeSelector.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/RangeSelector/RangeSelectorDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Scrollbar/ScrollbarDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/StockTools/StockToolbar.js +115 -37
- package/assets/js/highcharts/es-modules/Stock/StockTools/StockToolsDefaults.js +7 -1
- package/assets/js/highcharts/es-modules/Stock/StockTools/StockToolsGui.js +24 -23
- package/assets/js/highcharts/es-modules/Stock/StockTools/StockToolsUtilities.js +26 -0
- package/assets/js/highcharts/es-modules/masters/highcharts-more.src.js +2 -2
- package/assets/js/highcharts/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/ao.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/apo.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/aroon.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/atr.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/cci.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/cmf.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/cmo.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/dema.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/dmi.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/dpo.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/indicators.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/klinger.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/macd.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/mfi.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/momentum.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/natr.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/obv.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/ppo.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/psar.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/regressions.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/roc.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/rsi.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/tema.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/trendline.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/trix.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/vwap.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/wma.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/arc-diagram.src.js +2 -3
- package/assets/js/highcharts/es-modules/masters/modules/cylinder.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/export-data.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/funnel3d.src.js +2 -2
- package/assets/js/highcharts/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/map.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/organization.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/pyramid3d.src.js +3 -3
- package/assets/js/highcharts/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/textpath.src.js +16 -0
- package/assets/js/highcharts/es-modules/masters/modules/tilemap.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/treegraph.src.js +1 -1
- package/assets/js/highcharts/highcharts-3d.js +2 -2
- package/assets/js/highcharts/highcharts-3d.src.js +4 -4
- package/assets/js/highcharts/highcharts-gantt.js +3 -3
- package/assets/js/highcharts/highcharts-gantt.src.js +3374 -3042
- package/assets/js/highcharts/highcharts-more.js +2 -2
- package/assets/js/highcharts/highcharts-more.src.js +260 -35
- package/assets/js/highcharts/highcharts.js +3 -3
- package/assets/js/highcharts/highcharts.src.js +5844 -5600
- package/assets/js/highcharts/highmaps.js +3 -3
- package/assets/js/highcharts/highmaps.src.js +3270 -3043
- package/assets/js/highcharts/highstock.js +3 -3
- package/assets/js/highcharts/highstock.src.js +3379 -3048
- package/assets/js/highcharts/indicators/acceleration-bands.js +2 -2
- package/assets/js/highcharts/indicators/acceleration-bands.src.js +4 -4
- package/assets/js/highcharts/indicators/accumulation-distribution.js +2 -2
- package/assets/js/highcharts/indicators/accumulation-distribution.src.js +5 -5
- package/assets/js/highcharts/indicators/ao.js +2 -2
- package/assets/js/highcharts/indicators/ao.src.js +4 -4
- package/assets/js/highcharts/indicators/apo.js +2 -2
- package/assets/js/highcharts/indicators/apo.src.js +5 -5
- package/assets/js/highcharts/indicators/aroon-oscillator.js +2 -2
- package/assets/js/highcharts/indicators/aroon-oscillator.src.js +4 -4
- package/assets/js/highcharts/indicators/aroon.js +2 -2
- package/assets/js/highcharts/indicators/aroon.src.js +5 -5
- package/assets/js/highcharts/indicators/atr.js +2 -2
- package/assets/js/highcharts/indicators/atr.src.js +4 -4
- package/assets/js/highcharts/indicators/bollinger-bands.js +2 -2
- package/assets/js/highcharts/indicators/bollinger-bands.src.js +4 -4
- package/assets/js/highcharts/indicators/cci.js +2 -2
- package/assets/js/highcharts/indicators/cci.src.js +4 -4
- package/assets/js/highcharts/indicators/chaikin.js +2 -2
- package/assets/js/highcharts/indicators/chaikin.src.js +6 -6
- package/assets/js/highcharts/indicators/cmf.js +2 -2
- package/assets/js/highcharts/indicators/cmf.src.js +5 -5
- package/assets/js/highcharts/indicators/cmo.js +2 -2
- package/assets/js/highcharts/indicators/cmo.src.js +4 -4
- package/assets/js/highcharts/indicators/dema.js +2 -2
- package/assets/js/highcharts/indicators/dema.src.js +4 -4
- package/assets/js/highcharts/indicators/disparity-index.js +2 -2
- package/assets/js/highcharts/indicators/disparity-index.src.js +4 -4
- package/assets/js/highcharts/indicators/dmi.js +2 -2
- package/assets/js/highcharts/indicators/dmi.src.js +4 -4
- package/assets/js/highcharts/indicators/dpo.js +2 -2
- package/assets/js/highcharts/indicators/dpo.src.js +4 -4
- package/assets/js/highcharts/indicators/ema.js +1 -1
- package/assets/js/highcharts/indicators/ema.src.js +2 -2
- package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.js +2 -2
- package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.src.js +7 -7
- package/assets/js/highcharts/indicators/indicators-all.js +2 -2
- package/assets/js/highcharts/indicators/indicators-all.src.js +29 -29
- package/assets/js/highcharts/indicators/indicators.js +2 -2
- package/assets/js/highcharts/indicators/indicators.src.js +5 -5
- package/assets/js/highcharts/indicators/keltner-channels.js +2 -2
- package/assets/js/highcharts/indicators/keltner-channels.src.js +4 -4
- package/assets/js/highcharts/indicators/klinger.js +2 -2
- package/assets/js/highcharts/indicators/klinger.src.js +4 -4
- package/assets/js/highcharts/indicators/macd.js +2 -2
- package/assets/js/highcharts/indicators/macd.src.js +4 -4
- package/assets/js/highcharts/indicators/mfi.js +2 -2
- package/assets/js/highcharts/indicators/mfi.src.js +5 -5
- package/assets/js/highcharts/indicators/momentum.js +2 -2
- package/assets/js/highcharts/indicators/momentum.src.js +4 -4
- package/assets/js/highcharts/indicators/natr.js +2 -2
- package/assets/js/highcharts/indicators/natr.src.js +4 -4
- package/assets/js/highcharts/indicators/obv.js +2 -2
- package/assets/js/highcharts/indicators/obv.src.js +4 -4
- package/assets/js/highcharts/indicators/pivot-points.js +2 -2
- package/assets/js/highcharts/indicators/pivot-points.src.js +7 -7
- package/assets/js/highcharts/indicators/ppo.js +2 -2
- package/assets/js/highcharts/indicators/ppo.src.js +5 -5
- package/assets/js/highcharts/indicators/price-channel.js +2 -2
- package/assets/js/highcharts/indicators/price-channel.src.js +5 -5
- package/assets/js/highcharts/indicators/price-envelopes.js +2 -2
- package/assets/js/highcharts/indicators/price-envelopes.src.js +4 -4
- package/assets/js/highcharts/indicators/psar.js +2 -2
- package/assets/js/highcharts/indicators/psar.src.js +5 -5
- package/assets/js/highcharts/indicators/regressions.js +2 -2
- package/assets/js/highcharts/indicators/regressions.src.js +5 -5
- package/assets/js/highcharts/indicators/roc.js +2 -2
- package/assets/js/highcharts/indicators/roc.src.js +4 -4
- package/assets/js/highcharts/indicators/rsi.js +2 -2
- package/assets/js/highcharts/indicators/rsi.src.js +4 -4
- package/assets/js/highcharts/indicators/slow-stochastic.js +2 -2
- package/assets/js/highcharts/indicators/slow-stochastic.src.js +6 -6
- package/assets/js/highcharts/indicators/stochastic.js +2 -2
- package/assets/js/highcharts/indicators/stochastic.src.js +4 -4
- package/assets/js/highcharts/indicators/supertrend.js +2 -2
- package/assets/js/highcharts/indicators/supertrend.src.js +7 -7
- package/assets/js/highcharts/indicators/tema.js +2 -2
- package/assets/js/highcharts/indicators/tema.src.js +4 -4
- package/assets/js/highcharts/indicators/trendline.js +2 -2
- package/assets/js/highcharts/indicators/trendline.src.js +5 -5
- package/assets/js/highcharts/indicators/trix.js +2 -2
- package/assets/js/highcharts/indicators/trix.src.js +4 -4
- package/assets/js/highcharts/indicators/volume-by-price.js +2 -2
- package/assets/js/highcharts/indicators/volume-by-price.src.js +4 -4
- package/assets/js/highcharts/indicators/vwap.js +2 -2
- package/assets/js/highcharts/indicators/vwap.src.js +5 -5
- package/assets/js/highcharts/indicators/williams-r.js +2 -2
- package/assets/js/highcharts/indicators/williams-r.src.js +5 -5
- package/assets/js/highcharts/indicators/wma.js +2 -2
- package/assets/js/highcharts/indicators/wma.src.js +4 -4
- package/assets/js/highcharts/indicators/zigzag.js +2 -2
- package/assets/js/highcharts/indicators/zigzag.src.js +4 -4
- package/assets/js/highcharts/modules/accessibility.js +2 -2
- package/assets/js/highcharts/modules/accessibility.src.js +162 -77
- package/assets/js/highcharts/modules/annotations-advanced.js +2 -2
- package/assets/js/highcharts/modules/annotations-advanced.src.js +8 -9
- package/assets/js/highcharts/modules/annotations.js +2 -2
- package/assets/js/highcharts/modules/annotations.src.js +8 -9
- package/assets/js/highcharts/modules/arc-diagram.js +2 -2
- package/assets/js/highcharts/modules/arc-diagram.src.js +9363 -5
- package/assets/js/highcharts/modules/arrow-symbols.js +2 -2
- package/assets/js/highcharts/modules/arrow-symbols.src.js +3 -3
- package/assets/js/highcharts/modules/boost-canvas.js +2 -2
- package/assets/js/highcharts/modules/boost-canvas.src.js +53 -16
- package/assets/js/highcharts/modules/boost.js +2 -2
- package/assets/js/highcharts/modules/boost.src.js +54 -17
- package/assets/js/highcharts/modules/broken-axis.js +2 -2
- package/assets/js/highcharts/modules/broken-axis.src.js +3 -3
- package/assets/js/highcharts/modules/bullet.js +2 -2
- package/assets/js/highcharts/modules/bullet.src.js +3 -3
- package/assets/js/highcharts/modules/coloraxis.js +2 -2
- package/assets/js/highcharts/modules/coloraxis.src.js +10 -6
- package/assets/js/highcharts/modules/current-date-indicator.js +2 -2
- package/assets/js/highcharts/modules/current-date-indicator.src.js +3 -3
- package/assets/js/highcharts/modules/cylinder.js +2 -2
- package/assets/js/highcharts/modules/cylinder.src.js +4 -4
- package/assets/js/highcharts/modules/data-tools.js +2 -2
- package/assets/js/highcharts/modules/data-tools.src.js +120 -18
- package/assets/js/highcharts/modules/data.js +2 -2
- package/assets/js/highcharts/modules/data.src.js +14 -14
- package/assets/js/highcharts/modules/datagrouping.js +2 -2
- package/assets/js/highcharts/modules/datagrouping.src.js +5 -6
- package/assets/js/highcharts/modules/debugger.js +2 -2
- package/assets/js/highcharts/modules/debugger.src.js +3 -3
- package/assets/js/highcharts/modules/dependency-wheel.js +2 -2
- package/assets/js/highcharts/modules/dependency-wheel.src.js +8 -7
- package/assets/js/highcharts/modules/dotplot.js +2 -2
- package/assets/js/highcharts/modules/dotplot.src.js +3 -3
- package/assets/js/highcharts/modules/drag-panes.js +2 -2
- package/assets/js/highcharts/modules/drag-panes.src.js +4 -4
- package/assets/js/highcharts/modules/draggable-points.js +2 -2
- package/assets/js/highcharts/modules/draggable-points.src.js +3 -3
- package/assets/js/highcharts/modules/drilldown.js +2 -2
- package/assets/js/highcharts/modules/drilldown.src.js +3 -43
- package/assets/js/highcharts/modules/dumbbell.js +2 -2
- package/assets/js/highcharts/modules/dumbbell.src.js +5 -5
- package/assets/js/highcharts/modules/export-data.js +2 -2
- package/assets/js/highcharts/modules/export-data.src.js +5 -5
- package/assets/js/highcharts/modules/exporting.js +2 -2
- package/assets/js/highcharts/modules/exporting.src.js +17 -17
- package/assets/js/highcharts/modules/flowmap.js +2 -2
- package/assets/js/highcharts/modules/flowmap.src.js +3 -3
- package/assets/js/highcharts/modules/full-screen.js +2 -2
- package/assets/js/highcharts/modules/full-screen.src.js +3 -3
- package/assets/js/highcharts/modules/funnel.js +2 -2
- package/assets/js/highcharts/modules/funnel.src.js +3 -3
- package/assets/js/highcharts/modules/funnel3d.js +2 -2
- package/assets/js/highcharts/modules/funnel3d.src.js +4 -4
- package/assets/js/highcharts/modules/gantt.js +2 -2
- package/assets/js/highcharts/modules/gantt.src.js +155 -67
- package/assets/js/highcharts/modules/geoheatmap.js +2 -2
- package/assets/js/highcharts/modules/geoheatmap.src.js +3 -3
- package/assets/js/highcharts/modules/grid-axis.js +2 -2
- package/assets/js/highcharts/modules/grid-axis.src.js +4 -4
- package/assets/js/highcharts/modules/heatmap.js +2 -2
- package/assets/js/highcharts/modules/heatmap.src.js +12 -8
- package/assets/js/highcharts/modules/heikinashi.js +2 -2
- package/assets/js/highcharts/modules/heikinashi.src.js +4 -4
- package/assets/js/highcharts/modules/histogram-bellcurve.js +2 -2
- package/assets/js/highcharts/modules/histogram-bellcurve.src.js +5 -5
- package/assets/js/highcharts/modules/hollowcandlestick.js +2 -2
- package/assets/js/highcharts/modules/hollowcandlestick.src.js +4 -4
- package/assets/js/highcharts/modules/item-series.js +2 -2
- package/assets/js/highcharts/modules/item-series.src.js +4 -4
- package/assets/js/highcharts/modules/lollipop.js +2 -2
- package/assets/js/highcharts/modules/lollipop.src.js +3 -3
- package/assets/js/highcharts/modules/map.js +2 -2
- package/assets/js/highcharts/modules/map.src.js +34 -51
- package/assets/js/highcharts/modules/marker-clusters.js +2 -2
- package/assets/js/highcharts/modules/marker-clusters.src.js +3 -3
- package/assets/js/highcharts/modules/mouse-wheel-zoom.js +2 -2
- package/assets/js/highcharts/modules/mouse-wheel-zoom.src.js +3 -3
- package/assets/js/highcharts/modules/navigator.js +2 -2
- package/assets/js/highcharts/modules/navigator.src.js +146 -61
- package/assets/js/highcharts/modules/networkgraph.js +2 -2
- package/assets/js/highcharts/modules/networkgraph.src.js +231 -5
- package/assets/js/highcharts/modules/no-data-to-display.js +2 -2
- package/assets/js/highcharts/modules/no-data-to-display.src.js +3 -3
- package/assets/js/highcharts/modules/offline-exporting.js +2 -2
- package/assets/js/highcharts/modules/offline-exporting.src.js +6 -6
- package/assets/js/highcharts/modules/organization.js +2 -2
- package/assets/js/highcharts/modules/organization.src.js +6 -5
- package/assets/js/highcharts/modules/overlapping-datalabels.js +2 -2
- package/assets/js/highcharts/modules/overlapping-datalabels.src.js +3 -3
- package/assets/js/highcharts/modules/parallel-coordinates.js +2 -2
- package/assets/js/highcharts/modules/parallel-coordinates.src.js +4 -4
- package/assets/js/highcharts/modules/pareto.js +2 -2
- package/assets/js/highcharts/modules/pareto.src.js +3 -3
- package/assets/js/highcharts/modules/pathfinder.js +2 -2
- package/assets/js/highcharts/modules/pathfinder.src.js +3 -3
- package/assets/js/highcharts/modules/pattern-fill.js +2 -2
- package/assets/js/highcharts/modules/pattern-fill.src.js +3 -3
- package/assets/js/highcharts/modules/pictorial.js +2 -2
- package/assets/js/highcharts/modules/pictorial.src.js +3 -3
- package/assets/js/highcharts/modules/price-indicator.js +2 -2
- package/assets/js/highcharts/modules/price-indicator.src.js +4 -4
- package/assets/js/highcharts/modules/pyramid3d.js +2 -2
- package/assets/js/highcharts/modules/pyramid3d.src.js +4 -4
- package/assets/js/highcharts/modules/sankey.js +2 -2
- package/assets/js/highcharts/modules/sankey.src.js +235 -9
- package/assets/js/highcharts/modules/series-label.js +2 -2
- package/assets/js/highcharts/modules/series-label.src.js +3 -3
- package/assets/js/highcharts/modules/series-on-point.js +2 -2
- package/assets/js/highcharts/modules/series-on-point.src.js +3 -3
- package/assets/js/highcharts/modules/solid-gauge.js +2 -2
- package/assets/js/highcharts/modules/solid-gauge.src.js +4 -4
- package/assets/js/highcharts/modules/sonification.js +2 -2
- package/assets/js/highcharts/modules/sonification.src.js +12 -15
- package/assets/js/highcharts/modules/static-scale.js +2 -2
- package/assets/js/highcharts/modules/static-scale.src.js +3 -3
- package/assets/js/highcharts/modules/stock-tools.js +2 -2
- package/assets/js/highcharts/modules/stock-tools.src.js +178 -70
- package/assets/js/highcharts/modules/stock.js +2 -2
- package/assets/js/highcharts/modules/stock.src.js +160 -73
- package/assets/js/highcharts/modules/streamgraph.js +2 -2
- package/assets/js/highcharts/modules/streamgraph.src.js +3 -3
- package/assets/js/highcharts/modules/sunburst.js +2 -2
- package/assets/js/highcharts/modules/sunburst.src.js +269 -58
- package/assets/js/highcharts/modules/textpath.js +7 -0
- package/assets/js/highcharts/modules/textpath.src.js +269 -0
- package/assets/js/highcharts/modules/tiledwebmap.js +3 -3
- package/assets/js/highcharts/modules/tiledwebmap.src.js +3 -3
- package/assets/js/highcharts/modules/tilemap.js +2 -2
- package/assets/js/highcharts/modules/tilemap.src.js +6 -6
- package/assets/js/highcharts/modules/timeline.js +2 -2
- package/assets/js/highcharts/modules/timeline.src.js +3 -3
- package/assets/js/highcharts/modules/treegraph.js +2 -2
- package/assets/js/highcharts/modules/treegraph.src.js +253 -9
- package/assets/js/highcharts/modules/treegrid.js +2 -2
- package/assets/js/highcharts/modules/treegrid.src.js +4 -4
- package/assets/js/highcharts/modules/treemap.js +2 -2
- package/assets/js/highcharts/modules/treemap.src.js +35 -50
- package/assets/js/highcharts/modules/variable-pie.js +2 -2
- package/assets/js/highcharts/modules/variable-pie.src.js +5 -5
- package/assets/js/highcharts/modules/variwide.js +2 -2
- package/assets/js/highcharts/modules/variwide.src.js +4 -4
- package/assets/js/highcharts/modules/vector.js +2 -2
- package/assets/js/highcharts/modules/vector.src.js +4 -4
- package/assets/js/highcharts/modules/venn.js +2 -2
- package/assets/js/highcharts/modules/venn.src.js +3 -88
- package/assets/js/highcharts/modules/windbarb.js +2 -2
- package/assets/js/highcharts/modules/windbarb.src.js +5 -5
- package/assets/js/highcharts/modules/wordcloud.js +2 -2
- package/assets/js/highcharts/modules/wordcloud.src.js +6 -6
- package/assets/js/highcharts/modules/xrange.js +2 -2
- package/assets/js/highcharts/modules/xrange.src.js +3 -3
- package/assets/js/highcharts/standalone-navigator.js +2 -2
- package/assets/js/highcharts/standalone-navigator.src.js +3363 -3034
- package/assets/js/highcharts/themes/avocado.js +2 -2
- package/assets/js/highcharts/themes/avocado.src.js +3 -3
- package/assets/js/highcharts/themes/brand-dark.js +2 -2
- package/assets/js/highcharts/themes/brand-dark.src.js +3 -3
- package/assets/js/highcharts/themes/brand-light.js +2 -2
- package/assets/js/highcharts/themes/brand-light.src.js +3 -3
- package/assets/js/highcharts/themes/dark-blue.js +2 -2
- package/assets/js/highcharts/themes/dark-blue.src.js +3 -3
- package/assets/js/highcharts/themes/dark-green.js +2 -2
- package/assets/js/highcharts/themes/dark-green.src.js +3 -3
- package/assets/js/highcharts/themes/dark-unica.js +2 -2
- package/assets/js/highcharts/themes/dark-unica.src.js +3 -3
- package/assets/js/highcharts/themes/gray.js +2 -2
- package/assets/js/highcharts/themes/gray.src.js +3 -3
- package/assets/js/highcharts/themes/grid-light.js +2 -2
- package/assets/js/highcharts/themes/grid-light.src.js +3 -3
- package/assets/js/highcharts/themes/grid.js +2 -2
- package/assets/js/highcharts/themes/grid.src.js +3 -3
- package/assets/js/highcharts/themes/high-contrast-dark.js +2 -2
- package/assets/js/highcharts/themes/high-contrast-dark.src.js +3 -3
- package/assets/js/highcharts/themes/high-contrast-light.js +2 -2
- package/assets/js/highcharts/themes/high-contrast-light.src.js +3 -3
- package/assets/js/highcharts/themes/sand-signika.js +2 -2
- package/assets/js/highcharts/themes/sand-signika.src.js +3 -3
- package/assets/js/highcharts/themes/skies.js +2 -2
- package/assets/js/highcharts/themes/skies.src.js +3 -3
- package/assets/js/highcharts/themes/sunset.js +2 -2
- package/assets/js/highcharts/themes/sunset.src.js +3 -3
- package/assets/js/pdfjs/build/pdf.mjs +464 -207
- package/assets/js/pdfjs/build/pdf.mjs.map +1 -1
- package/assets/js/pdfjs/build/pdf.sandbox.mjs +6 -3
- package/assets/js/pdfjs/build/pdf.sandbox.mjs.map +1 -1
- package/assets/js/pdfjs/build/pdf.worker.mjs +384 -204
- package/assets/js/pdfjs/build/pdf.worker.mjs.map +1 -1
- package/assets/js/pdfjs/web/locale/br/viewer.ftl +5 -6
- package/assets/js/pdfjs/web/locale/is/viewer.ftl +1 -9
- package/assets/js/pdfjs/web/locale/ja/viewer.ftl +1 -3
- package/assets/js/pdfjs/web/locale/kab/viewer.ftl +57 -8
- package/assets/js/pdfjs/web/locale/nn-NO/viewer.ftl +40 -6
- package/assets/js/pdfjs/web/locale/sl/viewer.ftl +4 -0
- package/assets/js/pdfjs/web/viewer.css +15 -0
- package/assets/js/pdfjs/web/viewer.html +1 -1
- package/assets/js/pdfjs/web/viewer.mjs +159 -91
- package/assets/js/pdfjs/web/viewer.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
!/**
|
|
2
|
-
* Highcharts JS v11.4.
|
|
2
|
+
* Highcharts JS v11.4.4 (2024-07-02)
|
|
3
3
|
*
|
|
4
4
|
* Standalone navigator module
|
|
5
5
|
*
|
|
6
6
|
* (c) 2009-2024 Mateusz Bernacik
|
|
7
7
|
*
|
|
8
8
|
* License: www.highcharts.com/license
|
|
9
|
-
*/function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/navigator",["highcharts"],function(i){return t(i),t.Highcharts=i,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var i=t?t._modules:{};function e(t,i,e,s){t.hasOwnProperty(i)||(t[i]=s.apply(null,e),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:i,module:t[i]}})))}e(i,"Stock/Navigator/ChartNavigatorComposition.js",[i["Core/Globals.js"],i["Core/Utilities.js"]],function(t,i){let e;let{isTouchDevice:s}=t,{addEvent:a,merge:r,pick:o}=i,n=[];function h(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function l(){let t,i,e;let s=this.legend,a=this.navigator;if(a){t=s&&s.options,i=a.xAxis,e=a.yAxis;let{scrollbarHeight:r,scrollButtonSize:n}=a;this.inverted?(a.left=a.opposite?this.chartWidth-r-a.height:this.spacing[3]+r,a.top=this.plotTop+n):(a.left=o(i.left,this.plotLeft+n),a.top=a.navigatorOptions.top||this.chartHeight-a.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+o(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),i&&e&&(this.inverted?i.options.left=e.options.left=a.left:i.options.top=e.options.top=a.top,i.setAxisSize(),e.setAxisSize())}}function d(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new e(this),o(t.redraw,!0)&&this.redraw(t.animation))}function c(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new e(this))}function g(){let t=this.options,i=t.navigator,e=t.rangeSelector;if((i&&i.enabled||e&&e.enabled)&&(!s&&"x"===this.zooming.type||s&&"x"===this.zooming.pinchType))return!1}function u(t){let i=t.navigator;if(i&&t.xAxis[0]){let e=t.xAxis[0].getExtremes();i.render(e.min,e.max)}}function x(t){let i=t.options.navigator||{},e=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(i.enabled||e.enabled)&&(r(!0,this.options.navigator,i),r(!0,this.options.scrollbar,e),delete t.options.navigator,delete t.options.scrollbar)}return{compose:function(t,s){if(i.pushUnique(n,t)){let i=t.prototype;e=s,i.callbacks.push(u),a(t,"afterAddSeries",h),a(t,"afterSetChartSize",l),a(t,"afterUpdate",d),a(t,"beforeRender",c),a(t,"beforeShowResetZoom",g),a(t,"update",x)}}}}),e(i,"Core/Axis/NavigatorAxisComposition.js",[i["Core/Globals.js"],i["Core/Utilities.js"]],function(t,i){let{isTouchDevice:e}=t,{addEvent:s,correctFloat:a,defined:r,isNumber:o,pick:n}=i;function h(){this.navigatorAxis||(this.navigatorAxis=new d(this))}function l(t){let i;let s=this.chart,a=s.options,o=a.navigator,n=this.navigatorAxis,h=s.zooming.pinchType,l=a.rangeSelector,d=s.zooming.type;if(this.isXAxis&&(o?.enabled||l?.enabled)){if("y"===d&&"zoom"===t.trigger)i=!1;else if(("zoom"===t.trigger&&"xy"===d||e&&"xy"===h)&&this.options.range){let i=n.previousZoom;r(t.min)?n.previousZoom=[this.min,this.max]:i&&(t.min=i[0],t.max=i[1],n.previousZoom=void 0)}}void 0!==i&&t.preventDefault()}class d{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),s(t,"init",h),s(t,"setExtremes",l))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,i,e,s){let h=this.axis,l=(h.pointRange||0)/2,d=n(e,h.translate(t,!0,!h.horiz)),c=n(s,h.translate(i,!0,!h.horiz));return r(e)||(d=a(d+l)),r(s)||(c=a(c-l)),o(d)&&o(c)||(d=c=void 0),{min:d,max:c}}}return d}),e(i,"Stock/Navigator/NavigatorDefaults.js",[i["Core/Color/Color.js"],i["Core/Series/SeriesRegistry.js"]],function(t,i){let{parse:e}=t,{seriesTypes:s}=i;return{height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:e("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===s.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),e(i,"Stock/Navigator/NavigatorSymbols.js",[i["Core/Renderer/SVG/Symbols.js"],i["Core/Utilities.js"]],function(t,i){let{relativeLength:e}=i;return{"navigator-handle":function(i,s,a,r,o={}){let n=o.width?o.width/2:a,h=e(o.borderRadius||0,Math.min(2*n,r));return[["M",-1.5,(r=o.height||r)/2-3.5],["L",-1.5,r/2+4.5],["M",.5,r/2-3.5],["L",.5,r/2+4.5],...t.rect(-n-1,.5,2*n+1,r,{r:h})]}}}),e(i,"Stock/Utilities/StockUtilities.js",[i["Core/Utilities.js"]],function(t){let{defined:i}=t;return{setFixedRange:function(t){let e=this.xAxis[0];i(e.dataMax)&&i(e.dataMin)&&t?this.fixedRange=Math.min(t,e.dataMax-e.dataMin):this.fixedRange=t}}}),e(i,"Stock/Navigator/NavigatorComposition.js",[i["Core/Defaults.js"],i["Core/Globals.js"],i["Core/Axis/NavigatorAxisComposition.js"],i["Stock/Navigator/NavigatorDefaults.js"],i["Stock/Navigator/NavigatorSymbols.js"],i["Core/Renderer/RendererRegistry.js"],i["Stock/Utilities/StockUtilities.js"],i["Core/Utilities.js"]],function(t,i,e,s,a,r,o,n){let{setOptions:h}=t,{composed:l}=i,{getRendererType:d}=r,{setFixedRange:c}=o,{addEvent:g,extend:u,pushUnique:x}=n;function p(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(t,i,r){e.compose(i),x(l,"Navigator")&&(t.prototype.setFixedRange=c,u(d().prototype.symbols,a),g(r,"afterUpdate",p),h({navigator:s}))}}}),e(i,"Core/Axis/ScrollbarAxis.js",[i["Core/Globals.js"],i["Core/Utilities.js"]],function(t,i){var e;let{composed:s}=t,{addEvent:a,defined:r,pick:o,pushUnique:n}=i;return function(t){let i;function e(t){let i=o(t.options&&t.options.min,t.min),e=o(t.options&&t.options.max,t.max);return{axisMin:i,axisMax:e,scrollMin:r(t.dataMin)?Math.min(i,t.min,t.dataMin,o(t.threshold,1/0)):i,scrollMax:r(t.dataMax)?Math.max(e,t.max,t.dataMax,o(t.threshold,-1/0)):e}}function h(){let t=this.scrollbar,i=t&&!t.options.opposite,e=this.horiz?2:i?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[e]+=t.size+(t.options.margin||0))}function l(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new i(t.chart.renderer,t.options.scrollbar,t.chart),a(t.scrollbar,"changed",function(i){let s,a;let{axisMin:o,axisMax:n,scrollMin:h,scrollMax:l}=e(t),d=l-h;if(r(o)&&r(n)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=h+d*this.to,a=h+d*this.from):(s=h+d*(1-this.from),a=h+d*(1-this.to)),this.shouldUpdateExtremes(i.DOMType)){let e="mousemove"!==i.DOMType&&"touchmove"!==i.DOMType&&void 0;t.setExtremes(a,s,!0,e,i)}else this.setRange(this.from,this.to)}}))}function d(){let t,i,s;let{scrollMin:a,scrollMax:o}=e(this),n=this.scrollbar,h=this.axisTitleMargin+(this.titleOffset||0),l=this.chart.scrollbarsOffsets,d=this.options.margin||0;if(n&&l){if(this.horiz)this.opposite||(l[1]+=h),n.position(this.left,this.top+this.height+2+l[1]-(this.opposite?d:0),this.width,this.height),this.opposite||(l[1]+=d),t=1;else{let i;this.opposite&&(l[0]+=h),i=n.options.opposite?this.left+this.width+2+l[0]-(this.opposite?0:d):this.opposite?0:d,n.position(i,this.top,this.width,this.height),this.opposite&&(l[0]+=d),t=0}l[t]+=n.size+(n.options.margin||0),isNaN(a)||isNaN(o)||!r(this.min)||!r(this.max)||this.min===this.max?n.setRange(0,1):(i=(this.min-a)/(o-a),s=(this.max-a)/(o-a),this.horiz&&!this.reversed||!this.horiz&&this.reversed?n.setRange(i,s):n.setRange(1-s,1-i))}}t.compose=function(t,e){n(s,"Axis.Scrollbar")&&(i=e,a(t,"afterGetOffset",h),a(t,"afterInit",l),a(t,"afterRender",d))}}(e||(e={})),e}),e(i,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),e(i,"Stock/Scrollbar/Scrollbar.js",[i["Core/Defaults.js"],i["Core/Globals.js"],i["Core/Axis/ScrollbarAxis.js"],i["Stock/Scrollbar/ScrollbarDefaults.js"],i["Core/Utilities.js"]],function(t,i,e,s,a){let{defaultOptions:r}=t,{addEvent:o,correctFloat:n,crisp:h,defined:l,destroyObjectProperties:d,fireEvent:c,merge:g,pick:u,removeEvent:x}=a;class p{static compose(t){e.compose(t,p)}static swapXY(t,i){return i&&t.forEach(t=>{let i;let e=t.length;for(let s=0;s<e;s+=2)"number"==typeof(i=t[s+1])&&(t[s+1]=t[s+2],t[s+2]=i)}),t}constructor(t,i,e){this._events=[],this.chartX=0,this.chartY=0,this.from=0,this.scrollbarButtons=[],this.scrollbarLeft=0,this.scrollbarStrokeWidth=1,this.scrollbarTop=0,this.size=0,this.to=0,this.trackBorderWidth=1,this.x=0,this.y=0,this.init(t,i,e)}addEvents(){let t=this.options.inverted?[1,0]:[0,1],i=this.scrollbarButtons,e=this.scrollbarGroup.element,s=this.track.element,a=this.mouseDownHandler.bind(this),r=this.mouseMoveHandler.bind(this),n=this.mouseUpHandler.bind(this),h=[[i[t[0]].element,"click",this.buttonToMinClick.bind(this)],[i[t[1]].element,"click",this.buttonToMaxClick.bind(this)],[s,"click",this.trackClick.bind(this)],[e,"mousedown",a],[e.ownerDocument,"mousemove",r],[e.ownerDocument,"mouseup",n],[e,"touchstart",a],[e.ownerDocument,"touchmove",r],[e.ownerDocument,"touchend",n]];h.forEach(function(t){o.apply(null,t)}),this._events=h}buttonToMaxClick(t){let i=(this.to-this.from)*u(this.options.step,.2);this.updatePosition(this.from+i,this.to+i),c(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}buttonToMinClick(t){let i=n(this.to-this.from)*u(this.options.step,.2);this.updatePosition(n(this.from-i),n(this.to-i)),c(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}cursorToScrollbarPosition(t){let i=this.options,e=i.minWidth>this.calculatedWidth?i.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-e),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-e)}}destroy(){let t=this,i=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(i){t[i]&&t[i].destroy&&(t[i]=t[i].destroy())}),i&&t===i.scrollbar&&(i.scrollbar=null,d(i.scrollbarButtons))}drawScrollbarButton(t){let i=this.renderer,e=this.scrollbarButtons,s=this.options,a=this.size,r=i.g().add(this.group);if(e.push(r),s.buttonsEnabled){let o=i.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||o.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),o.attr(o.crisp({x:-.5,y:-.5,width:a,height:a,r:s.buttonBorderRadius},o.strokeWidth()));let n=i.path(p.swapXY([["M",a/2+(t?-1:1),a/2-3],["L",a/2+(t?-1:1),a/2+3],["L",a/2+(t?2:-2),a/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(e[t]);this.chart.styledMode||n.attr({fill:s.buttonArrowColor})}}init(t,i,e){this.scrollbarButtons=[],this.renderer=t,this.userOptions=i,this.options=g(s,r.scrollbar,i),this.options.margin=u(this.options.margin,10),this.chart=e,this.size=u(this.options.size,this.options.height),i.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let i=this.chart.pointer?.normalize(t)||t,e=this.cursorToScrollbarPosition(i);this.chartX=e.chartX,this.chartY=e.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let i;let e=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",a=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(i=this.cursorToScrollbarPosition(e)[s]-this[s],this.hasDragged=!0,this.updatePosition(a[0]+i,a[1]+i),this.hasDragged&&c(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&c(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,i,e,s){let{buttonsEnabled:a,margin:r=0,vertical:o}=this.options,n=this.rendered?"animate":"attr",h=s,l=0;this.group.show(),this.x=t,this.y=i+this.trackBorderWidth,this.width=e,this.height=s,this.xOffset=h,this.yOffset=l,o?(this.width=this.yOffset=e=l=this.size,this.xOffset=h=0,this.yOffset=l=a?this.size:0,this.barWidth=s-(a?2*e:0),this.x=t+=r):(this.height=s=this.size,this.xOffset=h=a?this.size:0,this.barWidth=e-(a?2*s:0),this.y=this.y+r),this.group[n]({translateX:t,translateY:this.y}),this.track[n]({width:e,height:s}),this.scrollbarButtons[1][n]({translateX:o?0:e-h,translateY:o?s-l:0})}removeEvents(){this._events.forEach(function(t){x.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,i=this.options,e=this.size,s=this.chart.styledMode,a=t.g("scrollbar").attr({zIndex:i.zIndex}).hide().add();this.group=a,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:i.trackBorderRadius||0,height:e,width:e}).add(a),s||this.track.attr({fill:i.trackBackgroundColor,stroke:i.trackBorderColor,"stroke-width":i.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-h(0,r),y:-h(0,r)}),this.scrollbarGroup=t.g().add(a),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:e-r,width:e-r,r:i.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(p.swapXY([["M",-3,e/4],["L",-3,2*e/3],["M",0,e/4],["L",0,2*e/3],["M",3,e/4],["L",3,2*e/3]],i.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:i.barBackgroundColor,stroke:i.barBorderColor,"stroke-width":i.barBorderWidth}),this.scrollbarRifles.attr({stroke:i.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-h(0,this.scrollbarStrokeWidth),-h(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,i){let e,s;let a=this.options,r=a.vertical,o=a.minWidth,h=this.barWidth,d=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!l(h))return;let c=h*Math.min(i,1);e=Math.ceil(h*(t=Math.max(t,0))),this.calculatedWidth=s=n(c-e),s<o&&(e=(h-o+s)*t,s=o);let g=Math.floor(e+this.xOffset+this.yOffset),u=s/2-.5;this.from=t,this.to=i,r?(this.scrollbarGroup[d]({translateY:g}),this.scrollbar[d]({height:s}),this.scrollbarRifles[d]({translateY:u}),this.scrollbarTop=g,this.scrollbarLeft=0):(this.scrollbarGroup[d]({translateX:g}),this.scrollbar[d]({width:s}),this.scrollbarRifles[d]({translateX:u}),this.scrollbarLeft=g,this.scrollbarTop=0),s<=12?this.scrollbarRifles.hide():this.scrollbarRifles.show(),!1===a.showFull&&(t<=0&&i>=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return u(this.options.liveRedraw,i.svg&&!i.isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!l(t)}trackClick(t){let i=this.chart.pointer?.normalize(t)||t,e=this.to-this.from,s=this.y+this.scrollbarTop,a=this.x+this.scrollbarLeft;this.options.vertical&&i.chartY>s||!this.options.vertical&&i.chartX>a?this.updatePosition(this.from+e,this.to+e):this.updatePosition(this.from-e,this.to-e),c(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,g(!0,this.options,t),this.chart)}updatePosition(t,i){i>1&&(t=n(1-n(i-t)),i=1),t<0&&(i=n(i-t),t=0),this.from=t,this.to=i}}return p.defaultOptions=s,r.scrollbar=g(!0,p.defaultOptions,r.scrollbar),p}),e(i,"Stock/Navigator/Navigator.js",[i["Core/Axis/Axis.js"],i["Stock/Navigator/ChartNavigatorComposition.js"],i["Core/Defaults.js"],i["Core/Globals.js"],i["Core/Axis/NavigatorAxisComposition.js"],i["Stock/Navigator/NavigatorComposition.js"],i["Stock/Scrollbar/Scrollbar.js"],i["Core/Utilities.js"]],function(t,i,e,s,a,r,o,n){let{defaultOptions:h}=e,{isTouchDevice:l}=s,{addEvent:d,clamp:c,correctFloat:g,defined:u,destroyObjectProperties:x,erase:p,extend:m,find:v,fireEvent:b,isArray:f,isNumber:M,merge:A,pick:S,removeEvent:k,splat:y}=n;function E(t,...i){let e=[].filter.call(i,M);if(e.length)return Math[t].apply(0,e)}class w{static compose(t,e,s){i.compose(t,w),r.compose(t,e,s)}constructor(t){this.scrollbarHeight=0,this.init(t)}drawHandle(t,i,e,s){let a=this.navigatorOptions.handles.height;this.handles[i][s](e?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-a)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-a/2-1)})}drawOutline(t,i,e,s){let a=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),o=r/2,n=r%2/2,h=this.scrollButtonSize,l=this.size,d=this.top,c=this.height,g=d-o,u=d+c,x=this.left,p,m;e?(p=d+i+n,i=d+t+n,m=[["M",x+c,d-h-n],["L",x+c,p],["L",x,p],["M",x,i],["L",x+c,i],["L",x+c,d+l+h]],a&&m.push(["M",x+c,p-o],["L",x+c,i+o])):(x-=h,t+=x+h-n,i+=x+h-n,m=[["M",x,g],["L",t,g],["L",t,u],["M",i,u],["L",i,g],["L",x+l+2*h,d+o]],a&&m.push(["M",t-o,g],["L",i+o,g])),this.outline[s]({d:m})}drawMasks(t,i,e,s){let a,r,o,n;let h=this.left,l=this.top,d=this.height;e?(o=[h,h,h],n=[l,l+t,l+i],r=[d,d,d],a=[t,i-t,this.size-i]):(o=[h,h+t,h+i],n=[l,l,l],r=[t,i-t,this.size-i],a=[d,d,d]),this.shades.forEach((t,i)=>{t[s]({x:o[i],y:n[i],width:r[i],height:a[i]})})}renderElements(){let t=this,i=t.navigatorOptions,e=i.maskInside,s=t.chart,a=s.inverted,r=s.renderer,o={cursor:a?"ns-resize":"ew-resize"},n=t.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add();if([!e,e,!e].forEach((e,a)=>{let h=r.rect().addClass("highcharts-navigator-mask"+(1===a?"-inside":"-outside")).add(n);s.styledMode||(h.attr({fill:e?i.maskFill:"rgba(0,0,0,0)"}),1===a&&h.css(o)),t.shades[a]=h}),t.outline=r.path().addClass("highcharts-navigator-outline").add(n),s.styledMode||t.outline.attr({"stroke-width":i.outlineWidth,stroke:i.outlineColor}),i.handles&&i.handles.enabled){let e=i.handles,{height:a,width:h}=e;[0,1].forEach(i=>{t.handles[i]=r.symbol(e.symbols[i],-h/2-1,0,h,a,e),s.inverted&&t.handles[i].attr({rotation:90,rotationOriginX:Math.floor(-h/2),rotationOriginY:(a+h)/2}),t.handles[i].attr({zIndex:7-i}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][i]).add(n),s.styledMode||t.handles[i].attr({fill:e.backgroundColor,stroke:e.borderColor,"stroke-width":e.lineWidth}).css(o)})}}update(t){(this.series||[]).forEach(t=>{t.baseSeries&&delete t.baseSeries.navigatorSeries}),this.destroy(),A(!0,this.chart.options.navigator,t),this.init(this.chart)}render(t,i,e,s){let a=this.chart,r=this.xAxis,o=r.pointRange||0,n=r.navigatorAxis.fake?a.xAxis[0]:r,h=this.navigatorEnabled,l=this.rendered,d=a.inverted,x=a.xAxis[0].minRange,p=a.xAxis[0].options.maxRange,m=this.scrollButtonSize,v,f,A,k=this.scrollbarHeight,y,E;if(this.hasDragged&&!u(e))return;if(t=g(t-o/2),i=g(i+o/2),!M(t)||!M(i)){if(!l)return;e=0,s=S(r.width,n.width)}this.left=S(r.left,a.plotLeft+m+(d?a.plotWidth:0));let w=this.size=y=S(r.len,(d?a.plotHeight:a.plotWidth)-2*m);v=d?k:y+2*m,e=S(e,r.toPixels(t,!0)),s=S(s,r.toPixels(i,!0)),M(e)&&Math.abs(e)!==1/0||(e=0,s=v);let C=r.toValue(e,!0),O=r.toValue(s,!0),z=Math.abs(g(O-C));z<x?this.grabbedLeft?e=r.toPixels(O-x-o,!0):this.grabbedRight&&(s=r.toPixels(C+x+o,!0)):u(p)&&g(z-o)>p&&(this.grabbedLeft?e=r.toPixels(O-p-o,!0):this.grabbedRight&&(s=r.toPixels(C+p+o,!0))),this.zoomedMax=c(Math.max(e,s),0,w),this.zoomedMin=c(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(e,s),0,w),this.range=this.zoomedMax-this.zoomedMin,w=Math.round(this.zoomedMax);let D=Math.round(this.zoomedMin);h&&(this.navigatorGroup.attr({visibility:"inherit"}),E=l&&!this.hasDragged?"animate":"attr",this.drawMasks(D,w,d,E),this.drawOutline(D,w,d,E),this.navigatorOptions.handles.enabled&&(this.drawHandle(D,0,d,E),this.drawHandle(w,1,d,E))),this.scrollbar&&(d?(A=this.top-m,f=this.left-k+(h||!n.opposite?0:(n.titleOffset||0)+n.axisTitleMargin),k=y+2*m):(A=this.top+(h?this.height:-k),f=this.left-m),this.scrollbar.position(f,A,v,k),this.scrollbar.setRange(this.zoomedMin/(y||1),this.zoomedMax/(y||1))),this.rendered=!0,b(this,"afterRender")}addMouseEvents(){let t=this,i=t.chart,e=i.container,s=[],a,r;t.mouseMoveHandler=a=function(i){t.onMouseMove(i)},t.mouseUpHandler=r=function(i){t.onMouseUp(i)},(s=t.getPartsEvents("mousedown")).push(d(i.renderTo,"mousemove",a),d(e.ownerDocument,"mouseup",r),d(i.renderTo,"touchmove",a),d(e.ownerDocument,"touchend",r)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(d(t.series[0].xAxis,"foundExtremes",function(){i.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let i=this,e=[];return["shades","handles"].forEach(function(s){i[s].forEach(function(a,r){e.push(d(a.element,t,function(t){i[s+"Mousedown"](t,r)}))})}),e}shadesMousedown(t,i){t=this.chart.pointer?.normalize(t)||t;let e=this.chart,s=this.xAxis,a=this.zoomedMin,r=this.size,o=this.range,n=this.left,h=t.chartX,l,d,c,g;e.inverted&&(h=t.chartY,n=this.top),1===i?(this.grabbedCenter=h,this.fixedWidth=o,this.dragOffset=h-a):(g=h-n-o/2,0===i?g=Math.max(0,g):2===i&&g+o>=r&&(g=r-o,this.reversedExtremes?(g-=o,d=this.getUnionExtremes().dataMin):l=this.getUnionExtremes().dataMax),g!==a&&(this.fixedWidth=o,u((c=s.navigatorAxis.toFixedRange(g,g+o,d,l)).min)&&b(this,"setRange",{min:Math.min(c.min,c.max),max:Math.max(c.min,c.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,i){t=this.chart.pointer?.normalize(t)||t;let e=this.chart,s=e.xAxis[0],a=this.reversedExtremes;0===i?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=a?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=a?s.max:s.min),e.setFixedRange(void 0)}onMouseMove(t){let i=this,e=i.chart,s=i.navigatorSize,a=i.range,r=i.dragOffset,o=e.inverted,n=i.left,h;(!t.touches||0!==t.touches[0].pageX)&&(h=(t=e.pointer?.normalize(t)||t).chartX,o&&(n=i.top,h=t.chartY),i.grabbedLeft?(i.hasDragged=!0,i.render(0,0,h-n,i.otherHandlePos)):i.grabbedRight?(i.hasDragged=!0,i.render(0,0,i.otherHandlePos,h-n)):i.grabbedCenter&&(i.hasDragged=!0,h<r?h=r:h>s+r-a&&(h=s+r-a),i.render(0,0,h-r,h-r+a)),i.hasDragged&&i.scrollbar&&S(i.scrollbar.options.liveRedraw,!l&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){i.onMouseUp(t)},0)))}onMouseUp(t){let i,e,s,a,r,o;let n=this.chart,h=this.xAxis,l=this.scrollbar,d=t.DOMEvent||t,c=n.inverted,g=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!l||!l.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?a=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(a=this.reversedExtremes?s.dataMax:s.dataMin),u((o=h.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,a,r)).min)&&b(this,"setRange",{min:Math.min(o.min,o.max),max:Math.max(o.min,o.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&M(this.zoomedMin)&&M(this.zoomedMax)&&(e=Math.round(this.zoomedMin),i=Math.round(this.zoomedMax),this.shades&&this.drawMasks(e,i,c,g),this.outline&&this.drawOutline(e,i,c,g),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(e,0,c,g),this.drawHandle(i,1,c,g)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){k(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&k(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}init(i){let e=i.options,s=e.navigator||{},r=s.enabled,n=e.scrollbar||{},h=n.enabled,l=r&&s.height||0,c=h&&n.height||0,g=n.buttonsEnabled&&c||0;this.handles=[],this.shades=[],this.chart=i,this.setBaseSeries(),this.height=l,this.scrollbarHeight=c,this.scrollButtonSize=g,this.scrollbarEnabled=h,this.navigatorEnabled=r,this.navigatorOptions=s,this.scrollbarOptions=n,this.opposite=S(s.opposite,!!(!r&&i.inverted));let u=this,x=u.baseSeries,p=i.xAxis.length,m=i.yAxis.length,v=x&&x[0]&&x[0].xAxis||i.xAxis[0]||{options:{}};if(i.isDirtyBox=!0,u.navigatorEnabled?(u.xAxis=new t(i,A({breaks:v.options.breaks,ordinal:v.options.ordinal,overscroll:v.options.overscroll},s.xAxis,{type:"datetime",index:p,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1},i.inverted?{offsets:[g,0,-g,0],width:l}:{offsets:[0,-g,0,g],height:l}),"xAxis"),u.yAxis=new t(i,A(s.yAxis,{alignTicks:!1,offset:0,index:m,isInternal:!0,reversed:S(s.yAxis&&s.yAxis.reversed,i.yAxis[0]&&i.yAxis[0].reversed,!1),zoomEnabled:!1},i.inverted?{width:l}:{height:l}),"yAxis"),x||s.series.data?u.updateNavigatorSeries(!1):0===i.series.length&&(u.unbindRedraw=d(i,"beforeRedraw",function(){i.series.length>0&&!u.series&&(u.setBaseSeries(),u.unbindRedraw())})),u.reversedExtremes=i.inverted&&!u.xAxis.reversed||!i.inverted&&u.xAxis.reversed,u.renderElements(),u.addMouseEvents()):(u.xAxis={chart:i,navigatorAxis:{fake:!0},translate:function(t,e){let s=i.xAxis[0],a=s.getExtremes(),r=s.len-2*g,o=E("min",s.options.min,a.dataMin),n=E("max",s.options.max,a.dataMax)-o;return e?t*n/r+o:r*(t-o)/n},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},u.xAxis.navigatorAxis.axis=u.xAxis,u.xAxis.navigatorAxis.toFixedRange=a.prototype.toFixedRange.bind(u.xAxis.navigatorAxis)),i.options.scrollbar.enabled){let t=A(i.options.scrollbar,{vertical:i.inverted});!M(t.margin)&&u.navigatorEnabled&&(t.margin=i.inverted?-3:3),i.scrollbar=u.scrollbar=new o(i.renderer,t,i),d(u.scrollbar,"changed",function(t){let i=u.size,e=i*this.to,s=i*this.from;u.hasDragged=u.scrollbar.hasDragged,u.render(0,0,s,e),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){u.onMouseUp(t)})})}u.addBaseSeriesEvents(),u.addChartEvents()}getUnionExtremes(t){let i;let e=this.chart.xAxis[0],s=this.xAxis,a=s.options,r=e.options;return t&&null===e.dataMin||(i={dataMin:S(a&&a.min,E("min",r.min,e.dataMin,s.dataMin,s.min)),dataMax:S(a&&a.max,E("max",r.max,e.dataMax,s.dataMax,s.max))}),i}setBaseSeries(t,i){let e=this.chart,s=this.baseSeries=[];t=t||e.options&&e.options.navigator.baseSeries||(e.series.length?v(e.series,t=>!t.options.isInternal).index:0),(e.series||[]).forEach((i,e)=>{!i.options.isInternal&&(i.options.showInNavigator||(e===t||i.options.id===t)&&!1!==i.options.showInNavigator)&&s.push(i)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,i)}updateNavigatorSeries(t,i){let e=this,s=e.chart,a=e.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},o=e.series=(e.series||[]).filter(t=>{let i=t.baseSeries;return!(0>a.indexOf(i))||(i&&(k(i,"updatedData",e.updatedDataHandler),delete i.navigatorSeries),t.chart&&t.destroy(),!1)}),n,l,d=e.navigatorOptions.series,c;a&&a.length&&a.forEach(t=>{let g=t.navigatorSeries,u=m({color:t.color,visible:t.visible},f(d)?h.navigator.series:d);if(g&&!1===e.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+a.length,c=(n=t.options||{}).navigatorOptions||{},u.dataLabels=y(u.dataLabels),(l=A(n,r,u,c)).pointRange=S(u.pointRange,c.pointRange,h.plotOptions[l.type||"line"].pointRange);let x=c.data||u.data;e.hasNavigatorData=e.hasNavigatorData||!!x,l.data=x||n.data&&n.data.slice(0),g&&g.options?g.update(l,i):(t.navigatorSeries=s.initSeries(l),s.setSortedData(),t.navigatorSeries.baseSeries=t,o.push(t.navigatorSeries))}),(d.data&&!(a&&a.length)||f(d))&&(e.hasNavigatorData=!1,(d=y(d)).forEach((t,i)=>{r.name="Navigator "+(o.length+1),(l=A(h.navigator.series,{color:s.series[i]&&!s.series[i].options.isInternal&&s.series[i].color||s.options.colors[i]||s.options.colors[0]},r,t)).data=t.data,l.data&&(e.hasNavigatorData=!0,o.push(s.initSeries(l)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,i=t.baseSeries||[];i[0]&&i[0].xAxis&&i[0].eventsToUnbind.push(d(i[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),i.forEach(i=>{i.eventsToUnbind.push(d(i,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),i.eventsToUnbind.push(d(i,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&i.xAxis&&i.eventsToUnbind.push(d(i,"updatedData",this.updatedDataHandler)),i.eventsToUnbind.push(d(i,"remove",function(){this.navigatorSeries&&(p(t.series,this.navigatorSeries),u(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,i){return Math.min(t,i.xData&&i.xData.length?i.xData[0]:t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let i=this.getUnionExtremes(!0);i&&(i.dataMin!==t.min||i.dataMax!==t.max)&&(t.min=i.dataMin,t.max=i.dataMax)}}modifyBaseAxisExtremes(){let t,i;let e=this.chart.navigator,s=this.getExtremes(),a=s.min,r=s.max,o=s.dataMin,n=s.dataMax,h=r-a,l=e.stickToMin,d=e.stickToMax,c=S(this.ordinal?.convertOverscroll(this.options.overscroll),0),g=e.series&&e.series[0],u=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(l&&(t=(i=o)+h),d&&(t=n+c,l||(i=Math.max(o,t-h,e.getBaseSeriesMin(g&&g.xData?g.xData[0]:-Number.MAX_VALUE)))),u&&(l||d)&&M(i)&&(this.min=this.userMin=i,this.max=this.userMax=t)),e.stickToMin=e.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,i=this.navigatorSeries,e=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=S(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,e),t.stickToMin=t.shouldStickToMin(this,t),i&&!t.hasNavigatorData&&(i.options.pointStart=this.xData[0],i.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,i){let e=i.getBaseSeriesMin(t.xData[0]),s=t.xAxis,a=s.max,r=s.min,o=s.options.range;return!!(M(a)&&M(r))&&(o&&a-e>0?a-e<o:r<=e)}addChartEvents(){this.eventsToUnbind||(this.eventsToUnbind=[]),this.eventsToUnbind.push(d(this.chart,"redraw",function(){let t=this.navigator,i=t&&(t.baseSeries&&t.baseSeries[0]&&t.baseSeries[0].xAxis||this.xAxis[0]);i&&t.render(i.min,i.max)}),d(this.chart,"getMargins",function(){let t=this.navigator,i=t.opposite?"plotTop":"marginBottom";this.inverted&&(i=t.opposite?"marginRight":"plotLeft"),this[i]=(this[i]||0)+(t.navigatorEnabled||!this.inverted?t.height+t.scrollbarHeight:0)+t.navigatorOptions.margin}),d(w,"setRange",function(t){this.chart.xAxis[0].setExtremes(t.min,t.max,t.redraw,t.animation,t.eventArguments)}))}destroy(){this.removeEvents(),this.xAxis&&(p(this.chart.xAxis,this.xAxis),p(this.chart.axes,this.xAxis)),this.yAxis&&(p(this.chart.yAxis,this.yAxis),p(this.chart.axes,this.yAxis)),(this.series||[]).forEach(t=>{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{x(t)})}}return w}),e(i,"Stock/Navigator/StandaloneNavigatorDefaults.js",[],function(){return{chart:{height:70,margin:[0,5,0,5]},exporting:{enabled:!1},legend:{enabled:!1},navigator:{enabled:!1},plotOptions:{series:{states:{hover:{enabled:!1}},marker:{enabled:!1}}},scrollbar:{enabled:!1},title:{text:""},tooltip:{enabled:!1},xAxis:{visible:!1},yAxis:{height:0,visible:!1}}}),e(i,"Stock/Navigator/StandaloneNavigator.js",[i["Core/Chart/Chart.js"],i["Stock/Navigator/Navigator.js"],i["Core/Globals.js"],i["Core/Utilities.js"],i["Core/Axis/Axis.js"],i["Stock/Navigator/StandaloneNavigatorDefaults.js"]],function(t,i,e,s,a,r){let{merge:o,addEvent:n,fireEvent:h,pick:l}=s;class d{static navigator(t,i){let s=new d(t,i);return e.navigators?e.navigators.push(s):e.navigators=[s],s}constructor(s,a){this.boundAxes=[],this.userOptions=a,this.chartOptions=o(e.getOptions(),r,{navigator:a});let n=new t(s,this.chartOptions);n.options=o(n.options,{navigator:{enabled:!0},scrollbar:{enabled:!0}}),this.chartOptions.navigator&&this.chartOptions.scrollbar&&(this.chartOptions.navigator.enabled=!0,this.chartOptions.scrollbar.enabled=!0),this.navigator=new i(n),n.navigator=this.navigator,this.initNavigator()}bind(i,e=!0){let s=this,r=i instanceof t?i.xAxis[0]:i;if(!(r instanceof a))return;let{min:o,max:h}=this.navigator.xAxis,l=[];if(e){let t=n(r,"setExtremes",t=>{("pan"===t.trigger||"zoom"===t.trigger||"mouseWheelZoom"===t.trigger)&&s.setRange(t.min,t.max,!0,"pan"!==t.trigger,{trigger:r})});l.push(t)}let d=n(this.navigator,"setRange",t=>{r.setExtremes(t.min,t.max,t.redraw,t.animation)});l.push(d);let c=this.boundAxes.filter(function(t){return t.axis===r})[0];c||(c={axis:r,callbacks:[]},this.boundAxes.push(c)),c.callbacks=l,r.series.forEach(t=>{t.options.showInNavigator&&s.addSeries(t.options)}),r.setExtremes(o,h),n(r,"destroy",t=>{t.keepEvents||this.unbind(r)})}unbind(t){if(!t){this.boundAxes.forEach(({callbacks:t})=>{t.forEach(t=>t())}),this.boundAxes.length=0;return}let i=t instanceof a?t:t.xAxis[0];for(let t=this.boundAxes.length-1;t>=0;t--)this.boundAxes[t].axis===i&&(this.boundAxes[t].callbacks.forEach(t=>t()),this.boundAxes.splice(t,1))}destroy(){this.boundAxes.forEach(({callbacks:t})=>{t.forEach(t=>t())}),this.boundAxes.length=0,this.navigator.destroy(),this.navigator.chart.destroy()}update(t,i){this.chartOptions=o(this.chartOptions,{navigator:t}),this.navigator.chart.update(this.chartOptions,i)}redraw(){this.navigator.chart.redraw()}addSeries(t){this.navigator.chart.addSeries(o(t,{showInNavigator:l(t.showInNavigator,!0)})),this.navigator.setBaseSeries()}initNavigator(){let t=this.navigator;t.top=1,t.xAxis.setScale(),t.yAxis.setScale(),t.xAxis.render(),t.yAxis.render(),t.series?.forEach(t=>{t.translate(),t.render(),t.redraw()});let{min:i,max:e}=this.getInitialExtremes();t.chart.xAxis[0].userMin=i,t.chart.xAxis[0].userMax=e,t.render(i,e)}getRange(){let{min:t,max:i}=this.navigator.chart.xAxis[0].getExtremes(),{userMin:e,userMax:s,min:a,max:r}=this.navigator.xAxis.getExtremes();return{min:l(t,a),max:l(i,r),dataMin:a,dataMax:r,userMin:e,userMax:s}}setRange(t,i,e,s,a){h(this.navigator,"setRange",{min:t,max:i,redraw:e,animation:s,eventArguments:o(a,{trigger:"navigator"})})}getInitialExtremes(){let{min:t,max:i}=this.navigator.xAxis.getExtremes();return{min:t,max:i}}}return d}),e(i,"masters/modules/navigator.src.js",[i["Core/Globals.js"],i["Stock/Navigator/StandaloneNavigator.js"],i["Stock/Navigator/NavigatorComposition.js"]],function(t,i,e){return t.StandaloneNavigator=t.StandaloneNavigator||i,t.navigator=t.StandaloneNavigator.navigator,e.compose(t.Chart,t.Axis,t.Series),t})});
|
|
9
|
+
*/function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/navigator",["highcharts"],function(i){return t(i),t.Highcharts=i,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var i=t?t._modules:{};function e(i,e,s,a){i.hasOwnProperty(e)||(i[e]=a.apply(null,s),"function"==typeof CustomEvent&&t.win.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:e,module:i[e]}})))}e(i,"Stock/Navigator/ChartNavigatorComposition.js",[i["Core/Globals.js"],i["Core/Utilities.js"]],function(t,i){let e;let{isTouchDevice:s}=t,{addEvent:a,merge:r,pick:o}=i,n=[];function h(){this.navigator&&this.navigator.setBaseSeries(null,!1)}function l(){let t,i,e;let s=this.legend,a=this.navigator;if(a){t=s&&s.options,i=a.xAxis,e=a.yAxis;let{scrollbarHeight:r,scrollButtonSize:n}=a;this.inverted?(a.left=a.opposite?this.chartWidth-r-a.height:this.spacing[3]+r,a.top=this.plotTop+n):(a.left=o(i.left,this.plotLeft+n),a.top=a.navigatorOptions.top||this.chartHeight-a.height-r-(this.scrollbar?.options.margin||0)-this.spacing[2]-(this.rangeSelector&&this.extraBottomMargin?this.rangeSelector.getHeight():0)-(t&&"bottom"===t.verticalAlign&&"proximate"!==t.layout&&t.enabled&&!t.floating?s.legendHeight+o(t.margin,10):0)-(this.titleOffset?this.titleOffset[2]:0)),i&&e&&(this.inverted?i.options.left=e.options.left=a.left:i.options.top=e.options.top=a.top,i.setAxisSize(),e.setAxisSize())}}function d(t){!this.navigator&&!this.scroller&&(this.options.navigator.enabled||this.options.scrollbar.enabled)&&(this.scroller=this.navigator=new e(this),o(t.redraw,!0)&&this.redraw(t.animation))}function c(){let t=this.options;(t.navigator.enabled||t.scrollbar.enabled)&&(this.scroller=this.navigator=new e(this))}function g(){let t=this.options,i=t.navigator,e=t.rangeSelector;if((i&&i.enabled||e&&e.enabled)&&(!s&&"x"===this.zooming.type||s&&"x"===this.zooming.pinchType))return!1}function p(t){let i=t.navigator;if(i&&t.xAxis[0]){let e=t.xAxis[0].getExtremes();i.render(e.min,e.max)}}function u(t){let i=t.options.navigator||{},e=t.options.scrollbar||{};!this.navigator&&!this.scroller&&(i.enabled||e.enabled)&&(r(!0,this.options.navigator,i),r(!0,this.options.scrollbar,e),delete t.options.navigator,delete t.options.scrollbar)}return{compose:function(t,s){if(i.pushUnique(n,t)){let i=t.prototype;e=s,i.callbacks.push(p),a(t,"afterAddSeries",h),a(t,"afterSetChartSize",l),a(t,"afterUpdate",d),a(t,"beforeRender",c),a(t,"beforeShowResetZoom",g),a(t,"update",u)}}}}),e(i,"Core/Axis/NavigatorAxisComposition.js",[i["Core/Globals.js"],i["Core/Utilities.js"]],function(t,i){let{isTouchDevice:e}=t,{addEvent:s,correctFloat:a,defined:r,isNumber:o,pick:n}=i;function h(){this.navigatorAxis||(this.navigatorAxis=new d(this))}function l(t){let i;let s=this.chart,a=s.options,o=a.navigator,n=this.navigatorAxis,h=s.zooming.pinchType,l=a.rangeSelector,d=s.zooming.type;if(this.isXAxis&&(o?.enabled||l?.enabled)){if("y"===d&&"zoom"===t.trigger)i=!1;else if(("zoom"===t.trigger&&"xy"===d||e&&"xy"===h)&&this.options.range){let i=n.previousZoom;r(t.min)?n.previousZoom=[this.min,this.max]:i&&(t.min=i[0],t.max=i[1],n.previousZoom=void 0)}}void 0!==i&&t.preventDefault()}class d{static compose(t){t.keepProps.includes("navigatorAxis")||(t.keepProps.push("navigatorAxis"),s(t,"init",h),s(t,"setExtremes",l))}constructor(t){this.axis=t}destroy(){this.axis=void 0}toFixedRange(t,i,e,s){let h=this.axis,l=(h.pointRange||0)/2,d=n(e,h.translate(t,!0,!h.horiz)),c=n(s,h.translate(i,!0,!h.horiz));return r(e)||(d=a(d+l)),r(s)||(c=a(c-l)),o(d)&&o(c)||(d=c=void 0),{min:d,max:c}}}return d}),e(i,"Stock/Navigator/NavigatorDefaults.js",[i["Core/Color/Color.js"],i["Core/Series/SeriesRegistry.js"]],function(t,i){let{parse:e}=t,{seriesTypes:s}=i;return{height:40,margin:25,maskInside:!0,handles:{width:7,borderRadius:0,height:15,symbols:["navigator-handle","navigator-handle"],enabled:!0,lineWidth:1,backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:e("#667aff").setOpacity(.3).get(),outlineColor:"#999999",outlineWidth:1,series:{type:void 0===s.areaspline?"line":"areaspline",fillOpacity:.05,lineWidth:1,compare:null,sonification:{enabled:!1},dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,firstAnchor:"firstPoint",anchor:"middle",lastAnchor:"lastPoint",units:[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2,3,4]],["week",[1,2,3]],["month",[1,3,6]],["year",null]]},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series",className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",id:"navigator-x-axis",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#000000",fontSize:"0.7em",opacity:.6,textOutline:"2px contrast"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,id:"navigator-y-axis",maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}),e(i,"Stock/Navigator/NavigatorSymbols.js",[i["Core/Renderer/SVG/Symbols.js"],i["Core/Utilities.js"]],function(t,i){let{relativeLength:e}=i;return{"navigator-handle":function(i,s,a,r,o={}){let n=o.width?o.width/2:a,h=e(o.borderRadius||0,Math.min(2*n,r));return[["M",-1.5,(r=o.height||r)/2-3.5],["L",-1.5,r/2+4.5],["M",.5,r/2-3.5],["L",.5,r/2+4.5],...t.rect(-n-1,.5,2*n+1,r,{r:h})]}}}),e(i,"Stock/Utilities/StockUtilities.js",[i["Core/Utilities.js"]],function(t){let{defined:i}=t;return{setFixedRange:function(t){let e=this.xAxis[0];i(e.dataMax)&&i(e.dataMin)&&t?this.fixedRange=Math.min(t,e.dataMax-e.dataMin):this.fixedRange=t}}}),e(i,"Stock/Navigator/NavigatorComposition.js",[i["Core/Defaults.js"],i["Core/Globals.js"],i["Core/Axis/NavigatorAxisComposition.js"],i["Stock/Navigator/NavigatorDefaults.js"],i["Stock/Navigator/NavigatorSymbols.js"],i["Core/Renderer/RendererRegistry.js"],i["Stock/Utilities/StockUtilities.js"],i["Core/Utilities.js"]],function(t,i,e,s,a,r,o,n){let{setOptions:h}=t,{composed:l}=i,{getRendererType:d}=r,{setFixedRange:c}=o,{addEvent:g,extend:p,pushUnique:u}=n;function x(){this.chart.navigator&&!this.options.isInternal&&this.chart.navigator.setBaseSeries(null,!1)}return{compose:function(t,i,r){e.compose(i),u(l,"Navigator")&&(t.prototype.setFixedRange=c,p(d().prototype.symbols,a),g(r,"afterUpdate",x),h({navigator:s}))}}}),e(i,"Core/Axis/ScrollbarAxis.js",[i["Core/Globals.js"],i["Core/Utilities.js"]],function(t,i){var e;let{composed:s}=t,{addEvent:a,defined:r,pick:o,pushUnique:n}=i;return function(t){let i;function e(t){let i=o(t.options&&t.options.min,t.min),e=o(t.options&&t.options.max,t.max);return{axisMin:i,axisMax:e,scrollMin:r(t.dataMin)?Math.min(i,t.min,t.dataMin,o(t.threshold,1/0)):i,scrollMax:r(t.dataMax)?Math.max(e,t.max,t.dataMax,o(t.threshold,-1/0)):e}}function h(){let t=this.scrollbar,i=t&&!t.options.opposite,e=this.horiz?2:i?3:1;t&&(this.chart.scrollbarsOffsets=[0,0],this.chart.axisOffset[e]+=t.size+(t.options.margin||0))}function l(){let t=this;t.options&&t.options.scrollbar&&t.options.scrollbar.enabled&&(t.options.scrollbar.vertical=!t.horiz,t.options.startOnTick=t.options.endOnTick=!1,t.scrollbar=new i(t.chart.renderer,t.options.scrollbar,t.chart),a(t.scrollbar,"changed",function(i){let s,a;let{axisMin:o,axisMax:n,scrollMin:h,scrollMax:l}=e(t),d=l-h;if(r(o)&&r(n)){if(t.horiz&&!t.reversed||!t.horiz&&t.reversed?(s=h+d*this.to,a=h+d*this.from):(s=h+d*(1-this.from),a=h+d*(1-this.to)),this.shouldUpdateExtremes(i.DOMType)){let e="mousemove"!==i.DOMType&&"touchmove"!==i.DOMType&&void 0;t.setExtremes(a,s,!0,e,i)}else this.setRange(this.from,this.to)}}))}function d(){let t,i,s;let{scrollMin:a,scrollMax:o}=e(this),n=this.scrollbar,h=this.axisTitleMargin+(this.titleOffset||0),l=this.chart.scrollbarsOffsets,d=this.options.margin||0;if(n&&l){if(this.horiz)this.opposite||(l[1]+=h),n.position(this.left,this.top+this.height+2+l[1]-(this.opposite?d:0),this.width,this.height),this.opposite||(l[1]+=d),t=1;else{let i;this.opposite&&(l[0]+=h),i=n.options.opposite?this.left+this.width+2+l[0]-(this.opposite?0:d):this.opposite?0:d,n.position(i,this.top,this.width,this.height),this.opposite&&(l[0]+=d),t=0}l[t]+=n.size+(n.options.margin||0),isNaN(a)||isNaN(o)||!r(this.min)||!r(this.max)||this.min===this.max?n.setRange(0,1):(i=(this.min-a)/(o-a),s=(this.max-a)/(o-a),this.horiz&&!this.reversed||!this.horiz&&this.reversed?n.setRange(i,s):n.setRange(1-s,1-i))}}t.compose=function(t,e){n(s,"Axis.Scrollbar")&&(i=e,a(t,"afterGetOffset",h),a(t,"afterInit",l),a(t,"afterRender",d))}}(e||(e={})),e}),e(i,"Stock/Scrollbar/ScrollbarDefaults.js",[],function(){return{height:10,barBorderRadius:5,buttonBorderRadius:0,buttonsEnabled:!1,liveRedraw:void 0,margin:void 0,minWidth:6,opposite:!0,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:0,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"none",trackBackgroundColor:"rgba(255, 255, 255, 0.001)",trackBorderColor:"#cccccc",trackBorderRadius:5,trackBorderWidth:1}}),e(i,"Stock/Scrollbar/Scrollbar.js",[i["Core/Defaults.js"],i["Core/Globals.js"],i["Core/Axis/ScrollbarAxis.js"],i["Stock/Scrollbar/ScrollbarDefaults.js"],i["Core/Utilities.js"]],function(t,i,e,s,a){let{defaultOptions:r}=t,{addEvent:o,correctFloat:n,crisp:h,defined:l,destroyObjectProperties:d,fireEvent:c,merge:g,pick:p,removeEvent:u}=a;class x{static compose(t){e.compose(t,x)}static swapXY(t,i){return i&&t.forEach(t=>{let i;let e=t.length;for(let s=0;s<e;s+=2)"number"==typeof(i=t[s+1])&&(t[s+1]=t[s+2],t[s+2]=i)}),t}constructor(t,i,e){this._events=[],this.chartX=0,this.chartY=0,this.from=0,this.scrollbarButtons=[],this.scrollbarLeft=0,this.scrollbarStrokeWidth=1,this.scrollbarTop=0,this.size=0,this.to=0,this.trackBorderWidth=1,this.x=0,this.y=0,this.init(t,i,e)}addEvents(){let t=this.options.inverted?[1,0]:[0,1],i=this.scrollbarButtons,e=this.scrollbarGroup.element,s=this.track.element,a=this.mouseDownHandler.bind(this),r=this.mouseMoveHandler.bind(this),n=this.mouseUpHandler.bind(this),h=[[i[t[0]].element,"click",this.buttonToMinClick.bind(this)],[i[t[1]].element,"click",this.buttonToMaxClick.bind(this)],[s,"click",this.trackClick.bind(this)],[e,"mousedown",a],[e.ownerDocument,"mousemove",r],[e.ownerDocument,"mouseup",n],[e,"touchstart",a],[e.ownerDocument,"touchmove",r],[e.ownerDocument,"touchend",n]];h.forEach(function(t){o.apply(null,t)}),this._events=h}buttonToMaxClick(t){let i=(this.to-this.from)*p(this.options.step,.2);this.updatePosition(this.from+i,this.to+i),c(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}buttonToMinClick(t){let i=n(this.to-this.from)*p(this.options.step,.2);this.updatePosition(n(this.from-i),n(this.to-i)),c(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}cursorToScrollbarPosition(t){let i=this.options,e=i.minWidth>this.calculatedWidth?i.minWidth:0;return{chartX:(t.chartX-this.x-this.xOffset)/(this.barWidth-e),chartY:(t.chartY-this.y-this.yOffset)/(this.barWidth-e)}}destroy(){let t=this,i=t.chart.scroller;t.removeEvents(),["track","scrollbarRifles","scrollbar","scrollbarGroup","group"].forEach(function(i){t[i]&&t[i].destroy&&(t[i]=t[i].destroy())}),i&&t===i.scrollbar&&(i.scrollbar=null,d(i.scrollbarButtons))}drawScrollbarButton(t){let i=this.renderer,e=this.scrollbarButtons,s=this.options,a=this.size,r=i.g().add(this.group);if(e.push(r),s.buttonsEnabled){let o=i.rect().addClass("highcharts-scrollbar-button").add(r);this.chart.styledMode||o.attr({stroke:s.buttonBorderColor,"stroke-width":s.buttonBorderWidth,fill:s.buttonBackgroundColor}),o.attr(o.crisp({x:-.5,y:-.5,width:a,height:a,r:s.buttonBorderRadius},o.strokeWidth()));let n=i.path(x.swapXY([["M",a/2+(t?-1:1),a/2-3],["L",a/2+(t?-1:1),a/2+3],["L",a/2+(t?2:-2),a/2]],s.vertical)).addClass("highcharts-scrollbar-arrow").add(e[t]);this.chart.styledMode||n.attr({fill:s.buttonArrowColor})}}init(t,i,e){this.scrollbarButtons=[],this.renderer=t,this.userOptions=i,this.options=g(s,r.scrollbar,i),this.options.margin=p(this.options.margin,10),this.chart=e,this.size=p(this.options.size,this.options.height),i.enabled&&(this.render(),this.addEvents())}mouseDownHandler(t){let i=this.chart.pointer?.normalize(t)||t,e=this.cursorToScrollbarPosition(i);this.chartX=e.chartX,this.chartY=e.chartY,this.initPositions=[this.from,this.to],this.grabbedCenter=!0}mouseMoveHandler(t){let i;let e=this.chart.pointer?.normalize(t)||t,s=this.options.vertical?"chartY":"chartX",a=this.initPositions||[];this.grabbedCenter&&(!t.touches||0!==t.touches[0][s])&&(i=this.cursorToScrollbarPosition(e)[s]-this[s],this.hasDragged=!0,this.updatePosition(a[0]+i,a[1]+i),this.hasDragged&&c(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}))}mouseUpHandler(t){this.hasDragged&&c(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMType:t.type,DOMEvent:t}),this.grabbedCenter=this.hasDragged=this.chartX=this.chartY=null}position(t,i,e,s){let{buttonsEnabled:a,margin:r=0,vertical:o}=this.options,n=this.rendered?"animate":"attr",h=s,l=0;this.group.show(),this.x=t,this.y=i+this.trackBorderWidth,this.width=e,this.height=s,this.xOffset=h,this.yOffset=l,o?(this.width=this.yOffset=e=l=this.size,this.xOffset=h=0,this.yOffset=l=a?this.size:0,this.barWidth=s-(a?2*e:0),this.x=t+=r):(this.height=s=this.size,this.xOffset=h=a?this.size:0,this.barWidth=e-(a?2*s:0),this.y=this.y+r),this.group[n]({translateX:t,translateY:this.y}),this.track[n]({width:e,height:s}),this.scrollbarButtons[1][n]({translateX:o?0:e-h,translateY:o?s-l:0})}removeEvents(){this._events.forEach(function(t){u.apply(null,t)}),this._events.length=0}render(){let t=this.renderer,i=this.options,e=this.size,s=this.chart.styledMode,a=t.g("scrollbar").attr({zIndex:i.zIndex}).hide().add();this.group=a,this.track=t.rect().addClass("highcharts-scrollbar-track").attr({r:i.trackBorderRadius||0,height:e,width:e}).add(a),s||this.track.attr({fill:i.trackBackgroundColor,stroke:i.trackBorderColor,"stroke-width":i.trackBorderWidth});let r=this.trackBorderWidth=this.track.strokeWidth();this.track.attr({x:-h(0,r),y:-h(0,r)}),this.scrollbarGroup=t.g().add(a),this.scrollbar=t.rect().addClass("highcharts-scrollbar-thumb").attr({height:e-r,width:e-r,r:i.barBorderRadius||0}).add(this.scrollbarGroup),this.scrollbarRifles=t.path(x.swapXY([["M",-3,e/4],["L",-3,2*e/3],["M",0,e/4],["L",0,2*e/3],["M",3,e/4],["L",3,2*e/3]],i.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup),s||(this.scrollbar.attr({fill:i.barBackgroundColor,stroke:i.barBorderColor,"stroke-width":i.barBorderWidth}),this.scrollbarRifles.attr({stroke:i.rifleColor,"stroke-width":1})),this.scrollbarStrokeWidth=this.scrollbar.strokeWidth(),this.scrollbarGroup.translate(-h(0,this.scrollbarStrokeWidth),-h(0,this.scrollbarStrokeWidth)),this.drawScrollbarButton(0),this.drawScrollbarButton(1)}setRange(t,i){let e,s;let a=this.options,r=a.vertical,o=a.minWidth,h=this.barWidth,d=!this.rendered||this.hasDragged||this.chart.navigator&&this.chart.navigator.hasDragged?"attr":"animate";if(!l(h))return;let c=h*Math.min(i,1);e=Math.ceil(h*(t=Math.max(t,0))),this.calculatedWidth=s=n(c-e),s<o&&(e=(h-o+s)*t,s=o);let g=Math.floor(e+this.xOffset+this.yOffset),p=s/2-.5;this.from=t,this.to=i,r?(this.scrollbarGroup[d]({translateY:g}),this.scrollbar[d]({height:s}),this.scrollbarRifles[d]({translateY:p}),this.scrollbarTop=g,this.scrollbarLeft=0):(this.scrollbarGroup[d]({translateX:g}),this.scrollbar[d]({width:s}),this.scrollbarRifles[d]({translateX:p}),this.scrollbarLeft=g,this.scrollbarTop=0),s<=12?this.scrollbarRifles.hide():this.scrollbarRifles.show(),!1===a.showFull&&(t<=0&&i>=1?this.group.hide():this.group.show()),this.rendered=!0}shouldUpdateExtremes(t){return p(this.options.liveRedraw,i.svg&&!i.isTouchDevice&&!this.chart.boosted)||"mouseup"===t||"touchend"===t||!l(t)}trackClick(t){let i=this.chart.pointer?.normalize(t)||t,e=this.to-this.from,s=this.y+this.scrollbarTop,a=this.x+this.scrollbarLeft;this.options.vertical&&i.chartY>s||!this.options.vertical&&i.chartX>a?this.updatePosition(this.from+e,this.to+e):this.updatePosition(this.from-e,this.to-e),c(this,"changed",{from:this.from,to:this.to,trigger:"scrollbar",DOMEvent:t})}update(t){this.destroy(),this.init(this.chart.renderer,g(!0,this.options,t),this.chart)}updatePosition(t,i){i>1&&(t=n(1-n(i-t)),i=1),t<0&&(i=n(i-t),t=0),this.from=t,this.to=i}}return x.defaultOptions=s,r.scrollbar=g(!0,x.defaultOptions,r.scrollbar),x}),e(i,"Stock/Navigator/Navigator.js",[i["Core/Axis/Axis.js"],i["Stock/Navigator/ChartNavigatorComposition.js"],i["Core/Defaults.js"],i["Core/Globals.js"],i["Core/Axis/NavigatorAxisComposition.js"],i["Stock/Navigator/NavigatorComposition.js"],i["Stock/Scrollbar/Scrollbar.js"],i["Core/Renderer/SVG/SVGRenderer.js"],i["Core/Utilities.js"]],function(t,i,e,s,a,r,o,n,h){let{defaultOptions:l}=e,{isTouchDevice:d}=s,{prototype:{symbols:c}}=n,{addEvent:g,clamp:p,correctFloat:u,defined:x,destroyObjectProperties:m,erase:v,extend:b,find:f,fireEvent:M,isArray:A,isNumber:S,merge:y,pick:k,removeEvent:E,splat:w}=h;function C(t,...i){let e=[].filter.call(i,S);if(e.length)return Math[t].apply(0,e)}class O{static compose(t,e,s){i.compose(t,O),r.compose(t,e,s)}constructor(t){this.isDirty=!1,this.scrollbarHeight=0,this.init(t)}drawHandle(t,i,e,s){let a=this.navigatorOptions.handles.height;this.handles[i][s](e?{translateX:Math.round(this.left+this.height/2),translateY:Math.round(this.top+parseInt(t,10)+.5-a)}:{translateX:Math.round(this.left+parseInt(t,10)),translateY:Math.round(this.top+this.height/2-a/2-1)})}drawOutline(t,i,e,s){let a=this.navigatorOptions.maskInside,r=this.outline.strokeWidth(),o=r/2,n=r%2/2,h=this.scrollButtonSize,l=this.size,d=this.top,c=this.height,g=d-o,p=d+c,u=this.left,x,m;e?(x=d+i+n,i=d+t+n,m=[["M",u+c,d-h-n],["L",u+c,x],["L",u,x],["M",u,i],["L",u+c,i],["L",u+c,d+l+h]],a&&m.push(["M",u+c,x-o],["L",u+c,i+o])):(u-=h,t+=u+h-n,i+=u+h-n,m=[["M",u,g],["L",t,g],["L",t,p],["M",i,p],["L",i,g],["L",u+l+2*h,g]],a&&m.push(["M",t-o,g],["L",i+o,g])),this.outline[s]({d:m})}drawMasks(t,i,e,s){let a,r,o,n;let h=this.left,l=this.top,d=this.height;e?(o=[h,h,h],n=[l,l+t,l+i],r=[d,d,d],a=[t,i-t,this.size-i]):(o=[h,h+t,h+i],n=[l,l,l],r=[t,i-t,this.size-i],a=[d,d,d]),this.shades.forEach((t,i)=>{t[s]({x:o[i],y:n[i],width:r[i],height:a[i]})})}renderElements(){let t=this,i=t.navigatorOptions,e=i.maskInside,s=t.chart,a=s.inverted,r=s.renderer,o={cursor:a?"ns-resize":"ew-resize"},n=t.navigatorGroup??(t.navigatorGroup=r.g("navigator").attr({zIndex:8,visibility:"hidden"}).add());if([!e,e,!e].forEach((e,a)=>{let h=t.shades[a]??(t.shades[a]=r.rect().addClass("highcharts-navigator-mask"+(1===a?"-inside":"-outside")).add(n));s.styledMode||(h.attr({fill:e?i.maskFill:"rgba(0,0,0,0)"}),1===a&&h.css(o))}),t.outline||(t.outline=r.path().addClass("highcharts-navigator-outline").add(n)),s.styledMode||t.outline.attr({"stroke-width":i.outlineWidth,stroke:i.outlineColor}),i.handles?.enabled){let e=i.handles,{height:a,width:h}=e;[0,1].forEach(i=>{let l=e.symbols[i];if(t.handles[i]){if(l!==t.handles[i].symbolName){let e=c[l].call(c,-h/2-1,0,h,a);t.handles[i].attr({d:e}),t.handles[i].symbolName=l}}else t.handles[i]=r.symbol(l,-h/2-1,0,h,a,e),t.handles[i].attr({zIndex:7-i}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][i]).add(n);s.inverted&&t.handles[i].attr({rotation:90,rotationOriginX:Math.floor(-h/2),rotationOriginY:(a+h)/2}),s.styledMode||t.handles[i].attr({fill:e.backgroundColor,stroke:e.borderColor,"stroke-width":e.lineWidth,width:e.width,height:e.height,x:-h/2-1,y:0}).css(o)})}}update(t,i=!1){let e=this.chart,s=e.options.chart.inverted!==e.scrollbar?.options.vertical;if(y(!0,e.options.navigator,t),this.navigatorOptions=e.options.navigator||{},this.setOpposite(),x(t.enabled)||s)return this.destroy(),this.navigatorEnabled=t.enabled||this.navigatorEnabled,this.init(e);if(this.navigatorEnabled&&(this.isDirty=!0,!1===t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{E(t,"updatedData",this.updatedDataHandler)},this),t.adaptToUpdatedData&&this.baseSeries.forEach(t=>{t.eventsToUnbind.push(g(t,"updatedData",this.updatedDataHandler))},this),(t.series||t.baseSeries)&&this.setBaseSeries(void 0,!1),t.height||t.xAxis||t.yAxis)){this.height=t.height??this.height;let i=this.getXAxisOffsets();this.xAxis.update({...t.xAxis,offsets:i,[e.inverted?"width":"height"]:this.height,[e.inverted?"height":"width"]:void 0},!1),this.yAxis.update({...t.yAxis,[e.inverted?"width":"height"]:this.height},!1)}i&&e.redraw()}render(t,i,e,s){let a=this.chart,r=this.xAxis,o=r.pointRange||0,n=r.navigatorAxis.fake?a.xAxis[0]:r,h=this.navigatorEnabled,l=this.rendered,d=a.inverted,c=a.xAxis[0].minRange,g=a.xAxis[0].options.maxRange,m=this.scrollButtonSize,v,b,f,A=this.scrollbarHeight,y,E;if(this.hasDragged&&!x(e))return;if(this.isDirty&&this.renderElements(),t=u(t-o/2),i=u(i+o/2),!S(t)||!S(i)){if(!l)return;e=0,s=k(r.width,n.width)}this.left=k(r.left,a.plotLeft+m+(d?a.plotWidth:0));let w=this.size=y=k(r.len,(d?a.plotHeight:a.plotWidth)-2*m);v=d?A:y+2*m,e=k(e,r.toPixels(t,!0)),s=k(s,r.toPixels(i,!0)),S(e)&&Math.abs(e)!==1/0||(e=0,s=v);let C=r.toValue(e,!0),O=r.toValue(s,!0),D=Math.abs(u(O-C));D<c?this.grabbedLeft?e=r.toPixels(O-c-o,!0):this.grabbedRight&&(s=r.toPixels(C+c+o,!0)):x(g)&&u(D-o)>g&&(this.grabbedLeft?e=r.toPixels(O-g-o,!0):this.grabbedRight&&(s=r.toPixels(C+g+o,!0))),this.zoomedMax=p(Math.max(e,s),0,w),this.zoomedMin=p(this.fixedWidth?this.zoomedMax-this.fixedWidth:Math.min(e,s),0,w),this.range=this.zoomedMax-this.zoomedMin,w=Math.round(this.zoomedMax);let z=Math.round(this.zoomedMin);h&&(this.navigatorGroup.attr({visibility:"inherit"}),E=l&&!this.hasDragged?"animate":"attr",this.drawMasks(z,w,d,E),this.drawOutline(z,w,d,E),this.navigatorOptions.handles.enabled&&(this.drawHandle(z,0,d,E),this.drawHandle(w,1,d,E))),this.scrollbar&&(d?(f=this.top-m,b=this.left-A+(h||!n.opposite?0:(n.titleOffset||0)+n.axisTitleMargin),A=y+2*m):(f=this.top+(h?this.height:-A),b=this.left-m),this.scrollbar.position(b,f,v,A),this.scrollbar.setRange(this.zoomedMin/(y||1),this.zoomedMax/(y||1))),this.rendered=!0,this.isDirty=!1,M(this,"afterRender")}addMouseEvents(){let t=this,i=t.chart,e=i.container,s=[],a,r;t.mouseMoveHandler=a=function(i){t.onMouseMove(i)},t.mouseUpHandler=r=function(i){t.onMouseUp(i)},(s=t.getPartsEvents("mousedown")).push(g(i.renderTo,"mousemove",a),g(e.ownerDocument,"mouseup",r),g(i.renderTo,"touchmove",a),g(e.ownerDocument,"touchend",r)),s.concat(t.getPartsEvents("touchstart")),t.eventsToUnbind=s,t.series&&t.series[0]&&s.push(g(t.series[0].xAxis,"foundExtremes",function(){i.navigator.modifyNavigatorAxisExtremes()}))}getPartsEvents(t){let i=this,e=[];return["shades","handles"].forEach(function(s){i[s].forEach(function(a,r){e.push(g(a.element,t,function(t){i[s+"Mousedown"](t,r)}))})}),e}shadesMousedown(t,i){t=this.chart.pointer?.normalize(t)||t;let e=this.chart,s=this.xAxis,a=this.zoomedMin,r=this.size,o=this.range,n=this.left,h=t.chartX,l,d,c,g;e.inverted&&(h=t.chartY,n=this.top),1===i?(this.grabbedCenter=h,this.fixedWidth=o,this.dragOffset=h-a):(g=h-n-o/2,0===i?g=Math.max(0,g):2===i&&g+o>=r&&(g=r-o,this.reversedExtremes?(g-=o,d=this.getUnionExtremes().dataMin):l=this.getUnionExtremes().dataMax),g!==a&&(this.fixedWidth=o,x((c=s.navigatorAxis.toFixedRange(g,g+o,d,l)).min)&&M(this,"setRange",{min:Math.min(c.min,c.max),max:Math.max(c.min,c.max),redraw:!0,eventArguments:{trigger:"navigator"}})))}handlesMousedown(t,i){t=this.chart.pointer?.normalize(t)||t;let e=this.chart,s=e.xAxis[0],a=this.reversedExtremes;0===i?(this.grabbedLeft=!0,this.otherHandlePos=this.zoomedMax,this.fixedExtreme=a?s.min:s.max):(this.grabbedRight=!0,this.otherHandlePos=this.zoomedMin,this.fixedExtreme=a?s.max:s.min),e.setFixedRange(void 0)}onMouseMove(t){let i=this,e=i.chart,s=i.navigatorSize,a=i.range,r=i.dragOffset,o=e.inverted,n=i.left,h;(!t.touches||0!==t.touches[0].pageX)&&(h=(t=e.pointer?.normalize(t)||t).chartX,o&&(n=i.top,h=t.chartY),i.grabbedLeft?(i.hasDragged=!0,i.render(0,0,h-n,i.otherHandlePos)):i.grabbedRight?(i.hasDragged=!0,i.render(0,0,i.otherHandlePos,h-n)):i.grabbedCenter&&(i.hasDragged=!0,h<r?h=r:h>s+r-a&&(h=s+r-a),i.render(0,0,h-r,h-r+a)),i.hasDragged&&i.scrollbar&&k(i.scrollbar.options.liveRedraw,!d&&!this.chart.boosted)&&(t.DOMType=t.type,setTimeout(function(){i.onMouseUp(t)},0)))}onMouseUp(t){let i,e,s,a,r,o;let n=this.chart,h=this.xAxis,l=this.scrollbar,d=t.DOMEvent||t,c=n.inverted,g=this.rendered&&!this.hasDragged?"animate":"attr";(this.hasDragged&&(!l||!l.hasDragged)||"scrollbar"===t.trigger)&&(s=this.getUnionExtremes(),this.zoomedMin===this.otherHandlePos?a=this.fixedExtreme:this.zoomedMax===this.otherHandlePos&&(r=this.fixedExtreme),this.zoomedMax===this.size&&(r=this.reversedExtremes?s.dataMin:s.dataMax),0===this.zoomedMin&&(a=this.reversedExtremes?s.dataMax:s.dataMin),x((o=h.navigatorAxis.toFixedRange(this.zoomedMin,this.zoomedMax,a,r)).min)&&M(this,"setRange",{min:Math.min(o.min,o.max),max:Math.max(o.min,o.max),redraw:!0,animation:!this.hasDragged&&null,eventArguments:{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:d}})),"mousemove"!==t.DOMType&&"touchmove"!==t.DOMType&&(this.grabbedLeft=this.grabbedRight=this.grabbedCenter=this.fixedWidth=this.fixedExtreme=this.otherHandlePos=this.hasDragged=this.dragOffset=null),this.navigatorEnabled&&S(this.zoomedMin)&&S(this.zoomedMax)&&(e=Math.round(this.zoomedMin),i=Math.round(this.zoomedMax),this.shades&&this.drawMasks(e,i,c,g),this.outline&&this.drawOutline(e,i,c,g),this.navigatorOptions.handles.enabled&&Object.keys(this.handles).length===this.handles.length&&(this.drawHandle(e,0,c,g),this.drawHandle(i,1,c,g)))}removeEvents(){this.eventsToUnbind&&(this.eventsToUnbind.forEach(function(t){t()}),this.eventsToUnbind=void 0),this.removeBaseSeriesEvents()}removeBaseSeriesEvents(){let t=this.baseSeries||[];this.navigatorEnabled&&t[0]&&(!1!==this.navigatorOptions.adaptToUpdatedData&&t.forEach(function(t){E(t,"updatedData",this.updatedDataHandler)},this),t[0].xAxis&&E(t[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes))}getXAxisOffsets(){return this.chart.inverted?[this.scrollButtonSize,0,-this.scrollButtonSize,0]:[0,-this.scrollButtonSize,0,this.scrollButtonSize]}init(i){let e=i.options,s=e.navigator||{},r=s.enabled,n=e.scrollbar||{},h=n.enabled,l=r&&s.height||0,d=h&&n.height||0,c=n.buttonsEnabled&&d||0;this.handles=[],this.shades=[],this.chart=i,this.setBaseSeries(),this.height=l,this.scrollbarHeight=d,this.scrollButtonSize=c,this.scrollbarEnabled=h,this.navigatorEnabled=r,this.navigatorOptions=s,this.scrollbarOptions=n,this.setOpposite();let p=this,u=p.baseSeries,x=i.xAxis.length,m=i.yAxis.length,v=u&&u[0]&&u[0].xAxis||i.xAxis[0]||{options:{}};if(i.isDirtyBox=!0,p.navigatorEnabled){let e=this.getXAxisOffsets();p.xAxis=new t(i,y({breaks:v.options.breaks,ordinal:v.options.ordinal,overscroll:v.options.overscroll},s.xAxis,{type:"datetime",index:x,isInternal:!0,offset:0,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:v.options.ordinal?0:v.options.minPadding,maxPadding:v.options.ordinal?0:v.options.maxPadding,zoomEnabled:!1},i.inverted?{offsets:e,width:l}:{offsets:e,height:l}),"xAxis"),p.yAxis=new t(i,y(s.yAxis,{alignTicks:!1,offset:0,index:m,isInternal:!0,reversed:k(s.yAxis&&s.yAxis.reversed,i.yAxis[0]&&i.yAxis[0].reversed,!1),zoomEnabled:!1},i.inverted?{width:l}:{height:l}),"yAxis"),u||s.series.data?p.updateNavigatorSeries(!1):0===i.series.length&&(p.unbindRedraw=g(i,"beforeRedraw",function(){i.series.length>0&&!p.series&&(p.setBaseSeries(),p.unbindRedraw())})),p.reversedExtremes=i.inverted&&!p.xAxis.reversed||!i.inverted&&p.xAxis.reversed,p.renderElements(),p.addMouseEvents()}else p.xAxis={chart:i,navigatorAxis:{fake:!0},translate:function(t,e){let s=i.xAxis[0],a=s.getExtremes(),r=s.len-2*c,o=C("min",s.options.min,a.dataMin),n=C("max",s.options.max,a.dataMax)-o;return e?t*n/r+o:r*(t-o)/n},toPixels:function(t){return this.translate(t)},toValue:function(t){return this.translate(t,!0)}},p.xAxis.navigatorAxis.axis=p.xAxis,p.xAxis.navigatorAxis.toFixedRange=a.prototype.toFixedRange.bind(p.xAxis.navigatorAxis);if(i.options.scrollbar.enabled){let t=y(i.options.scrollbar,{vertical:i.inverted});!S(t.margin)&&p.navigatorEnabled&&(t.margin=i.inverted?-3:3),i.scrollbar=p.scrollbar=new o(i.renderer,t,i),g(p.scrollbar,"changed",function(t){let i=p.size,e=i*this.to,s=i*this.from;p.hasDragged=p.scrollbar.hasDragged,p.render(0,0,s,e),this.shouldUpdateExtremes(t.DOMType)&&setTimeout(function(){p.onMouseUp(t)})})}p.addBaseSeriesEvents(),p.addChartEvents()}setOpposite(){let t=this.navigatorOptions,i=this.navigatorEnabled,e=this.chart;this.opposite=k(t.opposite,!!(!i&&e.inverted))}getUnionExtremes(t){let i;let e=this.chart.xAxis[0],s=this.xAxis,a=s.options,r=e.options;return t&&null===e.dataMin||(i={dataMin:k(a&&a.min,C("min",r.min,e.dataMin,s.dataMin,s.min)),dataMax:k(a&&a.max,C("max",r.max,e.dataMax,s.dataMax,s.max))}),i}setBaseSeries(t,i){let e=this.chart,s=this.baseSeries=[];t=t||e.options&&e.options.navigator.baseSeries||(e.series.length?f(e.series,t=>!t.options.isInternal).index:0),(e.series||[]).forEach((i,e)=>{!i.options.isInternal&&(i.options.showInNavigator||(e===t||i.options.id===t)&&!1!==i.options.showInNavigator)&&s.push(i)}),this.xAxis&&!this.xAxis.navigatorAxis.fake&&this.updateNavigatorSeries(!0,i)}updateNavigatorSeries(t,i){let e=this,s=e.chart,a=e.baseSeries,r={enableMouseTracking:!1,index:null,linkedTo:null,group:"nav",padXAxis:!1,xAxis:this.navigatorOptions.xAxis?.id,yAxis:this.navigatorOptions.yAxis?.id,showInLegend:!1,stacking:void 0,isInternal:!0,states:{inactive:{opacity:1}}},o=e.series=(e.series||[]).filter(t=>{let i=t.baseSeries;return!(0>a.indexOf(i))||(i&&(E(i,"updatedData",e.updatedDataHandler),delete i.navigatorSeries),t.chart&&t.destroy(),!1)}),n,h,d=e.navigatorOptions.series,c;a&&a.length&&a.forEach(t=>{let g=t.navigatorSeries,p=b({color:t.color,visible:t.visible},A(d)?l.navigator.series:d);if(g&&!1===e.navigatorOptions.adaptToUpdatedData)return;r.name="Navigator "+a.length,c=(n=t.options||{}).navigatorOptions||{},p.dataLabels=w(p.dataLabels),(h=y(n,r,p,c)).pointRange=k(p.pointRange,c.pointRange,l.plotOptions[h.type||"line"].pointRange);let u=c.data||p.data;e.hasNavigatorData=e.hasNavigatorData||!!u,h.data=u||n.data&&n.data.slice(0),g&&g.options?g.update(h,i):(t.navigatorSeries=s.initSeries(h),s.setSortedData(),t.navigatorSeries.baseSeries=t,o.push(t.navigatorSeries))}),(d.data&&!(a&&a.length)||A(d))&&(e.hasNavigatorData=!1,(d=w(d)).forEach((t,i)=>{r.name="Navigator "+(o.length+1),(h=y(l.navigator.series,{color:s.series[i]&&!s.series[i].options.isInternal&&s.series[i].color||s.options.colors[i]||s.options.colors[0]},r,t)).data=t.data,h.data&&(e.hasNavigatorData=!0,o.push(s.initSeries(h)))})),t&&this.addBaseSeriesEvents()}addBaseSeriesEvents(){let t=this,i=t.baseSeries||[];i[0]&&i[0].xAxis&&i[0].eventsToUnbind.push(g(i[0].xAxis,"foundExtremes",this.modifyBaseAxisExtremes)),i.forEach(e=>{e.eventsToUnbind.push(g(e,"show",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!0,!1)})),e.eventsToUnbind.push(g(e,"hide",function(){this.navigatorSeries&&this.navigatorSeries.setVisible(!1,!1)})),!1!==this.navigatorOptions.adaptToUpdatedData&&e.xAxis&&e.eventsToUnbind.push(g(e,"updatedData",this.updatedDataHandler)),e.eventsToUnbind.push(g(e,"remove",function(){i&&v(i,e),this.navigatorSeries&&(v(t.series,this.navigatorSeries),x(this.navigatorSeries.options)&&this.navigatorSeries.remove(!1),delete this.navigatorSeries)}))})}getBaseSeriesMin(t){return this.baseSeries.reduce(function(t,i){return Math.min(t,i.xData&&i.xData.length?i.xData[0]:t)},t)}modifyNavigatorAxisExtremes(){let t=this.xAxis;if(void 0!==t.getExtremes){let i=this.getUnionExtremes(!0);i&&(i.dataMin!==t.min||i.dataMax!==t.max)&&(t.min=i.dataMin,t.max=i.dataMax)}}modifyBaseAxisExtremes(){let t,i;let e=this.chart.navigator,s=this.getExtremes(),a=s.min,r=s.max,o=s.dataMin,n=s.dataMax,h=r-a,l=e.stickToMin,d=e.stickToMax,c=k(this.ordinal?.convertOverscroll(this.options.overscroll),0),g=e.series&&e.series[0],p=!!this.setExtremes;!(this.eventArgs&&"rangeSelectorButton"===this.eventArgs.trigger)&&(l&&(t=(i=o)+h),d&&(t=n+c,l||(i=Math.max(o,t-h,e.getBaseSeriesMin(g&&g.xData?g.xData[0]:-Number.MAX_VALUE)))),p&&(l||d)&&S(i)&&(this.min=this.userMin=i,this.max=this.userMax=t)),e.stickToMin=e.stickToMax=null}updatedDataHandler(){let t=this.chart.navigator,i=this.navigatorSeries,e=t.reversedExtremes?0===Math.round(t.zoomedMin):Math.round(t.zoomedMax)>=Math.round(t.size);t.stickToMax=k(this.chart.options.navigator&&this.chart.options.navigator.stickToMax,e),t.stickToMin=t.shouldStickToMin(this,t),i&&!t.hasNavigatorData&&(i.options.pointStart=this.xData[0],i.setData(this.options.data,!1,null,!1))}shouldStickToMin(t,i){let e=i.getBaseSeriesMin(t.xData[0]),s=t.xAxis,a=s.max,r=s.min,o=s.options.range;return!!(S(a)&&S(r))&&(o&&a-e>0?a-e<o:r<=e)}addChartEvents(){this.eventsToUnbind||(this.eventsToUnbind=[]),this.eventsToUnbind.push(g(this.chart,"redraw",function(){let t=this.navigator,i=t&&(t.baseSeries&&t.baseSeries[0]&&t.baseSeries[0].xAxis||this.xAxis[0]);i&&t.render(i.min,i.max)}),g(this.chart,"getMargins",function(){let t=this.navigator,i=t.opposite?"plotTop":"marginBottom";this.inverted&&(i=t.opposite?"marginRight":"plotLeft"),this[i]=(this[i]||0)+(t.navigatorEnabled||!this.inverted?t.height+t.scrollbarHeight:0)+t.navigatorOptions.margin}),g(O,"setRange",function(t){this.chart.xAxis[0].setExtremes(t.min,t.max,t.redraw,t.animation,t.eventArguments)}))}destroy(){this.removeEvents(),this.xAxis&&(v(this.chart.xAxis,this.xAxis),v(this.chart.axes,this.xAxis)),this.yAxis&&(v(this.chart.yAxis,this.yAxis),v(this.chart.axes,this.yAxis)),(this.series||[]).forEach(t=>{t.destroy&&t.destroy()}),["series","xAxis","yAxis","shades","outline","scrollbarTrack","scrollbarRifles","scrollbarGroup","scrollbar","navigatorGroup","rendered"].forEach(t=>{this[t]&&this[t].destroy&&this[t].destroy(),this[t]=null}),[this.handles].forEach(t=>{m(t)}),this.navigatorEnabled=!1}}return O}),e(i,"Stock/Navigator/StandaloneNavigatorDefaults.js",[],function(){return{chart:{height:70,margin:[0,5,0,5]},exporting:{enabled:!1},legend:{enabled:!1},navigator:{enabled:!1},plotOptions:{series:{states:{hover:{enabled:!1}},marker:{enabled:!1}}},scrollbar:{enabled:!1},title:{text:""},tooltip:{enabled:!1},xAxis:{visible:!1},yAxis:{height:0,visible:!1}}}),e(i,"Stock/Navigator/StandaloneNavigator.js",[i["Core/Chart/Chart.js"],i["Stock/Navigator/Navigator.js"],i["Core/Globals.js"],i["Core/Utilities.js"],i["Core/Axis/Axis.js"],i["Stock/Navigator/StandaloneNavigatorDefaults.js"]],function(t,i,e,s,a,r){let{merge:o,addEvent:n,fireEvent:h,pick:l}=s;class d{static navigator(t,i){let s=new d(t,i);return e.navigators?e.navigators.push(s):e.navigators=[s],s}constructor(s,a){this.boundAxes=[],this.userOptions=a,this.chartOptions=o(e.getOptions(),r,{navigator:a});let n=new t(s,this.chartOptions);n.options=o(n.options,{navigator:{enabled:!0},scrollbar:{enabled:!0}}),this.chartOptions.navigator&&this.chartOptions.scrollbar&&(this.chartOptions.navigator.enabled=!0,this.chartOptions.scrollbar.enabled=!0),this.navigator=new i(n),n.navigator=this.navigator,this.initNavigator()}bind(i,e=!0){let s=this,r=i instanceof t?i.xAxis[0]:i;if(!(r instanceof a))return;let{min:o,max:h}=this.navigator.xAxis,l=[];if(e){let t=n(r,"setExtremes",t=>{("pan"===t.trigger||"zoom"===t.trigger||"mouseWheelZoom"===t.trigger)&&s.setRange(t.min,t.max,!0,"pan"!==t.trigger,{trigger:r})});l.push(t)}let d=n(this.navigator,"setRange",t=>{r.setExtremes(t.min,t.max,t.redraw,t.animation)});l.push(d);let c=this.boundAxes.filter(function(t){return t.axis===r})[0];c||(c={axis:r,callbacks:[]},this.boundAxes.push(c)),c.callbacks=l,r.series.forEach(t=>{t.options.showInNavigator&&s.addSeries(t.options)}),r.setExtremes(o,h),n(r,"destroy",t=>{t.keepEvents||this.unbind(r)})}unbind(t){if(!t){this.boundAxes.forEach(({callbacks:t})=>{t.forEach(t=>t())}),this.boundAxes.length=0;return}let i=t instanceof a?t:t.xAxis[0];for(let t=this.boundAxes.length-1;t>=0;t--)this.boundAxes[t].axis===i&&(this.boundAxes[t].callbacks.forEach(t=>t()),this.boundAxes.splice(t,1))}destroy(){this.boundAxes.forEach(({callbacks:t})=>{t.forEach(t=>t())}),this.boundAxes.length=0,this.navigator.destroy(),this.navigator.chart.destroy()}update(t,i){this.chartOptions=o(this.chartOptions,{navigator:t}),this.navigator.chart.update(this.chartOptions,i)}redraw(){this.navigator.chart.redraw()}addSeries(t){this.navigator.chart.addSeries(o(t,{showInNavigator:l(t.showInNavigator,!0)})),this.navigator.setBaseSeries()}initNavigator(){let t=this.navigator;t.top=1,t.xAxis.setScale(),t.yAxis.setScale(),t.xAxis.render(),t.yAxis.render(),t.series?.forEach(t=>{t.translate(),t.render(),t.redraw()});let{min:i,max:e}=this.getInitialExtremes();t.chart.xAxis[0].userMin=i,t.chart.xAxis[0].userMax=e,t.render(i,e)}getRange(){let{min:t,max:i}=this.navigator.chart.xAxis[0].getExtremes(),{userMin:e,userMax:s,min:a,max:r}=this.navigator.xAxis.getExtremes();return{min:l(t,a),max:l(i,r),dataMin:a,dataMax:r,userMin:e,userMax:s}}setRange(t,i,e,s,a){h(this.navigator,"setRange",{min:t,max:i,redraw:e,animation:s,eventArguments:o(a,{trigger:"navigator"})})}getInitialExtremes(){let{min:t,max:i}=this.navigator.xAxis.getExtremes();return{min:t,max:i}}}return d}),e(i,"masters/modules/navigator.src.js",[i["Core/Globals.js"],i["Stock/Navigator/StandaloneNavigator.js"],i["Stock/Navigator/NavigatorComposition.js"]],function(t,i,e){return t.StandaloneNavigator=t.StandaloneNavigator||i,t.navigator=t.StandaloneNavigator.navigator,e.compose(t.Chart,t.Axis,t.Series),t})});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS v11.4.
|
|
2
|
+
* @license Highcharts JS v11.4.4 (2024-07-02)
|
|
3
3
|
*
|
|
4
4
|
* Standalone navigator module
|
|
5
5
|
*
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
obj[path] = fn.apply(null, args);
|
|
29
29
|
|
|
30
30
|
if (typeof CustomEvent === 'function') {
|
|
31
|
-
|
|
31
|
+
Highcharts.win.dispatchEvent(new CustomEvent(
|
|
32
32
|
'HighchartsModuleLoaded',
|
|
33
33
|
{ detail: { path: path, module: obj[path] } }
|
|
34
34
|
));
|
|
@@ -714,7 +714,7 @@
|
|
|
714
714
|
*
|
|
715
715
|
* @type {Highcharts.ColorString|null}
|
|
716
716
|
*/
|
|
717
|
-
lineColor: null,
|
|
717
|
+
lineColor: null, // #4602
|
|
718
718
|
marker: {
|
|
719
719
|
enabled: false
|
|
720
720
|
},
|
|
@@ -1430,7 +1430,7 @@
|
|
|
1430
1430
|
*
|
|
1431
1431
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
1432
1432
|
*/
|
|
1433
|
-
trackBackgroundColor: 'rgba(255, 255, 255, 0.001)',
|
|
1433
|
+
trackBackgroundColor: 'rgba(255, 255, 255, 0.001)', // #18922
|
|
1434
1434
|
/**
|
|
1435
1435
|
* The color of the border of the scrollbar track.
|
|
1436
1436
|
*
|
|
@@ -2120,7 +2120,7 @@
|
|
|
2120
2120
|
|
|
2121
2121
|
return Scrollbar;
|
|
2122
2122
|
});
|
|
2123
|
-
_registerModule(_modules, 'Stock/Navigator/Navigator.js', [_modules['Core/Axis/Axis.js'], _modules['Stock/Navigator/ChartNavigatorComposition.js'], _modules['Core/Defaults.js'], _modules['Core/Globals.js'], _modules['Core/Axis/NavigatorAxisComposition.js'], _modules['Stock/Navigator/NavigatorComposition.js'], _modules['Stock/Scrollbar/Scrollbar.js'], _modules['Core/Utilities.js']], function (Axis, ChartNavigatorComposition, D, H, NavigatorAxisAdditions, NavigatorComposition, Scrollbar, U) {
|
|
2123
|
+
_registerModule(_modules, 'Stock/Navigator/Navigator.js', [_modules['Core/Axis/Axis.js'], _modules['Stock/Navigator/ChartNavigatorComposition.js'], _modules['Core/Defaults.js'], _modules['Core/Globals.js'], _modules['Core/Axis/NavigatorAxisComposition.js'], _modules['Stock/Navigator/NavigatorComposition.js'], _modules['Stock/Scrollbar/Scrollbar.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Utilities.js']], function (Axis, ChartNavigatorComposition, D, H, NavigatorAxisAdditions, NavigatorComposition, Scrollbar, SVGRenderer, U) {
|
|
2124
2124
|
/* *
|
|
2125
2125
|
*
|
|
2126
2126
|
* (c) 2010-2024 Torstein Honsi
|
|
@@ -2132,6 +2132,7 @@
|
|
|
2132
2132
|
* */
|
|
2133
2133
|
const { defaultOptions } = D;
|
|
2134
2134
|
const { isTouchDevice } = H;
|
|
2135
|
+
const { prototype: { symbols } } = SVGRenderer;
|
|
2135
2136
|
const { addEvent, clamp, correctFloat, defined, destroyObjectProperties, erase, extend, find, fireEvent, isArray, isNumber, merge, pick, removeEvent, splat } = U;
|
|
2136
2137
|
/* *
|
|
2137
2138
|
*
|
|
@@ -2181,6 +2182,7 @@
|
|
|
2181
2182
|
*
|
|
2182
2183
|
* */
|
|
2183
2184
|
constructor(chart) {
|
|
2185
|
+
this.isDirty = false;
|
|
2184
2186
|
this.scrollbarHeight = 0;
|
|
2185
2187
|
this.init(chart);
|
|
2186
2188
|
}
|
|
@@ -2251,9 +2253,9 @@
|
|
|
2251
2253
|
],
|
|
2252
2254
|
// Top right of zoomed range
|
|
2253
2255
|
['L', left + height, verticalMin],
|
|
2254
|
-
['L', left, verticalMin],
|
|
2255
|
-
['M', left, zoomedMax],
|
|
2256
|
-
['L', left + height, zoomedMax],
|
|
2256
|
+
['L', left, verticalMin], // Top left of z.r.
|
|
2257
|
+
['M', left, zoomedMax], // Bottom left of z.r.
|
|
2258
|
+
['L', left + height, zoomedMax], // Bottom right of z.r.
|
|
2257
2259
|
[
|
|
2258
2260
|
'L',
|
|
2259
2261
|
left + height,
|
|
@@ -2291,7 +2293,7 @@
|
|
|
2291
2293
|
[
|
|
2292
2294
|
'L',
|
|
2293
2295
|
left + navigatorSize + scrollButtonSize * 2,
|
|
2294
|
-
|
|
2296
|
+
lineTop
|
|
2295
2297
|
]
|
|
2296
2298
|
];
|
|
2297
2299
|
if (maskInside) {
|
|
@@ -2359,7 +2361,7 @@
|
|
|
2359
2361
|
});
|
|
2360
2362
|
}
|
|
2361
2363
|
/**
|
|
2362
|
-
* Generate DOM elements for a navigator:
|
|
2364
|
+
* Generate and update DOM elements for a navigator:
|
|
2363
2365
|
*
|
|
2364
2366
|
* - main navigator group
|
|
2365
2367
|
*
|
|
@@ -2377,39 +2379,40 @@
|
|
|
2377
2379
|
cursor: inverted ? 'ns-resize' : 'ew-resize'
|
|
2378
2380
|
},
|
|
2379
2381
|
// Create the main navigator group
|
|
2380
|
-
navigatorGroup = navigator.navigatorGroup
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2382
|
+
navigatorGroup = navigator.navigatorGroup ??
|
|
2383
|
+
(navigator.navigatorGroup = renderer
|
|
2384
|
+
.g('navigator')
|
|
2385
|
+
.attr({
|
|
2386
|
+
zIndex: 8,
|
|
2387
|
+
visibility: 'hidden'
|
|
2388
|
+
})
|
|
2389
|
+
.add());
|
|
2387
2390
|
// Create masks, each mask will get events and fill:
|
|
2388
2391
|
[
|
|
2389
2392
|
!maskInside,
|
|
2390
2393
|
maskInside,
|
|
2391
2394
|
!maskInside
|
|
2392
2395
|
].forEach((hasMask, index) => {
|
|
2393
|
-
const shade =
|
|
2394
|
-
|
|
2395
|
-
|
|
2396
|
-
|
|
2396
|
+
const shade = navigator.shades[index] ??
|
|
2397
|
+
(navigator.shades[index] = renderer.rect()
|
|
2398
|
+
.addClass('highcharts-navigator-mask' +
|
|
2399
|
+
(index === 1 ? '-inside' : '-outside'))
|
|
2400
|
+
.add(navigatorGroup));
|
|
2397
2401
|
if (!chart.styledMode) {
|
|
2398
2402
|
shade.attr({
|
|
2399
|
-
fill: hasMask ?
|
|
2400
|
-
navigatorOptions.maskFill :
|
|
2401
|
-
'rgba(0,0,0,0)'
|
|
2403
|
+
fill: hasMask ? navigatorOptions.maskFill : 'rgba(0,0,0,0)'
|
|
2402
2404
|
});
|
|
2403
2405
|
if (index === 1) {
|
|
2404
2406
|
shade.css(mouseCursor);
|
|
2405
2407
|
}
|
|
2406
2408
|
}
|
|
2407
|
-
navigator.shades[index] = shade;
|
|
2408
2409
|
});
|
|
2409
2410
|
// Create the outline:
|
|
2410
|
-
navigator.outline
|
|
2411
|
-
.
|
|
2412
|
-
|
|
2411
|
+
if (!navigator.outline) {
|
|
2412
|
+
navigator.outline = renderer.path()
|
|
2413
|
+
.addClass('highcharts-navigator-outline')
|
|
2414
|
+
.add(navigatorGroup);
|
|
2415
|
+
}
|
|
2413
2416
|
if (!chart.styledMode) {
|
|
2414
2417
|
navigator.outline.attr({
|
|
2415
2418
|
'stroke-width': navigatorOptions.outlineWidth,
|
|
@@ -2417,10 +2420,27 @@
|
|
|
2417
2420
|
});
|
|
2418
2421
|
}
|
|
2419
2422
|
// Create the handlers:
|
|
2420
|
-
if (navigatorOptions.handles
|
|
2423
|
+
if (navigatorOptions.handles?.enabled) {
|
|
2421
2424
|
const handlesOptions = navigatorOptions.handles, { height, width } = handlesOptions;
|
|
2422
2425
|
[0, 1].forEach((index) => {
|
|
2423
|
-
|
|
2426
|
+
const symbolName = handlesOptions.symbols[index];
|
|
2427
|
+
if (!navigator.handles[index]) {
|
|
2428
|
+
navigator.handles[index] = renderer.symbol(symbolName, -width / 2 - 1, 0, width, height, handlesOptions);
|
|
2429
|
+
// Z index is 6 for right handle, 7 for left. Can't be 10,
|
|
2430
|
+
// because of the tooltip in inverted chart (#2908).
|
|
2431
|
+
navigator.handles[index].attr({ zIndex: 7 - index })
|
|
2432
|
+
.addClass('highcharts-navigator-handle ' +
|
|
2433
|
+
'highcharts-navigator-handle-' +
|
|
2434
|
+
['left', 'right'][index]).add(navigatorGroup);
|
|
2435
|
+
// If the navigator symbol changed, update its path and name
|
|
2436
|
+
}
|
|
2437
|
+
else if (symbolName !== navigator.handles[index].symbolName) {
|
|
2438
|
+
const symbolFn = symbols[symbolName], path = symbolFn.call(symbols, -width / 2 - 1, 0, width, height);
|
|
2439
|
+
navigator.handles[index].attr({
|
|
2440
|
+
d: path
|
|
2441
|
+
});
|
|
2442
|
+
navigator.handles[index].symbolName = symbolName;
|
|
2443
|
+
}
|
|
2424
2444
|
if (chart.inverted) {
|
|
2425
2445
|
navigator.handles[index].attr({
|
|
2426
2446
|
rotation: 90,
|
|
@@ -2428,18 +2448,16 @@
|
|
|
2428
2448
|
rotationOriginY: (height + width) / 2
|
|
2429
2449
|
});
|
|
2430
2450
|
}
|
|
2431
|
-
// Z index is 6 for right handle, 7 for left. Can't be 10,
|
|
2432
|
-
// because of the tooltip in inverted chart (#2908).
|
|
2433
|
-
navigator.handles[index].attr({ zIndex: 7 - index })
|
|
2434
|
-
.addClass('highcharts-navigator-handle ' +
|
|
2435
|
-
'highcharts-navigator-handle-' +
|
|
2436
|
-
['left', 'right'][index]).add(navigatorGroup);
|
|
2437
2451
|
if (!chart.styledMode) {
|
|
2438
2452
|
navigator.handles[index]
|
|
2439
2453
|
.attr({
|
|
2440
2454
|
fill: handlesOptions.backgroundColor,
|
|
2441
2455
|
stroke: handlesOptions.borderColor,
|
|
2442
|
-
'stroke-width': handlesOptions.lineWidth
|
|
2456
|
+
'stroke-width': handlesOptions.lineWidth,
|
|
2457
|
+
width: handlesOptions.width,
|
|
2458
|
+
height: handlesOptions.height,
|
|
2459
|
+
x: -width / 2 - 1,
|
|
2460
|
+
y: 0
|
|
2443
2461
|
})
|
|
2444
2462
|
.css(mouseCursor);
|
|
2445
2463
|
}
|
|
@@ -2455,18 +2473,53 @@
|
|
|
2455
2473
|
* @param {Highcharts.NavigatorOptions} options
|
|
2456
2474
|
* Options to merge in when updating navigator
|
|
2457
2475
|
*/
|
|
2458
|
-
update(options) {
|
|
2459
|
-
|
|
2460
|
-
|
|
2461
|
-
|
|
2462
|
-
|
|
2476
|
+
update(options, redraw = false) {
|
|
2477
|
+
const chart = this.chart, invertedUpdate = chart.options.chart.inverted !==
|
|
2478
|
+
chart.scrollbar?.options.vertical;
|
|
2479
|
+
merge(true, chart.options.navigator, options);
|
|
2480
|
+
this.navigatorOptions = chart.options.navigator || {};
|
|
2481
|
+
this.setOpposite();
|
|
2482
|
+
// Revert to destroy/init for navigator/scrollbar enabled toggle
|
|
2483
|
+
if (defined(options.enabled) || invertedUpdate) {
|
|
2484
|
+
this.destroy();
|
|
2485
|
+
this.navigatorEnabled = options.enabled || this.navigatorEnabled;
|
|
2486
|
+
return this.init(chart);
|
|
2487
|
+
}
|
|
2488
|
+
if (this.navigatorEnabled) {
|
|
2489
|
+
this.isDirty = true;
|
|
2490
|
+
if (options.adaptToUpdatedData === false) {
|
|
2491
|
+
this.baseSeries.forEach((series) => {
|
|
2492
|
+
removeEvent(series, 'updatedData', this.updatedDataHandler);
|
|
2493
|
+
}, this);
|
|
2463
2494
|
}
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2495
|
+
if (options.adaptToUpdatedData) {
|
|
2496
|
+
this.baseSeries.forEach((series) => {
|
|
2497
|
+
series.eventsToUnbind.push(addEvent(series, 'updatedData', this.updatedDataHandler));
|
|
2498
|
+
}, this);
|
|
2499
|
+
}
|
|
2500
|
+
// Update navigator series
|
|
2501
|
+
if (options.series || options.baseSeries) {
|
|
2502
|
+
this.setBaseSeries(void 0, false);
|
|
2503
|
+
}
|
|
2504
|
+
// Update navigator axis
|
|
2505
|
+
if (options.height || options.xAxis || options.yAxis) {
|
|
2506
|
+
this.height = options.height ?? this.height;
|
|
2507
|
+
const offsets = this.getXAxisOffsets();
|
|
2508
|
+
this.xAxis.update({
|
|
2509
|
+
...options.xAxis,
|
|
2510
|
+
offsets,
|
|
2511
|
+
[chart.inverted ? 'width' : 'height']: this.height,
|
|
2512
|
+
[chart.inverted ? 'height' : 'width']: void 0
|
|
2513
|
+
}, false);
|
|
2514
|
+
this.yAxis.update({
|
|
2515
|
+
...options.yAxis,
|
|
2516
|
+
[chart.inverted ? 'width' : 'height']: this.height
|
|
2517
|
+
}, false);
|
|
2518
|
+
}
|
|
2519
|
+
}
|
|
2520
|
+
if (redraw) {
|
|
2521
|
+
chart.redraw();
|
|
2522
|
+
}
|
|
2470
2523
|
}
|
|
2471
2524
|
/**
|
|
2472
2525
|
* Render the navigator
|
|
@@ -2489,6 +2542,10 @@
|
|
|
2489
2542
|
if (this.hasDragged && !defined(pxMin)) {
|
|
2490
2543
|
return;
|
|
2491
2544
|
}
|
|
2545
|
+
if (this.isDirty) {
|
|
2546
|
+
// Update DOM navigator elements
|
|
2547
|
+
this.renderElements();
|
|
2548
|
+
}
|
|
2492
2549
|
min = correctFloat(min - pointRange / 2);
|
|
2493
2550
|
max = correctFloat(max + pointRange / 2);
|
|
2494
2551
|
// Don't render the navigator until we have data (#486, #4202, #5172).
|
|
@@ -2589,6 +2646,7 @@
|
|
|
2589
2646
|
navigator.zoomedMin / (navigatorSize || 1), navigator.zoomedMax / (navigatorSize || 1));
|
|
2590
2647
|
}
|
|
2591
2648
|
navigator.rendered = true;
|
|
2649
|
+
this.isDirty = false;
|
|
2592
2650
|
fireEvent(this, 'afterRender');
|
|
2593
2651
|
}
|
|
2594
2652
|
/**
|
|
@@ -2923,6 +2981,16 @@
|
|
|
2923
2981
|
}
|
|
2924
2982
|
}
|
|
2925
2983
|
}
|
|
2984
|
+
/**
|
|
2985
|
+
* Calculate the navigator xAxis offsets
|
|
2986
|
+
*
|
|
2987
|
+
* @private
|
|
2988
|
+
*/
|
|
2989
|
+
getXAxisOffsets() {
|
|
2990
|
+
return (this.chart.inverted ?
|
|
2991
|
+
[this.scrollButtonSize, 0, -this.scrollButtonSize, 0] :
|
|
2992
|
+
[0, -this.scrollButtonSize, 0, this.scrollButtonSize]);
|
|
2993
|
+
}
|
|
2926
2994
|
/**
|
|
2927
2995
|
* Initialize the Navigator object
|
|
2928
2996
|
*
|
|
@@ -2942,11 +3010,12 @@
|
|
|
2942
3010
|
this.navigatorEnabled = navigatorEnabled;
|
|
2943
3011
|
this.navigatorOptions = navigatorOptions;
|
|
2944
3012
|
this.scrollbarOptions = scrollbarOptions;
|
|
2945
|
-
this.
|
|
3013
|
+
this.setOpposite();
|
|
2946
3014
|
const navigator = this, baseSeries = navigator.baseSeries, xAxisIndex = chart.xAxis.length, yAxisIndex = chart.yAxis.length, baseXaxis = baseSeries && baseSeries[0] && baseSeries[0].xAxis ||
|
|
2947
3015
|
chart.xAxis[0] || { options: {} };
|
|
2948
3016
|
chart.isDirtyBox = true;
|
|
2949
3017
|
if (navigator.navigatorEnabled) {
|
|
3018
|
+
const offsets = this.getXAxisOffsets();
|
|
2950
3019
|
// An x axis is required for scrollbar also
|
|
2951
3020
|
navigator.xAxis = new Axis(chart, merge({
|
|
2952
3021
|
// Inherit base xAxis' break, ordinal options and overscroll
|
|
@@ -2958,18 +3027,21 @@
|
|
|
2958
3027
|
index: xAxisIndex,
|
|
2959
3028
|
isInternal: true,
|
|
2960
3029
|
offset: 0,
|
|
2961
|
-
keepOrdinalPadding: true,
|
|
3030
|
+
keepOrdinalPadding: true, // #2436
|
|
2962
3031
|
startOnTick: false,
|
|
2963
3032
|
endOnTick: false,
|
|
2964
|
-
|
|
2965
|
-
|
|
3033
|
+
// Inherit base xAxis' padding when ordinal is false (#16915).
|
|
3034
|
+
minPadding: baseXaxis.options.ordinal ? 0 :
|
|
3035
|
+
baseXaxis.options.minPadding,
|
|
3036
|
+
maxPadding: baseXaxis.options.ordinal ? 0 :
|
|
3037
|
+
baseXaxis.options.maxPadding,
|
|
2966
3038
|
zoomEnabled: false
|
|
2967
3039
|
}, chart.inverted ? {
|
|
2968
|
-
offsets
|
|
3040
|
+
offsets,
|
|
2969
3041
|
width: height
|
|
2970
3042
|
} : {
|
|
2971
|
-
offsets
|
|
2972
|
-
height
|
|
3043
|
+
offsets,
|
|
3044
|
+
height
|
|
2973
3045
|
}), 'xAxis');
|
|
2974
3046
|
navigator.yAxis = new Axis(chart, merge(navigatorOptions.yAxis, {
|
|
2975
3047
|
alignTicks: false,
|
|
@@ -2977,7 +3049,7 @@
|
|
|
2977
3049
|
index: yAxisIndex,
|
|
2978
3050
|
isInternal: true,
|
|
2979
3051
|
reversed: pick((navigatorOptions.yAxis &&
|
|
2980
|
-
navigatorOptions.yAxis.reversed), (chart.yAxis[0] && chart.yAxis[0].reversed), false),
|
|
3052
|
+
navigatorOptions.yAxis.reversed), (chart.yAxis[0] && chart.yAxis[0].reversed), false), // #14060
|
|
2981
3053
|
zoomEnabled: false
|
|
2982
3054
|
}, chart.inverted ? {
|
|
2983
3055
|
width: height
|
|
@@ -3052,6 +3124,15 @@
|
|
|
3052
3124
|
// Add redraw events
|
|
3053
3125
|
navigator.addChartEvents();
|
|
3054
3126
|
}
|
|
3127
|
+
/**
|
|
3128
|
+
* Set the opposite property on navigator
|
|
3129
|
+
*
|
|
3130
|
+
* @private
|
|
3131
|
+
*/
|
|
3132
|
+
setOpposite() {
|
|
3133
|
+
const navigatorOptions = this.navigatorOptions, navigatorEnabled = this.navigatorEnabled, chart = this.chart;
|
|
3134
|
+
this.opposite = pick(navigatorOptions.opposite, Boolean(!navigatorEnabled && chart.inverted)); // #6262
|
|
3135
|
+
}
|
|
3055
3136
|
/**
|
|
3056
3137
|
* Get the union data extremes of the chart - the outer data extremes of the
|
|
3057
3138
|
* base X axis and the navigator axis.
|
|
@@ -3119,14 +3200,14 @@
|
|
|
3119
3200
|
updateNavigatorSeries(addEvents, redraw) {
|
|
3120
3201
|
const navigator = this, chart = navigator.chart, baseSeries = navigator.baseSeries, navSeriesMixin = {
|
|
3121
3202
|
enableMouseTracking: false,
|
|
3122
|
-
index: null,
|
|
3123
|
-
linkedTo: null,
|
|
3124
|
-
group: 'nav',
|
|
3203
|
+
index: null, // #6162
|
|
3204
|
+
linkedTo: null, // #6734
|
|
3205
|
+
group: 'nav', // For columns
|
|
3125
3206
|
padXAxis: false,
|
|
3126
3207
|
xAxis: this.navigatorOptions.xAxis?.id,
|
|
3127
3208
|
yAxis: this.navigatorOptions.yAxis?.id,
|
|
3128
3209
|
showInLegend: false,
|
|
3129
|
-
stacking: void 0,
|
|
3210
|
+
stacking: void 0, // #4823
|
|
3130
3211
|
isInternal: true,
|
|
3131
3212
|
states: {
|
|
3132
3213
|
inactive: {
|
|
@@ -3281,6 +3362,9 @@
|
|
|
3281
3362
|
}
|
|
3282
3363
|
// Handle series removal
|
|
3283
3364
|
base.eventsToUnbind.push(addEvent(base, 'remove', function () {
|
|
3365
|
+
if (baseSeries) {
|
|
3366
|
+
erase(baseSeries, base); // #21043
|
|
3367
|
+
}
|
|
3284
3368
|
if (this.navigatorSeries) {
|
|
3285
3369
|
erase(navigator.series, this.navigatorSeries);
|
|
3286
3370
|
if (defined(this.navigatorSeries.options)) {
|
|
@@ -3497,6 +3581,7 @@
|
|
|
3497
3581
|
[this.handles].forEach((coll) => {
|
|
3498
3582
|
destroyObjectProperties(coll);
|
|
3499
3583
|
});
|
|
3584
|
+
this.navigatorEnabled = false;
|
|
3500
3585
|
}
|
|
3501
3586
|
}
|
|
3502
3587
|
/* *
|
|
@@ -3912,4 +3997,4 @@
|
|
|
3912
3997
|
|
|
3913
3998
|
return Highcharts;
|
|
3914
3999
|
});
|
|
3915
|
-
}));
|
|
4000
|
+
}));
|