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
|
@@ -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
|
* Exporting module
|
|
5
5
|
*
|
|
@@ -37,120 +37,7 @@
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
_registerModule(_modules, 'Extensions/
|
|
41
|
-
/* *
|
|
42
|
-
*
|
|
43
|
-
* (c) 2015-2021 Oystein Moseng
|
|
44
|
-
*
|
|
45
|
-
* License: www.highcharts.com/license
|
|
46
|
-
*
|
|
47
|
-
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
48
|
-
*
|
|
49
|
-
* Mixin for downloading content in the browser
|
|
50
|
-
*
|
|
51
|
-
* */
|
|
52
|
-
var isSafari = Highcharts.isSafari;
|
|
53
|
-
var win = Highcharts.win,
|
|
54
|
-
doc = win.document,
|
|
55
|
-
domurl = win.URL || win.webkitURL || win;
|
|
56
|
-
/**
|
|
57
|
-
* Convert base64 dataURL to Blob if supported, otherwise returns undefined.
|
|
58
|
-
* @private
|
|
59
|
-
* @function Highcharts.dataURLtoBlob
|
|
60
|
-
* @param {string} dataURL
|
|
61
|
-
* URL to convert
|
|
62
|
-
* @return {string|undefined}
|
|
63
|
-
* Blob
|
|
64
|
-
*/
|
|
65
|
-
var dataURLtoBlob = Highcharts.dataURLtoBlob = function (dataURL) {
|
|
66
|
-
var parts = dataURL
|
|
67
|
-
.replace(/filename=.*;/, '')
|
|
68
|
-
.match(/data:([^;]*)(;base64)?,([0-9A-Za-z+/]+)/);
|
|
69
|
-
if (parts &&
|
|
70
|
-
parts.length > 3 &&
|
|
71
|
-
(win.atob) &&
|
|
72
|
-
win.ArrayBuffer &&
|
|
73
|
-
win.Uint8Array &&
|
|
74
|
-
win.Blob &&
|
|
75
|
-
(domurl.createObjectURL)) {
|
|
76
|
-
// Try to convert data URL to Blob
|
|
77
|
-
var binStr = win.atob(parts[3]),
|
|
78
|
-
buf = new win.ArrayBuffer(binStr.length),
|
|
79
|
-
binary = new win.Uint8Array(buf);
|
|
80
|
-
for (var i = 0; i < binary.length; ++i) {
|
|
81
|
-
binary[i] = binStr.charCodeAt(i);
|
|
82
|
-
}
|
|
83
|
-
var blob = new win.Blob([binary], { 'type': parts[1] });
|
|
84
|
-
return domurl.createObjectURL(blob);
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
/**
|
|
88
|
-
* Download a data URL in the browser. Can also take a blob as first param.
|
|
89
|
-
*
|
|
90
|
-
* @private
|
|
91
|
-
* @function Highcharts.downloadURL
|
|
92
|
-
* @param {string|global.URL} dataURL
|
|
93
|
-
* The dataURL/Blob to download
|
|
94
|
-
* @param {string} filename
|
|
95
|
-
* The name of the resulting file (w/extension)
|
|
96
|
-
* @return {void}
|
|
97
|
-
*/
|
|
98
|
-
var downloadURL = Highcharts.downloadURL = function (dataURL,
|
|
99
|
-
filename) {
|
|
100
|
-
var nav = win.navigator,
|
|
101
|
-
a = doc.createElement('a');
|
|
102
|
-
// IE specific blob implementation
|
|
103
|
-
// Don't use for normal dataURLs
|
|
104
|
-
if (typeof dataURL !== 'string' &&
|
|
105
|
-
!(dataURL instanceof String) &&
|
|
106
|
-
nav.msSaveOrOpenBlob) {
|
|
107
|
-
nav.msSaveOrOpenBlob(dataURL, filename);
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
dataURL = "".concat(dataURL);
|
|
111
|
-
// Some browsers have limitations for data URL lengths. Try to convert to
|
|
112
|
-
// Blob or fall back. Edge always needs that blob.
|
|
113
|
-
var isOldEdgeBrowser = /Edge\/\d+/.test(nav.userAgent);
|
|
114
|
-
// Safari on iOS needs Blob in order to download PDF
|
|
115
|
-
var safariBlob = (isSafari &&
|
|
116
|
-
typeof dataURL === 'string' &&
|
|
117
|
-
dataURL.indexOf('data:application/pdf') === 0);
|
|
118
|
-
if (safariBlob || isOldEdgeBrowser || dataURL.length > 2000000) {
|
|
119
|
-
dataURL = dataURLtoBlob(dataURL) || '';
|
|
120
|
-
if (!dataURL) {
|
|
121
|
-
throw new Error('Failed to convert to blob');
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
// Try HTML5 download attr if supported
|
|
125
|
-
if (typeof a.download !== 'undefined') {
|
|
126
|
-
a.href = dataURL;
|
|
127
|
-
a.download = filename; // HTML5 download attribute
|
|
128
|
-
doc.body.appendChild(a);
|
|
129
|
-
a.click();
|
|
130
|
-
doc.body.removeChild(a);
|
|
131
|
-
}
|
|
132
|
-
else {
|
|
133
|
-
// No download attr, just opening data URI
|
|
134
|
-
try {
|
|
135
|
-
var windowRef = win.open(dataURL, 'chart');
|
|
136
|
-
if (typeof windowRef === 'undefined' || windowRef === null) {
|
|
137
|
-
throw new Error('Failed to open window');
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
catch (e) {
|
|
141
|
-
// window.open failed, trying location.href
|
|
142
|
-
win.location.href = dataURL;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
};
|
|
146
|
-
var DownloadURL = {
|
|
147
|
-
dataURLtoBlob: dataURLtoBlob,
|
|
148
|
-
downloadURL: downloadURL
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
return DownloadURL;
|
|
152
|
-
});
|
|
153
|
-
_registerModule(_modules, 'Extensions/ExportData.js', [_modules['Core/Axis/Axis.js'], _modules['Core/Chart/Chart.js'], _modules['Core/Renderer/HTML/AST.js'], _modules['Core/Globals.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Utilities.js'], _modules['Extensions/DownloadURL.js']], function (Axis, Chart, AST, H, D, U, DownloadURL) {
|
|
40
|
+
_registerModule(_modules, 'Extensions/ExportData/ExportDataDefaults.js', [], function () {
|
|
154
41
|
/* *
|
|
155
42
|
*
|
|
156
43
|
* Experimental data export module for Highcharts
|
|
@@ -162,86 +49,16 @@
|
|
|
162
49
|
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
163
50
|
*
|
|
164
51
|
* */
|
|
165
|
-
|
|
166
|
-
// - Set up systematic tests for all series types, paired with tests of the data
|
|
167
|
-
// module importing the same data.
|
|
168
|
-
var __spreadArray = (this && this.__spreadArray) || function (to,
|
|
169
|
-
from,
|
|
170
|
-
pack) {
|
|
171
|
-
if (pack || arguments.length === 2) for (var i = 0,
|
|
172
|
-
l = from.length,
|
|
173
|
-
ar; i < l; i++) {
|
|
174
|
-
if (ar || !(i in from)) {
|
|
175
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0,
|
|
176
|
-
i);
|
|
177
|
-
ar[i] = from[i];
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
181
|
-
};
|
|
182
|
-
var doc = H.doc,
|
|
183
|
-
seriesTypes = H.seriesTypes,
|
|
184
|
-
win = H.win;
|
|
185
|
-
var getOptions = D.getOptions,
|
|
186
|
-
setOptions = D.setOptions;
|
|
187
|
-
var addEvent = U.addEvent,
|
|
188
|
-
defined = U.defined,
|
|
189
|
-
extend = U.extend,
|
|
190
|
-
find = U.find,
|
|
191
|
-
fireEvent = U.fireEvent,
|
|
192
|
-
isNumber = U.isNumber,
|
|
193
|
-
pick = U.pick;
|
|
194
|
-
/**
|
|
195
|
-
* Function callback to execute while data rows are processed for exporting.
|
|
196
|
-
* This allows the modification of data rows before processed into the final
|
|
197
|
-
* format.
|
|
198
|
-
*
|
|
199
|
-
* @callback Highcharts.ExportDataCallbackFunction
|
|
200
|
-
* @extends Highcharts.EventCallbackFunction<Highcharts.Chart>
|
|
52
|
+
/* *
|
|
201
53
|
*
|
|
202
|
-
*
|
|
203
|
-
* Chart context where the event occured.
|
|
54
|
+
* Constants
|
|
204
55
|
*
|
|
205
|
-
*
|
|
206
|
-
* Event object with data rows that can be modified.
|
|
207
|
-
*/
|
|
56
|
+
* */
|
|
208
57
|
/**
|
|
209
|
-
*
|
|
210
|
-
*
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
* Contains the data rows for the current export task and can be modified.
|
|
214
|
-
* @name Highcharts.ExportDataEventObject#dataRows
|
|
215
|
-
* @type {Array<Array<string>>}
|
|
216
|
-
*/
|
|
217
|
-
var downloadURL = DownloadURL.downloadURL;
|
|
218
|
-
setOptions({
|
|
219
|
-
/**
|
|
220
|
-
* Callback that fires while exporting data. This allows the modification of
|
|
221
|
-
* data rows before processed into the final format.
|
|
222
|
-
*
|
|
223
|
-
* @type {Highcharts.ExportDataCallbackFunction}
|
|
224
|
-
* @context Highcharts.Chart
|
|
225
|
-
* @requires modules/export-data
|
|
226
|
-
* @apioption chart.events.exportData
|
|
227
|
-
*/
|
|
228
|
-
/**
|
|
229
|
-
* When set to `false` will prevent the series data from being included in
|
|
230
|
-
* any form of data export.
|
|
231
|
-
*
|
|
232
|
-
* Since version 6.0.0 until 7.1.0 the option was existing undocumented
|
|
233
|
-
* as `includeInCSVExport`.
|
|
234
|
-
*
|
|
235
|
-
* @type {boolean}
|
|
236
|
-
* @since 7.1.0
|
|
237
|
-
* @requires modules/export-data
|
|
238
|
-
* @apioption plotOptions.series.includeInDataExport
|
|
239
|
-
*/
|
|
240
|
-
/**
|
|
241
|
-
* @optionparent exporting
|
|
242
|
-
* @private
|
|
243
|
-
*/
|
|
244
|
-
exporting: {
|
|
58
|
+
* @optionparent exporting
|
|
59
|
+
* @private
|
|
60
|
+
*/
|
|
61
|
+
var exporting = {
|
|
245
62
|
/**
|
|
246
63
|
* Caption for the data table. Same as chart title by default. Set to
|
|
247
64
|
* `false` to disable.
|
|
@@ -255,17 +72,22 @@
|
|
|
255
72
|
* @apioption exporting.tableCaption
|
|
256
73
|
*/
|
|
257
74
|
/**
|
|
258
|
-
* Options for exporting data to CSV or ExCel,
|
|
75
|
+
* Options for exporting data to CSV or ExCel,
|
|
76
|
+
or displaying the data
|
|
259
77
|
* in a HTML table or a JavaScript structure.
|
|
260
78
|
*
|
|
261
79
|
* This module adds data export options to the export menu and provides
|
|
262
|
-
* functions like `Chart.getCSV`,
|
|
80
|
+
* functions like `Chart.getCSV`,
|
|
81
|
+
`Chart.getTable`,
|
|
82
|
+
`Chart.getDataRows`
|
|
263
83
|
* and `Chart.viewData`.
|
|
264
84
|
*
|
|
265
85
|
* The XLS converter is limited and only creates a HTML string that is
|
|
266
|
-
* passed for download,
|
|
86
|
+
* passed for download,
|
|
87
|
+
which works but creates a warning before
|
|
267
88
|
* opening. The workaround for this is to use a third party XLSX
|
|
268
|
-
* converter,
|
|
89
|
+
* converter,
|
|
90
|
+
as demonstrated in the sample below.
|
|
269
91
|
*
|
|
270
92
|
* @sample highcharts/export-data/categorized/ Categorized data
|
|
271
93
|
* @sample highcharts/export-data/stock-timeaxis/ Highcharts Stock time axis
|
|
@@ -310,19 +132,25 @@
|
|
|
310
132
|
/**
|
|
311
133
|
* Formatter callback for the column headers. Parameters are:
|
|
312
134
|
* - `item` - The series or axis object)
|
|
313
|
-
* - `key` - The point key,
|
|
314
|
-
|
|
135
|
+
* - `key` - The point key,
|
|
136
|
+
for example y or z
|
|
137
|
+
* - `keyLength` - The amount of value keys for this item,
|
|
138
|
+
for
|
|
315
139
|
* example a range series has the keys `low` and `high` so the
|
|
316
140
|
* key length is 2.
|
|
317
141
|
*
|
|
318
142
|
* If [useMultiLevelHeaders](#exporting.useMultiLevelHeaders) is
|
|
319
|
-
* true,
|
|
143
|
+
* true,
|
|
144
|
+
columnHeaderFormatter by default returns an object with
|
|
320
145
|
* columnTitle and topLevelColumnTitle for each key. Columns with
|
|
321
146
|
* the same topLevelColumnTitle have their titles merged into a
|
|
322
147
|
* single cell with colspan for table/Excel export.
|
|
323
148
|
*
|
|
324
|
-
* If `useMultiLevelHeaders` is false,
|
|
325
|
-
|
|
149
|
+
* If `useMultiLevelHeaders` is false,
|
|
150
|
+
or for CSV export,
|
|
151
|
+
it returns
|
|
152
|
+
* the series name,
|
|
153
|
+
followed by the key if there is more than one
|
|
326
154
|
* key.
|
|
327
155
|
*
|
|
328
156
|
* For the axis it returns the axis title or "Category" or
|
|
@@ -343,7 +171,9 @@
|
|
|
343
171
|
dateFormat: '%Y-%m-%d %H:%M:%S',
|
|
344
172
|
/**
|
|
345
173
|
* Which decimal point to use for exported CSV. Defaults to the same
|
|
346
|
-
* as the browser locale,
|
|
174
|
+
* as the browser locale,
|
|
175
|
+
typically `.` (English) or `,
|
|
176
|
+
` (German,
|
|
347
177
|
* French etc).
|
|
348
178
|
*
|
|
349
179
|
* @type {string|null}
|
|
@@ -353,14 +183,19 @@
|
|
|
353
183
|
/**
|
|
354
184
|
* The item delimiter in the exported data. Use `;` for direct
|
|
355
185
|
* exporting to Excel. Defaults to a best guess based on the browser
|
|
356
|
-
* locale. If the locale _decimal point_ is
|
|
357
|
-
|
|
186
|
+
* locale. If the locale _decimal point_ is `,
|
|
187
|
+
`,
|
|
188
|
+
the `itemDelimiter`
|
|
189
|
+
* defaults to `;`,
|
|
190
|
+
otherwise the `itemDelimiter` defaults to `,
|
|
191
|
+
`.
|
|
358
192
|
*
|
|
359
193
|
* @type {string|null}
|
|
360
194
|
*/
|
|
361
195
|
itemDelimiter: null,
|
|
362
196
|
/**
|
|
363
|
-
* The line delimiter in the exported data,
|
|
197
|
+
* The line delimiter in the exported data,
|
|
198
|
+
defaults to a newline.
|
|
364
199
|
*/
|
|
365
200
|
lineDelimiter: '\n'
|
|
366
201
|
},
|
|
@@ -379,7 +214,8 @@
|
|
|
379
214
|
showTable: false,
|
|
380
215
|
/**
|
|
381
216
|
* Use multi level headers in data table. If [csv.columnHeaderFormatter
|
|
382
|
-
* ](#exporting.csv.columnHeaderFormatter) is defined,
|
|
217
|
+
* ](#exporting.csv.columnHeaderFormatter) is defined,
|
|
218
|
+
it has to return
|
|
383
219
|
* objects in order for multi level headers to work.
|
|
384
220
|
*
|
|
385
221
|
* @sample highcharts/export-data/multilevel-table
|
|
@@ -390,7 +226,8 @@
|
|
|
390
226
|
*/
|
|
391
227
|
useMultiLevelHeaders: true,
|
|
392
228
|
/**
|
|
393
|
-
* If using multi level table headers,
|
|
229
|
+
* If using multi level table headers,
|
|
230
|
+
use rowspans for headers that
|
|
394
231
|
* have only one level.
|
|
395
232
|
*
|
|
396
233
|
* @sample highcharts/export-data/multilevel-table
|
|
@@ -400,13 +237,12 @@
|
|
|
400
237
|
* @requires modules/export-data
|
|
401
238
|
*/
|
|
402
239
|
useRowspanHeaders: true
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
lang: {
|
|
240
|
+
};
|
|
241
|
+
/**
|
|
242
|
+
* @optionparent lang
|
|
243
|
+
* @private
|
|
244
|
+
*/
|
|
245
|
+
var lang = {
|
|
410
246
|
/**
|
|
411
247
|
* The text for the menu item.
|
|
412
248
|
*
|
|
@@ -455,87 +291,319 @@
|
|
|
455
291
|
* @requires modules/export-data
|
|
456
292
|
*/
|
|
457
293
|
hideData: 'Hide data table'
|
|
294
|
+
};
|
|
295
|
+
/* *
|
|
296
|
+
*
|
|
297
|
+
* Default Export
|
|
298
|
+
*
|
|
299
|
+
* */
|
|
300
|
+
var ExportDataDefaults = {
|
|
301
|
+
exporting: exporting,
|
|
302
|
+
lang: lang
|
|
303
|
+
};
|
|
304
|
+
/* *
|
|
305
|
+
*
|
|
306
|
+
* API Options
|
|
307
|
+
*
|
|
308
|
+
* */
|
|
309
|
+
/**
|
|
310
|
+
* Callback that fires while exporting data. This allows the modification of
|
|
311
|
+
* data rows before processed into the final format.
|
|
312
|
+
*
|
|
313
|
+
* @type {Highcharts.ExportDataCallbackFunction}
|
|
314
|
+
* @context Highcharts.Chart
|
|
315
|
+
* @requires modules/export-data
|
|
316
|
+
* @apioption chart.events.exportData
|
|
317
|
+
*/
|
|
318
|
+
/**
|
|
319
|
+
* When set to `false` will prevent the series data from being included in
|
|
320
|
+
* any form of data export.
|
|
321
|
+
*
|
|
322
|
+
* Since version 6.0.0 until 7.1.0 the option was existing undocumented
|
|
323
|
+
* as `includeInCSVExport`.
|
|
324
|
+
*
|
|
325
|
+
* @type {boolean}
|
|
326
|
+
* @since 7.1.0
|
|
327
|
+
* @requires modules/export-data
|
|
328
|
+
* @apioption plotOptions.series.includeInDataExport
|
|
329
|
+
*/
|
|
330
|
+
(''); // keep doclets above in JS file
|
|
331
|
+
|
|
332
|
+
return ExportDataDefaults;
|
|
333
|
+
});
|
|
334
|
+
_registerModule(_modules, 'Extensions/DownloadURL.js', [_modules['Core/Globals.js']], function (Highcharts) {
|
|
335
|
+
/* *
|
|
336
|
+
*
|
|
337
|
+
* (c) 2015-2021 Oystein Moseng
|
|
338
|
+
*
|
|
339
|
+
* License: www.highcharts.com/license
|
|
340
|
+
*
|
|
341
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
342
|
+
*
|
|
343
|
+
* Mixin for downloading content in the browser
|
|
344
|
+
*
|
|
345
|
+
* */
|
|
346
|
+
var isSafari = Highcharts.isSafari;
|
|
347
|
+
var win = Highcharts.win,
|
|
348
|
+
doc = win.document,
|
|
349
|
+
domurl = win.URL || win.webkitURL || win;
|
|
350
|
+
/**
|
|
351
|
+
* Convert base64 dataURL to Blob if supported, otherwise returns undefined.
|
|
352
|
+
* @private
|
|
353
|
+
* @function Highcharts.dataURLtoBlob
|
|
354
|
+
* @param {string} dataURL
|
|
355
|
+
* URL to convert
|
|
356
|
+
* @return {string|undefined}
|
|
357
|
+
* Blob
|
|
358
|
+
*/
|
|
359
|
+
var dataURLtoBlob = Highcharts.dataURLtoBlob = function (dataURL) {
|
|
360
|
+
var parts = dataURL
|
|
361
|
+
.replace(/filename=.*;/, '')
|
|
362
|
+
.match(/data:([^;]*)(;base64)?,([0-9A-Za-z+/]+)/);
|
|
363
|
+
if (parts &&
|
|
364
|
+
parts.length > 3 &&
|
|
365
|
+
(win.atob) &&
|
|
366
|
+
win.ArrayBuffer &&
|
|
367
|
+
win.Uint8Array &&
|
|
368
|
+
win.Blob &&
|
|
369
|
+
(domurl.createObjectURL)) {
|
|
370
|
+
// Try to convert data URL to Blob
|
|
371
|
+
var binStr = win.atob(parts[3]),
|
|
372
|
+
buf = new win.ArrayBuffer(binStr.length),
|
|
373
|
+
binary = new win.Uint8Array(buf);
|
|
374
|
+
for (var i = 0; i < binary.length; ++i) {
|
|
375
|
+
binary[i] = binStr.charCodeAt(i);
|
|
376
|
+
}
|
|
377
|
+
var blob = new win.Blob([binary], { 'type': parts[1] });
|
|
378
|
+
return domurl.createObjectURL(blob);
|
|
458
379
|
}
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
380
|
+
};
|
|
381
|
+
/**
|
|
382
|
+
* Download a data URL in the browser. Can also take a blob as first param.
|
|
383
|
+
*
|
|
384
|
+
* @private
|
|
385
|
+
* @function Highcharts.downloadURL
|
|
386
|
+
* @param {string|global.URL} dataURL
|
|
387
|
+
* The dataURL/Blob to download
|
|
388
|
+
* @param {string} filename
|
|
389
|
+
* The name of the resulting file (w/extension)
|
|
390
|
+
* @return {void}
|
|
391
|
+
*/
|
|
392
|
+
var downloadURL = Highcharts.downloadURL = function (dataURL,
|
|
393
|
+
filename) {
|
|
394
|
+
var nav = win.navigator,
|
|
395
|
+
a = doc.createElement('a');
|
|
396
|
+
// IE specific blob implementation
|
|
397
|
+
// Don't use for normal dataURLs
|
|
398
|
+
if (typeof dataURL !== 'string' &&
|
|
399
|
+
!(dataURL instanceof String) &&
|
|
400
|
+
nav.msSaveOrOpenBlob) {
|
|
401
|
+
nav.msSaveOrOpenBlob(dataURL, filename);
|
|
402
|
+
return;
|
|
468
403
|
}
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
404
|
+
dataURL = "".concat(dataURL);
|
|
405
|
+
// Some browsers have limitations for data URL lengths. Try to convert to
|
|
406
|
+
// Blob or fall back. Edge always needs that blob.
|
|
407
|
+
var isOldEdgeBrowser = /Edge\/\d+/.test(nav.userAgent);
|
|
408
|
+
// Safari on iOS needs Blob in order to download PDF
|
|
409
|
+
var safariBlob = (isSafari &&
|
|
410
|
+
typeof dataURL === 'string' &&
|
|
411
|
+
dataURL.indexOf('data:application/pdf') === 0);
|
|
412
|
+
if (safariBlob || isOldEdgeBrowser || dataURL.length > 2000000) {
|
|
413
|
+
dataURL = dataURLtoBlob(dataURL) || '';
|
|
414
|
+
if (!dataURL) {
|
|
415
|
+
throw new Error('Failed to convert to blob');
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
// Try HTML5 download attr if supported
|
|
419
|
+
if (typeof a.download !== 'undefined') {
|
|
420
|
+
a.href = dataURL;
|
|
421
|
+
a.download = filename; // HTML5 download attribute
|
|
422
|
+
doc.body.appendChild(a);
|
|
423
|
+
a.click();
|
|
424
|
+
doc.body.removeChild(a);
|
|
425
|
+
}
|
|
426
|
+
else {
|
|
427
|
+
// No download attr, just opening data URI
|
|
428
|
+
try {
|
|
429
|
+
var windowRef = win.open(dataURL, 'chart');
|
|
430
|
+
if (typeof windowRef === 'undefined' || windowRef === null) {
|
|
431
|
+
throw new Error('Failed to open window');
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
catch (e) {
|
|
435
|
+
// window.open failed, trying location.href
|
|
436
|
+
win.location.href = dataURL;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
};
|
|
440
|
+
var DownloadURL = {
|
|
441
|
+
dataURLtoBlob: dataURLtoBlob,
|
|
442
|
+
downloadURL: downloadURL
|
|
485
443
|
};
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
444
|
+
|
|
445
|
+
return DownloadURL;
|
|
446
|
+
});
|
|
447
|
+
_registerModule(_modules, 'Extensions/ExportData/ExportData.js', [_modules['Core/Renderer/HTML/AST.js'], _modules['Extensions/ExportData/ExportDataDefaults.js'], _modules['Core/Globals.js'], _modules['Core/DefaultOptions.js'], _modules['Extensions/DownloadURL.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (AST, ExportDataDefaults, H, D, DownloadURL, SeriesRegistry, U) {
|
|
448
|
+
/* *
|
|
449
|
+
*
|
|
450
|
+
* Experimental data export module for Highcharts
|
|
451
|
+
*
|
|
452
|
+
* (c) 2010-2021 Torstein Honsi
|
|
453
|
+
*
|
|
454
|
+
* License: www.highcharts.com/license
|
|
455
|
+
*
|
|
456
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
457
|
+
*
|
|
458
|
+
* */
|
|
459
|
+
// @todo
|
|
460
|
+
// - Set up systematic tests for all series types, paired with tests of the data
|
|
461
|
+
// module importing the same data.
|
|
462
|
+
var __spreadArray = (this && this.__spreadArray) || function (to,
|
|
463
|
+
from,
|
|
464
|
+
pack) {
|
|
465
|
+
if (pack || arguments.length === 2) for (var i = 0,
|
|
466
|
+
l = from.length,
|
|
467
|
+
ar; i < l; i++) {
|
|
468
|
+
if (ar || !(i in from)) {
|
|
469
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0,
|
|
470
|
+
i);
|
|
471
|
+
ar[i] = from[i];
|
|
472
|
+
}
|
|
513
473
|
}
|
|
514
|
-
|
|
515
|
-
|
|
474
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
475
|
+
};
|
|
476
|
+
var doc = H.doc,
|
|
477
|
+
win = H.win;
|
|
478
|
+
var getOptions = D.getOptions,
|
|
479
|
+
setOptions = D.setOptions;
|
|
480
|
+
var downloadURL = DownloadURL.downloadURL;
|
|
481
|
+
var SeriesClass = SeriesRegistry.series,
|
|
482
|
+
_a = SeriesRegistry.seriesTypes,
|
|
483
|
+
AreaRangeSeries = _a.arearange,
|
|
484
|
+
GanttSeries = _a.gantt,
|
|
485
|
+
MapSeries = _a.map,
|
|
486
|
+
MapBubbleSeries = _a.mapbubble,
|
|
487
|
+
TreemapSeries = _a.treemap;
|
|
488
|
+
var addEvent = U.addEvent,
|
|
489
|
+
defined = U.defined,
|
|
490
|
+
extend = U.extend,
|
|
491
|
+
find = U.find,
|
|
492
|
+
fireEvent = U.fireEvent,
|
|
493
|
+
isNumber = U.isNumber,
|
|
494
|
+
pick = U.pick;
|
|
495
|
+
/* *
|
|
496
|
+
*
|
|
497
|
+
* Constants
|
|
498
|
+
*
|
|
499
|
+
* */
|
|
500
|
+
var composedClasses = [];
|
|
501
|
+
/* *
|
|
502
|
+
*
|
|
503
|
+
* Functions
|
|
504
|
+
*
|
|
505
|
+
* */
|
|
516
506
|
/**
|
|
517
|
-
*
|
|
518
|
-
*
|
|
519
|
-
* should be formatted according to the Y axis type, and in order to link them
|
|
520
|
-
* we need this map.
|
|
507
|
+
* Generates a data URL of CSV for local download in the browser. This is the
|
|
508
|
+
* default action for a click on the 'Download CSV' button.
|
|
521
509
|
*
|
|
522
|
-
* @
|
|
523
|
-
*
|
|
510
|
+
* See {@link Highcharts.Chart#getCSV} to get the CSV data itself.
|
|
511
|
+
*
|
|
512
|
+
* @function Highcharts.Chart#downloadCSV
|
|
513
|
+
*
|
|
514
|
+
* @requires modules/exporting
|
|
524
515
|
*/
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
516
|
+
function chartDownloadCSV() {
|
|
517
|
+
var csv = this.getCSV(true);
|
|
518
|
+
downloadURL(getBlobFromContent(csv, 'text/csv') ||
|
|
519
|
+
'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
|
|
520
|
+
}
|
|
521
|
+
/**
|
|
522
|
+
* Generates a data URL of an XLS document for local download in the browser.
|
|
523
|
+
* This is the default action for a click on the 'Download XLS' button.
|
|
524
|
+
*
|
|
525
|
+
* See {@link Highcharts.Chart#getTable} to get the table data itself.
|
|
526
|
+
*
|
|
527
|
+
* @function Highcharts.Chart#downloadXLS
|
|
528
|
+
*
|
|
529
|
+
* @requires modules/exporting
|
|
530
|
+
*/
|
|
531
|
+
function chartDownloadXLS() {
|
|
532
|
+
var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
|
|
533
|
+
'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
|
|
534
|
+
'xmlns="http://www.w3.org/TR/REC-html40">' +
|
|
535
|
+
'<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
|
|
536
|
+
'<x:ExcelWorksheets><x:ExcelWorksheet>' +
|
|
537
|
+
'<x:Name>Ark1</x:Name>' +
|
|
538
|
+
'<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>' +
|
|
539
|
+
'</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
|
|
540
|
+
'</xml><![endif]-->' +
|
|
541
|
+
'<style>td{border:none;font-family: Calibri, sans-serif;} ' +
|
|
542
|
+
'.number{mso-number-format:"0.00";} ' +
|
|
543
|
+
'.text{ mso-number-format:"\@";}</style>' +
|
|
544
|
+
'<meta name=ProgId content=Excel.Sheet>' +
|
|
545
|
+
'<meta charset=UTF-8>' +
|
|
546
|
+
'</head><body>' +
|
|
547
|
+
this.getTable(true) +
|
|
548
|
+
'</body></html>', base64 = function (s) {
|
|
549
|
+
return win.btoa(unescape(encodeURIComponent(s))); // #50
|
|
536
550
|
};
|
|
537
|
-
|
|
538
|
-
|
|
551
|
+
downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
|
|
552
|
+
uri + base64(template), this.getFilename() + '.xls');
|
|
553
|
+
}
|
|
554
|
+
/**
|
|
555
|
+
* Export-data module required. Returns the current chart data as a CSV string.
|
|
556
|
+
*
|
|
557
|
+
* @function Highcharts.Chart#getCSV
|
|
558
|
+
*
|
|
559
|
+
* @param {boolean} [useLocalDecimalPoint]
|
|
560
|
+
* Whether to use the local decimal point as detected from the browser.
|
|
561
|
+
* This makes it easier to export data to Excel in the same locale as the
|
|
562
|
+
* user is.
|
|
563
|
+
*
|
|
564
|
+
* @return {string}
|
|
565
|
+
* CSV representation of the data
|
|
566
|
+
*/
|
|
567
|
+
function chartGetCSV(useLocalDecimalPoint) {
|
|
568
|
+
var csv = '';
|
|
569
|
+
var rows = this.getDataRows(), csvOptions = this.options.exporting.csv, decimalPoint = pick(csvOptions.decimalPoint, csvOptions.itemDelimiter !== ',' && useLocalDecimalPoint ?
|
|
570
|
+
(1.1).toLocaleString()[1] :
|
|
571
|
+
'.'),
|
|
572
|
+
// use ';' for direct to Excel
|
|
573
|
+
itemDelimiter = pick(csvOptions.itemDelimiter, decimalPoint === ',' ? ';' : ','),
|
|
574
|
+
// '\n' isn't working with the js csv data extraction
|
|
575
|
+
lineDelimiter = csvOptions.lineDelimiter;
|
|
576
|
+
// Transform the rows to CSV
|
|
577
|
+
rows.forEach(function (row, i) {
|
|
578
|
+
var val = '',
|
|
579
|
+
j = row.length;
|
|
580
|
+
while (j--) {
|
|
581
|
+
val = row[j];
|
|
582
|
+
if (typeof val === 'string') {
|
|
583
|
+
val = '"' + val + '"';
|
|
584
|
+
}
|
|
585
|
+
if (typeof val === 'number') {
|
|
586
|
+
if (decimalPoint !== '.') {
|
|
587
|
+
val = val.toString().replace('.', decimalPoint);
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
row[j] = val;
|
|
591
|
+
}
|
|
592
|
+
// The first row is the header - it defines the number of columns.
|
|
593
|
+
// Empty columns between not-empty cells are covered in the getDataRows
|
|
594
|
+
// method.
|
|
595
|
+
// Now add empty values only to the end of the row so all rows have
|
|
596
|
+
// the same number of columns, #17186
|
|
597
|
+
row.length = rows.length ? rows[0].length : 0;
|
|
598
|
+
// Add the values
|
|
599
|
+
csv += row.join(itemDelimiter);
|
|
600
|
+
// Add the line delimiter
|
|
601
|
+
if (i < rows.length - 1) {
|
|
602
|
+
csv += lineDelimiter;
|
|
603
|
+
}
|
|
604
|
+
});
|
|
605
|
+
return csv;
|
|
606
|
+
}
|
|
539
607
|
/**
|
|
540
608
|
* Export-data module required. Returns a two-dimensional array containing the
|
|
541
609
|
* current chart data.
|
|
@@ -552,21 +620,15 @@
|
|
|
552
620
|
*
|
|
553
621
|
* @emits Highcharts.Chart#event:exportData
|
|
554
622
|
*/
|
|
555
|
-
|
|
623
|
+
function chartGetDataRows(multiLevelHeaders) {
|
|
556
624
|
var hasParallelCoords = this.hasParallelCoordinates,
|
|
557
625
|
time = this.time,
|
|
558
626
|
csvOptions = ((this.options.exporting && this.options.exporting.csv) || {}),
|
|
559
|
-
xAxis,
|
|
560
627
|
xAxes = this.xAxis,
|
|
561
628
|
rows = {},
|
|
562
629
|
rowArr = [],
|
|
563
|
-
dataRows,
|
|
564
630
|
topLevelColumnTitles = [],
|
|
565
631
|
columnTitles = [],
|
|
566
|
-
columnTitleObj,
|
|
567
|
-
i,
|
|
568
|
-
x,
|
|
569
|
-
xTitle,
|
|
570
632
|
langOptions = this.options.lang,
|
|
571
633
|
exportDataOptions = langOptions.exportData,
|
|
572
634
|
categoryHeader = exportDataOptions.categoryHeader,
|
|
@@ -586,7 +648,7 @@
|
|
|
586
648
|
if (!item) {
|
|
587
649
|
return categoryHeader;
|
|
588
650
|
}
|
|
589
|
-
if (item instanceof
|
|
651
|
+
if (!(item instanceof SeriesClass)) {
|
|
590
652
|
return (item.options.title && item.options.title.text) ||
|
|
591
653
|
(item.dateTime ? categoryDatetimeHeader : categoryHeader);
|
|
592
654
|
}
|
|
@@ -642,9 +704,12 @@
|
|
|
642
704
|
}
|
|
643
705
|
return series.pointArrayMap || ['y'];
|
|
644
706
|
}, xAxisIndices = [];
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
707
|
+
var xAxis,
|
|
708
|
+
dataRows,
|
|
709
|
+
columnTitleObj,
|
|
710
|
+
i = 0, // Loop the series and index values
|
|
711
|
+
x,
|
|
712
|
+
xTitle;
|
|
648
713
|
this.series.forEach(function (series) {
|
|
649
714
|
var keys = series.options.keys,
|
|
650
715
|
xAxis = series.xAxis,
|
|
@@ -690,20 +755,18 @@
|
|
|
690
755
|
// Export directly from options.data because we need the uncropped
|
|
691
756
|
// data (#7913), and we need to support Boost (#7026).
|
|
692
757
|
series.options.data.forEach(function eachData(options, pIdx) {
|
|
758
|
+
var mockPoint = { series: mockSeries };
|
|
693
759
|
var key,
|
|
694
760
|
prop,
|
|
695
|
-
val
|
|
696
|
-
name,
|
|
697
|
-
point;
|
|
761
|
+
val;
|
|
698
762
|
// In parallel coordinates chart, each data point is connected
|
|
699
763
|
// to a separate yAxis, conform this
|
|
700
764
|
if (hasParallelCoords) {
|
|
701
765
|
categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap, pIdx);
|
|
702
766
|
}
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
name = series.data[pIdx] && series.data[pIdx].name;
|
|
767
|
+
series.pointClass.prototype.applyOptions.apply(mockPoint, [options]);
|
|
768
|
+
key = mockPoint.x;
|
|
769
|
+
var name = series.data[pIdx] && series.data[pIdx].name;
|
|
707
770
|
j = 0;
|
|
708
771
|
// Pies, funnels, geo maps etc. use point name in X row
|
|
709
772
|
if (!xAxis ||
|
|
@@ -723,12 +786,12 @@
|
|
|
723
786
|
// Contain the X values from one or more X axes
|
|
724
787
|
rows[key].xValues = [];
|
|
725
788
|
}
|
|
726
|
-
rows[key].x =
|
|
789
|
+
rows[key].x = mockPoint.x;
|
|
727
790
|
rows[key].name = name;
|
|
728
|
-
rows[key].xValues[xAxisIndex] =
|
|
791
|
+
rows[key].xValues[xAxisIndex] = mockPoint.x;
|
|
729
792
|
while (j < valueCount) {
|
|
730
793
|
prop = pointArrayMap[j]; // y, z etc
|
|
731
|
-
val =
|
|
794
|
+
val = mockPoint[prop];
|
|
732
795
|
rows[key][i + j] = pick(
|
|
733
796
|
// Y axis category if present
|
|
734
797
|
categoryAndDatetimeMap.categoryMap[prop][val],
|
|
@@ -795,63 +858,10 @@
|
|
|
795
858
|
row.splice(column, 0, category);
|
|
796
859
|
});
|
|
797
860
|
}
|
|
798
|
-
dataRows = dataRows.concat(rowArr);
|
|
799
|
-
fireEvent(this, 'exportData', { dataRows: dataRows });
|
|
800
|
-
return dataRows;
|
|
801
|
-
}
|
|
802
|
-
/**
|
|
803
|
-
* Export-data module required. Returns the current chart data as a CSV string.
|
|
804
|
-
*
|
|
805
|
-
* @function Highcharts.Chart#getCSV
|
|
806
|
-
*
|
|
807
|
-
* @param {boolean} [useLocalDecimalPoint]
|
|
808
|
-
* Whether to use the local decimal point as detected from the browser.
|
|
809
|
-
* This makes it easier to export data to Excel in the same locale as the
|
|
810
|
-
* user is.
|
|
811
|
-
*
|
|
812
|
-
* @return {string}
|
|
813
|
-
* CSV representation of the data
|
|
814
|
-
*/
|
|
815
|
-
Chart.prototype.getCSV = function (useLocalDecimalPoint) {
|
|
816
|
-
var csv = '';
|
|
817
|
-
var rows = this.getDataRows(), csvOptions = this.options.exporting.csv, decimalPoint = pick(csvOptions.decimalPoint, csvOptions.itemDelimiter !== ',' && useLocalDecimalPoint ?
|
|
818
|
-
(1.1).toLocaleString()[1] :
|
|
819
|
-
'.'),
|
|
820
|
-
// use ';' for direct to Excel
|
|
821
|
-
itemDelimiter = pick(csvOptions.itemDelimiter, decimalPoint === ',' ? ';' : ','),
|
|
822
|
-
// '\n' isn't working with the js csv data extraction
|
|
823
|
-
lineDelimiter = csvOptions.lineDelimiter;
|
|
824
|
-
// Transform the rows to CSV
|
|
825
|
-
rows.forEach(function (row, i) {
|
|
826
|
-
var val = '',
|
|
827
|
-
j = row.length;
|
|
828
|
-
while (j--) {
|
|
829
|
-
val = row[j];
|
|
830
|
-
if (typeof val === 'string') {
|
|
831
|
-
val = '"' + val + '"';
|
|
832
|
-
}
|
|
833
|
-
if (typeof val === 'number') {
|
|
834
|
-
if (decimalPoint !== '.') {
|
|
835
|
-
val = val.toString().replace('.', decimalPoint);
|
|
836
|
-
}
|
|
837
|
-
}
|
|
838
|
-
row[j] = val;
|
|
839
|
-
}
|
|
840
|
-
// The first row is the header - it defines the number of columns.
|
|
841
|
-
// Empty columns between not-empty cells are covered in the getDataRows
|
|
842
|
-
// method.
|
|
843
|
-
// Now add empty values only to the end of the row so all rows have
|
|
844
|
-
// the same number of columns, #17186
|
|
845
|
-
row.length = rows.length ? rows[0].length : 0;
|
|
846
|
-
// Add the values
|
|
847
|
-
csv += row.join(itemDelimiter);
|
|
848
|
-
// Add the line delimiter
|
|
849
|
-
if (i < rows.length - 1) {
|
|
850
|
-
csv += lineDelimiter;
|
|
851
|
-
}
|
|
852
|
-
});
|
|
853
|
-
return csv;
|
|
854
|
-
};
|
|
861
|
+
dataRows = dataRows.concat(rowArr);
|
|
862
|
+
fireEvent(this, 'exportData', { dataRows: dataRows });
|
|
863
|
+
return dataRows;
|
|
864
|
+
}
|
|
855
865
|
/**
|
|
856
866
|
* Export-data module required. Build a HTML table with the chart's current
|
|
857
867
|
* data.
|
|
@@ -871,7 +881,7 @@
|
|
|
871
881
|
*
|
|
872
882
|
* @emits Highcharts.Chart#event:afterGetTable
|
|
873
883
|
*/
|
|
874
|
-
|
|
884
|
+
function chartGetTable(useLocalDecimalPoint) {
|
|
875
885
|
var serialize = function (node) {
|
|
876
886
|
if (!node.tagName || node.tagName === '#text') {
|
|
877
887
|
// Text node
|
|
@@ -880,7 +890,8 @@
|
|
|
880
890
|
var attributes = node.attributes;
|
|
881
891
|
var html = "<".concat(node.tagName);
|
|
882
892
|
if (attributes) {
|
|
883
|
-
Object.keys(attributes)
|
|
893
|
+
Object.keys(attributes)
|
|
894
|
+
.forEach(function (key) {
|
|
884
895
|
var value = attributes[key];
|
|
885
896
|
html += " ".concat(key, "=\"").concat(value, "\"");
|
|
886
897
|
});
|
|
@@ -895,7 +906,7 @@
|
|
|
895
906
|
};
|
|
896
907
|
var tree = this.getTableAST(useLocalDecimalPoint);
|
|
897
908
|
return serialize(tree);
|
|
898
|
-
}
|
|
909
|
+
}
|
|
899
910
|
/**
|
|
900
911
|
* Get the AST of a HTML table representing the chart data.
|
|
901
912
|
*
|
|
@@ -911,7 +922,7 @@
|
|
|
911
922
|
* @return {Highcharts.ASTNode}
|
|
912
923
|
* The abstract syntax tree
|
|
913
924
|
*/
|
|
914
|
-
|
|
925
|
+
function chartGetTableAST(useLocalDecimalPoint) {
|
|
915
926
|
var rowLength = 0;
|
|
916
927
|
var treeChildren = [];
|
|
917
928
|
var options = this.options,
|
|
@@ -1086,109 +1097,19 @@
|
|
|
1086
1097
|
};
|
|
1087
1098
|
fireEvent(this, 'aftergetTableAST', e);
|
|
1088
1099
|
return e.tree;
|
|
1089
|
-
};
|
|
1090
|
-
/**
|
|
1091
|
-
* Get a blob object from content, if blob is supported
|
|
1092
|
-
*
|
|
1093
|
-
* @private
|
|
1094
|
-
* @param {string} content
|
|
1095
|
-
* The content to create the blob from.
|
|
1096
|
-
* @param {string} type
|
|
1097
|
-
* The type of the content.
|
|
1098
|
-
* @return {string|undefined}
|
|
1099
|
-
* The blob object, or undefined if not supported.
|
|
1100
|
-
*/
|
|
1101
|
-
function getBlobFromContent(content, type) {
|
|
1102
|
-
var nav = win.navigator,
|
|
1103
|
-
webKit = (nav.userAgent.indexOf('WebKit') > -1 &&
|
|
1104
|
-
nav.userAgent.indexOf('Chrome') < 0),
|
|
1105
|
-
domurl = win.URL || win.webkitURL || win;
|
|
1106
|
-
try {
|
|
1107
|
-
// MS specific
|
|
1108
|
-
if ((nav.msSaveOrOpenBlob) && win.MSBlobBuilder) {
|
|
1109
|
-
var blob = new win.MSBlobBuilder();
|
|
1110
|
-
blob.append(content);
|
|
1111
|
-
return blob.getBlob('image/svg+xml');
|
|
1112
|
-
}
|
|
1113
|
-
// Safari requires data URI since it doesn't allow navigation to blob
|
|
1114
|
-
// URLs.
|
|
1115
|
-
if (!webKit) {
|
|
1116
|
-
return domurl.createObjectURL(new win.Blob(['\uFEFF' + content], // #7084
|
|
1117
|
-
{ type: type }));
|
|
1118
|
-
}
|
|
1119
|
-
}
|
|
1120
|
-
catch (e) {
|
|
1121
|
-
// Ignore
|
|
1122
|
-
}
|
|
1123
1100
|
}
|
|
1124
|
-
/* eslint-disable valid-jsdoc */
|
|
1125
|
-
/**
|
|
1126
|
-
* Generates a data URL of CSV for local download in the browser. This is the
|
|
1127
|
-
* default action for a click on the 'Download CSV' button.
|
|
1128
|
-
*
|
|
1129
|
-
* See {@link Highcharts.Chart#getCSV} to get the CSV data itself.
|
|
1130
|
-
*
|
|
1131
|
-
* @function Highcharts.Chart#downloadCSV
|
|
1132
|
-
*
|
|
1133
|
-
* @requires modules/exporting
|
|
1134
|
-
*/
|
|
1135
|
-
Chart.prototype.downloadCSV = function () {
|
|
1136
|
-
var csv = this.getCSV(true);
|
|
1137
|
-
downloadURL(getBlobFromContent(csv, 'text/csv') ||
|
|
1138
|
-
'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
|
|
1139
|
-
};
|
|
1140
|
-
/**
|
|
1141
|
-
* Generates a data URL of an XLS document for local download in the browser.
|
|
1142
|
-
* This is the default action for a click on the 'Download XLS' button.
|
|
1143
|
-
*
|
|
1144
|
-
* See {@link Highcharts.Chart#getTable} to get the table data itself.
|
|
1145
|
-
*
|
|
1146
|
-
* @function Highcharts.Chart#downloadXLS
|
|
1147
|
-
*
|
|
1148
|
-
* @requires modules/exporting
|
|
1149
|
-
*/
|
|
1150
|
-
Chart.prototype.downloadXLS = function () {
|
|
1151
|
-
var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
|
|
1152
|
-
'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
|
|
1153
|
-
'xmlns="http://www.w3.org/TR/REC-html40">' +
|
|
1154
|
-
'<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
|
|
1155
|
-
'<x:ExcelWorksheets><x:ExcelWorksheet>' +
|
|
1156
|
-
'<x:Name>Ark1</x:Name>' +
|
|
1157
|
-
'<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>' +
|
|
1158
|
-
'</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
|
|
1159
|
-
'</xml><![endif]-->' +
|
|
1160
|
-
'<style>td{border:none;font-family: Calibri, sans-serif;} ' +
|
|
1161
|
-
'.number{mso-number-format:"0.00";} ' +
|
|
1162
|
-
'.text{ mso-number-format:"\@";}</style>' +
|
|
1163
|
-
'<meta name=ProgId content=Excel.Sheet>' +
|
|
1164
|
-
'<meta charset=UTF-8>' +
|
|
1165
|
-
'</head><body>' +
|
|
1166
|
-
this.getTable(true) +
|
|
1167
|
-
'</body></html>', base64 = function (s) {
|
|
1168
|
-
return win.btoa(unescape(encodeURIComponent(s))); // #50
|
|
1169
|
-
};
|
|
1170
|
-
downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
|
|
1171
|
-
uri + base64(template), this.getFilename() + '.xls');
|
|
1172
|
-
};
|
|
1173
|
-
/**
|
|
1174
|
-
* Export-data module required. View the data in a table below the chart.
|
|
1175
|
-
*
|
|
1176
|
-
* @function Highcharts.Chart#viewData
|
|
1177
|
-
*
|
|
1178
|
-
* @emits Highcharts.Chart#event:afterViewData
|
|
1179
|
-
*/
|
|
1180
|
-
Chart.prototype.viewData = function () {
|
|
1181
|
-
this.toggleDataTable(true);
|
|
1182
|
-
};
|
|
1183
1101
|
/**
|
|
1184
1102
|
* Export-data module required. Hide the data table when visible.
|
|
1185
1103
|
*
|
|
1186
1104
|
* @function Highcharts.Chart#hideData
|
|
1187
1105
|
*/
|
|
1188
|
-
|
|
1106
|
+
function chartHideData() {
|
|
1189
1107
|
this.toggleDataTable(false);
|
|
1190
|
-
}
|
|
1191
|
-
|
|
1108
|
+
}
|
|
1109
|
+
/**
|
|
1110
|
+
* @private
|
|
1111
|
+
*/
|
|
1112
|
+
function chartToggleDataTable(show) {
|
|
1192
1113
|
show = pick(show, !this.isDataTableVisible);
|
|
1193
1114
|
// Create the div
|
|
1194
1115
|
if (show && !this.dataTableDiv) {
|
|
@@ -1217,8 +1138,8 @@
|
|
|
1217
1138
|
options.buttons &&
|
|
1218
1139
|
options.buttons.contextButton.menuItems,
|
|
1219
1140
|
lang = this.options.lang;
|
|
1220
|
-
if (
|
|
1221
|
-
|
|
1141
|
+
if (options &&
|
|
1142
|
+
options.menuItemDefinitions &&
|
|
1222
1143
|
lang &&
|
|
1223
1144
|
lang.viewData &&
|
|
1224
1145
|
lang.hideData &&
|
|
@@ -1229,48 +1150,235 @@
|
|
|
1229
1150
|
AST.setElementHTML(exportDivElement, this.isDataTableVisible ? lang.hideData : lang.viewData);
|
|
1230
1151
|
}
|
|
1231
1152
|
}
|
|
1232
|
-
}
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1153
|
+
}
|
|
1154
|
+
/**
|
|
1155
|
+
* Export-data module required. View the data in a table below the chart.
|
|
1156
|
+
*
|
|
1157
|
+
* @function Highcharts.Chart#viewData
|
|
1158
|
+
*
|
|
1159
|
+
* @emits Highcharts.Chart#event:afterViewData
|
|
1160
|
+
*/
|
|
1161
|
+
function chartViewData() {
|
|
1162
|
+
this.toggleDataTable(true);
|
|
1163
|
+
}
|
|
1164
|
+
/**
|
|
1165
|
+
* @private
|
|
1166
|
+
*/
|
|
1167
|
+
function compose(ChartClass) {
|
|
1168
|
+
if (composedClasses.indexOf(ChartClass) === -1) {
|
|
1169
|
+
composedClasses.push(ChartClass);
|
|
1170
|
+
// Add an event listener to handle the showTable option
|
|
1171
|
+
addEvent(ChartClass, 'afterViewData', onChartAfterViewData);
|
|
1172
|
+
addEvent(ChartClass, 'render', onChartRenderer);
|
|
1173
|
+
var chartProto = ChartClass.prototype;
|
|
1174
|
+
chartProto.downloadCSV = chartDownloadCSV;
|
|
1175
|
+
chartProto.downloadXLS = chartDownloadXLS;
|
|
1176
|
+
chartProto.getCSV = chartGetCSV;
|
|
1177
|
+
chartProto.getDataRows = chartGetDataRows;
|
|
1178
|
+
chartProto.getTable = chartGetTable;
|
|
1179
|
+
chartProto.getTableAST = chartGetTableAST;
|
|
1180
|
+
chartProto.hideData = chartHideData;
|
|
1181
|
+
chartProto.toggleDataTable = chartToggleDataTable;
|
|
1182
|
+
chartProto.viewData = chartViewData;
|
|
1183
|
+
}
|
|
1184
|
+
if (composedClasses.indexOf(setOptions) === -1) {
|
|
1185
|
+
composedClasses.push(setOptions);
|
|
1186
|
+
var exportingOptions = getOptions().exporting;
|
|
1187
|
+
// Add "Download CSV" to the exporting menu.
|
|
1188
|
+
// @todo consider move to defaults
|
|
1189
|
+
if (exportingOptions) {
|
|
1190
|
+
extend(exportingOptions.menuItemDefinitions, {
|
|
1191
|
+
downloadCSV: {
|
|
1192
|
+
textKey: 'downloadCSV',
|
|
1193
|
+
onclick: function () {
|
|
1194
|
+
this.downloadCSV();
|
|
1195
|
+
}
|
|
1196
|
+
},
|
|
1197
|
+
downloadXLS: {
|
|
1198
|
+
textKey: 'downloadXLS',
|
|
1199
|
+
onclick: function () {
|
|
1200
|
+
this.downloadXLS();
|
|
1201
|
+
}
|
|
1202
|
+
},
|
|
1203
|
+
viewData: {
|
|
1204
|
+
textKey: 'viewData',
|
|
1205
|
+
onclick: function () {
|
|
1206
|
+
this.toggleDataTable();
|
|
1207
|
+
}
|
|
1208
|
+
}
|
|
1209
|
+
});
|
|
1210
|
+
if (exportingOptions.buttons &&
|
|
1211
|
+
exportingOptions.buttons.contextButton.menuItems) {
|
|
1212
|
+
exportingOptions.buttons.contextButton.menuItems.push('separator', 'downloadCSV', 'downloadXLS', 'viewData');
|
|
1253
1213
|
}
|
|
1254
1214
|
}
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1215
|
+
setOptions(ExportDataDefaults);
|
|
1216
|
+
}
|
|
1217
|
+
if (AreaRangeSeries && composedClasses.indexOf(AreaRangeSeries) === -1) {
|
|
1218
|
+
composedClasses.push(AreaRangeSeries);
|
|
1219
|
+
AreaRangeSeries.prototype.keyToAxis = {
|
|
1220
|
+
low: 'y',
|
|
1221
|
+
high: 'y'
|
|
1222
|
+
};
|
|
1223
|
+
}
|
|
1224
|
+
if (GanttSeries && composedClasses.indexOf(GanttSeries) === -1) {
|
|
1225
|
+
composedClasses.push(GanttSeries);
|
|
1226
|
+
GanttSeries.prototype.keyToAxis = {
|
|
1227
|
+
start: 'x',
|
|
1228
|
+
end: 'x'
|
|
1229
|
+
};
|
|
1230
|
+
}
|
|
1231
|
+
if (MapSeries && composedClasses.indexOf(MapSeries) === -1) {
|
|
1232
|
+
composedClasses.push(MapSeries);
|
|
1233
|
+
MapSeries.prototype.exportKey = 'name';
|
|
1234
|
+
}
|
|
1235
|
+
if (MapBubbleSeries && composedClasses.indexOf(MapBubbleSeries) === -1) {
|
|
1236
|
+
composedClasses.push(MapBubbleSeries);
|
|
1237
|
+
MapBubbleSeries.prototype.exportKey = 'name';
|
|
1238
|
+
}
|
|
1239
|
+
if (TreemapSeries && composedClasses.indexOf(TreemapSeries) === -1) {
|
|
1240
|
+
composedClasses.push(TreemapSeries);
|
|
1241
|
+
TreemapSeries.prototype.exportKey = 'name';
|
|
1258
1242
|
}
|
|
1259
1243
|
}
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1244
|
+
/**
|
|
1245
|
+
* Get a blob object from content, if blob is supported
|
|
1246
|
+
*
|
|
1247
|
+
* @private
|
|
1248
|
+
* @param {string} content
|
|
1249
|
+
* The content to create the blob from.
|
|
1250
|
+
* @param {string} type
|
|
1251
|
+
* The type of the content.
|
|
1252
|
+
* @return {string|undefined}
|
|
1253
|
+
* The blob object, or undefined if not supported.
|
|
1254
|
+
*/
|
|
1255
|
+
function getBlobFromContent(content, type) {
|
|
1256
|
+
var nav = win.navigator,
|
|
1257
|
+
webKit = (nav.userAgent.indexOf('WebKit') > -1 &&
|
|
1258
|
+
nav.userAgent.indexOf('Chrome') < 0),
|
|
1259
|
+
domurl = win.URL || win.webkitURL || win;
|
|
1260
|
+
try {
|
|
1261
|
+
// MS specific
|
|
1262
|
+
if ((nav.msSaveOrOpenBlob) && win.MSBlobBuilder) {
|
|
1263
|
+
var blob = new win.MSBlobBuilder();
|
|
1264
|
+
blob.append(content);
|
|
1265
|
+
return blob.getBlob('image/svg+xml');
|
|
1266
|
+
}
|
|
1267
|
+
// Safari requires data URI since it doesn't allow navigation to blob
|
|
1268
|
+
// URLs.
|
|
1269
|
+
if (!webKit) {
|
|
1270
|
+
return domurl.createObjectURL(new win.Blob(['\uFEFF' + content], // #7084
|
|
1271
|
+
{ type: type }));
|
|
1272
|
+
}
|
|
1273
|
+
}
|
|
1274
|
+
catch (e) {
|
|
1275
|
+
// Ignore
|
|
1276
|
+
}
|
|
1263
1277
|
}
|
|
1264
|
-
|
|
1265
|
-
|
|
1278
|
+
/**
|
|
1279
|
+
* @private
|
|
1280
|
+
*/
|
|
1281
|
+
function onChartAfterViewData() {
|
|
1282
|
+
var chart = this,
|
|
1283
|
+
dataTableDiv = chart.dataTableDiv,
|
|
1284
|
+
row = document.querySelectorAll('thead')[0].querySelectorAll('tr')[0],
|
|
1285
|
+
getCellValue = function (tr,
|
|
1286
|
+
index) {
|
|
1287
|
+
return tr.children[index].textContent;
|
|
1288
|
+
}, comparer = function (index, ascending) {
|
|
1289
|
+
return function (a, b) {
|
|
1290
|
+
var sort = function (v1,
|
|
1291
|
+
v2) { return (v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ?
|
|
1292
|
+
v1 - v2 :
|
|
1293
|
+
v1.toString().localeCompare(v2)); };
|
|
1294
|
+
return sort(getCellValue(ascending ? a : b, index), getCellValue(ascending ? b : a, index));
|
|
1295
|
+
};
|
|
1296
|
+
};
|
|
1297
|
+
if (dataTableDiv) {
|
|
1298
|
+
row.childNodes.forEach(function (th) {
|
|
1299
|
+
var table = th.closest('table');
|
|
1300
|
+
th.addEventListener('click', function () {
|
|
1301
|
+
var rows = __spreadArray([],
|
|
1302
|
+
dataTableDiv.querySelectorAll('tr:not(thead tr)'),
|
|
1303
|
+
true),
|
|
1304
|
+
headers = __spreadArray([],
|
|
1305
|
+
th.parentNode.children,
|
|
1306
|
+
true);
|
|
1307
|
+
rows.sort(comparer(headers.indexOf(th), chart.ascendingOrderInTable =
|
|
1308
|
+
!chart.ascendingOrderInTable)).forEach(function (tr) {
|
|
1309
|
+
table.appendChild(tr);
|
|
1310
|
+
});
|
|
1311
|
+
headers.forEach(function (th) {
|
|
1312
|
+
['highcharts-sort-ascending', 'highcharts-sort-descending']
|
|
1313
|
+
.forEach(function (className) {
|
|
1314
|
+
if (th.classList.contains(className)) {
|
|
1315
|
+
th.classList.remove(className);
|
|
1316
|
+
}
|
|
1317
|
+
});
|
|
1318
|
+
});
|
|
1319
|
+
th.classList.add(chart.ascendingOrderInTable ?
|
|
1320
|
+
'highcharts-sort-ascending' :
|
|
1321
|
+
'highcharts-sort-descending');
|
|
1322
|
+
});
|
|
1323
|
+
});
|
|
1324
|
+
}
|
|
1266
1325
|
}
|
|
1267
|
-
|
|
1268
|
-
|
|
1326
|
+
/**
|
|
1327
|
+
* Handle the showTable option
|
|
1328
|
+
* @private
|
|
1329
|
+
*/
|
|
1330
|
+
function onChartRenderer() {
|
|
1331
|
+
if (this.options &&
|
|
1332
|
+
this.options.exporting &&
|
|
1333
|
+
this.options.exporting.showTable &&
|
|
1334
|
+
!this.options.chart.forExport) {
|
|
1335
|
+
this.viewData();
|
|
1336
|
+
}
|
|
1269
1337
|
}
|
|
1338
|
+
/* *
|
|
1339
|
+
*
|
|
1340
|
+
* Default Export
|
|
1341
|
+
*
|
|
1342
|
+
* */
|
|
1343
|
+
var ExportData = {
|
|
1344
|
+
compose: compose
|
|
1345
|
+
};
|
|
1346
|
+
/* *
|
|
1347
|
+
*
|
|
1348
|
+
* API Declarations
|
|
1349
|
+
*
|
|
1350
|
+
* */
|
|
1351
|
+
/**
|
|
1352
|
+
* Function callback to execute while data rows are processed for exporting.
|
|
1353
|
+
* This allows the modification of data rows before processed into the final
|
|
1354
|
+
* format.
|
|
1355
|
+
*
|
|
1356
|
+
* @callback Highcharts.ExportDataCallbackFunction
|
|
1357
|
+
* @extends Highcharts.EventCallbackFunction<Highcharts.Chart>
|
|
1358
|
+
*
|
|
1359
|
+
* @param {Highcharts.Chart} this
|
|
1360
|
+
* Chart context where the event occured.
|
|
1361
|
+
*
|
|
1362
|
+
* @param {Highcharts.ExportDataEventObject} event
|
|
1363
|
+
* Event object with data rows that can be modified.
|
|
1364
|
+
*/
|
|
1365
|
+
/**
|
|
1366
|
+
* Contains information about the export data event.
|
|
1367
|
+
*
|
|
1368
|
+
* @interface Highcharts.ExportDataEventObject
|
|
1369
|
+
*/ /**
|
|
1370
|
+
* Contains the data rows for the current export task and can be modified.
|
|
1371
|
+
* @name Highcharts.ExportDataEventObject#dataRows
|
|
1372
|
+
* @type {Array<Array<string>>}
|
|
1373
|
+
*/
|
|
1374
|
+
(''); // keeps doclets above in JS file
|
|
1270
1375
|
|
|
1376
|
+
return ExportData;
|
|
1271
1377
|
});
|
|
1272
|
-
_registerModule(_modules, 'masters/modules/export-data.src.js', [], function () {
|
|
1378
|
+
_registerModule(_modules, 'masters/modules/export-data.src.js', [_modules['Core/Globals.js'], _modules['Extensions/ExportData/ExportData.js']], function (Highcharts, ExportData) {
|
|
1273
1379
|
|
|
1380
|
+
var G = Highcharts;
|
|
1381
|
+
ExportData.compose(G.Chart);
|
|
1274
1382
|
|
|
1275
1383
|
});
|
|
1276
1384
|
}));
|