highcharts 9.1.1 → 9.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +1 -1
- package/css/annotations/popup.css +29 -28
- package/css/annotations/popup.scss +29 -27
- package/es-modules/Core/Axis/Axis.js +24 -17
- package/es-modules/Core/Axis/AxisDefaults.js +0 -1
- package/es-modules/Core/Axis/OrdinalAxis.js +141 -61
- package/es-modules/Core/Globals.js +7 -1
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +1 -1
- package/es-modules/Core/Series/Series.js +16 -1
- package/es-modules/Core/Time.js +2 -2
- package/es-modules/Core/Tooltip.js +7 -11
- package/es-modules/Extensions/Annotations/NavigationBindings.js +1 -1
- package/es-modules/Extensions/Annotations/Popup.js +4 -1
- package/es-modules/Extensions/Boost/WGLRenderer.js +5 -0
- package/es-modules/Extensions/Drilldown.js +39 -12
- package/es-modules/Extensions/OfflineExporting.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +1 -1
- package/es-modules/Extensions/PatternFill.js +23 -10
- 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/ema.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/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 +1 -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/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/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 +1 -1
- package/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/es-modules/masters/modules/variwide.src.js +1 -1
- package/es-modules/masters/modules/vector.src.js +1 -1
- package/es-modules/masters/modules/venn.src.js +1 -1
- package/es-modules/masters/modules/windbarb.src.js +1 -1
- package/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/es-modules/masters/modules/xrange.src.js +1 -1
- package/es-modules/masters/themes/avocado.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 +1 -1
- package/highcharts-3d.src.js +1 -1
- package/highcharts-gantt.js +782 -782
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +109 -87
- package/highcharts-more.js +1 -1
- package/highcharts-more.src.js +1 -1
- package/highcharts.d.ts +30 -9
- package/highcharts.js +467 -467
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +30 -9
- package/highcharts.src.js +109 -87
- package/highmaps.js +697 -697
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +109 -87
- package/highstock.js +757 -755
- package/highstock.js.map +1 -1
- package/highstock.src.js +270 -157
- package/indicators/acceleration-bands.js +1 -1
- package/indicators/acceleration-bands.src.js +1 -1
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +1 -1
- package/indicators/ao.src.js +1 -1
- package/indicators/apo.js +1 -1
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.js +1 -1
- package/indicators/aroon-oscillator.src.js +1 -1
- package/indicators/aroon.js +1 -1
- package/indicators/aroon.src.js +1 -1
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.src.js +1 -1
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +1 -1
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.src.js +1 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.js +1 -1
- package/indicators/dema.src.js +1 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.js +1 -1
- package/indicators/dmi.src.js +1 -1
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.src.js +1 -1
- package/indicators/ema.js +1 -1
- package/indicators/ema.src.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.js +1 -1
- package/indicators/indicators-all.src.js +1 -1
- package/indicators/indicators.js +1 -1
- package/indicators/indicators.src.js +1 -1
- package/indicators/keltner-channels.js +1 -1
- package/indicators/keltner-channels.src.js +1 -1
- package/indicators/klinger.js +1 -1
- package/indicators/klinger.src.js +1 -1
- package/indicators/macd.js +1 -1
- package/indicators/macd.src.js +1 -1
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +1 -1
- package/indicators/natr.src.js +1 -1
- package/indicators/obv.js +1 -1
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.js +1 -1
- package/indicators/price-channel.src.js +1 -1
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +1 -1
- package/indicators/regressions.src.js +1 -1
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.src.js +1 -1
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.src.js +1 -1
- package/indicators/stochastic.js +1 -1
- package/indicators/stochastic.src.js +1 -1
- package/indicators/supertrend.js +1 -1
- package/indicators/supertrend.src.js +1 -1
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +1 -1
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.js +1 -1
- package/indicators/volume-by-price.src.js +1 -1
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.js +1 -1
- package/modules/accessibility.src.js +1 -1
- package/modules/annotations-advanced.js +16 -16
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.js +6 -3
- package/modules/annotations.js +16 -16
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +6 -3
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +1 -1
- package/modules/boost-canvas.src.js +1 -1
- package/modules/boost.js +34 -34
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +6 -1
- package/modules/broken-axis.js +1 -1
- package/modules/broken-axis.src.js +1 -1
- package/modules/bullet.js +1 -1
- package/modules/bullet.src.js +1 -1
- package/modules/coloraxis.js +1 -1
- package/modules/coloraxis.src.js +1 -1
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +1 -1
- package/modules/cylinder.src.js +1 -1
- package/modules/data.js +1 -1
- package/modules/data.src.js +1 -1
- package/modules/datagrouping.js +1 -1
- package/modules/datagrouping.src.js +1 -1
- package/modules/debugger.js +1 -1
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.js +1 -1
- package/modules/dependency-wheel.src.js +1 -1
- package/modules/dotplot.js +1 -1
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +1 -1
- package/modules/draggable-points.src.js +1 -1
- package/modules/drilldown.d.ts +27 -0
- package/modules/drilldown.js +16 -16
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.d.ts +27 -0
- package/modules/drilldown.src.js +40 -14
- package/modules/dumbbell.js +1 -1
- package/modules/dumbbell.src.js +1 -1
- package/modules/export-data.js +1 -1
- package/modules/export-data.src.js +1 -1
- package/modules/exporting.js +1 -1
- package/modules/exporting.src.js +1 -1
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +1 -1
- package/modules/funnel.js +1 -1
- package/modules/funnel.src.js +1 -1
- package/modules/funnel3d.js +1 -1
- package/modules/funnel3d.src.js +1 -1
- package/modules/gantt.js +1 -1
- package/modules/gantt.src.js +1 -1
- package/modules/grid-axis.js +1 -1
- package/modules/grid-axis.src.js +1 -1
- package/modules/heatmap.js +1 -1
- package/modules/heatmap.src.js +1 -1
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.src.js +1 -1
- package/modules/item-series.js +1 -1
- package/modules/item-series.src.js +1 -1
- package/modules/lollipop.js +1 -1
- package/modules/lollipop.src.js +1 -1
- package/modules/map.js +1 -1
- package/modules/map.src.js +1 -1
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.src.js +1 -1
- package/modules/networkgraph.js +1 -1
- package/modules/networkgraph.src.js +1 -1
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/offline-exporting.js +2 -2
- package/modules/offline-exporting.src.js +2 -2
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +1 -1
- package/modules/oldie.js +2 -2
- package/modules/oldie.src.js +2 -2
- package/modules/organization.js +1 -1
- package/modules/organization.src.js +1 -1
- package/modules/overlapping-datalabels.js +1 -1
- package/modules/overlapping-datalabels.src.js +1 -1
- package/modules/parallel-coordinates.js +1 -1
- package/modules/parallel-coordinates.src.js +1 -1
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +1 -1
- package/modules/pathfinder.src.js +1 -1
- package/modules/pattern-fill.js +14 -14
- package/modules/pattern-fill.js.map +1 -1
- package/modules/pattern-fill.src.js +24 -12
- package/modules/price-indicator.js +1 -1
- package/modules/price-indicator.src.js +1 -1
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +1 -1
- package/modules/sankey.js +1 -1
- package/modules/sankey.src.js +1 -1
- package/modules/series-label.js +1 -1
- package/modules/series-label.src.js +1 -1
- package/modules/solid-gauge.js +1 -1
- package/modules/solid-gauge.src.js +1 -1
- package/modules/sonification.js +1 -1
- package/modules/sonification.src.js +1 -1
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +2 -2
- package/modules/stock-tools.src.js +3 -3
- package/modules/stock.js +191 -189
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.js +162 -71
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +1 -1
- package/modules/sunburst.src.js +1 -1
- package/modules/tilemap.js +1 -1
- package/modules/tilemap.src.js +1 -1
- package/modules/timeline.js +1 -1
- package/modules/timeline.src.js +1 -1
- package/modules/treegrid.js +1 -1
- package/modules/treegrid.src.js +1 -1
- package/modules/treemap.js +1 -1
- package/modules/treemap.src.js +1 -1
- package/modules/variable-pie.js +1 -1
- package/modules/variable-pie.src.js +1 -1
- package/modules/variwide.js +1 -1
- package/modules/variwide.src.js +1 -1
- package/modules/vector.js +1 -1
- package/modules/vector.src.js +1 -1
- package/modules/venn.js +1 -1
- package/modules/venn.src.js +1 -1
- package/modules/windbarb.js +1 -1
- package/modules/windbarb.src.js +1 -1
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.src.js +1 -1
- package/modules/xrange.js +1 -1
- package/modules/xrange.src.js +1 -1
- package/package.json +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/dark-blue.js +1 -1
- package/themes/dark-blue.src.js +1 -1
- package/themes/dark-green.js +1 -1
- package/themes/dark-green.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.src.js +1 -1
- package/themes/gray.js +1 -1
- package/themes/gray.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/grid.js +1 -1
- package/themes/grid.src.js +1 -1
- package/themes/high-contrast-dark.js +1 -1
- package/themes/high-contrast-dark.src.js +1 -1
- package/themes/high-contrast-light.js +1 -1
- package/themes/high-contrast-light.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/skies.js +1 -1
- package/themes/skies.src.js +1 -1
- package/themes/sunset.js +1 -1
- package/themes/sunset.src.js +1 -1
|
@@ -13,7 +13,7 @@ import Chart from '../Chart/Chart.js';
|
|
|
13
13
|
import H from '../Globals.js';
|
|
14
14
|
import Series from '../Series/Series.js';
|
|
15
15
|
import U from '../Utilities.js';
|
|
16
|
-
var addEvent = U.addEvent, css = U.css, defined = U.defined, error = U.error, pick = U.pick, timeUnits = U.timeUnits;
|
|
16
|
+
var addEvent = U.addEvent, correctFloat = U.correctFloat, css = U.css, defined = U.defined, error = U.error, pick = U.pick, timeUnits = U.timeUnits;
|
|
17
17
|
// Has a dependency on Navigator due to the use of Axis.toFixedRange
|
|
18
18
|
import '../Navigator.js';
|
|
19
19
|
/**
|
|
@@ -170,6 +170,39 @@ var OrdinalAxis;
|
|
|
170
170
|
axis.isOrdinal = isOrdinal && useOrdinal; // #3818, #4196, #4926
|
|
171
171
|
ordinal.groupIntervalFactor = null; // reset for next run
|
|
172
172
|
};
|
|
173
|
+
/**
|
|
174
|
+
* Faster way of using the Array.indexOf method.
|
|
175
|
+
* Works for sorted arrays only with unique values.
|
|
176
|
+
*
|
|
177
|
+
* @param {Array} sortedArray
|
|
178
|
+
* The sorted array inside which we are looking for.
|
|
179
|
+
* @param {number} key
|
|
180
|
+
* The key to being found.
|
|
181
|
+
* @param {boolean} indirectSearch
|
|
182
|
+
* In case of lack of the point in the array, should return
|
|
183
|
+
* value be equal to -1 or the closest bigger index.
|
|
184
|
+
* @private
|
|
185
|
+
*/
|
|
186
|
+
Composition.findIndexOf = function (sortedArray, key, indirectSearch) {
|
|
187
|
+
var start = 0, end = sortedArray.length - 1, middle;
|
|
188
|
+
while (start <= end) {
|
|
189
|
+
middle = Math.floor((start + end) / 2);
|
|
190
|
+
// Key found as the middle element.
|
|
191
|
+
if (sortedArray[middle] === key) {
|
|
192
|
+
return middle;
|
|
193
|
+
}
|
|
194
|
+
if (sortedArray[middle] < key) {
|
|
195
|
+
// Continue searching to the right.
|
|
196
|
+
start = middle + 1;
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
// Continue searching to the left.
|
|
200
|
+
end = middle - 1;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// Key could not be found.
|
|
204
|
+
return !indirectSearch ? -1 : middle;
|
|
205
|
+
};
|
|
173
206
|
/**
|
|
174
207
|
* Get the ordinal positions for the entire data set. This is necessary
|
|
175
208
|
* in chart panning because we need to find out what points or data
|
|
@@ -304,6 +337,31 @@ var OrdinalAxis;
|
|
|
304
337
|
// Return the factor needed for data grouping
|
|
305
338
|
return groupIntervalFactor;
|
|
306
339
|
};
|
|
340
|
+
/**
|
|
341
|
+
* Get index of point inside the ordinal positions array.
|
|
342
|
+
*
|
|
343
|
+
* @private
|
|
344
|
+
* @param {number} val
|
|
345
|
+
* The pixel value of a point.
|
|
346
|
+
*
|
|
347
|
+
* @param {Array<number>} [ordinallArray]
|
|
348
|
+
* An array of all points available on the axis
|
|
349
|
+
* for the given data set.
|
|
350
|
+
* Either ordinalPositions if the value is inside the plotArea
|
|
351
|
+
* or extendedOrdinalPositions if not.
|
|
352
|
+
*
|
|
353
|
+
* @return {number}
|
|
354
|
+
*/
|
|
355
|
+
Composition.prototype.getIndexOfPoint = function (val, ordinalArray) {
|
|
356
|
+
var ordinal = this, axis = ordinal.axis, firstPointVal = ordinal.positions ? ordinal.positions[0] : 0,
|
|
357
|
+
// toValue for the first point.
|
|
358
|
+
firstPointX = ordinal.slope ? ordinal.slope * axis.transA : 0;
|
|
359
|
+
// Distance in pixels between two points
|
|
360
|
+
// on the ordinal axis in the current zoom.
|
|
361
|
+
var ordinalPointPixelInterval = axis.translationSlope *
|
|
362
|
+
(ordinal.slope || axis.closestPointRange || ordinal.overscrollPointsRange), shiftIndex = (val - firstPointX) / ordinalPointPixelInterval;
|
|
363
|
+
return Composition.findIndexOf(ordinalArray, firstPointVal) + shiftIndex;
|
|
364
|
+
};
|
|
307
365
|
/**
|
|
308
366
|
* Get ticks for an ordinal axis within a range where points don't
|
|
309
367
|
* exist. It is required when overscroll is enabled. We can't base on
|
|
@@ -528,6 +586,46 @@ var OrdinalAxis;
|
|
|
528
586
|
}
|
|
529
587
|
return groupPositions;
|
|
530
588
|
};
|
|
589
|
+
/**
|
|
590
|
+
* Get axis position of given index of the extended ordinal positions.
|
|
591
|
+
* Used only when panning an ordinal axis.
|
|
592
|
+
*
|
|
593
|
+
* @private
|
|
594
|
+
* @function Highcharts.Axis#index2val
|
|
595
|
+
*
|
|
596
|
+
* @param {number} index
|
|
597
|
+
* The index value of searched point
|
|
598
|
+
*
|
|
599
|
+
* @return {number}
|
|
600
|
+
*/
|
|
601
|
+
axisProto.index2val = function (index) {
|
|
602
|
+
var axis = this, ordinal = axis.ordinal,
|
|
603
|
+
// Context could be changed to extendedOrdinalPositions.
|
|
604
|
+
ordinalPositions = ordinal.positions;
|
|
605
|
+
// The visible range contains only equally spaced values.
|
|
606
|
+
if (!ordinalPositions) {
|
|
607
|
+
return index;
|
|
608
|
+
}
|
|
609
|
+
var i = ordinalPositions.length - 1, distance;
|
|
610
|
+
if (index < 0) { // out of range, in effect panning to the left
|
|
611
|
+
index = ordinalPositions[0];
|
|
612
|
+
}
|
|
613
|
+
else if (index > i) { // out of range, panning to the right
|
|
614
|
+
index = ordinalPositions[i];
|
|
615
|
+
}
|
|
616
|
+
else { // split it up
|
|
617
|
+
i = Math.floor(index);
|
|
618
|
+
distance = index - i; // the decimal
|
|
619
|
+
}
|
|
620
|
+
if (typeof distance !== 'undefined' &&
|
|
621
|
+
typeof ordinalPositions[i] !== 'undefined') {
|
|
622
|
+
return ordinalPositions[i] + (distance ?
|
|
623
|
+
distance *
|
|
624
|
+
(ordinalPositions[i + 1] - ordinalPositions[i]) :
|
|
625
|
+
0);
|
|
626
|
+
}
|
|
627
|
+
return index;
|
|
628
|
+
};
|
|
531
629
|
/**
|
|
532
630
|
* Translate from linear (internal) to axis value.
|
|
533
631
|
*
|
|
@@ -537,65 +635,49 @@ var OrdinalAxis;
|
|
|
537
635
|
* @param {number} val
|
|
538
636
|
* The linear abstracted value.
|
|
539
637
|
*
|
|
540
|
-
* @param {boolean} [fromIndex]
|
|
541
|
-
* Translate from an index in the ordinal positions rather than a
|
|
542
|
-
* value.
|
|
543
|
-
*
|
|
544
638
|
* @return {number}
|
|
545
639
|
*/
|
|
546
|
-
axisProto.lin2val = function (val
|
|
547
|
-
var axis = this, ordinal = axis.ordinal,
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
640
|
+
axisProto.lin2val = function (val) {
|
|
641
|
+
var axis = this, ordinal = axis.ordinal, isInside = val > axis.left && val < axis.left + axis.len, localMin = axis.old ? axis.old.min : axis.min, localA = axis.old ? axis.old.transA : axis.transA;
|
|
642
|
+
var positions = ordinal.positions; // for the current visible range
|
|
643
|
+
// The visible range contains only equally spaced values.
|
|
644
|
+
if (!positions) {
|
|
645
|
+
return val;
|
|
551
646
|
}
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
}
|
|
563
|
-
else { // split it up
|
|
564
|
-
i = Math.floor(val);
|
|
565
|
-
distance = val - i; // the decimal
|
|
566
|
-
}
|
|
567
|
-
// Loop down along the ordinal positions. When the linear
|
|
568
|
-
// equivalent of i matches an ordinal position, interpolate
|
|
569
|
-
// between the left and right values.
|
|
647
|
+
// Convert back from modivied value to pixels.
|
|
648
|
+
var pixelVal = (val - localMin) * localA;
|
|
649
|
+
// If the value is not inside the plot area,
|
|
650
|
+
// use the extended positions.
|
|
651
|
+
// (array contains also points that are outside of the plotArea).
|
|
652
|
+
if (!isInside) {
|
|
653
|
+
// When iterating for the first time,
|
|
654
|
+
// get the extended ordinal positional and assign them.
|
|
655
|
+
if (!ordinal.extendedOrdinalPositions) {
|
|
656
|
+
ordinal.extendedOrdinalPositions = ordinal.getExtendedPositions();
|
|
570
657
|
}
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
(linearEquivalentRight - linearEquivalentLeft);
|
|
583
|
-
break;
|
|
584
|
-
}
|
|
585
|
-
}
|
|
658
|
+
positions = ordinal.extendedOrdinalPositions;
|
|
659
|
+
}
|
|
660
|
+
// In some cases (especially in early stages of the chart creation)
|
|
661
|
+
// the getExtendedPositions might return undefined.
|
|
662
|
+
if (positions && positions.length) {
|
|
663
|
+
var index = ordinal.getIndexOfPoint(pixelVal, positions), mantissa = correctFloat(index % 1);
|
|
664
|
+
// Check if the index is inside position array.
|
|
665
|
+
// If true, read/approximate value for that exact index.
|
|
666
|
+
if (index >= 0 && index < positions.length) {
|
|
667
|
+
var leftNeighbour = positions[Math.floor(index)], rightNeighbour = positions[Math.ceil(index)], distance = rightNeighbour - leftNeighbour;
|
|
668
|
+
return positions[Math.floor(index)] + mantissa * distance;
|
|
586
669
|
}
|
|
587
|
-
//
|
|
588
|
-
//
|
|
589
|
-
//
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
val);
|
|
670
|
+
// For cases when the index is not in the extended ordinal
|
|
671
|
+
// position array (EOP), like when the value we are looking
|
|
672
|
+
// for exceed the available data,
|
|
673
|
+
// approximate that value based on the calculated slope.
|
|
674
|
+
var positionsLength = positions.length, firstPositionsValue = positions[0], lastPositionsValue = positions[positionsLength - 1], slope = (lastPositionsValue - firstPositionsValue) / (positionsLength - 1);
|
|
675
|
+
if (index < 0) {
|
|
676
|
+
return firstPositionsValue + slope * index;
|
|
677
|
+
}
|
|
678
|
+
return lastPositionsValue + slope * (index - positionsLength);
|
|
597
679
|
}
|
|
598
|
-
return
|
|
680
|
+
return val;
|
|
599
681
|
};
|
|
600
682
|
/**
|
|
601
683
|
* Translate from a linear axis value to the corresponding ordinal axis
|
|
@@ -709,7 +791,7 @@ var OrdinalAxis;
|
|
|
709
791
|
// how many ordinal units did we move?
|
|
710
792
|
movedUnits = (mouseDownX - chartX) / pointPixelWidth,
|
|
711
793
|
// get index of all the chart's points
|
|
712
|
-
extendedAxis = { ordinal: { positions: xAxis.ordinal.getExtendedPositions() } }, ordinalPositions = void 0, searchAxisLeft = void 0,
|
|
794
|
+
extendedAxis = { ordinal: { positions: xAxis.ordinal.getExtendedPositions() } }, ordinalPositions = void 0, searchAxisLeft = void 0, index2val = xAxis.index2val, val2lin = xAxis.val2lin, searchAxisRight = void 0;
|
|
713
795
|
// we have an ordinal axis, but the data is equally spaced
|
|
714
796
|
if (!extendedAxis.ordinal.positions) {
|
|
715
797
|
runBase = true;
|
|
@@ -746,12 +828,10 @@ var OrdinalAxis;
|
|
|
746
828
|
// range, else it happens on the current x axis which is
|
|
747
829
|
// smaller and faster.
|
|
748
830
|
chart.fixedRange = max - min;
|
|
749
|
-
trimmedRange = xAxis.navigatorAxis.toFixedRange(null, null,
|
|
750
|
-
val2lin.apply(searchAxisLeft, [min, true]) + movedUnits
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
val2lin.apply(searchAxisRight, [max, true]) + movedUnits,
|
|
754
|
-
true // translate from index
|
|
831
|
+
trimmedRange = xAxis.navigatorAxis.toFixedRange(null, null, index2val.apply(searchAxisLeft, [
|
|
832
|
+
val2lin.apply(searchAxisLeft, [min, true]) + movedUnits
|
|
833
|
+
]), index2val.apply(searchAxisRight, [
|
|
834
|
+
val2lin.apply(searchAxisRight, [max, true]) + movedUnits
|
|
755
835
|
]));
|
|
756
836
|
// Apply it if it is within the available data range
|
|
757
837
|
if (trimmedRange.min >= Math.min(extremes.dataMin, min) &&
|
|
@@ -40,7 +40,7 @@ var Globals;
|
|
|
40
40
|
* Constants
|
|
41
41
|
*
|
|
42
42
|
* */
|
|
43
|
-
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '9.1.
|
|
43
|
+
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '9.1.2', Globals.win = w, Globals.doc = Globals.win.document, Globals.svg = (Globals.doc &&
|
|
44
44
|
Globals.doc.createElementNS &&
|
|
45
45
|
!!Globals.doc.createElementNS(Globals.SVG_NS, 'svg').createSVGRect), Globals.userAgent = (Globals.win.navigator && Globals.win.navigator.userAgent) || '', Globals.isChrome = Globals.userAgent.indexOf('Chrome') !== -1, Globals.isFirefox = Globals.userAgent.indexOf('Firefox') !== -1, Globals.isMS = /(edge|msie|trident)/i.test(Globals.userAgent) && !Globals.win.opera, Globals.isSafari = !Globals.isChrome && Globals.userAgent.indexOf('Safari') !== -1, Globals.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(Globals.userAgent), Globals.isWebKit = Globals.userAgent.indexOf('AppleWebKit') !== -1, Globals.deg2rad = Math.PI * 2 / 360, Globals.hasBidiBug = (Globals.isFirefox &&
|
|
46
46
|
parseInt(Globals.userAgent.split('Firefox/')[1], 10) < 4 // issue #38
|
|
@@ -100,6 +100,12 @@ var Globals;
|
|
|
100
100
|
* @private
|
|
101
101
|
*/
|
|
102
102
|
Globals.symbolSizes = {};
|
|
103
|
+
/* *
|
|
104
|
+
*
|
|
105
|
+
* Properties
|
|
106
|
+
*
|
|
107
|
+
* */
|
|
108
|
+
Globals.chartCount = 0;
|
|
103
109
|
})(Globals || (Globals = {}));
|
|
104
110
|
/* *
|
|
105
111
|
*
|
|
@@ -194,7 +194,7 @@ var SVGRenderer = /** @class */ (function () {
|
|
|
194
194
|
this.url = this.getReferenceURL();
|
|
195
195
|
// Add description
|
|
196
196
|
var desc = this.createElement('desc').add();
|
|
197
|
-
desc.element.appendChild(doc.createTextNode('Created with Highcharts 9.1.
|
|
197
|
+
desc.element.appendChild(doc.createTextNode('Created with Highcharts 9.1.2'));
|
|
198
198
|
renderer.defs = this.createElement('defs').add();
|
|
199
199
|
renderer.allowHTML = allowHTML;
|
|
200
200
|
renderer.forExport = forExport;
|
|
@@ -2333,8 +2333,23 @@ var Series = /** @class */ (function () {
|
|
|
2333
2333
|
}
|
|
2334
2334
|
};
|
|
2335
2335
|
/**
|
|
2336
|
-
*
|
|
2336
|
+
* Find the nearest point from a pointer event. This applies to series that
|
|
2337
|
+
* use k-d-trees to get the nearest point. Native pointer events must be
|
|
2338
|
+
* normalized using `Pointer.normalize`, that adds `chartX` and `chartY`
|
|
2339
|
+
* properties.
|
|
2340
|
+
*
|
|
2341
|
+
* @sample highcharts/demo/synchronized-charts
|
|
2342
|
+
* Synchronized charts with tooltips
|
|
2343
|
+
*
|
|
2337
2344
|
* @function Highcharts.Series#searchPoint
|
|
2345
|
+
*
|
|
2346
|
+
* @param {Highcharts.PointerEvent} e
|
|
2347
|
+
* The normalized pointer event
|
|
2348
|
+
* @param {boolean} [compareX=false]
|
|
2349
|
+
* Search only by the X value, not Y
|
|
2350
|
+
*
|
|
2351
|
+
* @return {Point|undefined}
|
|
2352
|
+
* The closest point to the pointer event
|
|
2338
2353
|
*/
|
|
2339
2354
|
Series.prototype.searchPoint = function (e, compareX) {
|
|
2340
2355
|
var series = this, xAxis = series.xAxis, yAxis = series.yAxis, inverted = series.chart.inverted;
|
package/es-modules/Core/Time.js
CHANGED
|
@@ -17,9 +17,9 @@ var defined = U.defined, error = U.error, extend = U.extend, isObject = U.isObje
|
|
|
17
17
|
* Constants
|
|
18
18
|
*
|
|
19
19
|
* */
|
|
20
|
-
var hasNewSafariBug = (H.isSafari && Intl.DateTimeFormat.prototype.formatRange);
|
|
20
|
+
var hasNewSafariBug = (H.isSafari && Intl && Intl.DateTimeFormat.prototype.formatRange);
|
|
21
21
|
// To do: Remove this when we no longer need support for Safari < v14.1
|
|
22
|
-
var hasOldSafariBug = (H.isSafari && !Intl.DateTimeFormat.prototype.formatRange);
|
|
22
|
+
var hasOldSafariBug = (H.isSafari && Intl && !Intl.DateTimeFormat.prototype.formatRange);
|
|
23
23
|
/* *
|
|
24
24
|
*
|
|
25
25
|
* Class
|
|
@@ -200,12 +200,6 @@ var Tooltip = /** @class */ (function () {
|
|
|
200
200
|
}]
|
|
201
201
|
}]
|
|
202
202
|
});
|
|
203
|
-
chart.renderer.definition({
|
|
204
|
-
tagName: 'style',
|
|
205
|
-
textContent: '.highcharts-tooltip-' + chart.index + '{' +
|
|
206
|
-
'filter:url(#drop-shadow-' + chart.index + ')' +
|
|
207
|
-
'}'
|
|
208
|
-
});
|
|
209
203
|
};
|
|
210
204
|
/**
|
|
211
205
|
* Build the body (lines) of the tooltip by iterating over the items and
|
|
@@ -493,10 +487,12 @@ var Tooltip = /** @class */ (function () {
|
|
|
493
487
|
.shadow(options.shadow);
|
|
494
488
|
}
|
|
495
489
|
}
|
|
496
|
-
if (styledMode) {
|
|
490
|
+
if (styledMode && options.shadow) {
|
|
497
491
|
// Apply the drop-shadow filter
|
|
498
492
|
this.applyFilter();
|
|
499
|
-
this.label.
|
|
493
|
+
this.label.attr({
|
|
494
|
+
filter: 'url(#drop-shadow-' + this.chart.index + ')'
|
|
495
|
+
});
|
|
500
496
|
}
|
|
501
497
|
// Split tooltip use updateTooltipContainer to position the tooltip
|
|
502
498
|
// container.
|
|
@@ -1284,8 +1280,8 @@ var Tooltip = /** @class */ (function () {
|
|
|
1284
1280
|
}
|
|
1285
1281
|
var chart = tooltip.chart;
|
|
1286
1282
|
var label = tooltip.label;
|
|
1287
|
-
var
|
|
1288
|
-
if (!label || !
|
|
1283
|
+
var points = tooltip.shared ? chart.hoverPoints : chart.hoverPoint;
|
|
1284
|
+
if (!label || !points) {
|
|
1289
1285
|
return;
|
|
1290
1286
|
}
|
|
1291
1287
|
var box = {
|
|
@@ -1295,7 +1291,7 @@ var Tooltip = /** @class */ (function () {
|
|
|
1295
1291
|
height: 0
|
|
1296
1292
|
};
|
|
1297
1293
|
// Combine anchor and tooltip
|
|
1298
|
-
var anchorPos = this.getAnchor(
|
|
1294
|
+
var anchorPos = this.getAnchor(points);
|
|
1299
1295
|
var labelBBox = label.getBBox();
|
|
1300
1296
|
anchorPos[0] += chart.plotLeft - label.translateX;
|
|
1301
1297
|
anchorPos[1] += chart.plotTop - label.translateY;
|
|
@@ -1020,7 +1020,7 @@ setOptions({
|
|
|
1020
1020
|
* from a different server.
|
|
1021
1021
|
*
|
|
1022
1022
|
* @type {string}
|
|
1023
|
-
* @default https://code.highcharts.com/9.1.
|
|
1023
|
+
* @default https://code.highcharts.com/9.1.2/gfx/stock-icons/
|
|
1024
1024
|
* @since 7.1.3
|
|
1025
1025
|
* @apioption navigation.iconsURL
|
|
1026
1026
|
*/
|
|
@@ -213,6 +213,7 @@ H.Popup.prototype = {
|
|
|
213
213
|
// add close button
|
|
214
214
|
popupDiv.appendChild(popupCloseBtn);
|
|
215
215
|
popupDiv.style.display = 'block';
|
|
216
|
+
popupDiv.style.height = '';
|
|
216
217
|
},
|
|
217
218
|
/**
|
|
218
219
|
* Hide popup.
|
|
@@ -253,6 +254,8 @@ H.Popup.prototype = {
|
|
|
253
254
|
if (type === 'flag') {
|
|
254
255
|
this.annotations.addForm.call(this, chart, options, callback, true);
|
|
255
256
|
}
|
|
257
|
+
// Explicit height is needed to make inner elements scrollable
|
|
258
|
+
this.container.style.height = this.container.offsetHeight + 'px';
|
|
256
259
|
},
|
|
257
260
|
/**
|
|
258
261
|
* Return lang definitions for popup.
|
|
@@ -756,7 +759,7 @@ addEvent(NavigationBindings, 'showPopup', function (config) {
|
|
|
756
759
|
this.popup = new H.Popup(this.chart.container, (this.chart.options.navigation.iconsURL ||
|
|
757
760
|
(this.chart.options.stockTools &&
|
|
758
761
|
this.chart.options.stockTools.gui.iconsURL) ||
|
|
759
|
-
'https://code.highcharts.com/9.1.
|
|
762
|
+
'https://code.highcharts.com/9.1.2/gfx/stock-icons/'), this.chart);
|
|
760
763
|
}
|
|
761
764
|
this.popup.showForm(config.formType, this.chart, config.options, config.onSubmit);
|
|
762
765
|
});
|
|
@@ -909,6 +909,11 @@ function GLRenderer(postRenderCallback) {
|
|
|
909
909
|
cbuffer.build(s.colorData, 'aColor', 4);
|
|
910
910
|
cbuffer.bind();
|
|
911
911
|
}
|
|
912
|
+
else {
|
|
913
|
+
// #15869, a buffer with fewer points might already be bound by
|
|
914
|
+
// a different series/chart causing out of range errors
|
|
915
|
+
gl.disableVertexAttribArray(gl.getAttribLocation(shader.program(), 'aColor'));
|
|
916
|
+
}
|
|
912
917
|
// Set series specific uniforms
|
|
913
918
|
shader.setColor(scolor);
|
|
914
919
|
setXAxis(s.series.xAxis);
|
|
@@ -623,6 +623,9 @@ Chart.prototype.showDrillUpButton = function () {
|
|
|
623
623
|
* @requires modules/drilldown
|
|
624
624
|
*
|
|
625
625
|
* @function Highcharts.Chart#drillUp
|
|
626
|
+
*
|
|
627
|
+
* @sample {highcharts} highcharts/drilldown/programmatic
|
|
628
|
+
* Programmatic drilldown
|
|
626
629
|
*/
|
|
627
630
|
Chart.prototype.drillUp = function () {
|
|
628
631
|
if (!this.drilldownLevels || this.drilldownLevels.length === 0) {
|
|
@@ -935,8 +938,26 @@ if (PieSeries) {
|
|
|
935
938
|
}
|
|
936
939
|
});
|
|
937
940
|
}
|
|
938
|
-
|
|
939
|
-
|
|
941
|
+
/**
|
|
942
|
+
* Perform drilldown on a point instance. The [drilldown](https://api.highcharts.com/highcharts/series.line.data.drilldown)
|
|
943
|
+
* property must be set on the point options.
|
|
944
|
+
*
|
|
945
|
+
* To drill down multiple points in the same category, use
|
|
946
|
+
* `Axis.drilldownCategory` instead.
|
|
947
|
+
*
|
|
948
|
+
* @requires modules/drilldown
|
|
949
|
+
*
|
|
950
|
+
* @function Highcharts.Point#doDrilldown
|
|
951
|
+
*
|
|
952
|
+
* @sample {highcharts} highcharts/drilldown/programmatic
|
|
953
|
+
* Programmatic drilldown
|
|
954
|
+
*/
|
|
955
|
+
Point.prototype.doDrilldown = function () {
|
|
956
|
+
this.runDrilldown();
|
|
957
|
+
};
|
|
958
|
+
Point.prototype.runDrilldown = function (holdRedraw, category, originalEvent) {
|
|
959
|
+
var series = this.series, chart = series.chart, drilldown = chart.options.drilldown;
|
|
960
|
+
var i = (drilldown.series || []).length, seriesOptions;
|
|
940
961
|
if (!chart.ddDupes) {
|
|
941
962
|
chart.ddDupes = [];
|
|
942
963
|
}
|
|
@@ -959,7 +980,7 @@ Point.prototype.doDrilldown = function (_holdRedraw, category, originalEvent) {
|
|
|
959
980
|
}, function (e) {
|
|
960
981
|
var chart = e.point.series && e.point.series.chart, seriesOptions = e.seriesOptions;
|
|
961
982
|
if (chart && seriesOptions) {
|
|
962
|
-
if (
|
|
983
|
+
if (holdRedraw) {
|
|
963
984
|
chart.addSingleSeriesAsDrilldown(e.point, seriesOptions);
|
|
964
985
|
}
|
|
965
986
|
else {
|
|
@@ -970,22 +991,28 @@ Point.prototype.doDrilldown = function (_holdRedraw, category, originalEvent) {
|
|
|
970
991
|
};
|
|
971
992
|
/**
|
|
972
993
|
* Drill down to a given category. This is the same as clicking on an axis
|
|
973
|
-
* label.
|
|
994
|
+
* label. If multiple series with drilldown are present, all will drill down to
|
|
995
|
+
* the given category.
|
|
996
|
+
*
|
|
997
|
+
* See also `Point.doDrilldown` for drilling down on a single point instance.
|
|
974
998
|
*
|
|
975
|
-
* @private
|
|
976
999
|
* @function Highcharts.Axis#drilldownCategory
|
|
1000
|
+
*
|
|
1001
|
+
* @sample {highcharts} highcharts/drilldown/programmatic
|
|
1002
|
+
* Programmatic drilldown
|
|
1003
|
+
*
|
|
977
1004
|
* @param {number} x
|
|
978
|
-
*
|
|
979
|
-
* @param {global.MouseEvent}
|
|
980
|
-
*
|
|
1005
|
+
* The index of the category
|
|
1006
|
+
* @param {global.MouseEvent} [originalEvent]
|
|
1007
|
+
* The original event, used internally.
|
|
981
1008
|
*/
|
|
982
|
-
Axis.prototype.drilldownCategory = function (x,
|
|
1009
|
+
Axis.prototype.drilldownCategory = function (x, originalEvent) {
|
|
983
1010
|
this.getDDPoints(x).forEach(function (point) {
|
|
984
1011
|
if (point &&
|
|
985
1012
|
point.series &&
|
|
986
1013
|
point.series.visible &&
|
|
987
|
-
point.
|
|
988
|
-
point.
|
|
1014
|
+
point.runDrilldown) { // #3197
|
|
1015
|
+
point.runDrilldown(true, x, originalEvent);
|
|
989
1016
|
}
|
|
990
1017
|
});
|
|
991
1018
|
this.chart.applyDrilldown();
|
|
@@ -1071,7 +1098,7 @@ var handlePointClick = function (e) {
|
|
|
1071
1098
|
series.xAxis.drilldownCategory(point.x, e);
|
|
1072
1099
|
}
|
|
1073
1100
|
else {
|
|
1074
|
-
point.
|
|
1101
|
+
point.runDrilldown(void 0, void 0, e);
|
|
1075
1102
|
}
|
|
1076
1103
|
};
|
|
1077
1104
|
addEvent(Series, 'afterDrawDataLabels', function () {
|
|
@@ -581,7 +581,7 @@ Chart.prototype.exportChartLocal = function (exportingOptions, chartOptions) {
|
|
|
581
581
|
};
|
|
582
582
|
// Extend the default options to use the local exporter logic
|
|
583
583
|
merge(true, getOptions().exporting, {
|
|
584
|
-
libURL: 'https://code.highcharts.com/9.1.
|
|
584
|
+
libURL: 'https://code.highcharts.com/9.1.2/lib/',
|
|
585
585
|
// When offline-exporting is loaded, redefine the menu item definitions
|
|
586
586
|
// related to download.
|
|
587
587
|
menuItemDefinitions: {
|
|
@@ -37,7 +37,7 @@ var VMLRenderer, VMLElement;
|
|
|
37
37
|
* @apioption global.VMLRadialGradientURL
|
|
38
38
|
*/
|
|
39
39
|
getOptions().global.VMLRadialGradientURL =
|
|
40
|
-
'http://code.highcharts.com/9.1.
|
|
40
|
+
'http://code.highcharts.com/9.1.2/gfx/vml-radial-gradient.png';
|
|
41
41
|
// Utilites
|
|
42
42
|
if (doc && !doc.defaultView) {
|
|
43
43
|
H.getStyle = U.getStyle = function getStyle(el, prop) {
|
|
@@ -25,21 +25,33 @@ var addEvent = U.addEvent, erase = U.erase, merge = U.merge, pick = U.pick, remo
|
|
|
25
25
|
// Add the predefined patterns
|
|
26
26
|
var patterns = H.patterns = (function () {
|
|
27
27
|
var patterns = [], colors = getOptions().colors;
|
|
28
|
+
// Start with subtle patterns
|
|
28
29
|
[
|
|
29
|
-
'M 0 0 L
|
|
30
|
-
'M 0
|
|
31
|
-
'M
|
|
32
|
-
'M 0
|
|
33
|
-
'M 0
|
|
30
|
+
'M 0 0 L 5 5 M 4.5 -0.5 L 5.5 0.5 M -0.5 4.5 L 0.5 5.5',
|
|
31
|
+
'M 0 5 L 5 0 M -0.5 0.5 L 0.5 -0.5 M 4.5 5.5 L 5.5 4.5',
|
|
32
|
+
'M 2 0 L 2 5 M 4 0 L 4 5',
|
|
33
|
+
'M 0 2 L 5 2 M 0 4 L 5 4',
|
|
34
|
+
'M 0 1.5 L 2.5 1.5 L 2.5 0 M 2.5 5 L 2.5 3.5 L 5 3.5'
|
|
35
|
+
].forEach(function (pattern, i) {
|
|
36
|
+
patterns.push({
|
|
37
|
+
path: pattern,
|
|
38
|
+
color: colors[i],
|
|
39
|
+
width: 5,
|
|
40
|
+
height: 5,
|
|
41
|
+
patternTransform: 'scale(1.4 1.4)'
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
// Then add the more drastic ones
|
|
45
|
+
[
|
|
46
|
+
'M 0 0 L 5 10 L 10 0',
|
|
34
47
|
'M 3 3 L 8 3 L 8 8 L 3 8 Z',
|
|
35
48
|
'M 5 5 m -4 0 a 4 4 0 1 1 8 0 a 4 4 0 1 1 -8 0',
|
|
36
|
-
'M
|
|
37
|
-
'M
|
|
38
|
-
'M 0 0 L 5 10 L 10 0'
|
|
49
|
+
'M 0 0 L 10 10 M 9 -1 L 11 1 M -1 9 L 1 11',
|
|
50
|
+
'M 0 10 L 10 0 M -1 1 L 1 -1 M 9 11 L 11 9'
|
|
39
51
|
].forEach(function (pattern, i) {
|
|
40
52
|
patterns.push({
|
|
41
53
|
path: pattern,
|
|
42
|
-
color: colors[i],
|
|
54
|
+
color: colors[i + 5],
|
|
43
55
|
width: 10,
|
|
44
56
|
height: 10
|
|
45
57
|
});
|
|
@@ -64,7 +76,8 @@ var patterns = H.patterns = (function () {
|
|
|
64
76
|
* The computed hash.
|
|
65
77
|
*/
|
|
66
78
|
function hashFromObject(obj, preSeed) {
|
|
67
|
-
var str = JSON.stringify(obj), strLen = str.length || 0
|
|
79
|
+
var str = JSON.stringify(obj), strLen = str.length || 0;
|
|
80
|
+
var hash = 0, i = 0, char, seedStep;
|
|
68
81
|
if (preSeed) {
|
|
69
82
|
seedStep = Math.max(Math.floor(strLen / 500), 1);
|
|
70
83
|
for (var a = 0; a < strLen; a += seedStep) {
|
|
@@ -1277,7 +1277,7 @@ var Toolbar = /** @class */ (function () {
|
|
|
1277
1277
|
Toolbar.prototype.getIconsURL = function () {
|
|
1278
1278
|
return this.chart.options.navigation.iconsURL ||
|
|
1279
1279
|
this.options.iconsURL ||
|
|
1280
|
-
'https://code.highcharts.com/9.1.
|
|
1280
|
+
'https://code.highcharts.com/9.1.2/gfx/stock-icons/';
|
|
1281
1281
|
};
|
|
1282
1282
|
return Toolbar;
|
|
1283
1283
|
}());
|