highcharts 12.2.0 → 12.4.0
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/annotations/popup.css +86 -45
- package/css/highcharts.css +40 -35
- package/css/stocktools/gui.css +28 -11
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +3 -3
- package/es-modules/Accessibility/Components/LegendComponent.js +10 -1
- package/es-modules/Accessibility/Components/MenuComponent.js +26 -23
- package/es-modules/Accessibility/Components/NavigatorComponent.js +5 -1
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +3 -1
- package/es-modules/Accessibility/FocusBorder.js +4 -0
- package/es-modules/Accessibility/HighContrastMode.js +0 -5
- package/es-modules/Accessibility/Options/A11yDefaults.js +12 -0
- package/es-modules/Core/Axis/Axis.js +4 -3
- package/es-modules/Core/Axis/Axis3DComposition.js +0 -3
- package/es-modules/Core/Axis/AxisDefaults.js +5 -8
- package/es-modules/Core/Axis/BrokenAxis.js +114 -90
- package/es-modules/Core/Axis/Color/ColorAxis.js +3 -3
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +2 -3
- package/es-modules/Core/Axis/OrdinalAxis.js +19 -12
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +15 -2
- package/es-modules/Core/Axis/RadialAxis.js +18 -7
- package/es-modules/Core/Axis/ScrollbarAxis.js +19 -17
- package/es-modules/Core/Axis/Stacking/StackingAxis.js +0 -1
- package/es-modules/Core/Axis/Tick.js +1 -1
- package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +36 -51
- package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +39 -17
- package/es-modules/Core/Axis/WaterfallAxis.js +4 -4
- package/es-modules/Core/Chart/Chart.js +41 -34
- package/es-modules/Core/Chart/ChartDefaults.js +16 -2
- package/es-modules/Core/Chart/GanttChart.js +4 -2
- package/es-modules/Core/Chart/StockChart.js +42 -49
- package/es-modules/Core/Color/Color.js +4 -8
- package/es-modules/Core/Defaults.js +16 -7
- package/es-modules/Core/Geometry/CircleUtilities.js +3 -1
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/HttpUtilities.js +45 -38
- package/es-modules/Core/Legend/Legend.js +8 -7
- package/es-modules/Core/Pointer.js +17 -9
- package/es-modules/Core/Renderer/HTML/AST.js +15 -15
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +8 -3
- package/es-modules/Core/Renderer/SVG/SVGElement.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +10 -1
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +10 -7
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
- package/es-modules/Core/Series/DataLabel.js +4 -2
- package/es-modules/Core/Series/Point.js +9 -0
- package/es-modules/Core/Series/Series.js +17 -7
- package/es-modules/Core/Series/SeriesDefaults.js +1 -3
- package/es-modules/Core/Series/SeriesRegistry.js +8 -1
- package/es-modules/Core/Templating.js +6 -5
- package/es-modules/Core/Tooltip.js +3 -1
- package/es-modules/Data/Connectors/CSVConnector.js +32 -15
- package/es-modules/Data/Connectors/DataConnector.js +107 -12
- package/es-modules/Data/Connectors/GoogleSheetsConnector.js +29 -17
- package/es-modules/Data/Connectors/HTMLTableConnector.js +3 -3
- package/es-modules/Data/Connectors/JSONConnector.js +37 -17
- package/es-modules/Data/Converters/HTMLTableConverter.js +2 -2
- package/es-modules/Data/Converters/JSONConverter.js +0 -1
- package/es-modules/Data/DataPool.js +15 -4
- package/es-modules/Data/DataTable.js +1 -2
- package/es-modules/Data/Formula/FormulaParser.js +33 -1
- package/es-modules/Data/Formula/FormulaProcessor.js +97 -45
- package/es-modules/Data/Modifiers/DataModifier.js +1 -1
- package/es-modules/Data/Modifiers/FilterModifier.js +168 -0
- package/es-modules/Data/Modifiers/FilterModifierOptions.js +14 -0
- package/es-modules/Data/Modifiers/SortModifier.js +12 -3
- package/es-modules/Extensions/Annotations/Annotation.js +10 -7
- package/es-modules/Extensions/Annotations/AnnotationChart.js +7 -3
- package/es-modules/Extensions/Annotations/AnnotationDefaults.js +38 -12
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +10 -3
- package/es-modules/Extensions/Annotations/MockPoint.js +6 -3
- package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +1 -1
- package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +10 -4
- package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +1 -1
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +0 -3
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +97 -94
- package/es-modules/Extensions/Annotations/Types/ElliottWave.js +43 -36
- package/es-modules/Extensions/Annotations/Types/Fibonacci.js +86 -82
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +74 -71
- package/es-modules/Extensions/Annotations/Types/InfinityLine.js +17 -3
- package/es-modules/Extensions/Annotations/Types/Measure.js +229 -226
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +39 -40
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +56 -52
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +80 -76
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +57 -53
- package/es-modules/Extensions/Boost/Boost.js +5 -1
- package/es-modules/Extensions/Boost/BoostSeries.js +53 -21
- package/es-modules/Extensions/Boost/WGLRenderer.js +30 -21
- package/es-modules/Extensions/Boost/WGLShader.js +18 -5
- package/es-modules/Extensions/BoostCanvas.js +0 -5
- package/es-modules/Extensions/BorderRadius.js +6 -2
- package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +1 -1
- package/es-modules/Extensions/DownloadURL.js +43 -8
- package/es-modules/Extensions/ExportData/ExportData.js +875 -781
- package/es-modules/Extensions/ExportData/ExportDataDefaults.js +67 -13
- package/es-modules/Extensions/Exporting/Exporting.js +1177 -546
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +52 -36
- package/es-modules/Extensions/Exporting/Fullscreen.js +2 -2
- package/es-modules/Extensions/NonCartesianSeriesZoom/NonCartesianSeriesZoom.js +311 -0
- package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +254 -575
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +9 -38
- package/es-modules/Extensions/Pane/Pane.js +1 -1
- package/es-modules/Extensions/Pane/PaneComposition.js +19 -12
- package/es-modules/Extensions/Pane/PaneDefaults.js +9 -1
- package/es-modules/Extensions/ScrollablePlotArea.js +29 -21
- package/es-modules/Extensions/Sonification/Sonification.js +1 -1
- package/es-modules/Extensions/StaticScale.js +13 -11
- package/es-modules/Extensions/TextPath.js +2 -2
- package/es-modules/Extensions/Themes/Adaptive.js +1009 -0
- package/es-modules/Maps/MapNavigation.js +1 -1
- package/es-modules/Series/Bellcurve/BellcurveSeries.js +16 -9
- package/es-modules/Series/Bubble/BubblePoint.js +2 -2
- package/es-modules/Series/Column/ColumnSeriesDefaults.js +1 -2
- package/es-modules/Series/DataModifyComposition.js +0 -2
- package/es-modules/Series/DragNodesComposition.js +4 -0
- package/es-modules/Series/DrawPointUtilities.js +1 -1
- package/es-modules/Series/Flags/FlagsSeriesDefaults.js +2 -0
- package/es-modules/Series/GraphLayoutComposition.js +2 -1
- package/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +1 -2
- package/es-modules/Series/Histogram/HistogramSeries.js +19 -17
- package/es-modules/Series/Item/ItemSeries.js +1 -1
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +5 -0
- package/es-modules/Series/Pie/PieDataLabel.js +2 -2
- package/es-modules/Series/Pie/PieSeries.js +2 -2
- package/es-modules/Series/Pie/PieSeriesDefaults.js +1 -2
- package/es-modules/Series/PolarComposition.js +37 -2
- package/es-modules/Series/SeriesOnPointComposition.js +0 -1
- package/es-modules/Series/SimulationSeriesUtilities.js +7 -0
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +7 -2
- package/es-modules/Series/SolidGauge/SolidGaugeSeriesDefaults.js +13 -0
- package/es-modules/Series/Treegraph/TreegraphLayout.js +10 -4
- package/es-modules/Series/Treegraph/TreegraphSeries.js +3 -1
- package/es-modules/Series/Treemap/TreemapSeries.js +4 -4
- package/es-modules/Series/Variwide/VariwideComposition.js +9 -11
- package/es-modules/Series/Variwide/VariwideSeries.js +8 -1
- package/es-modules/Series/Waterfall/WaterfallSeries.js +12 -17
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +87 -10
- package/es-modules/Series/XRange/XRangePoint.js +2 -1
- package/es-modules/Shared/BaseForm.js +6 -3
- package/es-modules/Shared/TimeBase.js +5 -1
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -1
- package/es-modules/Stock/Navigator/NavigatorComposition.js +2 -2
- package/es-modules/Stock/Scrollbar/Scrollbar.js +5 -7
- package/es-modules/Stock/StockTools/StockToolbar.js +1 -1
- package/es-modules/Stock/StockTools/StockToolsBindings.js +34 -113
- package/es-modules/masters/highcharts-3d.src.js +3 -1
- package/es-modules/masters/highcharts-gantt.src.js +8 -2
- package/es-modules/masters/highcharts-more.src.js +2 -2
- package/es-modules/masters/highcharts.src.js +2 -2
- package/es-modules/masters/highmaps.src.js +2 -2
- package/es-modules/masters/highstock.src.js +2 -2
- package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
- package/es-modules/masters/i18n/fr-FR.src.js +1 -1
- package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
- package/es-modules/masters/i18n/nb-NO.src.js +1 -1
- package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
- package/es-modules/masters/i18n/zh-CN.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ema.src.js +0 -3
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +1 -1
- 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 +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
- package/es-modules/masters/modules/annotations.src.js +1 -1
- 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 +1 -1
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data-tools.src.d.ts +1 -0
- package/es-modules/masters/modules/data-tools.src.js +2 -1
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +3 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +3 -3
- package/es-modules/masters/modules/exporting.src.js +5 -1
- package/es-modules/masters/modules/flowmap.src.js +1 -1
- package/es-modules/masters/modules/full-screen.src.js +1 -1
- package/es-modules/masters/modules/funnel.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/es-modules/masters/modules/gantt.src.js +1 -1
- package/es-modules/masters/modules/geoheatmap.src.js +1 -1
- 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 +1 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
- package/es-modules/masters/modules/navigator.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +1 -1
- package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
- package/es-modules/masters/modules/non-cartesian-zoom.src.d.ts +2 -0
- package/es-modules/masters/modules/non-cartesian-zoom.src.js +18 -0
- package/es-modules/masters/modules/offline-exporting.src.js +2 -2
- package/es-modules/masters/modules/organization.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/pictorial.src.js +1 -1
- package/es-modules/masters/modules/pointandfigure.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/renko.src.js +1 -1
- package/es-modules/masters/modules/sankey.src.js +1 -1
- package/es-modules/masters/modules/series-label.src.js +1 -1
- package/es-modules/masters/modules/series-on-point.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +1 -1
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +1 -1
- 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/textpath.src.js +1 -1
- package/es-modules/masters/modules/tiledwebmap.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/treegraph.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +1 -1
- package/es-modules/masters/modules/treemap.src.js +1 -1
- package/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/es-modules/masters/modules/variwide.src.js +1 -1
- package/es-modules/masters/modules/vector.src.js +1 -1
- package/es-modules/masters/modules/venn.src.js +1 -1
- package/es-modules/masters/modules/windbarb.src.js +1 -1
- package/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/es-modules/masters/modules/xrange.src.js +1 -1
- package/es-modules/masters/standalone-navigator.src.js +7 -6
- package/es-modules/masters/themes/adaptive.src.d.ts +2 -0
- package/es-modules/masters/themes/adaptive.src.js +15 -0
- 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/es-modules/tsconfig.tsbuildinfo +1 -1
- package/esm/highcharts-3d.js +11 -1
- package/esm/highcharts-3d.src.js +3 -4
- package/esm/highcharts-gantt.js +14 -1
- package/esm/highcharts-gantt.src.js +8 -2
- package/esm/highcharts-more.js +9 -1
- package/esm/highcharts-more.src.js +516 -57
- package/esm/highcharts.js +9 -2
- package/esm/highcharts.src.js +273 -168
- package/esm/highmaps.js +8 -1
- package/esm/highmaps.src.js +2 -2
- package/esm/highstock.js +8 -1
- package/esm/highstock.src.js +2 -2
- package/esm/i18n/fr-FR.js +13 -1
- package/esm/i18n/fr-FR.src.js +1 -1
- package/esm/i18n/nb-NO.js +13 -1
- package/esm/i18n/nb-NO.src.js +1 -1
- package/esm/i18n/zh-CN.js +13 -1
- package/esm/i18n/zh-CN.src.js +1 -1
- package/esm/indicators/acceleration-bands.js +12 -1
- package/esm/indicators/acceleration-bands.src.js +1 -1
- package/esm/indicators/accumulation-distribution.js +12 -1
- package/esm/indicators/accumulation-distribution.src.js +1 -1
- package/esm/indicators/ao.js +12 -1
- package/esm/indicators/ao.src.js +1 -1
- package/esm/indicators/apo.js +12 -1
- package/esm/indicators/apo.src.js +1 -1
- package/esm/indicators/aroon-oscillator.js +12 -1
- package/esm/indicators/aroon-oscillator.src.js +1 -1
- package/esm/indicators/aroon.js +12 -1
- package/esm/indicators/aroon.src.js +1 -1
- package/esm/indicators/atr.js +12 -1
- package/esm/indicators/atr.src.js +1 -1
- package/esm/indicators/bollinger-bands.js +12 -1
- package/esm/indicators/bollinger-bands.src.js +1 -1
- package/esm/indicators/cci.js +12 -1
- package/esm/indicators/cci.src.js +1 -1
- package/esm/indicators/chaikin.js +12 -1
- package/esm/indicators/chaikin.src.js +1 -1
- package/esm/indicators/cmf.js +11 -1
- package/esm/indicators/cmf.src.js +1 -1
- package/esm/indicators/cmo.js +12 -1
- package/esm/indicators/cmo.src.js +1 -1
- package/esm/indicators/dema.js +12 -1
- package/esm/indicators/dema.src.js +1 -1
- package/esm/indicators/disparity-index.js +12 -1
- package/esm/indicators/disparity-index.src.js +1 -1
- package/esm/indicators/dmi.js +12 -1
- package/esm/indicators/dmi.src.js +1 -1
- package/esm/indicators/dpo.js +12 -1
- package/esm/indicators/dpo.src.js +1 -1
- package/esm/indicators/ema.src.js +0 -3
- package/esm/indicators/ichimoku-kinko-hyo.js +12 -1
- package/esm/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/esm/indicators/indicators-all.js +12 -1
- package/esm/indicators/indicators-all.src.js +2 -2
- package/esm/indicators/indicators.js +12 -1
- package/esm/indicators/indicators.src.js +1 -1
- package/esm/indicators/keltner-channels.js +12 -1
- package/esm/indicators/keltner-channels.src.js +1 -1
- package/esm/indicators/klinger.js +12 -1
- package/esm/indicators/klinger.src.js +1 -1
- package/esm/indicators/macd.js +12 -1
- package/esm/indicators/macd.src.js +2 -2
- package/esm/indicators/mfi.js +12 -1
- package/esm/indicators/mfi.src.js +1 -1
- package/esm/indicators/momentum.js +12 -1
- package/esm/indicators/momentum.src.js +1 -1
- package/esm/indicators/natr.js +12 -1
- package/esm/indicators/natr.src.js +1 -1
- package/esm/indicators/obv.js +12 -1
- package/esm/indicators/obv.src.js +1 -1
- package/esm/indicators/pivot-points.js +12 -1
- package/esm/indicators/pivot-points.src.js +1 -1
- package/esm/indicators/ppo.js +12 -1
- package/esm/indicators/ppo.src.js +1 -1
- package/esm/indicators/price-channel.js +12 -1
- package/esm/indicators/price-channel.src.js +1 -1
- package/esm/indicators/price-envelopes.js +12 -1
- package/esm/indicators/price-envelopes.src.js +1 -1
- package/esm/indicators/psar.js +12 -1
- package/esm/indicators/psar.src.js +1 -1
- package/esm/indicators/regressions.js +12 -1
- package/esm/indicators/regressions.src.js +1 -1
- package/esm/indicators/roc.js +12 -1
- package/esm/indicators/roc.src.js +1 -1
- package/esm/indicators/rsi.js +12 -1
- package/esm/indicators/rsi.src.js +1 -1
- package/esm/indicators/slow-stochastic.js +12 -1
- package/esm/indicators/slow-stochastic.src.js +1 -1
- package/esm/indicators/stochastic.js +12 -1
- package/esm/indicators/stochastic.src.js +1 -1
- package/esm/indicators/supertrend.js +12 -1
- package/esm/indicators/supertrend.src.js +1 -1
- package/esm/indicators/tema.js +12 -1
- package/esm/indicators/tema.src.js +1 -1
- package/esm/indicators/trendline.js +12 -1
- package/esm/indicators/trendline.src.js +1 -1
- package/esm/indicators/trix.js +12 -1
- package/esm/indicators/trix.src.js +1 -1
- package/esm/indicators/volume-by-price.js +12 -1
- package/esm/indicators/volume-by-price.src.js +1 -1
- package/esm/indicators/vwap.js +12 -1
- package/esm/indicators/vwap.src.js +1 -1
- package/esm/indicators/williams-r.js +12 -1
- package/esm/indicators/williams-r.src.js +1 -1
- package/esm/indicators/wma.js +12 -1
- package/esm/indicators/wma.src.js +1 -1
- package/esm/indicators/zigzag.js +12 -1
- package/esm/indicators/zigzag.src.js +1 -1
- package/esm/modules/accessibility.js +12 -1
- package/esm/modules/accessibility.src.js +92 -63
- package/esm/modules/annotations-advanced.js +11 -1
- package/esm/modules/annotations-advanced.src.js +872 -778
- package/esm/modules/annotations.js +11 -1
- package/esm/modules/annotations.src.js +95 -43
- package/esm/modules/arc-diagram.js +11 -1
- package/esm/modules/arc-diagram.src.js +3 -3
- package/esm/modules/arrow-symbols.js +11 -1
- package/esm/modules/arrow-symbols.src.js +1 -1
- package/esm/modules/boost-canvas.js +12 -1
- package/esm/modules/boost-canvas.src.js +102 -53
- package/esm/modules/boost.js +13 -1
- package/esm/modules/boost.src.js +107 -49
- package/esm/modules/broken-axis.js +9 -1
- package/esm/modules/broken-axis.src.js +115 -91
- package/esm/modules/bullet.js +11 -1
- package/esm/modules/bullet.src.js +1 -1
- package/esm/modules/coloraxis.js +11 -1
- package/esm/modules/coloraxis.src.js +6 -7
- package/esm/modules/current-date-indicator.js +11 -1
- package/esm/modules/current-date-indicator.src.js +1 -1
- package/esm/modules/cylinder.js +12 -1
- package/esm/modules/cylinder.src.js +1 -1
- package/esm/modules/data-tools.js +11 -1
- package/esm/modules/data-tools.src.js +542 -125
- package/esm/modules/data.js +11 -1
- package/esm/modules/data.src.js +46 -39
- package/esm/modules/datagrouping.js +11 -1
- package/esm/modules/datagrouping.src.js +1 -1
- package/esm/modules/debugger.js +11 -1
- package/esm/modules/debugger.src.js +1 -1
- package/esm/modules/dependency-wheel.js +12 -1
- package/esm/modules/dependency-wheel.src.js +3 -3
- package/esm/modules/dotplot.js +11 -1
- package/esm/modules/dotplot.src.js +1 -1
- package/esm/modules/drag-panes.js +13 -1
- package/esm/modules/drag-panes.src.js +1 -1
- package/esm/modules/draggable-points.js +9 -1
- package/esm/modules/draggable-points.src.js +1 -1
- package/esm/modules/drilldown.js +13 -1
- package/esm/modules/drilldown.src.js +4 -2
- package/esm/modules/dumbbell.js +9 -1
- package/esm/modules/dumbbell.src.js +1 -1
- package/esm/modules/export-data.js +12 -1
- package/esm/modules/export-data.src.js +985 -799
- package/esm/modules/exporting.js +11 -1
- package/esm/modules/exporting.src.js +1453 -634
- package/esm/modules/flowmap.js +9 -1
- package/esm/modules/flowmap.src.js +1 -1
- package/esm/modules/full-screen.js +12 -1
- package/esm/modules/full-screen.src.js +3 -3
- package/esm/modules/funnel.js +11 -1
- package/esm/modules/funnel.src.js +7 -3
- package/esm/modules/funnel3d.js +13 -1
- package/esm/modules/funnel3d.src.js +1 -1
- package/esm/modules/gantt.js +11 -1
- package/esm/modules/gantt.src.js +254 -212
- package/esm/modules/geoheatmap.js +9 -1
- package/esm/modules/geoheatmap.src.js +1 -1
- package/esm/modules/grid-axis.js +11 -1
- package/esm/modules/grid-axis.src.js +1 -1
- package/esm/modules/heatmap.js +9 -1
- package/esm/modules/heatmap.src.js +2 -3
- package/esm/modules/heikinashi.js +12 -1
- package/esm/modules/heikinashi.src.js +1 -1
- package/esm/modules/histogram-bellcurve.js +10 -1
- package/esm/modules/histogram-bellcurve.src.js +36 -27
- package/esm/modules/hollowcandlestick.js +12 -1
- package/esm/modules/hollowcandlestick.src.js +1 -1
- package/esm/modules/item-series.js +11 -1
- package/esm/modules/item-series.src.js +3 -5
- package/esm/modules/lollipop.js +9 -1
- package/esm/modules/lollipop.src.js +1 -1
- package/esm/modules/map.js +11 -1
- package/esm/modules/map.src.js +5 -6
- package/esm/modules/marker-clusters.js +11 -1
- package/esm/modules/marker-clusters.src.js +1 -1
- package/esm/modules/mouse-wheel-zoom.js +11 -1
- package/esm/modules/mouse-wheel-zoom.src.js +1 -1
- package/esm/modules/navigator.js +11 -1
- package/esm/modules/navigator.src.js +29 -29
- package/esm/modules/networkgraph.js +11 -1
- package/esm/modules/networkgraph.src.js +16 -4
- package/esm/modules/no-data-to-display.js +12 -1
- package/esm/modules/no-data-to-display.src.js +1 -1
- package/esm/modules/non-cartesian-zoom.d.ts +2 -0
- package/esm/modules/non-cartesian-zoom.js +11 -0
- package/esm/modules/non-cartesian-zoom.src.d.ts +2 -0
- package/esm/modules/non-cartesian-zoom.src.js +374 -0
- package/esm/modules/offline-exporting.js +12 -1
- package/esm/modules/offline-exporting.src.js +339 -3363
- package/esm/modules/organization.js +11 -1
- package/esm/modules/organization.src.js +3 -3
- package/esm/modules/parallel-coordinates.js +11 -1
- package/esm/modules/parallel-coordinates.src.js +1 -1
- package/esm/modules/pareto.js +11 -1
- package/esm/modules/pareto.src.js +1 -1
- package/esm/modules/pathfinder.js +11 -1
- package/esm/modules/pathfinder.src.js +1 -1
- package/esm/modules/pattern-fill.js +12 -1
- package/esm/modules/pattern-fill.src.js +1 -1
- package/esm/modules/pictorial.js +11 -1
- package/esm/modules/pictorial.src.js +1 -1
- package/esm/modules/pointandfigure.js +12 -1
- package/esm/modules/pointandfigure.src.js +1 -1
- package/esm/modules/price-indicator.js +13 -1
- package/esm/modules/price-indicator.src.js +1 -1
- package/esm/modules/pyramid3d.js +14 -1
- package/esm/modules/pyramid3d.src.js +1 -1
- package/esm/modules/renko.js +12 -1
- package/esm/modules/renko.src.js +1 -1
- package/esm/modules/sankey.js +11 -1
- package/esm/modules/sankey.src.js +3 -3
- package/esm/modules/series-label.js +9 -1
- package/esm/modules/series-label.src.js +1 -1
- package/esm/modules/series-on-point.js +12 -1
- package/esm/modules/series-on-point.src.js +1 -9
- package/esm/modules/solid-gauge.js +12 -1
- package/esm/modules/solid-gauge.src.js +27 -5
- package/esm/modules/sonification.js +12 -1
- package/esm/modules/sonification.src.js +45 -10
- package/esm/modules/static-scale.js +11 -1
- package/esm/modules/static-scale.src.js +14 -12
- package/esm/modules/stock-tools.js +13 -1
- package/esm/modules/stock-tools.src.js +37 -116
- package/esm/modules/stock.js +11 -1
- package/esm/modules/stock.src.js +98 -98
- package/esm/modules/streamgraph.js +11 -1
- package/esm/modules/streamgraph.src.js +1 -1
- package/esm/modules/sunburst.js +10 -1
- package/esm/modules/sunburst.src.js +9 -9
- package/esm/modules/textpath.js +9 -1
- package/esm/modules/textpath.src.js +3 -3
- package/esm/modules/tiledwebmap.js +10 -2
- package/esm/modules/tiledwebmap.src.js +1 -1
- package/esm/modules/tilemap.js +12 -1
- package/esm/modules/tilemap.src.js +1 -1
- package/esm/modules/timeline.js +12 -1
- package/esm/modules/timeline.src.js +1 -1
- package/esm/modules/treegraph.js +11 -1
- package/esm/modules/treegraph.src.js +16 -8
- package/esm/modules/treegrid.js +11 -1
- package/esm/modules/treegrid.src.js +190 -159
- package/esm/modules/treemap.js +10 -1
- package/esm/modules/treemap.src.js +7 -7
- package/esm/modules/variable-pie.js +11 -1
- package/esm/modules/variable-pie.src.js +1 -1
- package/esm/modules/variwide.js +11 -1
- package/esm/modules/variwide.src.js +18 -13
- package/esm/modules/vector.js +11 -1
- package/esm/modules/vector.src.js +1 -1
- package/esm/modules/venn.js +10 -1
- package/esm/modules/venn.src.js +5 -3
- package/esm/modules/windbarb.js +11 -1
- package/esm/modules/windbarb.src.js +1 -1
- package/esm/modules/wordcloud.js +10 -1
- package/esm/modules/wordcloud.src.js +89 -12
- package/esm/modules/xrange.js +11 -1
- package/esm/modules/xrange.src.js +3 -2
- package/esm/standalone-navigator.js +11 -2
- package/esm/standalone-navigator.src.js +312 -206
- package/esm/themes/adaptive.d.ts +2 -0
- package/esm/themes/adaptive.js +130 -0
- package/esm/themes/adaptive.src.d.ts +2 -0
- package/esm/themes/adaptive.src.js +1069 -0
- package/esm/themes/avocado.js +9 -1
- package/esm/themes/avocado.src.js +1 -1
- package/esm/themes/brand-dark.js +9 -1
- package/esm/themes/brand-dark.src.js +1 -1
- package/esm/themes/brand-light.js +9 -1
- package/esm/themes/brand-light.src.js +1 -1
- package/esm/themes/dark-blue.js +9 -1
- package/esm/themes/dark-blue.src.js +1 -1
- package/esm/themes/dark-green.js +9 -1
- package/esm/themes/dark-green.src.js +1 -1
- package/esm/themes/dark-unica.js +9 -1
- package/esm/themes/dark-unica.src.js +1 -1
- package/esm/themes/gray.js +9 -1
- package/esm/themes/gray.src.js +1 -1
- package/esm/themes/grid-light.js +9 -1
- package/esm/themes/grid-light.src.js +1 -1
- package/esm/themes/grid.js +9 -1
- package/esm/themes/grid.src.js +1 -1
- package/esm/themes/high-contrast-dark.js +9 -1
- package/esm/themes/high-contrast-dark.src.js +1 -1
- package/esm/themes/high-contrast-light.js +9 -1
- package/esm/themes/high-contrast-light.src.js +1 -1
- package/esm/themes/sand-signika.js +9 -1
- package/esm/themes/sand-signika.src.js +1 -1
- package/esm/themes/skies.js +9 -1
- package/esm/themes/skies.src.js +1 -1
- package/esm/themes/sunset.js +9 -1
- package/esm/themes/sunset.src.js +1 -1
- package/highcharts-3d.d.ts +1 -9
- package/highcharts-3d.js +11 -1
- package/highcharts-3d.src.d.ts +1 -9
- package/highcharts-3d.src.js +3 -4
- package/highcharts-gantt.js +15 -2
- package/highcharts-gantt.src.js +546 -392
- package/highcharts-more.d.ts +10 -9
- package/highcharts-more.js +9 -1
- package/highcharts-more.src.d.ts +10 -9
- package/highcharts-more.src.js +516 -57
- package/highcharts.d.ts +4526 -1522
- package/highcharts.js +9 -2
- package/highcharts.src.d.ts +4526 -1522
- package/highcharts.src.js +273 -168
- package/highmaps.js +9 -2
- package/highmaps.src.js +294 -191
- package/highstock.js +9 -2
- package/highstock.src.js +490 -361
- package/i18n/fr-FR.js +13 -1
- package/i18n/fr-FR.src.js +8 -8
- package/i18n/nb-NO.js +13 -1
- package/i18n/nb-NO.src.js +8 -8
- package/i18n/zh-CN.js +13 -1
- package/i18n/zh-CN.src.js +8 -8
- package/indicators/acceleration-bands.d.ts +1 -9
- package/indicators/acceleration-bands.js +12 -1
- package/indicators/acceleration-bands.src.d.ts +1 -9
- package/indicators/acceleration-bands.src.js +1 -1
- package/indicators/accumulation-distribution.d.ts +1 -9
- package/indicators/accumulation-distribution.js +12 -1
- package/indicators/accumulation-distribution.src.d.ts +1 -9
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.d.ts +1 -9
- package/indicators/ao.js +12 -1
- package/indicators/ao.src.d.ts +1 -9
- package/indicators/ao.src.js +1 -1
- package/indicators/apo.d.ts +1 -9
- package/indicators/apo.js +12 -1
- package/indicators/apo.src.d.ts +1 -9
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.d.ts +1 -9
- package/indicators/aroon-oscillator.js +12 -1
- package/indicators/aroon-oscillator.src.d.ts +1 -9
- package/indicators/aroon-oscillator.src.js +1 -1
- package/indicators/aroon.d.ts +1 -9
- package/indicators/aroon.js +12 -1
- package/indicators/aroon.src.d.ts +1 -9
- package/indicators/aroon.src.js +1 -1
- package/indicators/atr.d.ts +1 -9
- package/indicators/atr.js +12 -1
- package/indicators/atr.src.d.ts +1 -9
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.d.ts +1 -9
- package/indicators/bollinger-bands.js +12 -1
- package/indicators/bollinger-bands.src.d.ts +1 -9
- package/indicators/bollinger-bands.src.js +1 -1
- package/indicators/cci.d.ts +1 -9
- package/indicators/cci.js +12 -1
- package/indicators/cci.src.d.ts +1 -9
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.d.ts +1 -9
- package/indicators/chaikin.js +12 -1
- package/indicators/chaikin.src.d.ts +1 -9
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.d.ts +1 -9
- package/indicators/cmf.js +11 -1
- package/indicators/cmf.src.d.ts +1 -9
- package/indicators/cmf.src.js +1 -1
- package/indicators/cmo.d.ts +1 -9
- package/indicators/cmo.js +12 -1
- package/indicators/cmo.src.d.ts +1 -9
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.d.ts +1 -9
- package/indicators/dema.js +12 -1
- package/indicators/dema.src.d.ts +1 -9
- package/indicators/dema.src.js +1 -1
- package/indicators/disparity-index.d.ts +1 -9
- package/indicators/disparity-index.js +12 -1
- package/indicators/disparity-index.src.d.ts +1 -9
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.d.ts +1 -9
- package/indicators/dmi.js +12 -1
- package/indicators/dmi.src.d.ts +1 -9
- package/indicators/dmi.src.js +1 -1
- package/indicators/dpo.d.ts +1 -9
- package/indicators/dpo.js +12 -1
- package/indicators/dpo.src.d.ts +1 -9
- package/indicators/dpo.src.js +1 -1
- package/indicators/ema.d.ts +1 -9
- package/indicators/ema.src.d.ts +1 -9
- package/indicators/ema.src.js +3 -6
- package/indicators/ichimoku-kinko-hyo.d.ts +1 -9
- package/indicators/ichimoku-kinko-hyo.js +12 -1
- package/indicators/ichimoku-kinko-hyo.src.d.ts +1 -9
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.d.ts +1 -9
- package/indicators/indicators-all.js +12 -1
- package/indicators/indicators-all.src.d.ts +1 -9
- package/indicators/indicators-all.src.js +2 -2
- package/indicators/indicators.d.ts +1 -9
- package/indicators/indicators.js +12 -1
- package/indicators/indicators.src.d.ts +1 -9
- package/indicators/indicators.src.js +1 -1
- package/indicators/keltner-channels.d.ts +1 -9
- package/indicators/keltner-channels.js +12 -1
- package/indicators/keltner-channels.src.d.ts +1 -9
- package/indicators/keltner-channels.src.js +1 -1
- package/indicators/klinger.d.ts +1 -9
- package/indicators/klinger.js +12 -1
- package/indicators/klinger.src.d.ts +1 -9
- package/indicators/klinger.src.js +1 -1
- package/indicators/macd.d.ts +1 -9
- package/indicators/macd.js +12 -1
- package/indicators/macd.src.d.ts +1 -9
- package/indicators/macd.src.js +2 -2
- package/indicators/mfi.d.ts +1 -9
- package/indicators/mfi.js +12 -1
- package/indicators/mfi.src.d.ts +1 -9
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.d.ts +1 -9
- package/indicators/momentum.js +12 -1
- package/indicators/momentum.src.d.ts +1 -9
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.d.ts +1 -9
- package/indicators/natr.js +12 -1
- package/indicators/natr.src.d.ts +1 -9
- package/indicators/natr.src.js +1 -1
- package/indicators/obv.d.ts +1 -9
- package/indicators/obv.js +12 -1
- package/indicators/obv.src.d.ts +1 -9
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.d.ts +1 -9
- package/indicators/pivot-points.js +12 -1
- package/indicators/pivot-points.src.d.ts +1 -9
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.d.ts +1 -9
- package/indicators/ppo.js +12 -1
- package/indicators/ppo.src.d.ts +1 -9
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.d.ts +1 -9
- package/indicators/price-channel.js +12 -1
- package/indicators/price-channel.src.d.ts +1 -9
- package/indicators/price-channel.src.js +1 -1
- package/indicators/price-envelopes.d.ts +1 -9
- package/indicators/price-envelopes.js +12 -1
- package/indicators/price-envelopes.src.d.ts +1 -9
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.d.ts +1 -9
- package/indicators/psar.js +12 -1
- package/indicators/psar.src.d.ts +1 -9
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.d.ts +1 -9
- package/indicators/regressions.js +12 -1
- package/indicators/regressions.src.d.ts +1 -9
- package/indicators/regressions.src.js +1 -1
- package/indicators/roc.d.ts +1 -9
- package/indicators/roc.js +12 -1
- package/indicators/roc.src.d.ts +1 -9
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.d.ts +1 -9
- package/indicators/rsi.js +12 -1
- package/indicators/rsi.src.d.ts +1 -9
- package/indicators/rsi.src.js +1 -1
- package/indicators/slow-stochastic.d.ts +1 -9
- package/indicators/slow-stochastic.js +12 -1
- package/indicators/slow-stochastic.src.d.ts +1 -9
- package/indicators/slow-stochastic.src.js +1 -1
- package/indicators/stochastic.d.ts +1 -9
- package/indicators/stochastic.js +12 -1
- package/indicators/stochastic.src.d.ts +1 -9
- package/indicators/stochastic.src.js +1 -1
- package/indicators/supertrend.d.ts +1 -9
- package/indicators/supertrend.js +12 -1
- package/indicators/supertrend.src.d.ts +1 -9
- package/indicators/supertrend.src.js +1 -1
- package/indicators/tema.d.ts +1 -9
- package/indicators/tema.js +12 -1
- package/indicators/tema.src.d.ts +1 -9
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.d.ts +1 -9
- package/indicators/trendline.js +12 -1
- package/indicators/trendline.src.d.ts +1 -9
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.d.ts +1 -9
- package/indicators/trix.js +12 -1
- package/indicators/trix.src.d.ts +1 -9
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.d.ts +1 -9
- package/indicators/volume-by-price.js +12 -1
- package/indicators/volume-by-price.src.d.ts +1 -9
- package/indicators/volume-by-price.src.js +1 -1
- package/indicators/vwap.d.ts +1 -9
- package/indicators/vwap.js +12 -1
- package/indicators/vwap.src.d.ts +1 -9
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.d.ts +1 -9
- package/indicators/williams-r.js +12 -1
- package/indicators/williams-r.src.d.ts +1 -9
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.d.ts +1 -9
- package/indicators/wma.js +12 -1
- package/indicators/wma.src.d.ts +1 -9
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.d.ts +1 -9
- package/indicators/zigzag.js +12 -1
- package/indicators/zigzag.src.d.ts +1 -9
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.d.ts +1 -11
- package/modules/accessibility.js +12 -1
- package/modules/accessibility.src.d.ts +1 -11
- package/modules/accessibility.src.js +92 -63
- package/modules/annotations-advanced.d.ts +1 -9
- package/modules/annotations-advanced.js +21 -1
- package/modules/annotations-advanced.src.d.ts +1 -9
- package/modules/annotations-advanced.src.js +888 -794
- package/modules/annotations.d.ts +1 -9
- package/modules/annotations.js +11 -1
- package/modules/annotations.src.d.ts +1 -9
- package/modules/annotations.src.js +95 -43
- package/modules/arc-diagram.d.ts +1 -9
- package/modules/arc-diagram.js +11 -1
- package/modules/arc-diagram.src.d.ts +1 -9
- package/modules/arc-diagram.src.js +3 -3
- package/modules/arrow-symbols.d.ts +1 -9
- package/modules/arrow-symbols.js +11 -1
- package/modules/arrow-symbols.src.d.ts +1 -9
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.d.ts +1 -9
- package/modules/boost-canvas.js +12 -1
- package/modules/boost-canvas.src.d.ts +1 -9
- package/modules/boost-canvas.src.js +102 -53
- package/modules/boost.d.ts +1 -9
- package/modules/boost.js +13 -1
- package/modules/boost.src.d.ts +1 -9
- package/modules/boost.src.js +107 -49
- package/modules/broken-axis.d.ts +1 -9
- package/modules/broken-axis.js +9 -1
- package/modules/broken-axis.src.d.ts +1 -9
- package/modules/broken-axis.src.js +115 -91
- package/modules/bullet.d.ts +1 -9
- package/modules/bullet.js +11 -1
- package/modules/bullet.src.d.ts +1 -9
- package/modules/bullet.src.js +1 -1
- package/modules/coloraxis.d.ts +1 -9
- package/modules/coloraxis.js +11 -1
- package/modules/coloraxis.src.d.ts +1 -9
- package/modules/coloraxis.src.js +6 -7
- package/modules/current-date-indicator.d.ts +1 -9
- package/modules/current-date-indicator.js +11 -1
- package/modules/current-date-indicator.src.d.ts +1 -9
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.d.ts +1 -9
- package/modules/cylinder.js +12 -1
- package/modules/cylinder.src.d.ts +1 -9
- package/modules/cylinder.src.js +1 -1
- package/modules/data-tools.js +11 -1
- package/modules/data-tools.src.js +542 -125
- package/modules/data.d.ts +1 -9
- package/modules/data.js +11 -1
- package/modules/data.src.d.ts +1 -9
- package/modules/data.src.js +46 -39
- package/modules/datagrouping.d.ts +1 -9
- package/modules/datagrouping.js +11 -1
- package/modules/datagrouping.src.d.ts +1 -9
- package/modules/datagrouping.src.js +1 -1
- package/modules/debugger.d.ts +1 -9
- package/modules/debugger.js +11 -1
- package/modules/debugger.src.d.ts +1 -9
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.d.ts +1 -9
- package/modules/dependency-wheel.js +12 -1
- package/modules/dependency-wheel.src.d.ts +1 -9
- package/modules/dependency-wheel.src.js +3 -3
- package/modules/dotplot.d.ts +1 -9
- package/modules/dotplot.js +11 -1
- package/modules/dotplot.src.d.ts +1 -9
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.d.ts +1 -9
- package/modules/drag-panes.js +13 -1
- package/modules/drag-panes.src.d.ts +1 -9
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.d.ts +1 -9
- package/modules/draggable-points.js +9 -1
- package/modules/draggable-points.src.d.ts +1 -9
- package/modules/draggable-points.src.js +1 -1
- package/modules/drilldown.d.ts +1 -9
- package/modules/drilldown.js +13 -1
- package/modules/drilldown.src.d.ts +1 -9
- package/modules/drilldown.src.js +4 -2
- package/modules/dumbbell.d.ts +1 -9
- package/modules/dumbbell.js +9 -1
- package/modules/dumbbell.src.d.ts +1 -9
- package/modules/dumbbell.src.js +1 -1
- package/modules/export-data.d.ts +2 -79
- package/modules/export-data.js +12 -1
- package/modules/export-data.src.d.ts +2 -79
- package/modules/export-data.src.js +997 -804
- package/modules/exporting.d.ts +35 -21
- package/modules/exporting.js +11 -1
- package/modules/exporting.src.d.ts +35 -21
- package/modules/exporting.src.js +1452 -628
- package/modules/flowmap.d.ts +1 -9
- package/modules/flowmap.js +9 -1
- package/modules/flowmap.src.d.ts +1 -9
- package/modules/flowmap.src.js +1 -1
- package/modules/full-screen.d.ts +1 -9
- package/modules/full-screen.js +12 -1
- package/modules/full-screen.src.d.ts +1 -9
- package/modules/full-screen.src.js +3 -3
- package/modules/funnel.d.ts +1 -9
- package/modules/funnel.js +11 -1
- package/modules/funnel.src.d.ts +1 -9
- package/modules/funnel.src.js +7 -3
- package/modules/funnel3d.d.ts +1 -9
- package/modules/funnel3d.js +13 -1
- package/modules/funnel3d.src.d.ts +1 -9
- package/modules/funnel3d.src.js +1 -1
- package/modules/gantt.d.ts +1 -9
- package/modules/gantt.js +31 -1
- package/modules/gantt.src.d.ts +1 -9
- package/modules/gantt.src.js +273 -230
- package/modules/geoheatmap.d.ts +1 -9
- package/modules/geoheatmap.js +9 -1
- package/modules/geoheatmap.src.d.ts +1 -9
- package/modules/geoheatmap.src.js +1 -1
- package/modules/grid-axis.d.ts +1 -9
- package/modules/grid-axis.js +11 -1
- package/modules/grid-axis.src.d.ts +1 -9
- package/modules/grid-axis.src.js +1 -1
- package/modules/heatmap.d.ts +1 -9
- package/modules/heatmap.js +19 -1
- package/modules/heatmap.src.d.ts +1 -9
- package/modules/heatmap.src.js +21 -23
- package/modules/heikinashi.d.ts +1 -9
- package/modules/heikinashi.js +12 -1
- package/modules/heikinashi.src.d.ts +1 -9
- package/modules/heikinashi.src.js +1 -1
- package/modules/histogram-bellcurve.d.ts +2 -11
- package/modules/histogram-bellcurve.js +10 -1
- package/modules/histogram-bellcurve.src.d.ts +2 -11
- package/modules/histogram-bellcurve.src.js +36 -27
- package/modules/hollowcandlestick.d.ts +1 -9
- package/modules/hollowcandlestick.js +12 -1
- package/modules/hollowcandlestick.src.d.ts +1 -9
- package/modules/hollowcandlestick.src.js +1 -1
- package/modules/item-series.d.ts +1 -9
- package/modules/item-series.js +11 -1
- package/modules/item-series.src.d.ts +1 -9
- package/modules/item-series.src.js +3 -5
- package/modules/lollipop.d.ts +1 -9
- package/modules/lollipop.js +9 -1
- package/modules/lollipop.src.d.ts +1 -9
- package/modules/lollipop.src.js +1 -1
- package/modules/map.d.ts +1 -9
- package/modules/map.js +21 -1
- package/modules/map.src.d.ts +1 -9
- package/modules/map.src.js +25 -27
- package/modules/marker-clusters.d.ts +1 -9
- package/modules/marker-clusters.js +11 -1
- package/modules/marker-clusters.src.d.ts +1 -9
- package/modules/marker-clusters.src.js +1 -1
- package/modules/mouse-wheel-zoom.d.ts +1 -9
- package/modules/mouse-wheel-zoom.js +11 -1
- package/modules/mouse-wheel-zoom.src.d.ts +1 -9
- package/modules/mouse-wheel-zoom.src.js +1 -1
- package/modules/navigator.d.ts +1 -9
- package/modules/navigator.js +11 -1
- package/modules/navigator.src.d.ts +1 -9
- package/modules/navigator.src.js +29 -29
- package/modules/networkgraph.d.ts +1 -9
- package/modules/networkgraph.js +11 -1
- package/modules/networkgraph.src.d.ts +1 -9
- package/modules/networkgraph.src.js +16 -4
- package/modules/no-data-to-display.d.ts +1 -9
- package/modules/no-data-to-display.js +12 -1
- package/modules/no-data-to-display.src.d.ts +1 -9
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/non-cartesian-zoom.d.ts +9 -0
- package/modules/non-cartesian-zoom.js +11 -0
- package/modules/non-cartesian-zoom.src.d.ts +9 -0
- package/modules/non-cartesian-zoom.src.js +427 -0
- package/modules/offline-exporting.d.ts +2 -90
- package/modules/offline-exporting.js +12 -1
- package/modules/offline-exporting.src.d.ts +2 -90
- package/modules/offline-exporting.src.js +355 -3380
- package/modules/organization.d.ts +1 -9
- package/modules/organization.js +11 -1
- package/modules/organization.src.d.ts +1 -9
- package/modules/organization.src.js +3 -3
- package/modules/parallel-coordinates.d.ts +1 -9
- package/modules/parallel-coordinates.js +11 -1
- package/modules/parallel-coordinates.src.d.ts +1 -9
- package/modules/parallel-coordinates.src.js +1 -1
- package/modules/pareto.d.ts +1 -9
- package/modules/pareto.js +11 -1
- package/modules/pareto.src.d.ts +1 -9
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.d.ts +1 -9
- package/modules/pathfinder.js +11 -1
- package/modules/pathfinder.src.d.ts +1 -9
- package/modules/pathfinder.src.js +1 -1
- package/modules/pattern-fill.d.ts +1 -9
- package/modules/pattern-fill.js +12 -1
- package/modules/pattern-fill.src.d.ts +1 -9
- package/modules/pattern-fill.src.js +1 -1
- package/modules/pictorial.d.ts +1 -9
- package/modules/pictorial.js +11 -1
- package/modules/pictorial.src.d.ts +1 -9
- package/modules/pictorial.src.js +1 -1
- package/modules/pointandfigure.d.ts +1 -9
- package/modules/pointandfigure.js +12 -1
- package/modules/pointandfigure.src.d.ts +1 -9
- package/modules/pointandfigure.src.js +1 -1
- package/modules/price-indicator.d.ts +1 -9
- package/modules/price-indicator.js +13 -1
- package/modules/price-indicator.src.d.ts +1 -9
- package/modules/price-indicator.src.js +1 -1
- package/modules/pyramid3d.d.ts +1 -9
- package/modules/pyramid3d.js +14 -1
- package/modules/pyramid3d.src.d.ts +1 -9
- package/modules/pyramid3d.src.js +1 -1
- package/modules/renko.d.ts +1 -9
- package/modules/renko.js +12 -1
- package/modules/renko.src.d.ts +1 -9
- package/modules/renko.src.js +1 -1
- package/modules/sankey.d.ts +1 -9
- package/modules/sankey.js +11 -1
- package/modules/sankey.src.d.ts +1 -9
- package/modules/sankey.src.js +3 -3
- package/modules/series-label.d.ts +1 -9
- package/modules/series-label.js +9 -1
- package/modules/series-label.src.d.ts +1 -9
- package/modules/series-label.src.js +1 -1
- package/modules/series-on-point.d.ts +1 -9
- package/modules/series-on-point.js +12 -1
- package/modules/series-on-point.src.d.ts +1 -9
- package/modules/series-on-point.src.js +6 -16
- package/modules/solid-gauge.d.ts +1 -9
- package/modules/solid-gauge.js +12 -1
- package/modules/solid-gauge.src.d.ts +1 -9
- package/modules/solid-gauge.src.js +27 -5
- package/modules/sonification.d.ts +1 -9
- package/modules/sonification.js +12 -1
- package/modules/sonification.src.d.ts +1 -9
- package/modules/sonification.src.js +45 -10
- package/modules/static-scale.d.ts +1 -9
- package/modules/static-scale.js +11 -1
- package/modules/static-scale.src.d.ts +1 -9
- package/modules/static-scale.src.js +14 -12
- package/modules/stock-tools.d.ts +1 -9
- package/modules/stock-tools.js +13 -1
- package/modules/stock-tools.src.d.ts +1 -9
- package/modules/stock-tools.src.js +37 -116
- package/modules/stock.d.ts +1 -9
- package/modules/stock.js +21 -1
- package/modules/stock.src.d.ts +1 -9
- package/modules/stock.src.js +233 -209
- package/modules/streamgraph.d.ts +1 -9
- package/modules/streamgraph.js +11 -1
- package/modules/streamgraph.src.d.ts +1 -9
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.d.ts +1 -9
- package/modules/sunburst.js +10 -1
- package/modules/sunburst.src.d.ts +1 -9
- package/modules/sunburst.src.js +9 -9
- package/modules/textpath.d.ts +1 -9
- package/modules/textpath.js +9 -1
- package/modules/textpath.src.d.ts +1 -9
- package/modules/textpath.src.js +3 -3
- package/modules/tiledwebmap.d.ts +1 -9
- package/modules/tiledwebmap.js +10 -2
- package/modules/tiledwebmap.src.d.ts +1 -9
- package/modules/tiledwebmap.src.js +1 -1
- package/modules/tilemap.d.ts +1 -9
- package/modules/tilemap.js +12 -1
- package/modules/tilemap.src.d.ts +1 -9
- package/modules/tilemap.src.js +1 -1
- package/modules/timeline.d.ts +1 -9
- package/modules/timeline.js +12 -1
- package/modules/timeline.src.d.ts +1 -9
- package/modules/timeline.src.js +1 -1
- package/modules/treegraph.d.ts +1 -9
- package/modules/treegraph.js +11 -1
- package/modules/treegraph.src.d.ts +1 -9
- package/modules/treegraph.src.js +16 -8
- package/modules/treegrid.d.ts +1 -9
- package/modules/treegrid.js +11 -1
- package/modules/treegrid.src.d.ts +1 -9
- package/modules/treegrid.src.js +190 -159
- package/modules/treemap.d.ts +1 -9
- package/modules/treemap.js +10 -1
- package/modules/treemap.src.d.ts +1 -9
- package/modules/treemap.src.js +7 -7
- package/modules/variable-pie.d.ts +1 -9
- package/modules/variable-pie.js +11 -1
- package/modules/variable-pie.src.d.ts +1 -9
- package/modules/variable-pie.src.js +1 -1
- package/modules/variwide.d.ts +1 -9
- package/modules/variwide.js +11 -1
- package/modules/variwide.src.d.ts +1 -9
- package/modules/variwide.src.js +18 -13
- package/modules/vector.d.ts +1 -9
- package/modules/vector.js +11 -1
- package/modules/vector.src.d.ts +1 -9
- package/modules/vector.src.js +1 -1
- package/modules/venn.d.ts +1 -9
- package/modules/venn.js +10 -1
- package/modules/venn.src.d.ts +1 -9
- package/modules/venn.src.js +5 -3
- package/modules/windbarb.d.ts +1 -9
- package/modules/windbarb.js +11 -1
- package/modules/windbarb.src.d.ts +1 -9
- package/modules/windbarb.src.js +1 -1
- package/modules/wordcloud.d.ts +1 -9
- package/modules/wordcloud.js +10 -1
- package/modules/wordcloud.src.d.ts +1 -9
- package/modules/wordcloud.src.js +89 -12
- package/modules/xrange.d.ts +1 -9
- package/modules/xrange.js +11 -1
- package/modules/xrange.src.d.ts +1 -9
- package/modules/xrange.src.js +3 -2
- package/options/abands.d.ts +8 -0
- package/options/abands.src.d.ts +8 -0
- package/options/ao.d.ts +8 -0
- package/options/ao.src.d.ts +8 -0
- package/options/arcdiagram.d.ts +8 -0
- package/options/arcdiagram.src.d.ts +8 -0
- package/options/area.d.ts +9 -0
- package/options/area.src.d.ts +9 -0
- package/options/arearange.d.ts +9 -0
- package/options/arearange.src.d.ts +9 -0
- package/options/areaspline.d.ts +9 -0
- package/options/areaspline.src.d.ts +9 -0
- package/options/areasplinerange.d.ts +9 -0
- package/options/areasplinerange.src.d.ts +9 -0
- package/options/aroon.d.ts +8 -0
- package/options/aroon.src.d.ts +8 -0
- package/options/atr.d.ts +8 -0
- package/options/atr.src.d.ts +8 -0
- package/options/bellcurve.d.ts +8 -0
- package/options/bellcurve.src.d.ts +8 -0
- package/options/boxplot.d.ts +8 -0
- package/options/boxplot.src.d.ts +8 -0
- package/options/bullet.d.ts +8 -0
- package/options/bullet.src.d.ts +8 -0
- package/options/chaikin.d.ts +8 -0
- package/options/chaikin.src.d.ts +8 -0
- package/options/cmo.d.ts +8 -0
- package/options/cmo.src.d.ts +8 -0
- package/options/columnpyramid.d.ts +9 -0
- package/options/columnpyramid.src.d.ts +9 -0
- package/options/columnrange.d.ts +9 -0
- package/options/columnrange.src.d.ts +9 -0
- package/options/dmi.d.ts +8 -0
- package/options/dmi.src.d.ts +8 -0
- package/options/errorbar.d.ts +8 -0
- package/options/errorbar.src.d.ts +8 -0
- package/options/flags.d.ts +8 -0
- package/options/flags.src.d.ts +8 -0
- package/options/funnel.d.ts +8 -0
- package/options/funnel.src.d.ts +8 -0
- package/options/gauge.d.ts +8 -0
- package/options/gauge.src.d.ts +8 -0
- package/options/item.d.ts +8 -0
- package/options/item.src.d.ts +8 -0
- package/options/keltnerchannels.d.ts +8 -0
- package/options/keltnerchannels.src.d.ts +8 -0
- package/options/line.d.ts +9 -0
- package/options/line.src.d.ts +9 -0
- package/options/linearregressionangle.d.ts +8 -0
- package/options/linearregressionangle.src.d.ts +8 -0
- package/options/linearregressionintercept.d.ts +8 -0
- package/options/linearregressionintercept.src.d.ts +8 -0
- package/options/map.d.ts +8 -0
- package/options/map.src.d.ts +8 -0
- package/options/mfi.d.ts +8 -0
- package/options/mfi.src.d.ts +8 -0
- package/options/natr.d.ts +8 -0
- package/options/natr.src.d.ts +8 -0
- package/options/ohlc.d.ts +8 -0
- package/options/ohlc.src.d.ts +8 -0
- package/options/packedbubble.d.ts +8 -0
- package/options/packedbubble.src.d.ts +8 -0
- package/options/pictorial.d.ts +8 -0
- package/options/pictorial.src.d.ts +8 -0
- package/options/pointandfigure.d.ts +8 -0
- package/options/pointandfigure.src.d.ts +8 -0
- package/options/polygon.d.ts +9 -0
- package/options/polygon.src.d.ts +9 -0
- package/options/ppo.d.ts +8 -0
- package/options/ppo.src.d.ts +8 -0
- package/options/psar.d.ts +8 -0
- package/options/psar.src.d.ts +8 -0
- package/options/pyramid.d.ts +8 -0
- package/options/pyramid.src.d.ts +8 -0
- package/options/renko.d.ts +8 -0
- package/options/renko.src.d.ts +8 -0
- package/options/roc.d.ts +8 -0
- package/options/roc.src.d.ts +8 -0
- package/options/sankey.d.ts +8 -0
- package/options/sankey.src.d.ts +8 -0
- package/options/scatter.d.ts +9 -0
- package/options/scatter.src.d.ts +9 -0
- package/options/series.d.ts +9 -0
- package/options/series.src.d.ts +9 -0
- package/options/sma.d.ts +8 -0
- package/options/sma.src.d.ts +8 -0
- package/options/solidgauge.d.ts +14 -0
- package/options/solidgauge.src.d.ts +14 -0
- package/options/spline.d.ts +9 -0
- package/options/spline.src.d.ts +9 -0
- package/options/stochastic.d.ts +8 -0
- package/options/stochastic.src.d.ts +8 -0
- package/options/tema.d.ts +8 -0
- package/options/tema.src.d.ts +8 -0
- package/options/tiledwebmap.d.ts +8 -0
- package/options/tiledwebmap.src.d.ts +8 -0
- package/options/timeline.d.ts +8 -0
- package/options/timeline.src.d.ts +8 -0
- package/options/treegraph.d.ts +8 -0
- package/options/treegraph.src.d.ts +8 -0
- package/options/trix.d.ts +8 -0
- package/options/trix.src.d.ts +8 -0
- package/options/variablepie.d.ts +8 -0
- package/options/variablepie.src.d.ts +8 -0
- package/options/variwide.d.ts +8 -0
- package/options/variwide.src.d.ts +8 -0
- package/options/vbp.d.ts +8 -0
- package/options/vbp.src.d.ts +8 -0
- package/options/vector.d.ts +9 -0
- package/options/vector.src.d.ts +9 -0
- package/options/venn.d.ts +8 -0
- package/options/venn.src.d.ts +8 -0
- package/options/vwap.d.ts +8 -0
- package/options/vwap.src.d.ts +8 -0
- package/options/windbarb.d.ts +9 -0
- package/options/windbarb.src.d.ts +9 -0
- package/options/wma.d.ts +8 -0
- package/options/wma.src.d.ts +8 -0
- package/options/wordcloud.d.ts +8 -0
- package/options/wordcloud.src.d.ts +8 -0
- package/options/zigzag.d.ts +8 -0
- package/options/zigzag.src.d.ts +8 -0
- package/package.json +1 -1
- package/standalone-navigator.js +11 -2
- package/standalone-navigator.src.js +312 -206
- package/themes/adaptive.d.ts +18 -0
- package/themes/adaptive.js +130 -0
- package/themes/adaptive.src.d.ts +18 -0
- package/themes/adaptive.src.js +1122 -0
- package/themes/avocado.d.ts +1 -9
- package/themes/avocado.js +9 -1
- package/themes/avocado.src.d.ts +1 -9
- package/themes/avocado.src.js +1 -1
- package/themes/brand-dark.d.ts +1 -9
- package/themes/brand-dark.js +9 -1
- package/themes/brand-dark.src.d.ts +1 -9
- package/themes/brand-dark.src.js +1 -1
- package/themes/brand-light.d.ts +1 -9
- package/themes/brand-light.js +9 -1
- package/themes/brand-light.src.d.ts +1 -9
- package/themes/brand-light.src.js +1 -1
- package/themes/dark-blue.d.ts +1 -9
- package/themes/dark-blue.js +9 -1
- package/themes/dark-blue.src.d.ts +1 -9
- package/themes/dark-blue.src.js +1 -1
- package/themes/dark-green.d.ts +1 -9
- package/themes/dark-green.js +9 -1
- package/themes/dark-green.src.d.ts +1 -9
- package/themes/dark-green.src.js +1 -1
- package/themes/dark-unica.d.ts +1 -9
- package/themes/dark-unica.js +9 -1
- package/themes/dark-unica.src.d.ts +1 -9
- package/themes/dark-unica.src.js +1 -1
- package/themes/gray.d.ts +1 -9
- package/themes/gray.js +9 -1
- package/themes/gray.src.d.ts +1 -9
- package/themes/gray.src.js +1 -1
- package/themes/grid-light.d.ts +1 -9
- package/themes/grid-light.js +9 -1
- package/themes/grid-light.src.d.ts +1 -9
- package/themes/grid-light.src.js +1 -1
- package/themes/grid.d.ts +1 -9
- package/themes/grid.js +9 -1
- package/themes/grid.src.d.ts +1 -9
- package/themes/grid.src.js +1 -1
- package/themes/high-contrast-dark.d.ts +1 -9
- package/themes/high-contrast-dark.js +9 -1
- package/themes/high-contrast-dark.src.d.ts +1 -9
- package/themes/high-contrast-dark.src.js +1 -1
- package/themes/high-contrast-light.d.ts +1 -9
- package/themes/high-contrast-light.js +9 -1
- package/themes/high-contrast-light.src.d.ts +1 -9
- package/themes/high-contrast-light.src.js +1 -1
- package/themes/sand-signika.d.ts +1 -9
- package/themes/sand-signika.js +9 -1
- package/themes/sand-signika.src.d.ts +1 -9
- package/themes/sand-signika.src.js +1 -1
- package/themes/skies.d.ts +1 -9
- package/themes/skies.js +9 -1
- package/themes/skies.src.d.ts +1 -9
- package/themes/skies.src.js +1 -1
- package/themes/sunset.d.ts +1 -9
- package/themes/sunset.js +9 -1
- package/themes/sunset.src.d.ts +1 -9
- package/themes/sunset.src.js +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS v12.
|
|
2
|
+
* @license Highcharts JS v12.4.0 (2025-09-04)
|
|
3
3
|
* @module highcharts/modules/export-data
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
* @requires highcharts/modules/exporting
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Export data module
|
|
8
8
|
*
|
|
9
9
|
* (c) 2010-2025 Torstein Honsi
|
|
10
10
|
*
|
|
@@ -70,6 +70,8 @@ var external_highcharts_src_js_default_default = /*#__PURE__*/__webpack_require_
|
|
|
70
70
|
* */
|
|
71
71
|
|
|
72
72
|
const { isSafari, win, win: { document: doc } } = (external_highcharts_src_js_default_default());
|
|
73
|
+
|
|
74
|
+
const { error } = (external_highcharts_src_js_default_default());
|
|
73
75
|
/* *
|
|
74
76
|
*
|
|
75
77
|
* Constants
|
|
@@ -83,12 +85,15 @@ const domurl = win.URL || win.webkitURL || win;
|
|
|
83
85
|
* */
|
|
84
86
|
/**
|
|
85
87
|
* Convert base64 dataURL to Blob if supported, otherwise returns undefined.
|
|
88
|
+
*
|
|
86
89
|
* @private
|
|
87
90
|
* @function Highcharts.dataURLtoBlob
|
|
91
|
+
*
|
|
88
92
|
* @param {string} dataURL
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
93
|
+
* URL to convert.
|
|
94
|
+
*
|
|
95
|
+
* @return {string | undefined}
|
|
96
|
+
* Blob.
|
|
92
97
|
*/
|
|
93
98
|
function dataURLtoBlob(dataURL) {
|
|
94
99
|
const parts = dataURL
|
|
@@ -115,11 +120,11 @@ function dataURLtoBlob(dataURL) {
|
|
|
115
120
|
*
|
|
116
121
|
* @private
|
|
117
122
|
* @function Highcharts.downloadURL
|
|
118
|
-
*
|
|
119
|
-
*
|
|
123
|
+
*
|
|
124
|
+
* @param {string | global.URL} dataURL
|
|
125
|
+
* The dataURL/Blob to download.
|
|
120
126
|
* @param {string} filename
|
|
121
|
-
*
|
|
122
|
-
* @return {void}
|
|
127
|
+
* The name of the resulting file (w/extension).
|
|
123
128
|
*/
|
|
124
129
|
function downloadURL(dataURL, filename) {
|
|
125
130
|
const nav = win.navigator, a = doc.createElement('a');
|
|
@@ -169,6 +174,35 @@ function downloadURL(dataURL, filename) {
|
|
|
169
174
|
}
|
|
170
175
|
}
|
|
171
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Asynchronously downloads a script from a provided location.
|
|
179
|
+
*
|
|
180
|
+
* @private
|
|
181
|
+
* @function Highcharts.getScript
|
|
182
|
+
*
|
|
183
|
+
* @param {string} scriptLocation
|
|
184
|
+
* The location for the script to fetch.
|
|
185
|
+
*/
|
|
186
|
+
function getScript(scriptLocation) {
|
|
187
|
+
return new Promise((resolve, reject) => {
|
|
188
|
+
const head = doc.getElementsByTagName('head')[0], script = doc.createElement('script');
|
|
189
|
+
// Set type and location for the script
|
|
190
|
+
script.type = 'text/javascript';
|
|
191
|
+
script.src = scriptLocation;
|
|
192
|
+
// Resolve in case of a succesful script fetching
|
|
193
|
+
script.onload = () => {
|
|
194
|
+
resolve();
|
|
195
|
+
};
|
|
196
|
+
// Reject in case of fail
|
|
197
|
+
script.onerror = () => {
|
|
198
|
+
const msg = `Error loading script ${scriptLocation}`;
|
|
199
|
+
error(msg);
|
|
200
|
+
reject(new Error(msg));
|
|
201
|
+
};
|
|
202
|
+
// Append the newly created script
|
|
203
|
+
head.appendChild(script);
|
|
204
|
+
});
|
|
205
|
+
}
|
|
172
206
|
/* *
|
|
173
207
|
*
|
|
174
208
|
* Default Export
|
|
@@ -176,13 +210,17 @@ function downloadURL(dataURL, filename) {
|
|
|
176
210
|
* */
|
|
177
211
|
const DownloadURL = {
|
|
178
212
|
dataURLtoBlob,
|
|
179
|
-
downloadURL
|
|
213
|
+
downloadURL,
|
|
214
|
+
getScript
|
|
180
215
|
};
|
|
181
216
|
/* harmony default export */ const Extensions_DownloadURL = (DownloadURL);
|
|
182
217
|
|
|
183
218
|
;// external ["../highcharts.src.js","default","AST"]
|
|
184
219
|
const external_highcharts_src_js_default_AST_namespaceObject = __WEBPACK_EXTERNAL_MODULE__highcharts_src_js_8202131d__["default"].AST;
|
|
185
220
|
var external_highcharts_src_js_default_AST_default = /*#__PURE__*/__webpack_require__.n(external_highcharts_src_js_default_AST_namespaceObject);
|
|
221
|
+
;// external ["../highcharts.src.js","default","Chart"]
|
|
222
|
+
const external_highcharts_src_js_default_Chart_namespaceObject = __WEBPACK_EXTERNAL_MODULE__highcharts_src_js_8202131d__["default"].Chart;
|
|
223
|
+
var external_highcharts_src_js_default_Chart_default = /*#__PURE__*/__webpack_require__.n(external_highcharts_src_js_default_Chart_namespaceObject);
|
|
186
224
|
;// ./code/es-modules/Extensions/ExportData/ExportDataDefaults.js
|
|
187
225
|
/* *
|
|
188
226
|
*
|
|
@@ -213,7 +251,7 @@ const exporting = {
|
|
|
213
251
|
* @sample highcharts/export-data/multilevel-table
|
|
214
252
|
* Multiple table headers
|
|
215
253
|
*
|
|
216
|
-
* @type {boolean|string}
|
|
254
|
+
* @type {boolean | string}
|
|
217
255
|
* @since 6.0.4
|
|
218
256
|
* @requires modules/export-data
|
|
219
257
|
* @apioption exporting.tableCaption
|
|
@@ -223,8 +261,8 @@ const exporting = {
|
|
|
223
261
|
* in a HTML table or a JavaScript structure.
|
|
224
262
|
*
|
|
225
263
|
* This module adds data export options to the export menu and provides
|
|
226
|
-
* functions like `
|
|
227
|
-
* and `
|
|
264
|
+
* functions like `Exporting.getCSV`, `Exporting.getTable`,
|
|
265
|
+
* `Exporting.getDataRows` and `Exporting.viewData`.
|
|
228
266
|
*
|
|
229
267
|
* The XLS converter is limited and only creates a HTML string that is
|
|
230
268
|
* passed for download, which works but creates a warning before
|
|
@@ -244,7 +282,7 @@ const exporting = {
|
|
|
244
282
|
*
|
|
245
283
|
* Options for annotations in the export-data table.
|
|
246
284
|
*
|
|
247
|
-
* @since
|
|
285
|
+
* @since 8.2.0
|
|
248
286
|
* @requires modules/export-data
|
|
249
287
|
* @requires modules/annotations
|
|
250
288
|
*
|
|
@@ -255,7 +293,7 @@ const exporting = {
|
|
|
255
293
|
* The way to mark the separator for annotations
|
|
256
294
|
* combined in one export-data table cell.
|
|
257
295
|
*
|
|
258
|
-
* @since
|
|
296
|
+
* @since 8.2.0
|
|
259
297
|
* @requires modules/annotations
|
|
260
298
|
*/
|
|
261
299
|
itemDelimiter: '; ',
|
|
@@ -266,7 +304,7 @@ const exporting = {
|
|
|
266
304
|
* @sample highcharts/export-data/join-annotations/
|
|
267
305
|
* Concatenate point annotations with itemDelimiter set.
|
|
268
306
|
*
|
|
269
|
-
* @since
|
|
307
|
+
* @since 8.2.0
|
|
270
308
|
* @requires modules/annotations
|
|
271
309
|
*/
|
|
272
310
|
join: false
|
|
@@ -297,7 +335,7 @@ const exporting = {
|
|
|
297
335
|
* @sample highcharts/export-data/multilevel-table
|
|
298
336
|
* Multiple table headers
|
|
299
337
|
*
|
|
300
|
-
* @type {Function|null}
|
|
338
|
+
* @type {Function | null}
|
|
301
339
|
*/
|
|
302
340
|
columnHeaderFormatter: null,
|
|
303
341
|
/**
|
|
@@ -310,7 +348,7 @@ const exporting = {
|
|
|
310
348
|
* as the browser locale, typically `.` (English) or `,` (German,
|
|
311
349
|
* French etc).
|
|
312
350
|
*
|
|
313
|
-
* @type {string|null}
|
|
351
|
+
* @type {string | null}
|
|
314
352
|
* @since 6.0.4
|
|
315
353
|
*/
|
|
316
354
|
decimalPoint: null,
|
|
@@ -320,7 +358,7 @@ const exporting = {
|
|
|
320
358
|
* locale. If the locale _decimal point_ is `,`, the `itemDelimiter`
|
|
321
359
|
* defaults to `;`, otherwise the `itemDelimiter` defaults to `,`.
|
|
322
360
|
*
|
|
323
|
-
* @type {string|null}
|
|
361
|
+
* @type {string | null}
|
|
324
362
|
*/
|
|
325
363
|
itemDelimiter: null,
|
|
326
364
|
/**
|
|
@@ -328,6 +366,60 @@ const exporting = {
|
|
|
328
366
|
*/
|
|
329
367
|
lineDelimiter: '\n'
|
|
330
368
|
},
|
|
369
|
+
/**
|
|
370
|
+
* An object consisting of definitions for the menu items in the context
|
|
371
|
+
* menu. Each key value pair has a `key` that is referenced in the
|
|
372
|
+
* [menuItems](#exporting.buttons.contextButton.menuItems) setting,
|
|
373
|
+
* and a `value`, which is an object with the following properties:
|
|
374
|
+
*
|
|
375
|
+
* - **onclick:** The click handler for the menu item
|
|
376
|
+
*
|
|
377
|
+
* - **text:** The text for the menu item
|
|
378
|
+
*
|
|
379
|
+
* - **textKey:** If internationalization is required, the key to a language
|
|
380
|
+
* string
|
|
381
|
+
*
|
|
382
|
+
* Custom text for the "exitFullScreen" can be set only in lang options
|
|
383
|
+
* (it is not a separate button).
|
|
384
|
+
*
|
|
385
|
+
* @sample highcharts/exporting/menuitemdefinitions/
|
|
386
|
+
* Menu item definitions
|
|
387
|
+
* @sample highcharts/exporting/menuitemdefinitions-webp/
|
|
388
|
+
* Adding a custom menu item for WebP export
|
|
389
|
+
*
|
|
390
|
+
* @type {Highcharts.Dictionary<Highcharts.ExportingMenuObject>}
|
|
391
|
+
* @default {"downloadCSV": {}, "downloadXLS": {}, "viewData": {}}
|
|
392
|
+
* @requires modules/export-data
|
|
393
|
+
*/
|
|
394
|
+
menuItemDefinitions: {
|
|
395
|
+
/**
|
|
396
|
+
* @ignore
|
|
397
|
+
*/
|
|
398
|
+
downloadCSV: {
|
|
399
|
+
textKey: 'downloadCSV',
|
|
400
|
+
onclick: function () {
|
|
401
|
+
this.exporting?.downloadCSV();
|
|
402
|
+
}
|
|
403
|
+
},
|
|
404
|
+
/**
|
|
405
|
+
* @ignore
|
|
406
|
+
*/
|
|
407
|
+
downloadXLS: {
|
|
408
|
+
textKey: 'downloadXLS',
|
|
409
|
+
onclick: function () {
|
|
410
|
+
this.exporting?.downloadXLS();
|
|
411
|
+
}
|
|
412
|
+
},
|
|
413
|
+
/**
|
|
414
|
+
* @ignore
|
|
415
|
+
*/
|
|
416
|
+
viewData: {
|
|
417
|
+
textKey: 'viewData',
|
|
418
|
+
onclick: function () {
|
|
419
|
+
this.exporting?.wrapLoading(this.exporting.toggleDataTable);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
},
|
|
331
423
|
/**
|
|
332
424
|
* Show a HTML table below the chart with the chart's current data.
|
|
333
425
|
*
|
|
@@ -370,7 +462,7 @@ const exporting = {
|
|
|
370
462
|
*
|
|
371
463
|
* The message can be altered by changing [](#lang.exporting.exportInProgress)
|
|
372
464
|
*
|
|
373
|
-
* @since
|
|
465
|
+
* @since 11.3.0
|
|
374
466
|
* @requires modules/export-data
|
|
375
467
|
*/
|
|
376
468
|
showExportInProgress: true
|
|
@@ -397,7 +489,7 @@ const lang = {
|
|
|
397
489
|
/**
|
|
398
490
|
* The text for exported table.
|
|
399
491
|
*
|
|
400
|
-
* @since
|
|
492
|
+
* @since 8.1.0
|
|
401
493
|
* @requires modules/export-data
|
|
402
494
|
*/
|
|
403
495
|
exportData: {
|
|
@@ -424,14 +516,14 @@ const lang = {
|
|
|
424
516
|
/**
|
|
425
517
|
* The text for the menu item.
|
|
426
518
|
*
|
|
427
|
-
* @since
|
|
519
|
+
* @since 8.2.0
|
|
428
520
|
* @requires modules/export-data
|
|
429
521
|
*/
|
|
430
522
|
hideData: 'Hide data table',
|
|
431
523
|
/**
|
|
432
524
|
* Text to show when export is in progress.
|
|
433
525
|
*
|
|
434
|
-
* @since
|
|
526
|
+
* @since 11.3.0
|
|
435
527
|
* @requires modules/export-data
|
|
436
528
|
*/
|
|
437
529
|
exportInProgress: 'Exporting...'
|
|
@@ -492,857 +584,951 @@ const ExportDataDefaults = {
|
|
|
492
584
|
|
|
493
585
|
|
|
494
586
|
|
|
587
|
+
|
|
495
588
|
const { getOptions, setOptions } = (external_highcharts_src_js_default_default());
|
|
496
589
|
|
|
497
590
|
const { downloadURL: ExportData_downloadURL } = Extensions_DownloadURL;
|
|
498
591
|
|
|
499
592
|
|
|
500
|
-
const { doc: ExportData_doc, win: ExportData_win } = (external_highcharts_src_js_default_default());
|
|
593
|
+
const { composed, doc: ExportData_doc, win: ExportData_win } = (external_highcharts_src_js_default_default());
|
|
501
594
|
|
|
502
|
-
const { addEvent, defined, extend, find, fireEvent, isNumber, pick } = (external_highcharts_src_js_default_default());
|
|
595
|
+
const { addEvent, defined, extend, find, fireEvent, isNumber, pick, pushUnique } = (external_highcharts_src_js_default_default());
|
|
503
596
|
/* *
|
|
504
597
|
*
|
|
505
|
-
*
|
|
598
|
+
* Composition
|
|
506
599
|
*
|
|
507
600
|
* */
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
*
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
*/
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
601
|
+
var ExportData;
|
|
602
|
+
(function (ExportData) {
|
|
603
|
+
/* *
|
|
604
|
+
*
|
|
605
|
+
* Declarations
|
|
606
|
+
*
|
|
607
|
+
* */
|
|
608
|
+
/* *
|
|
609
|
+
*
|
|
610
|
+
* Functions
|
|
611
|
+
*
|
|
612
|
+
* */
|
|
613
|
+
/**
|
|
614
|
+
* Composition function.
|
|
615
|
+
*
|
|
616
|
+
* @private
|
|
617
|
+
* @function Highcharts.Exporting#compose
|
|
618
|
+
*
|
|
619
|
+
* @param {ChartClass} ChartClass
|
|
620
|
+
* Chart class.
|
|
621
|
+
* @param {ExportingClass} ExportingClass
|
|
622
|
+
* Exporting class.
|
|
623
|
+
* @param {SeriesClass} SeriesClass
|
|
624
|
+
* Series class.
|
|
625
|
+
*
|
|
626
|
+
* @requires modules/exporting
|
|
627
|
+
* @requires modules/export-data
|
|
628
|
+
*/
|
|
629
|
+
function compose(ChartClass, ExportingClass, SeriesClass) {
|
|
630
|
+
// Check the composition registry for the Exporting
|
|
631
|
+
if (!pushUnique(composed, 'ExportData')) {
|
|
632
|
+
return;
|
|
633
|
+
}
|
|
634
|
+
// Adding wrappers for the deprecated functions
|
|
635
|
+
extend((external_highcharts_src_js_default_Chart_default()).prototype, {
|
|
636
|
+
downloadCSV: function () {
|
|
637
|
+
return this.exporting?.downloadCSV();
|
|
638
|
+
},
|
|
639
|
+
downloadXLS: function () {
|
|
640
|
+
return this.exporting?.downloadXLS();
|
|
641
|
+
},
|
|
642
|
+
getCSV: function (useLocalDecimalPoint) {
|
|
643
|
+
return this.exporting?.getCSV(useLocalDecimalPoint);
|
|
644
|
+
},
|
|
645
|
+
getDataRows: function (multiLevelHeaders) {
|
|
646
|
+
return this.exporting?.getDataRows(multiLevelHeaders);
|
|
647
|
+
},
|
|
648
|
+
getTable: function (useLocalDecimalPoint) {
|
|
649
|
+
return this.exporting?.getTable(useLocalDecimalPoint);
|
|
650
|
+
},
|
|
651
|
+
getTableAST: function (useLocalDecimalPoint) {
|
|
652
|
+
return this.exporting?.getTableAST(useLocalDecimalPoint);
|
|
653
|
+
},
|
|
654
|
+
hideData: function () {
|
|
655
|
+
return this.exporting?.hideData();
|
|
656
|
+
},
|
|
657
|
+
toggleDataTable: function (show) {
|
|
658
|
+
return this.exporting?.toggleDataTable(show);
|
|
659
|
+
},
|
|
660
|
+
viewData: function () {
|
|
661
|
+
return this.exporting?.viewData();
|
|
528
662
|
}
|
|
529
663
|
});
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
*/
|
|
559
|
-
function chartDownloadXLS() {
|
|
560
|
-
wrapLoading.call(this, () => {
|
|
561
|
-
const uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
|
|
562
|
-
'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
|
|
563
|
-
'xmlns="http://www.w3.org/TR/REC-html40">' +
|
|
564
|
-
'<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
|
|
565
|
-
'<x:ExcelWorksheets><x:ExcelWorksheet>' +
|
|
566
|
-
'<x:Name>Ark1</x:Name>' +
|
|
567
|
-
'<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>' +
|
|
568
|
-
'</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
|
|
569
|
-
'</xml><![endif]-->' +
|
|
570
|
-
'<style>td{border:none;font-family: Calibri, sans-serif;} ' +
|
|
571
|
-
'.number{mso-number-format:"0.00";} ' +
|
|
572
|
-
'.text{ mso-number-format:"\@";}</style>' +
|
|
573
|
-
'<meta name=ProgId content=Excel.Sheet>' +
|
|
574
|
-
'<meta charset=UTF-8>' +
|
|
575
|
-
'</head><body>' +
|
|
576
|
-
this.getTable(true) +
|
|
577
|
-
'</body></html>', base64 = function (s) {
|
|
578
|
-
return ExportData_win.btoa(unescape(encodeURIComponent(s))); // #50
|
|
579
|
-
};
|
|
580
|
-
ExportData_downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
|
|
581
|
-
uri + base64(template), this.getFilename() + '.xls');
|
|
582
|
-
});
|
|
583
|
-
}
|
|
584
|
-
/**
|
|
585
|
-
* Export-data module required. Returns the current chart data as a CSV string.
|
|
586
|
-
*
|
|
587
|
-
* @function Highcharts.Chart#getCSV
|
|
588
|
-
*
|
|
589
|
-
* @param {boolean} [useLocalDecimalPoint]
|
|
590
|
-
* Whether to use the local decimal point as detected from the browser.
|
|
591
|
-
* This makes it easier to export data to Excel in the same locale as the
|
|
592
|
-
* user is.
|
|
593
|
-
*
|
|
594
|
-
* @return {string}
|
|
595
|
-
* CSV representation of the data
|
|
596
|
-
*/
|
|
597
|
-
function chartGetCSV(useLocalDecimalPoint) {
|
|
598
|
-
let csv = '';
|
|
599
|
-
const rows = this.getDataRows(), csvOptions = this.options.exporting.csv, decimalPoint = pick(csvOptions.decimalPoint, csvOptions.itemDelimiter !== ',' && useLocalDecimalPoint ?
|
|
600
|
-
(1.1).toLocaleString()[1] :
|
|
601
|
-
'.'),
|
|
602
|
-
// Use ';' for direct to Excel
|
|
603
|
-
itemDelimiter = pick(csvOptions.itemDelimiter, decimalPoint === ',' ? ';' : ','),
|
|
604
|
-
// '\n' isn't working with the js csv data extraction
|
|
605
|
-
lineDelimiter = csvOptions.lineDelimiter;
|
|
606
|
-
// Transform the rows to CSV
|
|
607
|
-
rows.forEach((row, i) => {
|
|
608
|
-
let val = '', j = row.length;
|
|
609
|
-
while (j--) {
|
|
610
|
-
val = row[j];
|
|
611
|
-
if (typeof val === 'string') {
|
|
612
|
-
val = `"${val}"`;
|
|
664
|
+
const exportingProto = ExportingClass.prototype;
|
|
665
|
+
if (!exportingProto.downloadCSV) {
|
|
666
|
+
// Add an event listener to handle the showTable option
|
|
667
|
+
addEvent(ChartClass, 'afterViewData', onChartAfterViewData);
|
|
668
|
+
addEvent(ChartClass, 'render', onChartRenderer);
|
|
669
|
+
addEvent(ChartClass, 'destroy', onChartDestroy);
|
|
670
|
+
// Adding functions to the Exporting prototype
|
|
671
|
+
exportingProto.downloadCSV = downloadCSV;
|
|
672
|
+
exportingProto.downloadXLS = downloadXLS;
|
|
673
|
+
exportingProto.getCSV = getCSV;
|
|
674
|
+
exportingProto.getDataRows = getDataRows;
|
|
675
|
+
exportingProto.getTable = getTable;
|
|
676
|
+
exportingProto.getTableAST = getTableAST;
|
|
677
|
+
exportingProto.hideData = hideData;
|
|
678
|
+
exportingProto.toggleDataTable = toggleDataTable;
|
|
679
|
+
exportingProto.wrapLoading = wrapLoading;
|
|
680
|
+
exportingProto.viewData = viewData;
|
|
681
|
+
// Update with defaults of the export data module
|
|
682
|
+
setOptions(ExportData_ExportDataDefaults);
|
|
683
|
+
// Additionaly, extend the menuItems with the export data variants
|
|
684
|
+
const menuItems = getOptions().exporting?.buttons?.contextButton?.menuItems;
|
|
685
|
+
menuItems && menuItems.push('separator', 'downloadCSV', 'downloadXLS', 'viewData');
|
|
686
|
+
const { arearange: AreaRangeSeries, gantt: GanttSeries, map: MapSeries, mapbubble: MapBubbleSeries, treemap: TreemapSeries, xrange: XRangeSeries } = SeriesClass.types;
|
|
687
|
+
if (AreaRangeSeries) {
|
|
688
|
+
AreaRangeSeries.prototype.keyToAxis = {
|
|
689
|
+
low: 'y',
|
|
690
|
+
high: 'y'
|
|
691
|
+
};
|
|
613
692
|
}
|
|
614
|
-
if (
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
693
|
+
if (GanttSeries) {
|
|
694
|
+
GanttSeries.prototype.exportKey = 'name';
|
|
695
|
+
GanttSeries.prototype.keyToAxis = {
|
|
696
|
+
start: 'x',
|
|
697
|
+
end: 'x'
|
|
698
|
+
};
|
|
618
699
|
}
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
}
|
|
633
|
-
});
|
|
634
|
-
return csv;
|
|
635
|
-
}
|
|
636
|
-
/**
|
|
637
|
-
* Export-data module required. Returns a two-dimensional array containing the
|
|
638
|
-
* current chart data.
|
|
639
|
-
*
|
|
640
|
-
* @function Highcharts.Chart#getDataRows
|
|
641
|
-
*
|
|
642
|
-
* @param {boolean} [multiLevelHeaders]
|
|
643
|
-
* Use multilevel headers for the rows by default. Adds an extra row with
|
|
644
|
-
* top level headers. If a custom columnHeaderFormatter is defined, this
|
|
645
|
-
* can override the behavior.
|
|
646
|
-
*
|
|
647
|
-
* @return {Array<Array<(number|string)>>}
|
|
648
|
-
* The current chart data
|
|
649
|
-
*
|
|
650
|
-
* @emits Highcharts.Chart#event:exportData
|
|
651
|
-
*/
|
|
652
|
-
function chartGetDataRows(multiLevelHeaders) {
|
|
653
|
-
const hasParallelCoords = this.hasParallelCoordinates, time = this.time, csvOptions = ((this.options.exporting && this.options.exporting.csv) || {}), xAxes = this.xAxis, rows = {}, rowArr = [], topLevelColumnTitles = [], columnTitles = [], langOptions = this.options.lang, exportDataOptions = langOptions.exportData, categoryHeader = exportDataOptions.categoryHeader, categoryDatetimeHeader = exportDataOptions.categoryDatetimeHeader,
|
|
654
|
-
// Options
|
|
655
|
-
columnHeaderFormatter = function (item, key, keyLength) {
|
|
656
|
-
if (csvOptions.columnHeaderFormatter) {
|
|
657
|
-
const s = csvOptions.columnHeaderFormatter(item, key, keyLength);
|
|
658
|
-
if (s !== false) {
|
|
659
|
-
return s;
|
|
700
|
+
if (MapSeries) {
|
|
701
|
+
MapSeries.prototype.exportKey = 'name';
|
|
702
|
+
}
|
|
703
|
+
if (MapBubbleSeries) {
|
|
704
|
+
MapBubbleSeries.prototype.exportKey = 'name';
|
|
705
|
+
}
|
|
706
|
+
if (TreemapSeries) {
|
|
707
|
+
TreemapSeries.prototype.exportKey = 'name';
|
|
708
|
+
}
|
|
709
|
+
if (XRangeSeries) {
|
|
710
|
+
XRangeSeries.prototype.keyToAxis = {
|
|
711
|
+
x2: 'x'
|
|
712
|
+
};
|
|
660
713
|
}
|
|
661
714
|
}
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
715
|
+
}
|
|
716
|
+
ExportData.compose = compose;
|
|
717
|
+
/**
|
|
718
|
+
* Generates a data URL of CSV for local download in the browser. This is
|
|
719
|
+
* the default action for a click on the 'Download CSV' button.
|
|
720
|
+
*
|
|
721
|
+
* See {@link Highcharts.Exporting#getCSV} to get the CSV data itself.
|
|
722
|
+
*
|
|
723
|
+
* @function Highcharts.Exporting#downloadCSV
|
|
724
|
+
*
|
|
725
|
+
* @requires modules/exporting
|
|
726
|
+
* @requires modules/export-data
|
|
727
|
+
*/
|
|
728
|
+
function downloadCSV() {
|
|
729
|
+
this.wrapLoading(() => {
|
|
730
|
+
const csv = this.getCSV(true);
|
|
731
|
+
ExportData_downloadURL(getBlobFromContent(csv, 'text/csv') ||
|
|
732
|
+
'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
|
|
733
|
+
});
|
|
734
|
+
}
|
|
735
|
+
/**
|
|
736
|
+
* Generates a data URL of an XLS document for local download in the
|
|
737
|
+
* browser. This is the default action for a click on the 'Download XLS'
|
|
738
|
+
* button.
|
|
739
|
+
*
|
|
740
|
+
* See {@link Highcharts.Exporting#getTable} to get the table data itself.
|
|
741
|
+
*
|
|
742
|
+
* @function Highcharts.Exporting#downloadXLS
|
|
743
|
+
*
|
|
744
|
+
* @requires modules/exporting
|
|
745
|
+
* @requires modules/export-data
|
|
746
|
+
*/
|
|
747
|
+
function downloadXLS() {
|
|
748
|
+
this.wrapLoading(() => {
|
|
749
|
+
const uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
|
|
750
|
+
'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
|
|
751
|
+
'xmlns="http://www.w3.org/TR/REC-html40">' +
|
|
752
|
+
'<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
|
|
753
|
+
'<x:ExcelWorksheets><x:ExcelWorksheet>' +
|
|
754
|
+
'<x:Name>Ark1</x:Name>' +
|
|
755
|
+
'<x:WorksheetOptions><x:DisplayGridlines/>' +
|
|
756
|
+
'</x:WorksheetOptions>' +
|
|
757
|
+
'</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
|
|
758
|
+
'</xml><![endif]-->' +
|
|
759
|
+
'<style>td{border:none;font-family: Calibri, sans-serif;} ' +
|
|
760
|
+
'.number{mso-number-format:"0.00";} ' +
|
|
761
|
+
'.text{ mso-number-format:"\@";}</style>' +
|
|
762
|
+
'<meta name=ProgId content=Excel.Sheet>' +
|
|
763
|
+
'<meta charset=UTF-8>' +
|
|
764
|
+
'</head><body>' +
|
|
765
|
+
this.getTable(true) +
|
|
766
|
+
'</body></html>', base64 = function (s) {
|
|
767
|
+
return ExportData_win.btoa(unescape(encodeURIComponent(s))); // #50
|
|
677
768
|
};
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
},
|
|
681
|
-
// Map the categories for value axes
|
|
682
|
-
getCategoryAndDateTimeMap = function (series, pointArrayMap, pIdx) {
|
|
683
|
-
const categoryMap = {}, dateTimeValueAxisMap = {};
|
|
684
|
-
pointArrayMap.forEach(function (prop) {
|
|
685
|
-
const axisName = ((series.keyToAxis && series.keyToAxis[prop]) ||
|
|
686
|
-
prop) + 'Axis',
|
|
687
|
-
// Points in parallel coordinates refers to all yAxis
|
|
688
|
-
// not only `series.yAxis`
|
|
689
|
-
axis = isNumber(pIdx) ?
|
|
690
|
-
series.chart[axisName][pIdx] :
|
|
691
|
-
series[axisName];
|
|
692
|
-
categoryMap[prop] = (axis && axis.categories) || [];
|
|
693
|
-
dateTimeValueAxisMap[prop] = (axis && axis.dateTime);
|
|
769
|
+
ExportData_downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
|
|
770
|
+
uri + base64(template), this.getFilename() + '.xls');
|
|
694
771
|
});
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
772
|
+
}
|
|
773
|
+
/**
|
|
774
|
+
* Get a blob object from content, if blob is supported.
|
|
775
|
+
*
|
|
776
|
+
* @private
|
|
777
|
+
* @function Highcharts.getBlobFromContent
|
|
778
|
+
*
|
|
779
|
+
* @param {string} content
|
|
780
|
+
* The content to create the blob from.
|
|
781
|
+
* @param {string} type
|
|
782
|
+
* The type of the content.
|
|
783
|
+
*
|
|
784
|
+
* @return {string | undefined}
|
|
785
|
+
* The blob object, or undefined if not supported.
|
|
786
|
+
*
|
|
787
|
+
* @requires modules/exporting
|
|
788
|
+
* @requires modules/export-data
|
|
789
|
+
*/
|
|
790
|
+
function getBlobFromContent(content, type) {
|
|
791
|
+
const nav = ExportData_win.navigator, domurl = ExportData_win.URL || ExportData_win.webkitURL || ExportData_win;
|
|
792
|
+
try {
|
|
793
|
+
// MS specific
|
|
794
|
+
if ((nav.msSaveOrOpenBlob) && ExportData_win.MSBlobBuilder) {
|
|
795
|
+
const blob = new ExportData_win.MSBlobBuilder();
|
|
796
|
+
blob.append(content);
|
|
797
|
+
return blob.getBlob('image/svg+xml');
|
|
798
|
+
}
|
|
799
|
+
return domurl.createObjectURL(new ExportData_win.Blob(['\uFEFF' + content], // #7084
|
|
800
|
+
{ type: type }));
|
|
801
|
+
}
|
|
802
|
+
catch {
|
|
803
|
+
// Ignore
|
|
711
804
|
}
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
805
|
+
}
|
|
806
|
+
/**
|
|
807
|
+
* Returns the current chart data as a CSV string.
|
|
808
|
+
*
|
|
809
|
+
* @function Highcharts.Exporting#getCSV
|
|
810
|
+
*
|
|
811
|
+
* @param {boolean} [useLocalDecimalPoint]
|
|
812
|
+
* Whether to use the local decimal point as detected from the browser. This
|
|
813
|
+
* makes it easier to export data to Excel in the same locale as the user
|
|
814
|
+
* is.
|
|
815
|
+
*
|
|
816
|
+
* @return {string}
|
|
817
|
+
* CSV representation of the data.
|
|
818
|
+
*
|
|
819
|
+
* @requires modules/exporting
|
|
820
|
+
* @requires modules/export-data
|
|
821
|
+
*/
|
|
822
|
+
function getCSV(useLocalDecimalPoint) {
|
|
823
|
+
let csv = '';
|
|
824
|
+
const rows = this.getDataRows(), csvOptions = this.options?.csv, decimalPoint = pick(csvOptions?.decimalPoint, csvOptions?.itemDelimiter !== ',' && useLocalDecimalPoint ?
|
|
825
|
+
(1.1).toLocaleString()[1] :
|
|
826
|
+
'.'),
|
|
827
|
+
// Use ';' for direct to Excel
|
|
828
|
+
itemDelimiter = pick(csvOptions?.itemDelimiter, decimalPoint === ',' ? ';' : ','),
|
|
829
|
+
// '\n' isn't working with the js csv data extraction
|
|
830
|
+
lineDelimiter = csvOptions?.lineDelimiter;
|
|
831
|
+
// Transform the rows to CSV
|
|
832
|
+
rows.forEach((row, i) => {
|
|
833
|
+
let val = '', j = row.length;
|
|
834
|
+
while (j--) {
|
|
835
|
+
val = row[j];
|
|
836
|
+
if (typeof val === 'string') {
|
|
837
|
+
val = `"${val}"`;
|
|
838
|
+
}
|
|
839
|
+
if (typeof val === 'number') {
|
|
840
|
+
if (decimalPoint !== '.') {
|
|
841
|
+
val = val.toString().replace('.', decimalPoint);
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
row[j] = val;
|
|
730
845
|
}
|
|
731
|
-
//
|
|
732
|
-
//
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
846
|
+
// The first row is the header - it defines the number of columns.
|
|
847
|
+
// Empty columns between not-empty cells are covered in the
|
|
848
|
+
// getDataRows method.
|
|
849
|
+
// Now add empty values only to the end of the row so all rows have
|
|
850
|
+
// the same number of columns, #17186
|
|
851
|
+
row.length = rows.length ? rows[0].length : 0;
|
|
852
|
+
// Add the values
|
|
853
|
+
csv += row.join(itemDelimiter);
|
|
854
|
+
// Add the line delimiter
|
|
855
|
+
if (i < rows.length - 1) {
|
|
856
|
+
csv += lineDelimiter;
|
|
857
|
+
}
|
|
858
|
+
});
|
|
859
|
+
return csv;
|
|
860
|
+
}
|
|
861
|
+
/**
|
|
862
|
+
* Returns a two-dimensional array containing the current chart data.
|
|
863
|
+
*
|
|
864
|
+
* @function Highcharts.Exporting#getDataRows
|
|
865
|
+
*
|
|
866
|
+
* @param {boolean} [multiLevelHeaders]
|
|
867
|
+
* Use multilevel headers for the rows by default. Adds an extra row with
|
|
868
|
+
* top level headers. If a custom columnHeaderFormatter is defined, this can
|
|
869
|
+
* override the behavior.
|
|
870
|
+
*
|
|
871
|
+
* @return {Array<Array<(number | string)>>}
|
|
872
|
+
* The current chart data
|
|
873
|
+
*
|
|
874
|
+
* @emits Highcharts.Chart#event:exportData
|
|
875
|
+
*
|
|
876
|
+
* @requires modules/exporting
|
|
877
|
+
* @requires modules/export-data
|
|
878
|
+
*/
|
|
879
|
+
function getDataRows(multiLevelHeaders) {
|
|
880
|
+
const chart = this.chart, hasParallelCoords = chart.hasParallelCoordinates, time = chart.time, csvOptions = this.options?.csv || {}, xAxes = chart.xAxis, rows = {}, rowArr = [], topLevelColumnTitles = [], columnTitles = [], langOptions = chart.options.lang, exportDataOptions = langOptions.exportData, categoryHeader = exportDataOptions?.categoryHeader, categoryDatetimeHeader = exportDataOptions?.categoryDatetimeHeader,
|
|
881
|
+
// Options
|
|
882
|
+
columnHeaderFormatter = function (item, key, keyLength) {
|
|
883
|
+
if (csvOptions.columnHeaderFormatter) {
|
|
884
|
+
const s = csvOptions.columnHeaderFormatter(item, key, keyLength);
|
|
885
|
+
if (s !== false) {
|
|
886
|
+
return s;
|
|
740
887
|
}
|
|
741
|
-
j++;
|
|
742
888
|
}
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
889
|
+
if (!item && categoryHeader) {
|
|
890
|
+
return categoryHeader;
|
|
891
|
+
}
|
|
892
|
+
if (!item.bindAxes &&
|
|
893
|
+
categoryDatetimeHeader &&
|
|
894
|
+
categoryHeader) {
|
|
895
|
+
return (item.options.title &&
|
|
896
|
+
item.options.title.text) || (item.dateTime ?
|
|
897
|
+
categoryDatetimeHeader :
|
|
898
|
+
categoryHeader);
|
|
899
|
+
}
|
|
900
|
+
if (multiLevelHeaders) {
|
|
901
|
+
return {
|
|
902
|
+
columnTitle: ((keyLength || 0) > 1 ?
|
|
903
|
+
key :
|
|
904
|
+
item.name) || '',
|
|
905
|
+
topLevelColumnTitle: item.name
|
|
906
|
+
};
|
|
907
|
+
}
|
|
908
|
+
return item.name + ((keyLength || 0) > 1 ? ' (' + key + ')' : '');
|
|
909
|
+
},
|
|
910
|
+
// Map the categories for value axes
|
|
911
|
+
getCategoryAndDateTimeMap = function (series, pointArrayMap, pIdx) {
|
|
912
|
+
const categoryMap = {}, dateTimeValueAxisMap = {};
|
|
913
|
+
pointArrayMap.forEach(function (prop) {
|
|
914
|
+
const axisName = ((series.keyToAxis && series.keyToAxis[prop]) ||
|
|
915
|
+
prop) + 'Axis',
|
|
916
|
+
// Points in parallel coordinates refers to all yAxis
|
|
917
|
+
// not only `series.yAxis`
|
|
918
|
+
axis = isNumber(pIdx) ?
|
|
919
|
+
series.chart[axisName][pIdx] :
|
|
920
|
+
series[axisName];
|
|
921
|
+
categoryMap[prop] = (axis && axis.categories) || [];
|
|
922
|
+
dateTimeValueAxisMap[prop] = (axis && axis.dateTime);
|
|
923
|
+
});
|
|
924
|
+
return {
|
|
925
|
+
categoryMap: categoryMap,
|
|
926
|
+
dateTimeValueAxisMap: dateTimeValueAxisMap
|
|
749
927
|
};
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
928
|
+
},
|
|
929
|
+
// Create point array depends if xAxis is category
|
|
930
|
+
// or point.name is defined #13293
|
|
931
|
+
getPointArray = function (series, xAxis) {
|
|
932
|
+
const pointArrayMap = series.pointArrayMap || ['y'], namedPoints = series.data.some((d) => (typeof d.y !== 'undefined') && d.name);
|
|
933
|
+
// If there are points with a name, we also want the x value in
|
|
934
|
+
// the table
|
|
935
|
+
if (namedPoints &&
|
|
936
|
+
xAxis &&
|
|
937
|
+
!xAxis.categories &&
|
|
938
|
+
series.exportKey !== 'name') {
|
|
939
|
+
return ['x', ...pointArrayMap];
|
|
940
|
+
}
|
|
941
|
+
return pointArrayMap;
|
|
942
|
+
}, xAxisIndices = [];
|
|
943
|
+
let xAxis, dataRows, columnTitleObj, i = 0, // Loop the series and index values
|
|
944
|
+
x, xTitle;
|
|
945
|
+
chart.series.forEach(function (series) {
|
|
946
|
+
const keys = series.options.keys, xAxis = series.xAxis, pointArrayMap = keys || getPointArray(series, xAxis), valueCount = pointArrayMap.length, xTaken = !series.requireSorting && {}, xAxisIndex = xAxes.indexOf(xAxis);
|
|
947
|
+
let categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap), mockSeries, j;
|
|
948
|
+
if (series.options.includeInDataExport !== false &&
|
|
949
|
+
!series.options.isInternal &&
|
|
950
|
+
series.visible !== false // #55
|
|
951
|
+
) {
|
|
952
|
+
// Build a lookup for X axis index and the position of the first
|
|
953
|
+
// series that belongs to that X axis. Includes -1 for non-axis
|
|
954
|
+
// series types like pies.
|
|
955
|
+
if (!find(xAxisIndices, function (index) {
|
|
956
|
+
return index[0] === xAxisIndex;
|
|
957
|
+
})) {
|
|
958
|
+
xAxisIndices.push([xAxisIndex, i]);
|
|
759
959
|
}
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
key = (mockPoint.x ?? '') + ',' + name;
|
|
960
|
+
// Compute the column headers and top level headers, usually the
|
|
961
|
+
// same as series names
|
|
763
962
|
j = 0;
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
if (xTaken[key]) {
|
|
772
|
-
key += '|' + pIdx;
|
|
963
|
+
while (j < valueCount) {
|
|
964
|
+
columnTitleObj = columnHeaderFormatter(series, pointArrayMap[j], pointArrayMap.length);
|
|
965
|
+
columnTitles.push(columnTitleObj.columnTitle ||
|
|
966
|
+
columnTitleObj);
|
|
967
|
+
if (multiLevelHeaders) {
|
|
968
|
+
topLevelColumnTitles.push(columnTitleObj.topLevelColumnTitle ||
|
|
969
|
+
columnTitleObj);
|
|
773
970
|
}
|
|
774
|
-
|
|
971
|
+
j++;
|
|
775
972
|
}
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
973
|
+
mockSeries = {
|
|
974
|
+
chart: series.chart,
|
|
975
|
+
autoIncrement: series.autoIncrement,
|
|
976
|
+
options: series.options,
|
|
977
|
+
pointArrayMap: series.pointArrayMap,
|
|
978
|
+
index: series.index
|
|
979
|
+
};
|
|
980
|
+
// Export directly from options.data because we need the
|
|
981
|
+
// uncropped data (#7913), and we need to support Boost (#7026).
|
|
982
|
+
series.options.data?.forEach(function eachData(options, pIdx) {
|
|
983
|
+
const mockPoint = { series: mockSeries };
|
|
984
|
+
let key, prop, val;
|
|
985
|
+
// In parallel coordinates chart, each data point is
|
|
986
|
+
// connected to a separate yAxis, conform this
|
|
987
|
+
if (hasParallelCoords) {
|
|
988
|
+
categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap, pIdx);
|
|
783
989
|
}
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
if (
|
|
795
|
-
if (
|
|
796
|
-
|
|
797
|
-
rows[modifiedKey].xValues = [];
|
|
798
|
-
rows[modifiedKey].pointers = [];
|
|
990
|
+
series.pointClass.prototype.applyOptions.apply(mockPoint, [options]);
|
|
991
|
+
const name = series.data[pIdx] && series.data[pIdx].name;
|
|
992
|
+
key = (mockPoint.x ?? '') + ',' + name;
|
|
993
|
+
j = 0;
|
|
994
|
+
// Pies, funnels, geo maps etc. use point name in X row
|
|
995
|
+
if (!xAxis ||
|
|
996
|
+
series.exportKey === 'name' ||
|
|
997
|
+
(!hasParallelCoords && xAxis && xAxis.hasNames) && name) {
|
|
998
|
+
key = name;
|
|
999
|
+
}
|
|
1000
|
+
if (xTaken) {
|
|
1001
|
+
if (xTaken[key]) {
|
|
1002
|
+
key += '|' + pIdx;
|
|
799
1003
|
}
|
|
800
|
-
key =
|
|
1004
|
+
xTaken[key] = true;
|
|
801
1005
|
}
|
|
802
|
-
rows[
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
time.dateFormat(csvOptions.dateFormat, val) :
|
|
816
|
-
null,
|
|
817
|
-
// Linear/log yAxis
|
|
818
|
-
val);
|
|
819
|
-
j++;
|
|
820
|
-
}
|
|
821
|
-
});
|
|
822
|
-
i = i + j;
|
|
823
|
-
}
|
|
824
|
-
});
|
|
825
|
-
// Make a sortable array
|
|
826
|
-
for (x in rows) {
|
|
827
|
-
if (Object.hasOwnProperty.call(rows, x)) {
|
|
828
|
-
rowArr.push(rows[x]);
|
|
829
|
-
}
|
|
830
|
-
}
|
|
831
|
-
let xAxisIndex, column;
|
|
832
|
-
// Add computed column headers and top level headers to final row set
|
|
833
|
-
dataRows = multiLevelHeaders ? [topLevelColumnTitles, columnTitles] :
|
|
834
|
-
[columnTitles];
|
|
835
|
-
i = xAxisIndices.length;
|
|
836
|
-
while (i--) { // Start from end to splice in
|
|
837
|
-
xAxisIndex = xAxisIndices[i][0];
|
|
838
|
-
column = xAxisIndices[i][1];
|
|
839
|
-
xAxis = xAxes[xAxisIndex];
|
|
840
|
-
// Sort it by X values
|
|
841
|
-
rowArr.sort(function (// eslint-disable-line no-loop-func
|
|
842
|
-
a, b) {
|
|
843
|
-
return a.xValues[xAxisIndex] - b.xValues[xAxisIndex];
|
|
844
|
-
});
|
|
845
|
-
// Add header row
|
|
846
|
-
xTitle = columnHeaderFormatter(xAxis);
|
|
847
|
-
dataRows[0].splice(column, 0, xTitle);
|
|
848
|
-
if (multiLevelHeaders && dataRows[1]) {
|
|
849
|
-
// If using multi level headers, we just added top level header.
|
|
850
|
-
// Also add for sub level
|
|
851
|
-
dataRows[1].splice(column, 0, xTitle);
|
|
852
|
-
}
|
|
853
|
-
// Add the category column
|
|
854
|
-
rowArr.forEach(function (// eslint-disable-line no-loop-func
|
|
855
|
-
row) {
|
|
856
|
-
let category = row.name;
|
|
857
|
-
if (xAxis && !defined(category)) {
|
|
858
|
-
if (xAxis.dateTime) {
|
|
859
|
-
if (row.x instanceof Date) {
|
|
860
|
-
row.x = row.x.getTime();
|
|
1006
|
+
if (!rows[key]) {
|
|
1007
|
+
rows[key] = [];
|
|
1008
|
+
rows[key].xValues = [];
|
|
1009
|
+
// ES5 replacement for Array.from / fill.
|
|
1010
|
+
const arr = [];
|
|
1011
|
+
for (let i = 0; i < series.chart.series.length; i++) {
|
|
1012
|
+
arr[i] = 0;
|
|
1013
|
+
}
|
|
1014
|
+
// Create pointers array, holding information how many
|
|
1015
|
+
// duplicates of specific x occurs in each series.
|
|
1016
|
+
// Used for creating rows with duplicates.
|
|
1017
|
+
rows[key].pointers = arr;
|
|
1018
|
+
rows[key].pointers[series.index] = 1;
|
|
861
1019
|
}
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
1020
|
+
else {
|
|
1021
|
+
// Handle duplicates (points with the same x), by
|
|
1022
|
+
// creating extra rows based on pointers for better
|
|
1023
|
+
// performance.
|
|
1024
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
1025
|
+
const modifiedKey = `${key},${rows[key].pointers[series.index]}`, originalKey = key;
|
|
1026
|
+
if (rows[key].pointers[series.index]) {
|
|
1027
|
+
if (!rows[modifiedKey]) {
|
|
1028
|
+
rows[modifiedKey] = [];
|
|
1029
|
+
rows[modifiedKey].xValues = [];
|
|
1030
|
+
rows[modifiedKey].pointers = [];
|
|
1031
|
+
}
|
|
1032
|
+
key = modifiedKey;
|
|
1033
|
+
}
|
|
1034
|
+
rows[originalKey].pointers[series.index] += 1;
|
|
1035
|
+
}
|
|
1036
|
+
rows[key].x = mockPoint.x;
|
|
1037
|
+
rows[key].name = name;
|
|
1038
|
+
rows[key].xValues[xAxisIndex] = mockPoint.x;
|
|
1039
|
+
while (j < valueCount) {
|
|
1040
|
+
prop = pointArrayMap[j]; // `y`, `z` etc
|
|
1041
|
+
val =
|
|
1042
|
+
series.pointClass.prototype.getNestedProperty.apply(mockPoint, [prop]);
|
|
1043
|
+
// Allow values from nested properties (#20470)
|
|
1044
|
+
rows[key][i + j] = pick(
|
|
1045
|
+
// Y axis category if present
|
|
1046
|
+
categoryAndDatetimeMap.categoryMap[prop][val],
|
|
1047
|
+
// Datetime yAxis
|
|
1048
|
+
categoryAndDatetimeMap.dateTimeValueAxisMap[prop] ?
|
|
1049
|
+
time.dateFormat(csvOptions.dateFormat, val) :
|
|
1050
|
+
null,
|
|
1051
|
+
// Linear/log yAxis
|
|
1052
|
+
val);
|
|
1053
|
+
j++;
|
|
1054
|
+
}
|
|
1055
|
+
});
|
|
1056
|
+
i = i + j;
|
|
870
1057
|
}
|
|
871
|
-
// Add the X/date/category
|
|
872
|
-
row.splice(column, 0, category);
|
|
873
1058
|
});
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
}
|
|
879
|
-
/**
|
|
880
|
-
* Export-data module required. Build a HTML table with the chart's current
|
|
881
|
-
* data.
|
|
882
|
-
*
|
|
883
|
-
* @sample highcharts/export-data/viewdata/
|
|
884
|
-
* View the data from the export menu
|
|
885
|
-
*
|
|
886
|
-
* @function Highcharts.Chart#getTable
|
|
887
|
-
*
|
|
888
|
-
* @param {boolean} [useLocalDecimalPoint]
|
|
889
|
-
* Whether to use the local decimal point as detected from the browser.
|
|
890
|
-
* This makes it easier to export data to Excel in the same locale as the
|
|
891
|
-
* user is.
|
|
892
|
-
*
|
|
893
|
-
* @return {string}
|
|
894
|
-
* HTML representation of the data.
|
|
895
|
-
*
|
|
896
|
-
* @emits Highcharts.Chart#event:afterGetTable
|
|
897
|
-
*/
|
|
898
|
-
function chartGetTable(useLocalDecimalPoint) {
|
|
899
|
-
const serialize = (node) => {
|
|
900
|
-
if (!node.tagName || node.tagName === '#text') {
|
|
901
|
-
// Text node
|
|
902
|
-
return node.textContent || '';
|
|
1059
|
+
// Make a sortable array
|
|
1060
|
+
for (x in rows) {
|
|
1061
|
+
if (Object.hasOwnProperty.call(rows, x)) {
|
|
1062
|
+
rowArr.push(rows[x]);
|
|
1063
|
+
}
|
|
903
1064
|
}
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
1065
|
+
let xAxisIndex, column;
|
|
1066
|
+
// Add computed column headers and top level headers to final row set
|
|
1067
|
+
dataRows = multiLevelHeaders ? [topLevelColumnTitles, columnTitles] :
|
|
1068
|
+
[columnTitles];
|
|
1069
|
+
i = xAxisIndices.length;
|
|
1070
|
+
while (i--) { // Start from end to splice in
|
|
1071
|
+
xAxisIndex = xAxisIndices[i][0];
|
|
1072
|
+
column = xAxisIndices[i][1];
|
|
1073
|
+
xAxis = xAxes[xAxisIndex];
|
|
1074
|
+
// Sort it by X values
|
|
1075
|
+
rowArr.sort(function (// eslint-disable-line no-loop-func
|
|
1076
|
+
a, b) {
|
|
1077
|
+
return a.xValues[xAxisIndex] - b.xValues[xAxisIndex];
|
|
911
1078
|
});
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
return html;
|
|
920
|
-
};
|
|
921
|
-
const tree = this.getTableAST(useLocalDecimalPoint);
|
|
922
|
-
return serialize(tree);
|
|
923
|
-
}
|
|
924
|
-
/**
|
|
925
|
-
* Get the AST of a HTML table representing the chart data.
|
|
926
|
-
*
|
|
927
|
-
* @private
|
|
928
|
-
*
|
|
929
|
-
* @function Highcharts.Chart#getTableAST
|
|
930
|
-
*
|
|
931
|
-
* @param {boolean} [useLocalDecimalPoint]
|
|
932
|
-
* Whether to use the local decimal point as detected from the browser.
|
|
933
|
-
* This makes it easier to export data to Excel in the same locale as the
|
|
934
|
-
* user is.
|
|
935
|
-
*
|
|
936
|
-
* @return {Highcharts.ASTNode}
|
|
937
|
-
* The abstract syntax tree
|
|
938
|
-
*/
|
|
939
|
-
function chartGetTableAST(useLocalDecimalPoint) {
|
|
940
|
-
let rowLength = 0;
|
|
941
|
-
const treeChildren = [];
|
|
942
|
-
const options = this.options, decimalPoint = useLocalDecimalPoint ? (1.1).toLocaleString()[1] : '.', useMultiLevelHeaders = pick(options.exporting.useMultiLevelHeaders, true), rows = this.getDataRows(useMultiLevelHeaders), topHeaders = useMultiLevelHeaders ? rows.shift() : null, subHeaders = rows.shift(),
|
|
943
|
-
// Compare two rows for equality
|
|
944
|
-
isRowEqual = function (row1, row2) {
|
|
945
|
-
let i = row1.length;
|
|
946
|
-
if (row2.length === i) {
|
|
947
|
-
while (i--) {
|
|
948
|
-
if (row1[i] !== row2[i]) {
|
|
949
|
-
return false;
|
|
950
|
-
}
|
|
1079
|
+
// Add header row
|
|
1080
|
+
xTitle = columnHeaderFormatter(xAxis);
|
|
1081
|
+
dataRows[0].splice(column, 0, xTitle);
|
|
1082
|
+
if (multiLevelHeaders && dataRows[1]) {
|
|
1083
|
+
// If using multi level headers, we just added top level header.
|
|
1084
|
+
// Also add for sub level
|
|
1085
|
+
dataRows[1].splice(column, 0, xTitle);
|
|
951
1086
|
}
|
|
1087
|
+
// Add the category column
|
|
1088
|
+
rowArr.forEach(function (// eslint-disable-line no-loop-func
|
|
1089
|
+
row) {
|
|
1090
|
+
let category = row.name;
|
|
1091
|
+
if (xAxis && !defined(category)) {
|
|
1092
|
+
if (xAxis.dateTime) {
|
|
1093
|
+
if (row.x instanceof Date) {
|
|
1094
|
+
row.x = row.x.getTime();
|
|
1095
|
+
}
|
|
1096
|
+
category = time.dateFormat(csvOptions.dateFormat, row.x);
|
|
1097
|
+
}
|
|
1098
|
+
else if (xAxis.categories) {
|
|
1099
|
+
category = pick(xAxis.names[row.x], xAxis.categories[row.x], row.x);
|
|
1100
|
+
}
|
|
1101
|
+
else {
|
|
1102
|
+
category = row.x;
|
|
1103
|
+
}
|
|
1104
|
+
}
|
|
1105
|
+
// Add the X/date/category
|
|
1106
|
+
row.splice(column, 0, category);
|
|
1107
|
+
});
|
|
952
1108
|
}
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
1109
|
+
dataRows = dataRows.concat(rowArr);
|
|
1110
|
+
fireEvent(chart, 'exportData', { dataRows: dataRows });
|
|
1111
|
+
return dataRows;
|
|
1112
|
+
}
|
|
1113
|
+
/**
|
|
1114
|
+
* Build a HTML table with the chart's current data.
|
|
1115
|
+
*
|
|
1116
|
+
* @sample highcharts/export-data/viewdata/
|
|
1117
|
+
* View the data from the export menu
|
|
1118
|
+
*
|
|
1119
|
+
* @function Highcharts.Exporting#getTable
|
|
1120
|
+
*
|
|
1121
|
+
* @param {boolean} [useLocalDecimalPoint]
|
|
1122
|
+
* Whether to use the local decimal point as detected from the browser. This
|
|
1123
|
+
* makes it easier to export data to Excel in the same locale as the user
|
|
1124
|
+
* is.
|
|
1125
|
+
*
|
|
1126
|
+
* @return {string}
|
|
1127
|
+
* HTML representation of the data.
|
|
1128
|
+
*
|
|
1129
|
+
* @emits Highcharts.Chart#event:afterGetTable
|
|
1130
|
+
*
|
|
1131
|
+
* @requires modules/exporting
|
|
1132
|
+
* @requires modules/export-data
|
|
1133
|
+
*/
|
|
1134
|
+
function getTable(useLocalDecimalPoint) {
|
|
1135
|
+
const serialize = (node) => {
|
|
1136
|
+
if (!node.tagName || node.tagName === '#text') {
|
|
1137
|
+
// Text node
|
|
1138
|
+
return node.textContent || '';
|
|
966
1139
|
}
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
1140
|
+
const attributes = node.attributes;
|
|
1141
|
+
let html = `<${node.tagName}`;
|
|
1142
|
+
if (attributes) {
|
|
1143
|
+
Object.keys(attributes)
|
|
1144
|
+
.forEach((key) => {
|
|
1145
|
+
const value = attributes[key];
|
|
1146
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
1147
|
+
html += ` ${key}="${value}"`;
|
|
1148
|
+
});
|
|
1149
|
+
}
|
|
1150
|
+
html += '>';
|
|
1151
|
+
html += node.textContent || '';
|
|
1152
|
+
(node.children || []).forEach((child) => {
|
|
1153
|
+
html += serialize(child);
|
|
1154
|
+
});
|
|
1155
|
+
html += `</${node.tagName}>`;
|
|
1156
|
+
return html;
|
|
977
1157
|
};
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1158
|
+
const tree = this.getTableAST(useLocalDecimalPoint);
|
|
1159
|
+
return serialize(tree);
|
|
1160
|
+
}
|
|
1161
|
+
/**
|
|
1162
|
+
* Get the AST of a HTML table representing the chart data.
|
|
1163
|
+
*
|
|
1164
|
+
* @private
|
|
1165
|
+
* @function Highcharts.Exporting#getTableAST
|
|
1166
|
+
*
|
|
1167
|
+
* @param {boolean} [useLocalDecimalPoint]
|
|
1168
|
+
* Whether to use the local decimal point as detected from the browser. This
|
|
1169
|
+
* makes it easier to export data to Excel in the same locale as the user
|
|
1170
|
+
* is.
|
|
1171
|
+
*
|
|
1172
|
+
* @return {Highcharts.ASTNode}
|
|
1173
|
+
* The abstract syntax tree
|
|
1174
|
+
*
|
|
1175
|
+
* @requires modules/exporting
|
|
1176
|
+
* @requires modules/export-data
|
|
1177
|
+
*/
|
|
1178
|
+
function getTableAST(useLocalDecimalPoint) {
|
|
1179
|
+
let rowLength = 0;
|
|
1180
|
+
const treeChildren = [], exporting = this, chart = exporting.chart, options = chart.options, decimalPoint = useLocalDecimalPoint ? (1.1).toLocaleString()[1] : '.', useMultiLevelHeaders = pick(exporting.options.useMultiLevelHeaders, true), rows = exporting.getDataRows(useMultiLevelHeaders), topHeaders = useMultiLevelHeaders ? rows.shift() : null, subHeaders = rows.shift(),
|
|
1181
|
+
// Compare two rows for equality
|
|
1182
|
+
isRowEqual = function (row1, row2) {
|
|
1183
|
+
let i = row1.length;
|
|
1184
|
+
if (row2.length === i) {
|
|
1185
|
+
while (i--) {
|
|
1186
|
+
if (row1[i] !== row2[i]) {
|
|
1187
|
+
return false;
|
|
1188
|
+
}
|
|
1006
1189
|
}
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1190
|
+
}
|
|
1191
|
+
else {
|
|
1192
|
+
return false;
|
|
1193
|
+
}
|
|
1194
|
+
return true;
|
|
1195
|
+
},
|
|
1196
|
+
// Get table cell HTML from value
|
|
1197
|
+
getCellHTMLFromValue = function (tagName, classes, attributes, value) {
|
|
1198
|
+
let textContent = pick(value, ''), className = 'highcharts-text' + (classes ? ' ' + classes : '');
|
|
1199
|
+
// Convert to string if number
|
|
1200
|
+
if (typeof textContent === 'number') {
|
|
1201
|
+
textContent = chart.numberFormatter(textContent, -1, decimalPoint, tagName === 'th' ? '' : void 0);
|
|
1202
|
+
className = 'highcharts-number';
|
|
1203
|
+
}
|
|
1204
|
+
else if (!value) {
|
|
1205
|
+
className = 'highcharts-empty';
|
|
1206
|
+
}
|
|
1207
|
+
attributes = extend({ 'class': className }, attributes);
|
|
1208
|
+
return {
|
|
1209
|
+
tagName,
|
|
1210
|
+
attributes,
|
|
1211
|
+
textContent
|
|
1212
|
+
};
|
|
1213
|
+
},
|
|
1214
|
+
// Get table header markup from row data
|
|
1215
|
+
getTableHeaderHTML = function (topheaders, subheaders, rowLength) {
|
|
1216
|
+
const theadChildren = [];
|
|
1217
|
+
let i = 0, len = rowLength || subheaders && subheaders.length, next, cur, curColspan = 0, rowspan;
|
|
1218
|
+
// Clean up multiple table headers. Chart.getDataRows() returns
|
|
1219
|
+
// two levels of headers when using multilevel, not merged. We
|
|
1220
|
+
// need to merge identical headers, remove redundant headers,
|
|
1221
|
+
// and keep it all marked up nicely.
|
|
1222
|
+
if (useMultiLevelHeaders &&
|
|
1223
|
+
topheaders &&
|
|
1224
|
+
subheaders &&
|
|
1225
|
+
!isRowEqual(topheaders, subheaders)) {
|
|
1226
|
+
const trChildren = [];
|
|
1227
|
+
for (; i < len; ++i) {
|
|
1228
|
+
cur = topheaders[i];
|
|
1229
|
+
next = topheaders[i + 1];
|
|
1230
|
+
if (cur === next) {
|
|
1231
|
+
++curColspan;
|
|
1232
|
+
}
|
|
1233
|
+
else if (curColspan) {
|
|
1234
|
+
// Ended colspan
|
|
1235
|
+
// Add cur to HTML with colspan.
|
|
1236
|
+
trChildren.push(getCellHTMLFromValue('th', 'highcharts-table-topheading', {
|
|
1237
|
+
scope: 'col',
|
|
1238
|
+
colspan: curColspan + 1
|
|
1239
|
+
}, cur));
|
|
1240
|
+
curColspan = 0;
|
|
1241
|
+
}
|
|
1242
|
+
else {
|
|
1243
|
+
// Cur is standalone. If it is same as sublevel,
|
|
1244
|
+
// remove sublevel and add just toplevel.
|
|
1245
|
+
if (cur === subheaders[i]) {
|
|
1246
|
+
if (exporting.options.useRowspanHeaders) {
|
|
1247
|
+
rowspan = 2;
|
|
1248
|
+
// eslint-disable-next-line @typescript-eslint/no-array-delete
|
|
1249
|
+
delete subheaders[i];
|
|
1250
|
+
}
|
|
1251
|
+
else {
|
|
1252
|
+
rowspan = 1;
|
|
1253
|
+
subheaders[i] = '';
|
|
1254
|
+
}
|
|
1014
1255
|
}
|
|
1015
1256
|
else {
|
|
1016
1257
|
rowspan = 1;
|
|
1017
|
-
subheaders[i] = '';
|
|
1018
1258
|
}
|
|
1259
|
+
const cell = getCellHTMLFromValue('th', 'highcharts-table-topheading', { scope: 'col' }, cur);
|
|
1260
|
+
if (rowspan > 1 && cell.attributes) {
|
|
1261
|
+
cell.attributes.valign = 'top';
|
|
1262
|
+
cell.attributes.rowspan = rowspan;
|
|
1263
|
+
}
|
|
1264
|
+
trChildren.push(cell);
|
|
1019
1265
|
}
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1266
|
+
}
|
|
1267
|
+
theadChildren.push({
|
|
1268
|
+
tagName: 'tr',
|
|
1269
|
+
children: trChildren
|
|
1270
|
+
});
|
|
1271
|
+
}
|
|
1272
|
+
// Add the subheaders (the only headers if not using
|
|
1273
|
+
// multilevels)
|
|
1274
|
+
if (subheaders) {
|
|
1275
|
+
const trChildren = [];
|
|
1276
|
+
for (i = 0, len = subheaders.length; i < len; ++i) {
|
|
1277
|
+
if (typeof subheaders[i] !== 'undefined') {
|
|
1278
|
+
trChildren.push(getCellHTMLFromValue('th', null, { scope: 'col' }, subheaders[i]));
|
|
1027
1279
|
}
|
|
1028
|
-
trChildren.push(cell);
|
|
1029
1280
|
}
|
|
1281
|
+
theadChildren.push({
|
|
1282
|
+
tagName: 'tr',
|
|
1283
|
+
children: trChildren
|
|
1284
|
+
});
|
|
1030
1285
|
}
|
|
1031
|
-
|
|
1032
|
-
tagName: '
|
|
1033
|
-
children:
|
|
1286
|
+
return {
|
|
1287
|
+
tagName: 'thead',
|
|
1288
|
+
children: theadChildren
|
|
1289
|
+
};
|
|
1290
|
+
};
|
|
1291
|
+
// Add table caption
|
|
1292
|
+
const { tableCaption } = exporting.options || {};
|
|
1293
|
+
if (tableCaption !== false) {
|
|
1294
|
+
treeChildren.push({
|
|
1295
|
+
tagName: 'caption',
|
|
1296
|
+
attributes: {
|
|
1297
|
+
'class': 'highcharts-table-caption'
|
|
1298
|
+
},
|
|
1299
|
+
textContent: typeof tableCaption === 'string' ?
|
|
1300
|
+
tableCaption :
|
|
1301
|
+
options.title?.text || options.lang.chartTitle
|
|
1034
1302
|
});
|
|
1035
1303
|
}
|
|
1036
|
-
//
|
|
1037
|
-
|
|
1304
|
+
// Find longest row
|
|
1305
|
+
for (let i = 0, len = rows.length; i < len; ++i) {
|
|
1306
|
+
if (rows[i].length > rowLength) {
|
|
1307
|
+
rowLength = rows[i].length;
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
// Add header
|
|
1311
|
+
treeChildren.push(getTableHeaderHTML(topHeaders, subHeaders || [], Math.max(rowLength, subHeaders?.length || 0)));
|
|
1312
|
+
// Transform the rows to HTML
|
|
1313
|
+
const trs = [];
|
|
1314
|
+
rows.forEach(function (row) {
|
|
1038
1315
|
const trChildren = [];
|
|
1039
|
-
for (
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1316
|
+
for (let j = 0; j < rowLength; j++) {
|
|
1317
|
+
// Make first column a header too. Especially important for
|
|
1318
|
+
// category axes, but also might make sense for datetime? Should
|
|
1319
|
+
// await user feedback on this.
|
|
1320
|
+
trChildren.push(getCellHTMLFromValue(j ? 'td' : 'th', null, j ? {} : { scope: 'row' }, row[j]));
|
|
1043
1321
|
}
|
|
1044
|
-
|
|
1322
|
+
trs.push({
|
|
1045
1323
|
tagName: 'tr',
|
|
1046
1324
|
children: trChildren
|
|
1047
1325
|
});
|
|
1048
|
-
}
|
|
1049
|
-
return {
|
|
1050
|
-
tagName: 'thead',
|
|
1051
|
-
children: theadChildren
|
|
1052
|
-
};
|
|
1053
|
-
};
|
|
1054
|
-
// Add table caption
|
|
1055
|
-
const { tableCaption } = options.exporting || {};
|
|
1056
|
-
if (tableCaption !== false) {
|
|
1326
|
+
});
|
|
1057
1327
|
treeChildren.push({
|
|
1058
|
-
tagName: '
|
|
1059
|
-
|
|
1060
|
-
'class': 'highcharts-table-caption'
|
|
1061
|
-
},
|
|
1062
|
-
textContent: typeof tableCaption === 'string' ?
|
|
1063
|
-
tableCaption :
|
|
1064
|
-
options.title?.text || options.lang.chartTitle
|
|
1328
|
+
tagName: 'tbody',
|
|
1329
|
+
children: trs
|
|
1065
1330
|
});
|
|
1331
|
+
const e = {
|
|
1332
|
+
tree: {
|
|
1333
|
+
tagName: 'table',
|
|
1334
|
+
id: `highcharts-data-table-${chart.index}`,
|
|
1335
|
+
children: treeChildren
|
|
1336
|
+
}
|
|
1337
|
+
};
|
|
1338
|
+
fireEvent(chart, 'afterGetTableAST', e);
|
|
1339
|
+
return e.tree;
|
|
1066
1340
|
}
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1341
|
+
/**
|
|
1342
|
+
* Hide the data table when visible.
|
|
1343
|
+
*
|
|
1344
|
+
* @function Highcharts.Exporting#hideData
|
|
1345
|
+
*
|
|
1346
|
+
* @requires modules/exporting
|
|
1347
|
+
* @requires modules/export-data
|
|
1348
|
+
*/
|
|
1349
|
+
function hideData() {
|
|
1350
|
+
this.toggleDataTable(false);
|
|
1072
1351
|
}
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
tree: {
|
|
1096
|
-
tagName: 'table',
|
|
1097
|
-
id: `highcharts-data-table-${this.index}`,
|
|
1098
|
-
children: treeChildren
|
|
1352
|
+
/**
|
|
1353
|
+
* Toggle showing data table.
|
|
1354
|
+
*
|
|
1355
|
+
* @private
|
|
1356
|
+
* @function Highcharts.Exporting#hideData
|
|
1357
|
+
*
|
|
1358
|
+
* @param {boolean} [show]
|
|
1359
|
+
* Whether to show data table or not.
|
|
1360
|
+
*
|
|
1361
|
+
* @requires modules/exporting
|
|
1362
|
+
* @requires modules/export-data
|
|
1363
|
+
*/
|
|
1364
|
+
function toggleDataTable(show) {
|
|
1365
|
+
const chart = this.chart,
|
|
1366
|
+
// Create the div
|
|
1367
|
+
createContainer = (show = pick(show, !this.isDataTableVisible)) &&
|
|
1368
|
+
!this.dataTableDiv;
|
|
1369
|
+
if (createContainer) {
|
|
1370
|
+
this.dataTableDiv = ExportData_doc.createElement('div');
|
|
1371
|
+
this.dataTableDiv.className = 'highcharts-data-table';
|
|
1372
|
+
// Insert after the chart container
|
|
1373
|
+
chart.renderTo.parentNode.insertBefore(this.dataTableDiv, chart.renderTo.nextSibling);
|
|
1099
1374
|
}
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
// Create the div
|
|
1118
|
-
const createContainer = show && !this.dataTableDiv;
|
|
1119
|
-
if (createContainer) {
|
|
1120
|
-
this.dataTableDiv = ExportData_doc.createElement('div');
|
|
1121
|
-
this.dataTableDiv.className = 'highcharts-data-table';
|
|
1122
|
-
// Insert after the chart container
|
|
1123
|
-
this.renderTo.parentNode.insertBefore(this.dataTableDiv, this.renderTo.nextSibling);
|
|
1124
|
-
}
|
|
1125
|
-
// Toggle the visibility
|
|
1126
|
-
if (this.dataTableDiv) {
|
|
1127
|
-
const style = this.dataTableDiv.style, oldDisplay = style.display;
|
|
1128
|
-
style.display = show ? 'block' : 'none';
|
|
1129
|
-
// Generate the data table
|
|
1130
|
-
if (show) {
|
|
1131
|
-
this.dataTableDiv.innerHTML = (external_highcharts_src_js_default_AST_default()).emptyHTML;
|
|
1132
|
-
const ast = new (external_highcharts_src_js_default_AST_default())([this.getTableAST()]);
|
|
1133
|
-
ast.addToDOM(this.dataTableDiv);
|
|
1134
|
-
fireEvent(this, 'afterViewData', {
|
|
1135
|
-
element: this.dataTableDiv,
|
|
1136
|
-
wasHidden: createContainer || oldDisplay !== style.display
|
|
1137
|
-
});
|
|
1375
|
+
// Toggle the visibility
|
|
1376
|
+
if (this.dataTableDiv) {
|
|
1377
|
+
const style = this.dataTableDiv.style, oldDisplay = style.display;
|
|
1378
|
+
style.display = show ? 'block' : 'none';
|
|
1379
|
+
// Generate the data table
|
|
1380
|
+
if (show) {
|
|
1381
|
+
this.dataTableDiv.innerHTML = (external_highcharts_src_js_default_AST_default()).emptyHTML;
|
|
1382
|
+
const ast = new (external_highcharts_src_js_default_AST_default())([this.getTableAST()]);
|
|
1383
|
+
ast.addToDOM(this.dataTableDiv);
|
|
1384
|
+
fireEvent(chart, 'afterViewData', {
|
|
1385
|
+
element: this.dataTableDiv,
|
|
1386
|
+
wasHidden: createContainer || oldDisplay !== style.display
|
|
1387
|
+
});
|
|
1388
|
+
}
|
|
1389
|
+
else {
|
|
1390
|
+
fireEvent(chart, 'afterHideData');
|
|
1391
|
+
}
|
|
1138
1392
|
}
|
|
1139
|
-
|
|
1140
|
-
|
|
1393
|
+
// Set the flag
|
|
1394
|
+
this.isDataTableVisible = show;
|
|
1395
|
+
// Change the menu item text
|
|
1396
|
+
const exportDivElements = this.divElements, options = this.options, menuItems = options.buttons?.contextButton.menuItems, lang = chart.options.lang;
|
|
1397
|
+
if (options &&
|
|
1398
|
+
options.menuItemDefinitions &&
|
|
1399
|
+
lang &&
|
|
1400
|
+
lang.viewData &&
|
|
1401
|
+
lang.hideData &&
|
|
1402
|
+
menuItems &&
|
|
1403
|
+
exportDivElements) {
|
|
1404
|
+
const exportDivElement = exportDivElements[menuItems.indexOf('viewData')];
|
|
1405
|
+
if (exportDivElement) {
|
|
1406
|
+
external_highcharts_src_js_default_AST_default().setElementHTML(exportDivElement, this.isDataTableVisible ? lang.hideData : lang.viewData);
|
|
1407
|
+
}
|
|
1141
1408
|
}
|
|
1142
1409
|
}
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
exportDivElements) {
|
|
1156
|
-
const exportDivElement = exportDivElements[menuItems.indexOf('viewData')];
|
|
1157
|
-
if (exportDivElement) {
|
|
1158
|
-
external_highcharts_src_js_default_AST_default().setElementHTML(exportDivElement, this.isDataTableVisible ? lang.hideData : lang.viewData);
|
|
1159
|
-
}
|
|
1410
|
+
/**
|
|
1411
|
+
* View the data in a table below the chart.
|
|
1412
|
+
*
|
|
1413
|
+
* @function Highcharts.Exporting#viewData
|
|
1414
|
+
*
|
|
1415
|
+
* @emits Highcharts.Chart#event:afterViewData
|
|
1416
|
+
*
|
|
1417
|
+
* @requires modules/exporting
|
|
1418
|
+
* @requires modules/export-data
|
|
1419
|
+
*/
|
|
1420
|
+
function viewData() {
|
|
1421
|
+
this.toggleDataTable(true);
|
|
1160
1422
|
}
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
chartProto.downloadXLS = chartDownloadXLS;
|
|
1185
|
-
chartProto.getCSV = chartGetCSV;
|
|
1186
|
-
chartProto.getDataRows = chartGetDataRows;
|
|
1187
|
-
chartProto.getTable = chartGetTable;
|
|
1188
|
-
chartProto.getTableAST = chartGetTableAST;
|
|
1189
|
-
chartProto.hideData = chartHideData;
|
|
1190
|
-
chartProto.toggleDataTable = chartToggleDataTable;
|
|
1191
|
-
chartProto.viewData = chartViewData;
|
|
1192
|
-
// Add "Download CSV" to the exporting menu.
|
|
1193
|
-
// @todo consider move to defaults
|
|
1194
|
-
if (exportingOptions) {
|
|
1195
|
-
extend(exportingOptions.menuItemDefinitions, {
|
|
1196
|
-
downloadCSV: {
|
|
1197
|
-
textKey: 'downloadCSV',
|
|
1198
|
-
onclick: function () {
|
|
1199
|
-
this.downloadCSV();
|
|
1200
|
-
}
|
|
1201
|
-
},
|
|
1202
|
-
downloadXLS: {
|
|
1203
|
-
textKey: 'downloadXLS',
|
|
1204
|
-
onclick: function () {
|
|
1205
|
-
this.downloadXLS();
|
|
1206
|
-
}
|
|
1207
|
-
},
|
|
1208
|
-
viewData: {
|
|
1209
|
-
textKey: 'viewData',
|
|
1210
|
-
onclick: function () {
|
|
1211
|
-
wrapLoading.call(this, this.toggleDataTable);
|
|
1212
|
-
}
|
|
1423
|
+
/**
|
|
1424
|
+
* Wrapper function for the download functions, which handles showing and
|
|
1425
|
+
* hiding the loading message
|
|
1426
|
+
*
|
|
1427
|
+
* @private
|
|
1428
|
+
*
|
|
1429
|
+
* @requires modules/exporting
|
|
1430
|
+
* @requires modules/export-data
|
|
1431
|
+
*/
|
|
1432
|
+
function wrapLoading(fn) {
|
|
1433
|
+
const chart = this.chart, showMessage = Boolean(this.options.showExportInProgress);
|
|
1434
|
+
// Prefer requestAnimationFrame if available
|
|
1435
|
+
const timeoutFn = ExportData_win.requestAnimationFrame || setTimeout;
|
|
1436
|
+
// Outer timeout avoids menu freezing on click
|
|
1437
|
+
timeoutFn(() => {
|
|
1438
|
+
showMessage &&
|
|
1439
|
+
chart.showLoading(chart.options.lang.exportInProgress);
|
|
1440
|
+
timeoutFn(() => {
|
|
1441
|
+
try {
|
|
1442
|
+
fn.call(this);
|
|
1443
|
+
}
|
|
1444
|
+
finally {
|
|
1445
|
+
showMessage && chart.hideLoading();
|
|
1213
1446
|
}
|
|
1214
1447
|
});
|
|
1215
|
-
|
|
1216
|
-
exportingOptions.buttons.contextButton.menuItems) {
|
|
1217
|
-
exportingOptions.buttons.contextButton.menuItems.push('separator', 'downloadCSV', 'downloadXLS', 'viewData');
|
|
1218
|
-
}
|
|
1219
|
-
}
|
|
1220
|
-
setOptions(ExportData_ExportDataDefaults);
|
|
1221
|
-
const { arearange: AreaRangeSeries, gantt: GanttSeries, map: MapSeries, mapbubble: MapBubbleSeries, treemap: TreemapSeries, xrange: XRangeSeries } = SeriesClass.types;
|
|
1222
|
-
if (AreaRangeSeries) {
|
|
1223
|
-
AreaRangeSeries.prototype.keyToAxis = {
|
|
1224
|
-
low: 'y',
|
|
1225
|
-
high: 'y'
|
|
1226
|
-
};
|
|
1227
|
-
}
|
|
1228
|
-
if (GanttSeries) {
|
|
1229
|
-
GanttSeries.prototype.exportKey = 'name';
|
|
1230
|
-
GanttSeries.prototype.keyToAxis = {
|
|
1231
|
-
start: 'x',
|
|
1232
|
-
end: 'x'
|
|
1233
|
-
};
|
|
1234
|
-
}
|
|
1235
|
-
if (MapSeries) {
|
|
1236
|
-
MapSeries.prototype.exportKey = 'name';
|
|
1237
|
-
}
|
|
1238
|
-
if (MapBubbleSeries) {
|
|
1239
|
-
MapBubbleSeries.prototype.exportKey = 'name';
|
|
1240
|
-
}
|
|
1241
|
-
if (TreemapSeries) {
|
|
1242
|
-
TreemapSeries.prototype.exportKey = 'name';
|
|
1243
|
-
}
|
|
1244
|
-
if (XRangeSeries) {
|
|
1245
|
-
XRangeSeries.prototype.keyToAxis = {
|
|
1246
|
-
x2: 'x'
|
|
1247
|
-
};
|
|
1248
|
-
}
|
|
1249
|
-
}
|
|
1250
|
-
}
|
|
1251
|
-
/**
|
|
1252
|
-
* Get a blob object from content, if blob is supported
|
|
1253
|
-
*
|
|
1254
|
-
* @private
|
|
1255
|
-
* @param {string} content
|
|
1256
|
-
* The content to create the blob from.
|
|
1257
|
-
* @param {string} type
|
|
1258
|
-
* The type of the content.
|
|
1259
|
-
* @return {string|undefined}
|
|
1260
|
-
* The blob object, or undefined if not supported.
|
|
1261
|
-
*/
|
|
1262
|
-
function getBlobFromContent(content, type) {
|
|
1263
|
-
const nav = ExportData_win.navigator, domurl = ExportData_win.URL || ExportData_win.webkitURL || ExportData_win;
|
|
1264
|
-
try {
|
|
1265
|
-
// MS specific
|
|
1266
|
-
if ((nav.msSaveOrOpenBlob) && ExportData_win.MSBlobBuilder) {
|
|
1267
|
-
const blob = new ExportData_win.MSBlobBuilder();
|
|
1268
|
-
blob.append(content);
|
|
1269
|
-
return blob.getBlob('image/svg+xml');
|
|
1270
|
-
}
|
|
1271
|
-
return domurl.createObjectURL(new ExportData_win.Blob(['\uFEFF' + content], // #7084
|
|
1272
|
-
{ type: type }));
|
|
1273
|
-
}
|
|
1274
|
-
catch (e) {
|
|
1275
|
-
// Ignore
|
|
1448
|
+
});
|
|
1276
1449
|
}
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
function onChartAfterViewData
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1450
|
+
/**
|
|
1451
|
+
* Function that runs on the chart's 'afterViewData' event.
|
|
1452
|
+
*
|
|
1453
|
+
* @private
|
|
1454
|
+
* @function Highcharts.Chart#onChartAfterViewData
|
|
1455
|
+
*
|
|
1456
|
+
* @requires modules/exporting
|
|
1457
|
+
* @requires modules/export-data
|
|
1458
|
+
*/
|
|
1459
|
+
function onChartAfterViewData() {
|
|
1460
|
+
const exporting = this.exporting, dataTableDiv = exporting?.dataTableDiv, getCellValue = (tr, index) => tr.children[index].textContent, comparer = (index, ascending) => (a, b) => {
|
|
1461
|
+
const sort = (v1, v2) => (v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ?
|
|
1462
|
+
v1 - v2 :
|
|
1463
|
+
v1.toString().localeCompare(v2));
|
|
1464
|
+
return sort(getCellValue(ascending ? a : b, index), getCellValue(ascending ? b : a, index));
|
|
1465
|
+
};
|
|
1466
|
+
if (dataTableDiv && exporting.options.allowTableSorting) {
|
|
1467
|
+
const row = dataTableDiv.querySelector('thead tr');
|
|
1468
|
+
if (row) {
|
|
1469
|
+
row.childNodes.forEach((th) => {
|
|
1470
|
+
const tableBody = dataTableDiv.querySelector('tbody');
|
|
1471
|
+
th.addEventListener('click', function () {
|
|
1472
|
+
const rows = [...dataTableDiv.querySelectorAll('tr:not(thead tr)')], headers = [...th.parentNode.children];
|
|
1473
|
+
if (exporting) {
|
|
1474
|
+
rows.sort(comparer(headers.indexOf(th), exporting.ascendingOrderInTable =
|
|
1475
|
+
!exporting.ascendingOrderInTable)).forEach((tr) => {
|
|
1476
|
+
tableBody?.appendChild(tr);
|
|
1477
|
+
});
|
|
1478
|
+
headers.forEach((th) => {
|
|
1479
|
+
[
|
|
1480
|
+
'highcharts-sort-ascending',
|
|
1481
|
+
'highcharts-sort-descending'
|
|
1482
|
+
].forEach((className) => {
|
|
1483
|
+
if (th.classList.contains(className)) {
|
|
1484
|
+
th.classList.remove(className);
|
|
1485
|
+
}
|
|
1486
|
+
});
|
|
1487
|
+
});
|
|
1488
|
+
th.classList.add(exporting.ascendingOrderInTable ?
|
|
1489
|
+
'highcharts-sort-ascending' :
|
|
1490
|
+
'highcharts-sort-descending');
|
|
1491
|
+
}
|
|
1310
1492
|
});
|
|
1311
|
-
th.classList.add(chart.ascendingOrderInTable ?
|
|
1312
|
-
'highcharts-sort-ascending' :
|
|
1313
|
-
'highcharts-sort-descending');
|
|
1314
1493
|
});
|
|
1315
|
-
}
|
|
1494
|
+
}
|
|
1316
1495
|
}
|
|
1317
1496
|
}
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
function onChartRenderer
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1497
|
+
/**
|
|
1498
|
+
* Function that runs on the chart's 'render' event. Handle the showTable
|
|
1499
|
+
* option.
|
|
1500
|
+
*
|
|
1501
|
+
* @private
|
|
1502
|
+
* @function Highcharts.Chart#onChartRenderer
|
|
1503
|
+
*
|
|
1504
|
+
* @requires modules/exporting
|
|
1505
|
+
* @requires modules/export-data
|
|
1506
|
+
*/
|
|
1507
|
+
function onChartRenderer() {
|
|
1508
|
+
if (this.options?.exporting?.showTable &&
|
|
1509
|
+
!this.options.chart.forExport) {
|
|
1510
|
+
this.exporting?.viewData();
|
|
1511
|
+
}
|
|
1329
1512
|
}
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
function onChartDestroy
|
|
1336
|
-
|
|
1337
|
-
|
|
1513
|
+
/**
|
|
1514
|
+
* Function that runs on the chart's 'destroy' event. Handle cleaning up the
|
|
1515
|
+
* dataTableDiv element.
|
|
1516
|
+
*
|
|
1517
|
+
* @private
|
|
1518
|
+
* @function Highcharts.Chart#onChartDestroy
|
|
1519
|
+
*
|
|
1520
|
+
* @requires modules/exporting
|
|
1521
|
+
* @requires modules/export-data
|
|
1522
|
+
*/
|
|
1523
|
+
function onChartDestroy() {
|
|
1524
|
+
this.exporting?.dataTableDiv?.remove();
|
|
1525
|
+
}
|
|
1526
|
+
})(ExportData || (ExportData = {}));
|
|
1338
1527
|
/* *
|
|
1339
1528
|
*
|
|
1340
|
-
*
|
|
1529
|
+
* Default Export
|
|
1341
1530
|
*
|
|
1342
1531
|
* */
|
|
1343
|
-
const ExportData = {
|
|
1344
|
-
compose
|
|
1345
|
-
};
|
|
1346
1532
|
/* harmony default export */ const ExportData_ExportData = (ExportData);
|
|
1347
1533
|
/* *
|
|
1348
1534
|
*
|
|
@@ -1393,7 +1579,7 @@ const G = (external_highcharts_src_js_default_default());
|
|
|
1393
1579
|
G.dataURLtoBlob = G.dataURLtoBlob || Extensions_DownloadURL.dataURLtoBlob;
|
|
1394
1580
|
G.downloadURL = G.downloadURL || Extensions_DownloadURL.downloadURL;
|
|
1395
1581
|
// Compose
|
|
1396
|
-
ExportData_ExportData.compose(G.Chart, G.Series);
|
|
1582
|
+
ExportData_ExportData.compose(G.Chart, G.Exporting, G.Series);
|
|
1397
1583
|
/* harmony default export */ const export_data_src = ((external_highcharts_src_js_default_default()));
|
|
1398
1584
|
|
|
1399
1585
|
export { export_data_src as default };
|