highcharts 9.2.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/README.md +13 -6
- package/bower.json +1 -1
- package/css/annotations/popup.css +48 -8
- package/css/annotations/popup.scss +70 -22
- package/css/highcharts.css +46 -1
- package/css/highcharts.scss +40 -0
- package/css/stocktools/gui.css +1 -1
- package/css/themes/dark-unica.css +46 -1
- package/css/themes/grid-light.css +46 -1
- package/css/themes/sand-signika.css +46 -1
- package/es-modules/Accessibility/A11yI18n.js +269 -224
- package/es-modules/Accessibility/Accessibility.js +244 -129
- package/es-modules/Accessibility/AccessibilityComponent.js +78 -313
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +19 -5
- package/es-modules/Accessibility/Components/ContainerComponent.js +53 -28
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +178 -120
- package/es-modules/Accessibility/Components/LegendComponent.js +251 -129
- package/es-modules/Accessibility/Components/MenuComponent.js +239 -154
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +172 -93
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +161 -115
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +138 -69
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +67 -28
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +48 -56
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +387 -343
- package/es-modules/Accessibility/Components/ZoomComponent.js +156 -70
- package/es-modules/Accessibility/FocusBorder.js +192 -152
- package/es-modules/Accessibility/HighContrastMode.js +79 -66
- package/es-modules/Accessibility/HighContrastTheme.js +10 -0
- package/es-modules/Accessibility/KeyboardNavigation.js +151 -75
- package/es-modules/Accessibility/KeyboardNavigationHandler.js +71 -44
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +21 -4
- package/es-modules/Accessibility/Options/LangOptions.js +4 -5
- package/es-modules/Accessibility/Options/Options.js +32 -17
- package/es-modules/Accessibility/ProxyElement.js +218 -0
- package/es-modules/Accessibility/ProxyProvider.js +302 -0
- package/es-modules/Accessibility/Utils/Announcer.js +17 -10
- package/es-modules/Accessibility/Utils/ChartUtilities.js +55 -45
- package/es-modules/Accessibility/Utils/DOMElementProvider.js +27 -15
- package/es-modules/Accessibility/Utils/EventProvider.js +27 -17
- package/es-modules/Accessibility/Utils/HTMLUtilities.js +125 -42
- package/es-modules/Core/Animation/Fx.js +5 -14
- package/es-modules/Core/Axis/Axis.js +77 -96
- package/es-modules/Core/Axis/Axis3D.js +10 -4
- package/es-modules/Core/Axis/AxisDefaults.js +35 -24
- 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 +55 -5
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +5 -5
- 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 +88 -92
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +4 -5
- 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 +27 -12
- 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 +28 -19
- package/es-modules/Core/Axis/TreeGridTick.js +5 -3
- 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 +44 -47
- package/es-modules/Core/Chart/Chart3D.js +23 -10
- package/es-modules/Core/Chart/ChartDefaults.js +3 -4
- package/es-modules/Core/Chart/ChartNavigationComposition.js +92 -0
- package/es-modules/Core/Chart/GanttChart.js +4 -4
- package/es-modules/Core/Chart/MapChart.js +13 -25
- package/es-modules/Core/Chart/StockChart.js +13 -316
- package/es-modules/Core/Color/Palettes.js +22 -0
- package/es-modules/Core/DefaultOptions.js +22 -19
- package/es-modules/Core/Foundation.js +39 -31
- package/es-modules/Core/Geometry/CircleUtilities.js +2 -1
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/HttpUtilities.js +8 -7
- package/es-modules/Core/Legend/Legend.js +19 -16
- package/es-modules/Core/Navigator.js +41 -30
- package/es-modules/Core/Pointer.js +52 -45
- package/es-modules/Core/Renderer/HTML/AST.js +29 -14
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +27 -20
- 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 +11 -20
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +17 -8
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +25 -29
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +12 -5
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +18 -12
- package/es-modules/Core/Responsive.js +2 -3
- package/es-modules/Core/Scrollbar.js +14 -12
- package/es-modules/Core/ScrollbarDefaults.js +10 -9
- package/es-modules/Core/Series/DataLabel.js +19 -15
- package/es-modules/Core/Series/Point.js +22 -19
- package/es-modules/Core/Series/Series.js +200 -235
- package/es-modules/Core/Series/SeriesDefaults.js +8 -8
- package/es-modules/Core/Series/SeriesRegistry.js +1 -2
- package/es-modules/Core/Time.js +14 -11
- package/es-modules/Core/Tooltip.js +63 -53
- package/es-modules/Core/Utilities.js +20 -24
- package/es-modules/Data/DataConverter.js +483 -0
- package/es-modules/Data/DataPromise.js +252 -0
- package/es-modules/Data/DataSeriesConverter.js +207 -0
- package/es-modules/Data/DataTable.js +1205 -0
- package/es-modules/Data/Modifiers/ChainModifier.js +299 -0
- package/es-modules/Data/Modifiers/DataModifier.js +303 -0
- package/es-modules/Data/Modifiers/GroupModifier.js +144 -0
- package/es-modules/Data/Modifiers/InvertModifier.js +254 -0
- package/es-modules/Data/Modifiers/RangeModifier.js +143 -0
- package/es-modules/Data/Modifiers/SeriesPointsModifier.js +110 -0
- package/es-modules/Data/Modifiers/SortModifier.js +249 -0
- package/es-modules/Data/Parsers/CSVParser.js +400 -0
- package/es-modules/Data/Parsers/DataParser.js +101 -0
- package/es-modules/Data/Parsers/GoogleSheetsParser.js +223 -0
- package/es-modules/Data/Parsers/HTMLTableParser.js +213 -0
- package/es-modules/Data/Stores/CSVStore.js +317 -0
- package/es-modules/Data/Stores/DataStore.js +276 -0
- package/es-modules/Data/Stores/GoogleSheetsStore.js +169 -0
- package/es-modules/Data/Stores/HTMLTableStore.js +353 -0
- package/es-modules/Extensions/Annotations/Annotations.js +69 -18
- package/es-modules/Extensions/Annotations/ControlPoint.js +1 -3
- package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +199 -0
- 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 +13 -4
- 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 +120 -53
- package/es-modules/Extensions/Annotations/Popup.js +494 -148
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +51 -2
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +5 -3
- package/es-modules/Extensions/Annotations/Types/ElliottWave.js +1 -1
- package/es-modules/Extensions/Annotations/Types/Fibonacci.js +2 -3
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +219 -0
- package/es-modules/Extensions/Annotations/Types/InfinityLine.js +1 -1
- package/es-modules/Extensions/Annotations/Types/Measure.js +29 -19
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +7 -6
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +211 -0
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +13 -10
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +1 -1
- package/es-modules/Extensions/Boost/BoostOptions.js +2 -2
- package/es-modules/Extensions/Boost/BoostOverrides.js +6 -10
- 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 +13 -11
- package/es-modules/Extensions/Boost/WGLVBuffer.js +4 -7
- package/es-modules/Extensions/BoostCanvas.js +1 -2
- package/es-modules/Extensions/CurrentDateIndication.js +2 -3
- package/es-modules/Extensions/Data.js +77 -115
- package/es-modules/Extensions/DataGrouping.js +54 -32
- package/es-modules/Extensions/Debugger/ErrorMessages.js +2 -2
- package/es-modules/Extensions/DownloadURL.js +2 -2
- package/es-modules/Extensions/DragPanes.js +1 -2
- package/es-modules/Extensions/DraggablePoints.js +7 -8
- package/es-modules/Extensions/Drilldown.js +11 -7
- package/es-modules/Extensions/ExportData.js +6 -5
- package/es-modules/Extensions/Exporting/Exporting.js +35 -48
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -15
- package/es-modules/Extensions/FullScreen.js +4 -3
- package/es-modules/Extensions/GeoJSON.js +42 -66
- package/es-modules/Extensions/MarkerClusters.js +118 -98
- package/es-modules/Extensions/Math3D.js +4 -4
- package/es-modules/Extensions/NoDataToDisplay.js +1 -2
- package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +33 -33
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +14 -79
- package/es-modules/Extensions/Oldie/VMLAxis3D.js +5 -1
- package/es-modules/Extensions/OverlappingDataLabels.js +10 -6
- package/es-modules/Extensions/Pane.js +11 -12
- package/es-modules/Extensions/ParallelCoordinates.js +5 -3
- package/es-modules/Extensions/PatternFill.js +17 -11
- package/es-modules/Extensions/Polar.js +7 -4
- package/es-modules/Extensions/PriceIndication.js +2 -1
- package/es-modules/Extensions/RangeSelector.js +22 -59
- package/es-modules/Extensions/ScrollablePlotArea.js +2 -2
- package/es-modules/Extensions/SeriesLabel.js +1 -1
- package/es-modules/Extensions/Sonification/ChartSonify.js +279 -663
- package/es-modules/Extensions/Sonification/Earcon.js +136 -102
- package/es-modules/Extensions/Sonification/Instrument.js +493 -426
- package/es-modules/Extensions/Sonification/MusicalFrequencies.js +10 -0
- package/es-modules/Extensions/Sonification/Options.js +10 -0
- package/es-modules/Extensions/Sonification/PointSonify.js +207 -152
- package/es-modules/Extensions/Sonification/SeriesSonify.js +474 -0
- package/es-modules/Extensions/Sonification/SignalHandler.js +122 -0
- package/es-modules/Extensions/Sonification/Sonification.js +27 -53
- package/es-modules/Extensions/Sonification/{Utilities.js → SonificationUtilities.js} +70 -88
- package/es-modules/Extensions/Sonification/Timeline.js +250 -567
- package/es-modules/Extensions/Sonification/TimelineEvent.js +157 -0
- package/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
- 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 +30 -68
- package/es-modules/Maps/MapNavigationOptionsDefault.js +3 -0
- package/es-modules/Maps/MapPointer.js +8 -5
- package/es-modules/Maps/MapSymbols.js +23 -3
- package/es-modules/Maps/MapView.js +450 -0
- package/es-modules/Maps/MapViewOptionsDefault.js +97 -0
- package/es-modules/Maps/Projection.js +436 -0
- package/es-modules/Maps/ProjectionDefinition.js +9 -0
- package/es-modules/Maps/Projections/EqualEarth.js +42 -0
- package/es-modules/Maps/Projections/LambertConformalConic.js +52 -0
- package/es-modules/Maps/Projections/Miller.js +16 -0
- package/es-modules/Maps/Projections/Orthographic.js +26 -0
- package/es-modules/Maps/Projections/ProjectionRegistry.js +19 -0
- package/es-modules/Maps/Projections/WebMercator.js +24 -0
- package/es-modules/Series/Area/AreaSeries.js +13 -13
- package/es-modules/Series/Area3DSeries.js +4 -2
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +28 -17
- package/es-modules/Series/Bellcurve/BellcurveSeries.js +4 -9
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +1 -2
- package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -2
- package/es-modules/Series/Bubble/BubbleLegendItem.js +5 -15
- package/es-modules/Series/Bubble/BubblePoint.js +5 -0
- package/es-modules/Series/Bubble/BubbleSeries.js +90 -50
- package/es-modules/Series/Candlestick/CandlestickSeries.js +10 -19
- package/es-modules/{Mixins/CenteredSeries.js → Series/CenteredUtilities.js} +45 -23
- package/es-modules/{Mixins/ColorMapSeries.js → Series/ColorMapMixin.js} +10 -8
- package/es-modules/Series/Column/ColumnDataLabel.js +5 -5
- package/es-modules/Series/Column/ColumnSeries.js +19 -18
- package/es-modules/Series/Column3D/Column3DComposition.js +1 -2
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +11 -8
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
- package/es-modules/Series/Cylinder/CylinderComposition.js +36 -4
- package/es-modules/Series/DataModifyComposition.js +539 -0
- package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +2 -6
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +1 -1
- package/es-modules/Series/DerivedComposition.js +137 -0
- package/es-modules/Series/DrawPointComposition.js +111 -0
- package/es-modules/Series/Dumbbell/DumbbellPoint.js +0 -1
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +2 -6
- package/es-modules/Series/ErrorBar/ErrorBarSeries.js +1 -2
- package/es-modules/Series/Flags/FlagsSeries.js +18 -25
- package/es-modules/Series/Flags/FlagsSymbols.js +2 -2
- package/es-modules/Series/Funnel/FunnelSeries.js +6 -5
- 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 -3
- package/es-modules/Series/Gauge/GaugePoint.js +1 -1
- package/es-modules/Series/Gauge/GaugeSeries.js +7 -7
- package/es-modules/Series/HLC/HLCPoint.js +55 -0
- package/es-modules/Series/HLC/HLCSeries.js +378 -0
- package/es-modules/Series/Heatmap/HeatmapPoint.js +13 -14
- package/es-modules/Series/Heatmap/HeatmapSeries.js +24 -12
- package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +10 -9
- package/es-modules/Series/Histogram/HistogramSeries.js +7 -11
- package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +1 -4
- package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +28 -30
- package/es-modules/Series/Item/ItemSeries.js +4 -5
- package/es-modules/Series/Line/LineSeries.js +1 -2
- package/es-modules/Series/Map/MapPoint.js +27 -14
- package/es-modules/Series/Map/MapSeries.js +283 -322
- package/es-modules/Series/MapBubble/MapBubblePoint.js +0 -3
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +10 -1
- package/es-modules/Series/MapLine/MapLineSeries.js +2 -4
- package/es-modules/Series/MapPoint/MapPointPoint.js +5 -1
- package/es-modules/Series/MapPoint/MapPointSeries.js +99 -14
- 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 +6 -10
- package/es-modules/Series/Networkgraph/QuadTree.js +1 -3
- package/es-modules/{Mixins/Nodes.js → Series/NodesComposition.js} +78 -30
- package/es-modules/Series/OHLC/OHLCPoint.js +2 -7
- package/es-modules/Series/OHLC/OHLCSeries.js +55 -183
- package/es-modules/{Mixins/OnSeries.js → Series/OnSeriesComposition.js} +53 -21
- package/es-modules/Series/Organization/OrganizationSeries.js +6 -5
- 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 +48 -10
- package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -7
- package/es-modules/Series/Pie/PieDataLabel.js +1 -2
- package/es-modules/Series/Pie/PiePoint.js +2 -2
- package/es-modules/Series/Pie/PieSeries.js +7 -8
- 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/SankeyPoint.js +0 -4
- package/es-modules/Series/Sankey/SankeySeries.js +92 -22
- package/es-modules/Series/SolidGauge/SolidGaugeComposition.js +3 -1
- package/es-modules/Series/Spline/SplineSeries.js +0 -8
- package/es-modules/Series/Sunburst/SunburstPoint.js +2 -3
- package/es-modules/Series/Sunburst/SunburstSeries.js +6 -6
- package/es-modules/Series/Sunburst/SunburstUtilities.js +3 -2
- package/es-modules/Series/Tilemap/TilemapPoint.js +2 -5
- package/es-modules/Series/Tilemap/TilemapShapes.js +0 -7
- package/es-modules/Series/Timeline/TimelineSeries.js +3 -4
- package/es-modules/{Mixins/TreeSeries.js → Series/TreeUtilities.js} +88 -78
- package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +22 -25
- package/es-modules/Series/Variwide/VariwideSeries.js +5 -1
- package/es-modules/Series/Venn/VennPoint.js +16 -7
- package/es-modules/Series/Venn/VennSeries.js +11 -17
- package/es-modules/Series/Venn/VennUtils.js +551 -439
- package/es-modules/Series/Waterfall/WaterfallSeries.js +8 -6
- package/es-modules/Series/Windbarb/WindbarbSeries.js +23 -24
- package/es-modules/Series/Wordcloud/WordcloudPoint.js +8 -6
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +26 -22
- package/es-modules/Series/Wordcloud/WordcloudUtils.js +669 -484
- package/es-modules/Series/XRange/XRangePoint.js +7 -12
- package/es-modules/Series/XRange/XRangeSeries.js +4 -20
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +15 -6
- package/es-modules/Stock/Indicators/AO/AOIndicator.js +2 -3
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +14 -20
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +4 -6
- package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +11 -13
- package/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +39 -11
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +35 -15
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +6 -12
- package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -11
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +28 -16
- package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +18 -11
- package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +1 -3
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +6 -6
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +23 -9
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +16 -19
- package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +32 -14
- package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +2 -2
- package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +2 -2
- package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +2 -2
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +2 -3
- package/es-modules/Stock/Indicators/MultipleLinesComposition.js +294 -0
- package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +1 -3
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +25 -13
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -11
- 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/SMAComposition.js +0 -26
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +32 -50
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +0 -8
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +18 -9
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +4 -6
- package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +26 -11
- package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +6 -12
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +26 -10
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +19 -7
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +2 -3
- package/es-modules/Stock/StockToolsBindings.js +156 -47
- package/es-modules/Stock/StockToolsGui.js +442 -37
- 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/ema.src.js +4 -10
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +2 -2
- package/es-modules/masters/indicators/indicators.src.js +2 -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 +16 -2
- package/es-modules/masters/modules/annotations-advanced.src.js +3 -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 +6 -3
- 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 -2
- 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 -3
- 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 +33 -2
- 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 +4 -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 +800 -803
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +1359 -1429
- package/highcharts-more.js +194 -193
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.js +280 -222
- package/highcharts.d.ts +10228 -768
- package/highcharts.js +585 -588
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +10228 -768
- package/highcharts.src.js +995 -1066
- package/highmaps.js +727 -707
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +3243 -2135
- package/highstock.js +788 -783
- package/highstock.js.map +1 -1
- package/highstock.src.js +2492 -1981
- package/indicators/acceleration-bands.d.ts +17 -1
- package/indicators/acceleration-bands.js +11 -9
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.d.ts +17 -1
- package/indicators/acceleration-bands.src.js +238 -112
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +6 -6
- package/indicators/ao.js.map +1 -1
- package/indicators/ao.src.js +4 -4
- package/indicators/apo.js +5 -6
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +16 -84
- 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 +230 -177
- 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 +227 -112
- 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 -9
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.d.ts +17 -1
- package/indicators/bollinger-bands.src.js +262 -117
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +8 -9
- package/indicators/chaikin.js.map +1 -1
- package/indicators/chaikin.src.js +8 -76
- 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 +5 -6
- package/indicators/dema.js.map +1 -1
- package/indicators/dema.src.js +3 -75
- package/indicators/disparity-index.js +6 -7
- package/indicators/disparity-index.js.map +1 -1
- package/indicators/disparity-index.src.js +20 -74
- package/indicators/dmi.js +12 -11
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +252 -121
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.src.js +1 -1
- package/indicators/ema.js +1 -13
- package/indicators/ema.js.map +1 -1
- package/indicators/ema.src.js +7 -188
- 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 -203
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.d.ts +17 -1
- package/indicators/indicators-all.src.js +892 -777
- package/indicators/indicators.js +12 -12
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +213 -144
- 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 +246 -118
- package/indicators/klinger.js +14 -13
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +239 -187
- package/indicators/macd.js +2 -2
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +3 -4
- 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 +3 -3
- package/indicators/natr.js.map +1 -1
- package/indicators/natr.src.js +2 -4
- 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 +5 -6
- package/indicators/ppo.js.map +1 -1
- package/indicators/ppo.src.js +3 -75
- 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 +288 -168
- 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 +39 -21
- 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 +5 -6
- package/indicators/slow-stochastic.js.map +1 -1
- package/indicators/slow-stochastic.src.js +2 -72
- 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 +282 -165
- package/indicators/supertrend.js +10 -10
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +6 -7
- package/indicators/tema.js +6 -7
- package/indicators/tema.js.map +1 -1
- package/indicators/tema.src.js +28 -75
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +4 -5
- package/indicators/trix.js.map +1 -1
- package/indicators/trix.src.js +8 -76
- package/indicators/volume-by-price.js +16 -16
- package/indicators/volume-by-price.js.map +1 -1
- package/indicators/volume-by-price.src.js +27 -10
- 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 +5 -6
- package/indicators/williams-r.js.map +1 -1
- package/indicators/williams-r.src.js +41 -51
- 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 -30
- package/modules/accessibility.js +240 -216
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.d.ts +0 -30
- package/modules/accessibility.src.js +7807 -6400
- package/modules/annotations-advanced.d.ts +30 -0
- package/modules/annotations-advanced.js +192 -165
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.d.ts +30 -0
- package/modules/annotations-advanced.src.js +1716 -416
- package/modules/annotations.js +125 -110
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +1059 -304
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +15 -15
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.js +3 -3
- package/modules/boost.js +79 -79
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +42 -51
- 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 +24 -24
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +77 -103
- package/modules/current-date-indicator.js +4 -4
- package/modules/current-date-indicator.js.map +1 -1
- package/modules/current-date-indicator.src.js +4 -4
- 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 +32 -32
- package/modules/data.js.map +1 -1
- package/modules/data.src.d.ts +6 -6
- package/modules/data.src.js +94 -140
- package/modules/datagrouping.js +20 -20
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.js +56 -33
- package/modules/debugger.js +3 -3
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +3 -3
- package/modules/dependency-wheel.js +11 -11
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +5 -8
- package/modules/dotplot.js +1 -1
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.js +8 -8
- package/modules/drag-panes.js.map +1 -1
- package/modules/drag-panes.src.js +3 -3
- 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 +24 -24
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.js +13 -8
- package/modules/dumbbell.js +17 -17
- package/modules/dumbbell.js.map +1 -1
- package/modules/dumbbell.src.js +4 -8
- package/modules/export-data.js +19 -19
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +9 -8
- package/modules/exporting.js +39 -38
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +134 -116
- 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 +12 -12
- package/modules/funnel.js.map +1 -1
- package/modules/funnel.src.js +9 -6
- package/modules/funnel3d.js +1 -1
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +17 -10
- package/modules/gantt.js +217 -218
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +364 -363
- 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 +132 -141
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.js.map +1 -1
- package/modules/heikinashi.src.js +12 -10
- package/modules/histogram-bellcurve.js +13 -13
- package/modules/histogram-bellcurve.js.map +1 -1
- package/modules/histogram-bellcurve.src.js +97 -91
- package/modules/hollowcandlestick.js +9 -9
- package/modules/hollowcandlestick.js.map +1 -1
- package/modules/hollowcandlestick.src.js +31 -35
- 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 +138 -14
- package/modules/map.js +144 -122
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +138 -14
- package/modules/map.src.js +2253 -1074
- package/modules/marker-clusters.js +36 -36
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +176 -143
- package/modules/networkgraph.d.ts +12 -1
- package/modules/networkgraph.js +49 -49
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.d.ts +12 -1
- package/modules/networkgraph.src.js +103 -78
- package/modules/no-data-to-display.js +5 -5
- package/modules/no-data-to-display.js.map +1 -1
- package/modules/no-data-to-display.src.js +3 -3
- package/modules/offline-exporting.js +18 -17
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +39 -44
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +1 -1
- package/modules/oldie.js +26 -26
- package/modules/oldie.js.map +1 -1
- package/modules/oldie.src.js +21 -81
- package/modules/organization.js +13 -13
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +8 -6
- 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 +7 -7
- package/modules/pareto.js.map +1 -1
- package/modules/pareto.src.js +89 -78
- 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.d.ts +12 -1
- package/modules/sankey.js +29 -29
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.d.ts +12 -1
- package/modules/sankey.src.js +307 -181
- 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 +59 -55
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.js +3093 -2594
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +178 -163
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.js +1136 -229
- package/modules/stock.d.ts +39 -6
- package/modules/stock.js +204 -196
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.d.ts +39 -6
- package/modules/stock.src.js +1822 -1240
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +60 -60
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +281 -248
- package/modules/tilemap.js +17 -17
- package/modules/tilemap.js.map +1 -1
- package/modules/tilemap.src.js +3 -13
- package/modules/timeline.js +18 -18
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +5 -5
- package/modules/treegrid.js +56 -57
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +201 -169
- package/modules/treemap.js +41 -41
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.js +266 -232
- 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 +31 -31
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +740 -731
- package/modules/windbarb.js +15 -15
- package/modules/windbarb.js.map +1 -1
- package/modules/windbarb.src.js +90 -62
- package/modules/wordcloud.js +23 -24
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +898 -954
- package/modules/xrange.js +2 -2
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +12 -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/Core/Axis/MapAxis.js +0 -157
- package/es-modules/Core/Color/Palette.js +0 -82
- package/es-modules/Extensions/Sonification/InstrumentDefinitions.js +0 -32
- package/es-modules/Mixins/ColorSeries.js +0 -77
- package/es-modules/Mixins/DerivedSeries.js +0 -118
- package/es-modules/Mixins/DrawPoint.js +0 -81
- package/es-modules/Mixins/IndicatorRequired.js +0 -56
- package/es-modules/Mixins/MultipleLines.js +0 -181
- package/es-modules/Mixins/Navigation.js +0 -54
- package/es-modules/Mixins/NelderMead.js +0 -132
- package/es-modules/Mixins/Polygon.js +0 -259
- package/es-modules/Mixins/ReduceArray.js +0 -54
package/highcharts.src.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS v9.2
|
|
2
|
+
* @license Highcharts 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.2
|
|
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
|
|
@@ -520,9 +520,13 @@
|
|
|
520
520
|
return typeof obj !== 'undefined' && obj !== null;
|
|
521
521
|
}
|
|
522
522
|
/**
|
|
523
|
-
* Set or get an attribute or an object of attributes.
|
|
524
|
-
*
|
|
525
|
-
*
|
|
523
|
+
* Set or get an attribute or an object of attributes.
|
|
524
|
+
*
|
|
525
|
+
* To use as a setter, pass a key and a value, or let the second argument be a
|
|
526
|
+
* collection of keys and values. When using a collection, passing a value of
|
|
527
|
+
* `null` or `undefined` will remove the attribute.
|
|
528
|
+
*
|
|
529
|
+
* To use as a getter, pass only a string as the second argument.
|
|
526
530
|
*
|
|
527
531
|
* @function Highcharts.attr
|
|
528
532
|
*
|
|
@@ -558,7 +562,12 @@
|
|
|
558
562
|
}
|
|
559
563
|
else {
|
|
560
564
|
objectEach(prop, function (val, key) {
|
|
561
|
-
|
|
565
|
+
if (defined(val)) {
|
|
566
|
+
elem.setAttribute(key, val);
|
|
567
|
+
}
|
|
568
|
+
else {
|
|
569
|
+
elem.removeAttribute(key);
|
|
570
|
+
}
|
|
562
571
|
});
|
|
563
572
|
}
|
|
564
573
|
return ret;
|
|
@@ -752,7 +761,7 @@
|
|
|
752
761
|
return obj;
|
|
753
762
|
}
|
|
754
763
|
/**
|
|
755
|
-
* 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.
|
|
756
765
|
*
|
|
757
766
|
* @function Highcharts.pad
|
|
758
767
|
*
|
|
@@ -929,8 +938,6 @@
|
|
|
929
938
|
*
|
|
930
939
|
* @param {Function} sortFunction
|
|
931
940
|
* The function to sort it with, like with regular Array.prototype.sort.
|
|
932
|
-
*
|
|
933
|
-
* @return {void}
|
|
934
941
|
*/
|
|
935
942
|
function stableSort(arr, sortFunction) {
|
|
936
943
|
// @todo It seems like Chrome since v70 sorts in a stable way internally,
|
|
@@ -1023,7 +1030,7 @@
|
|
|
1023
1030
|
});
|
|
1024
1031
|
}
|
|
1025
1032
|
/**
|
|
1026
|
-
* Discard a HTML element
|
|
1033
|
+
* Discard a HTML element
|
|
1027
1034
|
*
|
|
1028
1035
|
* @function Highcharts.discardElement
|
|
1029
1036
|
*
|
|
@@ -1031,17 +1038,10 @@
|
|
|
1031
1038
|
* The HTML node to discard.
|
|
1032
1039
|
*/
|
|
1033
1040
|
function discardElement(element) {
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
garbageBin = createElement('div');
|
|
1041
|
+
if (element && element.parentElement) {
|
|
1042
|
+
element.parentElement.removeChild(element);
|
|
1037
1043
|
}
|
|
1038
|
-
// move the node and empty bin
|
|
1039
|
-
if (element) {
|
|
1040
|
-
garbageBin.appendChild(element);
|
|
1041
|
-
}
|
|
1042
|
-
garbageBin.innerHTML = '';
|
|
1043
1044
|
}
|
|
1044
|
-
var garbageBin;
|
|
1045
1045
|
/**
|
|
1046
1046
|
* Fix JS round off float errors.
|
|
1047
1047
|
*
|
|
@@ -1057,7 +1057,8 @@
|
|
|
1057
1057
|
* The corrected float number.
|
|
1058
1058
|
*/
|
|
1059
1059
|
function correctFloat(num, prec) {
|
|
1060
|
-
|
|
1060
|
+
// When the number is higher than 1e14 use the number (#16275)
|
|
1061
|
+
return num > 1e14 ? num : parseFloat(num.toPrecision(prec || 14));
|
|
1061
1062
|
}
|
|
1062
1063
|
/**
|
|
1063
1064
|
* The time unit lookup
|
|
@@ -1239,7 +1240,7 @@
|
|
|
1239
1240
|
var i;
|
|
1240
1241
|
var length = arr.length;
|
|
1241
1242
|
for (i = 0; i < length; i++) {
|
|
1242
|
-
if (callback(arr[i], i)) { // eslint-disable-line callback-return
|
|
1243
|
+
if (callback(arr[i], i)) { // eslint-disable-line node/callback-return
|
|
1243
1244
|
return arr[i];
|
|
1244
1245
|
}
|
|
1245
1246
|
}
|
|
@@ -1511,9 +1512,6 @@
|
|
|
1511
1512
|
/* eslint-enable valid-jsdoc */
|
|
1512
1513
|
/**
|
|
1513
1514
|
* @private
|
|
1514
|
-
* @param {string} type - event type
|
|
1515
|
-
* @param {Highcharts.EventCallbackFunction<T>} fn - callback
|
|
1516
|
-
* @return {void}
|
|
1517
1515
|
*/
|
|
1518
1516
|
function removeOneEvent(type, fn) {
|
|
1519
1517
|
var removeEventListener = (el.removeEventListener || H.removeEventListenerPolyfill);
|
|
@@ -1523,8 +1521,6 @@
|
|
|
1523
1521
|
}
|
|
1524
1522
|
/**
|
|
1525
1523
|
* @private
|
|
1526
|
-
* @param {any} eventCollection - collection
|
|
1527
|
-
* @return {void}
|
|
1528
1524
|
*/
|
|
1529
1525
|
function removeAllEvents(eventCollection) {
|
|
1530
1526
|
var types,
|
|
@@ -2155,106 +2151,7 @@
|
|
|
2155
2151
|
|
|
2156
2152
|
return Utilities;
|
|
2157
2153
|
});
|
|
2158
|
-
_registerModule(_modules, 'Core/
|
|
2159
|
-
var palette = {
|
|
2160
|
-
/**
|
|
2161
|
-
* Colors for data series and points.
|
|
2162
|
-
*/
|
|
2163
|
-
colors: [
|
|
2164
|
-
'#7cb5ec',
|
|
2165
|
-
'#434348',
|
|
2166
|
-
'#90ed7d',
|
|
2167
|
-
'#f7a35c',
|
|
2168
|
-
'#8085e9',
|
|
2169
|
-
'#f15c80',
|
|
2170
|
-
'#e4d354',
|
|
2171
|
-
'#2b908f',
|
|
2172
|
-
'#f45b5b',
|
|
2173
|
-
'#91e8e1'
|
|
2174
|
-
],
|
|
2175
|
-
/**
|
|
2176
|
-
* Chart background,
|
|
2177
|
-
point stroke for markers and columns etc
|
|
2178
|
-
*/
|
|
2179
|
-
backgroundColor: '#ffffff',
|
|
2180
|
-
/**
|
|
2181
|
-
* Strong text.
|
|
2182
|
-
*/
|
|
2183
|
-
neutralColor100: '#000000',
|
|
2184
|
-
/**
|
|
2185
|
-
* Main text and some strokes.
|
|
2186
|
-
*/
|
|
2187
|
-
neutralColor80: '#333333',
|
|
2188
|
-
/**
|
|
2189
|
-
* Axis labels,
|
|
2190
|
-
axis title,
|
|
2191
|
-
connector fallback.
|
|
2192
|
-
*/
|
|
2193
|
-
neutralColor60: '#666666',
|
|
2194
|
-
/**
|
|
2195
|
-
* Credits text,
|
|
2196
|
-
export menu stroke.
|
|
2197
|
-
*/
|
|
2198
|
-
neutralColor40: '#999999',
|
|
2199
|
-
/**
|
|
2200
|
-
* Disabled texts,
|
|
2201
|
-
button strokes,
|
|
2202
|
-
crosshair etc.
|
|
2203
|
-
*/
|
|
2204
|
-
neutralColor20: '#cccccc',
|
|
2205
|
-
/**
|
|
2206
|
-
* Grid lines etc.
|
|
2207
|
-
*/
|
|
2208
|
-
neutralColor10: '#e6e6e6',
|
|
2209
|
-
/**
|
|
2210
|
-
* Minor grid lines etc.
|
|
2211
|
-
*/
|
|
2212
|
-
neutralColor5: '#f2f2f2',
|
|
2213
|
-
/**
|
|
2214
|
-
* Tooltip backgroud,
|
|
2215
|
-
button fills,
|
|
2216
|
-
map null points.
|
|
2217
|
-
*/
|
|
2218
|
-
neutralColor3: '#f7f7f7',
|
|
2219
|
-
/**
|
|
2220
|
-
* Drilldown clickable labels,
|
|
2221
|
-
color axis max color.
|
|
2222
|
-
*/
|
|
2223
|
-
highlightColor100: '#003399',
|
|
2224
|
-
/**
|
|
2225
|
-
* Selection marker,
|
|
2226
|
-
menu hover,
|
|
2227
|
-
button hover,
|
|
2228
|
-
chart border,
|
|
2229
|
-
navigator series.
|
|
2230
|
-
*/
|
|
2231
|
-
highlightColor80: '#335cad',
|
|
2232
|
-
/**
|
|
2233
|
-
* Navigator mask fill.
|
|
2234
|
-
*/
|
|
2235
|
-
highlightColor60: '#6685c2',
|
|
2236
|
-
/**
|
|
2237
|
-
* Ticks and axis line.
|
|
2238
|
-
*/
|
|
2239
|
-
highlightColor20: '#ccd6eb',
|
|
2240
|
-
/**
|
|
2241
|
-
* Pressed button,
|
|
2242
|
-
color axis min color.
|
|
2243
|
-
*/
|
|
2244
|
-
highlightColor10: '#e6ebf5',
|
|
2245
|
-
/**
|
|
2246
|
-
* Positive indicator color
|
|
2247
|
-
*/
|
|
2248
|
-
positiveColor: '#06b535',
|
|
2249
|
-
/**
|
|
2250
|
-
* Negative indicator color
|
|
2251
|
-
*/
|
|
2252
|
-
negativeColor: '#f21313'
|
|
2253
|
-
};
|
|
2254
|
-
|
|
2255
|
-
return palette;
|
|
2256
|
-
});
|
|
2257
|
-
_registerModule(_modules, 'Core/Chart/ChartDefaults.js', [_modules['Core/Color/Palette.js']], function (Palette) {
|
|
2154
|
+
_registerModule(_modules, 'Core/Chart/ChartDefaults.js', [], function () {
|
|
2258
2155
|
/* *
|
|
2259
2156
|
*
|
|
2260
2157
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -3240,7 +3137,7 @@
|
|
|
3240
3137
|
*
|
|
3241
3138
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
3242
3139
|
*/
|
|
3243
|
-
borderColor:
|
|
3140
|
+
borderColor: "#335cad" /* highlightColor80 */,
|
|
3244
3141
|
/**
|
|
3245
3142
|
* The pixel width of the outer chart border.
|
|
3246
3143
|
*
|
|
@@ -3279,7 +3176,7 @@
|
|
|
3279
3176
|
*
|
|
3280
3177
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
3281
3178
|
*/
|
|
3282
|
-
backgroundColor:
|
|
3179
|
+
backgroundColor: "#ffffff" /* backgroundColor */,
|
|
3283
3180
|
/**
|
|
3284
3181
|
* The background color or gradient for the plot area.
|
|
3285
3182
|
*
|
|
@@ -3336,7 +3233,7 @@
|
|
|
3336
3233
|
*
|
|
3337
3234
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
3338
3235
|
*/
|
|
3339
|
-
plotBorderColor:
|
|
3236
|
+
plotBorderColor: "#cccccc" /* neutralColor20 */
|
|
3340
3237
|
};
|
|
3341
3238
|
/* *
|
|
3342
3239
|
*
|
|
@@ -3773,6 +3670,31 @@
|
|
|
3773
3670
|
|
|
3774
3671
|
return Color;
|
|
3775
3672
|
});
|
|
3673
|
+
_registerModule(_modules, 'Core/Color/Palettes.js', [], function () {
|
|
3674
|
+
/**
|
|
3675
|
+
* Series palettes for Highcharts. Series colors are defined in highcharts.scss.
|
|
3676
|
+
* **Do not edit this file!** This file is generated using the 'gulp palette' task.
|
|
3677
|
+
*/
|
|
3678
|
+
var SeriesPalettes = {
|
|
3679
|
+
/**
|
|
3680
|
+
* Colors for data series and points.
|
|
3681
|
+
*/
|
|
3682
|
+
colors: [
|
|
3683
|
+
'#7cb5ec',
|
|
3684
|
+
'#434348',
|
|
3685
|
+
'#90ed7d',
|
|
3686
|
+
'#f7a35c',
|
|
3687
|
+
'#8085e9',
|
|
3688
|
+
'#f15c80',
|
|
3689
|
+
'#e4d354',
|
|
3690
|
+
'#2b908f',
|
|
3691
|
+
'#f45b5b',
|
|
3692
|
+
'#91e8e1'
|
|
3693
|
+
]
|
|
3694
|
+
};
|
|
3695
|
+
|
|
3696
|
+
return SeriesPalettes;
|
|
3697
|
+
});
|
|
3776
3698
|
_registerModule(_modules, 'Core/Time.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (H, U) {
|
|
3777
3699
|
/* *
|
|
3778
3700
|
*
|
|
@@ -3948,7 +3870,8 @@
|
|
|
3948
3870
|
// time
|
|
3949
3871
|
if (unit === 'Milliseconds' ||
|
|
3950
3872
|
unit === 'Seconds' ||
|
|
3951
|
-
(unit === 'Minutes' &&
|
|
3873
|
+
(unit === 'Minutes' &&
|
|
3874
|
+
this.getTimezoneOffset(date) % 3600000 === 0) // #13961
|
|
3952
3875
|
) {
|
|
3953
3876
|
return date['setUTC' + unit](value);
|
|
3954
3877
|
}
|
|
@@ -3965,8 +3888,8 @@
|
|
|
3965
3888
|
}
|
|
3966
3889
|
// UTC time with no timezone handling
|
|
3967
3890
|
if (this.useUTC ||
|
|
3968
|
-
|
|
3969
|
-
|
|
3891
|
+
// leap calculation in UTC only
|
|
3892
|
+
(hasNewSafariBug && unit === 'FullYear')) {
|
|
3970
3893
|
return date['setUTC' + unit](value);
|
|
3971
3894
|
}
|
|
3972
3895
|
// Else, local time
|
|
@@ -3982,7 +3905,6 @@
|
|
|
3982
3905
|
*
|
|
3983
3906
|
* @param {Highcharts.TimeOptions} options
|
|
3984
3907
|
*
|
|
3985
|
-
* @return {void}
|
|
3986
3908
|
*/
|
|
3987
3909
|
Time.prototype.update = function (options) {
|
|
3988
3910
|
var useUTC = pick(options && options.useUTC,
|
|
@@ -4071,6 +3993,7 @@
|
|
|
4071
3993
|
Time.prototype.timezoneOffsetFunction = function () {
|
|
4072
3994
|
var time = this,
|
|
4073
3995
|
options = this.options,
|
|
3996
|
+
getTimezoneOffset = options.getTimezoneOffset,
|
|
4074
3997
|
moment = options.moment || win.moment;
|
|
4075
3998
|
if (!this.useUTC) {
|
|
4076
3999
|
return function (timestamp) {
|
|
@@ -4090,9 +4013,9 @@
|
|
|
4090
4013
|
}
|
|
4091
4014
|
}
|
|
4092
4015
|
// If not timezone is set, look for the getTimezoneOffset callback
|
|
4093
|
-
if (this.useUTC &&
|
|
4016
|
+
if (this.useUTC && getTimezoneOffset) {
|
|
4094
4017
|
return function (timestamp) {
|
|
4095
|
-
return
|
|
4018
|
+
return getTimezoneOffset(timestamp.valueOf()) * 60000;
|
|
4096
4019
|
};
|
|
4097
4020
|
}
|
|
4098
4021
|
// Last, use the `timezoneOffset` option if set
|
|
@@ -4226,8 +4149,10 @@
|
|
|
4226
4149
|
* Resolve legacy formats of dateTimeLabelFormats (strings and arrays) into
|
|
4227
4150
|
* an object.
|
|
4228
4151
|
* @private
|
|
4229
|
-
* @param {string|Array<T>|Highcharts.Dictionary<T>} f
|
|
4230
|
-
*
|
|
4152
|
+
* @param {string|Array<T>|Highcharts.Dictionary<T>} f
|
|
4153
|
+
* General format description
|
|
4154
|
+
* @return {Highcharts.Dictionary<T>}
|
|
4155
|
+
* The object definition
|
|
4231
4156
|
*/
|
|
4232
4157
|
Time.prototype.resolveDTLFormat = function (f) {
|
|
4233
4158
|
if (!isObject(f, true)) { // check for string or array
|
|
@@ -4259,6 +4184,7 @@
|
|
|
4259
4184
|
* @param {number} [startOfWeek=1]
|
|
4260
4185
|
*
|
|
4261
4186
|
* @return {Highcharts.AxisTickPositionsArray}
|
|
4187
|
+
* Time positions
|
|
4262
4188
|
*/
|
|
4263
4189
|
Time.prototype.getTimeTicks = function (normalizedInterval, min, max, startOfWeek) {
|
|
4264
4190
|
var time = this,
|
|
@@ -4528,15 +4454,15 @@
|
|
|
4528
4454
|
* In case of loading the library from a `script` tag,
|
|
4529
4455
|
* this option is not needed, it will be loaded from there by default.
|
|
4530
4456
|
*
|
|
4531
|
-
* @type
|
|
4532
|
-
* @since
|
|
4457
|
+
* @type {Function}
|
|
4458
|
+
* @since 8.2.0
|
|
4533
4459
|
* @apioption time.moment
|
|
4534
4460
|
*/
|
|
4535
4461
|
''; // keeps doclets above in JS file
|
|
4536
4462
|
|
|
4537
4463
|
return Time;
|
|
4538
4464
|
});
|
|
4539
|
-
_registerModule(_modules, 'Core/DefaultOptions.js', [_modules['Core/Chart/ChartDefaults.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Color/
|
|
4465
|
+
_registerModule(_modules, 'Core/DefaultOptions.js', [_modules['Core/Chart/ChartDefaults.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Color/Palettes.js'], _modules['Core/Time.js'], _modules['Core/Utilities.js']], function (ChartDefaults, Color, H, Palettes, Time, U) {
|
|
4540
4466
|
/* *
|
|
4541
4467
|
*
|
|
4542
4468
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -4598,7 +4524,7 @@
|
|
|
4598
4524
|
* @default ["#7cb5ec", "#434348", "#90ed7d", "#f7a35c", "#8085e9",
|
|
4599
4525
|
* "#f15c80", "#e4d354", "#2b908f", "#f45b5b", "#91e8e1"]
|
|
4600
4526
|
*/
|
|
4601
|
-
colors:
|
|
4527
|
+
colors: Palettes.colors,
|
|
4602
4528
|
/**
|
|
4603
4529
|
* Styled mode only. Configuration object for adding SVG definitions for
|
|
4604
4530
|
* reusable elements. See [gradients, shadows and
|
|
@@ -5415,7 +5341,7 @@
|
|
|
5415
5341
|
/**
|
|
5416
5342
|
* @ignore-option
|
|
5417
5343
|
*/
|
|
5418
|
-
color:
|
|
5344
|
+
color: "#333333" /* neutralColor80 */
|
|
5419
5345
|
}
|
|
5420
5346
|
},
|
|
5421
5347
|
/**
|
|
@@ -5695,7 +5621,7 @@
|
|
|
5695
5621
|
*
|
|
5696
5622
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
5697
5623
|
*/
|
|
5698
|
-
borderColor:
|
|
5624
|
+
borderColor: "#999999" /* neutralColor40 */,
|
|
5699
5625
|
/**
|
|
5700
5626
|
* The border corner radius of the legend.
|
|
5701
5627
|
*
|
|
@@ -5789,7 +5715,7 @@
|
|
|
5789
5715
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
5790
5716
|
* @since 2.2.4
|
|
5791
5717
|
*/
|
|
5792
|
-
activeColor:
|
|
5718
|
+
activeColor: "#003399" /* highlightColor100 */,
|
|
5793
5719
|
/**
|
|
5794
5720
|
* The color of the inactive up or down arrow in the legend page
|
|
5795
5721
|
* navigation. .
|
|
@@ -5805,7 +5731,7 @@
|
|
|
5805
5731
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
5806
5732
|
* @since 2.2.4
|
|
5807
5733
|
*/
|
|
5808
|
-
inactiveColor:
|
|
5734
|
+
inactiveColor: "#cccccc" /* neutralColor20 */
|
|
5809
5735
|
},
|
|
5810
5736
|
/**
|
|
5811
5737
|
* The inner padding of the legend box.
|
|
@@ -5881,7 +5807,7 @@
|
|
|
5881
5807
|
/**
|
|
5882
5808
|
* @ignore
|
|
5883
5809
|
*/
|
|
5884
|
-
color:
|
|
5810
|
+
color: "#333333" /* neutralColor80 */,
|
|
5885
5811
|
/**
|
|
5886
5812
|
* @ignore
|
|
5887
5813
|
*/
|
|
@@ -5919,7 +5845,7 @@
|
|
|
5919
5845
|
/**
|
|
5920
5846
|
* @ignore
|
|
5921
5847
|
*/
|
|
5922
|
-
color:
|
|
5848
|
+
color: "#000000" /* neutralColor100 */
|
|
5923
5849
|
},
|
|
5924
5850
|
/**
|
|
5925
5851
|
* CSS styles for each legend item when the corresponding series or
|
|
@@ -5940,7 +5866,7 @@
|
|
|
5940
5866
|
/**
|
|
5941
5867
|
* @ignore
|
|
5942
5868
|
*/
|
|
5943
|
-
color:
|
|
5869
|
+
color: "#cccccc" /* neutralColor20 */
|
|
5944
5870
|
},
|
|
5945
5871
|
/**
|
|
5946
5872
|
* Whether to apply a drop shadow to the legend. A `backgroundColor`
|
|
@@ -6244,7 +6170,7 @@
|
|
|
6244
6170
|
/**
|
|
6245
6171
|
* @ignore
|
|
6246
6172
|
*/
|
|
6247
|
-
backgroundColor:
|
|
6173
|
+
backgroundColor: "#ffffff" /* backgroundColor */,
|
|
6248
6174
|
/**
|
|
6249
6175
|
* @ignore
|
|
6250
6176
|
*/
|
|
@@ -6587,11 +6513,13 @@
|
|
|
6587
6513
|
* @apioption tooltip.xDateFormat
|
|
6588
6514
|
*/
|
|
6589
6515
|
/**
|
|
6590
|
-
* How many decimals to show for the `point.change`
|
|
6591
|
-
* `
|
|
6592
|
-
*
|
|
6516
|
+
* How many decimals to show for the `point.change`
|
|
6517
|
+
* or the `point.cumulativeSum` value when the `series.compare`
|
|
6518
|
+
* or the `series.cumulative` option is set.
|
|
6519
|
+
* This is overridable in each series' tooltip options object.
|
|
6593
6520
|
*
|
|
6594
6521
|
* @type {number}
|
|
6522
|
+
* @default 2
|
|
6595
6523
|
* @since 1.0.1
|
|
6596
6524
|
* @product highstock
|
|
6597
6525
|
* @apioption tooltip.changeDecimals
|
|
@@ -6629,7 +6557,7 @@
|
|
|
6629
6557
|
* header will by default be guessed based on the closest data points.
|
|
6630
6558
|
* This member gives the default string representations used for
|
|
6631
6559
|
* each unit. For an overview of the replacement codes, see
|
|
6632
|
-
* [dateFormat](/class-reference/Highcharts
|
|
6560
|
+
* [dateFormat](/class-reference/Highcharts.Time#dateFormat).
|
|
6633
6561
|
*
|
|
6634
6562
|
* @see [xAxis.dateTimeLabelFormats](#xAxis.dateTimeLabelFormats)
|
|
6635
6563
|
*
|
|
@@ -6833,7 +6761,7 @@
|
|
|
6833
6761
|
*
|
|
6834
6762
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
6835
6763
|
*/
|
|
6836
|
-
backgroundColor: color(
|
|
6764
|
+
backgroundColor: color("#f7f7f7" /* neutralColor3 */)
|
|
6837
6765
|
// @todo: Disallow undefined as input for colors
|
|
6838
6766
|
.setOpacity(0.85).get(),
|
|
6839
6767
|
/**
|
|
@@ -6896,7 +6824,7 @@
|
|
|
6896
6824
|
*/
|
|
6897
6825
|
style: {
|
|
6898
6826
|
/** @internal */
|
|
6899
|
-
color:
|
|
6827
|
+
color: "#333333" /* neutralColor80 */,
|
|
6900
6828
|
/** @internal */
|
|
6901
6829
|
cursor: 'default',
|
|
6902
6830
|
/** @internal */
|
|
@@ -7011,7 +6939,7 @@
|
|
|
7011
6939
|
/** @internal */
|
|
7012
6940
|
cursor: 'pointer',
|
|
7013
6941
|
/** @internal */
|
|
7014
|
-
color:
|
|
6942
|
+
color: "#999999" /* neutralColor40 */,
|
|
7015
6943
|
/** @internal */
|
|
7016
6944
|
fontSize: '9px'
|
|
7017
6945
|
},
|
|
@@ -7046,6 +6974,7 @@
|
|
|
7046
6974
|
* @function Highcharts.getOptions
|
|
7047
6975
|
*
|
|
7048
6976
|
* @return {Highcharts.Options}
|
|
6977
|
+
* Default options.
|
|
7049
6978
|
*/
|
|
7050
6979
|
function getOptions() {
|
|
7051
6980
|
return defaultOptions;
|
|
@@ -7060,10 +6989,10 @@
|
|
|
7060
6989
|
* @function Highcharts.setOptions
|
|
7061
6990
|
*
|
|
7062
6991
|
* @param {Highcharts.Options} options
|
|
7063
|
-
*
|
|
6992
|
+
* The new custom chart options.
|
|
7064
6993
|
*
|
|
7065
6994
|
* @return {Highcharts.Options}
|
|
7066
|
-
*
|
|
6995
|
+
* Updated options.
|
|
7067
6996
|
*/
|
|
7068
6997
|
function setOptions(options) {
|
|
7069
6998
|
// Copy in the default options
|
|
@@ -7338,7 +7267,6 @@
|
|
|
7338
7267
|
*
|
|
7339
7268
|
* @function Highcharts.Fx#dSetter
|
|
7340
7269
|
*
|
|
7341
|
-
* @return {void}
|
|
7342
7270
|
*/
|
|
7343
7271
|
Fx.prototype.dSetter = function () {
|
|
7344
7272
|
var paths = this.paths,
|
|
@@ -7387,7 +7315,6 @@
|
|
|
7387
7315
|
*
|
|
7388
7316
|
* @function Highcharts.Fx#update
|
|
7389
7317
|
*
|
|
7390
|
-
* @return {void}
|
|
7391
7318
|
*/
|
|
7392
7319
|
Fx.prototype.update = function () {
|
|
7393
7320
|
var elem = this.elem,
|
|
@@ -7426,7 +7353,6 @@
|
|
|
7426
7353
|
* @param {string} unit
|
|
7427
7354
|
* The property unit, for example `px`.
|
|
7428
7355
|
*
|
|
7429
|
-
* @return {void}
|
|
7430
7356
|
*/
|
|
7431
7357
|
Fx.prototype.run = function (from, to, unit) {
|
|
7432
7358
|
var self = this,
|
|
@@ -7448,7 +7374,8 @@
|
|
|
7448
7374
|
};
|
|
7449
7375
|
if (from === to && !this.elem['forceAnimate:' + this.prop]) {
|
|
7450
7376
|
delete options.curAnim[this.prop];
|
|
7451
|
-
if (options.complete &&
|
|
7377
|
+
if (options.complete &&
|
|
7378
|
+
Object.keys(options.curAnim).length === 0) {
|
|
7452
7379
|
options.complete.call(this.elem);
|
|
7453
7380
|
}
|
|
7454
7381
|
}
|
|
@@ -7507,7 +7434,8 @@
|
|
|
7507
7434
|
}
|
|
7508
7435
|
else {
|
|
7509
7436
|
this.pos = options.easing((t - this.startTime) / duration);
|
|
7510
|
-
this.now = this.start + ((this.end -
|
|
7437
|
+
this.now = this.start + ((this.end -
|
|
7438
|
+
this.start) * this.pos);
|
|
7511
7439
|
this.update();
|
|
7512
7440
|
ret = true;
|
|
7513
7441
|
}
|
|
@@ -7549,9 +7477,6 @@
|
|
|
7549
7477
|
/**
|
|
7550
7478
|
* If shifting points, prepend a dummy point to the end path.
|
|
7551
7479
|
* @private
|
|
7552
|
-
* @param {Highcharts.SVGPathArray} arr - array
|
|
7553
|
-
* @param {Highcharts.SVGPathArray} other - array
|
|
7554
|
-
* @return {void}
|
|
7555
7480
|
*/
|
|
7556
7481
|
function prepend(arr, other) {
|
|
7557
7482
|
while (arr.length < fullLength) {
|
|
@@ -7587,9 +7512,6 @@
|
|
|
7587
7512
|
/**
|
|
7588
7513
|
* Copy and append last point until the length matches the end length.
|
|
7589
7514
|
* @private
|
|
7590
|
-
* @param {Highcharts.SVGPathArray} arr - array
|
|
7591
|
-
* @param {Highcharts.SVGPathArray} other - array
|
|
7592
|
-
* @return {void}
|
|
7593
7515
|
*/
|
|
7594
7516
|
function append(arr, other) {
|
|
7595
7517
|
while (arr.length < fullLength) {
|
|
@@ -7661,7 +7583,6 @@
|
|
|
7661
7583
|
*
|
|
7662
7584
|
* @function Highcharts.Fx#fillSetter
|
|
7663
7585
|
*
|
|
7664
|
-
* @return {void}
|
|
7665
7586
|
*/
|
|
7666
7587
|
Fx.prototype.fillSetter = function () {
|
|
7667
7588
|
Fx.prototype.strokeSetter.apply(this, arguments);
|
|
@@ -7671,10 +7592,9 @@
|
|
|
7671
7592
|
*
|
|
7672
7593
|
* @function Highcharts.Fx#strokeSetter
|
|
7673
7594
|
*
|
|
7674
|
-
* @return {void}
|
|
7675
7595
|
*/
|
|
7676
7596
|
Fx.prototype.strokeSetter = function () {
|
|
7677
|
-
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);
|
|
7678
7598
|
};
|
|
7679
7599
|
/* *
|
|
7680
7600
|
*
|
|
@@ -7917,23 +7837,34 @@
|
|
|
7917
7837
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
7918
7838
|
*
|
|
7919
7839
|
* */
|
|
7920
|
-
var SVG_NS = H.SVG_NS
|
|
7840
|
+
var SVG_NS = H.SVG_NS,
|
|
7841
|
+
win = H.win;
|
|
7921
7842
|
var attr = U.attr,
|
|
7922
7843
|
createElement = U.createElement,
|
|
7923
|
-
discardElement = U.discardElement,
|
|
7924
7844
|
error = U.error,
|
|
7845
|
+
isFunction = U.isFunction,
|
|
7925
7846
|
isString = U.isString,
|
|
7926
7847
|
objectEach = U.objectEach,
|
|
7927
7848
|
splat = U.splat;
|
|
7849
|
+
var trustedTypes = win.trustedTypes;
|
|
7928
7850
|
/* *
|
|
7929
7851
|
*
|
|
7930
7852
|
* Constants
|
|
7931
7853
|
*
|
|
7932
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
|
+
'';
|
|
7933
7864
|
// In IE8, DOMParser is undefined. IE9 and PhantomJS are only able to parse XML.
|
|
7934
7865
|
var hasValidDOMParser = (function () {
|
|
7935
7866
|
try {
|
|
7936
|
-
return Boolean(new DOMParser().parseFromString(
|
|
7867
|
+
return Boolean(new DOMParser().parseFromString(emptyHTML, 'text/html'));
|
|
7937
7868
|
}
|
|
7938
7869
|
catch (e) {
|
|
7939
7870
|
return false;
|
|
@@ -8016,7 +7947,7 @@
|
|
|
8016
7947
|
* Markup string
|
|
8017
7948
|
*/
|
|
8018
7949
|
AST.setElementHTML = function (el, html) {
|
|
8019
|
-
el.innerHTML =
|
|
7950
|
+
el.innerHTML = AST.emptyHTML; // Clear previous
|
|
8020
7951
|
if (html) {
|
|
8021
7952
|
var ast = new AST(html);
|
|
8022
7953
|
ast.addToDOM(el);
|
|
@@ -8041,9 +7972,12 @@
|
|
|
8041
7972
|
AST.prototype.addToDOM = function (parent) {
|
|
8042
7973
|
/**
|
|
8043
7974
|
* @private
|
|
8044
|
-
* @param {Highcharts.ASTNode} subtree
|
|
8045
|
-
*
|
|
8046
|
-
* @
|
|
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.
|
|
8047
7981
|
*/
|
|
8048
7982
|
function recurse(subtree, subParent) {
|
|
8049
7983
|
var ret;
|
|
@@ -8084,7 +8018,8 @@
|
|
|
8084
8018
|
node = element;
|
|
8085
8019
|
}
|
|
8086
8020
|
else {
|
|
8087
|
-
error(
|
|
8021
|
+
error('Highcharts warning: Invalid tagName ' +
|
|
8022
|
+
tagName + ' in config');
|
|
8088
8023
|
}
|
|
8089
8024
|
}
|
|
8090
8025
|
// Add to the tree
|
|
@@ -8114,12 +8049,13 @@
|
|
|
8114
8049
|
var nodes = [];
|
|
8115
8050
|
markup = markup.trim();
|
|
8116
8051
|
var doc;
|
|
8117
|
-
var body;
|
|
8118
8052
|
if (hasValidDOMParser) {
|
|
8119
|
-
doc = new DOMParser().parseFromString(
|
|
8053
|
+
doc = new DOMParser().parseFromString(trustedTypesPolicy ?
|
|
8054
|
+
trustedTypesPolicy.createHTML(markup) :
|
|
8055
|
+
markup, 'text/html');
|
|
8120
8056
|
}
|
|
8121
8057
|
else {
|
|
8122
|
-
body = createElement('div');
|
|
8058
|
+
var body = createElement('div');
|
|
8123
8059
|
body.innerHTML = markup;
|
|
8124
8060
|
doc = { body: body };
|
|
8125
8061
|
}
|
|
@@ -8155,9 +8091,6 @@
|
|
|
8155
8091
|
addTo.push(astNode);
|
|
8156
8092
|
};
|
|
8157
8093
|
[].forEach.call(doc.body.childNodes, function (childNode) { return appendChildNodes(childNode, nodes); });
|
|
8158
|
-
if (body) {
|
|
8159
|
-
discardElement(body);
|
|
8160
|
-
}
|
|
8161
8094
|
return nodes;
|
|
8162
8095
|
};
|
|
8163
8096
|
/* *
|
|
@@ -8236,6 +8169,7 @@
|
|
|
8236
8169
|
'text-align',
|
|
8237
8170
|
'textAnchor',
|
|
8238
8171
|
'textLength',
|
|
8172
|
+
'title',
|
|
8239
8173
|
'type',
|
|
8240
8174
|
'valign',
|
|
8241
8175
|
'width',
|
|
@@ -8281,6 +8215,7 @@
|
|
|
8281
8215
|
*/
|
|
8282
8216
|
AST.allowedTags = [
|
|
8283
8217
|
'a',
|
|
8218
|
+
'abbr',
|
|
8284
8219
|
'b',
|
|
8285
8220
|
'br',
|
|
8286
8221
|
'button',
|
|
@@ -8342,6 +8277,7 @@
|
|
|
8342
8277
|
'ul',
|
|
8343
8278
|
'#text'
|
|
8344
8279
|
];
|
|
8280
|
+
AST.emptyHTML = emptyHTML;
|
|
8345
8281
|
return AST;
|
|
8346
8282
|
}());
|
|
8347
8283
|
/* *
|
|
@@ -8677,7 +8613,8 @@
|
|
|
8677
8613
|
* @private
|
|
8678
8614
|
*/
|
|
8679
8615
|
function distribute(boxes, len, maxDistance) {
|
|
8680
|
-
|
|
8616
|
+
// Original array will be altered with added .pos
|
|
8617
|
+
var origBoxes = boxes,
|
|
8681
8618
|
reducedLen = origBoxes.reducedLen || len,
|
|
8682
8619
|
sortByRank = function (a,
|
|
8683
8620
|
b) {
|
|
@@ -8800,7 +8737,7 @@
|
|
|
8800
8737
|
|
|
8801
8738
|
return RendererUtilities;
|
|
8802
8739
|
});
|
|
8803
|
-
_registerModule(_modules, 'Core/Renderer/SVG/SVGElement.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Renderer/HTML/AST.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/
|
|
8740
|
+
_registerModule(_modules, 'Core/Renderer/SVG/SVGElement.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Renderer/HTML/AST.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (A, AST, Color, H, U) {
|
|
8804
8741
|
/* *
|
|
8805
8742
|
*
|
|
8806
8743
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -8932,7 +8869,6 @@
|
|
|
8932
8869
|
*
|
|
8933
8870
|
* @param {Highcharts.SVGDOMElement} element
|
|
8934
8871
|
*
|
|
8935
|
-
* @return {void}
|
|
8936
8872
|
*/
|
|
8937
8873
|
SVGElement.prototype._defaultSetter = function (value, key, element) {
|
|
8938
8874
|
element.setAttribute(key, value);
|
|
@@ -9085,7 +9021,8 @@
|
|
|
9085
9021
|
alignByTranslate = this.alignByTranslate;
|
|
9086
9022
|
alignTo = this.alignTo;
|
|
9087
9023
|
}
|
|
9088
|
-
box = pick(box, renderer[alignTo], alignTo === 'scrollablePlotBox' ?
|
|
9024
|
+
box = pick(box, renderer[alignTo], alignTo === 'scrollablePlotBox' ?
|
|
9025
|
+
renderer.plotBox : void 0, renderer);
|
|
9089
9026
|
// Assign variables
|
|
9090
9027
|
var align = alignOptions.align,
|
|
9091
9028
|
vAlign = alignOptions.verticalAlign;
|
|
@@ -9381,7 +9318,8 @@
|
|
|
9381
9318
|
// Let the shadow follow the main element
|
|
9382
9319
|
if (!this.styledMode &&
|
|
9383
9320
|
this.shadows &&
|
|
9384
|
-
/^(width|height|visibility|x|y|d|transform|cx|cy|r)
|
|
9321
|
+
/^(width|height|visibility|x|y|d|transform|cx|cy|r)$/
|
|
9322
|
+
.test(key)) {
|
|
9385
9323
|
this.updateShadows(key, val, setter);
|
|
9386
9324
|
}
|
|
9387
9325
|
}
|
|
@@ -9770,7 +9708,6 @@
|
|
|
9770
9708
|
* @private
|
|
9771
9709
|
* @function Highcharts.SVGElement#destroyShadows
|
|
9772
9710
|
*
|
|
9773
|
-
* @return {void}
|
|
9774
9711
|
*/
|
|
9775
9712
|
SVGElement.prototype.destroyShadows = function () {
|
|
9776
9713
|
(this.shadows || []).forEach(function (shadow) {
|
|
@@ -10010,8 +9947,7 @@
|
|
|
10010
9947
|
bBox.height = height = ({
|
|
10011
9948
|
'11px,17': 14,
|
|
10012
9949
|
'13px,20': 16
|
|
10013
|
-
}[
|
|
10014
|
-
styles.fontSize + ',' + Math.round(height)] ||
|
|
9950
|
+
}[(fontSize || '') + "," + Math.round(height)] ||
|
|
10015
9951
|
height);
|
|
10016
9952
|
}
|
|
10017
9953
|
// Adjust for rotated text
|
|
@@ -10337,7 +10273,7 @@
|
|
|
10337
10273
|
var childNodes = [].slice.call(textNode.childNodes);
|
|
10338
10274
|
for (var i = 0; i < childNodes.length; i++) {
|
|
10339
10275
|
var childNode = childNodes[i];
|
|
10340
|
-
if (childNode.nodeType === Node.TEXT_NODE ||
|
|
10276
|
+
if (childNode.nodeType === win.Node.TEXT_NODE ||
|
|
10341
10277
|
childNode.nodeName === 'tspan') {
|
|
10342
10278
|
textPathElement.appendChild(childNode);
|
|
10343
10279
|
}
|
|
@@ -10432,7 +10368,7 @@
|
|
|
10432
10368
|
element = this.element,
|
|
10433
10369
|
oldShadowOptions = this.oldShadowOptions,
|
|
10434
10370
|
defaultShadowOptions = {
|
|
10435
|
-
color:
|
|
10371
|
+
color: "#000000" /* neutralColor100 */,
|
|
10436
10372
|
offsetX: this.parentInverted ? -1 : 1,
|
|
10437
10373
|
offsetY: this.parentInverted ? -1 : 1,
|
|
10438
10374
|
opacity: 0.15,
|
|
@@ -10480,7 +10416,7 @@
|
|
|
10480
10416
|
strokeWidth = (options.width * 2) + 1 - (2 * i);
|
|
10481
10417
|
attr(shadow, {
|
|
10482
10418
|
stroke: (shadowOptions.color ||
|
|
10483
|
-
|
|
10419
|
+
"#000000" /* neutralColor100 */),
|
|
10484
10420
|
'stroke-opacity': shadowElementOpacity * i,
|
|
10485
10421
|
'stroke-width': strokeWidth,
|
|
10486
10422
|
transform: transform,
|
|
@@ -10690,12 +10626,13 @@
|
|
|
10690
10626
|
* @function Highcharts.SVGElement#translate
|
|
10691
10627
|
*
|
|
10692
10628
|
* @param {number} x
|
|
10693
|
-
*
|
|
10629
|
+
* The x value.
|
|
10694
10630
|
*
|
|
10695
10631
|
* @param {number} y
|
|
10696
|
-
*
|
|
10632
|
+
* The y value.
|
|
10697
10633
|
*
|
|
10698
10634
|
* @return {Highcharts.SVGElement}
|
|
10635
|
+
* Translated element.
|
|
10699
10636
|
*/
|
|
10700
10637
|
SVGElement.prototype.translate = function (x, y) {
|
|
10701
10638
|
return this.attr({
|
|
@@ -10789,7 +10726,6 @@
|
|
|
10789
10726
|
*
|
|
10790
10727
|
* @param {Highcharts.SVGDOMElement} element
|
|
10791
10728
|
*
|
|
10792
|
-
* @return {void}
|
|
10793
10729
|
*/
|
|
10794
10730
|
SVGElement.prototype.visibilitySetter = function (value, key, element) {
|
|
10795
10731
|
// IE9-11 doesn't handle visibilty:inherit well, so we remove the
|
|
@@ -10805,10 +10741,6 @@
|
|
|
10805
10741
|
/**
|
|
10806
10742
|
* @private
|
|
10807
10743
|
* @function Highcharts.SVGElement#xGetter
|
|
10808
|
-
*
|
|
10809
|
-
* @param {string} key
|
|
10810
|
-
*
|
|
10811
|
-
* @return {number|string|null}
|
|
10812
10744
|
*/
|
|
10813
10745
|
SVGElement.prototype.xGetter = function (key) {
|
|
10814
10746
|
if (this.element.nodeName === 'circle') {
|
|
@@ -10824,9 +10756,6 @@
|
|
|
10824
10756
|
/**
|
|
10825
10757
|
* @private
|
|
10826
10758
|
* @function Highcharts.SVGElement#zIndexSetter
|
|
10827
|
-
* @param {number} [value]
|
|
10828
|
-
* @param {string} [key]
|
|
10829
|
-
* @return {boolean}
|
|
10830
10759
|
*/
|
|
10831
10760
|
SVGElement.prototype.zIndexSetter = function (value, key) {
|
|
10832
10761
|
var renderer = this.renderer,
|
|
@@ -11311,7 +11240,8 @@
|
|
|
11311
11240
|
}
|
|
11312
11241
|
});
|
|
11313
11242
|
this.text.css(textStyles_1);
|
|
11314
|
-
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);
|
|
11315
11245
|
// Update existing text, box (#9400, #12163)
|
|
11316
11246
|
if (isFontStyle) {
|
|
11317
11247
|
this.updateTextPadding();
|
|
@@ -11481,13 +11411,15 @@
|
|
|
11481
11411
|
this.renderer.symbol(this.symbolKey) :
|
|
11482
11412
|
this.renderer.rect();
|
|
11483
11413
|
box.addClass(// Don't use label className for buttons
|
|
11484
|
-
(this.className === 'button' ?
|
|
11485
|
-
|
|
11414
|
+
(this.className === 'button' ?
|
|
11415
|
+
'' : 'highcharts-label-box') +
|
|
11416
|
+
(this.className ?
|
|
11417
|
+
' highcharts-' + this.className + '-box' : ''));
|
|
11486
11418
|
box.add(this);
|
|
11487
11419
|
}
|
|
11488
11420
|
crispAdjust = this.getCrispAdjust();
|
|
11489
11421
|
attribs.x = crispAdjust;
|
|
11490
|
-
attribs.y = (this.baseline ? -this.baselineOffset : 0) + crispAdjust;
|
|
11422
|
+
attribs.y = ((this.baseline ? -this.baselineOffset : 0) + crispAdjust);
|
|
11491
11423
|
// Apply the box attributes
|
|
11492
11424
|
attribs.width = Math.round(this.width);
|
|
11493
11425
|
attribs.height = Math.round(this.height);
|
|
@@ -11510,8 +11442,7 @@
|
|
|
11510
11442
|
if (defined(this.widthSetting) &&
|
|
11511
11443
|
this.bBox &&
|
|
11512
11444
|
(this.textAlign === 'center' || this.textAlign === 'right')) {
|
|
11513
|
-
textX += { center: 0.5, right: 1 }[this.textAlign] *
|
|
11514
|
-
(this.widthSetting - this.bBox.width);
|
|
11445
|
+
textX += { center: 0.5, right: 1 }[this.textAlign] * (this.widthSetting - this.bBox.width);
|
|
11515
11446
|
}
|
|
11516
11447
|
// update if anything changed
|
|
11517
11448
|
if (textX !== text.x || textY !== text.y) {
|
|
@@ -11539,7 +11470,9 @@
|
|
|
11539
11470
|
padding);
|
|
11540
11471
|
var paddingRight = pick(this.paddingRight,
|
|
11541
11472
|
padding);
|
|
11542
|
-
return (this.widthSetting || this.bBox.width || 0) +
|
|
11473
|
+
return ((this.widthSetting || this.bBox.width || 0) +
|
|
11474
|
+
paddingLeft +
|
|
11475
|
+
paddingRight);
|
|
11543
11476
|
};
|
|
11544
11477
|
SVGLabel.prototype.xSetter = function (value) {
|
|
11545
11478
|
this.x = value; // for animation getter
|
|
@@ -11560,7 +11493,12 @@
|
|
|
11560
11493
|
* Static Properties
|
|
11561
11494
|
*
|
|
11562
11495
|
* */
|
|
11563
|
-
SVGLabel.emptyBBox = {
|
|
11496
|
+
SVGLabel.emptyBBox = {
|
|
11497
|
+
width: 0,
|
|
11498
|
+
height: 0,
|
|
11499
|
+
x: 0,
|
|
11500
|
+
y: 0
|
|
11501
|
+
};
|
|
11564
11502
|
/**
|
|
11565
11503
|
* For labels, these CSS properties are applied to the `text` node directly.
|
|
11566
11504
|
*
|
|
@@ -11818,7 +11756,8 @@
|
|
|
11818
11756
|
*
|
|
11819
11757
|
* */
|
|
11820
11758
|
var doc = H.doc,
|
|
11821
|
-
SVG_NS = H.SVG_NS
|
|
11759
|
+
SVG_NS = H.SVG_NS,
|
|
11760
|
+
win = H.win;
|
|
11822
11761
|
var attr = U.attr,
|
|
11823
11762
|
isString = U.isString,
|
|
11824
11763
|
objectEach = U.objectEach,
|
|
@@ -11922,7 +11861,6 @@
|
|
|
11922
11861
|
*
|
|
11923
11862
|
* @private
|
|
11924
11863
|
*
|
|
11925
|
-
* @return {void}
|
|
11926
11864
|
*/
|
|
11927
11865
|
TextBuilder.prototype.modifyDOM = function () {
|
|
11928
11866
|
var _this = this;
|
|
@@ -12040,7 +11978,7 @@
|
|
|
12040
11978
|
var modifyChildren = (function (node) {
|
|
12041
11979
|
var childNodes = [].slice.call(node.childNodes);
|
|
12042
11980
|
childNodes.forEach(function (childNode) {
|
|
12043
|
-
if (childNode.nodeType === Node.TEXT_NODE) {
|
|
11981
|
+
if (childNode.nodeType === win.Node.TEXT_NODE) {
|
|
12044
11982
|
modifyTextNode(childNode, node);
|
|
12045
11983
|
}
|
|
12046
11984
|
else {
|
|
@@ -12066,7 +12004,7 @@
|
|
|
12066
12004
|
TextBuilder.prototype.getLineHeight = function (node) {
|
|
12067
12005
|
var fontSizeStyle;
|
|
12068
12006
|
// If the node is a text node, use its parent
|
|
12069
|
-
var element = node.nodeType === Node.TEXT_NODE ?
|
|
12007
|
+
var element = (node.nodeType === win.Node.TEXT_NODE) ?
|
|
12070
12008
|
node.parentElement :
|
|
12071
12009
|
node;
|
|
12072
12010
|
if (!this.renderer.styledMode) {
|
|
@@ -12088,22 +12026,23 @@
|
|
|
12088
12026
|
*
|
|
12089
12027
|
* @param {ASTNode[]} nodes The AST nodes
|
|
12090
12028
|
*
|
|
12091
|
-
* @return {void}
|
|
12092
12029
|
*/
|
|
12093
12030
|
TextBuilder.prototype.modifyTree = function (nodes) {
|
|
12094
12031
|
var _this = this;
|
|
12095
12032
|
var modifyChild = function (node,
|
|
12096
12033
|
i) {
|
|
12097
|
-
var
|
|
12098
|
-
|
|
12099
|
-
|
|
12034
|
+
var _a = node.attributes,
|
|
12035
|
+
attributes = _a === void 0 ? {} : _a,
|
|
12036
|
+
children = node.children,
|
|
12037
|
+
tagName = node.tagName,
|
|
12038
|
+
styledMode = _this.renderer.styledMode;
|
|
12100
12039
|
// Apply styling to text tags
|
|
12101
12040
|
if (tagName === 'b' || tagName === 'strong') {
|
|
12102
12041
|
if (styledMode) {
|
|
12103
12042
|
attributes['class'] = 'highcharts-strong'; // eslint-disable-line dot-notation
|
|
12104
12043
|
}
|
|
12105
12044
|
else {
|
|
12106
|
-
attributes.style = 'font-weight:bold;' + (attributes.style || '');
|
|
12045
|
+
attributes.style = ('font-weight:bold;' + (attributes.style || ''));
|
|
12107
12046
|
}
|
|
12108
12047
|
}
|
|
12109
12048
|
else if (tagName === 'i' || tagName === 'em') {
|
|
@@ -12111,13 +12050,14 @@
|
|
|
12111
12050
|
attributes['class'] = 'highcharts-emphasized'; // eslint-disable-line dot-notation
|
|
12112
12051
|
}
|
|
12113
12052
|
else {
|
|
12114
|
-
attributes.style = 'font-style:italic;' + (attributes.style || '');
|
|
12053
|
+
attributes.style = ('font-style:italic;' + (attributes.style || ''));
|
|
12115
12054
|
}
|
|
12116
12055
|
}
|
|
12117
12056
|
// Modify attributes
|
|
12118
12057
|
if (isString(attributes.style)) {
|
|
12119
12058
|
attributes.style = attributes.style.replace(/(;| |^)color([ :])/, '$1fill$2');
|
|
12120
12059
|
}
|
|
12060
|
+
// Handle breaks
|
|
12121
12061
|
if (tagName === 'br') {
|
|
12122
12062
|
attributes['class'] = 'highcharts-br'; // eslint-disable-line dot-notation
|
|
12123
12063
|
node.textContent = '\u200B'; // zero-width space
|
|
@@ -12127,14 +12067,23 @@
|
|
|
12127
12067
|
nextNode.textContent =
|
|
12128
12068
|
nextNode.textContent.replace(/^ +/gm, '');
|
|
12129
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' }];
|
|
12130
12079
|
}
|
|
12131
12080
|
if (tagName !== '#text' && tagName !== 'a') {
|
|
12132
12081
|
node.tagName = 'tspan';
|
|
12133
12082
|
}
|
|
12134
12083
|
node.attributes = attributes;
|
|
12135
12084
|
// Recurse
|
|
12136
|
-
if (
|
|
12137
|
-
|
|
12085
|
+
if (children) {
|
|
12086
|
+
children
|
|
12138
12087
|
.filter(function (c) { return c.tagName !== '#text'; })
|
|
12139
12088
|
.forEach(modifyChild);
|
|
12140
12089
|
}
|
|
@@ -12260,7 +12209,7 @@
|
|
|
12260
12209
|
|
|
12261
12210
|
return TextBuilder;
|
|
12262
12211
|
});
|
|
12263
|
-
_registerModule(_modules, 'Core/Renderer/SVG/SVGRenderer.js', [_modules['Core/Renderer/HTML/AST.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/
|
|
12212
|
+
_registerModule(_modules, 'Core/Renderer/SVG/SVGRenderer.js', [_modules['Core/Renderer/HTML/AST.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Renderer/RendererRegistry.js'], _modules['Core/Renderer/SVG/SVGElement.js'], _modules['Core/Renderer/SVG/SVGLabel.js'], _modules['Core/Renderer/SVG/Symbols.js'], _modules['Core/Renderer/SVG/TextBuilder.js'], _modules['Core/Utilities.js']], function (AST, Color, H, RendererRegistry, SVGElement, SVGLabel, Symbols, TextBuilder, U) {
|
|
12264
12213
|
/* *
|
|
12265
12214
|
*
|
|
12266
12215
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -12471,7 +12420,7 @@
|
|
|
12471
12420
|
this.url = this.getReferenceURL();
|
|
12472
12421
|
// Add description
|
|
12473
12422
|
var desc = this.createElement('desc').add();
|
|
12474
|
-
desc.element.appendChild(doc.createTextNode('Created with Highcharts 9.2
|
|
12423
|
+
desc.element.appendChild(doc.createTextNode('Created with Highcharts 9.3.2'));
|
|
12475
12424
|
renderer.defs = this.createElement('defs').add();
|
|
12476
12425
|
renderer.allowHTML = allowHTML;
|
|
12477
12426
|
renderer.forExport = forExport;
|
|
@@ -12663,6 +12612,7 @@
|
|
|
12663
12612
|
* @function Highcharts.SVGRenderer#destroy
|
|
12664
12613
|
*
|
|
12665
12614
|
* @return {null}
|
|
12615
|
+
* Pass through value.
|
|
12666
12616
|
*/
|
|
12667
12617
|
SVGRenderer.prototype.destroy = function () {
|
|
12668
12618
|
var renderer = this,
|
|
@@ -12823,11 +12773,11 @@
|
|
|
12823
12773
|
if (!styledMode) {
|
|
12824
12774
|
// Normal state - prepare the attributes
|
|
12825
12775
|
normalState = merge({
|
|
12826
|
-
fill:
|
|
12827
|
-
stroke:
|
|
12776
|
+
fill: "#f7f7f7" /* neutralColor3 */,
|
|
12777
|
+
stroke: "#cccccc" /* neutralColor20 */,
|
|
12828
12778
|
'stroke-width': 1,
|
|
12829
12779
|
style: {
|
|
12830
|
-
color:
|
|
12780
|
+
color: "#333333" /* neutralColor80 */,
|
|
12831
12781
|
cursor: 'pointer',
|
|
12832
12782
|
fontWeight: 'normal'
|
|
12833
12783
|
}
|
|
@@ -12838,15 +12788,15 @@
|
|
|
12838
12788
|
delete normalState.style;
|
|
12839
12789
|
// Hover state
|
|
12840
12790
|
hoverState = merge(normalState, {
|
|
12841
|
-
fill:
|
|
12791
|
+
fill: "#e6e6e6" /* neutralColor10 */
|
|
12842
12792
|
}, AST.filterUserAttributes(hoverState || {}));
|
|
12843
12793
|
hoverStyle = hoverState.style;
|
|
12844
12794
|
delete hoverState.style;
|
|
12845
12795
|
// Pressed state
|
|
12846
12796
|
pressedState = merge(normalState, {
|
|
12847
|
-
fill:
|
|
12797
|
+
fill: "#e6ebf5" /* highlightColor10 */,
|
|
12848
12798
|
style: {
|
|
12849
|
-
color:
|
|
12799
|
+
color: "#000000" /* neutralColor100 */,
|
|
12850
12800
|
fontWeight: 'bold'
|
|
12851
12801
|
}
|
|
12852
12802
|
}, AST.filterUserAttributes(pressedState || {}));
|
|
@@ -12855,7 +12805,7 @@
|
|
|
12855
12805
|
// Disabled state
|
|
12856
12806
|
disabledState = merge(normalState, {
|
|
12857
12807
|
style: {
|
|
12858
|
-
color:
|
|
12808
|
+
color: "#cccccc" /* neutralColor20 */
|
|
12859
12809
|
}
|
|
12860
12810
|
}, AST.filterUserAttributes(disabledState || {}));
|
|
12861
12811
|
disabledStyle = disabledState.style;
|
|
@@ -13275,14 +13225,18 @@
|
|
|
13275
13225
|
el.setAttribute('hc-svg-href', src);
|
|
13276
13226
|
}
|
|
13277
13227
|
};
|
|
13278
|
-
//
|
|
13279
|
-
if (
|
|
13280
|
-
|
|
13281
|
-
|
|
13282
|
-
|
|
13283
|
-
|
|
13284
|
-
|
|
13285
|
-
|
|
13228
|
+
// Optional properties (#11756)
|
|
13229
|
+
if (isNumber(x)) {
|
|
13230
|
+
attribs.x = x;
|
|
13231
|
+
}
|
|
13232
|
+
if (isNumber(y)) {
|
|
13233
|
+
attribs.y = y;
|
|
13234
|
+
}
|
|
13235
|
+
if (isNumber(width)) {
|
|
13236
|
+
attribs.width = width;
|
|
13237
|
+
}
|
|
13238
|
+
if (isNumber(height)) {
|
|
13239
|
+
attribs.height = height;
|
|
13286
13240
|
}
|
|
13287
13241
|
var elemWrapper = this.createElement('image').attr(attribs),
|
|
13288
13242
|
onDummyLoad = function (e) {
|
|
@@ -13335,6 +13289,7 @@
|
|
|
13335
13289
|
* Additional options, depending on the actual symbol drawn.
|
|
13336
13290
|
*
|
|
13337
13291
|
* @return {Highcharts.SVGElement}
|
|
13292
|
+
* SVG symbol.
|
|
13338
13293
|
*/
|
|
13339
13294
|
SVGRenderer.prototype.symbol = function (symbol, x, y, width, height, options) {
|
|
13340
13295
|
var ren = this,
|
|
@@ -13564,8 +13519,8 @@
|
|
|
13564
13519
|
parentVal = element.getAttribute(key);
|
|
13565
13520
|
for (var i = 0, tspan = void 0; i < tspans.length; i++) {
|
|
13566
13521
|
tspan = tspans[i];
|
|
13567
|
-
// If the x values are equal, the tspan represents a
|
|
13568
|
-
//
|
|
13522
|
+
// If the x values are equal, the tspan represents a line
|
|
13523
|
+
// break
|
|
13569
13524
|
if (tspan.getAttribute(key) === parentVal) {
|
|
13570
13525
|
tspan.setAttribute(key, value);
|
|
13571
13526
|
}
|
|
@@ -13629,14 +13584,6 @@
|
|
|
13629
13584
|
*
|
|
13630
13585
|
* @private
|
|
13631
13586
|
* @function Highcharts.SVGRenderer#rotCorr
|
|
13632
|
-
*
|
|
13633
|
-
* @param {number} baseline
|
|
13634
|
-
*
|
|
13635
|
-
* @param {number} rotation
|
|
13636
|
-
*
|
|
13637
|
-
* @param {boolean} [alterY]
|
|
13638
|
-
*
|
|
13639
|
-
* @param {Highcharts.PositionObject}
|
|
13640
13587
|
*/
|
|
13641
13588
|
SVGRenderer.prototype.rotCorr = function (baseline, rotation, alterY) {
|
|
13642
13589
|
var y = baseline;
|
|
@@ -13940,7 +13887,6 @@
|
|
|
13940
13887
|
*
|
|
13941
13888
|
* @private
|
|
13942
13889
|
* @function Highcharts.SVGRenderer#alignElements
|
|
13943
|
-
* @return {void}
|
|
13944
13890
|
*/
|
|
13945
13891
|
SVGRenderer.prototype.alignElements = function () {
|
|
13946
13892
|
this.alignedObjects.forEach(function (el) { return el.align(); });
|
|
@@ -14087,7 +14033,7 @@
|
|
|
14087
14033
|
* The shadow color.
|
|
14088
14034
|
* @name Highcharts.ShadowOptionsObject#color
|
|
14089
14035
|
* @type {Highcharts.ColorString|undefined}
|
|
14090
|
-
* @default
|
|
14036
|
+
* @default #000000
|
|
14091
14037
|
*/ /**
|
|
14092
14038
|
* The horizontal offset from the element.
|
|
14093
14039
|
*
|
|
@@ -14270,10 +14216,12 @@
|
|
|
14270
14216
|
HTMLElement.composedClasses.push(SVGElementClass);
|
|
14271
14217
|
var htmlElementProto = HTMLElement.prototype,
|
|
14272
14218
|
svgElementProto = SVGElementClass.prototype;
|
|
14273
|
-
svgElementProto.getSpanCorrection = htmlElementProto
|
|
14219
|
+
svgElementProto.getSpanCorrection = htmlElementProto
|
|
14220
|
+
.getSpanCorrection;
|
|
14274
14221
|
svgElementProto.htmlCss = htmlElementProto.htmlCss;
|
|
14275
14222
|
svgElementProto.htmlGetBBox = htmlElementProto.htmlGetBBox;
|
|
14276
|
-
svgElementProto.htmlUpdateTransform = htmlElementProto
|
|
14223
|
+
svgElementProto.htmlUpdateTransform = htmlElementProto
|
|
14224
|
+
.htmlUpdateTransform;
|
|
14277
14225
|
svgElementProto.setSpanRotation = htmlElementProto.setSpanRotation;
|
|
14278
14226
|
}
|
|
14279
14227
|
return SVGElementClass;
|
|
@@ -14365,6 +14313,9 @@
|
|
|
14365
14313
|
whiteSpace = styles && styles.whiteSpace;
|
|
14366
14314
|
/** @private */
|
|
14367
14315
|
function getTextPxLength() {
|
|
14316
|
+
if (wrapper.textPxLength) {
|
|
14317
|
+
return wrapper.textPxLength;
|
|
14318
|
+
}
|
|
14368
14319
|
// Reset multiline/ellipsis in order to read width (#4928,
|
|
14369
14320
|
// #5417)
|
|
14370
14321
|
css(elem, {
|
|
@@ -14400,29 +14351,32 @@
|
|
|
14400
14351
|
wrapper.textWidth,
|
|
14401
14352
|
wrapper.textAlign
|
|
14402
14353
|
].join(',');
|
|
14403
|
-
var baseline = void 0
|
|
14354
|
+
var baseline = void 0,
|
|
14355
|
+
hasBoxWidthChanged = false;
|
|
14404
14356
|
// Update textWidth. Use the memoized textPxLength if possible, to
|
|
14405
14357
|
// avoid the getTextPxLength function using elem.offsetWidth.
|
|
14406
14358
|
// Calling offsetWidth affects rendering time as it forces layout
|
|
14407
14359
|
// (#7656).
|
|
14408
|
-
if (textWidth !== wrapper.oldTextWidth
|
|
14409
|
-
|
|
14410
|
-
|
|
14411
|
-
|
|
14412
|
-
|
|
14413
|
-
|
|
14414
|
-
elem.
|
|
14415
|
-
|
|
14416
|
-
|
|
14417
|
-
|
|
14418
|
-
|
|
14419
|
-
|
|
14420
|
-
|
|
14421
|
-
|
|
14422
|
-
|
|
14423
|
-
|
|
14424
|
-
|
|
14360
|
+
if (textWidth !== wrapper.oldTextWidth) { // #983, #1254
|
|
14361
|
+
var textPxLength = getTextPxLength();
|
|
14362
|
+
if (((textWidth > wrapper.oldTextWidth) ||
|
|
14363
|
+
textPxLength > textWidth) && (
|
|
14364
|
+
// Only set the width if the text is able to word-wrap,
|
|
14365
|
+
// or text-overflow is ellipsis (#9537)
|
|
14366
|
+
/[ \-]/.test(elem.textContent || elem.innerText) ||
|
|
14367
|
+
elem.style.textOverflow === 'ellipsis')) {
|
|
14368
|
+
css(elem, {
|
|
14369
|
+
width: (textPxLength > textWidth) || rotation ?
|
|
14370
|
+
textWidth + 'px' :
|
|
14371
|
+
'auto',
|
|
14372
|
+
display: 'block',
|
|
14373
|
+
whiteSpace: whiteSpace || 'normal' // #3331
|
|
14374
|
+
});
|
|
14375
|
+
wrapper.oldTextWidth = textWidth;
|
|
14376
|
+
hasBoxWidthChanged = true; // #8159
|
|
14377
|
+
}
|
|
14425
14378
|
}
|
|
14379
|
+
wrapper.hasBoxWidthChanged = hasBoxWidthChanged; // #8159
|
|
14426
14380
|
// Do the calculations and DOM access only if properties changed
|
|
14427
14381
|
if (currentTextTransform !== wrapper.cTT) {
|
|
14428
14382
|
baseline = renderer.fontMetrics(elem.style.fontSize, elem).b;
|
|
@@ -14561,15 +14515,16 @@
|
|
|
14561
14515
|
* @function Highcharts.SVGRenderer#html
|
|
14562
14516
|
*
|
|
14563
14517
|
* @param {string} str
|
|
14564
|
-
*
|
|
14518
|
+
* The text of (subset) HTML to draw.
|
|
14565
14519
|
*
|
|
14566
14520
|
* @param {number} x
|
|
14567
|
-
*
|
|
14521
|
+
* The x position of the text's lower left corner.
|
|
14568
14522
|
*
|
|
14569
14523
|
* @param {number} y
|
|
14570
|
-
*
|
|
14524
|
+
* The y position of the text's lower left corner.
|
|
14571
14525
|
*
|
|
14572
14526
|
* @return {Highcharts.HTMLDOMElement}
|
|
14527
|
+
* HTML element.
|
|
14573
14528
|
*/
|
|
14574
14529
|
HTMLRenderer.prototype.html = function (str, x, y) {
|
|
14575
14530
|
var wrapper = this.createElement('span'), element = wrapper.element, renderer = wrapper.renderer, isSVG = renderer.isSVG, addSetters = function (gWrapper, style) {
|
|
@@ -14679,8 +14634,7 @@
|
|
|
14679
14634
|
* @private
|
|
14680
14635
|
* @param {*} value
|
|
14681
14636
|
* @param {string} key
|
|
14682
|
-
|
|
14683
|
-
*/
|
|
14637
|
+
*/
|
|
14684
14638
|
function translateSetter(value, key) {
|
|
14685
14639
|
parentGroup[key] = value;
|
|
14686
14640
|
if (key === 'translateX') {
|
|
@@ -14703,7 +14657,9 @@
|
|
|
14703
14657
|
display: parentGroup.display,
|
|
14704
14658
|
opacity: parentGroup.opacity,
|
|
14705
14659
|
cursor: parentGroupStyles.cursor,
|
|
14706
|
-
pointerEvents:
|
|
14660
|
+
pointerEvents: (
|
|
14661
|
+
// #5595
|
|
14662
|
+
parentGroupStyles.pointerEvents),
|
|
14707
14663
|
visibility: parentGroup.visibility
|
|
14708
14664
|
// the top group is appended to container
|
|
14709
14665
|
}, htmlGroup || container);
|
|
@@ -14768,7 +14724,7 @@
|
|
|
14768
14724
|
|
|
14769
14725
|
return HTMLRenderer;
|
|
14770
14726
|
});
|
|
14771
|
-
_registerModule(_modules, 'Core/Axis/AxisDefaults.js', [
|
|
14727
|
+
_registerModule(_modules, 'Core/Axis/AxisDefaults.js', [], function () {
|
|
14772
14728
|
/* *
|
|
14773
14729
|
*
|
|
14774
14730
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -15198,7 +15154,7 @@
|
|
|
15198
15154
|
* same axis.
|
|
15199
15155
|
*
|
|
15200
15156
|
* For an overview of the replacement codes, see
|
|
15201
|
-
* [dateFormat](/class-reference/Highcharts
|
|
15157
|
+
* [dateFormat](/class-reference/Highcharts.Time#dateFormat).
|
|
15202
15158
|
*
|
|
15203
15159
|
* Defaults to:
|
|
15204
15160
|
* ```js
|
|
@@ -15292,9 +15248,9 @@
|
|
|
15292
15248
|
* In Highcharts Stock, `endOnTick` is always `false` when the navigator
|
|
15293
15249
|
* is enabled, to prevent jumpy scrolling.
|
|
15294
15250
|
*
|
|
15295
|
-
* @sample {highcharts} highcharts/chart/reflow-true/
|
|
15296
|
-
* True by default
|
|
15297
15251
|
* @sample {highcharts} highcharts/yaxis/endontick/
|
|
15252
|
+
* True by default
|
|
15253
|
+
* @sample {highcharts} highcharts/yaxis/endontick-false/
|
|
15298
15254
|
* False
|
|
15299
15255
|
* @sample {highstock} stock/demo/basic-line/
|
|
15300
15256
|
* True by default
|
|
@@ -15736,7 +15692,7 @@
|
|
|
15736
15692
|
*/
|
|
15737
15693
|
style: {
|
|
15738
15694
|
/** @internal */
|
|
15739
|
-
color:
|
|
15695
|
+
color: "#666666" /* neutralColor60 */,
|
|
15740
15696
|
/** @internal */
|
|
15741
15697
|
cursor: 'default',
|
|
15742
15698
|
/** @internal */
|
|
@@ -15801,8 +15757,6 @@
|
|
|
15801
15757
|
* Y axis max on logarithmic axis
|
|
15802
15758
|
* @sample {highstock} stock/xaxis/min-max/
|
|
15803
15759
|
* Fixed min and max on X axis
|
|
15804
|
-
* @sample {highmaps} maps/axis/min-max/
|
|
15805
|
-
* Pre-zoomed to a specific area
|
|
15806
15760
|
*
|
|
15807
15761
|
* @type {number|null}
|
|
15808
15762
|
* @apioption xAxis.max
|
|
@@ -15857,8 +15811,6 @@
|
|
|
15857
15811
|
* -50 with startOnTick true by default
|
|
15858
15812
|
* @sample {highstock} stock/xaxis/min-max/
|
|
15859
15813
|
* Set min and max on X axis
|
|
15860
|
-
* @sample {highmaps} maps/axis/min-max/
|
|
15861
|
-
* Pre-zoomed to a specific area
|
|
15862
15814
|
*
|
|
15863
15815
|
* @type {number|null}
|
|
15864
15816
|
* @apioption xAxis.min
|
|
@@ -16010,8 +15962,6 @@
|
|
|
16010
15962
|
* Minimum range of 5
|
|
16011
15963
|
* @sample {highstock} stock/xaxis/minrange/
|
|
16012
15964
|
* Max zoom of 6 months overrides user selections
|
|
16013
|
-
* @sample {highmaps} maps/axis/minrange/
|
|
16014
|
-
* Minimum range of 1000
|
|
16015
15965
|
*
|
|
16016
15966
|
* @type {number}
|
|
16017
15967
|
* @apioption xAxis.minRange
|
|
@@ -16577,7 +16527,7 @@
|
|
|
16577
16527
|
*/
|
|
16578
16528
|
style: {
|
|
16579
16529
|
/** @internal */
|
|
16580
|
-
color:
|
|
16530
|
+
color: "#666666" /* neutralColor60 */
|
|
16581
16531
|
}
|
|
16582
16532
|
},
|
|
16583
16533
|
/**
|
|
@@ -16694,7 +16644,7 @@
|
|
|
16694
16644
|
* @type {Highcharts.ColorType}
|
|
16695
16645
|
* @default #f2f2f2
|
|
16696
16646
|
*/
|
|
16697
|
-
minorGridLineColor:
|
|
16647
|
+
minorGridLineColor: "#f2f2f2" /* neutralColor5 */,
|
|
16698
16648
|
/**
|
|
16699
16649
|
* Width of the minor, secondary grid lines.
|
|
16700
16650
|
*
|
|
@@ -16720,7 +16670,7 @@
|
|
|
16720
16670
|
* @type {Highcharts.ColorType}
|
|
16721
16671
|
* @default #999999
|
|
16722
16672
|
*/
|
|
16723
|
-
minorTickColor:
|
|
16673
|
+
minorTickColor: "#999999" /* neutralColor40 */,
|
|
16724
16674
|
/**
|
|
16725
16675
|
* The color of the line marking the axis itself.
|
|
16726
16676
|
*
|
|
@@ -16741,7 +16691,7 @@
|
|
|
16741
16691
|
* @type {Highcharts.ColorType}
|
|
16742
16692
|
* @default #ccd6eb
|
|
16743
16693
|
*/
|
|
16744
|
-
lineColor:
|
|
16694
|
+
lineColor: "#ccd6eb" /* highlightColor20 */,
|
|
16745
16695
|
/**
|
|
16746
16696
|
* The width of the line marking the axis itself.
|
|
16747
16697
|
*
|
|
@@ -16778,7 +16728,7 @@
|
|
|
16778
16728
|
* @type {Highcharts.ColorType}
|
|
16779
16729
|
* @default #e6e6e6
|
|
16780
16730
|
*/
|
|
16781
|
-
gridLineColor:
|
|
16731
|
+
gridLineColor: "#e6e6e6" /* neutralColor10 */,
|
|
16782
16732
|
/**
|
|
16783
16733
|
* The width of the grid lines extending the ticks across the plot area.
|
|
16784
16734
|
* Defaults to 1 on the Y axis and 0 on the X axis, except for 3d
|
|
@@ -16836,7 +16786,7 @@
|
|
|
16836
16786
|
* @type {Highcharts.ColorType}
|
|
16837
16787
|
* @default #ccd6eb
|
|
16838
16788
|
*/
|
|
16839
|
-
tickColor:
|
|
16789
|
+
tickColor: "#ccd6eb" /* highlightColor20 */
|
|
16840
16790
|
// tickWidth: 1
|
|
16841
16791
|
};
|
|
16842
16792
|
/**
|
|
@@ -16996,9 +16946,9 @@
|
|
|
16996
16946
|
* @see [type](#chart.panning.type)
|
|
16997
16947
|
*
|
|
16998
16948
|
*
|
|
16999
|
-
* @sample {highcharts} highcharts/chart/reflow-true/
|
|
17000
|
-
* True by default
|
|
17001
16949
|
* @sample {highcharts} highcharts/yaxis/endontick/
|
|
16950
|
+
* True by default
|
|
16951
|
+
* @sample {highcharts} highcharts/yaxis/endontick-false/
|
|
17002
16952
|
* False
|
|
17003
16953
|
* @sample {highstock} stock/demo/basic-line/
|
|
17004
16954
|
* True by default
|
|
@@ -17151,8 +17101,6 @@
|
|
|
17151
17101
|
* Y axis max on logarithmic axis
|
|
17152
17102
|
* @sample {highstock} stock/yaxis/min-max/
|
|
17153
17103
|
* Fixed min and max on Y axis
|
|
17154
|
-
* @sample {highmaps} maps/axis/min-max/
|
|
17155
|
-
* Pre-zoomed to a specific area
|
|
17156
17104
|
*
|
|
17157
17105
|
* @apioption yAxis.max
|
|
17158
17106
|
*/
|
|
@@ -17163,8 +17111,6 @@
|
|
|
17163
17111
|
* -50 with startOnTick true by default
|
|
17164
17112
|
* @sample {highstock} stock/yaxis/min-max/
|
|
17165
17113
|
* Fixed min and max on Y axis
|
|
17166
|
-
* @sample {highmaps} maps/axis/min-max/
|
|
17167
|
-
* Pre-zoomed to a specific area
|
|
17168
17114
|
*
|
|
17169
17115
|
* @apioption yAxis.min
|
|
17170
17116
|
*/
|
|
@@ -17207,6 +17153,28 @@
|
|
|
17207
17153
|
* @product highstock
|
|
17208
17154
|
* @apioption yAxis.scrollbar.margin
|
|
17209
17155
|
*/
|
|
17156
|
+
/* eslint-disable highcharts/doclet-apioption-last */
|
|
17157
|
+
/**
|
|
17158
|
+
* Defines the position of the scrollbar. By default, it is positioned
|
|
17159
|
+
* on the opposite of the main axis (right side of the chart).
|
|
17160
|
+
* However, in the case of RTL languages could be set to `false`
|
|
17161
|
+
* which positions the scrollbar on the left.
|
|
17162
|
+
*
|
|
17163
|
+
* Works only for vertical axes.
|
|
17164
|
+
* This means yAxis in a non-inverted chart and xAxis in the inverted.
|
|
17165
|
+
*
|
|
17166
|
+
* @sample stock/yaxis/scrollbar-opposite/
|
|
17167
|
+
* A scrollbar not on the opposite side
|
|
17168
|
+
*
|
|
17169
|
+
* @type {boolean}
|
|
17170
|
+
* @default true
|
|
17171
|
+
* @since 9.3.0
|
|
17172
|
+
*
|
|
17173
|
+
* @apioption yAxis.scrollbar.opposite
|
|
17174
|
+
* @apioption xAxis.scrollbar.opposite
|
|
17175
|
+
*
|
|
17176
|
+
*/
|
|
17177
|
+
/* eslint-enable highcharts/doclet-apioption-last */
|
|
17210
17178
|
/**
|
|
17211
17179
|
* Whether to show the scrollbar when it is fully zoomed out at max
|
|
17212
17180
|
* range. Setting it to `false` on the Y axis makes the scrollbar stay
|
|
@@ -17608,7 +17576,7 @@
|
|
|
17608
17576
|
*/
|
|
17609
17577
|
style: {
|
|
17610
17578
|
/** @internal */
|
|
17611
|
-
color:
|
|
17579
|
+
color: "#000000" /* neutralColor100 */,
|
|
17612
17580
|
/** @internal */
|
|
17613
17581
|
fontSize: '11px',
|
|
17614
17582
|
/** @internal */
|
|
@@ -17709,47 +17677,54 @@
|
|
|
17709
17677
|
removeEvent = U.removeEvent;
|
|
17710
17678
|
/* *
|
|
17711
17679
|
*
|
|
17712
|
-
*
|
|
17680
|
+
* Class Namespace
|
|
17713
17681
|
*
|
|
17714
17682
|
* */
|
|
17715
|
-
|
|
17716
|
-
|
|
17717
|
-
|
|
17718
|
-
|
|
17719
|
-
|
|
17720
|
-
|
|
17721
|
-
|
|
17722
|
-
|
|
17683
|
+
var Foundation;
|
|
17684
|
+
(function (Foundation) {
|
|
17685
|
+
/* *
|
|
17686
|
+
*
|
|
17687
|
+
* Functions
|
|
17688
|
+
*
|
|
17689
|
+
* */
|
|
17690
|
+
/* eslint-disable valid-jsdoc */
|
|
17691
|
+
/**
|
|
17692
|
+
* Register event options. If an event handler is set on the options, it
|
|
17693
|
+
* should be subject to Chart.update, Axis.update and Series.update. This is
|
|
17694
|
+
* contrary to general handlers that are set directly using addEvent either
|
|
17695
|
+
* on the class or on the instance. #6538, #6943, #10861.
|
|
17696
|
+
* @private
|
|
17697
|
+
*/
|
|
17698
|
+
function registerEventOptions(component, options) {
|
|
17723
17699
|
// A lookup over those events that are added by _options_ (not
|
|
17724
17700
|
// programmatically). These are updated through .update()
|
|
17725
17701
|
component.eventOptions = component.eventOptions || {};
|
|
17726
|
-
|
|
17727
|
-
|
|
17728
|
-
|
|
17729
|
-
|
|
17730
|
-
|
|
17731
|
-
|
|
17732
|
-
|
|
17733
|
-
|
|
17734
|
-
|
|
17735
|
-
|
|
17736
|
-
|
|
17737
|
-
|
|
17738
|
-
|
|
17702
|
+
// Register event listeners
|
|
17703
|
+
objectEach(options.events, function (event, eventType) {
|
|
17704
|
+
// If event does not exist, or is changed by the .update()
|
|
17705
|
+
// function
|
|
17706
|
+
if (component.eventOptions[eventType] !== event) {
|
|
17707
|
+
// Remove existing if set by option
|
|
17708
|
+
if (component.eventOptions[eventType]) {
|
|
17709
|
+
removeEvent(component, eventType, component.eventOptions[eventType]);
|
|
17710
|
+
delete component.eventOptions[eventType];
|
|
17711
|
+
}
|
|
17712
|
+
if (isFunction(event)) {
|
|
17713
|
+
component.eventOptions[eventType] = event;
|
|
17714
|
+
addEvent(component, eventType, event);
|
|
17715
|
+
}
|
|
17739
17716
|
}
|
|
17740
|
-
}
|
|
17741
|
-
}
|
|
17742
|
-
|
|
17717
|
+
});
|
|
17718
|
+
}
|
|
17719
|
+
Foundation.registerEventOptions = registerEventOptions;
|
|
17720
|
+
})(Foundation || (Foundation = {}));
|
|
17743
17721
|
/* *
|
|
17744
17722
|
*
|
|
17745
17723
|
* Default Export
|
|
17746
17724
|
*
|
|
17747
17725
|
* */
|
|
17748
|
-
var exports = {
|
|
17749
|
-
registerEventOptions: registerEventOptions
|
|
17750
|
-
};
|
|
17751
17726
|
|
|
17752
|
-
return
|
|
17727
|
+
return Foundation;
|
|
17753
17728
|
});
|
|
17754
17729
|
_registerModule(_modules, 'Core/Axis/Tick.js', [_modules['Core/FormatUtilities.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (F, H, U) {
|
|
17755
17730
|
/* *
|
|
@@ -17796,7 +17771,7 @@
|
|
|
17796
17771
|
* @param {boolean} [noLabel=false]
|
|
17797
17772
|
* Whether to disable the label or not. Defaults to false.
|
|
17798
17773
|
*
|
|
17799
|
-
* @param {
|
|
17774
|
+
* @param {Object} [parameters]
|
|
17800
17775
|
* Optional parameters for the tick.
|
|
17801
17776
|
*/
|
|
17802
17777
|
var Tick = /** @class */ (function () {
|
|
@@ -18050,7 +18025,7 @@
|
|
|
18050
18025
|
* @return {Highcharts.PositionObject}
|
|
18051
18026
|
* The tick position.
|
|
18052
18027
|
*
|
|
18053
|
-
* @
|
|
18028
|
+
* @emits Highcharts.Tick#event:afterGetPosition
|
|
18054
18029
|
*/
|
|
18055
18030
|
Tick.prototype.getPosition = function (horiz, tickPos, tickmarkOffset, old) {
|
|
18056
18031
|
var axis = this.axis,
|
|
@@ -18090,9 +18065,7 @@
|
|
|
18090
18065
|
};
|
|
18091
18066
|
/**
|
|
18092
18067
|
* Get the x, y position of the tick label
|
|
18093
|
-
*
|
|
18094
18068
|
* @private
|
|
18095
|
-
* @return {Highcharts.PositionObject}
|
|
18096
18069
|
*/
|
|
18097
18070
|
Tick.prototype.getLabelPosition = function (x, y, label, horiz, labelOptions, tickmarkOffset, index, step) {
|
|
18098
18071
|
var axis = this.axis,
|
|
@@ -18593,7 +18566,7 @@
|
|
|
18593
18566
|
|
|
18594
18567
|
return Tick;
|
|
18595
18568
|
});
|
|
18596
|
-
_registerModule(_modules, 'Core/Axis/Axis.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Axis/AxisDefaults.js'], _modules['Core/Color/Color.js'], _modules['Core/
|
|
18569
|
+
_registerModule(_modules, 'Core/Axis/Axis.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Axis/AxisDefaults.js'], _modules['Core/Color/Color.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Foundation.js'], _modules['Core/Globals.js'], _modules['Core/Axis/Tick.js'], _modules['Core/Utilities.js']], function (A, AxisDefaults, Color, D, F, H, Tick, U) {
|
|
18597
18570
|
/* *
|
|
18598
18571
|
*
|
|
18599
18572
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -18742,8 +18715,8 @@
|
|
|
18742
18715
|
* @param {AxisOptions} userOptions
|
|
18743
18716
|
* Axis options.
|
|
18744
18717
|
*
|
|
18745
|
-
* @
|
|
18746
|
-
* @
|
|
18718
|
+
* @emits Highcharts.Axis#event:afterInit
|
|
18719
|
+
* @emits Highcharts.Axis#event:init
|
|
18747
18720
|
*/
|
|
18748
18721
|
Axis.prototype.init = function (chart, userOptions) {
|
|
18749
18722
|
var isXAxis = userOptions.isX,
|
|
@@ -18779,7 +18752,8 @@
|
|
|
18779
18752
|
*/
|
|
18780
18753
|
axis.coll = axis.coll || (isXAxis ? 'xAxis' : 'yAxis');
|
|
18781
18754
|
fireEvent(this, 'init', { userOptions: userOptions });
|
|
18782
|
-
|
|
18755
|
+
// Needed in setOptions
|
|
18756
|
+
axis.opposite = pick(userOptions.opposite, axis.opposite);
|
|
18783
18757
|
/**
|
|
18784
18758
|
* The side on which the axis is rendered. 0 is top, 1 is right, 2
|
|
18785
18759
|
* is bottom and 3 is left.
|
|
@@ -18944,7 +18918,7 @@
|
|
|
18944
18918
|
* @param {Highcharts.AxisOptions} userOptions
|
|
18945
18919
|
* Axis options.
|
|
18946
18920
|
*
|
|
18947
|
-
* @
|
|
18921
|
+
* @emits Highcharts.Axis#event:afterSetOptions
|
|
18948
18922
|
*/
|
|
18949
18923
|
Axis.prototype.setOptions = function (userOptions) {
|
|
18950
18924
|
this.options = merge(AxisDefaults.defaultXAxisOptions, (this.coll === 'yAxis') && AxisDefaults.defaultYAxisOptions, [
|
|
@@ -19037,8 +19011,8 @@
|
|
|
19037
19011
|
* @private
|
|
19038
19012
|
* @function Highcharts.Axis#getSeriesExtremes
|
|
19039
19013
|
*
|
|
19040
|
-
* @
|
|
19041
|
-
* @
|
|
19014
|
+
* @emits Highcharts.Axis#event:afterGetSeriesExtremes
|
|
19015
|
+
* @emits Highcharts.Axis#event:getSeriesExtremes
|
|
19042
19016
|
*/
|
|
19043
19017
|
Axis.prototype.getSeriesExtremes = function () {
|
|
19044
19018
|
var axis = this,
|
|
@@ -19136,26 +19110,6 @@
|
|
|
19136
19110
|
*
|
|
19137
19111
|
* @private
|
|
19138
19112
|
* @function Highcharts.Axis#translate
|
|
19139
|
-
*
|
|
19140
|
-
* @param {number} val
|
|
19141
|
-
* TO-DO: parameter description
|
|
19142
|
-
*
|
|
19143
|
-
* @param {boolean|null} [backwards]
|
|
19144
|
-
* TO-DO: parameter description
|
|
19145
|
-
*
|
|
19146
|
-
* @param {boolean|null} [cvsCoord]
|
|
19147
|
-
* TO-DO: parameter description
|
|
19148
|
-
*
|
|
19149
|
-
* @param {boolean|null} [old]
|
|
19150
|
-
* TO-DO: parameter description
|
|
19151
|
-
*
|
|
19152
|
-
* @param {boolean} [handleLog]
|
|
19153
|
-
* TO-DO: parameter description
|
|
19154
|
-
*
|
|
19155
|
-
* @param {number} [pointPlacement]
|
|
19156
|
-
* TO-DO: parameter description
|
|
19157
|
-
*
|
|
19158
|
-
* @return {number|undefined}
|
|
19159
19113
|
*/
|
|
19160
19114
|
Axis.prototype.translate = function (val, backwards, cvsCoord, old, handleLog, pointPlacement) {
|
|
19161
19115
|
var axis = (this.linkedParent || this), // #1417
|
|
@@ -19389,6 +19343,7 @@
|
|
|
19389
19343
|
* @function Highcharts.Axis#getMinorTickInterval
|
|
19390
19344
|
*
|
|
19391
19345
|
* @return {number|"auto"|null}
|
|
19346
|
+
* Legacy option
|
|
19392
19347
|
*/
|
|
19393
19348
|
Axis.prototype.getMinorTickInterval = function () {
|
|
19394
19349
|
var options = this.options;
|
|
@@ -19482,7 +19437,10 @@
|
|
|
19482
19437
|
if (axis.isXAxis &&
|
|
19483
19438
|
typeof axis.minRange === 'undefined' &&
|
|
19484
19439
|
!log) {
|
|
19485
|
-
if (defined(options.min) ||
|
|
19440
|
+
if (defined(options.min) ||
|
|
19441
|
+
defined(options.max) ||
|
|
19442
|
+
defined(options.floor) ||
|
|
19443
|
+
defined(options.ceiling)) {
|
|
19486
19444
|
axis.minRange = null; // don't do this again
|
|
19487
19445
|
}
|
|
19488
19446
|
else {
|
|
@@ -19495,7 +19453,8 @@
|
|
|
19495
19453
|
if (xData.length > 1) {
|
|
19496
19454
|
for (i = loopLength; i > 0; i--) {
|
|
19497
19455
|
distance = xData[i] - xData[i - 1];
|
|
19498
|
-
if (!closestDataRange ||
|
|
19456
|
+
if (!closestDataRange ||
|
|
19457
|
+
distance < closestDataRange) {
|
|
19499
19458
|
closestDataRange = distance;
|
|
19500
19459
|
}
|
|
19501
19460
|
}
|
|
@@ -19550,8 +19509,6 @@
|
|
|
19550
19509
|
*
|
|
19551
19510
|
* @private
|
|
19552
19511
|
* @function Highcharts.Axis#getClosest
|
|
19553
|
-
*
|
|
19554
|
-
* @return {number}
|
|
19555
19512
|
*/
|
|
19556
19513
|
Axis.prototype.getClosest = function () {
|
|
19557
19514
|
var ret;
|
|
@@ -19670,7 +19627,7 @@
|
|
|
19670
19627
|
* @private
|
|
19671
19628
|
* @function Highcharts.Axis#setAxisTranslation
|
|
19672
19629
|
*
|
|
19673
|
-
* @
|
|
19630
|
+
* @emits Highcharts.Axis#event:afterSetAxisTranslation
|
|
19674
19631
|
*/
|
|
19675
19632
|
Axis.prototype.setAxisTranslation = function () {
|
|
19676
19633
|
var axis = this,
|
|
@@ -19706,7 +19663,9 @@
|
|
|
19706
19663
|
if (!axis.single || hasCategories) {
|
|
19707
19664
|
// TODO: series should internally set x- and y-
|
|
19708
19665
|
// pointPlacement to simplify this logic.
|
|
19709
|
-
var isPointPlacementAxis = series.is('xrange') ?
|
|
19666
|
+
var isPointPlacementAxis = series.is('xrange') ?
|
|
19667
|
+
!isXAxis :
|
|
19668
|
+
isXAxis;
|
|
19710
19669
|
// minPointOffset is the value padding to the left of
|
|
19711
19670
|
// the axis in order to make room for points with a
|
|
19712
19671
|
// pointRange, typically columns. When the
|
|
@@ -19725,7 +19684,7 @@
|
|
|
19725
19684
|
});
|
|
19726
19685
|
}
|
|
19727
19686
|
// Record minPointOffset and pointRangePadding
|
|
19728
|
-
ordinalCorrection = axis.ordinal && axis.ordinal.slope && closestPointRange ?
|
|
19687
|
+
ordinalCorrection = (axis.ordinal && axis.ordinal.slope && closestPointRange) ?
|
|
19729
19688
|
axis.ordinal.slope / closestPointRange :
|
|
19730
19689
|
1; // #988, #1853
|
|
19731
19690
|
axis.minPointOffset = minPointOffset =
|
|
@@ -19754,8 +19713,6 @@
|
|
|
19754
19713
|
/**
|
|
19755
19714
|
* @private
|
|
19756
19715
|
* @function Highcharts.Axis#minFromRange
|
|
19757
|
-
*
|
|
19758
|
-
* @return {number|undefined}
|
|
19759
19716
|
*/
|
|
19760
19717
|
Axis.prototype.minFromRange = function () {
|
|
19761
19718
|
var axis = this;
|
|
@@ -19771,7 +19728,7 @@
|
|
|
19771
19728
|
* @param {boolean} secondPass
|
|
19772
19729
|
* TO-DO: parameter description
|
|
19773
19730
|
*
|
|
19774
|
-
* @
|
|
19731
|
+
* @emits Highcharts.Axis#event:foundExtremes
|
|
19775
19732
|
*/
|
|
19776
19733
|
Axis.prototype.setTickInterval = function (secondPass) {
|
|
19777
19734
|
var axis = this,
|
|
@@ -19786,8 +19743,10 @@
|
|
|
19786
19743
|
var maxPadding = options.maxPadding,
|
|
19787
19744
|
minPadding = options.minPadding,
|
|
19788
19745
|
length,
|
|
19789
|
-
linkedParentExtremes,
|
|
19790
|
-
|
|
19746
|
+
linkedParentExtremes,
|
|
19747
|
+
// Only non-negative tickInterval is valid, #12961
|
|
19748
|
+
tickIntervalOption = isNumber(options.tickInterval) && options.tickInterval >= 0 ?
|
|
19749
|
+
options.tickInterval : void 0,
|
|
19791
19750
|
threshold = isNumber(axis.threshold) ? axis.threshold : null,
|
|
19792
19751
|
thresholdMin,
|
|
19793
19752
|
thresholdMax,
|
|
@@ -19961,15 +19920,19 @@
|
|
|
19961
19920
|
// This is in turn needed in order to find tick positions in ordinal
|
|
19962
19921
|
// axes.
|
|
19963
19922
|
if (isXAxis && !secondPass) {
|
|
19923
|
+
var hasExtemesChanged_1 = axis.min !== (axis.old && axis.old.min) ||
|
|
19924
|
+
axis.max !== (axis.old && axis.old.max);
|
|
19964
19925
|
// First process all series assigned to that axis.
|
|
19965
19926
|
axis.series.forEach(function (series) {
|
|
19966
19927
|
// Allows filtering out points outside the plot area.
|
|
19967
|
-
series.forceCrop = series.forceCropping &&
|
|
19968
|
-
|
|
19969
|
-
|
|
19928
|
+
series.forceCrop = (series.forceCropping &&
|
|
19929
|
+
series.forceCropping());
|
|
19930
|
+
series.processData(hasExtemesChanged_1);
|
|
19970
19931
|
});
|
|
19971
|
-
// Then apply grouping if needed.
|
|
19972
|
-
|
|
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.
|
|
19935
|
+
fireEvent(this, 'postProcessData', { hasExtemesChanged: hasExtemesChanged_1 });
|
|
19973
19936
|
}
|
|
19974
19937
|
// set the translation factor used in translate function
|
|
19975
19938
|
axis.setAxisTranslation();
|
|
@@ -20013,7 +19976,7 @@
|
|
|
20013
19976
|
* @private
|
|
20014
19977
|
* @function Highcharts.Axis#setTickPositions
|
|
20015
19978
|
*
|
|
20016
|
-
* @
|
|
19979
|
+
* @emits Highcharts.Axis#event:afterSetTickPositions
|
|
20017
19980
|
*/
|
|
20018
19981
|
Axis.prototype.setTickPositions = function () {
|
|
20019
19982
|
var axis = this,
|
|
@@ -20022,8 +19985,8 @@
|
|
|
20022
19985
|
minorTickIntervalOption = this.getMinorTickInterval(),
|
|
20023
19986
|
hasVerticalPanning = this.hasVerticalPanning(),
|
|
20024
19987
|
isColorAxis = this.coll === 'colorAxis',
|
|
20025
|
-
startOnTick = (isColorAxis || !hasVerticalPanning) && options.startOnTick,
|
|
20026
|
-
endOnTick = (isColorAxis || !hasVerticalPanning) && options.endOnTick;
|
|
19988
|
+
startOnTick = ((isColorAxis || !hasVerticalPanning) && options.startOnTick),
|
|
19989
|
+
endOnTick = ((isColorAxis || !hasVerticalPanning) && options.endOnTick);
|
|
20027
19990
|
var tickPositions,
|
|
20028
19991
|
tickPositioner = options.tickPositioner;
|
|
20029
19992
|
// Set the tickmarkOffset
|
|
@@ -20270,7 +20233,9 @@
|
|
|
20270
20233
|
axis.softThreshold ? 0 : null);
|
|
20271
20234
|
var len,
|
|
20272
20235
|
i;
|
|
20273
|
-
if (axis.hasData() &&
|
|
20236
|
+
if (axis.hasData() &&
|
|
20237
|
+
isNumber(axis.min) &&
|
|
20238
|
+
isNumber(axis.max)) { // #14769
|
|
20274
20239
|
if (currentTickAmount < tickAmount) {
|
|
20275
20240
|
while (tickPositions.length < tickAmount) {
|
|
20276
20241
|
// Extend evenly for both sides unless we're on the
|
|
@@ -20322,7 +20287,7 @@
|
|
|
20322
20287
|
* @private
|
|
20323
20288
|
* @function Highcharts.Axis#setScale
|
|
20324
20289
|
*
|
|
20325
|
-
* @
|
|
20290
|
+
* @emits Highcharts.Axis#event:afterSetScale
|
|
20326
20291
|
*/
|
|
20327
20292
|
Axis.prototype.setScale = function () {
|
|
20328
20293
|
var axis = this;
|
|
@@ -20391,8 +20356,6 @@
|
|
|
20391
20356
|
* Set extremes off ticks
|
|
20392
20357
|
* @sample stock/members/axis-setextremes/
|
|
20393
20358
|
* Set extremes in Highcharts Stock
|
|
20394
|
-
* @sample maps/members/axis-setextremes/
|
|
20395
|
-
* Set extremes in Highmaps
|
|
20396
20359
|
*
|
|
20397
20360
|
* @function Highcharts.Axis#setExtremes
|
|
20398
20361
|
*
|
|
@@ -20412,7 +20375,7 @@
|
|
|
20412
20375
|
* @param {*} [eventArguments]
|
|
20413
20376
|
* Arguments to be accessed in event handler.
|
|
20414
20377
|
*
|
|
20415
|
-
* @
|
|
20378
|
+
* @emits Highcharts.Axis#event:setExtremes
|
|
20416
20379
|
*/
|
|
20417
20380
|
Axis.prototype.setExtremes = function (newMin, newMax, redraw, animation, eventArguments) {
|
|
20418
20381
|
var axis = this,
|
|
@@ -20442,14 +20405,6 @@
|
|
|
20442
20405
|
*
|
|
20443
20406
|
* @private
|
|
20444
20407
|
* @function Highcharts.Axis#zoom
|
|
20445
|
-
*
|
|
20446
|
-
* @param {number} newMin
|
|
20447
|
-
* TO-DO: parameter description
|
|
20448
|
-
*
|
|
20449
|
-
* @param {number} newMax
|
|
20450
|
-
* TO-DO: parameter description
|
|
20451
|
-
*
|
|
20452
|
-
* @return {boolean}
|
|
20453
20408
|
*/
|
|
20454
20409
|
Axis.prototype.zoom = function (newMin, newMax) {
|
|
20455
20410
|
var axis = this,
|
|
@@ -20544,8 +20499,6 @@
|
|
|
20544
20499
|
*
|
|
20545
20500
|
* @sample highcharts/members/axis-getextremes/
|
|
20546
20501
|
* Report extremes by click on a button
|
|
20547
|
-
* @sample maps/members/axis-getextremes/
|
|
20548
|
-
* Get extremes in Highmaps
|
|
20549
20502
|
*
|
|
20550
20503
|
* @function Highcharts.Axis#getExtremes
|
|
20551
20504
|
*
|
|
@@ -20662,8 +20615,6 @@
|
|
|
20662
20615
|
*
|
|
20663
20616
|
* @private
|
|
20664
20617
|
* @function Highcharts.Axis#labelMetrics
|
|
20665
|
-
*
|
|
20666
|
-
* @return {Highcharts.FontMetricsObject}
|
|
20667
20618
|
*/
|
|
20668
20619
|
Axis.prototype.labelMetrics = function () {
|
|
20669
20620
|
var index = this.tickPositions && this.tickPositions[0] || 0;
|
|
@@ -20676,8 +20627,6 @@
|
|
|
20676
20627
|
*
|
|
20677
20628
|
* @private
|
|
20678
20629
|
* @function Highcharts.Axis#unsquish
|
|
20679
|
-
*
|
|
20680
|
-
* @return {number}
|
|
20681
20630
|
*/
|
|
20682
20631
|
Axis.prototype.unsquish = function () {
|
|
20683
20632
|
var labelOptions = this.options.labels,
|
|
@@ -21039,18 +20988,21 @@
|
|
|
21039
20988
|
* @private
|
|
21040
20989
|
* @function Highcharts.Axis#getOffset
|
|
21041
20990
|
*
|
|
21042
|
-
* @
|
|
20991
|
+
* @emits Highcharts.Axis#event:afterGetOffset
|
|
21043
20992
|
*/
|
|
21044
20993
|
Axis.prototype.getOffset = function () {
|
|
21045
20994
|
var _this = this;
|
|
21046
20995
|
var axis = this,
|
|
21047
20996
|
chart = axis.chart,
|
|
21048
|
-
renderer = chart.renderer,
|
|
21049
|
-
options = axis.options,
|
|
21050
|
-
tickPositions = axis.tickPositions,
|
|
21051
|
-
ticks = axis.ticks,
|
|
21052
20997
|
horiz = axis.horiz,
|
|
20998
|
+
options = axis.options,
|
|
21053
20999
|
side = axis.side,
|
|
21000
|
+
ticks = axis.ticks,
|
|
21001
|
+
tickPositions = axis.tickPositions,
|
|
21002
|
+
coll = axis.coll,
|
|
21003
|
+
axisParent = axis.axisParent // Used in color axis
|
|
21004
|
+
,
|
|
21005
|
+
renderer = chart.renderer,
|
|
21054
21006
|
invertedSide = (chart.inverted && !axis.isZAxis ?
|
|
21055
21007
|
[1, 0, 3, 2][side] :
|
|
21056
21008
|
side),
|
|
@@ -21060,9 +21012,8 @@
|
|
|
21060
21012
|
axisOffset = chart.axisOffset,
|
|
21061
21013
|
clipOffset = chart.clipOffset,
|
|
21062
21014
|
directionFactor = [-1, 1, 1, -1][side],
|
|
21063
|
-
className = options.className
|
|
21064
|
-
|
|
21065
|
-
var showAxis,
|
|
21015
|
+
className = options.className;
|
|
21016
|
+
var showAxis,
|
|
21066
21017
|
titleOffset = 0,
|
|
21067
21018
|
titleOffsetOption,
|
|
21068
21019
|
titleMargin = 0,
|
|
@@ -21079,7 +21030,7 @@
|
|
|
21079
21030
|
suffix,
|
|
21080
21031
|
zIndex) { return renderer.g(name)
|
|
21081
21032
|
.attr({ zIndex: zIndex })
|
|
21082
|
-
.addClass("highcharts-" +
|
|
21033
|
+
.addClass("highcharts-" + coll.toLowerCase() + suffix + " " +
|
|
21083
21034
|
(_this.isRadial ? "highcharts-radial-axis" + suffix + " " : '') +
|
|
21084
21035
|
(className || ''))
|
|
21085
21036
|
.add(axisParent); };
|
|
@@ -21157,21 +21108,23 @@
|
|
|
21157
21108
|
}
|
|
21158
21109
|
// Due to GridAxis.tickSize, tickSize should be calculated after ticks
|
|
21159
21110
|
// has rendered.
|
|
21160
|
-
|
|
21161
|
-
|
|
21162
|
-
|
|
21163
|
-
|
|
21164
|
-
|
|
21165
|
-
|
|
21166
|
-
|
|
21167
|
-
|
|
21168
|
-
|
|
21169
|
-
|
|
21170
|
-
|
|
21171
|
-
|
|
21172
|
-
|
|
21173
|
-
|
|
21174
|
-
|
|
21111
|
+
if (coll !== 'colorAxis') {
|
|
21112
|
+
var tickSize = this.tickSize('tick');
|
|
21113
|
+
axisOffset[side] = Math.max(axisOffset[side], (axis.axisTitleMargin || 0) + titleOffset +
|
|
21114
|
+
directionFactor * axis.offset, labelOffsetPadded, // #3027
|
|
21115
|
+
tickPositions && tickPositions.length && tickSize ?
|
|
21116
|
+
tickSize[0] + directionFactor * axis.offset :
|
|
21117
|
+
0 // #4866
|
|
21118
|
+
);
|
|
21119
|
+
// Decide the clipping needed to keep the graph inside
|
|
21120
|
+
// the plot area and axis lines
|
|
21121
|
+
var clip = !axis.axisLine || options.offset ?
|
|
21122
|
+
0 :
|
|
21123
|
+
// #4308, #4371:
|
|
21124
|
+
Math.floor(axis.axisLine.strokeWidth() / 2) * 2;
|
|
21125
|
+
clipOffset[invertedSide] =
|
|
21126
|
+
Math.max(clipOffset[invertedSide], clip);
|
|
21127
|
+
}
|
|
21175
21128
|
fireEvent(this, 'afterGetOffset');
|
|
21176
21129
|
};
|
|
21177
21130
|
/**
|
|
@@ -21362,7 +21315,7 @@
|
|
|
21362
21315
|
* @private
|
|
21363
21316
|
* @function Highcharts.Axis#render
|
|
21364
21317
|
*
|
|
21365
|
-
* @
|
|
21318
|
+
* @emits Highcharts.Axis#event:afterRender
|
|
21366
21319
|
*/
|
|
21367
21320
|
Axis.prototype.render = function () {
|
|
21368
21321
|
var axis = this,
|
|
@@ -21453,7 +21406,8 @@
|
|
|
21453
21406
|
(options.plotLines || [])
|
|
21454
21407
|
.concat(options.plotBands || [])
|
|
21455
21408
|
.forEach(function (plotLineOptions) {
|
|
21456
|
-
axis
|
|
21409
|
+
axis
|
|
21410
|
+
.addPlotBandOrLine(plotLineOptions);
|
|
21457
21411
|
});
|
|
21458
21412
|
}
|
|
21459
21413
|
} // end if hasData
|
|
@@ -21553,8 +21507,6 @@
|
|
|
21553
21507
|
*
|
|
21554
21508
|
* @private
|
|
21555
21509
|
* @function Highcharts.Axis#getKeepProps
|
|
21556
|
-
*
|
|
21557
|
-
* @return {Array<string>}
|
|
21558
21510
|
*/
|
|
21559
21511
|
Axis.prototype.getKeepProps = function () {
|
|
21560
21512
|
return (this.keepProps || Axis.keepProps);
|
|
@@ -21620,8 +21572,8 @@
|
|
|
21620
21572
|
* @param {Highcharts.Point} [point]
|
|
21621
21573
|
* The Point object if the crosshair snaps to points.
|
|
21622
21574
|
*
|
|
21623
|
-
* @
|
|
21624
|
-
* @
|
|
21575
|
+
* @emits Highcharts.Axis#event:afterDrawCrosshair
|
|
21576
|
+
* @emits Highcharts.Axis#event:drawCrosshair
|
|
21625
21577
|
*/
|
|
21626
21578
|
Axis.prototype.drawCrosshair = function (e, point) {
|
|
21627
21579
|
var options = this.crosshair,
|
|
@@ -21705,10 +21657,10 @@
|
|
|
21705
21657
|
stroke: options.color ||
|
|
21706
21658
|
(categorized ?
|
|
21707
21659
|
Color
|
|
21708
|
-
.parse(
|
|
21660
|
+
.parse("#ccd6eb" /* highlightColor20 */)
|
|
21709
21661
|
.setOpacity(0.25)
|
|
21710
21662
|
.get() :
|
|
21711
|
-
|
|
21663
|
+
"#cccccc" /* neutralColor20 */),
|
|
21712
21664
|
'stroke-width': pick(options.width, 1)
|
|
21713
21665
|
}).css({
|
|
21714
21666
|
'pointer-events': 'none'
|
|
@@ -21748,8 +21700,6 @@
|
|
|
21748
21700
|
*
|
|
21749
21701
|
* @private
|
|
21750
21702
|
* @function Highcharts.Axis#hasVerticalPanning
|
|
21751
|
-
*
|
|
21752
|
-
* @return {boolean}
|
|
21753
21703
|
*/
|
|
21754
21704
|
Axis.prototype.hasVerticalPanning = function () {
|
|
21755
21705
|
var panningOptions = this.chart.options.chart.panning;
|
|
@@ -21765,8 +21715,6 @@
|
|
|
21765
21715
|
*
|
|
21766
21716
|
* @param {unknown} value
|
|
21767
21717
|
* The axis value
|
|
21768
|
-
*
|
|
21769
|
-
* @return {boolean}
|
|
21770
21718
|
*/
|
|
21771
21719
|
Axis.prototype.validatePositiveValue = function (value) {
|
|
21772
21720
|
return isNumber(value) && value > 0;
|
|
@@ -21876,7 +21824,14 @@
|
|
|
21876
21824
|
Axis.defaultOptions = AxisDefaults.defaultXAxisOptions;
|
|
21877
21825
|
// Properties to survive after destroy, needed for Axis.update (#4317,
|
|
21878
21826
|
// #5773, #5881).
|
|
21879
|
-
Axis.keepProps = [
|
|
21827
|
+
Axis.keepProps = [
|
|
21828
|
+
'extKey',
|
|
21829
|
+
'hcEvents',
|
|
21830
|
+
'names',
|
|
21831
|
+
'series',
|
|
21832
|
+
'userMax',
|
|
21833
|
+
'userMin'
|
|
21834
|
+
];
|
|
21880
21835
|
return Axis;
|
|
21881
21836
|
}());
|
|
21882
21837
|
/* *
|
|
@@ -22177,19 +22132,12 @@
|
|
|
22177
22132
|
*
|
|
22178
22133
|
* @private
|
|
22179
22134
|
* @function Highcharts.Axis#getTimeTicks
|
|
22180
|
-
*
|
|
22181
22135
|
* @param {Highcharts.TimeNormalizeObject} normalizedInterval
|
|
22182
22136
|
* The interval in axis values (ms) and thecount.
|
|
22183
|
-
*
|
|
22184
22137
|
* @param {number} min
|
|
22185
22138
|
* The minimum in axis values.
|
|
22186
|
-
*
|
|
22187
22139
|
* @param {number} max
|
|
22188
22140
|
* The maximum in axis values.
|
|
22189
|
-
*
|
|
22190
|
-
* @param {number} startOfWeek
|
|
22191
|
-
*
|
|
22192
|
-
* @return {Highcharts.AxisTickPositionsArray}
|
|
22193
22141
|
*/
|
|
22194
22142
|
function getTimeTicks() {
|
|
22195
22143
|
return this.chart.time.getTimeTicks.apply(this.chart.time, arguments);
|
|
@@ -22239,8 +22187,10 @@
|
|
|
22239
22187
|
*/
|
|
22240
22188
|
Additions.prototype.normalizeTimeTickInterval = function (tickInterval, unitsOption) {
|
|
22241
22189
|
var units = (unitsOption || [[
|
|
22190
|
+
// unit name
|
|
22242
22191
|
'millisecond',
|
|
22243
|
-
|
|
22192
|
+
// allowed multiples
|
|
22193
|
+
[1, 2, 5, 10, 20, 25, 50, 100, 200, 500]
|
|
22244
22194
|
],
|
|
22245
22195
|
[
|
|
22246
22196
|
'second',
|
|
@@ -22313,12 +22263,6 @@
|
|
|
22313
22263
|
* point range on the axis.
|
|
22314
22264
|
*
|
|
22315
22265
|
* @private
|
|
22316
|
-
*
|
|
22317
|
-
* @param {number} x
|
|
22318
|
-
*
|
|
22319
|
-
* @param {Highcharts.Dictionary<string>} dateTimeLabelFormats
|
|
22320
|
-
*
|
|
22321
|
-
* @return {string}
|
|
22322
22266
|
*/
|
|
22323
22267
|
Additions.prototype.getXDateFormat = function (x, dateTimeLabelFormats) {
|
|
22324
22268
|
var axis = this.axis;
|
|
@@ -22745,13 +22689,8 @@
|
|
|
22745
22689
|
*
|
|
22746
22690
|
* @private
|
|
22747
22691
|
* @function Highcharts.Axis#addPlotBandOrLine
|
|
22748
|
-
*
|
|
22749
22692
|
* @param {Highcharts.AxisPlotBandsOptions|Highcharts.AxisPlotLinesOptions} options
|
|
22750
22693
|
* The plotBand or plotLine configuration object.
|
|
22751
|
-
*
|
|
22752
|
-
* @param {"plotBands"|"plotLines"} [coll]
|
|
22753
|
-
*
|
|
22754
|
-
* @return {Highcharts.PlotLineOrBand|undefined}
|
|
22755
22694
|
*/
|
|
22756
22695
|
Additions.prototype.addPlotBandOrLine = function (options, coll) {
|
|
22757
22696
|
var _this = this;
|
|
@@ -22858,7 +22797,7 @@
|
|
|
22858
22797
|
|
|
22859
22798
|
return PlotLineOrBandAxis;
|
|
22860
22799
|
});
|
|
22861
|
-
_registerModule(_modules, 'Core/Axis/PlotLineOrBand/PlotLineOrBand.js', [_modules['Core/
|
|
22800
|
+
_registerModule(_modules, 'Core/Axis/PlotLineOrBand/PlotLineOrBand.js', [_modules['Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js'], _modules['Core/Utilities.js']], function (PlotLineOrBandAxis, U) {
|
|
22862
22801
|
/* *
|
|
22863
22802
|
*
|
|
22864
22803
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -22964,7 +22903,7 @@
|
|
|
22964
22903
|
// Set the presentational attributes
|
|
22965
22904
|
if (!axis.chart.styledMode) {
|
|
22966
22905
|
if (isLine) {
|
|
22967
|
-
attribs.stroke = color ||
|
|
22906
|
+
attribs.stroke = color || "#999999" /* neutralColor40 */;
|
|
22968
22907
|
attribs['stroke-width'] = pick(options.width, 1);
|
|
22969
22908
|
if (options.dashStyle) {
|
|
22970
22909
|
attribs.dashstyle =
|
|
@@ -22972,7 +22911,7 @@
|
|
|
22972
22911
|
}
|
|
22973
22912
|
}
|
|
22974
22913
|
else if (isBand) { // plot band
|
|
22975
|
-
attribs.fill = color ||
|
|
22914
|
+
attribs.fill = color || "#e6ebf5" /* highlightColor10 */;
|
|
22976
22915
|
if (options.borderWidth) {
|
|
22977
22916
|
attribs.stroke = options.borderColor;
|
|
22978
22917
|
attribs['stroke-width'] = options.borderWidth;
|
|
@@ -23237,7 +23176,7 @@
|
|
|
23237
23176
|
* Plot band on Y axis
|
|
23238
23177
|
*
|
|
23239
23178
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
23240
|
-
* @default
|
|
23179
|
+
* @default #e6ebf5
|
|
23241
23180
|
* @apioption xAxis.plotBands.color
|
|
23242
23181
|
*/
|
|
23243
23182
|
/**
|
|
@@ -23485,7 +23424,7 @@
|
|
|
23485
23424
|
* Plot line on Y axis
|
|
23486
23425
|
*
|
|
23487
23426
|
* @type {Highcharts.ColorString}
|
|
23488
|
-
* @default
|
|
23427
|
+
* @default #999999
|
|
23489
23428
|
* @apioption xAxis.plotLines.color
|
|
23490
23429
|
*/
|
|
23491
23430
|
/**
|
|
@@ -23762,7 +23701,7 @@
|
|
|
23762
23701
|
|
|
23763
23702
|
return PlotLineOrBand;
|
|
23764
23703
|
});
|
|
23765
|
-
_registerModule(_modules, 'Core/Tooltip.js', [_modules['Core/FormatUtilities.js'], _modules['Core/Globals.js'], _modules['Core/
|
|
23704
|
+
_registerModule(_modules, 'Core/Tooltip.js', [_modules['Core/FormatUtilities.js'], _modules['Core/Globals.js'], _modules['Core/Renderer/RendererUtilities.js'], _modules['Core/Renderer/RendererRegistry.js'], _modules['Core/Utilities.js']], function (F, H, R, RendererRegistry, U) {
|
|
23766
23705
|
/* *
|
|
23767
23706
|
*
|
|
23768
23707
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -23814,7 +23753,13 @@
|
|
|
23814
23753
|
*
|
|
23815
23754
|
* */
|
|
23816
23755
|
function Tooltip(chart, options) {
|
|
23817
|
-
|
|
23756
|
+
/* *
|
|
23757
|
+
*
|
|
23758
|
+
* Properties
|
|
23759
|
+
*
|
|
23760
|
+
* */
|
|
23761
|
+
this.allowShared = true;
|
|
23762
|
+
this.container = void 0;
|
|
23818
23763
|
this.crosshairs = [];
|
|
23819
23764
|
this.distance = 0;
|
|
23820
23765
|
this.isHidden = true;
|
|
@@ -23888,8 +23833,6 @@
|
|
|
23888
23833
|
*
|
|
23889
23834
|
* @private
|
|
23890
23835
|
* @function Highcharts.Tooltip#bodyFormatter
|
|
23891
|
-
* @param {Array<(Highcharts.Point|Highcharts.Series)>} items
|
|
23892
|
-
* @return {Array<string>}
|
|
23893
23836
|
*/
|
|
23894
23837
|
Tooltip.prototype.bodyFormatter = function (items) {
|
|
23895
23838
|
return items.map(function (item) {
|
|
@@ -23906,7 +23849,7 @@
|
|
|
23906
23849
|
* @function Highcharts.Tooltip#cleanSplit
|
|
23907
23850
|
*
|
|
23908
23851
|
* @param {boolean} [force]
|
|
23909
|
-
*
|
|
23852
|
+
* Force destroy all tooltips.
|
|
23910
23853
|
*/
|
|
23911
23854
|
Tooltip.prototype.cleanSplit = function (force) {
|
|
23912
23855
|
this.chart.series.forEach(function (series) {
|
|
@@ -23926,10 +23869,6 @@
|
|
|
23926
23869
|
* the context here is an object holding point, series, x, y etc.
|
|
23927
23870
|
*
|
|
23928
23871
|
* @function Highcharts.Tooltip#defaultFormatter
|
|
23929
|
-
*
|
|
23930
|
-
* @param {Highcharts.Tooltip} tooltip
|
|
23931
|
-
*
|
|
23932
|
-
* @return {Array<string>}
|
|
23933
23872
|
*/
|
|
23934
23873
|
Tooltip.prototype.defaultFormatter = function (tooltip) {
|
|
23935
23874
|
var items = this.points || splat(this);
|
|
@@ -23953,7 +23892,7 @@
|
|
|
23953
23892
|
this.label = this.label.destroy();
|
|
23954
23893
|
}
|
|
23955
23894
|
if (this.split && this.tt) {
|
|
23956
|
-
this.cleanSplit(
|
|
23895
|
+
this.cleanSplit(true);
|
|
23957
23896
|
this.tt = this.tt.destroy();
|
|
23958
23897
|
}
|
|
23959
23898
|
if (this.renderer) {
|
|
@@ -23969,12 +23908,6 @@
|
|
|
23969
23908
|
*
|
|
23970
23909
|
* @private
|
|
23971
23910
|
* @function Highcharts.Tooltip#getAnchor
|
|
23972
|
-
*
|
|
23973
|
-
* @param {Highcharts.Point|Array<Highcharts.Point>} points
|
|
23974
|
-
*
|
|
23975
|
-
* @param {Highcharts.PointerEventObject} [mouseEvent]
|
|
23976
|
-
*
|
|
23977
|
-
* @return {Array<number>}
|
|
23978
23911
|
*/
|
|
23979
23912
|
Tooltip.prototype.getAnchor = function (points, mouseEvent) {
|
|
23980
23913
|
var chart = this.chart,
|
|
@@ -24019,8 +23952,8 @@
|
|
|
24019
23952
|
plotY += yAxis.pos - plotTop;
|
|
24020
23953
|
}
|
|
24021
23954
|
else { // #14771
|
|
24022
|
-
plotX += plotTop + chart.plotHeight - xAxis.len - xAxis.pos;
|
|
24023
|
-
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);
|
|
24024
23957
|
}
|
|
24025
23958
|
}
|
|
24026
23959
|
});
|
|
@@ -24047,17 +23980,21 @@
|
|
|
24047
23980
|
* Creates the Tooltip label element if it does not exist, then returns it.
|
|
24048
23981
|
*
|
|
24049
23982
|
* @function Highcharts.Tooltip#getLabel
|
|
23983
|
+
*
|
|
24050
23984
|
* @return {Highcharts.SVGElement}
|
|
23985
|
+
* Tooltip label
|
|
24051
23986
|
*/
|
|
24052
23987
|
Tooltip.prototype.getLabel = function () {
|
|
24053
23988
|
var tooltip = this,
|
|
24054
23989
|
styledMode = this.chart.styledMode,
|
|
24055
23990
|
options = this.options,
|
|
23991
|
+
doSplit = this.split && this.allowShared,
|
|
24056
23992
|
className = ('tooltip' + (defined(options.className) ?
|
|
24057
23993
|
' ' + options.className :
|
|
24058
23994
|
'')),
|
|
24059
23995
|
pointerEvents = (options.style.pointerEvents ||
|
|
24060
|
-
(!this.followPointer &&
|
|
23996
|
+
(!this.followPointer &&
|
|
23997
|
+
options.stickOnContact ? 'auto' : 'none')),
|
|
24061
23998
|
onMouseEnter = function () {
|
|
24062
23999
|
tooltip.inContact = true;
|
|
24063
24000
|
}, onMouseLeave = function (e) {
|
|
@@ -24073,6 +24010,14 @@
|
|
|
24073
24010
|
};
|
|
24074
24011
|
var container,
|
|
24075
24012
|
renderer = this.chart.renderer;
|
|
24013
|
+
// If changing from a split tooltip to a non-split tooltip, we must
|
|
24014
|
+
// destroy it in order to get the SVG right. #13868.
|
|
24015
|
+
if (tooltip.label) {
|
|
24016
|
+
var wasSplit = !tooltip.label.hasClass('highcharts-label');
|
|
24017
|
+
if ((doSplit && !wasSplit) || (!doSplit && wasSplit)) {
|
|
24018
|
+
tooltip.destroy();
|
|
24019
|
+
}
|
|
24020
|
+
}
|
|
24076
24021
|
if (!this.label) {
|
|
24077
24022
|
if (this.outside) {
|
|
24078
24023
|
var chartStyle = this.chart.options.chart.style,
|
|
@@ -24107,7 +24052,7 @@
|
|
|
24107
24052
|
this.renderer = renderer = new Renderer(container, 0, 0, chartStyle, void 0, void 0, renderer.styledMode);
|
|
24108
24053
|
}
|
|
24109
24054
|
// Create the label
|
|
24110
|
-
if (
|
|
24055
|
+
if (doSplit) {
|
|
24111
24056
|
this.label = renderer.g(className);
|
|
24112
24057
|
}
|
|
24113
24058
|
else {
|
|
@@ -24165,14 +24110,6 @@
|
|
|
24165
24110
|
*
|
|
24166
24111
|
* @private
|
|
24167
24112
|
* @function Highcharts.Tooltip#getPosition
|
|
24168
|
-
*
|
|
24169
|
-
* @param {number} boxWidth
|
|
24170
|
-
*
|
|
24171
|
-
* @param {number} boxHeight
|
|
24172
|
-
*
|
|
24173
|
-
* @param {Highcharts.Point} point
|
|
24174
|
-
*
|
|
24175
|
-
* @return {Highcharts.PositionObject}
|
|
24176
24113
|
*/
|
|
24177
24114
|
Tooltip.prototype.getPosition = function (boxWidth, boxHeight, point) {
|
|
24178
24115
|
var chart = this.chart,
|
|
@@ -24226,8 +24163,17 @@
|
|
|
24226
24163
|
]);
|
|
24227
24164
|
};
|
|
24228
24165
|
var first = buildDimensionArray('y'), second = buildDimensionArray('x'), swapped;
|
|
24166
|
+
// Handle negative points or reversed axis (#13780)
|
|
24167
|
+
var flipped = !!point.negative;
|
|
24168
|
+
if (!chart.polar &&
|
|
24169
|
+
chart.hoverSeries &&
|
|
24170
|
+
chart.hoverSeries.yAxis &&
|
|
24171
|
+
chart.hoverSeries.yAxis.reversed) {
|
|
24172
|
+
flipped = !flipped;
|
|
24173
|
+
}
|
|
24229
24174
|
// The far side is right or bottom
|
|
24230
|
-
var preferFarSide = !this.followPointer &&
|
|
24175
|
+
var preferFarSide = !this.followPointer &&
|
|
24176
|
+
pick(point.ttBelow, !chart.inverted === flipped), // #4984
|
|
24231
24177
|
/*
|
|
24232
24178
|
* Handle the preferred dimension. When the preferred dimension is
|
|
24233
24179
|
* tooltip on top or bottom of the point,
|
|
@@ -24529,17 +24475,19 @@
|
|
|
24529
24475
|
return;
|
|
24530
24476
|
}
|
|
24531
24477
|
U.clearTimeout(this.hideTimer);
|
|
24478
|
+
// A switch saying if this specific tooltip configuration allows shared
|
|
24479
|
+
// or split modes
|
|
24480
|
+
tooltip.allowShared = !(!isArray(pointOrPoints) &&
|
|
24481
|
+
pointOrPoints.series &&
|
|
24482
|
+
pointOrPoints.series.noSharedTooltip);
|
|
24532
24483
|
// get the reference point coordinates (pie charts use tooltipPos)
|
|
24533
|
-
tooltip.followPointer = !tooltip.split && point.series.tooltipOptions.followPointer;
|
|
24484
|
+
tooltip.followPointer = (!tooltip.split && point.series.tooltipOptions.followPointer);
|
|
24534
24485
|
var anchor = tooltip.getAnchor(pointOrPoints,
|
|
24535
24486
|
mouseEvent),
|
|
24536
24487
|
x = anchor[0],
|
|
24537
24488
|
y = anchor[1];
|
|
24538
24489
|
// shared tooltip, array is sent over
|
|
24539
|
-
if (shared &&
|
|
24540
|
-
!(!isArray(pointOrPoints) &&
|
|
24541
|
-
pointOrPoints.series &&
|
|
24542
|
-
pointOrPoints.series.noSharedTooltip)) {
|
|
24490
|
+
if (shared && tooltip.allowShared) {
|
|
24543
24491
|
chart.pointer.applyInactiveState(points);
|
|
24544
24492
|
// Now set hover state for the choosen ones:
|
|
24545
24493
|
points.forEach(function (item) {
|
|
@@ -24568,20 +24516,22 @@
|
|
|
24568
24516
|
}
|
|
24569
24517
|
else {
|
|
24570
24518
|
// update text
|
|
24571
|
-
if (tooltip.split) {
|
|
24519
|
+
if (tooltip.split && tooltip.allowShared) { // #13868
|
|
24572
24520
|
this.renderSplit(text, points);
|
|
24573
24521
|
}
|
|
24574
24522
|
else {
|
|
24575
|
-
var
|
|
24576
|
-
var
|
|
24523
|
+
var checkX_1 = x;
|
|
24524
|
+
var checkY_1 = y;
|
|
24577
24525
|
if (mouseEvent && chart.pointer.isDirectTouch) {
|
|
24578
|
-
|
|
24579
|
-
|
|
24526
|
+
checkX_1 = mouseEvent.chartX - chart.plotLeft;
|
|
24527
|
+
checkY_1 = mouseEvent.chartY - chart.plotTop;
|
|
24580
24528
|
}
|
|
24581
24529
|
// #11493, #13095
|
|
24582
24530
|
if (chart.polar ||
|
|
24583
24531
|
currentSeries.options.clip === false ||
|
|
24584
|
-
|
|
24532
|
+
points.some(function (p) {
|
|
24533
|
+
return p.series.shouldShowTooltip(checkX_1, checkY_1);
|
|
24534
|
+
})) {
|
|
24585
24535
|
var label = tooltip.getLabel();
|
|
24586
24536
|
// Prevent the tooltip from flowing over the chart box
|
|
24587
24537
|
// (#6659)
|
|
@@ -24604,7 +24554,7 @@
|
|
|
24604
24554
|
stroke: (options.borderColor ||
|
|
24605
24555
|
point.color ||
|
|
24606
24556
|
currentSeries.color ||
|
|
24607
|
-
|
|
24557
|
+
"#666666" /* neutralColor60 */)
|
|
24608
24558
|
});
|
|
24609
24559
|
}
|
|
24610
24560
|
tooltip.updatePosition({
|
|
@@ -24665,9 +24615,10 @@
|
|
|
24665
24615
|
options = tooltip.options,
|
|
24666
24616
|
positioner = tooltip.options.positioner;
|
|
24667
24617
|
// The area which the tooltip should be limited to. Limit to scrollable
|
|
24668
|
-
// plot area if enabled, otherwise limit to the chart container.
|
|
24669
|
-
//
|
|
24670
|
-
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') ?
|
|
24671
24622
|
doc.documentElement.getBoundingClientRect() : {
|
|
24672
24623
|
left: scrollLeft,
|
|
24673
24624
|
right: scrollLeft + chartWidth,
|
|
@@ -24688,7 +24639,7 @@
|
|
|
24688
24639
|
*
|
|
24689
24640
|
* @private
|
|
24690
24641
|
* @param {Highcharts.Point} point The point related to the tooltip
|
|
24691
|
-
* @return {
|
|
24642
|
+
* @return {Object} Returns an object with anchorX and anchorY
|
|
24692
24643
|
*/
|
|
24693
24644
|
function getAnchor(point) {
|
|
24694
24645
|
var isHeader = point.isHeader,
|
|
@@ -24803,7 +24754,7 @@
|
|
|
24803
24754
|
stroke: (options.borderColor ||
|
|
24804
24755
|
point.color ||
|
|
24805
24756
|
series.color ||
|
|
24806
|
-
|
|
24757
|
+
"#333333" /* neutralColor80 */)
|
|
24807
24758
|
});
|
|
24808
24759
|
}
|
|
24809
24760
|
return tt;
|
|
@@ -24880,13 +24831,14 @@
|
|
|
24880
24831
|
}
|
|
24881
24832
|
return boxes;
|
|
24882
24833
|
}, []);
|
|
24883
|
-
// Realign the tooltips towards the right if there is not enough
|
|
24884
|
-
//
|
|
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
|
|
24885
24836
|
if (!positioner && boxes.some(function (box) {
|
|
24886
24837
|
// Always realign if the beginning of a label is outside bounds
|
|
24887
24838
|
var outside = tooltip.outside;
|
|
24888
24839
|
var boxStart = (outside ? chartLeft : 0) + box.anchorX;
|
|
24889
|
-
if (boxStart < bounds.left &&
|
|
24840
|
+
if (boxStart < bounds.left &&
|
|
24841
|
+
boxStart + box.boxWidth < bounds.right) {
|
|
24890
24842
|
return true;
|
|
24891
24843
|
}
|
|
24892
24844
|
// Otherwise, check if there is more space available to the right
|
|
@@ -24924,7 +24876,9 @@
|
|
|
24924
24876
|
if (tooltip.outside && chartLeft + x < boxExtremes.left) {
|
|
24925
24877
|
boxExtremes.left = chartLeft + x;
|
|
24926
24878
|
}
|
|
24927
|
-
if (!isHeader &&
|
|
24879
|
+
if (!isHeader &&
|
|
24880
|
+
tooltip.outside &&
|
|
24881
|
+
boxExtremes.left + boxWidth > boxExtremes.right) {
|
|
24928
24882
|
boxExtremes.right = chartLeft + x;
|
|
24929
24883
|
}
|
|
24930
24884
|
}
|
|
@@ -25058,9 +25012,6 @@
|
|
|
25058
25012
|
*
|
|
25059
25013
|
* @private
|
|
25060
25014
|
* @function Highcharts.Tooltip#tooltipFooterHeaderFormatter
|
|
25061
|
-
* @param {Highcharts.PointLabelObject} labelConfig
|
|
25062
|
-
* @param {boolean} [isFooter]
|
|
25063
|
-
* @return {string}
|
|
25064
25015
|
*/
|
|
25065
25016
|
Tooltip.prototype.tooltipFooterHeaderFormatter = function (labelConfig, isFooter) {
|
|
25066
25017
|
var series = labelConfig.series,
|
|
@@ -25469,7 +25420,9 @@
|
|
|
25469
25420
|
options = Point.prototype.optionsToObject.call(this, options);
|
|
25470
25421
|
// copy options directly to point
|
|
25471
25422
|
extend(point, options);
|
|
25472
|
-
point.options = point.options ?
|
|
25423
|
+
point.options = point.options ?
|
|
25424
|
+
extend(point.options, options) :
|
|
25425
|
+
options;
|
|
25473
25426
|
// Since options are copied into the Point instance, some accidental
|
|
25474
25427
|
// options must be shielded (#5681)
|
|
25475
25428
|
if (options.group) {
|
|
@@ -25611,7 +25564,7 @@
|
|
|
25611
25564
|
* @param {Highcharts.EventCallbackFunction<Highcharts.Point>|Function} [defaultFunction]
|
|
25612
25565
|
* Default event handler.
|
|
25613
25566
|
*
|
|
25614
|
-
* @
|
|
25567
|
+
* @emits Highcharts.Point#event:*
|
|
25615
25568
|
*/
|
|
25616
25569
|
Point.prototype.firePointEvent = function (eventType, eventArgs, defaultFunction) {
|
|
25617
25570
|
var point = this,
|
|
@@ -25662,8 +25615,6 @@
|
|
|
25662
25615
|
*
|
|
25663
25616
|
* @private
|
|
25664
25617
|
* @function Highcharts.Point#getGraphicalProps
|
|
25665
|
-
* @param {Highcharts.Dictionary<number>} [kinds]
|
|
25666
|
-
* @return {Highcharts.PointGraphicalProps}
|
|
25667
25618
|
*/
|
|
25668
25619
|
Point.prototype.getGraphicalProps = function (kinds) {
|
|
25669
25620
|
var point = this,
|
|
@@ -25762,8 +25713,7 @@
|
|
|
25762
25713
|
/**
|
|
25763
25714
|
* Utility to check if point has new shape type. Used in column series and
|
|
25764
25715
|
* all others that are based on column series.
|
|
25765
|
-
*
|
|
25766
|
-
* @return boolean|undefined
|
|
25716
|
+
* @private
|
|
25767
25717
|
*/
|
|
25768
25718
|
Point.prototype.hasNewShapeType = function () {
|
|
25769
25719
|
var point = this;
|
|
@@ -25789,7 +25739,7 @@
|
|
|
25789
25739
|
* @return {Highcharts.Point}
|
|
25790
25740
|
* The Point instance.
|
|
25791
25741
|
*
|
|
25792
|
-
* @
|
|
25742
|
+
* @emits Highcharts.Point#event:afterInit
|
|
25793
25743
|
*/
|
|
25794
25744
|
Point.prototype.init = function (series, options, x) {
|
|
25795
25745
|
this.series = series;
|
|
@@ -25808,13 +25758,14 @@
|
|
|
25808
25758
|
* transformed to `{ y: 10 }`, and an array config like `[1, 10]` in a
|
|
25809
25759
|
* scatter series will be transformed to `{ x: 1, y: 10 }`.
|
|
25810
25760
|
*
|
|
25761
|
+
* @deprecated
|
|
25811
25762
|
* @function Highcharts.Point#optionsToObject
|
|
25812
25763
|
*
|
|
25813
25764
|
* @param {Highcharts.PointOptionsType} options
|
|
25814
|
-
*
|
|
25765
|
+
* Series data options.
|
|
25815
25766
|
*
|
|
25816
25767
|
* @return {Highcharts.Dictionary<*>}
|
|
25817
|
-
*
|
|
25768
|
+
* Transformed point options.
|
|
25818
25769
|
*/
|
|
25819
25770
|
Point.prototype.optionsToObject = function (options) {
|
|
25820
25771
|
var series = this.series,
|
|
@@ -25874,7 +25825,6 @@
|
|
|
25874
25825
|
/**
|
|
25875
25826
|
* @private
|
|
25876
25827
|
* @function Highcharts.Point#resolveColor
|
|
25877
|
-
* @return {void}
|
|
25878
25828
|
*/
|
|
25879
25829
|
Point.prototype.resolveColor = function () {
|
|
25880
25830
|
var series = this.series,
|
|
@@ -26009,7 +25959,7 @@
|
|
|
26009
25959
|
* Whether to apply animation, and optionally animation
|
|
26010
25960
|
* configuration.
|
|
26011
25961
|
*
|
|
26012
|
-
* @
|
|
25962
|
+
* @emits Highcharts.Point#event:update
|
|
26013
25963
|
*/
|
|
26014
25964
|
Point.prototype.update = function (options, redraw, animation, runEvent) {
|
|
26015
25965
|
var point = this,
|
|
@@ -26027,7 +25977,9 @@
|
|
|
26027
25977
|
// Update visuals, #4146
|
|
26028
25978
|
// Handle dummy graphic elements for a11y, #12718
|
|
26029
25979
|
var hasDummyGraphic = graphic && point.hasDummyGraphic;
|
|
26030
|
-
var shouldDestroyGraphic = point.y === null ?
|
|
25980
|
+
var shouldDestroyGraphic = point.y === null ?
|
|
25981
|
+
!hasDummyGraphic :
|
|
25982
|
+
hasDummyGraphic;
|
|
26031
25983
|
if (graphic && shouldDestroyGraphic) {
|
|
26032
25984
|
point.graphic = graphic.destroy();
|
|
26033
25985
|
delete point.hasDummyGraphic;
|
|
@@ -26130,8 +26082,8 @@
|
|
|
26130
26082
|
* is `true`, selected points are accumulated on Control, Shift or Cmd
|
|
26131
26083
|
* clicking the point.
|
|
26132
26084
|
*
|
|
26133
|
-
* @
|
|
26134
|
-
* @
|
|
26085
|
+
* @emits Highcharts.Point#event:select
|
|
26086
|
+
* @emits Highcharts.Point#event:unselect
|
|
26135
26087
|
*/
|
|
26136
26088
|
Point.prototype.select = function (selected, accumulate) {
|
|
26137
26089
|
var point = this,
|
|
@@ -26200,7 +26152,7 @@
|
|
|
26200
26152
|
* events.
|
|
26201
26153
|
*
|
|
26202
26154
|
* @function Highcharts.Point#onMouseOut
|
|
26203
|
-
* @
|
|
26155
|
+
* @emits Highcharts.Point#event:mouseOut
|
|
26204
26156
|
*/
|
|
26205
26157
|
Point.prototype.onMouseOut = function () {
|
|
26206
26158
|
var point = this,
|
|
@@ -26247,7 +26199,7 @@
|
|
|
26247
26199
|
* @param {boolean} [move]
|
|
26248
26200
|
* State for animation.
|
|
26249
26201
|
*
|
|
26250
|
-
* @
|
|
26202
|
+
* @emits Highcharts.Point#event:afterSetState
|
|
26251
26203
|
*/
|
|
26252
26204
|
Point.prototype.setState = function (state, move) {
|
|
26253
26205
|
var point = this,
|
|
@@ -26308,8 +26260,9 @@
|
|
|
26308
26260
|
pointAttribs = series.pointAttribs(point, state);
|
|
26309
26261
|
pointAttribsAnimation = pick(chart.options.chart.animation, stateOptions.animation);
|
|
26310
26262
|
// Some inactive points (e.g. slices in pie) should apply
|
|
26311
|
-
//
|
|
26312
|
-
if (series.options.inactiveOtherPoints &&
|
|
26263
|
+
// opacity also for their labels
|
|
26264
|
+
if (series.options.inactiveOtherPoints &&
|
|
26265
|
+
isNumber(pointAttribs.opacity)) {
|
|
26313
26266
|
(point.dataLabels || []).forEach(function (label) {
|
|
26314
26267
|
if (label) {
|
|
26315
26268
|
label.animate({
|
|
@@ -26365,7 +26318,8 @@
|
|
|
26365
26318
|
});
|
|
26366
26319
|
}
|
|
26367
26320
|
}
|
|
26368
|
-
if (!chart.styledMode && stateMarkerGraphic
|
|
26321
|
+
if (!chart.styledMode && stateMarkerGraphic &&
|
|
26322
|
+
point.state !== 'inactive') {
|
|
26369
26323
|
stateMarkerGraphic.attr(series.pointAttribs(point, state));
|
|
26370
26324
|
}
|
|
26371
26325
|
}
|
|
@@ -26643,7 +26597,7 @@
|
|
|
26643
26597
|
|
|
26644
26598
|
return Point;
|
|
26645
26599
|
});
|
|
26646
|
-
_registerModule(_modules, 'Core/Pointer.js', [_modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/
|
|
26600
|
+
_registerModule(_modules, 'Core/Pointer.js', [_modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Tooltip.js'], _modules['Core/Utilities.js']], function (Color, H, Tooltip, U) {
|
|
26647
26601
|
/* *
|
|
26648
26602
|
*
|
|
26649
26603
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -26769,7 +26723,7 @@
|
|
|
26769
26723
|
Pointer.unbindDocumentMouseUp = Pointer.unbindDocumentMouseUp();
|
|
26770
26724
|
}
|
|
26771
26725
|
if (Pointer.unbindDocumentTouchEnd) {
|
|
26772
|
-
Pointer.unbindDocumentTouchEnd = Pointer.unbindDocumentTouchEnd();
|
|
26726
|
+
Pointer.unbindDocumentTouchEnd = (Pointer.unbindDocumentTouchEnd());
|
|
26773
26727
|
}
|
|
26774
26728
|
}
|
|
26775
26729
|
// memory and CPU leak
|
|
@@ -26832,7 +26786,7 @@
|
|
|
26832
26786
|
visiblePlotOnly: true
|
|
26833
26787
|
});
|
|
26834
26788
|
// make a selection
|
|
26835
|
-
if (chart.hasCartesianSeries &&
|
|
26789
|
+
if ((chart.hasCartesianSeries || chart.mapView) &&
|
|
26836
26790
|
(this.zoomX || this.zoomY) &&
|
|
26837
26791
|
clickedInside &&
|
|
26838
26792
|
!panKey) {
|
|
@@ -26847,7 +26801,7 @@
|
|
|
26847
26801
|
if (!chart.styledMode) {
|
|
26848
26802
|
selectionMarker.attr({
|
|
26849
26803
|
fill: (chartOptions.selectionMarkerFill ||
|
|
26850
|
-
color(
|
|
26804
|
+
color("#335cad" /* highlightColor80 */)
|
|
26851
26805
|
.setOpacity(0.25).get())
|
|
26852
26806
|
});
|
|
26853
26807
|
}
|
|
@@ -26900,25 +26854,22 @@
|
|
|
26900
26854
|
chart = this.chart,
|
|
26901
26855
|
hasPinched = this.hasPinched;
|
|
26902
26856
|
if (this.selectionMarker) {
|
|
26903
|
-
var
|
|
26904
|
-
originalEvent: e,
|
|
26905
|
-
xAxis: [],
|
|
26906
|
-
yAxis: []
|
|
26907
|
-
},
|
|
26908
|
-
selectionBox = this.selectionMarker,
|
|
26909
|
-
selectionLeft_1 = selectionBox.attr ?
|
|
26910
|
-
selectionBox.attr('x') :
|
|
26911
|
-
selectionBox.x,
|
|
26912
|
-
selectionTop_1 = selectionBox.attr ?
|
|
26913
|
-
selectionBox.attr('y') :
|
|
26914
|
-
selectionBox.y,
|
|
26915
|
-
selectionWidth_1 = selectionBox.attr ?
|
|
26857
|
+
var selectionBox = this.selectionMarker, x_1 = selectionBox.attr ? selectionBox.attr('x') : selectionBox.x, y_1 = selectionBox.attr ? selectionBox.attr('y') : selectionBox.y, width_1 = selectionBox.attr ?
|
|
26916
26858
|
selectionBox.attr('width') :
|
|
26917
|
-
selectionBox.width,
|
|
26918
|
-
selectionHeight_1 = selectionBox.attr ?
|
|
26859
|
+
selectionBox.width, height_1 = selectionBox.attr ?
|
|
26919
26860
|
selectionBox.attr('height') :
|
|
26920
|
-
selectionBox.height
|
|
26921
|
-
|
|
26861
|
+
selectionBox.height, selectionData_1 = {
|
|
26862
|
+
originalEvent: e,
|
|
26863
|
+
xAxis: [],
|
|
26864
|
+
yAxis: [],
|
|
26865
|
+
x: x_1,
|
|
26866
|
+
y: y_1,
|
|
26867
|
+
width: width_1,
|
|
26868
|
+
height: height_1
|
|
26869
|
+
},
|
|
26870
|
+
// Start by false runZoom, unless when we have a mapView, in
|
|
26871
|
+
// which case the zoom will be handled in the selection event.
|
|
26872
|
+
runZoom_1 = Boolean(chart.mapView);
|
|
26922
26873
|
// a selection has been made
|
|
26923
26874
|
if (this.hasDragged || hasPinched) {
|
|
26924
26875
|
// record each axis' min and max
|
|
@@ -26930,17 +26881,15 @@
|
|
|
26930
26881
|
xAxis: 'zoomX',
|
|
26931
26882
|
yAxis: 'zoomY'
|
|
26932
26883
|
}[axis.coll]]) &&
|
|
26933
|
-
isNumber(
|
|
26934
|
-
isNumber(
|
|
26884
|
+
isNumber(x_1) &&
|
|
26885
|
+
isNumber(y_1)) { // #859, #3569
|
|
26935
26886
|
var horiz = axis.horiz,
|
|
26936
26887
|
minPixelPadding = e.type === 'touchend' ?
|
|
26937
26888
|
axis.minPixelPadding :
|
|
26938
26889
|
0, // #1207, #3075
|
|
26939
|
-
selectionMin = axis.toValue((horiz ?
|
|
26940
|
-
|
|
26941
|
-
|
|
26942
|
-
selectionLeft_1 + selectionWidth_1 :
|
|
26943
|
-
selectionTop_1 + selectionHeight_1) - minPixelPadding);
|
|
26890
|
+
selectionMin = axis.toValue((horiz ? x_1 : y_1) + minPixelPadding),
|
|
26891
|
+
selectionMax = axis.toValue((horiz ? x_1 + width_1 : y_1 + height_1) -
|
|
26892
|
+
minPixelPadding);
|
|
26944
26893
|
selectionData_1[axis.coll].push({
|
|
26945
26894
|
axis: axis,
|
|
26946
26895
|
// Min/max for reversed axes
|
|
@@ -27127,6 +27076,7 @@
|
|
|
27127
27076
|
* Pointer event, extended with `chartX` and `chartY` properties.
|
|
27128
27077
|
*
|
|
27129
27078
|
* @return {Highcharts.PointerAxisCoordinatesObject}
|
|
27079
|
+
* Axis coordinates.
|
|
27130
27080
|
*/
|
|
27131
27081
|
Pointer.prototype.getCoordinates = function (e) {
|
|
27132
27082
|
var coordinates = {
|
|
@@ -27165,7 +27115,7 @@
|
|
|
27165
27115
|
* @param {Highcharts.PointerEventObject} [e]
|
|
27166
27116
|
* The triggering event, containing chart coordinates of the pointer.
|
|
27167
27117
|
*
|
|
27168
|
-
* @return {
|
|
27118
|
+
* @return {Object}
|
|
27169
27119
|
* Object containing resulting hover data: hoverPoint, hoverSeries, and
|
|
27170
27120
|
* hoverPoints.
|
|
27171
27121
|
*/
|
|
@@ -27462,9 +27412,8 @@
|
|
|
27462
27412
|
// Also reset the chart position, used in #149 fix
|
|
27463
27413
|
chart.pointer.chartPosition = void 0;
|
|
27464
27414
|
}
|
|
27465
|
-
|
|
27466
|
-
tooltip &&
|
|
27467
|
-
!tooltip.isHidden) {
|
|
27415
|
+
// #11635, Firefox wheel scroll does not fire out events consistently
|
|
27416
|
+
if (tooltip && !tooltip.isHidden) {
|
|
27468
27417
|
this.reset();
|
|
27469
27418
|
}
|
|
27470
27419
|
};
|
|
@@ -27611,7 +27560,10 @@
|
|
|
27611
27560
|
}
|
|
27612
27561
|
// On touch devices, only proceed to trigger click if a handler is
|
|
27613
27562
|
// defined
|
|
27614
|
-
if (hasZoom &&
|
|
27563
|
+
if (hasZoom &&
|
|
27564
|
+
self.initiated &&
|
|
27565
|
+
!fireClickEvent &&
|
|
27566
|
+
e.cancelable !== false) {
|
|
27615
27567
|
e.preventDefault();
|
|
27616
27568
|
}
|
|
27617
27569
|
// Normalize each touch
|
|
@@ -27656,20 +27608,22 @@
|
|
|
27656
27608
|
}
|
|
27657
27609
|
else if (pinchDown.length) { // can be 0 when releasing, if touchend
|
|
27658
27610
|
// fires first
|
|
27659
|
-
|
|
27660
|
-
|
|
27661
|
-
|
|
27662
|
-
|
|
27663
|
-
|
|
27664
|
-
|
|
27665
|
-
|
|
27666
|
-
|
|
27667
|
-
|
|
27668
|
-
|
|
27669
|
-
|
|
27670
|
-
|
|
27671
|
-
|
|
27672
|
-
|
|
27611
|
+
fireEvent(chart, 'touchpan', { originalEvent: e }, function () {
|
|
27612
|
+
// Set the marker
|
|
27613
|
+
if (!selectionMarker) {
|
|
27614
|
+
// @todo It's a mock object, so maybe we need a separate
|
|
27615
|
+
// interface
|
|
27616
|
+
self.selectionMarker = selectionMarker = extend({
|
|
27617
|
+
destroy: noop,
|
|
27618
|
+
touch: true
|
|
27619
|
+
}, chart.plotBox);
|
|
27620
|
+
}
|
|
27621
|
+
self.pinchTranslate(pinchDown, touches, transform, selectionMarker, clip, lastValidTouch);
|
|
27622
|
+
self.hasPinched = hasZoom;
|
|
27623
|
+
// Scale and translate the groups to provide visual feedback
|
|
27624
|
+
// during pinching
|
|
27625
|
+
self.scaleGroups(transform, clip);
|
|
27626
|
+
});
|
|
27673
27627
|
if (self.res) {
|
|
27674
27628
|
self.res = false;
|
|
27675
27629
|
this.reset(false, 0);
|
|
@@ -27750,7 +27704,8 @@
|
|
|
27750
27704
|
clip[xy] = clipXY - plotLeftTop;
|
|
27751
27705
|
clip[wh] = selectionWH;
|
|
27752
27706
|
}
|
|
27753
|
-
var scaleKey = inverted ?
|
|
27707
|
+
var scaleKey = inverted ?
|
|
27708
|
+
(horiz ? 'scaleY' : 'scaleX') : 'scale' + XY;
|
|
27754
27709
|
var transformScale = inverted ? 1 / scale : scale;
|
|
27755
27710
|
selectionMarker[wh] = selectionWH;
|
|
27756
27711
|
selectionMarker[xy] = selectionXY;
|
|
@@ -27853,8 +27808,8 @@
|
|
|
27853
27808
|
* @private
|
|
27854
27809
|
* @function Highcharts.Pointer#runPointActions
|
|
27855
27810
|
*
|
|
27856
|
-
* @
|
|
27857
|
-
* @
|
|
27811
|
+
* @emits Highcharts.Point#event:mouseOut
|
|
27812
|
+
* @emits Highcharts.Point#event:mouseOver
|
|
27858
27813
|
*/
|
|
27859
27814
|
Pointer.prototype.runPointActions = function (e, p) {
|
|
27860
27815
|
var pointer = this,
|
|
@@ -27996,7 +27951,9 @@
|
|
|
27996
27951
|
// Scale each series
|
|
27997
27952
|
chart.series.forEach(function (series) {
|
|
27998
27953
|
var seriesAttribs = attribs || series.getPlotBox(); // #1701
|
|
27999
|
-
if (series.
|
|
27954
|
+
if (series.group &&
|
|
27955
|
+
((series.xAxis && series.xAxis.zoomEnabled) ||
|
|
27956
|
+
chart.mapView)) {
|
|
28000
27957
|
series.group.attr(seriesAttribs);
|
|
28001
27958
|
if (series.markerGroup) {
|
|
28002
27959
|
series.markerGroup.attr(seriesAttribs);
|
|
@@ -28605,7 +28562,8 @@
|
|
|
28605
28562
|
this.symbolWidth = pick(options.symbolWidth, 16);
|
|
28606
28563
|
this.pages = [];
|
|
28607
28564
|
this.proximate = options.layout === 'proximate' && !this.chart.inverted;
|
|
28608
|
-
|
|
28565
|
+
// #12705: baseline has to be reset on every update
|
|
28566
|
+
this.baseline = void 0;
|
|
28609
28567
|
};
|
|
28610
28568
|
/**
|
|
28611
28569
|
* Update the legend with new options. Equivalent to running `chart.update`
|
|
@@ -28624,7 +28582,7 @@
|
|
|
28624
28582
|
* operations on the chart, it is a good idea to set redraw to false and
|
|
28625
28583
|
* call {@link Chart#redraw} after. Whether to redraw the chart.
|
|
28626
28584
|
*
|
|
28627
|
-
* @
|
|
28585
|
+
* @emits Highcharts.Legends#event:afterUpdate
|
|
28628
28586
|
*/
|
|
28629
28587
|
Legend.prototype.update = function (options, redraw) {
|
|
28630
28588
|
var chart = this.chart;
|
|
@@ -28774,8 +28732,7 @@
|
|
|
28774
28732
|
/**
|
|
28775
28733
|
* @private
|
|
28776
28734
|
* @param {string} key
|
|
28777
|
-
|
|
28778
|
-
*/
|
|
28735
|
+
*/
|
|
28779
28736
|
function destroyItems(key) {
|
|
28780
28737
|
if (this[key]) {
|
|
28781
28738
|
this[key] = this[key].destroy();
|
|
@@ -28992,13 +28949,16 @@
|
|
|
28992
28949
|
legend.setText(item);
|
|
28993
28950
|
// calculate the positions for the next line
|
|
28994
28951
|
var bBox = li.getBBox();
|
|
28952
|
+
var fontMetricsH = (legend.fontMetrics && legend.fontMetrics.h) || 0;
|
|
28995
28953
|
item.itemWidth = item.checkboxOffset =
|
|
28996
28954
|
options.itemWidth ||
|
|
28997
28955
|
item.legendItemWidth ||
|
|
28998
28956
|
bBox.width + itemExtraWidth;
|
|
28999
28957
|
legend.maxItemWidth = Math.max(legend.maxItemWidth, item.itemWidth);
|
|
29000
28958
|
legend.totalItemWidth += item.itemWidth;
|
|
29001
|
-
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));
|
|
29002
28962
|
};
|
|
29003
28963
|
/**
|
|
29004
28964
|
* Get the position of the item in the layout. We now know the
|
|
@@ -29062,7 +29022,7 @@
|
|
|
29062
29022
|
* @function Highcharts.Legend#getAllItems
|
|
29063
29023
|
* @return {Array<(Highcharts.BubbleLegendItem|Highcharts.Point|Highcharts.Series)>}
|
|
29064
29024
|
* The current items in the legend.
|
|
29065
|
-
* @
|
|
29025
|
+
* @emits Highcharts.Legend#event:afterGetAllItems
|
|
29066
29026
|
*/
|
|
29067
29027
|
Legend.prototype.getAllItems = function () {
|
|
29068
29028
|
var allItems = [];
|
|
@@ -29332,7 +29292,6 @@
|
|
|
29332
29292
|
* @private
|
|
29333
29293
|
* @function Highcharts.align
|
|
29334
29294
|
* @param {Highcharts.BBoxObject} alignTo
|
|
29335
|
-
* @return {void}
|
|
29336
29295
|
*/
|
|
29337
29296
|
Legend.prototype.align = function (alignTo) {
|
|
29338
29297
|
if (alignTo === void 0) { alignTo = this.chart.spacingBox; }
|
|
@@ -29364,8 +29323,6 @@
|
|
|
29364
29323
|
*
|
|
29365
29324
|
* @private
|
|
29366
29325
|
* @function Highcharts.Legend#handleOverflow
|
|
29367
|
-
* @param {number} legendHeight
|
|
29368
|
-
* @return {number}
|
|
29369
29326
|
*/
|
|
29370
29327
|
Legend.prototype.handleOverflow = function (legendHeight) {
|
|
29371
29328
|
var legend = this,
|
|
@@ -29450,10 +29407,14 @@
|
|
|
29450
29407
|
if (lastY) {
|
|
29451
29408
|
allItems[i - 1].pageIx = len - 1;
|
|
29452
29409
|
}
|
|
29453
|
-
|
|
29410
|
+
// add the last page if needed (#2617, #13683)
|
|
29411
|
+
if (
|
|
29412
|
+
// check the last item
|
|
29413
|
+
i === allItems.length - 1 &&
|
|
29414
|
+
// if adding next page is needed
|
|
29454
29415
|
y + h - pages[len - 1] > clipHeight &&
|
|
29455
|
-
|
|
29456
|
-
|
|
29416
|
+
// and will fully fit inside a new page
|
|
29417
|
+
h <= clipHeight) {
|
|
29457
29418
|
pages.push(y);
|
|
29458
29419
|
item.pageIx = len;
|
|
29459
29420
|
}
|
|
@@ -29522,7 +29483,6 @@
|
|
|
29522
29483
|
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
|
|
29523
29484
|
* Whether and how to apply animation.
|
|
29524
29485
|
*
|
|
29525
|
-
* @return {void}
|
|
29526
29486
|
*/
|
|
29527
29487
|
Legend.prototype.scroll = function (scrollBy, animation) {
|
|
29528
29488
|
var _this = this;
|
|
@@ -29611,8 +29571,8 @@
|
|
|
29611
29571
|
* @param {Highcharts.BubbleLegendItem|Point|Highcharts.Series} item
|
|
29612
29572
|
* @param {Highcharts.SVGElement} legendItem
|
|
29613
29573
|
* @param {boolean} [useHTML=false]
|
|
29614
|
-
* @
|
|
29615
|
-
* @
|
|
29574
|
+
* @emits Highcharts.Point#event:legendItemClick
|
|
29575
|
+
* @emits Highcharts.Series#event:legendItemClick
|
|
29616
29576
|
*/
|
|
29617
29577
|
Legend.prototype.setItemEvents = function (item, legendItem, useHTML) {
|
|
29618
29578
|
var legend = this,
|
|
@@ -29702,7 +29662,7 @@
|
|
|
29702
29662
|
* @private
|
|
29703
29663
|
* @function Highcharts.Legend#createCheckboxForItem
|
|
29704
29664
|
* @param {Highcharts.BubbleLegendItem|Point|Highcharts.Series} item
|
|
29705
|
-
* @
|
|
29665
|
+
* @emits Highcharts.Series#event:checkboxClick
|
|
29706
29666
|
*/
|
|
29707
29667
|
Legend.prototype.createCheckboxForItem = function (item) {
|
|
29708
29668
|
var legend = this;
|
|
@@ -29945,8 +29905,7 @@
|
|
|
29945
29905
|
SeriesRegistry.seriesTypes[type].prototype.type = type;
|
|
29946
29906
|
// Create the point class if needed
|
|
29947
29907
|
if (pointProto) {
|
|
29948
|
-
SeriesRegistry.seriesTypes[type].prototype.pointClass =
|
|
29949
|
-
extendClass(Point, pointProto);
|
|
29908
|
+
SeriesRegistry.seriesTypes[type].prototype.pointClass = extendClass(Point, pointProto);
|
|
29950
29909
|
}
|
|
29951
29910
|
return SeriesRegistry.seriesTypes[type];
|
|
29952
29911
|
}
|
|
@@ -29961,7 +29920,7 @@
|
|
|
29961
29920
|
|
|
29962
29921
|
return SeriesRegistry;
|
|
29963
29922
|
});
|
|
29964
|
-
_registerModule(_modules, 'Core/Chart/Chart.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Axis/Axis.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Foundation.js'], _modules['Core/Globals.js'], _modules['Core/Legend/Legend.js'], _modules['Core/MSPointer.js'], _modules['Core/DefaultOptions.js'], _modules['Core/
|
|
29923
|
+
_registerModule(_modules, 'Core/Chart/Chart.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Axis/Axis.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Foundation.js'], _modules['Core/Globals.js'], _modules['Core/Legend/Legend.js'], _modules['Core/MSPointer.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Pointer.js'], _modules['Core/Renderer/RendererRegistry.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Time.js'], _modules['Core/Utilities.js'], _modules['Core/Renderer/HTML/AST.js']], function (A, Axis, FormatUtilities, Foundation, H, Legend, MSPointer, D, Pointer, RendererRegistry, SeriesRegistry, SVGRenderer, Time, U, AST) {
|
|
29965
29924
|
/* *
|
|
29966
29925
|
*
|
|
29967
29926
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -30132,8 +30091,8 @@
|
|
|
30132
30091
|
* @param {...Array<*>} arguments
|
|
30133
30092
|
* All arguments for the constructor.
|
|
30134
30093
|
*
|
|
30135
|
-
* @
|
|
30136
|
-
* @
|
|
30094
|
+
* @emits Highcharts.Chart#event:init
|
|
30095
|
+
* @emits Highcharts.Chart#event:afterInit
|
|
30137
30096
|
*/
|
|
30138
30097
|
Chart.prototype.getArgs = function (a, b, c) {
|
|
30139
30098
|
// Remove the optional first argument, renderTo, and
|
|
@@ -30159,10 +30118,9 @@
|
|
|
30159
30118
|
* Function to run when the chart has loaded and and all external
|
|
30160
30119
|
* images are loaded.
|
|
30161
30120
|
*
|
|
30162
|
-
* @return {void}
|
|
30163
30121
|
*
|
|
30164
|
-
* @
|
|
30165
|
-
* @
|
|
30122
|
+
* @emits Highcharts.Chart#event:init
|
|
30123
|
+
* @emits Highcharts.Chart#event:afterInit
|
|
30166
30124
|
*/
|
|
30167
30125
|
Chart.prototype.init = function (userOptions, callback) {
|
|
30168
30126
|
// Handle regular options
|
|
@@ -30340,7 +30298,6 @@
|
|
|
30340
30298
|
*
|
|
30341
30299
|
* @private
|
|
30342
30300
|
* @function Highcharts.Series#getSeriesOrderByLinks
|
|
30343
|
-
* @return {Array<Highcharts.Series>}
|
|
30344
30301
|
*/
|
|
30345
30302
|
Chart.prototype.getSeriesOrderByLinks = function () {
|
|
30346
30303
|
return this.series.concat().sort(function (a, b) {
|
|
@@ -30421,7 +30378,8 @@
|
|
|
30421
30378
|
pos: plotLeft,
|
|
30422
30379
|
len: Infinity
|
|
30423
30380
|
};
|
|
30424
|
-
var chartX = options.paneCoordinates ?
|
|
30381
|
+
var chartX = options.paneCoordinates ?
|
|
30382
|
+
xAxis.pos + x : plotLeft + x;
|
|
30425
30383
|
if (!(chartX >= Math.max(scrollLeft + plotLeft, xAxis.pos) &&
|
|
30426
30384
|
chartX <= Math.min(scrollLeft + plotLeft + box.width, xAxis.pos + xAxis.len))) {
|
|
30427
30385
|
e.isInsidePlot = false;
|
|
@@ -30432,7 +30390,8 @@
|
|
|
30432
30390
|
pos: plotTop,
|
|
30433
30391
|
len: Infinity
|
|
30434
30392
|
};
|
|
30435
|
-
var chartY = options.paneCoordinates ?
|
|
30393
|
+
var chartY = options.paneCoordinates ?
|
|
30394
|
+
yAxis.pos + y : plotTop + y;
|
|
30436
30395
|
if (!(chartY >= Math.max(scrollTop + plotTop, yAxis.pos) &&
|
|
30437
30396
|
chartY <= Math.min(scrollTop + plotTop + box.height, yAxis.pos + yAxis.len))) {
|
|
30438
30397
|
e.isInsidePlot = false;
|
|
@@ -30455,12 +30414,12 @@
|
|
|
30455
30414
|
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
|
|
30456
30415
|
* If or how to apply animation to the redraw.
|
|
30457
30416
|
*
|
|
30458
|
-
* @
|
|
30459
|
-
* @
|
|
30460
|
-
* @
|
|
30461
|
-
* @
|
|
30462
|
-
* @
|
|
30463
|
-
* @
|
|
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
|
|
30464
30423
|
*/
|
|
30465
30424
|
Chart.prototype.redraw = function (animation) {
|
|
30466
30425
|
fireEvent(this, 'beforeRedraw');
|
|
@@ -30622,8 +30581,6 @@
|
|
|
30622
30581
|
var series = this.series;
|
|
30623
30582
|
/**
|
|
30624
30583
|
* @private
|
|
30625
|
-
* @param {Highcharts.Axis|Highcharts.Series} item
|
|
30626
|
-
* @return {boolean}
|
|
30627
30584
|
*/
|
|
30628
30585
|
function itemById(item) {
|
|
30629
30586
|
return (item.id === id ||
|
|
@@ -30647,8 +30604,8 @@
|
|
|
30647
30604
|
*
|
|
30648
30605
|
* @private
|
|
30649
30606
|
* @function Highcharts.Chart#getAxes
|
|
30650
|
-
* @
|
|
30651
|
-
* @
|
|
30607
|
+
* @emits Highcharts.Chart#event:afterGetAxes
|
|
30608
|
+
* @emits Highcharts.Chart#event:getAxes
|
|
30652
30609
|
*/
|
|
30653
30610
|
Chart.prototype.getAxes = function () {
|
|
30654
30611
|
var chart = this,
|
|
@@ -30762,10 +30719,10 @@
|
|
|
30762
30719
|
var chart = this;
|
|
30763
30720
|
// Default style
|
|
30764
30721
|
var style = name === 'title' ? {
|
|
30765
|
-
color:
|
|
30722
|
+
color: "#333333" /* neutralColor80 */,
|
|
30766
30723
|
fontSize: this.options.isStock ? '16px' : '18px' // #2944
|
|
30767
30724
|
} : {
|
|
30768
|
-
color:
|
|
30725
|
+
color: "#666666" /* neutralColor60 */
|
|
30769
30726
|
};
|
|
30770
30727
|
// Merge default options with explicit options
|
|
30771
30728
|
var options = this.options[name] = merge(
|
|
@@ -30830,7 +30787,7 @@
|
|
|
30830
30787
|
* @function Highcharts.Chart#layOutTitles
|
|
30831
30788
|
*
|
|
30832
30789
|
* @param {boolean} [redraw=true]
|
|
30833
|
-
* @
|
|
30790
|
+
* @emits Highcharts.Chart#event:afterLayOutTitles
|
|
30834
30791
|
*/
|
|
30835
30792
|
Chart.prototype.layOutTitles = function (redraw) {
|
|
30836
30793
|
var titleOffset = [0, 0, 0],
|
|
@@ -30838,7 +30795,7 @@
|
|
|
30838
30795
|
spacingBox = this.spacingBox;
|
|
30839
30796
|
// Lay out the title and the subtitle respectively
|
|
30840
30797
|
['title', 'subtitle', 'caption'].forEach(function (key) {
|
|
30841
|
-
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' ?
|
|
30842
30799
|
verticalAlign === 'top' ? -3 : 0 :
|
|
30843
30800
|
// Floating subtitle (#6574)
|
|
30844
30801
|
verticalAlign === 'top' ? titleOffset[0] + 2 : 0;
|
|
@@ -30846,7 +30803,8 @@
|
|
|
30846
30803
|
height;
|
|
30847
30804
|
if (title) {
|
|
30848
30805
|
if (!this.styledMode) {
|
|
30849
|
-
titleSize = titleOptions.style &&
|
|
30806
|
+
titleSize = (titleOptions.style &&
|
|
30807
|
+
titleOptions.style.fontSize);
|
|
30850
30808
|
}
|
|
30851
30809
|
titleSize = renderer.fontMetrics(titleSize, title).b;
|
|
30852
30810
|
title
|
|
@@ -31021,7 +30979,7 @@
|
|
|
31021
30979
|
*
|
|
31022
30980
|
* @private
|
|
31023
30981
|
* @function Highcharts.Chart#afterGetContainer
|
|
31024
|
-
* @
|
|
30982
|
+
* @emits Highcharts.Chart#event:afterGetContainer
|
|
31025
30983
|
*/
|
|
31026
30984
|
Chart.prototype.getContainer = function () {
|
|
31027
30985
|
var chart = this,
|
|
@@ -31058,7 +31016,7 @@
|
|
|
31058
31016
|
// Make a reference to the chart from the div
|
|
31059
31017
|
attr(renderTo, indexAttrName, chart.index);
|
|
31060
31018
|
// remove previous chart
|
|
31061
|
-
renderTo.innerHTML =
|
|
31019
|
+
renderTo.innerHTML = AST.emptyHTML;
|
|
31062
31020
|
// If the container doesn't have an offsetWidth, it has or is a child of
|
|
31063
31021
|
// a node that has display:none. We need to temporarily move it out to a
|
|
31064
31022
|
// visible state to determine the size, else the legend and tooltips
|
|
@@ -31143,7 +31101,7 @@
|
|
|
31143
31101
|
*
|
|
31144
31102
|
* @private
|
|
31145
31103
|
* @function Highcharts.Chart#getMargins
|
|
31146
|
-
* @
|
|
31104
|
+
* @emits Highcharts.Chart#event:getMargins
|
|
31147
31105
|
*/
|
|
31148
31106
|
Chart.prototype.getMargins = function (skipAxes) {
|
|
31149
31107
|
var _a = this,
|
|
@@ -31309,10 +31267,9 @@
|
|
|
31309
31267
|
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation=true]
|
|
31310
31268
|
* Whether and how to apply animation.
|
|
31311
31269
|
*
|
|
31312
|
-
* @return {void}
|
|
31313
31270
|
*
|
|
31314
|
-
* @
|
|
31315
|
-
* @
|
|
31271
|
+
* @emits Highcharts.Chart#event:endResize
|
|
31272
|
+
* @emits Highcharts.Chart#event:resize
|
|
31316
31273
|
*/
|
|
31317
31274
|
Chart.prototype.setSize = function (width, height, animation) {
|
|
31318
31275
|
var chart = this,
|
|
@@ -31369,7 +31326,7 @@
|
|
|
31369
31326
|
*
|
|
31370
31327
|
* @private
|
|
31371
31328
|
* @function Highcharts.Chart#setChartSize
|
|
31372
|
-
* @
|
|
31329
|
+
* @emits Highcharts.Chart#event:afterSetChartSize
|
|
31373
31330
|
*/
|
|
31374
31331
|
Chart.prototype.setChartSize = function (skipAxes) {
|
|
31375
31332
|
var chart = this,
|
|
@@ -31492,7 +31449,7 @@
|
|
|
31492
31449
|
*
|
|
31493
31450
|
* @private
|
|
31494
31451
|
* @function Highcharts.Chart#drawChartBox
|
|
31495
|
-
* @
|
|
31452
|
+
* @emits Highcharts.Chart#event:afterDrawChartBox
|
|
31496
31453
|
*/
|
|
31497
31454
|
Chart.prototype.drawChartBox = function () {
|
|
31498
31455
|
var chart = this,
|
|
@@ -31626,7 +31583,6 @@
|
|
|
31626
31583
|
*
|
|
31627
31584
|
* @private
|
|
31628
31585
|
* @function Highcharts.Chart#propFromSeries
|
|
31629
|
-
* @return {void}
|
|
31630
31586
|
*/
|
|
31631
31587
|
Chart.prototype.propFromSeries = function () {
|
|
31632
31588
|
var chart = this,
|
|
@@ -31670,7 +31626,7 @@
|
|
|
31670
31626
|
*
|
|
31671
31627
|
* @private
|
|
31672
31628
|
* @function Highcharts.Chart#linkSeries
|
|
31673
|
-
* @
|
|
31629
|
+
* @emits Highcharts.Chart#event:afterLinkSeries
|
|
31674
31630
|
*/
|
|
31675
31631
|
Chart.prototype.linkSeries = function () {
|
|
31676
31632
|
var chart = this,
|
|
@@ -31898,7 +31854,7 @@
|
|
|
31898
31854
|
*
|
|
31899
31855
|
* @function Highcharts.Chart#destroy
|
|
31900
31856
|
*
|
|
31901
|
-
* @
|
|
31857
|
+
* @emits Highcharts.Chart#event:destroy
|
|
31902
31858
|
*/
|
|
31903
31859
|
Chart.prototype.destroy = function () {
|
|
31904
31860
|
var chart = this,
|
|
@@ -31950,7 +31906,7 @@
|
|
|
31950
31906
|
// Remove container and all SVG, check container as it can break in IE
|
|
31951
31907
|
// when destroyed before finished loading
|
|
31952
31908
|
if (container) {
|
|
31953
|
-
container.innerHTML =
|
|
31909
|
+
container.innerHTML = AST.emptyHTML;
|
|
31954
31910
|
removeEvent(container);
|
|
31955
31911
|
if (parentNode) {
|
|
31956
31912
|
discardElement(container);
|
|
@@ -31966,7 +31922,7 @@
|
|
|
31966
31922
|
*
|
|
31967
31923
|
* @private
|
|
31968
31924
|
* @function Highcharts.Chart#firstRender
|
|
31969
|
-
* @
|
|
31925
|
+
* @emits Highcharts.Chart#event:beforeRender
|
|
31970
31926
|
*/
|
|
31971
31927
|
Chart.prototype.firstRender = function () {
|
|
31972
31928
|
var chart = this,
|
|
@@ -32030,8 +31986,8 @@
|
|
|
32030
31986
|
*
|
|
32031
31987
|
* @private
|
|
32032
31988
|
* @function Highcharts.Chart#onload
|
|
32033
|
-
* @
|
|
32034
|
-
* @
|
|
31989
|
+
* @emits Highcharts.Chart#event:load
|
|
31990
|
+
* @emits Highcharts.Chart#event:render
|
|
32035
31991
|
*/
|
|
32036
31992
|
Chart.prototype.onload = function () {
|
|
32037
31993
|
// Run callbacks, first the ones registered by modules, then user's one
|
|
@@ -32077,8 +32033,8 @@
|
|
|
32077
32033
|
* @return {Highcharts.Series}
|
|
32078
32034
|
* The newly created series object.
|
|
32079
32035
|
*
|
|
32080
|
-
* @
|
|
32081
|
-
* @
|
|
32036
|
+
* @emits Highcharts.Chart#event:addSeries
|
|
32037
|
+
* @emits Highcharts.Chart#event:afterAddSeries
|
|
32082
32038
|
*/
|
|
32083
32039
|
Chart.prototype.addSeries = function (options, redraw, animation) {
|
|
32084
32040
|
var chart = this;
|
|
@@ -32337,8 +32293,8 @@
|
|
|
32337
32293
|
* Whether to apply animation, and optionally animation
|
|
32338
32294
|
* configuration.
|
|
32339
32295
|
*
|
|
32340
|
-
* @
|
|
32341
|
-
* @
|
|
32296
|
+
* @emits Highcharts.Chart#event:update
|
|
32297
|
+
* @emits Highcharts.Chart#event:afterUpdate
|
|
32342
32298
|
*/
|
|
32343
32299
|
Chart.prototype.update = function (options, redraw, oneToOne, animation) {
|
|
32344
32300
|
var chart = this,
|
|
@@ -32606,8 +32562,8 @@
|
|
|
32606
32562
|
*
|
|
32607
32563
|
* @function Highcharts.Chart#showResetZoom
|
|
32608
32564
|
*
|
|
32609
|
-
* @
|
|
32610
|
-
* @
|
|
32565
|
+
* @emits Highcharts.Chart#event:afterShowResetZoom
|
|
32566
|
+
* @emits Highcharts.Chart#event:beforeShowResetZoom
|
|
32611
32567
|
*/
|
|
32612
32568
|
Chart.prototype.showResetZoom = function () {
|
|
32613
32569
|
var chart = this,
|
|
@@ -32644,7 +32600,7 @@
|
|
|
32644
32600
|
*
|
|
32645
32601
|
* @function Highcharts.Chart#zoomOut
|
|
32646
32602
|
*
|
|
32647
|
-
* @
|
|
32603
|
+
* @emits Highcharts.Chart#event:selection
|
|
32648
32604
|
*/
|
|
32649
32605
|
Chart.prototype.zoomOut = function () {
|
|
32650
32606
|
fireEvent(this, 'selection', { resetSelection: true }, this.zoom);
|
|
@@ -32659,7 +32615,8 @@
|
|
|
32659
32615
|
Chart.prototype.zoom = function (event) {
|
|
32660
32616
|
var chart = this,
|
|
32661
32617
|
pointer = chart.pointer,
|
|
32662
|
-
mouseDownPos =
|
|
32618
|
+
mouseDownPos = chart.inverted ?
|
|
32619
|
+
pointer.mouseDownX : pointer.mouseDownY;
|
|
32663
32620
|
var displayButton = false,
|
|
32664
32621
|
hasZoomed;
|
|
32665
32622
|
// If zoom is called with no arguments, reset the axes
|
|
@@ -33172,7 +33129,7 @@
|
|
|
33172
33129
|
|
|
33173
33130
|
return LegendSymbol;
|
|
33174
33131
|
});
|
|
33175
|
-
_registerModule(_modules, 'Core/Series/SeriesDefaults.js', [
|
|
33132
|
+
_registerModule(_modules, 'Core/Series/SeriesDefaults.js', [], function () {
|
|
33176
33133
|
/* *
|
|
33177
33134
|
*
|
|
33178
33135
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -34155,7 +34112,7 @@
|
|
|
34155
34112
|
*
|
|
34156
34113
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
34157
34114
|
*/
|
|
34158
|
-
lineColor:
|
|
34115
|
+
lineColor: "#ffffff" /* backgroundColor */,
|
|
34159
34116
|
/**
|
|
34160
34117
|
* The width of the point marker's outline.
|
|
34161
34118
|
*
|
|
@@ -34355,7 +34312,7 @@
|
|
|
34355
34312
|
*
|
|
34356
34313
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
34357
34314
|
*/
|
|
34358
|
-
fillColor:
|
|
34315
|
+
fillColor: "#cccccc" /* neutralColor20 */,
|
|
34359
34316
|
/**
|
|
34360
34317
|
* The color of the point marker's outline. When
|
|
34361
34318
|
* `undefined`, the series' or point's color is used.
|
|
@@ -34365,7 +34322,7 @@
|
|
|
34365
34322
|
*
|
|
34366
34323
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
34367
34324
|
*/
|
|
34368
|
-
lineColor:
|
|
34325
|
+
lineColor: "#000000" /* neutralColor100 */,
|
|
34369
34326
|
/**
|
|
34370
34327
|
* The width of the point marker's outline.
|
|
34371
34328
|
*
|
|
@@ -34760,9 +34717,9 @@
|
|
|
34760
34717
|
*/
|
|
34761
34718
|
// eslint-disable-next-line valid-jsdoc
|
|
34762
34719
|
/**
|
|
34763
|
-
* Callback JavaScript function to format the data label. Note that
|
|
34764
|
-
*
|
|
34765
|
-
*
|
|
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.
|
|
34766
34723
|
*
|
|
34767
34724
|
* @sample {highmaps} maps/plotoptions/series-datalabels-format/
|
|
34768
34725
|
* Formatted value
|
|
@@ -34771,7 +34728,8 @@
|
|
|
34771
34728
|
*/
|
|
34772
34729
|
formatter: function () {
|
|
34773
34730
|
var numberFormatter = this.series.chart.numberFormatter;
|
|
34774
|
-
return typeof this.y !== 'number' ?
|
|
34731
|
+
return typeof this.y !== 'number' ?
|
|
34732
|
+
'' : numberFormatter(this.y, -1);
|
|
34775
34733
|
},
|
|
34776
34734
|
/**
|
|
34777
34735
|
* For points with an extent, like columns or map areas, whether to
|
|
@@ -35466,7 +35424,7 @@
|
|
|
35466
35424
|
|
|
35467
35425
|
return seriesDefaults;
|
|
35468
35426
|
});
|
|
35469
|
-
_registerModule(_modules, 'Core/Series/Series.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Foundation.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/
|
|
35427
|
+
_registerModule(_modules, 'Core/Series/Series.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Foundation.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Series/Point.js'], _modules['Core/Series/SeriesDefaults.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/SVGElement.js'], _modules['Core/Utilities.js']], function (A, D, F, H, LegendSymbol, Point, SeriesDefaults, SeriesRegistry, SVGElement, U) {
|
|
35470
35428
|
/* *
|
|
35471
35429
|
*
|
|
35472
35430
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -35852,7 +35810,6 @@
|
|
|
35852
35810
|
*
|
|
35853
35811
|
* @private
|
|
35854
35812
|
* @function Highcharts.Series#hasData
|
|
35855
|
-
* @return {boolean}
|
|
35856
35813
|
*/
|
|
35857
35814
|
Series.prototype.hasData = function () {
|
|
35858
35815
|
return ((this.visible &&
|
|
@@ -35870,7 +35827,6 @@
|
|
|
35870
35827
|
*
|
|
35871
35828
|
* @private
|
|
35872
35829
|
* @function Highcharts.Series#autoIncrement
|
|
35873
|
-
* @return {number}
|
|
35874
35830
|
*/
|
|
35875
35831
|
Series.prototype.autoIncrement = function (x) {
|
|
35876
35832
|
var options = this.options,
|
|
@@ -35931,13 +35887,9 @@
|
|
|
35931
35887
|
* not redraw the series. For API usage, use {@link Series#update}.
|
|
35932
35888
|
* @private
|
|
35933
35889
|
* @function Highcharts.Series#setOptions
|
|
35934
|
-
*
|
|
35935
35890
|
* @param {Highcharts.SeriesOptionsType} itemOptions
|
|
35936
35891
|
* The series options.
|
|
35937
|
-
*
|
|
35938
|
-
* @return {Highcharts.SeriesOptionsType}
|
|
35939
|
-
*
|
|
35940
|
-
* @fires Highcharts.Series#event:afterSetOptions
|
|
35892
|
+
* @emits Highcharts.Series#event:afterSetOptions
|
|
35941
35893
|
*/
|
|
35942
35894
|
Series.prototype.setOptions = function (itemOptions) {
|
|
35943
35895
|
var chart = this.chart,
|
|
@@ -36083,7 +36035,7 @@
|
|
|
36083
36035
|
this.getCyclic('color');
|
|
36084
36036
|
}
|
|
36085
36037
|
else if (this.options.colorByPoint) {
|
|
36086
|
-
this.color =
|
|
36038
|
+
this.color = "#cccccc" /* neutralColor20 */;
|
|
36087
36039
|
}
|
|
36088
36040
|
else {
|
|
36089
36041
|
this.getCyclic('color', this.options.color ||
|
|
@@ -36095,7 +36047,6 @@
|
|
|
36095
36047
|
*
|
|
36096
36048
|
* @private
|
|
36097
36049
|
* @function Highcharts.Series#getPointsCollection
|
|
36098
|
-
* @return {Array<Highcharts.Point>}
|
|
36099
36050
|
*/
|
|
36100
36051
|
Series.prototype.getPointsCollection = function () {
|
|
36101
36052
|
return (this.hasGroupedData ? this.points : this.data) || [];
|
|
@@ -36106,7 +36057,6 @@
|
|
|
36106
36057
|
*
|
|
36107
36058
|
* @private
|
|
36108
36059
|
* @function Highcharts.Series#getSymbol
|
|
36109
|
-
* @return {void}
|
|
36110
36060
|
*/
|
|
36111
36061
|
Series.prototype.getSymbol = function () {
|
|
36112
36062
|
var seriesMarkerOption = this.options.marker;
|
|
@@ -36118,14 +36068,13 @@
|
|
|
36118
36068
|
*
|
|
36119
36069
|
* @private
|
|
36120
36070
|
* @function Highcharts.Series#findPointIndex
|
|
36121
|
-
* @param
|
|
36122
|
-
*
|
|
36123
|
-
* @param
|
|
36124
|
-
*
|
|
36125
|
-
*
|
|
36126
|
-
* @
|
|
36127
|
-
*
|
|
36128
|
-
* 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.
|
|
36129
36078
|
*/
|
|
36130
36079
|
Series.prototype.findPointIndex = function (optionsObject, fromIndex) {
|
|
36131
36080
|
var id = optionsObject.id,
|
|
@@ -36414,11 +36363,19 @@
|
|
|
36414
36363
|
}
|
|
36415
36364
|
else if (isArray(firstPoint)) {
|
|
36416
36365
|
if (valueCount) { // [x, low, high] or [x, o, h, l, c]
|
|
36417
|
-
|
|
36418
|
-
|
|
36419
|
-
|
|
36420
|
-
|
|
36421
|
-
|
|
36366
|
+
if (firstPoint.length === valueCount) {
|
|
36367
|
+
for (i = 0; i < dataLength; i++) {
|
|
36368
|
+
xData[i] = this.autoIncrement();
|
|
36369
|
+
yData[i] = data[i];
|
|
36370
|
+
}
|
|
36371
|
+
}
|
|
36372
|
+
else {
|
|
36373
|
+
for (i = 0; i < dataLength; i++) {
|
|
36374
|
+
pt = data[i];
|
|
36375
|
+
xData[i] = pt[0];
|
|
36376
|
+
yData[i] =
|
|
36377
|
+
pt.slice(1, valueCount + 1);
|
|
36378
|
+
}
|
|
36422
36379
|
}
|
|
36423
36380
|
}
|
|
36424
36381
|
else { // [x, y]
|
|
@@ -36428,10 +36385,21 @@
|
|
|
36428
36385
|
indexOfX = indexOfX >= 0 ? indexOfX : 0;
|
|
36429
36386
|
indexOfY = indexOfY >= 0 ? indexOfY : 1;
|
|
36430
36387
|
}
|
|
36431
|
-
|
|
36432
|
-
|
|
36433
|
-
|
|
36434
|
-
|
|
36388
|
+
if (firstPoint.length === 1) {
|
|
36389
|
+
indexOfY = 0;
|
|
36390
|
+
}
|
|
36391
|
+
if (indexOfX === indexOfY) {
|
|
36392
|
+
for (i = 0; i < dataLength; i++) {
|
|
36393
|
+
xData[i] = this.autoIncrement();
|
|
36394
|
+
yData[i] = data[i][indexOfY];
|
|
36395
|
+
}
|
|
36396
|
+
}
|
|
36397
|
+
else {
|
|
36398
|
+
for (i = 0; i < dataLength; i++) {
|
|
36399
|
+
pt = data[i];
|
|
36400
|
+
xData[i] = pt[indexOfX];
|
|
36401
|
+
yData[i] = pt[indexOfY];
|
|
36402
|
+
}
|
|
36435
36403
|
}
|
|
36436
36404
|
}
|
|
36437
36405
|
}
|
|
@@ -36489,11 +36457,8 @@
|
|
|
36489
36457
|
*
|
|
36490
36458
|
* @private
|
|
36491
36459
|
* @function Highcharts.Series#sortData
|
|
36492
|
-
*
|
|
36493
36460
|
* @param {Array<Highcharts.PointOptionsType>} data
|
|
36494
36461
|
* Force data grouping.
|
|
36495
|
-
*
|
|
36496
|
-
* @return {Array<Highcharts.PointOptionsObject>}
|
|
36497
36462
|
*/
|
|
36498
36463
|
Series.prototype.sortData = function (data) {
|
|
36499
36464
|
var series = this,
|
|
@@ -36555,8 +36520,7 @@
|
|
|
36555
36520
|
* @private
|
|
36556
36521
|
* @function Highcharts.Series#getProcessedData
|
|
36557
36522
|
* @param {boolean} [forceExtremesFromAll]
|
|
36558
|
-
*
|
|
36559
|
-
* @return {Highcharts.SeriesProcessedDataObject}
|
|
36523
|
+
* Force getting extremes of a total series data range.
|
|
36560
36524
|
*/
|
|
36561
36525
|
Series.prototype.getProcessedData = function (forceExtremesFromAll) {
|
|
36562
36526
|
var series = this,
|
|
@@ -36652,8 +36616,7 @@
|
|
|
36652
36616
|
* @private
|
|
36653
36617
|
* @function Highcharts.Series#processData
|
|
36654
36618
|
* @param {boolean} [force]
|
|
36655
|
-
*
|
|
36656
|
-
* @return {boolean|undefined}
|
|
36619
|
+
* Force data grouping.
|
|
36657
36620
|
*/
|
|
36658
36621
|
Series.prototype.processData = function (force) {
|
|
36659
36622
|
var series = this,
|
|
@@ -36674,7 +36637,8 @@
|
|
|
36674
36637
|
series.cropStart = processedData.cropStart;
|
|
36675
36638
|
series.processedXData = processedData.xData;
|
|
36676
36639
|
series.processedYData = processedData.yData;
|
|
36677
|
-
series.closestPointRange = series.basePointRange = processedData.closestPointRange;
|
|
36640
|
+
series.closestPointRange = (series.basePointRange = processedData.closestPointRange);
|
|
36641
|
+
fireEvent(series, 'afterProcessData');
|
|
36678
36642
|
};
|
|
36679
36643
|
/**
|
|
36680
36644
|
* Iterate over xData and crop values between min and max. Returns
|
|
@@ -36683,12 +36647,6 @@
|
|
|
36683
36647
|
*
|
|
36684
36648
|
* @private
|
|
36685
36649
|
* @function Highcharts.Series#cropData
|
|
36686
|
-
* @param {Array<number>} xData
|
|
36687
|
-
* @param {Array<number>} yData
|
|
36688
|
-
* @param {number} min
|
|
36689
|
-
* @param {number} max
|
|
36690
|
-
* @param {number} [cropShoulder]
|
|
36691
|
-
* @return {Highcharts.SeriesCropDataObject}
|
|
36692
36650
|
*/
|
|
36693
36651
|
Series.prototype.cropData = function (xData, yData, min, max, cropShoulder) {
|
|
36694
36652
|
var dataLength = xData.length;
|
|
@@ -36785,6 +36743,9 @@
|
|
|
36785
36743
|
*
|
|
36786
36744
|
* @name Highcharts.Point#dataGroup
|
|
36787
36745
|
* @type {Highcharts.DataGroupingInfoObject|undefined}
|
|
36746
|
+
*
|
|
36747
|
+
* @sample stock/members/point-datagroup
|
|
36748
|
+
* Click to inspect raw data points
|
|
36788
36749
|
*/
|
|
36789
36750
|
point.dataGroup = series.groupMap[groupCropStartIndex + i];
|
|
36790
36751
|
if (point.dataGroup.options) {
|
|
@@ -36803,7 +36764,8 @@
|
|
|
36803
36764
|
* @readonly
|
|
36804
36765
|
*/
|
|
36805
36766
|
// For faster access in Point.update
|
|
36806
|
-
point.index = hasGroupedData ?
|
|
36767
|
+
point.index = hasGroupedData ?
|
|
36768
|
+
(groupCropStartIndex + i) : cursor;
|
|
36807
36769
|
points[i] = point;
|
|
36808
36770
|
}
|
|
36809
36771
|
}
|
|
@@ -36863,12 +36825,9 @@
|
|
|
36863
36825
|
*
|
|
36864
36826
|
* @private
|
|
36865
36827
|
* @function Highcharts.Series#getXExtremes
|
|
36866
|
-
*
|
|
36867
36828
|
* @param {Array<number>} xData
|
|
36868
36829
|
* The data to inspect. Defaults to the current data within the visible
|
|
36869
36830
|
* range.
|
|
36870
|
-
*
|
|
36871
|
-
* @return {Highcharts.RangeObject}
|
|
36872
36831
|
*/
|
|
36873
36832
|
Series.prototype.getXExtremes = function (xData) {
|
|
36874
36833
|
return {
|
|
@@ -36882,14 +36841,11 @@
|
|
|
36882
36841
|
*
|
|
36883
36842
|
* @private
|
|
36884
36843
|
* @function Highcharts.Series#getExtremes
|
|
36885
|
-
*
|
|
36886
36844
|
* @param {Array<number>} [yData]
|
|
36887
36845
|
* The data to inspect. Defaults to the current data within the visible
|
|
36888
36846
|
* range.
|
|
36889
36847
|
* @param {boolean} [forceExtremesFromAll]
|
|
36890
36848
|
* Force getting extremes of a total series data range.
|
|
36891
|
-
*
|
|
36892
|
-
* @return {Highcharts.DataExtremesObject}
|
|
36893
36849
|
*/
|
|
36894
36850
|
Series.prototype.getExtremes = function (yData, forceExtremesFromAll) {
|
|
36895
36851
|
var xAxis = this.xAxis,
|
|
@@ -36947,6 +36903,7 @@
|
|
|
36947
36903
|
}
|
|
36948
36904
|
}
|
|
36949
36905
|
var dataExtremes = {
|
|
36906
|
+
activeYData: activeYData,
|
|
36950
36907
|
dataMin: arrayMin(activeYData),
|
|
36951
36908
|
dataMax: arrayMax(activeYData)
|
|
36952
36909
|
};
|
|
@@ -36988,11 +36945,8 @@
|
|
|
36988
36945
|
*
|
|
36989
36946
|
* @private
|
|
36990
36947
|
* @function Highcharts.Series.getFirstValidPoint
|
|
36991
|
-
*
|
|
36992
36948
|
* @param {Array<Highcharts.PointOptionsType>} data
|
|
36993
36949
|
* Array of options for points
|
|
36994
|
-
*
|
|
36995
|
-
* @return {Highcharts.PointOptionsType}
|
|
36996
36950
|
*/
|
|
36997
36951
|
Series.prototype.getFirstValidPoint = function (data) {
|
|
36998
36952
|
var dataLength = data.length;
|
|
@@ -37012,7 +36966,7 @@
|
|
|
37012
36966
|
*
|
|
37013
36967
|
* @function Highcharts.Series#translate
|
|
37014
36968
|
*
|
|
37015
|
-
* @
|
|
36969
|
+
* @emits Highcharts.Series#events:translate
|
|
37016
36970
|
*/
|
|
37017
36971
|
Series.prototype.translate = function () {
|
|
37018
36972
|
if (!this.processedXData) { // hidden series
|
|
@@ -37028,7 +36982,6 @@
|
|
|
37028
36982
|
yAxis = series.yAxis,
|
|
37029
36983
|
points = series.points,
|
|
37030
36984
|
dataLength = points.length,
|
|
37031
|
-
hasModifyValue = !!series.modifyValue,
|
|
37032
36985
|
pointPlacement = series.pointPlacementToXValue(), // #7860
|
|
37033
36986
|
dynamicallyPlaced = Boolean(pointPlacement),
|
|
37034
36987
|
threshold = options.threshold,
|
|
@@ -37061,8 +37014,10 @@
|
|
|
37061
37014
|
(stackThreshold ? 0 : threshold) ?
|
|
37062
37015
|
'-' :
|
|
37063
37016
|
'') + series.stackKey];
|
|
37064
|
-
if (yAxis.positiveValuesOnly &&
|
|
37065
|
-
|
|
37017
|
+
if (yAxis.positiveValuesOnly &&
|
|
37018
|
+
!yAxis.validatePositiveValue(yValue) ||
|
|
37019
|
+
xAxis.positiveValuesOnly &&
|
|
37020
|
+
!xAxis.validatePositiveValue(xValue)) {
|
|
37066
37021
|
point.isNull = true;
|
|
37067
37022
|
}
|
|
37068
37023
|
// Get the plotX translation
|
|
@@ -37113,9 +37068,9 @@
|
|
|
37113
37068
|
point.yBottom = defined(yBottom) ?
|
|
37114
37069
|
limitedRange(yAxis.translate(yBottom, 0, 1, 0, 1)) :
|
|
37115
37070
|
null;
|
|
37116
|
-
//
|
|
37117
|
-
if (
|
|
37118
|
-
yValue = series.modifyValue(yValue,
|
|
37071
|
+
// General hook, used for Highcharts Stock compare and cumulative
|
|
37072
|
+
if (series.dataModify) {
|
|
37073
|
+
yValue = series.dataModify.modifyValue(yValue, i);
|
|
37119
37074
|
}
|
|
37120
37075
|
// Set the the plotY value, reset it for redraws
|
|
37121
37076
|
// #3201
|
|
@@ -37153,7 +37108,7 @@
|
|
|
37153
37108
|
lastPlotX = plotX;
|
|
37154
37109
|
}
|
|
37155
37110
|
// Find point zone
|
|
37156
|
-
point.zone =
|
|
37111
|
+
point.zone = this.zones.length ? point.getZone() : void 0;
|
|
37157
37112
|
// Animate new points with data sorting
|
|
37158
37113
|
if (!point.graphic && series.group && enabledDataSorting) {
|
|
37159
37114
|
point.isNew = true;
|
|
@@ -37197,52 +37152,23 @@
|
|
|
37197
37152
|
*
|
|
37198
37153
|
* @private
|
|
37199
37154
|
* @function Highcharts.Series#getClip
|
|
37200
|
-
*
|
|
37201
|
-
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
|
|
37202
|
-
* Initialize the animation.
|
|
37203
|
-
*
|
|
37204
|
-
* @param {boolean} [finalBox]
|
|
37205
|
-
* Final size for the clip - end state for the animation.
|
|
37206
|
-
*
|
|
37207
|
-
* @return {Highcharts.Dictionary<number>}
|
|
37208
37155
|
*/
|
|
37209
|
-
Series.prototype.getClipBox = function (
|
|
37210
|
-
var
|
|
37211
|
-
|
|
37212
|
-
|
|
37213
|
-
|
|
37214
|
-
|
|
37215
|
-
|
|
37216
|
-
|
|
37217
|
-
|
|
37218
|
-
if (
|
|
37219
|
-
|
|
37220
|
-
clipBox = inverted ? {
|
|
37221
|
-
y: -chart.chartWidth + yAxis.len + yAxis.pos,
|
|
37222
|
-
height: chart.chartWidth,
|
|
37223
|
-
width: chart.chartHeight,
|
|
37224
|
-
x: -chart.chartHeight + xAxis.len + xAxis.pos
|
|
37225
|
-
} : {
|
|
37226
|
-
y: -yAxis.pos,
|
|
37227
|
-
height: chart.chartHeight,
|
|
37228
|
-
width: chart.chartWidth,
|
|
37229
|
-
x: -xAxis.pos
|
|
37230
|
-
};
|
|
37231
|
-
// x and width will be changed later when setting for animation
|
|
37232
|
-
// initial state in Series.setClip
|
|
37156
|
+
Series.prototype.getClipBox = function () {
|
|
37157
|
+
var _a = this,
|
|
37158
|
+
chart = _a.chart,
|
|
37159
|
+
xAxis = _a.xAxis,
|
|
37160
|
+
yAxis = _a.yAxis;
|
|
37161
|
+
// If no axes on the series, use global clipBox
|
|
37162
|
+
var seriesBox = merge(chart.clipBox);
|
|
37163
|
+
// Otherwise, use clipBox.width which is corrected for plotBorderWidth
|
|
37164
|
+
// and clipOffset
|
|
37165
|
+
if (xAxis && xAxis.len !== chart.plotSizeX) {
|
|
37166
|
+
seriesBox.width = xAxis.len;
|
|
37233
37167
|
}
|
|
37234
|
-
|
|
37235
|
-
|
|
37236
|
-
if (finalBox) {
|
|
37237
|
-
clipBox.width = chart.plotSizeX;
|
|
37238
|
-
clipBox.x = (chart.scrollablePixelsX || 0) *
|
|
37239
|
-
(scrollablePlotAreaOptions.scrollPositionX || 0);
|
|
37240
|
-
}
|
|
37168
|
+
if (yAxis && yAxis.len !== chart.plotSizeY) {
|
|
37169
|
+
seriesBox.height = yAxis.len;
|
|
37241
37170
|
}
|
|
37242
|
-
return
|
|
37243
|
-
width: clipBox.width,
|
|
37244
|
-
x: clipBox.x
|
|
37245
|
-
};
|
|
37171
|
+
return seriesBox;
|
|
37246
37172
|
};
|
|
37247
37173
|
/**
|
|
37248
37174
|
* Get the shared clip key, creating it if it doesn't exist.
|
|
@@ -37250,99 +37176,52 @@
|
|
|
37250
37176
|
* @private
|
|
37251
37177
|
* @function Highcharts.Series#getSharedClipKey
|
|
37252
37178
|
*/
|
|
37253
|
-
Series.prototype.getSharedClipKey = function (
|
|
37254
|
-
|
|
37255
|
-
|
|
37256
|
-
|
|
37257
|
-
var sharedClipKey = [
|
|
37258
|
-
animation && animation.duration,
|
|
37259
|
-
animation && animation.easing,
|
|
37260
|
-
animation && animation.defer,
|
|
37261
|
-
this.getClipBox(animation).height,
|
|
37262
|
-
this.options.xAxis,
|
|
37263
|
-
this.options.yAxis
|
|
37264
|
-
].join(',');
|
|
37265
|
-
if (this.options.clip !== false || animation) {
|
|
37266
|
-
this.sharedClipKey = sharedClipKey;
|
|
37267
|
-
}
|
|
37268
|
-
return sharedClipKey;
|
|
37179
|
+
Series.prototype.getSharedClipKey = function () {
|
|
37180
|
+
this.sharedClipKey = (this.options.xAxis || 0) + ',' +
|
|
37181
|
+
(this.options.yAxis || 0);
|
|
37182
|
+
return this.sharedClipKey;
|
|
37269
37183
|
};
|
|
37270
37184
|
/**
|
|
37271
|
-
* Set the clipping for the series. For animated series
|
|
37272
|
-
*
|
|
37273
|
-
* without the animation to set the final clip.
|
|
37185
|
+
* Set the clipping for the series. For animated series the clip is later
|
|
37186
|
+
* modified.
|
|
37274
37187
|
*
|
|
37275
37188
|
* @private
|
|
37276
37189
|
* @function Highcharts.Series#setClip
|
|
37277
37190
|
*/
|
|
37278
|
-
Series.prototype.setClip = function (
|
|
37279
|
-
var
|
|
37280
|
-
|
|
37191
|
+
Series.prototype.setClip = function () {
|
|
37192
|
+
var _a = this,
|
|
37193
|
+
chart = _a.chart,
|
|
37194
|
+
group = _a.group,
|
|
37195
|
+
markerGroup = _a.markerGroup,
|
|
37196
|
+
sharedClips = chart.sharedClips,
|
|
37281
37197
|
renderer = chart.renderer,
|
|
37282
|
-
|
|
37283
|
-
|
|
37284
|
-
|
|
37285
|
-
|
|
37286
|
-
|
|
37287
|
-
markerClipRect = chart.sharedClips[sharedClipKey + 'm'];
|
|
37288
|
-
if (animation) {
|
|
37289
|
-
clipBox.width = 0;
|
|
37290
|
-
if (inverted) {
|
|
37291
|
-
clipBox.x = chart.plotHeight +
|
|
37292
|
-
(options.clip !== false ? 0 : chart.plotTop);
|
|
37293
|
-
}
|
|
37294
|
-
}
|
|
37295
|
-
// If a clipping rectangle with the same properties is currently
|
|
37296
|
-
// present in the chart, use that.
|
|
37198
|
+
clipBox = this.getClipBox(),
|
|
37199
|
+
sharedClipKey = this.getSharedClipKey(); // #4526
|
|
37200
|
+
var clipRect = sharedClips[sharedClipKey];
|
|
37201
|
+
// If a clipping rectangle for the same set of axes does not exist,
|
|
37202
|
+
// create it
|
|
37297
37203
|
if (!clipRect) {
|
|
37298
|
-
|
|
37299
|
-
|
|
37300
|
-
|
|
37301
|
-
renderer.clipRect(
|
|
37302
|
-
// include the width of the first marker
|
|
37303
|
-
inverted ? (chart.plotSizeX || 0) + 99 : -99, inverted ? -chart.plotLeft : -chart.plotTop, 99, inverted ? chart.chartWidth : chart.chartHeight);
|
|
37304
|
-
}
|
|
37305
|
-
chart.sharedClips[sharedClipKey] = clipRect = renderer.clipRect(clipBox);
|
|
37306
|
-
// Create hashmap for series indexes
|
|
37307
|
-
clipRect.count = { length: 0 };
|
|
37308
|
-
// When the series is rendered again before starting animating, in
|
|
37309
|
-
// compliance to a responsive rule
|
|
37204
|
+
sharedClips[sharedClipKey] = clipRect = renderer.clipRect(clipBox);
|
|
37205
|
+
// When setting chart size, or when the series is rendered again before
|
|
37206
|
+
// starting animating, in compliance to a responsive rule
|
|
37310
37207
|
}
|
|
37311
|
-
else
|
|
37312
|
-
clipRect.
|
|
37208
|
+
else {
|
|
37209
|
+
clipRect.animate(clipBox);
|
|
37313
37210
|
}
|
|
37314
|
-
if (
|
|
37315
|
-
|
|
37316
|
-
|
|
37317
|
-
clipRect.count.length += 1;
|
|
37318
|
-
}
|
|
37211
|
+
if (group) {
|
|
37212
|
+
// When clip is false, reset to no clip after animation
|
|
37213
|
+
group.clip(this.options.clip === false ? void 0 : clipRect);
|
|
37319
37214
|
}
|
|
37320
|
-
|
|
37321
|
-
|
|
37322
|
-
|
|
37323
|
-
}
|
|
37324
|
-
// Remove the shared clipping rectangle when all series are shown
|
|
37325
|
-
if (!animation) {
|
|
37326
|
-
if (clipRect.count[this.index]) {
|
|
37327
|
-
delete clipRect.count[this.index];
|
|
37328
|
-
clipRect.count.length -= 1;
|
|
37329
|
-
}
|
|
37330
|
-
if (clipRect.count.length === 0) {
|
|
37331
|
-
if (!seriesClipBox) {
|
|
37332
|
-
chart.sharedClips[sharedClipKey] = clipRect.destroy();
|
|
37333
|
-
}
|
|
37334
|
-
if (markerClipRect) {
|
|
37335
|
-
chart.sharedClips[sharedClipKey + 'm'] = markerClipRect.destroy();
|
|
37336
|
-
}
|
|
37337
|
-
}
|
|
37215
|
+
// Unclip temporary animation clip
|
|
37216
|
+
if (markerGroup) {
|
|
37217
|
+
markerGroup.clip();
|
|
37338
37218
|
}
|
|
37339
37219
|
};
|
|
37340
37220
|
/**
|
|
37341
37221
|
* Animate in the series. Called internally twice. First with the `init`
|
|
37342
37222
|
* parameter set to true, which sets up the initial state of the
|
|
37343
37223
|
* animation. Then when ready, it is called with the `init` parameter
|
|
37344
|
-
* undefined, in order to perform the actual animation.
|
|
37345
|
-
* second run, the function is removed.
|
|
37224
|
+
* undefined, in order to perform the actual animation.
|
|
37346
37225
|
*
|
|
37347
37226
|
* @function Highcharts.Series#animate
|
|
37348
37227
|
*
|
|
@@ -37350,29 +37229,70 @@
|
|
|
37350
37229
|
* Initialize the animation.
|
|
37351
37230
|
*/
|
|
37352
37231
|
Series.prototype.animate = function (init) {
|
|
37353
|
-
var
|
|
37354
|
-
|
|
37355
|
-
|
|
37356
|
-
|
|
37232
|
+
var _a = this, chart = _a.chart, group = _a.group, markerGroup = _a.markerGroup, inverted = chart.inverted, animation = animObject(this.options.animation),
|
|
37233
|
+
// The key for temporary animation clips
|
|
37234
|
+
animationClipKey = [
|
|
37235
|
+
this.getSharedClipKey(),
|
|
37236
|
+
animation.duration,
|
|
37237
|
+
animation.easing,
|
|
37238
|
+
animation.defer
|
|
37239
|
+
].join(',');
|
|
37240
|
+
var animationClipRect = chart.sharedClips[animationClipKey],
|
|
37241
|
+
markerAnimationClipRect = chart.sharedClips[animationClipKey + 'm'];
|
|
37357
37242
|
// Initialize the animation. Set up the clipping rectangle.
|
|
37358
|
-
if (init) {
|
|
37359
|
-
|
|
37243
|
+
if (init && group) {
|
|
37244
|
+
var clipBox = this.getClipBox();
|
|
37245
|
+
// Create temporary animation clips
|
|
37246
|
+
if (!animationClipRect) {
|
|
37247
|
+
clipBox.width = 0;
|
|
37248
|
+
if (inverted) {
|
|
37249
|
+
clipBox.x = chart.plotHeight;
|
|
37250
|
+
}
|
|
37251
|
+
animationClipRect = chart.renderer.clipRect(clipBox);
|
|
37252
|
+
chart.sharedClips[animationClipKey] = animationClipRect;
|
|
37253
|
+
var markerClipBox = {
|
|
37254
|
+
// Include the width of the first marker
|
|
37255
|
+
x: inverted ? (chart.plotSizeX || 0) + 99 : -99,
|
|
37256
|
+
y: inverted ? -chart.plotLeft : -chart.plotTop,
|
|
37257
|
+
width: 99,
|
|
37258
|
+
height: inverted ? chart.chartWidth : chart.chartHeight
|
|
37259
|
+
};
|
|
37260
|
+
markerAnimationClipRect = chart.renderer.clipRect(markerClipBox);
|
|
37261
|
+
chart.sharedClips[animationClipKey + 'm'] = markerAnimationClipRect;
|
|
37262
|
+
}
|
|
37263
|
+
else {
|
|
37264
|
+
// When height changes during animation, typically due to
|
|
37265
|
+
// responsive settings
|
|
37266
|
+
animationClipRect.attr('height', clipBox.height);
|
|
37267
|
+
}
|
|
37268
|
+
group.clip(animationClipRect);
|
|
37269
|
+
if (markerGroup) {
|
|
37270
|
+
markerGroup.clip(markerAnimationClipRect);
|
|
37271
|
+
}
|
|
37360
37272
|
// Run the animation
|
|
37361
37273
|
}
|
|
37362
|
-
else if (
|
|
37363
|
-
|
|
37364
|
-
|
|
37365
|
-
var finalBox =
|
|
37366
|
-
|
|
37367
|
-
|
|
37368
|
-
|
|
37369
|
-
|
|
37370
|
-
|
|
37371
|
-
|
|
37372
|
-
|
|
37373
|
-
|
|
37374
|
-
|
|
37274
|
+
else if (animationClipRect &&
|
|
37275
|
+
// Only first series in this pane
|
|
37276
|
+
!animationClipRect.hasClass('highcharts-animating')) {
|
|
37277
|
+
var finalBox = this.getClipBox(),
|
|
37278
|
+
step_1 = animation.step;
|
|
37279
|
+
// Only do this when there are actually markers
|
|
37280
|
+
if (markerGroup && markerGroup.element.childNodes.length) {
|
|
37281
|
+
// To provide as smooth animation as possible, update the marker
|
|
37282
|
+
// group clipping in steps of the main group animation
|
|
37283
|
+
animation.step = function (val, fx) {
|
|
37284
|
+
if (step_1) {
|
|
37285
|
+
step_1.apply(fx, arguments);
|
|
37286
|
+
}
|
|
37287
|
+
if (markerAnimationClipRect &&
|
|
37288
|
+
markerAnimationClipRect.element) {
|
|
37289
|
+
markerAnimationClipRect.attr(fx.prop, fx.prop === 'width' ? val + 99 : val);
|
|
37290
|
+
}
|
|
37291
|
+
};
|
|
37375
37292
|
}
|
|
37293
|
+
animationClipRect
|
|
37294
|
+
.addClass('highcharts-animating')
|
|
37295
|
+
.animate(finalBox, animation);
|
|
37376
37296
|
}
|
|
37377
37297
|
};
|
|
37378
37298
|
/**
|
|
@@ -37381,12 +37301,20 @@
|
|
|
37381
37301
|
* @private
|
|
37382
37302
|
* @function Highcharts.Series#afterAnimate
|
|
37383
37303
|
*
|
|
37384
|
-
* @
|
|
37304
|
+
* @emits Highcharts.Series#event:afterAnimate
|
|
37385
37305
|
*/
|
|
37386
37306
|
Series.prototype.afterAnimate = function () {
|
|
37307
|
+
var _this = this;
|
|
37387
37308
|
this.setClip();
|
|
37388
|
-
|
|
37309
|
+
// Destroy temporary clip rectangles that are no longer in use
|
|
37310
|
+
objectEach(this.chart.sharedClips, function (clip, key, sharedClips) {
|
|
37311
|
+
if (clip && !_this.chart.container.querySelector("[clip-path=\"url(#" + clip.id + ")\"]")) {
|
|
37312
|
+
clip.destroy();
|
|
37313
|
+
delete sharedClips[key];
|
|
37314
|
+
}
|
|
37315
|
+
});
|
|
37389
37316
|
this.finishedAnimating = true;
|
|
37317
|
+
fireEvent(this, 'afterAnimate');
|
|
37390
37318
|
};
|
|
37391
37319
|
/**
|
|
37392
37320
|
* Draw the markers for line-like series types, and columns or other
|
|
@@ -37594,7 +37522,7 @@
|
|
|
37594
37522
|
// Handle hover and select states
|
|
37595
37523
|
state = state || 'normal';
|
|
37596
37524
|
if (state) {
|
|
37597
|
-
seriesStateOptions = seriesMarkerOptions.states[state];
|
|
37525
|
+
seriesStateOptions = (seriesMarkerOptions.states[state] || {});
|
|
37598
37526
|
pointStateOptions = (pointMarkerOptions.states &&
|
|
37599
37527
|
pointMarkerOptions.states[state]) || {};
|
|
37600
37528
|
strokeWidth = pick(pointStateOptions.lineWidth, seriesStateOptions.lineWidth, strokeWidth + pick(pointStateOptions.lineWidthPlus, seriesStateOptions.lineWidthPlus, 0));
|
|
@@ -37619,7 +37547,7 @@
|
|
|
37619
37547
|
* @private
|
|
37620
37548
|
* @function Highcharts.Series#destroy
|
|
37621
37549
|
*
|
|
37622
|
-
* @
|
|
37550
|
+
* @emits Highcharts.Series#event:destroy
|
|
37623
37551
|
*/
|
|
37624
37552
|
Series.prototype.destroy = function (keepEventsForUpdate) {
|
|
37625
37553
|
var series = this,
|
|
@@ -37914,8 +37842,6 @@
|
|
|
37914
37842
|
* Get the translation and scale for the plot area of this series.
|
|
37915
37843
|
*
|
|
37916
37844
|
* @function Highcharts.Series#getPlotBox
|
|
37917
|
-
*
|
|
37918
|
-
* @return {Highcharts.SeriesPlotBoxObject}
|
|
37919
37845
|
*/
|
|
37920
37846
|
Series.prototype.getPlotBox = function () {
|
|
37921
37847
|
var chart = this.chart;
|
|
@@ -37960,7 +37886,7 @@
|
|
|
37960
37886
|
*
|
|
37961
37887
|
* @function Highcharts.Series#render
|
|
37962
37888
|
*
|
|
37963
|
-
* @
|
|
37889
|
+
* @emits Highcharts.Series#event:afterRender
|
|
37964
37890
|
*/
|
|
37965
37891
|
Series.prototype.render = function () {
|
|
37966
37892
|
var series = this,
|
|
@@ -37975,15 +37901,18 @@
|
|
|
37975
37901
|
inverted = chart.inverted;
|
|
37976
37902
|
// Animation doesn't work in IE8 quirks when the group div is
|
|
37977
37903
|
// hidden, and looks bad in other oldIE
|
|
37978
|
-
var animDuration = (!series.finishedAnimating &&
|
|
37979
|
-
|
|
37980
|
-
animOptions.duration);
|
|
37904
|
+
var animDuration = (!series.finishedAnimating && chart.renderer.isSVG) ?
|
|
37905
|
+
animOptions.duration : 0;
|
|
37981
37906
|
fireEvent(this, 'render');
|
|
37982
37907
|
// the group
|
|
37983
37908
|
var group = series.plotGroup('group', 'series', visibility, zIndex, chartSeriesGroup);
|
|
37984
37909
|
series.markerGroup = series.plotGroup('markerGroup', 'markers', visibility, zIndex, chartSeriesGroup);
|
|
37985
|
-
//
|
|
37986
|
-
if (
|
|
37910
|
+
// Initial clipping, applies to columns etc. (#3839).
|
|
37911
|
+
if (options.clip !== false) {
|
|
37912
|
+
series.setClip();
|
|
37913
|
+
}
|
|
37914
|
+
// Initialize the animation
|
|
37915
|
+
if (series.animate && animDuration) {
|
|
37987
37916
|
series.animate(true);
|
|
37988
37917
|
}
|
|
37989
37918
|
// SVGRenderer needs to know this before drawing elements (#1089,
|
|
@@ -37999,11 +37928,6 @@
|
|
|
37999
37928
|
if (series.visible) {
|
|
38000
37929
|
series.drawPoints();
|
|
38001
37930
|
}
|
|
38002
|
-
/* series.points.forEach(function (point) {
|
|
38003
|
-
if (point.redraw) {
|
|
38004
|
-
point.redraw();
|
|
38005
|
-
}
|
|
38006
|
-
}); */
|
|
38007
37931
|
// Draw the data labels
|
|
38008
37932
|
if (series.drawDataLabels) {
|
|
38009
37933
|
series.drawDataLabels();
|
|
@@ -38020,15 +37944,8 @@
|
|
|
38020
37944
|
}
|
|
38021
37945
|
// Handle inverted series and tracker groups
|
|
38022
37946
|
series.invertGroups(inverted);
|
|
38023
|
-
// Initial clipping, must be defined after inverting groups for VML.
|
|
38024
|
-
// Applies to columns etc. (#3839).
|
|
38025
|
-
if (options.clip !== false &&
|
|
38026
|
-
!series.sharedClipKey &&
|
|
38027
|
-
!hasRendered) {
|
|
38028
|
-
group.clip(chart.clipRect);
|
|
38029
|
-
}
|
|
38030
37947
|
// Run the animation
|
|
38031
|
-
if (
|
|
37948
|
+
if (series.animate && animDuration) {
|
|
38032
37949
|
series.animate();
|
|
38033
37950
|
}
|
|
38034
37951
|
// Call the afterAnimate function on animation complete (but don't
|
|
@@ -38267,12 +38184,16 @@
|
|
|
38267
38184
|
* @function Highcharts.Series#isPointInside
|
|
38268
38185
|
*/
|
|
38269
38186
|
Series.prototype.isPointInside = function (point) {
|
|
38270
|
-
var
|
|
38187
|
+
var _a = this,
|
|
38188
|
+
chart = _a.chart,
|
|
38189
|
+
xAxis = _a.xAxis,
|
|
38190
|
+
yAxis = _a.yAxis,
|
|
38191
|
+
isInside = (typeof point.plotY !== 'undefined' &&
|
|
38271
38192
|
typeof point.plotX !== 'undefined' &&
|
|
38272
38193
|
point.plotY >= 0 &&
|
|
38273
|
-
point.plotY <=
|
|
38194
|
+
point.plotY <= (yAxis ? yAxis.len : chart.plotHeight) &&
|
|
38274
38195
|
point.plotX >= 0 &&
|
|
38275
|
-
point.plotX <=
|
|
38196
|
+
point.plotX <= (xAxis ? xAxis.len : chart.plotWidth));
|
|
38276
38197
|
return isInside;
|
|
38277
38198
|
};
|
|
38278
38199
|
/**
|
|
@@ -38411,7 +38332,7 @@
|
|
|
38411
38332
|
* @param {boolean} [withEvent=true]
|
|
38412
38333
|
* Used internally, whether to fire the series `addPoint` event.
|
|
38413
38334
|
*
|
|
38414
|
-
* @
|
|
38335
|
+
* @emits Highcharts.Series#event:addPoint
|
|
38415
38336
|
*/
|
|
38416
38337
|
Series.prototype.addPoint = function (options, redraw, shift, animation, withEvent) {
|
|
38417
38338
|
var series = this,
|
|
@@ -38503,7 +38424,7 @@
|
|
|
38503
38424
|
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
|
|
38504
38425
|
* Whether and optionally how the series should be animated.
|
|
38505
38426
|
*
|
|
38506
|
-
* @
|
|
38427
|
+
* @emits Highcharts.Point#event:remove
|
|
38507
38428
|
*/
|
|
38508
38429
|
Series.prototype.removePoint = function (i, redraw, animation) {
|
|
38509
38430
|
var series = this,
|
|
@@ -38557,7 +38478,7 @@
|
|
|
38557
38478
|
* @param {boolean} [withEvent=true]
|
|
38558
38479
|
* Used internally, whether to fire the series `remove` event.
|
|
38559
38480
|
*
|
|
38560
|
-
* @
|
|
38481
|
+
* @emits Highcharts.Series#event:remove
|
|
38561
38482
|
*/
|
|
38562
38483
|
Series.prototype.remove = function (redraw, animation, withEvent, keepEvents) {
|
|
38563
38484
|
var series = this,
|
|
@@ -38607,8 +38528,8 @@
|
|
|
38607
38528
|
* more operations on the chart, it is a good idea to set redraw to
|
|
38608
38529
|
* false and call {@link Chart#redraw} after.
|
|
38609
38530
|
*
|
|
38610
|
-
* @
|
|
38611
|
-
* @
|
|
38531
|
+
* @emits Highcharts.Series#event:update
|
|
38532
|
+
* @emits Highcharts.Series#event:afterUpdate
|
|
38612
38533
|
*/
|
|
38613
38534
|
Series.prototype.update = function (options, redraw) {
|
|
38614
38535
|
options = cleanRecursively(options, this.userOptions);
|
|
@@ -38690,7 +38611,9 @@
|
|
|
38690
38611
|
series.index : oldOptions.index,
|
|
38691
38612
|
pointStart: pick(
|
|
38692
38613
|
// when updating from blank (#7933)
|
|
38693
|
-
plotOptions &&
|
|
38614
|
+
(plotOptions &&
|
|
38615
|
+
plotOptions.series &&
|
|
38616
|
+
plotOptions.series.pointStart), oldOptions.pointStart,
|
|
38694
38617
|
// when updating after addPoint
|
|
38695
38618
|
series.xData[0])
|
|
38696
38619
|
}, (!keepPoints && { data: series.options.data }), options);
|
|
@@ -38720,8 +38643,7 @@
|
|
|
38720
38643
|
// Legacy (IE < 11)
|
|
38721
38644
|
}
|
|
38722
38645
|
else {
|
|
38723
|
-
var ownEvents = Object.hasOwnProperty.call(series, 'hcEvents') &&
|
|
38724
|
-
series.hcEvents;
|
|
38646
|
+
var ownEvents = Object.hasOwnProperty.call(series, 'hcEvents') && series.hcEvents;
|
|
38725
38647
|
for (n in initialSeriesProto) { // eslint-disable-line guard-for-in
|
|
38726
38648
|
series[n] = void 0;
|
|
38727
38649
|
}
|
|
@@ -38819,13 +38741,17 @@
|
|
|
38819
38741
|
return option !== oldOption;
|
|
38820
38742
|
}
|
|
38821
38743
|
return option !==
|
|
38822
|
-
pick(plotOptions &&
|
|
38744
|
+
pick(plotOptions &&
|
|
38745
|
+
plotOptions[this.type] &&
|
|
38746
|
+
plotOptions[this.type][optionName], plotOptions &&
|
|
38747
|
+
plotOptions.series &&
|
|
38748
|
+
plotOptions.series[optionName], option);
|
|
38823
38749
|
};
|
|
38824
38750
|
/**
|
|
38825
38751
|
* Runs on mouse over the series graphical items.
|
|
38826
38752
|
*
|
|
38827
38753
|
* @function Highcharts.Series#onMouseOver
|
|
38828
|
-
* @
|
|
38754
|
+
* @emits Highcharts.Series#event:mouseOver
|
|
38829
38755
|
*/
|
|
38830
38756
|
Series.prototype.onMouseOver = function () {
|
|
38831
38757
|
var series = this,
|
|
@@ -38857,7 +38783,7 @@
|
|
|
38857
38783
|
*
|
|
38858
38784
|
* @function Highcharts.Series#onMouseOut
|
|
38859
38785
|
*
|
|
38860
|
-
* @
|
|
38786
|
+
* @emits Highcharts.Series#event:mouseOut
|
|
38861
38787
|
*/
|
|
38862
38788
|
Series.prototype.onMouseOut = function () {
|
|
38863
38789
|
// trigger the event only if listeners exist
|
|
@@ -39012,8 +38938,8 @@
|
|
|
39012
38938
|
* operations on the chart, it is a good idea to set redraw to false and
|
|
39013
38939
|
* call {@link Chart#redraw|chart.redraw()} after.
|
|
39014
38940
|
*
|
|
39015
|
-
* @
|
|
39016
|
-
* @
|
|
38941
|
+
* @emits Highcharts.Series#event:hide
|
|
38942
|
+
* @emits Highcharts.Series#event:show
|
|
39017
38943
|
*/
|
|
39018
38944
|
Series.prototype.setVisible = function (vis, redraw) {
|
|
39019
38945
|
var series = this,
|
|
@@ -39077,7 +39003,7 @@
|
|
|
39077
39003
|
* Toggle visibility from a button
|
|
39078
39004
|
*
|
|
39079
39005
|
* @function Highcharts.Series#show
|
|
39080
|
-
* @
|
|
39006
|
+
* @emits Highcharts.Series#event:show
|
|
39081
39007
|
*/
|
|
39082
39008
|
Series.prototype.show = function () {
|
|
39083
39009
|
this.setVisible(true);
|
|
@@ -39091,7 +39017,7 @@
|
|
|
39091
39017
|
* Toggle visibility from a button
|
|
39092
39018
|
*
|
|
39093
39019
|
* @function Highcharts.Series#hide
|
|
39094
|
-
* @
|
|
39020
|
+
* @emits Highcharts.Series#event:hide
|
|
39095
39021
|
*/
|
|
39096
39022
|
Series.prototype.hide = function () {
|
|
39097
39023
|
this.setVisible(false);
|
|
@@ -39112,8 +39038,8 @@
|
|
|
39112
39038
|
* True to select the series, false to unselect. If undefined, the selection
|
|
39113
39039
|
* state is toggled.
|
|
39114
39040
|
*
|
|
39115
|
-
* @
|
|
39116
|
-
* @
|
|
39041
|
+
* @emits Highcharts.Series#event:select
|
|
39042
|
+
* @emits Highcharts.Series#event:unselect
|
|
39117
39043
|
*/
|
|
39118
39044
|
Series.prototype.select = function (selected) {
|
|
39119
39045
|
var series = this;
|
|
@@ -39131,10 +39057,6 @@
|
|
|
39131
39057
|
* Checks if a tooltip should be shown for a given point.
|
|
39132
39058
|
*
|
|
39133
39059
|
* @private
|
|
39134
|
-
* @param {number} plotX
|
|
39135
|
-
* @param {number} plotY
|
|
39136
|
-
* @param {Highcharts.ChartIsInsideOptionsObject} [options]
|
|
39137
|
-
* @return {boolean}
|
|
39138
39060
|
*/
|
|
39139
39061
|
Series.prototype.shouldShowTooltip = function (plotX, plotY, options) {
|
|
39140
39062
|
if (options === void 0) { options = {}; }
|
|
@@ -39571,7 +39493,7 @@
|
|
|
39571
39493
|
if (scrollableMinWidth) {
|
|
39572
39494
|
this.scrollablePixelsX = scrollablePixelsX = Math.max(0, scrollableMinWidth - this.chartWidth);
|
|
39573
39495
|
if (scrollablePixelsX) {
|
|
39574
|
-
this.scrollablePlotBox = this.renderer.scrollablePlotBox = merge(this.plotBox);
|
|
39496
|
+
this.scrollablePlotBox = (this.renderer.scrollablePlotBox = merge(this.plotBox));
|
|
39575
39497
|
this.plotBox.width = this.plotWidth += scrollablePixelsX;
|
|
39576
39498
|
if (this.inverted) {
|
|
39577
39499
|
this.clipBox.height += scrollablePixelsX;
|
|
@@ -39589,7 +39511,7 @@
|
|
|
39589
39511
|
else if (scrollableMinHeight) {
|
|
39590
39512
|
this.scrollablePixelsY = scrollablePixelsY = Math.max(0, scrollableMinHeight - this.chartHeight);
|
|
39591
39513
|
if (scrollablePixelsY) {
|
|
39592
|
-
this.scrollablePlotBox = this.renderer.scrollablePlotBox = merge(this.plotBox);
|
|
39514
|
+
this.scrollablePlotBox = (this.renderer.scrollablePlotBox = merge(this.plotBox));
|
|
39593
39515
|
this.plotBox.height = this.plotHeight += scrollablePixelsY;
|
|
39594
39516
|
if (this.inverted) {
|
|
39595
39517
|
this.clipBox.width += scrollablePixelsY;
|
|
@@ -40133,7 +40055,8 @@
|
|
|
40133
40055
|
chart = axis.chart,
|
|
40134
40056
|
renderer = chart.renderer,
|
|
40135
40057
|
stacks = stacking.stacks,
|
|
40136
|
-
stackLabelsAnim = axis.options.stackLabels &&
|
|
40058
|
+
stackLabelsAnim = axis.options.stackLabels &&
|
|
40059
|
+
axis.options.stackLabels.animation,
|
|
40137
40060
|
animationConfig = getDeferredAnimation(chart,
|
|
40138
40061
|
stackLabelsAnim || false),
|
|
40139
40062
|
stackTotalGroup = stacking.stackTotalGroup = (stacking.stackTotalGroup ||
|
|
@@ -40280,6 +40203,7 @@
|
|
|
40280
40203
|
r: options.borderRadius || 0,
|
|
40281
40204
|
text: str,
|
|
40282
40205
|
rotation: options.rotation,
|
|
40206
|
+
// set default padding to 5 as it is in datalabels #12308
|
|
40283
40207
|
padding: pick(options.padding, 5),
|
|
40284
40208
|
visibility: 'hidden' // hidden until setOffset is called
|
|
40285
40209
|
};
|
|
@@ -40355,7 +40279,8 @@
|
|
|
40355
40279
|
}
|
|
40356
40280
|
else {
|
|
40357
40281
|
boxOffsetX = chart.inverted ?
|
|
40358
|
-
(isNegative ? bBox.width + padding : -padding) :
|
|
40282
|
+
(isNegative ? bBox.width + padding : -padding) :
|
|
40283
|
+
bBox.width / 2;
|
|
40359
40284
|
}
|
|
40360
40285
|
}
|
|
40361
40286
|
boxOffsetY = chart.inverted ?
|
|
@@ -40400,22 +40325,6 @@
|
|
|
40400
40325
|
/**
|
|
40401
40326
|
* @private
|
|
40402
40327
|
* @function Highcharts.StackItem#getStackBox
|
|
40403
|
-
*
|
|
40404
|
-
* @param {Highcharts.Chart} chart
|
|
40405
|
-
*
|
|
40406
|
-
* @param {Highcharts.StackItem} stackItem
|
|
40407
|
-
*
|
|
40408
|
-
* @param {number} x
|
|
40409
|
-
*
|
|
40410
|
-
* @param {number} y
|
|
40411
|
-
*
|
|
40412
|
-
* @param {number} xWidth
|
|
40413
|
-
*
|
|
40414
|
-
* @param {number} h
|
|
40415
|
-
*
|
|
40416
|
-
* @param {Highcharts.Axis} axis
|
|
40417
|
-
*
|
|
40418
|
-
* @return {Highcharts.BBoxObject}
|
|
40419
40328
|
*/
|
|
40420
40329
|
StackItem.prototype.getStackBox = function (chart, stackItem, x, y, xWidth, h, axis) {
|
|
40421
40330
|
var reversed = stackItem.axis.reversed,
|
|
@@ -40425,7 +40334,8 @@
|
|
|
40425
40334
|
neg = (stackItem.isNegative && !reversed) ||
|
|
40426
40335
|
(!stackItem.isNegative && reversed); // #4056
|
|
40427
40336
|
return {
|
|
40428
|
-
x: inverted ?
|
|
40337
|
+
x: inverted ?
|
|
40338
|
+
(neg ? y - axis.right : y - h + axis.pos - chart.plotLeft) :
|
|
40429
40339
|
x + chart.xAxis[0].transB - chart.plotLeft,
|
|
40430
40340
|
y: inverted ?
|
|
40431
40341
|
axis.height - x - xWidth :
|
|
@@ -40669,11 +40579,6 @@
|
|
|
40669
40579
|
*
|
|
40670
40580
|
* @private
|
|
40671
40581
|
* @function Highcharts.Series#getStackIndicator
|
|
40672
|
-
* @param {Highcharts.StackItemIndicatorObject|undefined} stackIndicator
|
|
40673
|
-
* @param {number} x
|
|
40674
|
-
* @param {number} index
|
|
40675
|
-
* @param {string} [key]
|
|
40676
|
-
* @return {Highcharts.StackItemIndicatorObject}
|
|
40677
40582
|
*/
|
|
40678
40583
|
Series.prototype.getStackIndicator = function (stackIndicator, x, index, key) {
|
|
40679
40584
|
// Update stack indicator, when:
|
|
@@ -40744,7 +40649,7 @@
|
|
|
40744
40649
|
|
|
40745
40650
|
return H.StackItem;
|
|
40746
40651
|
});
|
|
40747
|
-
_registerModule(_modules, 'Series/Line/LineSeries.js', [_modules['Core/
|
|
40652
|
+
_registerModule(_modules, 'Series/Line/LineSeries.js', [_modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (Series, SeriesRegistry, U) {
|
|
40748
40653
|
/* *
|
|
40749
40654
|
*
|
|
40750
40655
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -40829,7 +40734,7 @@
|
|
|
40829
40734
|
if (!styledMode) {
|
|
40830
40735
|
props[0].push((options.lineColor ||
|
|
40831
40736
|
this.color ||
|
|
40832
|
-
|
|
40737
|
+
"#cccccc" /* neutralColor20 */ // when colorByPoint = true
|
|
40833
40738
|
), options.dashStyle);
|
|
40834
40739
|
}
|
|
40835
40740
|
props = series.getZonesGraphs(props);
|
|
@@ -41487,7 +41392,9 @@
|
|
|
41487
41392
|
}
|
|
41488
41393
|
isNull = points[i].isNull;
|
|
41489
41394
|
plotX = pick(points[i].rectPlotX, points[i].plotX);
|
|
41490
|
-
yBottom = stacking ?
|
|
41395
|
+
yBottom = stacking ?
|
|
41396
|
+
pick(points[i].yBottom, translatedThreshold) :
|
|
41397
|
+
translatedThreshold;
|
|
41491
41398
|
if (!isNull || connectNulls) {
|
|
41492
41399
|
if (!connectNulls) {
|
|
41493
41400
|
addDummyPoints(i, i - 1, 'left');
|
|
@@ -41591,24 +41498,22 @@
|
|
|
41591
41498
|
var si = yAxisSeries[i].index;
|
|
41592
41499
|
stackPoint = otherStack.points[si];
|
|
41593
41500
|
if (!stackPoint) {
|
|
41594
|
-
// If the next point in this series
|
|
41595
|
-
//
|
|
41596
|
-
//
|
|
41597
|
-
// 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.
|
|
41598
41504
|
if (si === series.index) {
|
|
41599
41505
|
pointMap[x][nullName] = true;
|
|
41600
|
-
// If there are missing points in
|
|
41601
|
-
//
|
|
41602
|
-
//
|
|
41603
|
-
// to
|
|
41604
|
-
// 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
|
|
41605
41510
|
// right.
|
|
41606
41511
|
}
|
|
41607
41512
|
else if (visibleSeries_1[i]) {
|
|
41608
|
-
stackedValues =
|
|
41609
|
-
stack[x].points[si];
|
|
41513
|
+
stackedValues = stack[x].points[si];
|
|
41610
41514
|
if (stackedValues) {
|
|
41611
|
-
cliff -= stackedValues[1] -
|
|
41515
|
+
cliff -= (stackedValues[1] -
|
|
41516
|
+
stackedValues[0]);
|
|
41612
41517
|
}
|
|
41613
41518
|
}
|
|
41614
41519
|
}
|
|
@@ -41957,14 +41862,6 @@
|
|
|
41957
41862
|
*
|
|
41958
41863
|
* @private
|
|
41959
41864
|
* @function Highcharts.seriesTypes.spline#getPointSpline
|
|
41960
|
-
*
|
|
41961
|
-
* @param {Array<Highcharts.Point>}
|
|
41962
|
-
*
|
|
41963
|
-
* @param {Highcharts.Point} point
|
|
41964
|
-
*
|
|
41965
|
-
* @param {number} i
|
|
41966
|
-
*
|
|
41967
|
-
* @return {Highcharts.SVGPathArray}
|
|
41968
41865
|
*/
|
|
41969
41866
|
SplineSeries.prototype.getPointSpline = function (points, point, i) {
|
|
41970
41867
|
var
|
|
@@ -42401,7 +42298,7 @@
|
|
|
42401
42298
|
|
|
42402
42299
|
return AreaSplineSeries;
|
|
42403
42300
|
});
|
|
42404
|
-
_registerModule(_modules, 'Series/Column/ColumnSeries.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/
|
|
42301
|
+
_registerModule(_modules, 'Series/Column/ColumnSeries.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (A, Color, H, LegendSymbol, Series, SeriesRegistry, U) {
|
|
42405
42302
|
/* *
|
|
42406
42303
|
*
|
|
42407
42304
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -42499,7 +42396,9 @@
|
|
|
42499
42396
|
options = series.options,
|
|
42500
42397
|
inverted = this.chart.inverted,
|
|
42501
42398
|
attr = {},
|
|
42502
|
-
translateProp = inverted ?
|
|
42399
|
+
translateProp = inverted ?
|
|
42400
|
+
'translateX' :
|
|
42401
|
+
'translateY';
|
|
42503
42402
|
var translateStart,
|
|
42504
42403
|
translatedThreshold;
|
|
42505
42404
|
if (init) {
|
|
@@ -42560,7 +42459,6 @@
|
|
|
42560
42459
|
*
|
|
42561
42460
|
* @private
|
|
42562
42461
|
* @function Highcharts.seriesTypes.column#getColumnMetrics
|
|
42563
|
-
* @return {Highcharts.ColumnMetricsObject}
|
|
42564
42462
|
*/
|
|
42565
42463
|
ColumnSeries.prototype.getColumnMetrics = function () {
|
|
42566
42464
|
var series = this,
|
|
@@ -42591,7 +42489,8 @@
|
|
|
42591
42489
|
!series.chart.options.chart.ignoreHiddenSeries) &&
|
|
42592
42490
|
yAxis.len === otherYAxis.len &&
|
|
42593
42491
|
yAxis.pos === otherYAxis.pos) { // #642, #2086
|
|
42594
|
-
if (otherOptions.stacking &&
|
|
42492
|
+
if (otherOptions.stacking &&
|
|
42493
|
+
otherOptions.stacking !== 'group') {
|
|
42595
42494
|
stackKey = otherSeries.stackKey;
|
|
42596
42495
|
if (typeof stackGroups[stackKey] ===
|
|
42597
42496
|
'undefined') {
|
|
@@ -42703,21 +42602,21 @@
|
|
|
42703
42602
|
if (!point.isNull && metrics.columnCount > 1) {
|
|
42704
42603
|
var indexInCategory_1 = 0;
|
|
42705
42604
|
var totalInCategory_1 = 0;
|
|
42706
|
-
// Loop over all the stacks on the Y axis. When stacking is
|
|
42707
|
-
//
|
|
42708
|
-
//
|
|
42709
|
-
//
|
|
42710
|
-
//
|
|
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.
|
|
42711
42610
|
objectEach(this.yAxis.stacking && this.yAxis.stacking.stacks, function (stack) {
|
|
42712
42611
|
if (typeof point.x === 'number') {
|
|
42713
42612
|
var stackItem = stack[point.x.toString()];
|
|
42714
42613
|
if (stackItem) {
|
|
42715
42614
|
var pointValues = stackItem.points[_this.index],
|
|
42716
42615
|
total = stackItem.total;
|
|
42717
|
-
// If true `stacking` is enabled, count the
|
|
42718
|
-
//
|
|
42719
|
-
//
|
|
42720
|
-
//
|
|
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.
|
|
42721
42620
|
if (stacking) {
|
|
42722
42621
|
if (pointValues) {
|
|
42723
42622
|
indexInCategory_1 = totalInCategory_1;
|
|
@@ -42725,8 +42624,8 @@
|
|
|
42725
42624
|
if (stackItem.hasValidPoints) {
|
|
42726
42625
|
totalInCategory_1++;
|
|
42727
42626
|
}
|
|
42728
|
-
// If `stacking` is not enabled, look for the
|
|
42729
|
-
//
|
|
42627
|
+
// If `stacking` is not enabled, look for the index
|
|
42628
|
+
// and total of the `group` stack.
|
|
42730
42629
|
}
|
|
42731
42630
|
else if (isArray(pointValues)) {
|
|
42732
42631
|
indexInCategory_1 = pointValues[1];
|
|
@@ -43382,7 +43281,7 @@
|
|
|
43382
43281
|
* @default #cccccc
|
|
43383
43282
|
* @product highcharts highstock gantt
|
|
43384
43283
|
*/
|
|
43385
|
-
color:
|
|
43284
|
+
color: "#cccccc" /* neutralColor20 */,
|
|
43386
43285
|
/**
|
|
43387
43286
|
* A specific border color for the selected point.
|
|
43388
43287
|
*
|
|
@@ -43390,7 +43289,7 @@
|
|
|
43390
43289
|
* @default #000000
|
|
43391
43290
|
* @product highcharts highstock gantt
|
|
43392
43291
|
*/
|
|
43393
|
-
borderColor:
|
|
43292
|
+
borderColor: "#000000" /* neutralColor100 */
|
|
43394
43293
|
}
|
|
43395
43294
|
},
|
|
43396
43295
|
dataLabels: {
|
|
@@ -43457,7 +43356,7 @@
|
|
|
43457
43356
|
*
|
|
43458
43357
|
* @private
|
|
43459
43358
|
*/
|
|
43460
|
-
borderColor:
|
|
43359
|
+
borderColor: "#ffffff" /* backgroundColor */
|
|
43461
43360
|
});
|
|
43462
43361
|
return ColumnSeries;
|
|
43463
43362
|
}(Series));
|
|
@@ -43648,7 +43547,7 @@
|
|
|
43648
43547
|
|
|
43649
43548
|
return ColumnSeries;
|
|
43650
43549
|
});
|
|
43651
|
-
_registerModule(_modules, 'Core/Series/DataLabel.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/FormatUtilities.js'], _modules['Core/
|
|
43550
|
+
_registerModule(_modules, 'Core/Series/DataLabel.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Utilities.js']], function (A, F, U) {
|
|
43652
43551
|
/* *
|
|
43653
43552
|
*
|
|
43654
43553
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -43929,8 +43828,10 @@
|
|
|
43929
43828
|
// Merge in series options for the point.
|
|
43930
43829
|
// @note dataLabelAttribs (like pointAttribs) would eradicate
|
|
43931
43830
|
// the need for dlOptions, and simplify the section below.
|
|
43932
|
-
pointOptions = splat(mergeArrays(seriesDlOptions,
|
|
43933
|
-
|
|
43831
|
+
pointOptions = splat(mergeArrays(seriesDlOptions,
|
|
43832
|
+
// dlOptions is used in treemaps
|
|
43833
|
+
(point.dlOptions ||
|
|
43834
|
+
(point.options && point.options.dataLabels))));
|
|
43934
43835
|
// Handle each individual data label for this point
|
|
43935
43836
|
pointOptions.forEach(function (labelOptions, i) {
|
|
43936
43837
|
// Options for one datalabel
|
|
@@ -43948,8 +43849,8 @@
|
|
|
43948
43849
|
style,
|
|
43949
43850
|
rotation,
|
|
43950
43851
|
attr,
|
|
43951
|
-
dataLabel = point.dataLabels ?
|
|
43952
|
-
point.dataLabel;
|
|
43852
|
+
dataLabel = point.dataLabels ?
|
|
43853
|
+
point.dataLabels[i] : point.dataLabel;
|
|
43953
43854
|
var labelDistance = pick(labelOptions.distance,
|
|
43954
43855
|
point.labelDistance),
|
|
43955
43856
|
isNew = !dataLabel;
|
|
@@ -43966,7 +43867,7 @@
|
|
|
43966
43867
|
rotation = labelOptions.rotation;
|
|
43967
43868
|
if (!chart.styledMode) {
|
|
43968
43869
|
// Determine the color
|
|
43969
|
-
style.color = pick(labelOptions.color, style.color, series.color,
|
|
43870
|
+
style.color = pick(labelOptions.color, style.color, series.color, "#000000" /* neutralColor100 */);
|
|
43970
43871
|
// Get automated contrast color
|
|
43971
43872
|
if (style.color === 'contrast') {
|
|
43972
43873
|
point.contrastColor = renderer.getContrast((point.color || series.color));
|
|
@@ -43975,7 +43876,7 @@
|
|
|
43975
43876
|
labelDistance < 0 ||
|
|
43976
43877
|
!!seriesOptions.stacking ?
|
|
43977
43878
|
point.contrastColor :
|
|
43978
|
-
|
|
43879
|
+
"#000000" /* neutralColor100 */;
|
|
43979
43880
|
}
|
|
43980
43881
|
else {
|
|
43981
43882
|
delete point.contrastColor;
|
|
@@ -44004,8 +43905,10 @@
|
|
|
44004
43905
|
}
|
|
44005
43906
|
// If the point is outside the plot area, destroy it. #678,
|
|
44006
43907
|
// #820
|
|
44007
|
-
if (dataLabel && (!labelEnabled ||
|
|
44008
|
-
|
|
43908
|
+
if (dataLabel && (!labelEnabled ||
|
|
43909
|
+
!defined(labelText) ||
|
|
43910
|
+
!!dataLabel.div !== !!labelOptions.useHTML)) {
|
|
43911
|
+
point.dataLabel = dataLabel =
|
|
44009
43912
|
point.dataLabel && point.dataLabel.destroy();
|
|
44010
43913
|
if (point.dataLabels) {
|
|
44011
43914
|
// Remove point.dataLabels if this was the last one
|
|
@@ -44032,11 +43935,11 @@
|
|
|
44032
43935
|
}
|
|
44033
43936
|
}
|
|
44034
43937
|
}
|
|
44035
|
-
// Individual labels are disabled if the are explicitly
|
|
44036
|
-
// disabled in the point options, or if they fall outside
|
|
44037
|
-
// the plot area.
|
|
44038
43938
|
}
|
|
44039
|
-
|
|
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)) {
|
|
44040
43943
|
if (!dataLabel) {
|
|
44041
43944
|
// Create new label element
|
|
44042
43945
|
point.dataLabels = point.dataLabels || [];
|
|
@@ -44050,7 +43953,8 @@
|
|
|
44050
43953
|
if (!i) {
|
|
44051
43954
|
point.dataLabel = dataLabel;
|
|
44052
43955
|
}
|
|
44053
|
-
dataLabel.addClass(' highcharts-data-label-color-' +
|
|
43956
|
+
dataLabel.addClass(' highcharts-data-label-color-' +
|
|
43957
|
+
point.colorIndex +
|
|
44054
43958
|
' ' + (labelOptions.className || '') +
|
|
44055
43959
|
( // #3398
|
|
44056
43960
|
labelOptions.useHTML ?
|
|
@@ -44078,7 +43982,7 @@
|
|
|
44078
43982
|
if (point.dataLabelPath &&
|
|
44079
43983
|
!labelOptions.textPath.enabled) {
|
|
44080
43984
|
// clean the DOM
|
|
44081
|
-
point.dataLabelPath = point.dataLabelPath.destroy();
|
|
43985
|
+
point.dataLabelPath = (point.dataLabelPath.destroy());
|
|
44082
43986
|
}
|
|
44083
43987
|
}
|
|
44084
43988
|
// Now the data label is created and placed at 0,0, so
|
|
@@ -44311,13 +44215,15 @@
|
|
|
44311
44215
|
*/
|
|
44312
44216
|
function alignDataLabel(point, dataLabel, options, alignTo, isNew) {
|
|
44313
44217
|
var inverted = this.chart.inverted,
|
|
44314
|
-
series = point.series,
|
|
44218
|
+
series = point.series,
|
|
44219
|
+
xLen = (series.xAxis ? series.xAxis.len : this.chart.plotSizeX) || 0,
|
|
44220
|
+
yLen = (series.yAxis ? series.yAxis.len : this.chart.plotSizeY) || 0,
|
|
44315
44221
|
// data label box for alignment
|
|
44316
44222
|
dlBox = point.dlBox || point.shapeArgs,
|
|
44317
44223
|
below = pick(point.below, // range series
|
|
44318
44224
|
point.plotY >
|
|
44319
44225
|
pick(this.translatedThreshold,
|
|
44320
|
-
|
|
44226
|
+
yLen)),
|
|
44321
44227
|
// draw it inside the box?
|
|
44322
44228
|
inside = pick(options.inside, !!this.options.stacking),
|
|
44323
44229
|
overshoot;
|
|
@@ -44330,14 +44236,14 @@
|
|
|
44330
44236
|
}
|
|
44331
44237
|
// If parts of the box overshoots outside the plot area, modify the
|
|
44332
44238
|
// box to center the label inside
|
|
44333
|
-
overshoot = alignTo.y + alignTo.height -
|
|
44239
|
+
overshoot = alignTo.y + alignTo.height - yLen;
|
|
44334
44240
|
if (overshoot > 0 && overshoot < alignTo.height) {
|
|
44335
44241
|
alignTo.height -= overshoot;
|
|
44336
44242
|
}
|
|
44337
44243
|
if (inverted) {
|
|
44338
44244
|
alignTo = {
|
|
44339
|
-
x:
|
|
44340
|
-
y:
|
|
44245
|
+
x: yLen - alignTo.y - alignTo.height,
|
|
44246
|
+
y: xLen - alignTo.x - alignTo.width,
|
|
44341
44247
|
width: alignTo.height,
|
|
44342
44248
|
height: alignTo.width
|
|
44343
44249
|
};
|
|
@@ -44876,7 +44782,7 @@
|
|
|
44876
44782
|
|
|
44877
44783
|
return ScatterSeries;
|
|
44878
44784
|
});
|
|
44879
|
-
_registerModule(_modules, '
|
|
44785
|
+
_registerModule(_modules, 'Series/CenteredUtilities.js', [_modules['Core/Globals.js'], _modules['Core/Series/Series.js'], _modules['Core/Utilities.js']], function (H, Series, U) {
|
|
44880
44786
|
/* *
|
|
44881
44787
|
*
|
|
44882
44788
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -44886,63 +44792,60 @@
|
|
|
44886
44792
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
44887
44793
|
*
|
|
44888
44794
|
* */
|
|
44889
|
-
|
|
44890
|
-
* @private
|
|
44891
|
-
* @interface Highcharts.RadianAngles
|
|
44892
|
-
*/ /**
|
|
44893
|
-
* @name Highcharts.RadianAngles#end
|
|
44894
|
-
* @type {number}
|
|
44895
|
-
*/ /**
|
|
44896
|
-
* @name Highcharts.RadianAngles#start
|
|
44897
|
-
* @type {number}
|
|
44898
|
-
*/
|
|
44795
|
+
var deg2rad = H.deg2rad;
|
|
44899
44796
|
var isNumber = U.isNumber,
|
|
44900
44797
|
pick = U.pick,
|
|
44901
44798
|
relativeLength = U.relativeLength;
|
|
44902
|
-
var deg2rad = H.deg2rad;
|
|
44903
|
-
/* eslint-disable valid-jsdoc */
|
|
44904
44799
|
/**
|
|
44905
44800
|
* @private
|
|
44906
|
-
* @mixin Highcharts.CenteredSeriesMixin
|
|
44907
44801
|
*/
|
|
44908
|
-
var
|
|
44909
|
-
|
|
44910
|
-
|
|
44911
|
-
|
|
44912
|
-
|
|
44913
|
-
|
|
44914
|
-
|
|
44915
|
-
|
|
44916
|
-
|
|
44917
|
-
|
|
44918
|
-
|
|
44919
|
-
|
|
44920
|
-
|
|
44921
|
-
|
|
44922
|
-
|
|
44923
|
-
|
|
44924
|
-
|
|
44925
|
-
|
|
44926
|
-
|
|
44927
|
-
|
|
44928
|
-
|
|
44929
|
-
|
|
44930
|
-
|
|
44931
|
-
|
|
44932
|
-
|
|
44802
|
+
var CenteredUtilities;
|
|
44803
|
+
(function (CenteredUtilities) {
|
|
44804
|
+
/* *
|
|
44805
|
+
*
|
|
44806
|
+
* Declarations
|
|
44807
|
+
*
|
|
44808
|
+
* */
|
|
44809
|
+
/* *
|
|
44810
|
+
*
|
|
44811
|
+
* Functions
|
|
44812
|
+
*
|
|
44813
|
+
* */
|
|
44814
|
+
/* eslint-disable valid-jsdoc */
|
|
44815
|
+
/**
|
|
44816
|
+
* Get the center of the pie based on the size and center options relative
|
|
44817
|
+
* to the plot area. Borrowed by the polar and gauge series types.
|
|
44818
|
+
*
|
|
44819
|
+
* @private
|
|
44820
|
+
* @function Highcharts.CenteredSeriesMixin.getCenter
|
|
44821
|
+
*/
|
|
44822
|
+
function getCenter() {
|
|
44823
|
+
var options = this.options,
|
|
44824
|
+
chart = this.chart,
|
|
44825
|
+
slicingRoom = 2 * (options.slicedOffset || 0),
|
|
44826
|
+
plotWidth = chart.plotWidth - 2 * slicingRoom,
|
|
44827
|
+
plotHeight = chart.plotHeight - 2 * slicingRoom,
|
|
44828
|
+
centerOption = options.center,
|
|
44829
|
+
smallestSize = Math.min(plotWidth,
|
|
44830
|
+
plotHeight);
|
|
44831
|
+
var handleSlicingRoom,
|
|
44832
|
+
size = options.size,
|
|
44833
|
+
innerSize = options.innerSize || 0,
|
|
44834
|
+
i,
|
|
44835
|
+
value;
|
|
44933
44836
|
if (typeof size === 'string') {
|
|
44934
44837
|
size = parseFloat(size);
|
|
44935
44838
|
}
|
|
44936
44839
|
if (typeof innerSize === 'string') {
|
|
44937
44840
|
innerSize = parseFloat(innerSize);
|
|
44938
44841
|
}
|
|
44939
|
-
positions = [
|
|
44940
|
-
|
|
44941
|
-
|
|
44942
|
-
|
|
44943
|
-
|
|
44944
|
-
|
|
44945
|
-
|
|
44842
|
+
var positions = [
|
|
44843
|
+
pick(centerOption[0], '50%'),
|
|
44844
|
+
pick(centerOption[1], '50%'),
|
|
44845
|
+
// Prevent from negative values
|
|
44846
|
+
pick(size && size < 0 ? void 0 : options.size, '100%'),
|
|
44847
|
+
pick(innerSize && innerSize < 0 ? void 0 : options.innerSize || 0, '0%')
|
|
44848
|
+
];
|
|
44946
44849
|
// No need for inner size in angular (gauges) series but still required
|
|
44947
44850
|
// for pie series
|
|
44948
44851
|
if (chart.angular && !(this instanceof Series)) {
|
|
@@ -44962,7 +44865,8 @@
|
|
|
44962
44865
|
positions[3] = positions[2];
|
|
44963
44866
|
}
|
|
44964
44867
|
return positions;
|
|
44965
|
-
}
|
|
44868
|
+
}
|
|
44869
|
+
CenteredUtilities.getCenter = getCenter;
|
|
44966
44870
|
/**
|
|
44967
44871
|
* getStartAndEndRadians - Calculates start and end angles in radians.
|
|
44968
44872
|
* Used in series types such as pie and sunburst.
|
|
@@ -44979,7 +44883,7 @@
|
|
|
44979
44883
|
* @return {Highcharts.RadianAngles}
|
|
44980
44884
|
* Returns an object containing start and end angles as radians.
|
|
44981
44885
|
*/
|
|
44982
|
-
|
|
44886
|
+
function getStartAndEndRadians(start, end) {
|
|
44983
44887
|
var startAngle = isNumber(start) ? start : 0, // must be a number
|
|
44984
44888
|
endAngle = ((isNumber(end) && // must be a number
|
|
44985
44889
|
end > startAngle && // must be larger than the start angle
|
|
@@ -44993,9 +44897,31 @@
|
|
|
44993
44897
|
end: deg2rad * (endAngle + correction)
|
|
44994
44898
|
};
|
|
44995
44899
|
}
|
|
44996
|
-
|
|
44900
|
+
CenteredUtilities.getStartAndEndRadians = getStartAndEndRadians;
|
|
44901
|
+
})(CenteredUtilities || (CenteredUtilities = {}));
|
|
44902
|
+
/* *
|
|
44903
|
+
*
|
|
44904
|
+
* Default Export
|
|
44905
|
+
*
|
|
44906
|
+
* */
|
|
44907
|
+
/* *
|
|
44908
|
+
*
|
|
44909
|
+
* API Declarations
|
|
44910
|
+
*
|
|
44911
|
+
* */
|
|
44912
|
+
/**
|
|
44913
|
+
* @private
|
|
44914
|
+
* @interface Highcharts.RadianAngles
|
|
44915
|
+
*/ /**
|
|
44916
|
+
* @name Highcharts.RadianAngles#end
|
|
44917
|
+
* @type {number}
|
|
44918
|
+
*/ /**
|
|
44919
|
+
* @name Highcharts.RadianAngles#start
|
|
44920
|
+
* @type {number}
|
|
44921
|
+
*/
|
|
44922
|
+
''; // keeps doclets above in JS file
|
|
44997
44923
|
|
|
44998
|
-
return
|
|
44924
|
+
return CenteredUtilities;
|
|
44999
44925
|
});
|
|
45000
44926
|
_registerModule(_modules, 'Series/Pie/PiePoint.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Series/Point.js'], _modules['Core/Utilities.js']], function (A, Point, U) {
|
|
45001
44927
|
/* *
|
|
@@ -45176,10 +45102,10 @@
|
|
|
45176
45102
|
* @param {boolean} sliced
|
|
45177
45103
|
* When undefined, the slice state is toggled.
|
|
45178
45104
|
*
|
|
45179
|
-
* @param {boolean} redraw
|
|
45105
|
+
* @param {boolean} [redraw]
|
|
45180
45106
|
* Whether to redraw the chart. True by default.
|
|
45181
45107
|
*
|
|
45182
|
-
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>}
|
|
45108
|
+
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation]
|
|
45183
45109
|
* Animation options.
|
|
45184
45110
|
*/
|
|
45185
45111
|
PiePoint.prototype.slice = function (sliced, redraw, animation) {
|
|
@@ -45293,7 +45219,7 @@
|
|
|
45293
45219
|
|
|
45294
45220
|
return PiePoint;
|
|
45295
45221
|
});
|
|
45296
|
-
_registerModule(_modules, 'Series/Pie/PieSeries.js', [_modules['
|
|
45222
|
+
_registerModule(_modules, 'Series/Pie/PieSeries.js', [_modules['Series/CenteredUtilities.js'], _modules['Series/Column/ColumnSeries.js'], _modules['Core/Globals.js'], _modules['Core/Legend/LegendSymbol.js'], _modules['Series/Pie/PiePoint.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Renderer/SVG/Symbols.js'], _modules['Core/Utilities.js']], function (CU, ColumnSeries, H, LegendSymbol, PiePoint, Series, SeriesRegistry, Symbols, U) {
|
|
45297
45223
|
/* *
|
|
45298
45224
|
*
|
|
45299
45225
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -45319,7 +45245,7 @@
|
|
|
45319
45245
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
45320
45246
|
};
|
|
45321
45247
|
})();
|
|
45322
|
-
var getStartAndEndRadians =
|
|
45248
|
+
var getStartAndEndRadians = CU.getStartAndEndRadians;
|
|
45323
45249
|
var noop = H.noop;
|
|
45324
45250
|
var clamp = U.clamp,
|
|
45325
45251
|
extend = U.extend,
|
|
@@ -45434,7 +45360,7 @@
|
|
|
45434
45360
|
this.graph.attr({
|
|
45435
45361
|
'stroke-width': options.borderWidth,
|
|
45436
45362
|
fill: options.fillColor || 'none',
|
|
45437
|
-
stroke: options.color ||
|
|
45363
|
+
stroke: options.color || "#cccccc" /* neutralColor20 */
|
|
45438
45364
|
});
|
|
45439
45365
|
}
|
|
45440
45366
|
}
|
|
@@ -45833,7 +45759,7 @@
|
|
|
45833
45759
|
* Empty pie series
|
|
45834
45760
|
*
|
|
45835
45761
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}
|
|
45836
|
-
* @default
|
|
45762
|
+
* @default #cccccc
|
|
45837
45763
|
* @apioption plotOptions.pie.color
|
|
45838
45764
|
*/
|
|
45839
45765
|
/**
|
|
@@ -46234,7 +46160,7 @@
|
|
|
46234
46160
|
*
|
|
46235
46161
|
* @private
|
|
46236
46162
|
*/
|
|
46237
|
-
borderColor:
|
|
46163
|
+
borderColor: "#ffffff" /* backgroundColor */,
|
|
46238
46164
|
/**
|
|
46239
46165
|
* The width of the border surrounding each slice.
|
|
46240
46166
|
*
|
|
@@ -46255,7 +46181,7 @@
|
|
|
46255
46181
|
*/
|
|
46256
46182
|
borderWidth: 1,
|
|
46257
46183
|
/**
|
|
46258
|
-
* @ignore-
|
|
46184
|
+
* @ignore-option
|
|
46259
46185
|
* @private
|
|
46260
46186
|
*/
|
|
46261
46187
|
lineWidth: void 0,
|
|
@@ -46291,7 +46217,7 @@
|
|
|
46291
46217
|
drawGraph: void 0,
|
|
46292
46218
|
drawLegendSymbol: LegendSymbol.drawRectangle,
|
|
46293
46219
|
drawTracker: ColumnSeries.prototype.drawTracker,
|
|
46294
|
-
getCenter:
|
|
46220
|
+
getCenter: CU.getCenter,
|
|
46295
46221
|
getSymbol: noop,
|
|
46296
46222
|
isCartesian: false,
|
|
46297
46223
|
noSharedTooltip: true,
|
|
@@ -46403,7 +46329,7 @@
|
|
|
46403
46329
|
|
|
46404
46330
|
return PieSeries;
|
|
46405
46331
|
});
|
|
46406
|
-
_registerModule(_modules, 'Series/Pie/PieDataLabel.js', [_modules['Core/Series/DataLabel.js'], _modules['Core/Globals.js'], _modules['Core/
|
|
46332
|
+
_registerModule(_modules, 'Series/Pie/PieDataLabel.js', [_modules['Core/Series/DataLabel.js'], _modules['Core/Globals.js'], _modules['Core/Renderer/RendererUtilities.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (DataLabel, H, R, SeriesRegistry, U) {
|
|
46407
46333
|
/* *
|
|
46408
46334
|
*
|
|
46409
46335
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -46765,7 +46691,7 @@
|
|
|
46765
46691
|
'stroke-width': connectorWidth,
|
|
46766
46692
|
'stroke': (pointDataLabelsOptions.connectorColor ||
|
|
46767
46693
|
point.color ||
|
|
46768
|
-
|
|
46694
|
+
"#666666" /* neutralColor60 */)
|
|
46769
46695
|
});
|
|
46770
46696
|
}
|
|
46771
46697
|
}
|
|
@@ -47033,7 +46959,8 @@
|
|
|
47033
46959
|
if (alignValue) {
|
|
47034
46960
|
xOffset = +alignValue * boxWidth;
|
|
47035
46961
|
}
|
|
47036
|
-
else if (isNumber(label.x) &&
|
|
46962
|
+
else if (isNumber(label.x) &&
|
|
46963
|
+
Math.round(label.x) !== label.translateX) {
|
|
47037
46964
|
xOffset = label.x - label.translateX;
|
|
47038
46965
|
}
|
|
47039
46966
|
return {
|
|
@@ -47095,10 +47022,11 @@
|
|
|
47095
47022
|
* @private
|
|
47096
47023
|
* @function hideOrShow
|
|
47097
47024
|
* @param {Highcharts.SVGElement} label
|
|
47098
|
-
*
|
|
47025
|
+
* The label.
|
|
47099
47026
|
* @param {Highcharts.Chart} chart
|
|
47100
|
-
*
|
|
47027
|
+
* The chart that contains the label.
|
|
47101
47028
|
* @return {boolean}
|
|
47029
|
+
* Whether label is affected
|
|
47102
47030
|
*/
|
|
47103
47031
|
function hideOrShow(label, chart) {
|
|
47104
47032
|
var complete,
|
|
@@ -47107,13 +47035,15 @@
|
|
|
47107
47035
|
if (label) {
|
|
47108
47036
|
newOpacity = label.newOpacity;
|
|
47109
47037
|
if (label.oldOpacity !== newOpacity) {
|
|
47110
|
-
// Make sure the label is completely hidden to avoid catching
|
|
47111
|
-
//
|
|
47038
|
+
// Make sure the label is completely hidden to avoid catching clicks
|
|
47039
|
+
// (#4362)
|
|
47112
47040
|
if (label.alignAttr && label.placed) { // data labels
|
|
47113
47041
|
label[newOpacity ? 'removeClass' : 'addClass']('highcharts-data-label-hidden');
|
|
47114
47042
|
complete = function () {
|
|
47115
47043
|
if (!chart.styledMode) {
|
|
47116
|
-
label.css({
|
|
47044
|
+
label.css({
|
|
47045
|
+
pointerEvents: newOpacity ? 'auto' : 'none'
|
|
47046
|
+
});
|
|
47117
47047
|
}
|
|
47118
47048
|
};
|
|
47119
47049
|
isLabelAffected = true;
|
|
@@ -47275,8 +47205,7 @@
|
|
|
47275
47205
|
fn = condition.callback || function () {
|
|
47276
47206
|
return (this.chartWidth <= pick(condition.maxWidth,
|
|
47277
47207
|
Number.MAX_VALUE) &&
|
|
47278
|
-
this.chartHeight <=
|
|
47279
|
-
pick(condition.maxHeight,
|
|
47208
|
+
this.chartHeight <= pick(condition.maxHeight,
|
|
47280
47209
|
Number.MAX_VALUE) &&
|
|
47281
47210
|
this.chartWidth >= pick(condition.minWidth, 0) &&
|
|
47282
47211
|
this.chartHeight >= pick(condition.minHeight, 0));
|
|
@@ -47319,7 +47248,7 @@
|
|
|
47319
47248
|
mergedOptions.isResponsiveOptions = true;
|
|
47320
47249
|
// Stringified key for the rules that currently apply.
|
|
47321
47250
|
ruleIds = (ruleIds.toString() || void 0);
|
|
47322
|
-
var currentRuleIds = currentResponsive && currentResponsive.ruleIds;
|
|
47251
|
+
var currentRuleIds = (currentResponsive && currentResponsive.ruleIds);
|
|
47323
47252
|
// Changes in what rules apply
|
|
47324
47253
|
if (ruleIds !== currentRuleIds) {
|
|
47325
47254
|
// Undo previous rules. Before we apply a new set of rules, we
|