highcharts 9.3.3 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +1 -1
- package/css/highcharts.css +19 -2
- package/css/highcharts.scss +17 -2
- package/css/themes/dark-unica.css +19 -2
- package/css/themes/grid-light.css +19 -2
- package/css/themes/sand-signika.css +19 -2
- package/es-modules/Accessibility/Accessibility.js +1 -1
- package/es-modules/Accessibility/Components/LegendComponent.js +31 -23
- package/es-modules/Accessibility/Components/MenuComponent.js +4 -5
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +2 -2
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +7 -6
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +1 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +0 -1
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -3
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +61 -29
- package/es-modules/Accessibility/Components/ZoomComponent.js +13 -10
- package/es-modules/Accessibility/HighContrastMode.js +2 -2
- package/es-modules/Accessibility/KeyboardNavigation.js +113 -98
- package/es-modules/Accessibility/ProxyElement.js +14 -6
- package/es-modules/Accessibility/ProxyProvider.js +10 -2
- package/es-modules/Core/Axis/Axis.js +150 -46
- package/es-modules/Core/Axis/Color/ColorAxis.js +22 -5
- package/es-modules/Core/Axis/GridAxis.js +10 -9
- package/es-modules/Core/Axis/TreeGridTick.js +11 -0
- package/es-modules/Core/Chart/Chart3D.js +1 -11
- package/es-modules/Core/Chart/ChartDefaults.js +32 -11
- package/es-modules/Core/Chart/MapChart.js +1 -6
- package/es-modules/Core/DefaultOptions.js +2 -0
- package/es-modules/Core/Geometry/PolygonClip.js +84 -0
- package/es-modules/Core/Globals.js +4 -18
- package/es-modules/Core/HttpUtilities.js +13 -8
- package/es-modules/Core/Legend/Legend.js +10 -8
- package/es-modules/Core/Navigator.js +9 -6
- package/es-modules/Core/Pointer.js +15 -11
- package/es-modules/Core/Renderer/HTML/AST.js +62 -5
- package/es-modules/Core/Renderer/SVG/SVGElement.js +25 -41
- package/es-modules/Core/Renderer/SVG/SVGElement3D.js +17 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +17 -17
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +12 -10
- package/es-modules/Core/Series/DataLabel.js +11 -3
- package/es-modules/Core/Series/Point.js +2 -2
- package/es-modules/Core/Series/Series.js +33 -15
- package/es-modules/Core/Series/SeriesDefaults.js +4 -1
- package/es-modules/Core/Tooltip.js +14 -31
- package/es-modules/Core/Utilities.js +28 -28
- package/es-modules/Extensions/Annotations/Annotations.js +7 -0
- package/es-modules/Extensions/Annotations/MockPoint.js +1 -1
- package/es-modules/Extensions/Annotations/NavigationBindings.js +1 -1
- package/es-modules/Extensions/Annotations/Popup.js +1 -1
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +5 -3
- package/es-modules/Extensions/Boost/BoostInit.js +6 -1
- package/es-modules/Extensions/Boost/BoostOptions.js +26 -0
- package/es-modules/Extensions/Boost/Boostables.js +1 -0
- package/es-modules/Extensions/Boost/WGLRenderer.js +48 -37
- package/es-modules/Extensions/Boost/WGLShader.js +4 -3
- package/es-modules/Extensions/Breadcrumbs.js +874 -0
- package/es-modules/Extensions/Data.js +26 -14
- package/es-modules/Extensions/DataGrouping.js +5 -2
- package/es-modules/Extensions/DraggablePoints.js +9 -7
- package/es-modules/Extensions/Drilldown.js +147 -94
- package/es-modules/Extensions/Exporting/Exporting.js +9 -7
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +49 -1
- package/es-modules/Extensions/GeoJSON.js +149 -124
- package/es-modules/Extensions/MarkerClusters.js +34 -20
- package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +110 -22
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +1 -1
- package/es-modules/Extensions/ScrollablePlotArea.js +5 -1
- package/es-modules/Extensions/Stacking.js +3 -2
- package/es-modules/Extensions/Themes/HighContrastDark.js +10 -10
- package/es-modules/Extensions/Themes/HighContrastLight.js +10 -10
- package/es-modules/Maps/MapNavigation.js +49 -8
- package/es-modules/Maps/MapPointer.js +16 -0
- package/es-modules/Maps/MapUtilities.js +56 -0
- package/es-modules/Maps/MapView.js +606 -135
- package/es-modules/Maps/MapViewInsetsOptionsDefault.js +148 -0
- package/es-modules/Maps/MapViewOptionsDefault.js +58 -20
- package/es-modules/Maps/Projection.js +169 -77
- package/es-modules/Maps/Projections/EqualEarth.js +15 -6
- package/es-modules/Maps/Projections/LambertConformalConic.js +27 -19
- package/es-modules/Maps/Projections/Miller.js +23 -10
- package/es-modules/Maps/Projections/Orthographic.js +21 -10
- package/es-modules/Maps/Projections/WebMercator.js +25 -13
- package/es-modules/Series/ArcDiagram/ArcDiagramPoint.js +77 -0
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +581 -0
- package/es-modules/Series/Column/ColumnSeries.js +4 -3
- package/es-modules/Series/DataModifyComposition.js +1 -0
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +2 -2
- package/es-modules/Series/DrawPointComposition.js +7 -4
- package/es-modules/Series/Lollipop/LollipopSeries.js +1 -1
- package/es-modules/Series/Map/MapPoint.js +24 -1
- package/es-modules/Series/Map/MapSeries.js +196 -169
- package/es-modules/Series/MapBubble/MapBubblePoint.js +16 -24
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +11 -0
- package/es-modules/Series/MapPoint/MapPointPoint.js +2 -8
- package/es-modules/Series/MapPoint/MapPointSeries.js +36 -14
- package/es-modules/Series/NodesComposition.js +60 -13
- package/es-modules/Series/OHLC/OHLCSeries.js +7 -0
- package/es-modules/Series/Organization/OrganizationPoint.js +68 -2
- package/es-modules/Series/Organization/OrganizationSeries.js +79 -25
- package/es-modules/Series/Pie/PiePoint.js +12 -5
- package/es-modules/Series/Pie3D/Pie3DSeries.js +19 -0
- package/es-modules/Series/Sankey/SankeyColumnComposition.js +193 -0
- package/es-modules/Series/Sankey/SankeyPoint.js +37 -1
- package/es-modules/Series/Sankey/SankeySeries.js +10 -127
- package/es-modules/Series/Scatter/ScatterSeries.js +1 -1
- package/es-modules/Series/Sunburst/SunburstSeries.js +13 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +88 -80
- package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -0
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +9 -2
- package/es-modules/Stock/StockToolsGui.js +1 -1
- package/es-modules/masters/highcharts-3d.src.js +1 -1
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +1 -1
- package/es-modules/masters/highcharts.src.js +1 -1
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
- package/es-modules/masters/modules/annotations.src.js +1 -1
- package/es-modules/masters/modules/arc-diagram.src.js +14 -0
- package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
- package/es-modules/masters/modules/boost-canvas.src.js +1 -1
- package/es-modules/masters/modules/boost.src.js +1 -1
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +2 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/exporting.src.js +1 -1
- package/es-modules/masters/modules/full-screen.src.js +1 -1
- package/es-modules/masters/modules/funnel.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/es-modules/masters/modules/gantt.src.js +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +5 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +1 -1
- package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/oldie-polyfills.src.js +1 -1
- package/es-modules/masters/modules/oldie.src.js +1 -1
- package/es-modules/masters/modules/organization.src.js +1 -1
- package/es-modules/masters/modules/overlapping-datalabels.src.js +1 -1
- package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
- package/es-modules/masters/modules/pareto.src.js +1 -1
- package/es-modules/masters/modules/pathfinder.src.js +1 -1
- package/es-modules/masters/modules/pattern-fill.src.js +1 -1
- package/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/es-modules/masters/modules/pyramid3d.src.js +1 -1
- package/es-modules/masters/modules/sankey.src.js +1 -1
- package/es-modules/masters/modules/series-label.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +1 -1
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/timeline.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +1 -1
- package/es-modules/masters/modules/treemap.src.js +5 -1
- package/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/es-modules/masters/modules/variwide.src.js +1 -1
- package/es-modules/masters/modules/vector.src.js +1 -1
- package/es-modules/masters/modules/venn.src.js +1 -1
- package/es-modules/masters/modules/windbarb.src.js +1 -1
- package/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/es-modules/masters/modules/xrange.src.js +1 -1
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/brand-dark.src.js +1 -1
- package/es-modules/masters/themes/brand-light.src.js +1 -1
- package/es-modules/masters/themes/dark-blue.src.js +1 -1
- package/es-modules/masters/themes/dark-green.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/gray.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/grid.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/skies.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +99 -98
- package/highcharts-3d.js.map +1 -1
- package/highcharts-3d.src.js +50 -20
- package/highcharts-gantt.js +800 -795
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +528 -290
- package/highcharts-more.js +195 -194
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.js +13 -2
- package/highcharts.d.ts +2162 -504
- package/highcharts.js +586 -581
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +2162 -504
- package/highcharts.src.js +494 -272
- package/highmaps.js +753 -723
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +3603 -2117
- package/highstock.js +790 -786
- package/highstock.js.map +1 -1
- package/highstock.src.js +519 -283
- package/indicators/acceleration-bands.js +12 -11
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.js +11 -2
- package/indicators/accumulation-distribution.js +5 -5
- package/indicators/accumulation-distribution.js.map +1 -1
- package/indicators/accumulation-distribution.src.js +11 -2
- package/indicators/ao.js +6 -6
- package/indicators/ao.js.map +1 -1
- package/indicators/ao.src.js +11 -2
- package/indicators/apo.js +5 -5
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +11 -2
- package/indicators/aroon-oscillator.js +10 -10
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.js +11 -2
- package/indicators/aroon.js +11 -11
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.js +11 -2
- package/indicators/atr.js +5 -5
- package/indicators/atr.js.map +1 -1
- package/indicators/atr.src.js +11 -2
- package/indicators/bollinger-bands.js +12 -12
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.js +11 -2
- package/indicators/cci.js +5 -5
- package/indicators/cci.js.map +1 -1
- package/indicators/cci.src.js +11 -2
- package/indicators/chaikin.js +8 -8
- package/indicators/chaikin.js.map +1 -1
- package/indicators/chaikin.src.js +11 -2
- package/indicators/cmf.js +6 -6
- package/indicators/cmf.js.map +1 -1
- package/indicators/cmf.src.js +11 -2
- package/indicators/cmo.js +5 -5
- package/indicators/cmo.js.map +1 -1
- package/indicators/cmo.src.js +11 -2
- package/indicators/dema.js +5 -5
- package/indicators/dema.js.map +1 -1
- package/indicators/dema.src.js +11 -2
- package/indicators/disparity-index.js +6 -6
- package/indicators/disparity-index.js.map +1 -1
- package/indicators/disparity-index.src.js +11 -2
- package/indicators/dmi.js +12 -12
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +11 -2
- package/indicators/dpo.js +5 -5
- package/indicators/dpo.js.map +1 -1
- package/indicators/dpo.src.js +11 -2
- package/indicators/ema.js +2 -1
- package/indicators/ema.js.map +1 -1
- package/indicators/ema.src.js +10 -1
- package/indicators/ichimoku-kinko-hyo.js +16 -16
- package/indicators/ichimoku-kinko-hyo.js.map +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +11 -2
- package/indicators/indicators-all.js +195 -194
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.js +21 -5
- package/indicators/indicators.js +13 -12
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +21 -5
- package/indicators/keltner-channels.js +12 -11
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.js +11 -2
- package/indicators/klinger.js +13 -13
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +11 -2
- package/indicators/macd.js +12 -11
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +11 -2
- package/indicators/mfi.js +6 -6
- package/indicators/mfi.js.map +1 -1
- package/indicators/mfi.src.js +11 -2
- package/indicators/momentum.js +5 -5
- package/indicators/momentum.js.map +1 -1
- package/indicators/momentum.src.js +11 -2
- package/indicators/natr.js +5 -4
- package/indicators/natr.js.map +1 -1
- package/indicators/natr.src.js +11 -2
- package/indicators/obv.js +5 -5
- package/indicators/obv.js.map +1 -1
- package/indicators/obv.src.js +11 -2
- package/indicators/pivot-points.js +11 -11
- package/indicators/pivot-points.js.map +1 -1
- package/indicators/pivot-points.src.js +11 -2
- package/indicators/ppo.js +5 -5
- package/indicators/ppo.js.map +1 -1
- package/indicators/ppo.src.js +11 -2
- package/indicators/price-channel.js +11 -11
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.js +11 -2
- package/indicators/price-envelopes.js +8 -8
- package/indicators/price-envelopes.js.map +1 -1
- package/indicators/price-envelopes.src.js +11 -2
- package/indicators/psar.js +7 -6
- package/indicators/psar.js.map +1 -1
- package/indicators/psar.src.js +11 -2
- package/indicators/regressions.js +12 -12
- package/indicators/regressions.js.map +1 -1
- package/indicators/regressions.src.js +11 -2
- package/indicators/roc.js +5 -5
- package/indicators/roc.js.map +1 -1
- package/indicators/roc.src.js +11 -2
- package/indicators/rsi.js +6 -5
- package/indicators/rsi.js.map +1 -1
- package/indicators/rsi.src.js +11 -2
- package/indicators/slow-stochastic.js +5 -5
- package/indicators/slow-stochastic.js.map +1 -1
- package/indicators/slow-stochastic.src.js +11 -2
- package/indicators/stochastic.js +12 -12
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.js +11 -2
- package/indicators/supertrend.js +10 -10
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +11 -2
- package/indicators/tema.js +6 -6
- package/indicators/tema.js.map +1 -1
- package/indicators/tema.src.js +11 -2
- package/indicators/trendline.js +5 -5
- package/indicators/trendline.js.map +1 -1
- package/indicators/trendline.src.js +11 -2
- package/indicators/trix.js +4 -4
- package/indicators/trix.js.map +1 -1
- package/indicators/trix.src.js +11 -2
- package/indicators/volume-by-price.js +17 -17
- package/indicators/volume-by-price.js.map +1 -1
- package/indicators/volume-by-price.src.js +11 -2
- package/indicators/vwap.js +5 -5
- package/indicators/vwap.js.map +1 -1
- package/indicators/vwap.src.js +11 -2
- package/indicators/williams-r.js +6 -5
- package/indicators/williams-r.js.map +1 -1
- package/indicators/williams-r.src.js +11 -2
- package/indicators/wma.js +5 -5
- package/indicators/wma.js.map +1 -1
- package/indicators/wma.src.js +11 -2
- package/indicators/zigzag.js +6 -6
- package/indicators/zigzag.js.map +1 -1
- package/indicators/zigzag.src.js +11 -2
- package/lib/jspdf.js +299 -184
- package/lib/jspdf.src.js +25266 -18067
- package/lib/svg2pdf.js +35 -31
- package/lib/svg2pdf.src.js +5721 -4179
- package/modules/accessibility.js +231 -229
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +278 -197
- package/modules/annotations-advanced.js +144 -144
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.js +26 -8
- package/modules/annotations.js +79 -79
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +21 -5
- package/modules/arc-diagram.js +25 -0
- package/modules/arc-diagram.js.map +1 -0
- package/modules/arc-diagram.src.js +770 -0
- package/modules/arrow-symbols.js +4 -3
- package/modules/arrow-symbols.js.map +1 -1
- package/modules/arrow-symbols.src.js +11 -2
- package/modules/boost-canvas.js +15 -15
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.js +11 -2
- package/modules/boost.js +80 -79
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +71 -43
- package/modules/broken-axis.js +13 -13
- package/modules/broken-axis.js.map +1 -1
- package/modules/broken-axis.src.js +11 -2
- package/modules/bullet.js +9 -9
- package/modules/bullet.js.map +1 -1
- package/modules/bullet.src.js +11 -2
- package/modules/coloraxis.js +24 -24
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +33 -7
- package/modules/current-date-indicator.js +5 -4
- package/modules/current-date-indicator.js.map +1 -1
- package/modules/current-date-indicator.src.js +11 -2
- package/modules/cylinder.js +11 -11
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +11 -2
- package/modules/data.js +34 -33
- package/modules/data.js.map +1 -1
- package/modules/data.src.js +59 -32
- package/modules/datagrouping.js +21 -20
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.js +16 -4
- package/modules/debugger.js +6 -6
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +11 -2
- package/modules/dependency-wheel.js +12 -11
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +14 -5
- package/modules/dotplot.js +6 -6
- package/modules/dotplot.js.map +1 -1
- package/modules/dotplot.src.js +11 -2
- package/modules/drag-panes.js +10 -10
- package/modules/drag-panes.js.map +1 -1
- package/modules/drag-panes.src.js +11 -2
- package/modules/draggable-points.js +35 -34
- package/modules/draggable-points.js.map +1 -1
- package/modules/draggable-points.src.js +20 -9
- package/modules/drilldown.d.ts +19 -0
- package/modules/drilldown.js +37 -25
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.d.ts +19 -0
- package/modules/drilldown.src.js +1090 -105
- package/modules/dumbbell.js +17 -17
- package/modules/dumbbell.js.map +1 -1
- package/modules/dumbbell.src.js +11 -2
- package/modules/export-data.js +21 -20
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +11 -2
- package/modules/exporting.js +39 -39
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +82 -18
- package/modules/full-screen.js +8 -7
- package/modules/full-screen.js.map +1 -1
- package/modules/full-screen.src.js +11 -2
- package/modules/funnel.js +12 -12
- package/modules/funnel.js.map +1 -1
- package/modules/funnel.src.js +11 -2
- package/modules/funnel3d.js +21 -21
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +11 -2
- package/modules/gantt.js +217 -217
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +45 -20
- package/modules/grid-axis.js +23 -23
- package/modules/grid-axis.js.map +1 -1
- package/modules/grid-axis.src.js +22 -11
- package/modules/heatmap.js +40 -39
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +33 -7
- package/modules/heikinashi.js +8 -8
- package/modules/heikinashi.js.map +1 -1
- package/modules/heikinashi.src.js +11 -2
- package/modules/histogram-bellcurve.js +13 -13
- package/modules/histogram-bellcurve.js.map +1 -1
- package/modules/histogram-bellcurve.src.js +11 -2
- package/modules/hollowcandlestick.js +9 -9
- package/modules/hollowcandlestick.js.map +1 -1
- package/modules/hollowcandlestick.src.js +11 -2
- package/modules/item-series.js +12 -12
- package/modules/item-series.js.map +1 -1
- package/modules/item-series.src.js +11 -2
- package/modules/lollipop.js +7 -7
- package/modules/lollipop.js.map +1 -1
- package/modules/lollipop.src.js +12 -3
- package/modules/map.d.ts +80 -43
- package/modules/map.js +169 -144
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +80 -43
- package/modules/map.src.js +7960 -6687
- package/modules/marker-clusters.js +36 -36
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +47 -23
- package/modules/networkgraph.d.ts +5 -0
- package/modules/networkgraph.js +49 -48
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.d.ts +5 -0
- package/modules/networkgraph.src.js +77 -15
- package/modules/no-data-to-display.js +5 -5
- package/modules/no-data-to-display.js.map +1 -1
- package/modules/no-data-to-display.src.js +11 -2
- package/modules/offline-exporting.js +20 -18
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +126 -25
- package/modules/oldie-polyfills.js +7 -7
- package/modules/oldie-polyfills.js.map +1 -1
- package/modules/oldie-polyfills.src.js +11 -2
- package/modules/oldie.js +30 -30
- package/modules/oldie.js.map +1 -1
- package/modules/oldie.src.js +12 -3
- package/modules/organization.js +16 -14
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +166 -32
- package/modules/overlapping-datalabels.js +3 -2
- package/modules/overlapping-datalabels.js.map +1 -1
- package/modules/overlapping-datalabels.src.js +11 -2
- package/modules/parallel-coordinates.js +11 -11
- package/modules/parallel-coordinates.js.map +1 -1
- package/modules/parallel-coordinates.src.js +11 -2
- package/modules/pareto.js +7 -7
- package/modules/pareto.js.map +1 -1
- package/modules/pareto.src.js +11 -2
- package/modules/pathfinder.js +31 -31
- package/modules/pathfinder.js.map +1 -1
- package/modules/pathfinder.src.js +11 -2
- package/modules/pattern-fill.js +14 -14
- package/modules/pattern-fill.js.map +1 -1
- package/modules/pattern-fill.src.js +11 -2
- package/modules/price-indicator.js +5 -5
- package/modules/price-indicator.js.map +1 -1
- package/modules/price-indicator.src.js +11 -2
- package/modules/pyramid3d.js +4 -4
- package/modules/pyramid3d.js.map +1 -1
- package/modules/pyramid3d.src.js +11 -2
- package/modules/sankey.d.ts +5 -0
- package/modules/sankey.js +32 -29
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.d.ts +5 -0
- package/modules/sankey.src.js +338 -156
- package/modules/series-label.js +18 -17
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +11 -2
- package/modules/solid-gauge.js +10 -10
- package/modules/solid-gauge.js.map +1 -1
- package/modules/solid-gauge.src.js +11 -2
- package/modules/sonification.js +59 -59
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.js +11 -2
- package/modules/static-scale.js +5 -4
- package/modules/static-scale.js.map +1 -1
- package/modules/static-scale.src.js +11 -2
- package/modules/stock-tools.js +78 -78
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.js +21 -5
- package/modules/stock.js +162 -162
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.js +36 -13
- package/modules/streamgraph.js +5 -4
- package/modules/streamgraph.js.map +1 -1
- package/modules/streamgraph.src.js +11 -2
- package/modules/sunburst.d.ts +3 -0
- package/modules/sunburst.js +73 -60
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.d.ts +3 -0
- package/modules/sunburst.src.js +1049 -96
- package/modules/tilemap.js +17 -17
- package/modules/tilemap.js.map +1 -1
- package/modules/tilemap.src.js +11 -2
- package/modules/timeline.js +18 -18
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +11 -2
- package/modules/treegrid.js +57 -56
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +33 -11
- package/modules/treemap.d.ts +3 -0
- package/modules/treemap.js +53 -41
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.d.ts +3 -0
- package/modules/treemap.src.js +1039 -95
- package/modules/variable-pie.js +9 -9
- package/modules/variable-pie.js.map +1 -1
- package/modules/variable-pie.src.js +11 -2
- package/modules/variwide.js +12 -12
- package/modules/variwide.js.map +1 -1
- package/modules/variwide.src.js +11 -2
- package/modules/vector.js +8 -7
- package/modules/vector.js.map +1 -1
- package/modules/vector.src.js +11 -2
- package/modules/venn.js +31 -31
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +18 -6
- package/modules/windbarb.js +15 -15
- package/modules/windbarb.js.map +1 -1
- package/modules/windbarb.src.js +11 -2
- package/modules/wordcloud.js +23 -23
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +18 -6
- package/modules/xrange.js +16 -16
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +11 -2
- package/package.json +1 -1
- package/themes/avocado.js +4 -3
- package/themes/avocado.js.map +1 -1
- package/themes/avocado.src.js +11 -2
- package/themes/brand-dark.js +9 -8
- package/themes/brand-dark.js.map +1 -1
- package/themes/brand-dark.src.js +11 -2
- package/themes/brand-light.js +8 -8
- package/themes/brand-light.js.map +1 -1
- package/themes/brand-light.src.js +11 -2
- package/themes/dark-blue.js +9 -8
- package/themes/dark-blue.js.map +1 -1
- package/themes/dark-blue.src.js +11 -2
- package/themes/dark-green.js +9 -8
- package/themes/dark-green.js.map +1 -1
- package/themes/dark-green.src.js +11 -2
- package/themes/dark-unica.js +8 -7
- package/themes/dark-unica.js.map +1 -1
- package/themes/dark-unica.src.js +11 -2
- package/themes/gray.js +9 -8
- package/themes/gray.js.map +1 -1
- package/themes/gray.src.js +11 -2
- package/themes/grid-light.js +5 -4
- package/themes/grid-light.js.map +1 -1
- package/themes/grid-light.src.js +11 -2
- package/themes/grid.js +5 -5
- package/themes/grid.js.map +1 -1
- package/themes/grid.src.js +11 -2
- package/themes/high-contrast-dark.js +7 -7
- package/themes/high-contrast-dark.js.map +1 -1
- package/themes/high-contrast-dark.src.js +21 -12
- package/themes/high-contrast-light.js +3 -3
- package/themes/high-contrast-light.js.map +1 -1
- package/themes/high-contrast-light.src.js +21 -12
- package/themes/sand-signika.js +5 -5
- package/themes/sand-signika.js.map +1 -1
- package/themes/sand-signika.src.js +11 -2
- package/themes/skies.js +5 -5
- package/themes/skies.js.map +1 -1
- package/themes/skies.src.js +11 -2
- package/themes/sunset.js +3 -3
- package/themes/sunset.js.map +1 -1
- package/themes/sunset.src.js +11 -2
- package/es-modules/Maps/ProjectionDefinition.js +0 -9
|
@@ -19,6 +19,8 @@ import Point from '../Core/Series/Point.js';
|
|
|
19
19
|
import SeriesRegistry from '../Core/Series/SeriesRegistry.js';
|
|
20
20
|
var seriesTypes = SeriesRegistry.seriesTypes;
|
|
21
21
|
import U from '../Core/Utilities.js';
|
|
22
|
+
import D from '../Core/DefaultOptions.js';
|
|
23
|
+
var getOptions = D.getOptions;
|
|
22
24
|
var addEvent = U.addEvent, defined = U.defined, extend = U.extend, fireEvent = U.fireEvent, isNumber = U.isNumber, merge = U.merge, objectEach = U.objectEach, pick = U.pick, splat = U.splat;
|
|
23
25
|
/**
|
|
24
26
|
* Callback function to modify the CSV before parsing it by the data module.
|
|
@@ -609,6 +611,10 @@ var Data = /** @class */ (function () {
|
|
|
609
611
|
this.firstRowAsNames = pick(options.firstRowAsNames, this.firstRowAsNames, true);
|
|
610
612
|
this.decimalRegex = (decimalPoint &&
|
|
611
613
|
new RegExp('^(-?[0-9]+)' + decimalPoint + '([0-9]+)$'));
|
|
614
|
+
// Always stop old polling when we have new options
|
|
615
|
+
if (this.liveDataTimeout !== void 0) {
|
|
616
|
+
clearTimeout(this.liveDataTimeout);
|
|
617
|
+
}
|
|
612
618
|
// This is a two-dimensional array holding the raw, trimmed string
|
|
613
619
|
// values with the same organisation as the columns array. It makes it
|
|
614
620
|
// possible for example to revert from interpreted timestamps to
|
|
@@ -617,11 +623,7 @@ var Data = /** @class */ (function () {
|
|
|
617
623
|
// No need to parse or interpret anything
|
|
618
624
|
if (this.columns.length) {
|
|
619
625
|
this.dataFound();
|
|
620
|
-
hasData =
|
|
621
|
-
}
|
|
622
|
-
if (this.hasURLOption(options)) {
|
|
623
|
-
clearTimeout(this.liveDataTimeout);
|
|
624
|
-
hasData = false;
|
|
626
|
+
hasData = !this.hasURLOption(options);
|
|
625
627
|
}
|
|
626
628
|
if (!hasData) {
|
|
627
629
|
// Fetch live data
|
|
@@ -1357,7 +1359,7 @@ var Data = /** @class */ (function () {
|
|
|
1357
1359
|
success: function (json) {
|
|
1358
1360
|
fn(json);
|
|
1359
1361
|
if (options.enablePolling) {
|
|
1360
|
-
setTimeout(function () {
|
|
1362
|
+
data.liveDataTimeout = setTimeout(function () {
|
|
1361
1363
|
fetchSheet(fn);
|
|
1362
1364
|
}, refreshRate);
|
|
1363
1365
|
}
|
|
@@ -1451,9 +1453,10 @@ var Data = /** @class */ (function () {
|
|
|
1451
1453
|
* Column index
|
|
1452
1454
|
*/
|
|
1453
1455
|
Data.prototype.parseColumn = function (column, col) {
|
|
1454
|
-
var rawColumns = this.rawColumns, columns = this.columns,
|
|
1456
|
+
var rawColumns = this.rawColumns, columns = this.columns, firstRowAsNames = this.firstRowAsNames, isXColumn = this.valueCount.xColumns.indexOf(col) !== -1, backup = [], chartOptions = this.chartOptions, columnTypes = this.options.columnTypes || [], columnType = columnTypes[col], forceCategory = isXColumn && ((chartOptions &&
|
|
1455
1457
|
chartOptions.xAxis &&
|
|
1456
|
-
splat(chartOptions.xAxis)[0].type === 'category') || columnType === 'string');
|
|
1458
|
+
splat(chartOptions.xAxis)[0].type === 'category') || columnType === 'string'), columnHasName = defined(column.name);
|
|
1459
|
+
var row = column.length, val, floatVal, trimVal, trimInsideVal, dateVal, diff, descending;
|
|
1457
1460
|
if (!rawColumns[col]) {
|
|
1458
1461
|
rawColumns[col] = [];
|
|
1459
1462
|
}
|
|
@@ -1468,7 +1471,8 @@ var Data = /** @class */ (function () {
|
|
|
1468
1471
|
}
|
|
1469
1472
|
// Disable number or date parsing by setting the X axis type to
|
|
1470
1473
|
// category
|
|
1471
|
-
if (forceCategory ||
|
|
1474
|
+
if (forceCategory ||
|
|
1475
|
+
(row === 0 && firstRowAsNames && !columnHasName)) {
|
|
1472
1476
|
column[row] = '' + trimVal;
|
|
1473
1477
|
}
|
|
1474
1478
|
else if (+trimInsideVal === floatVal) { // is numeric
|
|
@@ -1815,7 +1819,7 @@ var Data = /** @class */ (function () {
|
|
|
1815
1819
|
* @param {boolean} [redraw=true]
|
|
1816
1820
|
*/
|
|
1817
1821
|
Data.prototype.update = function (options, redraw) {
|
|
1818
|
-
var chart = this.chart;
|
|
1822
|
+
var chart = this.chart, chartOptions = chart.options;
|
|
1819
1823
|
if (options) {
|
|
1820
1824
|
// Set the complete handler
|
|
1821
1825
|
options.afterComplete = function (dataOptions) {
|
|
@@ -1834,8 +1838,13 @@ var Data = /** @class */ (function () {
|
|
|
1834
1838
|
}
|
|
1835
1839
|
};
|
|
1836
1840
|
// Apply it
|
|
1837
|
-
merge(true,
|
|
1838
|
-
|
|
1841
|
+
merge(true, chartOptions.data, options);
|
|
1842
|
+
// Reset columns if fetching spreadsheet, to force a re-fetch
|
|
1843
|
+
if (chartOptions.data && chartOptions.data.googleSpreadsheetKey &&
|
|
1844
|
+
!options.columns) {
|
|
1845
|
+
delete chartOptions.data.columns;
|
|
1846
|
+
}
|
|
1847
|
+
this.init(chartOptions.data);
|
|
1839
1848
|
}
|
|
1840
1849
|
};
|
|
1841
1850
|
return Data;
|
|
@@ -1855,7 +1864,9 @@ G.data = function (dataOptions, chartOptions, chart) {
|
|
|
1855
1864
|
addEvent(Chart, 'init', function (e) {
|
|
1856
1865
|
var chart = this, // eslint-disable-line no-invalid-this
|
|
1857
1866
|
userOptions = (e.args[0] || {}), callback = e.args[1];
|
|
1858
|
-
|
|
1867
|
+
var defaultDataOptions = getOptions().data;
|
|
1868
|
+
if ((defaultDataOptions || userOptions && userOptions.data) &&
|
|
1869
|
+
!chart.hasDataDef) {
|
|
1859
1870
|
chart.hasDataDef = true;
|
|
1860
1871
|
/**
|
|
1861
1872
|
* The data parser for this chart.
|
|
@@ -1863,7 +1874,8 @@ addEvent(Chart, 'init', function (e) {
|
|
|
1863
1874
|
* @name Highcharts.Chart#data
|
|
1864
1875
|
* @type {Highcharts.Data|undefined}
|
|
1865
1876
|
*/
|
|
1866
|
-
|
|
1877
|
+
var dataOptions = merge(defaultDataOptions, userOptions.data);
|
|
1878
|
+
chart.data = new G.Data(extend(dataOptions, {
|
|
1867
1879
|
afterComplete: function (dataOptions) {
|
|
1868
1880
|
var i, series;
|
|
1869
1881
|
// Merge series configs
|
|
@@ -735,8 +735,11 @@ Axis.prototype.setDataGrouping = function (dataGrouping, redraw) {
|
|
|
735
735
|
}
|
|
736
736
|
else {
|
|
737
737
|
this.chart.options.series.forEach(function (seriesOptions) {
|
|
738
|
-
|
|
739
|
-
|
|
738
|
+
// Merging dataGrouping options with already defined options #16759
|
|
739
|
+
seriesOptions.dataGrouping = typeof dataGrouping === 'boolean' ?
|
|
740
|
+
dataGrouping :
|
|
741
|
+
merge(dataGrouping, seriesOptions.dataGrouping);
|
|
742
|
+
});
|
|
740
743
|
}
|
|
741
744
|
// Clear ordinal slope, so we won't accidentaly use the old one (#7827)
|
|
742
745
|
if (axis.ordinal) {
|
|
@@ -811,11 +811,11 @@ var defaultGuideBoxOptions = {
|
|
|
811
811
|
}
|
|
812
812
|
};
|
|
813
813
|
/**
|
|
814
|
-
* Options for the drag handles.
|
|
814
|
+
* Options for the drag handles available in column series.
|
|
815
815
|
*
|
|
816
816
|
* @declare Highcharts.DragDropHandleOptionsObject
|
|
817
817
|
* @since 6.2.0
|
|
818
|
-
* @optionparent plotOptions.
|
|
818
|
+
* @optionparent plotOptions.column.dragDrop.dragHandle
|
|
819
819
|
*
|
|
820
820
|
* @private
|
|
821
821
|
*/
|
|
@@ -827,7 +827,7 @@ var defaultDragHandleOptions = {
|
|
|
827
827
|
*
|
|
828
828
|
* @type {Function}
|
|
829
829
|
* @since 6.2.0
|
|
830
|
-
* @apioption plotOptions.
|
|
830
|
+
* @apioption plotOptions.column.dragDrop.dragHandle.pathFormatter
|
|
831
831
|
*/
|
|
832
832
|
// pathFormatter: null,
|
|
833
833
|
/**
|
|
@@ -837,7 +837,7 @@ var defaultDragHandleOptions = {
|
|
|
837
837
|
*
|
|
838
838
|
* @type {string}
|
|
839
839
|
* @since 6.2.0
|
|
840
|
-
* @apioption plotOptions.
|
|
840
|
+
* @apioption plotOptions.column.dragDrop.dragHandle.cursor
|
|
841
841
|
*/
|
|
842
842
|
// cursor: null,
|
|
843
843
|
/**
|
|
@@ -1757,13 +1757,15 @@ Point.prototype.showDragHandles = function () {
|
|
|
1757
1757
|
// Find position and path of handle
|
|
1758
1758
|
pos = positioner(point);
|
|
1759
1759
|
handleAttrs.d = path = pathFormatter(point);
|
|
1760
|
-
|
|
1760
|
+
// Correct left edge value depending on the xAxis' type, #16596
|
|
1761
|
+
var minEdge = point.series.xAxis.categories ? -0.5 : 0;
|
|
1762
|
+
if (!path || pos.x < minEdge || pos.y < 0) {
|
|
1761
1763
|
return;
|
|
1762
1764
|
}
|
|
1763
1765
|
// If cursor is not set explicitly, use axis direction
|
|
1764
1766
|
handleAttrs.cursor = handleOptions.cursor ||
|
|
1765
|
-
(val.axis === 'x') !== !!chart.inverted ?
|
|
1766
|
-
|
|
1767
|
+
((val.axis === 'x') !== !!chart.inverted ?
|
|
1768
|
+
'ew-resize' : 'ns-resize');
|
|
1767
1769
|
// Create and add the handle element if it doesn't exist
|
|
1768
1770
|
handle = chart.dragHandles[val.optionName];
|
|
1769
1771
|
if (!handle) {
|
|
@@ -29,6 +29,7 @@ var seriesTypes = SeriesRegistry.seriesTypes;
|
|
|
29
29
|
import SVGRenderer from '../Core/Renderer/SVG/SVGRenderer.js';
|
|
30
30
|
import Tick from '../Core/Axis/Tick.js';
|
|
31
31
|
import U from '../Core/Utilities.js';
|
|
32
|
+
import Breadcrumbs from './Breadcrumbs.js';
|
|
32
33
|
var addEvent = U.addEvent, removeEvent = U.removeEvent, extend = U.extend, fireEvent = U.fireEvent, merge = U.merge, objectEach = U.objectEach, pick = U.pick, syncTimeout = U.syncTimeout;
|
|
33
34
|
/**
|
|
34
35
|
* Gets fired when a drilldown point is clicked, before the new series is added.
|
|
@@ -151,18 +152,20 @@ extend(defaultOptions.lang,
|
|
|
151
152
|
* @optionparent lang
|
|
152
153
|
*/
|
|
153
154
|
{
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
155
|
+
/**
|
|
156
|
+
* The text for the button that appears when drilling down, linking back
|
|
157
|
+
* to the parent series. The parent series' name is inserted for
|
|
158
|
+
* `{series.name}`.
|
|
159
|
+
*
|
|
160
|
+
* @since 3.0.8
|
|
161
|
+
* @product highcharts highmaps
|
|
162
|
+
* @requires modules/drilldown
|
|
163
|
+
* @apioption lang.drillUpText
|
|
164
|
+
*
|
|
165
|
+
* @deprecated
|
|
166
|
+
*
|
|
167
|
+
* @private
|
|
168
|
+
*/
|
|
166
169
|
});
|
|
167
170
|
/**
|
|
168
171
|
* Options for drill down, the concept of inspecting increasingly high
|
|
@@ -194,6 +197,15 @@ defaultOptions.drilldown = {
|
|
|
194
197
|
* @product highcharts
|
|
195
198
|
* @apioption drilldown.allowPointDrilldown
|
|
196
199
|
*/
|
|
200
|
+
/**
|
|
201
|
+
* Options for the breadcrumbs, the navigation at the top leading the way
|
|
202
|
+
* up through the drilldown levels.
|
|
203
|
+
*
|
|
204
|
+
* @since 10.0.0
|
|
205
|
+
* @product highcharts
|
|
206
|
+
* @extends navigation.breadcrumbs
|
|
207
|
+
* @optionparent drilldown.breadcrumbs
|
|
208
|
+
*/
|
|
197
209
|
/**
|
|
198
210
|
* An array of series configurations for the drill down. Each series
|
|
199
211
|
* configuration uses the same syntax as the [series](#series) option set.
|
|
@@ -280,17 +292,23 @@ defaultOptions.drilldown = {
|
|
|
280
292
|
duration: 500
|
|
281
293
|
},
|
|
282
294
|
/**
|
|
295
|
+
*
|
|
283
296
|
* Options for the drill up button that appears when drilling down on a
|
|
284
297
|
* series. The text for the button is defined in
|
|
285
298
|
* [lang.drillUpText](#lang.drillUpText).
|
|
286
299
|
*
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
*
|
|
290
|
-
*
|
|
300
|
+
* This option is deprecated since 9.3.2, use `drilldown.breadcrumbs`
|
|
301
|
+
* instead.
|
|
302
|
+
*
|
|
303
|
+
* @sample highcharts/breadcrumbs/single-button
|
|
304
|
+
* Breadcrumbs set up like a legacy button
|
|
305
|
+
* @sample {highcharts} highcharts/drilldown/drillupbutton/ Drill up button
|
|
306
|
+
* @sample {highmaps} highcharts/drilldown/drillupbutton/ Drill up button
|
|
291
307
|
*
|
|
292
308
|
* @since 3.0.8
|
|
293
309
|
* @product highcharts highmaps
|
|
310
|
+
*
|
|
311
|
+
* @deprecated
|
|
294
312
|
*/
|
|
295
313
|
drillUpButton: {
|
|
296
314
|
/**
|
|
@@ -576,44 +594,50 @@ Chart.prototype.applyDrilldown = function () {
|
|
|
576
594
|
delete this.resetZoomButton;
|
|
577
595
|
}
|
|
578
596
|
this.pointer.reset();
|
|
579
|
-
this.redraw();
|
|
580
|
-
this.showDrillUpButton();
|
|
581
597
|
fireEvent(this, 'afterDrilldown');
|
|
598
|
+
this.redraw();
|
|
599
|
+
fireEvent(this, 'afterApplyDrilldown');
|
|
582
600
|
};
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
601
|
+
/**
|
|
602
|
+
* This method creates an array of arrays containing a level number
|
|
603
|
+
* with the corresponding series/point.
|
|
604
|
+
*
|
|
605
|
+
* @requires modules/breadcrumbs
|
|
606
|
+
*
|
|
607
|
+
* @private
|
|
608
|
+
* @param {Highcharts.Chart} chart
|
|
609
|
+
* Highcharts Chart object.
|
|
610
|
+
* @return {Array<Breadcrumbs.BreadcrumbOptions>}
|
|
611
|
+
* List for Highcharts Breadcrumbs.
|
|
612
|
+
*/
|
|
613
|
+
var createBreadcrumbsList = function (chart) {
|
|
614
|
+
var list = [], drilldownLevels = chart.drilldownLevels;
|
|
615
|
+
// The list is based on drilldown levels from the chart object
|
|
616
|
+
if (drilldownLevels && drilldownLevels.length) {
|
|
617
|
+
// Add the initial series as the first element.
|
|
618
|
+
if (!list[0]) {
|
|
619
|
+
list.push({
|
|
620
|
+
level: 0,
|
|
621
|
+
levelOptions: drilldownLevels[0].seriesOptions
|
|
622
|
+
});
|
|
623
|
+
}
|
|
624
|
+
var lastBreadcrumb_1 = list[list.length - 1];
|
|
625
|
+
drilldownLevels.forEach(function (level) {
|
|
626
|
+
// If level is already added to breadcrumbs list,
|
|
627
|
+
// don't add it again- drilling categories
|
|
628
|
+
// + 1 because of the wrong levels numeration
|
|
629
|
+
// in drilldownLevels array.
|
|
630
|
+
if (level.levelNumber + 1 > lastBreadcrumb_1.level) {
|
|
631
|
+
list.push({
|
|
632
|
+
level: level.levelNumber + 1,
|
|
633
|
+
levelOptions: merge({
|
|
634
|
+
name: level.lowerSeries.name
|
|
635
|
+
}, level.pointOptions)
|
|
636
|
+
});
|
|
637
|
+
}
|
|
638
|
+
});
|
|
616
639
|
}
|
|
640
|
+
return list;
|
|
617
641
|
};
|
|
618
642
|
/**
|
|
619
643
|
* When the chart is drilled down to a child series, calling `chart.drillUp()`
|
|
@@ -630,6 +654,7 @@ Chart.prototype.drillUp = function () {
|
|
|
630
654
|
if (!this.drilldownLevels || this.drilldownLevels.length === 0) {
|
|
631
655
|
return;
|
|
632
656
|
}
|
|
657
|
+
fireEvent(this, 'beforeDrillUp');
|
|
633
658
|
var chart = this, drilldownLevels = chart.drilldownLevels, levelNumber = drilldownLevels[drilldownLevels.length - 1].levelNumber, i = drilldownLevels.length, chartSeries = chart.series, seriesI, level, oldSeries, newSeries, oldExtremes, addSeries = function (seriesOptions) {
|
|
634
659
|
var addedSeries;
|
|
635
660
|
chartSeries.forEach(function (series) {
|
|
@@ -646,6 +671,7 @@ Chart.prototype.drillUp = function () {
|
|
|
646
671
|
newSeries = addedSeries;
|
|
647
672
|
}
|
|
648
673
|
};
|
|
674
|
+
var drilldownLevelsNumber = chart.drilldownLevels.length;
|
|
649
675
|
while (i--) {
|
|
650
676
|
level = drilldownLevels[i];
|
|
651
677
|
if (level.levelNumber === levelNumber) {
|
|
@@ -665,12 +691,19 @@ Chart.prototype.drillUp = function () {
|
|
|
665
691
|
}
|
|
666
692
|
}
|
|
667
693
|
oldSeries.xData = []; // Overcome problems with minRange (#2898)
|
|
694
|
+
// Reset the names to start new series from the beginning.
|
|
695
|
+
// Do it once to preserve names when multiple
|
|
696
|
+
// series are added for the same axis, #16135.
|
|
697
|
+
if (oldSeries.xAxis &&
|
|
698
|
+
oldSeries.xAxis.names &&
|
|
699
|
+
(drilldownLevelsNumber === 0 || i === drilldownLevelsNumber)) {
|
|
700
|
+
oldSeries.xAxis.names.length = 0;
|
|
701
|
+
}
|
|
668
702
|
level.levelSeriesOptions.forEach(addSeries);
|
|
669
703
|
fireEvent(chart, 'drillup', {
|
|
670
704
|
seriesOptions: level.seriesPurgedOptions ||
|
|
671
705
|
level.seriesOptions
|
|
672
706
|
});
|
|
673
|
-
this.resetZoomButton && this.resetZoomButton.destroy(); // #8095
|
|
674
707
|
if (newSeries.type === oldSeries.type) {
|
|
675
708
|
newSeries.drilldownLevel = level;
|
|
676
709
|
newSeries.options.animation =
|
|
@@ -691,30 +724,46 @@ Chart.prototype.drillUp = function () {
|
|
|
691
724
|
// it to the chart and show it.
|
|
692
725
|
if (level.resetZoomButton) {
|
|
693
726
|
chart.resetZoomButton = level.resetZoomButton;
|
|
694
|
-
chart.resetZoomButton.show();
|
|
695
727
|
}
|
|
696
728
|
}
|
|
697
729
|
}
|
|
730
|
+
fireEvent(chart, 'afterDrillUp');
|
|
698
731
|
this.redraw();
|
|
699
|
-
if (this.drilldownLevels.length === 0) {
|
|
700
|
-
this.drillUpButton = this.drillUpButton.destroy();
|
|
701
|
-
}
|
|
702
|
-
else {
|
|
703
|
-
this.drillUpButton.attr({
|
|
704
|
-
text: this.getDrilldownBackText()
|
|
705
|
-
})
|
|
706
|
-
.align();
|
|
707
|
-
}
|
|
708
732
|
this.ddDupes.length = []; // #3315
|
|
709
733
|
// Fire a once-off event after all series have been drilled up (#5158)
|
|
710
734
|
fireEvent(chart, 'drillupall');
|
|
711
735
|
};
|
|
736
|
+
/**
|
|
737
|
+
* A function to fade in a group. First, the element is being hidden,
|
|
738
|
+
* then, using `opactiy`, is faded in. Used for example by `dataLabelsGroup`
|
|
739
|
+
* where simple SVGElement.fadeIn() is not enough, because of other features
|
|
740
|
+
* (e.g. InactiveState) using `opacity` to fadeIn/fadeOut.
|
|
741
|
+
*
|
|
742
|
+
* @requires module:modules/drilldown
|
|
743
|
+
*
|
|
744
|
+
* @param {undefined|SVGElement} [group]
|
|
745
|
+
* The SVG element to be faded in.
|
|
746
|
+
*/
|
|
747
|
+
function fadeInGroup(group) {
|
|
748
|
+
var animationOptions = animObject(this.chart.options.drilldown.animation);
|
|
749
|
+
if (group) {
|
|
750
|
+
group.hide();
|
|
751
|
+
syncTimeout(function () {
|
|
752
|
+
// Make sure neither the group, or the chart, were destroyed
|
|
753
|
+
if (group && group.added) {
|
|
754
|
+
group.fadeIn();
|
|
755
|
+
}
|
|
756
|
+
}, Math.max(animationOptions.duration - 50, 0));
|
|
757
|
+
}
|
|
758
|
+
}
|
|
712
759
|
/* eslint-disable no-invalid-this */
|
|
713
760
|
// Add update function to be called internally from Chart.update
|
|
714
761
|
// (#7600, #12855)
|
|
715
762
|
addEvent(Chart, 'afterInit', function () {
|
|
716
763
|
var chart = this;
|
|
717
764
|
chart.drilldown = {
|
|
765
|
+
chart: chart,
|
|
766
|
+
fadeInGroup: fadeInGroup,
|
|
718
767
|
update: function (options, redraw) {
|
|
719
768
|
merge(true, chart.options.drilldown, options);
|
|
720
769
|
if (pick(redraw, true)) {
|
|
@@ -723,22 +772,6 @@ addEvent(Chart, 'afterInit', function () {
|
|
|
723
772
|
}
|
|
724
773
|
};
|
|
725
774
|
});
|
|
726
|
-
// Shift the drillUpButton to make the space for resetZoomButton, #8095.
|
|
727
|
-
addEvent(Chart, 'afterShowResetZoom', function () {
|
|
728
|
-
var chart = this, bbox = chart.resetZoomButton && chart.resetZoomButton.getBBox(), buttonOptions = (chart.options.drilldown &&
|
|
729
|
-
chart.options.drilldown.drillUpButton);
|
|
730
|
-
if (this.drillUpButton &&
|
|
731
|
-
bbox &&
|
|
732
|
-
buttonOptions &&
|
|
733
|
-
buttonOptions.position &&
|
|
734
|
-
buttonOptions.position.x) {
|
|
735
|
-
this.drillUpButton.align({
|
|
736
|
-
x: buttonOptions.position.x - bbox.width - 10,
|
|
737
|
-
y: buttonOptions.position.y,
|
|
738
|
-
align: buttonOptions.position.align
|
|
739
|
-
}, false, buttonOptions.relativeTo || 'plotBox');
|
|
740
|
-
}
|
|
741
|
-
});
|
|
742
775
|
addEvent(Chart, 'render', function () {
|
|
743
776
|
(this.xAxis || []).forEach(function (axis) {
|
|
744
777
|
axis.ddPoints = {};
|
|
@@ -769,6 +802,31 @@ addEvent(Chart, 'render', function () {
|
|
|
769
802
|
objectEach(axis.ticks, Tick.prototype.drillable);
|
|
770
803
|
});
|
|
771
804
|
});
|
|
805
|
+
addEvent(H.Breadcrumbs, 'up', function (e) {
|
|
806
|
+
var chart = this.chart, drillUpsNumber = this.getLevel() - e.newLevel;
|
|
807
|
+
for (var i = 0; i < drillUpsNumber; i++) {
|
|
808
|
+
chart.drillUp();
|
|
809
|
+
}
|
|
810
|
+
});
|
|
811
|
+
addEvent(Chart, 'afterDrilldown', function () {
|
|
812
|
+
var chart = this, drilldownOptions = chart.options.drilldown, breadcrumbsOptions = drilldownOptions && drilldownOptions.breadcrumbs;
|
|
813
|
+
if (!chart.breadcrumbs) {
|
|
814
|
+
chart.breadcrumbs = new Breadcrumbs(chart, breadcrumbsOptions);
|
|
815
|
+
}
|
|
816
|
+
chart.breadcrumbs.updateProperties(createBreadcrumbsList(chart));
|
|
817
|
+
});
|
|
818
|
+
addEvent(Chart, 'afterDrillUp', function () {
|
|
819
|
+
var chart = this;
|
|
820
|
+
chart.breadcrumbs &&
|
|
821
|
+
chart.breadcrumbs.updateProperties(createBreadcrumbsList(chart));
|
|
822
|
+
});
|
|
823
|
+
addEvent(Chart, 'update', function (e) {
|
|
824
|
+
var breadcrumbs = this.breadcrumbs, breadcrumbOptions = e.options.drilldown &&
|
|
825
|
+
e.options.drilldown.breadcrumbs;
|
|
826
|
+
if (breadcrumbs && breadcrumbOptions) {
|
|
827
|
+
breadcrumbs.update(e.options.drilldown.breadcrumbs);
|
|
828
|
+
}
|
|
829
|
+
});
|
|
772
830
|
/**
|
|
773
831
|
* When drilling up, keep the upper series invisible until the lower series has
|
|
774
832
|
* moved into place.
|
|
@@ -854,10 +912,10 @@ ColumnSeries.prototype.animateDrilldown = function (init) {
|
|
|
854
912
|
.attr(animateFrom)
|
|
855
913
|
.animate(extend(point.shapeArgs, { fill: point.color || series.color }), animationOptions);
|
|
856
914
|
}
|
|
857
|
-
if (point.dataLabel) {
|
|
858
|
-
point.dataLabel.fadeIn(animationOptions);
|
|
859
|
-
}
|
|
860
915
|
});
|
|
916
|
+
if (chart.drilldown) {
|
|
917
|
+
chart.drilldown.fadeInGroup(this.dataLabelsGroup);
|
|
918
|
+
}
|
|
861
919
|
// Reset to prototype
|
|
862
920
|
delete this.animate;
|
|
863
921
|
}
|
|
@@ -935,6 +993,9 @@ if (PieSeries) {
|
|
|
935
993
|
}))[animationOptions ? 'animate' : 'attr'](animateTo, animationOptions);
|
|
936
994
|
}
|
|
937
995
|
});
|
|
996
|
+
if (this.chart.drilldown) {
|
|
997
|
+
this.chart.drilldown.fadeInGroup(this.dataLabelsGroup);
|
|
998
|
+
}
|
|
938
999
|
// Reset to prototype
|
|
939
1000
|
delete this.animate;
|
|
940
1001
|
}
|
|
@@ -1150,21 +1211,13 @@ addEvent(Point, 'afterSetState', function () {
|
|
|
1150
1211
|
applyCursorCSS(this.series.halo, 'auto', false, styledMode);
|
|
1151
1212
|
}
|
|
1152
1213
|
});
|
|
1153
|
-
// After zooming out, shift the drillUpButton to the previous position, #8095.
|
|
1154
|
-
addEvent(Chart, 'selection', function (event) {
|
|
1155
|
-
if (event.resetSelection === true && this.drillUpButton) {
|
|
1156
|
-
var buttonOptions = (this.options.drilldown && this.options.drilldown.drillUpButton);
|
|
1157
|
-
if (buttonOptions && buttonOptions.position) {
|
|
1158
|
-
this.drillUpButton.align({
|
|
1159
|
-
x: buttonOptions.position.x,
|
|
1160
|
-
y: buttonOptions.position.y,
|
|
1161
|
-
align: buttonOptions.position.align
|
|
1162
|
-
}, false, buttonOptions.relativeTo || 'plotBox');
|
|
1163
|
-
}
|
|
1164
|
-
}
|
|
1165
|
-
});
|
|
1166
1214
|
addEvent(Chart, 'drillup', function () {
|
|
1167
1215
|
if (this.resetZoomButton) {
|
|
1168
1216
|
this.resetZoomButton = this.resetZoomButton.destroy();
|
|
1169
1217
|
}
|
|
1170
1218
|
});
|
|
1219
|
+
addEvent(Chart, 'drillupall', function () {
|
|
1220
|
+
if (this.resetZoomButton) {
|
|
1221
|
+
this.showResetZoom();
|
|
1222
|
+
}
|
|
1223
|
+
});
|
|
@@ -463,7 +463,7 @@ var Exporting;
|
|
|
463
463
|
};
|
|
464
464
|
css(element, extend({
|
|
465
465
|
cursor: 'pointer'
|
|
466
|
-
}, navOptions.menuItemStyle));
|
|
466
|
+
}, navOptions.menuItemStyle || {}));
|
|
467
467
|
}
|
|
468
468
|
}
|
|
469
469
|
// Keep references to menu divs to be able to destroy them
|
|
@@ -917,15 +917,17 @@ var Exporting;
|
|
|
917
917
|
dummySVG.removeChild(dummy);
|
|
918
918
|
}
|
|
919
919
|
// Loop through all styles and add them inline if they are ok
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
920
|
+
for (var p in styles) {
|
|
921
|
+
if (
|
|
922
|
+
// Some browsers put lots of styles on the prototype...
|
|
923
|
+
G.isFirefox ||
|
|
924
|
+
G.isMS ||
|
|
925
|
+
G.isSafari || // #16902
|
|
926
|
+
// ... Chrome puts them on the instance
|
|
927
|
+
Object.hasOwnProperty.call(styles, p)) {
|
|
923
928
|
filterStyles(styles[p], p);
|
|
924
929
|
}
|
|
925
930
|
}
|
|
926
|
-
else {
|
|
927
|
-
objectEach(styles, filterStyles);
|
|
928
|
-
}
|
|
929
931
|
// Apply styles
|
|
930
932
|
if (cssText) {
|
|
931
933
|
styleAttr = node.getAttribute('style');
|
|
@@ -132,7 +132,7 @@ var exporting = {
|
|
|
132
132
|
* Path where Highcharts will look for export module dependencies to
|
|
133
133
|
* load on demand if they don't already exist on `window`. Should currently
|
|
134
134
|
* point to location of [CanVG](https://github.com/canvg/canvg) library,
|
|
135
|
-
* [jsPDF](https://github.com/
|
|
135
|
+
* [jsPDF](https://github.com/parallax/jsPDF) and
|
|
136
136
|
* [svg2pdf.js](https://github.com/yWorks/svg2pdf.js), required for client
|
|
137
137
|
* side export in certain browsers.
|
|
138
138
|
*
|
|
@@ -196,6 +196,54 @@ var exporting = {
|
|
|
196
196
|
* @since 2.0
|
|
197
197
|
*/
|
|
198
198
|
url: 'https://export.highcharts.com/',
|
|
199
|
+
/**
|
|
200
|
+
* Settings for a custom font for the exported PDF, when using the
|
|
201
|
+
* `offline-exporting` module. This is used for languages containing
|
|
202
|
+
* non-ASCII characters, like Chinese, Russian, Japanese etc.
|
|
203
|
+
*
|
|
204
|
+
* As described in the [jsPDF
|
|
205
|
+
* docs](https://github.com/parallax/jsPDF#use-of-unicode-characters--utf-8),
|
|
206
|
+
* the 14 standard fonts in PDF are limited to the ASCII-codepage.
|
|
207
|
+
* Therefore, in order to support other text in the exported PDF, one or
|
|
208
|
+
* more TTF font files have to be passed on to the exporting module.
|
|
209
|
+
*
|
|
210
|
+
* See more in [the
|
|
211
|
+
* docs](https://www.highcharts.com/docs/export-module/client-side-export).
|
|
212
|
+
*
|
|
213
|
+
* @sample {highcharts} highcharts/exporting/offline-download-pdffont/
|
|
214
|
+
* Download PDF in a language containing non-Latin characters.
|
|
215
|
+
*
|
|
216
|
+
* @since 10.0.0
|
|
217
|
+
* @requires modules/offline-exporting
|
|
218
|
+
*/
|
|
219
|
+
pdfFont: {
|
|
220
|
+
/**
|
|
221
|
+
* The TTF font file for normal `font-style`. If font variations like
|
|
222
|
+
* `bold` or `italic` are not defined, the `normal` font will be used
|
|
223
|
+
* for those too.
|
|
224
|
+
*
|
|
225
|
+
* @type string|undefined
|
|
226
|
+
*/
|
|
227
|
+
normal: void 0,
|
|
228
|
+
/**
|
|
229
|
+
* The TTF font file for bold text.
|
|
230
|
+
*
|
|
231
|
+
* @type string|undefined
|
|
232
|
+
*/
|
|
233
|
+
bold: void 0,
|
|
234
|
+
/**
|
|
235
|
+
* The TTF font file for bold and italic text.
|
|
236
|
+
*
|
|
237
|
+
* @type string|undefined
|
|
238
|
+
*/
|
|
239
|
+
bolditalic: void 0,
|
|
240
|
+
/**
|
|
241
|
+
* The TTF font file for italic text.
|
|
242
|
+
*
|
|
243
|
+
* @type string|undefined
|
|
244
|
+
*/
|
|
245
|
+
italic: void 0
|
|
246
|
+
},
|
|
199
247
|
/**
|
|
200
248
|
* When printing the chart from the menu item in the burger menu, if
|
|
201
249
|
* the on-screen chart exceeds this width, it is resized. After printing
|