highcharts 10.2.0 → 10.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +1 -1
- package/css/highcharts.css +10 -20
- package/css/themes/dark-unica.css +10 -20
- package/css/themes/grid-light.css +10 -20
- package/css/themes/sand-signika.css +10 -20
- package/es-modules/Accessibility/Accessibility.js +6 -0
- package/es-modules/Accessibility/Components/LegendComponent.js +8 -8
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -2
- package/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
- package/es-modules/Core/Axis/Axis.js +3 -0
- package/es-modules/Core/Axis/Axis3D.js +1 -1
- package/es-modules/Core/Axis/AxisDefaults.js +1 -1
- package/es-modules/Core/Axis/BrokenAxis.js +1 -1
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +4 -0
- package/es-modules/Core/Axis/NavigatorAxis.js +2 -2
- package/es-modules/Core/Axis/OrdinalAxis.js +2 -2
- package/es-modules/Core/Axis/RadialAxis.js +1 -1
- package/es-modules/Core/Axis/Stacking/StackItem.js +262 -0
- package/es-modules/Core/Axis/Stacking/StackingAxis.js +468 -0
- package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +732 -0
- package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +313 -0
- package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
- package/es-modules/Core/Axis/ZAxis.js +73 -70
- package/es-modules/Core/Chart/Chart.js +16 -2
- package/es-modules/Core/Chart/Chart3D.js +2 -2
- package/es-modules/Core/Chart/ChartDefaults.js +151 -2
- package/es-modules/Core/Chart/StockChart.js +5 -3
- package/es-modules/Core/DefaultOptions.js +2 -1
- package/es-modules/Core/Geometry/CircleUtilities.js +4 -4
- package/es-modules/Core/Globals.js +2 -1
- package/es-modules/{Extensions → Core}/Math3D.js +48 -43
- package/es-modules/Core/Navigator.js +24 -7
- package/es-modules/Core/Pointer.js +7 -9
- package/es-modules/Core/Renderer/HTML/AST.js +4 -1
- package/es-modules/Core/Renderer/SVG/SVGElement.js +103 -163
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +29 -27
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +3 -3
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +5 -3
- package/es-modules/Core/Scrollbar.js +3 -1
- package/es-modules/Core/Series/DataLabel.js +8 -6
- package/es-modules/Core/Series/Point.js +2 -2
- package/es-modules/Core/Series/Series.js +36 -31
- package/es-modules/Core/Series/Series3D.js +1 -1
- package/es-modules/Core/Series/SeriesDefaults.js +8 -3
- package/es-modules/Core/Series/SeriesRegistry.js +6 -29
- package/es-modules/Core/Tooltip.js +14 -3
- package/es-modules/Core/Utilities.js +1 -3
- package/es-modules/Data/DataConverter.js +5 -0
- package/es-modules/Data/DataPromise.js +1 -1
- package/es-modules/Data/DataSeriesComposition.js +288 -0
- package/es-modules/Data/DataSeriesConverter.js +1 -1
- package/es-modules/Data/DataTable.js +2 -2
- package/es-modules/Data/Modifiers/ChainModifier.js +1 -1
- package/es-modules/Data/Modifiers/DataModifier.js +1 -1
- package/es-modules/Data/Modifiers/GroupModifier.js +1 -1
- package/es-modules/Data/Modifiers/InvertModifier.js +1 -1
- package/es-modules/Data/Modifiers/RangeModifier.js +1 -1
- package/es-modules/Data/Modifiers/SeriesPointsModifier.js +1 -1
- package/es-modules/Data/Modifiers/SortModifier.js +1 -1
- package/es-modules/Data/Parsers/DataParser.js +1 -1
- package/es-modules/Data/Stores/DataStore.js +1 -1
- package/es-modules/Extensions/Annotations/Annotation.js +347 -1156
- package/es-modules/Extensions/Annotations/AnnotationChart.js +291 -0
- package/es-modules/Extensions/Annotations/AnnotationDefaults.js +624 -0
- package/es-modules/Extensions/Annotations/ControlPoint.js +89 -64
- package/es-modules/Extensions/Annotations/{Mixins/ControllableMixin.js → Controllables/Controllable.js} +300 -241
- package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +63 -50
- package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +95 -0
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +90 -61
- package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +50 -44
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +95 -78
- package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +167 -51
- package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +53 -52
- package/es-modules/Extensions/Annotations/{Mixins/EventEmitterMixin.js → EventEmitter.js} +136 -116
- package/es-modules/Extensions/Annotations/MockPoint.js +210 -145
- package/es-modules/Extensions/Annotations/NavigationBindings.js +272 -674
- package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +396 -0
- package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +98 -0
- package/es-modules/Extensions/Annotations/Popup/Popup.js +295 -0
- package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +177 -0
- package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +81 -0
- package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +609 -0
- package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +134 -0
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +10 -14
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +11 -19
- package/es-modules/Extensions/Annotations/Types/ElliottWave.js +10 -10
- package/es-modules/Extensions/Annotations/Types/Fibonacci.js +28 -20
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +63 -63
- package/es-modules/Extensions/Annotations/Types/InfinityLine.js +10 -19
- package/es-modules/Extensions/Annotations/Types/Measure.js +255 -249
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +11 -17
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +20 -17
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +12 -13
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +11 -15
- package/es-modules/Extensions/Boost/Boost.js +320 -15
- package/es-modules/Extensions/Boost/BoostChart.js +245 -0
- package/es-modules/Extensions/Boost/BoostSeries.js +927 -0
- package/es-modules/Extensions/Boost/BoostableMap.js +21 -5
- package/es-modules/Extensions/Boost/Boostables.js +13 -2
- package/es-modules/Extensions/Boost/NamedColors.js +15 -6
- package/es-modules/Extensions/Boost/WGLDrawMode.js +36 -0
- package/es-modules/Extensions/Boost/WGLRenderer.js +288 -295
- package/es-modules/Extensions/Boost/WGLShader.js +370 -376
- package/es-modules/Extensions/Boost/WGLVertexBuffer.js +192 -0
- package/es-modules/Extensions/BoostCanvas.js +62 -46
- package/es-modules/Extensions/Breadcrumbs.js +4 -0
- package/es-modules/Extensions/DataGrouping.js +65 -27
- package/es-modules/Extensions/Debugger/Debugger.js +60 -22
- package/es-modules/Extensions/DraggablePoints.js +4 -3
- package/es-modules/Extensions/Drilldown.js +7 -8
- package/es-modules/Extensions/{ExportData.js → ExportData/ExportData.js} +341 -530
- package/es-modules/Extensions/ExportData/ExportDataDefaults.js +272 -0
- package/es-modules/Extensions/Exporting/Exporting.js +5 -1
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +3 -1
- package/es-modules/Extensions/{FullScreen.js → Exporting/Fullscreen.js} +72 -27
- package/es-modules/Extensions/MarkerClusters.js +2 -0
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +1 -1
- package/es-modules/Extensions/ParallelCoordinates.js +11 -7
- package/es-modules/Extensions/ScrollablePlotArea.js +1 -1
- package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +2 -2
- package/es-modules/Extensions/Sonification/ChartSonify.js +1 -1
- package/es-modules/Maps/MapPointer.js +1 -1
- package/es-modules/Maps/MapView.js +2 -1
- package/es-modules/Series/{Area3DSeries.js → Area3D/Area3DSeries.js} +42 -20
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +8 -2
- package/es-modules/Series/Bubble/BubbleLegendComposition.js +223 -231
- package/es-modules/Series/Bubble/BubbleLegendItem.js +46 -45
- package/es-modules/Series/Bubble/BubbleSeries.js +85 -66
- package/es-modules/Series/Column/ColumnSeries.js +2 -0
- package/es-modules/Series/Column3D/Column3DComposition.js +2 -2
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +1 -1
- package/es-modules/Series/Cylinder/CylinderComposition.js +1 -1
- package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +24 -11
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +16 -2
- package/es-modules/Series/DragNodesComposition.js +166 -0
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +1 -1
- package/es-modules/Series/Gantt/GanttSeries.js +1 -1
- package/es-modules/Series/GraphLayoutComposition.js +130 -0
- package/es-modules/Series/Heatmap/HeatmapSeries.js +5 -1
- package/es-modules/Series/Lollipop/LollipopPoint.js +21 -11
- package/es-modules/Series/Lollipop/LollipopSeries.js +15 -10
- package/es-modules/Series/Map/MapSeries.js +6 -1
- package/es-modules/Series/MapBubble/MapBubblePoint.js +15 -17
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +19 -19
- package/es-modules/Series/Networkgraph/EulerIntegration.js +199 -0
- package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +290 -0
- package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +401 -0
- package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +545 -0
- package/es-modules/Series/Networkgraph/QuadTree.js +66 -272
- package/es-modules/Series/Networkgraph/QuadTreeNode.js +271 -0
- package/es-modules/Series/Networkgraph/{Layouts.js → ReingoldFruchtermanLayout.js} +240 -259
- package/es-modules/Series/Networkgraph/VerletIntegration.js +193 -0
- package/es-modules/Series/Organization/OrganizationSeries.js +9 -1
- package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +81 -0
- package/es-modules/Series/PackedBubble/{PackedBubbleComposition.js → PackedBubbleLayout.js} +114 -77
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +2 -2
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +197 -570
- package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +394 -0
- package/es-modules/Series/Pie/PieSeries.js +3 -1
- package/es-modules/Series/PolarComposition.js +12 -12
- package/es-modules/Series/Sankey/SankeySeries.js +13 -1
- package/es-modules/Series/Scatter/ScatterSeries.js +4 -1
- package/es-modules/Series/Scatter3D/Scatter3DSeries.js +1 -1
- package/es-modules/Series/SeriesOnPointComposition.js +5 -1
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +1 -1
- package/es-modules/Series/Sunburst/SunburstPoint.js +5 -6
- package/es-modules/Series/Sunburst/SunburstSeries.js +24 -2
- package/es-modules/Series/Timeline/TimelineSeries.js +2 -0
- package/es-modules/Series/Treemap/TreemapSeries.js +3 -3
- package/es-modules/Series/Vector/VectorSeries.js +2 -4
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +1 -1
- package/es-modules/Series/Wordcloud/WordcloudUtils.js +1 -1
- package/es-modules/Series/XRange/XRangePoint.js +54 -45
- package/es-modules/Series/XRange/XRangeSeries.js +121 -273
- package/es-modules/Series/XRange/XRangeSeriesDefaults.js +211 -0
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +10 -2
- package/es-modules/Stock/Indicators/AD/ADIndicator.js +5 -0
- package/es-modules/Stock/Indicators/AO/AOIndicator.js +22 -11
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +6 -1
- package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +16 -3
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +15 -2
- package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +6 -2
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +5 -1
- package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +16 -3
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +20 -0
- package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +15 -1
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +7 -2
- package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +25 -0
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +5 -0
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +19 -8
- package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +10 -0
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +34 -15
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +25 -0
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +12 -1
- package/es-modules/Stock/Indicators/LinearRegression/{LinearRegression.js → LinearRegressionIndicator.js} +11 -1
- package/es-modules/Stock/Indicators/LinearRegressionAngle/{LinearRegressionAngle.js → LinearRegressionAngleIndicator.js} +12 -7
- package/es-modules/Stock/Indicators/LinearRegressionIntercept/{LinearRegressionIntercept.js → LinearRegressionInterceptIndicator.js} +11 -1
- package/es-modules/Stock/Indicators/LinearRegressionSlopes/{LinearRegressionSlopes.js → LinearRegressionSlopesIndicator.js} +11 -1
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +21 -10
- package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +23 -10
- package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +30 -2
- package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +16 -1
- package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +10 -0
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +13 -8
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +14 -4
- package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +16 -3
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +16 -6
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +16 -12
- package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +25 -0
- package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +15 -2
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +20 -2
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +25 -0
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -0
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +17 -3
- package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +25 -0
- package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +14 -4
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +32 -3
- package/es-modules/Stock/Indicators/VBP/VBPPoint.js +6 -6
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +11 -1
- package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +30 -2
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +10 -0
- package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +11 -1
- package/es-modules/Stock/StockToolbar.js +568 -0
- package/es-modules/Stock/StockTools.js +256 -0
- package/es-modules/Stock/StockToolsBindings.js +114 -629
- package/es-modules/Stock/StockToolsDefaults.js +1190 -0
- package/es-modules/Stock/StockToolsGui.js +150 -1771
- package/es-modules/Stock/StockToolsUtilities.js +423 -0
- package/es-modules/masters/highcharts-3d.src.js +5 -4
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +4 -3
- package/es-modules/masters/highcharts.src.js +5 -2
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +5 -7
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +5 -5
- 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 +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +6 -4
- package/es-modules/masters/modules/annotations.src.js +6 -4
- package/es-modules/masters/modules/arc-diagram.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 +6 -2
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +5 -3
- 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 +5 -2
- package/es-modules/masters/modules/exporting.src.js +1 -2
- package/es-modules/masters/modules/full-screen.src.js +6 -2
- 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 +3 -2
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +2 -2
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +5 -2
- 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/series-on-point.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +1 -1
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +10 -3
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/timeline.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +2 -2
- 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 +5 -2
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/brand-dark.src.js +1 -1
- package/es-modules/masters/themes/brand-light.src.js +1 -1
- 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 +98 -99
- package/highcharts-3d.js.map +1 -1
- package/highcharts-3d.src.js +232 -211
- package/highcharts-gantt.js +808 -809
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +2308 -2136
- package/highcharts-more.d.ts +5 -8
- package/highcharts-more.js +201 -194
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.d.ts +5 -8
- package/highcharts-more.src.js +3671 -3275
- package/highcharts.d.ts +1400 -885
- package/highcharts.js +593 -595
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +1400 -885
- package/highcharts.src.js +847 -716
- package/highmaps.js +762 -763
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +1288 -1129
- package/highstock.js +796 -798
- package/highstock.js.map +1 -1
- package/highstock.src.js +953 -762
- package/indicators/acceleration-bands.js +1 -1
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.js +11 -3
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.js.map +1 -1
- package/indicators/accumulation-distribution.src.js +6 -1
- package/indicators/ao.js +6 -6
- package/indicators/ao.js.map +1 -1
- package/indicators/ao.src.js +23 -14
- package/indicators/apo.js +1 -1
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +6 -1
- package/indicators/aroon-oscillator.js +10 -10
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.js +7 -3
- package/indicators/aroon.js +1 -1
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.js +16 -3
- package/indicators/atr.js +1 -1
- package/indicators/atr.js.map +1 -1
- package/indicators/atr.src.js +17 -4
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.js +6 -2
- package/indicators/cci.js +1 -1
- package/indicators/cci.js.map +1 -1
- package/indicators/cci.src.js +17 -4
- package/indicators/chaikin.js +8 -8
- package/indicators/chaikin.js.map +1 -1
- package/indicators/chaikin.src.js +13 -5
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.js.map +1 -1
- package/indicators/cmf.src.js +21 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.js.map +1 -1
- package/indicators/cmo.src.js +16 -2
- package/indicators/dema.js +1 -1
- package/indicators/dema.js.map +1 -1
- package/indicators/dema.src.js +26 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.js +1 -1
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +6 -1
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.js.map +1 -1
- package/indicators/dpo.src.js +20 -9
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js.map +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +35 -16
- package/indicators/indicators-all.js +199 -199
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.js +754 -162
- package/indicators/indicators.js +1 -1
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +12 -2
- package/indicators/keltner-channels.js +1 -1
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.js +26 -1
- package/indicators/klinger.js +12 -12
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +13 -4
- package/indicators/macd.js +1 -1
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +22 -13
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.js.map +1 -1
- package/indicators/mfi.src.js +24 -11
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.js.map +1 -1
- package/indicators/momentum.src.js +31 -3
- package/indicators/natr.js +1 -1
- package/indicators/natr.js.map +1 -1
- package/indicators/natr.src.js +17 -3
- package/indicators/obv.js +1 -1
- package/indicators/obv.js.map +1 -1
- package/indicators/obv.src.js +11 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.js.map +1 -1
- package/indicators/pivot-points.src.js +32 -19
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.js.map +1 -1
- package/indicators/ppo.src.js +15 -5
- package/indicators/price-channel.js +1 -1
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.js +14 -9
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.js.map +1 -1
- package/indicators/price-envelopes.src.js +26 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.js.map +1 -1
- package/indicators/psar.src.js +17 -4
- package/indicators/regressions.js +12 -11
- package/indicators/regressions.js.map +1 -1
- package/indicators/regressions.src.js +50 -15
- package/indicators/roc.js +1 -1
- package/indicators/roc.js.map +1 -1
- package/indicators/roc.src.js +16 -3
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.js.map +1 -1
- package/indicators/rsi.src.js +21 -3
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.js.map +1 -1
- package/indicators/slow-stochastic.src.js +26 -1
- package/indicators/stochastic.js +1 -1
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.js +16 -1
- package/indicators/supertrend.js +7 -7
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +18 -6
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.js.map +1 -1
- package/indicators/trendline.src.js +15 -5
- package/indicators/trix.js +1 -1
- package/indicators/trix.js.map +1 -1
- package/indicators/trix.src.js +26 -1
- package/indicators/volume-by-price.js +17 -17
- package/indicators/volume-by-price.js.map +1 -1
- package/indicators/volume-by-price.src.js +38 -10
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.js.map +1 -1
- package/indicators/vwap.src.js +12 -2
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.js.map +1 -1
- package/indicators/williams-r.src.js +11 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.js.map +1 -1
- package/indicators/wma.src.js +31 -3
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.js.map +1 -1
- package/indicators/zigzag.src.js +12 -2
- package/modules/accessibility.js +183 -182
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +559 -554
- package/modules/annotations-advanced.d.ts +1 -1
- package/modules/annotations-advanced.js +193 -192
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.d.ts +1 -1
- package/modules/annotations-advanced.src.js +9263 -8654
- package/modules/annotations.d.ts +1 -1
- package/modules/annotations.js +128 -126
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.d.ts +1 -1
- package/modules/annotations.src.js +6699 -6063
- package/modules/arc-diagram.js +1 -1
- package/modules/arc-diagram.src.js +1 -1
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.d.ts +19 -0
- package/modules/boost-canvas.js +81 -16
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.d.ts +19 -0
- package/modules/boost-canvas.src.js +3334 -50
- package/modules/boost.d.ts +8 -26
- package/modules/boost.js +84 -77
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.d.ts +8 -26
- package/modules/boost.src.js +2423 -1888
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.js.map +1 -1
- package/modules/broken-axis.src.js +2 -2
- package/modules/bullet.js +1 -1
- package/modules/bullet.src.js +1 -1
- package/modules/coloraxis.js +1 -1
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +5 -1
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +9 -9
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +2 -2
- package/modules/data.js +1 -1
- package/modules/data.src.js +1 -1
- package/modules/datagrouping.d.ts +22 -0
- package/modules/datagrouping.js +4 -4
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.d.ts +22 -0
- package/modules/datagrouping.src.js +66 -28
- package/modules/debugger.js +6 -5
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +81 -40
- package/modules/dependency-wheel.js +12 -12
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +41 -14
- package/modules/dotplot.js +1 -1
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +5 -5
- package/modules/draggable-points.js.map +1 -1
- package/modules/draggable-points.src.js +5 -4
- package/modules/drilldown.d.ts +0 -10
- package/modules/drilldown.js +29 -29
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.d.ts +0 -10
- package/modules/drilldown.src.js +12 -9
- package/modules/dumbbell.js +1 -1
- package/modules/dumbbell.src.js +1 -1
- package/modules/export-data.js +25 -24
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +607 -499
- package/modules/exporting.js +38 -38
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +559 -507
- package/modules/full-screen.js +8 -8
- package/modules/full-screen.js.map +1 -1
- package/modules/full-screen.src.js +76 -26
- package/modules/funnel.js +1 -1
- package/modules/funnel.src.js +1 -1
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +2 -2
- package/modules/gantt.js +217 -216
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +1481 -1440
- package/modules/grid-axis.js +1 -1
- package/modules/grid-axis.src.js +1 -1
- package/modules/heatmap.js +1 -1
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +10 -2
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +1 -1
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.src.js +1 -1
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.src.js +1 -1
- package/modules/item-series.js +1 -1
- package/modules/item-series.src.js +1 -1
- package/modules/lollipop.js +6 -6
- package/modules/lollipop.js.map +1 -1
- package/modules/lollipop.src.js +37 -22
- package/modules/map.d.ts +3 -3
- package/modules/map.js +171 -171
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +3 -3
- package/modules/map.src.js +442 -414
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +3 -1
- package/modules/networkgraph.js +55 -50
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.js +2259 -1938
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/offline-exporting.js +2 -2
- package/modules/offline-exporting.src.js +2 -2
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +1 -1
- package/modules/oldie.js +2 -2
- package/modules/oldie.src.js +2 -2
- package/modules/organization.js +15 -15
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +10 -2
- package/modules/overlapping-datalabels.js +1 -1
- package/modules/overlapping-datalabels.src.js +1 -1
- package/modules/parallel-coordinates.js +11 -11
- package/modules/parallel-coordinates.js.map +1 -1
- package/modules/parallel-coordinates.src.js +13 -8
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +1 -1
- package/modules/pathfinder.src.js +1 -1
- package/modules/pattern-fill.js +1 -1
- package/modules/pattern-fill.src.js +1 -1
- package/modules/price-indicator.js +1 -1
- package/modules/price-indicator.src.js +1 -1
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +1 -1
- package/modules/sankey.js +1 -1
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.js +14 -2
- package/modules/series-label.js +5 -5
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +3 -3
- package/modules/series-on-point.js +1 -1
- package/modules/series-on-point.js.map +1 -1
- package/modules/series-on-point.src.js +6 -2
- package/modules/solid-gauge.js +1 -1
- package/modules/solid-gauge.src.js +2 -2
- package/modules/sonification.d.ts +2 -2
- package/modules/sonification.js +1 -1
- package/modules/sonification.src.d.ts +2 -2
- package/modules/sonification.src.js +2 -2
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.d.ts +1 -23
- package/modules/stock-tools.js +109 -179
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.d.ts +1 -23
- package/modules/stock-tools.src.js +2605 -6335
- package/modules/stock.d.ts +8 -0
- package/modules/stock.js +105 -105
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.d.ts +8 -0
- package/modules/stock.src.js +105 -45
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +72 -72
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +38 -12
- package/modules/tilemap.js +1 -1
- package/modules/tilemap.src.js +1 -1
- package/modules/timeline.js +1 -1
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +3 -1
- package/modules/treegrid.js +57 -57
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +1022 -1014
- package/modules/treemap.js +1 -1
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.js +8 -4
- package/modules/variable-pie.js +1 -1
- package/modules/variable-pie.src.js +1 -1
- package/modules/variwide.js +1 -1
- package/modules/variwide.src.js +1 -1
- package/modules/vector.js +2 -2
- package/modules/vector.js.map +1 -1
- package/modules/vector.src.js +3 -5
- package/modules/venn.js +1 -1
- package/modules/venn.src.js +5 -5
- package/modules/windbarb.js +1 -1
- package/modules/windbarb.src.js +1 -1
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.src.js +3 -3
- package/modules/xrange.js +17 -17
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +411 -397
- package/package.json +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/brand-dark.js +1 -1
- package/themes/brand-dark.src.js +1 -1
- package/themes/brand-light.js +1 -1
- package/themes/brand-light.src.js +1 -1
- 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.src.js +1 -1
- package/themes/gray.js +1 -1
- package/themes/gray.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/grid.js +1 -1
- package/themes/grid.src.js +1 -1
- 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/StackingAxis.js +0 -215
- package/es-modules/Core/Axis/TreeGridAxis.js +0 -720
- package/es-modules/Core/Axis/TreeGridTick.js +0 -317
- package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
- package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +0 -179
- package/es-modules/Extensions/Annotations/Popup.js +0 -1123
- package/es-modules/Extensions/Boost/BoostAttach.js +0 -154
- package/es-modules/Extensions/Boost/BoostInit.js +0 -324
- package/es-modules/Extensions/Boost/BoostOptions.js +0 -245
- package/es-modules/Extensions/Boost/BoostOverrides.js +0 -386
- package/es-modules/Extensions/Boost/BoostUtils.js +0 -255
- package/es-modules/Extensions/Boost/WGLVBuffer.js +0 -153
- package/es-modules/Extensions/Stacking.js +0 -517
- package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -132
- package/es-modules/Series/Networkgraph/Integrations.js +0 -348
- package/es-modules/Series/Networkgraph/Networkgraph.js +0 -1180
- package/es-modules/Series/XRange/XRangeComposition.js +0 -49
package/highcharts.src.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS v10.2.
|
|
2
|
+
* @license Highcharts JS v10.2.1 (2022-08-29)
|
|
3
3
|
*
|
|
4
4
|
* (c) 2009-2021 Torstein Honsi
|
|
5
5
|
*
|
|
@@ -55,6 +55,7 @@
|
|
|
55
55
|
* */
|
|
56
56
|
/**
|
|
57
57
|
* Shared Highcharts properties.
|
|
58
|
+
* @private
|
|
58
59
|
*/
|
|
59
60
|
var Globals;
|
|
60
61
|
(function (Globals) {
|
|
@@ -63,7 +64,7 @@
|
|
|
63
64
|
* Constants
|
|
64
65
|
*
|
|
65
66
|
* */
|
|
66
|
-
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '10.2.
|
|
67
|
+
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '10.2.1', Globals.win = (typeof window !== 'undefined' ?
|
|
67
68
|
window :
|
|
68
69
|
{}), // eslint-disable-line node/no-unsupported-features/es-builtins
|
|
69
70
|
Globals.doc = Globals.win.document, Globals.svg = (Globals.doc &&
|
|
@@ -1179,7 +1180,7 @@
|
|
|
1179
1180
|
}
|
|
1180
1181
|
// Otherwise, get the computed style
|
|
1181
1182
|
var css = win.getComputedStyle(el,
|
|
1182
|
-
|
|
1183
|
+
void 0); // eslint-disable-line no-undefined
|
|
1183
1184
|
if (css) {
|
|
1184
1185
|
style = css.getPropertyValue(prop);
|
|
1185
1186
|
if (pick(toInt, prop !== 'opacity')) {
|
|
@@ -1304,8 +1305,6 @@
|
|
|
1304
1305
|
*
|
|
1305
1306
|
* @param {T} [ctx]
|
|
1306
1307
|
* The context.
|
|
1307
|
-
*
|
|
1308
|
-
* @return {void}
|
|
1309
1308
|
*/
|
|
1310
1309
|
function objectEach(obj, fn, ctx) {
|
|
1311
1310
|
/* eslint-enable valid-jsdoc */
|
|
@@ -2642,6 +2641,7 @@
|
|
|
2642
2641
|
* @default {highstock} x
|
|
2643
2642
|
* @since 3.0
|
|
2644
2643
|
* @product highcharts highstock gantt
|
|
2644
|
+
* @deprecated
|
|
2645
2645
|
* @validvalue ["x", "y", "xy"]
|
|
2646
2646
|
* @apioption chart.pinchType
|
|
2647
2647
|
*/
|
|
@@ -2760,6 +2760,7 @@
|
|
|
2760
2760
|
/**
|
|
2761
2761
|
* The button that appears after a selection zoom, allowing the user
|
|
2762
2762
|
* to reset zoom.
|
|
2763
|
+
* @deprecated
|
|
2763
2764
|
*/
|
|
2764
2765
|
resetZoomButton: {
|
|
2765
2766
|
/**
|
|
@@ -2773,6 +2774,7 @@
|
|
|
2773
2774
|
*
|
|
2774
2775
|
* @type {Highcharts.ButtonRelativeToValue}
|
|
2775
2776
|
* @default plot
|
|
2777
|
+
* @deprecated
|
|
2776
2778
|
* @since 2.2
|
|
2777
2779
|
* @apioption chart.resetZoomButton.relativeTo
|
|
2778
2780
|
*/
|
|
@@ -2789,10 +2791,14 @@
|
|
|
2789
2791
|
* Theming the button
|
|
2790
2792
|
*
|
|
2791
2793
|
* @type {Highcharts.SVGAttributes}
|
|
2794
|
+
* @deprecated
|
|
2792
2795
|
* @since 2.2
|
|
2793
2796
|
*/
|
|
2794
2797
|
theme: {
|
|
2795
|
-
/**
|
|
2798
|
+
/**
|
|
2799
|
+
* @internal
|
|
2800
|
+
* @deprecated
|
|
2801
|
+
*/
|
|
2796
2802
|
zIndex: 6
|
|
2797
2803
|
},
|
|
2798
2804
|
/**
|
|
@@ -2806,26 +2812,31 @@
|
|
|
2806
2812
|
* Above the plot area
|
|
2807
2813
|
*
|
|
2808
2814
|
* @type {Highcharts.AlignObject}
|
|
2815
|
+
* @deprecated
|
|
2809
2816
|
* @since 2.2
|
|
2810
2817
|
*/
|
|
2811
2818
|
position: {
|
|
2812
2819
|
/**
|
|
2813
2820
|
* The horizontal alignment of the button.
|
|
2821
|
+
* @deprecated
|
|
2814
2822
|
*/
|
|
2815
2823
|
align: 'right',
|
|
2816
2824
|
/**
|
|
2817
2825
|
* The horizontal offset of the button.
|
|
2826
|
+
* @deprecated
|
|
2818
2827
|
*/
|
|
2819
2828
|
x: -10,
|
|
2820
2829
|
/**
|
|
2821
2830
|
* The vertical alignment of the button.
|
|
2822
2831
|
*
|
|
2823
2832
|
* @type {Highcharts.VerticalAlignValue}
|
|
2833
|
+
* @deprecated
|
|
2824
2834
|
* @default top
|
|
2825
2835
|
* @apioption chart.resetZoomButton.position.verticalAlign
|
|
2826
2836
|
*/
|
|
2827
2837
|
/**
|
|
2828
2838
|
* The vertical offset of the button.
|
|
2839
|
+
* @deprecated
|
|
2829
2840
|
*/
|
|
2830
2841
|
y: 10
|
|
2831
2842
|
}
|
|
@@ -3107,6 +3118,7 @@
|
|
|
3107
3118
|
*
|
|
3108
3119
|
* @type {string}
|
|
3109
3120
|
* @validvalue ["x", "y", "xy"]
|
|
3121
|
+
* @deprecated
|
|
3110
3122
|
* @apioption chart.zoomType
|
|
3111
3123
|
*/
|
|
3112
3124
|
/**
|
|
@@ -3116,12 +3128,148 @@
|
|
|
3116
3128
|
* However, `zoomBySingleTouch` will interfere with touch-dragging the
|
|
3117
3129
|
* chart to read the tooltip. And especially when vertical zooming is
|
|
3118
3130
|
* enabled, it will make it hard to scroll vertically on the page.
|
|
3119
|
-
* @since
|
|
3131
|
+
* @since 9.0.0
|
|
3120
3132
|
* @sample highcharts/chart/zoombysingletouch
|
|
3121
3133
|
* Zoom by single touch enabled, with buttons to toggle
|
|
3122
3134
|
* @product highcharts highstock gantt
|
|
3135
|
+
* @deprecated
|
|
3123
3136
|
*/
|
|
3124
3137
|
zoomBySingleTouch: false,
|
|
3138
|
+
/**
|
|
3139
|
+
* Chart zooming options.
|
|
3140
|
+
* @since 10.2.1
|
|
3141
|
+
*/
|
|
3142
|
+
zooming: {
|
|
3143
|
+
/**
|
|
3144
|
+
* Equivalent to [type](#chart.zooming.type), but for multitouch
|
|
3145
|
+
* gestures only. By default, the `pinchType` is the same as the
|
|
3146
|
+
* `type` setting. However, pinching can be enabled separately in
|
|
3147
|
+
* some cases, for example in stock charts where a mouse drag pans the
|
|
3148
|
+
* chart, while pinching is enabled. When [tooltip.followTouchMove](
|
|
3149
|
+
* #tooltip.followTouchMove) is true, pinchType only applies to
|
|
3150
|
+
* two-finger touches.
|
|
3151
|
+
*
|
|
3152
|
+
* @type {string}
|
|
3153
|
+
* @default {highcharts} undefined
|
|
3154
|
+
* @default {highstock} x
|
|
3155
|
+
* @product highcharts highstock gantt
|
|
3156
|
+
* @since 10.2.1
|
|
3157
|
+
* @validvalue ["x", "y", "xy"]
|
|
3158
|
+
* @apioption chart.zooming.pinchType
|
|
3159
|
+
*/
|
|
3160
|
+
/**
|
|
3161
|
+
* Decides in what dimensions the user can zoom by dragging the mouse.
|
|
3162
|
+
* Can be one of `x`, `y` or `xy`.
|
|
3163
|
+
*
|
|
3164
|
+
* @type {string}
|
|
3165
|
+
* @default {highcharts} undefined
|
|
3166
|
+
* @product highcharts highstock gantt
|
|
3167
|
+
* @validvalue ["x", "y", "xy"]
|
|
3168
|
+
* @since 10.2.1
|
|
3169
|
+
* @apioption chart.zooming.type
|
|
3170
|
+
*/
|
|
3171
|
+
/**
|
|
3172
|
+
* Set a key to hold when dragging to zoom the chart. This is useful to
|
|
3173
|
+
* avoid zooming while moving points. Should be set different than
|
|
3174
|
+
* [chart.panKey](#chart.panKey).
|
|
3175
|
+
*
|
|
3176
|
+
* @type {string}
|
|
3177
|
+
* @default {highcharts} undefined
|
|
3178
|
+
* @since 10.2.1
|
|
3179
|
+
* @validvalue ["alt", "ctrl", "meta", "shift"]
|
|
3180
|
+
* @requires modules/draggable-points
|
|
3181
|
+
* @apioption chart.zooming.key
|
|
3182
|
+
*/
|
|
3183
|
+
/**
|
|
3184
|
+
* Enables zooming by a single touch, in combination with
|
|
3185
|
+
* [chart.zooming.type](#chart.zooming.type). When enabled, two-finger
|
|
3186
|
+
* pinch will still work as set up by [chart.zooming.pinchType]
|
|
3187
|
+
* (#chart.zooming.pinchType). However, `singleTouch` will interfere
|
|
3188
|
+
* with touch-dragging the chart to read the tooltip. And especially
|
|
3189
|
+
* when vertical zooming is enabled, it will make it hard to scroll
|
|
3190
|
+
* vertically on the page.
|
|
3191
|
+
* @sample highcharts/chart/zoombysingletouch
|
|
3192
|
+
* Zoom by single touch enabled, with buttons to toggle
|
|
3193
|
+
* @product highcharts highstock gantt
|
|
3194
|
+
* @since 10.2.1
|
|
3195
|
+
*/
|
|
3196
|
+
singleTouch: false,
|
|
3197
|
+
/**
|
|
3198
|
+
* The button that appears after a selection zoom, allowing the user
|
|
3199
|
+
* to reset zoom.
|
|
3200
|
+
* @since 10.2.1
|
|
3201
|
+
*/
|
|
3202
|
+
resetButton: {
|
|
3203
|
+
/**
|
|
3204
|
+
* What frame the button placement should be related to. Can be
|
|
3205
|
+
* either `plotBox` or `spacingBox`.
|
|
3206
|
+
*
|
|
3207
|
+
* @sample {highcharts} highcharts/chart/resetzoombutton-relativeto/
|
|
3208
|
+
* Relative to the chart
|
|
3209
|
+
* @sample {highstock} highcharts/chart/resetzoombutton-relativeto/
|
|
3210
|
+
* Relative to the chart
|
|
3211
|
+
*
|
|
3212
|
+
* @type {Highcharts.ButtonRelativeToValue}
|
|
3213
|
+
* @default plot
|
|
3214
|
+
* @since 10.2.1
|
|
3215
|
+
* @apioption chart.zooming.resetButton.relativeTo
|
|
3216
|
+
*/
|
|
3217
|
+
/**
|
|
3218
|
+
* A collection of attributes for the button. The object takes SVG
|
|
3219
|
+
* attributes like `fill`, `stroke`, `stroke-width` or `r`, the
|
|
3220
|
+
* border radius. The theme also supports `style`, a collection of
|
|
3221
|
+
* CSS properties for the text. Equivalent attributes for the hover
|
|
3222
|
+
* state are given in `theme.states.hover`.
|
|
3223
|
+
*
|
|
3224
|
+
* @sample {highcharts} highcharts/chart/resetzoombutton-theme/
|
|
3225
|
+
* Theming the button
|
|
3226
|
+
* @sample {highstock} highcharts/chart/resetzoombutton-theme/
|
|
3227
|
+
* Theming the button
|
|
3228
|
+
*
|
|
3229
|
+
* @type {Highcharts.SVGAttributes}
|
|
3230
|
+
* @since 10.2.1
|
|
3231
|
+
*/
|
|
3232
|
+
theme: {
|
|
3233
|
+
/** @internal */
|
|
3234
|
+
zIndex: 6
|
|
3235
|
+
},
|
|
3236
|
+
/**
|
|
3237
|
+
* The position of the button.
|
|
3238
|
+
*
|
|
3239
|
+
* @sample {highcharts} highcharts/chart/resetzoombutton-position/
|
|
3240
|
+
* Above the plot area
|
|
3241
|
+
* @sample {highstock} highcharts/chart/resetzoombutton-position/
|
|
3242
|
+
* Above the plot area
|
|
3243
|
+
* @sample {highmaps} highcharts/chart/resetzoombutton-position/
|
|
3244
|
+
* Above the plot area
|
|
3245
|
+
*
|
|
3246
|
+
* @type {Highcharts.AlignObject}
|
|
3247
|
+
* @since 10.2.1
|
|
3248
|
+
*/
|
|
3249
|
+
position: {
|
|
3250
|
+
/**
|
|
3251
|
+
* The horizontal alignment of the button.
|
|
3252
|
+
*/
|
|
3253
|
+
align: 'right',
|
|
3254
|
+
/**
|
|
3255
|
+
* The horizontal offset of the button.
|
|
3256
|
+
*/
|
|
3257
|
+
x: -10,
|
|
3258
|
+
/**
|
|
3259
|
+
* The vertical alignment of the button.
|
|
3260
|
+
*
|
|
3261
|
+
* @type {Highcharts.VerticalAlignValue}
|
|
3262
|
+
* @since 10.2.1
|
|
3263
|
+
* @default top
|
|
3264
|
+
* @apioption chart.zooming.resetButton.position.verticalAlign
|
|
3265
|
+
*/
|
|
3266
|
+
/**
|
|
3267
|
+
* The vertical offset of the button.
|
|
3268
|
+
*/
|
|
3269
|
+
y: 10
|
|
3270
|
+
}
|
|
3271
|
+
}
|
|
3272
|
+
},
|
|
3125
3273
|
/**
|
|
3126
3274
|
* An explicit width for the chart. By default (when `null`) the width
|
|
3127
3275
|
* is calculated from the offset width of the containing element.
|
|
@@ -4520,6 +4668,7 @@
|
|
|
4520
4668
|
* @type {Highcharts.Options}
|
|
4521
4669
|
*/ /**
|
|
4522
4670
|
* @optionparent
|
|
4671
|
+
* @private
|
|
4523
4672
|
*/
|
|
4524
4673
|
var defaultOptions = {
|
|
4525
4674
|
/**
|
|
@@ -4552,7 +4701,7 @@
|
|
|
4552
4701
|
* @sample {highcharts} highcharts/chart/colors/
|
|
4553
4702
|
* Assign a global color theme
|
|
4554
4703
|
*
|
|
4555
|
-
* @type {Array<Highcharts.ColorString>}
|
|
4704
|
+
* @type {Array<(Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject)>}
|
|
4556
4705
|
* @default ["#7cb5ec", "#434348", "#90ed7d", "#f7a35c", "#8085e9",
|
|
4557
4706
|
* "#f15c80", "#e4d354", "#2b908f", "#f45b5b", "#91e8e1"]
|
|
4558
4707
|
*/
|
|
@@ -8112,7 +8261,8 @@
|
|
|
8112
8261
|
.trim()
|
|
8113
8262
|
// The style attribute throws a warning when parsing when CSP is
|
|
8114
8263
|
// enabled (#6884), so use an alias and pick it up below
|
|
8115
|
-
|
|
8264
|
+
// Make all quotation marks parse correctly to DOM (#17627)
|
|
8265
|
+
.replace(/ style=(["'])/g, ' data-style=$1');
|
|
8116
8266
|
var doc;
|
|
8117
8267
|
if (hasValidDOMParser) {
|
|
8118
8268
|
doc = new DOMParser().parseFromString(trustedTypesPolicy ?
|
|
@@ -8237,6 +8387,7 @@
|
|
|
8237
8387
|
'target',
|
|
8238
8388
|
'tabindex',
|
|
8239
8389
|
'text-align',
|
|
8390
|
+
'text-anchor',
|
|
8240
8391
|
'textAnchor',
|
|
8241
8392
|
'textLength',
|
|
8242
8393
|
'title',
|
|
@@ -8337,6 +8488,7 @@
|
|
|
8337
8488
|
'svg',
|
|
8338
8489
|
'table',
|
|
8339
8490
|
'text',
|
|
8491
|
+
'textPath',
|
|
8340
8492
|
'thead',
|
|
8341
8493
|
'tbody',
|
|
8342
8494
|
'tspan',
|
|
@@ -8835,7 +8987,7 @@
|
|
|
8835
8987
|
|
|
8836
8988
|
return RendererUtilities;
|
|
8837
8989
|
});
|
|
8838
|
-
_registerModule(_modules, 'Core/Renderer/SVG/SVGElement.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/
|
|
8990
|
+
_registerModule(_modules, 'Core/Renderer/SVG/SVGElement.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (A, Color, H, U) {
|
|
8839
8991
|
/* *
|
|
8840
8992
|
*
|
|
8841
8993
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -8870,6 +9022,7 @@
|
|
|
8870
9022
|
objectEach = U.objectEach,
|
|
8871
9023
|
pick = U.pick,
|
|
8872
9024
|
pInt = U.pInt,
|
|
9025
|
+
removeEvent = U.removeEvent,
|
|
8873
9026
|
syncTimeout = U.syncTimeout,
|
|
8874
9027
|
uniqueKey = U.uniqueKey;
|
|
8875
9028
|
/* *
|
|
@@ -9287,27 +9440,32 @@
|
|
|
9287
9440
|
});
|
|
9288
9441
|
// For each of the tspans and text nodes, create a copy in the
|
|
9289
9442
|
// outline.
|
|
9290
|
-
|
|
9443
|
+
var parentElem = elem.querySelector('textPath') || elem;
|
|
9444
|
+
[].forEach.call(parentElem.childNodes, function (childNode) {
|
|
9291
9445
|
var clone = childNode.cloneNode(true);
|
|
9292
9446
|
if (clone.removeAttribute) {
|
|
9293
|
-
['fill', 'stroke', 'stroke-width', 'stroke'].forEach(function (prop) { return clone
|
|
9447
|
+
['fill', 'stroke', 'stroke-width', 'stroke'].forEach(function (prop) { return clone
|
|
9448
|
+
.removeAttribute(prop); });
|
|
9294
9449
|
}
|
|
9295
9450
|
outline_1.appendChild(clone);
|
|
9296
9451
|
});
|
|
9452
|
+
// Collect the sum of dy from all children, included nested ones
|
|
9453
|
+
var totalHeight_1 = 0;
|
|
9454
|
+
[].forEach.call(parentElem.querySelectorAll('text tspan'), function (element) {
|
|
9455
|
+
totalHeight_1 += Number(element.getAttribute('dy'));
|
|
9456
|
+
});
|
|
9297
9457
|
// Insert an absolutely positioned break before the original text
|
|
9298
9458
|
// to keep it in place
|
|
9299
|
-
var
|
|
9300
|
-
|
|
9301
|
-
//
|
|
9302
|
-
|
|
9303
|
-
|
|
9304
|
-
|
|
9305
|
-
br_1.setAttribute(key, value);
|
|
9306
|
-
}
|
|
9459
|
+
var br = doc.createElementNS(SVG_NS, 'tspan');
|
|
9460
|
+
br.textContent = '\u200B';
|
|
9461
|
+
// Reset the position for the following text
|
|
9462
|
+
attr(br, {
|
|
9463
|
+
x: Number(elem.getAttribute('x')),
|
|
9464
|
+
dy: -totalHeight_1
|
|
9307
9465
|
});
|
|
9308
9466
|
// Insert the outline
|
|
9309
|
-
outline_1.appendChild(
|
|
9310
|
-
|
|
9467
|
+
outline_1.appendChild(br);
|
|
9468
|
+
parentElem.insertBefore(outline_1, parentElem.firstChild);
|
|
9311
9469
|
}
|
|
9312
9470
|
};
|
|
9313
9471
|
/**
|
|
@@ -9797,42 +9955,6 @@
|
|
|
9797
9955
|
}, this);
|
|
9798
9956
|
this.shadows = void 0;
|
|
9799
9957
|
};
|
|
9800
|
-
/**
|
|
9801
|
-
* @private
|
|
9802
|
-
*/
|
|
9803
|
-
SVGElement.prototype.destroyTextPath = function (elem, path) {
|
|
9804
|
-
var textElement = elem.getElementsByTagName('text')[0];
|
|
9805
|
-
var childNodes;
|
|
9806
|
-
if (textElement) {
|
|
9807
|
-
// Remove textPath attributes
|
|
9808
|
-
textElement.removeAttribute('dx');
|
|
9809
|
-
textElement.removeAttribute('dy');
|
|
9810
|
-
// Remove ID's:
|
|
9811
|
-
path.element.setAttribute('id', '');
|
|
9812
|
-
// Check if textElement includes textPath,
|
|
9813
|
-
if (this.textPathWrapper &&
|
|
9814
|
-
textElement.getElementsByTagName('textPath').length) {
|
|
9815
|
-
// Move nodes to <text>
|
|
9816
|
-
childNodes = this.textPathWrapper.element.childNodes;
|
|
9817
|
-
// Now move all <tspan>'s and text nodes to the <textPath> node
|
|
9818
|
-
while (childNodes.length) {
|
|
9819
|
-
textElement.appendChild(childNodes[0]);
|
|
9820
|
-
}
|
|
9821
|
-
// Remove <textPath> from the DOM
|
|
9822
|
-
textElement.removeChild(this.textPathWrapper.element);
|
|
9823
|
-
}
|
|
9824
|
-
}
|
|
9825
|
-
else if (elem.getAttribute('dx') || elem.getAttribute('dy')) {
|
|
9826
|
-
// Remove textPath attributes from elem
|
|
9827
|
-
// to get correct text-outline position
|
|
9828
|
-
elem.removeAttribute('dx');
|
|
9829
|
-
elem.removeAttribute('dy');
|
|
9830
|
-
}
|
|
9831
|
-
if (this.textPathWrapper) {
|
|
9832
|
-
// Set textPathWrapper to undefined and destroy it
|
|
9833
|
-
this.textPathWrapper = this.textPathWrapper.destroy();
|
|
9834
|
-
}
|
|
9835
|
-
};
|
|
9836
9958
|
/**
|
|
9837
9959
|
* @private
|
|
9838
9960
|
* @function Highcharts.SVGElement#dSettter
|
|
@@ -9991,9 +10113,12 @@
|
|
|
9991
10113
|
// SVG: use extend because IE9 is not allowed to change
|
|
9992
10114
|
// width and height in case of rotation (below)
|
|
9993
10115
|
extend({}, element.getBBox()) : {
|
|
9994
|
-
//
|
|
10116
|
+
// HTML elements with `exporting.allowHTML` and
|
|
10117
|
+
// legacy IE in export mode
|
|
9995
10118
|
width: element.offsetWidth,
|
|
9996
|
-
height: element.offsetHeight
|
|
10119
|
+
height: element.offsetHeight,
|
|
10120
|
+
x: 0,
|
|
10121
|
+
y: 0
|
|
9997
10122
|
};
|
|
9998
10123
|
// #3842
|
|
9999
10124
|
if (isFunction(toggleTextShadowShim)) {
|
|
@@ -10298,26 +10423,27 @@
|
|
|
10298
10423
|
return this;
|
|
10299
10424
|
};
|
|
10300
10425
|
/**
|
|
10301
|
-
*
|
|
10426
|
+
* Set a text path for a `text` or `label` element, allowing the text to
|
|
10427
|
+
* flow along a path.
|
|
10428
|
+
*
|
|
10429
|
+
* In order to unset the path for an existing element, call `setTextPath`
|
|
10430
|
+
* with `{ enabled: false }` as the second argument.
|
|
10431
|
+
*
|
|
10432
|
+
* @sample highcharts/members/renderer-textpath/ Text path demonstrated
|
|
10433
|
+
*
|
|
10302
10434
|
* @function Highcharts.SVGElement#setTextPath
|
|
10303
|
-
*
|
|
10304
|
-
*
|
|
10435
|
+
*
|
|
10436
|
+
* @param {Highcharts.SVGElement|undefined} path
|
|
10437
|
+
* Path to follow. If undefined, it allows changing options for the
|
|
10438
|
+
* existing path.
|
|
10439
|
+
*
|
|
10305
10440
|
* @param {Highcharts.DataLabelsTextPathOptionsObject} textPathOptions
|
|
10306
|
-
*
|
|
10307
|
-
*
|
|
10308
|
-
* Returns the SVGElement for chaining.
|
|
10441
|
+
* Options.
|
|
10442
|
+
*
|
|
10443
|
+
* @return {Highcharts.SVGElement} Returns the SVGElement for chaining.
|
|
10309
10444
|
*/
|
|
10310
10445
|
SVGElement.prototype.setTextPath = function (path, textPathOptions) {
|
|
10311
|
-
var
|
|
10312
|
-
textNode = this.text ? this.text.element : elem,
|
|
10313
|
-
attribsMap = {
|
|
10314
|
-
textAnchor: 'text-anchor'
|
|
10315
|
-
};
|
|
10316
|
-
var adder = false,
|
|
10317
|
-
textPathElement,
|
|
10318
|
-
textPathId,
|
|
10319
|
-
textPathWrapper = this.textPathWrapper,
|
|
10320
|
-
firstTime = !textPathWrapper;
|
|
10446
|
+
var _this = this;
|
|
10321
10447
|
// Defaults
|
|
10322
10448
|
textPathOptions = merge(true, {
|
|
10323
10449
|
enabled: true,
|
|
@@ -10327,109 +10453,70 @@
|
|
|
10327
10453
|
textAnchor: 'middle'
|
|
10328
10454
|
}
|
|
10329
10455
|
}, textPathOptions);
|
|
10330
|
-
var
|
|
10331
|
-
|
|
10332
|
-
|
|
10333
|
-
|
|
10334
|
-
|
|
10335
|
-
|
|
10336
|
-
|
|
10337
|
-
|
|
10338
|
-
|
|
10339
|
-
|
|
10340
|
-
|
|
10341
|
-
|
|
10342
|
-
|
|
10343
|
-
|
|
10344
|
-
|
|
10345
|
-
|
|
10346
|
-
|
|
10347
|
-
|
|
10348
|
-
|
|
10349
|
-
|
|
10350
|
-
|
|
10351
|
-
|
|
10352
|
-
|
|
10353
|
-
|
|
10354
|
-
|
|
10355
|
-
|
|
10356
|
-
|
|
10357
|
-
|
|
10358
|
-
|
|
10359
|
-
if (!textPathId) {
|
|
10360
|
-
path.element.setAttribute('id', textPathId = uniqueKey());
|
|
10361
|
-
}
|
|
10362
|
-
// Change DOM structure, by placing <textPath> tag in <text>
|
|
10363
|
-
if (firstTime) {
|
|
10364
|
-
// Adjust the position
|
|
10365
|
-
textNode.setAttribute('y', 0); // Firefox
|
|
10366
|
-
if (isNumber(attrs.dx)) {
|
|
10367
|
-
textNode.setAttribute('x', -attrs.dx);
|
|
10368
|
-
}
|
|
10369
|
-
// Move all <tspan>'s and text nodes to the <textPath> node. Do
|
|
10370
|
-
// not move other elements like <title> or <path>
|
|
10371
|
-
var childNodes = [].slice.call(textNode.childNodes);
|
|
10372
|
-
for (var i = 0; i < childNodes.length; i++) {
|
|
10373
|
-
var childNode = childNodes[i];
|
|
10374
|
-
if (childNode.nodeType === win.Node.TEXT_NODE ||
|
|
10375
|
-
childNode.nodeName === 'tspan') {
|
|
10376
|
-
textPathElement.appendChild(childNode);
|
|
10456
|
+
var url = this.renderer.url,
|
|
10457
|
+
textWrapper = this.text || this,
|
|
10458
|
+
textPath = textWrapper.textPath,
|
|
10459
|
+
attributes = textPathOptions.attributes,
|
|
10460
|
+
enabled = textPathOptions.enabled;
|
|
10461
|
+
path = path || (textPath && textPath.path);
|
|
10462
|
+
// Remove previously added event
|
|
10463
|
+
if (textPath) {
|
|
10464
|
+
textPath.undo();
|
|
10465
|
+
}
|
|
10466
|
+
if (path && enabled) {
|
|
10467
|
+
var undo = addEvent(textWrapper, 'afterModifyTree',
|
|
10468
|
+
function (e) {
|
|
10469
|
+
if (path && enabled) {
|
|
10470
|
+
// Set ID for the path
|
|
10471
|
+
var textPathId = path.attr('id');
|
|
10472
|
+
if (!textPathId) {
|
|
10473
|
+
path.attr('id', textPathId = uniqueKey());
|
|
10474
|
+
}
|
|
10475
|
+
// Set attributes for the <text>
|
|
10476
|
+
var textAttribs = {
|
|
10477
|
+
// dx/dy options must by set on <text> (parent), the
|
|
10478
|
+
// rest should be set on <textPath>
|
|
10479
|
+
x: 0,
|
|
10480
|
+
y: 0
|
|
10481
|
+
};
|
|
10482
|
+
if (defined(attributes.dx)) {
|
|
10483
|
+
textAttribs.dx = attributes.dx;
|
|
10484
|
+
delete attributes.dx;
|
|
10377
10485
|
}
|
|
10486
|
+
if (defined(attributes.dy)) {
|
|
10487
|
+
textAttribs.dy = attributes.dy;
|
|
10488
|
+
delete attributes.dy;
|
|
10489
|
+
}
|
|
10490
|
+
textWrapper.attr(textAttribs);
|
|
10491
|
+
// Handle label properties
|
|
10492
|
+
_this.attr({ transform: '' });
|
|
10493
|
+
if (_this.box) {
|
|
10494
|
+
_this.box = _this.box.destroy();
|
|
10495
|
+
}
|
|
10496
|
+
// Wrap the nodes in a textPath
|
|
10497
|
+
var children = e.nodes.slice(0);
|
|
10498
|
+
e.nodes.length = 0;
|
|
10499
|
+
e.nodes[0] = {
|
|
10500
|
+
tagName: 'textPath',
|
|
10501
|
+
attributes: extend(attributes, {
|
|
10502
|
+
'text-anchor': attributes.textAnchor,
|
|
10503
|
+
href: "" + url + "#".concat(textPathId)
|
|
10504
|
+
}),
|
|
10505
|
+
children: children
|
|
10506
|
+
};
|
|
10378
10507
|
}
|
|
10379
|
-
}
|
|
10380
|
-
// Add <textPath> to the DOM
|
|
10381
|
-
if (adder && textPathWrapper) {
|
|
10382
|
-
textPathWrapper.add({ element: textNode });
|
|
10383
|
-
}
|
|
10384
|
-
// Set basic options:
|
|
10385
|
-
// Use `setAttributeNS` because Safari needs this..
|
|
10386
|
-
textPathElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', this.renderer.url + '#' + textPathId);
|
|
10387
|
-
// Presentation attributes:
|
|
10388
|
-
// dx/dy options must by set on <text> (parent),
|
|
10389
|
-
// the rest should be set on <textPath>
|
|
10390
|
-
if (defined(attrs.dy)) {
|
|
10391
|
-
textPathElement.parentNode
|
|
10392
|
-
.setAttribute('dy', attrs.dy);
|
|
10393
|
-
delete attrs.dy;
|
|
10394
|
-
}
|
|
10395
|
-
if (defined(attrs.dx)) {
|
|
10396
|
-
textPathElement.parentNode
|
|
10397
|
-
.setAttribute('dx', attrs.dx);
|
|
10398
|
-
delete attrs.dx;
|
|
10399
|
-
}
|
|
10400
|
-
// Additional attributes
|
|
10401
|
-
objectEach(attrs, function (val, key) {
|
|
10402
|
-
textPathElement.setAttribute(attribsMap[key] || key, val);
|
|
10403
10508
|
});
|
|
10404
|
-
//
|
|
10405
|
-
|
|
10406
|
-
|
|
10407
|
-
|
|
10408
|
-
|
|
10409
|
-
|
|
10410
|
-
|
|
10411
|
-
|
|
10412
|
-
|
|
10413
|
-
|
|
10414
|
-
|
|
10415
|
-
});
|
|
10416
|
-
}
|
|
10417
|
-
// Disable some functions
|
|
10418
|
-
this.updateTransform = noop;
|
|
10419
|
-
this.applyTextOutline = noop;
|
|
10420
|
-
}
|
|
10421
|
-
else if (textPathWrapper) {
|
|
10422
|
-
// Reset to prototype
|
|
10423
|
-
delete this.updateTransform;
|
|
10424
|
-
delete this.applyTextOutline;
|
|
10425
|
-
// Restore DOM structure:
|
|
10426
|
-
this.destroyTextPath(elem, path);
|
|
10427
|
-
// Bring attributes back
|
|
10428
|
-
this.updateTransform();
|
|
10429
|
-
// Set textOutline back for text()
|
|
10430
|
-
if (this.options && this.options.rotation) {
|
|
10431
|
-
this.applyTextOutline(this.options.style.textOutline);
|
|
10432
|
-
}
|
|
10509
|
+
// Set the reference
|
|
10510
|
+
textWrapper.textPath = { path: path, undo: undo };
|
|
10511
|
+
}
|
|
10512
|
+
else {
|
|
10513
|
+
textWrapper.attr({ dx: 0, dy: 0 });
|
|
10514
|
+
delete textWrapper.textPath;
|
|
10515
|
+
}
|
|
10516
|
+
if (this.added) {
|
|
10517
|
+
// Rebuild text after added
|
|
10518
|
+
textWrapper.textCache = '';
|
|
10519
|
+
this.renderer.buildText(textWrapper);
|
|
10433
10520
|
}
|
|
10434
10521
|
return this;
|
|
10435
10522
|
};
|
|
@@ -10811,7 +10898,7 @@
|
|
|
10811
10898
|
if (defined(scaleX) || defined(scaleY)) {
|
|
10812
10899
|
transform.push('scale(' + pick(scaleX, 1) + ' ' + pick(scaleY, 1) + ')');
|
|
10813
10900
|
}
|
|
10814
|
-
if (transform.length) {
|
|
10901
|
+
if (transform.length && !(wrapper.text || wrapper).textPath) {
|
|
10815
10902
|
element.setAttribute('transform', transform.join(' '));
|
|
10816
10903
|
}
|
|
10817
10904
|
};
|
|
@@ -11062,6 +11149,12 @@
|
|
|
11062
11149
|
* @name Highcharts.SVGAttributes#d
|
|
11063
11150
|
* @type {string|Highcharts.SVGPathArray|undefined}
|
|
11064
11151
|
*/ /**
|
|
11152
|
+
* @name Highcharts.SVGAttributes#dx
|
|
11153
|
+
* @type {number|undefined}
|
|
11154
|
+
*/ /**
|
|
11155
|
+
* @name Highcharts.SVGAttributes#dy
|
|
11156
|
+
* @type {number|undefined}
|
|
11157
|
+
*/ /**
|
|
11065
11158
|
* @name Highcharts.SVGAttributes#fill
|
|
11066
11159
|
* @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject|undefined}
|
|
11067
11160
|
*/ /**
|
|
@@ -11474,7 +11567,8 @@
|
|
|
11474
11567
|
* the new bounding box and reflect it in the border box.
|
|
11475
11568
|
*/
|
|
11476
11569
|
SVGLabel.prototype.updateBoxSize = function () {
|
|
11477
|
-
var
|
|
11570
|
+
var text = this.text,
|
|
11571
|
+
style = text.element.style,
|
|
11478
11572
|
attribs = {},
|
|
11479
11573
|
padding = this.padding,
|
|
11480
11574
|
// #12165 error when width is null (auto)
|
|
@@ -11482,14 +11576,14 @@
|
|
|
11482
11576
|
// #3295 && 3514 box failure when string equals 0
|
|
11483
11577
|
bBox = this.bBox = (((!isNumber(this.widthSetting) ||
|
|
11484
11578
|
!isNumber(this.heightSetting) ||
|
|
11485
|
-
this.textAlign) && defined(
|
|
11486
|
-
|
|
11579
|
+
this.textAlign) && defined(text.textStr)) ?
|
|
11580
|
+
text.getBBox() :
|
|
11487
11581
|
SVGLabel.emptyBBox);
|
|
11488
11582
|
var crispAdjust;
|
|
11489
11583
|
this.width = this.getPaddedWidth();
|
|
11490
11584
|
this.height = (this.heightSetting || bBox.height || 0) + 2 * padding;
|
|
11491
11585
|
var metrics = this.renderer.fontMetrics(style && style.fontSize,
|
|
11492
|
-
|
|
11586
|
+
text);
|
|
11493
11587
|
// Update the label-scoped y offset. Math.min because of inline
|
|
11494
11588
|
// style (#9400)
|
|
11495
11589
|
this.baselineOffset = padding + Math.min(
|
|
@@ -11502,7 +11596,7 @@
|
|
|
11502
11596
|
if (this.heightSetting) {
|
|
11503
11597
|
this.baselineOffset += (this.heightSetting - metrics.h) / 2;
|
|
11504
11598
|
}
|
|
11505
|
-
if (this.needsBox) {
|
|
11599
|
+
if (this.needsBox && !text.textPath) {
|
|
11506
11600
|
// Create the border box if it is not already present
|
|
11507
11601
|
if (!this.box) {
|
|
11508
11602
|
// Symbol definition exists (#5324)
|
|
@@ -11532,32 +11626,34 @@
|
|
|
11532
11626
|
*/
|
|
11533
11627
|
SVGLabel.prototype.updateTextPadding = function () {
|
|
11534
11628
|
var text = this.text;
|
|
11535
|
-
|
|
11536
|
-
|
|
11537
|
-
|
|
11538
|
-
|
|
11539
|
-
this.
|
|
11540
|
-
|
|
11541
|
-
|
|
11542
|
-
this.
|
|
11543
|
-
|
|
11544
|
-
|
|
11545
|
-
|
|
11546
|
-
|
|
11547
|
-
|
|
11548
|
-
text.
|
|
11549
|
-
|
|
11550
|
-
|
|
11551
|
-
|
|
11552
|
-
|
|
11553
|
-
|
|
11554
|
-
|
|
11555
|
-
|
|
11556
|
-
|
|
11557
|
-
|
|
11558
|
-
|
|
11559
|
-
|
|
11560
|
-
|
|
11629
|
+
if (!text.textPath) {
|
|
11630
|
+
this.updateBoxSize();
|
|
11631
|
+
// Determine y based on the baseline
|
|
11632
|
+
var textY = this.baseline ? 0 : this.baselineOffset;
|
|
11633
|
+
var textX = pick(this.paddingLeft,
|
|
11634
|
+
this.padding);
|
|
11635
|
+
// compensate for alignment
|
|
11636
|
+
if (defined(this.widthSetting) &&
|
|
11637
|
+
this.bBox &&
|
|
11638
|
+
(this.textAlign === 'center' || this.textAlign === 'right')) {
|
|
11639
|
+
textX += { center: 0.5, right: 1 }[this.textAlign] * (this.widthSetting - this.bBox.width);
|
|
11640
|
+
}
|
|
11641
|
+
// update if anything changed
|
|
11642
|
+
if (textX !== text.x || textY !== text.y) {
|
|
11643
|
+
text.attr('x', textX);
|
|
11644
|
+
// #8159 - prevent misplaced data labels in treemap
|
|
11645
|
+
// (useHTML: true)
|
|
11646
|
+
if (text.hasBoxWidthChanged) {
|
|
11647
|
+
this.bBox = text.getBBox(true);
|
|
11648
|
+
}
|
|
11649
|
+
if (typeof textY !== 'undefined') {
|
|
11650
|
+
text.attr('y', textY);
|
|
11651
|
+
}
|
|
11652
|
+
}
|
|
11653
|
+
// record current values
|
|
11654
|
+
text.x = textX;
|
|
11655
|
+
text.y = textY;
|
|
11656
|
+
}
|
|
11561
11657
|
};
|
|
11562
11658
|
SVGLabel.prototype.widthSetter = function (value) {
|
|
11563
11659
|
// width:auto => null
|
|
@@ -11859,6 +11955,7 @@
|
|
|
11859
11955
|
win = H.win;
|
|
11860
11956
|
var attr = U.attr,
|
|
11861
11957
|
extend = U.extend,
|
|
11958
|
+
fireEvent = U.fireEvent,
|
|
11862
11959
|
isString = U.isString,
|
|
11863
11960
|
objectEach = U.objectEach,
|
|
11864
11961
|
pick = U.pick;
|
|
@@ -11919,6 +12016,7 @@
|
|
|
11919
12016
|
if (!hasMarkup &&
|
|
11920
12017
|
!this.ellipsis &&
|
|
11921
12018
|
!this.width &&
|
|
12019
|
+
!wrapper.textPath &&
|
|
11922
12020
|
(textStr.indexOf(' ') === -1 ||
|
|
11923
12021
|
(this.noWrap && !regexMatchBreaks.test(textStr)))) {
|
|
11924
12022
|
textNode.appendChild(doc.createTextNode(this.unescapeEntities(textStr)));
|
|
@@ -11935,7 +12033,7 @@
|
|
|
11935
12033
|
// Step 2. Do as many as we can of the modifications to the tree
|
|
11936
12034
|
// structure before it is added to the DOM
|
|
11937
12035
|
this.modifyTree(ast.nodes);
|
|
11938
|
-
ast.addToDOM(
|
|
12036
|
+
ast.addToDOM(textNode);
|
|
11939
12037
|
// Step 3. Some modifications can't be done until the structure is
|
|
11940
12038
|
// in the DOM, because we need to read computed metrics.
|
|
11941
12039
|
this.modifyDOM();
|
|
@@ -12193,6 +12291,7 @@
|
|
|
12193
12291
|
}
|
|
12194
12292
|
};
|
|
12195
12293
|
nodes.forEach(modifyChild);
|
|
12294
|
+
fireEvent(this.svgElement, 'afterModifyTree', { nodes: nodes });
|
|
12196
12295
|
};
|
|
12197
12296
|
/*
|
|
12198
12297
|
* Truncate the text node contents to a given length. Used when the css
|
|
@@ -12206,7 +12305,7 @@
|
|
|
12206
12305
|
rotation = svgElement.rotation;
|
|
12207
12306
|
// Cache the lengths to avoid checking the same twice
|
|
12208
12307
|
var lengths = [];
|
|
12209
|
-
// Word wrap
|
|
12308
|
+
// Word wrap cannot be truncated to shorter than one word, ellipsis
|
|
12210
12309
|
// text can be completely blank.
|
|
12211
12310
|
var minIndex = words ? 1 : 0;
|
|
12212
12311
|
var maxIndex = (text || words || '').length;
|
|
@@ -12524,7 +12623,7 @@
|
|
|
12524
12623
|
this.url = this.getReferenceURL();
|
|
12525
12624
|
// Add description
|
|
12526
12625
|
var desc = this.createElement('desc').add();
|
|
12527
|
-
desc.element.appendChild(doc.createTextNode('Created with Highcharts 10.2.
|
|
12626
|
+
desc.element.appendChild(doc.createTextNode('Created with Highcharts 10.2.1'));
|
|
12528
12627
|
renderer.defs = this.createElement('defs').add();
|
|
12529
12628
|
renderer.allowHTML = allowHTML;
|
|
12530
12629
|
renderer.forExport = forExport;
|
|
@@ -12849,7 +12948,7 @@
|
|
|
12849
12948
|
* The shape type.
|
|
12850
12949
|
*
|
|
12851
12950
|
* @param {boolean} [useHTML=false]
|
|
12852
|
-
*
|
|
12951
|
+
* Whether to use HTML to render the label.
|
|
12853
12952
|
*
|
|
12854
12953
|
* @return {Highcharts.SVGElement}
|
|
12855
12954
|
* The button element.
|
|
@@ -13976,7 +14075,7 @@
|
|
|
13976
14075
|
* coordinates it should be pinned to.
|
|
13977
14076
|
*
|
|
13978
14077
|
* @param {boolean} [useHTML=false]
|
|
13979
|
-
*
|
|
14078
|
+
* Whether to use HTML to render the label.
|
|
13980
14079
|
*
|
|
13981
14080
|
* @param {boolean} [baseline=false]
|
|
13982
14081
|
* Whether to position the label relative to the text baseline,
|
|
@@ -17669,7 +17768,7 @@
|
|
|
17669
17768
|
formatter: function () {
|
|
17670
17769
|
var numberFormatter = this.axis.chart.numberFormatter;
|
|
17671
17770
|
/* eslint-enable valid-jsdoc */
|
|
17672
|
-
return numberFormatter(this.total, -1);
|
|
17771
|
+
return numberFormatter(this.total || 0, -1);
|
|
17673
17772
|
},
|
|
17674
17773
|
/**
|
|
17675
17774
|
* CSS styles for the label.
|
|
@@ -19693,6 +19792,9 @@
|
|
|
19693
19792
|
// Backwards mapping is much faster than array searching (#7725)
|
|
19694
19793
|
this.names.keys[point.name] = x;
|
|
19695
19794
|
}
|
|
19795
|
+
else if (point.x) {
|
|
19796
|
+
x = point.x; // #17438
|
|
19797
|
+
}
|
|
19696
19798
|
return x;
|
|
19697
19799
|
};
|
|
19698
19800
|
/**
|
|
@@ -24342,11 +24444,22 @@
|
|
|
24342
24444
|
return this.label;
|
|
24343
24445
|
};
|
|
24344
24446
|
/**
|
|
24345
|
-
* Place the tooltip in a chart without spilling over
|
|
24346
|
-
*
|
|
24447
|
+
* Place the tooltip in a chart without spilling over and not covering the
|
|
24448
|
+
* point itself.
|
|
24347
24449
|
*
|
|
24348
|
-
* @private
|
|
24349
24450
|
* @function Highcharts.Tooltip#getPosition
|
|
24451
|
+
*
|
|
24452
|
+
* @param {number} boxWidth
|
|
24453
|
+
* Width of the tooltip box.
|
|
24454
|
+
*
|
|
24455
|
+
* @param {number} boxHeight
|
|
24456
|
+
* Height of the tooltip box.
|
|
24457
|
+
*
|
|
24458
|
+
* @param {Highcharts.Point} point
|
|
24459
|
+
* Tooltip related point.
|
|
24460
|
+
*
|
|
24461
|
+
* @return {Highcharts.PositionObject}
|
|
24462
|
+
* Recommended position of the tooltip.
|
|
24350
24463
|
*/
|
|
24351
24464
|
Tooltip.prototype.getPosition = function (boxWidth, boxHeight, point) {
|
|
24352
24465
|
var chart = this.chart,
|
|
@@ -25487,7 +25600,7 @@
|
|
|
25487
25600
|
* point. For other axes it holds the X value.
|
|
25488
25601
|
*
|
|
25489
25602
|
* @name Highcharts.Point#category
|
|
25490
|
-
* @type {string}
|
|
25603
|
+
* @type {number|string}
|
|
25491
25604
|
*/
|
|
25492
25605
|
this.category = void 0;
|
|
25493
25606
|
/**
|
|
@@ -25851,7 +25964,7 @@
|
|
|
25851
25964
|
props.push('graphic', 'upperGraphic', 'shadowGroup');
|
|
25852
25965
|
}
|
|
25853
25966
|
if (kinds.dataLabel) {
|
|
25854
|
-
props.push('dataLabel', 'dataLabelUpper', 'connector');
|
|
25967
|
+
props.push('dataLabel', 'dataLabelPath', 'dataLabelUpper', 'connector');
|
|
25855
25968
|
}
|
|
25856
25969
|
i = props.length;
|
|
25857
25970
|
while (i--) {
|
|
@@ -27367,10 +27480,8 @@
|
|
|
27367
27480
|
// Only search on hovered series if it has stickyTracking false
|
|
27368
27481
|
[hoverSeries] :
|
|
27369
27482
|
// Filter what series to look in.
|
|
27370
|
-
series.filter(function (s) {
|
|
27371
|
-
|
|
27372
|
-
s.stickyTracking;
|
|
27373
|
-
});
|
|
27483
|
+
series.filter(function (s) { return s.stickyTracking &&
|
|
27484
|
+
(eventArgs.filter || filter)(s); });
|
|
27374
27485
|
// Use existing hovered point or find the one closest to coordinates.
|
|
27375
27486
|
var hoverPoint = useExisting || !e ?
|
|
27376
27487
|
existingHoverPoint :
|
|
@@ -27398,8 +27509,8 @@
|
|
|
27398
27509
|
* Boost returns a minimal point. Convert it to a usable
|
|
27399
27510
|
* point for tooltip and states.
|
|
27400
27511
|
*/
|
|
27401
|
-
if (s.
|
|
27402
|
-
point = s.getPoint(point);
|
|
27512
|
+
if (s.boosted && s.boost) {
|
|
27513
|
+
point = s.boost.getPoint(point);
|
|
27403
27514
|
}
|
|
27404
27515
|
hoverPoints.push(point);
|
|
27405
27516
|
}
|
|
@@ -28303,7 +28414,7 @@
|
|
|
28303
28414
|
* @function Highcharts.Pointer#touchSelect
|
|
28304
28415
|
*/
|
|
28305
28416
|
Pointer.prototype.touchSelect = function (e) {
|
|
28306
|
-
return Boolean(this.chart.options.chart.
|
|
28417
|
+
return Boolean(this.chart.options.chart.zooming.singleTouch &&
|
|
28307
28418
|
e.touches &&
|
|
28308
28419
|
e.touches.length === 1);
|
|
28309
28420
|
};
|
|
@@ -28317,12 +28428,12 @@
|
|
|
28317
28428
|
var chart = this.chart,
|
|
28318
28429
|
options = chart.options.chart,
|
|
28319
28430
|
inverted = chart.inverted;
|
|
28320
|
-
var zoomType = options.
|
|
28431
|
+
var zoomType = options.zooming.type || '',
|
|
28321
28432
|
zoomX,
|
|
28322
28433
|
zoomY;
|
|
28323
28434
|
// Look for the pinchType option
|
|
28324
28435
|
if (/touch/.test(e.type)) {
|
|
28325
|
-
zoomType = pick(options.pinchType, zoomType);
|
|
28436
|
+
zoomType = pick(options.zooming.pinchType, zoomType);
|
|
28326
28437
|
}
|
|
28327
28438
|
this.zoomX = zoomX = /x/.test(zoomType);
|
|
28328
28439
|
this.zoomY = zoomY = /y/.test(zoomType);
|
|
@@ -30056,46 +30167,23 @@
|
|
|
30056
30167
|
* Functions
|
|
30057
30168
|
*
|
|
30058
30169
|
* */
|
|
30059
|
-
/* eslint-disable valid-jsdoc */
|
|
30060
|
-
/**
|
|
30061
|
-
* Internal function to initialize an individual series.
|
|
30062
|
-
* @private
|
|
30063
|
-
*/
|
|
30064
|
-
function getSeries(chart, options) {
|
|
30065
|
-
if (options === void 0) { options = {}; }
|
|
30066
|
-
var optionsChart = chart.options.chart,
|
|
30067
|
-
type = (options.type ||
|
|
30068
|
-
optionsChart.type ||
|
|
30069
|
-
optionsChart.defaultSeriesType ||
|
|
30070
|
-
''),
|
|
30071
|
-
SeriesClass = SeriesRegistry.seriesTypes[type];
|
|
30072
|
-
// No such series type
|
|
30073
|
-
if (!SeriesRegistry) {
|
|
30074
|
-
error(17, true, chart, { missingModuleFor: type });
|
|
30075
|
-
}
|
|
30076
|
-
var series = new SeriesClass();
|
|
30077
|
-
if (typeof series.init === 'function') {
|
|
30078
|
-
series.init(chart, options);
|
|
30079
|
-
}
|
|
30080
|
-
return series;
|
|
30081
|
-
}
|
|
30082
|
-
SeriesRegistry.getSeries = getSeries;
|
|
30083
30170
|
/**
|
|
30084
30171
|
* Registers class pattern of a series.
|
|
30085
30172
|
*
|
|
30086
30173
|
* @private
|
|
30087
30174
|
*/
|
|
30088
|
-
function registerSeriesType(seriesType,
|
|
30175
|
+
function registerSeriesType(seriesType, SeriesClass) {
|
|
30089
30176
|
var defaultPlotOptions = defaultOptions.plotOptions || {},
|
|
30090
|
-
seriesOptions =
|
|
30091
|
-
|
|
30092
|
-
|
|
30177
|
+
seriesOptions = SeriesClass.defaultOptions,
|
|
30178
|
+
seriesProto = SeriesClass.prototype;
|
|
30179
|
+
seriesProto.type = seriesType;
|
|
30180
|
+
if (!seriesProto.pointClass) {
|
|
30181
|
+
seriesProto.pointClass = Point;
|
|
30093
30182
|
}
|
|
30094
|
-
seriesClass.prototype.type = seriesType;
|
|
30095
30183
|
if (seriesOptions) {
|
|
30096
30184
|
defaultPlotOptions[seriesType] = seriesOptions;
|
|
30097
30185
|
}
|
|
30098
|
-
SeriesRegistry.seriesTypes[seriesType] =
|
|
30186
|
+
SeriesRegistry.seriesTypes[seriesType] = SeriesClass;
|
|
30099
30187
|
}
|
|
30100
30188
|
SeriesRegistry.registerSeriesType = registerSeriesType;
|
|
30101
30189
|
/**
|
|
@@ -30140,7 +30228,6 @@
|
|
|
30140
30228
|
return SeriesRegistry.seriesTypes[type];
|
|
30141
30229
|
}
|
|
30142
30230
|
SeriesRegistry.seriesType = seriesType;
|
|
30143
|
-
/* eslint-enable valid-jsdoc */
|
|
30144
30231
|
})(SeriesRegistry || (SeriesRegistry = {}));
|
|
30145
30232
|
/* *
|
|
30146
30233
|
*
|
|
@@ -30389,6 +30476,15 @@
|
|
|
30389
30476
|
this.labelCollectors = [];
|
|
30390
30477
|
this.callback = callback;
|
|
30391
30478
|
this.isResizing = 0;
|
|
30479
|
+
var zooming = optionsChart.zooming = optionsChart.zooming || {};
|
|
30480
|
+
// Other options have no default so just pick
|
|
30481
|
+
if (userOptions.chart && !userOptions.chart.zooming) {
|
|
30482
|
+
zooming.resetButton = optionsChart.resetZoomButton;
|
|
30483
|
+
}
|
|
30484
|
+
zooming.key = pick(zooming.key, optionsChart.zoomKey);
|
|
30485
|
+
zooming.pinchType = pick(zooming.pinchType, optionsChart.pinchType);
|
|
30486
|
+
zooming.singleTouch = pick(zooming.singleTouch, optionsChart.zoomBySingleTouch);
|
|
30487
|
+
zooming.type = pick(zooming.type, optionsChart.zoomType);
|
|
30392
30488
|
/**
|
|
30393
30489
|
* The options structure for the chart after merging
|
|
30394
30490
|
* {@link #defaultOptions} and {@link #userOptions}. It contains
|
|
@@ -32820,7 +32916,7 @@
|
|
|
32820
32916
|
Chart.prototype.showResetZoom = function () {
|
|
32821
32917
|
var chart = this,
|
|
32822
32918
|
lang = defaultOptions.lang,
|
|
32823
|
-
btnOptions = chart.options.chart.
|
|
32919
|
+
btnOptions = chart.options.chart.zooming.resetButton,
|
|
32824
32920
|
theme = btnOptions.theme,
|
|
32825
32921
|
alignTo = (btnOptions.relativeTo === 'chart' ||
|
|
32826
32922
|
btnOptions.relativeTo === 'spacingBox' ?
|
|
@@ -33065,6 +33161,8 @@
|
|
|
33065
33161
|
*
|
|
33066
33162
|
* Note: We need to define these references after initializers are bound to
|
|
33067
33163
|
* chart's prototype.
|
|
33164
|
+
*
|
|
33165
|
+
* @private
|
|
33068
33166
|
*/
|
|
33069
33167
|
collectionsWithInit: {
|
|
33070
33168
|
// collectionName: [ initializingMethod, [extraArguments] ]
|
|
@@ -33075,6 +33173,7 @@
|
|
|
33075
33173
|
/**
|
|
33076
33174
|
* These collections (arrays) implement update() methods with support for
|
|
33077
33175
|
* one-to-one option.
|
|
33176
|
+
* @private
|
|
33078
33177
|
*/
|
|
33079
33178
|
collectionsWithUpdate: [
|
|
33080
33179
|
'xAxis',
|
|
@@ -33084,6 +33183,7 @@
|
|
|
33084
33183
|
/**
|
|
33085
33184
|
* These properties cause isDirtyBox to be set to true when updating. Can be
|
|
33086
33185
|
* extended from plugins.
|
|
33186
|
+
* @private
|
|
33087
33187
|
*/
|
|
33088
33188
|
propsRequireDirtyBox: [
|
|
33089
33189
|
'backgroundColor',
|
|
@@ -33100,7 +33200,7 @@
|
|
|
33100
33200
|
/**
|
|
33101
33201
|
* These properties require a full reflow of chart elements, best
|
|
33102
33202
|
* implemented through running `Chart.setSize` internally (#8190).
|
|
33103
|
-
* @
|
|
33203
|
+
* @private
|
|
33104
33204
|
*/
|
|
33105
33205
|
propsRequireReflow: [
|
|
33106
33206
|
'margin',
|
|
@@ -33117,6 +33217,7 @@
|
|
|
33117
33217
|
/**
|
|
33118
33218
|
* These properties cause all series to be updated when updating. Can be
|
|
33119
33219
|
* extended from plugins.
|
|
33220
|
+
* @private
|
|
33120
33221
|
*/
|
|
33121
33222
|
propsRequireUpdateSeries: [
|
|
33122
33223
|
'chart.inverted',
|
|
@@ -33789,6 +33890,9 @@
|
|
|
33789
33890
|
/**
|
|
33790
33891
|
* The line cap used for line ends and line joins on the graph.
|
|
33791
33892
|
*
|
|
33893
|
+
* @sample highcharts/series-line/linecap/
|
|
33894
|
+
* Line cap comparison
|
|
33895
|
+
*
|
|
33792
33896
|
* @type {Highcharts.SeriesLinecapValue}
|
|
33793
33897
|
* @default round
|
|
33794
33898
|
* @product highcharts highstock
|
|
@@ -35190,13 +35294,13 @@
|
|
|
35190
35294
|
*/
|
|
35191
35295
|
x: 0,
|
|
35192
35296
|
/**
|
|
35193
|
-
* The
|
|
35194
|
-
* the series
|
|
35297
|
+
* The z index of the data labels. Use a `zIndex` of 6 to display it above
|
|
35298
|
+
* the series, or use a `zIndex` of 2 to display it behind the series.
|
|
35195
35299
|
*
|
|
35196
35300
|
* @type {number}
|
|
35197
35301
|
* @default 6
|
|
35198
35302
|
* @since 2.3.5
|
|
35199
|
-
* @apioption plotOptions.series.dataLabels.
|
|
35303
|
+
* @apioption plotOptions.series.dataLabels.zIndex
|
|
35200
35304
|
*/
|
|
35201
35305
|
/**
|
|
35202
35306
|
* The y position offset of the label relative to the point in
|
|
@@ -35634,6 +35738,8 @@
|
|
|
35634
35738
|
*
|
|
35635
35739
|
* @sample highcharts/coloraxis/custom-color-key/
|
|
35636
35740
|
* Custom color key
|
|
35741
|
+
* @sample highcharts/coloraxis/color-key-with-stops/
|
|
35742
|
+
* Custom colorKey with color axis stops
|
|
35637
35743
|
* @sample highcharts/coloraxis/changed-default-color-key/
|
|
35638
35744
|
* Changed default color key
|
|
35639
35745
|
*
|
|
@@ -35675,7 +35781,7 @@
|
|
|
35675
35781
|
|
|
35676
35782
|
return seriesDefaults;
|
|
35677
35783
|
});
|
|
35678
|
-
_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,
|
|
35784
|
+
_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, DO, F, H, LegendSymbol, Point, SeriesDefaults, SeriesRegistry, SVGElement, U) {
|
|
35679
35785
|
/* *
|
|
35680
35786
|
*
|
|
35681
35787
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -35687,7 +35793,7 @@
|
|
|
35687
35793
|
* */
|
|
35688
35794
|
var animObject = A.animObject,
|
|
35689
35795
|
setAnimation = A.setAnimation;
|
|
35690
|
-
var defaultOptions =
|
|
35796
|
+
var defaultOptions = DO.defaultOptions;
|
|
35691
35797
|
var registerEventOptions = F.registerEventOptions;
|
|
35692
35798
|
var hasTouch = H.hasTouch,
|
|
35693
35799
|
svg = H.svg,
|
|
@@ -36386,7 +36492,7 @@
|
|
|
36386
36492
|
};
|
|
36387
36493
|
/**
|
|
36388
36494
|
* Internal function called from setData. If the point count is the same
|
|
36389
|
-
* as
|
|
36495
|
+
* as it was, or if there are overlapping X values, just run
|
|
36390
36496
|
* Point.update which is cheaper, allows animation, and keeps references
|
|
36391
36497
|
* to points. This also allows adding or removing points if the X-es
|
|
36392
36498
|
* don't match.
|
|
@@ -36552,6 +36658,7 @@
|
|
|
36552
36658
|
* `false` to prevent.
|
|
36553
36659
|
*/
|
|
36554
36660
|
Series.prototype.setData = function (data, redraw, animation, updatePoints) {
|
|
36661
|
+
if (redraw === void 0) { redraw = true; }
|
|
36555
36662
|
var series = this,
|
|
36556
36663
|
oldData = series.points,
|
|
36557
36664
|
oldDataLength = (oldData && oldData.length) || 0,
|
|
@@ -36584,7 +36691,6 @@
|
|
|
36584
36691
|
}
|
|
36585
36692
|
data = copiedData || data || [];
|
|
36586
36693
|
var dataLength = data.length;
|
|
36587
|
-
redraw = pick(redraw, true);
|
|
36588
36694
|
if (dataSorting && dataSorting.enabled) {
|
|
36589
36695
|
data = this.sortData(data);
|
|
36590
36696
|
}
|
|
@@ -36599,7 +36705,7 @@
|
|
|
36599
36705
|
series.visible &&
|
|
36600
36706
|
// Soft updating has no benefit in boost, and causes JS error
|
|
36601
36707
|
// (#8355)
|
|
36602
|
-
!series.
|
|
36708
|
+
!series.boosted) {
|
|
36603
36709
|
updatedData = this.updateData(data, animation);
|
|
36604
36710
|
}
|
|
36605
36711
|
if (!updatedData) {
|
|
@@ -36990,26 +37096,6 @@
|
|
|
36990
37096
|
else {
|
|
36991
37097
|
// splat the y data in case of ohlc data array
|
|
36992
37098
|
point = (new PointClass()).init(series, [processedXData[i]].concat(splat(processedYData[i])));
|
|
36993
|
-
/**
|
|
36994
|
-
* Highcharts Stock only. If a point object is created by data
|
|
36995
|
-
* grouping, it doesn't reflect actual points in the raw
|
|
36996
|
-
* data. In this case, the `dataGroup` property holds
|
|
36997
|
-
* information that points back to the raw data.
|
|
36998
|
-
*
|
|
36999
|
-
* - `dataGroup.start` is the index of the first raw data
|
|
37000
|
-
* point in the group.
|
|
37001
|
-
*
|
|
37002
|
-
* - `dataGroup.length` is the amount of points in the
|
|
37003
|
-
* group.
|
|
37004
|
-
*
|
|
37005
|
-
* @product highstock
|
|
37006
|
-
*
|
|
37007
|
-
* @name Highcharts.Point#dataGroup
|
|
37008
|
-
* @type {Highcharts.DataGroupingInfoObject|undefined}
|
|
37009
|
-
*
|
|
37010
|
-
* @sample stock/members/point-datagroup
|
|
37011
|
-
* Click to inspect raw data points
|
|
37012
|
-
*/
|
|
37013
37099
|
point.dataGroup = series.groupMap[groupCropStartIndex + i];
|
|
37014
37100
|
if (point.dataGroup.options) {
|
|
37015
37101
|
point.options = point.dataGroup.options;
|
|
@@ -37902,8 +37988,8 @@
|
|
|
37902
37988
|
clips = (this.clips || []),
|
|
37903
37989
|
graph = this.graph,
|
|
37904
37990
|
area = this.area,
|
|
37905
|
-
|
|
37906
|
-
chart.
|
|
37991
|
+
plotSizeMax = Math.max(chart.plotWidth,
|
|
37992
|
+
chart.plotHeight),
|
|
37907
37993
|
axis = this[(this.zoneAxis || 'y') + 'Axis'],
|
|
37908
37994
|
inverted = chart.inverted;
|
|
37909
37995
|
var translatedFrom,
|
|
@@ -37940,8 +38026,8 @@
|
|
|
37940
38026
|
translatedFrom = reversed ?
|
|
37941
38027
|
(horiz ? chart.plotWidth : 0) :
|
|
37942
38028
|
(horiz ? 0 : (axis.toPixels(extremes.min) || 0));
|
|
37943
|
-
translatedFrom = clamp(pick(translatedTo, translatedFrom), 0,
|
|
37944
|
-
translatedTo = clamp(Math.round(axis.toPixels(pick(threshold.value, extremes.max), true) || 0), 0,
|
|
38029
|
+
translatedFrom = clamp(pick(translatedTo, translatedFrom), 0, plotSizeMax);
|
|
38030
|
+
translatedTo = clamp(Math.round(axis.toPixels(pick(threshold.value, extremes.max), true) || 0), 0, plotSizeMax);
|
|
37945
38031
|
if (ignoreZones) {
|
|
37946
38032
|
translatedFrom = translatedTo =
|
|
37947
38033
|
axis.toPixels(extremes.max);
|
|
@@ -37954,7 +38040,7 @@
|
|
|
37954
38040
|
x: inverted ? pxPosMax : pxPosMin,
|
|
37955
38041
|
y: 0,
|
|
37956
38042
|
width: pxRange,
|
|
37957
|
-
height:
|
|
38043
|
+
height: plotSizeMax
|
|
37958
38044
|
};
|
|
37959
38045
|
if (!horiz) {
|
|
37960
38046
|
clipAttr.x = chart.plotHeight - clipAttr.x;
|
|
@@ -37964,7 +38050,7 @@
|
|
|
37964
38050
|
clipAttr = {
|
|
37965
38051
|
x: 0,
|
|
37966
38052
|
y: inverted ? pxPosMax : pxPosMin,
|
|
37967
|
-
width:
|
|
38053
|
+
width: plotSizeMax,
|
|
37968
38054
|
height: pxRange
|
|
37969
38055
|
};
|
|
37970
38056
|
if (horiz) {
|
|
@@ -38418,7 +38504,7 @@
|
|
|
38418
38504
|
}
|
|
38419
38505
|
if (tree[sideB]) {
|
|
38420
38506
|
// compare distance to current best to splitting point to
|
|
38421
|
-
// decide
|
|
38507
|
+
// decide whether to check side B or not
|
|
38422
38508
|
if (Math.sqrt(tdist * tdist) < ret[kdComparer]) {
|
|
38423
38509
|
nPoint2 = _search(search, tree[sideB], depth + 1, dimensions);
|
|
38424
38510
|
ret = (nPoint2[kdComparer] <
|
|
@@ -39347,6 +39433,31 @@
|
|
|
39347
39433
|
return this.chart.isInsidePlot(plotX, plotY, options);
|
|
39348
39434
|
};
|
|
39349
39435
|
Series.defaultOptions = SeriesDefaults;
|
|
39436
|
+
/**
|
|
39437
|
+
* Registry of all available series types.
|
|
39438
|
+
*
|
|
39439
|
+
* @name Highcharts.Series.types
|
|
39440
|
+
* @type {Highcharts.Dictionary<typeof_Highcharts.Series>}
|
|
39441
|
+
*/
|
|
39442
|
+
Series.types = SeriesRegistry.seriesTypes;
|
|
39443
|
+
/* *
|
|
39444
|
+
*
|
|
39445
|
+
* Static Functions
|
|
39446
|
+
*
|
|
39447
|
+
* */
|
|
39448
|
+
/**
|
|
39449
|
+
* Registers a series class to be accessible via `Series.types`.
|
|
39450
|
+
*
|
|
39451
|
+
* @function Highcharts.Series.registerType
|
|
39452
|
+
*
|
|
39453
|
+
* @param {string} seriesType
|
|
39454
|
+
* The series type as an identifier string in lower case.
|
|
39455
|
+
*
|
|
39456
|
+
* @param {Function} SeriesClass
|
|
39457
|
+
* The series class as a class pattern or a constructor function with
|
|
39458
|
+
* prototype.
|
|
39459
|
+
*/
|
|
39460
|
+
Series.registerType = SeriesRegistry.registerSeriesType;
|
|
39350
39461
|
return Series;
|
|
39351
39462
|
}());
|
|
39352
39463
|
extend(Series.prototype, {
|
|
@@ -40095,7 +40206,7 @@
|
|
|
40095
40206
|
* Scrollable plot area
|
|
40096
40207
|
* @sample highcharts/chart/scrollable-plotarea-vertical
|
|
40097
40208
|
* Vertically scrollable plot area
|
|
40098
|
-
* @sample {gantt}
|
|
40209
|
+
* @sample {gantt} gantt/chart/scrollable-plotarea-vertical
|
|
40099
40210
|
* Gantt chart with vertically scrollable plot area
|
|
40100
40211
|
*
|
|
40101
40212
|
* @since 6.1.0
|
|
@@ -40150,7 +40261,7 @@
|
|
|
40150
40261
|
(''); // keep doclets above in transpiled file
|
|
40151
40262
|
|
|
40152
40263
|
});
|
|
40153
|
-
_registerModule(_modules, 'Core/Axis/
|
|
40264
|
+
_registerModule(_modules, 'Core/Axis/Stacking/StackItem.js', [_modules['Core/FormatUtilities.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (FU, SeriesRegistry, U) {
|
|
40154
40265
|
/* *
|
|
40155
40266
|
*
|
|
40156
40267
|
* (c) 2010-2021 Torstein Honsi
|
|
@@ -40160,264 +40271,28 @@
|
|
|
40160
40271
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
40161
40272
|
*
|
|
40162
40273
|
* */
|
|
40163
|
-
var
|
|
40164
|
-
var
|
|
40165
|
-
|
|
40166
|
-
fireEvent = U.fireEvent,
|
|
40167
|
-
isNumber = U.isNumber,
|
|
40168
|
-
objectEach = U.objectEach;
|
|
40169
|
-
/* *
|
|
40170
|
-
*
|
|
40171
|
-
* Composition
|
|
40172
|
-
*
|
|
40173
|
-
* */
|
|
40174
|
-
/**
|
|
40175
|
-
* @private
|
|
40176
|
-
*/
|
|
40177
|
-
var StackingAxis;
|
|
40178
|
-
(function (StackingAxis) {
|
|
40179
|
-
/* *
|
|
40180
|
-
*
|
|
40181
|
-
* Declarations
|
|
40182
|
-
*
|
|
40183
|
-
* */
|
|
40184
|
-
/* *
|
|
40185
|
-
*
|
|
40186
|
-
* Constants
|
|
40187
|
-
*
|
|
40188
|
-
* */
|
|
40189
|
-
var composedClasses = [];
|
|
40190
|
-
/* *
|
|
40191
|
-
*
|
|
40192
|
-
* Functions
|
|
40193
|
-
*
|
|
40194
|
-
* */
|
|
40195
|
-
/* eslint-disable valid-jsdoc */
|
|
40196
|
-
/**
|
|
40197
|
-
* Extends axis with stacking support.
|
|
40198
|
-
* @private
|
|
40199
|
-
*/
|
|
40200
|
-
function compose(AxisClass) {
|
|
40201
|
-
if (composedClasses.indexOf(AxisClass) === -1) {
|
|
40202
|
-
composedClasses.push(AxisClass);
|
|
40203
|
-
addEvent(AxisClass, 'init', onInit);
|
|
40204
|
-
addEvent(AxisClass, 'destroy', onDestroy);
|
|
40205
|
-
}
|
|
40206
|
-
return AxisClass;
|
|
40207
|
-
}
|
|
40208
|
-
StackingAxis.compose = compose;
|
|
40209
|
-
/**
|
|
40210
|
-
* @private
|
|
40211
|
-
*/
|
|
40212
|
-
function onDestroy() {
|
|
40213
|
-
var stacking = this.stacking;
|
|
40214
|
-
if (!stacking) {
|
|
40215
|
-
return;
|
|
40216
|
-
}
|
|
40217
|
-
var stacks = stacking.stacks;
|
|
40218
|
-
// Destroy each stack total
|
|
40219
|
-
objectEach(stacks, function (stack, stackKey) {
|
|
40220
|
-
destroyObjectProperties(stack);
|
|
40221
|
-
stacks[stackKey] = null;
|
|
40222
|
-
});
|
|
40223
|
-
if (stacking &&
|
|
40224
|
-
stacking.stackTotalGroup) {
|
|
40225
|
-
stacking.stackTotalGroup.destroy();
|
|
40226
|
-
}
|
|
40227
|
-
}
|
|
40228
|
-
/**
|
|
40229
|
-
* @private
|
|
40230
|
-
*/
|
|
40231
|
-
function onInit() {
|
|
40232
|
-
var axis = this;
|
|
40233
|
-
if (!axis.stacking) {
|
|
40234
|
-
axis.stacking = new Additions(axis);
|
|
40235
|
-
}
|
|
40236
|
-
}
|
|
40237
|
-
/* *
|
|
40238
|
-
*
|
|
40239
|
-
* Class
|
|
40240
|
-
*
|
|
40241
|
-
* */
|
|
40242
|
-
/**
|
|
40243
|
-
* Adds stacking support to axes.
|
|
40244
|
-
* @private
|
|
40245
|
-
* @class
|
|
40246
|
-
*/
|
|
40247
|
-
var Additions = /** @class */ (function () {
|
|
40248
|
-
/* *
|
|
40249
|
-
*
|
|
40250
|
-
* Constructors
|
|
40251
|
-
*
|
|
40252
|
-
* */
|
|
40253
|
-
function Additions(axis) {
|
|
40254
|
-
this.oldStacks = {};
|
|
40255
|
-
this.stacks = {};
|
|
40256
|
-
this.stacksTouched = 0;
|
|
40257
|
-
this.axis = axis;
|
|
40258
|
-
}
|
|
40259
|
-
/* *
|
|
40260
|
-
*
|
|
40261
|
-
* Functions
|
|
40262
|
-
*
|
|
40263
|
-
* */
|
|
40264
|
-
/**
|
|
40265
|
-
* Build the stacks from top down
|
|
40266
|
-
* @private
|
|
40267
|
-
*/
|
|
40268
|
-
Additions.prototype.buildStacks = function () {
|
|
40269
|
-
var stacking = this;
|
|
40270
|
-
var axis = stacking.axis;
|
|
40271
|
-
var axisSeries = axis.series;
|
|
40272
|
-
var reversedStacks = axis.options.reversedStacks;
|
|
40273
|
-
var len = axisSeries.length;
|
|
40274
|
-
var actualSeries,
|
|
40275
|
-
i;
|
|
40276
|
-
if (!axis.isXAxis) {
|
|
40277
|
-
stacking.usePercentage = false;
|
|
40278
|
-
i = len;
|
|
40279
|
-
while (i--) {
|
|
40280
|
-
actualSeries = axisSeries[reversedStacks ? i : len - i - 1];
|
|
40281
|
-
actualSeries.setStackedPoints();
|
|
40282
|
-
actualSeries.setGroupedPoints();
|
|
40283
|
-
}
|
|
40284
|
-
// Loop up again to compute percent and stream stack
|
|
40285
|
-
for (i = 0; i < len; i++) {
|
|
40286
|
-
axisSeries[i].modifyStacks();
|
|
40287
|
-
}
|
|
40288
|
-
fireEvent(axis, 'afterBuildStacks');
|
|
40289
|
-
}
|
|
40290
|
-
};
|
|
40291
|
-
/**
|
|
40292
|
-
* @private
|
|
40293
|
-
*/
|
|
40294
|
-
Additions.prototype.cleanStacks = function () {
|
|
40295
|
-
var stacking = this,
|
|
40296
|
-
axis = stacking.axis;
|
|
40297
|
-
var stacks;
|
|
40298
|
-
if (!axis.isXAxis) {
|
|
40299
|
-
if (stacking.oldStacks) {
|
|
40300
|
-
stacks = stacking.stacks = stacking.oldStacks;
|
|
40301
|
-
}
|
|
40302
|
-
// reset stacks
|
|
40303
|
-
objectEach(stacks, function (type) {
|
|
40304
|
-
objectEach(type, function (stack) {
|
|
40305
|
-
stack.cumulative = stack.total;
|
|
40306
|
-
});
|
|
40307
|
-
});
|
|
40308
|
-
}
|
|
40309
|
-
};
|
|
40310
|
-
/**
|
|
40311
|
-
* Set all the stacks to initial states and destroy unused ones.
|
|
40312
|
-
* @private
|
|
40313
|
-
*/
|
|
40314
|
-
Additions.prototype.resetStacks = function () {
|
|
40315
|
-
var stacking = this,
|
|
40316
|
-
axis = stacking.axis,
|
|
40317
|
-
stacks = stacking.stacks;
|
|
40318
|
-
if (!axis.isXAxis) {
|
|
40319
|
-
objectEach(stacks, function (type) {
|
|
40320
|
-
objectEach(type, function (stack, x) {
|
|
40321
|
-
// Clean up memory after point deletion (#1044, #4320)
|
|
40322
|
-
if (isNumber(stack.touched) &&
|
|
40323
|
-
stack.touched < stacking.stacksTouched) {
|
|
40324
|
-
stack.destroy();
|
|
40325
|
-
delete type[x];
|
|
40326
|
-
// Reset stacks
|
|
40327
|
-
}
|
|
40328
|
-
else {
|
|
40329
|
-
stack.total = null;
|
|
40330
|
-
stack.cumulative = null;
|
|
40331
|
-
}
|
|
40332
|
-
});
|
|
40333
|
-
});
|
|
40334
|
-
}
|
|
40335
|
-
};
|
|
40336
|
-
/**
|
|
40337
|
-
* @private
|
|
40338
|
-
*/
|
|
40339
|
-
Additions.prototype.renderStackTotals = function () {
|
|
40340
|
-
var stacking = this,
|
|
40341
|
-
axis = stacking.axis,
|
|
40342
|
-
chart = axis.chart,
|
|
40343
|
-
renderer = chart.renderer,
|
|
40344
|
-
stacks = stacking.stacks,
|
|
40345
|
-
stackLabelsAnim = axis.options.stackLabels &&
|
|
40346
|
-
axis.options.stackLabels.animation,
|
|
40347
|
-
animationConfig = getDeferredAnimation(chart,
|
|
40348
|
-
stackLabelsAnim || false),
|
|
40349
|
-
stackTotalGroup = stacking.stackTotalGroup = (stacking.stackTotalGroup ||
|
|
40350
|
-
renderer
|
|
40351
|
-
.g('stack-labels')
|
|
40352
|
-
.attr({
|
|
40353
|
-
zIndex: 6,
|
|
40354
|
-
opacity: 0
|
|
40355
|
-
})
|
|
40356
|
-
.add());
|
|
40357
|
-
// plotLeft/Top will change when y axis gets wider so we need to
|
|
40358
|
-
// translate the stackTotalGroup at every render call. See bug #506
|
|
40359
|
-
// and #516
|
|
40360
|
-
stackTotalGroup.translate(chart.plotLeft, chart.plotTop);
|
|
40361
|
-
// Render each stack total
|
|
40362
|
-
objectEach(stacks, function (type) {
|
|
40363
|
-
objectEach(type, function (stack) {
|
|
40364
|
-
stack.render(stackTotalGroup);
|
|
40365
|
-
});
|
|
40366
|
-
});
|
|
40367
|
-
stackTotalGroup.animate({
|
|
40368
|
-
opacity: 1
|
|
40369
|
-
}, animationConfig);
|
|
40370
|
-
};
|
|
40371
|
-
return Additions;
|
|
40372
|
-
}());
|
|
40373
|
-
StackingAxis.Additions = Additions;
|
|
40374
|
-
})(StackingAxis || (StackingAxis = {}));
|
|
40375
|
-
/* *
|
|
40376
|
-
*
|
|
40377
|
-
* Default Export
|
|
40378
|
-
*
|
|
40379
|
-
* */
|
|
40380
|
-
|
|
40381
|
-
return StackingAxis;
|
|
40382
|
-
});
|
|
40383
|
-
_registerModule(_modules, 'Extensions/Stacking.js', [_modules['Core/Axis/Axis.js'], _modules['Core/Chart/Chart.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Globals.js'], _modules['Core/Series/Series.js'], _modules['Core/Axis/StackingAxis.js'], _modules['Core/Utilities.js']], function (Axis, Chart, F, H, Series, StackingAxis, U) {
|
|
40384
|
-
/* *
|
|
40385
|
-
*
|
|
40386
|
-
* (c) 2010-2021 Torstein Honsi
|
|
40387
|
-
*
|
|
40388
|
-
* License: www.highcharts.com/license
|
|
40389
|
-
*
|
|
40390
|
-
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
40391
|
-
*
|
|
40392
|
-
* */
|
|
40393
|
-
var format = F.format;
|
|
40394
|
-
var correctFloat = U.correctFloat,
|
|
40395
|
-
defined = U.defined,
|
|
40274
|
+
var format = FU.format;
|
|
40275
|
+
var Series = SeriesRegistry.series;
|
|
40276
|
+
var defined = U.defined,
|
|
40396
40277
|
destroyObjectProperties = U.destroyObjectProperties,
|
|
40397
|
-
isArray = U.isArray,
|
|
40398
40278
|
isNumber = U.isNumber,
|
|
40399
|
-
objectEach = U.objectEach,
|
|
40400
40279
|
pick = U.pick;
|
|
40401
40280
|
/* *
|
|
40402
40281
|
*
|
|
40403
40282
|
* Class
|
|
40404
40283
|
*
|
|
40405
40284
|
* */
|
|
40406
|
-
/* eslint-disable no-invalid-this, valid-jsdoc */
|
|
40407
40285
|
/**
|
|
40408
40286
|
* The class for stacks. Each stack, on a specific X value and either negative
|
|
40409
40287
|
* or positive, has its own stack item.
|
|
40410
|
-
*
|
|
40411
40288
|
* @private
|
|
40412
|
-
* @class
|
|
40413
|
-
* @name Highcharts.StackItem
|
|
40414
|
-
* @param {Highcharts.Axis} axis
|
|
40415
|
-
* @param {Highcharts.YAxisStackLabelsOptions} options
|
|
40416
|
-
* @param {boolean} isNegative
|
|
40417
|
-
* @param {number} x
|
|
40418
|
-
* @param {Highcharts.OptionsStackingValue} [stackOption]
|
|
40419
40289
|
*/
|
|
40420
40290
|
var StackItem = /** @class */ (function () {
|
|
40291
|
+
/* *
|
|
40292
|
+
*
|
|
40293
|
+
* Constructor
|
|
40294
|
+
*
|
|
40295
|
+
* */
|
|
40421
40296
|
function StackItem(axis, options, isNegative, x, stackOption) {
|
|
40422
40297
|
var inverted = axis.chart.inverted;
|
|
40423
40298
|
this.axis = axis;
|
|
@@ -40429,6 +40304,7 @@
|
|
|
40429
40304
|
this.x = x;
|
|
40430
40305
|
// Initialize total value
|
|
40431
40306
|
this.total = null;
|
|
40307
|
+
this.cumulative = null;
|
|
40432
40308
|
// This will keep each points' extremes stored by series.index and point
|
|
40433
40309
|
// index
|
|
40434
40310
|
this.points = {};
|
|
@@ -40454,23 +40330,18 @@
|
|
|
40454
40330
|
}
|
|
40455
40331
|
/**
|
|
40456
40332
|
* @private
|
|
40457
|
-
* @function Highcharts.StackItem#destroy
|
|
40458
40333
|
*/
|
|
40459
40334
|
StackItem.prototype.destroy = function () {
|
|
40460
40335
|
destroyObjectProperties(this, this.axis);
|
|
40461
40336
|
};
|
|
40462
40337
|
/**
|
|
40463
40338
|
* Renders the stack total label and adds it to the stack label group.
|
|
40464
|
-
*
|
|
40465
40339
|
* @private
|
|
40466
|
-
* @function Highcharts.StackItem#render
|
|
40467
|
-
* @param {Highcharts.SVGElement} group
|
|
40468
40340
|
*/
|
|
40469
40341
|
StackItem.prototype.render = function (group) {
|
|
40470
40342
|
var chart = this.axis.chart,
|
|
40471
40343
|
options = this.options,
|
|
40472
40344
|
formatOption = options.format,
|
|
40473
|
-
attr = {},
|
|
40474
40345
|
str = formatOption ? // format the text in the label
|
|
40475
40346
|
format(formatOption,
|
|
40476
40347
|
this,
|
|
@@ -40485,14 +40356,14 @@
|
|
|
40485
40356
|
// Create new label
|
|
40486
40357
|
this.label = chart.renderer
|
|
40487
40358
|
.label(str, null, null, options.shape, null, null, options.useHTML, false, 'stack-labels');
|
|
40488
|
-
attr = {
|
|
40489
|
-
|
|
40490
|
-
|
|
40491
|
-
|
|
40492
|
-
|
|
40493
|
-
|
|
40494
|
-
|
|
40495
|
-
|
|
40359
|
+
var attr = {
|
|
40360
|
+
r: options.borderRadius || 0,
|
|
40361
|
+
text: str,
|
|
40362
|
+
rotation: options.rotation,
|
|
40363
|
+
// set default padding to 5 as it is in datalabels #12308
|
|
40364
|
+
padding: pick(options.padding, 5),
|
|
40365
|
+
visibility: 'hidden' // hidden until setOffset is called
|
|
40366
|
+
};
|
|
40496
40367
|
if (!chart.styledMode) {
|
|
40497
40368
|
attr.fill = options.backgroundColor;
|
|
40498
40369
|
attr.stroke = options.borderColor;
|
|
@@ -40510,49 +40381,39 @@
|
|
|
40510
40381
|
/**
|
|
40511
40382
|
* Sets the offset that the stack has from the x value and repositions the
|
|
40512
40383
|
* label.
|
|
40513
|
-
*
|
|
40514
40384
|
* @private
|
|
40515
|
-
* @function Highcarts.StackItem#setOffset
|
|
40516
|
-
* @param {number} xOffset
|
|
40517
|
-
* @param {number} xWidth
|
|
40518
|
-
* @param {number} [boxBottom]
|
|
40519
|
-
* @param {number} [boxTop]
|
|
40520
|
-
* @param {number} [defaultX]
|
|
40521
40385
|
*/
|
|
40522
40386
|
StackItem.prototype.setOffset = function (xOffset, xWidth, boxBottom, boxTop, defaultX) {
|
|
40523
|
-
var
|
|
40524
|
-
axis = stackItem.axis,
|
|
40387
|
+
var axis = this.axis,
|
|
40525
40388
|
chart = axis.chart,
|
|
40526
40389
|
// stack value translated mapped to chart coordinates
|
|
40527
40390
|
y = axis.translate(axis.stacking.usePercentage ?
|
|
40528
40391
|
100 :
|
|
40529
40392
|
(boxTop ?
|
|
40530
40393
|
boxTop :
|
|
40531
|
-
|
|
40394
|
+
this.total), 0, 0, 0, 1),
|
|
40532
40395
|
yZero = axis.translate(boxBottom ? boxBottom : 0), // stack origin
|
|
40533
|
-
// stack height:
|
|
40534
|
-
h = defined(y) && Math.abs(y - yZero),
|
|
40535
40396
|
// x position:
|
|
40536
40397
|
x = pick(defaultX,
|
|
40537
|
-
chart.xAxis[0].translate(
|
|
40398
|
+
chart.xAxis[0].translate(this.x)) +
|
|
40538
40399
|
xOffset,
|
|
40539
|
-
stackBox = defined(y) &&
|
|
40540
|
-
|
|
40400
|
+
stackBox = defined(y) && this.getStackBox(chart,
|
|
40401
|
+
this,
|
|
40541
40402
|
x,
|
|
40542
40403
|
y,
|
|
40543
|
-
xWidth,
|
|
40544
|
-
|
|
40404
|
+
xWidth,
|
|
40405
|
+
// stack height:
|
|
40406
|
+
Math.abs(y - yZero),
|
|
40545
40407
|
axis),
|
|
40546
|
-
label =
|
|
40547
|
-
isNegative =
|
|
40548
|
-
|
|
40549
|
-
textAlign = stackItem.textAlign,
|
|
40550
|
-
visible;
|
|
40408
|
+
label = this.label,
|
|
40409
|
+
isNegative = this.isNegative,
|
|
40410
|
+
textAlign = this.textAlign;
|
|
40551
40411
|
if (label && stackBox) {
|
|
40552
40412
|
var bBox = label.getBBox(),
|
|
40553
|
-
padding = label.padding
|
|
40554
|
-
|
|
40555
|
-
|
|
40413
|
+
padding = label.padding;
|
|
40414
|
+
var boxOffsetX = void 0,
|
|
40415
|
+
isJustify = pick(this.options.overflow, 'justify') === 'justify',
|
|
40416
|
+
visible = void 0;
|
|
40556
40417
|
if (textAlign === 'left') {
|
|
40557
40418
|
boxOffsetX = chart.inverted ? -padding : padding;
|
|
40558
40419
|
}
|
|
@@ -40569,18 +40430,18 @@
|
|
|
40569
40430
|
bBox.width / 2;
|
|
40570
40431
|
}
|
|
40571
40432
|
}
|
|
40572
|
-
boxOffsetY = chart.inverted ?
|
|
40573
|
-
|
|
40433
|
+
var boxOffsetY = chart.inverted ?
|
|
40434
|
+
bBox.height / 2 : (isNegative ? -padding : bBox.height);
|
|
40574
40435
|
// Reset alignOptions property after justify #12337
|
|
40575
|
-
|
|
40576
|
-
|
|
40436
|
+
this.alignOptions.x = pick(this.options.x, 0);
|
|
40437
|
+
this.alignOptions.y = pick(this.options.y, 0);
|
|
40577
40438
|
// Set the stackBox position
|
|
40578
40439
|
stackBox.x -= boxOffsetX;
|
|
40579
40440
|
stackBox.y -= boxOffsetY;
|
|
40580
40441
|
// Align the label to the box
|
|
40581
|
-
label.align(
|
|
40442
|
+
label.align(this.alignOptions, null, stackBox);
|
|
40582
40443
|
// Check if label is inside the plotArea #12294
|
|
40583
|
-
if (chart.isInsidePlot(label.alignAttr.x + boxOffsetX -
|
|
40444
|
+
if (chart.isInsidePlot(label.alignAttr.x + boxOffsetX - this.alignOptions.x, label.alignAttr.y + boxOffsetY - this.alignOptions.y)) {
|
|
40584
40445
|
label.show();
|
|
40585
40446
|
}
|
|
40586
40447
|
else {
|
|
@@ -40590,13 +40451,13 @@
|
|
|
40590
40451
|
}
|
|
40591
40452
|
if (isJustify) {
|
|
40592
40453
|
// Justify stackLabel into the stackBox
|
|
40593
|
-
Series.prototype.justifyDataLabel.call(this.axis, label,
|
|
40454
|
+
Series.prototype.justifyDataLabel.call(this.axis, label, this.alignOptions, label.alignAttr, bBox, stackBox);
|
|
40594
40455
|
}
|
|
40595
40456
|
label.attr({
|
|
40596
40457
|
x: label.alignAttr.x,
|
|
40597
40458
|
y: label.alignAttr.y
|
|
40598
40459
|
});
|
|
40599
|
-
if (pick(!isJustify &&
|
|
40460
|
+
if (pick(!isJustify && this.options.crop, true)) {
|
|
40600
40461
|
visible =
|
|
40601
40462
|
isNumber(label.x) &&
|
|
40602
40463
|
isNumber(label.y) &&
|
|
@@ -40634,13 +40495,92 @@
|
|
|
40634
40495
|
};
|
|
40635
40496
|
return StackItem;
|
|
40636
40497
|
}());
|
|
40498
|
+
/* *
|
|
40499
|
+
*
|
|
40500
|
+
* Default Export
|
|
40501
|
+
*
|
|
40502
|
+
* */
|
|
40503
|
+
/* *
|
|
40504
|
+
*
|
|
40505
|
+
* API Declarations
|
|
40506
|
+
*
|
|
40507
|
+
* */
|
|
40508
|
+
/**
|
|
40509
|
+
* Stack of data points
|
|
40510
|
+
*
|
|
40511
|
+
* @product highcharts
|
|
40512
|
+
*
|
|
40513
|
+
* @interface Highcharts.StackItemObject
|
|
40514
|
+
*/ /**
|
|
40515
|
+
* Alignment settings
|
|
40516
|
+
* @name Highcharts.StackItemObject#alignOptions
|
|
40517
|
+
* @type {Highcharts.AlignObject}
|
|
40518
|
+
*/ /**
|
|
40519
|
+
* Related axis
|
|
40520
|
+
* @name Highcharts.StackItemObject#axis
|
|
40521
|
+
* @type {Highcharts.Axis}
|
|
40522
|
+
*/ /**
|
|
40523
|
+
* Cumulative value of the stacked data points
|
|
40524
|
+
* @name Highcharts.StackItemObject#cumulative
|
|
40525
|
+
* @type {number}
|
|
40526
|
+
*/ /**
|
|
40527
|
+
* True if on the negative side
|
|
40528
|
+
* @name Highcharts.StackItemObject#isNegative
|
|
40529
|
+
* @type {boolean}
|
|
40530
|
+
*/ /**
|
|
40531
|
+
* Related SVG element
|
|
40532
|
+
* @name Highcharts.StackItemObject#label
|
|
40533
|
+
* @type {Highcharts.SVGElement}
|
|
40534
|
+
*/ /**
|
|
40535
|
+
* Related stack options
|
|
40536
|
+
* @name Highcharts.StackItemObject#options
|
|
40537
|
+
* @type {Highcharts.YAxisStackLabelsOptions}
|
|
40538
|
+
*/ /**
|
|
40539
|
+
* Total value of the stacked data points
|
|
40540
|
+
* @name Highcharts.StackItemObject#total
|
|
40541
|
+
* @type {number}
|
|
40542
|
+
*/ /**
|
|
40543
|
+
* Shared x value of the stack
|
|
40544
|
+
* @name Highcharts.StackItemObject#x
|
|
40545
|
+
* @type {number}
|
|
40546
|
+
*/
|
|
40547
|
+
''; // keeps doclets above in JS file
|
|
40548
|
+
|
|
40549
|
+
return StackItem;
|
|
40550
|
+
});
|
|
40551
|
+
_registerModule(_modules, 'Core/Axis/Stacking/StackingAxis.js', [_modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Axis/Axis.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Axis/Stacking/StackItem.js'], _modules['Core/Utilities.js']], function (A, Axis, SeriesRegistry, StackItem, U) {
|
|
40552
|
+
/* *
|
|
40553
|
+
*
|
|
40554
|
+
* (c) 2010-2021 Torstein Honsi
|
|
40555
|
+
*
|
|
40556
|
+
* License: www.highcharts.com/license
|
|
40557
|
+
*
|
|
40558
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
40559
|
+
*
|
|
40560
|
+
* */
|
|
40561
|
+
var getDeferredAnimation = A.getDeferredAnimation;
|
|
40562
|
+
var seriesProto = SeriesRegistry.series.prototype;
|
|
40563
|
+
var addEvent = U.addEvent,
|
|
40564
|
+
correctFloat = U.correctFloat,
|
|
40565
|
+
defined = U.defined,
|
|
40566
|
+
destroyObjectProperties = U.destroyObjectProperties,
|
|
40567
|
+
fireEvent = U.fireEvent,
|
|
40568
|
+
isArray = U.isArray,
|
|
40569
|
+
isNumber = U.isNumber,
|
|
40570
|
+
objectEach = U.objectEach,
|
|
40571
|
+
pick = U.pick;
|
|
40572
|
+
/* *
|
|
40573
|
+
*
|
|
40574
|
+
* Functions
|
|
40575
|
+
*
|
|
40576
|
+
* */
|
|
40637
40577
|
/**
|
|
40638
40578
|
* Generate stacks for each series and calculate stacks total values
|
|
40639
40579
|
*
|
|
40640
40580
|
* @private
|
|
40641
40581
|
* @function Highcharts.Chart#getStacks
|
|
40642
40582
|
*/
|
|
40643
|
-
|
|
40583
|
+
function chartGetStacks() {
|
|
40644
40584
|
var chart = this,
|
|
40645
40585
|
inverted = chart.inverted;
|
|
40646
40586
|
// reset stacks for each yAxis
|
|
@@ -40662,10 +40602,111 @@
|
|
|
40662
40602
|
].join(',');
|
|
40663
40603
|
}
|
|
40664
40604
|
});
|
|
40665
|
-
}
|
|
40666
|
-
|
|
40667
|
-
|
|
40668
|
-
|
|
40605
|
+
}
|
|
40606
|
+
/**
|
|
40607
|
+
* @private
|
|
40608
|
+
*/
|
|
40609
|
+
function onAxisDestroy() {
|
|
40610
|
+
var stacking = this.stacking;
|
|
40611
|
+
if (!stacking) {
|
|
40612
|
+
return;
|
|
40613
|
+
}
|
|
40614
|
+
var stacks = stacking.stacks;
|
|
40615
|
+
// Destroy each stack total
|
|
40616
|
+
objectEach(stacks, function (stack, stackKey) {
|
|
40617
|
+
destroyObjectProperties(stack);
|
|
40618
|
+
stacks[stackKey] = null;
|
|
40619
|
+
});
|
|
40620
|
+
if (stacking &&
|
|
40621
|
+
stacking.stackTotalGroup) {
|
|
40622
|
+
stacking.stackTotalGroup.destroy();
|
|
40623
|
+
}
|
|
40624
|
+
}
|
|
40625
|
+
/**
|
|
40626
|
+
* @private
|
|
40627
|
+
*/
|
|
40628
|
+
function onAxisInit() {
|
|
40629
|
+
var axis = this;
|
|
40630
|
+
if (!axis.stacking) {
|
|
40631
|
+
axis.stacking = new AxisAdditions(axis);
|
|
40632
|
+
}
|
|
40633
|
+
}
|
|
40634
|
+
/**
|
|
40635
|
+
* Get stack indicator, according to it's x-value, to determine points with the
|
|
40636
|
+
* same x-value
|
|
40637
|
+
*
|
|
40638
|
+
* @private
|
|
40639
|
+
* @function Highcharts.Series#getStackIndicator
|
|
40640
|
+
*/
|
|
40641
|
+
function seriesGetStackIndicator(stackIndicator, x, index, key) {
|
|
40642
|
+
// Update stack indicator, when:
|
|
40643
|
+
// first point in a stack || x changed || stack type (negative vs positive)
|
|
40644
|
+
// changed:
|
|
40645
|
+
if (!defined(stackIndicator) ||
|
|
40646
|
+
stackIndicator.x !== x ||
|
|
40647
|
+
(key && stackIndicator.stackKey !== key)) {
|
|
40648
|
+
stackIndicator = {
|
|
40649
|
+
x: x,
|
|
40650
|
+
index: 0,
|
|
40651
|
+
key: key,
|
|
40652
|
+
stackKey: key
|
|
40653
|
+
};
|
|
40654
|
+
}
|
|
40655
|
+
else {
|
|
40656
|
+
(stackIndicator).index++;
|
|
40657
|
+
}
|
|
40658
|
+
stackIndicator.key =
|
|
40659
|
+
[index, x, stackIndicator.index].join(',');
|
|
40660
|
+
return stackIndicator;
|
|
40661
|
+
}
|
|
40662
|
+
/**
|
|
40663
|
+
* Iterate over all stacks and compute the absolute values to percent
|
|
40664
|
+
*
|
|
40665
|
+
* @private
|
|
40666
|
+
* @function Highcharts.Series#modifyStacks
|
|
40667
|
+
*/
|
|
40668
|
+
function seriesModifyStacks() {
|
|
40669
|
+
var series = this,
|
|
40670
|
+
yAxis = series.yAxis,
|
|
40671
|
+
stackKey = series.stackKey,
|
|
40672
|
+
stacks = yAxis.stacking.stacks,
|
|
40673
|
+
processedXData = series.processedXData,
|
|
40674
|
+
stacking = series.options.stacking,
|
|
40675
|
+
stacker = series[stacking + 'Stacker'];
|
|
40676
|
+
var stackIndicator;
|
|
40677
|
+
if (stacker) { // Modifier function exists (Series.percentStacker etc.)
|
|
40678
|
+
[stackKey, '-' + stackKey].forEach(function (key) {
|
|
40679
|
+
var i = processedXData.length,
|
|
40680
|
+
x,
|
|
40681
|
+
stack,
|
|
40682
|
+
pointExtremes;
|
|
40683
|
+
while (i--) {
|
|
40684
|
+
x = processedXData[i];
|
|
40685
|
+
stackIndicator = series.getStackIndicator(stackIndicator, x, series.index, key);
|
|
40686
|
+
stack = stacks[key] && stacks[key][x];
|
|
40687
|
+
pointExtremes =
|
|
40688
|
+
stack && stack.points[stackIndicator.key];
|
|
40689
|
+
if (pointExtremes) {
|
|
40690
|
+
stacker.call(series, pointExtremes, stack, i);
|
|
40691
|
+
}
|
|
40692
|
+
}
|
|
40693
|
+
});
|
|
40694
|
+
}
|
|
40695
|
+
}
|
|
40696
|
+
/**
|
|
40697
|
+
* Modifier function for percent stacks. Blows up the stack to 100%.
|
|
40698
|
+
*
|
|
40699
|
+
* @private
|
|
40700
|
+
* @function Highcharts.Series#percentStacker
|
|
40701
|
+
*/
|
|
40702
|
+
function seriesPercentStacker(pointExtremes, stack, i) {
|
|
40703
|
+
var totalFactor = stack.total ? 100 / stack.total : 0;
|
|
40704
|
+
// Y bottom value
|
|
40705
|
+
pointExtremes[0] = correctFloat(pointExtremes[0] * totalFactor);
|
|
40706
|
+
// Y value
|
|
40707
|
+
pointExtremes[1] = correctFloat(pointExtremes[1] * totalFactor);
|
|
40708
|
+
this.stackedYData[i] = pointExtremes[1];
|
|
40709
|
+
}
|
|
40669
40710
|
/**
|
|
40670
40711
|
* Set grouped points in a stack-like object. When `centerInCategory` is true,
|
|
40671
40712
|
* and `stacking` is not enabled, we need a pseudo (horizontal) stack in order
|
|
@@ -40675,7 +40716,7 @@
|
|
|
40675
40716
|
* @function Highcharts.Series#setStackedPoints
|
|
40676
40717
|
* @return {void}
|
|
40677
40718
|
*/
|
|
40678
|
-
|
|
40719
|
+
function seriesSetGroupedPoints() {
|
|
40679
40720
|
var stacking = this.yAxis.stacking;
|
|
40680
40721
|
if (this.options.centerInCategory &&
|
|
40681
40722
|
(this.is('column') || this.is('columnrange')) &&
|
|
@@ -40684,7 +40725,7 @@
|
|
|
40684
40725
|
!this.options.stacking &&
|
|
40685
40726
|
// With only one series, we don't need to consider centerInCategory
|
|
40686
40727
|
this.chart.series.length > 1) {
|
|
40687
|
-
|
|
40728
|
+
seriesProto.setStackedPoints.call(this, 'group');
|
|
40688
40729
|
// After updating, if we now have proper stacks, we must delete the group
|
|
40689
40730
|
// pseudo stacks (#14986)
|
|
40690
40731
|
}
|
|
@@ -40696,20 +40737,29 @@
|
|
|
40696
40737
|
}
|
|
40697
40738
|
});
|
|
40698
40739
|
}
|
|
40699
|
-
}
|
|
40740
|
+
}
|
|
40700
40741
|
/**
|
|
40701
40742
|
* Adds series' points value to corresponding stack
|
|
40702
40743
|
*
|
|
40703
40744
|
* @private
|
|
40704
40745
|
* @function Highcharts.Series#setStackedPoints
|
|
40705
40746
|
*/
|
|
40706
|
-
|
|
40747
|
+
function seriesSetStackedPoints(stackingParam) {
|
|
40707
40748
|
var stacking = stackingParam || this.options.stacking;
|
|
40708
40749
|
if (!stacking || (this.visible !== true &&
|
|
40709
40750
|
this.chart.options.chart.ignoreHiddenSeries !== false)) {
|
|
40710
40751
|
return;
|
|
40711
40752
|
}
|
|
40712
|
-
var series = this, xData = series.processedXData, yData = series.processedYData, stackedYData = [], yDataLength = yData.length, seriesOptions = series.options, threshold = seriesOptions.threshold, stackThreshold = pick(seriesOptions.startFromThreshold && threshold, 0), stackOption = seriesOptions.stack, stackKey = stackingParam ? "" + series.type + ",".concat(stacking) : series.stackKey, negKey = '-' + stackKey, negStacks = series.negStacks, yAxis = series.yAxis, stacks = yAxis.stacking.stacks, oldStacks = yAxis.stacking.oldStacks
|
|
40753
|
+
var series = this, xData = series.processedXData, yData = series.processedYData, stackedYData = [], yDataLength = yData.length, seriesOptions = series.options, threshold = seriesOptions.threshold, stackThreshold = pick(seriesOptions.startFromThreshold && threshold, 0), stackOption = seriesOptions.stack, stackKey = stackingParam ? "" + series.type + ",".concat(stacking) : series.stackKey, negKey = '-' + stackKey, negStacks = series.negStacks, yAxis = series.yAxis, stacks = yAxis.stacking.stacks, oldStacks = yAxis.stacking.oldStacks;
|
|
40754
|
+
var stackIndicator,
|
|
40755
|
+
isNegative,
|
|
40756
|
+
stack,
|
|
40757
|
+
other,
|
|
40758
|
+
key,
|
|
40759
|
+
pointKey,
|
|
40760
|
+
i,
|
|
40761
|
+
x,
|
|
40762
|
+
y;
|
|
40713
40763
|
yAxis.stacking.stacksTouched += 1;
|
|
40714
40764
|
// loop over the non-null y values and read them into a local array
|
|
40715
40765
|
for (i = 0; i < yDataLength; i++) {
|
|
@@ -40734,7 +40784,7 @@
|
|
|
40734
40784
|
stacks[key][x].total = null;
|
|
40735
40785
|
}
|
|
40736
40786
|
else {
|
|
40737
|
-
stacks[key][x] = new StackItem(yAxis, yAxis.options.stackLabels, isNegative, x, stackOption);
|
|
40787
|
+
stacks[key][x] = new StackItem(yAxis, yAxis.options.stackLabels, !!isNegative, x, stackOption);
|
|
40738
40788
|
}
|
|
40739
40789
|
}
|
|
40740
40790
|
// If the StackItem doesn't exist, create it first
|
|
@@ -40811,130 +40861,195 @@
|
|
|
40811
40861
|
}
|
|
40812
40862
|
// Reset old stacks
|
|
40813
40863
|
yAxis.stacking.oldStacks = {};
|
|
40814
|
-
}
|
|
40815
|
-
|
|
40816
|
-
*
|
|
40864
|
+
}
|
|
40865
|
+
/* *
|
|
40866
|
+
*
|
|
40867
|
+
* Classes
|
|
40817
40868
|
*
|
|
40869
|
+
* */
|
|
40870
|
+
/**
|
|
40871
|
+
* Adds stacking support to axes.
|
|
40818
40872
|
* @private
|
|
40819
|
-
* @
|
|
40873
|
+
* @class
|
|
40820
40874
|
*/
|
|
40821
|
-
|
|
40822
|
-
|
|
40823
|
-
|
|
40824
|
-
|
|
40825
|
-
|
|
40826
|
-
|
|
40827
|
-
|
|
40828
|
-
|
|
40829
|
-
|
|
40830
|
-
|
|
40831
|
-
|
|
40832
|
-
|
|
40833
|
-
|
|
40834
|
-
|
|
40875
|
+
var AxisAdditions = /** @class */ (function () {
|
|
40876
|
+
/* *
|
|
40877
|
+
*
|
|
40878
|
+
* Constructors
|
|
40879
|
+
*
|
|
40880
|
+
* */
|
|
40881
|
+
function AxisAdditions(axis) {
|
|
40882
|
+
this.oldStacks = {};
|
|
40883
|
+
this.stacks = {};
|
|
40884
|
+
this.stacksTouched = 0;
|
|
40885
|
+
this.axis = axis;
|
|
40886
|
+
}
|
|
40887
|
+
/* *
|
|
40888
|
+
*
|
|
40889
|
+
* Functions
|
|
40890
|
+
*
|
|
40891
|
+
* */
|
|
40892
|
+
/**
|
|
40893
|
+
* Build the stacks from top down
|
|
40894
|
+
* @private
|
|
40895
|
+
*/
|
|
40896
|
+
AxisAdditions.prototype.buildStacks = function () {
|
|
40897
|
+
var stacking = this;
|
|
40898
|
+
var axis = stacking.axis;
|
|
40899
|
+
var axisSeries = axis.series;
|
|
40900
|
+
var reversedStacks = axis.options.reversedStacks;
|
|
40901
|
+
var len = axisSeries.length;
|
|
40902
|
+
var actualSeries,
|
|
40903
|
+
i;
|
|
40904
|
+
if (!axis.isXAxis) {
|
|
40905
|
+
stacking.usePercentage = false;
|
|
40906
|
+
i = len;
|
|
40835
40907
|
while (i--) {
|
|
40836
|
-
|
|
40837
|
-
|
|
40838
|
-
|
|
40839
|
-
|
|
40840
|
-
|
|
40841
|
-
|
|
40842
|
-
|
|
40843
|
-
}
|
|
40908
|
+
actualSeries = axisSeries[reversedStacks ? i : len - i - 1];
|
|
40909
|
+
actualSeries.setStackedPoints();
|
|
40910
|
+
actualSeries.setGroupedPoints();
|
|
40911
|
+
}
|
|
40912
|
+
// Loop up again to compute percent and stream stack
|
|
40913
|
+
for (i = 0; i < len; i++) {
|
|
40914
|
+
axisSeries[i].modifyStacks();
|
|
40844
40915
|
}
|
|
40916
|
+
fireEvent(axis, 'afterBuildStacks');
|
|
40917
|
+
}
|
|
40918
|
+
};
|
|
40919
|
+
/**
|
|
40920
|
+
* @private
|
|
40921
|
+
*/
|
|
40922
|
+
AxisAdditions.prototype.cleanStacks = function () {
|
|
40923
|
+
var stacking = this,
|
|
40924
|
+
axis = stacking.axis;
|
|
40925
|
+
var stacks;
|
|
40926
|
+
if (!axis.isXAxis) {
|
|
40927
|
+
if (stacking.oldStacks) {
|
|
40928
|
+
stacks = stacking.stacks = stacking.oldStacks;
|
|
40929
|
+
}
|
|
40930
|
+
// reset stacks
|
|
40931
|
+
objectEach(stacks, function (type) {
|
|
40932
|
+
objectEach(type, function (stack) {
|
|
40933
|
+
stack.cumulative = stack.total;
|
|
40934
|
+
});
|
|
40935
|
+
});
|
|
40936
|
+
}
|
|
40937
|
+
};
|
|
40938
|
+
/**
|
|
40939
|
+
* Set all the stacks to initial states and destroy unused ones.
|
|
40940
|
+
* @private
|
|
40941
|
+
*/
|
|
40942
|
+
AxisAdditions.prototype.resetStacks = function () {
|
|
40943
|
+
var stacking = this,
|
|
40944
|
+
axis = stacking.axis,
|
|
40945
|
+
stacks = stacking.stacks;
|
|
40946
|
+
if (!axis.isXAxis) {
|
|
40947
|
+
objectEach(stacks, function (type) {
|
|
40948
|
+
objectEach(type, function (stack, x) {
|
|
40949
|
+
// Clean up memory after point deletion (#1044, #4320)
|
|
40950
|
+
if (isNumber(stack.touched) &&
|
|
40951
|
+
stack.touched < stacking.stacksTouched) {
|
|
40952
|
+
stack.destroy();
|
|
40953
|
+
delete type[x];
|
|
40954
|
+
// Reset stacks
|
|
40955
|
+
}
|
|
40956
|
+
else {
|
|
40957
|
+
stack.total = null;
|
|
40958
|
+
stack.cumulative = null;
|
|
40959
|
+
}
|
|
40960
|
+
});
|
|
40961
|
+
});
|
|
40962
|
+
}
|
|
40963
|
+
};
|
|
40964
|
+
/**
|
|
40965
|
+
* @private
|
|
40966
|
+
*/
|
|
40967
|
+
AxisAdditions.prototype.renderStackTotals = function () {
|
|
40968
|
+
var stacking = this,
|
|
40969
|
+
axis = stacking.axis,
|
|
40970
|
+
chart = axis.chart,
|
|
40971
|
+
renderer = chart.renderer,
|
|
40972
|
+
stacks = stacking.stacks,
|
|
40973
|
+
stackLabelsAnim = axis.options.stackLabels &&
|
|
40974
|
+
axis.options.stackLabels.animation,
|
|
40975
|
+
animationConfig = getDeferredAnimation(chart,
|
|
40976
|
+
stackLabelsAnim || false),
|
|
40977
|
+
stackTotalGroup = stacking.stackTotalGroup = (stacking.stackTotalGroup ||
|
|
40978
|
+
renderer
|
|
40979
|
+
.g('stack-labels')
|
|
40980
|
+
.attr({
|
|
40981
|
+
zIndex: 6,
|
|
40982
|
+
opacity: 0
|
|
40983
|
+
})
|
|
40984
|
+
.add());
|
|
40985
|
+
// plotLeft/Top will change when y axis gets wider so we need to
|
|
40986
|
+
// translate the stackTotalGroup at every render call. See bug #506
|
|
40987
|
+
// and #516
|
|
40988
|
+
stackTotalGroup.translate(chart.plotLeft, chart.plotTop);
|
|
40989
|
+
// Render each stack total
|
|
40990
|
+
objectEach(stacks, function (type) {
|
|
40991
|
+
objectEach(type, function (stack) {
|
|
40992
|
+
stack.render(stackTotalGroup);
|
|
40993
|
+
});
|
|
40845
40994
|
});
|
|
40846
|
-
|
|
40847
|
-
|
|
40848
|
-
|
|
40849
|
-
|
|
40995
|
+
stackTotalGroup.animate({
|
|
40996
|
+
opacity: 1
|
|
40997
|
+
}, animationConfig);
|
|
40998
|
+
};
|
|
40999
|
+
return AxisAdditions;
|
|
41000
|
+
}());
|
|
41001
|
+
/* *
|
|
40850
41002
|
*
|
|
40851
|
-
*
|
|
40852
|
-
* @function Highcharts.Series#percentStacker
|
|
40853
|
-
*/
|
|
40854
|
-
Series.prototype.percentStacker = function (pointExtremes, stack, i) {
|
|
40855
|
-
var totalFactor = stack.total ? 100 / stack.total : 0;
|
|
40856
|
-
// Y bottom value
|
|
40857
|
-
pointExtremes[0] = correctFloat(pointExtremes[0] * totalFactor);
|
|
40858
|
-
// Y value
|
|
40859
|
-
pointExtremes[1] = correctFloat(pointExtremes[1] * totalFactor);
|
|
40860
|
-
this.stackedYData[i] = pointExtremes[1];
|
|
40861
|
-
};
|
|
40862
|
-
/**
|
|
40863
|
-
* Get stack indicator, according to it's x-value, to determine points with the
|
|
40864
|
-
* same x-value
|
|
41003
|
+
* Composition
|
|
40865
41004
|
*
|
|
40866
|
-
*
|
|
40867
|
-
|
|
40868
|
-
|
|
40869
|
-
|
|
40870
|
-
|
|
40871
|
-
|
|
40872
|
-
|
|
40873
|
-
|
|
40874
|
-
|
|
40875
|
-
|
|
40876
|
-
|
|
40877
|
-
|
|
40878
|
-
|
|
40879
|
-
|
|
40880
|
-
|
|
40881
|
-
|
|
40882
|
-
|
|
40883
|
-
|
|
40884
|
-
|
|
41005
|
+
* */
|
|
41006
|
+
var StackingAxis;
|
|
41007
|
+
(function (StackingAxis) {
|
|
41008
|
+
/* *
|
|
41009
|
+
*
|
|
41010
|
+
* Constants
|
|
41011
|
+
*
|
|
41012
|
+
* */
|
|
41013
|
+
var composedClasses = [];
|
|
41014
|
+
/* *
|
|
41015
|
+
*
|
|
41016
|
+
* Functions
|
|
41017
|
+
*
|
|
41018
|
+
* */
|
|
41019
|
+
/**
|
|
41020
|
+
* Extends axis with stacking support.
|
|
41021
|
+
* @private
|
|
41022
|
+
*/
|
|
41023
|
+
function compose(AxisClass, ChartClass, SeriesClass) {
|
|
41024
|
+
if (composedClasses.indexOf(AxisClass) === -1) {
|
|
41025
|
+
composedClasses.push(AxisClass);
|
|
41026
|
+
addEvent(AxisClass, 'init', onAxisInit);
|
|
41027
|
+
addEvent(AxisClass, 'destroy', onAxisDestroy);
|
|
41028
|
+
}
|
|
41029
|
+
if (composedClasses.indexOf(ChartClass) === -1) {
|
|
41030
|
+
composedClasses.push(ChartClass);
|
|
41031
|
+
var chartProto = ChartClass.prototype;
|
|
41032
|
+
chartProto.getStacks = chartGetStacks;
|
|
41033
|
+
}
|
|
41034
|
+
if (composedClasses.indexOf(SeriesClass) === -1) {
|
|
41035
|
+
composedClasses.push(SeriesClass);
|
|
41036
|
+
var seriesProto_1 = SeriesClass.prototype;
|
|
41037
|
+
seriesProto_1.getStackIndicator = seriesGetStackIndicator;
|
|
41038
|
+
seriesProto_1.modifyStacks = seriesModifyStacks;
|
|
41039
|
+
seriesProto_1.percentStacker = seriesPercentStacker;
|
|
41040
|
+
seriesProto_1.setGroupedPoints = seriesSetGroupedPoints;
|
|
41041
|
+
seriesProto_1.setStackedPoints = seriesSetStackedPoints;
|
|
41042
|
+
}
|
|
40885
41043
|
}
|
|
40886
|
-
|
|
40887
|
-
|
|
40888
|
-
return stackIndicator;
|
|
40889
|
-
};
|
|
40890
|
-
H.StackItem = StackItem; // @todo -> master
|
|
41044
|
+
StackingAxis.compose = compose;
|
|
41045
|
+
})(StackingAxis || (StackingAxis = {}));
|
|
40891
41046
|
/* *
|
|
40892
41047
|
*
|
|
40893
41048
|
* Default Export
|
|
40894
41049
|
*
|
|
40895
41050
|
* */
|
|
40896
|
-
/**
|
|
40897
|
-
* Stack of data points
|
|
40898
|
-
*
|
|
40899
|
-
* @product highcharts
|
|
40900
|
-
*
|
|
40901
|
-
* @interface Highcharts.StackItemObject
|
|
40902
|
-
*/ /**
|
|
40903
|
-
* Alignment settings
|
|
40904
|
-
* @name Highcharts.StackItemObject#alignOptions
|
|
40905
|
-
* @type {Highcharts.AlignObject}
|
|
40906
|
-
*/ /**
|
|
40907
|
-
* Related axis
|
|
40908
|
-
* @name Highcharts.StackItemObject#axis
|
|
40909
|
-
* @type {Highcharts.Axis}
|
|
40910
|
-
*/ /**
|
|
40911
|
-
* Cumulative value of the stacked data points
|
|
40912
|
-
* @name Highcharts.StackItemObject#cumulative
|
|
40913
|
-
* @type {number}
|
|
40914
|
-
*/ /**
|
|
40915
|
-
* True if on the negative side
|
|
40916
|
-
* @name Highcharts.StackItemObject#isNegative
|
|
40917
|
-
* @type {boolean}
|
|
40918
|
-
*/ /**
|
|
40919
|
-
* Related SVG element
|
|
40920
|
-
* @name Highcharts.StackItemObject#label
|
|
40921
|
-
* @type {Highcharts.SVGElement}
|
|
40922
|
-
*/ /**
|
|
40923
|
-
* Related stack options
|
|
40924
|
-
* @name Highcharts.StackItemObject#options
|
|
40925
|
-
* @type {Highcharts.YAxisStackLabelsOptions}
|
|
40926
|
-
*/ /**
|
|
40927
|
-
* Total value of the stacked data points
|
|
40928
|
-
* @name Highcharts.StackItemObject#total
|
|
40929
|
-
* @type {number}
|
|
40930
|
-
*/ /**
|
|
40931
|
-
* Shared x value of the stack
|
|
40932
|
-
* @name Highcharts.StackItemObject#x
|
|
40933
|
-
* @type {number}
|
|
40934
|
-
*/
|
|
40935
|
-
''; // keeps doclets above in JS file
|
|
40936
41051
|
|
|
40937
|
-
return
|
|
41052
|
+
return StackingAxis;
|
|
40938
41053
|
});
|
|
40939
41054
|
_registerModule(_modules, 'Series/Line/LineSeries.js', [_modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (Series, SeriesRegistry, U) {
|
|
40940
41055
|
/* *
|
|
@@ -43327,6 +43442,8 @@
|
|
|
43327
43442
|
* lineWidth, marker, step, useOhlcData
|
|
43328
43443
|
* @product highcharts highstock
|
|
43329
43444
|
* @optionparent plotOptions.column
|
|
43445
|
+
*
|
|
43446
|
+
* @private
|
|
43330
43447
|
*/
|
|
43331
43448
|
ColumnSeries.defaultOptions = merge(Series.defaultOptions, {
|
|
43332
43449
|
/**
|
|
@@ -43880,6 +43997,7 @@
|
|
|
43880
43997
|
extend = U.extend,
|
|
43881
43998
|
fireEvent = U.fireEvent,
|
|
43882
43999
|
isArray = U.isArray,
|
|
44000
|
+
isString = U.isString,
|
|
43883
44001
|
merge = U.merge,
|
|
43884
44002
|
objectEach = U.objectEach,
|
|
43885
44003
|
pick = U.pick,
|
|
@@ -44123,7 +44241,13 @@
|
|
|
44123
44241
|
seriesOptions = series.options,
|
|
44124
44242
|
points = series.points,
|
|
44125
44243
|
hasRendered = series.hasRendered || 0,
|
|
44126
|
-
renderer = chart.renderer
|
|
44244
|
+
renderer = chart.renderer,
|
|
44245
|
+
_a = chart.options.chart,
|
|
44246
|
+
backgroundColor = _a.backgroundColor,
|
|
44247
|
+
plotBackgroundColor = _a.plotBackgroundColor,
|
|
44248
|
+
contrastColor = renderer.getContrast((isString(plotBackgroundColor) && plotBackgroundColor) ||
|
|
44249
|
+
(isString(backgroundColor) && backgroundColor) ||
|
|
44250
|
+
"#000000" /* Palette.neutralColor100 */);
|
|
44127
44251
|
var seriesDlOptions = seriesOptions.dataLabels,
|
|
44128
44252
|
pointOptions,
|
|
44129
44253
|
dataLabelsGroup;
|
|
@@ -44210,7 +44334,7 @@
|
|
|
44210
44334
|
labelDistance < 0 ||
|
|
44211
44335
|
!!seriesOptions.stacking ?
|
|
44212
44336
|
point.contrastColor :
|
|
44213
|
-
|
|
44337
|
+
contrastColor;
|
|
44214
44338
|
}
|
|
44215
44339
|
else {
|
|
44216
44340
|
delete point.contrastColor;
|
|
@@ -44315,9 +44439,6 @@
|
|
|
44315
44439
|
// read text bounding box
|
|
44316
44440
|
dataLabel.css(style).shadow(labelOptions.shadow);
|
|
44317
44441
|
}
|
|
44318
|
-
if (!dataLabel.added) {
|
|
44319
|
-
dataLabel.add(dataLabelsGroup);
|
|
44320
|
-
}
|
|
44321
44442
|
if (labelOptions.textPath && !labelOptions.useHTML) {
|
|
44322
44443
|
dataLabel.setTextPath((point.getDataLabelPath &&
|
|
44323
44444
|
point.getDataLabelPath(dataLabel)) || point.graphic, labelOptions.textPath);
|
|
@@ -44327,6 +44448,9 @@
|
|
|
44327
44448
|
point.dataLabelPath = (point.dataLabelPath.destroy());
|
|
44328
44449
|
}
|
|
44329
44450
|
}
|
|
44451
|
+
if (!dataLabel.added) {
|
|
44452
|
+
dataLabel.add(dataLabelsGroup);
|
|
44453
|
+
}
|
|
44330
44454
|
// Now the data label is created and placed at 0,0, so
|
|
44331
44455
|
// we need to align it
|
|
44332
44456
|
series.alignDataLabel(point, dataLabel, labelOptions, null, isNew);
|
|
@@ -45024,9 +45148,12 @@
|
|
|
45024
45148
|
* series, in a scatter plot the series.name by default shows in the
|
|
45025
45149
|
* headerFormat and point.x and point.y in the pointFormat.
|
|
45026
45150
|
*
|
|
45027
|
-
* @product highcharts highstock
|
|
45151
|
+
* @product highcharts highstock highmaps
|
|
45028
45152
|
*/
|
|
45029
45153
|
tooltip: {
|
|
45154
|
+
/**
|
|
45155
|
+
* @product highcharts highstock
|
|
45156
|
+
*/
|
|
45030
45157
|
headerFormat: '<span style="color:{point.color}">\u25CF</span> ' +
|
|
45031
45158
|
'<span style="font-size: 10px"> {series.name}</span><br/>',
|
|
45032
45159
|
pointFormat: 'x: <b>{point.x}</b><br/>y: <b>{point.y}</b><br/>'
|
|
@@ -46056,6 +46183,8 @@
|
|
|
46056
46183
|
* boostBlending
|
|
46057
46184
|
* @product highcharts highmaps
|
|
46058
46185
|
* @optionparent plotOptions.pie
|
|
46186
|
+
*
|
|
46187
|
+
* @private
|
|
46059
46188
|
*/
|
|
46060
46189
|
PieSeries.defaultOptions = merge(Series.defaultOptions, {
|
|
46061
46190
|
/**
|
|
@@ -46164,7 +46293,7 @@
|
|
|
46164
46293
|
/**
|
|
46165
46294
|
* Alignment method for data labels. Possible values are:
|
|
46166
46295
|
*
|
|
46167
|
-
* - `
|
|
46296
|
+
* - `plotEdges`: Each label touches the nearest vertical edge of
|
|
46168
46297
|
* the plot area.
|
|
46169
46298
|
*
|
|
46170
46299
|
* - `connectors`: Connectors have the same x position and the
|
|
@@ -47796,7 +47925,7 @@
|
|
|
47796
47925
|
|
|
47797
47926
|
return Responsive;
|
|
47798
47927
|
});
|
|
47799
|
-
_registerModule(_modules, 'masters/highcharts.src.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Animation/Fx.js'], _modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Renderer/HTML/AST.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Renderer/RendererUtilities.js'], _modules['Core/Renderer/SVG/SVGElement.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Renderer/HTML/HTMLElement.js'], _modules['Core/Renderer/HTML/HTMLRenderer.js'], _modules['Core/Axis/Axis.js'], _modules['Core/Axis/DateTimeAxis.js'], _modules['Core/Axis/LogarithmicAxis.js'], _modules['Core/Axis/PlotLineOrBand/PlotLineOrBand.js'], _modules['Core/Axis/Tick.js'], _modules['Core/Tooltip.js'], _modules['Core/Series/Point.js'], _modules['Core/Pointer.js'], _modules['Core/MSPointer.js'], _modules['Core/Legend/Legend.js'], _modules['Core/Chart/Chart.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Series/Column/ColumnSeries.js'], _modules['Series/Column/ColumnDataLabel.js'], _modules['Series/Pie/PieSeries.js'], _modules['Series/Pie/PieDataLabel.js'], _modules['Core/Series/DataLabel.js'], _modules['Core/Responsive.js'], _modules['Core/Color/Color.js'], _modules['Core/Time.js']], function (Highcharts, Utilities, DefaultOptions, Fx, Animation, AST, FormatUtilities, RendererUtilities, SVGElement, SVGRenderer, HTMLElement, HTMLRenderer, Axis, DateTimeAxis, LogarithmicAxis, PlotLineOrBand, Tick, Tooltip, Point, Pointer, MSPointer, Legend, Chart, Series, SeriesRegistry, ColumnSeries, ColumnDataLabel, PieSeries, PieDataLabel, DataLabel, Responsive, Color, Time) {
|
|
47928
|
+
_registerModule(_modules, 'masters/highcharts.src.js', [_modules['Core/Globals.js'], _modules['Core/Utilities.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Animation/Fx.js'], _modules['Core/Animation/AnimationUtilities.js'], _modules['Core/Renderer/HTML/AST.js'], _modules['Core/FormatUtilities.js'], _modules['Core/Renderer/RendererUtilities.js'], _modules['Core/Renderer/SVG/SVGElement.js'], _modules['Core/Renderer/SVG/SVGRenderer.js'], _modules['Core/Renderer/HTML/HTMLElement.js'], _modules['Core/Renderer/HTML/HTMLRenderer.js'], _modules['Core/Axis/Axis.js'], _modules['Core/Axis/DateTimeAxis.js'], _modules['Core/Axis/LogarithmicAxis.js'], _modules['Core/Axis/PlotLineOrBand/PlotLineOrBand.js'], _modules['Core/Axis/Tick.js'], _modules['Core/Tooltip.js'], _modules['Core/Series/Point.js'], _modules['Core/Pointer.js'], _modules['Core/MSPointer.js'], _modules['Core/Legend/Legend.js'], _modules['Core/Chart/Chart.js'], _modules['Core/Axis/Stacking/StackingAxis.js'], _modules['Core/Axis/Stacking/StackItem.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Series/Column/ColumnSeries.js'], _modules['Series/Column/ColumnDataLabel.js'], _modules['Series/Pie/PieSeries.js'], _modules['Series/Pie/PieDataLabel.js'], _modules['Core/Series/DataLabel.js'], _modules['Core/Responsive.js'], _modules['Core/Color/Color.js'], _modules['Core/Time.js']], function (Highcharts, Utilities, DefaultOptions, Fx, Animation, AST, FormatUtilities, RendererUtilities, SVGElement, SVGRenderer, HTMLElement, HTMLRenderer, Axis, DateTimeAxis, LogarithmicAxis, PlotLineOrBand, Tick, Tooltip, Point, Pointer, MSPointer, Legend, Chart, StackingAxis, StackItem, Series, SeriesRegistry, ColumnSeries, ColumnDataLabel, PieSeries, PieDataLabel, DataLabel, Responsive, Color, Time) {
|
|
47800
47929
|
|
|
47801
47930
|
var G = Highcharts;
|
|
47802
47931
|
// Animation
|
|
@@ -47817,6 +47946,7 @@
|
|
|
47817
47946
|
G.Point = Point;
|
|
47818
47947
|
G.Pointer = (MSPointer.isRequired() ? MSPointer : Pointer);
|
|
47819
47948
|
G.Series = Series;
|
|
47949
|
+
G.StackItem = StackItem;
|
|
47820
47950
|
G.SVGElement = SVGElement;
|
|
47821
47951
|
G.SVGRenderer = SVGRenderer;
|
|
47822
47952
|
G.Tick = Tick;
|
|
@@ -47892,6 +48022,7 @@
|
|
|
47892
48022
|
PieDataLabel.compose(PieSeries);
|
|
47893
48023
|
PlotLineOrBand.compose(Axis);
|
|
47894
48024
|
Responsive.compose(Chart);
|
|
48025
|
+
StackingAxis.compose(Axis, Chart, Series);
|
|
47895
48026
|
// Default Export
|
|
47896
48027
|
|
|
47897
48028
|
return G;
|