highcharts 10.2.0 → 10.2.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/bower.json +1 -1
- package/css/highcharts.css +10 -20
- package/css/themes/dark-unica.css +10 -20
- package/css/themes/grid-light.css +10 -20
- package/css/themes/sand-signika.css +10 -20
- package/es-modules/Accessibility/Accessibility.js +6 -0
- package/es-modules/Accessibility/Components/LegendComponent.js +8 -8
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +3 -2
- package/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
- package/es-modules/Core/Axis/Axis.js +3 -0
- package/es-modules/Core/Axis/Axis3D.js +1 -1
- package/es-modules/Core/Axis/AxisDefaults.js +1 -1
- package/es-modules/Core/Axis/BrokenAxis.js +1 -1
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +4 -0
- package/es-modules/Core/Axis/NavigatorAxis.js +2 -2
- package/es-modules/Core/Axis/OrdinalAxis.js +2 -2
- package/es-modules/Core/Axis/RadialAxis.js +1 -1
- package/es-modules/Core/Axis/Stacking/StackItem.js +262 -0
- package/es-modules/Core/Axis/Stacking/StackingAxis.js +468 -0
- package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +732 -0
- package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +313 -0
- package/es-modules/Core/Axis/WaterfallAxis.js +1 -1
- package/es-modules/Core/Axis/ZAxis.js +73 -70
- package/es-modules/Core/Chart/Chart.js +16 -2
- package/es-modules/Core/Chart/Chart3D.js +2 -2
- package/es-modules/Core/Chart/ChartDefaults.js +151 -2
- package/es-modules/Core/Chart/StockChart.js +5 -3
- package/es-modules/Core/DefaultOptions.js +2 -1
- package/es-modules/Core/Geometry/CircleUtilities.js +4 -4
- package/es-modules/Core/Globals.js +2 -1
- package/es-modules/{Extensions → Core}/Math3D.js +48 -43
- package/es-modules/Core/Navigator.js +24 -7
- package/es-modules/Core/Pointer.js +7 -9
- package/es-modules/Core/Renderer/HTML/AST.js +4 -1
- package/es-modules/Core/Renderer/SVG/SVGElement.js +103 -163
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +29 -27
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +3 -3
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +1 -1
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +5 -3
- package/es-modules/Core/Scrollbar.js +3 -1
- package/es-modules/Core/Series/DataLabel.js +8 -6
- package/es-modules/Core/Series/Point.js +2 -2
- package/es-modules/Core/Series/Series.js +36 -31
- package/es-modules/Core/Series/Series3D.js +1 -1
- package/es-modules/Core/Series/SeriesDefaults.js +8 -3
- package/es-modules/Core/Series/SeriesRegistry.js +6 -29
- package/es-modules/Core/Tooltip.js +14 -3
- package/es-modules/Core/Utilities.js +1 -3
- package/es-modules/Data/DataConverter.js +5 -0
- package/es-modules/Data/DataPromise.js +1 -1
- package/es-modules/Data/DataSeriesComposition.js +288 -0
- package/es-modules/Data/DataSeriesConverter.js +1 -1
- package/es-modules/Data/DataTable.js +2 -2
- package/es-modules/Data/Modifiers/ChainModifier.js +1 -1
- package/es-modules/Data/Modifiers/DataModifier.js +1 -1
- package/es-modules/Data/Modifiers/GroupModifier.js +1 -1
- package/es-modules/Data/Modifiers/InvertModifier.js +1 -1
- package/es-modules/Data/Modifiers/RangeModifier.js +1 -1
- package/es-modules/Data/Modifiers/SeriesPointsModifier.js +1 -1
- package/es-modules/Data/Modifiers/SortModifier.js +1 -1
- package/es-modules/Data/Parsers/DataParser.js +1 -1
- package/es-modules/Data/Stores/DataStore.js +1 -1
- package/es-modules/Extensions/Annotations/Annotation.js +347 -1156
- package/es-modules/Extensions/Annotations/AnnotationChart.js +291 -0
- package/es-modules/Extensions/Annotations/AnnotationDefaults.js +624 -0
- package/es-modules/Extensions/Annotations/ControlPoint.js +89 -64
- package/es-modules/Extensions/Annotations/{Mixins/ControllableMixin.js → Controllables/Controllable.js} +300 -241
- package/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +63 -50
- package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +95 -0
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +90 -61
- package/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +50 -44
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +95 -78
- package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +167 -51
- package/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +53 -52
- package/es-modules/Extensions/Annotations/{Mixins/EventEmitterMixin.js → EventEmitter.js} +136 -116
- package/es-modules/Extensions/Annotations/MockPoint.js +210 -145
- package/es-modules/Extensions/Annotations/NavigationBindings.js +272 -674
- package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +396 -0
- package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +98 -0
- package/es-modules/Extensions/Annotations/Popup/Popup.js +295 -0
- package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +177 -0
- package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +81 -0
- package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +609 -0
- package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +134 -0
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +10 -14
- package/es-modules/Extensions/Annotations/Types/CrookedLine.js +11 -19
- package/es-modules/Extensions/Annotations/Types/ElliottWave.js +10 -10
- package/es-modules/Extensions/Annotations/Types/Fibonacci.js +28 -20
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +63 -63
- package/es-modules/Extensions/Annotations/Types/InfinityLine.js +10 -19
- package/es-modules/Extensions/Annotations/Types/Measure.js +255 -249
- package/es-modules/Extensions/Annotations/Types/Pitchfork.js +11 -17
- package/es-modules/Extensions/Annotations/Types/TimeCycles.js +20 -17
- package/es-modules/Extensions/Annotations/Types/Tunnel.js +12 -13
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +11 -15
- package/es-modules/Extensions/Boost/Boost.js +320 -15
- package/es-modules/Extensions/Boost/BoostChart.js +245 -0
- package/es-modules/Extensions/Boost/BoostSeries.js +927 -0
- package/es-modules/Extensions/Boost/BoostableMap.js +21 -5
- package/es-modules/Extensions/Boost/Boostables.js +13 -2
- package/es-modules/Extensions/Boost/NamedColors.js +15 -6
- package/es-modules/Extensions/Boost/WGLDrawMode.js +36 -0
- package/es-modules/Extensions/Boost/WGLRenderer.js +288 -295
- package/es-modules/Extensions/Boost/WGLShader.js +370 -376
- package/es-modules/Extensions/Boost/WGLVertexBuffer.js +192 -0
- package/es-modules/Extensions/BoostCanvas.js +62 -46
- package/es-modules/Extensions/Breadcrumbs.js +4 -0
- package/es-modules/Extensions/DataGrouping.js +65 -27
- package/es-modules/Extensions/Debugger/Debugger.js +60 -22
- package/es-modules/Extensions/DraggablePoints.js +4 -3
- package/es-modules/Extensions/Drilldown.js +7 -8
- package/es-modules/Extensions/{ExportData.js → ExportData/ExportData.js} +341 -530
- package/es-modules/Extensions/ExportData/ExportDataDefaults.js +272 -0
- package/es-modules/Extensions/Exporting/Exporting.js +5 -1
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +3 -1
- package/es-modules/Extensions/{FullScreen.js → Exporting/Fullscreen.js} +72 -27
- package/es-modules/Extensions/MarkerClusters.js +2 -0
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/Oldie/Oldie.js +1 -1
- package/es-modules/Extensions/ParallelCoordinates.js +11 -7
- package/es-modules/Extensions/ScrollablePlotArea.js +1 -1
- package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +2 -2
- package/es-modules/Extensions/Sonification/ChartSonify.js +1 -1
- package/es-modules/Maps/MapPointer.js +1 -1
- package/es-modules/Maps/MapView.js +2 -1
- package/es-modules/Series/{Area3DSeries.js → Area3D/Area3DSeries.js} +42 -20
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +8 -2
- package/es-modules/Series/Bubble/BubbleLegendComposition.js +223 -231
- package/es-modules/Series/Bubble/BubbleLegendItem.js +46 -45
- package/es-modules/Series/Bubble/BubbleSeries.js +85 -66
- package/es-modules/Series/Column/ColumnSeries.js +2 -0
- package/es-modules/Series/Column3D/Column3DComposition.js +2 -2
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +1 -1
- package/es-modules/Series/Cylinder/CylinderComposition.js +1 -1
- package/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +24 -11
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +16 -2
- package/es-modules/Series/DragNodesComposition.js +166 -0
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +1 -1
- package/es-modules/Series/Gantt/GanttSeries.js +1 -1
- package/es-modules/Series/GraphLayoutComposition.js +130 -0
- package/es-modules/Series/Heatmap/HeatmapSeries.js +5 -1
- package/es-modules/Series/Lollipop/LollipopPoint.js +21 -11
- package/es-modules/Series/Lollipop/LollipopSeries.js +15 -10
- package/es-modules/Series/Map/MapSeries.js +6 -1
- package/es-modules/Series/MapBubble/MapBubblePoint.js +15 -17
- package/es-modules/Series/MapBubble/MapBubbleSeries.js +19 -19
- package/es-modules/Series/Networkgraph/EulerIntegration.js +199 -0
- package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +290 -0
- package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +401 -0
- package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +545 -0
- package/es-modules/Series/Networkgraph/QuadTree.js +66 -272
- package/es-modules/Series/Networkgraph/QuadTreeNode.js +271 -0
- package/es-modules/Series/Networkgraph/{Layouts.js → ReingoldFruchtermanLayout.js} +240 -259
- package/es-modules/Series/Networkgraph/VerletIntegration.js +193 -0
- package/es-modules/Series/Organization/OrganizationSeries.js +9 -1
- package/es-modules/Series/PackedBubble/PackedBubbleIntegration.js +81 -0
- package/es-modules/Series/PackedBubble/{PackedBubbleComposition.js → PackedBubbleLayout.js} +114 -77
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +2 -2
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +197 -570
- package/es-modules/Series/PackedBubble/PackedBubbleSeriesDefaults.js +394 -0
- package/es-modules/Series/Pie/PieSeries.js +3 -1
- package/es-modules/Series/PolarComposition.js +12 -12
- package/es-modules/Series/Sankey/SankeySeries.js +13 -1
- package/es-modules/Series/Scatter/ScatterSeries.js +4 -1
- package/es-modules/Series/Scatter3D/Scatter3DSeries.js +1 -1
- package/es-modules/Series/SeriesOnPointComposition.js +5 -1
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +1 -1
- package/es-modules/Series/Sunburst/SunburstPoint.js +5 -6
- package/es-modules/Series/Sunburst/SunburstSeries.js +24 -2
- package/es-modules/Series/Timeline/TimelineSeries.js +2 -0
- package/es-modules/Series/Treemap/TreemapSeries.js +3 -3
- package/es-modules/Series/Vector/VectorSeries.js +2 -4
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +1 -1
- package/es-modules/Series/Wordcloud/WordcloudUtils.js +1 -1
- package/es-modules/Series/XRange/XRangePoint.js +54 -45
- package/es-modules/Series/XRange/XRangeSeries.js +121 -273
- package/es-modules/Series/XRange/XRangeSeriesDefaults.js +211 -0
- package/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +10 -2
- package/es-modules/Stock/Indicators/AD/ADIndicator.js +5 -0
- package/es-modules/Stock/Indicators/AO/AOIndicator.js +22 -11
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +6 -1
- package/es-modules/Stock/Indicators/ATR/ATRIndicator.js +16 -3
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +15 -2
- package/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +6 -2
- package/es-modules/Stock/Indicators/BB/BBIndicator.js +5 -1
- package/es-modules/Stock/Indicators/CCI/CCIIndicator.js +16 -3
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +20 -0
- package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +15 -1
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +7 -2
- package/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +25 -0
- package/es-modules/Stock/Indicators/DMI/DMIIndicator.js +5 -0
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +19 -8
- package/es-modules/Stock/Indicators/EMA/EMAIndicator.js +10 -0
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +34 -15
- package/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +25 -0
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +12 -1
- package/es-modules/Stock/Indicators/LinearRegression/{LinearRegression.js → LinearRegressionIndicator.js} +11 -1
- package/es-modules/Stock/Indicators/LinearRegressionAngle/{LinearRegressionAngle.js → LinearRegressionAngleIndicator.js} +12 -7
- package/es-modules/Stock/Indicators/LinearRegressionIntercept/{LinearRegressionIntercept.js → LinearRegressionInterceptIndicator.js} +11 -1
- package/es-modules/Stock/Indicators/LinearRegressionSlopes/{LinearRegressionSlopes.js → LinearRegressionSlopesIndicator.js} +11 -1
- package/es-modules/Stock/Indicators/MACD/MACDIndicator.js +21 -10
- package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +23 -10
- package/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +30 -2
- package/es-modules/Stock/Indicators/NATR/NATRIndicator.js +16 -1
- package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +10 -0
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +13 -8
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +14 -4
- package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +16 -3
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +16 -6
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +16 -12
- package/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +25 -0
- package/es-modules/Stock/Indicators/ROC/ROCIndicator.js +15 -2
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +20 -2
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +25 -0
- package/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +15 -0
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +17 -3
- package/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +25 -0
- package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +14 -4
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +32 -3
- package/es-modules/Stock/Indicators/VBP/VBPPoint.js +6 -6
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +11 -1
- package/es-modules/Stock/Indicators/WMA/WMAIndicator.js +30 -2
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +10 -0
- package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +11 -1
- package/es-modules/Stock/StockToolbar.js +568 -0
- package/es-modules/Stock/StockTools.js +256 -0
- package/es-modules/Stock/StockToolsBindings.js +114 -629
- package/es-modules/Stock/StockToolsDefaults.js +1190 -0
- package/es-modules/Stock/StockToolsGui.js +150 -1771
- package/es-modules/Stock/StockToolsUtilities.js +423 -0
- package/es-modules/masters/highcharts-3d.src.js +5 -4
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +4 -3
- package/es-modules/masters/highcharts.src.js +5 -2
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +5 -7
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +5 -5
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +6 -4
- package/es-modules/masters/modules/annotations.src.js +6 -4
- package/es-modules/masters/modules/arc-diagram.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 +6 -2
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +5 -3
- 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 +5 -2
- package/es-modules/masters/modules/exporting.src.js +1 -2
- package/es-modules/masters/modules/full-screen.src.js +6 -2
- 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 +3 -2
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +2 -2
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +5 -2
- 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/series-on-point.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +1 -1
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +10 -3
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/timeline.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +2 -2
- 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 +5 -2
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/brand-dark.src.js +1 -1
- package/es-modules/masters/themes/brand-light.src.js +1 -1
- package/es-modules/masters/themes/dark-blue.src.js +1 -1
- package/es-modules/masters/themes/dark-green.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/gray.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/grid.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
- package/es-modules/masters/themes/high-contrast-light.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/skies.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +98 -99
- package/highcharts-3d.js.map +1 -1
- package/highcharts-3d.src.js +232 -211
- package/highcharts-gantt.js +808 -809
- package/highcharts-gantt.js.map +1 -1
- package/highcharts-gantt.src.js +2308 -2136
- package/highcharts-more.d.ts +5 -8
- package/highcharts-more.js +201 -194
- package/highcharts-more.js.map +1 -1
- package/highcharts-more.src.d.ts +5 -8
- package/highcharts-more.src.js +3671 -3275
- package/highcharts.d.ts +1400 -885
- package/highcharts.js +593 -595
- package/highcharts.js.map +1 -1
- package/highcharts.src.d.ts +1400 -885
- package/highcharts.src.js +847 -716
- package/highmaps.js +762 -763
- package/highmaps.js.map +1 -1
- package/highmaps.src.js +1288 -1129
- package/highstock.js +796 -798
- package/highstock.js.map +1 -1
- package/highstock.src.js +953 -762
- package/indicators/acceleration-bands.js +1 -1
- package/indicators/acceleration-bands.js.map +1 -1
- package/indicators/acceleration-bands.src.js +11 -3
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.js.map +1 -1
- package/indicators/accumulation-distribution.src.js +6 -1
- package/indicators/ao.js +6 -6
- package/indicators/ao.js.map +1 -1
- package/indicators/ao.src.js +23 -14
- package/indicators/apo.js +1 -1
- package/indicators/apo.js.map +1 -1
- package/indicators/apo.src.js +6 -1
- package/indicators/aroon-oscillator.js +10 -10
- package/indicators/aroon-oscillator.js.map +1 -1
- package/indicators/aroon-oscillator.src.js +7 -3
- package/indicators/aroon.js +1 -1
- package/indicators/aroon.js.map +1 -1
- package/indicators/aroon.src.js +16 -3
- package/indicators/atr.js +1 -1
- package/indicators/atr.js.map +1 -1
- package/indicators/atr.src.js +17 -4
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.js.map +1 -1
- package/indicators/bollinger-bands.src.js +6 -2
- package/indicators/cci.js +1 -1
- package/indicators/cci.js.map +1 -1
- package/indicators/cci.src.js +17 -4
- package/indicators/chaikin.js +8 -8
- package/indicators/chaikin.js.map +1 -1
- package/indicators/chaikin.src.js +13 -5
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.js.map +1 -1
- package/indicators/cmf.src.js +21 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.js.map +1 -1
- package/indicators/cmo.src.js +16 -2
- package/indicators/dema.js +1 -1
- package/indicators/dema.js.map +1 -1
- package/indicators/dema.src.js +26 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.js +1 -1
- package/indicators/dmi.js.map +1 -1
- package/indicators/dmi.src.js +6 -1
- package/indicators/dpo.js +1 -1
- package/indicators/dpo.js.map +1 -1
- package/indicators/dpo.src.js +20 -9
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.js.map +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +35 -16
- package/indicators/indicators-all.js +199 -199
- package/indicators/indicators-all.js.map +1 -1
- package/indicators/indicators-all.src.js +754 -162
- package/indicators/indicators.js +1 -1
- package/indicators/indicators.js.map +1 -1
- package/indicators/indicators.src.js +12 -2
- package/indicators/keltner-channels.js +1 -1
- package/indicators/keltner-channels.js.map +1 -1
- package/indicators/keltner-channels.src.js +26 -1
- package/indicators/klinger.js +12 -12
- package/indicators/klinger.js.map +1 -1
- package/indicators/klinger.src.js +13 -4
- package/indicators/macd.js +1 -1
- package/indicators/macd.js.map +1 -1
- package/indicators/macd.src.js +22 -13
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.js.map +1 -1
- package/indicators/mfi.src.js +24 -11
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.js.map +1 -1
- package/indicators/momentum.src.js +31 -3
- package/indicators/natr.js +1 -1
- package/indicators/natr.js.map +1 -1
- package/indicators/natr.src.js +17 -3
- package/indicators/obv.js +1 -1
- package/indicators/obv.js.map +1 -1
- package/indicators/obv.src.js +11 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.js.map +1 -1
- package/indicators/pivot-points.src.js +32 -19
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.js.map +1 -1
- package/indicators/ppo.src.js +15 -5
- package/indicators/price-channel.js +1 -1
- package/indicators/price-channel.js.map +1 -1
- package/indicators/price-channel.src.js +14 -9
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.js.map +1 -1
- package/indicators/price-envelopes.src.js +26 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.js.map +1 -1
- package/indicators/psar.src.js +17 -4
- package/indicators/regressions.js +12 -11
- package/indicators/regressions.js.map +1 -1
- package/indicators/regressions.src.js +50 -15
- package/indicators/roc.js +1 -1
- package/indicators/roc.js.map +1 -1
- package/indicators/roc.src.js +16 -3
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.js.map +1 -1
- package/indicators/rsi.src.js +21 -3
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.js.map +1 -1
- package/indicators/slow-stochastic.src.js +26 -1
- package/indicators/stochastic.js +1 -1
- package/indicators/stochastic.js.map +1 -1
- package/indicators/stochastic.src.js +16 -1
- package/indicators/supertrend.js +7 -7
- package/indicators/supertrend.js.map +1 -1
- package/indicators/supertrend.src.js +18 -6
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.js.map +1 -1
- package/indicators/trendline.src.js +15 -5
- package/indicators/trix.js +1 -1
- package/indicators/trix.js.map +1 -1
- package/indicators/trix.src.js +26 -1
- package/indicators/volume-by-price.js +17 -17
- package/indicators/volume-by-price.js.map +1 -1
- package/indicators/volume-by-price.src.js +38 -10
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.js.map +1 -1
- package/indicators/vwap.src.js +12 -2
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.js.map +1 -1
- package/indicators/williams-r.src.js +11 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.js.map +1 -1
- package/indicators/wma.src.js +31 -3
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.js.map +1 -1
- package/indicators/zigzag.src.js +12 -2
- package/modules/accessibility.js +183 -182
- package/modules/accessibility.js.map +1 -1
- package/modules/accessibility.src.js +559 -554
- package/modules/annotations-advanced.d.ts +1 -1
- package/modules/annotations-advanced.js +193 -192
- package/modules/annotations-advanced.js.map +1 -1
- package/modules/annotations-advanced.src.d.ts +1 -1
- package/modules/annotations-advanced.src.js +9263 -8654
- package/modules/annotations.d.ts +1 -1
- package/modules/annotations.js +128 -126
- package/modules/annotations.js.map +1 -1
- package/modules/annotations.src.d.ts +1 -1
- package/modules/annotations.src.js +6699 -6063
- package/modules/arc-diagram.js +1 -1
- package/modules/arc-diagram.src.js +1 -1
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.d.ts +19 -0
- package/modules/boost-canvas.js +81 -16
- package/modules/boost-canvas.js.map +1 -1
- package/modules/boost-canvas.src.d.ts +19 -0
- package/modules/boost-canvas.src.js +3334 -50
- package/modules/boost.d.ts +8 -26
- package/modules/boost.js +84 -77
- package/modules/boost.js.map +1 -1
- package/modules/boost.src.d.ts +8 -26
- package/modules/boost.src.js +2423 -1888
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.js.map +1 -1
- package/modules/broken-axis.src.js +2 -2
- package/modules/bullet.js +1 -1
- package/modules/bullet.src.js +1 -1
- package/modules/coloraxis.js +1 -1
- package/modules/coloraxis.js.map +1 -1
- package/modules/coloraxis.src.js +5 -1
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +9 -9
- package/modules/cylinder.js.map +1 -1
- package/modules/cylinder.src.js +2 -2
- package/modules/data.js +1 -1
- package/modules/data.src.js +1 -1
- package/modules/datagrouping.d.ts +22 -0
- package/modules/datagrouping.js +4 -4
- package/modules/datagrouping.js.map +1 -1
- package/modules/datagrouping.src.d.ts +22 -0
- package/modules/datagrouping.src.js +66 -28
- package/modules/debugger.js +6 -5
- package/modules/debugger.js.map +1 -1
- package/modules/debugger.src.js +81 -40
- package/modules/dependency-wheel.js +12 -12
- package/modules/dependency-wheel.js.map +1 -1
- package/modules/dependency-wheel.src.js +41 -14
- package/modules/dotplot.js +1 -1
- package/modules/dotplot.src.js +1 -1
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +5 -5
- package/modules/draggable-points.js.map +1 -1
- package/modules/draggable-points.src.js +5 -4
- package/modules/drilldown.d.ts +0 -10
- package/modules/drilldown.js +29 -29
- package/modules/drilldown.js.map +1 -1
- package/modules/drilldown.src.d.ts +0 -10
- package/modules/drilldown.src.js +12 -9
- package/modules/dumbbell.js +1 -1
- package/modules/dumbbell.src.js +1 -1
- package/modules/export-data.js +25 -24
- package/modules/export-data.js.map +1 -1
- package/modules/export-data.src.js +607 -499
- package/modules/exporting.js +38 -38
- package/modules/exporting.js.map +1 -1
- package/modules/exporting.src.js +559 -507
- package/modules/full-screen.js +8 -8
- package/modules/full-screen.js.map +1 -1
- package/modules/full-screen.src.js +76 -26
- package/modules/funnel.js +1 -1
- package/modules/funnel.src.js +1 -1
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.js.map +1 -1
- package/modules/funnel3d.src.js +2 -2
- package/modules/gantt.js +217 -216
- package/modules/gantt.js.map +1 -1
- package/modules/gantt.src.js +1481 -1440
- package/modules/grid-axis.js +1 -1
- package/modules/grid-axis.src.js +1 -1
- package/modules/heatmap.js +1 -1
- package/modules/heatmap.js.map +1 -1
- package/modules/heatmap.src.js +10 -2
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +1 -1
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.src.js +1 -1
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.src.js +1 -1
- package/modules/item-series.js +1 -1
- package/modules/item-series.src.js +1 -1
- package/modules/lollipop.js +6 -6
- package/modules/lollipop.js.map +1 -1
- package/modules/lollipop.src.js +37 -22
- package/modules/map.d.ts +3 -3
- package/modules/map.js +171 -171
- package/modules/map.js.map +1 -1
- package/modules/map.src.d.ts +3 -3
- package/modules/map.src.js +442 -414
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.js.map +1 -1
- package/modules/marker-clusters.src.js +3 -1
- package/modules/networkgraph.js +55 -50
- package/modules/networkgraph.js.map +1 -1
- package/modules/networkgraph.src.js +2259 -1938
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/offline-exporting.js +2 -2
- package/modules/offline-exporting.src.js +2 -2
- package/modules/oldie-polyfills.js +1 -1
- package/modules/oldie-polyfills.src.js +1 -1
- package/modules/oldie.js +2 -2
- package/modules/oldie.src.js +2 -2
- package/modules/organization.js +15 -15
- package/modules/organization.js.map +1 -1
- package/modules/organization.src.js +10 -2
- package/modules/overlapping-datalabels.js +1 -1
- package/modules/overlapping-datalabels.src.js +1 -1
- package/modules/parallel-coordinates.js +11 -11
- package/modules/parallel-coordinates.js.map +1 -1
- package/modules/parallel-coordinates.src.js +13 -8
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +1 -1
- package/modules/pathfinder.src.js +1 -1
- package/modules/pattern-fill.js +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.js +1 -1
- package/modules/sankey.js.map +1 -1
- package/modules/sankey.src.js +14 -2
- package/modules/series-label.js +5 -5
- package/modules/series-label.js.map +1 -1
- package/modules/series-label.src.js +3 -3
- package/modules/series-on-point.js +1 -1
- package/modules/series-on-point.js.map +1 -1
- package/modules/series-on-point.src.js +6 -2
- package/modules/solid-gauge.js +1 -1
- package/modules/solid-gauge.src.js +2 -2
- package/modules/sonification.d.ts +2 -2
- package/modules/sonification.js +1 -1
- package/modules/sonification.src.d.ts +2 -2
- package/modules/sonification.src.js +2 -2
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.d.ts +1 -23
- package/modules/stock-tools.js +109 -179
- package/modules/stock-tools.js.map +1 -1
- package/modules/stock-tools.src.d.ts +1 -23
- package/modules/stock-tools.src.js +2605 -6335
- package/modules/stock.d.ts +8 -0
- package/modules/stock.js +105 -105
- package/modules/stock.js.map +1 -1
- package/modules/stock.src.d.ts +8 -0
- package/modules/stock.src.js +105 -45
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +72 -72
- package/modules/sunburst.js.map +1 -1
- package/modules/sunburst.src.js +38 -12
- package/modules/tilemap.js +1 -1
- package/modules/tilemap.src.js +1 -1
- package/modules/timeline.js +1 -1
- package/modules/timeline.js.map +1 -1
- package/modules/timeline.src.js +3 -1
- package/modules/treegrid.js +57 -57
- package/modules/treegrid.js.map +1 -1
- package/modules/treegrid.src.js +1022 -1014
- package/modules/treemap.js +1 -1
- package/modules/treemap.js.map +1 -1
- package/modules/treemap.src.js +8 -4
- 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 +2 -2
- package/modules/vector.js.map +1 -1
- package/modules/vector.src.js +3 -5
- package/modules/venn.js +1 -1
- package/modules/venn.src.js +5 -5
- package/modules/windbarb.js +1 -1
- package/modules/windbarb.src.js +1 -1
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.src.js +3 -3
- package/modules/xrange.js +17 -17
- package/modules/xrange.js.map +1 -1
- package/modules/xrange.src.js +411 -397
- package/package.json +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/brand-dark.js +1 -1
- package/themes/brand-dark.src.js +1 -1
- package/themes/brand-light.js +1 -1
- package/themes/brand-light.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/StackingAxis.js +0 -215
- package/es-modules/Core/Axis/TreeGridAxis.js +0 -720
- package/es-modules/Core/Axis/TreeGridTick.js +0 -317
- package/es-modules/Extensions/Annotations/AnnotationsDefaults.js +0 -0
- package/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +0 -179
- package/es-modules/Extensions/Annotations/Popup.js +0 -1123
- package/es-modules/Extensions/Boost/BoostAttach.js +0 -154
- package/es-modules/Extensions/Boost/BoostInit.js +0 -324
- package/es-modules/Extensions/Boost/BoostOptions.js +0 -245
- package/es-modules/Extensions/Boost/BoostOverrides.js +0 -386
- package/es-modules/Extensions/Boost/BoostUtils.js +0 -255
- package/es-modules/Extensions/Boost/WGLVBuffer.js +0 -153
- package/es-modules/Extensions/Stacking.js +0 -517
- package/es-modules/Series/Networkgraph/DraggableNodes.js +0 -132
- package/es-modules/Series/Networkgraph/Integrations.js +0 -348
- package/es-modules/Series/Networkgraph/Networkgraph.js +0 -1180
- package/es-modules/Series/XRange/XRangeComposition.js +0 -49
|
@@ -1,1180 +0,0 @@
|
|
|
1
|
-
/* *
|
|
2
|
-
*
|
|
3
|
-
* Networkgraph series
|
|
4
|
-
*
|
|
5
|
-
* (c) 2010-2021 Paweł Fus
|
|
6
|
-
*
|
|
7
|
-
* License: www.highcharts.com/license
|
|
8
|
-
*
|
|
9
|
-
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
|
-
*
|
|
11
|
-
* */
|
|
12
|
-
'use strict';
|
|
13
|
-
var __extends = (this && this.__extends) || (function () {
|
|
14
|
-
var extendStatics = function (d, b) {
|
|
15
|
-
extendStatics = Object.setPrototypeOf ||
|
|
16
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
17
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
18
|
-
return extendStatics(d, b);
|
|
19
|
-
};
|
|
20
|
-
return function (d, b) {
|
|
21
|
-
if (typeof b !== "function" && b !== null)
|
|
22
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
23
|
-
extendStatics(d, b);
|
|
24
|
-
function __() { this.constructor = d; }
|
|
25
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
26
|
-
};
|
|
27
|
-
})();
|
|
28
|
-
import H from '../../Core/Globals.js';
|
|
29
|
-
import NodesComposition from '../NodesComposition.js';
|
|
30
|
-
import Point from '../../Core/Series/Point.js';
|
|
31
|
-
import Series from '../../Core/Series/Series.js';
|
|
32
|
-
import SeriesRegistry from '../../Core/Series/SeriesRegistry.js';
|
|
33
|
-
var seriesTypes = SeriesRegistry.seriesTypes;
|
|
34
|
-
import U from '../../Core/Utilities.js';
|
|
35
|
-
var addEvent = U.addEvent, css = U.css, defined = U.defined, extend = U.extend, merge = U.merge, pick = U.pick;
|
|
36
|
-
import '../../Core/DefaultOptions.js';
|
|
37
|
-
import './Layouts.js';
|
|
38
|
-
import './DraggableNodes.js';
|
|
39
|
-
var dragNodesMixin = H.dragNodesMixin;
|
|
40
|
-
/**
|
|
41
|
-
* Formatter callback function.
|
|
42
|
-
*
|
|
43
|
-
* @callback Highcharts.SeriesNetworkgraphDataLabelsFormatterCallbackFunction
|
|
44
|
-
*
|
|
45
|
-
* @param {Highcharts.SeriesNetworkgraphDataLabelsFormatterContextObject|Highcharts.PointLabelObject} this
|
|
46
|
-
* Data label context to format
|
|
47
|
-
*
|
|
48
|
-
* @return {string}
|
|
49
|
-
* Formatted data label text
|
|
50
|
-
*/
|
|
51
|
-
/**
|
|
52
|
-
* Context for the formatter function.
|
|
53
|
-
*
|
|
54
|
-
* @interface Highcharts.SeriesNetworkgraphDataLabelsFormatterContextObject
|
|
55
|
-
* @extends Highcharts.PointLabelObject
|
|
56
|
-
* @since 7.0.0
|
|
57
|
-
*/ /**
|
|
58
|
-
* The color of the node.
|
|
59
|
-
* @name Highcharts.SeriesNetworkgraphDataLabelsFormatterContextObject#color
|
|
60
|
-
* @type {Highcharts.ColorString}
|
|
61
|
-
* @since 7.0.0
|
|
62
|
-
*/ /**
|
|
63
|
-
* The point (node) object. The node name, if defined, is available through
|
|
64
|
-
* `this.point.name`. Arrays: `this.point.linksFrom` and `this.point.linksTo`
|
|
65
|
-
* contains all nodes connected to this point.
|
|
66
|
-
* @name Highcharts.SeriesNetworkgraphDataLabelsFormatterContextObject#point
|
|
67
|
-
* @type {Highcharts.Point}
|
|
68
|
-
* @since 7.0.0
|
|
69
|
-
*/ /**
|
|
70
|
-
* The ID of the node.
|
|
71
|
-
* @name Highcharts.SeriesNetworkgraphDataLabelsFormatterContextObject#key
|
|
72
|
-
* @type {string}
|
|
73
|
-
* @since 7.0.0
|
|
74
|
-
*/
|
|
75
|
-
''; // detach doclets above
|
|
76
|
-
/* *
|
|
77
|
-
*
|
|
78
|
-
* Class
|
|
79
|
-
*
|
|
80
|
-
* */
|
|
81
|
-
/**
|
|
82
|
-
* @private
|
|
83
|
-
* @class
|
|
84
|
-
* @name Highcharts.seriesTypes.networkgraph
|
|
85
|
-
*
|
|
86
|
-
* @extends Highcharts.Series
|
|
87
|
-
*/
|
|
88
|
-
var NetworkgraphSeries = /** @class */ (function (_super) {
|
|
89
|
-
__extends(NetworkgraphSeries, _super);
|
|
90
|
-
function NetworkgraphSeries() {
|
|
91
|
-
/* *
|
|
92
|
-
*
|
|
93
|
-
* Static Properties
|
|
94
|
-
*
|
|
95
|
-
* */
|
|
96
|
-
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
97
|
-
/* *
|
|
98
|
-
*
|
|
99
|
-
* Properties
|
|
100
|
-
*
|
|
101
|
-
* */
|
|
102
|
-
_this.data = void 0;
|
|
103
|
-
_this.nodes = void 0;
|
|
104
|
-
_this.options = void 0;
|
|
105
|
-
_this.points = void 0;
|
|
106
|
-
return _this;
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* A networkgraph is a type of relationship chart, where connnections
|
|
110
|
-
* (links) attracts nodes (points) and other nodes repulse each other.
|
|
111
|
-
*
|
|
112
|
-
* @extends plotOptions.line
|
|
113
|
-
* @product highcharts
|
|
114
|
-
* @sample highcharts/demo/network-graph/
|
|
115
|
-
* Networkgraph
|
|
116
|
-
* @since 7.0.0
|
|
117
|
-
* @excluding boostThreshold, animation, animationLimit, connectEnds,
|
|
118
|
-
* colorAxis, colorKey, connectNulls, cropThreshold, dragDrop,
|
|
119
|
-
* getExtremesFromAll, label, linecap, negativeColor,
|
|
120
|
-
* pointInterval, pointIntervalUnit, pointPlacement,
|
|
121
|
-
* pointStart, softThreshold, stack, stacking, step,
|
|
122
|
-
* threshold, xAxis, yAxis, zoneAxis, dataSorting,
|
|
123
|
-
* boostBlending
|
|
124
|
-
* @requires modules/networkgraph
|
|
125
|
-
* @optionparent plotOptions.networkgraph
|
|
126
|
-
*/
|
|
127
|
-
NetworkgraphSeries.defaultOptions = merge(Series.defaultOptions, {
|
|
128
|
-
stickyTracking: false,
|
|
129
|
-
/**
|
|
130
|
-
* @ignore-option
|
|
131
|
-
* @private
|
|
132
|
-
*/
|
|
133
|
-
inactiveOtherPoints: true,
|
|
134
|
-
marker: {
|
|
135
|
-
enabled: true,
|
|
136
|
-
states: {
|
|
137
|
-
/**
|
|
138
|
-
* The opposite state of a hover for a single point node.
|
|
139
|
-
* Applied to all not connected nodes to the hovered one.
|
|
140
|
-
*
|
|
141
|
-
* @declare Highcharts.PointStatesInactiveOptionsObject
|
|
142
|
-
*/
|
|
143
|
-
inactive: {
|
|
144
|
-
/**
|
|
145
|
-
* Opacity of inactive markers.
|
|
146
|
-
*/
|
|
147
|
-
opacity: 0.3,
|
|
148
|
-
/**
|
|
149
|
-
* Animation when not hovering over the node.
|
|
150
|
-
*
|
|
151
|
-
* @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
|
|
152
|
-
*/
|
|
153
|
-
animation: {
|
|
154
|
-
/** @internal */
|
|
155
|
-
duration: 50
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
},
|
|
160
|
-
states: {
|
|
161
|
-
/**
|
|
162
|
-
* The opposite state of a hover for a single point link. Applied
|
|
163
|
-
* to all links that are not comming from the hovered node.
|
|
164
|
-
*
|
|
165
|
-
* @declare Highcharts.SeriesStatesInactiveOptionsObject
|
|
166
|
-
*/
|
|
167
|
-
inactive: {
|
|
168
|
-
/**
|
|
169
|
-
* Opacity of inactive links.
|
|
170
|
-
*/
|
|
171
|
-
linkOpacity: 0.3,
|
|
172
|
-
/**
|
|
173
|
-
* Animation when not hovering over the node.
|
|
174
|
-
*
|
|
175
|
-
* @type {boolean|Partial<Highcharts.AnimationOptionsObject>}
|
|
176
|
-
*/
|
|
177
|
-
animation: {
|
|
178
|
-
/** @internal */
|
|
179
|
-
duration: 50
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
},
|
|
183
|
-
/**
|
|
184
|
-
* @sample highcharts/series-networkgraph/link-datalabels
|
|
185
|
-
* Networkgraph with labels on links
|
|
186
|
-
* @sample highcharts/series-networkgraph/textpath-datalabels
|
|
187
|
-
* Networkgraph with labels around nodes
|
|
188
|
-
* @sample highcharts/series-networkgraph/link-datalabels
|
|
189
|
-
* Data labels moved into the nodes
|
|
190
|
-
* @sample highcharts/series-networkgraph/link-datalabels
|
|
191
|
-
* Data labels moved under the links
|
|
192
|
-
*
|
|
193
|
-
* @declare Highcharts.SeriesNetworkgraphDataLabelsOptionsObject
|
|
194
|
-
*
|
|
195
|
-
* @private
|
|
196
|
-
*/
|
|
197
|
-
dataLabels: {
|
|
198
|
-
/**
|
|
199
|
-
* The
|
|
200
|
-
* [format string](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting)
|
|
201
|
-
* specifying what to show for _node_ in the networkgraph. In v7.0
|
|
202
|
-
* defaults to `{key}`, since v7.1 defaults to `undefined` and
|
|
203
|
-
* `formatter` is used instead.
|
|
204
|
-
*
|
|
205
|
-
* @type {string}
|
|
206
|
-
* @since 7.0.0
|
|
207
|
-
* @apioption plotOptions.networkgraph.dataLabels.format
|
|
208
|
-
*/
|
|
209
|
-
// eslint-disable-next-line valid-jsdoc
|
|
210
|
-
/**
|
|
211
|
-
* Callback JavaScript function to format the data label for a node.
|
|
212
|
-
* Note that if a `format` is defined, the format takes precedence
|
|
213
|
-
* and the formatter is ignored.
|
|
214
|
-
*
|
|
215
|
-
* @type {Highcharts.SeriesNetworkgraphDataLabelsFormatterCallbackFunction}
|
|
216
|
-
* @since 7.0.0
|
|
217
|
-
*/
|
|
218
|
-
formatter: function () {
|
|
219
|
-
return this.key;
|
|
220
|
-
},
|
|
221
|
-
/**
|
|
222
|
-
* The
|
|
223
|
-
* [format string](https://www.highcharts.com/docs/chart-concepts/labels-and-string-formatting)
|
|
224
|
-
* specifying what to show for _links_ in the networkgraph.
|
|
225
|
-
* (Default: `undefined`)
|
|
226
|
-
*
|
|
227
|
-
* @type {string}
|
|
228
|
-
* @since 7.1.0
|
|
229
|
-
* @apioption plotOptions.networkgraph.dataLabels.linkFormat
|
|
230
|
-
*/
|
|
231
|
-
// eslint-disable-next-line valid-jsdoc
|
|
232
|
-
/**
|
|
233
|
-
* Callback to format data labels for _links_ in the sankey diagram.
|
|
234
|
-
* The `linkFormat` option takes precedence over the
|
|
235
|
-
* `linkFormatter`.
|
|
236
|
-
*
|
|
237
|
-
* @type {Highcharts.SeriesNetworkgraphDataLabelsFormatterCallbackFunction}
|
|
238
|
-
* @since 7.1.0
|
|
239
|
-
*/
|
|
240
|
-
linkFormatter: function () {
|
|
241
|
-
return (this.point.fromNode.name +
|
|
242
|
-
'<br>' +
|
|
243
|
-
this.point.toNode.name);
|
|
244
|
-
},
|
|
245
|
-
/**
|
|
246
|
-
* Options for a _link_ label text which should follow link
|
|
247
|
-
* connection. Border and background are disabled for a label that
|
|
248
|
-
* follows a path.
|
|
249
|
-
*
|
|
250
|
-
* **Note:** Only SVG-based renderer supports this option. Setting
|
|
251
|
-
* `useHTML` to true will disable this option.
|
|
252
|
-
*
|
|
253
|
-
* @extends plotOptions.networkgraph.dataLabels.textPath
|
|
254
|
-
* @since 7.1.0
|
|
255
|
-
*/
|
|
256
|
-
linkTextPath: {
|
|
257
|
-
enabled: true
|
|
258
|
-
},
|
|
259
|
-
textPath: {
|
|
260
|
-
enabled: false
|
|
261
|
-
},
|
|
262
|
-
style: {
|
|
263
|
-
transition: 'opacity 2000ms'
|
|
264
|
-
}
|
|
265
|
-
},
|
|
266
|
-
/**
|
|
267
|
-
* Link style options
|
|
268
|
-
* @private
|
|
269
|
-
*/
|
|
270
|
-
link: {
|
|
271
|
-
/**
|
|
272
|
-
* A name for the dash style to use for links.
|
|
273
|
-
*
|
|
274
|
-
* @type {string}
|
|
275
|
-
* @apioption plotOptions.networkgraph.link.dashStyle
|
|
276
|
-
*/
|
|
277
|
-
/**
|
|
278
|
-
* Color of the link between two nodes.
|
|
279
|
-
*/
|
|
280
|
-
color: 'rgba(100, 100, 100, 0.5)',
|
|
281
|
-
/**
|
|
282
|
-
* Width (px) of the link between two nodes.
|
|
283
|
-
*/
|
|
284
|
-
width: 1
|
|
285
|
-
},
|
|
286
|
-
/**
|
|
287
|
-
* Flag to determine if nodes are draggable or not.
|
|
288
|
-
* @private
|
|
289
|
-
*/
|
|
290
|
-
draggable: true,
|
|
291
|
-
layoutAlgorithm: {
|
|
292
|
-
/**
|
|
293
|
-
* Repulsive force applied on a node. Passed are two arguments:
|
|
294
|
-
* - `d` - which is current distance between two nodes
|
|
295
|
-
* - `k` - which is desired distance between two nodes
|
|
296
|
-
*
|
|
297
|
-
* In `verlet` integration, defaults to:
|
|
298
|
-
* `function (d, k) { return (k - d) / d * (k > d ? 1 : 0) }`
|
|
299
|
-
*
|
|
300
|
-
* @see [layoutAlgorithm.integration](#series.networkgraph.layoutAlgorithm.integration)
|
|
301
|
-
*
|
|
302
|
-
* @sample highcharts/series-networkgraph/forces/
|
|
303
|
-
* Custom forces with Euler integration
|
|
304
|
-
* @sample highcharts/series-networkgraph/cuboids/
|
|
305
|
-
* Custom forces with Verlet integration
|
|
306
|
-
*
|
|
307
|
-
* @type {Function}
|
|
308
|
-
* @default function (d, k) { return k * k / d; }
|
|
309
|
-
* @apioption plotOptions.networkgraph.layoutAlgorithm.repulsiveForce
|
|
310
|
-
*/
|
|
311
|
-
/**
|
|
312
|
-
* Attraction force applied on a node which is conected to another
|
|
313
|
-
* node by a link. Passed are two arguments:
|
|
314
|
-
* - `d` - which is current distance between two nodes
|
|
315
|
-
* - `k` - which is desired distance between two nodes
|
|
316
|
-
*
|
|
317
|
-
* In `verlet` integration, defaults to:
|
|
318
|
-
* `function (d, k) { return (k - d) / d; }`
|
|
319
|
-
*
|
|
320
|
-
* @see [layoutAlgorithm.integration](#series.networkgraph.layoutAlgorithm.integration)
|
|
321
|
-
*
|
|
322
|
-
* @sample highcharts/series-networkgraph/forces/
|
|
323
|
-
* Custom forces with Euler integration
|
|
324
|
-
* @sample highcharts/series-networkgraph/cuboids/
|
|
325
|
-
* Custom forces with Verlet integration
|
|
326
|
-
*
|
|
327
|
-
* @type {Function}
|
|
328
|
-
* @default function (d, k) { return k * k / d; }
|
|
329
|
-
* @apioption plotOptions.networkgraph.layoutAlgorithm.attractiveForce
|
|
330
|
-
*/
|
|
331
|
-
/**
|
|
332
|
-
* Ideal length (px) of the link between two nodes. When not
|
|
333
|
-
* defined, length is calculated as:
|
|
334
|
-
* `Math.pow(availableWidth * availableHeight / nodesLength, 0.4);`
|
|
335
|
-
*
|
|
336
|
-
* Note: Because of the algorithm specification, length of each link
|
|
337
|
-
* might be not exactly as specified.
|
|
338
|
-
*
|
|
339
|
-
* @sample highcharts/series-networkgraph/styled-links/
|
|
340
|
-
* Numerical values
|
|
341
|
-
*
|
|
342
|
-
* @type {number}
|
|
343
|
-
* @apioption plotOptions.networkgraph.layoutAlgorithm.linkLength
|
|
344
|
-
*/
|
|
345
|
-
/**
|
|
346
|
-
* Initial layout algorithm for positioning nodes. Can be one of
|
|
347
|
-
* built-in options ("circle", "random") or a function where
|
|
348
|
-
* positions should be set on each node (`this.nodes`) as
|
|
349
|
-
* `node.plotX` and `node.plotY`
|
|
350
|
-
*
|
|
351
|
-
* @sample highcharts/series-networkgraph/initial-positions/
|
|
352
|
-
* Initial positions with callback
|
|
353
|
-
*
|
|
354
|
-
* @type {"circle"|"random"|Function}
|
|
355
|
-
*/
|
|
356
|
-
initialPositions: 'circle',
|
|
357
|
-
/**
|
|
358
|
-
* When `initialPositions` are set to 'circle',
|
|
359
|
-
* `initialPositionRadius` is a distance from the center of circle,
|
|
360
|
-
* in which nodes are created.
|
|
361
|
-
*
|
|
362
|
-
* @type {number}
|
|
363
|
-
* @default 1
|
|
364
|
-
* @since 7.1.0
|
|
365
|
-
*/
|
|
366
|
-
initialPositionRadius: 1,
|
|
367
|
-
/**
|
|
368
|
-
* Experimental. Enables live simulation of the algorithm
|
|
369
|
-
* implementation. All nodes are animated as the forces applies on
|
|
370
|
-
* them.
|
|
371
|
-
*
|
|
372
|
-
* @sample highcharts/demo/network-graph/
|
|
373
|
-
* Live simulation enabled
|
|
374
|
-
*/
|
|
375
|
-
enableSimulation: false,
|
|
376
|
-
/**
|
|
377
|
-
* Barnes-Hut approximation only.
|
|
378
|
-
* Deteremines when distance between cell and node is small enough
|
|
379
|
-
* to caculate forces. Value of `theta` is compared directly with
|
|
380
|
-
* quotient `s / d`, where `s` is the size of the cell, and `d` is
|
|
381
|
-
* distance between center of cell's mass and currently compared
|
|
382
|
-
* node.
|
|
383
|
-
*
|
|
384
|
-
* @see [layoutAlgorithm.approximation](#series.networkgraph.layoutAlgorithm.approximation)
|
|
385
|
-
*
|
|
386
|
-
* @since 7.1.0
|
|
387
|
-
*/
|
|
388
|
-
theta: 0.5,
|
|
389
|
-
/**
|
|
390
|
-
* Verlet integration only.
|
|
391
|
-
* Max speed that node can get in one iteration. In terms of
|
|
392
|
-
* simulation, it's a maximum translation (in pixels) that node can
|
|
393
|
-
* move (in both, x and y, dimensions). While `friction` is applied
|
|
394
|
-
* on all nodes, max speed is applied only for nodes that move very
|
|
395
|
-
* fast, for example small or disconnected ones.
|
|
396
|
-
*
|
|
397
|
-
* @see [layoutAlgorithm.integration](#series.networkgraph.layoutAlgorithm.integration)
|
|
398
|
-
* @see [layoutAlgorithm.friction](#series.networkgraph.layoutAlgorithm.friction)
|
|
399
|
-
*
|
|
400
|
-
* @since 7.1.0
|
|
401
|
-
*/
|
|
402
|
-
maxSpeed: 10,
|
|
403
|
-
/**
|
|
404
|
-
* Approximation used to calculate repulsive forces affecting nodes.
|
|
405
|
-
* By default, when calculateing net force, nodes are compared
|
|
406
|
-
* against each other, which gives O(N^2) complexity. Using
|
|
407
|
-
* Barnes-Hut approximation, we decrease this to O(N log N), but the
|
|
408
|
-
* resulting graph will have different layout. Barnes-Hut
|
|
409
|
-
* approximation divides space into rectangles via quad tree, where
|
|
410
|
-
* forces exerted on nodes are calculated directly for nearby cells,
|
|
411
|
-
* and for all others, cells are treated as a separate node with
|
|
412
|
-
* center of mass.
|
|
413
|
-
*
|
|
414
|
-
* @see [layoutAlgorithm.theta](#series.networkgraph.layoutAlgorithm.theta)
|
|
415
|
-
*
|
|
416
|
-
* @sample highcharts/series-networkgraph/barnes-hut-approximation/
|
|
417
|
-
* A graph with Barnes-Hut approximation
|
|
418
|
-
*
|
|
419
|
-
* @type {string}
|
|
420
|
-
* @validvalue ["barnes-hut", "none"]
|
|
421
|
-
* @since 7.1.0
|
|
422
|
-
*/
|
|
423
|
-
approximation: 'none',
|
|
424
|
-
/**
|
|
425
|
-
* Type of the algorithm used when positioning nodes.
|
|
426
|
-
*
|
|
427
|
-
* @type {string}
|
|
428
|
-
* @validvalue ["reingold-fruchterman"]
|
|
429
|
-
*/
|
|
430
|
-
type: 'reingold-fruchterman',
|
|
431
|
-
/**
|
|
432
|
-
* Integration type. Available options are `'euler'` and `'verlet'`.
|
|
433
|
-
* Integration determines how forces are applied on particles. In
|
|
434
|
-
* Euler integration, force is applied direct as
|
|
435
|
-
* `newPosition += velocity;`.
|
|
436
|
-
* In Verlet integration, new position is based on a previous
|
|
437
|
-
* posittion without velocity:
|
|
438
|
-
* `newPosition += previousPosition - newPosition`.
|
|
439
|
-
*
|
|
440
|
-
* Note that different integrations give different results as forces
|
|
441
|
-
* are different.
|
|
442
|
-
*
|
|
443
|
-
* In Highcharts v7.0.x only `'euler'` integration was supported.
|
|
444
|
-
*
|
|
445
|
-
* @sample highcharts/series-networkgraph/integration-comparison/
|
|
446
|
-
* Comparison of Verlet and Euler integrations
|
|
447
|
-
*
|
|
448
|
-
* @type {string}
|
|
449
|
-
* @validvalue ["euler", "verlet"]
|
|
450
|
-
* @since 7.1.0
|
|
451
|
-
*/
|
|
452
|
-
integration: 'euler',
|
|
453
|
-
/**
|
|
454
|
-
* Max number of iterations before algorithm will stop. In general,
|
|
455
|
-
* algorithm should find positions sooner, but when rendering huge
|
|
456
|
-
* number of nodes, it is recommended to increase this value as
|
|
457
|
-
* finding perfect graph positions can require more time.
|
|
458
|
-
*/
|
|
459
|
-
maxIterations: 1000,
|
|
460
|
-
/**
|
|
461
|
-
* Gravitational const used in the barycenter force of the
|
|
462
|
-
* algorithm.
|
|
463
|
-
*
|
|
464
|
-
* @sample highcharts/series-networkgraph/forces/
|
|
465
|
-
* Custom forces with Euler integration
|
|
466
|
-
*/
|
|
467
|
-
gravitationalConstant: 0.0625,
|
|
468
|
-
/**
|
|
469
|
-
* Friction applied on forces to prevent nodes rushing to fast to
|
|
470
|
-
* the desired positions.
|
|
471
|
-
*/
|
|
472
|
-
friction: -0.981
|
|
473
|
-
},
|
|
474
|
-
showInLegend: false
|
|
475
|
-
});
|
|
476
|
-
return NetworkgraphSeries;
|
|
477
|
-
}(Series));
|
|
478
|
-
extend(NetworkgraphSeries.prototype, {
|
|
479
|
-
/**
|
|
480
|
-
* Array of internal forces. Each force should be later defined in
|
|
481
|
-
* integrations.js.
|
|
482
|
-
* @private
|
|
483
|
-
*/
|
|
484
|
-
forces: ['barycenter', 'repulsive', 'attractive'],
|
|
485
|
-
hasDraggableNodes: true,
|
|
486
|
-
drawGraph: void 0,
|
|
487
|
-
isCartesian: false,
|
|
488
|
-
requireSorting: false,
|
|
489
|
-
directTouch: true,
|
|
490
|
-
noSharedTooltip: true,
|
|
491
|
-
pointArrayMap: ['from', 'to'],
|
|
492
|
-
trackerGroups: ['group', 'markerGroup', 'dataLabelsGroup'],
|
|
493
|
-
drawTracker: seriesTypes.column.prototype.drawTracker,
|
|
494
|
-
// Animation is run in `series.simulation`.
|
|
495
|
-
animate: void 0,
|
|
496
|
-
buildKDTree: H.noop,
|
|
497
|
-
/**
|
|
498
|
-
* Create a single node that holds information on incoming and outgoing
|
|
499
|
-
* links.
|
|
500
|
-
* @private
|
|
501
|
-
*/
|
|
502
|
-
createNode: NodesComposition.createNode,
|
|
503
|
-
destroy: function () {
|
|
504
|
-
if (this.layout) {
|
|
505
|
-
this.layout.removeElementFromCollection(this, this.layout.series);
|
|
506
|
-
}
|
|
507
|
-
NodesComposition.destroy.call(this);
|
|
508
|
-
},
|
|
509
|
-
/* eslint-disable no-invalid-this, valid-jsdoc */
|
|
510
|
-
/**
|
|
511
|
-
* Extend init with base event, which should stop simulation during
|
|
512
|
-
* update. After data is updated, `chart.render` resumes the simulation.
|
|
513
|
-
* @private
|
|
514
|
-
*/
|
|
515
|
-
init: function () {
|
|
516
|
-
var _this = this;
|
|
517
|
-
Series.prototype.init.apply(this, arguments);
|
|
518
|
-
addEvent(this, 'updatedData', function () {
|
|
519
|
-
if (_this.layout) {
|
|
520
|
-
_this.layout.stop();
|
|
521
|
-
}
|
|
522
|
-
});
|
|
523
|
-
addEvent(this, 'afterUpdate', function () {
|
|
524
|
-
_this.nodes.forEach(function (node) {
|
|
525
|
-
if (node && node.series) {
|
|
526
|
-
node.resolveColor();
|
|
527
|
-
}
|
|
528
|
-
});
|
|
529
|
-
});
|
|
530
|
-
return this;
|
|
531
|
-
},
|
|
532
|
-
/**
|
|
533
|
-
* Extend generatePoints by adding the nodes, which are Point objects
|
|
534
|
-
* but pushed to the this.nodes array.
|
|
535
|
-
* @private
|
|
536
|
-
*/
|
|
537
|
-
generatePoints: function () {
|
|
538
|
-
var node, i;
|
|
539
|
-
NodesComposition.generatePoints.apply(this, arguments);
|
|
540
|
-
// In networkgraph, it's fine to define stanalone nodes, create
|
|
541
|
-
// them:
|
|
542
|
-
if (this.options.nodes) {
|
|
543
|
-
this.options.nodes.forEach(function (nodeOptions) {
|
|
544
|
-
if (!this.nodeLookup[nodeOptions.id]) {
|
|
545
|
-
this.nodeLookup[nodeOptions.id] =
|
|
546
|
-
this.createNode(nodeOptions.id);
|
|
547
|
-
}
|
|
548
|
-
}, this);
|
|
549
|
-
}
|
|
550
|
-
for (i = this.nodes.length - 1; i >= 0; i--) {
|
|
551
|
-
node = this.nodes[i];
|
|
552
|
-
node.degree = node.getDegree();
|
|
553
|
-
node.radius = pick(node.marker && node.marker.radius, this.options.marker && this.options.marker.radius, 0);
|
|
554
|
-
// If node exists, but it's not available in nodeLookup,
|
|
555
|
-
// then it's leftover from previous runs (e.g. setData)
|
|
556
|
-
if (!this.nodeLookup[node.id]) {
|
|
557
|
-
node.remove();
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
this.data.forEach(function (link) {
|
|
561
|
-
link.formatPrefix = 'link';
|
|
562
|
-
});
|
|
563
|
-
this.indexateNodes();
|
|
564
|
-
},
|
|
565
|
-
/**
|
|
566
|
-
* In networkgraph, series.points refers to links,
|
|
567
|
-
* but series.nodes refers to actual points.
|
|
568
|
-
* @private
|
|
569
|
-
*/
|
|
570
|
-
getPointsCollection: function () {
|
|
571
|
-
return this.nodes || [];
|
|
572
|
-
},
|
|
573
|
-
/**
|
|
574
|
-
* Set index for each node. Required for proper `node.update()`.
|
|
575
|
-
* Note that links are indexated out of the box in `generatePoints()`.
|
|
576
|
-
*
|
|
577
|
-
* @private
|
|
578
|
-
*/
|
|
579
|
-
indexateNodes: function () {
|
|
580
|
-
this.nodes.forEach(function (node, index) {
|
|
581
|
-
node.index = index;
|
|
582
|
-
});
|
|
583
|
-
},
|
|
584
|
-
/**
|
|
585
|
-
* Extend the default marker attribs by using a non-rounded X position,
|
|
586
|
-
* otherwise the nodes will jump from pixel to pixel which looks a bit
|
|
587
|
-
* jaggy when approaching equilibrium.
|
|
588
|
-
* @private
|
|
589
|
-
*/
|
|
590
|
-
markerAttribs: function (point, state) {
|
|
591
|
-
var attribs = Series.prototype.markerAttribs.call(this, point, state);
|
|
592
|
-
// series.render() is called before initial positions are set:
|
|
593
|
-
if (!defined(point.plotY)) {
|
|
594
|
-
attribs.y = 0;
|
|
595
|
-
}
|
|
596
|
-
attribs.x = (point.plotX || 0) - (attribs.width || 0) / 2;
|
|
597
|
-
return attribs;
|
|
598
|
-
},
|
|
599
|
-
/**
|
|
600
|
-
* Run pre-translation and register nodes&links to the deffered layout.
|
|
601
|
-
* @private
|
|
602
|
-
*/
|
|
603
|
-
translate: function () {
|
|
604
|
-
if (!this.processedXData) {
|
|
605
|
-
this.processData();
|
|
606
|
-
}
|
|
607
|
-
this.generatePoints();
|
|
608
|
-
this.deferLayout();
|
|
609
|
-
this.nodes.forEach(function (node) {
|
|
610
|
-
// Draw the links from this node
|
|
611
|
-
node.isInside = true;
|
|
612
|
-
node.linksFrom.forEach(function (point) {
|
|
613
|
-
point.shapeType = 'path';
|
|
614
|
-
// Pass test in drawPoints
|
|
615
|
-
point.y = 1;
|
|
616
|
-
});
|
|
617
|
-
});
|
|
618
|
-
},
|
|
619
|
-
/**
|
|
620
|
-
* Defer the layout.
|
|
621
|
-
* Each series first registers all nodes and links, then layout
|
|
622
|
-
* calculates all nodes positions and calls `series.render()` in every
|
|
623
|
-
* simulation step.
|
|
624
|
-
*
|
|
625
|
-
* Note:
|
|
626
|
-
* Animation is done through `requestAnimationFrame` directly, without
|
|
627
|
-
* `Highcharts.animate()` use.
|
|
628
|
-
* @private
|
|
629
|
-
*/
|
|
630
|
-
deferLayout: function () {
|
|
631
|
-
var layoutOptions = this.options.layoutAlgorithm, graphLayoutsStorage = this.chart.graphLayoutsStorage, graphLayoutsLookup = this.chart.graphLayoutsLookup, chartOptions = this.chart.options.chart, layout;
|
|
632
|
-
if (!this.visible) {
|
|
633
|
-
return;
|
|
634
|
-
}
|
|
635
|
-
if (!graphLayoutsStorage) {
|
|
636
|
-
this.chart.graphLayoutsStorage = graphLayoutsStorage = {};
|
|
637
|
-
this.chart.graphLayoutsLookup = graphLayoutsLookup = [];
|
|
638
|
-
}
|
|
639
|
-
layout = graphLayoutsStorage[layoutOptions.type];
|
|
640
|
-
if (!layout) {
|
|
641
|
-
layoutOptions.enableSimulation =
|
|
642
|
-
!defined(chartOptions.forExport) ?
|
|
643
|
-
layoutOptions.enableSimulation :
|
|
644
|
-
!chartOptions.forExport;
|
|
645
|
-
graphLayoutsStorage[layoutOptions.type] = layout =
|
|
646
|
-
new H.layouts[layoutOptions.type]();
|
|
647
|
-
layout.init(layoutOptions);
|
|
648
|
-
graphLayoutsLookup.splice(layout.index, 0, layout);
|
|
649
|
-
}
|
|
650
|
-
this.layout = layout;
|
|
651
|
-
layout.setArea(0, 0, this.chart.plotWidth, this.chart.plotHeight);
|
|
652
|
-
layout.addElementsToCollection([this], layout.series);
|
|
653
|
-
layout.addElementsToCollection(this.nodes, layout.nodes);
|
|
654
|
-
layout.addElementsToCollection(this.points, layout.links);
|
|
655
|
-
},
|
|
656
|
-
/**
|
|
657
|
-
* Extend the render function to also render this.nodes together with
|
|
658
|
-
* the points.
|
|
659
|
-
* @private
|
|
660
|
-
*/
|
|
661
|
-
render: function () {
|
|
662
|
-
var series = this, points = series.points, hoverPoint = series.chart.hoverPoint, dataLabels = [];
|
|
663
|
-
// Render markers:
|
|
664
|
-
series.points = series.nodes;
|
|
665
|
-
seriesTypes.line.prototype.render.call(this);
|
|
666
|
-
series.points = points;
|
|
667
|
-
points.forEach(function (point) {
|
|
668
|
-
if (point.fromNode && point.toNode) {
|
|
669
|
-
point.renderLink();
|
|
670
|
-
point.redrawLink();
|
|
671
|
-
}
|
|
672
|
-
});
|
|
673
|
-
if (hoverPoint && hoverPoint.series === series) {
|
|
674
|
-
series.redrawHalo(hoverPoint);
|
|
675
|
-
}
|
|
676
|
-
if (series.chart.hasRendered &&
|
|
677
|
-
!series.options.dataLabels.allowOverlap) {
|
|
678
|
-
series.nodes.concat(series.points).forEach(function (node) {
|
|
679
|
-
if (node.dataLabel) {
|
|
680
|
-
dataLabels.push(node.dataLabel);
|
|
681
|
-
}
|
|
682
|
-
});
|
|
683
|
-
series.chart.hideOverlappingLabels(dataLabels);
|
|
684
|
-
}
|
|
685
|
-
},
|
|
686
|
-
// Networkgraph has two separate collecions of nodes and lines, render
|
|
687
|
-
// dataLabels for both sets:
|
|
688
|
-
drawDataLabels: function () {
|
|
689
|
-
var textPath = this.options.dataLabels.textPath;
|
|
690
|
-
// Render node labels:
|
|
691
|
-
Series.prototype.drawDataLabels.apply(this, arguments);
|
|
692
|
-
// Render link labels:
|
|
693
|
-
this.points = this.data;
|
|
694
|
-
this.options.dataLabels.textPath =
|
|
695
|
-
this.options.dataLabels.linkTextPath;
|
|
696
|
-
Series.prototype.drawDataLabels.apply(this, arguments);
|
|
697
|
-
// Restore nodes
|
|
698
|
-
this.points = this.nodes;
|
|
699
|
-
this.options.dataLabels.textPath = textPath;
|
|
700
|
-
},
|
|
701
|
-
// Return the presentational attributes.
|
|
702
|
-
pointAttribs: function (point, state) {
|
|
703
|
-
// By default, only `selected` state is passed on
|
|
704
|
-
var pointState = state || point && point.state || 'normal', attribs = Series.prototype.pointAttribs.call(this, point, pointState), stateOptions = this.options.states[pointState];
|
|
705
|
-
if (point && !point.isNode) {
|
|
706
|
-
attribs = point.getLinkAttributes();
|
|
707
|
-
// For link, get prefixed names:
|
|
708
|
-
if (stateOptions) {
|
|
709
|
-
attribs = {
|
|
710
|
-
// TO DO: API?
|
|
711
|
-
stroke: stateOptions.linkColor || attribs.stroke,
|
|
712
|
-
dashstyle: (stateOptions.linkDashStyle || attribs.dashstyle),
|
|
713
|
-
opacity: pick(stateOptions.linkOpacity, attribs.opacity),
|
|
714
|
-
'stroke-width': stateOptions.linkColor ||
|
|
715
|
-
attribs['stroke-width']
|
|
716
|
-
};
|
|
717
|
-
}
|
|
718
|
-
}
|
|
719
|
-
return attribs;
|
|
720
|
-
},
|
|
721
|
-
// Draggable mode:
|
|
722
|
-
/**
|
|
723
|
-
* Redraw halo on mousemove during the drag&drop action.
|
|
724
|
-
* @private
|
|
725
|
-
* @param {Highcharts.Point} point The point that should show halo.
|
|
726
|
-
*/
|
|
727
|
-
redrawHalo: dragNodesMixin.redrawHalo,
|
|
728
|
-
/**
|
|
729
|
-
* Mouse down action, initializing drag&drop mode.
|
|
730
|
-
* @private
|
|
731
|
-
* @param {global.Event} event Browser event, before normalization.
|
|
732
|
-
* @param {Highcharts.Point} point The point that event occured.
|
|
733
|
-
*/
|
|
734
|
-
onMouseDown: dragNodesMixin.onMouseDown,
|
|
735
|
-
/**
|
|
736
|
-
* Mouse move action during drag&drop.
|
|
737
|
-
* @private
|
|
738
|
-
* @param {global.Event} event Browser event, before normalization.
|
|
739
|
-
* @param {Highcharts.Point} point The point that event occured.
|
|
740
|
-
*/
|
|
741
|
-
onMouseMove: dragNodesMixin.onMouseMove,
|
|
742
|
-
/**
|
|
743
|
-
* Mouse up action, finalizing drag&drop.
|
|
744
|
-
* @private
|
|
745
|
-
* @param {Highcharts.Point} point The point that event occured.
|
|
746
|
-
*/
|
|
747
|
-
onMouseUp: dragNodesMixin.onMouseUp,
|
|
748
|
-
/**
|
|
749
|
-
* When state should be passed down to all points, concat nodes and
|
|
750
|
-
* links and apply this state to all of them.
|
|
751
|
-
* @private
|
|
752
|
-
*/
|
|
753
|
-
setState: function (state, inherit) {
|
|
754
|
-
if (inherit) {
|
|
755
|
-
this.points = this.nodes.concat(this.data);
|
|
756
|
-
Series.prototype.setState.apply(this, arguments);
|
|
757
|
-
this.points = this.data;
|
|
758
|
-
}
|
|
759
|
-
else {
|
|
760
|
-
Series.prototype.setState.apply(this, arguments);
|
|
761
|
-
}
|
|
762
|
-
// If simulation is done, re-render points with new states:
|
|
763
|
-
if (!this.layout.simulation && !state) {
|
|
764
|
-
this.render();
|
|
765
|
-
}
|
|
766
|
-
}
|
|
767
|
-
});
|
|
768
|
-
/* *
|
|
769
|
-
*
|
|
770
|
-
* Class
|
|
771
|
-
*
|
|
772
|
-
* */
|
|
773
|
-
var NetworkgraphPoint = /** @class */ (function (_super) {
|
|
774
|
-
__extends(NetworkgraphPoint, _super);
|
|
775
|
-
function NetworkgraphPoint() {
|
|
776
|
-
/* *
|
|
777
|
-
*
|
|
778
|
-
* Properties
|
|
779
|
-
*
|
|
780
|
-
* */
|
|
781
|
-
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
782
|
-
_this.degree = void 0;
|
|
783
|
-
_this.linksFrom = void 0;
|
|
784
|
-
_this.linksTo = void 0;
|
|
785
|
-
_this.options = void 0;
|
|
786
|
-
_this.radius = void 0;
|
|
787
|
-
_this.series = void 0;
|
|
788
|
-
_this.toNode = void 0;
|
|
789
|
-
return _this;
|
|
790
|
-
}
|
|
791
|
-
return NetworkgraphPoint;
|
|
792
|
-
}(Series.prototype.pointClass));
|
|
793
|
-
extend(NetworkgraphPoint.prototype, {
|
|
794
|
-
setState: NodesComposition.setNodeState,
|
|
795
|
-
/**
|
|
796
|
-
* Basic `point.init()` and additional styles applied when
|
|
797
|
-
* `series.draggable` is enabled.
|
|
798
|
-
* @private
|
|
799
|
-
*/
|
|
800
|
-
init: function () {
|
|
801
|
-
Point.prototype.init.apply(this, arguments);
|
|
802
|
-
if (this.series.options.draggable &&
|
|
803
|
-
!this.series.chart.styledMode) {
|
|
804
|
-
addEvent(this, 'mouseOver', function () {
|
|
805
|
-
css(this.series.chart.container, { cursor: 'move' });
|
|
806
|
-
});
|
|
807
|
-
addEvent(this, 'mouseOut', function () {
|
|
808
|
-
css(this.series.chart.container, { cursor: 'default' });
|
|
809
|
-
});
|
|
810
|
-
}
|
|
811
|
-
return this;
|
|
812
|
-
},
|
|
813
|
-
/**
|
|
814
|
-
* Return degree of a node. If node has no connections, it still has
|
|
815
|
-
* deg=1.
|
|
816
|
-
* @private
|
|
817
|
-
*/
|
|
818
|
-
getDegree: function () {
|
|
819
|
-
var deg = this.isNode ?
|
|
820
|
-
this.linksFrom.length + this.linksTo.length :
|
|
821
|
-
0;
|
|
822
|
-
return deg === 0 ? 1 : deg;
|
|
823
|
-
},
|
|
824
|
-
// Links:
|
|
825
|
-
/**
|
|
826
|
-
* Get presentational attributes of link connecting two nodes.
|
|
827
|
-
* @private
|
|
828
|
-
*/
|
|
829
|
-
getLinkAttributes: function () {
|
|
830
|
-
var linkOptions = this.series.options.link, pointOptions = this.options;
|
|
831
|
-
return {
|
|
832
|
-
'stroke-width': pick(pointOptions.width, linkOptions.width),
|
|
833
|
-
stroke: (pointOptions.color || linkOptions.color),
|
|
834
|
-
dashstyle: (pointOptions.dashStyle || linkOptions.dashStyle),
|
|
835
|
-
opacity: pick(pointOptions.opacity, linkOptions.opacity, 1)
|
|
836
|
-
};
|
|
837
|
-
},
|
|
838
|
-
/**
|
|
839
|
-
* Render link and add it to the DOM.
|
|
840
|
-
* @private
|
|
841
|
-
*/
|
|
842
|
-
renderLink: function () {
|
|
843
|
-
var attribs;
|
|
844
|
-
if (!this.graphic) {
|
|
845
|
-
this.graphic = this.series.chart.renderer
|
|
846
|
-
.path(this.getLinkPath())
|
|
847
|
-
.addClass(this.getClassName(), true)
|
|
848
|
-
.add(this.series.group);
|
|
849
|
-
if (!this.series.chart.styledMode) {
|
|
850
|
-
attribs = this.series.pointAttribs(this);
|
|
851
|
-
this.graphic.attr(attribs);
|
|
852
|
-
(this.dataLabels || []).forEach(function (label) {
|
|
853
|
-
if (label) {
|
|
854
|
-
label.attr({
|
|
855
|
-
opacity: attribs.opacity
|
|
856
|
-
});
|
|
857
|
-
}
|
|
858
|
-
});
|
|
859
|
-
}
|
|
860
|
-
}
|
|
861
|
-
},
|
|
862
|
-
/**
|
|
863
|
-
* Redraw link's path.
|
|
864
|
-
* @private
|
|
865
|
-
*/
|
|
866
|
-
redrawLink: function () {
|
|
867
|
-
var path = this.getLinkPath(), attribs;
|
|
868
|
-
if (this.graphic) {
|
|
869
|
-
this.shapeArgs = {
|
|
870
|
-
d: path
|
|
871
|
-
};
|
|
872
|
-
if (!this.series.chart.styledMode) {
|
|
873
|
-
attribs = this.series.pointAttribs(this);
|
|
874
|
-
this.graphic.attr(attribs);
|
|
875
|
-
(this.dataLabels || []).forEach(function (label) {
|
|
876
|
-
if (label) {
|
|
877
|
-
label.attr({
|
|
878
|
-
opacity: attribs.opacity
|
|
879
|
-
});
|
|
880
|
-
}
|
|
881
|
-
});
|
|
882
|
-
}
|
|
883
|
-
this.graphic.animate(this.shapeArgs);
|
|
884
|
-
// Required for dataLabels
|
|
885
|
-
var start = path[0];
|
|
886
|
-
var end = path[1];
|
|
887
|
-
if (start[0] === 'M' && end[0] === 'L') {
|
|
888
|
-
this.plotX = (start[1] + end[1]) / 2;
|
|
889
|
-
this.plotY = (start[2] + end[2]) / 2;
|
|
890
|
-
}
|
|
891
|
-
}
|
|
892
|
-
},
|
|
893
|
-
/**
|
|
894
|
-
* Get mass fraction applied on two nodes connected to each other. By
|
|
895
|
-
* default, when mass is equal to `1`, mass fraction for both nodes
|
|
896
|
-
* equal to 0.5.
|
|
897
|
-
* @private
|
|
898
|
-
* @return {Highcharts.Dictionary<number>}
|
|
899
|
-
* For example `{ fromNode: 0.5, toNode: 0.5 }`
|
|
900
|
-
*/
|
|
901
|
-
getMass: function () {
|
|
902
|
-
var m1 = this.fromNode.mass, m2 = this.toNode.mass, sum = m1 + m2;
|
|
903
|
-
return {
|
|
904
|
-
fromNode: 1 - m1 / sum,
|
|
905
|
-
toNode: 1 - m2 / sum
|
|
906
|
-
};
|
|
907
|
-
},
|
|
908
|
-
/**
|
|
909
|
-
* Get link path connecting two nodes.
|
|
910
|
-
* @private
|
|
911
|
-
* @return {Array<Highcharts.SVGPathArray>}
|
|
912
|
-
* Path: `['M', x, y, 'L', x, y]`
|
|
913
|
-
*/
|
|
914
|
-
getLinkPath: function () {
|
|
915
|
-
var left = this.fromNode, right = this.toNode;
|
|
916
|
-
// Start always from left to the right node, to prevent rendering
|
|
917
|
-
// labels upside down
|
|
918
|
-
if (left.plotX > right.plotX) {
|
|
919
|
-
left = this.toNode;
|
|
920
|
-
right = this.fromNode;
|
|
921
|
-
}
|
|
922
|
-
return [
|
|
923
|
-
['M', left.plotX || 0, left.plotY || 0],
|
|
924
|
-
['L', right.plotX || 0, right.plotY || 0]
|
|
925
|
-
];
|
|
926
|
-
/*
|
|
927
|
-
IDEA: different link shapes?
|
|
928
|
-
return [
|
|
929
|
-
'M',
|
|
930
|
-
from.plotX,
|
|
931
|
-
from.plotY,
|
|
932
|
-
'Q',
|
|
933
|
-
(to.plotX + from.plotX) / 2,
|
|
934
|
-
(to.plotY + from.plotY) / 2 + 15,
|
|
935
|
-
to.plotX,
|
|
936
|
-
to.plotY
|
|
937
|
-
];*/
|
|
938
|
-
},
|
|
939
|
-
isValid: function () {
|
|
940
|
-
return !this.isNode || defined(this.id);
|
|
941
|
-
},
|
|
942
|
-
/**
|
|
943
|
-
* Common method for removing points and nodes in networkgraph. To
|
|
944
|
-
* remove `link`, use `series.data[index].remove()`. To remove `node`
|
|
945
|
-
* with all connections, use `series.nodes[index].remove()`.
|
|
946
|
-
* @private
|
|
947
|
-
* @param {boolean} [redraw=true]
|
|
948
|
-
* Whether to redraw the chart or wait for an explicit call. When
|
|
949
|
-
* doing more operations on the chart, for example running
|
|
950
|
-
* `point.remove()` in a loop, it is best practice to set
|
|
951
|
-
* `redraw` to false and call `chart.redraw()` after.
|
|
952
|
-
* @param {boolean|Partial<Highcharts.AnimationOptionsObject>} [animation=false]
|
|
953
|
-
* Whether to apply animation, and optionally animation
|
|
954
|
-
* configuration.
|
|
955
|
-
*/
|
|
956
|
-
remove: function (redraw, animation) {
|
|
957
|
-
var point = this, series = point.series, nodesOptions = series.options.nodes || [], index, i = nodesOptions.length;
|
|
958
|
-
// For nodes, remove all connected links:
|
|
959
|
-
if (point.isNode) {
|
|
960
|
-
// Temporary disable series.points array, because
|
|
961
|
-
// Series.removePoint() modifies it
|
|
962
|
-
series.points = [];
|
|
963
|
-
// Remove link from all nodes collections:
|
|
964
|
-
[]
|
|
965
|
-
.concat(point.linksFrom)
|
|
966
|
-
.concat(point.linksTo)
|
|
967
|
-
.forEach(function (linkFromTo) {
|
|
968
|
-
// Incoming links
|
|
969
|
-
index = linkFromTo.fromNode.linksFrom.indexOf(linkFromTo);
|
|
970
|
-
if (index > -1) {
|
|
971
|
-
linkFromTo.fromNode.linksFrom.splice(index, 1);
|
|
972
|
-
}
|
|
973
|
-
// Outcoming links
|
|
974
|
-
index = linkFromTo.toNode.linksTo.indexOf(linkFromTo);
|
|
975
|
-
if (index > -1) {
|
|
976
|
-
linkFromTo.toNode.linksTo.splice(index, 1);
|
|
977
|
-
}
|
|
978
|
-
// Remove link from data/points collections
|
|
979
|
-
Series.prototype.removePoint.call(series, series.data.indexOf(linkFromTo), false, false);
|
|
980
|
-
});
|
|
981
|
-
// Restore points array, after links are removed
|
|
982
|
-
series.points = series.data.slice();
|
|
983
|
-
// Proceed with removing node. It's similar to
|
|
984
|
-
// Series.removePoint() method, but doesn't modify other arrays
|
|
985
|
-
series.nodes.splice(series.nodes.indexOf(point), 1);
|
|
986
|
-
// Remove node options from config
|
|
987
|
-
while (i--) {
|
|
988
|
-
if (nodesOptions[i].id === point.options.id) {
|
|
989
|
-
series.options.nodes.splice(i, 1);
|
|
990
|
-
break;
|
|
991
|
-
}
|
|
992
|
-
}
|
|
993
|
-
if (point) {
|
|
994
|
-
point.destroy();
|
|
995
|
-
}
|
|
996
|
-
// Run redraw if requested
|
|
997
|
-
series.isDirty = true;
|
|
998
|
-
series.isDirtyData = true;
|
|
999
|
-
if (redraw) {
|
|
1000
|
-
series.chart.redraw(redraw);
|
|
1001
|
-
}
|
|
1002
|
-
}
|
|
1003
|
-
else {
|
|
1004
|
-
series.removePoint(series.data.indexOf(point), redraw, animation);
|
|
1005
|
-
}
|
|
1006
|
-
},
|
|
1007
|
-
/**
|
|
1008
|
-
* Destroy point. If it's a node, remove all links coming out of this
|
|
1009
|
-
* node. Then remove point from the layout.
|
|
1010
|
-
* @private
|
|
1011
|
-
*/
|
|
1012
|
-
destroy: function () {
|
|
1013
|
-
if (this.isNode) {
|
|
1014
|
-
this.linksFrom.concat(this.linksTo).forEach(function (link) {
|
|
1015
|
-
// Removing multiple nodes at the same time
|
|
1016
|
-
// will try to remove link between nodes twice
|
|
1017
|
-
if (link.destroyElements) {
|
|
1018
|
-
link.destroyElements();
|
|
1019
|
-
}
|
|
1020
|
-
});
|
|
1021
|
-
}
|
|
1022
|
-
this.series.layout.removeElementFromCollection(this, this.series.layout[this.isNode ? 'nodes' : 'links']);
|
|
1023
|
-
return Point.prototype.destroy.apply(this, arguments);
|
|
1024
|
-
}
|
|
1025
|
-
});
|
|
1026
|
-
NetworkgraphSeries.prototype.pointClass = NetworkgraphPoint;
|
|
1027
|
-
SeriesRegistry.registerSeriesType('networkgraph', NetworkgraphSeries);
|
|
1028
|
-
/* *
|
|
1029
|
-
*
|
|
1030
|
-
* Default Export
|
|
1031
|
-
*
|
|
1032
|
-
* */
|
|
1033
|
-
export default NetworkgraphSeries;
|
|
1034
|
-
/* *
|
|
1035
|
-
*
|
|
1036
|
-
* API Options
|
|
1037
|
-
*
|
|
1038
|
-
* */
|
|
1039
|
-
/**
|
|
1040
|
-
* A `networkgraph` series. If the [type](#series.networkgraph.type) option is
|
|
1041
|
-
* not specified, it is inherited from [chart.type](#chart.type).
|
|
1042
|
-
*
|
|
1043
|
-
* @extends series,plotOptions.networkgraph
|
|
1044
|
-
* @excluding boostThreshold, animation, animationLimit, connectEnds,
|
|
1045
|
-
* connectNulls, cropThreshold, dragDrop, getExtremesFromAll, label,
|
|
1046
|
-
* linecap, negativeColor, pointInterval, pointIntervalUnit,
|
|
1047
|
-
* pointPlacement, pointStart, softThreshold, stack, stacking,
|
|
1048
|
-
* step, threshold, xAxis, yAxis, zoneAxis, dataSorting,
|
|
1049
|
-
* boostBlending
|
|
1050
|
-
* @product highcharts
|
|
1051
|
-
* @requires modules/networkgraph
|
|
1052
|
-
* @apioption series.networkgraph
|
|
1053
|
-
*/
|
|
1054
|
-
/**
|
|
1055
|
-
* An array of data points for the series. For the `networkgraph` series type,
|
|
1056
|
-
* points can be given in the following way:
|
|
1057
|
-
*
|
|
1058
|
-
* An array of objects with named values. The following snippet shows only a
|
|
1059
|
-
* few settings, see the complete options set below. If the total number of
|
|
1060
|
-
* data points exceeds the series'
|
|
1061
|
-
* [turboThreshold](#series.area.turboThreshold), this option is not available.
|
|
1062
|
-
*
|
|
1063
|
-
* ```js
|
|
1064
|
-
* data: [{
|
|
1065
|
-
* from: 'Category1',
|
|
1066
|
-
* to: 'Category2'
|
|
1067
|
-
* }, {
|
|
1068
|
-
* from: 'Category1',
|
|
1069
|
-
* to: 'Category3'
|
|
1070
|
-
* }]
|
|
1071
|
-
* ```
|
|
1072
|
-
*
|
|
1073
|
-
* @type {Array<Object|Array|number>}
|
|
1074
|
-
* @extends series.line.data
|
|
1075
|
-
* @excluding drilldown,marker,x,y,draDrop
|
|
1076
|
-
* @sample {highcharts} highcharts/chart/reflow-true/
|
|
1077
|
-
* Numerical values
|
|
1078
|
-
* @sample {highcharts} highcharts/series/data-array-of-arrays/
|
|
1079
|
-
* Arrays of numeric x and y
|
|
1080
|
-
* @sample {highcharts} highcharts/series/data-array-of-arrays-datetime/
|
|
1081
|
-
* Arrays of datetime x and y
|
|
1082
|
-
* @sample {highcharts} highcharts/series/data-array-of-name-value/
|
|
1083
|
-
* Arrays of point.name and y
|
|
1084
|
-
* @sample {highcharts} highcharts/series/data-array-of-objects/
|
|
1085
|
-
* Config objects
|
|
1086
|
-
* @product highcharts
|
|
1087
|
-
* @apioption series.networkgraph.data
|
|
1088
|
-
*/
|
|
1089
|
-
/**
|
|
1090
|
-
* @type {Highcharts.SeriesNetworkgraphDataLabelsOptionsObject|Array<Highcharts.SeriesNetworkgraphDataLabelsOptionsObject>}
|
|
1091
|
-
* @product highcharts
|
|
1092
|
-
* @apioption series.networkgraph.data.dataLabels
|
|
1093
|
-
*/
|
|
1094
|
-
/**
|
|
1095
|
-
* The node that the link runs from.
|
|
1096
|
-
*
|
|
1097
|
-
* @type {string}
|
|
1098
|
-
* @product highcharts
|
|
1099
|
-
* @apioption series.networkgraph.data.from
|
|
1100
|
-
*/
|
|
1101
|
-
/**
|
|
1102
|
-
* The node that the link runs to.
|
|
1103
|
-
*
|
|
1104
|
-
* @type {string}
|
|
1105
|
-
* @product highcharts
|
|
1106
|
-
* @apioption series.networkgraph.data.to
|
|
1107
|
-
*/
|
|
1108
|
-
/**
|
|
1109
|
-
* A collection of options for the individual nodes. The nodes in a
|
|
1110
|
-
* networkgraph diagram are auto-generated instances of `Highcharts.Point`,
|
|
1111
|
-
* but options can be applied here and linked by the `id`.
|
|
1112
|
-
*
|
|
1113
|
-
* @sample highcharts/series-networkgraph/data-options/
|
|
1114
|
-
* Networkgraph diagram with node options
|
|
1115
|
-
*
|
|
1116
|
-
* @type {Array<*>}
|
|
1117
|
-
* @product highcharts
|
|
1118
|
-
* @apioption series.networkgraph.nodes
|
|
1119
|
-
*/
|
|
1120
|
-
/**
|
|
1121
|
-
* The id of the auto-generated node, refering to the `from` or `to` setting of
|
|
1122
|
-
* the link.
|
|
1123
|
-
*
|
|
1124
|
-
* @type {string}
|
|
1125
|
-
* @product highcharts
|
|
1126
|
-
* @apioption series.networkgraph.nodes.id
|
|
1127
|
-
*/
|
|
1128
|
-
/**
|
|
1129
|
-
* The color of the auto generated node.
|
|
1130
|
-
*
|
|
1131
|
-
* @type {Highcharts.ColorString}
|
|
1132
|
-
* @product highcharts
|
|
1133
|
-
* @apioption series.networkgraph.nodes.color
|
|
1134
|
-
*/
|
|
1135
|
-
/**
|
|
1136
|
-
* The color index of the auto generated node, especially for use in styled
|
|
1137
|
-
* mode.
|
|
1138
|
-
*
|
|
1139
|
-
* @type {number}
|
|
1140
|
-
* @product highcharts
|
|
1141
|
-
* @apioption series.networkgraph.nodes.colorIndex
|
|
1142
|
-
*/
|
|
1143
|
-
/**
|
|
1144
|
-
* The name to display for the node in data labels and tooltips. Use this when
|
|
1145
|
-
* the name is different from the `id`. Where the id must be unique for each
|
|
1146
|
-
* node, this is not necessary for the name.
|
|
1147
|
-
*
|
|
1148
|
-
* @sample highcharts/series-networkgraph/data-options/
|
|
1149
|
-
* Networkgraph diagram with node options
|
|
1150
|
-
*
|
|
1151
|
-
* @type {string}
|
|
1152
|
-
* @product highcharts
|
|
1153
|
-
* @apioption series.networkgraph.nodes.name
|
|
1154
|
-
*/
|
|
1155
|
-
/**
|
|
1156
|
-
* Mass of the node. By default, each node has mass equal to it's marker radius
|
|
1157
|
-
* . Mass is used to determine how two connected nodes should affect
|
|
1158
|
-
* each other:
|
|
1159
|
-
*
|
|
1160
|
-
* Attractive force is multiplied by the ratio of two connected
|
|
1161
|
-
* nodes; if a big node has weights twice as the small one, then the small one
|
|
1162
|
-
* will move towards the big one twice faster than the big one to the small one
|
|
1163
|
-
* .
|
|
1164
|
-
*
|
|
1165
|
-
* @sample highcharts/series-networkgraph/ragdoll/
|
|
1166
|
-
* Mass determined by marker.radius
|
|
1167
|
-
*
|
|
1168
|
-
* @type {number}
|
|
1169
|
-
* @product highcharts
|
|
1170
|
-
* @apioption series.networkgraph.nodes.mass
|
|
1171
|
-
*/
|
|
1172
|
-
/**
|
|
1173
|
-
* Individual data label for each node. The options are the same as
|
|
1174
|
-
* the ones for [series.networkgraph.dataLabels](#series.networkgraph.dataLabels).
|
|
1175
|
-
*
|
|
1176
|
-
* @type {Highcharts.SeriesNetworkgraphDataLabelsOptionsObject|Array<Highcharts.SeriesNetworkgraphDataLabelsOptionsObject>}
|
|
1177
|
-
*
|
|
1178
|
-
* @apioption series.networkgraph.nodes.dataLabels
|
|
1179
|
-
*/
|
|
1180
|
-
''; // adds doclets above to transpiled file
|