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
|
@@ -22,351 +22,129 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
22
22
|
}
|
|
23
23
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
24
24
|
};
|
|
25
|
-
import
|
|
26
|
-
import
|
|
27
|
-
import
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
import D from '../Core/DefaultOptions.js';
|
|
25
|
+
import AST from '../../Core/Renderer/HTML/AST.js';
|
|
26
|
+
import ExportDataDefaults from './ExportDataDefaults.js';
|
|
27
|
+
import H from '../../Core/Globals.js';
|
|
28
|
+
var doc = H.doc, win = H.win;
|
|
29
|
+
import D from '../../Core/DefaultOptions.js';
|
|
31
30
|
var getOptions = D.getOptions, setOptions = D.setOptions;
|
|
32
|
-
import
|
|
31
|
+
import DownloadURL from '../DownloadURL.js';
|
|
32
|
+
var downloadURL = DownloadURL.downloadURL;
|
|
33
|
+
import SeriesRegistry from '../../Core/Series/SeriesRegistry.js';
|
|
34
|
+
var SeriesClass = SeriesRegistry.series, _a = SeriesRegistry.seriesTypes, AreaRangeSeries = _a.arearange, GanttSeries = _a.gantt, MapSeries = _a.map, MapBubbleSeries = _a.mapbubble, TreemapSeries = _a.treemap;
|
|
35
|
+
import U from '../../Core/Utilities.js';
|
|
33
36
|
var addEvent = U.addEvent, defined = U.defined, extend = U.extend, find = U.find, fireEvent = U.fireEvent, isNumber = U.isNumber, pick = U.pick;
|
|
37
|
+
/* *
|
|
38
|
+
*
|
|
39
|
+
* Constants
|
|
40
|
+
*
|
|
41
|
+
* */
|
|
42
|
+
var composedClasses = [];
|
|
43
|
+
/* *
|
|
44
|
+
*
|
|
45
|
+
* Functions
|
|
46
|
+
*
|
|
47
|
+
* */
|
|
34
48
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* format.
|
|
49
|
+
* Generates a data URL of CSV for local download in the browser. This is the
|
|
50
|
+
* default action for a click on the 'Download CSV' button.
|
|
38
51
|
*
|
|
39
|
-
* @
|
|
40
|
-
* @extends Highcharts.EventCallbackFunction<Highcharts.Chart>
|
|
52
|
+
* See {@link Highcharts.Chart#getCSV} to get the CSV data itself.
|
|
41
53
|
*
|
|
42
|
-
* @
|
|
43
|
-
* Chart context where the event occured.
|
|
54
|
+
* @function Highcharts.Chart#downloadCSV
|
|
44
55
|
*
|
|
45
|
-
* @
|
|
46
|
-
* Event object with data rows that can be modified.
|
|
56
|
+
* @requires modules/exporting
|
|
47
57
|
*/
|
|
58
|
+
function chartDownloadCSV() {
|
|
59
|
+
var csv = this.getCSV(true);
|
|
60
|
+
downloadURL(getBlobFromContent(csv, 'text/csv') ||
|
|
61
|
+
'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
|
|
62
|
+
}
|
|
48
63
|
/**
|
|
49
|
-
*
|
|
64
|
+
* Generates a data URL of an XLS document for local download in the browser.
|
|
65
|
+
* This is the default action for a click on the 'Download XLS' button.
|
|
50
66
|
*
|
|
51
|
-
* @
|
|
52
|
-
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* @
|
|
56
|
-
*/
|
|
57
|
-
|
|
58
|
-
var
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
* @type {boolean}
|
|
77
|
-
* @since 7.1.0
|
|
78
|
-
* @requires modules/export-data
|
|
79
|
-
* @apioption plotOptions.series.includeInDataExport
|
|
80
|
-
*/
|
|
81
|
-
/**
|
|
82
|
-
* @optionparent exporting
|
|
83
|
-
* @private
|
|
84
|
-
*/
|
|
85
|
-
exporting: {
|
|
86
|
-
/**
|
|
87
|
-
* Caption for the data table. Same as chart title by default. Set to
|
|
88
|
-
* `false` to disable.
|
|
89
|
-
*
|
|
90
|
-
* @sample highcharts/export-data/multilevel-table
|
|
91
|
-
* Multiple table headers
|
|
92
|
-
*
|
|
93
|
-
* @type {boolean|string}
|
|
94
|
-
* @since 6.0.4
|
|
95
|
-
* @requires modules/export-data
|
|
96
|
-
* @apioption exporting.tableCaption
|
|
97
|
-
*/
|
|
98
|
-
/**
|
|
99
|
-
* Options for exporting data to CSV or ExCel, or displaying the data
|
|
100
|
-
* in a HTML table or a JavaScript structure.
|
|
101
|
-
*
|
|
102
|
-
* This module adds data export options to the export menu and provides
|
|
103
|
-
* functions like `Chart.getCSV`, `Chart.getTable`, `Chart.getDataRows`
|
|
104
|
-
* and `Chart.viewData`.
|
|
105
|
-
*
|
|
106
|
-
* The XLS converter is limited and only creates a HTML string that is
|
|
107
|
-
* passed for download, which works but creates a warning before
|
|
108
|
-
* opening. The workaround for this is to use a third party XLSX
|
|
109
|
-
* converter, as demonstrated in the sample below.
|
|
110
|
-
*
|
|
111
|
-
* @sample highcharts/export-data/categorized/ Categorized data
|
|
112
|
-
* @sample highcharts/export-data/stock-timeaxis/ Highcharts Stock time axis
|
|
113
|
-
* @sample highcharts/export-data/xlsx/
|
|
114
|
-
* Using a third party XLSX converter
|
|
115
|
-
*
|
|
116
|
-
* @since 6.0.0
|
|
117
|
-
* @requires modules/export-data
|
|
118
|
-
*/
|
|
119
|
-
csv: {
|
|
120
|
-
/**
|
|
121
|
-
*
|
|
122
|
-
* Options for annotations in the export-data table.
|
|
123
|
-
*
|
|
124
|
-
* @since 8.2.0
|
|
125
|
-
* @requires modules/export-data
|
|
126
|
-
* @requires modules/annotations
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
*/
|
|
130
|
-
annotations: {
|
|
131
|
-
/**
|
|
132
|
-
* The way to mark the separator for annotations
|
|
133
|
-
* combined in one export-data table cell.
|
|
134
|
-
*
|
|
135
|
-
* @since 8.2.0
|
|
136
|
-
* @requires modules/annotations
|
|
137
|
-
*/
|
|
138
|
-
itemDelimiter: '; ',
|
|
139
|
-
/**
|
|
140
|
-
* When several labels are assigned to a specific point,
|
|
141
|
-
* they will be displayed in one field in the table.
|
|
142
|
-
*
|
|
143
|
-
* @sample highcharts/export-data/join-annotations/
|
|
144
|
-
* Concatenate point annotations with itemDelimiter set.
|
|
145
|
-
*
|
|
146
|
-
* @since 8.2.0
|
|
147
|
-
* @requires modules/annotations
|
|
148
|
-
*/
|
|
149
|
-
join: false
|
|
150
|
-
},
|
|
151
|
-
/**
|
|
152
|
-
* Formatter callback for the column headers. Parameters are:
|
|
153
|
-
* - `item` - The series or axis object)
|
|
154
|
-
* - `key` - The point key, for example y or z
|
|
155
|
-
* - `keyLength` - The amount of value keys for this item, for
|
|
156
|
-
* example a range series has the keys `low` and `high` so the
|
|
157
|
-
* key length is 2.
|
|
158
|
-
*
|
|
159
|
-
* If [useMultiLevelHeaders](#exporting.useMultiLevelHeaders) is
|
|
160
|
-
* true, columnHeaderFormatter by default returns an object with
|
|
161
|
-
* columnTitle and topLevelColumnTitle for each key. Columns with
|
|
162
|
-
* the same topLevelColumnTitle have their titles merged into a
|
|
163
|
-
* single cell with colspan for table/Excel export.
|
|
164
|
-
*
|
|
165
|
-
* If `useMultiLevelHeaders` is false, or for CSV export, it returns
|
|
166
|
-
* the series name, followed by the key if there is more than one
|
|
167
|
-
* key.
|
|
168
|
-
*
|
|
169
|
-
* For the axis it returns the axis title or "Category" or
|
|
170
|
-
* "DateTime" by default.
|
|
171
|
-
*
|
|
172
|
-
* Return `false` to use Highcharts' proposed header.
|
|
173
|
-
*
|
|
174
|
-
* @sample highcharts/export-data/multilevel-table
|
|
175
|
-
* Multiple table headers
|
|
176
|
-
*
|
|
177
|
-
* @type {Function|null}
|
|
178
|
-
*/
|
|
179
|
-
columnHeaderFormatter: null,
|
|
180
|
-
/**
|
|
181
|
-
* Which date format to use for exported dates on a datetime X axis.
|
|
182
|
-
* See `Highcharts.dateFormat`.
|
|
183
|
-
*/
|
|
184
|
-
dateFormat: '%Y-%m-%d %H:%M:%S',
|
|
185
|
-
/**
|
|
186
|
-
* Which decimal point to use for exported CSV. Defaults to the same
|
|
187
|
-
* as the browser locale, typically `.` (English) or `,` (German,
|
|
188
|
-
* French etc).
|
|
189
|
-
*
|
|
190
|
-
* @type {string|null}
|
|
191
|
-
* @since 6.0.4
|
|
192
|
-
*/
|
|
193
|
-
decimalPoint: null,
|
|
194
|
-
/**
|
|
195
|
-
* The item delimiter in the exported data. Use `;` for direct
|
|
196
|
-
* exporting to Excel. Defaults to a best guess based on the browser
|
|
197
|
-
* locale. If the locale _decimal point_ is `,`, the `itemDelimiter`
|
|
198
|
-
* defaults to `;`, otherwise the `itemDelimiter` defaults to `,`.
|
|
199
|
-
*
|
|
200
|
-
* @type {string|null}
|
|
201
|
-
*/
|
|
202
|
-
itemDelimiter: null,
|
|
203
|
-
/**
|
|
204
|
-
* The line delimiter in the exported data, defaults to a newline.
|
|
205
|
-
*/
|
|
206
|
-
lineDelimiter: '\n'
|
|
207
|
-
},
|
|
208
|
-
/**
|
|
209
|
-
* Show a HTML table below the chart with the chart's current data.
|
|
210
|
-
*
|
|
211
|
-
* @sample highcharts/export-data/showtable/
|
|
212
|
-
* Show the table
|
|
213
|
-
* @sample highcharts/studies/exporting-table-html
|
|
214
|
-
* Experiment with putting the table inside the subtitle to
|
|
215
|
-
* allow exporting it.
|
|
216
|
-
*
|
|
217
|
-
* @since 6.0.0
|
|
218
|
-
* @requires modules/export-data
|
|
219
|
-
*/
|
|
220
|
-
showTable: false,
|
|
221
|
-
/**
|
|
222
|
-
* Use multi level headers in data table. If [csv.columnHeaderFormatter
|
|
223
|
-
* ](#exporting.csv.columnHeaderFormatter) is defined, it has to return
|
|
224
|
-
* objects in order for multi level headers to work.
|
|
225
|
-
*
|
|
226
|
-
* @sample highcharts/export-data/multilevel-table
|
|
227
|
-
* Multiple table headers
|
|
228
|
-
*
|
|
229
|
-
* @since 6.0.4
|
|
230
|
-
* @requires modules/export-data
|
|
231
|
-
*/
|
|
232
|
-
useMultiLevelHeaders: true,
|
|
233
|
-
/**
|
|
234
|
-
* If using multi level table headers, use rowspans for headers that
|
|
235
|
-
* have only one level.
|
|
236
|
-
*
|
|
237
|
-
* @sample highcharts/export-data/multilevel-table
|
|
238
|
-
* Multiple table headers
|
|
239
|
-
*
|
|
240
|
-
* @since 6.0.4
|
|
241
|
-
* @requires modules/export-data
|
|
242
|
-
*/
|
|
243
|
-
useRowspanHeaders: true
|
|
244
|
-
},
|
|
245
|
-
/**
|
|
246
|
-
* @optionparent lang
|
|
247
|
-
*
|
|
248
|
-
* @private
|
|
249
|
-
*/
|
|
250
|
-
lang: {
|
|
251
|
-
/**
|
|
252
|
-
* The text for the menu item.
|
|
253
|
-
*
|
|
254
|
-
* @since 6.0.0
|
|
255
|
-
* @requires modules/export-data
|
|
256
|
-
*/
|
|
257
|
-
downloadCSV: 'Download CSV',
|
|
258
|
-
/**
|
|
259
|
-
* The text for the menu item.
|
|
260
|
-
*
|
|
261
|
-
* @since 6.0.0
|
|
262
|
-
* @requires modules/export-data
|
|
263
|
-
*/
|
|
264
|
-
downloadXLS: 'Download XLS',
|
|
265
|
-
/**
|
|
266
|
-
* The text for exported table.
|
|
267
|
-
*
|
|
268
|
-
* @since 8.1.0
|
|
269
|
-
* @requires modules/export-data
|
|
270
|
-
*/
|
|
271
|
-
exportData: {
|
|
272
|
-
/**
|
|
273
|
-
* The annotation column title.
|
|
274
|
-
*/
|
|
275
|
-
annotationHeader: 'Annotations',
|
|
276
|
-
/**
|
|
277
|
-
* The category column title.
|
|
278
|
-
*/
|
|
279
|
-
categoryHeader: 'Category',
|
|
280
|
-
/**
|
|
281
|
-
* The category column title when axis type set to "datetime".
|
|
282
|
-
*/
|
|
283
|
-
categoryDatetimeHeader: 'DateTime'
|
|
284
|
-
},
|
|
285
|
-
/**
|
|
286
|
-
* The text for the menu item.
|
|
287
|
-
*
|
|
288
|
-
* @since 6.0.0
|
|
289
|
-
* @requires modules/export-data
|
|
290
|
-
*/
|
|
291
|
-
viewData: 'View data table',
|
|
292
|
-
/**
|
|
293
|
-
* The text for the menu item.
|
|
294
|
-
*
|
|
295
|
-
* @since 8.2.0
|
|
296
|
-
* @requires modules/export-data
|
|
297
|
-
*/
|
|
298
|
-
hideData: 'Hide data table'
|
|
299
|
-
}
|
|
300
|
-
});
|
|
301
|
-
/* eslint-disable no-invalid-this */
|
|
302
|
-
// Add an event listener to handle the showTable option
|
|
303
|
-
addEvent(Chart, 'render', function () {
|
|
304
|
-
if (this.options &&
|
|
305
|
-
this.options.exporting &&
|
|
306
|
-
this.options.exporting.showTable &&
|
|
307
|
-
!this.options.chart.forExport) {
|
|
308
|
-
this.viewData();
|
|
309
|
-
}
|
|
310
|
-
});
|
|
311
|
-
addEvent(Chart, 'afterViewData', function () {
|
|
312
|
-
var chart = this, dataTableDiv = chart.dataTableDiv, row = document.querySelectorAll('thead')[0].querySelectorAll('tr')[0], getCellValue = function (tr, index) {
|
|
313
|
-
return tr.children[index].textContent;
|
|
314
|
-
}, comparer = function (index, ascending) {
|
|
315
|
-
return function (a, b) {
|
|
316
|
-
var sort = function (v1, v2) { return (v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ?
|
|
317
|
-
v1 - v2 :
|
|
318
|
-
v1.toString().localeCompare(v2)); };
|
|
319
|
-
return sort(getCellValue(ascending ? a : b, index), getCellValue(ascending ? b : a, index));
|
|
320
|
-
};
|
|
67
|
+
* See {@link Highcharts.Chart#getTable} to get the table data itself.
|
|
68
|
+
*
|
|
69
|
+
* @function Highcharts.Chart#downloadXLS
|
|
70
|
+
*
|
|
71
|
+
* @requires modules/exporting
|
|
72
|
+
*/
|
|
73
|
+
function chartDownloadXLS() {
|
|
74
|
+
var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
|
|
75
|
+
'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
|
|
76
|
+
'xmlns="http://www.w3.org/TR/REC-html40">' +
|
|
77
|
+
'<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
|
|
78
|
+
'<x:ExcelWorksheets><x:ExcelWorksheet>' +
|
|
79
|
+
'<x:Name>Ark1</x:Name>' +
|
|
80
|
+
'<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>' +
|
|
81
|
+
'</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
|
|
82
|
+
'</xml><![endif]-->' +
|
|
83
|
+
'<style>td{border:none;font-family: Calibri, sans-serif;} ' +
|
|
84
|
+
'.number{mso-number-format:"0.00";} ' +
|
|
85
|
+
'.text{ mso-number-format:"\@";}</style>' +
|
|
86
|
+
'<meta name=ProgId content=Excel.Sheet>' +
|
|
87
|
+
'<meta charset=UTF-8>' +
|
|
88
|
+
'</head><body>' +
|
|
89
|
+
this.getTable(true) +
|
|
90
|
+
'</body></html>', base64 = function (s) {
|
|
91
|
+
return win.btoa(unescape(encodeURIComponent(s))); // #50
|
|
321
92
|
};
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
th.addEventListener('click', function () {
|
|
326
|
-
var rows = __spreadArray([], dataTableDiv.querySelectorAll('tr:not(thead tr)'), true), headers = __spreadArray([], th.parentNode.children, true);
|
|
327
|
-
rows.sort(comparer(headers.indexOf(th), chart.ascendingOrderInTable =
|
|
328
|
-
!chart.ascendingOrderInTable)).forEach(function (tr) {
|
|
329
|
-
table.appendChild(tr);
|
|
330
|
-
});
|
|
331
|
-
headers.forEach(function (th) {
|
|
332
|
-
['highcharts-sort-ascending', 'highcharts-sort-descending']
|
|
333
|
-
.forEach(function (className) {
|
|
334
|
-
if (th.classList.contains(className)) {
|
|
335
|
-
th.classList.remove(className);
|
|
336
|
-
}
|
|
337
|
-
});
|
|
338
|
-
});
|
|
339
|
-
th.classList.add(chart.ascendingOrderInTable ?
|
|
340
|
-
'highcharts-sort-ascending' :
|
|
341
|
-
'highcharts-sort-descending');
|
|
342
|
-
});
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
});
|
|
346
|
-
/* eslint-enable no-invalid-this */
|
|
93
|
+
downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
|
|
94
|
+
uri + base64(template), this.getFilename() + '.xls');
|
|
95
|
+
}
|
|
347
96
|
/**
|
|
348
|
-
*
|
|
349
|
-
* categorized. For example in an arearange series, the low and high values
|
|
350
|
-
* should be formatted according to the Y axis type, and in order to link them
|
|
351
|
-
* we need this map.
|
|
97
|
+
* Export-data module required. Returns the current chart data as a CSV string.
|
|
352
98
|
*
|
|
353
|
-
* @
|
|
354
|
-
*
|
|
99
|
+
* @function Highcharts.Chart#getCSV
|
|
100
|
+
*
|
|
101
|
+
* @param {boolean} [useLocalDecimalPoint]
|
|
102
|
+
* Whether to use the local decimal point as detected from the browser.
|
|
103
|
+
* This makes it easier to export data to Excel in the same locale as the
|
|
104
|
+
* user is.
|
|
105
|
+
*
|
|
106
|
+
* @return {string}
|
|
107
|
+
* CSV representation of the data
|
|
355
108
|
*/
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
109
|
+
function chartGetCSV(useLocalDecimalPoint) {
|
|
110
|
+
var csv = '';
|
|
111
|
+
var rows = this.getDataRows(), csvOptions = this.options.exporting.csv, decimalPoint = pick(csvOptions.decimalPoint, csvOptions.itemDelimiter !== ',' && useLocalDecimalPoint ?
|
|
112
|
+
(1.1).toLocaleString()[1] :
|
|
113
|
+
'.'),
|
|
114
|
+
// use ';' for direct to Excel
|
|
115
|
+
itemDelimiter = pick(csvOptions.itemDelimiter, decimalPoint === ',' ? ';' : ','),
|
|
116
|
+
// '\n' isn't working with the js csv data extraction
|
|
117
|
+
lineDelimiter = csvOptions.lineDelimiter;
|
|
118
|
+
// Transform the rows to CSV
|
|
119
|
+
rows.forEach(function (row, i) {
|
|
120
|
+
var val = '', j = row.length;
|
|
121
|
+
while (j--) {
|
|
122
|
+
val = row[j];
|
|
123
|
+
if (typeof val === 'string') {
|
|
124
|
+
val = '"' + val + '"';
|
|
125
|
+
}
|
|
126
|
+
if (typeof val === 'number') {
|
|
127
|
+
if (decimalPoint !== '.') {
|
|
128
|
+
val = val.toString().replace('.', decimalPoint);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
row[j] = val;
|
|
132
|
+
}
|
|
133
|
+
// The first row is the header - it defines the number of columns.
|
|
134
|
+
// Empty columns between not-empty cells are covered in the getDataRows
|
|
135
|
+
// method.
|
|
136
|
+
// Now add empty values only to the end of the row so all rows have
|
|
137
|
+
// the same number of columns, #17186
|
|
138
|
+
row.length = rows.length ? rows[0].length : 0;
|
|
139
|
+
// Add the values
|
|
140
|
+
csv += row.join(itemDelimiter);
|
|
141
|
+
// Add the line delimiter
|
|
142
|
+
if (i < rows.length - 1) {
|
|
143
|
+
csv += lineDelimiter;
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
return csv;
|
|
147
|
+
}
|
|
370
148
|
/**
|
|
371
149
|
* Export-data module required. Returns a two-dimensional array containing the
|
|
372
150
|
* current chart data.
|
|
@@ -383,8 +161,8 @@ Chart.prototype.setUpKeyToAxis = function () {
|
|
|
383
161
|
*
|
|
384
162
|
* @emits Highcharts.Chart#event:exportData
|
|
385
163
|
*/
|
|
386
|
-
|
|
387
|
-
var hasParallelCoords = this.hasParallelCoordinates, time = this.time, csvOptions = ((this.options.exporting && this.options.exporting.csv) || {}),
|
|
164
|
+
function chartGetDataRows(multiLevelHeaders) {
|
|
165
|
+
var hasParallelCoords = this.hasParallelCoordinates, time = this.time, csvOptions = ((this.options.exporting && this.options.exporting.csv) || {}), xAxes = this.xAxis, rows = {}, rowArr = [], topLevelColumnTitles = [], columnTitles = [], langOptions = this.options.lang, exportDataOptions = langOptions.exportData, categoryHeader = exportDataOptions.categoryHeader, categoryDatetimeHeader = exportDataOptions.categoryDatetimeHeader,
|
|
388
166
|
// Options
|
|
389
167
|
columnHeaderFormatter = function (item, key, keyLength) {
|
|
390
168
|
if (csvOptions.columnHeaderFormatter) {
|
|
@@ -396,7 +174,7 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
|
|
|
396
174
|
if (!item) {
|
|
397
175
|
return categoryHeader;
|
|
398
176
|
}
|
|
399
|
-
if (item instanceof
|
|
177
|
+
if (!(item instanceof SeriesClass)) {
|
|
400
178
|
return (item.options.title && item.options.title.text) ||
|
|
401
179
|
(item.dateTime ? categoryDatetimeHeader : categoryHeader);
|
|
402
180
|
}
|
|
@@ -451,9 +229,8 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
|
|
|
451
229
|
}
|
|
452
230
|
return series.pointArrayMap || ['y'];
|
|
453
231
|
}, xAxisIndices = [];
|
|
454
|
-
// Loop the series and index values
|
|
455
|
-
|
|
456
|
-
this.setUpKeyToAxis();
|
|
232
|
+
var xAxis, dataRows, columnTitleObj, i = 0, // Loop the series and index values
|
|
233
|
+
x, xTitle;
|
|
457
234
|
this.series.forEach(function (series) {
|
|
458
235
|
var keys = series.options.keys, xAxis = series.xAxis, pointArrayMap = keys || getPointArray(series, xAxis), valueCount = pointArrayMap.length, xTaken = !series.requireSorting && {}, xAxisIndex = xAxes.indexOf(xAxis);
|
|
459
236
|
var categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap), mockSeries, j;
|
|
@@ -490,16 +267,16 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
|
|
|
490
267
|
// Export directly from options.data because we need the uncropped
|
|
491
268
|
// data (#7913), and we need to support Boost (#7026).
|
|
492
269
|
series.options.data.forEach(function eachData(options, pIdx) {
|
|
493
|
-
var
|
|
270
|
+
var mockPoint = { series: mockSeries };
|
|
271
|
+
var key, prop, val;
|
|
494
272
|
// In parallel coordinates chart, each data point is connected
|
|
495
273
|
// to a separate yAxis, conform this
|
|
496
274
|
if (hasParallelCoords) {
|
|
497
275
|
categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap, pIdx);
|
|
498
276
|
}
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
name = series.data[pIdx] && series.data[pIdx].name;
|
|
277
|
+
series.pointClass.prototype.applyOptions.apply(mockPoint, [options]);
|
|
278
|
+
key = mockPoint.x;
|
|
279
|
+
var name = series.data[pIdx] && series.data[pIdx].name;
|
|
503
280
|
j = 0;
|
|
504
281
|
// Pies, funnels, geo maps etc. use point name in X row
|
|
505
282
|
if (!xAxis ||
|
|
@@ -519,12 +296,12 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
|
|
|
519
296
|
// Contain the X values from one or more X axes
|
|
520
297
|
rows[key].xValues = [];
|
|
521
298
|
}
|
|
522
|
-
rows[key].x =
|
|
299
|
+
rows[key].x = mockPoint.x;
|
|
523
300
|
rows[key].name = name;
|
|
524
|
-
rows[key].xValues[xAxisIndex] =
|
|
301
|
+
rows[key].xValues[xAxisIndex] = mockPoint.x;
|
|
525
302
|
while (j < valueCount) {
|
|
526
303
|
prop = pointArrayMap[j]; // y, z etc
|
|
527
|
-
val =
|
|
304
|
+
val = mockPoint[prop];
|
|
528
305
|
rows[key][i + j] = pick(
|
|
529
306
|
// Y axis category if present
|
|
530
307
|
categoryAndDatetimeMap.categoryMap[prop][val],
|
|
@@ -593,59 +370,7 @@ Chart.prototype.getDataRows = function (multiLevelHeaders) {
|
|
|
593
370
|
dataRows = dataRows.concat(rowArr);
|
|
594
371
|
fireEvent(this, 'exportData', { dataRows: dataRows });
|
|
595
372
|
return dataRows;
|
|
596
|
-
}
|
|
597
|
-
/**
|
|
598
|
-
* Export-data module required. Returns the current chart data as a CSV string.
|
|
599
|
-
*
|
|
600
|
-
* @function Highcharts.Chart#getCSV
|
|
601
|
-
*
|
|
602
|
-
* @param {boolean} [useLocalDecimalPoint]
|
|
603
|
-
* Whether to use the local decimal point as detected from the browser.
|
|
604
|
-
* This makes it easier to export data to Excel in the same locale as the
|
|
605
|
-
* user is.
|
|
606
|
-
*
|
|
607
|
-
* @return {string}
|
|
608
|
-
* CSV representation of the data
|
|
609
|
-
*/
|
|
610
|
-
Chart.prototype.getCSV = function (useLocalDecimalPoint) {
|
|
611
|
-
var csv = '';
|
|
612
|
-
var rows = this.getDataRows(), csvOptions = this.options.exporting.csv, decimalPoint = pick(csvOptions.decimalPoint, csvOptions.itemDelimiter !== ',' && useLocalDecimalPoint ?
|
|
613
|
-
(1.1).toLocaleString()[1] :
|
|
614
|
-
'.'),
|
|
615
|
-
// use ';' for direct to Excel
|
|
616
|
-
itemDelimiter = pick(csvOptions.itemDelimiter, decimalPoint === ',' ? ';' : ','),
|
|
617
|
-
// '\n' isn't working with the js csv data extraction
|
|
618
|
-
lineDelimiter = csvOptions.lineDelimiter;
|
|
619
|
-
// Transform the rows to CSV
|
|
620
|
-
rows.forEach(function (row, i) {
|
|
621
|
-
var val = '', j = row.length;
|
|
622
|
-
while (j--) {
|
|
623
|
-
val = row[j];
|
|
624
|
-
if (typeof val === 'string') {
|
|
625
|
-
val = '"' + val + '"';
|
|
626
|
-
}
|
|
627
|
-
if (typeof val === 'number') {
|
|
628
|
-
if (decimalPoint !== '.') {
|
|
629
|
-
val = val.toString().replace('.', decimalPoint);
|
|
630
|
-
}
|
|
631
|
-
}
|
|
632
|
-
row[j] = val;
|
|
633
|
-
}
|
|
634
|
-
// The first row is the header - it defines the number of columns.
|
|
635
|
-
// Empty columns between not-empty cells are covered in the getDataRows
|
|
636
|
-
// method.
|
|
637
|
-
// Now add empty values only to the end of the row so all rows have
|
|
638
|
-
// the same number of columns, #17186
|
|
639
|
-
row.length = rows.length ? rows[0].length : 0;
|
|
640
|
-
// Add the values
|
|
641
|
-
csv += row.join(itemDelimiter);
|
|
642
|
-
// Add the line delimiter
|
|
643
|
-
if (i < rows.length - 1) {
|
|
644
|
-
csv += lineDelimiter;
|
|
645
|
-
}
|
|
646
|
-
});
|
|
647
|
-
return csv;
|
|
648
|
-
};
|
|
373
|
+
}
|
|
649
374
|
/**
|
|
650
375
|
* Export-data module required. Build a HTML table with the chart's current
|
|
651
376
|
* data.
|
|
@@ -665,7 +390,7 @@ Chart.prototype.getCSV = function (useLocalDecimalPoint) {
|
|
|
665
390
|
*
|
|
666
391
|
* @emits Highcharts.Chart#event:afterGetTable
|
|
667
392
|
*/
|
|
668
|
-
|
|
393
|
+
function chartGetTable(useLocalDecimalPoint) {
|
|
669
394
|
var serialize = function (node) {
|
|
670
395
|
if (!node.tagName || node.tagName === '#text') {
|
|
671
396
|
// Text node
|
|
@@ -674,7 +399,8 @@ Chart.prototype.getTable = function (useLocalDecimalPoint) {
|
|
|
674
399
|
var attributes = node.attributes;
|
|
675
400
|
var html = "<".concat(node.tagName);
|
|
676
401
|
if (attributes) {
|
|
677
|
-
Object.keys(attributes)
|
|
402
|
+
Object.keys(attributes)
|
|
403
|
+
.forEach(function (key) {
|
|
678
404
|
var value = attributes[key];
|
|
679
405
|
html += " ".concat(key, "=\"").concat(value, "\"");
|
|
680
406
|
});
|
|
@@ -689,7 +415,7 @@ Chart.prototype.getTable = function (useLocalDecimalPoint) {
|
|
|
689
415
|
};
|
|
690
416
|
var tree = this.getTableAST(useLocalDecimalPoint);
|
|
691
417
|
return serialize(tree);
|
|
692
|
-
}
|
|
418
|
+
}
|
|
693
419
|
/**
|
|
694
420
|
* Get the AST of a HTML table representing the chart data.
|
|
695
421
|
*
|
|
@@ -705,7 +431,7 @@ Chart.prototype.getTable = function (useLocalDecimalPoint) {
|
|
|
705
431
|
* @return {Highcharts.ASTNode}
|
|
706
432
|
* The abstract syntax tree
|
|
707
433
|
*/
|
|
708
|
-
|
|
434
|
+
function chartGetTableAST(useLocalDecimalPoint) {
|
|
709
435
|
var rowLength = 0;
|
|
710
436
|
var treeChildren = [];
|
|
711
437
|
var options = this.options, decimalPoint = useLocalDecimalPoint ? (1.1).toLocaleString()[1] : '.', useMultiLevelHeaders = pick(options.exporting.useMultiLevelHeaders, true), rows = this.getDataRows(useMultiLevelHeaders), topHeaders = useMultiLevelHeaders ? rows.shift() : null, subHeaders = rows.shift(),
|
|
@@ -868,107 +594,19 @@ Chart.prototype.getTableAST = function (useLocalDecimalPoint) {
|
|
|
868
594
|
};
|
|
869
595
|
fireEvent(this, 'aftergetTableAST', e);
|
|
870
596
|
return e.tree;
|
|
871
|
-
};
|
|
872
|
-
/**
|
|
873
|
-
* Get a blob object from content, if blob is supported
|
|
874
|
-
*
|
|
875
|
-
* @private
|
|
876
|
-
* @param {string} content
|
|
877
|
-
* The content to create the blob from.
|
|
878
|
-
* @param {string} type
|
|
879
|
-
* The type of the content.
|
|
880
|
-
* @return {string|undefined}
|
|
881
|
-
* The blob object, or undefined if not supported.
|
|
882
|
-
*/
|
|
883
|
-
function getBlobFromContent(content, type) {
|
|
884
|
-
var nav = win.navigator, webKit = (nav.userAgent.indexOf('WebKit') > -1 &&
|
|
885
|
-
nav.userAgent.indexOf('Chrome') < 0), domurl = win.URL || win.webkitURL || win;
|
|
886
|
-
try {
|
|
887
|
-
// MS specific
|
|
888
|
-
if ((nav.msSaveOrOpenBlob) && win.MSBlobBuilder) {
|
|
889
|
-
var blob = new win.MSBlobBuilder();
|
|
890
|
-
blob.append(content);
|
|
891
|
-
return blob.getBlob('image/svg+xml');
|
|
892
|
-
}
|
|
893
|
-
// Safari requires data URI since it doesn't allow navigation to blob
|
|
894
|
-
// URLs.
|
|
895
|
-
if (!webKit) {
|
|
896
|
-
return domurl.createObjectURL(new win.Blob(['\uFEFF' + content], // #7084
|
|
897
|
-
{ type: type }));
|
|
898
|
-
}
|
|
899
|
-
}
|
|
900
|
-
catch (e) {
|
|
901
|
-
// Ignore
|
|
902
|
-
}
|
|
903
597
|
}
|
|
904
|
-
/* eslint-disable valid-jsdoc */
|
|
905
|
-
/**
|
|
906
|
-
* Generates a data URL of CSV for local download in the browser. This is the
|
|
907
|
-
* default action for a click on the 'Download CSV' button.
|
|
908
|
-
*
|
|
909
|
-
* See {@link Highcharts.Chart#getCSV} to get the CSV data itself.
|
|
910
|
-
*
|
|
911
|
-
* @function Highcharts.Chart#downloadCSV
|
|
912
|
-
*
|
|
913
|
-
* @requires modules/exporting
|
|
914
|
-
*/
|
|
915
|
-
Chart.prototype.downloadCSV = function () {
|
|
916
|
-
var csv = this.getCSV(true);
|
|
917
|
-
downloadURL(getBlobFromContent(csv, 'text/csv') ||
|
|
918
|
-
'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
|
|
919
|
-
};
|
|
920
|
-
/**
|
|
921
|
-
* Generates a data URL of an XLS document for local download in the browser.
|
|
922
|
-
* This is the default action for a click on the 'Download XLS' button.
|
|
923
|
-
*
|
|
924
|
-
* See {@link Highcharts.Chart#getTable} to get the table data itself.
|
|
925
|
-
*
|
|
926
|
-
* @function Highcharts.Chart#downloadXLS
|
|
927
|
-
*
|
|
928
|
-
* @requires modules/exporting
|
|
929
|
-
*/
|
|
930
|
-
Chart.prototype.downloadXLS = function () {
|
|
931
|
-
var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
|
|
932
|
-
'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
|
|
933
|
-
'xmlns="http://www.w3.org/TR/REC-html40">' +
|
|
934
|
-
'<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
|
|
935
|
-
'<x:ExcelWorksheets><x:ExcelWorksheet>' +
|
|
936
|
-
'<x:Name>Ark1</x:Name>' +
|
|
937
|
-
'<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>' +
|
|
938
|
-
'</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
|
|
939
|
-
'</xml><![endif]-->' +
|
|
940
|
-
'<style>td{border:none;font-family: Calibri, sans-serif;} ' +
|
|
941
|
-
'.number{mso-number-format:"0.00";} ' +
|
|
942
|
-
'.text{ mso-number-format:"\@";}</style>' +
|
|
943
|
-
'<meta name=ProgId content=Excel.Sheet>' +
|
|
944
|
-
'<meta charset=UTF-8>' +
|
|
945
|
-
'</head><body>' +
|
|
946
|
-
this.getTable(true) +
|
|
947
|
-
'</body></html>', base64 = function (s) {
|
|
948
|
-
return win.btoa(unescape(encodeURIComponent(s))); // #50
|
|
949
|
-
};
|
|
950
|
-
downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
|
|
951
|
-
uri + base64(template), this.getFilename() + '.xls');
|
|
952
|
-
};
|
|
953
|
-
/**
|
|
954
|
-
* Export-data module required. View the data in a table below the chart.
|
|
955
|
-
*
|
|
956
|
-
* @function Highcharts.Chart#viewData
|
|
957
|
-
*
|
|
958
|
-
* @emits Highcharts.Chart#event:afterViewData
|
|
959
|
-
*/
|
|
960
|
-
Chart.prototype.viewData = function () {
|
|
961
|
-
this.toggleDataTable(true);
|
|
962
|
-
};
|
|
963
598
|
/**
|
|
964
599
|
* Export-data module required. Hide the data table when visible.
|
|
965
600
|
*
|
|
966
601
|
* @function Highcharts.Chart#hideData
|
|
967
602
|
*/
|
|
968
|
-
|
|
603
|
+
function chartHideData() {
|
|
969
604
|
this.toggleDataTable(false);
|
|
970
|
-
}
|
|
971
|
-
|
|
605
|
+
}
|
|
606
|
+
/**
|
|
607
|
+
* @private
|
|
608
|
+
*/
|
|
609
|
+
function chartToggleDataTable(show) {
|
|
972
610
|
show = pick(show, !this.isDataTableVisible);
|
|
973
611
|
// Create the div
|
|
974
612
|
if (show && !this.dataTableDiv) {
|
|
@@ -994,8 +632,8 @@ Chart.prototype.toggleDataTable = function (show) {
|
|
|
994
632
|
var exportDivElements = this.exportDivElements, options = this.options.exporting, menuItems = options &&
|
|
995
633
|
options.buttons &&
|
|
996
634
|
options.buttons.contextButton.menuItems, lang = this.options.lang;
|
|
997
|
-
if (
|
|
998
|
-
|
|
635
|
+
if (options &&
|
|
636
|
+
options.menuItemDefinitions &&
|
|
999
637
|
lang &&
|
|
1000
638
|
lang.viewData &&
|
|
1001
639
|
lang.hideData &&
|
|
@@ -1006,41 +644,214 @@ Chart.prototype.toggleDataTable = function (show) {
|
|
|
1006
644
|
AST.setElementHTML(exportDivElement, this.isDataTableVisible ? lang.hideData : lang.viewData);
|
|
1007
645
|
}
|
|
1008
646
|
}
|
|
1009
|
-
}
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* Export-data module required. View the data in a table below the chart.
|
|
650
|
+
*
|
|
651
|
+
* @function Highcharts.Chart#viewData
|
|
652
|
+
*
|
|
653
|
+
* @emits Highcharts.Chart#event:afterViewData
|
|
654
|
+
*/
|
|
655
|
+
function chartViewData() {
|
|
656
|
+
this.toggleDataTable(true);
|
|
657
|
+
}
|
|
658
|
+
/**
|
|
659
|
+
* @private
|
|
660
|
+
*/
|
|
661
|
+
function compose(ChartClass) {
|
|
662
|
+
if (composedClasses.indexOf(ChartClass) === -1) {
|
|
663
|
+
composedClasses.push(ChartClass);
|
|
664
|
+
// Add an event listener to handle the showTable option
|
|
665
|
+
addEvent(ChartClass, 'afterViewData', onChartAfterViewData);
|
|
666
|
+
addEvent(ChartClass, 'render', onChartRenderer);
|
|
667
|
+
var chartProto = ChartClass.prototype;
|
|
668
|
+
chartProto.downloadCSV = chartDownloadCSV;
|
|
669
|
+
chartProto.downloadXLS = chartDownloadXLS;
|
|
670
|
+
chartProto.getCSV = chartGetCSV;
|
|
671
|
+
chartProto.getDataRows = chartGetDataRows;
|
|
672
|
+
chartProto.getTable = chartGetTable;
|
|
673
|
+
chartProto.getTableAST = chartGetTableAST;
|
|
674
|
+
chartProto.hideData = chartHideData;
|
|
675
|
+
chartProto.toggleDataTable = chartToggleDataTable;
|
|
676
|
+
chartProto.viewData = chartViewData;
|
|
677
|
+
}
|
|
678
|
+
if (composedClasses.indexOf(setOptions) === -1) {
|
|
679
|
+
composedClasses.push(setOptions);
|
|
680
|
+
var exportingOptions = getOptions().exporting;
|
|
681
|
+
// Add "Download CSV" to the exporting menu.
|
|
682
|
+
// @todo consider move to defaults
|
|
683
|
+
if (exportingOptions) {
|
|
684
|
+
extend(exportingOptions.menuItemDefinitions, {
|
|
685
|
+
downloadCSV: {
|
|
686
|
+
textKey: 'downloadCSV',
|
|
687
|
+
onclick: function () {
|
|
688
|
+
this.downloadCSV();
|
|
689
|
+
}
|
|
690
|
+
},
|
|
691
|
+
downloadXLS: {
|
|
692
|
+
textKey: 'downloadXLS',
|
|
693
|
+
onclick: function () {
|
|
694
|
+
this.downloadXLS();
|
|
695
|
+
}
|
|
696
|
+
},
|
|
697
|
+
viewData: {
|
|
698
|
+
textKey: 'viewData',
|
|
699
|
+
onclick: function () {
|
|
700
|
+
this.toggleDataTable();
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
});
|
|
704
|
+
if (exportingOptions.buttons &&
|
|
705
|
+
exportingOptions.buttons.contextButton.menuItems) {
|
|
706
|
+
exportingOptions.buttons.contextButton.menuItems.push('separator', 'downloadCSV', 'downloadXLS', 'viewData');
|
|
1030
707
|
}
|
|
1031
708
|
}
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
709
|
+
setOptions(ExportDataDefaults);
|
|
710
|
+
}
|
|
711
|
+
if (AreaRangeSeries && composedClasses.indexOf(AreaRangeSeries) === -1) {
|
|
712
|
+
composedClasses.push(AreaRangeSeries);
|
|
713
|
+
AreaRangeSeries.prototype.keyToAxis = {
|
|
714
|
+
low: 'y',
|
|
715
|
+
high: 'y'
|
|
716
|
+
};
|
|
717
|
+
}
|
|
718
|
+
if (GanttSeries && composedClasses.indexOf(GanttSeries) === -1) {
|
|
719
|
+
composedClasses.push(GanttSeries);
|
|
720
|
+
GanttSeries.prototype.keyToAxis = {
|
|
721
|
+
start: 'x',
|
|
722
|
+
end: 'x'
|
|
723
|
+
};
|
|
724
|
+
}
|
|
725
|
+
if (MapSeries && composedClasses.indexOf(MapSeries) === -1) {
|
|
726
|
+
composedClasses.push(MapSeries);
|
|
727
|
+
MapSeries.prototype.exportKey = 'name';
|
|
728
|
+
}
|
|
729
|
+
if (MapBubbleSeries && composedClasses.indexOf(MapBubbleSeries) === -1) {
|
|
730
|
+
composedClasses.push(MapBubbleSeries);
|
|
731
|
+
MapBubbleSeries.prototype.exportKey = 'name';
|
|
732
|
+
}
|
|
733
|
+
if (TreemapSeries && composedClasses.indexOf(TreemapSeries) === -1) {
|
|
734
|
+
composedClasses.push(TreemapSeries);
|
|
735
|
+
TreemapSeries.prototype.exportKey = 'name';
|
|
1035
736
|
}
|
|
1036
737
|
}
|
|
1037
|
-
|
|
1038
|
-
if
|
|
1039
|
-
|
|
738
|
+
/**
|
|
739
|
+
* Get a blob object from content, if blob is supported
|
|
740
|
+
*
|
|
741
|
+
* @private
|
|
742
|
+
* @param {string} content
|
|
743
|
+
* The content to create the blob from.
|
|
744
|
+
* @param {string} type
|
|
745
|
+
* The type of the content.
|
|
746
|
+
* @return {string|undefined}
|
|
747
|
+
* The blob object, or undefined if not supported.
|
|
748
|
+
*/
|
|
749
|
+
function getBlobFromContent(content, type) {
|
|
750
|
+
var nav = win.navigator, webKit = (nav.userAgent.indexOf('WebKit') > -1 &&
|
|
751
|
+
nav.userAgent.indexOf('Chrome') < 0), domurl = win.URL || win.webkitURL || win;
|
|
752
|
+
try {
|
|
753
|
+
// MS specific
|
|
754
|
+
if ((nav.msSaveOrOpenBlob) && win.MSBlobBuilder) {
|
|
755
|
+
var blob = new win.MSBlobBuilder();
|
|
756
|
+
blob.append(content);
|
|
757
|
+
return blob.getBlob('image/svg+xml');
|
|
758
|
+
}
|
|
759
|
+
// Safari requires data URI since it doesn't allow navigation to blob
|
|
760
|
+
// URLs.
|
|
761
|
+
if (!webKit) {
|
|
762
|
+
return domurl.createObjectURL(new win.Blob(['\uFEFF' + content], // #7084
|
|
763
|
+
{ type: type }));
|
|
764
|
+
}
|
|
765
|
+
}
|
|
766
|
+
catch (e) {
|
|
767
|
+
// Ignore
|
|
768
|
+
}
|
|
1040
769
|
}
|
|
1041
|
-
|
|
1042
|
-
|
|
770
|
+
/**
|
|
771
|
+
* @private
|
|
772
|
+
*/
|
|
773
|
+
function onChartAfterViewData() {
|
|
774
|
+
var chart = this, dataTableDiv = chart.dataTableDiv, row = document.querySelectorAll('thead')[0].querySelectorAll('tr')[0], getCellValue = function (tr, index) {
|
|
775
|
+
return tr.children[index].textContent;
|
|
776
|
+
}, comparer = function (index, ascending) {
|
|
777
|
+
return function (a, b) {
|
|
778
|
+
var sort = function (v1, v2) { return (v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ?
|
|
779
|
+
v1 - v2 :
|
|
780
|
+
v1.toString().localeCompare(v2)); };
|
|
781
|
+
return sort(getCellValue(ascending ? a : b, index), getCellValue(ascending ? b : a, index));
|
|
782
|
+
};
|
|
783
|
+
};
|
|
784
|
+
if (dataTableDiv) {
|
|
785
|
+
row.childNodes.forEach(function (th) {
|
|
786
|
+
var table = th.closest('table');
|
|
787
|
+
th.addEventListener('click', function () {
|
|
788
|
+
var rows = __spreadArray([], dataTableDiv.querySelectorAll('tr:not(thead tr)'), true), headers = __spreadArray([], th.parentNode.children, true);
|
|
789
|
+
rows.sort(comparer(headers.indexOf(th), chart.ascendingOrderInTable =
|
|
790
|
+
!chart.ascendingOrderInTable)).forEach(function (tr) {
|
|
791
|
+
table.appendChild(tr);
|
|
792
|
+
});
|
|
793
|
+
headers.forEach(function (th) {
|
|
794
|
+
['highcharts-sort-ascending', 'highcharts-sort-descending']
|
|
795
|
+
.forEach(function (className) {
|
|
796
|
+
if (th.classList.contains(className)) {
|
|
797
|
+
th.classList.remove(className);
|
|
798
|
+
}
|
|
799
|
+
});
|
|
800
|
+
});
|
|
801
|
+
th.classList.add(chart.ascendingOrderInTable ?
|
|
802
|
+
'highcharts-sort-ascending' :
|
|
803
|
+
'highcharts-sort-descending');
|
|
804
|
+
});
|
|
805
|
+
});
|
|
806
|
+
}
|
|
1043
807
|
}
|
|
1044
|
-
|
|
1045
|
-
|
|
808
|
+
/**
|
|
809
|
+
* Handle the showTable option
|
|
810
|
+
* @private
|
|
811
|
+
*/
|
|
812
|
+
function onChartRenderer() {
|
|
813
|
+
if (this.options &&
|
|
814
|
+
this.options.exporting &&
|
|
815
|
+
this.options.exporting.showTable &&
|
|
816
|
+
!this.options.chart.forExport) {
|
|
817
|
+
this.viewData();
|
|
818
|
+
}
|
|
1046
819
|
}
|
|
820
|
+
/* *
|
|
821
|
+
*
|
|
822
|
+
* Default Export
|
|
823
|
+
*
|
|
824
|
+
* */
|
|
825
|
+
var ExportData = {
|
|
826
|
+
compose: compose
|
|
827
|
+
};
|
|
828
|
+
export default ExportData;
|
|
829
|
+
/* *
|
|
830
|
+
*
|
|
831
|
+
* API Declarations
|
|
832
|
+
*
|
|
833
|
+
* */
|
|
834
|
+
/**
|
|
835
|
+
* Function callback to execute while data rows are processed for exporting.
|
|
836
|
+
* This allows the modification of data rows before processed into the final
|
|
837
|
+
* format.
|
|
838
|
+
*
|
|
839
|
+
* @callback Highcharts.ExportDataCallbackFunction
|
|
840
|
+
* @extends Highcharts.EventCallbackFunction<Highcharts.Chart>
|
|
841
|
+
*
|
|
842
|
+
* @param {Highcharts.Chart} this
|
|
843
|
+
* Chart context where the event occured.
|
|
844
|
+
*
|
|
845
|
+
* @param {Highcharts.ExportDataEventObject} event
|
|
846
|
+
* Event object with data rows that can be modified.
|
|
847
|
+
*/
|
|
848
|
+
/**
|
|
849
|
+
* Contains information about the export data event.
|
|
850
|
+
*
|
|
851
|
+
* @interface Highcharts.ExportDataEventObject
|
|
852
|
+
*/ /**
|
|
853
|
+
* Contains the data rows for the current export task and can be modified.
|
|
854
|
+
* @name Highcharts.ExportDataEventObject#dataRows
|
|
855
|
+
* @type {Array<Array<string>>}
|
|
856
|
+
*/
|
|
857
|
+
(''); // keeps doclets above in JS file
|