@ntlab/ntjs-assets 2.0.37 → 2.0.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/js/DataTables/DataTables/js/dataTables.js +26 -9
- package/assets/js/DataTables/DataTables/js/dataTables.min.js +2 -2
- package/assets/js/cdn.json +2 -2
- package/assets/js/highcharts/es-modules/Accessibility/Accessibility.js +15 -3
- package/assets/js/highcharts/es-modules/Accessibility/AccessibilityComponent.js +38 -30
- package/assets/js/highcharts/es-modules/Core/Axis/Axis.js +15 -12
- package/assets/js/highcharts/es-modules/Core/Axis/AxisDefaults.js +4 -2
- package/assets/js/highcharts/es-modules/Core/Axis/DateTimeAxis.js +3 -3
- package/assets/js/highcharts/es-modules/Core/Axis/GridAxis.js +2 -2
- package/assets/js/highcharts/es-modules/Core/Axis/LogarithmicAxis.js +5 -10
- package/assets/js/highcharts/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +54 -13
- package/assets/js/highcharts/es-modules/Core/Axis/ScrollbarAxis.js +12 -2
- package/assets/js/highcharts/es-modules/Core/Axis/Tick.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +6 -9
- package/assets/js/highcharts/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +2 -2
- package/assets/js/highcharts/es-modules/Core/Chart/Chart.js +30 -8
- package/assets/js/highcharts/es-modules/Core/Color/Color.js +1 -0
- package/assets/js/highcharts/es-modules/Core/Defaults.js +9 -7
- package/assets/js/highcharts/es-modules/Core/Legend/LegendSymbol.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGRenderer.js +1 -0
- package/assets/js/highcharts/es-modules/Core/Series/DataLabel.js +9 -0
- package/assets/js/highcharts/es-modules/Core/Series/Series.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Tooltip.js +9 -0
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Annotation.js +4 -0
- package/assets/js/highcharts/es-modules/Extensions/Boost/BoostSeries.js +2 -0
- package/assets/js/highcharts/es-modules/Extensions/Data.js +125 -98
- package/assets/js/highcharts/es-modules/Extensions/Exporting/Exporting.js +5 -1
- package/assets/js/highcharts/es-modules/Extensions/OfflineExporting/OfflineExporting.js +4 -1
- package/assets/js/highcharts/es-modules/Maps/GeoJSONComposition.js +0 -5
- package/assets/js/highcharts/es-modules/Series/Funnel3D/Funnel3DSeries.js +1 -0
- package/assets/js/highcharts/es-modules/Series/MapBubble/MapBubbleSeries.js +3 -3
- package/assets/js/highcharts/es-modules/Series/Pictorial/PictorialSeries.js +2 -1
- package/assets/js/highcharts/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +1 -0
- package/assets/js/highcharts/es-modules/Series/Treegraph/TreegraphSeries.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/Navigator/Navigator.js +7 -2
- package/assets/js/highcharts/es-modules/masters/highcharts.src.js +1 -1
- package/assets/js/highcharts/highcharts-3d.js +1 -1
- package/assets/js/highcharts/highcharts-3d.src.js +1 -1
- package/assets/js/highcharts/highcharts-gantt.js +3 -3
- package/assets/js/highcharts/highcharts-gantt.src.js +176 -79
- package/assets/js/highcharts/highcharts-more.js +1 -1
- package/assets/js/highcharts/highcharts-more.src.js +1 -1
- package/assets/js/highcharts/highcharts.js +3 -3
- package/assets/js/highcharts/highcharts.src.js +147 -62
- package/assets/js/highcharts/highmaps.js +3 -3
- package/assets/js/highcharts/highmaps.src.js +150 -70
- package/assets/js/highcharts/highstock.js +3 -3
- package/assets/js/highcharts/highstock.src.js +166 -66
- package/assets/js/highcharts/indicators/acceleration-bands.js +1 -1
- package/assets/js/highcharts/indicators/acceleration-bands.src.js +1 -1
- package/assets/js/highcharts/indicators/accumulation-distribution.js +1 -1
- package/assets/js/highcharts/indicators/accumulation-distribution.src.js +1 -1
- package/assets/js/highcharts/indicators/ao.js +1 -1
- package/assets/js/highcharts/indicators/ao.src.js +1 -1
- package/assets/js/highcharts/indicators/apo.js +1 -1
- package/assets/js/highcharts/indicators/apo.src.js +1 -1
- package/assets/js/highcharts/indicators/aroon-oscillator.js +1 -1
- package/assets/js/highcharts/indicators/aroon-oscillator.src.js +1 -1
- package/assets/js/highcharts/indicators/aroon.js +1 -1
- package/assets/js/highcharts/indicators/aroon.src.js +1 -1
- package/assets/js/highcharts/indicators/atr.js +1 -1
- package/assets/js/highcharts/indicators/atr.src.js +1 -1
- package/assets/js/highcharts/indicators/bollinger-bands.js +1 -1
- package/assets/js/highcharts/indicators/bollinger-bands.src.js +1 -1
- package/assets/js/highcharts/indicators/cci.js +1 -1
- package/assets/js/highcharts/indicators/cci.src.js +1 -1
- package/assets/js/highcharts/indicators/chaikin.js +1 -1
- package/assets/js/highcharts/indicators/chaikin.src.js +1 -1
- package/assets/js/highcharts/indicators/cmf.js +1 -1
- package/assets/js/highcharts/indicators/cmf.src.js +1 -1
- package/assets/js/highcharts/indicators/cmo.js +1 -1
- package/assets/js/highcharts/indicators/cmo.src.js +1 -1
- package/assets/js/highcharts/indicators/dema.js +1 -1
- package/assets/js/highcharts/indicators/dema.src.js +1 -1
- package/assets/js/highcharts/indicators/disparity-index.js +1 -1
- package/assets/js/highcharts/indicators/disparity-index.src.js +1 -1
- package/assets/js/highcharts/indicators/dmi.js +1 -1
- package/assets/js/highcharts/indicators/dmi.src.js +1 -1
- package/assets/js/highcharts/indicators/dpo.js +1 -1
- package/assets/js/highcharts/indicators/dpo.src.js +1 -1
- package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.js +1 -1
- package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/assets/js/highcharts/indicators/indicators-all.js +1 -1
- package/assets/js/highcharts/indicators/indicators-all.src.js +1 -1
- package/assets/js/highcharts/indicators/indicators.js +1 -1
- package/assets/js/highcharts/indicators/indicators.src.js +1 -1
- package/assets/js/highcharts/indicators/keltner-channels.js +1 -1
- package/assets/js/highcharts/indicators/keltner-channels.src.js +1 -1
- package/assets/js/highcharts/indicators/klinger.js +1 -1
- package/assets/js/highcharts/indicators/klinger.src.js +1 -1
- package/assets/js/highcharts/indicators/macd.js +1 -1
- package/assets/js/highcharts/indicators/macd.src.js +1 -1
- package/assets/js/highcharts/indicators/mfi.js +1 -1
- package/assets/js/highcharts/indicators/mfi.src.js +1 -1
- package/assets/js/highcharts/indicators/momentum.js +1 -1
- package/assets/js/highcharts/indicators/momentum.src.js +1 -1
- package/assets/js/highcharts/indicators/natr.js +1 -1
- package/assets/js/highcharts/indicators/natr.src.js +1 -1
- package/assets/js/highcharts/indicators/obv.js +1 -1
- package/assets/js/highcharts/indicators/obv.src.js +1 -1
- package/assets/js/highcharts/indicators/pivot-points.js +1 -1
- package/assets/js/highcharts/indicators/pivot-points.src.js +1 -1
- package/assets/js/highcharts/indicators/ppo.js +1 -1
- package/assets/js/highcharts/indicators/ppo.src.js +1 -1
- package/assets/js/highcharts/indicators/price-channel.js +1 -1
- package/assets/js/highcharts/indicators/price-channel.src.js +1 -1
- package/assets/js/highcharts/indicators/price-envelopes.js +1 -1
- package/assets/js/highcharts/indicators/price-envelopes.src.js +1 -1
- package/assets/js/highcharts/indicators/psar.js +1 -1
- package/assets/js/highcharts/indicators/psar.src.js +1 -1
- package/assets/js/highcharts/indicators/regressions.js +1 -1
- package/assets/js/highcharts/indicators/regressions.src.js +1 -1
- package/assets/js/highcharts/indicators/roc.js +1 -1
- package/assets/js/highcharts/indicators/roc.src.js +1 -1
- package/assets/js/highcharts/indicators/rsi.js +1 -1
- package/assets/js/highcharts/indicators/rsi.src.js +1 -1
- package/assets/js/highcharts/indicators/slow-stochastic.js +1 -1
- package/assets/js/highcharts/indicators/slow-stochastic.src.js +1 -1
- package/assets/js/highcharts/indicators/stochastic.js +1 -1
- package/assets/js/highcharts/indicators/stochastic.src.js +1 -1
- package/assets/js/highcharts/indicators/supertrend.js +1 -1
- package/assets/js/highcharts/indicators/supertrend.src.js +1 -1
- package/assets/js/highcharts/indicators/tema.js +1 -1
- package/assets/js/highcharts/indicators/tema.src.js +1 -1
- package/assets/js/highcharts/indicators/trendline.js +1 -1
- package/assets/js/highcharts/indicators/trendline.src.js +1 -1
- package/assets/js/highcharts/indicators/trix.js +1 -1
- package/assets/js/highcharts/indicators/trix.src.js +1 -1
- package/assets/js/highcharts/indicators/volume-by-price.js +1 -1
- package/assets/js/highcharts/indicators/volume-by-price.src.js +1 -1
- package/assets/js/highcharts/indicators/vwap.js +1 -1
- package/assets/js/highcharts/indicators/vwap.src.js +1 -1
- package/assets/js/highcharts/indicators/williams-r.js +1 -1
- package/assets/js/highcharts/indicators/williams-r.src.js +1 -1
- package/assets/js/highcharts/indicators/wma.js +1 -1
- package/assets/js/highcharts/indicators/wma.src.js +1 -1
- package/assets/js/highcharts/indicators/zigzag.js +1 -1
- package/assets/js/highcharts/indicators/zigzag.src.js +1 -1
- package/assets/js/highcharts/modules/accessibility.js +2 -2
- package/assets/js/highcharts/modules/accessibility.src.js +74 -38
- package/assets/js/highcharts/modules/annotations-advanced.js +2 -2
- package/assets/js/highcharts/modules/annotations-advanced.src.js +7 -3
- package/assets/js/highcharts/modules/annotations.js +2 -2
- package/assets/js/highcharts/modules/annotations.src.js +7 -3
- package/assets/js/highcharts/modules/arc-diagram.js +2 -2
- package/assets/js/highcharts/modules/arc-diagram.src.js +5 -4
- package/assets/js/highcharts/modules/arrow-symbols.js +1 -1
- package/assets/js/highcharts/modules/arrow-symbols.src.js +1 -1
- package/assets/js/highcharts/modules/boost-canvas.js +2 -2
- package/assets/js/highcharts/modules/boost-canvas.src.js +3 -1
- package/assets/js/highcharts/modules/boost.js +2 -2
- package/assets/js/highcharts/modules/boost.src.js +3 -1
- package/assets/js/highcharts/modules/broken-axis.js +1 -1
- package/assets/js/highcharts/modules/broken-axis.src.js +1 -1
- package/assets/js/highcharts/modules/bullet.js +1 -1
- package/assets/js/highcharts/modules/bullet.src.js +1 -1
- package/assets/js/highcharts/modules/coloraxis.js +1 -1
- package/assets/js/highcharts/modules/coloraxis.src.js +1 -1
- package/assets/js/highcharts/modules/current-date-indicator.js +1 -1
- package/assets/js/highcharts/modules/current-date-indicator.src.js +1 -1
- package/assets/js/highcharts/modules/cylinder.js +1 -1
- package/assets/js/highcharts/modules/cylinder.src.js +1 -1
- package/assets/js/highcharts/modules/data-tools.js +1 -1
- package/assets/js/highcharts/modules/data-tools.src.js +1 -1
- package/assets/js/highcharts/modules/data.js +2 -2
- package/assets/js/highcharts/modules/data.src.js +126 -100
- package/assets/js/highcharts/modules/datagrouping.js +1 -1
- package/assets/js/highcharts/modules/datagrouping.src.js +1 -1
- package/assets/js/highcharts/modules/debugger.js +1 -1
- package/assets/js/highcharts/modules/debugger.src.js +1 -1
- package/assets/js/highcharts/modules/dependency-wheel.js +1 -1
- package/assets/js/highcharts/modules/dependency-wheel.src.js +1 -1
- package/assets/js/highcharts/modules/dotplot.js +1 -1
- package/assets/js/highcharts/modules/dotplot.src.js +1 -1
- package/assets/js/highcharts/modules/drag-panes.js +1 -1
- package/assets/js/highcharts/modules/drag-panes.src.js +1 -1
- package/assets/js/highcharts/modules/draggable-points.js +1 -1
- package/assets/js/highcharts/modules/draggable-points.src.js +1 -1
- package/assets/js/highcharts/modules/drilldown.js +1 -1
- package/assets/js/highcharts/modules/drilldown.src.js +1 -1
- package/assets/js/highcharts/modules/dumbbell.js +1 -1
- package/assets/js/highcharts/modules/dumbbell.src.js +1 -1
- package/assets/js/highcharts/modules/export-data.js +1 -1
- package/assets/js/highcharts/modules/export-data.src.js +1 -1
- package/assets/js/highcharts/modules/exporting.js +2 -2
- package/assets/js/highcharts/modules/exporting.src.js +6 -2
- package/assets/js/highcharts/modules/flowmap.js +1 -1
- package/assets/js/highcharts/modules/flowmap.src.js +1 -1
- package/assets/js/highcharts/modules/full-screen.js +1 -1
- package/assets/js/highcharts/modules/full-screen.src.js +1 -1
- package/assets/js/highcharts/modules/funnel.js +1 -1
- package/assets/js/highcharts/modules/funnel.src.js +1 -1
- package/assets/js/highcharts/modules/funnel3d.js +1 -1
- package/assets/js/highcharts/modules/funnel3d.src.js +2 -1
- package/assets/js/highcharts/modules/gantt.js +2 -2
- package/assets/js/highcharts/modules/gantt.src.js +30 -18
- package/assets/js/highcharts/modules/geoheatmap.js +1 -1
- package/assets/js/highcharts/modules/geoheatmap.src.js +1 -1
- package/assets/js/highcharts/modules/grid-axis.js +2 -2
- package/assets/js/highcharts/modules/grid-axis.src.js +3 -3
- package/assets/js/highcharts/modules/heatmap.js +1 -1
- package/assets/js/highcharts/modules/heatmap.src.js +1 -1
- package/assets/js/highcharts/modules/heikinashi.js +1 -1
- package/assets/js/highcharts/modules/heikinashi.src.js +1 -1
- package/assets/js/highcharts/modules/histogram-bellcurve.js +1 -1
- package/assets/js/highcharts/modules/histogram-bellcurve.src.js +1 -1
- package/assets/js/highcharts/modules/hollowcandlestick.js +1 -1
- package/assets/js/highcharts/modules/hollowcandlestick.src.js +1 -1
- package/assets/js/highcharts/modules/item-series.js +1 -1
- package/assets/js/highcharts/modules/item-series.src.js +1 -1
- package/assets/js/highcharts/modules/lollipop.js +1 -1
- package/assets/js/highcharts/modules/lollipop.src.js +1 -1
- package/assets/js/highcharts/modules/map.js +2 -2
- package/assets/js/highcharts/modules/map.src.js +4 -9
- package/assets/js/highcharts/modules/marker-clusters.js +1 -1
- package/assets/js/highcharts/modules/marker-clusters.src.js +1 -1
- package/assets/js/highcharts/modules/mouse-wheel-zoom.js +1 -1
- package/assets/js/highcharts/modules/mouse-wheel-zoom.src.js +1 -1
- package/assets/js/highcharts/modules/navigator.js +2 -2
- package/assets/js/highcharts/modules/navigator.src.js +20 -5
- package/assets/js/highcharts/modules/networkgraph.js +1 -1
- package/assets/js/highcharts/modules/networkgraph.src.js +1 -1
- package/assets/js/highcharts/modules/no-data-to-display.js +1 -1
- package/assets/js/highcharts/modules/no-data-to-display.src.js +1 -1
- package/assets/js/highcharts/modules/offline-exporting.js +2 -2
- package/assets/js/highcharts/modules/offline-exporting.src.js +6 -3
- package/assets/js/highcharts/modules/organization.js +1 -1
- package/assets/js/highcharts/modules/organization.src.js +1 -1
- package/assets/js/highcharts/modules/overlapping-datalabels.js +1 -1
- package/assets/js/highcharts/modules/overlapping-datalabels.src.js +1 -1
- package/assets/js/highcharts/modules/parallel-coordinates.js +1 -1
- package/assets/js/highcharts/modules/parallel-coordinates.src.js +1 -1
- package/assets/js/highcharts/modules/pareto.js +1 -1
- package/assets/js/highcharts/modules/pareto.src.js +1 -1
- package/assets/js/highcharts/modules/pathfinder.js +1 -1
- package/assets/js/highcharts/modules/pathfinder.src.js +1 -1
- package/assets/js/highcharts/modules/pattern-fill.js +1 -1
- package/assets/js/highcharts/modules/pattern-fill.src.js +1 -1
- package/assets/js/highcharts/modules/pictorial.js +1 -1
- package/assets/js/highcharts/modules/pictorial.src.js +3 -2
- package/assets/js/highcharts/modules/price-indicator.js +1 -1
- package/assets/js/highcharts/modules/price-indicator.src.js +1 -1
- package/assets/js/highcharts/modules/pyramid3d.js +1 -1
- package/assets/js/highcharts/modules/pyramid3d.src.js +2 -1
- package/assets/js/highcharts/modules/sankey.js +1 -1
- package/assets/js/highcharts/modules/sankey.src.js +1 -1
- package/assets/js/highcharts/modules/series-label.js +1 -1
- package/assets/js/highcharts/modules/series-label.src.js +1 -1
- package/assets/js/highcharts/modules/series-on-point.js +1 -1
- package/assets/js/highcharts/modules/series-on-point.src.js +1 -1
- package/assets/js/highcharts/modules/solid-gauge.js +1 -1
- package/assets/js/highcharts/modules/solid-gauge.src.js +1 -1
- package/assets/js/highcharts/modules/sonification.js +1 -1
- package/assets/js/highcharts/modules/sonification.src.js +1 -1
- package/assets/js/highcharts/modules/static-scale.js +1 -1
- package/assets/js/highcharts/modules/static-scale.src.js +1 -1
- package/assets/js/highcharts/modules/stock-tools.js +2 -2
- package/assets/js/highcharts/modules/stock-tools.src.js +3 -3
- package/assets/js/highcharts/modules/stock.js +2 -2
- package/assets/js/highcharts/modules/stock.src.js +20 -5
- package/assets/js/highcharts/modules/streamgraph.js +1 -1
- package/assets/js/highcharts/modules/streamgraph.src.js +1 -1
- package/assets/js/highcharts/modules/sunburst.js +1 -1
- package/assets/js/highcharts/modules/sunburst.src.js +1 -1
- package/assets/js/highcharts/modules/textpath.js +1 -1
- package/assets/js/highcharts/modules/textpath.src.js +1 -1
- package/assets/js/highcharts/modules/tiledwebmap.js +1 -1
- package/assets/js/highcharts/modules/tiledwebmap.src.js +1 -1
- package/assets/js/highcharts/modules/tilemap.js +1 -1
- package/assets/js/highcharts/modules/tilemap.src.js +1 -1
- package/assets/js/highcharts/modules/timeline.js +1 -1
- package/assets/js/highcharts/modules/timeline.src.js +1 -1
- package/assets/js/highcharts/modules/treegraph.js +2 -2
- package/assets/js/highcharts/modules/treegraph.src.js +2 -2
- package/assets/js/highcharts/modules/treegrid.js +2 -2
- package/assets/js/highcharts/modules/treegrid.src.js +11 -14
- package/assets/js/highcharts/modules/treemap.js +1 -1
- package/assets/js/highcharts/modules/treemap.src.js +1 -1
- package/assets/js/highcharts/modules/variable-pie.js +1 -1
- package/assets/js/highcharts/modules/variable-pie.src.js +1 -1
- package/assets/js/highcharts/modules/variwide.js +1 -1
- package/assets/js/highcharts/modules/variwide.src.js +1 -1
- package/assets/js/highcharts/modules/vector.js +1 -1
- package/assets/js/highcharts/modules/vector.src.js +1 -1
- package/assets/js/highcharts/modules/venn.js +1 -1
- package/assets/js/highcharts/modules/venn.src.js +1 -1
- package/assets/js/highcharts/modules/windbarb.js +1 -1
- package/assets/js/highcharts/modules/windbarb.src.js +1 -1
- package/assets/js/highcharts/modules/wordcloud.js +1 -1
- package/assets/js/highcharts/modules/wordcloud.src.js +1 -1
- package/assets/js/highcharts/modules/xrange.js +1 -1
- package/assets/js/highcharts/modules/xrange.src.js +1 -1
- package/assets/js/highcharts/standalone-navigator.js +2 -2
- package/assets/js/highcharts/standalone-navigator.src.js +165 -65
- package/assets/js/highcharts/themes/avocado.js +1 -1
- package/assets/js/highcharts/themes/avocado.src.js +1 -1
- package/assets/js/highcharts/themes/brand-dark.js +1 -1
- package/assets/js/highcharts/themes/brand-dark.src.js +1 -1
- package/assets/js/highcharts/themes/brand-light.js +1 -1
- package/assets/js/highcharts/themes/brand-light.src.js +1 -1
- package/assets/js/highcharts/themes/dark-blue.js +1 -1
- package/assets/js/highcharts/themes/dark-blue.src.js +1 -1
- package/assets/js/highcharts/themes/dark-green.js +1 -1
- package/assets/js/highcharts/themes/dark-green.src.js +1 -1
- package/assets/js/highcharts/themes/dark-unica.js +1 -1
- package/assets/js/highcharts/themes/dark-unica.src.js +1 -1
- package/assets/js/highcharts/themes/gray.js +1 -1
- package/assets/js/highcharts/themes/gray.src.js +1 -1
- package/assets/js/highcharts/themes/grid-light.js +1 -1
- package/assets/js/highcharts/themes/grid-light.src.js +1 -1
- package/assets/js/highcharts/themes/grid.js +1 -1
- package/assets/js/highcharts/themes/grid.src.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-dark.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-dark.src.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-light.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-light.src.js +1 -1
- package/assets/js/highcharts/themes/sand-signika.js +1 -1
- package/assets/js/highcharts/themes/sand-signika.src.js +1 -1
- package/assets/js/highcharts/themes/skies.js +1 -1
- package/assets/js/highcharts/themes/skies.src.js +1 -1
- package/assets/js/highcharts/themes/sunset.js +1 -1
- package/assets/js/highcharts/themes/sunset.src.js +1 -1
- package/package.json +1 -1
- package/assets/js/highcharts/es-modules/Core/Series/KDPointSearchObjectLike.js +0 -10
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
!/**
|
|
2
|
-
* Highcharts JS v11.4.
|
|
2
|
+
* Highcharts JS v11.4.8 (2024-08-29)
|
|
3
3
|
*
|
|
4
4
|
* Data module
|
|
5
5
|
*
|
|
6
6
|
* (c) 2012-2024 Torstein Honsi
|
|
7
7
|
*
|
|
8
8
|
* License: www.highcharts.com/license
|
|
9
|
-
*/function(e){"object"==typeof module&&module.exports?(e.default=e,module.exports=e):"function"==typeof define&&define.amd?define("highcharts/modules/data",["highcharts"],function(t){return e(t),e.Highcharts=t,e}):e("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(e){"use strict";var t=e?e._modules:{};function s(t,s,r,i){t.hasOwnProperty(s)||(t[s]=i.apply(null,r),"function"==typeof CustomEvent&&e.win.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:s,module:t[s]}})))}s(t,"Core/HttpUtilities.js",[t["Core/Globals.js"],t["Core/Utilities.js"]],function(e,t){let{win:s}=e,{discardElement:r,objectEach:i}=t,a={ajax:function(e){let t={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},s=new XMLHttpRequest;function r(t,s){e.error&&e.error(t,s)}if(!e.url)return!1;s.open((e.type||"get").toUpperCase(),e.url,!0),e.headers&&e.headers["Content-Type"]||s.setRequestHeader("Content-Type",t[e.dataType||"json"]||t.text),i(e.headers,function(e,t){s.setRequestHeader(t,e)}),e.responseType&&(s.responseType=e.responseType),s.onreadystatechange=function(){let t;if(4===s.readyState){if(200===s.status){if("blob"!==e.responseType&&(t=s.responseText,"json"===e.dataType))try{t=JSON.parse(t)}catch(e){if(e instanceof Error)return r(s,e)}return e.success&&e.success(t,s)}r(s,s.responseText)}},e.data&&"string"!=typeof e.data&&(e.data=JSON.stringify(e.data)),s.send(e.data)},getJSON:function(e,t){a.ajax({url:e,success:t,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function(e,t,a){let n=new s.FormData;i(t,function(e,t){n.append(t,e)}),n.append("b64","true");let{filename:o,type:l}=t;return s.fetch(e,{method:"POST",body:n,...a}).then(e=>{e.ok&&e.text().then(e=>{let t=document.createElement("a");t.href=`data:${l};base64,${e}`,t.download=o,t.click(),r(t)})})}};return a}),s(t,"Extensions/Data.js",[t["Core/Chart/Chart.js"],t["Core/Defaults.js"],t["Core/Globals.js"],t["Core/HttpUtilities.js"],t["Core/Series/Point.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Utilities.js"]],function(e,t,s,r,i,a,n){let{getOptions:o}=t,{doc:l}=s,{ajax:d}=r,{seriesTypes:u}=a,{addEvent:h,defined:m,extend:c,fireEvent:p,isNumber:f,merge:g,objectEach:C,pick:x,splat:y}=n;function T(e){return!!(e&&(e.rowsURL||e.csvURL||e.columnsURL))}class v{static data(e,t={},s){return new v(e,t,s)}static rowsToColumns(e){let t,s,r,i,a;if(e)for(t=0,a=[],s=e.length;t<s;t++)for(r=0,i=e[t].length;r<i;r++)a[r]||(a[r]=[]),a[r][t]=e[t][r];return a}constructor(e,t={},s){this.rowsToColumns=v.rowsToColumns,this.dateFormats={"YYYY/mm/dd":{regex:/^(\d{4})[\-\/\.](\d{1,2})[\-\/\.](\d{1,2})$/,parser:function(e){return e?Date.UTC(+e[1],e[2]-1,+e[3]):NaN}},"dd/mm/YYYY":{regex:/^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{4})$/,parser:function(e){return e?Date.UTC(+e[3],e[2]-1,+e[1]):NaN},alternative:"mm/dd/YYYY"},"mm/dd/YYYY":{regex:/^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{4})$/,parser:function(e){return e?Date.UTC(+e[3],e[1]-1,+e[2]):NaN}},"dd/mm/YY":{regex:/^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{2})$/,parser:function(e){if(!e)return NaN;let t=new Date,s=+e[3];return s>t.getFullYear()-2e3?s+=1900:s+=2e3,Date.UTC(s,e[2]-1,+e[1])},alternative:"mm/dd/YY"},"mm/dd/YY":{regex:/^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{2})$/,parser:function(e){return e?Date.UTC(+e[3]+2e3,e[1]-1,+e[2]):NaN}}},this.chart=s,this.chartOptions=t,this.options=e,this.rawColumns=[],this.init(e,t,s)}init(e,t,s){let r=e.decimalPoint,i;t&&(this.chartOptions=t),s&&(this.chart=s),"."!==r&&","!==r&&(r=void 0),this.options=e,this.columns=e.columns||this.rowsToColumns(e.rows)||[],this.firstRowAsNames=x(e.firstRowAsNames,this.firstRowAsNames,!0),this.decimalRegex=r&&RegExp("^(-?[0-9]+)"+r+"([0-9]+)$"),void 0!==this.liveDataTimeout&&clearTimeout(this.liveDataTimeout),this.rawColumns=[],this.columns.length&&(this.dataFound(),i=!T(e)),i||(i=this.fetchLiveData()),i||(i=!!this.parseCSV().length),i||(i=!!this.parseTable().length),i||(i=this.parseGoogleSpreadsheet()),!i&&e.afterComplete&&e.afterComplete()}getColumnDistribution(){let e=this.chartOptions,t=this.options,s=[],r=function(e){return(u[e||"line"].prototype.pointArrayMap||[0]).length},i=function(e){return u[e||"line"].prototype.pointArrayMap},a=e&&e.chart&&e.chart.type,n=[],o=[],l=t&&t.seriesMapping||e&&e.series&&e.series.map(function(){return{x:0}})||[],d=0,h;(e&&e.series||[]).forEach(e=>{n.push(r(e.type||a))}),l.forEach(e=>{s.push(e.x||0)}),0===s.length&&s.push(0),l.forEach(t=>{let s=new R,l=n[d]||r(a),u=(e&&e.series||[])[d]||{},c=i(u.type||a),p=c||["y"];for((m(t.x)||u.isCartesian||!c)&&s.addColumnReader(t.x,"x"),C(t,function(e,t){"x"!==t&&s.addColumnReader(e,t)}),h=0;h<l;h++)s.hasReader(p[h])||s.addColumnReader(void 0,p[h]);o.push(s),d++});let c=i(a);void 0===c&&(c=["y"]),this.valueCount={global:r(a),xColumns:s,individual:n,seriesBuilders:o,globalPointArrayMap:c}}dataFound(){this.options.switchRowsAndColumns&&(this.columns=this.rowsToColumns(this.columns)),this.getColumnDistribution(),this.parseTypes(),!1!==this.parsed()&&this.complete()}parseCSV(e){let t=this,s=this.columns=[],r=e||this.options,i=void 0!==r.startColumn&&r.startColumn?r.startColumn:0,a=r.endColumn||Number.MAX_VALUE,n=[],o={",":0,";":0," ":0},l=r.csv,d=void 0!==r.startRow&&r.startRow?r.startRow:0,u=r.endRow||Number.MAX_VALUE,h,m,c=0;if(l&&r.beforeParse&&(l=r.beforeParse.call(this,l)),l){if(m=l.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split(r.lineDelimiter||"\n"),(!d||d<0)&&(d=0),(!u||u>=m.length)&&(u=m.length-1),r.itemDelimiter)h=r.itemDelimiter;else{let e,s,i;h=null,e=0,s=0,i=!1,m.some(function(t,r){let i=!1,a,n,l,d="";if(r>13)return!0;for(let r=0;r<t.length;r++){if(a=t[r],n=t[r+1],l=t[r-1],"#"===a)return;if('"'===a){if(i){if('"'!==l&&'"'!==n){for(;" "===n&&r<t.length;)n=t[++r];void 0!==o[n]&&o[n]++,i=!1}}else i=!0}else void 0!==o[a]?(isNaN(Date.parse(d=d.trim()))?(isNaN(d)||!isFinite(d))&&o[a]++:o[a]++,d=""):d+=a;","===a&&s++,"."===a&&e++}}),o[";"]>o[","]?i=";":(o[","],o[";"],i=","),r.decimalPoint||(e>s?r.decimalPoint=".":r.decimalPoint=",",t.decimalRegex=RegExp("^(-?[0-9]+)"+r.decimalPoint+"([0-9]+)$")),h=i}let e=0;for(c=d;c<=u;c++)"#"===m[c][0]?e++:function(e,t,o,l){let d=0,u="",m="",c="",p="",f=0,g=0;function C(t){u=e[t],m=e[t-1],c=e[t+1]}function x(e){n.length<g+1&&n.push([e]),n[g][n[g].length-1]!==e&&n[g].push(e)}function y(){if(i>f||f>a){++f,p="";return}r.columnTypes||(!isNaN(parseFloat(p))&&isFinite(p)?(p=parseFloat(p),x("number")):isNaN(Date.parse(p))?x("string"):(p=p.replace(/\//g,"-"),x("date"))),s.length<g+1&&s.push([]),s[g][t]=p,p="",++g,++f}if(e.trim().length&&"#"!==e.trim()[0]){for(;d<e.length;d++)if(C(d),'"'===u)for(C(++d);d<e.length&&('"'!==u||'"'===m||'"'===c);)('"'!==u||'"'===u&&'"'!==m)&&(p+=u),C(++d);else u===h?y():p+=u;y()}}(m[c],c-d-e);(!r.columnTypes||0===r.columnTypes.length)&&n.length&&n[0].length&&"date"===n[0][1]&&!r.dateFormat&&(r.dateFormat=function(e,s){let i="YYYY/mm/dd",a=[],n=[],o,l=[],d,u=0,h=!1,m;for((!s||s>e.length)&&(s=e.length);u<s;u++)if(void 0!==e[u]&&e[u]&&e[u].length)for(m=0,o=e[u].trim().replace(/\//g," ").replace(/\-/g," ").replace(/\./g," ").split(" "),l=["","",""];m<o.length;m++)m<l.length&&(o[m]=parseInt(o[m],10),o[m]&&(n[m]=!n[m]||n[m]<o[m]?o[m]:n[m],void 0!==a[m]?a[m]!==o[m]&&(a[m]=!1):a[m]=o[m],o[m]>31?o[m]<100?l[m]="YY":l[m]="YYYY":o[m]>12&&o[m]<=31?(l[m]="dd",h=!0):l[m].length||(l[m]="mm")));if(h){for(m=0;m<a.length;m++)!1!==a[m]?n[m]>12&&"YY"!==l[m]&&"YYYY"!==l[m]&&(l[m]="YY"):n[m]>12&&"mm"===l[m]&&(l[m]="dd");return(3===l.length&&"dd"===l[1]&&"dd"===l[2]&&(l[2]="YY"),d=l.join("/"),(r.dateFormats||t.dateFormats)[d])?d:(p("deduceDateFailed"),i)}return i}(s[0])),this.dataFound()}return s}parseTable(){let e=this.options,t=this.columns||[],s=e.startRow||0,r=e.endRow||Number.MAX_VALUE,i=e.startColumn||0,a=e.endColumn||Number.MAX_VALUE;if(e.table){let n=e.table;"string"==typeof n&&(n=l.getElementById(n)),[].forEach.call(n.getElementsByTagName("tr"),(e,n)=>{n>=s&&n<=r&&[].forEach.call(e.children,(e,r)=>{let o=t[r-i],l=1;if(("TD"===e.tagName||"TH"===e.tagName)&&r>=i&&r<=a)for(t[r-i]||(t[r-i]=[]),t[r-i][n-s]=e.innerHTML;n-s>=l&&void 0===o[n-s-l];)o[n-s-l]=null,l++})}),this.dataFound()}return t}fetchLiveData(){let e=this,t=this.chart,s=this.options,r=s.enablePolling,i=g(s),a=0,n=1e3*(s.dataRefreshRate||2);return!!T(s)&&(n<1e3&&(n=1e3),delete s.csvURL,delete s.rowsURL,delete s.columnsURL,function o(l){function u(i,u,h){if(!i||!/^(http|\/|\.\/|\.\.\/)/.test(i))return i&&s.error&&s.error("Invalid URL"),!1;function m(){r&&t.liveDataURL===i&&(e.liveDataTimeout=setTimeout(o,n))}return l&&(clearTimeout(e.liveDataTimeout),t.liveDataURL=i),d({url:i,dataType:h||"json",success:function(e){t&&t.series&&u(e),m()},error:function(e,t){return++a<3&&m(),s.error&&s.error(t,e)}}),!0}u(i.csvURL,function(e){t.update({data:{csv:e}})},"text")||u(i.rowsURL,function(e){t.update({data:{rows:e}})})||u(i.columnsURL,function(e){t.update({data:{columns:e}})})}(!0),T(s))}parseGoogleSpreadsheet(){let e=this,t=this.options,s=t.googleSpreadsheetKey,r=this.chart,i=Math.max(1e3*(t.dataRefreshRate||2),4e3),a=()=>{if(t.googleSpreadsheetRange)return t.googleSpreadsheetRange;let e="ABCDEFGHIJKLMNOPQRSTUVWXYZ",s=(e.charAt(t.startColumn||0)||"A")+((t.startRow||0)+1),r=e.charAt(x(t.endColumn,-1))||"ZZ";return m(t.endRow)&&(r+=t.endRow+1),`${s}:${r}`};return s&&(delete t.googleSpreadsheetKey,function r(n){d({url:["https://sheets.googleapis.com/v4/spreadsheets",s,"values",a(),"?alt=json&majorDimension=COLUMNS&valueRenderOption=UNFORMATTED_VALUE&dateTimeRenderOption=FORMATTED_STRING&key="+t.googleAPIKey].join("/"),dataType:"json",success:function(s){n(s),t.enablePolling&&(e.liveDataTimeout=setTimeout(function(){r(n)},i))},error:function(e,s){return t.error&&t.error(s,e)}})}(function(t){let s=t.values;if(!s||0===s.length)return!1;let i=s.reduce((e,t)=>Math.max(e,t.length),0);s.forEach(e=>{for(let t=0;t<i;t++)void 0===e[t]&&(e[t]=null)}),r&&r.series?r.update({data:{columns:s}}):(e.columns=s,e.dataFound())})),!1}trim(e,t){return"string"==typeof e&&(e=e.replace(/^\s+|\s+$/g,""),t&&/[\d\s]+/.test(e)&&(e=e.replace(/\s/g,"")),this.decimalRegex&&(e=e.replace(this.decimalRegex,"$1.$2"))),e}parseTypes(){let e=this.columns||[],t=e.length;for(;t--;)this.parseColumn(e[t],t)}parseColumn(e,t){let s=this.rawColumns,r=this.columns,i=this.firstRowAsNames,a=-1!==this.valueCount.xColumns.indexOf(t),n=[],o=this.chartOptions,l=(this.options.columnTypes||[])[t],d=a&&o&&o.xAxis&&"category"===y(o.xAxis)[0].type||"string"===l,u=m(e.name),h=e.length,c,p,g,C,x,T,v;for(s[t]||(s[t]=[]);h--;)c=n[h]||e[h],g=this.trim(c),p=parseFloat(C=this.trim(c,!0)),void 0===s[t][h]&&(s[t][h]=g),d||0===h&&i&&!u?e[h]=""+g:+C===p?(e[h]=p,p>31536e6&&"float"!==l?e.isDatetime=!0:e.isNumeric=!0,void 0!==e[h+1]&&(v=p>e[h+1])):(g&&g.length&&(x=this.parseDate(c)),a&&f(x)&&"float"!==l?(n[h]=c,e[h]=x,e.isDatetime=!0,void 0!==e[h+1]&&((T=x>e[h+1])!==v&&void 0!==v&&(this.alternativeFormat?(this.dateFormat=this.alternativeFormat,h=e.length,this.alternativeFormat=this.dateFormats[this.dateFormat].alternative):e.unsorted=!0),v=T)):(e[h]=""===g?null:g,0!==h&&(e.isDatetime||e.isNumeric)&&(e.mixed=!0)));if(a&&e.mixed&&(r[t]=s[t]),a&&v&&this.options.sort)for(t=0;t<r.length;t++)r[t].reverse(),i&&r[t].unshift(r[t].pop())}parseDate(e){let t=this.options.parseDate,s,r,i,a=this.options.dateFormat||this.dateFormat,n;if(t)s=t(e);else if("string"==typeof e){if(a)(i=this.dateFormats[a])||(i=this.dateFormats["YYYY/mm/dd"]),(n=e.match(i.regex))&&(s=i.parser(n));else for(r in this.dateFormats)if(i=this.dateFormats[r],n=e.match(i.regex)){this.dateFormat=a=r,this.alternativeFormat=i.alternative,s=i.parser(n);break}!n&&(e.match(/:.+(GMT|UTC|[Z+\-])/)&&(e=e.replace(/\s*(?:GMT|UTC)?([+\-])(\d\d)(\d\d)$/,"$1$2:$3").replace(/(?:\s+|GMT|UTC)([+\-])/,"$1").replace(/(\d)\s*(?:GMT|UTC|Z)$/,"$1+00:00")),"object"==typeof(n=Date.parse(e))&&null!==n&&n.getTime?s=n.getTime()-6e4*n.getTimezoneOffset():f(n)&&(s=n-6e4*new Date(n).getTimezoneOffset()))}return s}getData(){if(this.columns)return this.rowsToColumns(this.columns).slice(1)}parsed(){if(this.options.parsed)return this.options.parsed.call(this,this.columns)}complete(){let e,t,s,r,i,a,n,o,l,d,u,h;let c=this.columns,p=this.options,f=[];if([].length=c.length,p.complete||p.afterComplete){if(this.firstRowAsNames)for(r=0;r<c.length;r++){let e=c[r];m(e.name)||(e.name=x(e.shift(),"").toString())}for(n=0,t=[],d=function(e,t){let s,r,i;let a=[],n=[];for(r=0;r<e;r+=1)a.push(!0);for(s=0;s<t.length;s+=1)for(r=0,i=t[s].getReferencedColumnIndexes();r<i.length;r+=1)a[i[r]]=!1;for(r=0;r<a.length;r+=1)a[r]&&n.push(r);return n}(c.length,this.valueCount.seriesBuilders);n<this.valueCount.seriesBuilders.length;n++)(l=this.valueCount.seriesBuilders[n]).populateColumns(d)&&f.push(l);for(;d.length>0;){for((l=new R).addColumnReader(0,"x"),-1!==(h=d.indexOf(0))&&d.splice(h,1),r=0;r<this.valueCount.global;r++)l.addColumnReader(void 0,this.valueCount.globalPointArrayMap[r]);l.populateColumns(d)&&f.push(l)}if(f.length>0&&f[0].readers.length>0&&void 0!==(u=c[f[0].readers[0].columnIndex])&&(u.isDatetime?e="datetime":u.isNumeric||(e="category")),"category"===e)for(n=0;n<f.length;n++)for(a=0,l=f[n];a<l.readers.length;a++)"x"===l.readers[a].configName&&(l.readers[a].configName="name");for(n=0;n<f.length;n++){for(i=0,l=f[n],s=[];i<c[0].length;i++)s[i]=l.read(c,i);t[n]={data:s},l.name&&(t[n].name=l.name),"category"===e&&(t[n].turboThreshold=0)}o={series:t},e&&(o.xAxis={type:e},"category"===e&&(o.xAxis.uniqueNames=!1)),p.complete&&p.complete(o),p.afterComplete&&p.afterComplete(o)}}update(e,t){let s=this.chart,r=s.options;e&&(e.afterComplete=function(e){e&&(e.xAxis&&s.xAxis[0]&&e.xAxis.type===s.xAxis[0].options.type&&delete e.xAxis,s.update(e,t,!0))},g(!0,r.data,e),r.data&&r.data.googleSpreadsheetKey&&!e.columns&&delete r.data.columns,this.init(r.data))}}h(e,"init",function(e){let t=this,s=e.args[1],r=o().data,i=e.args[0]||{};if((r||i&&i.data)&&!t.hasDataDef){t.hasDataDef=!0;let a=g(r,i.data);t.data=new v(c(a,{afterComplete:function(e){let r,a;if(Object.hasOwnProperty.call(i,"series")){if("object"==typeof i.series)for(r=Math.max(i.series.length,e&&e.series?e.series.length:0);r--;)a=i.series[r]||{},i.series[r]=g(a,e&&e.series?e.series[r]:{});else delete i.series}i=g(e,i),t.init(i,s)}}),i,t),e.preventDefault()}});class R{constructor(){this.readers=[],this.pointIsArray=!0}populateColumns(e){let t=!0;return this.readers.forEach(t=>{void 0===t.columnIndex&&(t.columnIndex=e.shift())}),this.readers.forEach(e=>{void 0===e.columnIndex&&(t=!1)}),t}read(e,t){let s=this.pointIsArray,r=s?[]:{};if(this.readers.forEach(a=>{let n=e[a.columnIndex][t];s?r.push(n):a.configName.indexOf(".")>0?i.prototype.setNestedProperty(r,n,a.configName):r[a.configName]=n}),void 0===this.name&&this.readers.length>=2){let t=[];this.readers.forEach(function(e){("x"===e.configName||"name"===e.configName||"y"===e.configName)&&void 0!==e.columnIndex&&t.push(e.columnIndex)}),t.length>=2&&(t.shift(),t.sort(function(e,t){return e-t})),this.name=e[x(t.shift(),0)].name}return r}addColumnReader(e,t){this.readers.push({columnIndex:e,configName:t}),"x"===t||"y"===t||void 0===t||(this.pointIsArray=!1)}getReferencedColumnIndexes(){let e,t;let s=[];for(e=0;e<this.readers.length;e+=1)void 0!==(t=this.readers[e]).columnIndex&&s.push(t.columnIndex);return s}hasReader(e){let t;for(t=0;t<this.readers.length;t+=1)if(this.readers[t].configName===e)return!0}}return v}),s(t,"masters/modules/data.src.js",[t["Core/Globals.js"],t["Core/HttpUtilities.js"],t["Extensions/Data.js"]],function(e,t,s){return e.Data=e.Data||s,e.HttpUtilities=e.HttpUtilities||t,e.ajax=e.HttpUtilities.ajax,e.data=e.Data.data,e.getJSON=e.HttpUtilities.getJSON,e.post=e.HttpUtilities.post,e})});
|
|
9
|
+
*/function(e){"object"==typeof module&&module.exports?(e.default=e,module.exports=e):"function"==typeof define&&define.amd?define("highcharts/modules/data",["highcharts"],function(t){return e(t),e.Highcharts=t,e}):e("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(e){"use strict";var t=e?e._modules:{};function s(t,s,i,a){t.hasOwnProperty(s)||(t[s]=a.apply(null,i),"function"==typeof CustomEvent&&e.win.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:s,module:t[s]}})))}s(t,"Core/HttpUtilities.js",[t["Core/Globals.js"],t["Core/Utilities.js"]],function(e,t){let{win:s}=e,{discardElement:i,objectEach:a}=t,n={ajax:function(e){let t={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},s=new XMLHttpRequest;function i(t,s){e.error&&e.error(t,s)}if(!e.url)return!1;s.open((e.type||"get").toUpperCase(),e.url,!0),e.headers&&e.headers["Content-Type"]||s.setRequestHeader("Content-Type",t[e.dataType||"json"]||t.text),a(e.headers,function(e,t){s.setRequestHeader(t,e)}),e.responseType&&(s.responseType=e.responseType),s.onreadystatechange=function(){let t;if(4===s.readyState){if(200===s.status){if("blob"!==e.responseType&&(t=s.responseText,"json"===e.dataType))try{t=JSON.parse(t)}catch(e){if(e instanceof Error)return i(s,e)}return e.success&&e.success(t,s)}i(s,s.responseText)}},e.data&&"string"!=typeof e.data&&(e.data=JSON.stringify(e.data)),s.send(e.data)},getJSON:function(e,t){n.ajax({url:e,success:t,dataType:"json",headers:{"Content-Type":"text/plain"}})},post:function(e,t,n){let r=new s.FormData;a(t,function(e,t){r.append(t,e)}),r.append("b64","true");let{filename:o,type:l}=t;return s.fetch(e,{method:"POST",body:r,...n}).then(e=>{e.ok&&e.text().then(e=>{let t=document.createElement("a");t.href=`data:${l};base64,${e}`,t.download=o,t.click(),i(t)})})}};return n}),s(t,"Extensions/Data.js",[t["Core/Axis/Axis.js"],t["Core/Chart/Chart.js"],t["Core/Defaults.js"],t["Core/Globals.js"],t["Core/HttpUtilities.js"],t["Core/Series/Point.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Utilities.js"]],function(e,t,s,i,a,n,r,o){let{getOptions:l}=s,{doc:u}=i,{ajax:h}=a,{seriesTypes:d}=r,{addEvent:p,defined:m,extend:c,fireEvent:f,isNumber:g,merge:x,objectEach:C,pick:y,splat:v}=o;function T(e){return!!(e&&(e.rowsURL||e.csvURL||e.columnsURL))}class N{static data(e,t={},s){return new N(e,t,s)}static rowsToColumns(e){let t,s,i,a,n;if(e)for(t=0,n=[],s=e.length;t<s;t++)for(i=0,a=e[t].length;i<a;i++)n[i]||(n[i]=[]),n[i][t]=e[t][i];return n}constructor(e,t={},s){this.rowsToColumns=N.rowsToColumns,this.dateFormats={"YYYY/mm/dd":{regex:/^(\d{4})[\-\/\.](\d{1,2})[\-\/\.](\d{1,2})$/,parser:function(e){return e?Date.UTC(+e[1],+e[2]-1,+e[3]):NaN}},"dd/mm/YYYY":{regex:/^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{4})$/,parser:function(e){return e?Date.UTC(+e[3],+e[2]-1,+e[1]):NaN},alternative:"mm/dd/YYYY"},"mm/dd/YYYY":{regex:/^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{4})$/,parser:function(e){return e?Date.UTC(+e[3],+e[1]-1,+e[2]):NaN}},"dd/mm/YY":{regex:/^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{2})$/,parser:function(e){if(!e)return NaN;let t=new Date,s=+e[3];return s>t.getFullYear()-2e3?s+=1900:s+=2e3,Date.UTC(s,+e[2]-1,+e[1])},alternative:"mm/dd/YY"},"mm/dd/YY":{regex:/^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{2})$/,parser:function(e){return e?Date.UTC(+e[3]+2e3,+e[1]-1,+e[2]):NaN}}},this.chart=s,this.chartOptions=t,this.options=e,this.rawColumns=[],this.init(e,t,s)}init(e,t,s){let i=e.decimalPoint,a;t&&(this.chartOptions=t),s&&(this.chart=s),"."!==i&&","!==i&&(i=void 0),this.options=e,this.columns=e.columns||this.rowsToColumns(e.rows)||[],this.firstRowAsNames=y(e.firstRowAsNames,this.firstRowAsNames,!0),this.decimalRegex=i&&RegExp("^(-?[0-9]+)"+i+"([0-9]+)$"),void 0!==this.liveDataTimeout&&clearTimeout(this.liveDataTimeout),this.rawColumns=[],this.columns.length&&(this.dataFound(),a=!T(e)),a||(a=this.fetchLiveData()),a||(a=!!this.parseCSV().length),a||(a=!!this.parseTable().length),a||(a=this.parseGoogleSpreadsheet()),!a&&e.afterComplete&&e.afterComplete(this)}getColumnDistribution(){let e=this.chartOptions,t=this.options,s=[],i=function(e="line"){return(d[e].prototype.pointArrayMap||[0]).length},a=function(e="line"){return d[e].prototype.pointArrayMap},n=e?.chart?.type,r=[],o=[],l=t?.seriesMapping||e?.series?.map(function(){return{x:0}})||[],u=0;(e?.series||[]).forEach(e=>{r.push(i(e.type||n))}),l.forEach(e=>{s.push(e.x||0)}),0===s.length&&s.push(0),l.forEach(t=>{let s=new R,l=r[u]||i(n),h=(e?.series??[])[u]??{},d=a(h.type||n),p=d??["y"];(m(t.x)||h.isCartesian||!d)&&s.addColumnReader(t.x,"x"),C(t,function(e,t){"x"!==t&&s.addColumnReader(e,t)});for(let e=0;e<l;e++)s.hasReader(p[e])||s.addColumnReader(void 0,p[e]);o.push(s),u++});let h=a(n);void 0===h&&(h=["y"]),this.valueCount={global:i(n),xColumns:s,individual:r,seriesBuilders:o,globalPointArrayMap:h}}dataFound(){this.options.switchRowsAndColumns&&(this.columns=this.rowsToColumns(this.columns)),this.getColumnDistribution(),this.parseTypes(),!1!==this.parsed()&&this.complete()}parseCSV(e){let t=this,s=this.columns=[],i=e||this.options,a=i.startColumn||0,n=i.endColumn||Number.MAX_VALUE,r=[],o={",":0,";":0," ":0},l=i.csv,u=i.startRow||0,h=i.endRow||Number.MAX_VALUE,d,p,m=0;if(l&&i.beforeParse&&(l=i.beforeParse.call(this,l)),l){if(p=l.replace(/\r\n/g,"\n").replace(/\r/g,"\n").split(i.lineDelimiter||"\n"),(!u||u<0)&&(u=0),(!h||h>=p.length)&&(h=p.length-1),i.itemDelimiter)d=i.itemDelimiter;else{let e,s,a;e=0,s=0,a=!1,p.some(function(t,i){let a=!1,n,r,l,u="";if(i>13)return!0;for(let i=0;i<t.length;i++){if(n=t[i],r=t[i+1],l=t[i-1],"#"===n)return;if('"'===n){if(a){if('"'!==l&&'"'!==r){for(;" "===r&&i<t.length;)r=t[++i];void 0!==o[r]&&o[r]++,a=!1}}else a=!0}else void 0!==o[n]?(isNaN(Date.parse(u=u.trim()))?(isNaN(u)||!isFinite(u))&&o[n]++:o[n]++,u=""):u+=n;","===n&&s++,"."===n&&e++}}),o[";"]>o[","]?a=";":(o[","],o[";"],a=","),i.decimalPoint||(e>s?i.decimalPoint=".":i.decimalPoint=",",t.decimalRegex=RegExp("^(-?[0-9]+)"+i.decimalPoint+"([0-9]+)$")),d=a}let e=0;for(m=u;m<=h;m++)"#"===p[m][0]?e++:function(e,t,o,l){let u=0,h="",p="",m="",c="",f=0,g=0;function x(t){h=e[t],p=e[t-1],m=e[t+1]}function C(e){r.length<g+1&&r.push([e]),r[g][r[g].length-1]!==e&&r[g].push(e)}function y(){if(a>f||f>n){++f,c="";return}i.columnTypes||(!isNaN(parseFloat(c))&&isFinite(c)?(c=parseFloat(c),C("number")):isNaN(Date.parse(c))?C("string"):(c=c.replace(/\//g,"-"),C("date"))),s.length<g+1&&s.push([]),s[g][t]=c,c="",++g,++f}if(e.trim().length&&"#"!==e.trim()[0]){for(;u<e.length;u++)if(x(u),'"'===h)for(x(++u);u<e.length&&('"'!==h||'"'===p||'"'===m);)('"'!==h||'"'===h&&'"'!==p)&&(c+=h),x(++u);else h===d?y():c+=h;y()}}(p[m],m-u-e);(!i.columnTypes||0===i.columnTypes.length)&&r.length&&r[0].length&&"date"===r[0][1]&&!i.dateFormat&&(i.dateFormat=function(e,s){let a="YYYY/mm/dd",n=[],r=[],o,l=[],u,h=0,d=!1,p;for((!s||s>e.length)&&(s=e.length);h<s;h++)if(void 0!==e[h]&&e[h]?.length)for(p=0,o=e[h].trim().replace(/\//g," ").replace(/\-/g," ").replace(/\./g," ").split(" "),l=["","",""];p<o.length;p++)p<l.length&&(o[p]=parseInt(o[p],10),o[p]&&(r[p]=!r[p]||r[p]<o[p]?o[p]:r[p],void 0!==n[p]?n[p]!==o[p]&&(n[p]=!1):n[p]=o[p],o[p]>31?o[p]<100?l[p]="YY":l[p]="YYYY":o[p]>12&&o[p]<=31?(l[p]="dd",d=!0):l[p].length||(l[p]="mm")));if(d){for(p=0;p<n.length;p++)!1!==n[p]?r[p]>12&&"YY"!==l[p]&&"YYYY"!==l[p]&&(l[p]="YY"):r[p]>12&&"mm"===l[p]&&(l[p]="dd");return(3===l.length&&"dd"===l[1]&&"dd"===l[2]&&(l[2]="YY"),u=l.join("/"),(i.dateFormats||t.dateFormats)[u])?u:(f(t,"deduceDateFailed"),a)}return a}(s[0])),this.dataFound()}return s}parseTable(){let e=this.options,t=this.columns||[],s=e.startRow||0,i=e.endRow||Number.MAX_VALUE,a=e.startColumn||0,n=e.endColumn||Number.MAX_VALUE;if(e.table){let r=e.table;"string"==typeof r&&(r=u.getElementById(r)),[].forEach.call(r.getElementsByTagName("tr"),(e,r)=>{r>=s&&r<=i&&[].forEach.call(e.children,(e,i)=>{let o=t[i-a],l=1;if(("TD"===e.tagName||"TH"===e.tagName)&&i>=a&&i<=n)for(t[i-a]||(t[i-a]=[]),t[i-a][r-s]=e.innerHTML;r-s>=l&&void 0===o[r-s-l];)o[r-s-l]=null,l++})}),this.dataFound()}return t}fetchLiveData(){let e=this,t=this.chart,s=this.options,i=s.enablePolling,a=x(s),n=0,r=1e3*(s.dataRefreshRate||2);return!!T(s)&&(r<1e3&&(r=1e3),delete s.csvURL,delete s.rowsURL,delete s.columnsURL,function o(l){function u(a,u,d){if(!a||!/^(http|\/|\.\/|\.\.\/)/.test(a))return a&&s.error&&s.error("Invalid URL"),!1;function p(){i&&t.liveDataURL===a&&(e.liveDataTimeout=setTimeout(o,r))}return l&&(clearTimeout(e.liveDataTimeout),t.liveDataURL=a),h({url:a,dataType:d||"json",success:function(e){t?.series&&u(e),p()},error:function(e,t){return++n<3&&p(),s.error?.(t,e)}}),!0}u(a.csvURL,function(e){t.update({data:{csv:e}})},"text")||u(a.rowsURL,function(e){t.update({data:{rows:e}})})||u(a.columnsURL,function(e){t.update({data:{columns:e}})})}(!0),T(s))}parseGoogleSpreadsheet(){let e=this,t=this.options,s=t.googleSpreadsheetKey,i=this.chart,a=Math.max(1e3*(t.dataRefreshRate||2),4e3),n=()=>{if(t.googleSpreadsheetRange)return t.googleSpreadsheetRange;let e="ABCDEFGHIJKLMNOPQRSTUVWXYZ",s=(e.charAt(t.startColumn||0)||"A")+((t.startRow||0)+1),i=e.charAt(y(t.endColumn,-1))||"ZZ";return m(t.endRow)&&(i+=t.endRow+1),`${s}:${i}`};return s&&(delete t.googleSpreadsheetKey,function i(r){h({url:["https://sheets.googleapis.com/v4/spreadsheets",s,"values",n(),"?alt=json&majorDimension=COLUMNS&valueRenderOption=UNFORMATTED_VALUE&dateTimeRenderOption=FORMATTED_STRING&key="+t.googleAPIKey].join("/"),dataType:"json",success:function(s){r(s),t.enablePolling&&(e.liveDataTimeout=setTimeout(function(){i(r)},a))},error:function(e,s){return t.error?.(s,e)}})}(function(t){let s=t.values;if(!s||0===s.length)return!1;let a=s.reduce((e,t)=>Math.max(e,t.length),0);s.forEach(e=>{for(let t=0;t<a;t++)void 0===e[t]&&(e[t]=null)}),i?.series?i.update({data:{columns:s}}):(e.columns=s,e.dataFound())})),!1}trim(e,t){return"string"==typeof e&&(e=e.replace(/^\s+|\s+$/g,""),t&&/[\d\s]+/.test(e)&&(e=e.replace(/\s/g,"")),this.decimalRegex&&(e=e.replace(this.decimalRegex,"$1.$2"))),e}parseTypes(){let e=this.columns||[],t=e.length;for(;t--;)this.parseColumn(e[t],t)}parseColumn(e,t){let s=this.rawColumns,i=this.columns=this.columns||[],a=this.firstRowAsNames,n=this.valueCount?.xColumns.indexOf(t)!==-1,r=[],o=this.chartOptions,l=(this.options.columnTypes||[])[t],u=n&&o?.xAxis&&"category"===v(o.xAxis)[0].type||"string"===l,h=m(e.name),d=e.length,p,c,f,x,C,y,T;for(s[t]||(s[t]=[]);d--;)p=r[d]||e[d],f=this.trim(p),c=parseFloat(x=this.trim(p,!0)),void 0===s[t][d]&&(s[t][d]=f),u||0===d&&a&&!h?e[d]=""+f:+x===c?(e[d]=c,c>31536e6&&"float"!==l?e.isDatetime=!0:e.isNumeric=!0,void 0!==e[d+1]&&(T=c>e[d+1])):(f?.length&&(C=this.parseDate(p)),n&&g(C)&&"float"!==l?(r[d]=p,e[d]=C,e.isDatetime=!0,void 0!==e[d+1]&&((y=C>e[d+1])!==T&&void 0!==T&&(this.alternativeFormat?(this.dateFormat=this.alternativeFormat,d=e.length,this.alternativeFormat=this.dateFormats[this.dateFormat].alternative):e.unsorted=!0),T=y)):(e[d]=""===f?null:f,0!==d&&(e.isDatetime||e.isNumeric)&&(e.mixed=!0)));if(n&&e.mixed&&(i[t]=s[t]),n&&T&&this.options.sort){for(t=0;t<i.length;t++)if(i[t].reverse(),a){let e=i[t].pop();e&&i[t].unshift(e)}}}parseDate(e){let t=this.options.parseDate,s,i,a,n=this.options.dateFormat||this.dateFormat,r;if(t)s=t(e);else if("string"==typeof e){if(n)(a=this.dateFormats[n])||(a=this.dateFormats["YYYY/mm/dd"]),(r=e.match(a.regex))&&(s=a.parser(r));else for(i in this.dateFormats)if(a=this.dateFormats[i],r=e.match(a.regex)){this.dateFormat=n=i,this.alternativeFormat=a.alternative,s=a.parser(r);break}!r&&(e.match(/:.+(GMT|UTC|[Z+\-])/)&&(e=e.replace(/\s*(?:GMT|UTC)?([+\-])(\d\d)(\d\d)$/,"$1$2:$3").replace(/(?:\s+|GMT|UTC)([+\-])/,"$1").replace(/(\d)\s*(?:GMT|UTC|Z)$/,"$1+00:00")),"object"==typeof(r=Date.parse(e))&&null!==r&&r.getTime?s=r.getTime()-6e4*r.getTimezoneOffset():g(r)&&(s=r-6e4*new Date(r).getTimezoneOffset()))}return s}getData(){if(this.columns)return this.rowsToColumns(this.columns)?.slice(1)}parsed(){if(this.options.parsed)return this.options.parsed.call(this,this.columns)}complete(){let e=this.columns=this.columns||[],t=this.options,s=[],i="linear",a,n,r,o,l,u,h,d,p,c,f;if([].length=e.length,t.complete||t.afterComplete){if(this.firstRowAsNames)for(r=0;r<e.length;r++){let t=e[r];m(t.name)||(t.name=y(t.shift(),"").toString())}for(u=0,a=[],p=function(e,t){let s,i,a;let n=[],r=[];for(i=0;i<e;i+=1)n.push(!0);for(s=0;s<t.length;s+=1)for(i=0,a=t[s].getReferencedColumnIndexes();i<a.length;i+=1)n[a[i]]=!1;for(i=0;i<n.length;i+=1)n[i]&&r.push(i);return r}(e?.length||0,this.valueCount.seriesBuilders);u<this.valueCount.seriesBuilders.length;u++)(d=this.valueCount.seriesBuilders[u]).populateColumns(p)&&s.push(d);for(;p.length>0;){for((d=new R).addColumnReader(0,"x"),-1!==(f=p.indexOf(0))&&p.splice(f,1),r=0;r<this.valueCount.global;r++)d.addColumnReader(void 0,this.valueCount.globalPointArrayMap[r]);d.populateColumns(p)&&s.push(d)}if(s.length>0&&s[0].readers.length>0&&void 0!==(c=e?.[s[0].readers[0].columnIndex??-1])&&(c.isDatetime?i="datetime":c.isNumeric||(i="category")),"category"===i)for(u=0;u<s.length;u++)for(l=0,d=s[u];l<d.readers.length;l++)"x"===d.readers[l].configName&&(d.readers[l].configName="name");for(u=0;u<s.length;u++){for(o=0,d=s[u],n=[];o<e[0].length;o++)n[o]=d.read(e,o);a[u]={data:n,pointStart:n[0]&&(d.pointIsArray?n[0]?.[0]:n[0]?.x)||void 0},d.name&&(a[u].name=d.name),"category"===i&&(a[u].turboThreshold=0,a[u].pointStart=0)}h={series:a},"linear"!==i||this.xAxisOptions&&this.xAxisOptions.type!==i?(this.xAxisOptions={type:i},"category"===i&&(this.xAxisOptions.uniqueNames=!1)):i=this.xAxisOptions=void 0,this.chart||x(!0,h,{xAxis:this.xAxisOptions||{}}),t.complete?.(h),t.afterComplete?.(this,h)}}xAxisUpdateHandler(e){let t=this.xAxisOptions;t&&(!e.options.type&&t.type&&(e.type=t.type),e.options.uniqueNames||!1!==t.uniqueNames||(e.uniqueNames=t.uniqueNames))}update(e,t){let s=this.chart,i=s.options;e&&(e.afterComplete=function(e,i){if(!i)return;let a=s.xAxis[0],n=e.xAxisOptions;n&&a&&(a.type!==n.type&&!a.options.type||a.uniqueNames&&!1===n.uniqueNames&&void 0===a.options.uniqueNames)?a.update({},!1):(i?.series||[]).forEach(function(e){delete e.pointStart}),s.update(i,t,!0)},x(!0,i.data,e),i.data?.googleSpreadsheetKey&&!e.columns&&delete i.data.columns,this.init(i.data||{},i))}}p(e,"afterSetOptions",function(){this.isXAxis&&(!this.chart.xAxis.length||this.chart.xAxis[0]===this)&&this.chart.data?.xAxisUpdateHandler(this)}),p(t,"init",function(e){let t=this,s=e.args[1],i=l().data,a=e.args[0]||{};if((i||a&&a.data)&&!t.hasDataDef){t.hasDataDef=!0;let n=x(i,a.data);t.data=new N(c(n,{afterComplete:function(e,i){let n,r;if(Object.hasOwnProperty.call(a,"series")){if("object"==typeof a.series)for(n=Math.max(a.series.length,i?.series?.length??0);n--;)r=a.series[n]||{},a.series[n]=x(r,i?.series?.[n]??{});else delete a.series}a=x(i,a),t.data=e,t.init(a,s)}}),a,t),e.preventDefault()}});class R{constructor(){this.readers=[],this.pointIsArray=!0}populateColumns(e){let t=!0;return this.readers.forEach(t=>{void 0===t.columnIndex&&(t.columnIndex=e.shift())}),this.readers.forEach(e=>{void 0===e.columnIndex&&(t=!1)}),t}read(e,t){let s=this.pointIsArray,i=s?[]:{};if(this.readers.forEach(a=>{let r=e[a.columnIndex][t];s?i.push(r):a.configName.indexOf(".")>0?n.prototype.setNestedProperty(i,r,a.configName):i[a.configName]=r}),void 0===this.name&&this.readers.length>=2){let t=[];this.readers.forEach(function(e){("x"===e.configName||"name"===e.configName||"y"===e.configName)&&void 0!==e.columnIndex&&t.push(e.columnIndex)}),t.length>=2&&(t.shift(),t.sort(function(e,t){return e-t})),this.name=e[y(t.shift(),0)].name}return i}addColumnReader(e,t){this.readers.push({columnIndex:e,configName:t}),"x"===t||"y"===t||void 0===t||(this.pointIsArray=!1)}getReferencedColumnIndexes(){let e,t;let s=[];for(e=0;e<this.readers.length;e+=1)void 0!==(t=this.readers[e]).columnIndex&&s.push(t.columnIndex);return s}hasReader(e){let t;for(t=0;t<this.readers.length;t+=1)if(this.readers[t].configName===e)return!0}}return N}),s(t,"masters/modules/data.src.js",[t["Core/Globals.js"],t["Core/HttpUtilities.js"],t["Extensions/Data.js"]],function(e,t,s){return e.Data=e.Data||s,e.HttpUtilities=e.HttpUtilities||t,e.ajax=e.HttpUtilities.ajax,e.data=e.Data.data,e.getJSON=e.HttpUtilities.getJSON,e.post=e.HttpUtilities.post,e})});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS v11.4.
|
|
2
|
+
* @license Highcharts JS v11.4.8 (2024-08-29)
|
|
3
3
|
*
|
|
4
4
|
* Data module
|
|
5
5
|
*
|
|
@@ -242,7 +242,7 @@
|
|
|
242
242
|
|
|
243
243
|
return HttpUtilities;
|
|
244
244
|
});
|
|
245
|
-
_registerModule(_modules, 'Extensions/Data.js', [_modules['Core/Chart/Chart.js'], _modules['Core/Defaults.js'], _modules['Core/Globals.js'], _modules['Core/HttpUtilities.js'], _modules['Core/Series/Point.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (Chart, D, G, HU, Point, SeriesRegistry, U) {
|
|
245
|
+
_registerModule(_modules, 'Extensions/Data.js', [_modules['Core/Axis/Axis.js'], _modules['Core/Chart/Chart.js'], _modules['Core/Defaults.js'], _modules['Core/Globals.js'], _modules['Core/HttpUtilities.js'], _modules['Core/Series/Point.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (Axis, Chart, D, G, HU, Point, SeriesRegistry, U) {
|
|
246
246
|
/* *
|
|
247
247
|
*
|
|
248
248
|
* Data module
|
|
@@ -370,7 +370,7 @@
|
|
|
370
370
|
regex: /^(\d{4})[\-\/\.](\d{1,2})[\-\/\.](\d{1,2})$/,
|
|
371
371
|
parser: function (match) {
|
|
372
372
|
return (match ?
|
|
373
|
-
Date.UTC(+match[1], match[2] - 1, +match[3]) :
|
|
373
|
+
Date.UTC(+match[1], +match[2] - 1, +match[3]) :
|
|
374
374
|
NaN);
|
|
375
375
|
}
|
|
376
376
|
},
|
|
@@ -378,7 +378,7 @@
|
|
|
378
378
|
regex: /^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{4})$/,
|
|
379
379
|
parser: function (match) {
|
|
380
380
|
return (match ?
|
|
381
|
-
Date.UTC(+match[3], match[2] - 1, +match[1]) :
|
|
381
|
+
Date.UTC(+match[3], +match[2] - 1, +match[1]) :
|
|
382
382
|
NaN);
|
|
383
383
|
},
|
|
384
384
|
alternative: 'mm/dd/YYYY' // Different format with the same regex
|
|
@@ -387,7 +387,7 @@
|
|
|
387
387
|
regex: /^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{4})$/,
|
|
388
388
|
parser: function (match) {
|
|
389
389
|
return (match ?
|
|
390
|
-
Date.UTC(+match[3], match[1] - 1, +match[2]) :
|
|
390
|
+
Date.UTC(+match[3], +match[1] - 1, +match[2]) :
|
|
391
391
|
NaN);
|
|
392
392
|
}
|
|
393
393
|
},
|
|
@@ -405,7 +405,7 @@
|
|
|
405
405
|
else {
|
|
406
406
|
year += 2000;
|
|
407
407
|
}
|
|
408
|
-
return Date.UTC(year, match[2] - 1, +match[1]);
|
|
408
|
+
return Date.UTC(year, +match[2] - 1, +match[1]);
|
|
409
409
|
},
|
|
410
410
|
alternative: 'mm/dd/YY' // Different format with the same regex
|
|
411
411
|
},
|
|
@@ -413,7 +413,7 @@
|
|
|
413
413
|
regex: /^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{2})$/,
|
|
414
414
|
parser: function (match) {
|
|
415
415
|
return (match ?
|
|
416
|
-
Date.UTC(+match[3] + 2000, match[1] - 1, +match[2]) :
|
|
416
|
+
Date.UTC(+match[3] + 2000, +match[1] - 1, +match[2]) :
|
|
417
417
|
NaN);
|
|
418
418
|
}
|
|
419
419
|
}
|
|
@@ -485,7 +485,7 @@
|
|
|
485
485
|
hasData = this.parseGoogleSpreadsheet();
|
|
486
486
|
}
|
|
487
487
|
if (!hasData && dataOptions.afterComplete) {
|
|
488
|
-
dataOptions.afterComplete();
|
|
488
|
+
dataOptions.afterComplete(this);
|
|
489
489
|
}
|
|
490
490
|
}
|
|
491
491
|
/**
|
|
@@ -496,24 +496,20 @@
|
|
|
496
496
|
* @function Highcharts.Data#getColumnDistribution
|
|
497
497
|
*/
|
|
498
498
|
getColumnDistribution() {
|
|
499
|
-
const chartOptions = this.chartOptions, options = this.options, xColumns = [], getValueCount = function (type) {
|
|
500
|
-
return (seriesTypes[type
|
|
501
|
-
}, getPointArrayMap = function (type) {
|
|
502
|
-
return seriesTypes[type
|
|
503
|
-
}, globalType =
|
|
504
|
-
chartOptions.chart &&
|
|
505
|
-
chartOptions.chart.type), individualCounts = [], seriesBuilders = [],
|
|
499
|
+
const chartOptions = this.chartOptions, options = this.options, xColumns = [], getValueCount = function (type = 'line') {
|
|
500
|
+
return (seriesTypes[type].prototype.pointArrayMap || [0]).length;
|
|
501
|
+
}, getPointArrayMap = function (type = 'line') {
|
|
502
|
+
return seriesTypes[type].prototype.pointArrayMap;
|
|
503
|
+
}, globalType = chartOptions?.chart?.type, individualCounts = [], seriesBuilders = [],
|
|
506
504
|
// If no series mapping is defined, check if the series array is
|
|
507
505
|
// defined with types.
|
|
508
|
-
seriesMapping = (
|
|
509
|
-
(
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
return { x: 0 };
|
|
513
|
-
})) ||
|
|
506
|
+
seriesMapping = (options?.seriesMapping ||
|
|
507
|
+
chartOptions?.series?.map(function () {
|
|
508
|
+
return { x: 0 };
|
|
509
|
+
}) ||
|
|
514
510
|
[]);
|
|
515
|
-
let seriesIndex = 0
|
|
516
|
-
(
|
|
511
|
+
let seriesIndex = 0;
|
|
512
|
+
(chartOptions?.series || []).forEach((series) => {
|
|
517
513
|
individualCounts.push(getValueCount(series.type || globalType));
|
|
518
514
|
});
|
|
519
515
|
// Collect the x-column indexes from seriesMapping
|
|
@@ -529,7 +525,7 @@
|
|
|
529
525
|
// the mapping options.
|
|
530
526
|
seriesMapping.forEach((mapping) => {
|
|
531
527
|
const builder = new SeriesBuilder(), numberOfValueColumnsNeeded = individualCounts[seriesIndex] ||
|
|
532
|
-
getValueCount(globalType), seriesArr =
|
|
528
|
+
getValueCount(globalType), seriesArr = chartOptions?.series ?? [], series = seriesArr[seriesIndex] ?? {}, defaultPointArrayMap = getPointArrayMap(series.type || globalType), pointArrayMap = defaultPointArrayMap ?? ['y'];
|
|
533
529
|
if (
|
|
534
530
|
// User-defined x.mapping
|
|
535
531
|
defined(mapping.x) ||
|
|
@@ -549,7 +545,7 @@
|
|
|
549
545
|
}
|
|
550
546
|
});
|
|
551
547
|
// Add missing columns
|
|
552
|
-
for (i = 0; i < numberOfValueColumnsNeeded; i++) {
|
|
548
|
+
for (let i = 0; i < numberOfValueColumnsNeeded; i++) {
|
|
553
549
|
if (!builder.hasReader(pointArrayMap[i])) {
|
|
554
550
|
// Create and add a column reader for the next free column
|
|
555
551
|
// index
|
|
@@ -598,8 +594,7 @@
|
|
|
598
594
|
* @function Highcharts.Data#parseCSV
|
|
599
595
|
*/
|
|
600
596
|
parseCSV(inOptions) {
|
|
601
|
-
const self = this, columns = this.columns = [], options = inOptions || this.options, startColumn =
|
|
602
|
-
options.startColumn) ? options.startColumn : 0, endColumn = options.endColumn || Number.MAX_VALUE, dataTypes = [],
|
|
597
|
+
const self = this, columns = this.columns = [], options = inOptions || this.options, startColumn = options.startColumn || 0, endColumn = options.endColumn || Number.MAX_VALUE, dataTypes = [],
|
|
603
598
|
// We count potential delimiters in the prepass, and use the
|
|
604
599
|
// result as the basis of half-intelligent guesses.
|
|
605
600
|
potDelimiters = {
|
|
@@ -607,9 +602,7 @@
|
|
|
607
602
|
';': 0,
|
|
608
603
|
'\t': 0
|
|
609
604
|
};
|
|
610
|
-
let csv = options.csv, startRow =
|
|
611
|
-
options.startRow :
|
|
612
|
-
0), endRow = options.endRow || Number.MAX_VALUE, itemDelimiter, lines, rowIt = 0;
|
|
605
|
+
let csv = options.csv, startRow = options.startRow || 0, endRow = options.endRow || Number.MAX_VALUE, itemDelimiter, lines, rowIt = 0;
|
|
613
606
|
/*
|
|
614
607
|
This implementation is quite verbose. It will be shortened once
|
|
615
608
|
it's stable and passes all the test.
|
|
@@ -728,7 +721,7 @@
|
|
|
728
721
|
}
|
|
729
722
|
// Perform "plugin" handling
|
|
730
723
|
}
|
|
731
|
-
else if (callbacks
|
|
724
|
+
else if (callbacks?.[c]) {
|
|
732
725
|
if (callbacks[c](c, token)) {
|
|
733
726
|
push();
|
|
734
727
|
}
|
|
@@ -853,7 +846,7 @@
|
|
|
853
846
|
}
|
|
854
847
|
for (; i < limit; i++) {
|
|
855
848
|
if (typeof data[i] !== 'undefined' &&
|
|
856
|
-
data[i]
|
|
849
|
+
data[i]?.length) {
|
|
857
850
|
thing = data[i]
|
|
858
851
|
.trim()
|
|
859
852
|
.replace(/\//g, ' ')
|
|
@@ -927,23 +920,13 @@
|
|
|
927
920
|
// error.
|
|
928
921
|
if (!(options.dateFormats || self.dateFormats)[calculatedFormat]) {
|
|
929
922
|
// This should emit an event instead
|
|
930
|
-
fireEvent('deduceDateFailed');
|
|
923
|
+
fireEvent(self, 'deduceDateFailed');
|
|
931
924
|
return format;
|
|
932
925
|
}
|
|
933
926
|
return calculatedFormat;
|
|
934
927
|
}
|
|
935
928
|
return format;
|
|
936
929
|
}
|
|
937
|
-
/**
|
|
938
|
-
* @todo
|
|
939
|
-
* Figure out the best axis types for the data
|
|
940
|
-
* - If the first column is a number, we're good
|
|
941
|
-
* - If the first column is a date, set to date/time
|
|
942
|
-
* - If the first column is a string, set to categories
|
|
943
|
-
* @private
|
|
944
|
-
*/
|
|
945
|
-
function deduceAxisTypes() {
|
|
946
|
-
}
|
|
947
930
|
if (csv && options.beforeParse) {
|
|
948
931
|
csv = options.beforeParse.call(this, csv);
|
|
949
932
|
}
|
|
@@ -962,7 +945,6 @@
|
|
|
962
945
|
itemDelimiter = options.itemDelimiter;
|
|
963
946
|
}
|
|
964
947
|
else {
|
|
965
|
-
itemDelimiter = null;
|
|
966
948
|
itemDelimiter = guessDelimiter(lines);
|
|
967
949
|
}
|
|
968
950
|
let offset = 0;
|
|
@@ -974,10 +956,6 @@
|
|
|
974
956
|
parseRow(lines[rowIt], rowIt - startRow - offset);
|
|
975
957
|
}
|
|
976
958
|
}
|
|
977
|
-
// Make sure that there's header columns for everything
|
|
978
|
-
// columns.forEach(function (col) {
|
|
979
|
-
// });
|
|
980
|
-
deduceAxisTypes();
|
|
981
959
|
if ((!options.columnTypes || options.columnTypes.length === 0) &&
|
|
982
960
|
dataTypes.length &&
|
|
983
961
|
dataTypes[0].length &&
|
|
@@ -1108,7 +1086,7 @@
|
|
|
1108
1086
|
url: url,
|
|
1109
1087
|
dataType: tp || 'json',
|
|
1110
1088
|
success: function (res) {
|
|
1111
|
-
if (chart
|
|
1089
|
+
if (chart?.series) {
|
|
1112
1090
|
done(res);
|
|
1113
1091
|
}
|
|
1114
1092
|
poll();
|
|
@@ -1117,7 +1095,7 @@
|
|
|
1117
1095
|
if (++currentRetries < maxRetries) {
|
|
1118
1096
|
poll();
|
|
1119
1097
|
}
|
|
1120
|
-
return options.error
|
|
1098
|
+
return options.error?.(text, xhr);
|
|
1121
1099
|
}
|
|
1122
1100
|
});
|
|
1123
1101
|
return true;
|
|
@@ -1204,7 +1182,7 @@
|
|
|
1204
1182
|
}
|
|
1205
1183
|
},
|
|
1206
1184
|
error: function (xhr, text) {
|
|
1207
|
-
return options.error
|
|
1185
|
+
return options.error?.(text, xhr);
|
|
1208
1186
|
}
|
|
1209
1187
|
});
|
|
1210
1188
|
}
|
|
@@ -1226,7 +1204,7 @@
|
|
|
1226
1204
|
}
|
|
1227
1205
|
}
|
|
1228
1206
|
});
|
|
1229
|
-
if (chart
|
|
1207
|
+
if (chart?.series) {
|
|
1230
1208
|
chart.update({
|
|
1231
1209
|
data: {
|
|
1232
1210
|
columns: columns
|
|
@@ -1293,9 +1271,8 @@
|
|
|
1293
1271
|
* Column index
|
|
1294
1272
|
*/
|
|
1295
1273
|
parseColumn(column, col) {
|
|
1296
|
-
const rawColumns = this.rawColumns, columns = this.columns, firstRowAsNames = this.firstRowAsNames, isXColumn = this.valueCount
|
|
1297
|
-
(chartOptions &&
|
|
1298
|
-
chartOptions.xAxis &&
|
|
1274
|
+
const rawColumns = this.rawColumns, columns = this.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 &&
|
|
1275
|
+
(chartOptions?.xAxis &&
|
|
1299
1276
|
splat(chartOptions.xAxis)[0].type === 'category')) || columnType === 'string', columnHasName = defined(column.name);
|
|
1300
1277
|
let row = column.length, val, floatVal, trimVal, trimInsideVal, dateVal, diff, descending;
|
|
1301
1278
|
if (!rawColumns[col]) {
|
|
@@ -1334,7 +1311,7 @@
|
|
|
1334
1311
|
// string
|
|
1335
1312
|
}
|
|
1336
1313
|
else {
|
|
1337
|
-
if (trimVal
|
|
1314
|
+
if (trimVal?.length) {
|
|
1338
1315
|
dateVal = this.parseDate(val);
|
|
1339
1316
|
}
|
|
1340
1317
|
// Only allow parsing of dates if this column is an x-column
|
|
@@ -1387,7 +1364,10 @@
|
|
|
1387
1364
|
for (col = 0; col < columns.length; col++) {
|
|
1388
1365
|
columns[col].reverse();
|
|
1389
1366
|
if (firstRowAsNames) {
|
|
1390
|
-
columns[col].
|
|
1367
|
+
const poppedColumn = columns[col].pop();
|
|
1368
|
+
if (poppedColumn) {
|
|
1369
|
+
columns[col].unshift(poppedColumn);
|
|
1370
|
+
}
|
|
1391
1371
|
}
|
|
1392
1372
|
}
|
|
1393
1373
|
}
|
|
@@ -1468,11 +1448,11 @@
|
|
|
1468
1448
|
*
|
|
1469
1449
|
* @function Highcharts.Data#getData
|
|
1470
1450
|
*
|
|
1471
|
-
* @return {Array<Array<
|
|
1451
|
+
* @return {Array<Array<DataValueType>>|undefined} Data rows
|
|
1472
1452
|
*/
|
|
1473
1453
|
getData() {
|
|
1474
1454
|
if (this.columns) {
|
|
1475
|
-
return this.rowsToColumns(this.columns)
|
|
1455
|
+
return this.rowsToColumns(this.columns)?.slice(1);
|
|
1476
1456
|
}
|
|
1477
1457
|
}
|
|
1478
1458
|
/**
|
|
@@ -1489,11 +1469,13 @@
|
|
|
1489
1469
|
* If a complete callback function is provided in the options, interpret the
|
|
1490
1470
|
* columns into a Highcharts options object.
|
|
1491
1471
|
*
|
|
1472
|
+
* The function requires that the context has the `valueCount` property set.
|
|
1473
|
+
*
|
|
1492
1474
|
* @function Highcharts.Data#complete
|
|
1493
1475
|
*/
|
|
1494
1476
|
complete() {
|
|
1495
|
-
const columns = this.columns, xColumns = [], options = this.options, allSeriesBuilders = [];
|
|
1496
|
-
let type, series, data, i, j, r, seriesIndex, chartOptions, builder, freeIndexes, typeCol, index;
|
|
1477
|
+
const columns = this.columns = this.columns || [], xColumns = [], options = this.options, allSeriesBuilders = [];
|
|
1478
|
+
let type = 'linear', series, data, i, j, r, seriesIndex, chartOptions, builder, freeIndexes, typeCol, index;
|
|
1497
1479
|
xColumns.length = columns.length;
|
|
1498
1480
|
if (options.complete || options.afterComplete) {
|
|
1499
1481
|
// Get the names and shift the top row
|
|
@@ -1507,7 +1489,7 @@
|
|
|
1507
1489
|
}
|
|
1508
1490
|
// Use the next columns for series
|
|
1509
1491
|
series = [];
|
|
1510
|
-
freeIndexes = getFreeIndexes(columns
|
|
1492
|
+
freeIndexes = getFreeIndexes(columns?.length || 0, this.valueCount.seriesBuilders);
|
|
1511
1493
|
// Populate defined series
|
|
1512
1494
|
for (seriesIndex = 0; seriesIndex < this.valueCount.seriesBuilders.length; seriesIndex++) {
|
|
1513
1495
|
builder = this.valueCount.seriesBuilders[seriesIndex];
|
|
@@ -1540,7 +1522,7 @@
|
|
|
1540
1522
|
// Get the data-type from the first series x column
|
|
1541
1523
|
if (allSeriesBuilders.length > 0 &&
|
|
1542
1524
|
allSeriesBuilders[0].readers.length > 0) {
|
|
1543
|
-
typeCol = columns[allSeriesBuilders[0].readers[0].columnIndex];
|
|
1525
|
+
typeCol = columns?.[allSeriesBuilders[0].readers[0].columnIndex ?? -1];
|
|
1544
1526
|
if (typeof typeCol !== 'undefined') {
|
|
1545
1527
|
if (typeCol.isDatetime) {
|
|
1546
1528
|
type = 'datetime';
|
|
@@ -1573,35 +1555,62 @@
|
|
|
1573
1555
|
}
|
|
1574
1556
|
// Add the series
|
|
1575
1557
|
series[seriesIndex] = {
|
|
1576
|
-
data
|
|
1558
|
+
data,
|
|
1559
|
+
pointStart: data[0] && (builder.pointIsArray ?
|
|
1560
|
+
data[0]?.[0] :
|
|
1561
|
+
data[0]?.x) || void 0
|
|
1577
1562
|
};
|
|
1578
1563
|
if (builder.name) {
|
|
1579
1564
|
series[seriesIndex].name = builder.name;
|
|
1580
1565
|
}
|
|
1581
1566
|
if (type === 'category') {
|
|
1582
1567
|
series[seriesIndex].turboThreshold = 0;
|
|
1568
|
+
series[seriesIndex].pointStart = 0;
|
|
1583
1569
|
}
|
|
1584
1570
|
}
|
|
1585
1571
|
// Do the callback
|
|
1586
|
-
chartOptions = {
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1572
|
+
chartOptions = { series };
|
|
1573
|
+
// Prepare the axis options
|
|
1574
|
+
if (type === 'linear' && (!this.xAxisOptions ||
|
|
1575
|
+
this.xAxisOptions.type === type)) {
|
|
1576
|
+
// Clear default value ('linear') if it is not changing the
|
|
1577
|
+
// axis type to avoid loosing animation
|
|
1578
|
+
type = this.xAxisOptions = void 0;
|
|
1579
|
+
}
|
|
1580
|
+
else {
|
|
1581
|
+
this.xAxisOptions = { type };
|
|
1593
1582
|
if (type === 'category') {
|
|
1594
|
-
|
|
1583
|
+
this.xAxisOptions.uniqueNames = false;
|
|
1595
1584
|
}
|
|
1596
1585
|
}
|
|
1597
|
-
|
|
1598
|
-
|
|
1586
|
+
// Merge the xAxisOptions for the standalone Data module
|
|
1587
|
+
if (!this.chart) {
|
|
1588
|
+
merge(true, chartOptions, { xAxis: this.xAxisOptions || {} });
|
|
1599
1589
|
}
|
|
1590
|
+
options.complete?.(chartOptions);
|
|
1600
1591
|
// The afterComplete hook is used internally to avoid conflict with
|
|
1601
1592
|
// the externally available complete option.
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1593
|
+
options.afterComplete?.(this, chartOptions);
|
|
1594
|
+
}
|
|
1595
|
+
}
|
|
1596
|
+
/**
|
|
1597
|
+
* Sets properties directly on the xAxis object.
|
|
1598
|
+
*
|
|
1599
|
+
* @private
|
|
1600
|
+
*/
|
|
1601
|
+
xAxisUpdateHandler(axis) {
|
|
1602
|
+
const options = this.xAxisOptions;
|
|
1603
|
+
if (!options) {
|
|
1604
|
+
return;
|
|
1605
|
+
}
|
|
1606
|
+
// Set the axis properties if not blocked by the axis options that could
|
|
1607
|
+
// have changed in the update event.
|
|
1608
|
+
if (!axis.options.type && options.type) {
|
|
1609
|
+
axis.type = options.type;
|
|
1610
|
+
}
|
|
1611
|
+
if (!axis.options.uniqueNames &&
|
|
1612
|
+
options.uniqueNames === false) {
|
|
1613
|
+
axis.uniqueNames = options.uniqueNames;
|
|
1605
1614
|
}
|
|
1606
1615
|
}
|
|
1607
1616
|
/**
|
|
@@ -1610,39 +1619,58 @@
|
|
|
1610
1619
|
* @function Highcharts.Data#update
|
|
1611
1620
|
*
|
|
1612
1621
|
* @param {Highcharts.DataOptions} options
|
|
1622
|
+
* The new data options.
|
|
1613
1623
|
*
|
|
1614
1624
|
* @param {boolean} [redraw=true]
|
|
1625
|
+
* Whether to redraw the chart after the new options are set.
|
|
1615
1626
|
*/
|
|
1616
1627
|
update(options, redraw) {
|
|
1617
1628
|
const chart = this.chart, chartOptions = chart.options;
|
|
1618
1629
|
if (options) {
|
|
1619
1630
|
// Set the complete handler
|
|
1620
|
-
options.afterComplete = function (dataOptions) {
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1631
|
+
options.afterComplete = function (dataInstance, dataOptions) {
|
|
1632
|
+
if (!dataOptions) {
|
|
1633
|
+
return;
|
|
1634
|
+
}
|
|
1635
|
+
// Avoid setting axis options unless they change. Running
|
|
1636
|
+
// Axis.update will cause the whole structure to be
|
|
1637
|
+
// destroyed and rebuilt, and animation is lost.
|
|
1638
|
+
const xAxis = chart.xAxis[0], xAxisOptions = dataInstance.xAxisOptions;
|
|
1639
|
+
// Update axis if xAxisOptions are different from the current
|
|
1640
|
+
// and not blocked by the axis options.
|
|
1641
|
+
if (xAxisOptions && xAxis && ((xAxis.type !== xAxisOptions.type && !xAxis.options.type) ||
|
|
1642
|
+
(xAxis.uniqueNames &&
|
|
1643
|
+
xAxisOptions.uniqueNames === false &&
|
|
1644
|
+
xAxis.options.uniqueNames === void 0))) {
|
|
1645
|
+
xAxis.update({}, false);
|
|
1633
1646
|
}
|
|
1647
|
+
else {
|
|
1648
|
+
// Prefer smooth points update when no axis update
|
|
1649
|
+
(dataOptions?.series || []).forEach(function (seriesOptions) {
|
|
1650
|
+
delete seriesOptions.pointStart;
|
|
1651
|
+
});
|
|
1652
|
+
}
|
|
1653
|
+
chart.update(dataOptions, redraw, true);
|
|
1634
1654
|
};
|
|
1635
1655
|
// Apply it
|
|
1636
1656
|
merge(true, chartOptions.data, options);
|
|
1637
1657
|
// Reset columns if fetching spreadsheet, to force a re-fetch
|
|
1638
|
-
if (chartOptions.data &&
|
|
1639
|
-
!options.columns) {
|
|
1658
|
+
if (chartOptions.data?.googleSpreadsheetKey && !options.columns) {
|
|
1640
1659
|
delete chartOptions.data.columns;
|
|
1641
1660
|
}
|
|
1642
|
-
this.init(chartOptions.data);
|
|
1661
|
+
this.init(chartOptions.data || {}, chartOptions);
|
|
1643
1662
|
}
|
|
1644
1663
|
}
|
|
1645
1664
|
}
|
|
1665
|
+
// Fire 1st xAxis properties modifier after the options are set.
|
|
1666
|
+
addEvent(Axis, 'afterSetOptions', function () {
|
|
1667
|
+
// Target first xAxis only
|
|
1668
|
+
if (this.isXAxis &&
|
|
1669
|
+
// Init or update
|
|
1670
|
+
(!this.chart.xAxis.length || this.chart.xAxis[0] === this)) {
|
|
1671
|
+
this.chart.data?.xAxisUpdateHandler(this);
|
|
1672
|
+
}
|
|
1673
|
+
});
|
|
1646
1674
|
// Extend Chart.init so that the Chart constructor accepts a new configuration
|
|
1647
1675
|
// option group, data.
|
|
1648
1676
|
addEvent(Chart, 'init', function (e) {
|
|
@@ -1659,19 +1687,15 @@
|
|
|
1659
1687
|
*/
|
|
1660
1688
|
const dataOptions = merge(defaultDataOptions, userOptions.data);
|
|
1661
1689
|
chart.data = new Data(extend(dataOptions, {
|
|
1662
|
-
afterComplete: function (dataOptions) {
|
|
1690
|
+
afterComplete: function (dataInstance, dataOptions) {
|
|
1663
1691
|
let i, series;
|
|
1664
1692
|
// Merge series configs
|
|
1665
1693
|
if (Object.hasOwnProperty.call(userOptions, 'series')) {
|
|
1666
1694
|
if (typeof userOptions.series === 'object') {
|
|
1667
|
-
i = Math.max(userOptions.series.length, dataOptions
|
|
1668
|
-
dataOptions.series.length :
|
|
1669
|
-
0);
|
|
1695
|
+
i = Math.max(userOptions.series.length, dataOptions?.series?.length ?? 0);
|
|
1670
1696
|
while (i--) {
|
|
1671
1697
|
series = userOptions.series[i] || {};
|
|
1672
|
-
userOptions.series[i] = merge(series, dataOptions
|
|
1673
|
-
dataOptions.series[i] :
|
|
1674
|
-
{});
|
|
1698
|
+
userOptions.series[i] = merge(series, dataOptions?.series?.[i] ?? {});
|
|
1675
1699
|
}
|
|
1676
1700
|
}
|
|
1677
1701
|
else { // Allow merging in dataOptions.series (#2856)
|
|
@@ -1680,6 +1704,8 @@
|
|
|
1680
1704
|
}
|
|
1681
1705
|
// Do the merge
|
|
1682
1706
|
userOptions = merge(dataOptions, userOptions);
|
|
1707
|
+
// Register for access in events (Axis' afterSetOptions)
|
|
1708
|
+
chart.data = dataInstance;
|
|
1683
1709
|
// Run chart.init again
|
|
1684
1710
|
chart.init(userOptions, callback);
|
|
1685
1711
|
}
|