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
|
*
|
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
*/
|
|
13
13
|
(function webpackUniversalModuleDefinition(root, factory) {
|
|
14
14
|
if(typeof exports === 'object' && typeof module === 'object')
|
|
15
|
-
module.exports = factory(root["_Highcharts"], root["_Highcharts"]["AST"]);
|
|
15
|
+
module.exports = factory(root["_Highcharts"], root["_Highcharts"]["AST"], root["_Highcharts"]["Chart"]);
|
|
16
16
|
else if(typeof define === 'function' && define.amd)
|
|
17
|
-
define("highcharts/modules/export-data", ["highcharts/highcharts"], function (amd1) {return factory(amd1,amd1["AST"]);});
|
|
17
|
+
define("highcharts/modules/export-data", ["highcharts/highcharts"], function (amd1) {return factory(amd1,amd1["AST"],amd1["Chart"]);});
|
|
18
18
|
else if(typeof exports === 'object')
|
|
19
|
-
exports["highcharts/modules/export-data"] = factory(root["_Highcharts"], root["_Highcharts"]["AST"]);
|
|
19
|
+
exports["highcharts/modules/export-data"] = factory(root["_Highcharts"], root["_Highcharts"]["AST"], root["_Highcharts"]["Chart"]);
|
|
20
20
|
else
|
|
21
|
-
root["Highcharts"] = factory(root["Highcharts"], root["Highcharts"]["AST"]);
|
|
22
|
-
})(typeof window === 'undefined' ? this : window, (__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__660__) => {
|
|
21
|
+
root["Highcharts"] = factory(root["Highcharts"], root["Highcharts"]["AST"], root["Highcharts"]["Chart"]);
|
|
22
|
+
})(typeof window === 'undefined' ? this : window, (__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__660__, __WEBPACK_EXTERNAL_MODULE__960__) => {
|
|
23
23
|
return /******/ (() => { // webpackBootstrap
|
|
24
24
|
/******/ "use strict";
|
|
25
25
|
/******/ var __webpack_modules__ = ({
|
|
@@ -36,6 +36,13 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__660__;
|
|
|
36
36
|
|
|
37
37
|
module.exports = __WEBPACK_EXTERNAL_MODULE__944__;
|
|
38
38
|
|
|
39
|
+
/***/ }),
|
|
40
|
+
|
|
41
|
+
/***/ 960:
|
|
42
|
+
/***/ ((module) => {
|
|
43
|
+
|
|
44
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE__960__;
|
|
45
|
+
|
|
39
46
|
/***/ })
|
|
40
47
|
|
|
41
48
|
/******/ });
|
|
@@ -125,6 +132,8 @@ var highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default
|
|
|
125
132
|
* */
|
|
126
133
|
|
|
127
134
|
const { isSafari, win, win: { document: doc } } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
|
|
135
|
+
|
|
136
|
+
const { error } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
|
|
128
137
|
/* *
|
|
129
138
|
*
|
|
130
139
|
* Constants
|
|
@@ -138,12 +147,15 @@ const domurl = win.URL || win.webkitURL || win;
|
|
|
138
147
|
* */
|
|
139
148
|
/**
|
|
140
149
|
* Convert base64 dataURL to Blob if supported, otherwise returns undefined.
|
|
150
|
+
*
|
|
141
151
|
* @private
|
|
142
152
|
* @function Highcharts.dataURLtoBlob
|
|
153
|
+
*
|
|
143
154
|
* @param {string} dataURL
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
155
|
+
* URL to convert.
|
|
156
|
+
*
|
|
157
|
+
* @return {string | undefined}
|
|
158
|
+
* Blob.
|
|
147
159
|
*/
|
|
148
160
|
function dataURLtoBlob(dataURL) {
|
|
149
161
|
const parts = dataURL
|
|
@@ -170,11 +182,11 @@ function dataURLtoBlob(dataURL) {
|
|
|
170
182
|
*
|
|
171
183
|
* @private
|
|
172
184
|
* @function Highcharts.downloadURL
|
|
173
|
-
*
|
|
174
|
-
*
|
|
185
|
+
*
|
|
186
|
+
* @param {string | global.URL} dataURL
|
|
187
|
+
* The dataURL/Blob to download.
|
|
175
188
|
* @param {string} filename
|
|
176
|
-
*
|
|
177
|
-
* @return {void}
|
|
189
|
+
* The name of the resulting file (w/extension).
|
|
178
190
|
*/
|
|
179
191
|
function downloadURL(dataURL, filename) {
|
|
180
192
|
const nav = win.navigator, a = doc.createElement('a');
|
|
@@ -224,6 +236,35 @@ function downloadURL(dataURL, filename) {
|
|
|
224
236
|
}
|
|
225
237
|
}
|
|
226
238
|
}
|
|
239
|
+
/**
|
|
240
|
+
* Asynchronously downloads a script from a provided location.
|
|
241
|
+
*
|
|
242
|
+
* @private
|
|
243
|
+
* @function Highcharts.getScript
|
|
244
|
+
*
|
|
245
|
+
* @param {string} scriptLocation
|
|
246
|
+
* The location for the script to fetch.
|
|
247
|
+
*/
|
|
248
|
+
function getScript(scriptLocation) {
|
|
249
|
+
return new Promise((resolve, reject) => {
|
|
250
|
+
const head = doc.getElementsByTagName('head')[0], script = doc.createElement('script');
|
|
251
|
+
// Set type and location for the script
|
|
252
|
+
script.type = 'text/javascript';
|
|
253
|
+
script.src = scriptLocation;
|
|
254
|
+
// Resolve in case of a succesful script fetching
|
|
255
|
+
script.onload = () => {
|
|
256
|
+
resolve();
|
|
257
|
+
};
|
|
258
|
+
// Reject in case of fail
|
|
259
|
+
script.onerror = () => {
|
|
260
|
+
const msg = `Error loading script ${scriptLocation}`;
|
|
261
|
+
error(msg);
|
|
262
|
+
reject(new Error(msg));
|
|
263
|
+
};
|
|
264
|
+
// Append the newly created script
|
|
265
|
+
head.appendChild(script);
|
|
266
|
+
});
|
|
267
|
+
}
|
|
227
268
|
/* *
|
|
228
269
|
*
|
|
229
270
|
* Default Export
|
|
@@ -231,13 +272,17 @@ function downloadURL(dataURL, filename) {
|
|
|
231
272
|
* */
|
|
232
273
|
const DownloadURL = {
|
|
233
274
|
dataURLtoBlob,
|
|
234
|
-
downloadURL
|
|
275
|
+
downloadURL,
|
|
276
|
+
getScript
|
|
235
277
|
};
|
|
236
278
|
/* harmony default export */ const Extensions_DownloadURL = (DownloadURL);
|
|
237
279
|
|
|
238
280
|
// EXTERNAL MODULE: external {"amd":["highcharts/highcharts","AST"],"commonjs":["highcharts","AST"],"commonjs2":["highcharts","AST"],"root":["Highcharts","AST"]}
|
|
239
281
|
var highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_ = __webpack_require__(660);
|
|
240
282
|
var highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default = /*#__PURE__*/__webpack_require__.n(highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_);
|
|
283
|
+
// EXTERNAL MODULE: external {"amd":["highcharts/highcharts","Chart"],"commonjs":["highcharts","Chart"],"commonjs2":["highcharts","Chart"],"root":["Highcharts","Chart"]}
|
|
284
|
+
var highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_ = __webpack_require__(960);
|
|
285
|
+
var highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default = /*#__PURE__*/__webpack_require__.n(highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_);
|
|
241
286
|
;// ./code/es-modules/Extensions/ExportData/ExportDataDefaults.js
|
|
242
287
|
/* *
|
|
243
288
|
*
|
|
@@ -268,7 +313,7 @@ const exporting = {
|
|
|
268
313
|
* @sample highcharts/export-data/multilevel-table
|
|
269
314
|
* Multiple table headers
|
|
270
315
|
*
|
|
271
|
-
* @type {boolean|string}
|
|
316
|
+
* @type {boolean | string}
|
|
272
317
|
* @since 6.0.4
|
|
273
318
|
* @requires modules/export-data
|
|
274
319
|
* @apioption exporting.tableCaption
|
|
@@ -278,8 +323,8 @@ const exporting = {
|
|
|
278
323
|
* in a HTML table or a JavaScript structure.
|
|
279
324
|
*
|
|
280
325
|
* This module adds data export options to the export menu and provides
|
|
281
|
-
* functions like `
|
|
282
|
-
* and `
|
|
326
|
+
* functions like `Exporting.getCSV`, `Exporting.getTable`,
|
|
327
|
+
* `Exporting.getDataRows` and `Exporting.viewData`.
|
|
283
328
|
*
|
|
284
329
|
* The XLS converter is limited and only creates a HTML string that is
|
|
285
330
|
* passed for download, which works but creates a warning before
|
|
@@ -299,7 +344,7 @@ const exporting = {
|
|
|
299
344
|
*
|
|
300
345
|
* Options for annotations in the export-data table.
|
|
301
346
|
*
|
|
302
|
-
* @since
|
|
347
|
+
* @since 8.2.0
|
|
303
348
|
* @requires modules/export-data
|
|
304
349
|
* @requires modules/annotations
|
|
305
350
|
*
|
|
@@ -310,7 +355,7 @@ const exporting = {
|
|
|
310
355
|
* The way to mark the separator for annotations
|
|
311
356
|
* combined in one export-data table cell.
|
|
312
357
|
*
|
|
313
|
-
* @since
|
|
358
|
+
* @since 8.2.0
|
|
314
359
|
* @requires modules/annotations
|
|
315
360
|
*/
|
|
316
361
|
itemDelimiter: '; ',
|
|
@@ -321,7 +366,7 @@ const exporting = {
|
|
|
321
366
|
* @sample highcharts/export-data/join-annotations/
|
|
322
367
|
* Concatenate point annotations with itemDelimiter set.
|
|
323
368
|
*
|
|
324
|
-
* @since
|
|
369
|
+
* @since 8.2.0
|
|
325
370
|
* @requires modules/annotations
|
|
326
371
|
*/
|
|
327
372
|
join: false
|
|
@@ -352,7 +397,7 @@ const exporting = {
|
|
|
352
397
|
* @sample highcharts/export-data/multilevel-table
|
|
353
398
|
* Multiple table headers
|
|
354
399
|
*
|
|
355
|
-
* @type {Function|null}
|
|
400
|
+
* @type {Function | null}
|
|
356
401
|
*/
|
|
357
402
|
columnHeaderFormatter: null,
|
|
358
403
|
/**
|
|
@@ -365,7 +410,7 @@ const exporting = {
|
|
|
365
410
|
* as the browser locale, typically `.` (English) or `,` (German,
|
|
366
411
|
* French etc).
|
|
367
412
|
*
|
|
368
|
-
* @type {string|null}
|
|
413
|
+
* @type {string | null}
|
|
369
414
|
* @since 6.0.4
|
|
370
415
|
*/
|
|
371
416
|
decimalPoint: null,
|
|
@@ -375,7 +420,7 @@ const exporting = {
|
|
|
375
420
|
* locale. If the locale _decimal point_ is `,`, the `itemDelimiter`
|
|
376
421
|
* defaults to `;`, otherwise the `itemDelimiter` defaults to `,`.
|
|
377
422
|
*
|
|
378
|
-
* @type {string|null}
|
|
423
|
+
* @type {string | null}
|
|
379
424
|
*/
|
|
380
425
|
itemDelimiter: null,
|
|
381
426
|
/**
|
|
@@ -383,6 +428,60 @@ const exporting = {
|
|
|
383
428
|
*/
|
|
384
429
|
lineDelimiter: '\n'
|
|
385
430
|
},
|
|
431
|
+
/**
|
|
432
|
+
* An object consisting of definitions for the menu items in the context
|
|
433
|
+
* menu. Each key value pair has a `key` that is referenced in the
|
|
434
|
+
* [menuItems](#exporting.buttons.contextButton.menuItems) setting,
|
|
435
|
+
* and a `value`, which is an object with the following properties:
|
|
436
|
+
*
|
|
437
|
+
* - **onclick:** The click handler for the menu item
|
|
438
|
+
*
|
|
439
|
+
* - **text:** The text for the menu item
|
|
440
|
+
*
|
|
441
|
+
* - **textKey:** If internationalization is required, the key to a language
|
|
442
|
+
* string
|
|
443
|
+
*
|
|
444
|
+
* Custom text for the "exitFullScreen" can be set only in lang options
|
|
445
|
+
* (it is not a separate button).
|
|
446
|
+
*
|
|
447
|
+
* @sample highcharts/exporting/menuitemdefinitions/
|
|
448
|
+
* Menu item definitions
|
|
449
|
+
* @sample highcharts/exporting/menuitemdefinitions-webp/
|
|
450
|
+
* Adding a custom menu item for WebP export
|
|
451
|
+
*
|
|
452
|
+
* @type {Highcharts.Dictionary<Highcharts.ExportingMenuObject>}
|
|
453
|
+
* @default {"downloadCSV": {}, "downloadXLS": {}, "viewData": {}}
|
|
454
|
+
* @requires modules/export-data
|
|
455
|
+
*/
|
|
456
|
+
menuItemDefinitions: {
|
|
457
|
+
/**
|
|
458
|
+
* @ignore
|
|
459
|
+
*/
|
|
460
|
+
downloadCSV: {
|
|
461
|
+
textKey: 'downloadCSV',
|
|
462
|
+
onclick: function () {
|
|
463
|
+
this.exporting?.downloadCSV();
|
|
464
|
+
}
|
|
465
|
+
},
|
|
466
|
+
/**
|
|
467
|
+
* @ignore
|
|
468
|
+
*/
|
|
469
|
+
downloadXLS: {
|
|
470
|
+
textKey: 'downloadXLS',
|
|
471
|
+
onclick: function () {
|
|
472
|
+
this.exporting?.downloadXLS();
|
|
473
|
+
}
|
|
474
|
+
},
|
|
475
|
+
/**
|
|
476
|
+
* @ignore
|
|
477
|
+
*/
|
|
478
|
+
viewData: {
|
|
479
|
+
textKey: 'viewData',
|
|
480
|
+
onclick: function () {
|
|
481
|
+
this.exporting?.wrapLoading(this.exporting.toggleDataTable);
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
},
|
|
386
485
|
/**
|
|
387
486
|
* Show a HTML table below the chart with the chart's current data.
|
|
388
487
|
*
|
|
@@ -425,7 +524,7 @@ const exporting = {
|
|
|
425
524
|
*
|
|
426
525
|
* The message can be altered by changing [](#lang.exporting.exportInProgress)
|
|
427
526
|
*
|
|
428
|
-
* @since
|
|
527
|
+
* @since 11.3.0
|
|
429
528
|
* @requires modules/export-data
|
|
430
529
|
*/
|
|
431
530
|
showExportInProgress: true
|
|
@@ -452,7 +551,7 @@ const lang = {
|
|
|
452
551
|
/**
|
|
453
552
|
* The text for exported table.
|
|
454
553
|
*
|
|
455
|
-
* @since
|
|
554
|
+
* @since 8.1.0
|
|
456
555
|
* @requires modules/export-data
|
|
457
556
|
*/
|
|
458
557
|
exportData: {
|
|
@@ -479,14 +578,14 @@ const lang = {
|
|
|
479
578
|
/**
|
|
480
579
|
* The text for the menu item.
|
|
481
580
|
*
|
|
482
|
-
* @since
|
|
581
|
+
* @since 8.2.0
|
|
483
582
|
* @requires modules/export-data
|
|
484
583
|
*/
|
|
485
584
|
hideData: 'Hide data table',
|
|
486
585
|
/**
|
|
487
586
|
* Text to show when export is in progress.
|
|
488
587
|
*
|
|
489
|
-
* @since
|
|
588
|
+
* @since 11.3.0
|
|
490
589
|
* @requires modules/export-data
|
|
491
590
|
*/
|
|
492
591
|
exportInProgress: 'Exporting...'
|
|
@@ -547,857 +646,951 @@ const ExportDataDefaults = {
|
|
|
547
646
|
|
|
548
647
|
|
|
549
648
|
|
|
649
|
+
|
|
550
650
|
const { getOptions, setOptions } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
|
|
551
651
|
|
|
552
652
|
const { downloadURL: ExportData_downloadURL } = Extensions_DownloadURL;
|
|
553
653
|
|
|
554
654
|
|
|
555
|
-
const { doc: ExportData_doc, win: ExportData_win } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
|
|
655
|
+
const { composed, doc: ExportData_doc, win: ExportData_win } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
|
|
556
656
|
|
|
557
|
-
const { addEvent, defined, extend, find, fireEvent, isNumber, pick } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
|
|
657
|
+
const { addEvent, defined, extend, find, fireEvent, isNumber, pick, pushUnique } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
|
|
558
658
|
/* *
|
|
559
659
|
*
|
|
560
|
-
*
|
|
660
|
+
* Composition
|
|
561
661
|
*
|
|
562
662
|
* */
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
*
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
*/
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
663
|
+
var ExportData;
|
|
664
|
+
(function (ExportData) {
|
|
665
|
+
/* *
|
|
666
|
+
*
|
|
667
|
+
* Declarations
|
|
668
|
+
*
|
|
669
|
+
* */
|
|
670
|
+
/* *
|
|
671
|
+
*
|
|
672
|
+
* Functions
|
|
673
|
+
*
|
|
674
|
+
* */
|
|
675
|
+
/**
|
|
676
|
+
* Composition function.
|
|
677
|
+
*
|
|
678
|
+
* @private
|
|
679
|
+
* @function Highcharts.Exporting#compose
|
|
680
|
+
*
|
|
681
|
+
* @param {ChartClass} ChartClass
|
|
682
|
+
* Chart class.
|
|
683
|
+
* @param {ExportingClass} ExportingClass
|
|
684
|
+
* Exporting class.
|
|
685
|
+
* @param {SeriesClass} SeriesClass
|
|
686
|
+
* Series class.
|
|
687
|
+
*
|
|
688
|
+
* @requires modules/exporting
|
|
689
|
+
* @requires modules/export-data
|
|
690
|
+
*/
|
|
691
|
+
function compose(ChartClass, ExportingClass, SeriesClass) {
|
|
692
|
+
// Check the composition registry for the Exporting
|
|
693
|
+
if (!pushUnique(composed, 'ExportData')) {
|
|
694
|
+
return;
|
|
695
|
+
}
|
|
696
|
+
// Adding wrappers for the deprecated functions
|
|
697
|
+
extend((highcharts_Chart_commonjs_highcharts_Chart_commonjs2_highcharts_Chart_root_Highcharts_Chart_default()).prototype, {
|
|
698
|
+
downloadCSV: function () {
|
|
699
|
+
return this.exporting?.downloadCSV();
|
|
700
|
+
},
|
|
701
|
+
downloadXLS: function () {
|
|
702
|
+
return this.exporting?.downloadXLS();
|
|
703
|
+
},
|
|
704
|
+
getCSV: function (useLocalDecimalPoint) {
|
|
705
|
+
return this.exporting?.getCSV(useLocalDecimalPoint);
|
|
706
|
+
},
|
|
707
|
+
getDataRows: function (multiLevelHeaders) {
|
|
708
|
+
return this.exporting?.getDataRows(multiLevelHeaders);
|
|
709
|
+
},
|
|
710
|
+
getTable: function (useLocalDecimalPoint) {
|
|
711
|
+
return this.exporting?.getTable(useLocalDecimalPoint);
|
|
712
|
+
},
|
|
713
|
+
getTableAST: function (useLocalDecimalPoint) {
|
|
714
|
+
return this.exporting?.getTableAST(useLocalDecimalPoint);
|
|
715
|
+
},
|
|
716
|
+
hideData: function () {
|
|
717
|
+
return this.exporting?.hideData();
|
|
718
|
+
},
|
|
719
|
+
toggleDataTable: function (show) {
|
|
720
|
+
return this.exporting?.toggleDataTable(show);
|
|
721
|
+
},
|
|
722
|
+
viewData: function () {
|
|
723
|
+
return this.exporting?.viewData();
|
|
583
724
|
}
|
|
584
725
|
});
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
*/
|
|
614
|
-
function chartDownloadXLS() {
|
|
615
|
-
wrapLoading.call(this, () => {
|
|
616
|
-
const uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
|
|
617
|
-
'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
|
|
618
|
-
'xmlns="http://www.w3.org/TR/REC-html40">' +
|
|
619
|
-
'<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
|
|
620
|
-
'<x:ExcelWorksheets><x:ExcelWorksheet>' +
|
|
621
|
-
'<x:Name>Ark1</x:Name>' +
|
|
622
|
-
'<x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions>' +
|
|
623
|
-
'</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
|
|
624
|
-
'</xml><![endif]-->' +
|
|
625
|
-
'<style>td{border:none;font-family: Calibri, sans-serif;} ' +
|
|
626
|
-
'.number{mso-number-format:"0.00";} ' +
|
|
627
|
-
'.text{ mso-number-format:"\@";}</style>' +
|
|
628
|
-
'<meta name=ProgId content=Excel.Sheet>' +
|
|
629
|
-
'<meta charset=UTF-8>' +
|
|
630
|
-
'</head><body>' +
|
|
631
|
-
this.getTable(true) +
|
|
632
|
-
'</body></html>', base64 = function (s) {
|
|
633
|
-
return ExportData_win.btoa(unescape(encodeURIComponent(s))); // #50
|
|
634
|
-
};
|
|
635
|
-
ExportData_downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
|
|
636
|
-
uri + base64(template), this.getFilename() + '.xls');
|
|
637
|
-
});
|
|
638
|
-
}
|
|
639
|
-
/**
|
|
640
|
-
* Export-data module required. Returns the current chart data as a CSV string.
|
|
641
|
-
*
|
|
642
|
-
* @function Highcharts.Chart#getCSV
|
|
643
|
-
*
|
|
644
|
-
* @param {boolean} [useLocalDecimalPoint]
|
|
645
|
-
* Whether to use the local decimal point as detected from the browser.
|
|
646
|
-
* This makes it easier to export data to Excel in the same locale as the
|
|
647
|
-
* user is.
|
|
648
|
-
*
|
|
649
|
-
* @return {string}
|
|
650
|
-
* CSV representation of the data
|
|
651
|
-
*/
|
|
652
|
-
function chartGetCSV(useLocalDecimalPoint) {
|
|
653
|
-
let csv = '';
|
|
654
|
-
const rows = this.getDataRows(), csvOptions = this.options.exporting.csv, decimalPoint = pick(csvOptions.decimalPoint, csvOptions.itemDelimiter !== ',' && useLocalDecimalPoint ?
|
|
655
|
-
(1.1).toLocaleString()[1] :
|
|
656
|
-
'.'),
|
|
657
|
-
// Use ';' for direct to Excel
|
|
658
|
-
itemDelimiter = pick(csvOptions.itemDelimiter, decimalPoint === ',' ? ';' : ','),
|
|
659
|
-
// '\n' isn't working with the js csv data extraction
|
|
660
|
-
lineDelimiter = csvOptions.lineDelimiter;
|
|
661
|
-
// Transform the rows to CSV
|
|
662
|
-
rows.forEach((row, i) => {
|
|
663
|
-
let val = '', j = row.length;
|
|
664
|
-
while (j--) {
|
|
665
|
-
val = row[j];
|
|
666
|
-
if (typeof val === 'string') {
|
|
667
|
-
val = `"${val}"`;
|
|
726
|
+
const exportingProto = ExportingClass.prototype;
|
|
727
|
+
if (!exportingProto.downloadCSV) {
|
|
728
|
+
// Add an event listener to handle the showTable option
|
|
729
|
+
addEvent(ChartClass, 'afterViewData', onChartAfterViewData);
|
|
730
|
+
addEvent(ChartClass, 'render', onChartRenderer);
|
|
731
|
+
addEvent(ChartClass, 'destroy', onChartDestroy);
|
|
732
|
+
// Adding functions to the Exporting prototype
|
|
733
|
+
exportingProto.downloadCSV = downloadCSV;
|
|
734
|
+
exportingProto.downloadXLS = downloadXLS;
|
|
735
|
+
exportingProto.getCSV = getCSV;
|
|
736
|
+
exportingProto.getDataRows = getDataRows;
|
|
737
|
+
exportingProto.getTable = getTable;
|
|
738
|
+
exportingProto.getTableAST = getTableAST;
|
|
739
|
+
exportingProto.hideData = hideData;
|
|
740
|
+
exportingProto.toggleDataTable = toggleDataTable;
|
|
741
|
+
exportingProto.wrapLoading = wrapLoading;
|
|
742
|
+
exportingProto.viewData = viewData;
|
|
743
|
+
// Update with defaults of the export data module
|
|
744
|
+
setOptions(ExportData_ExportDataDefaults);
|
|
745
|
+
// Additionaly, extend the menuItems with the export data variants
|
|
746
|
+
const menuItems = getOptions().exporting?.buttons?.contextButton?.menuItems;
|
|
747
|
+
menuItems && menuItems.push('separator', 'downloadCSV', 'downloadXLS', 'viewData');
|
|
748
|
+
const { arearange: AreaRangeSeries, gantt: GanttSeries, map: MapSeries, mapbubble: MapBubbleSeries, treemap: TreemapSeries, xrange: XRangeSeries } = SeriesClass.types;
|
|
749
|
+
if (AreaRangeSeries) {
|
|
750
|
+
AreaRangeSeries.prototype.keyToAxis = {
|
|
751
|
+
low: 'y',
|
|
752
|
+
high: 'y'
|
|
753
|
+
};
|
|
668
754
|
}
|
|
669
|
-
if (
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
755
|
+
if (GanttSeries) {
|
|
756
|
+
GanttSeries.prototype.exportKey = 'name';
|
|
757
|
+
GanttSeries.prototype.keyToAxis = {
|
|
758
|
+
start: 'x',
|
|
759
|
+
end: 'x'
|
|
760
|
+
};
|
|
673
761
|
}
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
}
|
|
688
|
-
});
|
|
689
|
-
return csv;
|
|
690
|
-
}
|
|
691
|
-
/**
|
|
692
|
-
* Export-data module required. Returns a two-dimensional array containing the
|
|
693
|
-
* current chart data.
|
|
694
|
-
*
|
|
695
|
-
* @function Highcharts.Chart#getDataRows
|
|
696
|
-
*
|
|
697
|
-
* @param {boolean} [multiLevelHeaders]
|
|
698
|
-
* Use multilevel headers for the rows by default. Adds an extra row with
|
|
699
|
-
* top level headers. If a custom columnHeaderFormatter is defined, this
|
|
700
|
-
* can override the behavior.
|
|
701
|
-
*
|
|
702
|
-
* @return {Array<Array<(number|string)>>}
|
|
703
|
-
* The current chart data
|
|
704
|
-
*
|
|
705
|
-
* @emits Highcharts.Chart#event:exportData
|
|
706
|
-
*/
|
|
707
|
-
function chartGetDataRows(multiLevelHeaders) {
|
|
708
|
-
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,
|
|
709
|
-
// Options
|
|
710
|
-
columnHeaderFormatter = function (item, key, keyLength) {
|
|
711
|
-
if (csvOptions.columnHeaderFormatter) {
|
|
712
|
-
const s = csvOptions.columnHeaderFormatter(item, key, keyLength);
|
|
713
|
-
if (s !== false) {
|
|
714
|
-
return s;
|
|
762
|
+
if (MapSeries) {
|
|
763
|
+
MapSeries.prototype.exportKey = 'name';
|
|
764
|
+
}
|
|
765
|
+
if (MapBubbleSeries) {
|
|
766
|
+
MapBubbleSeries.prototype.exportKey = 'name';
|
|
767
|
+
}
|
|
768
|
+
if (TreemapSeries) {
|
|
769
|
+
TreemapSeries.prototype.exportKey = 'name';
|
|
770
|
+
}
|
|
771
|
+
if (XRangeSeries) {
|
|
772
|
+
XRangeSeries.prototype.keyToAxis = {
|
|
773
|
+
x2: 'x'
|
|
774
|
+
};
|
|
715
775
|
}
|
|
716
776
|
}
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
777
|
+
}
|
|
778
|
+
ExportData.compose = compose;
|
|
779
|
+
/**
|
|
780
|
+
* Generates a data URL of CSV for local download in the browser. This is
|
|
781
|
+
* the default action for a click on the 'Download CSV' button.
|
|
782
|
+
*
|
|
783
|
+
* See {@link Highcharts.Exporting#getCSV} to get the CSV data itself.
|
|
784
|
+
*
|
|
785
|
+
* @function Highcharts.Exporting#downloadCSV
|
|
786
|
+
*
|
|
787
|
+
* @requires modules/exporting
|
|
788
|
+
* @requires modules/export-data
|
|
789
|
+
*/
|
|
790
|
+
function downloadCSV() {
|
|
791
|
+
this.wrapLoading(() => {
|
|
792
|
+
const csv = this.getCSV(true);
|
|
793
|
+
ExportData_downloadURL(getBlobFromContent(csv, 'text/csv') ||
|
|
794
|
+
'data:text/csv,\uFEFF' + encodeURIComponent(csv), this.getFilename() + '.csv');
|
|
795
|
+
});
|
|
796
|
+
}
|
|
797
|
+
/**
|
|
798
|
+
* Generates a data URL of an XLS document for local download in the
|
|
799
|
+
* browser. This is the default action for a click on the 'Download XLS'
|
|
800
|
+
* button.
|
|
801
|
+
*
|
|
802
|
+
* See {@link Highcharts.Exporting#getTable} to get the table data itself.
|
|
803
|
+
*
|
|
804
|
+
* @function Highcharts.Exporting#downloadXLS
|
|
805
|
+
*
|
|
806
|
+
* @requires modules/exporting
|
|
807
|
+
* @requires modules/export-data
|
|
808
|
+
*/
|
|
809
|
+
function downloadXLS() {
|
|
810
|
+
this.wrapLoading(() => {
|
|
811
|
+
const uri = 'data:application/vnd.ms-excel;base64,', template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" ' +
|
|
812
|
+
'xmlns:x="urn:schemas-microsoft-com:office:excel" ' +
|
|
813
|
+
'xmlns="http://www.w3.org/TR/REC-html40">' +
|
|
814
|
+
'<head><!--[if gte mso 9]><xml><x:ExcelWorkbook>' +
|
|
815
|
+
'<x:ExcelWorksheets><x:ExcelWorksheet>' +
|
|
816
|
+
'<x:Name>Ark1</x:Name>' +
|
|
817
|
+
'<x:WorksheetOptions><x:DisplayGridlines/>' +
|
|
818
|
+
'</x:WorksheetOptions>' +
|
|
819
|
+
'</x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook>' +
|
|
820
|
+
'</xml><![endif]-->' +
|
|
821
|
+
'<style>td{border:none;font-family: Calibri, sans-serif;} ' +
|
|
822
|
+
'.number{mso-number-format:"0.00";} ' +
|
|
823
|
+
'.text{ mso-number-format:"\@";}</style>' +
|
|
824
|
+
'<meta name=ProgId content=Excel.Sheet>' +
|
|
825
|
+
'<meta charset=UTF-8>' +
|
|
826
|
+
'</head><body>' +
|
|
827
|
+
this.getTable(true) +
|
|
828
|
+
'</body></html>', base64 = function (s) {
|
|
829
|
+
return ExportData_win.btoa(unescape(encodeURIComponent(s))); // #50
|
|
732
830
|
};
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
},
|
|
736
|
-
// Map the categories for value axes
|
|
737
|
-
getCategoryAndDateTimeMap = function (series, pointArrayMap, pIdx) {
|
|
738
|
-
const categoryMap = {}, dateTimeValueAxisMap = {};
|
|
739
|
-
pointArrayMap.forEach(function (prop) {
|
|
740
|
-
const axisName = ((series.keyToAxis && series.keyToAxis[prop]) ||
|
|
741
|
-
prop) + 'Axis',
|
|
742
|
-
// Points in parallel coordinates refers to all yAxis
|
|
743
|
-
// not only `series.yAxis`
|
|
744
|
-
axis = isNumber(pIdx) ?
|
|
745
|
-
series.chart[axisName][pIdx] :
|
|
746
|
-
series[axisName];
|
|
747
|
-
categoryMap[prop] = (axis && axis.categories) || [];
|
|
748
|
-
dateTimeValueAxisMap[prop] = (axis && axis.dateTime);
|
|
831
|
+
ExportData_downloadURL(getBlobFromContent(template, 'application/vnd.ms-excel') ||
|
|
832
|
+
uri + base64(template), this.getFilename() + '.xls');
|
|
749
833
|
});
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
834
|
+
}
|
|
835
|
+
/**
|
|
836
|
+
* Get a blob object from content, if blob is supported.
|
|
837
|
+
*
|
|
838
|
+
* @private
|
|
839
|
+
* @function Highcharts.getBlobFromContent
|
|
840
|
+
*
|
|
841
|
+
* @param {string} content
|
|
842
|
+
* The content to create the blob from.
|
|
843
|
+
* @param {string} type
|
|
844
|
+
* The type of the content.
|
|
845
|
+
*
|
|
846
|
+
* @return {string | undefined}
|
|
847
|
+
* The blob object, or undefined if not supported.
|
|
848
|
+
*
|
|
849
|
+
* @requires modules/exporting
|
|
850
|
+
* @requires modules/export-data
|
|
851
|
+
*/
|
|
852
|
+
function getBlobFromContent(content, type) {
|
|
853
|
+
const nav = ExportData_win.navigator, domurl = ExportData_win.URL || ExportData_win.webkitURL || ExportData_win;
|
|
854
|
+
try {
|
|
855
|
+
// MS specific
|
|
856
|
+
if ((nav.msSaveOrOpenBlob) && ExportData_win.MSBlobBuilder) {
|
|
857
|
+
const blob = new ExportData_win.MSBlobBuilder();
|
|
858
|
+
blob.append(content);
|
|
859
|
+
return blob.getBlob('image/svg+xml');
|
|
860
|
+
}
|
|
861
|
+
return domurl.createObjectURL(new ExportData_win.Blob(['\uFEFF' + content], // #7084
|
|
862
|
+
{ type: type }));
|
|
766
863
|
}
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
864
|
+
catch {
|
|
865
|
+
// Ignore
|
|
866
|
+
}
|
|
867
|
+
}
|
|
868
|
+
/**
|
|
869
|
+
* Returns the current chart data as a CSV string.
|
|
870
|
+
*
|
|
871
|
+
* @function Highcharts.Exporting#getCSV
|
|
872
|
+
*
|
|
873
|
+
* @param {boolean} [useLocalDecimalPoint]
|
|
874
|
+
* Whether to use the local decimal point as detected from the browser. This
|
|
875
|
+
* makes it easier to export data to Excel in the same locale as the user
|
|
876
|
+
* is.
|
|
877
|
+
*
|
|
878
|
+
* @return {string}
|
|
879
|
+
* CSV representation of the data.
|
|
880
|
+
*
|
|
881
|
+
* @requires modules/exporting
|
|
882
|
+
* @requires modules/export-data
|
|
883
|
+
*/
|
|
884
|
+
function getCSV(useLocalDecimalPoint) {
|
|
885
|
+
let csv = '';
|
|
886
|
+
const rows = this.getDataRows(), csvOptions = this.options?.csv, decimalPoint = pick(csvOptions?.decimalPoint, csvOptions?.itemDelimiter !== ',' && useLocalDecimalPoint ?
|
|
887
|
+
(1.1).toLocaleString()[1] :
|
|
888
|
+
'.'),
|
|
889
|
+
// Use ';' for direct to Excel
|
|
890
|
+
itemDelimiter = pick(csvOptions?.itemDelimiter, decimalPoint === ',' ? ';' : ','),
|
|
891
|
+
// '\n' isn't working with the js csv data extraction
|
|
892
|
+
lineDelimiter = csvOptions?.lineDelimiter;
|
|
893
|
+
// Transform the rows to CSV
|
|
894
|
+
rows.forEach((row, i) => {
|
|
895
|
+
let val = '', j = row.length;
|
|
896
|
+
while (j--) {
|
|
897
|
+
val = row[j];
|
|
898
|
+
if (typeof val === 'string') {
|
|
899
|
+
val = `"${val}"`;
|
|
900
|
+
}
|
|
901
|
+
if (typeof val === 'number') {
|
|
902
|
+
if (decimalPoint !== '.') {
|
|
903
|
+
val = val.toString().replace('.', decimalPoint);
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
row[j] = val;
|
|
785
907
|
}
|
|
786
|
-
//
|
|
787
|
-
//
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
908
|
+
// The first row is the header - it defines the number of columns.
|
|
909
|
+
// Empty columns between not-empty cells are covered in the
|
|
910
|
+
// getDataRows method.
|
|
911
|
+
// Now add empty values only to the end of the row so all rows have
|
|
912
|
+
// the same number of columns, #17186
|
|
913
|
+
row.length = rows.length ? rows[0].length : 0;
|
|
914
|
+
// Add the values
|
|
915
|
+
csv += row.join(itemDelimiter);
|
|
916
|
+
// Add the line delimiter
|
|
917
|
+
if (i < rows.length - 1) {
|
|
918
|
+
csv += lineDelimiter;
|
|
919
|
+
}
|
|
920
|
+
});
|
|
921
|
+
return csv;
|
|
922
|
+
}
|
|
923
|
+
/**
|
|
924
|
+
* Returns a two-dimensional array containing the current chart data.
|
|
925
|
+
*
|
|
926
|
+
* @function Highcharts.Exporting#getDataRows
|
|
927
|
+
*
|
|
928
|
+
* @param {boolean} [multiLevelHeaders]
|
|
929
|
+
* Use multilevel headers for the rows by default. Adds an extra row with
|
|
930
|
+
* top level headers. If a custom columnHeaderFormatter is defined, this can
|
|
931
|
+
* override the behavior.
|
|
932
|
+
*
|
|
933
|
+
* @return {Array<Array<(number | string)>>}
|
|
934
|
+
* The current chart data
|
|
935
|
+
*
|
|
936
|
+
* @emits Highcharts.Chart#event:exportData
|
|
937
|
+
*
|
|
938
|
+
* @requires modules/exporting
|
|
939
|
+
* @requires modules/export-data
|
|
940
|
+
*/
|
|
941
|
+
function getDataRows(multiLevelHeaders) {
|
|
942
|
+
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,
|
|
943
|
+
// Options
|
|
944
|
+
columnHeaderFormatter = function (item, key, keyLength) {
|
|
945
|
+
if (csvOptions.columnHeaderFormatter) {
|
|
946
|
+
const s = csvOptions.columnHeaderFormatter(item, key, keyLength);
|
|
947
|
+
if (s !== false) {
|
|
948
|
+
return s;
|
|
795
949
|
}
|
|
796
|
-
j++;
|
|
797
950
|
}
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
951
|
+
if (!item && categoryHeader) {
|
|
952
|
+
return categoryHeader;
|
|
953
|
+
}
|
|
954
|
+
if (!item.bindAxes &&
|
|
955
|
+
categoryDatetimeHeader &&
|
|
956
|
+
categoryHeader) {
|
|
957
|
+
return (item.options.title &&
|
|
958
|
+
item.options.title.text) || (item.dateTime ?
|
|
959
|
+
categoryDatetimeHeader :
|
|
960
|
+
categoryHeader);
|
|
961
|
+
}
|
|
962
|
+
if (multiLevelHeaders) {
|
|
963
|
+
return {
|
|
964
|
+
columnTitle: ((keyLength || 0) > 1 ?
|
|
965
|
+
key :
|
|
966
|
+
item.name) || '',
|
|
967
|
+
topLevelColumnTitle: item.name
|
|
968
|
+
};
|
|
969
|
+
}
|
|
970
|
+
return item.name + ((keyLength || 0) > 1 ? ' (' + key + ')' : '');
|
|
971
|
+
},
|
|
972
|
+
// Map the categories for value axes
|
|
973
|
+
getCategoryAndDateTimeMap = function (series, pointArrayMap, pIdx) {
|
|
974
|
+
const categoryMap = {}, dateTimeValueAxisMap = {};
|
|
975
|
+
pointArrayMap.forEach(function (prop) {
|
|
976
|
+
const axisName = ((series.keyToAxis && series.keyToAxis[prop]) ||
|
|
977
|
+
prop) + 'Axis',
|
|
978
|
+
// Points in parallel coordinates refers to all yAxis
|
|
979
|
+
// not only `series.yAxis`
|
|
980
|
+
axis = isNumber(pIdx) ?
|
|
981
|
+
series.chart[axisName][pIdx] :
|
|
982
|
+
series[axisName];
|
|
983
|
+
categoryMap[prop] = (axis && axis.categories) || [];
|
|
984
|
+
dateTimeValueAxisMap[prop] = (axis && axis.dateTime);
|
|
985
|
+
});
|
|
986
|
+
return {
|
|
987
|
+
categoryMap: categoryMap,
|
|
988
|
+
dateTimeValueAxisMap: dateTimeValueAxisMap
|
|
804
989
|
};
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
990
|
+
},
|
|
991
|
+
// Create point array depends if xAxis is category
|
|
992
|
+
// or point.name is defined #13293
|
|
993
|
+
getPointArray = function (series, xAxis) {
|
|
994
|
+
const pointArrayMap = series.pointArrayMap || ['y'], namedPoints = series.data.some((d) => (typeof d.y !== 'undefined') && d.name);
|
|
995
|
+
// If there are points with a name, we also want the x value in
|
|
996
|
+
// the table
|
|
997
|
+
if (namedPoints &&
|
|
998
|
+
xAxis &&
|
|
999
|
+
!xAxis.categories &&
|
|
1000
|
+
series.exportKey !== 'name') {
|
|
1001
|
+
return ['x', ...pointArrayMap];
|
|
1002
|
+
}
|
|
1003
|
+
return pointArrayMap;
|
|
1004
|
+
}, xAxisIndices = [];
|
|
1005
|
+
let xAxis, dataRows, columnTitleObj, i = 0, // Loop the series and index values
|
|
1006
|
+
x, xTitle;
|
|
1007
|
+
chart.series.forEach(function (series) {
|
|
1008
|
+
const keys = series.options.keys, xAxis = series.xAxis, pointArrayMap = keys || getPointArray(series, xAxis), valueCount = pointArrayMap.length, xTaken = !series.requireSorting && {}, xAxisIndex = xAxes.indexOf(xAxis);
|
|
1009
|
+
let categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap), mockSeries, j;
|
|
1010
|
+
if (series.options.includeInDataExport !== false &&
|
|
1011
|
+
!series.options.isInternal &&
|
|
1012
|
+
series.visible !== false // #55
|
|
1013
|
+
) {
|
|
1014
|
+
// Build a lookup for X axis index and the position of the first
|
|
1015
|
+
// series that belongs to that X axis. Includes -1 for non-axis
|
|
1016
|
+
// series types like pies.
|
|
1017
|
+
if (!find(xAxisIndices, function (index) {
|
|
1018
|
+
return index[0] === xAxisIndex;
|
|
1019
|
+
})) {
|
|
1020
|
+
xAxisIndices.push([xAxisIndex, i]);
|
|
814
1021
|
}
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
key = (mockPoint.x ?? '') + ',' + name;
|
|
1022
|
+
// Compute the column headers and top level headers, usually the
|
|
1023
|
+
// same as series names
|
|
818
1024
|
j = 0;
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
if (xTaken[key]) {
|
|
827
|
-
key += '|' + pIdx;
|
|
1025
|
+
while (j < valueCount) {
|
|
1026
|
+
columnTitleObj = columnHeaderFormatter(series, pointArrayMap[j], pointArrayMap.length);
|
|
1027
|
+
columnTitles.push(columnTitleObj.columnTitle ||
|
|
1028
|
+
columnTitleObj);
|
|
1029
|
+
if (multiLevelHeaders) {
|
|
1030
|
+
topLevelColumnTitles.push(columnTitleObj.topLevelColumnTitle ||
|
|
1031
|
+
columnTitleObj);
|
|
828
1032
|
}
|
|
829
|
-
|
|
1033
|
+
j++;
|
|
830
1034
|
}
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
1035
|
+
mockSeries = {
|
|
1036
|
+
chart: series.chart,
|
|
1037
|
+
autoIncrement: series.autoIncrement,
|
|
1038
|
+
options: series.options,
|
|
1039
|
+
pointArrayMap: series.pointArrayMap,
|
|
1040
|
+
index: series.index
|
|
1041
|
+
};
|
|
1042
|
+
// Export directly from options.data because we need the
|
|
1043
|
+
// uncropped data (#7913), and we need to support Boost (#7026).
|
|
1044
|
+
series.options.data?.forEach(function eachData(options, pIdx) {
|
|
1045
|
+
const mockPoint = { series: mockSeries };
|
|
1046
|
+
let key, prop, val;
|
|
1047
|
+
// In parallel coordinates chart, each data point is
|
|
1048
|
+
// connected to a separate yAxis, conform this
|
|
1049
|
+
if (hasParallelCoords) {
|
|
1050
|
+
categoryAndDatetimeMap = getCategoryAndDateTimeMap(series, pointArrayMap, pIdx);
|
|
838
1051
|
}
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
if (
|
|
850
|
-
if (
|
|
851
|
-
|
|
852
|
-
rows[modifiedKey].xValues = [];
|
|
853
|
-
rows[modifiedKey].pointers = [];
|
|
1052
|
+
series.pointClass.prototype.applyOptions.apply(mockPoint, [options]);
|
|
1053
|
+
const name = series.data[pIdx] && series.data[pIdx].name;
|
|
1054
|
+
key = (mockPoint.x ?? '') + ',' + name;
|
|
1055
|
+
j = 0;
|
|
1056
|
+
// Pies, funnels, geo maps etc. use point name in X row
|
|
1057
|
+
if (!xAxis ||
|
|
1058
|
+
series.exportKey === 'name' ||
|
|
1059
|
+
(!hasParallelCoords && xAxis && xAxis.hasNames) && name) {
|
|
1060
|
+
key = name;
|
|
1061
|
+
}
|
|
1062
|
+
if (xTaken) {
|
|
1063
|
+
if (xTaken[key]) {
|
|
1064
|
+
key += '|' + pIdx;
|
|
854
1065
|
}
|
|
855
|
-
key =
|
|
1066
|
+
xTaken[key] = true;
|
|
856
1067
|
}
|
|
857
|
-
rows[
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
time.dateFormat(csvOptions.dateFormat, val) :
|
|
871
|
-
null,
|
|
872
|
-
// Linear/log yAxis
|
|
873
|
-
val);
|
|
874
|
-
j++;
|
|
875
|
-
}
|
|
876
|
-
});
|
|
877
|
-
i = i + j;
|
|
878
|
-
}
|
|
879
|
-
});
|
|
880
|
-
// Make a sortable array
|
|
881
|
-
for (x in rows) {
|
|
882
|
-
if (Object.hasOwnProperty.call(rows, x)) {
|
|
883
|
-
rowArr.push(rows[x]);
|
|
884
|
-
}
|
|
885
|
-
}
|
|
886
|
-
let xAxisIndex, column;
|
|
887
|
-
// Add computed column headers and top level headers to final row set
|
|
888
|
-
dataRows = multiLevelHeaders ? [topLevelColumnTitles, columnTitles] :
|
|
889
|
-
[columnTitles];
|
|
890
|
-
i = xAxisIndices.length;
|
|
891
|
-
while (i--) { // Start from end to splice in
|
|
892
|
-
xAxisIndex = xAxisIndices[i][0];
|
|
893
|
-
column = xAxisIndices[i][1];
|
|
894
|
-
xAxis = xAxes[xAxisIndex];
|
|
895
|
-
// Sort it by X values
|
|
896
|
-
rowArr.sort(function (// eslint-disable-line no-loop-func
|
|
897
|
-
a, b) {
|
|
898
|
-
return a.xValues[xAxisIndex] - b.xValues[xAxisIndex];
|
|
899
|
-
});
|
|
900
|
-
// Add header row
|
|
901
|
-
xTitle = columnHeaderFormatter(xAxis);
|
|
902
|
-
dataRows[0].splice(column, 0, xTitle);
|
|
903
|
-
if (multiLevelHeaders && dataRows[1]) {
|
|
904
|
-
// If using multi level headers, we just added top level header.
|
|
905
|
-
// Also add for sub level
|
|
906
|
-
dataRows[1].splice(column, 0, xTitle);
|
|
907
|
-
}
|
|
908
|
-
// Add the category column
|
|
909
|
-
rowArr.forEach(function (// eslint-disable-line no-loop-func
|
|
910
|
-
row) {
|
|
911
|
-
let category = row.name;
|
|
912
|
-
if (xAxis && !defined(category)) {
|
|
913
|
-
if (xAxis.dateTime) {
|
|
914
|
-
if (row.x instanceof Date) {
|
|
915
|
-
row.x = row.x.getTime();
|
|
1068
|
+
if (!rows[key]) {
|
|
1069
|
+
rows[key] = [];
|
|
1070
|
+
rows[key].xValues = [];
|
|
1071
|
+
// ES5 replacement for Array.from / fill.
|
|
1072
|
+
const arr = [];
|
|
1073
|
+
for (let i = 0; i < series.chart.series.length; i++) {
|
|
1074
|
+
arr[i] = 0;
|
|
1075
|
+
}
|
|
1076
|
+
// Create pointers array, holding information how many
|
|
1077
|
+
// duplicates of specific x occurs in each series.
|
|
1078
|
+
// Used for creating rows with duplicates.
|
|
1079
|
+
rows[key].pointers = arr;
|
|
1080
|
+
rows[key].pointers[series.index] = 1;
|
|
916
1081
|
}
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
1082
|
+
else {
|
|
1083
|
+
// Handle duplicates (points with the same x), by
|
|
1084
|
+
// creating extra rows based on pointers for better
|
|
1085
|
+
// performance.
|
|
1086
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
1087
|
+
const modifiedKey = `${key},${rows[key].pointers[series.index]}`, originalKey = key;
|
|
1088
|
+
if (rows[key].pointers[series.index]) {
|
|
1089
|
+
if (!rows[modifiedKey]) {
|
|
1090
|
+
rows[modifiedKey] = [];
|
|
1091
|
+
rows[modifiedKey].xValues = [];
|
|
1092
|
+
rows[modifiedKey].pointers = [];
|
|
1093
|
+
}
|
|
1094
|
+
key = modifiedKey;
|
|
1095
|
+
}
|
|
1096
|
+
rows[originalKey].pointers[series.index] += 1;
|
|
1097
|
+
}
|
|
1098
|
+
rows[key].x = mockPoint.x;
|
|
1099
|
+
rows[key].name = name;
|
|
1100
|
+
rows[key].xValues[xAxisIndex] = mockPoint.x;
|
|
1101
|
+
while (j < valueCount) {
|
|
1102
|
+
prop = pointArrayMap[j]; // `y`, `z` etc
|
|
1103
|
+
val =
|
|
1104
|
+
series.pointClass.prototype.getNestedProperty.apply(mockPoint, [prop]);
|
|
1105
|
+
// Allow values from nested properties (#20470)
|
|
1106
|
+
rows[key][i + j] = pick(
|
|
1107
|
+
// Y axis category if present
|
|
1108
|
+
categoryAndDatetimeMap.categoryMap[prop][val],
|
|
1109
|
+
// Datetime yAxis
|
|
1110
|
+
categoryAndDatetimeMap.dateTimeValueAxisMap[prop] ?
|
|
1111
|
+
time.dateFormat(csvOptions.dateFormat, val) :
|
|
1112
|
+
null,
|
|
1113
|
+
// Linear/log yAxis
|
|
1114
|
+
val);
|
|
1115
|
+
j++;
|
|
1116
|
+
}
|
|
1117
|
+
});
|
|
1118
|
+
i = i + j;
|
|
925
1119
|
}
|
|
926
|
-
// Add the X/date/category
|
|
927
|
-
row.splice(column, 0, category);
|
|
928
1120
|
});
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
}
|
|
934
|
-
/**
|
|
935
|
-
* Export-data module required. Build a HTML table with the chart's current
|
|
936
|
-
* data.
|
|
937
|
-
*
|
|
938
|
-
* @sample highcharts/export-data/viewdata/
|
|
939
|
-
* View the data from the export menu
|
|
940
|
-
*
|
|
941
|
-
* @function Highcharts.Chart#getTable
|
|
942
|
-
*
|
|
943
|
-
* @param {boolean} [useLocalDecimalPoint]
|
|
944
|
-
* Whether to use the local decimal point as detected from the browser.
|
|
945
|
-
* This makes it easier to export data to Excel in the same locale as the
|
|
946
|
-
* user is.
|
|
947
|
-
*
|
|
948
|
-
* @return {string}
|
|
949
|
-
* HTML representation of the data.
|
|
950
|
-
*
|
|
951
|
-
* @emits Highcharts.Chart#event:afterGetTable
|
|
952
|
-
*/
|
|
953
|
-
function chartGetTable(useLocalDecimalPoint) {
|
|
954
|
-
const serialize = (node) => {
|
|
955
|
-
if (!node.tagName || node.tagName === '#text') {
|
|
956
|
-
// Text node
|
|
957
|
-
return node.textContent || '';
|
|
1121
|
+
// Make a sortable array
|
|
1122
|
+
for (x in rows) {
|
|
1123
|
+
if (Object.hasOwnProperty.call(rows, x)) {
|
|
1124
|
+
rowArr.push(rows[x]);
|
|
1125
|
+
}
|
|
958
1126
|
}
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
1127
|
+
let xAxisIndex, column;
|
|
1128
|
+
// Add computed column headers and top level headers to final row set
|
|
1129
|
+
dataRows = multiLevelHeaders ? [topLevelColumnTitles, columnTitles] :
|
|
1130
|
+
[columnTitles];
|
|
1131
|
+
i = xAxisIndices.length;
|
|
1132
|
+
while (i--) { // Start from end to splice in
|
|
1133
|
+
xAxisIndex = xAxisIndices[i][0];
|
|
1134
|
+
column = xAxisIndices[i][1];
|
|
1135
|
+
xAxis = xAxes[xAxisIndex];
|
|
1136
|
+
// Sort it by X values
|
|
1137
|
+
rowArr.sort(function (// eslint-disable-line no-loop-func
|
|
1138
|
+
a, b) {
|
|
1139
|
+
return a.xValues[xAxisIndex] - b.xValues[xAxisIndex];
|
|
966
1140
|
});
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
return html;
|
|
975
|
-
};
|
|
976
|
-
const tree = this.getTableAST(useLocalDecimalPoint);
|
|
977
|
-
return serialize(tree);
|
|
978
|
-
}
|
|
979
|
-
/**
|
|
980
|
-
* Get the AST of a HTML table representing the chart data.
|
|
981
|
-
*
|
|
982
|
-
* @private
|
|
983
|
-
*
|
|
984
|
-
* @function Highcharts.Chart#getTableAST
|
|
985
|
-
*
|
|
986
|
-
* @param {boolean} [useLocalDecimalPoint]
|
|
987
|
-
* Whether to use the local decimal point as detected from the browser.
|
|
988
|
-
* This makes it easier to export data to Excel in the same locale as the
|
|
989
|
-
* user is.
|
|
990
|
-
*
|
|
991
|
-
* @return {Highcharts.ASTNode}
|
|
992
|
-
* The abstract syntax tree
|
|
993
|
-
*/
|
|
994
|
-
function chartGetTableAST(useLocalDecimalPoint) {
|
|
995
|
-
let rowLength = 0;
|
|
996
|
-
const treeChildren = [];
|
|
997
|
-
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(),
|
|
998
|
-
// Compare two rows for equality
|
|
999
|
-
isRowEqual = function (row1, row2) {
|
|
1000
|
-
let i = row1.length;
|
|
1001
|
-
if (row2.length === i) {
|
|
1002
|
-
while (i--) {
|
|
1003
|
-
if (row1[i] !== row2[i]) {
|
|
1004
|
-
return false;
|
|
1005
|
-
}
|
|
1141
|
+
// Add header row
|
|
1142
|
+
xTitle = columnHeaderFormatter(xAxis);
|
|
1143
|
+
dataRows[0].splice(column, 0, xTitle);
|
|
1144
|
+
if (multiLevelHeaders && dataRows[1]) {
|
|
1145
|
+
// If using multi level headers, we just added top level header.
|
|
1146
|
+
// Also add for sub level
|
|
1147
|
+
dataRows[1].splice(column, 0, xTitle);
|
|
1006
1148
|
}
|
|
1149
|
+
// Add the category column
|
|
1150
|
+
rowArr.forEach(function (// eslint-disable-line no-loop-func
|
|
1151
|
+
row) {
|
|
1152
|
+
let category = row.name;
|
|
1153
|
+
if (xAxis && !defined(category)) {
|
|
1154
|
+
if (xAxis.dateTime) {
|
|
1155
|
+
if (row.x instanceof Date) {
|
|
1156
|
+
row.x = row.x.getTime();
|
|
1157
|
+
}
|
|
1158
|
+
category = time.dateFormat(csvOptions.dateFormat, row.x);
|
|
1159
|
+
}
|
|
1160
|
+
else if (xAxis.categories) {
|
|
1161
|
+
category = pick(xAxis.names[row.x], xAxis.categories[row.x], row.x);
|
|
1162
|
+
}
|
|
1163
|
+
else {
|
|
1164
|
+
category = row.x;
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
// Add the X/date/category
|
|
1168
|
+
row.splice(column, 0, category);
|
|
1169
|
+
});
|
|
1007
1170
|
}
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1171
|
+
dataRows = dataRows.concat(rowArr);
|
|
1172
|
+
fireEvent(chart, 'exportData', { dataRows: dataRows });
|
|
1173
|
+
return dataRows;
|
|
1174
|
+
}
|
|
1175
|
+
/**
|
|
1176
|
+
* Build a HTML table with the chart's current data.
|
|
1177
|
+
*
|
|
1178
|
+
* @sample highcharts/export-data/viewdata/
|
|
1179
|
+
* View the data from the export menu
|
|
1180
|
+
*
|
|
1181
|
+
* @function Highcharts.Exporting#getTable
|
|
1182
|
+
*
|
|
1183
|
+
* @param {boolean} [useLocalDecimalPoint]
|
|
1184
|
+
* Whether to use the local decimal point as detected from the browser. This
|
|
1185
|
+
* makes it easier to export data to Excel in the same locale as the user
|
|
1186
|
+
* is.
|
|
1187
|
+
*
|
|
1188
|
+
* @return {string}
|
|
1189
|
+
* HTML representation of the data.
|
|
1190
|
+
*
|
|
1191
|
+
* @emits Highcharts.Chart#event:afterGetTable
|
|
1192
|
+
*
|
|
1193
|
+
* @requires modules/exporting
|
|
1194
|
+
* @requires modules/export-data
|
|
1195
|
+
*/
|
|
1196
|
+
function getTable(useLocalDecimalPoint) {
|
|
1197
|
+
const serialize = (node) => {
|
|
1198
|
+
if (!node.tagName || node.tagName === '#text') {
|
|
1199
|
+
// Text node
|
|
1200
|
+
return node.textContent || '';
|
|
1021
1201
|
}
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1202
|
+
const attributes = node.attributes;
|
|
1203
|
+
let html = `<${node.tagName}`;
|
|
1204
|
+
if (attributes) {
|
|
1205
|
+
Object.keys(attributes)
|
|
1206
|
+
.forEach((key) => {
|
|
1207
|
+
const value = attributes[key];
|
|
1208
|
+
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
1209
|
+
html += ` ${key}="${value}"`;
|
|
1210
|
+
});
|
|
1211
|
+
}
|
|
1212
|
+
html += '>';
|
|
1213
|
+
html += node.textContent || '';
|
|
1214
|
+
(node.children || []).forEach((child) => {
|
|
1215
|
+
html += serialize(child);
|
|
1216
|
+
});
|
|
1217
|
+
html += `</${node.tagName}>`;
|
|
1218
|
+
return html;
|
|
1032
1219
|
};
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1220
|
+
const tree = this.getTableAST(useLocalDecimalPoint);
|
|
1221
|
+
return serialize(tree);
|
|
1222
|
+
}
|
|
1223
|
+
/**
|
|
1224
|
+
* Get the AST of a HTML table representing the chart data.
|
|
1225
|
+
*
|
|
1226
|
+
* @private
|
|
1227
|
+
* @function Highcharts.Exporting#getTableAST
|
|
1228
|
+
*
|
|
1229
|
+
* @param {boolean} [useLocalDecimalPoint]
|
|
1230
|
+
* Whether to use the local decimal point as detected from the browser. This
|
|
1231
|
+
* makes it easier to export data to Excel in the same locale as the user
|
|
1232
|
+
* is.
|
|
1233
|
+
*
|
|
1234
|
+
* @return {Highcharts.ASTNode}
|
|
1235
|
+
* The abstract syntax tree
|
|
1236
|
+
*
|
|
1237
|
+
* @requires modules/exporting
|
|
1238
|
+
* @requires modules/export-data
|
|
1239
|
+
*/
|
|
1240
|
+
function getTableAST(useLocalDecimalPoint) {
|
|
1241
|
+
let rowLength = 0;
|
|
1242
|
+
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(),
|
|
1243
|
+
// Compare two rows for equality
|
|
1244
|
+
isRowEqual = function (row1, row2) {
|
|
1245
|
+
let i = row1.length;
|
|
1246
|
+
if (row2.length === i) {
|
|
1247
|
+
while (i--) {
|
|
1248
|
+
if (row1[i] !== row2[i]) {
|
|
1249
|
+
return false;
|
|
1250
|
+
}
|
|
1061
1251
|
}
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1252
|
+
}
|
|
1253
|
+
else {
|
|
1254
|
+
return false;
|
|
1255
|
+
}
|
|
1256
|
+
return true;
|
|
1257
|
+
},
|
|
1258
|
+
// Get table cell HTML from value
|
|
1259
|
+
getCellHTMLFromValue = function (tagName, classes, attributes, value) {
|
|
1260
|
+
let textContent = pick(value, ''), className = 'highcharts-text' + (classes ? ' ' + classes : '');
|
|
1261
|
+
// Convert to string if number
|
|
1262
|
+
if (typeof textContent === 'number') {
|
|
1263
|
+
textContent = chart.numberFormatter(textContent, -1, decimalPoint, tagName === 'th' ? '' : void 0);
|
|
1264
|
+
className = 'highcharts-number';
|
|
1265
|
+
}
|
|
1266
|
+
else if (!value) {
|
|
1267
|
+
className = 'highcharts-empty';
|
|
1268
|
+
}
|
|
1269
|
+
attributes = extend({ 'class': className }, attributes);
|
|
1270
|
+
return {
|
|
1271
|
+
tagName,
|
|
1272
|
+
attributes,
|
|
1273
|
+
textContent
|
|
1274
|
+
};
|
|
1275
|
+
},
|
|
1276
|
+
// Get table header markup from row data
|
|
1277
|
+
getTableHeaderHTML = function (topheaders, subheaders, rowLength) {
|
|
1278
|
+
const theadChildren = [];
|
|
1279
|
+
let i = 0, len = rowLength || subheaders && subheaders.length, next, cur, curColspan = 0, rowspan;
|
|
1280
|
+
// Clean up multiple table headers. Chart.getDataRows() returns
|
|
1281
|
+
// two levels of headers when using multilevel, not merged. We
|
|
1282
|
+
// need to merge identical headers, remove redundant headers,
|
|
1283
|
+
// and keep it all marked up nicely.
|
|
1284
|
+
if (useMultiLevelHeaders &&
|
|
1285
|
+
topheaders &&
|
|
1286
|
+
subheaders &&
|
|
1287
|
+
!isRowEqual(topheaders, subheaders)) {
|
|
1288
|
+
const trChildren = [];
|
|
1289
|
+
for (; i < len; ++i) {
|
|
1290
|
+
cur = topheaders[i];
|
|
1291
|
+
next = topheaders[i + 1];
|
|
1292
|
+
if (cur === next) {
|
|
1293
|
+
++curColspan;
|
|
1294
|
+
}
|
|
1295
|
+
else if (curColspan) {
|
|
1296
|
+
// Ended colspan
|
|
1297
|
+
// Add cur to HTML with colspan.
|
|
1298
|
+
trChildren.push(getCellHTMLFromValue('th', 'highcharts-table-topheading', {
|
|
1299
|
+
scope: 'col',
|
|
1300
|
+
colspan: curColspan + 1
|
|
1301
|
+
}, cur));
|
|
1302
|
+
curColspan = 0;
|
|
1303
|
+
}
|
|
1304
|
+
else {
|
|
1305
|
+
// Cur is standalone. If it is same as sublevel,
|
|
1306
|
+
// remove sublevel and add just toplevel.
|
|
1307
|
+
if (cur === subheaders[i]) {
|
|
1308
|
+
if (exporting.options.useRowspanHeaders) {
|
|
1309
|
+
rowspan = 2;
|
|
1310
|
+
// eslint-disable-next-line @typescript-eslint/no-array-delete
|
|
1311
|
+
delete subheaders[i];
|
|
1312
|
+
}
|
|
1313
|
+
else {
|
|
1314
|
+
rowspan = 1;
|
|
1315
|
+
subheaders[i] = '';
|
|
1316
|
+
}
|
|
1069
1317
|
}
|
|
1070
1318
|
else {
|
|
1071
1319
|
rowspan = 1;
|
|
1072
|
-
subheaders[i] = '';
|
|
1073
1320
|
}
|
|
1321
|
+
const cell = getCellHTMLFromValue('th', 'highcharts-table-topheading', { scope: 'col' }, cur);
|
|
1322
|
+
if (rowspan > 1 && cell.attributes) {
|
|
1323
|
+
cell.attributes.valign = 'top';
|
|
1324
|
+
cell.attributes.rowspan = rowspan;
|
|
1325
|
+
}
|
|
1326
|
+
trChildren.push(cell);
|
|
1074
1327
|
}
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1328
|
+
}
|
|
1329
|
+
theadChildren.push({
|
|
1330
|
+
tagName: 'tr',
|
|
1331
|
+
children: trChildren
|
|
1332
|
+
});
|
|
1333
|
+
}
|
|
1334
|
+
// Add the subheaders (the only headers if not using
|
|
1335
|
+
// multilevels)
|
|
1336
|
+
if (subheaders) {
|
|
1337
|
+
const trChildren = [];
|
|
1338
|
+
for (i = 0, len = subheaders.length; i < len; ++i) {
|
|
1339
|
+
if (typeof subheaders[i] !== 'undefined') {
|
|
1340
|
+
trChildren.push(getCellHTMLFromValue('th', null, { scope: 'col' }, subheaders[i]));
|
|
1082
1341
|
}
|
|
1083
|
-
trChildren.push(cell);
|
|
1084
1342
|
}
|
|
1343
|
+
theadChildren.push({
|
|
1344
|
+
tagName: 'tr',
|
|
1345
|
+
children: trChildren
|
|
1346
|
+
});
|
|
1085
1347
|
}
|
|
1086
|
-
|
|
1087
|
-
tagName: '
|
|
1088
|
-
children:
|
|
1348
|
+
return {
|
|
1349
|
+
tagName: 'thead',
|
|
1350
|
+
children: theadChildren
|
|
1351
|
+
};
|
|
1352
|
+
};
|
|
1353
|
+
// Add table caption
|
|
1354
|
+
const { tableCaption } = exporting.options || {};
|
|
1355
|
+
if (tableCaption !== false) {
|
|
1356
|
+
treeChildren.push({
|
|
1357
|
+
tagName: 'caption',
|
|
1358
|
+
attributes: {
|
|
1359
|
+
'class': 'highcharts-table-caption'
|
|
1360
|
+
},
|
|
1361
|
+
textContent: typeof tableCaption === 'string' ?
|
|
1362
|
+
tableCaption :
|
|
1363
|
+
options.title?.text || options.lang.chartTitle
|
|
1089
1364
|
});
|
|
1090
1365
|
}
|
|
1091
|
-
//
|
|
1092
|
-
|
|
1366
|
+
// Find longest row
|
|
1367
|
+
for (let i = 0, len = rows.length; i < len; ++i) {
|
|
1368
|
+
if (rows[i].length > rowLength) {
|
|
1369
|
+
rowLength = rows[i].length;
|
|
1370
|
+
}
|
|
1371
|
+
}
|
|
1372
|
+
// Add header
|
|
1373
|
+
treeChildren.push(getTableHeaderHTML(topHeaders, subHeaders || [], Math.max(rowLength, subHeaders?.length || 0)));
|
|
1374
|
+
// Transform the rows to HTML
|
|
1375
|
+
const trs = [];
|
|
1376
|
+
rows.forEach(function (row) {
|
|
1093
1377
|
const trChildren = [];
|
|
1094
|
-
for (
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1378
|
+
for (let j = 0; j < rowLength; j++) {
|
|
1379
|
+
// Make first column a header too. Especially important for
|
|
1380
|
+
// category axes, but also might make sense for datetime? Should
|
|
1381
|
+
// await user feedback on this.
|
|
1382
|
+
trChildren.push(getCellHTMLFromValue(j ? 'td' : 'th', null, j ? {} : { scope: 'row' }, row[j]));
|
|
1098
1383
|
}
|
|
1099
|
-
|
|
1384
|
+
trs.push({
|
|
1100
1385
|
tagName: 'tr',
|
|
1101
1386
|
children: trChildren
|
|
1102
1387
|
});
|
|
1103
|
-
}
|
|
1104
|
-
return {
|
|
1105
|
-
tagName: 'thead',
|
|
1106
|
-
children: theadChildren
|
|
1107
|
-
};
|
|
1108
|
-
};
|
|
1109
|
-
// Add table caption
|
|
1110
|
-
const { tableCaption } = options.exporting || {};
|
|
1111
|
-
if (tableCaption !== false) {
|
|
1388
|
+
});
|
|
1112
1389
|
treeChildren.push({
|
|
1113
|
-
tagName: '
|
|
1114
|
-
|
|
1115
|
-
'class': 'highcharts-table-caption'
|
|
1116
|
-
},
|
|
1117
|
-
textContent: typeof tableCaption === 'string' ?
|
|
1118
|
-
tableCaption :
|
|
1119
|
-
options.title?.text || options.lang.chartTitle
|
|
1390
|
+
tagName: 'tbody',
|
|
1391
|
+
children: trs
|
|
1120
1392
|
});
|
|
1393
|
+
const e = {
|
|
1394
|
+
tree: {
|
|
1395
|
+
tagName: 'table',
|
|
1396
|
+
id: `highcharts-data-table-${chart.index}`,
|
|
1397
|
+
children: treeChildren
|
|
1398
|
+
}
|
|
1399
|
+
};
|
|
1400
|
+
fireEvent(chart, 'afterGetTableAST', e);
|
|
1401
|
+
return e.tree;
|
|
1121
1402
|
}
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1403
|
+
/**
|
|
1404
|
+
* Hide the data table when visible.
|
|
1405
|
+
*
|
|
1406
|
+
* @function Highcharts.Exporting#hideData
|
|
1407
|
+
*
|
|
1408
|
+
* @requires modules/exporting
|
|
1409
|
+
* @requires modules/export-data
|
|
1410
|
+
*/
|
|
1411
|
+
function hideData() {
|
|
1412
|
+
this.toggleDataTable(false);
|
|
1127
1413
|
}
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
tree: {
|
|
1151
|
-
tagName: 'table',
|
|
1152
|
-
id: `highcharts-data-table-${this.index}`,
|
|
1153
|
-
children: treeChildren
|
|
1414
|
+
/**
|
|
1415
|
+
* Toggle showing data table.
|
|
1416
|
+
*
|
|
1417
|
+
* @private
|
|
1418
|
+
* @function Highcharts.Exporting#hideData
|
|
1419
|
+
*
|
|
1420
|
+
* @param {boolean} [show]
|
|
1421
|
+
* Whether to show data table or not.
|
|
1422
|
+
*
|
|
1423
|
+
* @requires modules/exporting
|
|
1424
|
+
* @requires modules/export-data
|
|
1425
|
+
*/
|
|
1426
|
+
function toggleDataTable(show) {
|
|
1427
|
+
const chart = this.chart,
|
|
1428
|
+
// Create the div
|
|
1429
|
+
createContainer = (show = pick(show, !this.isDataTableVisible)) &&
|
|
1430
|
+
!this.dataTableDiv;
|
|
1431
|
+
if (createContainer) {
|
|
1432
|
+
this.dataTableDiv = ExportData_doc.createElement('div');
|
|
1433
|
+
this.dataTableDiv.className = 'highcharts-data-table';
|
|
1434
|
+
// Insert after the chart container
|
|
1435
|
+
chart.renderTo.parentNode.insertBefore(this.dataTableDiv, chart.renderTo.nextSibling);
|
|
1154
1436
|
}
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
// Create the div
|
|
1173
|
-
const createContainer = show && !this.dataTableDiv;
|
|
1174
|
-
if (createContainer) {
|
|
1175
|
-
this.dataTableDiv = ExportData_doc.createElement('div');
|
|
1176
|
-
this.dataTableDiv.className = 'highcharts-data-table';
|
|
1177
|
-
// Insert after the chart container
|
|
1178
|
-
this.renderTo.parentNode.insertBefore(this.dataTableDiv, this.renderTo.nextSibling);
|
|
1179
|
-
}
|
|
1180
|
-
// Toggle the visibility
|
|
1181
|
-
if (this.dataTableDiv) {
|
|
1182
|
-
const style = this.dataTableDiv.style, oldDisplay = style.display;
|
|
1183
|
-
style.display = show ? 'block' : 'none';
|
|
1184
|
-
// Generate the data table
|
|
1185
|
-
if (show) {
|
|
1186
|
-
this.dataTableDiv.innerHTML = (highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default()).emptyHTML;
|
|
1187
|
-
const ast = new (highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default())([this.getTableAST()]);
|
|
1188
|
-
ast.addToDOM(this.dataTableDiv);
|
|
1189
|
-
fireEvent(this, 'afterViewData', {
|
|
1190
|
-
element: this.dataTableDiv,
|
|
1191
|
-
wasHidden: createContainer || oldDisplay !== style.display
|
|
1192
|
-
});
|
|
1437
|
+
// Toggle the visibility
|
|
1438
|
+
if (this.dataTableDiv) {
|
|
1439
|
+
const style = this.dataTableDiv.style, oldDisplay = style.display;
|
|
1440
|
+
style.display = show ? 'block' : 'none';
|
|
1441
|
+
// Generate the data table
|
|
1442
|
+
if (show) {
|
|
1443
|
+
this.dataTableDiv.innerHTML = (highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default()).emptyHTML;
|
|
1444
|
+
const ast = new (highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default())([this.getTableAST()]);
|
|
1445
|
+
ast.addToDOM(this.dataTableDiv);
|
|
1446
|
+
fireEvent(chart, 'afterViewData', {
|
|
1447
|
+
element: this.dataTableDiv,
|
|
1448
|
+
wasHidden: createContainer || oldDisplay !== style.display
|
|
1449
|
+
});
|
|
1450
|
+
}
|
|
1451
|
+
else {
|
|
1452
|
+
fireEvent(chart, 'afterHideData');
|
|
1453
|
+
}
|
|
1193
1454
|
}
|
|
1194
|
-
|
|
1195
|
-
|
|
1455
|
+
// Set the flag
|
|
1456
|
+
this.isDataTableVisible = show;
|
|
1457
|
+
// Change the menu item text
|
|
1458
|
+
const exportDivElements = this.divElements, options = this.options, menuItems = options.buttons?.contextButton.menuItems, lang = chart.options.lang;
|
|
1459
|
+
if (options &&
|
|
1460
|
+
options.menuItemDefinitions &&
|
|
1461
|
+
lang &&
|
|
1462
|
+
lang.viewData &&
|
|
1463
|
+
lang.hideData &&
|
|
1464
|
+
menuItems &&
|
|
1465
|
+
exportDivElements) {
|
|
1466
|
+
const exportDivElement = exportDivElements[menuItems.indexOf('viewData')];
|
|
1467
|
+
if (exportDivElement) {
|
|
1468
|
+
highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default().setElementHTML(exportDivElement, this.isDataTableVisible ? lang.hideData : lang.viewData);
|
|
1469
|
+
}
|
|
1196
1470
|
}
|
|
1197
1471
|
}
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
exportDivElements) {
|
|
1211
|
-
const exportDivElement = exportDivElements[menuItems.indexOf('viewData')];
|
|
1212
|
-
if (exportDivElement) {
|
|
1213
|
-
highcharts_AST_commonjs_highcharts_AST_commonjs2_highcharts_AST_root_Highcharts_AST_default().setElementHTML(exportDivElement, this.isDataTableVisible ? lang.hideData : lang.viewData);
|
|
1214
|
-
}
|
|
1472
|
+
/**
|
|
1473
|
+
* View the data in a table below the chart.
|
|
1474
|
+
*
|
|
1475
|
+
* @function Highcharts.Exporting#viewData
|
|
1476
|
+
*
|
|
1477
|
+
* @emits Highcharts.Chart#event:afterViewData
|
|
1478
|
+
*
|
|
1479
|
+
* @requires modules/exporting
|
|
1480
|
+
* @requires modules/export-data
|
|
1481
|
+
*/
|
|
1482
|
+
function viewData() {
|
|
1483
|
+
this.toggleDataTable(true);
|
|
1215
1484
|
}
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
chartProto.downloadXLS = chartDownloadXLS;
|
|
1240
|
-
chartProto.getCSV = chartGetCSV;
|
|
1241
|
-
chartProto.getDataRows = chartGetDataRows;
|
|
1242
|
-
chartProto.getTable = chartGetTable;
|
|
1243
|
-
chartProto.getTableAST = chartGetTableAST;
|
|
1244
|
-
chartProto.hideData = chartHideData;
|
|
1245
|
-
chartProto.toggleDataTable = chartToggleDataTable;
|
|
1246
|
-
chartProto.viewData = chartViewData;
|
|
1247
|
-
// Add "Download CSV" to the exporting menu.
|
|
1248
|
-
// @todo consider move to defaults
|
|
1249
|
-
if (exportingOptions) {
|
|
1250
|
-
extend(exportingOptions.menuItemDefinitions, {
|
|
1251
|
-
downloadCSV: {
|
|
1252
|
-
textKey: 'downloadCSV',
|
|
1253
|
-
onclick: function () {
|
|
1254
|
-
this.downloadCSV();
|
|
1255
|
-
}
|
|
1256
|
-
},
|
|
1257
|
-
downloadXLS: {
|
|
1258
|
-
textKey: 'downloadXLS',
|
|
1259
|
-
onclick: function () {
|
|
1260
|
-
this.downloadXLS();
|
|
1261
|
-
}
|
|
1262
|
-
},
|
|
1263
|
-
viewData: {
|
|
1264
|
-
textKey: 'viewData',
|
|
1265
|
-
onclick: function () {
|
|
1266
|
-
wrapLoading.call(this, this.toggleDataTable);
|
|
1267
|
-
}
|
|
1485
|
+
/**
|
|
1486
|
+
* Wrapper function for the download functions, which handles showing and
|
|
1487
|
+
* hiding the loading message
|
|
1488
|
+
*
|
|
1489
|
+
* @private
|
|
1490
|
+
*
|
|
1491
|
+
* @requires modules/exporting
|
|
1492
|
+
* @requires modules/export-data
|
|
1493
|
+
*/
|
|
1494
|
+
function wrapLoading(fn) {
|
|
1495
|
+
const chart = this.chart, showMessage = Boolean(this.options.showExportInProgress);
|
|
1496
|
+
// Prefer requestAnimationFrame if available
|
|
1497
|
+
const timeoutFn = ExportData_win.requestAnimationFrame || setTimeout;
|
|
1498
|
+
// Outer timeout avoids menu freezing on click
|
|
1499
|
+
timeoutFn(() => {
|
|
1500
|
+
showMessage &&
|
|
1501
|
+
chart.showLoading(chart.options.lang.exportInProgress);
|
|
1502
|
+
timeoutFn(() => {
|
|
1503
|
+
try {
|
|
1504
|
+
fn.call(this);
|
|
1505
|
+
}
|
|
1506
|
+
finally {
|
|
1507
|
+
showMessage && chart.hideLoading();
|
|
1268
1508
|
}
|
|
1269
1509
|
});
|
|
1270
|
-
|
|
1271
|
-
exportingOptions.buttons.contextButton.menuItems) {
|
|
1272
|
-
exportingOptions.buttons.contextButton.menuItems.push('separator', 'downloadCSV', 'downloadXLS', 'viewData');
|
|
1273
|
-
}
|
|
1274
|
-
}
|
|
1275
|
-
setOptions(ExportData_ExportDataDefaults);
|
|
1276
|
-
const { arearange: AreaRangeSeries, gantt: GanttSeries, map: MapSeries, mapbubble: MapBubbleSeries, treemap: TreemapSeries, xrange: XRangeSeries } = SeriesClass.types;
|
|
1277
|
-
if (AreaRangeSeries) {
|
|
1278
|
-
AreaRangeSeries.prototype.keyToAxis = {
|
|
1279
|
-
low: 'y',
|
|
1280
|
-
high: 'y'
|
|
1281
|
-
};
|
|
1282
|
-
}
|
|
1283
|
-
if (GanttSeries) {
|
|
1284
|
-
GanttSeries.prototype.exportKey = 'name';
|
|
1285
|
-
GanttSeries.prototype.keyToAxis = {
|
|
1286
|
-
start: 'x',
|
|
1287
|
-
end: 'x'
|
|
1288
|
-
};
|
|
1289
|
-
}
|
|
1290
|
-
if (MapSeries) {
|
|
1291
|
-
MapSeries.prototype.exportKey = 'name';
|
|
1292
|
-
}
|
|
1293
|
-
if (MapBubbleSeries) {
|
|
1294
|
-
MapBubbleSeries.prototype.exportKey = 'name';
|
|
1295
|
-
}
|
|
1296
|
-
if (TreemapSeries) {
|
|
1297
|
-
TreemapSeries.prototype.exportKey = 'name';
|
|
1298
|
-
}
|
|
1299
|
-
if (XRangeSeries) {
|
|
1300
|
-
XRangeSeries.prototype.keyToAxis = {
|
|
1301
|
-
x2: 'x'
|
|
1302
|
-
};
|
|
1303
|
-
}
|
|
1304
|
-
}
|
|
1305
|
-
}
|
|
1306
|
-
/**
|
|
1307
|
-
* Get a blob object from content, if blob is supported
|
|
1308
|
-
*
|
|
1309
|
-
* @private
|
|
1310
|
-
* @param {string} content
|
|
1311
|
-
* The content to create the blob from.
|
|
1312
|
-
* @param {string} type
|
|
1313
|
-
* The type of the content.
|
|
1314
|
-
* @return {string|undefined}
|
|
1315
|
-
* The blob object, or undefined if not supported.
|
|
1316
|
-
*/
|
|
1317
|
-
function getBlobFromContent(content, type) {
|
|
1318
|
-
const nav = ExportData_win.navigator, domurl = ExportData_win.URL || ExportData_win.webkitURL || ExportData_win;
|
|
1319
|
-
try {
|
|
1320
|
-
// MS specific
|
|
1321
|
-
if ((nav.msSaveOrOpenBlob) && ExportData_win.MSBlobBuilder) {
|
|
1322
|
-
const blob = new ExportData_win.MSBlobBuilder();
|
|
1323
|
-
blob.append(content);
|
|
1324
|
-
return blob.getBlob('image/svg+xml');
|
|
1325
|
-
}
|
|
1326
|
-
return domurl.createObjectURL(new ExportData_win.Blob(['\uFEFF' + content], // #7084
|
|
1327
|
-
{ type: type }));
|
|
1328
|
-
}
|
|
1329
|
-
catch (e) {
|
|
1330
|
-
// Ignore
|
|
1510
|
+
});
|
|
1331
1511
|
}
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
function onChartAfterViewData
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1512
|
+
/**
|
|
1513
|
+
* Function that runs on the chart's 'afterViewData' event.
|
|
1514
|
+
*
|
|
1515
|
+
* @private
|
|
1516
|
+
* @function Highcharts.Chart#onChartAfterViewData
|
|
1517
|
+
*
|
|
1518
|
+
* @requires modules/exporting
|
|
1519
|
+
* @requires modules/export-data
|
|
1520
|
+
*/
|
|
1521
|
+
function onChartAfterViewData() {
|
|
1522
|
+
const exporting = this.exporting, dataTableDiv = exporting?.dataTableDiv, getCellValue = (tr, index) => tr.children[index].textContent, comparer = (index, ascending) => (a, b) => {
|
|
1523
|
+
const sort = (v1, v2) => (v1 !== '' && v2 !== '' && !isNaN(v1) && !isNaN(v2) ?
|
|
1524
|
+
v1 - v2 :
|
|
1525
|
+
v1.toString().localeCompare(v2));
|
|
1526
|
+
return sort(getCellValue(ascending ? a : b, index), getCellValue(ascending ? b : a, index));
|
|
1527
|
+
};
|
|
1528
|
+
if (dataTableDiv && exporting.options.allowTableSorting) {
|
|
1529
|
+
const row = dataTableDiv.querySelector('thead tr');
|
|
1530
|
+
if (row) {
|
|
1531
|
+
row.childNodes.forEach((th) => {
|
|
1532
|
+
const tableBody = dataTableDiv.querySelector('tbody');
|
|
1533
|
+
th.addEventListener('click', function () {
|
|
1534
|
+
const rows = [...dataTableDiv.querySelectorAll('tr:not(thead tr)')], headers = [...th.parentNode.children];
|
|
1535
|
+
if (exporting) {
|
|
1536
|
+
rows.sort(comparer(headers.indexOf(th), exporting.ascendingOrderInTable =
|
|
1537
|
+
!exporting.ascendingOrderInTable)).forEach((tr) => {
|
|
1538
|
+
tableBody?.appendChild(tr);
|
|
1539
|
+
});
|
|
1540
|
+
headers.forEach((th) => {
|
|
1541
|
+
[
|
|
1542
|
+
'highcharts-sort-ascending',
|
|
1543
|
+
'highcharts-sort-descending'
|
|
1544
|
+
].forEach((className) => {
|
|
1545
|
+
if (th.classList.contains(className)) {
|
|
1546
|
+
th.classList.remove(className);
|
|
1547
|
+
}
|
|
1548
|
+
});
|
|
1549
|
+
});
|
|
1550
|
+
th.classList.add(exporting.ascendingOrderInTable ?
|
|
1551
|
+
'highcharts-sort-ascending' :
|
|
1552
|
+
'highcharts-sort-descending');
|
|
1553
|
+
}
|
|
1365
1554
|
});
|
|
1366
|
-
th.classList.add(chart.ascendingOrderInTable ?
|
|
1367
|
-
'highcharts-sort-ascending' :
|
|
1368
|
-
'highcharts-sort-descending');
|
|
1369
1555
|
});
|
|
1370
|
-
}
|
|
1556
|
+
}
|
|
1371
1557
|
}
|
|
1372
1558
|
}
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
function onChartRenderer
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1559
|
+
/**
|
|
1560
|
+
* Function that runs on the chart's 'render' event. Handle the showTable
|
|
1561
|
+
* option.
|
|
1562
|
+
*
|
|
1563
|
+
* @private
|
|
1564
|
+
* @function Highcharts.Chart#onChartRenderer
|
|
1565
|
+
*
|
|
1566
|
+
* @requires modules/exporting
|
|
1567
|
+
* @requires modules/export-data
|
|
1568
|
+
*/
|
|
1569
|
+
function onChartRenderer() {
|
|
1570
|
+
if (this.options?.exporting?.showTable &&
|
|
1571
|
+
!this.options.chart.forExport) {
|
|
1572
|
+
this.exporting?.viewData();
|
|
1573
|
+
}
|
|
1384
1574
|
}
|
|
1385
|
-
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
function onChartDestroy
|
|
1391
|
-
|
|
1392
|
-
|
|
1575
|
+
/**
|
|
1576
|
+
* Function that runs on the chart's 'destroy' event. Handle cleaning up the
|
|
1577
|
+
* dataTableDiv element.
|
|
1578
|
+
*
|
|
1579
|
+
* @private
|
|
1580
|
+
* @function Highcharts.Chart#onChartDestroy
|
|
1581
|
+
*
|
|
1582
|
+
* @requires modules/exporting
|
|
1583
|
+
* @requires modules/export-data
|
|
1584
|
+
*/
|
|
1585
|
+
function onChartDestroy() {
|
|
1586
|
+
this.exporting?.dataTableDiv?.remove();
|
|
1587
|
+
}
|
|
1588
|
+
})(ExportData || (ExportData = {}));
|
|
1393
1589
|
/* *
|
|
1394
1590
|
*
|
|
1395
|
-
*
|
|
1591
|
+
* Default Export
|
|
1396
1592
|
*
|
|
1397
1593
|
* */
|
|
1398
|
-
const ExportData = {
|
|
1399
|
-
compose
|
|
1400
|
-
};
|
|
1401
1594
|
/* harmony default export */ const ExportData_ExportData = (ExportData);
|
|
1402
1595
|
/* *
|
|
1403
1596
|
*
|
|
@@ -1440,7 +1633,7 @@ const G = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_d
|
|
|
1440
1633
|
G.dataURLtoBlob = G.dataURLtoBlob || Extensions_DownloadURL.dataURLtoBlob;
|
|
1441
1634
|
G.downloadURL = G.downloadURL || Extensions_DownloadURL.downloadURL;
|
|
1442
1635
|
// Compose
|
|
1443
|
-
ExportData_ExportData.compose(G.Chart, G.Series);
|
|
1636
|
+
ExportData_ExportData.compose(G.Chart, G.Exporting, G.Series);
|
|
1444
1637
|
/* harmony default export */ const export_data_src = ((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()));
|
|
1445
1638
|
|
|
1446
1639
|
__webpack_exports__ = __webpack_exports__["default"];
|