highcharts 10.0.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/A11yI18n.js +4 -4
- package/es-modules/Accessibility/Accessibility.js +8 -3
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +3 -3
- package/es-modules/Accessibility/Components/ContainerComponent.js +11 -10
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +18 -11
- package/es-modules/Accessibility/Components/LegendComponent.js +11 -11
- package/es-modules/Accessibility/Components/MenuComponent.js +3 -1
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +3 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +3 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +34 -17
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +35 -10
- package/es-modules/Accessibility/Components/ZoomComponent.js +30 -70
- package/es-modules/Accessibility/FocusBorder.js +6 -5
- package/es-modules/Accessibility/HighContrastMode.js +1 -1
- package/es-modules/Accessibility/KeyboardNavigation.js +2 -2
- package/es-modules/Accessibility/Options/{Options.js → A11yDefaults.js} +73 -5
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +12 -2
- package/es-modules/Accessibility/Options/{LangOptions.js → LangDefaults.js} +46 -31
- package/es-modules/Accessibility/Utils/ChartUtilities.js +10 -5
- package/es-modules/Core/Animation/Fx.js +1 -1
- package/es-modules/Core/Axis/Axis.js +51 -46
- package/es-modules/Core/Axis/Axis3D.js +1 -1
- package/es-modules/Core/Axis/AxisDefaults.js +9 -9
- package/es-modules/Core/Axis/BrokenAxis.js +1 -1
- package/es-modules/Core/Axis/Color/ColorAxis.js +4 -2
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +7 -3
- package/es-modules/Core/Axis/DateTimeAxis.js +5 -3
- package/es-modules/Core/Axis/GridAxis.js +821 -822
- package/es-modules/Core/Axis/LogarithmicAxis.js +1 -1
- package/es-modules/Core/Axis/NavigatorAxis.js +2 -2
- package/es-modules/Core/Axis/OrdinalAxis.js +26 -3
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -3
- 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/Tick.js +22 -18
- 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 +76 -71
- package/es-modules/Core/Chart/Chart.js +42 -9
- package/es-modules/Core/Chart/Chart3D.js +2 -2
- package/es-modules/Core/Chart/ChartDefaults.js +165 -5
- package/es-modules/Core/Chart/GanttChart.js +3 -1
- package/es-modules/Core/Chart/MapChart.js +3 -1
- package/es-modules/Core/Chart/StockChart.js +12 -8
- package/es-modules/Core/Color/Color.js +1 -1
- package/es-modules/Core/DefaultOptions.js +19 -16
- package/es-modules/Core/Geometry/CircleUtilities.js +4 -4
- package/es-modules/Core/Globals.js +2 -1
- package/es-modules/Core/HttpUtilities.js +39 -37
- package/es-modules/Core/Legend/Legend.js +4 -4
- package/es-modules/Core/MSPointer.js +3 -1
- package/es-modules/{Extensions → Core}/Math3D.js +48 -43
- package/es-modules/Core/Navigator.js +31 -14
- package/es-modules/Core/Pointer.js +8 -10
- package/es-modules/Core/Renderer/HTML/AST.js +13 -7
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +3 -1
- package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +3 -1
- package/es-modules/Core/Renderer/SVG/SVGElement.js +132 -192
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +32 -28
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +50 -45
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +5 -3
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +5 -3
- package/es-modules/Core/Scrollbar.js +12 -6
- package/es-modules/Core/ScrollbarDefaults.js +8 -8
- package/es-modules/Core/Series/DataLabel.js +63 -40
- package/es-modules/Core/Series/Point.js +11 -2
- package/es-modules/Core/Series/Series.js +60 -43
- package/es-modules/Core/Series/Series3D.js +4 -2
- package/es-modules/Core/Series/SeriesDefaults.js +11 -6
- package/es-modules/Core/Series/SeriesRegistry.js +6 -29
- package/es-modules/Core/Time.js +6 -7
- package/es-modules/Core/Tooltip.js +17 -6
- package/es-modules/Core/Utilities.js +7 -9
- package/es-modules/Data/DataConverter.js +6 -1
- 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 +14 -12
- package/es-modules/Data/Modifiers/ChainModifier.js +4 -2
- package/es-modules/Data/Modifiers/DataModifier.js +1 -1
- package/es-modules/Data/Modifiers/GroupModifier.js +4 -2
- package/es-modules/Data/Modifiers/InvertModifier.js +10 -8
- package/es-modules/Data/Modifiers/RangeModifier.js +4 -2
- package/es-modules/Data/Modifiers/SeriesPointsModifier.js +4 -2
- package/es-modules/Data/Modifiers/SortModifier.js +4 -2
- package/es-modules/Data/Parsers/CSVParser.js +3 -1
- package/es-modules/Data/Parsers/DataParser.js +2 -2
- package/es-modules/Data/Parsers/GoogleSheetsParser.js +3 -2
- package/es-modules/Data/Parsers/HTMLTableParser.js +3 -1
- package/es-modules/Data/Stores/CSVStore.js +8 -5
- package/es-modules/Data/Stores/DataStore.js +1 -1
- package/es-modules/Data/Stores/GoogleSheetsStore.js +3 -1
- package/es-modules/Data/Stores/HTMLTableStore.js +3 -1
- package/es-modules/Extensions/Annotations/Annotation.js +652 -0
- 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 +95 -63
- 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 -663
- 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 +23 -23
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +15 -21
- package/es-modules/Extensions/Annotations/Types/ElliottWave.js +14 -12
- package/es-modules/Extensions/Annotations/Types/Fibonacci.js +33 -23
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +67 -65
- package/es-modules/Extensions/Annotations/Types/InfinityLine.js +14 -21
- package/es-modules/Extensions/Annotations/Types/Measure.js +259 -251
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +15 -19
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +24 -19
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +17 -15
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +15 -17
- 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 +70 -48
- package/es-modules/Extensions/Breadcrumbs.js +37 -9
- package/es-modules/Extensions/CurrentDateIndication.js +1 -1
- package/es-modules/Extensions/Data.js +638 -602
- package/es-modules/Extensions/DataGrouping.js +68 -28
- package/es-modules/Extensions/Debugger/Debugger.js +60 -22
- package/es-modules/Extensions/Debugger/ErrorMessages.js +4 -0
- package/es-modules/Extensions/DownloadURL.js +3 -3
- package/es-modules/Extensions/DragPanes.js +1 -1
- package/es-modules/Extensions/DraggablePoints.js +4 -3
- package/es-modules/Extensions/Drilldown.js +15 -14
- package/es-modules/Extensions/{ExportData.js → ExportData/ExportData.js} +358 -498
- package/es-modules/Extensions/ExportData/ExportDataDefaults.js +272 -0
- package/es-modules/Extensions/Exporting/Exporting.js +30 -17
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +10 -8
- package/es-modules/Extensions/Exporting/Fullscreen.js +352 -0
- package/es-modules/Extensions/GeoJSON.js +3 -4
- package/es-modules/Extensions/MarkerClusters.js +5 -3
- package/es-modules/Extensions/NoDataToDisplay.js +1 -1
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +2 -2
- package/es-modules/Extensions/OverlappingDataLabels.js +5 -4
- package/es-modules/Extensions/Pane.js +3 -3
- package/es-modules/Extensions/ParallelCoordinates.js +12 -8
- package/es-modules/Extensions/PatternFill.js +14 -2
- package/es-modules/Extensions/RangeSelector.js +29 -18
- package/es-modules/Extensions/ScrollablePlotArea.js +4 -4
- package/es-modules/Extensions/{SeriesLabel.js → SeriesLabel/SeriesLabel.js} +264 -386
- package/es-modules/Extensions/SeriesLabel/SeriesLabelDefaults.js +124 -0
- package/es-modules/Extensions/SeriesLabel/SeriesLabelUtilities.js +67 -0
- package/es-modules/Extensions/Sonification/ChartSonify.js +1 -1
- package/es-modules/Extensions/Sonification/Earcon.js +1 -1
- package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
- package/es-modules/Extensions/Themes/HighContrastLight.js +9 -9
- package/es-modules/Maps/MapNavigation.js +3 -7
- package/es-modules/Maps/MapPointer.js +1 -1
- package/es-modules/Maps/MapView.js +31 -19
- package/es-modules/Maps/MapViewInsetsOptionsDefault.js +1 -1
- package/es-modules/Maps/MapViewOptionsDefault.js +3 -1
- package/es-modules/Maps/Projection.js +13 -11
- package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +3 -1
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +12 -2
- package/es-modules/Series/Area/AreaSeries.js +21 -14
- package/es-modules/Series/{Area3DSeries.js → Area3D/Area3DSeries.js} +42 -20
- package/es-modules/Series/AreaRange/AreaRangePoint.js +24 -11
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +162 -149
- package/es-modules/Series/AreaSpline/AreaSplineSeries.js +45 -41
- package/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +43 -43
- package/es-modules/Series/Bar/BarSeries.js +3 -1
- package/es-modules/Series/Bellcurve/BellcurveSeries.js +3 -1
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +4 -2
- package/es-modules/Series/Bubble/BubbleLegendComposition.js +223 -231
- package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -1
- package/es-modules/Series/Bubble/BubbleLegendItem.js +46 -45
- package/es-modules/Series/Bubble/BubblePoint.js +3 -1
- package/es-modules/Series/Bubble/BubbleSeries.js +96 -68
- package/es-modules/Series/Bullet/BulletPoint.js +3 -1
- package/es-modules/Series/Bullet/BulletSeries.js +4 -3
- package/es-modules/Series/Candlestick/CandlestickSeries.js +5 -3
- package/es-modules/Series/CenteredUtilities.js +8 -2
- package/es-modules/Series/ColorMapComposition.js +111 -0
- package/es-modules/Series/Column/ColumnSeries.js +8 -4
- package/es-modules/Series/Column3D/Column3DComposition.js +2 -2
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +4 -2
- package/es-modules/Series/ColumnRange/ColumnRangePoint.js +17 -13
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +60 -57
- package/es-modules/Series/Cylinder/CylinderComposition.js +1 -1
- package/es-modules/Series/Cylinder/CylinderPoint.js +3 -1
- package/es-modules/Series/Cylinder/CylinderSeries.js +3 -1
- package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +27 -12
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +19 -3
- package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -1
- package/es-modules/Series/DragNodesComposition.js +166 -0
- package/es-modules/Series/DrawPointUtilities.js +87 -0
- package/es-modules/Series/Dumbbell/DumbbellPoint.js +3 -1
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +4 -2
- package/es-modules/Series/ErrorBar/ErrorBarSeries.js +4 -2
- package/es-modules/Series/Flags/FlagsPoint.js +4 -1
- package/es-modules/Series/Flags/FlagsSeries.js +13 -16
- package/es-modules/Series/Funnel/FunnelSeries.js +5 -3
- package/es-modules/Series/Funnel3D/Funnel3DPoint.js +3 -1
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +4 -2
- package/es-modules/Series/Gantt/GanttPoint.js +3 -1
- package/es-modules/Series/Gantt/GanttSeries.js +4 -2
- package/es-modules/Series/Gauge/GaugePoint.js +3 -1
- package/es-modules/Series/Gauge/GaugeSeries.js +196 -174
- package/es-modules/Series/GraphLayoutComposition.js +130 -0
- package/es-modules/Series/HLC/HLCPoint.js +3 -1
- package/es-modules/Series/HLC/HLCSeries.js +4 -2
- package/es-modules/Series/Heatmap/HeatmapPoint.js +7 -5
- package/es-modules/Series/Heatmap/HeatmapSeries.js +34 -34
- package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
- package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -1
- package/es-modules/Series/Histogram/HistogramSeries.js +3 -1
- package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +3 -1
- package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +11 -9
- package/es-modules/Series/Item/ItemPoint.js +3 -1
- package/es-modules/Series/Item/ItemSeries.js +3 -1
- package/es-modules/Series/Line/LineSeries.js +4 -2
- package/es-modules/Series/Lollipop/LollipopPoint.js +24 -12
- package/es-modules/Series/Lollipop/LollipopSeries.js +18 -11
- package/es-modules/Series/Map/MapPoint.js +8 -6
- package/es-modules/Series/Map/MapSeries.js +115 -28
- package/es-modules/Series/MapBubble/MapBubblePoint.js +18 -18
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +69 -21
- package/es-modules/Series/MapLine/MapLineSeries.js +18 -1
- package/es-modules/Series/MapPoint/MapPointPoint.js +4 -2
- package/es-modules/Series/MapPoint/MapPointSeries.js +14 -2
- 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/NodesComposition.js +45 -40
- package/es-modules/Series/OHLC/OHLCPoint.js +3 -1
- package/es-modules/Series/OHLC/OHLCSeries.js +3 -1
- package/es-modules/Series/Organization/OrganizationPoint.js +3 -1
- package/es-modules/Series/Organization/OrganizationSeries.js +14 -4
- package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +81 -0
- package/es-modules/Series/PackedBubble/{PackedBubbleComposition.js → PackedBubbleLayout.js} +114 -79
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +5 -3
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +200 -571
- package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +394 -0
- package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -1
- package/es-modules/Series/Pie/PieDataLabel.js +4 -2
- package/es-modules/Series/Pie/PiePoint.js +3 -1
- package/es-modules/Series/Pie/PieSeries.js +54 -38
- package/es-modules/Series/Pie3D/Pie3DPoint.js +3 -1
- package/es-modules/Series/Pie3D/Pie3DSeries.js +3 -1
- package/es-modules/Series/PolarComposition.js +819 -0
- package/es-modules/Series/Polygon/PolygonSeries.js +3 -1
- package/es-modules/Series/Pyramid/PyramidSeries.js +3 -1
- package/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +3 -1
- package/es-modules/Series/Sankey/SankeyPoint.js +3 -1
- package/es-modules/Series/Sankey/SankeySeries.js +38 -10
- package/es-modules/Series/Scatter/ScatterSeries.js +14 -6
- package/es-modules/Series/Scatter3D/Scatter3DPoint.js +3 -1
- package/es-modules/Series/Scatter3D/Scatter3DSeries.js +4 -2
- package/es-modules/Series/SeriesOnPointComposition.js +395 -0
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +6 -4
- package/es-modules/Series/Spline/SplineSeries.js +13 -4
- package/es-modules/Series/Streamgraph/StreamgraphSeries.js +3 -1
- package/es-modules/Series/Sunburst/SunburstPoint.js +8 -9
- package/es-modules/Series/Sunburst/SunburstSeries.js +32 -5
- package/es-modules/Series/Tilemap/TilemapPoint.js +3 -1
- package/es-modules/Series/Tilemap/TilemapSeries.js +3 -1
- package/es-modules/Series/Timeline/TimelinePoint.js +3 -1
- package/es-modules/Series/Timeline/TimelineSeries.js +8 -4
- package/es-modules/Series/Treemap/TreemapPoint.js +8 -4
- package/es-modules/Series/Treemap/TreemapSeries.js +12 -10
- package/es-modules/Series/VariablePie/VariablePieSeries.js +3 -1
- package/es-modules/Series/Variwide/VariwidePoint.js +3 -1
- package/es-modules/Series/Variwide/VariwideSeries.js +3 -1
- package/es-modules/Series/Vector/VectorSeries.js +5 -5
- package/es-modules/Series/Venn/VennPoint.js +5 -5
- package/es-modules/Series/Venn/VennSeries.js +9 -6
- package/es-modules/Series/Waterfall/WaterfallPoint.js +3 -1
- package/es-modules/Series/Waterfall/WaterfallSeries.js +14 -12
- package/es-modules/Series/Windbarb/WindbarbPoint.js +3 -1
- package/es-modules/Series/Windbarb/WindbarbSeries.js +3 -1
- package/es-modules/Series/Wordcloud/WordcloudPoint.js +6 -6
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +12 -9
- package/es-modules/Series/Wordcloud/WordcloudUtils.js +1 -1
- package/es-modules/Series/XRange/XRangePoint.js +57 -46
- package/es-modules/Series/XRange/XRangeSeries.js +124 -274
- package/es-modules/Series/XRange/XRangeSeriesDefaults.js +211 -0
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +13 -3
- package/es-modules/Stock/Indicators/AD/ADIndicator.js +8 -1
- package/es-modules/Stock/Indicators/AO/AOIndicator.js +27 -14
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +9 -2
- package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +19 -4
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +18 -3
- package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +9 -3
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +11 -5
- package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +19 -4
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +23 -1
- package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +18 -2
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +10 -3
- package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +28 -1
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +18 -7
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +22 -9
- package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +3 -1
- package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +13 -1
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +37 -16
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +28 -1
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +15 -2
- package/es-modules/Stock/Indicators/LinearRegression/{LinearRegression.js → LinearRegressionIndicator.js} +14 -2
- package/es-modules/Stock/Indicators/LinearRegressionAngle/{LinearRegressionAngle.js → LinearRegressionAngleIndicator.js} +15 -8
- package/es-modules/Stock/Indicators/LinearRegressionIntercept/{LinearRegressionIntercept.js → LinearRegressionInterceptIndicator.js} +14 -2
- package/es-modules/Stock/Indicators/LinearRegressionSlopes/{LinearRegressionSlopes.js → LinearRegressionSlopesIndicator.js} +14 -2
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +47 -23
- package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +26 -11
- package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +33 -3
- package/es-modules/Stock/Indicators/MultipleLinesComposition.js +85 -95
- package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +19 -2
- package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +13 -1
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +16 -9
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +17 -5
- package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +19 -4
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +19 -7
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +19 -13
- package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +28 -1
- package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +18 -3
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +23 -3
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +4 -2
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +28 -1
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +18 -1
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +23 -7
- package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +3 -1
- package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +28 -1
- package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +17 -5
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +35 -4
- package/es-modules/Stock/Indicators/VBP/VBPPoint.js +9 -7
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +14 -2
- package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +33 -3
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +13 -1
- package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +14 -2
- package/es-modules/Stock/StockToolbar.js +568 -0
- package/es-modules/Stock/StockTools.js +256 -0
- package/es-modules/Stock/StockToolsBindings.js +140 -647
- 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 +7 -6
- 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 +2 -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 +5 -2
- package/es-modules/masters/modules/series-on-point.src.js +16 -0
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +2 -6
- 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 +233 -212
- package/highcharts-gantt.js +809 -805
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +3817 -3470
- package/highcharts-more.d.ts +15 -8
- package/highcharts-more.js +201 -195
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.d.ts +15 -8
- package/highcharts-more.src.js +7994 -7461
- package/highcharts.d.ts +11364 -1136
- package/highcharts.js +593 -591
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +11364 -1136
- package/highcharts.src.js +1408 -1117
- package/highmaps.js +762 -758
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +2237 -1721
- package/highstock.js +796 -792
- package/highstock.js.map +1 -1
- package/highstock.src.js +1617 -1224
- package/indicators/acceleration-bands.d.ts +1 -17
- package/indicators/acceleration-bands.js +11 -12
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.d.ts +1 -17
- package/indicators/acceleration-bands.src.js +99 -101
- 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 +25 -16
- package/indicators/apo.js +1 -1
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +6 -1
- package/indicators/aroon-oscillator.d.ts +1 -17
- package/indicators/aroon-oscillator.js +10 -10
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.d.ts +1 -17
- package/indicators/aroon-oscillator.src.js +95 -101
- package/indicators/aroon.d.ts +1 -17
- package/indicators/aroon.js +11 -11
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.d.ts +1 -17
- package/indicators/aroon.src.js +104 -101
- package/indicators/atr.js +1 -1
- package/indicators/atr.js.map +1 -1
- package/indicators/atr.src.js +17 -4
- package/indicators/bollinger-bands.d.ts +1 -17
- package/indicators/bollinger-bands.js +11 -12
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.d.ts +1 -17
- package/indicators/bollinger-bands.src.js +97 -103
- 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 +12 -12
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +104 -105
- 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.d.ts +1 -17
- package/indicators/indicators-all.js +200 -199
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.d.ts +1 -17
- package/indicators/indicators-all.src.js +882 -284
- package/indicators/indicators.js +1 -1
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +12 -2
- package/indicators/keltner-channels.d.ts +1 -17
- package/indicators/keltner-channels.js +11 -12
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.d.ts +1 -17
- package/indicators/keltner-channels.src.js +114 -99
- package/indicators/klinger.js +14 -14
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +101 -102
- package/indicators/macd.js +10 -9
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +46 -25
- 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.d.ts +1 -17
- package/indicators/price-channel.js +11 -11
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.d.ts +1 -17
- package/indicators/price-channel.src.js +102 -107
- 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.d.ts +1 -17
- package/indicators/stochastic.js +12 -12
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.d.ts +1 -17
- package/indicators/stochastic.src.js +104 -99
- package/indicators/supertrend.js +7 -7
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +21 -9
- 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 +246 -242
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +797 -664
- 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 +9229 -8589
- 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 +6190 -5528
- package/modules/arc-diagram.js +7 -7
- package/modules/arc-diagram.js.map +1 -1
- package/modules/arc-diagram.src.js +10 -2
- 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 -15
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.d.ts +19 -0
- package/modules/boost-canvas.src.js +3342 -52
- package/modules/boost.d.ts +8 -26
- package/modules/boost.js +88 -80
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.d.ts +8 -26
- package/modules/boost.src.js +2435 -1889
- 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.js.map +1 -1
- package/modules/bullet.src.js +2 -5
- package/modules/coloraxis.js +2 -2
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +9 -5
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +2 -2
- package/modules/cylinder.js +9 -9
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +2 -2
- package/modules/data.d.ts +12 -12
- package/modules/data.js +33 -34
- package/modules/data.js.map +1 -1
- package/modules/data.src.d.ts +12 -12
- package/modules/data.src.js +862 -829
- package/modules/datagrouping.d.ts +22 -0
- package/modules/datagrouping.js +9 -9
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.d.ts +22 -0
- package/modules/datagrouping.src.js +69 -29
- package/modules/debugger.js +8 -6
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +85 -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 +2 -2
- 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 +37 -37
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.d.ts +0 -10
- package/modules/drilldown.src.js +59 -25
- package/modules/dumbbell.d.ts +4 -0
- package/modules/dumbbell.js +17 -17
- package/modules/dumbbell.js.map +1 -1
- package/modules/dumbbell.src.d.ts +4 -0
- package/modules/dumbbell.src.js +24 -12
- package/modules/export-data.js +25 -22
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +641 -469
- package/modules/exporting.d.ts +8 -8
- package/modules/exporting.js +39 -39
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.d.ts +8 -8
- package/modules/exporting.src.js +442 -319
- package/modules/full-screen.js +8 -8
- package/modules/full-screen.js.map +1 -1
- package/modules/full-screen.src.js +196 -78
- package/modules/funnel.js +1 -1
- package/modules/funnel.src.js +3 -3
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +2 -2
- package/modules/gantt.js +219 -217
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +2420 -2364
- package/modules/grid-axis.js +23 -23
- package/modules/grid-axis.js.map +1 -1
- package/modules/grid-axis.src.js +890 -891
- package/modules/heatmap.js +40 -40
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +137 -108
- 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 +9 -9
- 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 -169
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +3 -3
- package/modules/map.src.js +830 -605
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +4 -6
- package/modules/networkgraph.d.ts +1 -17
- package/modules/networkgraph.js +55 -50
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.d.ts +1 -17
- package/modules/networkgraph.src.js +2339 -2008
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +2 -2
- package/modules/offline-exporting.js +3 -3
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +5 -5
- 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 +3 -3
- package/modules/organization.js +15 -15
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +12 -4
- 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 +14 -9
- 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 +15 -14
- package/modules/pattern-fill.js.map +1 -1
- package/modules/pattern-fill.src.js +15 -2
- 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.d.ts +1 -17
- package/modules/sankey.js +32 -32
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.d.ts +1 -17
- package/modules/sankey.src.js +102 -57
- package/modules/series-label.js +18 -18
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +474 -387
- package/modules/series-on-point.js +18 -0
- package/modules/series-on-point.js.map +1 -0
- package/modules/series-on-point.src.js +468 -0
- package/modules/solid-gauge.js +4 -4
- package/modules/solid-gauge.js.map +1 -1
- package/modules/solid-gauge.src.js +6 -6
- package/modules/sonification.d.ts +2 -2
- package/modules/sonification.js +1 -1
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.d.ts +2 -2
- package/modules/sonification.src.js +4 -8
- 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 +2652 -6347
- package/modules/stock.d.ts +8 -0
- package/modules/stock.js +205 -204
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.d.ts +8 -0
- package/modules/stock.src.js +208 -106
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +73 -73
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +251 -193
- 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 +6 -4
- package/modules/treegrid.js +57 -57
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +1908 -1901
- package/modules/treemap.js +54 -53
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.js +217 -183
- 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 +31 -31
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +82 -111
- package/modules/windbarb.js +1 -1
- package/modules/windbarb.src.js +1 -1
- package/modules/wordcloud.js +23 -23
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +84 -113
- 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 +2 -2
- package/themes/high-contrast-dark.src.js +11 -11
- package/themes/high-contrast-light.js +2 -2
- package/themes/high-contrast-light.src.js +10 -10
- 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 -216
- package/es-modules/Core/Axis/TreeGridAxis.js +0 -720
- package/es-modules/Core/Axis/TreeGridTick.js +0 -317
- package/es-modules/Extensions/Annotations/Annotations.js +0 -1449
- 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 -150
- package/es-modules/Extensions/Boost/BoostInit.js +0 -323
- 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/FullScreen.js +0 -240
- package/es-modules/Extensions/Polar.js +0 -740
- package/es-modules/Extensions/Stacking.js +0 -517
- package/es-modules/Series/ColorMapMixin.js +0 -84
- package/es-modules/Series/DrawPointComposition.js +0 -114
- 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 -1178
- package/es-modules/Series/XRange/XRangeComposition.js +0 -49
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS v10.
|
|
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 = "" + 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,72 +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 doc = H.doc,
|
|
169
|
-
seriesTypes = H.seriesTypes,
|
|
170
|
-
win = H.win;
|
|
171
|
-
var getOptions = D.getOptions,
|
|
172
|
-
setOptions = D.setOptions;
|
|
173
|
-
var addEvent = U.addEvent,
|
|
174
|
-
defined = U.defined,
|
|
175
|
-
extend = U.extend,
|
|
176
|
-
find = U.find,
|
|
177
|
-
fireEvent = U.fireEvent,
|
|
178
|
-
isNumber = U.isNumber,
|
|
179
|
-
pick = U.pick;
|
|
180
|
-
/**
|
|
181
|
-
* Function callback to execute while data rows are processed for exporting.
|
|
182
|
-
* This allows the modification of data rows before processed into the final
|
|
183
|
-
* format.
|
|
184
|
-
*
|
|
185
|
-
* @callback Highcharts.ExportDataCallbackFunction
|
|
186
|
-
* @extends Highcharts.EventCallbackFunction<Highcharts.Chart>
|
|
52
|
+
/* *
|
|
187
53
|
*
|
|
188
|
-
*
|
|
189
|
-
* Chart context where the event occured.
|
|
54
|
+
* Constants
|
|
190
55
|
*
|
|
191
|
-
*
|
|
192
|
-
* Event object with data rows that can be modified.
|
|
193
|
-
*/
|
|
56
|
+
* */
|
|
194
57
|
/**
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
* Contains the data rows for the current export task and can be modified.
|
|
200
|
-
* @name Highcharts.ExportDataEventObject#dataRows
|
|
201
|
-
* @type {Array<Array<string>>}
|
|
202
|
-
*/
|
|
203
|
-
var downloadURL = DownloadURL.downloadURL;
|
|
204
|
-
setOptions({
|
|
205
|
-
/**
|
|
206
|
-
* Callback that fires while exporting data. This allows the modification of
|
|
207
|
-
* data rows before processed into the final format.
|
|
208
|
-
*
|
|
209
|
-
* @type {Highcharts.ExportDataCallbackFunction}
|
|
210
|
-
* @context Highcharts.Chart
|
|
211
|
-
* @requires modules/export-data
|
|
212
|
-
* @apioption chart.events.exportData
|
|
213
|
-
*/
|
|
214
|
-
/**
|
|
215
|
-
* When set to `false` will prevent the series data from being included in
|
|
216
|
-
* any form of data export.
|
|
217
|
-
*
|
|
218
|
-
* Since version 6.0.0 until 7.1.0 the option was existing undocumented
|
|
219
|
-
* as `includeInCSVExport`.
|
|
220
|
-
*
|
|
221
|
-
* @type {boolean}
|
|
222
|
-
* @since 7.1.0
|
|
223
|
-
* @requires modules/export-data
|
|
224
|
-
* @apioption plotOptions.series.includeInDataExport
|
|
225
|
-
*/
|
|
226
|
-
/**
|
|
227
|
-
* @optionparent exporting
|
|
228
|
-
* @private
|
|
229
|
-
*/
|
|
230
|
-
exporting: {
|
|
58
|
+
* @optionparent exporting
|
|
59
|
+
* @private
|
|
60
|
+
*/
|
|
61
|
+
var exporting = {
|
|
231
62
|
/**
|
|
232
63
|
* Caption for the data table. Same as chart title by default. Set to
|
|
233
64
|
* `false` to disable.
|
|
@@ -241,17 +72,22 @@
|
|
|
241
72
|
* @apioption exporting.tableCaption
|
|
242
73
|
*/
|
|
243
74
|
/**
|
|
244
|
-
* Options for exporting data to CSV or ExCel,
|
|
75
|
+
* Options for exporting data to CSV or ExCel,
|
|
76
|
+
or displaying the data
|
|
245
77
|
* in a HTML table or a JavaScript structure.
|
|
246
78
|
*
|
|
247
79
|
* This module adds data export options to the export menu and provides
|
|
248
|
-
* functions like `Chart.getCSV`,
|
|
80
|
+
* functions like `Chart.getCSV`,
|
|
81
|
+
`Chart.getTable`,
|
|
82
|
+
`Chart.getDataRows`
|
|
249
83
|
* and `Chart.viewData`.
|
|
250
84
|
*
|
|
251
85
|
* The XLS converter is limited and only creates a HTML string that is
|
|
252
|
-
* passed for download,
|
|
86
|
+
* passed for download,
|
|
87
|
+
which works but creates a warning before
|
|
253
88
|
* opening. The workaround for this is to use a third party XLSX
|
|
254
|
-
* converter,
|
|
89
|
+
* converter,
|
|
90
|
+
as demonstrated in the sample below.
|
|
255
91
|
*
|
|
256
92
|
* @sample highcharts/export-data/categorized/ Categorized data
|
|
257
93
|
* @sample highcharts/export-data/stock-timeaxis/ Highcharts Stock time axis
|
|
@@ -296,19 +132,25 @@
|
|
|
296
132
|
/**
|
|
297
133
|
* Formatter callback for the column headers. Parameters are:
|
|
298
134
|
* - `item` - The series or axis object)
|
|
299
|
-
* - `key` - The point key,
|
|
300
|
-
|
|
135
|
+
* - `key` - The point key,
|
|
136
|
+
for example y or z
|
|
137
|
+
* - `keyLength` - The amount of value keys for this item,
|
|
138
|
+
for
|
|
301
139
|
* example a range series has the keys `low` and `high` so the
|
|
302
140
|
* key length is 2.
|
|
303
141
|
*
|
|
304
142
|
* If [useMultiLevelHeaders](#exporting.useMultiLevelHeaders) is
|
|
305
|
-
* true,
|
|
143
|
+
* true,
|
|
144
|
+
columnHeaderFormatter by default returns an object with
|
|
306
145
|
* columnTitle and topLevelColumnTitle for each key. Columns with
|
|
307
146
|
* the same topLevelColumnTitle have their titles merged into a
|
|
308
147
|
* single cell with colspan for table/Excel export.
|
|
309
148
|
*
|
|
310
|
-
* If `useMultiLevelHeaders` is false,
|
|
311
|
-
|
|
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
|
|
312
154
|
* key.
|
|
313
155
|
*
|
|
314
156
|
* For the axis it returns the axis title or "Category" or
|
|
@@ -329,7 +171,9 @@
|
|
|
329
171
|
dateFormat: '%Y-%m-%d %H:%M:%S',
|
|
330
172
|
/**
|
|
331
173
|
* Which decimal point to use for exported CSV. Defaults to the same
|
|
332
|
-
* as the browser locale,
|
|
174
|
+
* as the browser locale,
|
|
175
|
+
typically `.` (English) or `,
|
|
176
|
+
` (German,
|
|
333
177
|
* French etc).
|
|
334
178
|
*
|
|
335
179
|
* @type {string|null}
|
|
@@ -339,14 +183,19 @@
|
|
|
339
183
|
/**
|
|
340
184
|
* The item delimiter in the exported data. Use `;` for direct
|
|
341
185
|
* exporting to Excel. Defaults to a best guess based on the browser
|
|
342
|
-
* locale. If the locale _decimal point_ is
|
|
343
|
-
|
|
186
|
+
* locale. If the locale _decimal point_ is `,
|
|
187
|
+
`,
|
|
188
|
+
the `itemDelimiter`
|
|
189
|
+
* defaults to `;`,
|
|
190
|
+
otherwise the `itemDelimiter` defaults to `,
|
|
191
|
+
`.
|
|
344
192
|
*
|
|
345
193
|
* @type {string|null}
|
|
346
194
|
*/
|
|
347
195
|
itemDelimiter: null,
|
|
348
196
|
/**
|
|
349
|
-
* The line delimiter in the exported data,
|
|
197
|
+
* The line delimiter in the exported data,
|
|
198
|
+
defaults to a newline.
|
|
350
199
|
*/
|
|
351
200
|
lineDelimiter: '\n'
|
|
352
201
|
},
|
|
@@ -365,7 +214,8 @@
|
|
|
365
214
|
showTable: false,
|
|
366
215
|
/**
|
|
367
216
|
* Use multi level headers in data table. If [csv.columnHeaderFormatter
|
|
368
|
-
* ](#exporting.csv.columnHeaderFormatter) is defined,
|
|
217
|
+
* ](#exporting.csv.columnHeaderFormatter) is defined,
|
|
218
|
+
it has to return
|
|
369
219
|
* objects in order for multi level headers to work.
|
|
370
220
|
*
|
|
371
221
|
* @sample highcharts/export-data/multilevel-table
|
|
@@ -376,7 +226,8 @@
|
|
|
376
226
|
*/
|
|
377
227
|
useMultiLevelHeaders: true,
|
|
378
228
|
/**
|
|
379
|
-
* If using multi level table headers,
|
|
229
|
+
* If using multi level table headers,
|
|
230
|
+
use rowspans for headers that
|
|
380
231
|
* have only one level.
|
|
381
232
|
*
|
|
382
233
|
* @sample highcharts/export-data/multilevel-table
|
|
@@ -386,13 +237,12 @@
|
|
|
386
237
|
* @requires modules/export-data
|
|
387
238
|
*/
|
|
388
239
|
useRowspanHeaders: true
|
|
389
|
-
}
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
lang: {
|
|
240
|
+
};
|
|
241
|
+
/**
|
|
242
|
+
* @optionparent lang
|
|
243
|
+
* @private
|
|
244
|
+
*/
|
|
245
|
+
var lang = {
|
|
396
246
|
/**
|
|
397
247
|
* The text for the menu item.
|
|
398
248
|
*
|
|
@@ -441,43 +291,319 @@
|
|
|
441
291
|
* @requires modules/export-data
|
|
442
292
|
*/
|
|
443
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);
|
|
444
379
|
}
|
|
445
|
-
}
|
|
446
|
-
/* eslint-disable no-invalid-this */
|
|
447
|
-
// Add an event listener to handle the showTable option
|
|
448
|
-
addEvent(Chart, 'render', function () {
|
|
449
|
-
if (this.options &&
|
|
450
|
-
this.options.exporting &&
|
|
451
|
-
this.options.exporting.showTable &&
|
|
452
|
-
!this.options.chart.forExport &&
|
|
453
|
-
!this.dataTableDiv) {
|
|
454
|
-
this.viewData();
|
|
455
|
-
}
|
|
456
|
-
});
|
|
457
|
-
/* eslint-enable no-invalid-this */
|
|
380
|
+
};
|
|
458
381
|
/**
|
|
459
|
-
*
|
|
460
|
-
* categorized. For example in an arearange series, the low and high values
|
|
461
|
-
* should be formatted according to the Y axis type, and in order to link them
|
|
462
|
-
* we need this map.
|
|
382
|
+
* Download a data URL in the browser. Can also take a blob as first param.
|
|
463
383
|
*
|
|
464
384
|
* @private
|
|
465
|
-
* @function Highcharts.
|
|
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}
|
|
466
391
|
*/
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
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;
|
|
473
403
|
}
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
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
|
+
}
|
|
479
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
|
|
443
|
+
};
|
|
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
|
+
}
|
|
473
|
+
}
|
|
474
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
480
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
|
+
* */
|
|
506
|
+
/**
|
|
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.
|
|
509
|
+
*
|
|
510
|
+
* See {@link Highcharts.Chart#getCSV} to get the CSV data itself.
|
|
511
|
+
*
|
|
512
|
+
* @function Highcharts.Chart#downloadCSV
|
|
513
|
+
*
|
|
514
|
+
* @requires modules/exporting
|
|
515
|
+
*/
|
|
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
|
|
550
|
+
};
|
|
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
|
+
}
|
|
481
607
|
/**
|
|
482
608
|
* Export-data module required. Returns a two-dimensional array containing the
|
|
483
609
|
* current chart data.
|
|
@@ -494,21 +620,15 @@
|
|
|
494
620
|
*
|
|
495
621
|
* @emits Highcharts.Chart#event:exportData
|
|
496
622
|
*/
|
|
497
|
-
|
|
623
|
+
function chartGetDataRows(multiLevelHeaders) {
|
|
498
624
|
var hasParallelCoords = this.hasParallelCoordinates,
|
|
499
625
|
time = this.time,
|
|
500
626
|
csvOptions = ((this.options.exporting && this.options.exporting.csv) || {}),
|
|
501
|
-
xAxis,
|
|
502
627
|
xAxes = this.xAxis,
|
|
503
628
|
rows = {},
|
|
504
629
|
rowArr = [],
|
|
505
|
-
dataRows,
|
|
506
630
|
topLevelColumnTitles = [],
|
|
507
631
|
columnTitles = [],
|
|
508
|
-
columnTitleObj,
|
|
509
|
-
i,
|
|
510
|
-
x,
|
|
511
|
-
xTitle,
|
|
512
632
|
langOptions = this.options.lang,
|
|
513
633
|
exportDataOptions = langOptions.exportData,
|
|
514
634
|
categoryHeader = exportDataOptions.categoryHeader,
|
|
@@ -528,7 +648,7 @@
|
|
|
528
648
|
if (!item) {
|
|
529
649
|
return categoryHeader;
|
|
530
650
|
}
|
|
531
|
-
if (item instanceof
|
|
651
|
+
if (!(item instanceof SeriesClass)) {
|
|
532
652
|
return (item.options.title && item.options.title.text) ||
|
|
533
653
|
(item.dateTime ? categoryDatetimeHeader : categoryHeader);
|
|
534
654
|
}
|
|
@@ -584,9 +704,12 @@
|
|
|
584
704
|
}
|
|
585
705
|
return series.pointArrayMap || ['y'];
|
|
586
706
|
}, xAxisIndices = [];
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
707
|
+
var xAxis,
|
|
708
|
+
dataRows,
|
|
709
|
+
columnTitleObj,
|
|
710
|
+
i = 0, // Loop the series and index values
|
|
711
|
+
x,
|
|
712
|
+
xTitle;
|
|
590
713
|
this.series.forEach(function (series) {
|
|
591
714
|
var keys = series.options.keys,
|
|
592
715
|
xAxis = series.xAxis,
|
|
@@ -632,20 +755,18 @@
|
|
|
632
755
|
// Export directly from options.data because we need the uncropped
|
|
633
756
|
// data (#7913), and we need to support Boost (#7026).
|
|
634
757
|
series.options.data.forEach(function eachData(options, pIdx) {
|
|
758
|
+
var mockPoint = { series: mockSeries };
|
|
635
759
|
var key,
|
|
636
760
|
prop,
|
|
637
|
-
val
|
|
638
|
-
name,
|
|
639
|
-
point;
|
|
761
|
+
val;
|
|
640
762
|
// In parallel coordinates chart, each data point is connected
|
|
641
763
|
// to a separate yAxis, conform this
|
|
642
764
|
if (hasParallelCoords) {
|
|
643
765
|
categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap, pIdx);
|
|
644
766
|
}
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
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;
|
|
649
770
|
j = 0;
|
|
650
771
|
// Pies, funnels, geo maps etc. use point name in X row
|
|
651
772
|
if (!xAxis ||
|
|
@@ -665,12 +786,12 @@
|
|
|
665
786
|
// Contain the X values from one or more X axes
|
|
666
787
|
rows[key].xValues = [];
|
|
667
788
|
}
|
|
668
|
-
rows[key].x =
|
|
789
|
+
rows[key].x = mockPoint.x;
|
|
669
790
|
rows[key].name = name;
|
|
670
|
-
rows[key].xValues[xAxisIndex] =
|
|
791
|
+
rows[key].xValues[xAxisIndex] = mockPoint.x;
|
|
671
792
|
while (j < valueCount) {
|
|
672
793
|
prop = pointArrayMap[j]; // y, z etc
|
|
673
|
-
val =
|
|
794
|
+
val = mockPoint[prop];
|
|
674
795
|
rows[key][i + j] = pick(
|
|
675
796
|
// Y axis category if present
|
|
676
797
|
categoryAndDatetimeMap.categoryMap[prop][val],
|
|
@@ -708,86 +829,39 @@
|
|
|
708
829
|
return a.xValues[xAxisIndex] - b.xValues[xAxisIndex];
|
|
709
830
|
});
|
|
710
831
|
// Add header row
|
|
711
|
-
xTitle = columnHeaderFormatter(xAxis);
|
|
712
|
-
dataRows[0].splice(column, 0, xTitle);
|
|
713
|
-
if (multiLevelHeaders && dataRows[1]) {
|
|
714
|
-
// If using multi level headers, we just added top level header.
|
|
715
|
-
// Also add for sub level
|
|
716
|
-
dataRows[1].splice(column, 0, xTitle);
|
|
717
|
-
}
|
|
718
|
-
// Add the category column
|
|
719
|
-
rowArr.forEach(function (// eslint-disable-line no-loop-func
|
|
720
|
-
row) {
|
|
721
|
-
var category = row.name;
|
|
722
|
-
if (xAxis && !defined(category)) {
|
|
723
|
-
if (xAxis.dateTime) {
|
|
724
|
-
if (row.x instanceof Date) {
|
|
725
|
-
row.x = row.x.getTime();
|
|
726
|
-
}
|
|
727
|
-
category = time.dateFormat(csvOptions.dateFormat, row.x);
|
|
728
|
-
}
|
|
729
|
-
else if (xAxis.categories) {
|
|
730
|
-
category = pick(xAxis.names[row.x], xAxis.categories[row.x], row.x);
|
|
731
|
-
}
|
|
732
|
-
else {
|
|
733
|
-
category = row.x;
|
|
734
|
-
}
|
|
735
|
-
}
|
|
736
|
-
// Add the X/date/category
|
|
737
|
-
row.splice(column, 0, category);
|
|
738
|
-
});
|
|
739
|
-
}
|
|
740
|
-
dataRows = dataRows.concat(rowArr);
|
|
741
|
-
fireEvent(this, 'exportData', { dataRows: dataRows });
|
|
742
|
-
return dataRows;
|
|
743
|
-
};
|
|
744
|
-
/**
|
|
745
|
-
* Export-data module required. Returns the current chart data as a CSV string.
|
|
746
|
-
*
|
|
747
|
-
* @function Highcharts.Chart#getCSV
|
|
748
|
-
*
|
|
749
|
-
* @param {boolean} [useLocalDecimalPoint]
|
|
750
|
-
* Whether to use the local decimal point as detected from the browser.
|
|
751
|
-
* This makes it easier to export data to Excel in the same locale as the
|
|
752
|
-
* user is.
|
|
753
|
-
*
|
|
754
|
-
* @return {string}
|
|
755
|
-
* CSV representation of the data
|
|
756
|
-
*/
|
|
757
|
-
Chart.prototype.getCSV = function (useLocalDecimalPoint) {
|
|
758
|
-
var csv = '';
|
|
759
|
-
var rows = this.getDataRows(), csvOptions = this.options.exporting.csv, decimalPoint = pick(csvOptions.decimalPoint, csvOptions.itemDelimiter !== ',' && useLocalDecimalPoint ?
|
|
760
|
-
(1.1).toLocaleString()[1] :
|
|
761
|
-
'.'),
|
|
762
|
-
// use ';' for direct to Excel
|
|
763
|
-
itemDelimiter = pick(csvOptions.itemDelimiter, decimalPoint === ',' ? ';' : ','),
|
|
764
|
-
// '\n' isn't working with the js csv data extraction
|
|
765
|
-
lineDelimiter = csvOptions.lineDelimiter;
|
|
766
|
-
// Transform the rows to CSV
|
|
767
|
-
rows.forEach(function (row, i) {
|
|
768
|
-
var val = '',
|
|
769
|
-
j = row.length;
|
|
770
|
-
while (j--) {
|
|
771
|
-
val = row[j];
|
|
772
|
-
if (typeof val === 'string') {
|
|
773
|
-
val = '"' + val + '"';
|
|
774
|
-
}
|
|
775
|
-
if (typeof val === 'number') {
|
|
776
|
-
if (decimalPoint !== '.') {
|
|
777
|
-
val = val.toString().replace('.', decimalPoint);
|
|
832
|
+
xTitle = columnHeaderFormatter(xAxis);
|
|
833
|
+
dataRows[0].splice(column, 0, xTitle);
|
|
834
|
+
if (multiLevelHeaders && dataRows[1]) {
|
|
835
|
+
// If using multi level headers, we just added top level header.
|
|
836
|
+
// Also add for sub level
|
|
837
|
+
dataRows[1].splice(column, 0, xTitle);
|
|
838
|
+
}
|
|
839
|
+
// Add the category column
|
|
840
|
+
rowArr.forEach(function (// eslint-disable-line no-loop-func
|
|
841
|
+
row) {
|
|
842
|
+
var category = row.name;
|
|
843
|
+
if (xAxis && !defined(category)) {
|
|
844
|
+
if (xAxis.dateTime) {
|
|
845
|
+
if (row.x instanceof Date) {
|
|
846
|
+
row.x = row.x.getTime();
|
|
847
|
+
}
|
|
848
|
+
category = time.dateFormat(csvOptions.dateFormat, row.x);
|
|
849
|
+
}
|
|
850
|
+
else if (xAxis.categories) {
|
|
851
|
+
category = pick(xAxis.names[row.x], xAxis.categories[row.x], row.x);
|
|
852
|
+
}
|
|
853
|
+
else {
|
|
854
|
+
category = row.x;
|
|
778
855
|
}
|
|
779
856
|
}
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
});
|
|
789
|
-
return csv;
|
|
790
|
-
};
|
|
857
|
+
// Add the X/date/category
|
|
858
|
+
row.splice(column, 0, category);
|
|
859
|
+
});
|
|
860
|
+
}
|
|
861
|
+
dataRows = dataRows.concat(rowArr);
|
|
862
|
+
fireEvent(this, 'exportData', { dataRows: dataRows });
|
|
863
|
+
return dataRows;
|
|
864
|
+
}
|
|
791
865
|
/**
|
|
792
866
|
* Export-data module required. Build a HTML table with the chart's current
|
|
793
867
|
* data.
|
|
@@ -807,18 +881,19 @@
|
|
|
807
881
|
*
|
|
808
882
|
* @emits Highcharts.Chart#event:afterGetTable
|
|
809
883
|
*/
|
|
810
|
-
|
|
884
|
+
function chartGetTable(useLocalDecimalPoint) {
|
|
811
885
|
var serialize = function (node) {
|
|
812
886
|
if (!node.tagName || node.tagName === '#text') {
|
|
813
887
|
// Text node
|
|
814
888
|
return node.textContent || '';
|
|
815
889
|
}
|
|
816
890
|
var attributes = node.attributes;
|
|
817
|
-
var html = "<"
|
|
891
|
+
var html = "<".concat(node.tagName);
|
|
818
892
|
if (attributes) {
|
|
819
|
-
Object.keys(attributes)
|
|
893
|
+
Object.keys(attributes)
|
|
894
|
+
.forEach(function (key) {
|
|
820
895
|
var value = attributes[key];
|
|
821
|
-
html += " "
|
|
896
|
+
html += " ".concat(key, "=\"").concat(value, "\"");
|
|
822
897
|
});
|
|
823
898
|
}
|
|
824
899
|
html += '>';
|
|
@@ -826,12 +901,12 @@
|
|
|
826
901
|
(node.children || []).forEach(function (child) {
|
|
827
902
|
html += serialize(child);
|
|
828
903
|
});
|
|
829
|
-
html += "</"
|
|
904
|
+
html += "</".concat(node.tagName, ">");
|
|
830
905
|
return html;
|
|
831
906
|
};
|
|
832
907
|
var tree = this.getTableAST(useLocalDecimalPoint);
|
|
833
908
|
return serialize(tree);
|
|
834
|
-
}
|
|
909
|
+
}
|
|
835
910
|
/**
|
|
836
911
|
* Get the AST of a HTML table representing the chart data.
|
|
837
912
|
*
|
|
@@ -847,7 +922,7 @@
|
|
|
847
922
|
* @return {Highcharts.ASTNode}
|
|
848
923
|
* The abstract syntax tree
|
|
849
924
|
*/
|
|
850
|
-
|
|
925
|
+
function chartGetTableAST(useLocalDecimalPoint) {
|
|
851
926
|
var rowLength = 0;
|
|
852
927
|
var treeChildren = [];
|
|
853
928
|
var options = this.options,
|
|
@@ -875,17 +950,17 @@
|
|
|
875
950
|
},
|
|
876
951
|
// Get table cell HTML from value
|
|
877
952
|
getCellHTMLFromValue = function (tagName, classes, attributes, value) {
|
|
878
|
-
var textContent = pick(value, ''), className = 'text' + (classes ? ' ' + classes : '');
|
|
953
|
+
var textContent = pick(value, ''), className = 'highcharts-text' + (classes ? ' ' + classes : '');
|
|
879
954
|
// Convert to string if number
|
|
880
955
|
if (typeof textContent === 'number') {
|
|
881
956
|
textContent = textContent.toString();
|
|
882
957
|
if (decimalPoint === ',') {
|
|
883
958
|
textContent = textContent.replace('.', decimalPoint);
|
|
884
959
|
}
|
|
885
|
-
className = 'number';
|
|
960
|
+
className = 'highcharts-number';
|
|
886
961
|
}
|
|
887
962
|
else if (!value) {
|
|
888
|
-
className = 'empty';
|
|
963
|
+
className = 'highcharts-empty';
|
|
889
964
|
}
|
|
890
965
|
attributes = extend({ 'class': className }, attributes);
|
|
891
966
|
return {
|
|
@@ -1016,115 +1091,25 @@
|
|
|
1016
1091
|
var e = {
|
|
1017
1092
|
tree: {
|
|
1018
1093
|
tagName: 'table',
|
|
1019
|
-
id: "highcharts-data-table-"
|
|
1094
|
+
id: "highcharts-data-table-".concat(this.index),
|
|
1020
1095
|
children: treeChildren
|
|
1021
1096
|
}
|
|
1022
1097
|
};
|
|
1023
1098
|
fireEvent(this, 'aftergetTableAST', e);
|
|
1024
1099
|
return e.tree;
|
|
1025
|
-
};
|
|
1026
|
-
/**
|
|
1027
|
-
* Get a blob object from content, if blob is supported
|
|
1028
|
-
*
|
|
1029
|
-
* @private
|
|
1030
|
-
* @param {string} content
|
|
1031
|
-
* The content to create the blob from.
|
|
1032
|
-
* @param {string} type
|
|
1033
|
-
* The type of the content.
|
|
1034
|
-
* @return {string|undefined}
|
|
1035
|
-
* The blob object, or undefined if not supported.
|
|
1036
|
-
*/
|
|
1037
|
-
function getBlobFromContent(content, type) {
|
|
1038
|
-
var nav = win.navigator,
|
|
1039
|
-
webKit = (nav.userAgent.indexOf('WebKit') > -1 &&
|
|
1040
|
-
nav.userAgent.indexOf('Chrome') < 0),
|
|
1041
|
-
domurl = win.URL || win.webkitURL || win;
|
|
1042
|
-
try {
|
|
1043
|
-
// MS specific
|
|
1044
|
-
if ((nav.msSaveOrOpenBlob) && win.MSBlobBuilder) {
|
|
1045
|
-
var blob = new win.MSBlobBuilder();
|
|
1046
|
-
blob.append(content);
|
|
1047
|
-
return blob.getBlob('image/svg+xml');
|
|
1048
|
-
}
|
|
1049
|
-
// Safari requires data URI since it doesn't allow navigation to blob
|
|
1050
|
-
// URLs.
|
|
1051
|
-
if (!webKit) {
|
|
1052
|
-
return domurl.createObjectURL(new win.Blob(['\uFEFF' + content], // #7084
|
|
1053
|
-
{ type: type }));
|
|
1054
|
-
}
|
|
1055
|
-
}
|
|
1056
|
-
catch (e) {
|
|
1057
|
-
// Ignore
|
|
1058
|
-
}
|
|
1059
1100
|
}
|
|
1060
|
-
/* eslint-disable valid-jsdoc */
|
|
1061
|
-
/**
|
|
1062
|
-
* Generates a data URL of CSV for local download in the browser. This is the
|
|
1063
|
-
* default action for a click on the 'Download CSV' button.
|
|
1064
|
-
*
|
|
1065
|
-
* See {@link Highcharts.Chart#getCSV} to get the CSV data itself.
|
|
1066
|
-
*
|
|
1067
|
-
* @function Highcharts.Chart#downloadCSV
|
|
1068
|
-
*
|
|
1069
|
-
* @requires modules/exporting
|
|
1070
|
-
*/
|
|
1071
|
-
Chart.prototype.downloadCSV = function () {
|
|
1072
|
-
var csv = this.getCSV(true);
|
|
1073
|
-
downloadURL(getBlobFromContent(csv, 'text/csv') ||
|
|
1074
|
-
'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
|
|
1075
|
-
};
|
|
1076
|
-
/**
|
|
1077
|
-
* Generates a data URL of an XLS document for local download in the browser.
|
|
1078
|
-
* This is the default action for a click on the 'Download XLS' button.
|
|
1079
|
-
*
|
|
1080
|
-
* See {@link Highcharts.Chart#getTable} to get the table data itself.
|
|
1081
|
-
*
|
|
1082
|
-
* @function Highcharts.Chart#downloadXLS
|
|
1083
|
-
*
|
|
1084
|
-
* @requires modules/exporting
|
|
1085
|
-
*/
|
|
1086
|
-
Chart.prototype.downloadXLS = function () {
|
|
1087
|
-
var uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
|
|
1088
|
-
'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
|
|
1089
|
-
'xmlns="http://www.w3.org/TR/REC-html40">' +
|
|
1090
|
-
'<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
|
|
1091
|
-
'<x:ExcelWorksheets><x:ExcelWorksheet>' +
|
|
1092
|
-
'<x:Name>Ark1</x:Name>' +
|
|
1093
|
-
'<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>' +
|
|
1094
|
-
'</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
|
|
1095
|
-
'</xml><![endif]-->' +
|
|
1096
|
-
'<style>td{border:none;font-family: Calibri, sans-serif;} ' +
|
|
1097
|
-
'.number{mso-number-format:"0.00";} ' +
|
|
1098
|
-
'.text{ mso-number-format:"\@";}</style>' +
|
|
1099
|
-
'<meta name=ProgId content=Excel.Sheet>' +
|
|
1100
|
-
'<meta charset=UTF-8>' +
|
|
1101
|
-
'</head><body>' +
|
|
1102
|
-
this.getTable(true) +
|
|
1103
|
-
'</body></html>', base64 = function (s) {
|
|
1104
|
-
return win.btoa(unescape(encodeURIComponent(s))); // #50
|
|
1105
|
-
};
|
|
1106
|
-
downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
|
|
1107
|
-
uri + base64(template), this.getFilename() + '.xls');
|
|
1108
|
-
};
|
|
1109
|
-
/**
|
|
1110
|
-
* Export-data module required. View the data in a table below the chart.
|
|
1111
|
-
*
|
|
1112
|
-
* @function Highcharts.Chart#viewData
|
|
1113
|
-
*
|
|
1114
|
-
* @emits Highcharts.Chart#event:afterViewData
|
|
1115
|
-
*/
|
|
1116
|
-
Chart.prototype.viewData = function () {
|
|
1117
|
-
this.toggleDataTable(true);
|
|
1118
|
-
};
|
|
1119
1101
|
/**
|
|
1120
1102
|
* Export-data module required. Hide the data table when visible.
|
|
1121
1103
|
*
|
|
1122
1104
|
* @function Highcharts.Chart#hideData
|
|
1123
1105
|
*/
|
|
1124
|
-
|
|
1106
|
+
function chartHideData() {
|
|
1125
1107
|
this.toggleDataTable(false);
|
|
1126
|
-
}
|
|
1127
|
-
|
|
1108
|
+
}
|
|
1109
|
+
/**
|
|
1110
|
+
* @private
|
|
1111
|
+
*/
|
|
1112
|
+
function chartToggleDataTable(show) {
|
|
1128
1113
|
show = pick(show, !this.isDataTableVisible);
|
|
1129
1114
|
// Create the div
|
|
1130
1115
|
if (show && !this.dataTableDiv) {
|
|
@@ -1153,8 +1138,8 @@
|
|
|
1153
1138
|
options.buttons &&
|
|
1154
1139
|
options.buttons.contextButton.menuItems,
|
|
1155
1140
|
lang = this.options.lang;
|
|
1156
|
-
if (
|
|
1157
|
-
|
|
1141
|
+
if (options &&
|
|
1142
|
+
options.menuItemDefinitions &&
|
|
1158
1143
|
lang &&
|
|
1159
1144
|
lang.viewData &&
|
|
1160
1145
|
lang.hideData &&
|
|
@@ -1165,48 +1150,235 @@
|
|
|
1165
1150
|
AST.setElementHTML(exportDivElement, this.isDataTableVisible ? lang.hideData : lang.viewData);
|
|
1166
1151
|
}
|
|
1167
1152
|
}
|
|
1168
|
-
}
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
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');
|
|
1189
1213
|
}
|
|
1190
1214
|
}
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
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';
|
|
1194
1242
|
}
|
|
1195
1243
|
}
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
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
|
+
}
|
|
1199
1277
|
}
|
|
1200
|
-
|
|
1201
|
-
|
|
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
|
+
}
|
|
1202
1325
|
}
|
|
1203
|
-
|
|
1204
|
-
|
|
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
|
+
}
|
|
1205
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
|
|
1206
1375
|
|
|
1376
|
+
return ExportData;
|
|
1207
1377
|
});
|
|
1208
|
-
_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) {
|
|
1209
1379
|
|
|
1380
|
+
var G = Highcharts;
|
|
1381
|
+
ExportData.compose(G.Chart);
|
|
1210
1382
|
|
|
1211
1383
|
});
|
|
1212
1384
|
}));
|