highcharts 9.2.0 → 9.3.1
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/README.md +13 -6
- package/bower.json +1 -1
- package/css/annotations/popup.css +48 -8
- package/css/annotations/popup.scss +70 -22
- package/css/highcharts.css +45 -0
- package/css/highcharts.scss +40 -0
- package/css/themes/dark-unica.css +45 -0
- package/css/themes/grid-light.css +45 -0
- package/css/themes/sand-signika.css +45 -0
- package/es-modules/Accessibility/A11yI18n.js +273 -224
- package/es-modules/Accessibility/Accessibility.js +237 -128
- package/es-modules/Accessibility/AccessibilityComponent.js +79 -314
- package/es-modules/Accessibility/Components/AnnotationsA11y.js +10 -0
- package/es-modules/Accessibility/Components/ContainerComponent.js +52 -27
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +173 -104
- package/es-modules/Accessibility/Components/LegendComponent.js +97 -65
- package/es-modules/Accessibility/Components/MenuComponent.js +243 -149
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +170 -88
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +152 -115
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +133 -68
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +64 -27
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +38 -21
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +380 -325
- package/es-modules/Accessibility/Components/ZoomComponent.js +28 -20
- package/es-modules/Accessibility/FocusBorder.js +192 -147
- package/es-modules/Accessibility/HighContrastMode.js +78 -66
- package/es-modules/Accessibility/HighContrastTheme.js +10 -0
- package/es-modules/Accessibility/KeyboardNavigation.js +146 -71
- package/es-modules/Accessibility/KeyboardNavigationHandler.js +71 -44
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +11 -1
- package/es-modules/Accessibility/Options/LangOptions.js +1 -2
- package/es-modules/Accessibility/Options/Options.js +32 -17
- package/es-modules/Accessibility/ProxyElement.js +212 -0
- package/es-modules/Accessibility/ProxyProvider.js +305 -0
- package/es-modules/Accessibility/Utils/Announcer.js +15 -8
- package/es-modules/Accessibility/Utils/ChartUtilities.js +41 -16
- package/es-modules/Accessibility/Utils/DOMElementProvider.js +27 -15
- package/es-modules/Accessibility/Utils/EventProvider.js +27 -17
- package/es-modules/Accessibility/Utils/HTMLUtilities.js +125 -30
- package/es-modules/Core/Axis/Axis.js +37 -30
- package/es-modules/Core/Axis/AxisDefaults.js +35 -24
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +54 -4
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +5 -5
- package/es-modules/Core/Axis/OrdinalAxis.js +5 -13
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +4 -5
- package/es-modules/Core/Axis/ScrollbarAxis.js +10 -3
- package/es-modules/Core/Axis/TreeGridAxis.js +2 -2
- package/es-modules/Core/Axis/TreeGridTick.js +1 -2
- package/es-modules/Core/Chart/Chart.js +2 -3
- package/es-modules/Core/Chart/ChartDefaults.js +3 -4
- package/es-modules/Core/Chart/ChartNavigationComposition.js +92 -0
- package/es-modules/Core/Chart/MapChart.js +10 -22
- package/es-modules/Core/Chart/StockChart.js +3 -293
- package/es-modules/Core/Color/Palettes.js +22 -0
- package/es-modules/Core/DefaultOptions.js +19 -17
- package/es-modules/Core/Foundation.js +39 -31
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/HttpUtilities.js +3 -3
- package/es-modules/Core/Legend/Legend.js +7 -3
- package/es-modules/Core/Navigator.js +7 -8
- package/es-modules/Core/Pointer.js +39 -36
- package/es-modules/Core/Renderer/HTML/AST.js +3 -6
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +23 -18
- package/es-modules/Core/Renderer/SVG/SVGElement.js +3 -4
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +21 -18
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +17 -13
- package/es-modules/Core/ScrollbarDefaults.js +10 -9
- package/es-modules/Core/Series/DataLabel.js +2 -3
- package/es-modules/Core/Series/Point.js +5 -3
- package/es-modules/Core/Series/Series.js +156 -162
- package/es-modules/Core/Series/SeriesDefaults.js +3 -4
- package/es-modules/Core/Series/SeriesRegistry.js +1 -2
- package/es-modules/Core/Tooltip.js +44 -17
- package/es-modules/Core/Utilities.js +15 -7
- package/es-modules/Data/DataConverter.js +489 -0
- package/es-modules/Data/DataPromise.js +252 -0
- package/es-modules/Data/DataSeriesConverter.js +203 -0
- package/es-modules/Data/DataTable.js +1204 -0
- package/es-modules/Data/Modifiers/ChainModifier.js +299 -0
- package/es-modules/Data/Modifiers/DataModifier.js +303 -0
- package/es-modules/Data/Modifiers/GroupModifier.js +144 -0
- package/es-modules/Data/Modifiers/InvertModifier.js +254 -0
- package/es-modules/Data/Modifiers/RangeModifier.js +143 -0
- package/es-modules/Data/Modifiers/SeriesPointsModifier.js +110 -0
- package/es-modules/Data/Modifiers/SortModifier.js +249 -0
- package/es-modules/Data/Parsers/CSVParser.js +399 -0
- package/es-modules/Data/Parsers/DataParser.js +101 -0
- package/es-modules/Data/Parsers/GoogleSheetsParser.js +220 -0
- package/es-modules/Data/Parsers/HTMLTableParser.js +213 -0
- package/es-modules/Data/Stores/CSVStore.js +317 -0
- package/es-modules/Data/Stores/DataStore.js +276 -0
- package/es-modules/Data/Stores/GoogleSheetsStore.js +167 -0
- package/es-modules/Data/Stores/HTMLTableStore.js +351 -0
- package/es-modules/Extensions/Annotations/Annotations.js +61 -11
- package/es-modules/Extensions/Annotations/ControlPoint.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +199 -0
- package/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +7 -1
- package/es-modules/Extensions/Annotations/NavigationBindings.js +90 -28
- package/es-modules/Extensions/Annotations/Popup.js +479 -141
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +51 -2
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +1 -1
- package/es-modules/Extensions/Annotations/Types/Fibonacci.js +2 -3
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +219 -0
- package/es-modules/Extensions/Annotations/Types/InfinityLine.js +1 -1
- package/es-modules/Extensions/Annotations/Types/Measure.js +14 -8
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +5 -5
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +207 -0
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +3 -5
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +1 -1
- package/es-modules/Extensions/Boost/BoostOptions.js +2 -2
- package/es-modules/Extensions/Boost/BoostOverrides.js +3 -1
- package/es-modules/Extensions/Boost/WGLShader.js +4 -3
- package/es-modules/Extensions/BoostCanvas.js +1 -2
- package/es-modules/Extensions/CurrentDateIndication.js +2 -3
- package/es-modules/Extensions/Data.js +73 -67
- package/es-modules/Extensions/DataGrouping.js +33 -18
- package/es-modules/Extensions/Debugger/ErrorMessages.js +2 -2
- package/es-modules/Extensions/DownloadURL.js +2 -2
- package/es-modules/Extensions/DragPanes.js +1 -2
- package/es-modules/Extensions/Drilldown.js +2 -3
- package/es-modules/Extensions/Exporting/Exporting.js +12 -11
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +8 -15
- package/es-modules/Extensions/GeoJSON.js +39 -63
- package/es-modules/Extensions/MarkerClusters.js +115 -97
- package/es-modules/Extensions/NoDataToDisplay.js +1 -2
- package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +10 -9
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +2 -3
- package/es-modules/Extensions/Pane.js +5 -6
- package/es-modules/Extensions/Polar.js +1 -1
- package/es-modules/Extensions/RangeSelector.js +3 -4
- package/es-modules/Extensions/Sonification/ChartSonify.js +247 -637
- package/es-modules/Extensions/Sonification/Earcon.js +136 -102
- package/es-modules/Extensions/Sonification/Instrument.js +496 -426
- package/es-modules/Extensions/Sonification/MusicalFrequencies.js +10 -0
- package/es-modules/Extensions/Sonification/Options.js +10 -0
- package/es-modules/Extensions/Sonification/PointSonify.js +203 -152
- package/es-modules/Extensions/Sonification/SeriesSonify.js +459 -0
- package/es-modules/Extensions/Sonification/SignalHandler.js +124 -0
- package/es-modules/Extensions/Sonification/Sonification.js +26 -52
- package/es-modules/Extensions/Sonification/{Utilities.js → SonificationUtilities.js} +62 -84
- package/es-modules/Extensions/Sonification/Timeline.js +255 -567
- package/es-modules/Extensions/Sonification/TimelineEvent.js +158 -0
- package/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
- package/es-modules/Maps/MapNavigation.js +27 -64
- package/es-modules/Maps/MapNavigationOptionsDefault.js +3 -0
- package/es-modules/Maps/MapPointer.js +7 -5
- package/es-modules/Maps/MapView.js +450 -0
- package/es-modules/Maps/MapViewOptionsDefault.js +97 -0
- package/es-modules/Maps/Projection.js +436 -0
- package/es-modules/Maps/ProjectionDefinition.js +9 -0
- package/es-modules/Maps/Projections/EqualEarth.js +42 -0
- package/es-modules/Maps/Projections/LambertConformalConic.js +52 -0
- package/es-modules/Maps/Projections/Miller.js +16 -0
- package/es-modules/Maps/Projections/Orthographic.js +26 -0
- package/es-modules/Maps/Projections/ProjectionRegistry.js +19 -0
- package/es-modules/Maps/Projections/WebMercator.js +24 -0
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +4 -5
- package/es-modules/Series/Bellcurve/BellcurveSeries.js +2 -8
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +1 -2
- package/es-modules/Series/Bubble/BubbleLegendDefaults.js +1 -2
- package/es-modules/Series/Bubble/BubbleLegendItem.js +3 -3
- package/es-modules/Series/Bubble/BubblePoint.js +5 -0
- package/es-modules/Series/Bubble/BubbleSeries.js +90 -50
- package/es-modules/Series/Candlestick/CandlestickSeries.js +10 -18
- package/es-modules/{Mixins/CenteredSeries.js → Series/CenteredUtilities.js} +45 -23
- package/es-modules/Series/ColorMapComposition.js +109 -0
- package/es-modules/Series/Column/ColumnDataLabel.js +5 -5
- package/es-modules/Series/Column/ColumnSeries.js +3 -4
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +6 -6
- package/es-modules/Series/DataModifyComposition.js +539 -0
- package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +2 -6
- package/es-modules/Series/DerivedComposition.js +137 -0
- package/es-modules/Series/DrawPointComposition.js +111 -0
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +2 -3
- package/es-modules/Series/ErrorBar/ErrorBarSeries.js +1 -2
- package/es-modules/Series/Flags/FlagsSeries.js +18 -25
- package/es-modules/Series/Funnel/FunnelSeries.js +6 -5
- package/es-modules/Series/Gantt/GanttSeries.js +0 -2
- package/es-modules/Series/Gauge/GaugePoint.js +1 -1
- package/es-modules/Series/Gauge/GaugeSeries.js +7 -7
- package/es-modules/Series/HLC/HLCPoint.js +55 -0
- package/es-modules/Series/HLC/HLCSeries.js +383 -0
- package/es-modules/Series/Heatmap/HeatmapPoint.js +3 -4
- package/es-modules/Series/Heatmap/HeatmapSeries.js +19 -6
- package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +2 -3
- package/es-modules/Series/Histogram/HistogramSeries.js +3 -7
- package/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +2 -2
- package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +33 -34
- package/es-modules/Series/Line/LineSeries.js +1 -2
- package/es-modules/Series/Map/MapPoint.js +23 -16
- package/es-modules/Series/Map/MapSeries.js +271 -309
- package/es-modules/Series/MapBubble/MapBubblePoint.js +0 -3
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +10 -1
- package/es-modules/Series/MapLine/MapLineSeries.js +2 -0
- package/es-modules/Series/MapPoint/MapPointPoint.js +5 -1
- package/es-modules/Series/MapPoint/MapPointSeries.js +99 -14
- package/es-modules/Series/Networkgraph/Networkgraph.js +5 -5
- package/es-modules/{Mixins/Nodes.js → Series/NodesComposition.js} +76 -29
- package/es-modules/Series/OHLC/OHLCPoint.js +2 -6
- package/es-modules/Series/OHLC/OHLCSeries.js +55 -183
- package/es-modules/{Mixins/OnSeries.js → Series/OnSeriesComposition.js} +53 -21
- package/es-modules/Series/Organization/OrganizationSeries.js +2 -3
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +46 -6
- package/es-modules/Series/ParetoSeries/ParetoSeries.js +3 -7
- package/es-modules/Series/Pie/PieDataLabel.js +1 -2
- package/es-modules/Series/Pie/PieSeries.js +6 -7
- package/es-modules/Series/Sankey/SankeyPoint.js +0 -4
- package/es-modules/Series/Sankey/SankeySeries.js +89 -20
- package/es-modules/Series/Sunburst/SunburstPoint.js +2 -3
- package/es-modules/Series/Sunburst/SunburstSeries.js +4 -4
- package/es-modules/Series/Tilemap/TilemapPoint.js +2 -3
- package/es-modules/Series/Timeline/TimelineSeries.js +3 -4
- package/es-modules/{Mixins/TreeSeries.js → Series/TreeUtilities.js} +86 -76
- package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +8 -8
- package/es-modules/Series/Venn/VennPoint.js +16 -7
- package/es-modules/Series/Venn/VennSeries.js +5 -8
- package/es-modules/Series/Venn/VennUtils.js +550 -439
- package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -3
- package/es-modules/Series/Windbarb/WindbarbSeries.js +23 -24
- package/es-modules/Series/Wordcloud/WordcloudPoint.js +8 -6
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +24 -20
- package/es-modules/Series/Wordcloud/WordcloudUtils.js +673 -484
- package/es-modules/Series/XRange/XRangePoint.js +1 -0
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +3 -6
- package/es-modules/Stock/Indicators/AO/AOIndicator.js +2 -3
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +14 -20
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -6
- package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +11 -13
- package/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +27 -11
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +6 -12
- package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +1 -11
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +19 -11
- package/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +17 -11
- package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +1 -3
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +11 -9
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +8 -16
- package/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +2 -2
- package/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +2 -2
- package/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +2 -2
- package/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +2 -2
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -2
- package/es-modules/{Mixins/MultipleLines.js → Stock/Indicators/MultipleLinesComposition.js} +136 -87
- package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +1 -3
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +14 -13
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -11
- package/es-modules/Stock/Indicators/SMA/SMAComposition.js +0 -26
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +32 -49
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +0 -8
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -8
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +4 -6
- package/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +26 -11
- package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +6 -12
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +23 -7
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +2 -3
- package/es-modules/Stock/StockToolsBindings.js +144 -42
- package/es-modules/Stock/StockToolsGui.js +409 -15
- 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 +4 -10
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +2 -2
- package/es-modules/masters/indicators/indicators.src.js +2 -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 +16 -2
- package/es-modules/masters/modules/annotations-advanced.src.js +3 -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 +6 -3
- 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 -2
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -3
- 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 +33 -2
- 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 +4 -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 +799 -801
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +793 -755
- package/highcharts-more.js +194 -193
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.js +208 -120
- package/highcharts.d.ts +9814 -4231
- package/highcharts.js +585 -587
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +9814 -4231
- package/highcharts.src.js +626 -603
- package/highmaps.js +728 -707
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +2824 -1613
- package/highstock.js +788 -782
- package/highstock.js.map +1 -1
- package/highstock.src.js +1913 -1284
- package/indicators/acceleration-bands.js +10 -9
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.js +156 -112
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +6 -6
- package/indicators/ao.js.map +1 -1
- package/indicators/ao.src.js +4 -4
- package/indicators/apo.js +5 -6
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +16 -84
- package/indicators/aroon-oscillator.js +9 -9
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.js +160 -177
- package/indicators/aroon.js +9 -9
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.js +156 -112
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +10 -9
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.js +180 -117
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +8 -9
- package/indicators/chaikin.js.map +1 -1
- package/indicators/chaikin.src.js +8 -76
- 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 +5 -6
- package/indicators/dema.js.map +1 -1
- package/indicators/dema.src.js +3 -75
- package/indicators/disparity-index.js +6 -7
- package/indicators/disparity-index.js.map +1 -1
- package/indicators/disparity-index.src.js +19 -74
- package/indicators/dmi.js +11 -11
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +173 -116
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.src.js +1 -1
- package/indicators/ema.js +1 -13
- package/indicators/ema.js.map +1 -1
- package/indicators/ema.src.js +7 -188
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.js +197 -203
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.js +677 -743
- package/indicators/indicators.js +12 -12
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +213 -143
- package/indicators/keltner-channels.js +10 -10
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.js +164 -118
- package/indicators/klinger.js +12 -13
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +161 -184
- package/indicators/macd.js +2 -2
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +2 -3
- 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 +3 -3
- package/indicators/natr.js.map +1 -1
- package/indicators/natr.src.js +2 -4
- 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 +5 -6
- package/indicators/ppo.js.map +1 -1
- package/indicators/ppo.src.js +3 -75
- package/indicators/price-channel.js +9 -9
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.js +207 -168
- 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 +9 -9
- 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 +5 -6
- package/indicators/slow-stochastic.js.map +1 -1
- package/indicators/slow-stochastic.src.js +2 -72
- package/indicators/stochastic.js +10 -10
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.js +209 -164
- package/indicators/supertrend.js +10 -10
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +6 -7
- package/indicators/tema.js +6 -7
- package/indicators/tema.js.map +1 -1
- package/indicators/tema.src.js +28 -75
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +4 -5
- package/indicators/trix.js.map +1 -1
- package/indicators/trix.src.js +8 -76
- package/indicators/volume-by-price.js +16 -16
- package/indicators/volume-by-price.js.map +1 -1
- package/indicators/volume-by-price.src.js +24 -7
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +5 -6
- package/indicators/williams-r.js.map +1 -1
- package/indicators/williams-r.src.js +41 -51
- 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.d.ts +5 -0
- package/modules/accessibility.js +237 -216
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.d.ts +5 -0
- package/modules/accessibility.src.js +7400 -6078
- package/modules/annotations-advanced.d.ts +30 -0
- package/modules/annotations-advanced.js +192 -165
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.d.ts +30 -0
- package/modules/annotations-advanced.src.js +1604 -332
- package/modules/annotations.js +121 -106
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.js +981 -238
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +15 -15
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.js +3 -3
- package/modules/boost.js +79 -79
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.js +10 -9
- 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 +24 -24
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +69 -98
- package/modules/current-date-indicator.js +4 -4
- package/modules/current-date-indicator.js.map +1 -1
- package/modules/current-date-indicator.src.js +4 -4
- package/modules/cylinder.js +1 -1
- package/modules/cylinder.src.js +1 -1
- package/modules/data.js +32 -32
- package/modules/data.js.map +1 -1
- package/modules/data.src.js +85 -88
- package/modules/datagrouping.js +20 -20
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.js +35 -19
- package/modules/debugger.js +3 -3
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +3 -3
- package/modules/dependency-wheel.js +11 -11
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +4 -7
- package/modules/dotplot.js +1 -1
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.js +8 -8
- package/modules/drag-panes.js.map +1 -1
- package/modules/drag-panes.src.js +3 -3
- package/modules/draggable-points.js +1 -1
- package/modules/draggable-points.src.js +1 -1
- package/modules/drilldown.js +24 -24
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.js +4 -4
- package/modules/dumbbell.js +17 -17
- package/modules/dumbbell.js.map +1 -1
- package/modules/dumbbell.src.js +4 -4
- package/modules/export-data.js +1 -1
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +3 -3
- package/modules/exporting.js +39 -38
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +102 -72
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +1 -1
- package/modules/funnel.js +12 -12
- package/modules/funnel.js.map +1 -1
- package/modules/funnel.src.js +9 -6
- package/modules/funnel3d.js +1 -1
- package/modules/funnel3d.src.js +1 -1
- package/modules/gantt.js +217 -218
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +167 -152
- package/modules/grid-axis.js +1 -1
- package/modules/grid-axis.src.js +1 -1
- package/modules/heatmap.js +39 -39
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +177 -162
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +4 -4
- package/modules/histogram-bellcurve.js +13 -13
- package/modules/histogram-bellcurve.js.map +1 -1
- package/modules/histogram-bellcurve.src.js +91 -86
- package/modules/hollowcandlestick.js +9 -9
- package/modules/hollowcandlestick.js.map +1 -1
- package/modules/hollowcandlestick.src.js +37 -37
- 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.d.ts +136 -14
- package/modules/map.js +144 -122
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +136 -14
- package/modules/map.src.js +2227 -1039
- package/modules/marker-clusters.js +36 -36
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +173 -142
- package/modules/networkgraph.d.ts +12 -1
- package/modules/networkgraph.js +49 -49
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.d.ts +12 -1
- package/modules/networkgraph.src.js +91 -43
- package/modules/no-data-to-display.js +5 -5
- package/modules/no-data-to-display.js.map +1 -1
- package/modules/no-data-to-display.src.js +3 -3
- package/modules/offline-exporting.js +18 -17
- package/modules/offline-exporting.js.map +1 -1
- package/modules/offline-exporting.src.js +14 -14
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +1 -1
- package/modules/oldie.js +26 -26
- package/modules/oldie.js.map +1 -1
- package/modules/oldie.src.js +4 -4
- package/modules/organization.js +13 -13
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +4 -4
- 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 +7 -7
- package/modules/pareto.js.map +1 -1
- package/modules/pareto.src.js +89 -78
- package/modules/pathfinder.js +1 -1
- package/modules/pathfinder.src.js +1 -1
- package/modules/pattern-fill.js +1 -1
- package/modules/pattern-fill.src.js +1 -1
- 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.d.ts +12 -1
- package/modules/sankey.js +29 -29
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.d.ts +12 -1
- package/modules/sankey.src.js +300 -176
- 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 +59 -55
- package/modules/sonification.js.map +1 -1
- package/modules/sonification.src.js +3034 -2553
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +178 -163
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.js +1028 -144
- package/modules/stock.d.ts +39 -6
- package/modules/stock.js +204 -196
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.d.ts +39 -6
- package/modules/stock.src.js +1667 -1061
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +61 -60
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +329 -266
- package/modules/tilemap.js +17 -17
- package/modules/tilemap.js.map +1 -1
- package/modules/tilemap.src.js +3 -4
- package/modules/timeline.js +18 -18
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +5 -5
- package/modules/treegrid.js +56 -57
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +126 -120
- package/modules/treemap.js +41 -41
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.js +319 -254
- 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 +31 -31
- package/modules/venn.js.map +1 -1
- package/modules/venn.src.js +731 -721
- package/modules/windbarb.js +15 -15
- package/modules/windbarb.js.map +1 -1
- package/modules/windbarb.src.js +90 -62
- package/modules/wordcloud.js +23 -24
- package/modules/wordcloud.js.map +1 -1
- package/modules/wordcloud.src.js +897 -949
- package/modules/xrange.js +2 -2
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +2 -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
- package/es-modules/Core/Axis/MapAxis.js +0 -157
- package/es-modules/Core/Color/Palette.js +0 -82
- package/es-modules/Extensions/Sonification/InstrumentDefinitions.js +0 -32
- package/es-modules/Mixins/ColorMapSeries.js +0 -82
- package/es-modules/Mixins/ColorSeries.js +0 -77
- package/es-modules/Mixins/DerivedSeries.js +0 -118
- package/es-modules/Mixins/DrawPoint.js +0 -81
- package/es-modules/Mixins/IndicatorRequired.js +0 -56
- package/es-modules/Mixins/Navigation.js +0 -54
- package/es-modules/Mixins/NelderMead.js +0 -132
- package/es-modules/Mixins/Polygon.js +0 -259
- package/es-modules/Mixins/ReduceArray.js +0 -54
|
@@ -0,0 +1,1204 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* (c) 2020-2021 Highsoft AS
|
|
4
|
+
*
|
|
5
|
+
* License: www.highcharts.com/license
|
|
6
|
+
*
|
|
7
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
8
|
+
*
|
|
9
|
+
* Authors:
|
|
10
|
+
* - Sophie Bremer
|
|
11
|
+
* - Gøran Slettemark
|
|
12
|
+
*
|
|
13
|
+
* */
|
|
14
|
+
'use strict';
|
|
15
|
+
var __spreadArrays = (this && this.__spreadArrays) || function () {
|
|
16
|
+
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
|
|
17
|
+
for (var r = Array(s), k = 0, i = 0; i < il; i++)
|
|
18
|
+
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
|
|
19
|
+
r[k] = a[j];
|
|
20
|
+
return r;
|
|
21
|
+
};
|
|
22
|
+
import DataPromise from './DataPromise.js';
|
|
23
|
+
import U from '../Core/Utilities.js';
|
|
24
|
+
var addEvent = U.addEvent, fireEvent = U.fireEvent, uniqueKey = U.uniqueKey;
|
|
25
|
+
/* *
|
|
26
|
+
*
|
|
27
|
+
* Class
|
|
28
|
+
*
|
|
29
|
+
* */
|
|
30
|
+
/**
|
|
31
|
+
* Class to manage columns and rows in a table structure.
|
|
32
|
+
*
|
|
33
|
+
* @private
|
|
34
|
+
* @class
|
|
35
|
+
* @name Highcharts.DataTable
|
|
36
|
+
*
|
|
37
|
+
* @param {Highcharts.DataTableColumnCollection} [columns]
|
|
38
|
+
* Collection of columns.
|
|
39
|
+
*
|
|
40
|
+
* @param {string} [id]
|
|
41
|
+
* DataTable identifier.
|
|
42
|
+
*/
|
|
43
|
+
var DataTable = /** @class */ (function () {
|
|
44
|
+
/* *
|
|
45
|
+
*
|
|
46
|
+
* Constructors
|
|
47
|
+
*
|
|
48
|
+
* */
|
|
49
|
+
/**
|
|
50
|
+
* Constructs an instance of the DataTable class.
|
|
51
|
+
*
|
|
52
|
+
* @param {Highcharts.DataTableColumnCollection} [columns]
|
|
53
|
+
* Collection of columns.
|
|
54
|
+
*
|
|
55
|
+
* @param {string} [id]
|
|
56
|
+
* DataTable identifier.
|
|
57
|
+
*/
|
|
58
|
+
function DataTable(columns, id) {
|
|
59
|
+
if (columns === void 0) { columns = {}; }
|
|
60
|
+
/* *
|
|
61
|
+
*
|
|
62
|
+
* Properties
|
|
63
|
+
*
|
|
64
|
+
* */
|
|
65
|
+
/**
|
|
66
|
+
* Mapping aliases to column names.
|
|
67
|
+
* @private
|
|
68
|
+
*/
|
|
69
|
+
this.aliasMap = {};
|
|
70
|
+
/**
|
|
71
|
+
* Whether the ID was automatic generated or given.
|
|
72
|
+
*
|
|
73
|
+
* @name Highcharts.DataTable#autoId
|
|
74
|
+
* @type {boolean}
|
|
75
|
+
*/
|
|
76
|
+
this.autoId = !id;
|
|
77
|
+
this.columns = {};
|
|
78
|
+
/**
|
|
79
|
+
* ID of the table.
|
|
80
|
+
*
|
|
81
|
+
* @name Highcharts.DataTable#id
|
|
82
|
+
* @type {string}
|
|
83
|
+
*/
|
|
84
|
+
this.id = (id || uniqueKey());
|
|
85
|
+
this.modified = this;
|
|
86
|
+
this.rowCount = 0;
|
|
87
|
+
this.versionTag = uniqueKey();
|
|
88
|
+
var columnNames = Object.keys(columns), thisColumns = this.columns;
|
|
89
|
+
var rowCount = 0;
|
|
90
|
+
for (var i = 0, iEnd = columnNames.length, column = void 0, columnName = void 0; i < iEnd; ++i) {
|
|
91
|
+
columnName = columnNames[i];
|
|
92
|
+
column = columns[columnName].slice();
|
|
93
|
+
thisColumns[columnName] = column;
|
|
94
|
+
rowCount = Math.max(rowCount, column.length);
|
|
95
|
+
}
|
|
96
|
+
for (var i = 0, iEnd = columnNames.length; i < iEnd; ++i) {
|
|
97
|
+
thisColumns[columnNames[i]].length = rowCount;
|
|
98
|
+
}
|
|
99
|
+
this.rowCount = rowCount;
|
|
100
|
+
}
|
|
101
|
+
/* *
|
|
102
|
+
*
|
|
103
|
+
* Static Functions
|
|
104
|
+
*
|
|
105
|
+
* */
|
|
106
|
+
/**
|
|
107
|
+
* Tests whether a row contains only null values.
|
|
108
|
+
*
|
|
109
|
+
* @function Highcharts.DataTable.isNull
|
|
110
|
+
*
|
|
111
|
+
* @param {Highcharts.DataTableRow|Highcharts.DataTableRowObject} row
|
|
112
|
+
* Row to test.
|
|
113
|
+
*
|
|
114
|
+
* @return {boolean}
|
|
115
|
+
* Returns `true`, if the row contains only null, otherwise `false`.
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* if (DataTable.isNull(row)) {
|
|
119
|
+
* // handle null
|
|
120
|
+
* }
|
|
121
|
+
*/
|
|
122
|
+
DataTable.isNull = function (row) {
|
|
123
|
+
if (row === DataTable.NULL) {
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
if (row instanceof Array) {
|
|
127
|
+
if (!row.length) {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
for (var i = 0, iEnd = row.length; i < iEnd; ++i) {
|
|
131
|
+
if (row[i] !== null) {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
var columnNames = Object.keys(row);
|
|
138
|
+
if (!columnNames.length) {
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
for (var i = 0, iEnd = columnNames.length; i < iEnd; ++i) {
|
|
142
|
+
if (row[columnNames[i]] !== null) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return true;
|
|
148
|
+
};
|
|
149
|
+
/* *
|
|
150
|
+
*
|
|
151
|
+
* Functions
|
|
152
|
+
*
|
|
153
|
+
* */
|
|
154
|
+
/**
|
|
155
|
+
* Returns a clone of this data table.
|
|
156
|
+
*
|
|
157
|
+
* @function Highcharts.DataTable#clone
|
|
158
|
+
*
|
|
159
|
+
* @param {boolean} [skipColumns]
|
|
160
|
+
* Whether to clone columns or not.
|
|
161
|
+
*
|
|
162
|
+
* @param {Highcharts.DataTableEventDetail} [eventDetail]
|
|
163
|
+
* Custom information for pending events.
|
|
164
|
+
*
|
|
165
|
+
* @return {Highcharts.DataTable}
|
|
166
|
+
* Clone of this data table.
|
|
167
|
+
*
|
|
168
|
+
* @emits #cloneTable
|
|
169
|
+
* @emits #afterCloneTable
|
|
170
|
+
*/
|
|
171
|
+
DataTable.prototype.clone = function (skipColumns, eventDetail) {
|
|
172
|
+
var table = this, aliasMap = table.aliasMap, aliases = Object.keys(table.aliasMap);
|
|
173
|
+
table.emit({ type: 'cloneTable', detail: eventDetail });
|
|
174
|
+
var tableClone = new DataTable((skipColumns ? {} : table.columns), (table.autoId ? void 0 : table.id));
|
|
175
|
+
if (!skipColumns) {
|
|
176
|
+
tableClone.versionTag = table.versionTag;
|
|
177
|
+
if (aliases.length) {
|
|
178
|
+
var cloneAliasMap = tableClone.aliasMap;
|
|
179
|
+
for (var i = 0, iEnd = aliases.length, alias = void 0; i < iEnd; ++i) {
|
|
180
|
+
alias = aliases[i];
|
|
181
|
+
cloneAliasMap[alias] = aliasMap[alias];
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
table.emit({
|
|
186
|
+
type: 'afterCloneTable',
|
|
187
|
+
detail: eventDetail,
|
|
188
|
+
tableClone: tableClone
|
|
189
|
+
});
|
|
190
|
+
return tableClone;
|
|
191
|
+
};
|
|
192
|
+
/**
|
|
193
|
+
* Deletes a column alias and returns the original column name.
|
|
194
|
+
*
|
|
195
|
+
* @function Highcharts.DataTable#deleteColumnAlias
|
|
196
|
+
*
|
|
197
|
+
* @param {string} alias
|
|
198
|
+
* The alias to delete.
|
|
199
|
+
*
|
|
200
|
+
* @return {string|undefined}
|
|
201
|
+
* Returns the original column name, if found.
|
|
202
|
+
*/
|
|
203
|
+
DataTable.prototype.deleteColumnAlias = function (alias) {
|
|
204
|
+
var _a;
|
|
205
|
+
var table = this, aliasMap = table.aliasMap, deletedAlias = aliasMap[alias], modifier = table.modifier;
|
|
206
|
+
if (deletedAlias) {
|
|
207
|
+
delete table.aliasMap[alias];
|
|
208
|
+
if (modifier) {
|
|
209
|
+
modifier.modifyColumns(table, (_a = {}, _a[deletedAlias] = new Array(table.rowCount), _a), 0);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return deletedAlias;
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* Deletes columns from the table.
|
|
216
|
+
*
|
|
217
|
+
* @function Highcharts.DataTable#deleteColumns
|
|
218
|
+
*
|
|
219
|
+
* @param {Array<string>} [columnNames]
|
|
220
|
+
* Names (no alias) of columns to delete. If no array is provided, all
|
|
221
|
+
* columns will be deleted.
|
|
222
|
+
*
|
|
223
|
+
* @param {Highcharts.DataTableEventDetail} [eventDetail]
|
|
224
|
+
* Custom information for pending events.
|
|
225
|
+
*
|
|
226
|
+
* @return {Highcharts.DataTableColumnCollection|undefined}
|
|
227
|
+
* Returns the deleted columns, if found.
|
|
228
|
+
*
|
|
229
|
+
* @emits #deleteColumns
|
|
230
|
+
* @emits #afterDeleteColumns
|
|
231
|
+
*/
|
|
232
|
+
DataTable.prototype.deleteColumns = function (columnNames, eventDetail) {
|
|
233
|
+
var table = this, columns = table.columns, deletedColumns = {}, modifiedColumns = {}, modifier = table.modifier, rowCount = table.rowCount;
|
|
234
|
+
columnNames = (columnNames || Object.keys(columns));
|
|
235
|
+
if (columnNames.length) {
|
|
236
|
+
table.emit({
|
|
237
|
+
type: 'deleteColumns',
|
|
238
|
+
columnNames: columnNames,
|
|
239
|
+
detail: eventDetail
|
|
240
|
+
});
|
|
241
|
+
for (var i = 0, iEnd = columnNames.length, column = void 0, columnName = void 0; i < iEnd; ++i) {
|
|
242
|
+
columnName = columnNames[i];
|
|
243
|
+
column = columns[columnName];
|
|
244
|
+
if (column) {
|
|
245
|
+
deletedColumns[columnName] = column;
|
|
246
|
+
modifiedColumns[columnName] = new Array(rowCount);
|
|
247
|
+
}
|
|
248
|
+
delete columns[columnName];
|
|
249
|
+
}
|
|
250
|
+
if (!Object.keys(columns).length) {
|
|
251
|
+
table.rowCount = 0;
|
|
252
|
+
}
|
|
253
|
+
if (modifier) {
|
|
254
|
+
modifier.modifyColumns(table, modifiedColumns, 0, eventDetail);
|
|
255
|
+
}
|
|
256
|
+
table.emit({
|
|
257
|
+
type: 'afterDeleteColumns',
|
|
258
|
+
columns: deletedColumns,
|
|
259
|
+
columnNames: columnNames,
|
|
260
|
+
detail: eventDetail
|
|
261
|
+
});
|
|
262
|
+
return deletedColumns;
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
/**
|
|
266
|
+
* Deletes rows in this table.
|
|
267
|
+
*
|
|
268
|
+
* @function Highcharts.DataTable#deleteRows
|
|
269
|
+
*
|
|
270
|
+
* @param {number} [rowIndex]
|
|
271
|
+
* Index to start delete of rows. If not specified, all rows will be
|
|
272
|
+
* deleted.
|
|
273
|
+
*
|
|
274
|
+
* @param {number} [rowCount=1]
|
|
275
|
+
* Number of rows to delete.
|
|
276
|
+
*
|
|
277
|
+
* @param {Highcharts.DataTableEventDetail} [eventDetail]
|
|
278
|
+
* Custom information for pending events.
|
|
279
|
+
*
|
|
280
|
+
* @return {Array<Highcharts.DataTableRow>}
|
|
281
|
+
* Returns the deleted rows, if found.
|
|
282
|
+
*
|
|
283
|
+
* @emits #deleteRows
|
|
284
|
+
* @emits #afterDeleteRows
|
|
285
|
+
*/
|
|
286
|
+
DataTable.prototype.deleteRows = function (rowIndex, rowCount, eventDetail) {
|
|
287
|
+
if (rowCount === void 0) { rowCount = 1; }
|
|
288
|
+
var table = this, deletedRows = [], modifiedRows = [], modifier = table.modifier;
|
|
289
|
+
table.emit({
|
|
290
|
+
type: 'deleteRows',
|
|
291
|
+
detail: eventDetail,
|
|
292
|
+
rowCount: rowCount,
|
|
293
|
+
rowIndex: (rowIndex || 0)
|
|
294
|
+
});
|
|
295
|
+
if (typeof rowIndex === 'undefined') {
|
|
296
|
+
rowIndex = 0;
|
|
297
|
+
rowCount = table.rowCount;
|
|
298
|
+
}
|
|
299
|
+
if (rowCount > 0 && rowIndex < table.rowCount) {
|
|
300
|
+
var columns = table.columns, columnNames = Object.keys(columns);
|
|
301
|
+
for (var i = 0, iEnd = columnNames.length, column = void 0, deletedCells = void 0; i < iEnd; ++i) {
|
|
302
|
+
column = columns[columnNames[i]];
|
|
303
|
+
deletedCells = column.splice(rowIndex, rowCount);
|
|
304
|
+
if (!i) {
|
|
305
|
+
table.rowCount = column.length;
|
|
306
|
+
}
|
|
307
|
+
for (var j = 0, jEnd = deletedCells.length; j < jEnd; ++j) {
|
|
308
|
+
deletedRows[j] = (deletedRows[j] || []);
|
|
309
|
+
deletedRows[j][i] = deletedCells[j];
|
|
310
|
+
}
|
|
311
|
+
modifiedRows.push(new Array(iEnd));
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
if (modifier) {
|
|
315
|
+
modifier.modifyRows(table, modifiedRows, (rowIndex || 0), eventDetail);
|
|
316
|
+
}
|
|
317
|
+
table.emit({
|
|
318
|
+
type: 'afterDeleteRows',
|
|
319
|
+
detail: eventDetail,
|
|
320
|
+
rowCount: rowCount,
|
|
321
|
+
rowIndex: (rowIndex || 0),
|
|
322
|
+
rows: deletedRows
|
|
323
|
+
});
|
|
324
|
+
return deletedRows;
|
|
325
|
+
};
|
|
326
|
+
/**
|
|
327
|
+
* Emits an event on this table to all registered callbacks of the given
|
|
328
|
+
* event.
|
|
329
|
+
* @private
|
|
330
|
+
*
|
|
331
|
+
* @param {DataTable.Event} e
|
|
332
|
+
* Event object with event information.
|
|
333
|
+
*/
|
|
334
|
+
DataTable.prototype.emit = function (e) {
|
|
335
|
+
var frame = this;
|
|
336
|
+
switch (e.type) {
|
|
337
|
+
case 'afterDeleteColumns':
|
|
338
|
+
case 'afterDeleteRows':
|
|
339
|
+
case 'afterSetCell':
|
|
340
|
+
case 'afterSetColumns':
|
|
341
|
+
case 'afterSetRows':
|
|
342
|
+
frame.versionTag = uniqueKey();
|
|
343
|
+
break;
|
|
344
|
+
default:
|
|
345
|
+
}
|
|
346
|
+
fireEvent(frame, e.type, e);
|
|
347
|
+
};
|
|
348
|
+
/**
|
|
349
|
+
* Fetches a single cell value.
|
|
350
|
+
*
|
|
351
|
+
* @function Highcharts.DataTable#getCell
|
|
352
|
+
*
|
|
353
|
+
* @param {string} columnNameOrAlias
|
|
354
|
+
* Column name or alias of the cell to retrieve.
|
|
355
|
+
*
|
|
356
|
+
* @param {number} rowIndex
|
|
357
|
+
* Row index of the cell to retrieve.
|
|
358
|
+
*
|
|
359
|
+
* @return {Highcharts.DataTableCellType|undefined}
|
|
360
|
+
* Returns the cell value or `undefined`.
|
|
361
|
+
*/
|
|
362
|
+
DataTable.prototype.getCell = function (columnNameOrAlias, rowIndex) {
|
|
363
|
+
var table = this;
|
|
364
|
+
columnNameOrAlias = (table.aliasMap[columnNameOrAlias] ||
|
|
365
|
+
columnNameOrAlias);
|
|
366
|
+
var column = table.columns[columnNameOrAlias];
|
|
367
|
+
if (column) {
|
|
368
|
+
return column[rowIndex];
|
|
369
|
+
}
|
|
370
|
+
};
|
|
371
|
+
/**
|
|
372
|
+
* Fetches a cell value for the given row as a boolean.
|
|
373
|
+
*
|
|
374
|
+
* @function Highcharts.DataTable#getCellAsBoolean
|
|
375
|
+
*
|
|
376
|
+
* @param {string} columnNameOrAlias
|
|
377
|
+
* Column name or alias to fetch.
|
|
378
|
+
*
|
|
379
|
+
* @param {number} rowIndex
|
|
380
|
+
* Row index to fetch.
|
|
381
|
+
*
|
|
382
|
+
* @return {boolean}
|
|
383
|
+
* Returns the cell value of the row as a boolean.
|
|
384
|
+
*/
|
|
385
|
+
DataTable.prototype.getCellAsBoolean = function (columnNameOrAlias, rowIndex) {
|
|
386
|
+
var table = this;
|
|
387
|
+
columnNameOrAlias = (table.aliasMap[columnNameOrAlias] ||
|
|
388
|
+
columnNameOrAlias);
|
|
389
|
+
var column = table.columns[columnNameOrAlias];
|
|
390
|
+
return !!(column && column[rowIndex]);
|
|
391
|
+
};
|
|
392
|
+
/**
|
|
393
|
+
* Fetches a cell value for the given row as a number.
|
|
394
|
+
*
|
|
395
|
+
* @function Highcharts.DataTable#getCellAsNumber
|
|
396
|
+
*
|
|
397
|
+
* @param {string} columnNameOrAlias
|
|
398
|
+
* Column name or alias to fetch.
|
|
399
|
+
*
|
|
400
|
+
* @param {number} rowIndex
|
|
401
|
+
* Row index to fetch.
|
|
402
|
+
*
|
|
403
|
+
* @param {boolean} [useNaN]
|
|
404
|
+
* Whether to return NaN instead of `null` and `undefined`.
|
|
405
|
+
*
|
|
406
|
+
* @return {number|null}
|
|
407
|
+
* Returns the cell value of the row as a number.
|
|
408
|
+
*/
|
|
409
|
+
DataTable.prototype.getCellAsNumber = function (columnNameOrAlias, rowIndex, useNaN) {
|
|
410
|
+
var table = this;
|
|
411
|
+
columnNameOrAlias = (table.aliasMap[columnNameOrAlias] ||
|
|
412
|
+
columnNameOrAlias);
|
|
413
|
+
var column = table.columns[columnNameOrAlias];
|
|
414
|
+
var cellValue = (column && column[rowIndex]);
|
|
415
|
+
switch (typeof cellValue) {
|
|
416
|
+
case 'boolean':
|
|
417
|
+
return (cellValue ? 1 : 0);
|
|
418
|
+
case 'number':
|
|
419
|
+
return (isNaN(cellValue) && !useNaN ? null : cellValue);
|
|
420
|
+
}
|
|
421
|
+
cellValue = parseFloat("" + cellValue);
|
|
422
|
+
return (isNaN(cellValue) && !useNaN ? null : cellValue);
|
|
423
|
+
};
|
|
424
|
+
/**
|
|
425
|
+
* Fetches a cell value for the given row as a string.
|
|
426
|
+
*
|
|
427
|
+
* @function Highcharts.DataTable#getCellAsString
|
|
428
|
+
*
|
|
429
|
+
* @param {string} columnNameOrAlias
|
|
430
|
+
* Column name or alias to fetch.
|
|
431
|
+
*
|
|
432
|
+
* @param {number} rowIndex
|
|
433
|
+
* Row index to fetch.
|
|
434
|
+
*
|
|
435
|
+
* @return {string}
|
|
436
|
+
* Returns the cell value of the row as a string.
|
|
437
|
+
*/
|
|
438
|
+
DataTable.prototype.getCellAsString = function (columnNameOrAlias, rowIndex) {
|
|
439
|
+
var table = this;
|
|
440
|
+
columnNameOrAlias = (table.aliasMap[columnNameOrAlias] ||
|
|
441
|
+
columnNameOrAlias);
|
|
442
|
+
var column = table.columns[columnNameOrAlias];
|
|
443
|
+
return "" + (column && column[rowIndex]);
|
|
444
|
+
};
|
|
445
|
+
/**
|
|
446
|
+
* Fetches the given column by the canonical column name or by an alias.
|
|
447
|
+
* This function is a simplified wrap of {@link getColumns}.
|
|
448
|
+
*
|
|
449
|
+
* @function Highcharts.DataTable#getColumn
|
|
450
|
+
*
|
|
451
|
+
* @param {string} columnNameOrAlias
|
|
452
|
+
* Name or alias of the column to get, alias takes precedence.
|
|
453
|
+
*
|
|
454
|
+
* @param {boolean} [asReference]
|
|
455
|
+
* Whether to return the column as a readonly reference.
|
|
456
|
+
*
|
|
457
|
+
* @return {Highcharts.DataTableColumn|undefined}
|
|
458
|
+
* A copy of the column, or `undefined` if not found.
|
|
459
|
+
*/
|
|
460
|
+
DataTable.prototype.getColumn = function (columnNameOrAlias, asReference) {
|
|
461
|
+
return this.getColumns([columnNameOrAlias], asReference)[columnNameOrAlias];
|
|
462
|
+
};
|
|
463
|
+
/**
|
|
464
|
+
* Fetches all column aliases.
|
|
465
|
+
*
|
|
466
|
+
* @function Highcharts.DataTable#getColumnAliases
|
|
467
|
+
*
|
|
468
|
+
* @return {Array<string>}
|
|
469
|
+
* Returns all column aliases.
|
|
470
|
+
*/
|
|
471
|
+
DataTable.prototype.getColumnAliases = function () {
|
|
472
|
+
var table = this, columnAliases = Object.keys(table.aliasMap);
|
|
473
|
+
return columnAliases;
|
|
474
|
+
};
|
|
475
|
+
/**
|
|
476
|
+
* Fetches the given column by the canonical column name or by an alias, and
|
|
477
|
+
* validates the type of the first few cells. If the first defined cell is
|
|
478
|
+
* of type number, it assumes for performance reasons, that all cells are of
|
|
479
|
+
* type number or `null`. Otherwise it will convert all cells to number
|
|
480
|
+
* type, except `null`.
|
|
481
|
+
*
|
|
482
|
+
* @function Highcharts.DataTable#getColumnAsNumbers
|
|
483
|
+
*
|
|
484
|
+
* @param {string} columnNameOrAlias
|
|
485
|
+
* Name or alias of the column to get, alias takes precedence.
|
|
486
|
+
*
|
|
487
|
+
* @param {boolean} [useNaN]
|
|
488
|
+
* Whether to use NaN instead of `null` and `undefined`.
|
|
489
|
+
*
|
|
490
|
+
* @return {Array<(number|null)>}
|
|
491
|
+
* A copy of the column, or an empty array if not found.
|
|
492
|
+
*/
|
|
493
|
+
DataTable.prototype.getColumnAsNumbers = function (columnNameOrAlias, useNaN) {
|
|
494
|
+
var table = this, columns = table.columns;
|
|
495
|
+
columnNameOrAlias = (table.aliasMap[columnNameOrAlias] ||
|
|
496
|
+
columnNameOrAlias);
|
|
497
|
+
var column = columns[columnNameOrAlias], columnAsNumber = [];
|
|
498
|
+
if (column) {
|
|
499
|
+
var columnLength = column.length;
|
|
500
|
+
if (useNaN) {
|
|
501
|
+
for (var i = 0; i < columnLength; ++i) {
|
|
502
|
+
columnAsNumber.push(table.getCellAsNumber(columnNameOrAlias, i, true));
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
else {
|
|
506
|
+
for (var i = 0, cellValue = void 0; i < columnLength; ++i) {
|
|
507
|
+
cellValue = column[i];
|
|
508
|
+
if (typeof cellValue === 'number') {
|
|
509
|
+
// assume unmixed data for performance reasons
|
|
510
|
+
return column.slice();
|
|
511
|
+
}
|
|
512
|
+
if (cellValue !== null &&
|
|
513
|
+
typeof cellValue !== 'undefined') {
|
|
514
|
+
break;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
for (var i = 0; i < columnLength; ++i) {
|
|
518
|
+
columnAsNumber.push(table.getCellAsNumber(columnNameOrAlias, i));
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
return columnAsNumber;
|
|
523
|
+
};
|
|
524
|
+
/**
|
|
525
|
+
* Fetches all column names.
|
|
526
|
+
*
|
|
527
|
+
* @function Highcharts.DataTable#getColumnNames
|
|
528
|
+
*
|
|
529
|
+
* @return {Array<string>}
|
|
530
|
+
* Returns all column names.
|
|
531
|
+
*/
|
|
532
|
+
DataTable.prototype.getColumnNames = function () {
|
|
533
|
+
var table = this, columnNames = Object.keys(table.columns);
|
|
534
|
+
return columnNames;
|
|
535
|
+
};
|
|
536
|
+
/**
|
|
537
|
+
* Retrieves all or the given columns.
|
|
538
|
+
*
|
|
539
|
+
* @function Highcharts.DataTable#getColumns
|
|
540
|
+
*
|
|
541
|
+
* @param {Array<string>} [columnNamesOrAliases]
|
|
542
|
+
* Column names or aliases to retrieve. Aliases taking precedence.
|
|
543
|
+
*
|
|
544
|
+
* @param {boolean} [asReference]
|
|
545
|
+
* Whether to return columns as a readonly reference.
|
|
546
|
+
*
|
|
547
|
+
* @return {Highcharts.DataTableColumnCollection}
|
|
548
|
+
* Collection of columns. If a requested column was not found, it is
|
|
549
|
+
* `undefined`.
|
|
550
|
+
*/
|
|
551
|
+
DataTable.prototype.getColumns = function (columnNamesOrAliases, asReference) {
|
|
552
|
+
var table = this, tableAliasMap = table.aliasMap, tableColumns = table.columns, columns = {};
|
|
553
|
+
columnNamesOrAliases = (columnNamesOrAliases || Object.keys(tableColumns));
|
|
554
|
+
for (var i = 0, iEnd = columnNamesOrAliases.length, column = void 0, columnName = void 0; i < iEnd; ++i) {
|
|
555
|
+
columnName = columnNamesOrAliases[i];
|
|
556
|
+
column = tableColumns[(tableAliasMap[columnName] || columnName)];
|
|
557
|
+
if (column) {
|
|
558
|
+
columns[columnName] = (asReference ? column : column.slice());
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
return columns;
|
|
562
|
+
};
|
|
563
|
+
/**
|
|
564
|
+
* Retrieves the modifier for the table.
|
|
565
|
+
* @private
|
|
566
|
+
*
|
|
567
|
+
* @return {Highcharts.DataModifier|undefined}
|
|
568
|
+
* Returns the modifier or `undefined`.
|
|
569
|
+
*/
|
|
570
|
+
DataTable.prototype.getModifier = function () {
|
|
571
|
+
return this.modifier;
|
|
572
|
+
};
|
|
573
|
+
/**
|
|
574
|
+
* Retrieves the row at a given index. This function is a simplified wrap of
|
|
575
|
+
* {@link getRows}.
|
|
576
|
+
*
|
|
577
|
+
* @function Highcharts.DataTable#getRow
|
|
578
|
+
*
|
|
579
|
+
* @param {number} rowIndex
|
|
580
|
+
* Row index.
|
|
581
|
+
*
|
|
582
|
+
* @param {Array<string>} [columnNamesOrAliases]
|
|
583
|
+
* Column names or aliases in order to retrieve.
|
|
584
|
+
*
|
|
585
|
+
* @return {Highcharts.DataTableRow}
|
|
586
|
+
* Returns the row values, or `undefined` if not found.
|
|
587
|
+
*/
|
|
588
|
+
DataTable.prototype.getRow = function (rowIndex, columnNamesOrAliases) {
|
|
589
|
+
return this.getRows(rowIndex, 1, columnNamesOrAliases)[0];
|
|
590
|
+
};
|
|
591
|
+
/**
|
|
592
|
+
* Returns the number of rows in this table.
|
|
593
|
+
*
|
|
594
|
+
* @function Highcharts.DataTable#getRowCount
|
|
595
|
+
*
|
|
596
|
+
* @return {number}
|
|
597
|
+
* Number of rows in this table.
|
|
598
|
+
*/
|
|
599
|
+
DataTable.prototype.getRowCount = function () {
|
|
600
|
+
// @todo Implement via property getter `.length` browsers supported
|
|
601
|
+
return this.rowCount;
|
|
602
|
+
};
|
|
603
|
+
/**
|
|
604
|
+
* Retrieves the index of the first row matching a specific cell value.
|
|
605
|
+
*
|
|
606
|
+
* @function Highcharts.DataTable#getRowIndexBy
|
|
607
|
+
*
|
|
608
|
+
* @param {string} columnNameOrAlias
|
|
609
|
+
* Column to search in.
|
|
610
|
+
*
|
|
611
|
+
* @param {Highcharts.DataTableCellType} cellValue
|
|
612
|
+
* Cell value to search for. `NaN` and `undefined` are not supported.
|
|
613
|
+
*
|
|
614
|
+
* @param {number} [rowIndexOffset]
|
|
615
|
+
* Index offset to start searching.
|
|
616
|
+
*
|
|
617
|
+
* @return {number|undefined}
|
|
618
|
+
* Index of the first row matching the cell value.
|
|
619
|
+
*/
|
|
620
|
+
DataTable.prototype.getRowIndexBy = function (columnNameOrAlias, cellValue, rowIndexOffset) {
|
|
621
|
+
var table = this;
|
|
622
|
+
columnNameOrAlias = (table.aliasMap[columnNameOrAlias] ||
|
|
623
|
+
columnNameOrAlias);
|
|
624
|
+
var column = table.columns[columnNameOrAlias];
|
|
625
|
+
if (column) {
|
|
626
|
+
var rowIndex = column.indexOf(cellValue, rowIndexOffset);
|
|
627
|
+
if (rowIndex !== -1) {
|
|
628
|
+
return rowIndex;
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
};
|
|
632
|
+
/**
|
|
633
|
+
* Retrieves the row at a given index. This function is a simplified wrap of
|
|
634
|
+
* {@link getRowObjects}.
|
|
635
|
+
*
|
|
636
|
+
* @function Highcharts.DataTable#getRowObject
|
|
637
|
+
*
|
|
638
|
+
* @param {number} rowIndex
|
|
639
|
+
* Row index.
|
|
640
|
+
*
|
|
641
|
+
* @param {Array<string>} [columnNamesOrAliases]
|
|
642
|
+
* Column names or aliases and their order to retrieve.
|
|
643
|
+
*
|
|
644
|
+
* @return {Highcharts.DataTableRowObject}
|
|
645
|
+
* Returns the row values, or `undefined` if not found.
|
|
646
|
+
*/
|
|
647
|
+
DataTable.prototype.getRowObject = function (rowIndex, columnNamesOrAliases) {
|
|
648
|
+
return this.getRowObjects(rowIndex, 1, columnNamesOrAliases)[0];
|
|
649
|
+
};
|
|
650
|
+
/**
|
|
651
|
+
* Fetches all or a number of rows.
|
|
652
|
+
*
|
|
653
|
+
* @function Highcharts.DataTable#getRowObjects
|
|
654
|
+
*
|
|
655
|
+
* @param {number} [rowIndex]
|
|
656
|
+
* Index of the first row to fetch. Defaults to first row at index `0`.
|
|
657
|
+
*
|
|
658
|
+
* @param {number} [rowCount]
|
|
659
|
+
* Number of rows to fetch. Defaults to maximal number of rows.
|
|
660
|
+
*
|
|
661
|
+
* @param {Array<string>} [columnNamesOrAliases]
|
|
662
|
+
* Column names or aliases and their order to retrieve.
|
|
663
|
+
*
|
|
664
|
+
* @return {Highcharts.DataTableRowObject}
|
|
665
|
+
* Returns retrieved rows.
|
|
666
|
+
*/
|
|
667
|
+
DataTable.prototype.getRowObjects = function (rowIndex, rowCount, columnNamesOrAliases) {
|
|
668
|
+
if (rowIndex === void 0) { rowIndex = 0; }
|
|
669
|
+
if (rowCount === void 0) { rowCount = (this.rowCount - rowIndex); }
|
|
670
|
+
var table = this, aliasMap = table.aliasMap, columns = table.columns, rows = new Array(rowCount);
|
|
671
|
+
columnNamesOrAliases = (columnNamesOrAliases || Object.keys(columns));
|
|
672
|
+
var columnNamesLength = columnNamesOrAliases.length;
|
|
673
|
+
for (var i = rowIndex, i2 = 0, iEnd = Math.min(table.rowCount, (rowIndex + rowCount)), row = void 0; i < iEnd; ++i, ++i2) {
|
|
674
|
+
row = rows[i2] = {};
|
|
675
|
+
for (var j = 0, jEnd = columnNamesLength, columnName = void 0; j < jEnd; ++j) {
|
|
676
|
+
columnName = columnNamesOrAliases[j];
|
|
677
|
+
row[columnName] = columns[(aliasMap[columnName] || columnName)][i];
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
return rows;
|
|
681
|
+
};
|
|
682
|
+
/**
|
|
683
|
+
* Fetches all or a number of rows.
|
|
684
|
+
*
|
|
685
|
+
* @function Highcharts.DataTable#getRows
|
|
686
|
+
*
|
|
687
|
+
* @param {number} [rowIndex]
|
|
688
|
+
* Index of the first row to fetch. Defaults to first row at index `0`.
|
|
689
|
+
*
|
|
690
|
+
* @param {number} [rowCount]
|
|
691
|
+
* Number of rows to fetch. Defaults to maximal number of rows.
|
|
692
|
+
*
|
|
693
|
+
* @param {Array<string>} [columnNamesOrAliases]
|
|
694
|
+
* Column names or aliases and their order to retrieve.
|
|
695
|
+
*
|
|
696
|
+
* @return {Highcharts.DataTableRow}
|
|
697
|
+
* Returns retrieved rows.
|
|
698
|
+
*/
|
|
699
|
+
DataTable.prototype.getRows = function (rowIndex, rowCount, columnNamesOrAliases) {
|
|
700
|
+
if (rowIndex === void 0) { rowIndex = 0; }
|
|
701
|
+
if (rowCount === void 0) { rowCount = (this.rowCount - rowIndex); }
|
|
702
|
+
var table = this, aliasMap = table.aliasMap, columns = table.columns, rows = new Array(rowCount);
|
|
703
|
+
columnNamesOrAliases = (columnNamesOrAliases || Object.keys(columns));
|
|
704
|
+
var columnNamesLength = columnNamesOrAliases.length;
|
|
705
|
+
for (var i = rowIndex, i2 = 0, iEnd = Math.min(table.rowCount, (rowIndex + rowCount)), columnName = void 0, row = void 0; i < iEnd; ++i, ++i2) {
|
|
706
|
+
row = rows[i2] = new Array(columnNamesLength);
|
|
707
|
+
for (var j = 0; j < columnNamesLength; ++j) {
|
|
708
|
+
columnName = columnNamesOrAliases[j];
|
|
709
|
+
row[j] = columns[(aliasMap[columnName] || columnName)][i];
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
return rows;
|
|
713
|
+
};
|
|
714
|
+
/**
|
|
715
|
+
* Returns the unique version tag of the current state of the table.
|
|
716
|
+
*
|
|
717
|
+
* @function Highcharts.DataTable#getVersionTag
|
|
718
|
+
*
|
|
719
|
+
* @return {string}
|
|
720
|
+
* Unique version tag.
|
|
721
|
+
*/
|
|
722
|
+
DataTable.prototype.getVersionTag = function () {
|
|
723
|
+
return this.versionTag;
|
|
724
|
+
};
|
|
725
|
+
/**
|
|
726
|
+
* Checks for given column names or aliases.
|
|
727
|
+
*
|
|
728
|
+
* @function Highcharts.DataTable#hasColumns
|
|
729
|
+
*
|
|
730
|
+
* @param {Array<string>} columnNamesOrAliases
|
|
731
|
+
* Column names of aliases to check.
|
|
732
|
+
*
|
|
733
|
+
* @return {boolean}
|
|
734
|
+
* Returns `true` if all columns have been found, otherwise `false`.
|
|
735
|
+
*/
|
|
736
|
+
DataTable.prototype.hasColumns = function (columnNamesOrAliases) {
|
|
737
|
+
var table = this, aliasMap = table.aliasMap, columns = table.columns;
|
|
738
|
+
for (var i = 0, iEnd = columnNamesOrAliases.length, columnName = void 0; i < iEnd; ++i) {
|
|
739
|
+
columnName = columnNamesOrAliases[i];
|
|
740
|
+
if (!columns[columnName] && !aliasMap[columnName]) {
|
|
741
|
+
return false;
|
|
742
|
+
}
|
|
743
|
+
}
|
|
744
|
+
return true;
|
|
745
|
+
};
|
|
746
|
+
/**
|
|
747
|
+
* Searches for a specific cell value.
|
|
748
|
+
*
|
|
749
|
+
* @function Highcharts.DataTable#hasRowWith
|
|
750
|
+
*
|
|
751
|
+
* @param {string} columnNameOrAlias
|
|
752
|
+
* Column to search in.
|
|
753
|
+
*
|
|
754
|
+
* @param {boolean|number|string|Highcharts.DataTable} cellValue
|
|
755
|
+
* Cell value to search for. `NaN` and `undefined` are not supported.
|
|
756
|
+
*
|
|
757
|
+
* @return {boolean}
|
|
758
|
+
* True, if a row has been found, otherwise false.
|
|
759
|
+
*/
|
|
760
|
+
DataTable.prototype.hasRowWith = function (columnNameOrAlias, cellValue) {
|
|
761
|
+
var table = this;
|
|
762
|
+
columnNameOrAlias = (table.aliasMap[columnNameOrAlias] ||
|
|
763
|
+
columnNameOrAlias);
|
|
764
|
+
var column = table.columns[columnNameOrAlias];
|
|
765
|
+
if (column) {
|
|
766
|
+
return (column.indexOf(cellValue) !== -1);
|
|
767
|
+
}
|
|
768
|
+
return false;
|
|
769
|
+
};
|
|
770
|
+
/**
|
|
771
|
+
* Registers a callback for a specific event.
|
|
772
|
+
*
|
|
773
|
+
* @function Highcharts.DataTable#on
|
|
774
|
+
*
|
|
775
|
+
* @param {string} type
|
|
776
|
+
* Event type as a string.
|
|
777
|
+
*
|
|
778
|
+
* @param {Highcharts.EventCallbackFunction<Highcharts.DataTable>} callback
|
|
779
|
+
* Function to register for an event callback.
|
|
780
|
+
*
|
|
781
|
+
* @return {Function}
|
|
782
|
+
* Function to unregister callback from the event.
|
|
783
|
+
*/
|
|
784
|
+
DataTable.prototype.on = function (type, callback) {
|
|
785
|
+
return addEvent(this, type, callback);
|
|
786
|
+
};
|
|
787
|
+
/**
|
|
788
|
+
* Renames a column of cell values.
|
|
789
|
+
*
|
|
790
|
+
* @function Highcharts.DataTable#renameColumn
|
|
791
|
+
*
|
|
792
|
+
* @param {string} columnName
|
|
793
|
+
* Name of the column to be renamed.
|
|
794
|
+
*
|
|
795
|
+
* @param {string} newColumnName
|
|
796
|
+
* New name of the column. An existing column with the same name will be
|
|
797
|
+
* replaced.
|
|
798
|
+
*
|
|
799
|
+
* @return {boolean}
|
|
800
|
+
* Returns `true` if successful, `false` if the column was not found.
|
|
801
|
+
*/
|
|
802
|
+
DataTable.prototype.renameColumn = function (columnName, newColumnName) {
|
|
803
|
+
var table = this, columns = table.columns;
|
|
804
|
+
if (columns[columnName]) {
|
|
805
|
+
if (columnName !== newColumnName) {
|
|
806
|
+
var aliasMap = table.aliasMap;
|
|
807
|
+
if (aliasMap[newColumnName]) {
|
|
808
|
+
delete aliasMap[newColumnName];
|
|
809
|
+
}
|
|
810
|
+
columns[newColumnName] = columns[columnName];
|
|
811
|
+
delete columns[columnName];
|
|
812
|
+
}
|
|
813
|
+
return true;
|
|
814
|
+
}
|
|
815
|
+
return false;
|
|
816
|
+
};
|
|
817
|
+
/**
|
|
818
|
+
* Sets a cell value based on the row index and column name or alias. Will
|
|
819
|
+
* insert a new column, if not found.
|
|
820
|
+
*
|
|
821
|
+
* @function Highcharts.DataTable#setCell
|
|
822
|
+
*
|
|
823
|
+
* @param {string} columnNameOrAlias
|
|
824
|
+
* Column name or alias to set.
|
|
825
|
+
*
|
|
826
|
+
* @param {number|undefined} rowIndex
|
|
827
|
+
* Row index to set.
|
|
828
|
+
*
|
|
829
|
+
* @param {Highcharts.DataTableCellType} cellValue
|
|
830
|
+
* Cell value to set.
|
|
831
|
+
*
|
|
832
|
+
* @param {Highcharts.DataTableEventDetail} [eventDetail]
|
|
833
|
+
* Custom information for pending events.
|
|
834
|
+
*
|
|
835
|
+
* @emits #setCell
|
|
836
|
+
* @emits #afterSetCell
|
|
837
|
+
*/
|
|
838
|
+
DataTable.prototype.setCell = function (columnNameOrAlias, rowIndex, cellValue, eventDetail) {
|
|
839
|
+
var table = this, columns = table.columns, modifier = table.modifier;
|
|
840
|
+
columnNameOrAlias = (table.aliasMap[columnNameOrAlias] ||
|
|
841
|
+
columnNameOrAlias);
|
|
842
|
+
var column = columns[columnNameOrAlias];
|
|
843
|
+
if (column && column[rowIndex] === cellValue) {
|
|
844
|
+
return;
|
|
845
|
+
}
|
|
846
|
+
table.emit({
|
|
847
|
+
type: 'setCell',
|
|
848
|
+
cellValue: cellValue,
|
|
849
|
+
columnName: columnNameOrAlias,
|
|
850
|
+
detail: eventDetail,
|
|
851
|
+
rowIndex: rowIndex
|
|
852
|
+
});
|
|
853
|
+
if (!column) {
|
|
854
|
+
column = columns[columnNameOrAlias] = new Array(table.rowCount);
|
|
855
|
+
}
|
|
856
|
+
if (rowIndex >= table.rowCount) {
|
|
857
|
+
table.rowCount = (rowIndex + 1);
|
|
858
|
+
}
|
|
859
|
+
column[rowIndex] = cellValue;
|
|
860
|
+
if (modifier) {
|
|
861
|
+
modifier.modifyCell(table, columnNameOrAlias, rowIndex, cellValue);
|
|
862
|
+
}
|
|
863
|
+
table.emit({
|
|
864
|
+
type: 'afterSetCell',
|
|
865
|
+
cellValue: cellValue,
|
|
866
|
+
columnName: columnNameOrAlias,
|
|
867
|
+
detail: eventDetail,
|
|
868
|
+
rowIndex: rowIndex
|
|
869
|
+
});
|
|
870
|
+
};
|
|
871
|
+
/**
|
|
872
|
+
* Sets cell values for a column. Will insert a new column, if not found.
|
|
873
|
+
*
|
|
874
|
+
* @function Highcharts.DataTable#setColumn
|
|
875
|
+
*
|
|
876
|
+
* @param {string} columnNameOrAlias
|
|
877
|
+
* Column name or alias to set.
|
|
878
|
+
*
|
|
879
|
+
* @param {Highcharts.DataTableColumn} [column]
|
|
880
|
+
* Values to set in the column.
|
|
881
|
+
*
|
|
882
|
+
* @param {number} [rowIndex=0]
|
|
883
|
+
* Index of the first row to change. (Default: 0)
|
|
884
|
+
*
|
|
885
|
+
* @param {Highcharts.DataTableEventDetail} [eventDetail]
|
|
886
|
+
* Custom information for pending events.
|
|
887
|
+
*
|
|
888
|
+
* @emits #setColumns
|
|
889
|
+
* @emits #afterSetColumns
|
|
890
|
+
*/
|
|
891
|
+
DataTable.prototype.setColumn = function (columnNameOrAlias, column, rowIndex, eventDetail) {
|
|
892
|
+
var _a;
|
|
893
|
+
if (column === void 0) { column = []; }
|
|
894
|
+
if (rowIndex === void 0) { rowIndex = 0; }
|
|
895
|
+
this.setColumns((_a = {}, _a[columnNameOrAlias] = column, _a), rowIndex, eventDetail);
|
|
896
|
+
};
|
|
897
|
+
/**
|
|
898
|
+
* Defines an alias for a column.
|
|
899
|
+
*
|
|
900
|
+
* @function Highcharts.DataTable#setColumnAlias
|
|
901
|
+
*
|
|
902
|
+
* @param {string} columnAlias
|
|
903
|
+
* Column alias to create.
|
|
904
|
+
*
|
|
905
|
+
* @param {string} columnName
|
|
906
|
+
* Column name to create an alias for.
|
|
907
|
+
*
|
|
908
|
+
* @return {boolean}
|
|
909
|
+
* True if successfully changed, false if reserved.
|
|
910
|
+
*/
|
|
911
|
+
DataTable.prototype.setColumnAlias = function (columnAlias, columnName) {
|
|
912
|
+
var aliasMap = this.aliasMap;
|
|
913
|
+
if (!aliasMap[columnAlias]) {
|
|
914
|
+
aliasMap[columnAlias] = columnName;
|
|
915
|
+
return true;
|
|
916
|
+
}
|
|
917
|
+
return false;
|
|
918
|
+
};
|
|
919
|
+
/**
|
|
920
|
+
* Sets cell values for multiple columns. Will insert new columns, if not
|
|
921
|
+
* found.
|
|
922
|
+
*
|
|
923
|
+
* @function Highcharts.DataTable#setColumns
|
|
924
|
+
*
|
|
925
|
+
* @param {Highcharts.DataTableColumnCollection} columns
|
|
926
|
+
* Columns as a collection, where the keys are the column names or aliases.
|
|
927
|
+
*
|
|
928
|
+
* @param {number} [rowIndex]
|
|
929
|
+
* Index of the first row to change. Keep undefined to reset.
|
|
930
|
+
*
|
|
931
|
+
* @param {Highcharts.DataTableEventDetail} [eventDetail]
|
|
932
|
+
* Custom information for pending events.
|
|
933
|
+
*
|
|
934
|
+
* @emits #setColumns
|
|
935
|
+
* @emits #afterSetColumns
|
|
936
|
+
*/
|
|
937
|
+
DataTable.prototype.setColumns = function (columns, rowIndex, eventDetail) {
|
|
938
|
+
var table = this, tableColumns = table.columns, tableModifier = table.modifier, tableRowCount = table.rowCount, reset = (typeof rowIndex === 'undefined'), columnNames = Object.keys(columns);
|
|
939
|
+
table.emit({
|
|
940
|
+
type: 'setColumns',
|
|
941
|
+
columns: columns,
|
|
942
|
+
columnNames: columnNames,
|
|
943
|
+
detail: eventDetail,
|
|
944
|
+
rowIndex: rowIndex
|
|
945
|
+
});
|
|
946
|
+
for (var i = 0, iEnd = columnNames.length, column = void 0, columnName = void 0; i < iEnd; ++i) {
|
|
947
|
+
columnName = columnNames[i];
|
|
948
|
+
column = columns[columnName];
|
|
949
|
+
columnName = (table.aliasMap[columnName] ||
|
|
950
|
+
columnName);
|
|
951
|
+
if (reset) {
|
|
952
|
+
tableColumns[columnName] = column.slice();
|
|
953
|
+
table.rowCount = column.length;
|
|
954
|
+
}
|
|
955
|
+
else {
|
|
956
|
+
var tableColumn = (tableColumns[columnName] ?
|
|
957
|
+
tableColumns[columnName] :
|
|
958
|
+
tableColumns[columnName] = new Array(table.rowCount));
|
|
959
|
+
rowIndex = (rowIndex || 0);
|
|
960
|
+
if (rowIndex > tableRowCount) {
|
|
961
|
+
tableColumn.length = rowIndex;
|
|
962
|
+
tableColumn.push.apply(tableColumn, column);
|
|
963
|
+
}
|
|
964
|
+
else {
|
|
965
|
+
tableColumn.splice.apply(tableColumn, __spreadArrays([rowIndex, (column.length - rowIndex)], column));
|
|
966
|
+
}
|
|
967
|
+
table.rowCount = Math.max(table.rowCount, tableColumn.length);
|
|
968
|
+
}
|
|
969
|
+
}
|
|
970
|
+
var tableColumnNames = Object.keys(tableColumns);
|
|
971
|
+
for (var i = 0, iEnd = tableColumnNames.length; i < iEnd; ++i) {
|
|
972
|
+
tableColumns[tableColumnNames[i]].length = table.rowCount;
|
|
973
|
+
}
|
|
974
|
+
if (tableModifier) {
|
|
975
|
+
tableModifier.modifyColumns(table, columns, (rowIndex || 0));
|
|
976
|
+
}
|
|
977
|
+
table.emit({
|
|
978
|
+
type: 'afterSetColumns',
|
|
979
|
+
columns: columns,
|
|
980
|
+
columnNames: columnNames,
|
|
981
|
+
detail: eventDetail,
|
|
982
|
+
rowIndex: rowIndex
|
|
983
|
+
});
|
|
984
|
+
};
|
|
985
|
+
/**
|
|
986
|
+
* Sets or unsets the modifier for the table.
|
|
987
|
+
* @private
|
|
988
|
+
*
|
|
989
|
+
* @param {Highcharts.DataModifier} [modifier]
|
|
990
|
+
* Modifier to set, or `undefined` to unset.
|
|
991
|
+
*
|
|
992
|
+
* @param {Highcharts.DataTableEventDetail} [eventDetail]
|
|
993
|
+
* Custom information for pending events.
|
|
994
|
+
*
|
|
995
|
+
* @return {Promise<Highcharts.DataTable>}
|
|
996
|
+
* Resolves to this table if successfull, or rejects on failure.
|
|
997
|
+
*
|
|
998
|
+
* @emits #setModifier
|
|
999
|
+
* @emits #afterSetModifier
|
|
1000
|
+
*/
|
|
1001
|
+
DataTable.prototype.setModifier = function (modifier, eventDetail) {
|
|
1002
|
+
var table = this;
|
|
1003
|
+
var promise;
|
|
1004
|
+
table.emit({
|
|
1005
|
+
type: 'setModifier',
|
|
1006
|
+
detail: eventDetail,
|
|
1007
|
+
modifier: modifier,
|
|
1008
|
+
modified: table.modified
|
|
1009
|
+
});
|
|
1010
|
+
table.modifier = modifier;
|
|
1011
|
+
if (modifier) {
|
|
1012
|
+
promise = modifier.modify(table);
|
|
1013
|
+
}
|
|
1014
|
+
else {
|
|
1015
|
+
promise = DataPromise
|
|
1016
|
+
.resolve(table)
|
|
1017
|
+
.then(function (table) {
|
|
1018
|
+
table.modified = table;
|
|
1019
|
+
return table;
|
|
1020
|
+
});
|
|
1021
|
+
}
|
|
1022
|
+
return promise
|
|
1023
|
+
.then(function (table) {
|
|
1024
|
+
table.emit({
|
|
1025
|
+
type: 'afterSetModifier',
|
|
1026
|
+
detail: eventDetail,
|
|
1027
|
+
modifier: modifier,
|
|
1028
|
+
modified: table.modified
|
|
1029
|
+
});
|
|
1030
|
+
return table;
|
|
1031
|
+
})['catch'](function (error) {
|
|
1032
|
+
table.emit({
|
|
1033
|
+
type: 'setModifierError',
|
|
1034
|
+
error: error,
|
|
1035
|
+
modifier: modifier,
|
|
1036
|
+
modified: table.modified
|
|
1037
|
+
});
|
|
1038
|
+
throw error;
|
|
1039
|
+
});
|
|
1040
|
+
};
|
|
1041
|
+
/**
|
|
1042
|
+
* Sets cell values of a row. Will insert a new row, if no index was
|
|
1043
|
+
* provided, or if the index is higher than the total number of table rows.
|
|
1044
|
+
*
|
|
1045
|
+
* Note: This function is just a simplified wrap of
|
|
1046
|
+
* {@link Highcharts.DataTable#setRows}.
|
|
1047
|
+
*
|
|
1048
|
+
* @function Highcharts.DataTable#setRow
|
|
1049
|
+
*
|
|
1050
|
+
* @param {Highcharts.DataTableRow|Highcharts.DataTableRowObject} row
|
|
1051
|
+
* Cell values to set.
|
|
1052
|
+
*
|
|
1053
|
+
* @param {number} [rowIndex]
|
|
1054
|
+
* Index of the row to set. Leave `undefind` to add as a new row.
|
|
1055
|
+
*
|
|
1056
|
+
* @param {Highcharts.DataTableEventDetail} [eventDetail]
|
|
1057
|
+
* Custom information for pending events.
|
|
1058
|
+
*
|
|
1059
|
+
* @emits #setRows
|
|
1060
|
+
* @emits #afterSetRows
|
|
1061
|
+
*/
|
|
1062
|
+
DataTable.prototype.setRow = function (row, rowIndex, eventDetail) {
|
|
1063
|
+
this.setRows([row], rowIndex, eventDetail);
|
|
1064
|
+
};
|
|
1065
|
+
/**
|
|
1066
|
+
* Sets cell values for multiple rows. Will insert new rows, if no index was
|
|
1067
|
+
* was provided, or if the index is higher than the total number of table
|
|
1068
|
+
* rows.
|
|
1069
|
+
*
|
|
1070
|
+
* @function Highcharts.DataTable#setRows
|
|
1071
|
+
*
|
|
1072
|
+
* @param {Array<(Highcharts.DataTableRow|Highcharts.DataTableRowObject)>} rows
|
|
1073
|
+
* Row values to set.
|
|
1074
|
+
*
|
|
1075
|
+
* @param {number} [rowIndex]
|
|
1076
|
+
* Index of the first row to set. Leave `undefind` to add as new rows.
|
|
1077
|
+
*
|
|
1078
|
+
* @param {Highcharts.DataTableEventDetail} [eventDetail]
|
|
1079
|
+
* Custom information for pending events.
|
|
1080
|
+
*
|
|
1081
|
+
* @emits #setRows
|
|
1082
|
+
* @emits #afterSetRows
|
|
1083
|
+
*/
|
|
1084
|
+
DataTable.prototype.setRows = function (rows, rowIndex, eventDetail) {
|
|
1085
|
+
if (rowIndex === void 0) { rowIndex = this.rowCount; }
|
|
1086
|
+
var table = this, aliasMap = table.aliasMap, columns = table.columns, columnNames = Object.keys(columns), modifier = table.modifier, rowCount = rows.length;
|
|
1087
|
+
table.emit({
|
|
1088
|
+
type: 'setRows',
|
|
1089
|
+
detail: eventDetail,
|
|
1090
|
+
rowCount: rowCount,
|
|
1091
|
+
rowIndex: rowIndex,
|
|
1092
|
+
rows: rows
|
|
1093
|
+
});
|
|
1094
|
+
for (var i = 0, i2 = rowIndex, row = void 0; i < rowCount; ++i, ++i2) {
|
|
1095
|
+
row = rows[i];
|
|
1096
|
+
if (row === DataTable.NULL) {
|
|
1097
|
+
for (var j = 0, jEnd = columnNames.length; j < jEnd; ++j) {
|
|
1098
|
+
columns[columnNames[j]][i2] = null;
|
|
1099
|
+
}
|
|
1100
|
+
}
|
|
1101
|
+
else if (row instanceof Array) {
|
|
1102
|
+
for (var j = 0, jEnd = columnNames.length; j < jEnd; ++j) {
|
|
1103
|
+
columns[columnNames[j]][i2] = row[j];
|
|
1104
|
+
}
|
|
1105
|
+
}
|
|
1106
|
+
else {
|
|
1107
|
+
var rowColumnNames = Object.keys(row);
|
|
1108
|
+
for (var j = 0, jEnd = rowColumnNames.length, rowColumnName = void 0; j < jEnd; ++j) {
|
|
1109
|
+
rowColumnName = rowColumnNames[j];
|
|
1110
|
+
rowColumnName = (aliasMap[rowColumnName] || rowColumnName);
|
|
1111
|
+
if (!columns[rowColumnName]) {
|
|
1112
|
+
columns[rowColumnName] = new Array(i2 + 1);
|
|
1113
|
+
}
|
|
1114
|
+
columns[rowColumnName][i2] = row[rowColumnName];
|
|
1115
|
+
}
|
|
1116
|
+
}
|
|
1117
|
+
}
|
|
1118
|
+
var indexRowCount = (rowIndex + rowCount);
|
|
1119
|
+
if (indexRowCount > table.rowCount) {
|
|
1120
|
+
table.rowCount = indexRowCount;
|
|
1121
|
+
for (var i = 0, iEnd = columnNames.length; i < iEnd; ++i) {
|
|
1122
|
+
columns[columnNames[i]].length = indexRowCount;
|
|
1123
|
+
}
|
|
1124
|
+
}
|
|
1125
|
+
if (modifier) {
|
|
1126
|
+
modifier.modifyRows(table, rows, rowIndex);
|
|
1127
|
+
}
|
|
1128
|
+
table.emit({
|
|
1129
|
+
type: 'afterSetRows',
|
|
1130
|
+
detail: eventDetail,
|
|
1131
|
+
rowCount: rowCount,
|
|
1132
|
+
rowIndex: rowIndex,
|
|
1133
|
+
rows: rows
|
|
1134
|
+
});
|
|
1135
|
+
};
|
|
1136
|
+
/* *
|
|
1137
|
+
*
|
|
1138
|
+
* Static Functions
|
|
1139
|
+
*
|
|
1140
|
+
* */
|
|
1141
|
+
/**
|
|
1142
|
+
* Null state for a row record.
|
|
1143
|
+
*
|
|
1144
|
+
* @name Highcharts.DataTable.NULL
|
|
1145
|
+
* @type {Highcharts.DataTableRowObject}
|
|
1146
|
+
*
|
|
1147
|
+
* @see {@link Highcharts.DataTable.isNull} for a null test.
|
|
1148
|
+
*
|
|
1149
|
+
* @example
|
|
1150
|
+
* table.setRows([DataTable.NULL, DataTable.NULL], 10);
|
|
1151
|
+
*/
|
|
1152
|
+
DataTable.NULL = {};
|
|
1153
|
+
return DataTable;
|
|
1154
|
+
}());
|
|
1155
|
+
/* *
|
|
1156
|
+
*
|
|
1157
|
+
* Default Export
|
|
1158
|
+
*
|
|
1159
|
+
* */
|
|
1160
|
+
export default DataTable;
|
|
1161
|
+
/* *
|
|
1162
|
+
*
|
|
1163
|
+
* API Declarations
|
|
1164
|
+
*
|
|
1165
|
+
* */
|
|
1166
|
+
/**
|
|
1167
|
+
* Possible value types for a table cell.
|
|
1168
|
+
* @private
|
|
1169
|
+
* @typedef {boolean|null|number|string|Highcharts.DataTable|undefined} Highcharts.DataTableCellType
|
|
1170
|
+
*/
|
|
1171
|
+
/**
|
|
1172
|
+
* Array of table cells in vertical expansion.
|
|
1173
|
+
* @private
|
|
1174
|
+
* @typedef {Array<Highcharts.DataTableCellType>} Highcharts.DataTableColumn
|
|
1175
|
+
*/
|
|
1176
|
+
/**
|
|
1177
|
+
* Collection of columns, where the key is the column name (or alias) and
|
|
1178
|
+
* the value is an array of column values.
|
|
1179
|
+
* @private
|
|
1180
|
+
* @interface Highcharts.DataTableColumnCollection
|
|
1181
|
+
* @readonly
|
|
1182
|
+
*/ /**
|
|
1183
|
+
* @name Highcharts.DataTableColumnCollection#[key:string]
|
|
1184
|
+
* @type {Highcharts.DataTableColumn}
|
|
1185
|
+
*/
|
|
1186
|
+
/**
|
|
1187
|
+
* Custom information for an event.
|
|
1188
|
+
* @private
|
|
1189
|
+
* @typedef Highcharts.DataTableEventDetail
|
|
1190
|
+
* @type {Record<string,(boolean|number|string|null|undefined)>}
|
|
1191
|
+
*/
|
|
1192
|
+
/**
|
|
1193
|
+
* Array of table cells in horizontal expansion. Index of the array is the index
|
|
1194
|
+
* of the column names.
|
|
1195
|
+
* @private
|
|
1196
|
+
* @typedef {Array<Highcharts.DataTableCellType>} Highcharts.DataTableRow
|
|
1197
|
+
*/
|
|
1198
|
+
/**
|
|
1199
|
+
* Record of table cells in horizontal expansion. Keys of the record are the
|
|
1200
|
+
* column names (or aliases).
|
|
1201
|
+
* @private
|
|
1202
|
+
* @typedef {Record<string,Highcharts.DataTableCellType>} Highcharts.DataTableRowObject
|
|
1203
|
+
*/
|
|
1204
|
+
(''); // keeps doclets above in transpiled file
|