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