highcharts 9.3.1 → 9.3.2
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/bower.json +1 -1
- package/css/annotations/popup.css +1 -1
- package/css/highcharts.css +2 -2
- package/css/highcharts.scss +1 -1
- package/css/stocktools/gui.css +1 -1
- package/css/themes/dark-unica.css +2 -2
- package/css/themes/grid-light.css +2 -2
- package/css/themes/sand-signika.css +2 -2
- package/es-modules/Accessibility/A11yI18n.js +1 -5
- package/es-modules/Accessibility/Accessibility.js +11 -5
- package/es-modules/Accessibility/AccessibilityComponent.js +1 -1
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +9 -5
- package/es-modules/Accessibility/Components/ContainerComponent.js +1 -1
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +8 -19
- package/es-modules/Accessibility/Components/LegendComponent.js +176 -86
- package/es-modules/Accessibility/Components/MenuComponent.js +1 -10
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +10 -13
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +15 -6
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +8 -4
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +16 -41
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +20 -31
- package/es-modules/Accessibility/Components/ZoomComponent.js +135 -57
- package/es-modules/Accessibility/FocusBorder.js +0 -5
- package/es-modules/Accessibility/HighContrastMode.js +2 -1
- package/es-modules/Accessibility/KeyboardNavigation.js +5 -4
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -5
- package/es-modules/Accessibility/Options/LangOptions.js +3 -3
- package/es-modules/Accessibility/ProxyElement.js +12 -6
- package/es-modules/Accessibility/ProxyProvider.js +0 -3
- package/es-modules/Accessibility/Utils/Announcer.js +2 -2
- package/es-modules/Accessibility/Utils/ChartUtilities.js +17 -32
- package/es-modules/Accessibility/Utils/HTMLUtilities.js +0 -12
- package/es-modules/Core/Animation/Fx.js +5 -14
- package/es-modules/Core/Axis/Axis.js +42 -68
- package/es-modules/Core/Axis/Axis3D.js +10 -4
- package/es-modules/Core/Axis/BrokenAxis.js +17 -11
- package/es-modules/Core/Axis/Color/ColorAxis.js +7 -4
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +3 -3
- package/es-modules/Core/Axis/DateTimeAxis.js +3 -14
- package/es-modules/Core/Axis/GridAxis.js +26 -16
- package/es-modules/Core/Axis/NavigatorAxis.js +0 -5
- package/es-modules/Core/Axis/OrdinalAxis.js +83 -79
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +0 -5
- package/es-modules/Core/Axis/RadialAxis.js +7 -28
- package/es-modules/Core/Axis/ScrollbarAxis.js +18 -10
- package/es-modules/Core/Axis/StackingAxis.js +2 -1
- package/es-modules/Core/Axis/Tick.js +2 -4
- package/es-modules/Core/Axis/TreeGridAxis.js +26 -17
- package/es-modules/Core/Axis/TreeGridTick.js +4 -1
- package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
- package/es-modules/Core/Axis/ZAxis.js +1 -1
- package/es-modules/Core/Chart/Chart.js +42 -44
- package/es-modules/Core/Chart/Chart3D.js +23 -10
- package/es-modules/Core/Chart/GanttChart.js +4 -4
- package/es-modules/Core/Chart/MapChart.js +3 -3
- package/es-modules/Core/Chart/StockChart.js +10 -23
- package/es-modules/Core/DefaultOptions.js +3 -2
- package/es-modules/Core/Geometry/CircleUtilities.js +2 -1
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/HttpUtilities.js +5 -4
- package/es-modules/Core/Legend/Legend.js +12 -13
- package/es-modules/Core/Navigator.js +34 -22
- package/es-modules/Core/Pointer.js +13 -9
- package/es-modules/Core/Renderer/HTML/AST.js +27 -14
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +4 -2
- package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +8 -6
- package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGElement.js +8 -16
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +17 -8
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +5 -12
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +12 -5
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +16 -10
- package/es-modules/Core/Responsive.js +2 -3
- package/es-modules/Core/Scrollbar.js +14 -12
- package/es-modules/Core/Series/DataLabel.js +17 -12
- package/es-modules/Core/Series/Point.js +17 -16
- package/es-modules/Core/Series/Series.js +44 -73
- package/es-modules/Core/Series/SeriesDefaults.js +5 -4
- package/es-modules/Core/Time.js +14 -11
- package/es-modules/Core/Tooltip.js +19 -36
- package/es-modules/Core/Utilities.js +5 -17
- package/es-modules/Data/DataConverter.js +0 -6
- package/es-modules/Data/DataSeriesConverter.js +9 -5
- package/es-modules/Data/DataTable.js +2 -1
- package/es-modules/Data/Modifiers/DataModifier.js +1 -1
- package/es-modules/Data/Parsers/CSVParser.js +3 -2
- package/es-modules/Data/Parsers/GoogleSheetsParser.js +5 -2
- package/es-modules/Data/Stores/CSVStore.js +2 -2
- package/es-modules/Data/Stores/DataStore.js +1 -1
- package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
- package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
- package/es-modules/Extensions/Annotations/Annotations.js +11 -10
- package/es-modules/Extensions/Annotations/ControlPoint.js +0 -2
- package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +3 -6
- package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +3 -2
- package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +1 -1
- package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +6 -3
- package/es-modules/Extensions/Annotations/Mixins/EventEmitterMixin.js +0 -1
- package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +5 -4
- package/es-modules/Extensions/Annotations/NavigationBindings.js +34 -29
- package/es-modules/Extensions/Annotations/Popup.js +40 -32
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +4 -2
- package/es-modules/Extensions/Annotations/Types/ElliottWave.js +1 -1
- package/es-modules/Extensions/Annotations/Types/Measure.js +15 -11
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +2 -1
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +8 -4
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +10 -5
- package/es-modules/Extensions/Boost/BoostOverrides.js +3 -9
- package/es-modules/Extensions/Boost/BoostUtils.js +0 -6
- package/es-modules/Extensions/Boost/WGLRenderer.js +16 -12
- package/es-modules/Extensions/Boost/WGLShader.js +9 -8
- package/es-modules/Extensions/Boost/WGLVBuffer.js +4 -7
- package/es-modules/Extensions/Data.js +4 -48
- package/es-modules/Extensions/DataGrouping.js +22 -15
- package/es-modules/Extensions/DraggablePoints.js +7 -8
- package/es-modules/Extensions/Drilldown.js +9 -4
- package/es-modules/Extensions/ExportData.js +6 -5
- package/es-modules/Extensions/Exporting/Exporting.js +23 -37
- package/es-modules/Extensions/FullScreen.js +4 -3
- package/es-modules/Extensions/GeoJSON.js +3 -3
- package/es-modules/Extensions/MarkerClusters.js +3 -1
- package/es-modules/Extensions/Math3D.js +4 -4
- package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +23 -24
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +13 -77
- package/es-modules/Extensions/Oldie/VMLAxis3D.js +5 -1
- package/es-modules/Extensions/OverlappingDataLabels.js +10 -6
- package/es-modules/Extensions/Pane.js +6 -6
- package/es-modules/Extensions/ParallelCoordinates.js +5 -3
- package/es-modules/Extensions/PatternFill.js +17 -11
- package/es-modules/Extensions/Polar.js +6 -3
- package/es-modules/Extensions/PriceIndication.js +2 -1
- package/es-modules/Extensions/RangeSelector.js +19 -55
- package/es-modules/Extensions/ScrollablePlotArea.js +2 -2
- package/es-modules/Extensions/SeriesLabel.js +1 -1
- package/es-modules/Extensions/Sonification/ChartSonify.js +32 -26
- package/es-modules/Extensions/Sonification/Instrument.js +12 -15
- package/es-modules/Extensions/Sonification/PointSonify.js +12 -8
- package/es-modules/Extensions/Sonification/SeriesSonify.js +33 -18
- package/es-modules/Extensions/Sonification/SignalHandler.js +4 -6
- package/es-modules/Extensions/Sonification/Sonification.js +1 -1
- package/es-modules/Extensions/Sonification/SonificationUtilities.js +11 -7
- package/es-modules/Extensions/Sonification/Timeline.js +2 -7
- package/es-modules/Extensions/Sonification/TimelineEvent.js +0 -1
- package/es-modules/Extensions/Sonification/TimelinePath.js +8 -8
- package/es-modules/Extensions/Stacking.js +5 -23
- package/es-modules/Extensions/Themes/BrandDark.js +293 -0
- package/es-modules/Extensions/Themes/BrandLight.js +259 -0
- package/es-modules/Extensions/Themes/DarkUnica.js +4 -2
- package/es-modules/Extensions/Themes/Grid.js +4 -2
- package/es-modules/Extensions/Themes/GridLight.js +4 -2
- package/es-modules/Gantt/Connection.js +2 -2
- package/es-modules/Gantt/Pathfinder.js +6 -5
- package/es-modules/Gantt/PathfinderAlgorithms.js +12 -12
- package/es-modules/Maps/MapNavigation.js +6 -7
- package/es-modules/Maps/MapPointer.js +2 -1
- package/es-modules/Maps/MapSymbols.js +23 -3
- package/es-modules/Maps/MapViewOptionsDefault.js +1 -1
- package/es-modules/Series/Area/AreaSeries.js +13 -13
- package/es-modules/Series/Area3DSeries.js +4 -2
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +24 -12
- package/es-modules/Series/Bellcurve/BellcurveSeries.js +2 -1
- package/es-modules/Series/Bubble/BubbleLegendItem.js +2 -12
- package/es-modules/Series/Candlestick/CandlestickSeries.js +0 -1
- package/es-modules/Series/ColorMapMixin.js +84 -0
- package/es-modules/Series/Column/ColumnSeries.js +16 -14
- package/es-modules/Series/Column3D/Column3DComposition.js +1 -2
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +5 -2
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
- package/es-modules/Series/Cylinder/CylinderComposition.js +36 -4
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +1 -1
- package/es-modules/Series/Dumbbell/DumbbellPoint.js +0 -1
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +0 -3
- package/es-modules/Series/Flags/FlagsSymbols.js +2 -2
- package/es-modules/Series/Funnel3D/Funnel3DComposition.js +14 -8
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +2 -1
- package/es-modules/Series/Gantt/GanttPoint.js +1 -1
- package/es-modules/Series/Gantt/GanttSeries.js +3 -1
- package/es-modules/Series/HLC/HLCSeries.js +1 -6
- package/es-modules/Series/Heatmap/HeatmapPoint.js +10 -10
- package/es-modules/Series/Heatmap/HeatmapSeries.js +9 -10
- package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +8 -6
- package/es-modules/Series/Histogram/HistogramSeries.js +4 -4
- package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +1 -4
- package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +19 -20
- package/es-modules/Series/Item/ItemSeries.js +4 -5
- package/es-modules/Series/Map/MapPoint.js +6 -0
- package/es-modules/Series/Map/MapSeries.js +24 -25
- package/es-modules/Series/MapLine/MapLineSeries.js +0 -4
- package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -4
- package/es-modules/Series/Networkgraph/Integrations.js +8 -22
- package/es-modules/Series/Networkgraph/Networkgraph.js +1 -5
- package/es-modules/Series/Networkgraph/QuadTree.js +1 -3
- package/es-modules/Series/NodesComposition.js +2 -1
- package/es-modules/Series/OHLC/OHLCPoint.js +0 -1
- package/es-modules/Series/OHLC/OHLCSeries.js +1 -1
- package/es-modules/Series/Organization/OrganizationSeries.js +4 -2
- package/es-modules/Series/PackedBubble/PackedBubbleComposition.js +1 -0
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +2 -4
- package/es-modules/Series/Pie/PiePoint.js +2 -2
- package/es-modules/Series/Pie/PieSeries.js +1 -1
- package/es-modules/Series/Pie3D/Pie3DComposition.js +2 -1
- package/es-modules/Series/Pie3D/Pie3DPoint.js +2 -1
- package/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
- package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +2 -1
- package/es-modules/Series/Sankey/SankeySeries.js +3 -2
- package/es-modules/Series/SolidGauge/SolidGaugeComposition.js +3 -1
- package/es-modules/Series/Spline/SplineSeries.js +0 -8
- package/es-modules/Series/Sunburst/SunburstSeries.js +2 -2
- package/es-modules/Series/Sunburst/SunburstUtilities.js +3 -2
- package/es-modules/Series/Tilemap/TilemapPoint.js +0 -2
- package/es-modules/Series/Tilemap/TilemapShapes.js +0 -7
- package/es-modules/Series/TreeUtilities.js +2 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +18 -21
- package/es-modules/Series/Variwide/VariwideSeries.js +5 -1
- package/es-modules/Series/Venn/VennSeries.js +6 -9
- package/es-modules/Series/Venn/VennUtils.js +8 -7
- package/es-modules/Series/Waterfall/WaterfallSeries.js +6 -3
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +2 -2
- package/es-modules/Series/Wordcloud/WordcloudUtils.js +6 -10
- package/es-modules/Series/XRange/XRangePoint.js +6 -12
- package/es-modules/Series/XRange/XRangeSeries.js +4 -20
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +12 -0
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -0
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +12 -0
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +35 -15
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +9 -5
- package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +2 -1
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +6 -6
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +12 -0
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +8 -3
- package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +30 -12
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -1
- package/es-modules/Stock/Indicators/MultipleLinesComposition.js +70 -6
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +11 -0
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +2 -1
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +2 -1
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +2 -3
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +3 -1
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +3 -3
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +19 -7
- package/es-modules/Stock/StockToolsBindings.js +13 -6
- package/es-modules/Stock/StockToolsGui.js +34 -23
- package/es-modules/masters/highcharts-3d.src.js +1 -1
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +1 -1
- package/es-modules/masters/highcharts.src.js +1 -1
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +2 -2
- package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
- package/es-modules/masters/modules/annotations.src.js +1 -1
- package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
- package/es-modules/masters/modules/boost-canvas.src.js +1 -1
- package/es-modules/masters/modules/boost.src.js +1 -1
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +1 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/exporting.src.js +1 -1
- package/es-modules/masters/modules/full-screen.src.js +1 -1
- package/es-modules/masters/modules/funnel.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/es-modules/masters/modules/gantt.src.js +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +1 -1
- package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
- package/es-modules/masters/modules/oldie.src.js +1 -1
- package/es-modules/masters/modules/organization.src.js +1 -1
- package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
- package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
- package/es-modules/masters/modules/pareto.src.js +1 -1
- package/es-modules/masters/modules/pathfinder.src.js +1 -1
- package/es-modules/masters/modules/pattern-fill.src.js +1 -1
- package/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/es-modules/masters/modules/pyramid3d.src.js +1 -1
- package/es-modules/masters/modules/sankey.src.js +1 -1
- package/es-modules/masters/modules/series-label.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +1 -1
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/timeline.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +1 -1
- package/es-modules/masters/modules/treemap.src.js +1 -1
- package/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/es-modules/masters/modules/variwide.src.js +1 -1
- package/es-modules/masters/modules/vector.src.js +1 -1
- package/es-modules/masters/modules/venn.src.js +1 -1
- package/es-modules/masters/modules/windbarb.src.js +1 -1
- package/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/es-modules/masters/modules/xrange.src.js +1 -1
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/brand-dark.src.js +14 -0
- package/es-modules/masters/themes/brand-light.src.js +14 -0
- package/es-modules/masters/themes/dark-blue.src.js +1 -1
- package/es-modules/masters/themes/dark-green.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/gray.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/grid.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/skies.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +1 -1
- package/highcharts-3d.js.map +1 -1
- package/highcharts-3d.src.js +65 -35
- package/highcharts-gantt.js +799 -799
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +589 -698
- package/highcharts-more.js +1 -1
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.js +73 -103
- package/highcharts.d.ts +5586 -1709
- package/highcharts.js +577 -577
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +5586 -1709
- package/highcharts.src.js +391 -486
- package/highmaps.js +723 -723
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +552 -656
- package/highstock.js +782 -782
- package/highstock.js.map +1 -1
- package/highstock.src.js +612 -731
- package/indicators/acceleration-bands.d.ts +17 -1
- package/indicators/acceleration-bands.js +11 -10
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.d.ts +17 -1
- package/indicators/acceleration-bands.src.js +88 -6
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +1 -1
- package/indicators/ao.src.js +1 -1
- package/indicators/apo.js +1 -1
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.d.ts +17 -1
- package/indicators/aroon-oscillator.js +10 -9
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.d.ts +17 -1
- package/indicators/aroon-oscillator.src.js +76 -6
- package/indicators/aroon.d.ts +17 -1
- package/indicators/aroon.js +11 -9
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.d.ts +17 -1
- package/indicators/aroon.src.js +77 -6
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.d.ts +17 -1
- package/indicators/bollinger-bands.js +12 -10
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.d.ts +17 -1
- package/indicators/bollinger-bands.src.js +88 -6
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +1 -1
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.js.map +1 -1
- package/indicators/cmf.src.js +36 -16
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.js +1 -1
- package/indicators/dema.src.js +1 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.js.map +1 -1
- package/indicators/disparity-index.src.js +3 -2
- package/indicators/dmi.js +12 -11
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +85 -11
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.src.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js.map +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +7 -7
- package/indicators/indicators-all.d.ts +17 -1
- package/indicators/indicators-all.js +198 -197
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.d.ts +17 -1
- package/indicators/indicators-all.src.js +246 -65
- package/indicators/indicators.js +1 -1
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +3 -4
- package/indicators/keltner-channels.d.ts +17 -1
- package/indicators/keltner-channels.js +11 -10
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.d.ts +17 -1
- package/indicators/keltner-channels.src.js +88 -6
- package/indicators/klinger.js +14 -12
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +84 -9
- package/indicators/macd.js +1 -1
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +2 -2
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +1 -1
- package/indicators/natr.src.js +1 -1
- package/indicators/obv.js +1 -1
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.js.map +1 -1
- package/indicators/pivot-points.src.js +3 -2
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.d.ts +17 -1
- package/indicators/price-channel.js +11 -9
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.d.ts +17 -1
- package/indicators/price-channel.src.js +87 -6
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +1 -1
- package/indicators/regressions.js.map +1 -1
- package/indicators/regressions.src.js +31 -13
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.js.map +1 -1
- package/indicators/rsi.src.js +3 -2
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.src.js +1 -1
- package/indicators/stochastic.d.ts +17 -1
- package/indicators/stochastic.js +12 -10
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.d.ts +17 -1
- package/indicators/stochastic.src.js +79 -7
- package/indicators/supertrend.js +1 -1
- package/indicators/supertrend.src.js +1 -1
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +1 -1
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.js +1 -1
- package/indicators/volume-by-price.src.js +4 -4
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.js.map +1 -1
- package/indicators/vwap.src.js +20 -8
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.d.ts +0 -35
- package/modules/accessibility.js +225 -222
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.d.ts +0 -35
- package/modules/accessibility.src.js +503 -418
- package/modules/annotations-advanced.js +128 -128
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.js +152 -124
- package/modules/annotations.js +122 -122
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +112 -100
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +1 -1
- package/modules/boost-canvas.src.js +1 -1
- package/modules/boost.js +1 -1
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +33 -43
- package/modules/broken-axis.js +1 -1
- package/modules/broken-axis.js.map +1 -1
- package/modules/broken-axis.src.js +18 -12
- package/modules/bullet.js +1 -1
- package/modules/bullet.src.js +1 -1
- package/modules/coloraxis.js +1 -1
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +11 -8
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +1 -1
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +37 -5
- package/modules/data.d.ts +6 -6
- package/modules/data.js +31 -31
- package/modules/data.js.map +1 -1
- package/modules/data.src.d.ts +6 -6
- package/modules/data.src.js +10 -53
- package/modules/datagrouping.js +2 -2
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.js +23 -16
- package/modules/debugger.js +1 -1
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.js +3 -3
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +2 -2
- package/modules/dotplot.js +1 -1
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +1 -1
- package/modules/draggable-points.js.map +1 -1
- package/modules/draggable-points.src.js +8 -9
- package/modules/drilldown.js +1 -1
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.js +10 -5
- package/modules/dumbbell.js +1 -1
- package/modules/dumbbell.js.map +1 -1
- package/modules/dumbbell.src.js +1 -5
- package/modules/export-data.js +19 -19
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +7 -6
- package/modules/exporting.js +1 -1
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +33 -45
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.js.map +1 -1
- package/modules/full-screen.src.js +5 -4
- package/modules/funnel.js +1 -1
- package/modules/funnel.src.js +1 -1
- package/modules/funnel3d.js +1 -1
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +17 -10
- package/modules/gantt.js +1 -1
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +199 -213
- package/modules/grid-axis.js +1 -1
- package/modules/grid-axis.js.map +1 -1
- package/modules/grid-axis.src.js +27 -19
- package/modules/heatmap.js +39 -39
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +88 -112
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.js.map +1 -1
- package/modules/heikinashi.src.js +9 -7
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.js.map +1 -1
- package/modules/histogram-bellcurve.src.js +7 -6
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.js.map +1 -1
- package/modules/hollowcandlestick.src.js +21 -25
- package/modules/item-series.js +6 -6
- package/modules/item-series.js.map +1 -1
- package/modules/item-series.src.js +6 -6
- package/modules/lollipop.js +1 -1
- package/modules/lollipop.src.js +1 -1
- package/modules/map.d.ts +2 -0
- package/modules/map.js +144 -144
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +2 -0
- package/modules/map.src.js +162 -171
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +4 -2
- package/modules/networkgraph.js +1 -1
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.js +13 -36
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/offline-exporting.js +18 -18
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +27 -32
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +1 -1
- package/modules/oldie.js +2 -2
- package/modules/oldie.js.map +1 -1
- package/modules/oldie.src.js +19 -79
- package/modules/organization.js +1 -1
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +5 -3
- package/modules/overlapping-datalabels.js +1 -1
- package/modules/overlapping-datalabels.src.js +1 -1
- package/modules/parallel-coordinates.js +1 -1
- package/modules/parallel-coordinates.js.map +1 -1
- package/modules/parallel-coordinates.src.js +6 -4
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +1 -1
- package/modules/pathfinder.js.map +1 -1
- package/modules/pathfinder.src.js +21 -20
- package/modules/pattern-fill.js +1 -1
- package/modules/pattern-fill.js.map +1 -1
- package/modules/pattern-fill.src.js +18 -12
- package/modules/price-indicator.js +1 -1
- package/modules/price-indicator.js.map +1 -1
- package/modules/price-indicator.src.js +3 -2
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.js.map +1 -1
- package/modules/pyramid3d.src.js +3 -2
- package/modules/sankey.js +1 -1
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.js +8 -6
- package/modules/series-label.js +1 -1
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +2 -2
- package/modules/solid-gauge.js +1 -1
- package/modules/solid-gauge.js.map +1 -1
- package/modules/solid-gauge.src.js +17 -2
- package/modules/sonification.js +53 -53
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.js +121 -103
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +66 -66
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.js +119 -96
- package/modules/stock.js +3 -3
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.js +222 -246
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +60 -61
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +83 -113
- package/modules/tilemap.js +1 -1
- package/modules/tilemap.js.map +1 -1
- package/modules/tilemap.src.js +1 -10
- package/modules/timeline.js +1 -1
- package/modules/timeline.src.js +1 -1
- package/modules/treegrid.js +1 -1
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +76 -50
- package/modules/treemap.js +41 -41
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.js +78 -109
- package/modules/variable-pie.js +1 -1
- package/modules/variable-pie.src.js +1 -1
- package/modules/variwide.js +1 -1
- package/modules/variwide.js.map +1 -1
- package/modules/variwide.src.js +7 -3
- package/modules/vector.js +1 -1
- package/modules/vector.src.js +1 -1
- package/modules/venn.js +1 -1
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +17 -18
- package/modules/windbarb.js +1 -1
- package/modules/windbarb.src.js +1 -1
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +9 -13
- package/modules/xrange.js +1 -1
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +11 -33
- package/package.json +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/brand-dark.js +15 -0
- package/themes/brand-dark.js.map +1 -0
- package/themes/brand-dark.src.js +328 -0
- package/themes/brand-light.js +15 -0
- package/themes/brand-light.js.map +1 -0
- package/themes/brand-light.src.js +294 -0
- package/themes/dark-blue.js +1 -1
- package/themes/dark-blue.src.js +1 -1
- package/themes/dark-green.js +1 -1
- package/themes/dark-green.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.js.map +1 -1
- package/themes/dark-unica.src.js +5 -3
- package/themes/gray.js +1 -1
- package/themes/gray.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.js.map +1 -1
- package/themes/grid-light.src.js +5 -3
- package/themes/grid.js +1 -1
- package/themes/grid.js.map +1 -1
- package/themes/grid.src.js +5 -3
- package/themes/high-contrast-dark.js +1 -1
- package/themes/high-contrast-dark.src.js +1 -1
- package/themes/high-contrast-light.js +1 -1
- package/themes/high-contrast-light.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/skies.js +1 -1
- package/themes/skies.src.js +1 -1
- package/themes/sunset.js +1 -1
- package/themes/sunset.src.js +1 -1
- package/es-modules/Series/ColorMapComposition.js +0 -109
package/highstock.src.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highstock JS v9.3.
|
|
2
|
+
* @license Highstock JS v9.3.2 (2021-11-29)
|
|
3
3
|
*
|
|
4
4
|
* (c) 2009-2021 Torstein Honsi
|
|
5
5
|
*
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
* Constants
|
|
72
72
|
*
|
|
73
73
|
* */
|
|
74
|
-
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '9.3.
|
|
74
|
+
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '9.3.2', Globals.win = w, Globals.doc = Globals.win.document, Globals.svg = (Globals.doc &&
|
|
75
75
|
Globals.doc.createElementNS &&
|
|
76
76
|
!!Globals.doc.createElementNS(Globals.SVG_NS, 'svg').createSVGRect), Globals.userAgent = (Globals.win.navigator && Globals.win.navigator.userAgent) || '', Globals.isChrome = Globals.userAgent.indexOf('Chrome') !== -1, Globals.isFirefox = Globals.userAgent.indexOf('Firefox') !== -1, Globals.isMS = /(edge|msie|trident)/i.test(Globals.userAgent) && !Globals.win.opera, Globals.isSafari = !Globals.isChrome && Globals.userAgent.indexOf('Safari') !== -1, Globals.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(Globals.userAgent), Globals.isWebKit = Globals.userAgent.indexOf('AppleWebKit') !== -1, Globals.deg2rad = Math.PI * 2 / 360, Globals.hasBidiBug = (Globals.isFirefox &&
|
|
77
77
|
parseInt(Globals.userAgent.split('Firefox/')[1], 10) < 4 // issue #38
|
|
@@ -761,7 +761,7 @@
|
|
|
761
761
|
return obj;
|
|
762
762
|
}
|
|
763
763
|
/**
|
|
764
|
-
* Left-pad a string to a given length by adding a character
|
|
764
|
+
* Left-pad a string to a given length by adding a character repetitively.
|
|
765
765
|
*
|
|
766
766
|
* @function Highcharts.pad
|
|
767
767
|
*
|
|
@@ -1030,7 +1030,7 @@
|
|
|
1030
1030
|
});
|
|
1031
1031
|
}
|
|
1032
1032
|
/**
|
|
1033
|
-
* Discard a HTML element
|
|
1033
|
+
* Discard a HTML element
|
|
1034
1034
|
*
|
|
1035
1035
|
* @function Highcharts.discardElement
|
|
1036
1036
|
*
|
|
@@ -1038,17 +1038,10 @@
|
|
|
1038
1038
|
* The HTML node to discard.
|
|
1039
1039
|
*/
|
|
1040
1040
|
function discardElement(element) {
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
garbageBin = createElement('div');
|
|
1041
|
+
if (element && element.parentElement) {
|
|
1042
|
+
element.parentElement.removeChild(element);
|
|
1044
1043
|
}
|
|
1045
|
-
// move the node and empty bin
|
|
1046
|
-
if (element) {
|
|
1047
|
-
garbageBin.appendChild(element);
|
|
1048
|
-
}
|
|
1049
|
-
garbageBin.innerHTML = '';
|
|
1050
1044
|
}
|
|
1051
|
-
var garbageBin;
|
|
1052
1045
|
/**
|
|
1053
1046
|
* Fix JS round off float errors.
|
|
1054
1047
|
*
|
|
@@ -1247,7 +1240,7 @@
|
|
|
1247
1240
|
var i;
|
|
1248
1241
|
var length = arr.length;
|
|
1249
1242
|
for (i = 0; i < length; i++) {
|
|
1250
|
-
if (callback(arr[i], i)) { // eslint-disable-line callback-return
|
|
1243
|
+
if (callback(arr[i], i)) { // eslint-disable-line node/callback-return
|
|
1251
1244
|
return arr[i];
|
|
1252
1245
|
}
|
|
1253
1246
|
}
|
|
@@ -1519,9 +1512,6 @@
|
|
|
1519
1512
|
/* eslint-enable valid-jsdoc */
|
|
1520
1513
|
/**
|
|
1521
1514
|
* @private
|
|
1522
|
-
* @param {string} type - event type
|
|
1523
|
-
* @param {Highcharts.EventCallbackFunction<T>} fn - callback
|
|
1524
|
-
* @return {void}
|
|
1525
1515
|
*/
|
|
1526
1516
|
function removeOneEvent(type, fn) {
|
|
1527
1517
|
var removeEventListener = (el.removeEventListener || H.removeEventListenerPolyfill);
|
|
@@ -1531,8 +1521,6 @@
|
|
|
1531
1521
|
}
|
|
1532
1522
|
/**
|
|
1533
1523
|
* @private
|
|
1534
|
-
* @param {any} eventCollection - collection
|
|
1535
|
-
* @return {void}
|
|
1536
1524
|
*/
|
|
1537
1525
|
function removeAllEvents(eventCollection) {
|
|
1538
1526
|
var types,
|
|
@@ -3882,7 +3870,8 @@
|
|
|
3882
3870
|
// time
|
|
3883
3871
|
if (unit === 'Milliseconds' ||
|
|
3884
3872
|
unit === 'Seconds' ||
|
|
3885
|
-
(unit === 'Minutes' &&
|
|
3873
|
+
(unit === 'Minutes' &&
|
|
3874
|
+
this.getTimezoneOffset(date) % 3600000 === 0) // #13961
|
|
3886
3875
|
) {
|
|
3887
3876
|
return date['setUTC' + unit](value);
|
|
3888
3877
|
}
|
|
@@ -3899,8 +3888,8 @@
|
|
|
3899
3888
|
}
|
|
3900
3889
|
// UTC time with no timezone handling
|
|
3901
3890
|
if (this.useUTC ||
|
|
3902
|
-
|
|
3903
|
-
|
|
3891
|
+
// leap calculation in UTC only
|
|
3892
|
+
(hasNewSafariBug && unit === 'FullYear')) {
|
|
3904
3893
|
return date['setUTC' + unit](value);
|
|
3905
3894
|
}
|
|
3906
3895
|
// Else, local time
|
|
@@ -3916,7 +3905,6 @@
|
|
|
3916
3905
|
*
|
|
3917
3906
|
* @param {Highcharts.TimeOptions} options
|
|
3918
3907
|
*
|
|
3919
|
-
* @return {void}
|
|
3920
3908
|
*/
|
|
3921
3909
|
Time.prototype.update = function (options) {
|
|
3922
3910
|
var useUTC = pick(options && options.useUTC,
|
|
@@ -4005,6 +3993,7 @@
|
|
|
4005
3993
|
Time.prototype.timezoneOffsetFunction = function () {
|
|
4006
3994
|
var time = this,
|
|
4007
3995
|
options = this.options,
|
|
3996
|
+
getTimezoneOffset = options.getTimezoneOffset,
|
|
4008
3997
|
moment = options.moment || win.moment;
|
|
4009
3998
|
if (!this.useUTC) {
|
|
4010
3999
|
return function (timestamp) {
|
|
@@ -4024,9 +4013,9 @@
|
|
|
4024
4013
|
}
|
|
4025
4014
|
}
|
|
4026
4015
|
// If not timezone is set, look for the getTimezoneOffset callback
|
|
4027
|
-
if (this.useUTC &&
|
|
4016
|
+
if (this.useUTC && getTimezoneOffset) {
|
|
4028
4017
|
return function (timestamp) {
|
|
4029
|
-
return
|
|
4018
|
+
return getTimezoneOffset(timestamp.valueOf()) * 60000;
|
|
4030
4019
|
};
|
|
4031
4020
|
}
|
|
4032
4021
|
// Last, use the `timezoneOffset` option if set
|
|
@@ -4160,8 +4149,10 @@
|
|
|
4160
4149
|
* Resolve legacy formats of dateTimeLabelFormats (strings and arrays) into
|
|
4161
4150
|
* an object.
|
|
4162
4151
|
* @private
|
|
4163
|
-
* @param {string|Array<T>|Highcharts.Dictionary<T>} f
|
|
4164
|
-
*
|
|
4152
|
+
* @param {string|Array<T>|Highcharts.Dictionary<T>} f
|
|
4153
|
+
* General format description
|
|
4154
|
+
* @return {Highcharts.Dictionary<T>}
|
|
4155
|
+
* The object definition
|
|
4165
4156
|
*/
|
|
4166
4157
|
Time.prototype.resolveDTLFormat = function (f) {
|
|
4167
4158
|
if (!isObject(f, true)) { // check for string or array
|
|
@@ -4193,6 +4184,7 @@
|
|
|
4193
4184
|
* @param {number} [startOfWeek=1]
|
|
4194
4185
|
*
|
|
4195
4186
|
* @return {Highcharts.AxisTickPositionsArray}
|
|
4187
|
+
* Time positions
|
|
4196
4188
|
*/
|
|
4197
4189
|
Time.prototype.getTimeTicks = function (normalizedInterval, min, max, startOfWeek) {
|
|
4198
4190
|
var time = this,
|
|
@@ -4462,8 +4454,8 @@
|
|
|
4462
4454
|
* In case of loading the library from a `script` tag,
|
|
4463
4455
|
* this option is not needed, it will be loaded from there by default.
|
|
4464
4456
|
*
|
|
4465
|
-
* @type
|
|
4466
|
-
* @since
|
|
4457
|
+
* @type {Function}
|
|
4458
|
+
* @since 8.2.0
|
|
4467
4459
|
* @apioption time.moment
|
|
4468
4460
|
*/
|
|
4469
4461
|
''; // keeps doclets above in JS file
|
|
@@ -6982,6 +6974,7 @@
|
|
|
6982
6974
|
* @function Highcharts.getOptions
|
|
6983
6975
|
*
|
|
6984
6976
|
* @return {Highcharts.Options}
|
|
6977
|
+
* Default options.
|
|
6985
6978
|
*/
|
|
6986
6979
|
function getOptions() {
|
|
6987
6980
|
return defaultOptions;
|
|
@@ -6996,10 +6989,10 @@
|
|
|
6996
6989
|
* @function Highcharts.setOptions
|
|
6997
6990
|
*
|
|
6998
6991
|
* @param {Highcharts.Options} options
|
|
6999
|
-
*
|
|
6992
|
+
* The new custom chart options.
|
|
7000
6993
|
*
|
|
7001
6994
|
* @return {Highcharts.Options}
|
|
7002
|
-
*
|
|
6995
|
+
* Updated options.
|
|
7003
6996
|
*/
|
|
7004
6997
|
function setOptions(options) {
|
|
7005
6998
|
// Copy in the default options
|
|
@@ -7274,7 +7267,6 @@
|
|
|
7274
7267
|
*
|
|
7275
7268
|
* @function Highcharts.Fx#dSetter
|
|
7276
7269
|
*
|
|
7277
|
-
* @return {void}
|
|
7278
7270
|
*/
|
|
7279
7271
|
Fx.prototype.dSetter = function () {
|
|
7280
7272
|
var paths = this.paths,
|
|
@@ -7323,7 +7315,6 @@
|
|
|
7323
7315
|
*
|
|
7324
7316
|
* @function Highcharts.Fx#update
|
|
7325
7317
|
*
|
|
7326
|
-
* @return {void}
|
|
7327
7318
|
*/
|
|
7328
7319
|
Fx.prototype.update = function () {
|
|
7329
7320
|
var elem = this.elem,
|
|
@@ -7362,7 +7353,6 @@
|
|
|
7362
7353
|
* @param {string} unit
|
|
7363
7354
|
* The property unit, for example `px`.
|
|
7364
7355
|
*
|
|
7365
|
-
* @return {void}
|
|
7366
7356
|
*/
|
|
7367
7357
|
Fx.prototype.run = function (from, to, unit) {
|
|
7368
7358
|
var self = this,
|
|
@@ -7384,7 +7374,8 @@
|
|
|
7384
7374
|
};
|
|
7385
7375
|
if (from === to && !this.elem['forceAnimate:' + this.prop]) {
|
|
7386
7376
|
delete options.curAnim[this.prop];
|
|
7387
|
-
if (options.complete &&
|
|
7377
|
+
if (options.complete &&
|
|
7378
|
+
Object.keys(options.curAnim).length === 0) {
|
|
7388
7379
|
options.complete.call(this.elem);
|
|
7389
7380
|
}
|
|
7390
7381
|
}
|
|
@@ -7443,7 +7434,8 @@
|
|
|
7443
7434
|
}
|
|
7444
7435
|
else {
|
|
7445
7436
|
this.pos = options.easing((t - this.startTime) / duration);
|
|
7446
|
-
this.now = this.start + ((this.end -
|
|
7437
|
+
this.now = this.start + ((this.end -
|
|
7438
|
+
this.start) * this.pos);
|
|
7447
7439
|
this.update();
|
|
7448
7440
|
ret = true;
|
|
7449
7441
|
}
|
|
@@ -7485,9 +7477,6 @@
|
|
|
7485
7477
|
/**
|
|
7486
7478
|
* If shifting points, prepend a dummy point to the end path.
|
|
7487
7479
|
* @private
|
|
7488
|
-
* @param {Highcharts.SVGPathArray} arr - array
|
|
7489
|
-
* @param {Highcharts.SVGPathArray} other - array
|
|
7490
|
-
* @return {void}
|
|
7491
7480
|
*/
|
|
7492
7481
|
function prepend(arr, other) {
|
|
7493
7482
|
while (arr.length < fullLength) {
|
|
@@ -7523,9 +7512,6 @@
|
|
|
7523
7512
|
/**
|
|
7524
7513
|
* Copy and append last point until the length matches the end length.
|
|
7525
7514
|
* @private
|
|
7526
|
-
* @param {Highcharts.SVGPathArray} arr - array
|
|
7527
|
-
* @param {Highcharts.SVGPathArray} other - array
|
|
7528
|
-
* @return {void}
|
|
7529
7515
|
*/
|
|
7530
7516
|
function append(arr, other) {
|
|
7531
7517
|
while (arr.length < fullLength) {
|
|
@@ -7597,7 +7583,6 @@
|
|
|
7597
7583
|
*
|
|
7598
7584
|
* @function Highcharts.Fx#fillSetter
|
|
7599
7585
|
*
|
|
7600
|
-
* @return {void}
|
|
7601
7586
|
*/
|
|
7602
7587
|
Fx.prototype.fillSetter = function () {
|
|
7603
7588
|
Fx.prototype.strokeSetter.apply(this, arguments);
|
|
@@ -7607,10 +7592,9 @@
|
|
|
7607
7592
|
*
|
|
7608
7593
|
* @function Highcharts.Fx#strokeSetter
|
|
7609
7594
|
*
|
|
7610
|
-
* @return {void}
|
|
7611
7595
|
*/
|
|
7612
7596
|
Fx.prototype.strokeSetter = function () {
|
|
7613
|
-
this.elem.attr(this.prop, color(this.start).tweenTo(color(this.end), this.pos),
|
|
7597
|
+
this.elem.attr(this.prop, color(this.start).tweenTo(color(this.end), this.pos), void 0, true);
|
|
7614
7598
|
};
|
|
7615
7599
|
/* *
|
|
7616
7600
|
*
|
|
@@ -7853,23 +7837,34 @@
|
|
|
7853
7837
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
7854
7838
|
*
|
|
7855
7839
|
* */
|
|
7856
|
-
var SVG_NS = H.SVG_NS
|
|
7840
|
+
var SVG_NS = H.SVG_NS,
|
|
7841
|
+
win = H.win;
|
|
7857
7842
|
var attr = U.attr,
|
|
7858
7843
|
createElement = U.createElement,
|
|
7859
|
-
discardElement = U.discardElement,
|
|
7860
7844
|
error = U.error,
|
|
7845
|
+
isFunction = U.isFunction,
|
|
7861
7846
|
isString = U.isString,
|
|
7862
7847
|
objectEach = U.objectEach,
|
|
7863
7848
|
splat = U.splat;
|
|
7849
|
+
var trustedTypes = win.trustedTypes;
|
|
7864
7850
|
/* *
|
|
7865
7851
|
*
|
|
7866
7852
|
* Constants
|
|
7867
7853
|
*
|
|
7868
7854
|
* */
|
|
7855
|
+
// Create the trusted type policy. This should not be exposed.
|
|
7856
|
+
var trustedTypesPolicy = (trustedTypes &&
|
|
7857
|
+
isFunction(trustedTypes.createPolicy) &&
|
|
7858
|
+
trustedTypes.createPolicy('highcharts', {
|
|
7859
|
+
createHTML: function (s) { return s; }
|
|
7860
|
+
}));
|
|
7861
|
+
var emptyHTML = trustedTypesPolicy ?
|
|
7862
|
+
trustedTypesPolicy.createHTML('') :
|
|
7863
|
+
'';
|
|
7869
7864
|
// In IE8, DOMParser is undefined. IE9 and PhantomJS are only able to parse XML.
|
|
7870
7865
|
var hasValidDOMParser = (function () {
|
|
7871
7866
|
try {
|
|
7872
|
-
return Boolean(new DOMParser().parseFromString(
|
|
7867
|
+
return Boolean(new DOMParser().parseFromString(emptyHTML, 'text/html'));
|
|
7873
7868
|
}
|
|
7874
7869
|
catch (e) {
|
|
7875
7870
|
return false;
|
|
@@ -7952,7 +7947,7 @@
|
|
|
7952
7947
|
* Markup string
|
|
7953
7948
|
*/
|
|
7954
7949
|
AST.setElementHTML = function (el, html) {
|
|
7955
|
-
el.innerHTML =
|
|
7950
|
+
el.innerHTML = AST.emptyHTML; // Clear previous
|
|
7956
7951
|
if (html) {
|
|
7957
7952
|
var ast = new AST(html);
|
|
7958
7953
|
ast.addToDOM(el);
|
|
@@ -7977,9 +7972,12 @@
|
|
|
7977
7972
|
AST.prototype.addToDOM = function (parent) {
|
|
7978
7973
|
/**
|
|
7979
7974
|
* @private
|
|
7980
|
-
* @param {Highcharts.ASTNode} subtree
|
|
7981
|
-
*
|
|
7982
|
-
* @
|
|
7975
|
+
* @param {Highcharts.ASTNode} subtree
|
|
7976
|
+
* HTML/SVG definition
|
|
7977
|
+
* @param {Element} [subParent]
|
|
7978
|
+
* parent node
|
|
7979
|
+
* @return {Highcharts.SVGDOMElement|Highcharts.HTMLDOMElement}
|
|
7980
|
+
* The inserted node.
|
|
7983
7981
|
*/
|
|
7984
7982
|
function recurse(subtree, subParent) {
|
|
7985
7983
|
var ret;
|
|
@@ -8020,7 +8018,8 @@
|
|
|
8020
8018
|
node = element;
|
|
8021
8019
|
}
|
|
8022
8020
|
else {
|
|
8023
|
-
error(
|
|
8021
|
+
error('Highcharts warning: Invalid tagName ' +
|
|
8022
|
+
tagName + ' in config');
|
|
8024
8023
|
}
|
|
8025
8024
|
}
|
|
8026
8025
|
// Add to the tree
|
|
@@ -8050,12 +8049,13 @@
|
|
|
8050
8049
|
var nodes = [];
|
|
8051
8050
|
markup = markup.trim();
|
|
8052
8051
|
var doc;
|
|
8053
|
-
var body;
|
|
8054
8052
|
if (hasValidDOMParser) {
|
|
8055
|
-
doc = new DOMParser().parseFromString(
|
|
8053
|
+
doc = new DOMParser().parseFromString(trustedTypesPolicy ?
|
|
8054
|
+
trustedTypesPolicy.createHTML(markup) :
|
|
8055
|
+
markup, 'text/html');
|
|
8056
8056
|
}
|
|
8057
8057
|
else {
|
|
8058
|
-
body = createElement('div');
|
|
8058
|
+
var body = createElement('div');
|
|
8059
8059
|
body.innerHTML = markup;
|
|
8060
8060
|
doc = { body: body };
|
|
8061
8061
|
}
|
|
@@ -8091,9 +8091,6 @@
|
|
|
8091
8091
|
addTo.push(astNode);
|
|
8092
8092
|
};
|
|
8093
8093
|
[].forEach.call(doc.body.childNodes, function (childNode) { return appendChildNodes(childNode, nodes); });
|
|
8094
|
-
if (body) {
|
|
8095
|
-
discardElement(body);
|
|
8096
|
-
}
|
|
8097
8094
|
return nodes;
|
|
8098
8095
|
};
|
|
8099
8096
|
/* *
|
|
@@ -8280,6 +8277,7 @@
|
|
|
8280
8277
|
'ul',
|
|
8281
8278
|
'#text'
|
|
8282
8279
|
];
|
|
8280
|
+
AST.emptyHTML = emptyHTML;
|
|
8283
8281
|
return AST;
|
|
8284
8282
|
}());
|
|
8285
8283
|
/* *
|
|
@@ -8615,7 +8613,8 @@
|
|
|
8615
8613
|
* @private
|
|
8616
8614
|
*/
|
|
8617
8615
|
function distribute(boxes, len, maxDistance) {
|
|
8618
|
-
|
|
8616
|
+
// Original array will be altered with added .pos
|
|
8617
|
+
var origBoxes = boxes,
|
|
8619
8618
|
reducedLen = origBoxes.reducedLen || len,
|
|
8620
8619
|
sortByRank = function (a,
|
|
8621
8620
|
b) {
|
|
@@ -8870,7 +8869,6 @@
|
|
|
8870
8869
|
*
|
|
8871
8870
|
* @param {Highcharts.SVGDOMElement} element
|
|
8872
8871
|
*
|
|
8873
|
-
* @return {void}
|
|
8874
8872
|
*/
|
|
8875
8873
|
SVGElement.prototype._defaultSetter = function (value, key, element) {
|
|
8876
8874
|
element.setAttribute(key, value);
|
|
@@ -9023,7 +9021,8 @@
|
|
|
9023
9021
|
alignByTranslate = this.alignByTranslate;
|
|
9024
9022
|
alignTo = this.alignTo;
|
|
9025
9023
|
}
|
|
9026
|
-
box = pick(box, renderer[alignTo], alignTo === 'scrollablePlotBox' ?
|
|
9024
|
+
box = pick(box, renderer[alignTo], alignTo === 'scrollablePlotBox' ?
|
|
9025
|
+
renderer.plotBox : void 0, renderer);
|
|
9027
9026
|
// Assign variables
|
|
9028
9027
|
var align = alignOptions.align,
|
|
9029
9028
|
vAlign = alignOptions.verticalAlign;
|
|
@@ -9319,7 +9318,8 @@
|
|
|
9319
9318
|
// Let the shadow follow the main element
|
|
9320
9319
|
if (!this.styledMode &&
|
|
9321
9320
|
this.shadows &&
|
|
9322
|
-
/^(width|height|visibility|x|y|d|transform|cx|cy|r)
|
|
9321
|
+
/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/
|
|
9322
|
+
.test(key)) {
|
|
9323
9323
|
this.updateShadows(key, val, setter);
|
|
9324
9324
|
}
|
|
9325
9325
|
}
|
|
@@ -9708,7 +9708,6 @@
|
|
|
9708
9708
|
* @private
|
|
9709
9709
|
* @function Highcharts.SVGElement#destroyShadows
|
|
9710
9710
|
*
|
|
9711
|
-
* @return {void}
|
|
9712
9711
|
*/
|
|
9713
9712
|
SVGElement.prototype.destroyShadows = function () {
|
|
9714
9713
|
(this.shadows || []).forEach(function (shadow) {
|
|
@@ -9948,8 +9947,7 @@
|
|
|
9948
9947
|
bBox.height = height = ({
|
|
9949
9948
|
'11px,17': 14,
|
|
9950
9949
|
'13px,20': 16
|
|
9951
|
-
}[
|
|
9952
|
-
styles.fontSize + ',' + Math.round(height)] ||
|
|
9950
|
+
}[(fontSize || '') + "," + Math.round(height)] ||
|
|
9953
9951
|
height);
|
|
9954
9952
|
}
|
|
9955
9953
|
// Adjust for rotated text
|
|
@@ -10628,12 +10626,13 @@
|
|
|
10628
10626
|
* @function Highcharts.SVGElement#translate
|
|
10629
10627
|
*
|
|
10630
10628
|
* @param {number} x
|
|
10631
|
-
*
|
|
10629
|
+
* The x value.
|
|
10632
10630
|
*
|
|
10633
10631
|
* @param {number} y
|
|
10634
|
-
*
|
|
10632
|
+
* The y value.
|
|
10635
10633
|
*
|
|
10636
10634
|
* @return {Highcharts.SVGElement}
|
|
10635
|
+
* Translated element.
|
|
10637
10636
|
*/
|
|
10638
10637
|
SVGElement.prototype.translate = function (x, y) {
|
|
10639
10638
|
return this.attr({
|
|
@@ -10727,7 +10726,6 @@
|
|
|
10727
10726
|
*
|
|
10728
10727
|
* @param {Highcharts.SVGDOMElement} element
|
|
10729
10728
|
*
|
|
10730
|
-
* @return {void}
|
|
10731
10729
|
*/
|
|
10732
10730
|
SVGElement.prototype.visibilitySetter = function (value, key, element) {
|
|
10733
10731
|
// IE9-11 doesn't handle visibilty:inherit well, so we remove the
|
|
@@ -10743,10 +10741,6 @@
|
|
|
10743
10741
|
/**
|
|
10744
10742
|
* @private
|
|
10745
10743
|
* @function Highcharts.SVGElement#xGetter
|
|
10746
|
-
*
|
|
10747
|
-
* @param {string} key
|
|
10748
|
-
*
|
|
10749
|
-
* @return {number|string|null}
|
|
10750
10744
|
*/
|
|
10751
10745
|
SVGElement.prototype.xGetter = function (key) {
|
|
10752
10746
|
if (this.element.nodeName === 'circle') {
|
|
@@ -10762,9 +10756,6 @@
|
|
|
10762
10756
|
/**
|
|
10763
10757
|
* @private
|
|
10764
10758
|
* @function Highcharts.SVGElement#zIndexSetter
|
|
10765
|
-
* @param {number} [value]
|
|
10766
|
-
* @param {string} [key]
|
|
10767
|
-
* @return {boolean}
|
|
10768
10759
|
*/
|
|
10769
10760
|
SVGElement.prototype.zIndexSetter = function (value, key) {
|
|
10770
10761
|
var renderer = this.renderer,
|
|
@@ -11249,7 +11240,8 @@
|
|
|
11249
11240
|
}
|
|
11250
11241
|
});
|
|
11251
11242
|
this.text.css(textStyles_1);
|
|
11252
|
-
var isWidth = 'width' in textStyles_1, isFontStyle = ('fontSize' in textStyles_1 ||
|
|
11243
|
+
var isWidth = 'width' in textStyles_1, isFontStyle = ('fontSize' in textStyles_1 ||
|
|
11244
|
+
'fontWeight' in textStyles_1);
|
|
11253
11245
|
// Update existing text, box (#9400, #12163)
|
|
11254
11246
|
if (isFontStyle) {
|
|
11255
11247
|
this.updateTextPadding();
|
|
@@ -11419,13 +11411,15 @@
|
|
|
11419
11411
|
this.renderer.symbol(this.symbolKey) :
|
|
11420
11412
|
this.renderer.rect();
|
|
11421
11413
|
box.addClass(// Don't use label className for buttons
|
|
11422
|
-
(this.className === 'button' ?
|
|
11423
|
-
|
|
11414
|
+
(this.className === 'button' ?
|
|
11415
|
+
'' : 'highcharts-label-box') +
|
|
11416
|
+
(this.className ?
|
|
11417
|
+
' highcharts-' + this.className + '-box' : ''));
|
|
11424
11418
|
box.add(this);
|
|
11425
11419
|
}
|
|
11426
11420
|
crispAdjust = this.getCrispAdjust();
|
|
11427
11421
|
attribs.x = crispAdjust;
|
|
11428
|
-
attribs.y = (this.baseline ? -this.baselineOffset : 0) + crispAdjust;
|
|
11422
|
+
attribs.y = ((this.baseline ? -this.baselineOffset : 0) + crispAdjust);
|
|
11429
11423
|
// Apply the box attributes
|
|
11430
11424
|
attribs.width = Math.round(this.width);
|
|
11431
11425
|
attribs.height = Math.round(this.height);
|
|
@@ -11448,8 +11442,7 @@
|
|
|
11448
11442
|
if (defined(this.widthSetting) &&
|
|
11449
11443
|
this.bBox &&
|
|
11450
11444
|
(this.textAlign === 'center' || this.textAlign === 'right')) {
|
|
11451
|
-
textX += { center: 0.5, right: 1 }[this.textAlign] *
|
|
11452
|
-
(this.widthSetting - this.bBox.width);
|
|
11445
|
+
textX += { center: 0.5, right: 1 }[this.textAlign] * (this.widthSetting - this.bBox.width);
|
|
11453
11446
|
}
|
|
11454
11447
|
// update if anything changed
|
|
11455
11448
|
if (textX !== text.x || textY !== text.y) {
|
|
@@ -11477,7 +11470,9 @@
|
|
|
11477
11470
|
padding);
|
|
11478
11471
|
var paddingRight = pick(this.paddingRight,
|
|
11479
11472
|
padding);
|
|
11480
|
-
return (this.widthSetting || this.bBox.width || 0) +
|
|
11473
|
+
return ((this.widthSetting || this.bBox.width || 0) +
|
|
11474
|
+
paddingLeft +
|
|
11475
|
+
paddingRight);
|
|
11481
11476
|
};
|
|
11482
11477
|
SVGLabel.prototype.xSetter = function (value) {
|
|
11483
11478
|
this.x = value; // for animation getter
|
|
@@ -11498,7 +11493,12 @@
|
|
|
11498
11493
|
* Static Properties
|
|
11499
11494
|
*
|
|
11500
11495
|
* */
|
|
11501
|
-
SVGLabel.emptyBBox = {
|
|
11496
|
+
SVGLabel.emptyBBox = {
|
|
11497
|
+
width: 0,
|
|
11498
|
+
height: 0,
|
|
11499
|
+
x: 0,
|
|
11500
|
+
y: 0
|
|
11501
|
+
};
|
|
11502
11502
|
/**
|
|
11503
11503
|
* For labels, these CSS properties are applied to the `text` node directly.
|
|
11504
11504
|
*
|
|
@@ -11861,7 +11861,6 @@
|
|
|
11861
11861
|
*
|
|
11862
11862
|
* @private
|
|
11863
11863
|
*
|
|
11864
|
-
* @return {void}
|
|
11865
11864
|
*/
|
|
11866
11865
|
TextBuilder.prototype.modifyDOM = function () {
|
|
11867
11866
|
var _this = this;
|
|
@@ -12005,7 +12004,7 @@
|
|
|
12005
12004
|
TextBuilder.prototype.getLineHeight = function (node) {
|
|
12006
12005
|
var fontSizeStyle;
|
|
12007
12006
|
// If the node is a text node, use its parent
|
|
12008
|
-
var element = node.nodeType === win.Node.TEXT_NODE ?
|
|
12007
|
+
var element = (node.nodeType === win.Node.TEXT_NODE) ?
|
|
12009
12008
|
node.parentElement :
|
|
12010
12009
|
node;
|
|
12011
12010
|
if (!this.renderer.styledMode) {
|
|
@@ -12027,22 +12026,23 @@
|
|
|
12027
12026
|
*
|
|
12028
12027
|
* @param {ASTNode[]} nodes The AST nodes
|
|
12029
12028
|
*
|
|
12030
|
-
* @return {void}
|
|
12031
12029
|
*/
|
|
12032
12030
|
TextBuilder.prototype.modifyTree = function (nodes) {
|
|
12033
12031
|
var _this = this;
|
|
12034
12032
|
var modifyChild = function (node,
|
|
12035
12033
|
i) {
|
|
12036
|
-
var
|
|
12037
|
-
|
|
12038
|
-
|
|
12034
|
+
var _a = node.attributes,
|
|
12035
|
+
attributes = _a === void 0 ? {} : _a,
|
|
12036
|
+
children = node.children,
|
|
12037
|
+
tagName = node.tagName,
|
|
12038
|
+
styledMode = _this.renderer.styledMode;
|
|
12039
12039
|
// Apply styling to text tags
|
|
12040
12040
|
if (tagName === 'b' || tagName === 'strong') {
|
|
12041
12041
|
if (styledMode) {
|
|
12042
12042
|
attributes['class'] = 'highcharts-strong'; // eslint-disable-line dot-notation
|
|
12043
12043
|
}
|
|
12044
12044
|
else {
|
|
12045
|
-
attributes.style = 'font-weight:bold;' + (attributes.style || '');
|
|
12045
|
+
attributes.style = ('font-weight:bold;' + (attributes.style || ''));
|
|
12046
12046
|
}
|
|
12047
12047
|
}
|
|
12048
12048
|
else if (tagName === 'i' || tagName === 'em') {
|
|
@@ -12050,13 +12050,14 @@
|
|
|
12050
12050
|
attributes['class'] = 'highcharts-emphasized'; // eslint-disable-line dot-notation
|
|
12051
12051
|
}
|
|
12052
12052
|
else {
|
|
12053
|
-
attributes.style = 'font-style:italic;' + (attributes.style || '');
|
|
12053
|
+
attributes.style = ('font-style:italic;' + (attributes.style || ''));
|
|
12054
12054
|
}
|
|
12055
12055
|
}
|
|
12056
12056
|
// Modify attributes
|
|
12057
12057
|
if (isString(attributes.style)) {
|
|
12058
12058
|
attributes.style = attributes.style.replace(/(;| |^)color([ :])/, '$1fill$2');
|
|
12059
12059
|
}
|
|
12060
|
+
// Handle breaks
|
|
12060
12061
|
if (tagName === 'br') {
|
|
12061
12062
|
attributes['class'] = 'highcharts-br'; // eslint-disable-line dot-notation
|
|
12062
12063
|
node.textContent = '\u200B'; // zero-width space
|
|
@@ -12066,14 +12067,23 @@
|
|
|
12066
12067
|
nextNode.textContent =
|
|
12067
12068
|
nextNode.textContent.replace(/^ +/gm, '');
|
|
12068
12069
|
}
|
|
12070
|
+
// If an anchor has direct text node children, the text is unable to
|
|
12071
|
+
// wrap because there is no `getSubStringLength` function on the
|
|
12072
|
+
// element. Therefore we need to wrap the child text node or nodes
|
|
12073
|
+
// in a tspan. #16173.
|
|
12074
|
+
}
|
|
12075
|
+
else if (tagName === 'a' &&
|
|
12076
|
+
children &&
|
|
12077
|
+
children.some(function (child) { return child.tagName === '#text'; })) {
|
|
12078
|
+
node.children = [{ children: children, tagName: 'tspan' }];
|
|
12069
12079
|
}
|
|
12070
12080
|
if (tagName !== '#text' && tagName !== 'a') {
|
|
12071
12081
|
node.tagName = 'tspan';
|
|
12072
12082
|
}
|
|
12073
12083
|
node.attributes = attributes;
|
|
12074
12084
|
// Recurse
|
|
12075
|
-
if (
|
|
12076
|
-
|
|
12085
|
+
if (children) {
|
|
12086
|
+
children
|
|
12077
12087
|
.filter(function (c) { return c.tagName !== '#text'; })
|
|
12078
12088
|
.forEach(modifyChild);
|
|
12079
12089
|
}
|
|
@@ -12410,7 +12420,7 @@
|
|
|
12410
12420
|
this.url = this.getReferenceURL();
|
|
12411
12421
|
// Add description
|
|
12412
12422
|
var desc = this.createElement('desc').add();
|
|
12413
|
-
desc.element.appendChild(doc.createTextNode('Created with Highcharts 9.3.
|
|
12423
|
+
desc.element.appendChild(doc.createTextNode('Created with Highcharts 9.3.2'));
|
|
12414
12424
|
renderer.defs = this.createElement('defs').add();
|
|
12415
12425
|
renderer.allowHTML = allowHTML;
|
|
12416
12426
|
renderer.forExport = forExport;
|
|
@@ -12602,6 +12612,7 @@
|
|
|
12602
12612
|
* @function Highcharts.SVGRenderer#destroy
|
|
12603
12613
|
*
|
|
12604
12614
|
* @return {null}
|
|
12615
|
+
* Pass through value.
|
|
12605
12616
|
*/
|
|
12606
12617
|
SVGRenderer.prototype.destroy = function () {
|
|
12607
12618
|
var renderer = this,
|
|
@@ -13278,6 +13289,7 @@
|
|
|
13278
13289
|
* Additional options, depending on the actual symbol drawn.
|
|
13279
13290
|
*
|
|
13280
13291
|
* @return {Highcharts.SVGElement}
|
|
13292
|
+
* SVG symbol.
|
|
13281
13293
|
*/
|
|
13282
13294
|
SVGRenderer.prototype.symbol = function (symbol, x, y, width, height, options) {
|
|
13283
13295
|
var ren = this,
|
|
@@ -13507,8 +13519,8 @@
|
|
|
13507
13519
|
parentVal = element.getAttribute(key);
|
|
13508
13520
|
for (var i = 0, tspan = void 0; i < tspans.length; i++) {
|
|
13509
13521
|
tspan = tspans[i];
|
|
13510
|
-
// If the x values are equal, the tspan represents a
|
|
13511
|
-
//
|
|
13522
|
+
// If the x values are equal, the tspan represents a line
|
|
13523
|
+
// break
|
|
13512
13524
|
if (tspan.getAttribute(key) === parentVal) {
|
|
13513
13525
|
tspan.setAttribute(key, value);
|
|
13514
13526
|
}
|
|
@@ -13572,14 +13584,6 @@
|
|
|
13572
13584
|
*
|
|
13573
13585
|
* @private
|
|
13574
13586
|
* @function Highcharts.SVGRenderer#rotCorr
|
|
13575
|
-
*
|
|
13576
|
-
* @param {number} baseline
|
|
13577
|
-
*
|
|
13578
|
-
* @param {number} rotation
|
|
13579
|
-
*
|
|
13580
|
-
* @param {boolean} [alterY]
|
|
13581
|
-
*
|
|
13582
|
-
* @param {Highcharts.PositionObject}
|
|
13583
13587
|
*/
|
|
13584
13588
|
SVGRenderer.prototype.rotCorr = function (baseline, rotation, alterY) {
|
|
13585
13589
|
var y = baseline;
|
|
@@ -13883,7 +13887,6 @@
|
|
|
13883
13887
|
*
|
|
13884
13888
|
* @private
|
|
13885
13889
|
* @function Highcharts.SVGRenderer#alignElements
|
|
13886
|
-
* @return {void}
|
|
13887
13890
|
*/
|
|
13888
13891
|
SVGRenderer.prototype.alignElements = function () {
|
|
13889
13892
|
this.alignedObjects.forEach(function (el) { return el.align(); });
|
|
@@ -14213,10 +14216,12 @@
|
|
|
14213
14216
|
HTMLElement.composedClasses.push(SVGElementClass);
|
|
14214
14217
|
var htmlElementProto = HTMLElement.prototype,
|
|
14215
14218
|
svgElementProto = SVGElementClass.prototype;
|
|
14216
|
-
svgElementProto.getSpanCorrection = htmlElementProto
|
|
14219
|
+
svgElementProto.getSpanCorrection = htmlElementProto
|
|
14220
|
+
.getSpanCorrection;
|
|
14217
14221
|
svgElementProto.htmlCss = htmlElementProto.htmlCss;
|
|
14218
14222
|
svgElementProto.htmlGetBBox = htmlElementProto.htmlGetBBox;
|
|
14219
|
-
svgElementProto.htmlUpdateTransform = htmlElementProto
|
|
14223
|
+
svgElementProto.htmlUpdateTransform = htmlElementProto
|
|
14224
|
+
.htmlUpdateTransform;
|
|
14220
14225
|
svgElementProto.setSpanRotation = htmlElementProto.setSpanRotation;
|
|
14221
14226
|
}
|
|
14222
14227
|
return SVGElementClass;
|
|
@@ -14510,15 +14515,16 @@
|
|
|
14510
14515
|
* @function Highcharts.SVGRenderer#html
|
|
14511
14516
|
*
|
|
14512
14517
|
* @param {string} str
|
|
14513
|
-
*
|
|
14518
|
+
* The text of (subset) HTML to draw.
|
|
14514
14519
|
*
|
|
14515
14520
|
* @param {number} x
|
|
14516
|
-
*
|
|
14521
|
+
* The x position of the text's lower left corner.
|
|
14517
14522
|
*
|
|
14518
14523
|
* @param {number} y
|
|
14519
|
-
*
|
|
14524
|
+
* The y position of the text's lower left corner.
|
|
14520
14525
|
*
|
|
14521
14526
|
* @return {Highcharts.HTMLDOMElement}
|
|
14527
|
+
* HTML element.
|
|
14522
14528
|
*/
|
|
14523
14529
|
HTMLRenderer.prototype.html = function (str, x, y) {
|
|
14524
14530
|
var wrapper = this.createElement('span'), element = wrapper.element, renderer = wrapper.renderer, isSVG = renderer.isSVG, addSetters = function (gWrapper, style) {
|
|
@@ -14628,8 +14634,7 @@
|
|
|
14628
14634
|
* @private
|
|
14629
14635
|
* @param {*} value
|
|
14630
14636
|
* @param {string} key
|
|
14631
|
-
|
|
14632
|
-
*/
|
|
14637
|
+
*/
|
|
14633
14638
|
function translateSetter(value, key) {
|
|
14634
14639
|
parentGroup[key] = value;
|
|
14635
14640
|
if (key === 'translateX') {
|
|
@@ -14652,7 +14657,9 @@
|
|
|
14652
14657
|
display: parentGroup.display,
|
|
14653
14658
|
opacity: parentGroup.opacity,
|
|
14654
14659
|
cursor: parentGroupStyles.cursor,
|
|
14655
|
-
pointerEvents:
|
|
14660
|
+
pointerEvents: (
|
|
14661
|
+
// #5595
|
|
14662
|
+
parentGroupStyles.pointerEvents),
|
|
14656
14663
|
visibility: parentGroup.visibility
|
|
14657
14664
|
// the top group is appended to container
|
|
14658
14665
|
}, htmlGroup || container);
|
|
@@ -17764,7 +17771,7 @@
|
|
|
17764
17771
|
* @param {boolean} [noLabel=false]
|
|
17765
17772
|
* Whether to disable the label or not. Defaults to false.
|
|
17766
17773
|
*
|
|
17767
|
-
* @param {
|
|
17774
|
+
* @param {Object} [parameters]
|
|
17768
17775
|
* Optional parameters for the tick.
|
|
17769
17776
|
*/
|
|
17770
17777
|
var Tick = /** @class */ (function () {
|
|
@@ -18018,7 +18025,7 @@
|
|
|
18018
18025
|
* @return {Highcharts.PositionObject}
|
|
18019
18026
|
* The tick position.
|
|
18020
18027
|
*
|
|
18021
|
-
* @
|
|
18028
|
+
* @emits Highcharts.Tick#event:afterGetPosition
|
|
18022
18029
|
*/
|
|
18023
18030
|
Tick.prototype.getPosition = function (horiz, tickPos, tickmarkOffset, old) {
|
|
18024
18031
|
var axis = this.axis,
|
|
@@ -18058,9 +18065,7 @@
|
|
|
18058
18065
|
};
|
|
18059
18066
|
/**
|
|
18060
18067
|
* Get the x, y position of the tick label
|
|
18061
|
-
*
|
|
18062
18068
|
* @private
|
|
18063
|
-
* @return {Highcharts.PositionObject}
|
|
18064
18069
|
*/
|
|
18065
18070
|
Tick.prototype.getLabelPosition = function (x, y, label, horiz, labelOptions, tickmarkOffset, index, step) {
|
|
18066
18071
|
var axis = this.axis,
|
|
@@ -18710,8 +18715,8 @@
|
|
|
18710
18715
|
* @param {AxisOptions} userOptions
|
|
18711
18716
|
* Axis options.
|
|
18712
18717
|
*
|
|
18713
|
-
* @
|
|
18714
|
-
* @
|
|
18718
|
+
* @emits Highcharts.Axis#event:afterInit
|
|
18719
|
+
* @emits Highcharts.Axis#event:init
|
|
18715
18720
|
*/
|
|
18716
18721
|
Axis.prototype.init = function (chart, userOptions) {
|
|
18717
18722
|
var isXAxis = userOptions.isX,
|
|
@@ -18747,7 +18752,8 @@
|
|
|
18747
18752
|
*/
|
|
18748
18753
|
axis.coll = axis.coll || (isXAxis ? 'xAxis' : 'yAxis');
|
|
18749
18754
|
fireEvent(this, 'init', { userOptions: userOptions });
|
|
18750
|
-
|
|
18755
|
+
// Needed in setOptions
|
|
18756
|
+
axis.opposite = pick(userOptions.opposite, axis.opposite);
|
|
18751
18757
|
/**
|
|
18752
18758
|
* The side on which the axis is rendered. 0 is top, 1 is right, 2
|
|
18753
18759
|
* is bottom and 3 is left.
|
|
@@ -18912,7 +18918,7 @@
|
|
|
18912
18918
|
* @param {Highcharts.AxisOptions} userOptions
|
|
18913
18919
|
* Axis options.
|
|
18914
18920
|
*
|
|
18915
|
-
* @
|
|
18921
|
+
* @emits Highcharts.Axis#event:afterSetOptions
|
|
18916
18922
|
*/
|
|
18917
18923
|
Axis.prototype.setOptions = function (userOptions) {
|
|
18918
18924
|
this.options = merge(AxisDefaults.defaultXAxisOptions, (this.coll === 'yAxis') && AxisDefaults.defaultYAxisOptions, [
|
|
@@ -19005,8 +19011,8 @@
|
|
|
19005
19011
|
* @private
|
|
19006
19012
|
* @function Highcharts.Axis#getSeriesExtremes
|
|
19007
19013
|
*
|
|
19008
|
-
* @
|
|
19009
|
-
* @
|
|
19014
|
+
* @emits Highcharts.Axis#event:afterGetSeriesExtremes
|
|
19015
|
+
* @emits Highcharts.Axis#event:getSeriesExtremes
|
|
19010
19016
|
*/
|
|
19011
19017
|
Axis.prototype.getSeriesExtremes = function () {
|
|
19012
19018
|
var axis = this,
|
|
@@ -19104,26 +19110,6 @@
|
|
|
19104
19110
|
*
|
|
19105
19111
|
* @private
|
|
19106
19112
|
* @function Highcharts.Axis#translate
|
|
19107
|
-
*
|
|
19108
|
-
* @param {number} val
|
|
19109
|
-
* TO-DO: parameter description
|
|
19110
|
-
*
|
|
19111
|
-
* @param {boolean|null} [backwards]
|
|
19112
|
-
* TO-DO: parameter description
|
|
19113
|
-
*
|
|
19114
|
-
* @param {boolean|null} [cvsCoord]
|
|
19115
|
-
* TO-DO: parameter description
|
|
19116
|
-
*
|
|
19117
|
-
* @param {boolean|null} [old]
|
|
19118
|
-
* TO-DO: parameter description
|
|
19119
|
-
*
|
|
19120
|
-
* @param {boolean} [handleLog]
|
|
19121
|
-
* TO-DO: parameter description
|
|
19122
|
-
*
|
|
19123
|
-
* @param {number} [pointPlacement]
|
|
19124
|
-
* TO-DO: parameter description
|
|
19125
|
-
*
|
|
19126
|
-
* @return {number|undefined}
|
|
19127
19113
|
*/
|
|
19128
19114
|
Axis.prototype.translate = function (val, backwards, cvsCoord, old, handleLog, pointPlacement) {
|
|
19129
19115
|
var axis = (this.linkedParent || this), // #1417
|
|
@@ -19357,6 +19343,7 @@
|
|
|
19357
19343
|
* @function Highcharts.Axis#getMinorTickInterval
|
|
19358
19344
|
*
|
|
19359
19345
|
* @return {number|"auto"|null}
|
|
19346
|
+
* Legacy option
|
|
19360
19347
|
*/
|
|
19361
19348
|
Axis.prototype.getMinorTickInterval = function () {
|
|
19362
19349
|
var options = this.options;
|
|
@@ -19466,7 +19453,8 @@
|
|
|
19466
19453
|
if (xData.length > 1) {
|
|
19467
19454
|
for (i = loopLength; i > 0; i--) {
|
|
19468
19455
|
distance = xData[i] - xData[i - 1];
|
|
19469
|
-
if (!closestDataRange ||
|
|
19456
|
+
if (!closestDataRange ||
|
|
19457
|
+
distance < closestDataRange) {
|
|
19470
19458
|
closestDataRange = distance;
|
|
19471
19459
|
}
|
|
19472
19460
|
}
|
|
@@ -19521,8 +19509,6 @@
|
|
|
19521
19509
|
*
|
|
19522
19510
|
* @private
|
|
19523
19511
|
* @function Highcharts.Axis#getClosest
|
|
19524
|
-
*
|
|
19525
|
-
* @return {number}
|
|
19526
19512
|
*/
|
|
19527
19513
|
Axis.prototype.getClosest = function () {
|
|
19528
19514
|
var ret;
|
|
@@ -19641,7 +19627,7 @@
|
|
|
19641
19627
|
* @private
|
|
19642
19628
|
* @function Highcharts.Axis#setAxisTranslation
|
|
19643
19629
|
*
|
|
19644
|
-
* @
|
|
19630
|
+
* @emits Highcharts.Axis#event:afterSetAxisTranslation
|
|
19645
19631
|
*/
|
|
19646
19632
|
Axis.prototype.setAxisTranslation = function () {
|
|
19647
19633
|
var axis = this,
|
|
@@ -19677,7 +19663,9 @@
|
|
|
19677
19663
|
if (!axis.single || hasCategories) {
|
|
19678
19664
|
// TODO: series should internally set x- and y-
|
|
19679
19665
|
// pointPlacement to simplify this logic.
|
|
19680
|
-
var isPointPlacementAxis = series.is('xrange') ?
|
|
19666
|
+
var isPointPlacementAxis = series.is('xrange') ?
|
|
19667
|
+
!isXAxis :
|
|
19668
|
+
isXAxis;
|
|
19681
19669
|
// minPointOffset is the value padding to the left of
|
|
19682
19670
|
// the axis in order to make room for points with a
|
|
19683
19671
|
// pointRange, typically columns. When the
|
|
@@ -19696,7 +19684,7 @@
|
|
|
19696
19684
|
});
|
|
19697
19685
|
}
|
|
19698
19686
|
// Record minPointOffset and pointRangePadding
|
|
19699
|
-
ordinalCorrection = axis.ordinal && axis.ordinal.slope && closestPointRange ?
|
|
19687
|
+
ordinalCorrection = (axis.ordinal && axis.ordinal.slope && closestPointRange) ?
|
|
19700
19688
|
axis.ordinal.slope / closestPointRange :
|
|
19701
19689
|
1; // #988, #1853
|
|
19702
19690
|
axis.minPointOffset = minPointOffset =
|
|
@@ -19725,8 +19713,6 @@
|
|
|
19725
19713
|
/**
|
|
19726
19714
|
* @private
|
|
19727
19715
|
* @function Highcharts.Axis#minFromRange
|
|
19728
|
-
*
|
|
19729
|
-
* @return {number|undefined}
|
|
19730
19716
|
*/
|
|
19731
19717
|
Axis.prototype.minFromRange = function () {
|
|
19732
19718
|
var axis = this;
|
|
@@ -19742,7 +19728,7 @@
|
|
|
19742
19728
|
* @param {boolean} secondPass
|
|
19743
19729
|
* TO-DO: parameter description
|
|
19744
19730
|
*
|
|
19745
|
-
* @
|
|
19731
|
+
* @emits Highcharts.Axis#event:foundExtremes
|
|
19746
19732
|
*/
|
|
19747
19733
|
Axis.prototype.setTickInterval = function (secondPass) {
|
|
19748
19734
|
var axis = this,
|
|
@@ -19939,12 +19925,13 @@
|
|
|
19939
19925
|
// First process all series assigned to that axis.
|
|
19940
19926
|
axis.series.forEach(function (series) {
|
|
19941
19927
|
// Allows filtering out points outside the plot area.
|
|
19942
|
-
series.forceCrop = series.forceCropping &&
|
|
19928
|
+
series.forceCrop = (series.forceCropping &&
|
|
19929
|
+
series.forceCropping());
|
|
19943
19930
|
series.processData(hasExtemesChanged_1);
|
|
19944
19931
|
});
|
|
19945
|
-
// Then apply grouping if needed.
|
|
19946
|
-
//
|
|
19947
|
-
//
|
|
19932
|
+
// Then apply grouping if needed. The hasExtemesChanged helps to
|
|
19933
|
+
// decide if the data grouping should be skipped in the further
|
|
19934
|
+
// calculations #16319.
|
|
19948
19935
|
fireEvent(this, 'postProcessData', { hasExtemesChanged: hasExtemesChanged_1 });
|
|
19949
19936
|
}
|
|
19950
19937
|
// set the translation factor used in translate function
|
|
@@ -19989,7 +19976,7 @@
|
|
|
19989
19976
|
* @private
|
|
19990
19977
|
* @function Highcharts.Axis#setTickPositions
|
|
19991
19978
|
*
|
|
19992
|
-
* @
|
|
19979
|
+
* @emits Highcharts.Axis#event:afterSetTickPositions
|
|
19993
19980
|
*/
|
|
19994
19981
|
Axis.prototype.setTickPositions = function () {
|
|
19995
19982
|
var axis = this,
|
|
@@ -19998,8 +19985,8 @@
|
|
|
19998
19985
|
minorTickIntervalOption = this.getMinorTickInterval(),
|
|
19999
19986
|
hasVerticalPanning = this.hasVerticalPanning(),
|
|
20000
19987
|
isColorAxis = this.coll === 'colorAxis',
|
|
20001
|
-
startOnTick = (isColorAxis || !hasVerticalPanning) && options.startOnTick,
|
|
20002
|
-
endOnTick = (isColorAxis || !hasVerticalPanning) && options.endOnTick;
|
|
19988
|
+
startOnTick = ((isColorAxis || !hasVerticalPanning) && options.startOnTick),
|
|
19989
|
+
endOnTick = ((isColorAxis || !hasVerticalPanning) && options.endOnTick);
|
|
20003
19990
|
var tickPositions,
|
|
20004
19991
|
tickPositioner = options.tickPositioner;
|
|
20005
19992
|
// Set the tickmarkOffset
|
|
@@ -20246,7 +20233,9 @@
|
|
|
20246
20233
|
axis.softThreshold ? 0 : null);
|
|
20247
20234
|
var len,
|
|
20248
20235
|
i;
|
|
20249
|
-
if (axis.hasData() &&
|
|
20236
|
+
if (axis.hasData() &&
|
|
20237
|
+
isNumber(axis.min) &&
|
|
20238
|
+
isNumber(axis.max)) { // #14769
|
|
20250
20239
|
if (currentTickAmount < tickAmount) {
|
|
20251
20240
|
while (tickPositions.length < tickAmount) {
|
|
20252
20241
|
// Extend evenly for both sides unless we're on the
|
|
@@ -20298,7 +20287,7 @@
|
|
|
20298
20287
|
* @private
|
|
20299
20288
|
* @function Highcharts.Axis#setScale
|
|
20300
20289
|
*
|
|
20301
|
-
* @
|
|
20290
|
+
* @emits Highcharts.Axis#event:afterSetScale
|
|
20302
20291
|
*/
|
|
20303
20292
|
Axis.prototype.setScale = function () {
|
|
20304
20293
|
var axis = this;
|
|
@@ -20386,7 +20375,7 @@
|
|
|
20386
20375
|
* @param {*} [eventArguments]
|
|
20387
20376
|
* Arguments to be accessed in event handler.
|
|
20388
20377
|
*
|
|
20389
|
-
* @
|
|
20378
|
+
* @emits Highcharts.Axis#event:setExtremes
|
|
20390
20379
|
*/
|
|
20391
20380
|
Axis.prototype.setExtremes = function (newMin, newMax, redraw, animation, eventArguments) {
|
|
20392
20381
|
var axis = this,
|
|
@@ -20416,14 +20405,6 @@
|
|
|
20416
20405
|
*
|
|
20417
20406
|
* @private
|
|
20418
20407
|
* @function Highcharts.Axis#zoom
|
|
20419
|
-
*
|
|
20420
|
-
* @param {number} newMin
|
|
20421
|
-
* TO-DO: parameter description
|
|
20422
|
-
*
|
|
20423
|
-
* @param {number} newMax
|
|
20424
|
-
* TO-DO: parameter description
|
|
20425
|
-
*
|
|
20426
|
-
* @return {boolean}
|
|
20427
20408
|
*/
|
|
20428
20409
|
Axis.prototype.zoom = function (newMin, newMax) {
|
|
20429
20410
|
var axis = this,
|
|
@@ -20634,8 +20615,6 @@
|
|
|
20634
20615
|
*
|
|
20635
20616
|
* @private
|
|
20636
20617
|
* @function Highcharts.Axis#labelMetrics
|
|
20637
|
-
*
|
|
20638
|
-
* @return {Highcharts.FontMetricsObject}
|
|
20639
20618
|
*/
|
|
20640
20619
|
Axis.prototype.labelMetrics = function () {
|
|
20641
20620
|
var index = this.tickPositions && this.tickPositions[0] || 0;
|
|
@@ -20648,8 +20627,6 @@
|
|
|
20648
20627
|
*
|
|
20649
20628
|
* @private
|
|
20650
20629
|
* @function Highcharts.Axis#unsquish
|
|
20651
|
-
*
|
|
20652
|
-
* @return {number}
|
|
20653
20630
|
*/
|
|
20654
20631
|
Axis.prototype.unsquish = function () {
|
|
20655
20632
|
var labelOptions = this.options.labels,
|
|
@@ -21011,7 +20988,7 @@
|
|
|
21011
20988
|
* @private
|
|
21012
20989
|
* @function Highcharts.Axis#getOffset
|
|
21013
20990
|
*
|
|
21014
|
-
* @
|
|
20991
|
+
* @emits Highcharts.Axis#event:afterGetOffset
|
|
21015
20992
|
*/
|
|
21016
20993
|
Axis.prototype.getOffset = function () {
|
|
21017
20994
|
var _this = this;
|
|
@@ -21338,7 +21315,7 @@
|
|
|
21338
21315
|
* @private
|
|
21339
21316
|
* @function Highcharts.Axis#render
|
|
21340
21317
|
*
|
|
21341
|
-
* @
|
|
21318
|
+
* @emits Highcharts.Axis#event:afterRender
|
|
21342
21319
|
*/
|
|
21343
21320
|
Axis.prototype.render = function () {
|
|
21344
21321
|
var axis = this,
|
|
@@ -21429,7 +21406,8 @@
|
|
|
21429
21406
|
(options.plotLines || [])
|
|
21430
21407
|
.concat(options.plotBands || [])
|
|
21431
21408
|
.forEach(function (plotLineOptions) {
|
|
21432
|
-
axis
|
|
21409
|
+
axis
|
|
21410
|
+
.addPlotBandOrLine(plotLineOptions);
|
|
21433
21411
|
});
|
|
21434
21412
|
}
|
|
21435
21413
|
} // end if hasData
|
|
@@ -21529,8 +21507,6 @@
|
|
|
21529
21507
|
*
|
|
21530
21508
|
* @private
|
|
21531
21509
|
* @function Highcharts.Axis#getKeepProps
|
|
21532
|
-
*
|
|
21533
|
-
* @return {Array<string>}
|
|
21534
21510
|
*/
|
|
21535
21511
|
Axis.prototype.getKeepProps = function () {
|
|
21536
21512
|
return (this.keepProps || Axis.keepProps);
|
|
@@ -21596,8 +21572,8 @@
|
|
|
21596
21572
|
* @param {Highcharts.Point} [point]
|
|
21597
21573
|
* The Point object if the crosshair snaps to points.
|
|
21598
21574
|
*
|
|
21599
|
-
* @
|
|
21600
|
-
* @
|
|
21575
|
+
* @emits Highcharts.Axis#event:afterDrawCrosshair
|
|
21576
|
+
* @emits Highcharts.Axis#event:drawCrosshair
|
|
21601
21577
|
*/
|
|
21602
21578
|
Axis.prototype.drawCrosshair = function (e, point) {
|
|
21603
21579
|
var options = this.crosshair,
|
|
@@ -21724,8 +21700,6 @@
|
|
|
21724
21700
|
*
|
|
21725
21701
|
* @private
|
|
21726
21702
|
* @function Highcharts.Axis#hasVerticalPanning
|
|
21727
|
-
*
|
|
21728
|
-
* @return {boolean}
|
|
21729
21703
|
*/
|
|
21730
21704
|
Axis.prototype.hasVerticalPanning = function () {
|
|
21731
21705
|
var panningOptions = this.chart.options.chart.panning;
|
|
@@ -21741,8 +21715,6 @@
|
|
|
21741
21715
|
*
|
|
21742
21716
|
* @param {unknown} value
|
|
21743
21717
|
* The axis value
|
|
21744
|
-
*
|
|
21745
|
-
* @return {boolean}
|
|
21746
21718
|
*/
|
|
21747
21719
|
Axis.prototype.validatePositiveValue = function (value) {
|
|
21748
21720
|
return isNumber(value) && value > 0;
|
|
@@ -21852,7 +21824,14 @@
|
|
|
21852
21824
|
Axis.defaultOptions = AxisDefaults.defaultXAxisOptions;
|
|
21853
21825
|
// Properties to survive after destroy, needed for Axis.update (#4317,
|
|
21854
21826
|
// #5773, #5881).
|
|
21855
|
-
Axis.keepProps = [
|
|
21827
|
+
Axis.keepProps = [
|
|
21828
|
+
'extKey',
|
|
21829
|
+
'hcEvents',
|
|
21830
|
+
'names',
|
|
21831
|
+
'series',
|
|
21832
|
+
'userMax',
|
|
21833
|
+
'userMin'
|
|
21834
|
+
];
|
|
21856
21835
|
return Axis;
|
|
21857
21836
|
}());
|
|
21858
21837
|
/* *
|
|
@@ -22153,19 +22132,12 @@
|
|
|
22153
22132
|
*
|
|
22154
22133
|
* @private
|
|
22155
22134
|
* @function Highcharts.Axis#getTimeTicks
|
|
22156
|
-
*
|
|
22157
22135
|
* @param {Highcharts.TimeNormalizeObject} normalizedInterval
|
|
22158
22136
|
* The interval in axis values (ms) and thecount.
|
|
22159
|
-
*
|
|
22160
22137
|
* @param {number} min
|
|
22161
22138
|
* The minimum in axis values.
|
|
22162
|
-
*
|
|
22163
22139
|
* @param {number} max
|
|
22164
22140
|
* The maximum in axis values.
|
|
22165
|
-
*
|
|
22166
|
-
* @param {number} startOfWeek
|
|
22167
|
-
*
|
|
22168
|
-
* @return {Highcharts.AxisTickPositionsArray}
|
|
22169
22141
|
*/
|
|
22170
22142
|
function getTimeTicks() {
|
|
22171
22143
|
return this.chart.time.getTimeTicks.apply(this.chart.time, arguments);
|
|
@@ -22215,8 +22187,10 @@
|
|
|
22215
22187
|
*/
|
|
22216
22188
|
Additions.prototype.normalizeTimeTickInterval = function (tickInterval, unitsOption) {
|
|
22217
22189
|
var units = (unitsOption || [[
|
|
22190
|
+
// unit name
|
|
22218
22191
|
'millisecond',
|
|
22219
|
-
|
|
22192
|
+
// allowed multiples
|
|
22193
|
+
[1, 2, 5, 10, 20, 25, 50, 100, 200, 500]
|
|
22220
22194
|
],
|
|
22221
22195
|
[
|
|
22222
22196
|
'second',
|
|
@@ -22289,12 +22263,6 @@
|
|
|
22289
22263
|
* point range on the axis.
|
|
22290
22264
|
*
|
|
22291
22265
|
* @private
|
|
22292
|
-
*
|
|
22293
|
-
* @param {number} x
|
|
22294
|
-
*
|
|
22295
|
-
* @param {Highcharts.Dictionary<string>} dateTimeLabelFormats
|
|
22296
|
-
*
|
|
22297
|
-
* @return {string}
|
|
22298
22266
|
*/
|
|
22299
22267
|
Additions.prototype.getXDateFormat = function (x, dateTimeLabelFormats) {
|
|
22300
22268
|
var axis = this.axis;
|
|
@@ -22721,13 +22689,8 @@
|
|
|
22721
22689
|
*
|
|
22722
22690
|
* @private
|
|
22723
22691
|
* @function Highcharts.Axis#addPlotBandOrLine
|
|
22724
|
-
*
|
|
22725
22692
|
* @param {Highcharts.AxisPlotBandsOptions|Highcharts.AxisPlotLinesOptions} options
|
|
22726
22693
|
* The plotBand or plotLine configuration object.
|
|
22727
|
-
*
|
|
22728
|
-
* @param {"plotBands"|"plotLines"} [coll]
|
|
22729
|
-
*
|
|
22730
|
-
* @return {Highcharts.PlotLineOrBand|undefined}
|
|
22731
22694
|
*/
|
|
22732
22695
|
Additions.prototype.addPlotBandOrLine = function (options, coll) {
|
|
22733
22696
|
var _this = this;
|
|
@@ -23870,8 +23833,6 @@
|
|
|
23870
23833
|
*
|
|
23871
23834
|
* @private
|
|
23872
23835
|
* @function Highcharts.Tooltip#bodyFormatter
|
|
23873
|
-
* @param {Array<(Highcharts.Point|Highcharts.Series)>} items
|
|
23874
|
-
* @return {Array<string>}
|
|
23875
23836
|
*/
|
|
23876
23837
|
Tooltip.prototype.bodyFormatter = function (items) {
|
|
23877
23838
|
return items.map(function (item) {
|
|
@@ -23888,7 +23849,7 @@
|
|
|
23888
23849
|
* @function Highcharts.Tooltip#cleanSplit
|
|
23889
23850
|
*
|
|
23890
23851
|
* @param {boolean} [force]
|
|
23891
|
-
*
|
|
23852
|
+
* Force destroy all tooltips.
|
|
23892
23853
|
*/
|
|
23893
23854
|
Tooltip.prototype.cleanSplit = function (force) {
|
|
23894
23855
|
this.chart.series.forEach(function (series) {
|
|
@@ -23908,10 +23869,6 @@
|
|
|
23908
23869
|
* the context here is an object holding point, series, x, y etc.
|
|
23909
23870
|
*
|
|
23910
23871
|
* @function Highcharts.Tooltip#defaultFormatter
|
|
23911
|
-
*
|
|
23912
|
-
* @param {Highcharts.Tooltip} tooltip
|
|
23913
|
-
*
|
|
23914
|
-
* @return {Array<string>}
|
|
23915
23872
|
*/
|
|
23916
23873
|
Tooltip.prototype.defaultFormatter = function (tooltip) {
|
|
23917
23874
|
var items = this.points || splat(this);
|
|
@@ -23951,12 +23908,6 @@
|
|
|
23951
23908
|
*
|
|
23952
23909
|
* @private
|
|
23953
23910
|
* @function Highcharts.Tooltip#getAnchor
|
|
23954
|
-
*
|
|
23955
|
-
* @param {Highcharts.Point|Array<Highcharts.Point>} points
|
|
23956
|
-
*
|
|
23957
|
-
* @param {Highcharts.PointerEventObject} [mouseEvent]
|
|
23958
|
-
*
|
|
23959
|
-
* @return {Array<number>}
|
|
23960
23911
|
*/
|
|
23961
23912
|
Tooltip.prototype.getAnchor = function (points, mouseEvent) {
|
|
23962
23913
|
var chart = this.chart,
|
|
@@ -24001,8 +23952,8 @@
|
|
|
24001
23952
|
plotY += yAxis.pos - plotTop;
|
|
24002
23953
|
}
|
|
24003
23954
|
else { // #14771
|
|
24004
|
-
plotX += plotTop + chart.plotHeight - xAxis.len - xAxis.pos;
|
|
24005
|
-
plotY += plotLeft + chart.plotWidth - yAxis.len - yAxis.pos;
|
|
23955
|
+
plotX += (plotTop + chart.plotHeight - xAxis.len - xAxis.pos);
|
|
23956
|
+
plotY += (plotLeft + chart.plotWidth - yAxis.len - yAxis.pos);
|
|
24006
23957
|
}
|
|
24007
23958
|
}
|
|
24008
23959
|
});
|
|
@@ -24031,6 +23982,7 @@
|
|
|
24031
23982
|
* @function Highcharts.Tooltip#getLabel
|
|
24032
23983
|
*
|
|
24033
23984
|
* @return {Highcharts.SVGElement}
|
|
23985
|
+
* Tooltip label
|
|
24034
23986
|
*/
|
|
24035
23987
|
Tooltip.prototype.getLabel = function () {
|
|
24036
23988
|
var tooltip = this,
|
|
@@ -24041,7 +23993,8 @@
|
|
|
24041
23993
|
' ' + options.className :
|
|
24042
23994
|
'')),
|
|
24043
23995
|
pointerEvents = (options.style.pointerEvents ||
|
|
24044
|
-
(!this.followPointer &&
|
|
23996
|
+
(!this.followPointer &&
|
|
23997
|
+
options.stickOnContact ? 'auto' : 'none')),
|
|
24045
23998
|
onMouseEnter = function () {
|
|
24046
23999
|
tooltip.inContact = true;
|
|
24047
24000
|
}, onMouseLeave = function (e) {
|
|
@@ -24157,14 +24110,6 @@
|
|
|
24157
24110
|
*
|
|
24158
24111
|
* @private
|
|
24159
24112
|
* @function Highcharts.Tooltip#getPosition
|
|
24160
|
-
*
|
|
24161
|
-
* @param {number} boxWidth
|
|
24162
|
-
*
|
|
24163
|
-
* @param {number} boxHeight
|
|
24164
|
-
*
|
|
24165
|
-
* @param {Highcharts.Point} point
|
|
24166
|
-
*
|
|
24167
|
-
* @return {Highcharts.PositionObject}
|
|
24168
24113
|
*/
|
|
24169
24114
|
Tooltip.prototype.getPosition = function (boxWidth, boxHeight, point) {
|
|
24170
24115
|
var chart = this.chart,
|
|
@@ -24536,7 +24481,7 @@
|
|
|
24536
24481
|
pointOrPoints.series &&
|
|
24537
24482
|
pointOrPoints.series.noSharedTooltip);
|
|
24538
24483
|
// get the reference point coordinates (pie charts use tooltipPos)
|
|
24539
|
-
tooltip.followPointer = !tooltip.split && point.series.tooltipOptions.followPointer;
|
|
24484
|
+
tooltip.followPointer = (!tooltip.split && point.series.tooltipOptions.followPointer);
|
|
24540
24485
|
var anchor = tooltip.getAnchor(pointOrPoints,
|
|
24541
24486
|
mouseEvent),
|
|
24542
24487
|
x = anchor[0],
|
|
@@ -24670,9 +24615,10 @@
|
|
|
24670
24615
|
options = tooltip.options,
|
|
24671
24616
|
positioner = tooltip.options.positioner;
|
|
24672
24617
|
// The area which the tooltip should be limited to. Limit to scrollable
|
|
24673
|
-
// plot area if enabled, otherwise limit to the chart container.
|
|
24674
|
-
//
|
|
24675
|
-
var bounds = tooltip.outside &&
|
|
24618
|
+
// plot area if enabled, otherwise limit to the chart container. If
|
|
24619
|
+
// outside is true it should be the whole viewport
|
|
24620
|
+
var bounds = (tooltip.outside &&
|
|
24621
|
+
typeof scrollablePixelsX !== 'number') ?
|
|
24676
24622
|
doc.documentElement.getBoundingClientRect() : {
|
|
24677
24623
|
left: scrollLeft,
|
|
24678
24624
|
right: scrollLeft + chartWidth,
|
|
@@ -24693,7 +24639,7 @@
|
|
|
24693
24639
|
*
|
|
24694
24640
|
* @private
|
|
24695
24641
|
* @param {Highcharts.Point} point The point related to the tooltip
|
|
24696
|
-
* @return {
|
|
24642
|
+
* @return {Object} Returns an object with anchorX and anchorY
|
|
24697
24643
|
*/
|
|
24698
24644
|
function getAnchor(point) {
|
|
24699
24645
|
var isHeader = point.isHeader,
|
|
@@ -24885,13 +24831,14 @@
|
|
|
24885
24831
|
}
|
|
24886
24832
|
return boxes;
|
|
24887
24833
|
}, []);
|
|
24888
|
-
// Realign the tooltips towards the right if there is not enough
|
|
24889
|
-
//
|
|
24834
|
+
// Realign the tooltips towards the right if there is not enough space
|
|
24835
|
+
// to the left and there is space to to the right
|
|
24890
24836
|
if (!positioner && boxes.some(function (box) {
|
|
24891
24837
|
// Always realign if the beginning of a label is outside bounds
|
|
24892
24838
|
var outside = tooltip.outside;
|
|
24893
24839
|
var boxStart = (outside ? chartLeft : 0) + box.anchorX;
|
|
24894
|
-
if (boxStart < bounds.left &&
|
|
24840
|
+
if (boxStart < bounds.left &&
|
|
24841
|
+
boxStart + box.boxWidth < bounds.right) {
|
|
24895
24842
|
return true;
|
|
24896
24843
|
}
|
|
24897
24844
|
// Otherwise, check if there is more space available to the right
|
|
@@ -24929,7 +24876,9 @@
|
|
|
24929
24876
|
if (tooltip.outside && chartLeft + x < boxExtremes.left) {
|
|
24930
24877
|
boxExtremes.left = chartLeft + x;
|
|
24931
24878
|
}
|
|
24932
|
-
if (!isHeader &&
|
|
24879
|
+
if (!isHeader &&
|
|
24880
|
+
tooltip.outside &&
|
|
24881
|
+
boxExtremes.left + boxWidth > boxExtremes.right) {
|
|
24933
24882
|
boxExtremes.right = chartLeft + x;
|
|
24934
24883
|
}
|
|
24935
24884
|
}
|
|
@@ -25063,9 +25012,6 @@
|
|
|
25063
25012
|
*
|
|
25064
25013
|
* @private
|
|
25065
25014
|
* @function Highcharts.Tooltip#tooltipFooterHeaderFormatter
|
|
25066
|
-
* @param {Highcharts.PointLabelObject} labelConfig
|
|
25067
|
-
* @param {boolean} [isFooter]
|
|
25068
|
-
* @return {string}
|
|
25069
25015
|
*/
|
|
25070
25016
|
Tooltip.prototype.tooltipFooterHeaderFormatter = function (labelConfig, isFooter) {
|
|
25071
25017
|
var series = labelConfig.series,
|
|
@@ -25474,7 +25420,9 @@
|
|
|
25474
25420
|
options = Point.prototype.optionsToObject.call(this, options);
|
|
25475
25421
|
// copy options directly to point
|
|
25476
25422
|
extend(point, options);
|
|
25477
|
-
point.options = point.options ?
|
|
25423
|
+
point.options = point.options ?
|
|
25424
|
+
extend(point.options, options) :
|
|
25425
|
+
options;
|
|
25478
25426
|
// Since options are copied into the Point instance, some accidental
|
|
25479
25427
|
// options must be shielded (#5681)
|
|
25480
25428
|
if (options.group) {
|
|
@@ -25616,7 +25564,7 @@
|
|
|
25616
25564
|
* @param {Highcharts.EventCallbackFunction<Highcharts.Point>|Function} [defaultFunction]
|
|
25617
25565
|
* Default event handler.
|
|
25618
25566
|
*
|
|
25619
|
-
* @
|
|
25567
|
+
* @emits Highcharts.Point#event:*
|
|
25620
25568
|
*/
|
|
25621
25569
|
Point.prototype.firePointEvent = function (eventType, eventArgs, defaultFunction) {
|
|
25622
25570
|
var point = this,
|
|
@@ -25667,8 +25615,6 @@
|
|
|
25667
25615
|
*
|
|
25668
25616
|
* @private
|
|
25669
25617
|
* @function Highcharts.Point#getGraphicalProps
|
|
25670
|
-
* @param {Highcharts.Dictionary<number>} [kinds]
|
|
25671
|
-
* @return {Highcharts.PointGraphicalProps}
|
|
25672
25618
|
*/
|
|
25673
25619
|
Point.prototype.getGraphicalProps = function (kinds) {
|
|
25674
25620
|
var point = this,
|
|
@@ -25767,8 +25713,7 @@
|
|
|
25767
25713
|
/**
|
|
25768
25714
|
* Utility to check if point has new shape type. Used in column series and
|
|
25769
25715
|
* all others that are based on column series.
|
|
25770
|
-
*
|
|
25771
|
-
* @return boolean|undefined
|
|
25716
|
+
* @private
|
|
25772
25717
|
*/
|
|
25773
25718
|
Point.prototype.hasNewShapeType = function () {
|
|
25774
25719
|
var point = this;
|
|
@@ -25794,7 +25739,7 @@
|
|
|
25794
25739
|
* @return {Highcharts.Point}
|
|
25795
25740
|
* The Point instance.
|
|
25796
25741
|
*
|
|
25797
|
-
* @
|
|
25742
|
+
* @emits Highcharts.Point#event:afterInit
|
|
25798
25743
|
*/
|
|
25799
25744
|
Point.prototype.init = function (series, options, x) {
|
|
25800
25745
|
this.series = series;
|
|
@@ -25880,7 +25825,6 @@
|
|
|
25880
25825
|
/**
|
|
25881
25826
|
* @private
|
|
25882
25827
|
* @function Highcharts.Point#resolveColor
|
|
25883
|
-
* @return {void}
|
|
25884
25828
|
*/
|
|
25885
25829
|
Point.prototype.resolveColor = function () {
|
|
25886
25830
|
var series = this.series,
|
|
@@ -26015,7 +25959,7 @@
|
|
|
26015
25959
|
* Whether to apply animation, and optionally animation
|
|
26016
25960
|
* configuration.
|
|
26017
25961
|
*
|
|
26018
|
-
* @
|
|
25962
|
+
* @emits Highcharts.Point#event:update
|
|
26019
25963
|
*/
|
|
26020
25964
|
Point.prototype.update = function (options, redraw, animation, runEvent) {
|
|
26021
25965
|
var point = this,
|
|
@@ -26033,7 +25977,9 @@
|
|
|
26033
25977
|
// Update visuals, #4146
|
|
26034
25978
|
// Handle dummy graphic elements for a11y, #12718
|
|
26035
25979
|
var hasDummyGraphic = graphic && point.hasDummyGraphic;
|
|
26036
|
-
var shouldDestroyGraphic = point.y === null ?
|
|
25980
|
+
var shouldDestroyGraphic = point.y === null ?
|
|
25981
|
+
!hasDummyGraphic :
|
|
25982
|
+
hasDummyGraphic;
|
|
26037
25983
|
if (graphic && shouldDestroyGraphic) {
|
|
26038
25984
|
point.graphic = graphic.destroy();
|
|
26039
25985
|
delete point.hasDummyGraphic;
|
|
@@ -26136,8 +26082,8 @@
|
|
|
26136
26082
|
* is `true`, selected points are accumulated on Control, Shift or Cmd
|
|
26137
26083
|
* clicking the point.
|
|
26138
26084
|
*
|
|
26139
|
-
* @
|
|
26140
|
-
* @
|
|
26085
|
+
* @emits Highcharts.Point#event:select
|
|
26086
|
+
* @emits Highcharts.Point#event:unselect
|
|
26141
26087
|
*/
|
|
26142
26088
|
Point.prototype.select = function (selected, accumulate) {
|
|
26143
26089
|
var point = this,
|
|
@@ -26206,7 +26152,7 @@
|
|
|
26206
26152
|
* events.
|
|
26207
26153
|
*
|
|
26208
26154
|
* @function Highcharts.Point#onMouseOut
|
|
26209
|
-
* @
|
|
26155
|
+
* @emits Highcharts.Point#event:mouseOut
|
|
26210
26156
|
*/
|
|
26211
26157
|
Point.prototype.onMouseOut = function () {
|
|
26212
26158
|
var point = this,
|
|
@@ -26253,7 +26199,7 @@
|
|
|
26253
26199
|
* @param {boolean} [move]
|
|
26254
26200
|
* State for animation.
|
|
26255
26201
|
*
|
|
26256
|
-
* @
|
|
26202
|
+
* @emits Highcharts.Point#event:afterSetState
|
|
26257
26203
|
*/
|
|
26258
26204
|
Point.prototype.setState = function (state, move) {
|
|
26259
26205
|
var point = this,
|
|
@@ -26314,8 +26260,9 @@
|
|
|
26314
26260
|
pointAttribs = series.pointAttribs(point, state);
|
|
26315
26261
|
pointAttribsAnimation = pick(chart.options.chart.animation, stateOptions.animation);
|
|
26316
26262
|
// Some inactive points (e.g. slices in pie) should apply
|
|
26317
|
-
//
|
|
26318
|
-
if (series.options.inactiveOtherPoints &&
|
|
26263
|
+
// opacity also for their labels
|
|
26264
|
+
if (series.options.inactiveOtherPoints &&
|
|
26265
|
+
isNumber(pointAttribs.opacity)) {
|
|
26319
26266
|
(point.dataLabels || []).forEach(function (label) {
|
|
26320
26267
|
if (label) {
|
|
26321
26268
|
label.animate({
|
|
@@ -26776,7 +26723,7 @@
|
|
|
26776
26723
|
Pointer.unbindDocumentMouseUp = Pointer.unbindDocumentMouseUp();
|
|
26777
26724
|
}
|
|
26778
26725
|
if (Pointer.unbindDocumentTouchEnd) {
|
|
26779
|
-
Pointer.unbindDocumentTouchEnd = Pointer.unbindDocumentTouchEnd();
|
|
26726
|
+
Pointer.unbindDocumentTouchEnd = (Pointer.unbindDocumentTouchEnd());
|
|
26780
26727
|
}
|
|
26781
26728
|
}
|
|
26782
26729
|
// memory and CPU leak
|
|
@@ -27129,6 +27076,7 @@
|
|
|
27129
27076
|
* Pointer event, extended with `chartX` and `chartY` properties.
|
|
27130
27077
|
*
|
|
27131
27078
|
* @return {Highcharts.PointerAxisCoordinatesObject}
|
|
27079
|
+
* Axis coordinates.
|
|
27132
27080
|
*/
|
|
27133
27081
|
Pointer.prototype.getCoordinates = function (e) {
|
|
27134
27082
|
var coordinates = {
|
|
@@ -27167,7 +27115,7 @@
|
|
|
27167
27115
|
* @param {Highcharts.PointerEventObject} [e]
|
|
27168
27116
|
* The triggering event, containing chart coordinates of the pointer.
|
|
27169
27117
|
*
|
|
27170
|
-
* @return {
|
|
27118
|
+
* @return {Object}
|
|
27171
27119
|
* Object containing resulting hover data: hoverPoint, hoverSeries, and
|
|
27172
27120
|
* hoverPoints.
|
|
27173
27121
|
*/
|
|
@@ -27464,9 +27412,8 @@
|
|
|
27464
27412
|
// Also reset the chart position, used in #149 fix
|
|
27465
27413
|
chart.pointer.chartPosition = void 0;
|
|
27466
27414
|
}
|
|
27467
|
-
|
|
27468
|
-
tooltip &&
|
|
27469
|
-
!tooltip.isHidden) {
|
|
27415
|
+
// #11635, Firefox wheel scroll does not fire out events consistently
|
|
27416
|
+
if (tooltip && !tooltip.isHidden) {
|
|
27470
27417
|
this.reset();
|
|
27471
27418
|
}
|
|
27472
27419
|
};
|
|
@@ -27613,7 +27560,10 @@
|
|
|
27613
27560
|
}
|
|
27614
27561
|
// On touch devices, only proceed to trigger click if a handler is
|
|
27615
27562
|
// defined
|
|
27616
|
-
if (hasZoom &&
|
|
27563
|
+
if (hasZoom &&
|
|
27564
|
+
self.initiated &&
|
|
27565
|
+
!fireClickEvent &&
|
|
27566
|
+
e.cancelable !== false) {
|
|
27617
27567
|
e.preventDefault();
|
|
27618
27568
|
}
|
|
27619
27569
|
// Normalize each touch
|
|
@@ -27754,7 +27704,8 @@
|
|
|
27754
27704
|
clip[xy] = clipXY - plotLeftTop;
|
|
27755
27705
|
clip[wh] = selectionWH;
|
|
27756
27706
|
}
|
|
27757
|
-
var scaleKey = inverted ?
|
|
27707
|
+
var scaleKey = inverted ?
|
|
27708
|
+
(horiz ? 'scaleY' : 'scaleX') : 'scale' + XY;
|
|
27758
27709
|
var transformScale = inverted ? 1 / scale : scale;
|
|
27759
27710
|
selectionMarker[wh] = selectionWH;
|
|
27760
27711
|
selectionMarker[xy] = selectionXY;
|
|
@@ -27857,8 +27808,8 @@
|
|
|
27857
27808
|
* @private
|
|
27858
27809
|
* @function Highcharts.Pointer#runPointActions
|
|
27859
27810
|
*
|
|
27860
|
-
* @
|
|
27861
|
-
* @
|
|
27811
|
+
* @emits Highcharts.Point#event:mouseOut
|
|
27812
|
+
* @emits Highcharts.Point#event:mouseOver
|
|
27862
27813
|
*/
|
|
27863
27814
|
Pointer.prototype.runPointActions = function (e, p) {
|
|
27864
27815
|
var pointer = this,
|
|
@@ -28611,7 +28562,8 @@
|
|
|
28611
28562
|
this.symbolWidth = pick(options.symbolWidth, 16);
|
|
28612
28563
|
this.pages = [];
|
|
28613
28564
|
this.proximate = options.layout === 'proximate' && !this.chart.inverted;
|
|
28614
|
-
|
|
28565
|
+
// #12705: baseline has to be reset on every update
|
|
28566
|
+
this.baseline = void 0;
|
|
28615
28567
|
};
|
|
28616
28568
|
/**
|
|
28617
28569
|
* Update the legend with new options. Equivalent to running `chart.update`
|
|
@@ -28630,7 +28582,7 @@
|
|
|
28630
28582
|
* operations on the chart, it is a good idea to set redraw to false and
|
|
28631
28583
|
* call {@link Chart#redraw} after. Whether to redraw the chart.
|
|
28632
28584
|
*
|
|
28633
|
-
* @
|
|
28585
|
+
* @emits Highcharts.Legends#event:afterUpdate
|
|
28634
28586
|
*/
|
|
28635
28587
|
Legend.prototype.update = function (options, redraw) {
|
|
28636
28588
|
var chart = this.chart;
|
|
@@ -28780,8 +28732,7 @@
|
|
|
28780
28732
|
/**
|
|
28781
28733
|
* @private
|
|
28782
28734
|
* @param {string} key
|
|
28783
|
-
|
|
28784
|
-
*/
|
|
28735
|
+
*/
|
|
28785
28736
|
function destroyItems(key) {
|
|
28786
28737
|
if (this[key]) {
|
|
28787
28738
|
this[key] = this[key].destroy();
|
|
@@ -28998,13 +28949,16 @@
|
|
|
28998
28949
|
legend.setText(item);
|
|
28999
28950
|
// calculate the positions for the next line
|
|
29000
28951
|
var bBox = li.getBBox();
|
|
28952
|
+
var fontMetricsH = (legend.fontMetrics && legend.fontMetrics.h) || 0;
|
|
29001
28953
|
item.itemWidth = item.checkboxOffset =
|
|
29002
28954
|
options.itemWidth ||
|
|
29003
28955
|
item.legendItemWidth ||
|
|
29004
28956
|
bBox.width + itemExtraWidth;
|
|
29005
28957
|
legend.maxItemWidth = Math.max(legend.maxItemWidth, item.itemWidth);
|
|
29006
28958
|
legend.totalItemWidth += item.itemWidth;
|
|
29007
|
-
legend.itemHeight = item.itemHeight = Math.round(item.legendItemHeight ||
|
|
28959
|
+
legend.itemHeight = item.itemHeight = Math.round(item.legendItemHeight ||
|
|
28960
|
+
// use bBox for multiline (#16398)
|
|
28961
|
+
(bBox.height > fontMetricsH * 1.5 ? bBox.height : fontMetricsH));
|
|
29008
28962
|
};
|
|
29009
28963
|
/**
|
|
29010
28964
|
* Get the position of the item in the layout. We now know the
|
|
@@ -29068,7 +29022,7 @@
|
|
|
29068
29022
|
* @function Highcharts.Legend#getAllItems
|
|
29069
29023
|
* @return {Array<(Highcharts.BubbleLegendItem|Highcharts.Point|Highcharts.Series)>}
|
|
29070
29024
|
* The current items in the legend.
|
|
29071
|
-
* @
|
|
29025
|
+
* @emits Highcharts.Legend#event:afterGetAllItems
|
|
29072
29026
|
*/
|
|
29073
29027
|
Legend.prototype.getAllItems = function () {
|
|
29074
29028
|
var allItems = [];
|
|
@@ -29338,7 +29292,6 @@
|
|
|
29338
29292
|
* @private
|
|
29339
29293
|
* @function Highcharts.align
|
|
29340
29294
|
* @param {Highcharts.BBoxObject} alignTo
|
|
29341
|
-
* @return {void}
|
|
29342
29295
|
*/
|
|
29343
29296
|
Legend.prototype.align = function (alignTo) {
|
|
29344
29297
|
if (alignTo === void 0) { alignTo = this.chart.spacingBox; }
|
|
@@ -29370,8 +29323,6 @@
|
|
|
29370
29323
|
*
|
|
29371
29324
|
* @private
|
|
29372
29325
|
* @function Highcharts.Legend#handleOverflow
|
|
29373
|
-
* @param {number} legendHeight
|
|
29374
|
-
* @return {number}
|
|
29375
29326
|
*/
|
|
29376
29327
|
Legend.prototype.handleOverflow = function (legendHeight) {
|
|
29377
29328
|
var legend = this,
|
|
@@ -29532,7 +29483,6 @@
|
|
|
29532
29483
|
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
|
|
29533
29484
|
* Whether and how to apply animation.
|
|
29534
29485
|
*
|
|
29535
|
-
* @return {void}
|
|
29536
29486
|
*/
|
|
29537
29487
|
Legend.prototype.scroll = function (scrollBy, animation) {
|
|
29538
29488
|
var _this = this;
|
|
@@ -29621,8 +29571,8 @@
|
|
|
29621
29571
|
* @param {Highcharts.BubbleLegendItem|Point|Highcharts.Series} item
|
|
29622
29572
|
* @param {Highcharts.SVGElement} legendItem
|
|
29623
29573
|
* @param {boolean} [useHTML=false]
|
|
29624
|
-
* @
|
|
29625
|
-
* @
|
|
29574
|
+
* @emits Highcharts.Point#event:legendItemClick
|
|
29575
|
+
* @emits Highcharts.Series#event:legendItemClick
|
|
29626
29576
|
*/
|
|
29627
29577
|
Legend.prototype.setItemEvents = function (item, legendItem, useHTML) {
|
|
29628
29578
|
var legend = this,
|
|
@@ -29712,7 +29662,7 @@
|
|
|
29712
29662
|
* @private
|
|
29713
29663
|
* @function Highcharts.Legend#createCheckboxForItem
|
|
29714
29664
|
* @param {Highcharts.BubbleLegendItem|Point|Highcharts.Series} item
|
|
29715
|
-
* @
|
|
29665
|
+
* @emits Highcharts.Series#event:checkboxClick
|
|
29716
29666
|
*/
|
|
29717
29667
|
Legend.prototype.createCheckboxForItem = function (item) {
|
|
29718
29668
|
var legend = this;
|
|
@@ -30141,8 +30091,8 @@
|
|
|
30141
30091
|
* @param {...Array<*>} arguments
|
|
30142
30092
|
* All arguments for the constructor.
|
|
30143
30093
|
*
|
|
30144
|
-
* @
|
|
30145
|
-
* @
|
|
30094
|
+
* @emits Highcharts.Chart#event:init
|
|
30095
|
+
* @emits Highcharts.Chart#event:afterInit
|
|
30146
30096
|
*/
|
|
30147
30097
|
Chart.prototype.getArgs = function (a, b, c) {
|
|
30148
30098
|
// Remove the optional first argument, renderTo, and
|
|
@@ -30168,10 +30118,9 @@
|
|
|
30168
30118
|
* Function to run when the chart has loaded and and all external
|
|
30169
30119
|
* images are loaded.
|
|
30170
30120
|
*
|
|
30171
|
-
* @return {void}
|
|
30172
30121
|
*
|
|
30173
|
-
* @
|
|
30174
|
-
* @
|
|
30122
|
+
* @emits Highcharts.Chart#event:init
|
|
30123
|
+
* @emits Highcharts.Chart#event:afterInit
|
|
30175
30124
|
*/
|
|
30176
30125
|
Chart.prototype.init = function (userOptions, callback) {
|
|
30177
30126
|
// Handle regular options
|
|
@@ -30349,7 +30298,6 @@
|
|
|
30349
30298
|
*
|
|
30350
30299
|
* @private
|
|
30351
30300
|
* @function Highcharts.Series#getSeriesOrderByLinks
|
|
30352
|
-
* @return {Array<Highcharts.Series>}
|
|
30353
30301
|
*/
|
|
30354
30302
|
Chart.prototype.getSeriesOrderByLinks = function () {
|
|
30355
30303
|
return this.series.concat().sort(function (a, b) {
|
|
@@ -30430,7 +30378,8 @@
|
|
|
30430
30378
|
pos: plotLeft,
|
|
30431
30379
|
len: Infinity
|
|
30432
30380
|
};
|
|
30433
|
-
var chartX = options.paneCoordinates ?
|
|
30381
|
+
var chartX = options.paneCoordinates ?
|
|
30382
|
+
xAxis.pos + x : plotLeft + x;
|
|
30434
30383
|
if (!(chartX >= Math.max(scrollLeft + plotLeft, xAxis.pos) &&
|
|
30435
30384
|
chartX <= Math.min(scrollLeft + plotLeft + box.width, xAxis.pos + xAxis.len))) {
|
|
30436
30385
|
e.isInsidePlot = false;
|
|
@@ -30441,7 +30390,8 @@
|
|
|
30441
30390
|
pos: plotTop,
|
|
30442
30391
|
len: Infinity
|
|
30443
30392
|
};
|
|
30444
|
-
var chartY = options.paneCoordinates ?
|
|
30393
|
+
var chartY = options.paneCoordinates ?
|
|
30394
|
+
yAxis.pos + y : plotTop + y;
|
|
30445
30395
|
if (!(chartY >= Math.max(scrollTop + plotTop, yAxis.pos) &&
|
|
30446
30396
|
chartY <= Math.min(scrollTop + plotTop + box.height, yAxis.pos + yAxis.len))) {
|
|
30447
30397
|
e.isInsidePlot = false;
|
|
@@ -30464,12 +30414,12 @@
|
|
|
30464
30414
|
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
|
|
30465
30415
|
* If or how to apply animation to the redraw.
|
|
30466
30416
|
*
|
|
30467
|
-
* @
|
|
30468
|
-
* @
|
|
30469
|
-
* @
|
|
30470
|
-
* @
|
|
30471
|
-
* @
|
|
30472
|
-
* @
|
|
30417
|
+
* @emits Highcharts.Chart#event:afterSetExtremes
|
|
30418
|
+
* @emits Highcharts.Chart#event:beforeRedraw
|
|
30419
|
+
* @emits Highcharts.Chart#event:predraw
|
|
30420
|
+
* @emits Highcharts.Chart#event:redraw
|
|
30421
|
+
* @emits Highcharts.Chart#event:render
|
|
30422
|
+
* @emits Highcharts.Chart#event:updatedData
|
|
30473
30423
|
*/
|
|
30474
30424
|
Chart.prototype.redraw = function (animation) {
|
|
30475
30425
|
fireEvent(this, 'beforeRedraw');
|
|
@@ -30631,8 +30581,6 @@
|
|
|
30631
30581
|
var series = this.series;
|
|
30632
30582
|
/**
|
|
30633
30583
|
* @private
|
|
30634
|
-
* @param {Highcharts.Axis|Highcharts.Series} item
|
|
30635
|
-
* @return {boolean}
|
|
30636
30584
|
*/
|
|
30637
30585
|
function itemById(item) {
|
|
30638
30586
|
return (item.id === id ||
|
|
@@ -30656,8 +30604,8 @@
|
|
|
30656
30604
|
*
|
|
30657
30605
|
* @private
|
|
30658
30606
|
* @function Highcharts.Chart#getAxes
|
|
30659
|
-
* @
|
|
30660
|
-
* @
|
|
30607
|
+
* @emits Highcharts.Chart#event:afterGetAxes
|
|
30608
|
+
* @emits Highcharts.Chart#event:getAxes
|
|
30661
30609
|
*/
|
|
30662
30610
|
Chart.prototype.getAxes = function () {
|
|
30663
30611
|
var chart = this,
|
|
@@ -30839,7 +30787,7 @@
|
|
|
30839
30787
|
* @function Highcharts.Chart#layOutTitles
|
|
30840
30788
|
*
|
|
30841
30789
|
* @param {boolean} [redraw=true]
|
|
30842
|
-
* @
|
|
30790
|
+
* @emits Highcharts.Chart#event:afterLayOutTitles
|
|
30843
30791
|
*/
|
|
30844
30792
|
Chart.prototype.layOutTitles = function (redraw) {
|
|
30845
30793
|
var titleOffset = [0, 0, 0],
|
|
@@ -30847,7 +30795,7 @@
|
|
|
30847
30795
|
spacingBox = this.spacingBox;
|
|
30848
30796
|
// Lay out the title and the subtitle respectively
|
|
30849
30797
|
['title', 'subtitle', 'caption'].forEach(function (key) {
|
|
30850
|
-
var title = this[key], titleOptions = this.options[key], verticalAlign = titleOptions.verticalAlign || 'top', offset = key === 'title' ?
|
|
30798
|
+
var title = this[key], titleOptions = (this.options[key]), verticalAlign = titleOptions.verticalAlign || 'top', offset = key === 'title' ?
|
|
30851
30799
|
verticalAlign === 'top' ? -3 : 0 :
|
|
30852
30800
|
// Floating subtitle (#6574)
|
|
30853
30801
|
verticalAlign === 'top' ? titleOffset[0] + 2 : 0;
|
|
@@ -30855,7 +30803,8 @@
|
|
|
30855
30803
|
height;
|
|
30856
30804
|
if (title) {
|
|
30857
30805
|
if (!this.styledMode) {
|
|
30858
|
-
titleSize = titleOptions.style &&
|
|
30806
|
+
titleSize = (titleOptions.style &&
|
|
30807
|
+
titleOptions.style.fontSize);
|
|
30859
30808
|
}
|
|
30860
30809
|
titleSize = renderer.fontMetrics(titleSize, title).b;
|
|
30861
30810
|
title
|
|
@@ -31030,7 +30979,7 @@
|
|
|
31030
30979
|
*
|
|
31031
30980
|
* @private
|
|
31032
30981
|
* @function Highcharts.Chart#afterGetContainer
|
|
31033
|
-
* @
|
|
30982
|
+
* @emits Highcharts.Chart#event:afterGetContainer
|
|
31034
30983
|
*/
|
|
31035
30984
|
Chart.prototype.getContainer = function () {
|
|
31036
30985
|
var chart = this,
|
|
@@ -31067,7 +31016,7 @@
|
|
|
31067
31016
|
// Make a reference to the chart from the div
|
|
31068
31017
|
attr(renderTo, indexAttrName, chart.index);
|
|
31069
31018
|
// remove previous chart
|
|
31070
|
-
renderTo.innerHTML =
|
|
31019
|
+
renderTo.innerHTML = AST.emptyHTML;
|
|
31071
31020
|
// If the container doesn't have an offsetWidth, it has or is a child of
|
|
31072
31021
|
// a node that has display:none. We need to temporarily move it out to a
|
|
31073
31022
|
// visible state to determine the size, else the legend and tooltips
|
|
@@ -31152,7 +31101,7 @@
|
|
|
31152
31101
|
*
|
|
31153
31102
|
* @private
|
|
31154
31103
|
* @function Highcharts.Chart#getMargins
|
|
31155
|
-
* @
|
|
31104
|
+
* @emits Highcharts.Chart#event:getMargins
|
|
31156
31105
|
*/
|
|
31157
31106
|
Chart.prototype.getMargins = function (skipAxes) {
|
|
31158
31107
|
var _a = this,
|
|
@@ -31318,10 +31267,9 @@
|
|
|
31318
31267
|
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation=true]
|
|
31319
31268
|
* Whether and how to apply animation.
|
|
31320
31269
|
*
|
|
31321
|
-
* @return {void}
|
|
31322
31270
|
*
|
|
31323
|
-
* @
|
|
31324
|
-
* @
|
|
31271
|
+
* @emits Highcharts.Chart#event:endResize
|
|
31272
|
+
* @emits Highcharts.Chart#event:resize
|
|
31325
31273
|
*/
|
|
31326
31274
|
Chart.prototype.setSize = function (width, height, animation) {
|
|
31327
31275
|
var chart = this,
|
|
@@ -31378,7 +31326,7 @@
|
|
|
31378
31326
|
*
|
|
31379
31327
|
* @private
|
|
31380
31328
|
* @function Highcharts.Chart#setChartSize
|
|
31381
|
-
* @
|
|
31329
|
+
* @emits Highcharts.Chart#event:afterSetChartSize
|
|
31382
31330
|
*/
|
|
31383
31331
|
Chart.prototype.setChartSize = function (skipAxes) {
|
|
31384
31332
|
var chart = this,
|
|
@@ -31501,7 +31449,7 @@
|
|
|
31501
31449
|
*
|
|
31502
31450
|
* @private
|
|
31503
31451
|
* @function Highcharts.Chart#drawChartBox
|
|
31504
|
-
* @
|
|
31452
|
+
* @emits Highcharts.Chart#event:afterDrawChartBox
|
|
31505
31453
|
*/
|
|
31506
31454
|
Chart.prototype.drawChartBox = function () {
|
|
31507
31455
|
var chart = this,
|
|
@@ -31635,7 +31583,6 @@
|
|
|
31635
31583
|
*
|
|
31636
31584
|
* @private
|
|
31637
31585
|
* @function Highcharts.Chart#propFromSeries
|
|
31638
|
-
* @return {void}
|
|
31639
31586
|
*/
|
|
31640
31587
|
Chart.prototype.propFromSeries = function () {
|
|
31641
31588
|
var chart = this,
|
|
@@ -31679,7 +31626,7 @@
|
|
|
31679
31626
|
*
|
|
31680
31627
|
* @private
|
|
31681
31628
|
* @function Highcharts.Chart#linkSeries
|
|
31682
|
-
* @
|
|
31629
|
+
* @emits Highcharts.Chart#event:afterLinkSeries
|
|
31683
31630
|
*/
|
|
31684
31631
|
Chart.prototype.linkSeries = function () {
|
|
31685
31632
|
var chart = this,
|
|
@@ -31907,7 +31854,7 @@
|
|
|
31907
31854
|
*
|
|
31908
31855
|
* @function Highcharts.Chart#destroy
|
|
31909
31856
|
*
|
|
31910
|
-
* @
|
|
31857
|
+
* @emits Highcharts.Chart#event:destroy
|
|
31911
31858
|
*/
|
|
31912
31859
|
Chart.prototype.destroy = function () {
|
|
31913
31860
|
var chart = this,
|
|
@@ -31959,7 +31906,7 @@
|
|
|
31959
31906
|
// Remove container and all SVG, check container as it can break in IE
|
|
31960
31907
|
// when destroyed before finished loading
|
|
31961
31908
|
if (container) {
|
|
31962
|
-
container.innerHTML =
|
|
31909
|
+
container.innerHTML = AST.emptyHTML;
|
|
31963
31910
|
removeEvent(container);
|
|
31964
31911
|
if (parentNode) {
|
|
31965
31912
|
discardElement(container);
|
|
@@ -31975,7 +31922,7 @@
|
|
|
31975
31922
|
*
|
|
31976
31923
|
* @private
|
|
31977
31924
|
* @function Highcharts.Chart#firstRender
|
|
31978
|
-
* @
|
|
31925
|
+
* @emits Highcharts.Chart#event:beforeRender
|
|
31979
31926
|
*/
|
|
31980
31927
|
Chart.prototype.firstRender = function () {
|
|
31981
31928
|
var chart = this,
|
|
@@ -32039,8 +31986,8 @@
|
|
|
32039
31986
|
*
|
|
32040
31987
|
* @private
|
|
32041
31988
|
* @function Highcharts.Chart#onload
|
|
32042
|
-
* @
|
|
32043
|
-
* @
|
|
31989
|
+
* @emits Highcharts.Chart#event:load
|
|
31990
|
+
* @emits Highcharts.Chart#event:render
|
|
32044
31991
|
*/
|
|
32045
31992
|
Chart.prototype.onload = function () {
|
|
32046
31993
|
// Run callbacks, first the ones registered by modules, then user's one
|
|
@@ -32086,8 +32033,8 @@
|
|
|
32086
32033
|
* @return {Highcharts.Series}
|
|
32087
32034
|
* The newly created series object.
|
|
32088
32035
|
*
|
|
32089
|
-
* @
|
|
32090
|
-
* @
|
|
32036
|
+
* @emits Highcharts.Chart#event:addSeries
|
|
32037
|
+
* @emits Highcharts.Chart#event:afterAddSeries
|
|
32091
32038
|
*/
|
|
32092
32039
|
Chart.prototype.addSeries = function (options, redraw, animation) {
|
|
32093
32040
|
var chart = this;
|
|
@@ -32346,8 +32293,8 @@
|
|
|
32346
32293
|
* Whether to apply animation, and optionally animation
|
|
32347
32294
|
* configuration.
|
|
32348
32295
|
*
|
|
32349
|
-
* @
|
|
32350
|
-
* @
|
|
32296
|
+
* @emits Highcharts.Chart#event:update
|
|
32297
|
+
* @emits Highcharts.Chart#event:afterUpdate
|
|
32351
32298
|
*/
|
|
32352
32299
|
Chart.prototype.update = function (options, redraw, oneToOne, animation) {
|
|
32353
32300
|
var chart = this,
|
|
@@ -32615,8 +32562,8 @@
|
|
|
32615
32562
|
*
|
|
32616
32563
|
* @function Highcharts.Chart#showResetZoom
|
|
32617
32564
|
*
|
|
32618
|
-
* @
|
|
32619
|
-
* @
|
|
32565
|
+
* @emits Highcharts.Chart#event:afterShowResetZoom
|
|
32566
|
+
* @emits Highcharts.Chart#event:beforeShowResetZoom
|
|
32620
32567
|
*/
|
|
32621
32568
|
Chart.prototype.showResetZoom = function () {
|
|
32622
32569
|
var chart = this,
|
|
@@ -32653,7 +32600,7 @@
|
|
|
32653
32600
|
*
|
|
32654
32601
|
* @function Highcharts.Chart#zoomOut
|
|
32655
32602
|
*
|
|
32656
|
-
* @
|
|
32603
|
+
* @emits Highcharts.Chart#event:selection
|
|
32657
32604
|
*/
|
|
32658
32605
|
Chart.prototype.zoomOut = function () {
|
|
32659
32606
|
fireEvent(this, 'selection', { resetSelection: true }, this.zoom);
|
|
@@ -32668,7 +32615,8 @@
|
|
|
32668
32615
|
Chart.prototype.zoom = function (event) {
|
|
32669
32616
|
var chart = this,
|
|
32670
32617
|
pointer = chart.pointer,
|
|
32671
|
-
mouseDownPos =
|
|
32618
|
+
mouseDownPos = chart.inverted ?
|
|
32619
|
+
pointer.mouseDownX : pointer.mouseDownY;
|
|
32672
32620
|
var displayButton = false,
|
|
32673
32621
|
hasZoomed;
|
|
32674
32622
|
// If zoom is called with no arguments, reset the axes
|
|
@@ -34769,9 +34717,9 @@
|
|
|
34769
34717
|
*/
|
|
34770
34718
|
// eslint-disable-next-line valid-jsdoc
|
|
34771
34719
|
/**
|
|
34772
|
-
* Callback JavaScript function to format the data label. Note that
|
|
34773
|
-
*
|
|
34774
|
-
*
|
|
34720
|
+
* Callback JavaScript function to format the data label. Note that if a
|
|
34721
|
+
* `format` is defined, the format takes precedence and the formatter is
|
|
34722
|
+
* ignored.
|
|
34775
34723
|
*
|
|
34776
34724
|
* @sample {highmaps} maps/plotoptions/series-datalabels-format/
|
|
34777
34725
|
* Formatted value
|
|
@@ -34780,7 +34728,8 @@
|
|
|
34780
34728
|
*/
|
|
34781
34729
|
formatter: function () {
|
|
34782
34730
|
var numberFormatter = this.series.chart.numberFormatter;
|
|
34783
|
-
return typeof this.y !== 'number' ?
|
|
34731
|
+
return typeof this.y !== 'number' ?
|
|
34732
|
+
'' : numberFormatter(this.y, -1);
|
|
34784
34733
|
},
|
|
34785
34734
|
/**
|
|
34786
34735
|
* For points with an extent, like columns or map areas, whether to
|
|
@@ -35861,7 +35810,6 @@
|
|
|
35861
35810
|
*
|
|
35862
35811
|
* @private
|
|
35863
35812
|
* @function Highcharts.Series#hasData
|
|
35864
|
-
* @return {boolean}
|
|
35865
35813
|
*/
|
|
35866
35814
|
Series.prototype.hasData = function () {
|
|
35867
35815
|
return ((this.visible &&
|
|
@@ -35879,7 +35827,6 @@
|
|
|
35879
35827
|
*
|
|
35880
35828
|
* @private
|
|
35881
35829
|
* @function Highcharts.Series#autoIncrement
|
|
35882
|
-
* @return {number}
|
|
35883
35830
|
*/
|
|
35884
35831
|
Series.prototype.autoIncrement = function (x) {
|
|
35885
35832
|
var options = this.options,
|
|
@@ -35940,13 +35887,9 @@
|
|
|
35940
35887
|
* not redraw the series. For API usage, use {@link Series#update}.
|
|
35941
35888
|
* @private
|
|
35942
35889
|
* @function Highcharts.Series#setOptions
|
|
35943
|
-
*
|
|
35944
35890
|
* @param {Highcharts.SeriesOptionsType} itemOptions
|
|
35945
35891
|
* The series options.
|
|
35946
|
-
*
|
|
35947
|
-
* @return {Highcharts.SeriesOptionsType}
|
|
35948
|
-
*
|
|
35949
|
-
* @fires Highcharts.Series#event:afterSetOptions
|
|
35892
|
+
* @emits Highcharts.Series#event:afterSetOptions
|
|
35950
35893
|
*/
|
|
35951
35894
|
Series.prototype.setOptions = function (itemOptions) {
|
|
35952
35895
|
var chart = this.chart,
|
|
@@ -36104,7 +36047,6 @@
|
|
|
36104
36047
|
*
|
|
36105
36048
|
* @private
|
|
36106
36049
|
* @function Highcharts.Series#getPointsCollection
|
|
36107
|
-
* @return {Array<Highcharts.Point>}
|
|
36108
36050
|
*/
|
|
36109
36051
|
Series.prototype.getPointsCollection = function () {
|
|
36110
36052
|
return (this.hasGroupedData ? this.points : this.data) || [];
|
|
@@ -36115,7 +36057,6 @@
|
|
|
36115
36057
|
*
|
|
36116
36058
|
* @private
|
|
36117
36059
|
* @function Highcharts.Series#getSymbol
|
|
36118
|
-
* @return {void}
|
|
36119
36060
|
*/
|
|
36120
36061
|
Series.prototype.getSymbol = function () {
|
|
36121
36062
|
var seriesMarkerOption = this.options.marker;
|
|
@@ -36127,14 +36068,13 @@
|
|
|
36127
36068
|
*
|
|
36128
36069
|
* @private
|
|
36129
36070
|
* @function Highcharts.Series#findPointIndex
|
|
36130
|
-
* @param
|
|
36131
|
-
*
|
|
36132
|
-
* @param
|
|
36133
|
-
*
|
|
36134
|
-
*
|
|
36135
|
-
* @
|
|
36136
|
-
*
|
|
36137
|
-
* match is found.
|
|
36071
|
+
* @param {Highcharts.PointOptionsObject} optionsObject
|
|
36072
|
+
* The options of the point.
|
|
36073
|
+
* @param {number} fromIndex
|
|
36074
|
+
* The index to start searching from, used for optimizing series with
|
|
36075
|
+
* required sorting.
|
|
36076
|
+
* @return {number|undefined}
|
|
36077
|
+
* Returns the index of a matching point, or undefined if no match is found.
|
|
36138
36078
|
*/
|
|
36139
36079
|
Series.prototype.findPointIndex = function (optionsObject, fromIndex) {
|
|
36140
36080
|
var id = optionsObject.id,
|
|
@@ -36517,11 +36457,8 @@
|
|
|
36517
36457
|
*
|
|
36518
36458
|
* @private
|
|
36519
36459
|
* @function Highcharts.Series#sortData
|
|
36520
|
-
*
|
|
36521
36460
|
* @param {Array<Highcharts.PointOptionsType>} data
|
|
36522
36461
|
* Force data grouping.
|
|
36523
|
-
*
|
|
36524
|
-
* @return {Array<Highcharts.PointOptionsObject>}
|
|
36525
36462
|
*/
|
|
36526
36463
|
Series.prototype.sortData = function (data) {
|
|
36527
36464
|
var series = this,
|
|
@@ -36583,8 +36520,7 @@
|
|
|
36583
36520
|
* @private
|
|
36584
36521
|
* @function Highcharts.Series#getProcessedData
|
|
36585
36522
|
* @param {boolean} [forceExtremesFromAll]
|
|
36586
|
-
*
|
|
36587
|
-
* @return {Highcharts.SeriesProcessedDataObject}
|
|
36523
|
+
* Force getting extremes of a total series data range.
|
|
36588
36524
|
*/
|
|
36589
36525
|
Series.prototype.getProcessedData = function (forceExtremesFromAll) {
|
|
36590
36526
|
var series = this,
|
|
@@ -36680,8 +36616,7 @@
|
|
|
36680
36616
|
* @private
|
|
36681
36617
|
* @function Highcharts.Series#processData
|
|
36682
36618
|
* @param {boolean} [force]
|
|
36683
|
-
*
|
|
36684
|
-
* @return {boolean|undefined}
|
|
36619
|
+
* Force data grouping.
|
|
36685
36620
|
*/
|
|
36686
36621
|
Series.prototype.processData = function (force) {
|
|
36687
36622
|
var series = this,
|
|
@@ -36702,7 +36637,7 @@
|
|
|
36702
36637
|
series.cropStart = processedData.cropStart;
|
|
36703
36638
|
series.processedXData = processedData.xData;
|
|
36704
36639
|
series.processedYData = processedData.yData;
|
|
36705
|
-
series.closestPointRange = series.basePointRange = processedData.closestPointRange;
|
|
36640
|
+
series.closestPointRange = (series.basePointRange = processedData.closestPointRange);
|
|
36706
36641
|
fireEvent(series, 'afterProcessData');
|
|
36707
36642
|
};
|
|
36708
36643
|
/**
|
|
@@ -36712,12 +36647,6 @@
|
|
|
36712
36647
|
*
|
|
36713
36648
|
* @private
|
|
36714
36649
|
* @function Highcharts.Series#cropData
|
|
36715
|
-
* @param {Array<number>} xData
|
|
36716
|
-
* @param {Array<number>} yData
|
|
36717
|
-
* @param {number} min
|
|
36718
|
-
* @param {number} max
|
|
36719
|
-
* @param {number} [cropShoulder]
|
|
36720
|
-
* @return {Highcharts.SeriesCropDataObject}
|
|
36721
36650
|
*/
|
|
36722
36651
|
Series.prototype.cropData = function (xData, yData, min, max, cropShoulder) {
|
|
36723
36652
|
var dataLength = xData.length;
|
|
@@ -36835,7 +36764,8 @@
|
|
|
36835
36764
|
* @readonly
|
|
36836
36765
|
*/
|
|
36837
36766
|
// For faster access in Point.update
|
|
36838
|
-
point.index = hasGroupedData ?
|
|
36767
|
+
point.index = hasGroupedData ?
|
|
36768
|
+
(groupCropStartIndex + i) : cursor;
|
|
36839
36769
|
points[i] = point;
|
|
36840
36770
|
}
|
|
36841
36771
|
}
|
|
@@ -36895,12 +36825,9 @@
|
|
|
36895
36825
|
*
|
|
36896
36826
|
* @private
|
|
36897
36827
|
* @function Highcharts.Series#getXExtremes
|
|
36898
|
-
*
|
|
36899
36828
|
* @param {Array<number>} xData
|
|
36900
36829
|
* The data to inspect. Defaults to the current data within the visible
|
|
36901
36830
|
* range.
|
|
36902
|
-
*
|
|
36903
|
-
* @return {Highcharts.RangeObject}
|
|
36904
36831
|
*/
|
|
36905
36832
|
Series.prototype.getXExtremes = function (xData) {
|
|
36906
36833
|
return {
|
|
@@ -36914,14 +36841,11 @@
|
|
|
36914
36841
|
*
|
|
36915
36842
|
* @private
|
|
36916
36843
|
* @function Highcharts.Series#getExtremes
|
|
36917
|
-
*
|
|
36918
36844
|
* @param {Array<number>} [yData]
|
|
36919
36845
|
* The data to inspect. Defaults to the current data within the visible
|
|
36920
36846
|
* range.
|
|
36921
36847
|
* @param {boolean} [forceExtremesFromAll]
|
|
36922
36848
|
* Force getting extremes of a total series data range.
|
|
36923
|
-
*
|
|
36924
|
-
* @return {Highcharts.DataExtremesObject}
|
|
36925
36849
|
*/
|
|
36926
36850
|
Series.prototype.getExtremes = function (yData, forceExtremesFromAll) {
|
|
36927
36851
|
var xAxis = this.xAxis,
|
|
@@ -37021,11 +36945,8 @@
|
|
|
37021
36945
|
*
|
|
37022
36946
|
* @private
|
|
37023
36947
|
* @function Highcharts.Series.getFirstValidPoint
|
|
37024
|
-
*
|
|
37025
36948
|
* @param {Array<Highcharts.PointOptionsType>} data
|
|
37026
36949
|
* Array of options for points
|
|
37027
|
-
*
|
|
37028
|
-
* @return {Highcharts.PointOptionsType}
|
|
37029
36950
|
*/
|
|
37030
36951
|
Series.prototype.getFirstValidPoint = function (data) {
|
|
37031
36952
|
var dataLength = data.length;
|
|
@@ -37045,7 +36966,7 @@
|
|
|
37045
36966
|
*
|
|
37046
36967
|
* @function Highcharts.Series#translate
|
|
37047
36968
|
*
|
|
37048
|
-
* @
|
|
36969
|
+
* @emits Highcharts.Series#events:translate
|
|
37049
36970
|
*/
|
|
37050
36971
|
Series.prototype.translate = function () {
|
|
37051
36972
|
if (!this.processedXData) { // hidden series
|
|
@@ -37093,8 +37014,10 @@
|
|
|
37093
37014
|
(stackThreshold ? 0 : threshold) ?
|
|
37094
37015
|
'-' :
|
|
37095
37016
|
'') + series.stackKey];
|
|
37096
|
-
if (yAxis.positiveValuesOnly &&
|
|
37097
|
-
|
|
37017
|
+
if (yAxis.positiveValuesOnly &&
|
|
37018
|
+
!yAxis.validatePositiveValue(yValue) ||
|
|
37019
|
+
xAxis.positiveValuesOnly &&
|
|
37020
|
+
!xAxis.validatePositiveValue(xValue)) {
|
|
37098
37021
|
point.isNull = true;
|
|
37099
37022
|
}
|
|
37100
37023
|
// Get the plotX translation
|
|
@@ -37229,8 +37152,6 @@
|
|
|
37229
37152
|
*
|
|
37230
37153
|
* @private
|
|
37231
37154
|
* @function Highcharts.Series#getClip
|
|
37232
|
-
*
|
|
37233
|
-
* @return {Highcharts.Dictionary<number>}
|
|
37234
37155
|
*/
|
|
37235
37156
|
Series.prototype.getClipBox = function () {
|
|
37236
37157
|
var _a = this,
|
|
@@ -37380,7 +37301,7 @@
|
|
|
37380
37301
|
* @private
|
|
37381
37302
|
* @function Highcharts.Series#afterAnimate
|
|
37382
37303
|
*
|
|
37383
|
-
* @
|
|
37304
|
+
* @emits Highcharts.Series#event:afterAnimate
|
|
37384
37305
|
*/
|
|
37385
37306
|
Series.prototype.afterAnimate = function () {
|
|
37386
37307
|
var _this = this;
|
|
@@ -37601,7 +37522,7 @@
|
|
|
37601
37522
|
// Handle hover and select states
|
|
37602
37523
|
state = state || 'normal';
|
|
37603
37524
|
if (state) {
|
|
37604
|
-
seriesStateOptions = seriesMarkerOptions.states[state] || {};
|
|
37525
|
+
seriesStateOptions = (seriesMarkerOptions.states[state] || {});
|
|
37605
37526
|
pointStateOptions = (pointMarkerOptions.states &&
|
|
37606
37527
|
pointMarkerOptions.states[state]) || {};
|
|
37607
37528
|
strokeWidth = pick(pointStateOptions.lineWidth, seriesStateOptions.lineWidth, strokeWidth + pick(pointStateOptions.lineWidthPlus, seriesStateOptions.lineWidthPlus, 0));
|
|
@@ -37626,7 +37547,7 @@
|
|
|
37626
37547
|
* @private
|
|
37627
37548
|
* @function Highcharts.Series#destroy
|
|
37628
37549
|
*
|
|
37629
|
-
* @
|
|
37550
|
+
* @emits Highcharts.Series#event:destroy
|
|
37630
37551
|
*/
|
|
37631
37552
|
Series.prototype.destroy = function (keepEventsForUpdate) {
|
|
37632
37553
|
var series = this,
|
|
@@ -37921,8 +37842,6 @@
|
|
|
37921
37842
|
* Get the translation and scale for the plot area of this series.
|
|
37922
37843
|
*
|
|
37923
37844
|
* @function Highcharts.Series#getPlotBox
|
|
37924
|
-
*
|
|
37925
|
-
* @return {Highcharts.SeriesPlotBoxObject}
|
|
37926
37845
|
*/
|
|
37927
37846
|
Series.prototype.getPlotBox = function () {
|
|
37928
37847
|
var chart = this.chart;
|
|
@@ -37967,7 +37886,7 @@
|
|
|
37967
37886
|
*
|
|
37968
37887
|
* @function Highcharts.Series#render
|
|
37969
37888
|
*
|
|
37970
|
-
* @
|
|
37889
|
+
* @emits Highcharts.Series#event:afterRender
|
|
37971
37890
|
*/
|
|
37972
37891
|
Series.prototype.render = function () {
|
|
37973
37892
|
var series = this,
|
|
@@ -38413,7 +38332,7 @@
|
|
|
38413
38332
|
* @param {boolean} [withEvent=true]
|
|
38414
38333
|
* Used internally, whether to fire the series `addPoint` event.
|
|
38415
38334
|
*
|
|
38416
|
-
* @
|
|
38335
|
+
* @emits Highcharts.Series#event:addPoint
|
|
38417
38336
|
*/
|
|
38418
38337
|
Series.prototype.addPoint = function (options, redraw, shift, animation, withEvent) {
|
|
38419
38338
|
var series = this,
|
|
@@ -38505,7 +38424,7 @@
|
|
|
38505
38424
|
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
|
|
38506
38425
|
* Whether and optionally how the series should be animated.
|
|
38507
38426
|
*
|
|
38508
|
-
* @
|
|
38427
|
+
* @emits Highcharts.Point#event:remove
|
|
38509
38428
|
*/
|
|
38510
38429
|
Series.prototype.removePoint = function (i, redraw, animation) {
|
|
38511
38430
|
var series = this,
|
|
@@ -38559,7 +38478,7 @@
|
|
|
38559
38478
|
* @param {boolean} [withEvent=true]
|
|
38560
38479
|
* Used internally, whether to fire the series `remove` event.
|
|
38561
38480
|
*
|
|
38562
|
-
* @
|
|
38481
|
+
* @emits Highcharts.Series#event:remove
|
|
38563
38482
|
*/
|
|
38564
38483
|
Series.prototype.remove = function (redraw, animation, withEvent, keepEvents) {
|
|
38565
38484
|
var series = this,
|
|
@@ -38609,8 +38528,8 @@
|
|
|
38609
38528
|
* more operations on the chart, it is a good idea to set redraw to
|
|
38610
38529
|
* false and call {@link Chart#redraw} after.
|
|
38611
38530
|
*
|
|
38612
|
-
* @
|
|
38613
|
-
* @
|
|
38531
|
+
* @emits Highcharts.Series#event:update
|
|
38532
|
+
* @emits Highcharts.Series#event:afterUpdate
|
|
38614
38533
|
*/
|
|
38615
38534
|
Series.prototype.update = function (options, redraw) {
|
|
38616
38535
|
options = cleanRecursively(options, this.userOptions);
|
|
@@ -38692,7 +38611,9 @@
|
|
|
38692
38611
|
series.index : oldOptions.index,
|
|
38693
38612
|
pointStart: pick(
|
|
38694
38613
|
// when updating from blank (#7933)
|
|
38695
|
-
plotOptions &&
|
|
38614
|
+
(plotOptions &&
|
|
38615
|
+
plotOptions.series &&
|
|
38616
|
+
plotOptions.series.pointStart), oldOptions.pointStart,
|
|
38696
38617
|
// when updating after addPoint
|
|
38697
38618
|
series.xData[0])
|
|
38698
38619
|
}, (!keepPoints && { data: series.options.data }), options);
|
|
@@ -38722,8 +38643,7 @@
|
|
|
38722
38643
|
// Legacy (IE < 11)
|
|
38723
38644
|
}
|
|
38724
38645
|
else {
|
|
38725
|
-
var ownEvents = Object.hasOwnProperty.call(series, 'hcEvents') &&
|
|
38726
|
-
series.hcEvents;
|
|
38646
|
+
var ownEvents = Object.hasOwnProperty.call(series, 'hcEvents') && series.hcEvents;
|
|
38727
38647
|
for (n in initialSeriesProto) { // eslint-disable-line guard-for-in
|
|
38728
38648
|
series[n] = void 0;
|
|
38729
38649
|
}
|
|
@@ -38821,13 +38741,17 @@
|
|
|
38821
38741
|
return option !== oldOption;
|
|
38822
38742
|
}
|
|
38823
38743
|
return option !==
|
|
38824
|
-
pick(plotOptions &&
|
|
38744
|
+
pick(plotOptions &&
|
|
38745
|
+
plotOptions[this.type] &&
|
|
38746
|
+
plotOptions[this.type][optionName], plotOptions &&
|
|
38747
|
+
plotOptions.series &&
|
|
38748
|
+
plotOptions.series[optionName], option);
|
|
38825
38749
|
};
|
|
38826
38750
|
/**
|
|
38827
38751
|
* Runs on mouse over the series graphical items.
|
|
38828
38752
|
*
|
|
38829
38753
|
* @function Highcharts.Series#onMouseOver
|
|
38830
|
-
* @
|
|
38754
|
+
* @emits Highcharts.Series#event:mouseOver
|
|
38831
38755
|
*/
|
|
38832
38756
|
Series.prototype.onMouseOver = function () {
|
|
38833
38757
|
var series = this,
|
|
@@ -38859,7 +38783,7 @@
|
|
|
38859
38783
|
*
|
|
38860
38784
|
* @function Highcharts.Series#onMouseOut
|
|
38861
38785
|
*
|
|
38862
|
-
* @
|
|
38786
|
+
* @emits Highcharts.Series#event:mouseOut
|
|
38863
38787
|
*/
|
|
38864
38788
|
Series.prototype.onMouseOut = function () {
|
|
38865
38789
|
// trigger the event only if listeners exist
|
|
@@ -39014,8 +38938,8 @@
|
|
|
39014
38938
|
* operations on the chart, it is a good idea to set redraw to false and
|
|
39015
38939
|
* call {@link Chart#redraw|chart.redraw()} after.
|
|
39016
38940
|
*
|
|
39017
|
-
* @
|
|
39018
|
-
* @
|
|
38941
|
+
* @emits Highcharts.Series#event:hide
|
|
38942
|
+
* @emits Highcharts.Series#event:show
|
|
39019
38943
|
*/
|
|
39020
38944
|
Series.prototype.setVisible = function (vis, redraw) {
|
|
39021
38945
|
var series = this,
|
|
@@ -39079,7 +39003,7 @@
|
|
|
39079
39003
|
* Toggle visibility from a button
|
|
39080
39004
|
*
|
|
39081
39005
|
* @function Highcharts.Series#show
|
|
39082
|
-
* @
|
|
39006
|
+
* @emits Highcharts.Series#event:show
|
|
39083
39007
|
*/
|
|
39084
39008
|
Series.prototype.show = function () {
|
|
39085
39009
|
this.setVisible(true);
|
|
@@ -39093,7 +39017,7 @@
|
|
|
39093
39017
|
* Toggle visibility from a button
|
|
39094
39018
|
*
|
|
39095
39019
|
* @function Highcharts.Series#hide
|
|
39096
|
-
* @
|
|
39020
|
+
* @emits Highcharts.Series#event:hide
|
|
39097
39021
|
*/
|
|
39098
39022
|
Series.prototype.hide = function () {
|
|
39099
39023
|
this.setVisible(false);
|
|
@@ -39114,8 +39038,8 @@
|
|
|
39114
39038
|
* True to select the series, false to unselect. If undefined, the selection
|
|
39115
39039
|
* state is toggled.
|
|
39116
39040
|
*
|
|
39117
|
-
* @
|
|
39118
|
-
* @
|
|
39041
|
+
* @emits Highcharts.Series#event:select
|
|
39042
|
+
* @emits Highcharts.Series#event:unselect
|
|
39119
39043
|
*/
|
|
39120
39044
|
Series.prototype.select = function (selected) {
|
|
39121
39045
|
var series = this;
|
|
@@ -39133,10 +39057,6 @@
|
|
|
39133
39057
|
* Checks if a tooltip should be shown for a given point.
|
|
39134
39058
|
*
|
|
39135
39059
|
* @private
|
|
39136
|
-
* @param {number} plotX
|
|
39137
|
-
* @param {number} plotY
|
|
39138
|
-
* @param {Highcharts.ChartIsInsideOptionsObject} [options]
|
|
39139
|
-
* @return {boolean}
|
|
39140
39060
|
*/
|
|
39141
39061
|
Series.prototype.shouldShowTooltip = function (plotX, plotY, options) {
|
|
39142
39062
|
if (options === void 0) { options = {}; }
|
|
@@ -39573,7 +39493,7 @@
|
|
|
39573
39493
|
if (scrollableMinWidth) {
|
|
39574
39494
|
this.scrollablePixelsX = scrollablePixelsX = Math.max(0, scrollableMinWidth - this.chartWidth);
|
|
39575
39495
|
if (scrollablePixelsX) {
|
|
39576
|
-
this.scrollablePlotBox = this.renderer.scrollablePlotBox = merge(this.plotBox);
|
|
39496
|
+
this.scrollablePlotBox = (this.renderer.scrollablePlotBox = merge(this.plotBox));
|
|
39577
39497
|
this.plotBox.width = this.plotWidth += scrollablePixelsX;
|
|
39578
39498
|
if (this.inverted) {
|
|
39579
39499
|
this.clipBox.height += scrollablePixelsX;
|
|
@@ -39591,7 +39511,7 @@
|
|
|
39591
39511
|
else if (scrollableMinHeight) {
|
|
39592
39512
|
this.scrollablePixelsY = scrollablePixelsY = Math.max(0, scrollableMinHeight - this.chartHeight);
|
|
39593
39513
|
if (scrollablePixelsY) {
|
|
39594
|
-
this.scrollablePlotBox = this.renderer.scrollablePlotBox = merge(this.plotBox);
|
|
39514
|
+
this.scrollablePlotBox = (this.renderer.scrollablePlotBox = merge(this.plotBox));
|
|
39595
39515
|
this.plotBox.height = this.plotHeight += scrollablePixelsY;
|
|
39596
39516
|
if (this.inverted) {
|
|
39597
39517
|
this.clipBox.width += scrollablePixelsY;
|
|
@@ -40135,7 +40055,8 @@
|
|
|
40135
40055
|
chart = axis.chart,
|
|
40136
40056
|
renderer = chart.renderer,
|
|
40137
40057
|
stacks = stacking.stacks,
|
|
40138
|
-
stackLabelsAnim = axis.options.stackLabels &&
|
|
40058
|
+
stackLabelsAnim = axis.options.stackLabels &&
|
|
40059
|
+
axis.options.stackLabels.animation,
|
|
40139
40060
|
animationConfig = getDeferredAnimation(chart,
|
|
40140
40061
|
stackLabelsAnim || false),
|
|
40141
40062
|
stackTotalGroup = stacking.stackTotalGroup = (stacking.stackTotalGroup ||
|
|
@@ -40282,6 +40203,7 @@
|
|
|
40282
40203
|
r: options.borderRadius || 0,
|
|
40283
40204
|
text: str,
|
|
40284
40205
|
rotation: options.rotation,
|
|
40206
|
+
// set default padding to 5 as it is in datalabels #12308
|
|
40285
40207
|
padding: pick(options.padding, 5),
|
|
40286
40208
|
visibility: 'hidden' // hidden until setOffset is called
|
|
40287
40209
|
};
|
|
@@ -40357,7 +40279,8 @@
|
|
|
40357
40279
|
}
|
|
40358
40280
|
else {
|
|
40359
40281
|
boxOffsetX = chart.inverted ?
|
|
40360
|
-
(isNegative ? bBox.width + padding : -padding) :
|
|
40282
|
+
(isNegative ? bBox.width + padding : -padding) :
|
|
40283
|
+
bBox.width / 2;
|
|
40361
40284
|
}
|
|
40362
40285
|
}
|
|
40363
40286
|
boxOffsetY = chart.inverted ?
|
|
@@ -40402,22 +40325,6 @@
|
|
|
40402
40325
|
/**
|
|
40403
40326
|
* @private
|
|
40404
40327
|
* @function Highcharts.StackItem#getStackBox
|
|
40405
|
-
*
|
|
40406
|
-
* @param {Highcharts.Chart} chart
|
|
40407
|
-
*
|
|
40408
|
-
* @param {Highcharts.StackItem} stackItem
|
|
40409
|
-
*
|
|
40410
|
-
* @param {number} x
|
|
40411
|
-
*
|
|
40412
|
-
* @param {number} y
|
|
40413
|
-
*
|
|
40414
|
-
* @param {number} xWidth
|
|
40415
|
-
*
|
|
40416
|
-
* @param {number} h
|
|
40417
|
-
*
|
|
40418
|
-
* @param {Highcharts.Axis} axis
|
|
40419
|
-
*
|
|
40420
|
-
* @return {Highcharts.BBoxObject}
|
|
40421
40328
|
*/
|
|
40422
40329
|
StackItem.prototype.getStackBox = function (chart, stackItem, x, y, xWidth, h, axis) {
|
|
40423
40330
|
var reversed = stackItem.axis.reversed,
|
|
@@ -40427,7 +40334,8 @@
|
|
|
40427
40334
|
neg = (stackItem.isNegative && !reversed) ||
|
|
40428
40335
|
(!stackItem.isNegative && reversed); // #4056
|
|
40429
40336
|
return {
|
|
40430
|
-
x: inverted ?
|
|
40337
|
+
x: inverted ?
|
|
40338
|
+
(neg ? y - axis.right : y - h + axis.pos - chart.plotLeft) :
|
|
40431
40339
|
x + chart.xAxis[0].transB - chart.plotLeft,
|
|
40432
40340
|
y: inverted ?
|
|
40433
40341
|
axis.height - x - xWidth :
|
|
@@ -40671,11 +40579,6 @@
|
|
|
40671
40579
|
*
|
|
40672
40580
|
* @private
|
|
40673
40581
|
* @function Highcharts.Series#getStackIndicator
|
|
40674
|
-
* @param {Highcharts.StackItemIndicatorObject|undefined} stackIndicator
|
|
40675
|
-
* @param {number} x
|
|
40676
|
-
* @param {number} index
|
|
40677
|
-
* @param {string} [key]
|
|
40678
|
-
* @return {Highcharts.StackItemIndicatorObject}
|
|
40679
40582
|
*/
|
|
40680
40583
|
Series.prototype.getStackIndicator = function (stackIndicator, x, index, key) {
|
|
40681
40584
|
// Update stack indicator, when:
|
|
@@ -41489,7 +41392,9 @@
|
|
|
41489
41392
|
}
|
|
41490
41393
|
isNull = points[i].isNull;
|
|
41491
41394
|
plotX = pick(points[i].rectPlotX, points[i].plotX);
|
|
41492
|
-
yBottom = stacking ?
|
|
41395
|
+
yBottom = stacking ?
|
|
41396
|
+
pick(points[i].yBottom, translatedThreshold) :
|
|
41397
|
+
translatedThreshold;
|
|
41493
41398
|
if (!isNull || connectNulls) {
|
|
41494
41399
|
if (!connectNulls) {
|
|
41495
41400
|
addDummyPoints(i, i - 1, 'left');
|
|
@@ -41593,24 +41498,22 @@
|
|
|
41593
41498
|
var si = yAxisSeries[i].index;
|
|
41594
41499
|
stackPoint = otherStack.points[si];
|
|
41595
41500
|
if (!stackPoint) {
|
|
41596
|
-
// If the next point in this series
|
|
41597
|
-
//
|
|
41598
|
-
//
|
|
41599
|
-
// point.rightNull = true.
|
|
41501
|
+
// If the next point in this series is
|
|
41502
|
+
// missing, mark the point with
|
|
41503
|
+
// point.leftNull or point.rightNull = true.
|
|
41600
41504
|
if (si === series.index) {
|
|
41601
41505
|
pointMap[x][nullName] = true;
|
|
41602
|
-
// If there are missing points in
|
|
41603
|
-
//
|
|
41604
|
-
//
|
|
41605
|
-
// to
|
|
41606
|
-
// and add a hiatus to the left or
|
|
41506
|
+
// If there are missing points in the next
|
|
41507
|
+
// stack in any of the series below this
|
|
41508
|
+
// one, we need to substract the missing
|
|
41509
|
+
// values and add a hiatus to the left or
|
|
41607
41510
|
// right.
|
|
41608
41511
|
}
|
|
41609
41512
|
else if (visibleSeries_1[i]) {
|
|
41610
|
-
stackedValues =
|
|
41611
|
-
stack[x].points[si];
|
|
41513
|
+
stackedValues = stack[x].points[si];
|
|
41612
41514
|
if (stackedValues) {
|
|
41613
|
-
cliff -= stackedValues[1] -
|
|
41515
|
+
cliff -= (stackedValues[1] -
|
|
41516
|
+
stackedValues[0]);
|
|
41614
41517
|
}
|
|
41615
41518
|
}
|
|
41616
41519
|
}
|
|
@@ -41959,14 +41862,6 @@
|
|
|
41959
41862
|
*
|
|
41960
41863
|
* @private
|
|
41961
41864
|
* @function Highcharts.seriesTypes.spline#getPointSpline
|
|
41962
|
-
*
|
|
41963
|
-
* @param {Array<Highcharts.Point>}
|
|
41964
|
-
*
|
|
41965
|
-
* @param {Highcharts.Point} point
|
|
41966
|
-
*
|
|
41967
|
-
* @param {number} i
|
|
41968
|
-
*
|
|
41969
|
-
* @return {Highcharts.SVGPathArray}
|
|
41970
41865
|
*/
|
|
41971
41866
|
SplineSeries.prototype.getPointSpline = function (points, point, i) {
|
|
41972
41867
|
var
|
|
@@ -42501,7 +42396,9 @@
|
|
|
42501
42396
|
options = series.options,
|
|
42502
42397
|
inverted = this.chart.inverted,
|
|
42503
42398
|
attr = {},
|
|
42504
|
-
translateProp = inverted ?
|
|
42399
|
+
translateProp = inverted ?
|
|
42400
|
+
'translateX' :
|
|
42401
|
+
'translateY';
|
|
42505
42402
|
var translateStart,
|
|
42506
42403
|
translatedThreshold;
|
|
42507
42404
|
if (init) {
|
|
@@ -42562,7 +42459,6 @@
|
|
|
42562
42459
|
*
|
|
42563
42460
|
* @private
|
|
42564
42461
|
* @function Highcharts.seriesTypes.column#getColumnMetrics
|
|
42565
|
-
* @return {Highcharts.ColumnMetricsObject}
|
|
42566
42462
|
*/
|
|
42567
42463
|
ColumnSeries.prototype.getColumnMetrics = function () {
|
|
42568
42464
|
var series = this,
|
|
@@ -42593,7 +42489,8 @@
|
|
|
42593
42489
|
!series.chart.options.chart.ignoreHiddenSeries) &&
|
|
42594
42490
|
yAxis.len === otherYAxis.len &&
|
|
42595
42491
|
yAxis.pos === otherYAxis.pos) { // #642, #2086
|
|
42596
|
-
if (otherOptions.stacking &&
|
|
42492
|
+
if (otherOptions.stacking &&
|
|
42493
|
+
otherOptions.stacking !== 'group') {
|
|
42597
42494
|
stackKey = otherSeries.stackKey;
|
|
42598
42495
|
if (typeof stackGroups[stackKey] ===
|
|
42599
42496
|
'undefined') {
|
|
@@ -42705,21 +42602,21 @@
|
|
|
42705
42602
|
if (!point.isNull && metrics.columnCount > 1) {
|
|
42706
42603
|
var indexInCategory_1 = 0;
|
|
42707
42604
|
var totalInCategory_1 = 0;
|
|
42708
|
-
// Loop over all the stacks on the Y axis. When stacking is
|
|
42709
|
-
//
|
|
42710
|
-
//
|
|
42711
|
-
//
|
|
42712
|
-
//
|
|
42605
|
+
// Loop over all the stacks on the Y axis. When stacking is enabled,
|
|
42606
|
+
// these are real point stacks. When stacking is not enabled, but
|
|
42607
|
+
// `centerInCategory` is true, there is one stack handling the
|
|
42608
|
+
// grouping of points in each category. This is done in the
|
|
42609
|
+
// `setGroupedPoints` function.
|
|
42713
42610
|
objectEach(this.yAxis.stacking && this.yAxis.stacking.stacks, function (stack) {
|
|
42714
42611
|
if (typeof point.x === 'number') {
|
|
42715
42612
|
var stackItem = stack[point.x.toString()];
|
|
42716
42613
|
if (stackItem) {
|
|
42717
42614
|
var pointValues = stackItem.points[_this.index],
|
|
42718
42615
|
total = stackItem.total;
|
|
42719
|
-
// If true `stacking` is enabled, count the
|
|
42720
|
-
//
|
|
42721
|
-
//
|
|
42722
|
-
//
|
|
42616
|
+
// If true `stacking` is enabled, count the total
|
|
42617
|
+
// number of non-null stacks in the category, and
|
|
42618
|
+
// note which index this point is within those
|
|
42619
|
+
// stacks.
|
|
42723
42620
|
if (stacking) {
|
|
42724
42621
|
if (pointValues) {
|
|
42725
42622
|
indexInCategory_1 = totalInCategory_1;
|
|
@@ -42727,8 +42624,8 @@
|
|
|
42727
42624
|
if (stackItem.hasValidPoints) {
|
|
42728
42625
|
totalInCategory_1++;
|
|
42729
42626
|
}
|
|
42730
|
-
// If `stacking` is not enabled, look for the
|
|
42731
|
-
//
|
|
42627
|
+
// If `stacking` is not enabled, look for the index
|
|
42628
|
+
// and total of the `group` stack.
|
|
42732
42629
|
}
|
|
42733
42630
|
else if (isArray(pointValues)) {
|
|
42734
42631
|
indexInCategory_1 = pointValues[1];
|
|
@@ -43931,8 +43828,10 @@
|
|
|
43931
43828
|
// Merge in series options for the point.
|
|
43932
43829
|
// @note dataLabelAttribs (like pointAttribs) would eradicate
|
|
43933
43830
|
// the need for dlOptions, and simplify the section below.
|
|
43934
|
-
pointOptions = splat(mergeArrays(seriesDlOptions,
|
|
43935
|
-
|
|
43831
|
+
pointOptions = splat(mergeArrays(seriesDlOptions,
|
|
43832
|
+
// dlOptions is used in treemaps
|
|
43833
|
+
(point.dlOptions ||
|
|
43834
|
+
(point.options && point.options.dataLabels))));
|
|
43936
43835
|
// Handle each individual data label for this point
|
|
43937
43836
|
pointOptions.forEach(function (labelOptions, i) {
|
|
43938
43837
|
// Options for one datalabel
|
|
@@ -43950,8 +43849,8 @@
|
|
|
43950
43849
|
style,
|
|
43951
43850
|
rotation,
|
|
43952
43851
|
attr,
|
|
43953
|
-
dataLabel = point.dataLabels ?
|
|
43954
|
-
point.dataLabel;
|
|
43852
|
+
dataLabel = point.dataLabels ?
|
|
43853
|
+
point.dataLabels[i] : point.dataLabel;
|
|
43955
43854
|
var labelDistance = pick(labelOptions.distance,
|
|
43956
43855
|
point.labelDistance),
|
|
43957
43856
|
isNew = !dataLabel;
|
|
@@ -44006,8 +43905,10 @@
|
|
|
44006
43905
|
}
|
|
44007
43906
|
// If the point is outside the plot area, destroy it. #678,
|
|
44008
43907
|
// #820
|
|
44009
|
-
if (dataLabel && (!labelEnabled ||
|
|
44010
|
-
|
|
43908
|
+
if (dataLabel && (!labelEnabled ||
|
|
43909
|
+
!defined(labelText) ||
|
|
43910
|
+
!!dataLabel.div !== !!labelOptions.useHTML)) {
|
|
43911
|
+
point.dataLabel = dataLabel =
|
|
44011
43912
|
point.dataLabel && point.dataLabel.destroy();
|
|
44012
43913
|
if (point.dataLabels) {
|
|
44013
43914
|
// Remove point.dataLabels if this was the last one
|
|
@@ -44034,11 +43935,11 @@
|
|
|
44034
43935
|
}
|
|
44035
43936
|
}
|
|
44036
43937
|
}
|
|
44037
|
-
// Individual labels are disabled if the are explicitly
|
|
44038
|
-
// disabled in the point options, or if they fall outside
|
|
44039
|
-
// the plot area.
|
|
44040
43938
|
}
|
|
44041
|
-
|
|
43939
|
+
// Individual labels are disabled if the are explicitly
|
|
43940
|
+
// disabled in the point options, or if they fall outside
|
|
43941
|
+
// the plot area.
|
|
43942
|
+
if (labelEnabled && defined(labelText)) {
|
|
44042
43943
|
if (!dataLabel) {
|
|
44043
43944
|
// Create new label element
|
|
44044
43945
|
point.dataLabels = point.dataLabels || [];
|
|
@@ -44052,7 +43953,8 @@
|
|
|
44052
43953
|
if (!i) {
|
|
44053
43954
|
point.dataLabel = dataLabel;
|
|
44054
43955
|
}
|
|
44055
|
-
dataLabel.addClass(' highcharts-data-label-color-' +
|
|
43956
|
+
dataLabel.addClass(' highcharts-data-label-color-' +
|
|
43957
|
+
point.colorIndex +
|
|
44056
43958
|
' ' + (labelOptions.className || '') +
|
|
44057
43959
|
( // #3398
|
|
44058
43960
|
labelOptions.useHTML ?
|
|
@@ -44080,7 +43982,7 @@
|
|
|
44080
43982
|
if (point.dataLabelPath &&
|
|
44081
43983
|
!labelOptions.textPath.enabled) {
|
|
44082
43984
|
// clean the DOM
|
|
44083
|
-
point.dataLabelPath = point.dataLabelPath.destroy();
|
|
43985
|
+
point.dataLabelPath = (point.dataLabelPath.destroy());
|
|
44084
43986
|
}
|
|
44085
43987
|
}
|
|
44086
43988
|
// Now the data label is created and placed at 0,0, so
|
|
@@ -45200,10 +45102,10 @@
|
|
|
45200
45102
|
* @param {boolean} sliced
|
|
45201
45103
|
* When undefined, the slice state is toggled.
|
|
45202
45104
|
*
|
|
45203
|
-
* @param {boolean} redraw
|
|
45105
|
+
* @param {boolean} [redraw]
|
|
45204
45106
|
* Whether to redraw the chart. True by default.
|
|
45205
45107
|
*
|
|
45206
|
-
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>}
|
|
45108
|
+
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
|
|
45207
45109
|
* Animation options.
|
|
45208
45110
|
*/
|
|
45209
45111
|
PiePoint.prototype.slice = function (sliced, redraw, animation) {
|
|
@@ -46279,7 +46181,7 @@
|
|
|
46279
46181
|
*/
|
|
46280
46182
|
borderWidth: 1,
|
|
46281
46183
|
/**
|
|
46282
|
-
* @ignore-
|
|
46184
|
+
* @ignore-option
|
|
46283
46185
|
* @private
|
|
46284
46186
|
*/
|
|
46285
46187
|
lineWidth: void 0,
|
|
@@ -47057,7 +46959,8 @@
|
|
|
47057
46959
|
if (alignValue) {
|
|
47058
46960
|
xOffset = +alignValue * boxWidth;
|
|
47059
46961
|
}
|
|
47060
|
-
else if (isNumber(label.x) &&
|
|
46962
|
+
else if (isNumber(label.x) &&
|
|
46963
|
+
Math.round(label.x) !== label.translateX) {
|
|
47061
46964
|
xOffset = label.x - label.translateX;
|
|
47062
46965
|
}
|
|
47063
46966
|
return {
|
|
@@ -47119,10 +47022,11 @@
|
|
|
47119
47022
|
* @private
|
|
47120
47023
|
* @function hideOrShow
|
|
47121
47024
|
* @param {Highcharts.SVGElement} label
|
|
47122
|
-
*
|
|
47025
|
+
* The label.
|
|
47123
47026
|
* @param {Highcharts.Chart} chart
|
|
47124
|
-
*
|
|
47027
|
+
* The chart that contains the label.
|
|
47125
47028
|
* @return {boolean}
|
|
47029
|
+
* Whether label is affected
|
|
47126
47030
|
*/
|
|
47127
47031
|
function hideOrShow(label, chart) {
|
|
47128
47032
|
var complete,
|
|
@@ -47131,13 +47035,15 @@
|
|
|
47131
47035
|
if (label) {
|
|
47132
47036
|
newOpacity = label.newOpacity;
|
|
47133
47037
|
if (label.oldOpacity !== newOpacity) {
|
|
47134
|
-
// Make sure the label is completely hidden to avoid catching
|
|
47135
|
-
//
|
|
47038
|
+
// Make sure the label is completely hidden to avoid catching clicks
|
|
47039
|
+
// (#4362)
|
|
47136
47040
|
if (label.alignAttr && label.placed) { // data labels
|
|
47137
47041
|
label[newOpacity ? 'removeClass' : 'addClass']('highcharts-data-label-hidden');
|
|
47138
47042
|
complete = function () {
|
|
47139
47043
|
if (!chart.styledMode) {
|
|
47140
|
-
label.css({
|
|
47044
|
+
label.css({
|
|
47045
|
+
pointerEvents: newOpacity ? 'auto' : 'none'
|
|
47046
|
+
});
|
|
47141
47047
|
}
|
|
47142
47048
|
};
|
|
47143
47049
|
isLabelAffected = true;
|
|
@@ -47299,8 +47205,7 @@
|
|
|
47299
47205
|
fn = condition.callback || function () {
|
|
47300
47206
|
return (this.chartWidth <= pick(condition.maxWidth,
|
|
47301
47207
|
Number.MAX_VALUE) &&
|
|
47302
|
-
this.chartHeight <=
|
|
47303
|
-
pick(condition.maxHeight,
|
|
47208
|
+
this.chartHeight <= pick(condition.maxHeight,
|
|
47304
47209
|
Number.MAX_VALUE) &&
|
|
47305
47210
|
this.chartWidth >= pick(condition.minWidth, 0) &&
|
|
47306
47211
|
this.chartHeight >= pick(condition.minHeight, 0));
|
|
@@ -47343,7 +47248,7 @@
|
|
|
47343
47248
|
mergedOptions.isResponsiveOptions = true;
|
|
47344
47249
|
// Stringified key for the rules that currently apply.
|
|
47345
47250
|
ruleIds = (ruleIds.toString() || void 0);
|
|
47346
|
-
var currentRuleIds = currentResponsive && currentResponsive.ruleIds;
|
|
47251
|
+
var currentRuleIds = (currentResponsive && currentResponsive.ruleIds);
|
|
47347
47252
|
// Changes in what rules apply
|
|
47348
47253
|
if (ruleIds !== currentRuleIds) {
|
|
47349
47254
|
// Undo previous rules. Before we apply a new set of rules, we
|
|
@@ -47831,12 +47736,12 @@
|
|
|
47831
47736
|
while (i--) {
|
|
47832
47737
|
translated = translatedArr[i];
|
|
47833
47738
|
distance = Math.abs(lastTranslated - translated);
|
|
47834
|
-
// #4175 - when axis is reversed, the distance, is negative
|
|
47835
|
-
//
|
|
47836
|
-
//
|
|
47739
|
+
// #4175 - when axis is reversed, the distance, is negative but
|
|
47740
|
+
// tickPixelIntervalOption positive, so we need to compare the
|
|
47741
|
+
// same values
|
|
47837
47742
|
// Remove ticks that are closer than 0.6 times the pixel
|
|
47838
|
-
// interval from the one to the right, but not if it is
|
|
47839
|
-
//
|
|
47743
|
+
// interval from the one to the right, but not if it is close to
|
|
47744
|
+
// the median distance (#748).
|
|
47840
47745
|
if (lastTranslated &&
|
|
47841
47746
|
distance < tickPixelIntervalOption * 0.8 &&
|
|
47842
47747
|
(medianDistance === null || distance < medianDistance * 0.8)) {
|
|
@@ -47868,11 +47773,8 @@
|
|
|
47868
47773
|
*
|
|
47869
47774
|
* @private
|
|
47870
47775
|
* @function Highcharts.Axis#index2val
|
|
47871
|
-
*
|
|
47872
47776
|
* @param {number} index
|
|
47873
|
-
*
|
|
47874
|
-
*
|
|
47875
|
-
* @return {number}
|
|
47777
|
+
* The index value of searched point
|
|
47876
47778
|
*/
|
|
47877
47779
|
function index2val(index) {
|
|
47878
47780
|
var axis = this,
|
|
@@ -47909,11 +47811,8 @@
|
|
|
47909
47811
|
*
|
|
47910
47812
|
* @private
|
|
47911
47813
|
* @function Highcharts.Axis#lin2val
|
|
47912
|
-
*
|
|
47913
47814
|
* @param {number} val
|
|
47914
|
-
*
|
|
47915
|
-
*
|
|
47916
|
-
* @return {number}
|
|
47815
|
+
* The linear abstracted value.
|
|
47917
47816
|
*/
|
|
47918
47817
|
function lin2val(val) {
|
|
47919
47818
|
var axis = this,
|
|
@@ -47926,37 +47825,37 @@
|
|
|
47926
47825
|
return val;
|
|
47927
47826
|
}
|
|
47928
47827
|
// Convert back from modivied value to pixels. // #15970
|
|
47929
|
-
var pixelVal = (val - localMin) * localA +
|
|
47828
|
+
var pixelVal = (val - localMin) * localA +
|
|
47829
|
+
axis.minPixelPadding,
|
|
47930
47830
|
isInside = pixelVal > 0 && pixelVal < axis.left + axis.len;
|
|
47931
|
-
// If the value is not inside the plot area,
|
|
47932
|
-
// use the extended positions.
|
|
47831
|
+
// If the value is not inside the plot area, use the extended positions.
|
|
47933
47832
|
// (array contains also points that are outside of the plotArea).
|
|
47934
47833
|
if (!isInside) {
|
|
47935
47834
|
// When iterating for the first time,
|
|
47936
47835
|
// get the extended ordinal positional and assign them.
|
|
47937
47836
|
if (!ordinal.extendedOrdinalPositions) {
|
|
47938
|
-
ordinal.extendedOrdinalPositions = ordinal.getExtendedPositions();
|
|
47837
|
+
ordinal.extendedOrdinalPositions = (ordinal.getExtendedPositions());
|
|
47939
47838
|
}
|
|
47940
47839
|
positions = ordinal.extendedOrdinalPositions;
|
|
47941
47840
|
}
|
|
47942
|
-
// In some cases (especially in early stages of the chart creation)
|
|
47943
|
-
//
|
|
47841
|
+
// In some cases (especially in early stages of the chart creation) the
|
|
47842
|
+
// getExtendedPositions might return undefined.
|
|
47944
47843
|
if (positions && positions.length) {
|
|
47945
47844
|
var index = ordinal.getIndexOfPoint(pixelVal,
|
|
47946
47845
|
positions),
|
|
47947
47846
|
mantissa = correctFloat(index % 1);
|
|
47948
|
-
// Check if the index is inside position array.
|
|
47949
|
-
//
|
|
47847
|
+
// Check if the index is inside position array. If true,
|
|
47848
|
+
// read/approximate value for that exact index.
|
|
47950
47849
|
if (index >= 0 && index < positions.length - 1) {
|
|
47951
47850
|
var leftNeighbour = positions[Math.floor(index)],
|
|
47952
47851
|
rightNeighbour = positions[Math.ceil(index)],
|
|
47953
47852
|
distance = rightNeighbour - leftNeighbour;
|
|
47954
47853
|
return positions[Math.floor(index)] + mantissa * distance;
|
|
47955
47854
|
}
|
|
47956
|
-
// For cases when the index is not in the extended ordinal
|
|
47957
|
-
//
|
|
47958
|
-
//
|
|
47959
|
-
//
|
|
47855
|
+
// For cases when the index is not in the extended ordinal position
|
|
47856
|
+
// array, like when the value we are looking for exceed the
|
|
47857
|
+
// available data, approximate that value based on the calculated
|
|
47858
|
+
// slope.
|
|
47960
47859
|
var positionsLength = positions.length,
|
|
47961
47860
|
firstPositionsValue = positions[0],
|
|
47962
47861
|
lastPositionsValue = positions[positionsLength - 1],
|
|
@@ -47969,8 +47868,8 @@
|
|
|
47969
47868
|
return val;
|
|
47970
47869
|
}
|
|
47971
47870
|
/**
|
|
47972
|
-
* Internal function to calculate the precise index
|
|
47973
|
-
*
|
|
47871
|
+
* Internal function to calculate the precise index in ordinalPositions
|
|
47872
|
+
* array.
|
|
47974
47873
|
* @private
|
|
47975
47874
|
*/
|
|
47976
47875
|
function getIndexInArray(ordinalPositions, val) {
|
|
@@ -48068,7 +47967,11 @@
|
|
|
48068
47967
|
// how many ordinal units did we move?
|
|
48069
47968
|
movedUnits = (mouseDownX - chartX) / pointPixelWidth,
|
|
48070
47969
|
// get index of all the chart's points
|
|
48071
|
-
extendedAxis = {
|
|
47970
|
+
extendedAxis = {
|
|
47971
|
+
ordinal: {
|
|
47972
|
+
positions: xAxis.ordinal.getExtendedPositions()
|
|
47973
|
+
}
|
|
47974
|
+
},
|
|
48072
47975
|
index2val_1 = xAxis.index2val,
|
|
48073
47976
|
val2lin_1 = xAxis.val2lin;
|
|
48074
47977
|
var trimmedRange = void 0,
|
|
@@ -48088,37 +47991,41 @@
|
|
|
48088
47991
|
}
|
|
48089
47992
|
if (movedUnits < 0) {
|
|
48090
47993
|
searchAxisLeft = extendedAxis;
|
|
48091
|
-
searchAxisRight = xAxis.ordinal.positions ?
|
|
47994
|
+
searchAxisRight = xAxis.ordinal.positions ?
|
|
47995
|
+
xAxis : extendedAxis;
|
|
48092
47996
|
}
|
|
48093
47997
|
else {
|
|
48094
|
-
searchAxisLeft = xAxis.ordinal.positions ?
|
|
47998
|
+
searchAxisLeft = xAxis.ordinal.positions ?
|
|
47999
|
+
xAxis : extendedAxis;
|
|
48095
48000
|
searchAxisRight = extendedAxis;
|
|
48096
48001
|
}
|
|
48097
|
-
// In grouped data series, the last ordinal position
|
|
48098
|
-
//
|
|
48099
|
-
//
|
|
48100
|
-
//
|
|
48101
|
-
// the plot area.
|
|
48002
|
+
// In grouped data series, the last ordinal position represents
|
|
48003
|
+
// the grouped data, which is to the left of the real data max.
|
|
48004
|
+
// If we don't compensate for this, we will be allowed to pan
|
|
48005
|
+
// grouped data series passed the right of the plot area.
|
|
48102
48006
|
ordinalPositions = searchAxisRight.ordinal.positions;
|
|
48103
48007
|
if (dataMax >
|
|
48104
48008
|
ordinalPositions[ordinalPositions.length - 1]) {
|
|
48105
48009
|
ordinalPositions.push(dataMax);
|
|
48106
48010
|
}
|
|
48107
|
-
// Get the new min and max values by getting the ordinal
|
|
48108
|
-
//
|
|
48109
|
-
//
|
|
48110
|
-
//
|
|
48111
|
-
//
|
|
48112
|
-
// smaller and faster.
|
|
48011
|
+
// Get the new min and max values by getting the ordinal index
|
|
48012
|
+
// for the current extreme, then add the moved units and
|
|
48013
|
+
// translate back to values. This happens on the extended
|
|
48014
|
+
// ordinal positions if the new position is out of range, else
|
|
48015
|
+
// it happens on the current x axis which is smaller and faster.
|
|
48113
48016
|
chart.fixedRange = max - min;
|
|
48114
|
-
trimmedRange = xAxis.navigatorAxis
|
|
48115
|
-
|
|
48017
|
+
trimmedRange = xAxis.navigatorAxis
|
|
48018
|
+
.toFixedRange(void 0, void 0, index2val_1.apply(searchAxisLeft, [
|
|
48019
|
+
val2lin_1.apply(searchAxisLeft, [min, true]) +
|
|
48020
|
+
movedUnits
|
|
48116
48021
|
]), index2val_1.apply(searchAxisRight, [
|
|
48117
|
-
val2lin_1.apply(searchAxisRight, [max, true]) +
|
|
48022
|
+
val2lin_1.apply(searchAxisRight, [max, true]) +
|
|
48023
|
+
movedUnits
|
|
48118
48024
|
]));
|
|
48119
48025
|
// Apply it if it is within the available data range
|
|
48120
48026
|
if (trimmedRange.min >= Math.min(extremes.dataMin, min) &&
|
|
48121
|
-
trimmedRange.max <= Math.max(dataMax, max) +
|
|
48027
|
+
trimmedRange.max <= Math.max(dataMax, max) +
|
|
48028
|
+
overscroll) {
|
|
48122
48029
|
xAxis.setExtremes(trimmedRange.min, trimmedRange.max, true, false, { trigger: 'pan' });
|
|
48123
48030
|
}
|
|
48124
48031
|
chart.mouseDownX = chartX; // set new reference for next run
|
|
@@ -48158,14 +48065,10 @@
|
|
|
48158
48065
|
*
|
|
48159
48066
|
* @private
|
|
48160
48067
|
* @function Highcharts.Axis#val2lin
|
|
48161
|
-
*
|
|
48162
48068
|
* @param {number} val
|
|
48163
48069
|
* The axis value.
|
|
48164
|
-
*
|
|
48165
48070
|
* @param {boolean} [toIndex]
|
|
48166
48071
|
* Whether to return the index in the ordinalPositions or the new value.
|
|
48167
|
-
*
|
|
48168
|
-
* @return {number}
|
|
48169
48072
|
*/
|
|
48170
48073
|
function val2lin(val, toIndex) {
|
|
48171
48074
|
var axis = this,
|
|
@@ -48212,7 +48115,8 @@
|
|
|
48212
48115
|
val <=
|
|
48213
48116
|
extendedOrdinalPositions[length_2 - 1]) {
|
|
48214
48117
|
// Return Value
|
|
48215
|
-
ordinalIndex = getIndexInArray(extendedOrdinalPositions, val) -
|
|
48118
|
+
ordinalIndex = getIndexInArray(extendedOrdinalPositions, val) -
|
|
48119
|
+
originalPositionsReference;
|
|
48216
48120
|
}
|
|
48217
48121
|
else {
|
|
48218
48122
|
// Since ordinal.slope is the average distance between 2
|
|
@@ -48294,7 +48198,9 @@
|
|
|
48294
48198
|
axis.series.forEach(function (series, i) {
|
|
48295
48199
|
uniqueOrdinalPositions = [];
|
|
48296
48200
|
if ((!ignoreHiddenSeries || series.visible !== false) &&
|
|
48297
|
-
(series
|
|
48201
|
+
(series
|
|
48202
|
+
.takeOrdinalPosition !== false ||
|
|
48203
|
+
hasBreaks)) {
|
|
48298
48204
|
// concatenate the processed X data into the existing
|
|
48299
48205
|
// positions, or the empty array
|
|
48300
48206
|
ordinalPositions = ordinalPositions.concat(series.processedXData);
|
|
@@ -48310,13 +48216,15 @@
|
|
|
48310
48216
|
if (len) {
|
|
48311
48217
|
i = 0;
|
|
48312
48218
|
while (i < len - 1) {
|
|
48313
|
-
if (ordinalPositions[i] !==
|
|
48219
|
+
if (ordinalPositions[i] !==
|
|
48220
|
+
ordinalPositions[i + 1]) {
|
|
48314
48221
|
uniqueOrdinalPositions.push(ordinalPositions[i + 1]);
|
|
48315
48222
|
}
|
|
48316
48223
|
i++;
|
|
48317
48224
|
}
|
|
48318
48225
|
// Check first item:
|
|
48319
|
-
if (uniqueOrdinalPositions[0] !==
|
|
48226
|
+
if (uniqueOrdinalPositions[0] !==
|
|
48227
|
+
ordinalPositions[0]) {
|
|
48320
48228
|
uniqueOrdinalPositions.unshift(ordinalPositions[0]);
|
|
48321
48229
|
}
|
|
48322
48230
|
ordinalPositions = uniqueOrdinalPositions;
|
|
@@ -48332,7 +48240,8 @@
|
|
|
48332
48240
|
dist = ordinalPositions[1] - ordinalPositions[0];
|
|
48333
48241
|
i = len - 1;
|
|
48334
48242
|
while (i-- && !useOrdinal) {
|
|
48335
|
-
if (ordinalPositions[i + 1] - ordinalPositions[i] !==
|
|
48243
|
+
if (ordinalPositions[i + 1] - ordinalPositions[i] !==
|
|
48244
|
+
dist) {
|
|
48336
48245
|
useOrdinal = true;
|
|
48337
48246
|
}
|
|
48338
48247
|
}
|
|
@@ -48341,8 +48250,8 @@
|
|
|
48341
48250
|
// spaced.
|
|
48342
48251
|
if (!axis.options.keepOrdinalPadding &&
|
|
48343
48252
|
(ordinalPositions[0] - min > dist ||
|
|
48344
|
-
max -
|
|
48345
|
-
dist)) {
|
|
48253
|
+
(max -
|
|
48254
|
+
ordinalPositions[ordinalPositions.length - 1]) > dist)) {
|
|
48346
48255
|
useOrdinal = true;
|
|
48347
48256
|
}
|
|
48348
48257
|
}
|
|
@@ -48520,9 +48429,10 @@
|
|
|
48520
48429
|
fakeAxis.series.push(fakeSeries);
|
|
48521
48430
|
series.processData.apply(fakeSeries);
|
|
48522
48431
|
});
|
|
48523
|
-
// Force to use the ordinal when points are evenly spaced
|
|
48524
|
-
//
|
|
48525
|
-
if (fakeSeries.closestPointRange !==
|
|
48432
|
+
// Force to use the ordinal when points are evenly spaced (e.g.
|
|
48433
|
+
// weeks), #3825.
|
|
48434
|
+
if ((fakeSeries.closestPointRange !==
|
|
48435
|
+
fakeSeries.basePointRange) &&
|
|
48526
48436
|
fakeSeries.currentDataGrouping) {
|
|
48527
48437
|
fakeAxis.forceOrdinal = true;
|
|
48528
48438
|
}
|
|
@@ -48570,8 +48480,8 @@
|
|
|
48570
48480
|
if (!groupIntervalFactor) {
|
|
48571
48481
|
// Register all the distances in an array
|
|
48572
48482
|
for (i = 0; i < len - 1; i++) {
|
|
48573
|
-
distances[i] =
|
|
48574
|
-
processedXData[i
|
|
48483
|
+
distances[i] = (processedXData[i + 1] -
|
|
48484
|
+
processedXData[i]);
|
|
48575
48485
|
}
|
|
48576
48486
|
// Sort them and find the median
|
|
48577
48487
|
distances.sort(function (a, b) {
|
|
@@ -48593,15 +48503,12 @@
|
|
|
48593
48503
|
*
|
|
48594
48504
|
* @private
|
|
48595
48505
|
* @param {number} val
|
|
48596
|
-
*
|
|
48506
|
+
* The pixel value of a point.
|
|
48597
48507
|
*
|
|
48598
48508
|
* @param {Array<number>} [ordinallArray]
|
|
48599
|
-
*
|
|
48600
|
-
*
|
|
48601
|
-
*
|
|
48602
|
-
* or extendedOrdinalPositions if not.
|
|
48603
|
-
*
|
|
48604
|
-
* @return {number}
|
|
48509
|
+
* An array of all points available on the axis for the given data set.
|
|
48510
|
+
* Either ordinalPositions if the value is inside the plotArea or
|
|
48511
|
+
* extendedOrdinalPositions if not.
|
|
48605
48512
|
*/
|
|
48606
48513
|
Additions.prototype.getIndexOfPoint = function (val, ordinalArray) {
|
|
48607
48514
|
var ordinal = this,
|
|
@@ -48622,10 +48529,11 @@
|
|
|
48622
48529
|
}
|
|
48623
48530
|
});
|
|
48624
48531
|
}
|
|
48625
|
-
// Distance in pixels between two points
|
|
48626
|
-
//
|
|
48627
|
-
var ordinalPointPixelInterval = axis.translationSlope *
|
|
48628
|
-
|
|
48532
|
+
// Distance in pixels between two points on the ordinal axis in the
|
|
48533
|
+
// current zoom.
|
|
48534
|
+
var ordinalPointPixelInterval = axis.translationSlope * (ordinal.slope ||
|
|
48535
|
+
axis.closestPointRange ||
|
|
48536
|
+
ordinal.overscrollPointsRange),
|
|
48629
48537
|
// toValue for the first point.
|
|
48630
48538
|
shiftIndex = (val - firstPointX) / ordinalPointPixelInterval;
|
|
48631
48539
|
return Additions.findIndexOf(ordinalArray, firstPointVal) + shiftIndex;
|
|
@@ -48661,19 +48569,20 @@
|
|
|
48661
48569
|
* @private
|
|
48662
48570
|
*/
|
|
48663
48571
|
Additions.prototype.postProcessTickInterval = function (tickInterval) {
|
|
48664
|
-
// Problem: https://jsfiddle.net/highcharts/FQm4E/1
|
|
48665
|
-
//
|
|
48666
|
-
//
|
|
48667
|
-
//
|
|
48668
|
-
//
|
|
48669
|
-
//
|
|
48572
|
+
// Problem: https://jsfiddle.net/highcharts/FQm4E/1/. This is a case
|
|
48573
|
+
// where this algorithm doesn't work optimally. In this case, the
|
|
48574
|
+
// tick labels are spread out per week, but all the gaps reside
|
|
48575
|
+
// within weeks. So we have a situation where the labels are courser
|
|
48576
|
+
// than the ordinal gaps, and thus the tick interval should not be
|
|
48577
|
+
// altered.
|
|
48670
48578
|
var ordinal = this,
|
|
48671
48579
|
axis = ordinal.axis,
|
|
48672
48580
|
ordinalSlope = ordinal.slope;
|
|
48673
48581
|
var ret;
|
|
48674
48582
|
if (ordinalSlope) {
|
|
48675
48583
|
if (!axis.options.breaks) {
|
|
48676
|
-
ret = tickInterval /
|
|
48584
|
+
ret = (tickInterval /
|
|
48585
|
+
(ordinalSlope / axis.closestPointRange));
|
|
48677
48586
|
}
|
|
48678
48587
|
else {
|
|
48679
48588
|
ret = axis.closestPointRange || tickInterval; // #7275
|
|
@@ -49430,8 +49339,11 @@
|
|
|
49430
49339
|
(threshold > brk.from && y < brk.from)) {
|
|
49431
49340
|
eventName = 'pointBreak';
|
|
49432
49341
|
}
|
|
49433
|
-
else if ((threshold < brk.from &&
|
|
49434
|
-
|
|
49342
|
+
else if ((threshold < brk.from &&
|
|
49343
|
+
y > brk.from &&
|
|
49344
|
+
y < brk.to) || (threshold > brk.from &&
|
|
49345
|
+
y > brk.to &&
|
|
49346
|
+
y < brk.from)) {
|
|
49435
49347
|
eventName = 'pointInBreak';
|
|
49436
49348
|
}
|
|
49437
49349
|
if (eventName) {
|
|
@@ -49550,12 +49462,9 @@
|
|
|
49550
49462
|
isNull: true,
|
|
49551
49463
|
x: xRange
|
|
49552
49464
|
});
|
|
49553
|
-
// For stacked chart generate empty stack items,
|
|
49554
|
-
// #6546
|
|
49465
|
+
// For stacked chart generate empty stack items, #6546
|
|
49555
49466
|
if (yAxis.stacking && this.options.stacking) {
|
|
49556
|
-
stack = yAxis.stacking.stacks[this.stackKey][xRange] =
|
|
49557
|
-
new StackItem(yAxis, yAxis.options
|
|
49558
|
-
.stackLabels, false, xRange, this.stack);
|
|
49467
|
+
stack = yAxis.stacking.stacks[this.stackKey][xRange] = new StackItem(yAxis, yAxis.options.stackLabels, false, xRange, this.stack);
|
|
49559
49468
|
stack.total = 0;
|
|
49560
49469
|
}
|
|
49561
49470
|
}
|
|
@@ -49792,10 +49701,12 @@
|
|
|
49792
49701
|
repeat_1 = brk.repeat || Infinity;
|
|
49793
49702
|
if (isNumber(min_1) && isNumber(max_1)) {
|
|
49794
49703
|
if (Additions.isInBreak(brk, min_1)) {
|
|
49795
|
-
min_1 += (brk.to % repeat_1) -
|
|
49704
|
+
min_1 += ((brk.to % repeat_1) -
|
|
49705
|
+
(min_1 % repeat_1));
|
|
49796
49706
|
}
|
|
49797
49707
|
if (Additions.isInBreak(brk, max_1)) {
|
|
49798
|
-
max_1 -= (max_1 % repeat_1) -
|
|
49708
|
+
max_1 -= ((max_1 % repeat_1) -
|
|
49709
|
+
(brk.from % repeat_1));
|
|
49799
49710
|
}
|
|
49800
49711
|
}
|
|
49801
49712
|
});
|
|
@@ -49843,13 +49754,17 @@
|
|
|
49843
49754
|
to: brk.value,
|
|
49844
49755
|
len: brk.value - start_1 - (brk.size || 0)
|
|
49845
49756
|
});
|
|
49846
|
-
length_1 += brk.value -
|
|
49757
|
+
length_1 += (brk.value -
|
|
49758
|
+
start_1 -
|
|
49759
|
+
(brk.size || 0));
|
|
49847
49760
|
}
|
|
49848
49761
|
});
|
|
49849
49762
|
brokenAxis.breakArray = breakArray_1;
|
|
49850
49763
|
// Used with staticScale, and below the actual axis
|
|
49851
49764
|
// length, when breaks are substracted.
|
|
49852
|
-
if (isNumber(min_1) &&
|
|
49765
|
+
if (isNumber(min_1) &&
|
|
49766
|
+
isNumber(max_1) &&
|
|
49767
|
+
isNumber(axis.min)) {
|
|
49853
49768
|
brokenAxis.unitLength = max_1 - min_1 - length_1 +
|
|
49854
49769
|
pointRangePadding;
|
|
49855
49770
|
fireEvent(axis, 'afterBreaks');
|
|
@@ -50132,13 +50047,17 @@
|
|
|
50132
50047
|
groupedXData = groupedData.groupedXData,
|
|
50133
50048
|
groupedYData = groupedData.groupedYData,
|
|
50134
50049
|
gapSize = 0;
|
|
50135
|
-
// The smoothed option is deprecated, instead,
|
|
50136
|
-
//
|
|
50137
|
-
if (dataGroupingOptions &&
|
|
50050
|
+
// The smoothed option is deprecated, instead, there is a fallback
|
|
50051
|
+
// to the new anchoring mechanism. #12455.
|
|
50052
|
+
if (dataGroupingOptions &&
|
|
50053
|
+
dataGroupingOptions.smoothed &&
|
|
50054
|
+
groupedXData.length) {
|
|
50138
50055
|
dataGroupingOptions.firstAnchor = 'firstPoint';
|
|
50139
50056
|
dataGroupingOptions.anchor = 'middle';
|
|
50140
50057
|
dataGroupingOptions.lastAnchor = 'lastPoint';
|
|
50141
|
-
error(32, false, chart, {
|
|
50058
|
+
error(32, false, chart, {
|
|
50059
|
+
'dataGrouping.smoothed': 'use dataGrouping.anchor'
|
|
50060
|
+
});
|
|
50142
50061
|
}
|
|
50143
50062
|
anchorPoints(series, groupedXData, xMax);
|
|
50144
50063
|
// Record what data grouping values were used
|
|
@@ -50215,7 +50134,8 @@
|
|
|
50215
50134
|
pointArrayMap = series.pointArrayMap,
|
|
50216
50135
|
pointArrayMapLength = pointArrayMap && pointArrayMap.length,
|
|
50217
50136
|
extendedPointArrayMap = ['x'].concat(pointArrayMap || ['y']),
|
|
50218
|
-
groupAll = this.options.dataGrouping &&
|
|
50137
|
+
groupAll = (this.options.dataGrouping &&
|
|
50138
|
+
this.options.dataGrouping.groupAll),
|
|
50219
50139
|
pos = 0,
|
|
50220
50140
|
start = 0,
|
|
50221
50141
|
valuesLen,
|
|
@@ -50345,7 +50265,7 @@
|
|
|
50345
50265
|
xMax) {
|
|
50346
50266
|
var options = series.options,
|
|
50347
50267
|
dataGroupingOptions = options.dataGrouping,
|
|
50348
|
-
totalRange = series.currentDataGrouping && series.currentDataGrouping.gapSize;
|
|
50268
|
+
totalRange = (series.currentDataGrouping && series.currentDataGrouping.gapSize);
|
|
50349
50269
|
var i;
|
|
50350
50270
|
// DataGrouping x-coordinates.
|
|
50351
50271
|
if (dataGroupingOptions && series.xData && totalRange && series.groupMap) {
|
|
@@ -50357,9 +50277,9 @@
|
|
|
50357
50277
|
anchor);
|
|
50358
50278
|
// Anchor points that are not extremes.
|
|
50359
50279
|
if (anchor && anchor !== 'start') {
|
|
50360
|
-
var shiftInterval = totalRange *
|
|
50280
|
+
var shiftInterval = (totalRange *
|
|
50361
50281
|
{ middle: 0.5,
|
|
50362
|
-
end: 1 }[anchor];
|
|
50282
|
+
end: 1 }[anchor]);
|
|
50363
50283
|
i = groupedXData.length - 1;
|
|
50364
50284
|
while (i-- && i > 0) {
|
|
50365
50285
|
groupedXData[i] += shiftInterval;
|
|
@@ -50625,7 +50545,8 @@
|
|
|
50625
50545
|
series.forEach(function (series) {
|
|
50626
50546
|
// Reset the groupPixelWidth, then calculate if needed.
|
|
50627
50547
|
series.groupPixelWidth = void 0; // #2110
|
|
50628
|
-
series.groupPixelWidth = axis.getGroupPixelWidth &&
|
|
50548
|
+
series.groupPixelWidth = (axis.getGroupPixelWidth &&
|
|
50549
|
+
axis.getGroupPixelWidth());
|
|
50629
50550
|
if (series.groupPixelWidth) {
|
|
50630
50551
|
series.hasProcessed = true; // #2692
|
|
50631
50552
|
}
|
|
@@ -50664,7 +50585,8 @@
|
|
|
50664
50585
|
// Execute grouping if the amount of points is greater than the
|
|
50665
50586
|
// limit defined in groupPixelWidth
|
|
50666
50587
|
if (series[i].groupPixelWidth ||
|
|
50667
|
-
dataLength >
|
|
50588
|
+
(dataLength >
|
|
50589
|
+
(this.chart.plotSizeX / groupPixelWidth)) ||
|
|
50668
50590
|
(dataLength && dgOptions.forced)) {
|
|
50669
50591
|
doGrouping = true;
|
|
50670
50592
|
}
|
|
@@ -50805,10 +50727,10 @@
|
|
|
50805
50727
|
type = this.type,
|
|
50806
50728
|
plotOptions = this.chart.options.plotOptions,
|
|
50807
50729
|
defaultOptions = D.defaultOptions.plotOptions[type].dataGrouping,
|
|
50808
|
-
// External series, for example technical indicators should also
|
|
50809
|
-
//
|
|
50810
|
-
baseOptions = this.useCommonDataGrouping && commonOptions;
|
|
50811
|
-
if (specificOptions[type] || baseOptions) { // #1284
|
|
50730
|
+
// External series, for example technical indicators should also inherit
|
|
50731
|
+
// commonOptions which are not available outside this module
|
|
50732
|
+
baseOptions = (this.useCommonDataGrouping && commonOptions);
|
|
50733
|
+
if (plotOptions && (specificOptions[type] || baseOptions)) { // #1284
|
|
50812
50734
|
if (!defaultOptions) {
|
|
50813
50735
|
defaultOptions = merge(commonOptions, specificOptions[type]);
|
|
50814
50736
|
}
|
|
@@ -50941,7 +50863,7 @@
|
|
|
50941
50863
|
* to two weeks, the second and third item of the week array are used,
|
|
50942
50864
|
* and applied to the start and end date of the time span.
|
|
50943
50865
|
*
|
|
50944
|
-
* @type {
|
|
50866
|
+
* @type {Object}
|
|
50945
50867
|
* @apioption plotOptions.series.dataGrouping.dateTimeLabelFormats
|
|
50946
50868
|
*/
|
|
50947
50869
|
/**
|
|
@@ -51279,10 +51201,7 @@
|
|
|
51279
51201
|
/**
|
|
51280
51202
|
* Function to create SVGPath of the point based on the
|
|
51281
51203
|
* plot positions of this point.
|
|
51282
|
-
*
|
|
51283
|
-
* @param {SVGPath} point
|
|
51284
|
-
* @param {SVGElement} graphic
|
|
51285
|
-
* @returns {SVGPath}
|
|
51204
|
+
* @private
|
|
51286
51205
|
*/
|
|
51287
51206
|
HLCSeries.prototype.getPointPath = function (point, graphic) {
|
|
51288
51207
|
// crisp vector coordinates
|
|
@@ -51342,7 +51261,6 @@
|
|
|
51342
51261
|
/**
|
|
51343
51262
|
* @private
|
|
51344
51263
|
* @function Highcharts.seriesTypes.hlc#init
|
|
51345
|
-
* @return {void}
|
|
51346
51264
|
*/
|
|
51347
51265
|
HLCSeries.prototype.init = function () {
|
|
51348
51266
|
_super.prototype.init.apply(this, arguments);
|
|
@@ -51368,7 +51286,6 @@
|
|
|
51368
51286
|
*
|
|
51369
51287
|
* @private
|
|
51370
51288
|
* @function Highcharts.seriesTypes.hlc#translate
|
|
51371
|
-
* @return {void}
|
|
51372
51289
|
*/
|
|
51373
51290
|
HLCSeries.prototype.translate = function () {
|
|
51374
51291
|
var series = this,
|
|
@@ -51644,7 +51561,6 @@
|
|
|
51644
51561
|
* Extend the parent method by adding up or down to the class name.
|
|
51645
51562
|
* @private
|
|
51646
51563
|
* @function Highcharts.seriesTypes.ohlc#getClassName
|
|
51647
|
-
* @return {string}
|
|
51648
51564
|
*/
|
|
51649
51565
|
OHLCPoint.prototype.getClassName = function () {
|
|
51650
51566
|
return _super.prototype.getClassName.call(this) +
|
|
@@ -51819,7 +51735,7 @@
|
|
|
51819
51735
|
* @sample stock/demo/ohlc/
|
|
51820
51736
|
* OHLC chart
|
|
51821
51737
|
*
|
|
51822
|
-
* @extends plotOptions.
|
|
51738
|
+
* @extends plotOptions.hlc
|
|
51823
51739
|
* @product highstock
|
|
51824
51740
|
* @optionparent plotOptions.ohlc
|
|
51825
51741
|
*/
|
|
@@ -52084,7 +52000,6 @@
|
|
|
52084
52000
|
*
|
|
52085
52001
|
* @private
|
|
52086
52002
|
* @function Highcharts.seriesTypes.candlestick#drawPoints
|
|
52087
|
-
* @return {void}
|
|
52088
52003
|
*/
|
|
52089
52004
|
CandlestickSeries.prototype.drawPoints = function () {
|
|
52090
52005
|
var series = this,
|
|
@@ -52629,8 +52544,8 @@
|
|
|
52629
52544
|
/**
|
|
52630
52545
|
* Create the circlepin and squarepin icons with anchor.
|
|
52631
52546
|
* @private
|
|
52632
|
-
* @param {string} shape
|
|
52633
|
-
*
|
|
52547
|
+
* @param {string} shape
|
|
52548
|
+
* circle or square
|
|
52634
52549
|
*/
|
|
52635
52550
|
function createPinSymbol(shape) {
|
|
52636
52551
|
symbols[(shape + 'pin')] = function (x, y, w, h, options) {
|
|
@@ -53433,7 +53348,8 @@
|
|
|
53433
53348
|
from = unitedMin + range * (1 - this.to);
|
|
53434
53349
|
}
|
|
53435
53350
|
if (this.shouldUpdateExtremes(e.DOMType)) {
|
|
53436
|
-
axis.setExtremes(from, to, true, e.DOMType !== 'mousemove' &&
|
|
53351
|
+
axis.setExtremes(from, to, true, (e.DOMType !== 'mousemove' &&
|
|
53352
|
+
e.DOMType !== 'touchmove'), e);
|
|
53437
53353
|
}
|
|
53438
53354
|
else {
|
|
53439
53355
|
// When live redraw is disabled, don't change extremes
|
|
@@ -53450,7 +53366,7 @@
|
|
|
53450
53366
|
scrollMin = _a.scrollMin,
|
|
53451
53367
|
scrollMax = _a.scrollMax,
|
|
53452
53368
|
scrollbar = axis.scrollbar,
|
|
53453
|
-
offset = axis.axisTitleMargin + (axis.titleOffset || 0),
|
|
53369
|
+
offset = (axis.axisTitleMargin + (axis.titleOffset || 0)),
|
|
53454
53370
|
scrollbarsOffsets = axis.chart.scrollbarsOffsets,
|
|
53455
53371
|
axisMargin = axis.options.margin || 0,
|
|
53456
53372
|
offsetsIndex,
|
|
@@ -53462,8 +53378,11 @@
|
|
|
53462
53378
|
if (!axis.opposite) {
|
|
53463
53379
|
scrollbarsOffsets[1] += offset;
|
|
53464
53380
|
}
|
|
53465
|
-
scrollbar.position(axis.left, axis.top +
|
|
53466
|
-
|
|
53381
|
+
scrollbar.position(axis.left, (axis.top +
|
|
53382
|
+
axis.height +
|
|
53383
|
+
2 +
|
|
53384
|
+
scrollbarsOffsets[1] -
|
|
53385
|
+
(axis.opposite ? axisMargin : 0)), axis.width, axis.height);
|
|
53467
53386
|
// Next scrollbar should reserve space for margin (if set)
|
|
53468
53387
|
if (!axis.opposite) {
|
|
53469
53388
|
scrollbarsOffsets[1] += axisMargin;
|
|
@@ -53480,7 +53399,10 @@
|
|
|
53480
53399
|
xPosition = axis.opposite ? 0 : axisMargin;
|
|
53481
53400
|
}
|
|
53482
53401
|
else {
|
|
53483
|
-
xPosition = axis.left +
|
|
53402
|
+
xPosition = axis.left +
|
|
53403
|
+
axis.width +
|
|
53404
|
+
2 +
|
|
53405
|
+
scrollbarsOffsets[0] -
|
|
53484
53406
|
(axis.opposite ? 0 : axisMargin);
|
|
53485
53407
|
}
|
|
53486
53408
|
scrollbar.position(xPosition, axis.top, axis.width, axis.height);
|
|
@@ -53504,10 +53426,10 @@
|
|
|
53504
53426
|
scrollbar.setRange(0, 1);
|
|
53505
53427
|
}
|
|
53506
53428
|
else {
|
|
53507
|
-
from =
|
|
53508
|
-
(
|
|
53509
|
-
to =
|
|
53510
|
-
(
|
|
53429
|
+
from = ((axis.min - scrollMin) /
|
|
53430
|
+
(scrollMax - scrollMin));
|
|
53431
|
+
to = ((axis.max - scrollMin) /
|
|
53432
|
+
(scrollMax - scrollMin));
|
|
53511
53433
|
if ((axis.horiz && !axis.reversed) ||
|
|
53512
53434
|
(!axis.horiz && axis.reversed)) {
|
|
53513
53435
|
scrollbar.setRange(from, to);
|
|
@@ -53526,7 +53448,8 @@
|
|
|
53526
53448
|
index = axis.horiz ? 2 : opposite ? 3 : 1,
|
|
53527
53449
|
scrollbar = axis.scrollbar;
|
|
53528
53450
|
if (scrollbar) {
|
|
53529
|
-
|
|
53451
|
+
// reset scrollbars offsets
|
|
53452
|
+
axis.chart.scrollbarsOffsets = [0, 0];
|
|
53530
53453
|
axis.chart.axisOffset[index] +=
|
|
53531
53454
|
scrollbar.size + scrollbar.options.margin;
|
|
53532
53455
|
}
|
|
@@ -53893,10 +53816,16 @@
|
|
|
53893
53816
|
mouseUpHandler = this.mouseUpHandler.bind(this);
|
|
53894
53817
|
// Mouse events
|
|
53895
53818
|
var _events = [
|
|
53896
|
-
[
|
|
53897
|
-
|
|
53898
|
-
|
|
53899
|
-
|
|
53819
|
+
[
|
|
53820
|
+
buttons[buttonsOrder[0]].element,
|
|
53821
|
+
'click',
|
|
53822
|
+
this.buttonToMinClick.bind(this)
|
|
53823
|
+
],
|
|
53824
|
+
[
|
|
53825
|
+
buttons[buttonsOrder[1]].element,
|
|
53826
|
+
'click',
|
|
53827
|
+
this.buttonToMaxClick.bind(this)
|
|
53828
|
+
],
|
|
53900
53829
|
[track, 'click',
|
|
53901
53830
|
this.trackClick.bind(this)],
|
|
53902
53831
|
[bar, 'mousedown',
|
|
@@ -53918,7 +53847,8 @@
|
|
|
53918
53847
|
};
|
|
53919
53848
|
Scrollbar.prototype.buttonToMaxClick = function (e) {
|
|
53920
53849
|
var scroller = this;
|
|
53921
|
-
var range = (scroller.to - scroller.from) *
|
|
53850
|
+
var range = ((scroller.to - scroller.from) *
|
|
53851
|
+
pick(scroller.options.step, 0.2));
|
|
53922
53852
|
scroller.updatePosition(scroller.from + range, scroller.to + range);
|
|
53923
53853
|
fireEvent(scroller, 'changed', {
|
|
53924
53854
|
from: scroller.from,
|
|
@@ -53971,7 +53901,6 @@
|
|
|
53971
53901
|
*
|
|
53972
53902
|
* @private
|
|
53973
53903
|
* @function Highcharts.Scrollbar#destroy
|
|
53974
|
-
* @return {void}
|
|
53975
53904
|
*/
|
|
53976
53905
|
Scrollbar.prototype.destroy = function () {
|
|
53977
53906
|
var scroller = this,
|
|
@@ -54004,7 +53933,6 @@
|
|
|
54004
53933
|
* @function Highcharts.Scrollbar#drawScrollbarButton
|
|
54005
53934
|
* @param {number} index
|
|
54006
53935
|
* 0 is left, 1 is right
|
|
54007
|
-
* @return {void}
|
|
54008
53936
|
*/
|
|
54009
53937
|
Scrollbar.prototype.drawScrollbarButton = function (index) {
|
|
54010
53938
|
var scroller = this,
|
|
@@ -54097,7 +54025,8 @@
|
|
|
54097
54025
|
var scroller = this,
|
|
54098
54026
|
normalizedEvent = scroller.chart.pointer.normalize(e),
|
|
54099
54027
|
options = scroller.options,
|
|
54100
|
-
direction = options.vertical ?
|
|
54028
|
+
direction = options.vertical ?
|
|
54029
|
+
'chartY' : 'chartX',
|
|
54101
54030
|
initPositions = scroller.initPositions || [];
|
|
54102
54031
|
var scrollPosition,
|
|
54103
54032
|
chartPosition,
|
|
@@ -54158,7 +54087,6 @@
|
|
|
54158
54087
|
* width of the scrollbar
|
|
54159
54088
|
* @param {number} height
|
|
54160
54089
|
* height of the scorllbar
|
|
54161
|
-
* @return {void}
|
|
54162
54090
|
*/
|
|
54163
54091
|
Scrollbar.prototype.position = function (x, y, width, height) {
|
|
54164
54092
|
var scroller = this,
|
|
@@ -54207,7 +54135,6 @@
|
|
|
54207
54135
|
*
|
|
54208
54136
|
* @private
|
|
54209
54137
|
* @function Highcharts.Scrollbar#removeEvents
|
|
54210
|
-
* @return {void}
|
|
54211
54138
|
*/
|
|
54212
54139
|
Scrollbar.prototype.removeEvents = function () {
|
|
54213
54140
|
this._events.forEach(function (args) {
|
|
@@ -54299,7 +54226,6 @@
|
|
|
54299
54226
|
* scale (0-1) where bar should start
|
|
54300
54227
|
* @param {number} to
|
|
54301
54228
|
* scale (0-1) where bar should end
|
|
54302
|
-
* @return {void}
|
|
54303
54229
|
*/
|
|
54304
54230
|
Scrollbar.prototype.setRange = function (from, to) {
|
|
54305
54231
|
var scroller = this,
|
|
@@ -54378,8 +54304,6 @@
|
|
|
54378
54304
|
*
|
|
54379
54305
|
* @private
|
|
54380
54306
|
* @function Highcharts.Scrollbar#shouldUpdateExtremes
|
|
54381
|
-
* @param {string} [eventType]
|
|
54382
|
-
* @return {boolean}
|
|
54383
54307
|
*/
|
|
54384
54308
|
Scrollbar.prototype.shouldUpdateExtremes = function (eventType) {
|
|
54385
54309
|
return (pick(this.options.liveRedraw, H.svg && !H.isTouchDevice && !this.chart.isBoosting) ||
|
|
@@ -54429,7 +54353,6 @@
|
|
|
54429
54353
|
* @function Highcharts.Scrollbar#updatePosition
|
|
54430
54354
|
* @param {number} from
|
|
54431
54355
|
* @param {number} to
|
|
54432
|
-
* @return {void}
|
|
54433
54356
|
*/
|
|
54434
54357
|
Scrollbar.prototype.updatePosition = function (from, to) {
|
|
54435
54358
|
if (to > 1) {
|
|
@@ -54512,11 +54435,6 @@
|
|
|
54512
54435
|
*
|
|
54513
54436
|
* @private
|
|
54514
54437
|
* @function Highcharts.Axis#toFixedRange
|
|
54515
|
-
* @param {number} [pxMin]
|
|
54516
|
-
* @param {number} [pxMax]
|
|
54517
|
-
* @param {number} [fixedMin]
|
|
54518
|
-
* @param {number} [fixedMax]
|
|
54519
|
-
* @return {*}
|
|
54520
54438
|
*/
|
|
54521
54439
|
NavigatorAxisAdditions.prototype.toFixedRange = function (pxMin, pxMax, fixedMin, fixedMax) {
|
|
54522
54440
|
var navigator = this;
|
|
@@ -55267,17 +55185,32 @@
|
|
|
55267
55185
|
verticalMin = navigatorTop + zoomedMax + outlineCorrection;
|
|
55268
55186
|
zoomedMax = navigatorTop + zoomedMin + outlineCorrection;
|
|
55269
55187
|
path = [
|
|
55270
|
-
[
|
|
55188
|
+
[
|
|
55189
|
+
'M',
|
|
55190
|
+
left + outlineHeight,
|
|
55191
|
+
navigatorTop - scrollbarHeight - outlineCorrection
|
|
55192
|
+
],
|
|
55193
|
+
// top right of zoomed range
|
|
55271
55194
|
['L', left + outlineHeight, verticalMin],
|
|
55272
55195
|
['L', left, verticalMin],
|
|
55273
55196
|
['L', left, zoomedMax],
|
|
55274
55197
|
['L', left + outlineHeight, zoomedMax],
|
|
55275
|
-
[
|
|
55198
|
+
[
|
|
55199
|
+
'L',
|
|
55200
|
+
left + outlineHeight,
|
|
55201
|
+
navigatorTop + navigatorSize + scrollbarHeight
|
|
55202
|
+
]
|
|
55276
55203
|
];
|
|
55277
55204
|
if (maskInside) {
|
|
55278
|
-
path.push(
|
|
55279
|
-
|
|
55280
|
-
|
|
55205
|
+
path.push(
|
|
55206
|
+
// upper left of zoomed range
|
|
55207
|
+
['M', left + outlineHeight, verticalMin - halfOutline],
|
|
55208
|
+
// upper right of z.r.
|
|
55209
|
+
[
|
|
55210
|
+
'L',
|
|
55211
|
+
left + outlineHeight,
|
|
55212
|
+
zoomedMax + halfOutline
|
|
55213
|
+
]);
|
|
55281
55214
|
}
|
|
55282
55215
|
}
|
|
55283
55216
|
else {
|
|
@@ -55285,17 +55218,25 @@
|
|
|
55285
55218
|
zoomedMax += left + scrollbarHeight - outlineCorrection;
|
|
55286
55219
|
navigatorTop += halfOutline;
|
|
55287
55220
|
path = [
|
|
55221
|
+
// left
|
|
55288
55222
|
['M', left, navigatorTop],
|
|
55223
|
+
// upper left of zoomed range
|
|
55289
55224
|
['L', zoomedMin, navigatorTop],
|
|
55225
|
+
// lower left of z.r.
|
|
55290
55226
|
['L', zoomedMin, navigatorTop + outlineHeight],
|
|
55227
|
+
// lower right of z.r.
|
|
55291
55228
|
['L', zoomedMax, navigatorTop + outlineHeight],
|
|
55229
|
+
// upper right of z.r.
|
|
55292
55230
|
['L', zoomedMax, navigatorTop],
|
|
55293
|
-
|
|
55231
|
+
// right
|
|
55232
|
+
['L', left + navigatorSize + scrollbarHeight * 2, navigatorTop]
|
|
55294
55233
|
];
|
|
55295
55234
|
if (maskInside) {
|
|
55296
|
-
path.push(
|
|
55297
|
-
|
|
55298
|
-
|
|
55235
|
+
path.push(
|
|
55236
|
+
// upper left of zoomed range
|
|
55237
|
+
['M', zoomedMin - halfOutline, navigatorTop],
|
|
55238
|
+
// upper right of z.r.
|
|
55239
|
+
['L', zoomedMax + halfOutline, navigatorTop]);
|
|
55299
55240
|
}
|
|
55300
55241
|
}
|
|
55301
55242
|
navigator.outline[verb]({
|
|
@@ -55481,7 +55422,6 @@
|
|
|
55481
55422
|
* Pixel value minimum
|
|
55482
55423
|
* @param {number} [pxMax]
|
|
55483
55424
|
* Pixel value maximum
|
|
55484
|
-
* @return {void}
|
|
55485
55425
|
*/
|
|
55486
55426
|
Navigator.prototype.render = function (min, max, pxMin, pxMax) {
|
|
55487
55427
|
var navigator = this,
|
|
@@ -55758,7 +55698,6 @@
|
|
|
55758
55698
|
* Mouse event
|
|
55759
55699
|
* @param {number} index
|
|
55760
55700
|
* Index of a handle in Navigator.handles array
|
|
55761
|
-
* @return {void}
|
|
55762
55701
|
*/
|
|
55763
55702
|
Navigator.prototype.handlesMousedown = function (e, index) {
|
|
55764
55703
|
e = this.chart.pointer.normalize(e);
|
|
@@ -55854,7 +55793,6 @@
|
|
|
55854
55793
|
* @function Highcharts.Navigator#onMouseUp
|
|
55855
55794
|
* @param {Highcharts.PointerEventObject} e
|
|
55856
55795
|
* Mouse event
|
|
55857
|
-
* @return {void}
|
|
55858
55796
|
*/
|
|
55859
55797
|
Navigator.prototype.onMouseUp = function (e) {
|
|
55860
55798
|
var navigator = this,
|
|
@@ -55941,7 +55879,6 @@
|
|
|
55941
55879
|
*
|
|
55942
55880
|
* @private
|
|
55943
55881
|
* @function Highcharts.Navigator#removeEvents
|
|
55944
|
-
* @return {void}
|
|
55945
55882
|
*/
|
|
55946
55883
|
Navigator.prototype.removeEvents = function () {
|
|
55947
55884
|
if (this.eventsToUnbind) {
|
|
@@ -55957,7 +55894,6 @@
|
|
|
55957
55894
|
*
|
|
55958
55895
|
* @private
|
|
55959
55896
|
* @function Highcharts.Navigator#removeBaseSeriesEvents
|
|
55960
|
-
* @return {void}
|
|
55961
55897
|
*/
|
|
55962
55898
|
Navigator.prototype.removeBaseSeriesEvents = function () {
|
|
55963
55899
|
var baseSeries = this.baseSeries || [];
|
|
@@ -56043,7 +55979,8 @@
|
|
|
56043
55979
|
offset: 0,
|
|
56044
55980
|
index: yAxisIndex,
|
|
56045
55981
|
isInternal: true,
|
|
56046
|
-
reversed: pick((navigatorOptions.yAxis &&
|
|
55982
|
+
reversed: pick((navigatorOptions.yAxis &&
|
|
55983
|
+
navigatorOptions.yAxis.reversed), (chart.yAxis[0] && chart.yAxis[0].reversed), false),
|
|
56047
55984
|
zoomEnabled: false
|
|
56048
55985
|
}, chart.inverted ? {
|
|
56049
55986
|
width: height
|
|
@@ -56125,9 +56062,6 @@
|
|
|
56125
56062
|
*
|
|
56126
56063
|
* @private
|
|
56127
56064
|
* @function Highcharts.Navigator#getUnionExtremes
|
|
56128
|
-
* @param {boolean} [returnFalseOnNoBaseSeries]
|
|
56129
|
-
* as the param says.
|
|
56130
|
-
* @return {Highcharts.Dictionary<(number|undefined)>|undefined}
|
|
56131
56065
|
*/
|
|
56132
56066
|
Navigator.prototype.getUnionExtremes = function (returnFalseOnNoBaseSeries) {
|
|
56133
56067
|
var baseAxis = this.chart.xAxis[0],
|
|
@@ -56155,7 +56089,6 @@
|
|
|
56155
56089
|
* Additional series options for a navigator
|
|
56156
56090
|
* @param {boolean} [redraw]
|
|
56157
56091
|
* Whether to redraw after update.
|
|
56158
|
-
* @return {void}
|
|
56159
56092
|
*/
|
|
56160
56093
|
Navigator.prototype.setBaseSeries = function (baseSeriesOptions, redraw) {
|
|
56161
56094
|
var chart = this.chart,
|
|
@@ -56194,7 +56127,6 @@
|
|
|
56194
56127
|
* @function Highcharts.Navigator.updateNavigatorSeries
|
|
56195
56128
|
* @param {boolean} addEvents
|
|
56196
56129
|
* @param {boolean} [redraw]
|
|
56197
|
-
* @return {void}
|
|
56198
56130
|
*/
|
|
56199
56131
|
Navigator.prototype.updateNavigatorSeries = function (addEvents, redraw) {
|
|
56200
56132
|
var navigator = this,
|
|
@@ -56335,7 +56267,6 @@
|
|
|
56335
56267
|
*
|
|
56336
56268
|
* @private
|
|
56337
56269
|
* @function Highcharts.Navigator#addBaseSeriesEvent
|
|
56338
|
-
* @return {void}
|
|
56339
56270
|
*/
|
|
56340
56271
|
Navigator.prototype.addBaseSeriesEvents = function () {
|
|
56341
56272
|
var navigator = this,
|
|
@@ -56529,7 +56460,6 @@
|
|
|
56529
56460
|
*
|
|
56530
56461
|
* @private
|
|
56531
56462
|
* @function Highcharts.Navigator#addChartEvents
|
|
56532
|
-
* @return {void}
|
|
56533
56463
|
*/
|
|
56534
56464
|
Navigator.prototype.addChartEvents = function () {
|
|
56535
56465
|
if (!this.eventsToUnbind) {
|
|
@@ -57328,7 +57258,6 @@
|
|
|
57328
57258
|
* @param {number} i
|
|
57329
57259
|
* The index of the button
|
|
57330
57260
|
* @param {boolean} [redraw]
|
|
57331
|
-
* @return {void}
|
|
57332
57261
|
*/
|
|
57333
57262
|
RangeSelector.prototype.clickButton = function (i, redraw) {
|
|
57334
57263
|
var rangeSelector = this,
|
|
@@ -57426,7 +57355,8 @@
|
|
|
57426
57355
|
// If the navigator exist and the axis range is declared reset that
|
|
57427
57356
|
// range and from now on only use the range set by a user, #14742.
|
|
57428
57357
|
if (chart.navigator && chart.navigator.baseSeries[0]) {
|
|
57429
|
-
chart.navigator.baseSeries[0].xAxis.options
|
|
57358
|
+
chart.navigator.baseSeries[0].xAxis.options
|
|
57359
|
+
.range = void 0;
|
|
57430
57360
|
}
|
|
57431
57361
|
newMin = dataMin;
|
|
57432
57362
|
newMax = dataMax;
|
|
@@ -57471,7 +57401,6 @@
|
|
|
57471
57401
|
* @private
|
|
57472
57402
|
* @function Highcharts.RangeSelector#setSelected
|
|
57473
57403
|
* @param {number} [selected]
|
|
57474
|
-
* @return {void}
|
|
57475
57404
|
*/
|
|
57476
57405
|
RangeSelector.prototype.setSelected = function (selected) {
|
|
57477
57406
|
this.selected = this.options.selected = selected;
|
|
@@ -57482,12 +57411,11 @@
|
|
|
57482
57411
|
* @private
|
|
57483
57412
|
* @function Highcharts.RangeSelector#init
|
|
57484
57413
|
* @param {Highcharts.Chart} chart
|
|
57485
|
-
* @return {void}
|
|
57486
57414
|
*/
|
|
57487
57415
|
RangeSelector.prototype.init = function (chart) {
|
|
57488
57416
|
var rangeSelector = this,
|
|
57489
57417
|
options = chart.options.rangeSelector,
|
|
57490
|
-
buttonOptions = options.buttons || rangeSelector.defaultButtons.slice(),
|
|
57418
|
+
buttonOptions = (options.buttons || rangeSelector.defaultButtons.slice()),
|
|
57491
57419
|
selectedOption = options.selected,
|
|
57492
57420
|
blurInputs = function () {
|
|
57493
57421
|
var minInput = rangeSelector.minInput,
|
|
@@ -57537,7 +57465,6 @@
|
|
|
57537
57465
|
*
|
|
57538
57466
|
* @private
|
|
57539
57467
|
* @function Highcharts.RangeSelector#updateButtonStates
|
|
57540
|
-
* @return {void}
|
|
57541
57468
|
*/
|
|
57542
57469
|
RangeSelector.prototype.updateButtonStates = function () {
|
|
57543
57470
|
var rangeSelector = this,
|
|
@@ -57643,7 +57570,6 @@
|
|
|
57643
57570
|
* @private
|
|
57644
57571
|
* @function Highcharts.RangeSelector#computeButtonRange
|
|
57645
57572
|
* @param {Highcharts.RangeSelectorButtonsOptions} rangeOptions
|
|
57646
|
-
* @return {void}
|
|
57647
57573
|
*/
|
|
57648
57574
|
RangeSelector.prototype.computeButtonRange = function (rangeOptions) {
|
|
57649
57575
|
var type = rangeOptions.type,
|
|
@@ -57678,12 +57604,11 @@
|
|
|
57678
57604
|
*
|
|
57679
57605
|
* @private
|
|
57680
57606
|
* @function Highcharts.RangeSelector#getInputValue
|
|
57681
|
-
* @param {string} name
|
|
57682
|
-
* @return {number}
|
|
57683
57607
|
*/
|
|
57684
57608
|
RangeSelector.prototype.getInputValue = function (name) {
|
|
57685
57609
|
var input = name === 'min' ? this.minInput : this.maxInput;
|
|
57686
|
-
var options = this.chart.options
|
|
57610
|
+
var options = this.chart.options
|
|
57611
|
+
.rangeSelector;
|
|
57687
57612
|
var time = this.chart.time;
|
|
57688
57613
|
if (input) {
|
|
57689
57614
|
return ((input.type === 'text' && options.inputDateParser) ||
|
|
@@ -57696,9 +57621,6 @@
|
|
|
57696
57621
|
*
|
|
57697
57622
|
* @private
|
|
57698
57623
|
* @function Highcharts.RangeSelector#setInputValue
|
|
57699
|
-
* @param {string} name
|
|
57700
|
-
* @param {number} [inputTime]
|
|
57701
|
-
* @return {void}
|
|
57702
57624
|
*/
|
|
57703
57625
|
RangeSelector.prototype.setInputValue = function (name, inputTime) {
|
|
57704
57626
|
var options = this.options, time = this.chart.time, input = name === 'min' ? this.minInput : this.maxInput, dateBox = name === 'min' ? this.minDateBox : this.maxDateBox;
|
|
@@ -57713,7 +57635,8 @@
|
|
|
57713
57635
|
input.setAttribute('data-hc-time', inputTime);
|
|
57714
57636
|
updatedTime = inputTime;
|
|
57715
57637
|
}
|
|
57716
|
-
input.value = time.dateFormat(this.inputTypeFormats[input.type] ||
|
|
57638
|
+
input.value = time.dateFormat((this.inputTypeFormats[input.type] ||
|
|
57639
|
+
options.inputEditDateFormat), updatedTime);
|
|
57717
57640
|
if (dateBox) {
|
|
57718
57641
|
dateBox.attr({
|
|
57719
57642
|
text: time.dateFormat(options.inputDateFormat, updatedTime)
|
|
@@ -57726,10 +57649,6 @@
|
|
|
57726
57649
|
*
|
|
57727
57650
|
* @private
|
|
57728
57651
|
* @function Highcharts.RangeSelector#setInputExtremes
|
|
57729
|
-
* @param {string} name
|
|
57730
|
-
* @param {number} min
|
|
57731
|
-
* @param {number} max
|
|
57732
|
-
* @return {void}
|
|
57733
57652
|
*/
|
|
57734
57653
|
RangeSelector.prototype.setInputExtremes = function (name, min, max) {
|
|
57735
57654
|
var input = name === 'min' ? this.minInput : this.maxInput;
|
|
@@ -57754,7 +57673,6 @@
|
|
|
57754
57673
|
* @private
|
|
57755
57674
|
* @function Highcharts.RangeSelector#showInput
|
|
57756
57675
|
* @param {string} name
|
|
57757
|
-
* @return {void}
|
|
57758
57676
|
*/
|
|
57759
57677
|
RangeSelector.prototype.showInput = function (name) {
|
|
57760
57678
|
var dateBox = name === 'min' ? this.minDateBox : this.maxDateBox;
|
|
@@ -57766,7 +57684,9 @@
|
|
|
57766
57684
|
translateY = _a.translateY;
|
|
57767
57685
|
var inputBoxWidth = this.options.inputBoxWidth;
|
|
57768
57686
|
css(input, {
|
|
57769
|
-
width: isTextInput ?
|
|
57687
|
+
width: isTextInput ?
|
|
57688
|
+
((dateBox.width + (inputBoxWidth ? -2 : 20)) + 'px') :
|
|
57689
|
+
'auto',
|
|
57770
57690
|
height: isTextInput ? ((dateBox.height - 2) + 'px') : 'auto',
|
|
57771
57691
|
border: '2px solid silver'
|
|
57772
57692
|
});
|
|
@@ -57792,7 +57712,6 @@
|
|
|
57792
57712
|
* @private
|
|
57793
57713
|
* @function Highcharts.RangeSelector#hideInput
|
|
57794
57714
|
* @param {string} name
|
|
57795
|
-
* @return {void}
|
|
57796
57715
|
*/
|
|
57797
57716
|
RangeSelector.prototype.hideInput = function (name) {
|
|
57798
57717
|
var input = name === 'min' ? this.minInput : this.maxInput;
|
|
@@ -57844,8 +57763,6 @@
|
|
|
57844
57763
|
*
|
|
57845
57764
|
* @private
|
|
57846
57765
|
* @function Highcharts.RangeSelector#drawInput
|
|
57847
|
-
* @param {string} name
|
|
57848
|
-
* @return {RangeSelectorInputElements}
|
|
57849
57766
|
*/
|
|
57850
57767
|
RangeSelector.prototype.drawInput = function (name) {
|
|
57851
57768
|
var _a = this,
|
|
@@ -58014,8 +57931,6 @@
|
|
|
58014
57931
|
*
|
|
58015
57932
|
* @private
|
|
58016
57933
|
* @function Highcharts.RangeSelector#getPosition
|
|
58017
|
-
*
|
|
58018
|
-
* @return {Highcharts.Dictionary<number>}
|
|
58019
57934
|
*/
|
|
58020
57935
|
RangeSelector.prototype.getPosition = function () {
|
|
58021
57936
|
var chart = this.chart,
|
|
@@ -58035,13 +57950,8 @@
|
|
|
58035
57950
|
*
|
|
58036
57951
|
* @private
|
|
58037
57952
|
* @function Highcharts.RangeSelector#getYTDExtremes
|
|
58038
|
-
*
|
|
58039
|
-
* @param {number} dataMax
|
|
58040
|
-
*
|
|
58041
|
-
* @param {number} dataMin
|
|
58042
|
-
*
|
|
58043
57953
|
* @return {*}
|
|
58044
|
-
*
|
|
57954
|
+
* Returns min and max for the YTD
|
|
58045
57955
|
*/
|
|
58046
57956
|
RangeSelector.prototype.getYTDExtremes = function (dataMax, dataMin, useUTC) {
|
|
58047
57957
|
var time = this.chart.time,
|
|
@@ -58070,7 +57980,6 @@
|
|
|
58070
57980
|
* X axis minimum
|
|
58071
57981
|
* @param {number} [max]
|
|
58072
57982
|
* X axis maximum
|
|
58073
|
-
* @return {void}
|
|
58074
57983
|
*/
|
|
58075
57984
|
RangeSelector.prototype.render = function (min, max) {
|
|
58076
57985
|
var chart = this.chart,
|
|
@@ -58124,7 +58033,8 @@
|
|
|
58124
58033
|
this.setInputValue('min', min);
|
|
58125
58034
|
this.setInputValue('max', max);
|
|
58126
58035
|
var unionExtremes = (chart.scroller && chart.scroller.getUnionExtremes()) || chart.xAxis[0] || {};
|
|
58127
|
-
if (defined(unionExtremes.dataMin) &&
|
|
58036
|
+
if (defined(unionExtremes.dataMin) &&
|
|
58037
|
+
defined(unionExtremes.dataMax)) {
|
|
58128
58038
|
var minRange = chart.xAxis[0].minRange || 0;
|
|
58129
58039
|
this.setInputExtremes('min', unionExtremes.dataMin, Math.min(unionExtremes.dataMax, this.getInputValue('max')) - minRange);
|
|
58130
58040
|
this.setInputExtremes('max', Math.max(unionExtremes.dataMin, this.getInputValue('min')) + minRange, unionExtremes.dataMax);
|
|
@@ -58157,7 +58067,6 @@
|
|
|
58157
58067
|
*
|
|
58158
58068
|
* @private
|
|
58159
58069
|
* @function Highcharts.RangeSelector#renderButtons
|
|
58160
|
-
* @return {void}
|
|
58161
58070
|
*/
|
|
58162
58071
|
RangeSelector.prototype.renderButtons = function () {
|
|
58163
58072
|
var _this = this;
|
|
@@ -58258,7 +58167,6 @@
|
|
|
58258
58167
|
*
|
|
58259
58168
|
* @private
|
|
58260
58169
|
* @function Highcharts.RangeSelector#alignElements
|
|
58261
|
-
* @return {void}
|
|
58262
58170
|
*/
|
|
58263
58171
|
RangeSelector.prototype.alignElements = function () {
|
|
58264
58172
|
var _this = this;
|
|
@@ -58414,7 +58322,6 @@
|
|
|
58414
58322
|
* @function Highcharts.RangeSelector#alignButtonGroup
|
|
58415
58323
|
* @param {number} xOffsetForExportButton
|
|
58416
58324
|
* @param {number} [width]
|
|
58417
|
-
* @return {void}
|
|
58418
58325
|
*/
|
|
58419
58326
|
RangeSelector.prototype.alignButtonGroup = function (xOffsetForExportButton, width) {
|
|
58420
58327
|
var _a = this,
|
|
@@ -58444,7 +58351,6 @@
|
|
|
58444
58351
|
/**
|
|
58445
58352
|
* @private
|
|
58446
58353
|
* @function Highcharts.RangeSelector#positionButtons
|
|
58447
|
-
* @return {void}
|
|
58448
58354
|
*/
|
|
58449
58355
|
RangeSelector.prototype.positionButtons = function () {
|
|
58450
58356
|
var _a = this,
|
|
@@ -58485,7 +58391,6 @@
|
|
|
58485
58391
|
* @param {number} xOffsetForExportButton
|
|
58486
58392
|
* The X offset of the group required to make room for the
|
|
58487
58393
|
* exporting button
|
|
58488
|
-
* @return {void}
|
|
58489
58394
|
*/
|
|
58490
58395
|
RangeSelector.prototype.handleCollision = function (xOffsetForExportButton) {
|
|
58491
58396
|
var _this = this;
|
|
@@ -58586,7 +58491,6 @@
|
|
|
58586
58491
|
* @private
|
|
58587
58492
|
* @function Highcharts.RangeSelector#collapseButtons
|
|
58588
58493
|
* @param {number} xOffsetForExportButton
|
|
58589
|
-
* @return {void}
|
|
58590
58494
|
*/
|
|
58591
58495
|
RangeSelector.prototype.collapseButtons = function (xOffsetForExportButton) {
|
|
58592
58496
|
var _a = this,
|
|
@@ -58640,7 +58544,6 @@
|
|
|
58640
58544
|
*
|
|
58641
58545
|
* @private
|
|
58642
58546
|
* @function Highcharts.RangeSelector#expandButtons
|
|
58643
|
-
* @return {void}
|
|
58644
58547
|
*/
|
|
58645
58548
|
RangeSelector.prototype.expandButtons = function () {
|
|
58646
58549
|
var _a = this,
|
|
@@ -58672,7 +58575,6 @@
|
|
|
58672
58575
|
*
|
|
58673
58576
|
* @private
|
|
58674
58577
|
* @function Highcharts.RangeSelector#currentButtonIndex
|
|
58675
|
-
* @return {number}
|
|
58676
58578
|
*/
|
|
58677
58579
|
RangeSelector.prototype.currentButtonIndex = function () {
|
|
58678
58580
|
var dropdown = this.dropdown;
|
|
@@ -58686,7 +58588,6 @@
|
|
|
58686
58588
|
*
|
|
58687
58589
|
* @private
|
|
58688
58590
|
* @function Highcharts.RangeSelector#showDropdown
|
|
58689
|
-
* @return {void}
|
|
58690
58591
|
*/
|
|
58691
58592
|
RangeSelector.prototype.showDropdown = function () {
|
|
58692
58593
|
var _a = this,
|
|
@@ -58710,7 +58611,6 @@
|
|
|
58710
58611
|
/**
|
|
58711
58612
|
* @private
|
|
58712
58613
|
* @function Highcharts.RangeSelector#hideDropdown
|
|
58713
|
-
* @return {void}
|
|
58714
58614
|
*/
|
|
58715
58615
|
RangeSelector.prototype.hideDropdown = function () {
|
|
58716
58616
|
var dropdown = this.dropdown;
|
|
@@ -58729,7 +58629,7 @@
|
|
|
58729
58629
|
* @private
|
|
58730
58630
|
* @function Highcharts.RangeSelector#getHeight
|
|
58731
58631
|
* @return {number}
|
|
58732
|
-
*
|
|
58632
|
+
* Returns rangeSelector height
|
|
58733
58633
|
*/
|
|
58734
58634
|
RangeSelector.prototype.getHeight = function () {
|
|
58735
58635
|
var rangeSelector = this,
|
|
@@ -58765,11 +58665,8 @@
|
|
|
58765
58665
|
*
|
|
58766
58666
|
* @private
|
|
58767
58667
|
* @function Highcharts.RangeSelector#titleCollision
|
|
58768
|
-
*
|
|
58769
|
-
* @param {Highcharts.Chart} chart
|
|
58770
|
-
*
|
|
58771
58668
|
* @return {boolean}
|
|
58772
|
-
*
|
|
58669
|
+
* Returns collision status
|
|
58773
58670
|
*/
|
|
58774
58671
|
RangeSelector.prototype.titleCollision = function (chart) {
|
|
58775
58672
|
return !(chart.options.title.text ||
|
|
@@ -58781,7 +58678,6 @@
|
|
|
58781
58678
|
* @private
|
|
58782
58679
|
* @function Highcharts.RangeSelector#update
|
|
58783
58680
|
* @param {Highcharts.RangeSelectorOptions} options
|
|
58784
|
-
* @return {void}
|
|
58785
58681
|
*/
|
|
58786
58682
|
RangeSelector.prototype.update = function (options) {
|
|
58787
58683
|
var chart = this.chart;
|
|
@@ -58877,17 +58773,14 @@
|
|
|
58877
58773
|
*
|
|
58878
58774
|
* @private
|
|
58879
58775
|
* @function preferredInputType
|
|
58880
|
-
* @param {string} format
|
|
58881
|
-
* @return {string}
|
|
58882
58776
|
*/
|
|
58883
58777
|
function preferredInputType(format) {
|
|
58884
58778
|
var ms = format.indexOf('%L') !== -1;
|
|
58885
58779
|
if (ms) {
|
|
58886
58780
|
return 'text';
|
|
58887
58781
|
}
|
|
58888
|
-
var date = ['a', 'A', 'd', 'e', 'w', 'b', 'B', 'm', 'o', 'y', 'Y']
|
|
58889
|
-
return format.indexOf('%' + char) !== -1;
|
|
58890
|
-
});
|
|
58782
|
+
var date = ['a', 'A', 'd', 'e', 'w', 'b', 'B', 'm', 'o', 'y', 'Y']
|
|
58783
|
+
.some(function (char) { return format.indexOf('%' + char) !== -1; });
|
|
58891
58784
|
var time = ['H', 'k', 'I', 'l', 'M', 'S'].some(function (char) {
|
|
58892
58785
|
return format.indexOf('%' + char) !== -1;
|
|
58893
58786
|
});
|
|
@@ -58924,7 +58817,8 @@
|
|
|
58924
58817
|
// Get the true range from a start date
|
|
58925
58818
|
getTrueRange = function (base,
|
|
58926
58819
|
count) {
|
|
58927
|
-
var timeName = type === 'year' ?
|
|
58820
|
+
var timeName = type === 'year' ?
|
|
58821
|
+
'FullYear' : 'Month';
|
|
58928
58822
|
var date = new time.Date(base);
|
|
58929
58823
|
var basePeriod = time.get(timeName,
|
|
58930
58824
|
date);
|
|
@@ -59208,10 +59102,9 @@
|
|
|
59208
59102
|
* Function to run when the chart has loaded and and all external
|
|
59209
59103
|
* images are loaded.
|
|
59210
59104
|
*
|
|
59211
|
-
* @return {void}
|
|
59212
59105
|
*
|
|
59213
|
-
* @
|
|
59214
|
-
* @
|
|
59106
|
+
* @emits Highcharts.StockChart#event:init
|
|
59107
|
+
* @emits Highcharts.StockChart#event:afterInit
|
|
59215
59108
|
*/
|
|
59216
59109
|
StockChart.prototype.init = function (userOptions, callback) {
|
|
59217
59110
|
var defaultOptions = getOptions(),
|
|
@@ -59237,7 +59130,8 @@
|
|
|
59237
59130
|
},
|
|
59238
59131
|
scrollbar: {
|
|
59239
59132
|
// #4988 - check if setOptions was called
|
|
59240
|
-
enabled: pick(defaultOptions.scrollbar &&
|
|
59133
|
+
enabled: pick((defaultOptions.scrollbar &&
|
|
59134
|
+
defaultOptions.scrollbar.enabled),
|
|
59241
59135
|
true)
|
|
59242
59136
|
},
|
|
59243
59137
|
rangeSelector: {
|
|
@@ -59266,15 +59160,15 @@
|
|
|
59266
59160
|
// apply X axis options to both single and multi y axes
|
|
59267
59161
|
options.xAxis = splat(userOptions.xAxis || {}).map(function (xAxisOptions, i) {
|
|
59268
59162
|
return merge(getDefaultAxisOptions('xAxis', xAxisOptions), defaultOptions.xAxis, // #3802
|
|
59269
|
-
|
|
59270
|
-
xAxisOptions, // user options
|
|
59163
|
+
// #7690
|
|
59164
|
+
defaultOptions.xAxis && defaultOptions.xAxis[i], xAxisOptions, // user options
|
|
59271
59165
|
getForcedAxisOptions('xAxis', userOptions));
|
|
59272
59166
|
});
|
|
59273
59167
|
// apply Y axis options to both single and multi y axes
|
|
59274
59168
|
options.yAxis = splat(userOptions.yAxis || {}).map(function (yAxisOptions, i) {
|
|
59275
59169
|
return merge(getDefaultAxisOptions('yAxis', yAxisOptions), defaultOptions.yAxis, // #3802
|
|
59276
|
-
|
|
59277
|
-
yAxisOptions // user options
|
|
59170
|
+
// #7690
|
|
59171
|
+
defaultOptions.yAxis && defaultOptions.yAxis[i], yAxisOptions // user options
|
|
59278
59172
|
);
|
|
59279
59173
|
});
|
|
59280
59174
|
_super.prototype.init.call(this, options, callback);
|
|
@@ -59285,14 +59179,10 @@
|
|
|
59285
59179
|
*
|
|
59286
59180
|
* @private
|
|
59287
59181
|
* @function Highcharts.StockChart#createAxis
|
|
59288
|
-
*
|
|
59289
59182
|
* @param {string} type
|
|
59290
|
-
*
|
|
59291
|
-
*
|
|
59183
|
+
* An axis type.
|
|
59292
59184
|
* @param {Chart.CreateAxisOptionsObject} options
|
|
59293
|
-
*
|
|
59294
|
-
*
|
|
59295
|
-
* @return {Highcharts.Axis | Highcharts.ColorAxis}
|
|
59185
|
+
* The axis creation options.
|
|
59296
59186
|
*/
|
|
59297
59187
|
StockChart.prototype.createAxis = function (type, options) {
|
|
59298
59188
|
options.axis = merge(getDefaultAxisOptions(type, options.axis), options.axis, getForcedAxisOptions(type, this.userOptions));
|
|
@@ -59348,9 +59238,6 @@
|
|
|
59348
59238
|
*
|
|
59349
59239
|
* @private
|
|
59350
59240
|
* @function getDefaultAxisOptions
|
|
59351
|
-
* @param {string} type
|
|
59352
|
-
* @param {Highcharts.AxisOptions} options
|
|
59353
|
-
* @return {Highcharts.AxisOptions}
|
|
59354
59241
|
*/
|
|
59355
59242
|
function getDefaultAxisOptions(type, options) {
|
|
59356
59243
|
if (type === 'xAxis') {
|
|
@@ -59397,9 +59284,6 @@
|
|
|
59397
59284
|
*
|
|
59398
59285
|
* @private
|
|
59399
59286
|
* @function getForcedAxisOptions
|
|
59400
|
-
* @param {string} type
|
|
59401
|
-
* @param {Highcharts.Options} chartOptions
|
|
59402
|
-
* @return {Highcharts.AxisOptions}
|
|
59403
59287
|
*/
|
|
59404
59288
|
function getForcedAxisOptions(type, chartOptions) {
|
|
59405
59289
|
if (type === 'xAxis') {
|
|
@@ -59618,9 +59502,6 @@
|
|
|
59618
59502
|
*
|
|
59619
59503
|
* @private
|
|
59620
59504
|
* @function Highcharts.SVGRenderer#crispPolyLine
|
|
59621
|
-
* @param {Highcharts.SVGPathArray} points
|
|
59622
|
-
* @param {number} width
|
|
59623
|
-
* @return {Highcharts.SVGPathArray}
|
|
59624
59505
|
*/
|
|
59625
59506
|
SVGRenderer.prototype.crispPolyLine = function (points, width) {
|
|
59626
59507
|
// points format: [['M', 0, 0], ['L', 100, 0]]
|