highcharts 13.0.1 → 13.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +2 -3
- package/es-modules/Accessibility/A11yI18n.js +4 -4
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +6 -4
- package/es-modules/Accessibility/Components/LegendComponent.js +2 -2
- package/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +13 -10
- package/es-modules/Accessibility/Components/ZoomComponent.js +2 -2
- package/es-modules/Accessibility/FocusBorder.js +2 -2
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +1 -2
- package/es-modules/Core/Animation/AnimationUtilities.js +3 -2
- package/es-modules/Core/Axis/Axis.js +48 -57
- package/es-modules/Core/Axis/Axis3DComposition.js +8 -6
- package/es-modules/Core/Axis/BrokenAxis.js +6 -5
- package/es-modules/Core/Axis/Color/ColorAxis.js +17 -10
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +2 -2
- package/es-modules/Core/Axis/GridAxis.js +4 -4
- package/es-modules/Core/Axis/LogarithmicAxis.js +5 -3
- package/es-modules/Core/Axis/NavigatorAxisComposition.js +2 -2
- package/es-modules/Core/Axis/OrdinalAxis.js +9 -7
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -2
- package/es-modules/Core/Axis/RadialAxis.js +15 -9
- package/es-modules/Core/Axis/ScrollbarAxis.js +3 -3
- package/es-modules/Core/Axis/Stacking/StackItem.js +5 -5
- package/es-modules/Core/Axis/Stacking/StackingAxis.js +4 -4
- package/es-modules/Core/Axis/Tick.js +10 -11
- package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +3 -3
- package/es-modules/Core/Chart/Chart.js +14 -14
- package/es-modules/Core/Chart/Chart3D.js +3 -3
- package/es-modules/Core/Chart/ChartDefaults.js +23 -0
- package/es-modules/Core/Chart/MapChart.js +7 -5
- package/es-modules/Core/Chart/StockChart.js +15 -11
- package/es-modules/Core/Color/Color.js +3 -1
- package/es-modules/Core/Defaults.js +35 -0
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/Legend/Legend.js +16 -12
- package/es-modules/Core/Legend/LegendSymbol.js +2 -2
- package/es-modules/Core/MSPointer.js +2 -2
- package/es-modules/Core/Math3D.js +6 -7
- package/es-modules/Core/Pointer.js +9 -9
- package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGElement.js +11 -9
- package/es-modules/Core/Renderer/SVG/SVGElement3D.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +5 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +5 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +11 -9
- package/es-modules/Core/Renderer/SVG/Symbols.js +6 -5
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
- package/es-modules/Core/Responsive.js +7 -5
- package/es-modules/Core/Series/DataLabel.js +8 -6
- package/es-modules/Core/Series/OverlappingDataLabels.js +5 -2
- package/es-modules/Core/Series/Point.js +3 -3
- package/es-modules/Core/Series/Series.js +37 -21
- package/es-modules/Core/Series/Series3D.js +2 -2
- package/es-modules/Core/Templating.js +2 -2
- package/es-modules/Core/Tooltip.js +11 -7
- package/es-modules/Core/Utilities.js +4 -3
- package/es-modules/Data/Connectors/DataConnector.js +2 -2
- package/es-modules/Data/Connectors/GoogleSheetsConnector.js +2 -2
- package/es-modules/Data/DataTable.js +17 -0
- package/es-modules/Extensions/Annotations/Annotation.js +4 -4
- package/es-modules/Extensions/Annotations/AnnotationChart.js +2 -2
- package/es-modules/Extensions/Annotations/ControlPoint.js +2 -2
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +2 -2
- package/es-modules/Extensions/Annotations/EventEmitter.js +4 -4
- package/es-modules/Extensions/Annotations/NavigationBindings.js +6 -3
- package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +2 -2
- package/es-modules/Extensions/Annotations/Popup/Popup.js +3 -2
- package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +4 -6
- package/es-modules/Extensions/Annotations/Types/Measure.js +3 -3
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +3 -3
- package/es-modules/Extensions/Boost/BoostChart.js +11 -4
- package/es-modules/Extensions/Boost/BoostSeries.js +8 -9
- package/es-modules/Extensions/Boost/WGLRenderer.js +9 -6
- package/es-modules/Extensions/Boost/WGLShader.js +3 -3
- package/es-modules/Extensions/BoostCanvas.js +2 -2
- package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +5 -4
- package/es-modules/Extensions/DataGrouping/DataGrouping.js +2 -2
- package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +4 -3
- package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +2 -2
- package/es-modules/Extensions/DraggablePoints/DragDropProps.js +2 -3
- package/es-modules/Extensions/ExportData/ExportData.js +17 -16
- package/es-modules/Extensions/Exporting/Exporting.js +7 -7
- package/es-modules/Extensions/MouseWheelZoom/MouseWheelZoom.js +2 -2
- package/es-modules/Extensions/Pane/PaneComposition.js +2 -2
- package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +2 -2
- package/es-modules/Extensions/PatternFill.js +7 -5
- package/es-modules/Extensions/PriceIndication.js +5 -4
- package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +7 -7
- package/es-modules/Extensions/Sonification/MIDI.js +2 -3
- package/es-modules/Extensions/Sonification/Sonification.js +2 -2
- package/es-modules/Extensions/Sonification/SonificationSpeaker.js +3 -2
- package/es-modules/Extensions/Sonification/SynthPatch.js +3 -3
- package/es-modules/Extensions/Sonification/TimelineFromChart.js +11 -11
- package/es-modules/Gantt/Legacy.js +2 -2
- package/es-modules/Gantt/Pathfinder.js +3 -3
- package/es-modules/Gantt/PathfinderAlgorithms.js +4 -3
- package/es-modules/Gantt/Tree.js +1 -1
- package/es-modules/Maps/MapNavigation.js +4 -4
- package/es-modules/Maps/MapPointer.js +2 -2
- package/es-modules/Maps/MapView.js +2 -2
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +8 -6
- package/es-modules/Series/Area/AreaSeries.js +4 -5
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +13 -4
- package/es-modules/Series/Bubble/BubbleLegendItem.js +10 -6
- package/es-modules/Series/Bubble/BubbleSeries.js +10 -9
- package/es-modules/Series/Bullet/BulletSeries.js +17 -10
- package/es-modules/Series/CenteredUtilities.js +7 -5
- package/es-modules/Series/Column/ColumnSeries.js +2 -2
- package/es-modules/Series/Column3D/Column3DComposition.js +6 -5
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +4 -4
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +4 -2
- package/es-modules/Series/Cylinder/CylinderComposition.js +2 -2
- package/es-modules/Series/DataModifyComposition.js +9 -7
- package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -2
- package/es-modules/Series/Dumbbell/DumbbellPoint.js +14 -3
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +24 -7
- package/es-modules/Series/FlowMap/FlowMapPoint.js +5 -3
- package/es-modules/Series/FlowMap/FlowMapSeries.js +17 -9
- package/es-modules/Series/Funnel/FunnelSeries.js +2 -2
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +7 -5
- package/es-modules/Series/Gauge/GaugeSeries.js +2 -2
- package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +4 -4
- package/es-modules/Series/Heatmap/HeatmapPoint.js +6 -6
- package/es-modules/Series/Heatmap/HeatmapPointOptions.js +12 -0
- package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -13
- package/es-modules/Series/Heatmap/HeatmapSeriesOptions.js +12 -0
- package/es-modules/Series/Histogram/HistogramPoint.js +17 -0
- package/es-modules/Series/Histogram/HistogramPointOptions.js +12 -0
- package/es-modules/Series/Histogram/HistogramSeries.js +14 -2
- package/es-modules/Series/Histogram/HistogramSeriesOptions.js +12 -0
- package/es-modules/Series/InterpolationUtilities.js +5 -5
- package/es-modules/Series/Item/ItemPointOptions.js +14 -0
- package/es-modules/Series/Item/ItemSeries.js +18 -6
- package/es-modules/Series/Item/ItemSeriesOptions.js +14 -0
- package/es-modules/Series/Map/MapPoint.js +5 -3
- package/es-modules/Series/Map/MapSeries.js +5 -8
- package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +3 -3
- package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -2
- package/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js +18 -9
- package/es-modules/Series/NodesComposition.js +9 -10
- package/es-modules/Series/Organization/OrganizationPoint.js +3 -2
- package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -3
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +5 -5
- package/es-modules/Series/Pictorial/PictorialSeries.js +4 -2
- package/es-modules/Series/Pie/PieDataLabel.js +2 -2
- package/es-modules/Series/Pie/PiePoint.js +2 -2
- package/es-modules/Series/Pie/PieSeries.js +3 -2
- package/es-modules/Series/Pie3D/Pie3DSeries.js +8 -4
- package/es-modules/Series/PolarComposition.js +8 -7
- package/es-modules/Series/Sankey/SankeySeries.js +11 -5
- package/es-modules/Series/Scatter/ScatterSeries.js +6 -5
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +2 -2
- package/es-modules/Series/Spline/SplineSeries.js +5 -5
- package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +8 -6
- package/es-modules/Series/Tilemap/TilemapShapes.js +2 -2
- package/es-modules/Series/Timeline/TimelinePoint.js +2 -2
- package/es-modules/Series/Timeline/TimelineSeries.js +4 -3
- package/es-modules/Series/TreeUtilities.js +16 -7
- package/es-modules/Series/Treegraph/TreegraphLink.js +2 -2
- package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +14 -11
- package/es-modules/Series/VariablePie/VariablePieSeries.js +6 -4
- package/es-modules/Series/Variwide/VariwideSeries.js +2 -2
- package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -2
- package/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
- package/es-modules/Shared/TimeBase.js +8 -2
- package/es-modules/Shared/Utilities.js +9 -7
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -3
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +4 -3
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +1 -1
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +2 -2
- package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +4 -4
- package/es-modules/Stock/Navigator/Navigator.js +26 -26
- package/es-modules/Stock/Navigator/StandaloneNavigator.js +4 -4
- package/es-modules/Stock/RangeSelector/RangeSelector.js +15 -11
- package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +3 -3
- package/es-modules/Stock/Scrollbar/Scrollbar.js +8 -7
- package/es-modules/Stock/StockTools/StockToolbar.js +5 -5
- package/es-modules/Stock/StockTools/StockTools.js +2 -2
- package/es-modules/Stock/StockTools/StockToolsGui.js +4 -2
- package/es-modules/masters/highcharts-3d.src.js +1 -1
- package/es-modules/masters/highcharts-autoload.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 +7 -2
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
- package/es-modules/masters/i18n/fr-FR.src.js +1 -1
- package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
- package/es-modules/masters/i18n/nb-NO.src.js +1 -1
- package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
- package/es-modules/masters/i18n/zh-CN.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
- package/es-modules/masters/modules/annotations.src.js +1 -1
- package/es-modules/masters/modules/arc-diagram.src.js +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/contour.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-sorting.src.js +1 -1
- package/es-modules/masters/modules/data-tools.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +1 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/exporting.src.js +1 -1
- package/es-modules/masters/modules/flowmap.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/geoheatmap.src.js +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
- package/es-modules/masters/modules/navigator.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/non-cartesian-zoom.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/organization.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/pictorial.src.js +1 -1
- package/es-modules/masters/modules/pointandfigure.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/renko.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 +1 -1
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/textpath.src.js +1 -1
- package/es-modules/masters/modules/tiledwebmap.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/treegraph.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/standalone-navigator.src.js +1 -1
- package/es-modules/masters/themes/adaptive.src.js +1 -1
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/high-contrast.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/es-modules/tsconfig.tsbuildinfo +1 -1
- package/esm/highcharts-3d.js +2 -2
- package/esm/highcharts-3d.src.js +40 -32
- package/esm/highcharts-autoload.js +1 -1
- package/esm/highcharts-autoload.src.js +1 -1
- package/esm/highcharts-gantt.js +1 -1
- package/esm/highcharts-gantt.src.js +1 -1
- package/esm/highcharts-more.js +2 -2
- package/esm/highcharts-more.src.js +90 -56
- package/esm/highcharts.js +4 -4
- package/esm/highcharts.src.js +312 -207
- package/esm/highmaps.js +1 -1
- package/esm/highmaps.src.js +1 -1
- package/esm/highstock.js +1 -1
- package/esm/highstock.src.js +1 -1
- package/esm/i18n/fr-FR.js +1 -1
- package/esm/i18n/fr-FR.src.js +1 -1
- package/esm/i18n/nb-NO.js +1 -1
- package/esm/i18n/nb-NO.src.js +1 -1
- package/esm/i18n/zh-CN.js +1 -1
- package/esm/i18n/zh-CN.src.js +1 -1
- package/esm/indicators/acceleration-bands.js +1 -1
- package/esm/indicators/acceleration-bands.src.js +1 -1
- package/esm/indicators/accumulation-distribution.js +1 -1
- package/esm/indicators/accumulation-distribution.src.js +1 -1
- package/esm/indicators/ao.js +1 -1
- package/esm/indicators/ao.src.js +1 -1
- package/esm/indicators/apo.js +1 -1
- package/esm/indicators/apo.src.js +1 -1
- package/esm/indicators/aroon-oscillator.js +1 -1
- package/esm/indicators/aroon-oscillator.src.js +1 -1
- package/esm/indicators/aroon.js +2 -2
- package/esm/indicators/aroon.src.js +3 -3
- package/esm/indicators/atr.js +1 -1
- package/esm/indicators/atr.src.js +1 -1
- package/esm/indicators/bollinger-bands.js +1 -1
- package/esm/indicators/bollinger-bands.src.js +1 -1
- package/esm/indicators/cci.js +1 -1
- package/esm/indicators/cci.src.js +1 -1
- package/esm/indicators/chaikin.js +1 -1
- package/esm/indicators/chaikin.src.js +1 -1
- package/esm/indicators/cmf.js +1 -1
- package/esm/indicators/cmf.src.js +1 -1
- package/esm/indicators/cmo.js +1 -1
- package/esm/indicators/cmo.src.js +1 -1
- package/esm/indicators/dema.js +1 -1
- package/esm/indicators/dema.src.js +1 -1
- package/esm/indicators/disparity-index.js +1 -1
- package/esm/indicators/disparity-index.src.js +1 -1
- package/esm/indicators/dmi.js +1 -1
- package/esm/indicators/dmi.src.js +1 -1
- package/esm/indicators/dpo.js +2 -2
- package/esm/indicators/dpo.src.js +4 -3
- package/esm/indicators/ichimoku-kinko-hyo.js +1 -1
- package/esm/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/esm/indicators/indicators-all.js +2 -2
- package/esm/indicators/indicators-all.src.js +8 -7
- package/esm/indicators/indicators.js +2 -2
- package/esm/indicators/indicators.src.js +2 -2
- package/esm/indicators/keltner-channels.js +1 -1
- package/esm/indicators/keltner-channels.src.js +1 -1
- package/esm/indicators/klinger.js +1 -1
- package/esm/indicators/klinger.src.js +1 -1
- package/esm/indicators/macd.js +1 -1
- package/esm/indicators/macd.src.js +1 -1
- package/esm/indicators/mfi.js +1 -1
- package/esm/indicators/mfi.src.js +1 -1
- package/esm/indicators/momentum.js +1 -1
- package/esm/indicators/momentum.src.js +1 -1
- package/esm/indicators/natr.js +1 -1
- package/esm/indicators/natr.src.js +1 -1
- package/esm/indicators/obv.js +1 -1
- package/esm/indicators/obv.src.js +1 -1
- package/esm/indicators/pivot-points.js +1 -1
- package/esm/indicators/pivot-points.src.js +1 -1
- package/esm/indicators/ppo.js +1 -1
- package/esm/indicators/ppo.src.js +1 -1
- package/esm/indicators/price-channel.js +1 -1
- package/esm/indicators/price-channel.src.js +1 -1
- package/esm/indicators/price-envelopes.js +1 -1
- package/esm/indicators/price-envelopes.src.js +1 -1
- package/esm/indicators/psar.js +1 -1
- package/esm/indicators/psar.src.js +1 -1
- package/esm/indicators/regressions.js +1 -1
- package/esm/indicators/regressions.src.js +1 -1
- package/esm/indicators/roc.js +1 -1
- package/esm/indicators/roc.src.js +1 -1
- package/esm/indicators/rsi.js +1 -1
- package/esm/indicators/rsi.src.js +2 -2
- package/esm/indicators/slow-stochastic.js +1 -1
- package/esm/indicators/slow-stochastic.src.js +1 -1
- package/esm/indicators/stochastic.js +1 -1
- package/esm/indicators/stochastic.src.js +1 -1
- package/esm/indicators/supertrend.js +1 -1
- package/esm/indicators/supertrend.src.js +1 -1
- package/esm/indicators/tema.js +1 -1
- package/esm/indicators/tema.src.js +1 -1
- package/esm/indicators/trendline.js +1 -1
- package/esm/indicators/trendline.src.js +1 -1
- package/esm/indicators/trix.js +1 -1
- package/esm/indicators/trix.src.js +1 -1
- package/esm/indicators/volume-by-price.js +1 -1
- package/esm/indicators/volume-by-price.src.js +1 -1
- package/esm/indicators/vwap.js +1 -1
- package/esm/indicators/vwap.src.js +1 -1
- package/esm/indicators/williams-r.js +1 -1
- package/esm/indicators/williams-r.src.js +1 -1
- package/esm/indicators/wma.js +1 -1
- package/esm/indicators/wma.src.js +1 -1
- package/esm/indicators/zigzag.js +1 -1
- package/esm/indicators/zigzag.src.js +1 -1
- package/esm/modules/accessibility.js +2 -2
- package/esm/modules/accessibility.src.js +69 -63
- package/esm/modules/annotations-advanced.js +3 -3
- package/esm/modules/annotations-advanced.src.js +25 -23
- package/esm/modules/annotations.js +3 -3
- package/esm/modules/annotations.src.js +21 -19
- package/esm/modules/arc-diagram.js +2 -2
- package/esm/modules/arc-diagram.src.js +16 -15
- package/esm/modules/arrow-symbols.js +1 -1
- package/esm/modules/arrow-symbols.src.js +1 -1
- package/esm/modules/boost-canvas.js +2 -2
- package/esm/modules/boost-canvas.src.js +29 -20
- package/esm/modules/boost.js +2 -2
- package/esm/modules/boost.src.js +28 -19
- package/esm/modules/broken-axis.js +2 -2
- package/esm/modules/broken-axis.src.js +6 -5
- package/esm/modules/bullet.js +2 -2
- package/esm/modules/bullet.src.js +17 -10
- package/esm/modules/coloraxis.js +2 -2
- package/esm/modules/coloraxis.src.js +18 -11
- package/esm/modules/contour.js +1 -1
- package/esm/modules/contour.src.js +1 -1
- package/esm/modules/current-date-indicator.js +1 -1
- package/esm/modules/current-date-indicator.src.js +1 -1
- package/esm/modules/cylinder.js +2 -2
- package/esm/modules/cylinder.src.js +9 -10
- package/esm/modules/data-sorting.js +1 -1
- package/esm/modules/data-sorting.src.js +1 -1
- package/esm/modules/data-tools.js +2 -2
- package/esm/modules/data-tools.src.js +20 -3
- package/esm/modules/data.js +1 -1
- package/esm/modules/data.src.js +1 -1
- package/esm/modules/datagrouping.js +2 -2
- package/esm/modules/datagrouping.src.js +6 -5
- package/esm/modules/debugger.js +1 -1
- package/esm/modules/debugger.src.js +1 -1
- package/esm/modules/dependency-wheel.js +1 -1
- package/esm/modules/dependency-wheel.src.js +1 -1
- package/esm/modules/dotplot.js +2 -2
- package/esm/modules/dotplot.src.js +3 -2
- package/esm/modules/drag-panes.js +1 -1
- package/esm/modules/drag-panes.src.js +1 -1
- package/esm/modules/draggable-points.js +2 -2
- package/esm/modules/draggable-points.src.js +2 -3
- package/esm/modules/drilldown.js +2 -2
- package/esm/modules/drilldown.src.js +5 -4
- package/esm/modules/dumbbell.js +2 -2
- package/esm/modules/dumbbell.src.js +37 -9
- package/esm/modules/export-data.js +2 -2
- package/esm/modules/export-data.src.js +17 -16
- package/esm/modules/exporting.js +2 -2
- package/esm/modules/exporting.src.js +7 -7
- package/esm/modules/flowmap.js +2 -2
- package/esm/modules/flowmap.src.js +21 -11
- package/esm/modules/full-screen.js +1 -1
- package/esm/modules/full-screen.src.js +1 -1
- package/esm/modules/funnel.js +2 -2
- package/esm/modules/funnel.src.js +2 -2
- package/esm/modules/funnel3d.js +2 -2
- package/esm/modules/funnel3d.src.js +14 -13
- package/esm/modules/gantt.js +2 -2
- package/esm/modules/gantt.src.js +93 -76
- package/esm/modules/geoheatmap.js +2 -2
- package/esm/modules/geoheatmap.src.js +8 -8
- package/esm/modules/grid-axis.js +2 -2
- package/esm/modules/grid-axis.src.js +4 -4
- package/esm/modules/heatmap.js +2 -2
- package/esm/modules/heatmap.src.js +22 -22
- package/esm/modules/heikinashi.js +1 -1
- package/esm/modules/heikinashi.src.js +1 -1
- package/esm/modules/histogram-bellcurve.js +1 -1
- package/esm/modules/histogram-bellcurve.src.js +15 -3
- package/esm/modules/hollowcandlestick.js +1 -1
- package/esm/modules/hollowcandlestick.src.js +1 -1
- package/esm/modules/item-series.js +2 -2
- package/esm/modules/item-series.src.js +18 -6
- package/esm/modules/lollipop.js +1 -1
- package/esm/modules/lollipop.src.js +1 -1
- package/esm/modules/map.js +2 -2
- package/esm/modules/map.src.js +65 -57
- package/esm/modules/marker-clusters.js +1 -1
- package/esm/modules/marker-clusters.src.js +1 -1
- package/esm/modules/mouse-wheel-zoom.js +2 -2
- package/esm/modules/mouse-wheel-zoom.src.js +3 -3
- package/esm/modules/navigator.js +2 -2
- package/esm/modules/navigator.src.js +47 -45
- package/esm/modules/networkgraph.js +2 -2
- package/esm/modules/networkgraph.src.js +31 -21
- package/esm/modules/no-data-to-display.js +1 -1
- package/esm/modules/no-data-to-display.src.js +1 -1
- package/esm/modules/non-cartesian-zoom.js +1 -1
- package/esm/modules/non-cartesian-zoom.src.js +1 -1
- package/esm/modules/offline-exporting.js +1 -1
- package/esm/modules/offline-exporting.src.js +1 -1
- package/esm/modules/organization.js +2 -2
- package/esm/modules/organization.src.js +3 -2
- package/esm/modules/parallel-coordinates.js +2 -2
- package/esm/modules/parallel-coordinates.src.js +2 -2
- package/esm/modules/pareto.js +1 -1
- package/esm/modules/pareto.src.js +1 -1
- package/esm/modules/pathfinder.js +2 -2
- package/esm/modules/pathfinder.src.js +7 -6
- package/esm/modules/pattern-fill.js +2 -2
- package/esm/modules/pattern-fill.src.js +7 -5
- package/esm/modules/pictorial.js +2 -2
- package/esm/modules/pictorial.src.js +10 -6
- package/esm/modules/pointandfigure.js +1 -1
- package/esm/modules/pointandfigure.src.js +1 -1
- package/esm/modules/price-indicator.js +2 -2
- package/esm/modules/price-indicator.src.js +5 -4
- package/esm/modules/pyramid3d.js +1 -1
- package/esm/modules/pyramid3d.src.js +1 -1
- package/esm/modules/renko.js +1 -1
- package/esm/modules/renko.src.js +1 -1
- package/esm/modules/sankey.js +2 -2
- package/esm/modules/sankey.src.js +34 -20
- package/esm/modules/series-label.js +2 -2
- package/esm/modules/series-label.src.js +7 -7
- package/esm/modules/series-on-point.js +1 -1
- package/esm/modules/series-on-point.src.js +1 -1
- package/esm/modules/solid-gauge.js +2 -2
- package/esm/modules/solid-gauge.src.js +2 -2
- package/esm/modules/sonification.js +2 -2
- package/esm/modules/sonification.src.js +19 -19
- package/esm/modules/static-scale.js +1 -1
- package/esm/modules/static-scale.src.js +1 -1
- package/esm/modules/stock-tools.js +3 -3
- package/esm/modules/stock-tools.src.js +15 -10
- package/esm/modules/stock.js +2 -2
- package/esm/modules/stock.src.js +90 -76
- package/esm/modules/streamgraph.js +1 -1
- package/esm/modules/streamgraph.src.js +1 -1
- package/esm/modules/sunburst.js +2 -2
- package/esm/modules/sunburst.src.js +41 -26
- package/esm/modules/textpath.js +1 -1
- package/esm/modules/textpath.src.js +1 -1
- package/esm/modules/tiledwebmap.js +2 -2
- package/esm/modules/tiledwebmap.src.js +8 -6
- package/esm/modules/tilemap.js +2 -2
- package/esm/modules/tilemap.src.js +3 -3
- package/esm/modules/timeline.js +2 -2
- package/esm/modules/timeline.src.js +5 -4
- package/esm/modules/treegraph.js +2 -2
- package/esm/modules/treegraph.src.js +17 -8
- package/esm/modules/treegrid.js +2 -2
- package/esm/modules/treegrid.src.js +28 -18
- package/esm/modules/treemap.js +2 -2
- package/esm/modules/treemap.src.js +35 -22
- package/esm/modules/variable-pie.js +2 -2
- package/esm/modules/variable-pie.src.js +6 -4
- package/esm/modules/variwide.js +2 -2
- package/esm/modules/variwide.src.js +2 -2
- package/esm/modules/vector.js +1 -1
- package/esm/modules/vector.src.js +1 -1
- package/esm/modules/venn.js +1 -1
- package/esm/modules/venn.src.js +1 -1
- package/esm/modules/windbarb.js +2 -2
- package/esm/modules/windbarb.src.js +2 -2
- package/esm/modules/wordcloud.js +1 -1
- package/esm/modules/wordcloud.src.js +1 -1
- package/esm/modules/xrange.js +1 -1
- package/esm/modules/xrange.src.js +1 -1
- package/esm/standalone-navigator.js +4 -4
- package/esm/standalone-navigator.src.js +355 -249
- package/esm/themes/adaptive.js +1 -1
- package/esm/themes/adaptive.src.js +1 -1
- package/esm/themes/avocado.js +1 -1
- package/esm/themes/avocado.src.js +1 -1
- package/esm/themes/dark-unica.js +1 -1
- package/esm/themes/dark-unica.src.js +1 -1
- package/esm/themes/grid-light.js +1 -1
- package/esm/themes/grid-light.src.js +1 -1
- package/esm/themes/high-contrast.js +1 -1
- package/esm/themes/high-contrast.src.js +1 -1
- package/esm/themes/sand-signika.js +1 -1
- package/esm/themes/sand-signika.src.js +1 -1
- package/esm/themes/sunset.js +1 -1
- package/esm/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +2 -2
- package/highcharts-3d.src.js +40 -32
- package/highcharts-autoload.d.ts +8 -2
- package/highcharts-autoload.js +4 -4
- package/highcharts-autoload.src.d.ts +8 -2
- package/highcharts-autoload.src.js +313 -208
- package/highcharts-gantt.js +4 -4
- package/highcharts-gantt.src.js +404 -283
- package/highcharts-more.js +2 -2
- package/highcharts-more.src.js +90 -56
- package/highcharts.d.ts +61 -4
- package/highcharts.js +4 -4
- package/highcharts.src.d.ts +61 -4
- package/highcharts.src.js +312 -207
- package/highmaps.js +4 -4
- package/highmaps.src.js +390 -272
- package/highstock.js +4 -4
- package/highstock.src.js +413 -293
- package/i18n/fr-FR.js +1 -1
- package/i18n/fr-FR.src.js +1 -1
- package/i18n/nb-NO.js +1 -1
- package/i18n/nb-NO.src.js +1 -1
- package/i18n/zh-CN.js +1 -1
- package/i18n/zh-CN.src.js +1 -1
- package/indicators/acceleration-bands.js +1 -1
- package/indicators/acceleration-bands.src.js +1 -1
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +1 -1
- package/indicators/ao.src.js +1 -1
- package/indicators/apo.js +1 -1
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.js +1 -1
- package/indicators/aroon-oscillator.src.js +1 -1
- package/indicators/aroon.js +2 -2
- package/indicators/aroon.src.js +3 -3
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.src.js +1 -1
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +1 -1
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.src.js +1 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.js +1 -1
- package/indicators/dema.src.js +1 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.js +1 -1
- package/indicators/dmi.src.js +1 -1
- package/indicators/dpo.js +2 -2
- package/indicators/dpo.src.js +4 -3
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.js +2 -2
- package/indicators/indicators-all.src.js +8 -7
- package/indicators/indicators.js +2 -2
- package/indicators/indicators.src.js +2 -2
- package/indicators/keltner-channels.js +1 -1
- package/indicators/keltner-channels.src.js +1 -1
- package/indicators/klinger.js +1 -1
- package/indicators/klinger.src.js +1 -1
- package/indicators/macd.js +1 -1
- package/indicators/macd.src.js +1 -1
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +1 -1
- package/indicators/natr.src.js +1 -1
- package/indicators/obv.js +1 -1
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.js +1 -1
- package/indicators/price-channel.src.js +1 -1
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +1 -1
- package/indicators/regressions.src.js +1 -1
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.src.js +2 -2
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.src.js +1 -1
- package/indicators/stochastic.js +1 -1
- package/indicators/stochastic.src.js +1 -1
- package/indicators/supertrend.js +1 -1
- package/indicators/supertrend.src.js +1 -1
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +1 -1
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.js +1 -1
- package/indicators/volume-by-price.src.js +1 -1
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.js +2 -2
- package/modules/accessibility.src.js +69 -63
- package/modules/annotations-advanced.js +3 -3
- package/modules/annotations-advanced.src.js +25 -23
- package/modules/annotations.js +3 -3
- package/modules/annotations.src.js +21 -19
- package/modules/arc-diagram.js +2 -2
- package/modules/arc-diagram.src.js +16 -15
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +2 -2
- package/modules/boost-canvas.src.js +29 -20
- package/modules/boost.js +2 -2
- package/modules/boost.src.js +28 -19
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.src.js +6 -5
- package/modules/bullet.js +2 -2
- package/modules/bullet.src.js +17 -10
- package/modules/coloraxis.js +2 -2
- package/modules/coloraxis.src.js +18 -11
- package/modules/contour.js +4 -4
- package/modules/contour.src.js +19 -12
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +2 -2
- package/modules/cylinder.src.js +9 -10
- package/modules/data-sorting.js +1 -1
- package/modules/data-sorting.src.js +1 -1
- package/modules/data-tools.js +2 -2
- package/modules/data-tools.src.js +20 -3
- package/modules/data.js +1 -1
- package/modules/data.src.js +1 -1
- package/modules/datagrouping.js +2 -2
- package/modules/datagrouping.src.js +6 -5
- package/modules/debugger.js +1 -1
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.js +1 -1
- package/modules/dependency-wheel.src.js +1 -1
- package/modules/dotplot.js +2 -2
- package/modules/dotplot.src.js +3 -2
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +2 -2
- package/modules/draggable-points.src.js +2 -3
- package/modules/drilldown.js +2 -2
- package/modules/drilldown.src.js +5 -4
- package/modules/dumbbell.js +2 -2
- package/modules/dumbbell.src.js +37 -9
- package/modules/export-data.js +2 -2
- package/modules/export-data.src.js +17 -16
- package/modules/exporting.js +2 -2
- package/modules/exporting.src.js +7 -7
- package/modules/flowmap.js +2 -2
- package/modules/flowmap.src.js +21 -11
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +1 -1
- package/modules/funnel.js +2 -2
- package/modules/funnel.src.js +2 -2
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.src.js +14 -13
- package/modules/gantt.js +6 -6
- package/modules/gantt.src.js +96 -79
- package/modules/geoheatmap.d.ts +0 -12
- package/modules/geoheatmap.js +2 -2
- package/modules/geoheatmap.src.d.ts +0 -12
- package/modules/geoheatmap.src.js +8 -8
- package/modules/grid-axis.js +2 -2
- package/modules/grid-axis.src.js +4 -4
- package/modules/heatmap.d.ts +0 -12
- package/modules/heatmap.js +4 -4
- package/modules/heatmap.src.d.ts +0 -12
- package/modules/heatmap.src.js +40 -33
- 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 +15 -3
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.src.js +1 -1
- package/modules/item-series.js +2 -2
- package/modules/item-series.src.js +18 -6
- package/modules/lollipop.js +1 -1
- package/modules/lollipop.src.js +1 -1
- package/modules/map.d.ts +0 -12
- package/modules/map.js +4 -4
- package/modules/map.src.d.ts +0 -12
- package/modules/map.src.js +83 -68
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.src.js +1 -1
- package/modules/mouse-wheel-zoom.js +2 -2
- package/modules/mouse-wheel-zoom.src.js +3 -3
- package/modules/navigator.js +2 -2
- package/modules/navigator.src.js +47 -45
- package/modules/networkgraph.js +2 -2
- package/modules/networkgraph.src.js +31 -21
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/non-cartesian-zoom.js +1 -1
- package/modules/non-cartesian-zoom.src.js +1 -1
- package/modules/offline-exporting.js +1 -1
- package/modules/offline-exporting.src.js +1 -1
- package/modules/organization.js +2 -2
- package/modules/organization.src.js +3 -2
- package/modules/parallel-coordinates.js +2 -2
- package/modules/parallel-coordinates.src.js +2 -2
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +2 -2
- package/modules/pathfinder.src.js +7 -6
- package/modules/pattern-fill.js +2 -2
- package/modules/pattern-fill.src.js +7 -5
- package/modules/pictorial.js +2 -2
- package/modules/pictorial.src.js +10 -6
- package/modules/pointandfigure.js +1 -1
- package/modules/pointandfigure.src.js +1 -1
- package/modules/price-indicator.js +2 -2
- package/modules/price-indicator.src.js +5 -4
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +1 -1
- package/modules/renko.js +1 -1
- package/modules/renko.src.js +1 -1
- package/modules/sankey.js +2 -2
- package/modules/sankey.src.js +34 -20
- package/modules/series-label.js +2 -2
- package/modules/series-label.src.js +7 -7
- package/modules/series-on-point.js +1 -1
- package/modules/series-on-point.src.js +1 -1
- package/modules/solid-gauge.js +2 -2
- package/modules/solid-gauge.src.js +2 -2
- package/modules/sonification.js +2 -2
- package/modules/sonification.src.js +19 -19
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +3 -3
- package/modules/stock-tools.src.js +15 -10
- package/modules/stock.js +6 -6
- package/modules/stock.src.js +105 -89
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +2 -2
- package/modules/sunburst.src.js +41 -26
- package/modules/textpath.js +1 -1
- package/modules/textpath.src.js +1 -1
- package/modules/tiledwebmap.js +2 -2
- package/modules/tiledwebmap.src.js +8 -6
- package/modules/tilemap.js +2 -2
- package/modules/tilemap.src.js +3 -3
- package/modules/timeline.js +2 -2
- package/modules/timeline.src.js +5 -4
- package/modules/treegraph.js +2 -2
- package/modules/treegraph.src.js +17 -8
- package/modules/treegrid.js +2 -2
- package/modules/treegrid.src.js +28 -18
- package/modules/treemap.js +2 -2
- package/modules/treemap.src.js +35 -22
- package/modules/variable-pie.js +2 -2
- package/modules/variable-pie.src.js +6 -4
- package/modules/variwide.js +2 -2
- package/modules/variwide.src.js +2 -2
- package/modules/vector.js +1 -1
- package/modules/vector.src.js +1 -1
- package/modules/venn.js +1 -1
- package/modules/venn.src.js +1 -1
- package/modules/windbarb.js +2 -2
- package/modules/windbarb.src.js +2 -2
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.src.js +1 -1
- package/modules/xrange.js +1 -1
- package/modules/xrange.src.js +1 -1
- package/package.json +2 -3
- package/standalone-navigator.js +4 -4
- package/standalone-navigator.src.js +355 -249
- package/themes/adaptive.js +1 -1
- package/themes/adaptive.src.js +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/high-contrast.js +1 -1
- package/themes/high-contrast.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/sunset.js +1 -1
- package/themes/sunset.src.js +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Highcharts JS v13.0.
|
|
2
|
+
* Highcharts JS v13.0.2 (2026-08-27)
|
|
3
3
|
* @module highcharts/modules/networkgraph
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
*
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
*
|
|
11
11
|
* A commercial license may be required depending on use,
|
|
12
12
|
* see www.highcharts.com/license
|
|
13
|
-
*/import*as t from"../highcharts.js";let e={};e.n=t=>{let i=t&&t.__esModule?()=>t.default:()=>t;return e.d(i,{a:i}),i},e.d=(t,i)=>{if(Array.isArray(i))for(var s=0;s<i.length;){var o=i[s++],r=i[s++];e.o(t,o)?0===r&&s++:0===r?Object.defineProperty(t,o,{enumerable:!0,value:i[s++]}):Object.defineProperty(t,o,{enumerable:!0,get:r})}else for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},e.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let i=t.default;var s,o,r=e.n(i);let a=t.default.SVGElement;var n=e.n(a);let{composed:h}=r();function l(){let t,e,s,o,r=this;r.container&&(t=(0,i.addEvent)(r.container,"mousedown",t=>{e&&e(),s&&s(),(o=r.hoverPoint)&&o.series&&o.series.hasDraggableNodes&&o.series.options.draggable&&(o.series.onMouseDown(o,t),e=(0,i.addEvent)(r.container,"mousemove",t=>o&&o.series&&o.series.onMouseMove(o,t)),s=(0,i.addEvent)(r.container.ownerDocument,"mouseup",t=>(e(),s(),o&&o.series&&o.series.onMouseUp(o,t))))})),(0,i.addEvent)(r,"destroy",function(){t()})}let d={compose:function(t){(0,i.pushUnique)(h,"DragNodes")&&(0,i.addEvent)(t,"load",l)},onMouseDown:function(t,e){let{panKey:i}=this.chart.options.chart;if(i&&e[`${i}Key`])return;let s=this.chart.pointer?.normalize(e)||e;t.fixedPosition={chartX:s.chartX,chartY:s.chartY,plotX:t.plotX,plotY:t.plotY},t.inDragMode=!0},onMouseMove:function(t,e){if(t.fixedPosition&&t.inDragMode){let i,s,o=this.chart,r=o.pointer?.normalize(e)||e,a=t.fixedPosition.chartX-r.chartX,n=t.fixedPosition.chartY-r.chartY,h=o.graphLayoutsLookup;(Math.abs(a)>5||Math.abs(n)>5)&&(i=t.fixedPosition.plotX-a,s=t.fixedPosition.plotY-n,o.isInsidePlot(i,s)&&(t.plotX=i,t.plotY=s,t.hasDragged=!0,this.redrawHalo(t),h.forEach(t=>{t.restartSimulation()})))}},onMouseUp:function(t){t.fixedPosition&&(t.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),t.inDragMode=t.hasDragged=!1,this.options.fixedDraggable||delete t.fixedPosition)},redrawHalo:function(t){t&&this.halo&&this.halo.attr({d:t.haloPath((0,i.isObject)(this.options.states?.hover?.halo)&&this.options.states?.hover?.halo.size||0)})}},{composed:p}=r();function c(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation()}),this.redraw())}function u(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation(!1)}),this.redraw())}function f(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(t=>{t.stop()})}function m(){let t,e=!1,s=i=>{i.maxIterations--&&isFinite(i.temperature)&&!i.isStable()&&!i.enableSimulation&&(i.beforeStep&&i.beforeStep(),i.step(),t=!1,e=!0)};if(this.graphLayoutsLookup&&!this.pointer?.hasDragged){for((0,i.setAnimation)(!1,this),this.graphLayoutsLookup.forEach(t=>t.start());!t;)t=!0,this.graphLayoutsLookup.forEach(s);e&&this.series.forEach(t=>{t&&t.layout&&(t.render(),(0,i.fireEvent)(t,"afterSimulation"))})}}let g=function(t){(0,i.pushUnique)(p,"GraphLayout")&&((0,i.addEvent)(t,"afterPrint",c),(0,i.addEvent)(t,"beforePrint",u),(0,i.addEvent)(t,"predraw",f),(0,i.addEvent)(t,"render",m))},y={},b={},x=t.default.SeriesRegistry;var k=e.n(x);let{series:{prototype:v,prototype:{pointClass:{prototype:N}}}}=k();!function(t){function e(){if(!this.hasDataLabels?.()&&this.nodes)for(let t of this.nodes)t.destroyElements({dataLabel:1})}function s(){return this.data=[].concat(this.points||[],this.nodes),v.destroy.apply(this,arguments)}function o(){this.nodes&&(this.nodes.forEach(t=>{t.destroy()}),this.nodes.length=0),v.setData.apply(this,arguments)}function r(t){let e=arguments,i=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==t&&i.forEach(t=>{t&&t.series&&(N.setState.apply(t,e),!t.isNode&&(t.fromNode.graphic&&N.setState.apply(t.fromNode,e),t.toNode&&t.toNode.graphic&&N.setState.apply(t.toNode,e)))}),N.setState.apply(this,e)}function a(t,e,s,o){let r=this.series.options.nodes,a=this.series.options.data,n=a?.length||0,h=a?.[this.index];if(N.update.call(this,t,!this.isNode&&e,s,o),this.isNode){let t=(r||[]).reduce((t,e,i)=>this.id===e.id?i:t,-1),o=(0,i.merge)(r&&r[t]||{},a?.[this.index]||{});a&&(h?a[this.index]=h:a.length=n),r?t>=0?r[t]=o:r.push(o):this.series.options.nodes=[o],(0,i.pick)(e,!0)&&this.series.chart.redraw(s)}}t.compose=function(t,n){let h=t.prototype,l=n.prototype;return h.setNodeState=r,h.setState=r,h.update=a,l.destroy=s,l.setData=o,(0,i.addEvent)(n,"afterUpdate",e),n},t.createNode=function(t){let e=this.pointClass,s=(t,e)=>(0,i.find)(t,t=>t.id===e),o=s(this.nodes,t),r;if(!o){r=this.options.nodes&&s(this.options.nodes,t);let a=new e(this,(0,i.extend)({className:"highcharts-node",isNode:!0,id:t,y:1},r));a.linksTo=[],a.linksFrom=[],a.getSum=function(){let t=0,e=0;return a.linksTo.forEach(e=>{t+=e.weight||0}),a.linksFrom.forEach(t=>{e+=t.weight||0}),Math.max(t,e)},a.offset=function(t,e){let i=0;for(let s=0;s<a[e].length;s++){if(a[e][s]===t)return i;i+=a[e][s].weight}},a.hasShape=function(){let t=0;return a.linksTo.forEach(e=>{e.outgoing&&t++}),!a.linksTo.length||t!==a.linksTo.length},a.index=this.nodes.push(a)-1,o=a}return o.formatPrefix="node",o.name=o.name||o.options.id||"",o.mass=(0,i.pick)(o.options.mass,o.options.marker&&o.options.marker.radius,this.options.marker&&this.options.marker.radius,4),o},t.destroy=s,t.generatePoints=function(){let t=this.chart,e={};v.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(t=>{t.linksFrom.length=0,t.linksTo.length=0,t.level=t.options.level}),this.points.forEach(s=>{(0,i.defined)(s.from)&&(e[s.from]||(e[s.from]=this.createNode(s.from)),e[s.from].linksFrom.push(s),s.fromNode=e[s.from],t.styledMode?s.colorIndex=(0,i.pick)(s.options.colorIndex,e[s.from].colorIndex):s.color=s.options.color||e[s.from].color),(0,i.defined)(s.to)&&(e[s.to]||(e[s.to]=this.createNode(s.to)),e[s.to].linksTo.push(s),s.toNode=e[s.to]),s.name=s.name||s.id},this),this.nodeLookup=e},t.setNodeState=r,t.updateNode=a}(o||(o={}));let L=o,{series:{prototype:P,prototype:{pointClass:w}}}=k();class S extends w{destroy(){return this.isNode&&this.linksFrom.concat(this.linksTo).forEach(function(t){t.destroyElements&&t.destroyElements()}),this.series.layout.removeElementFromCollection(this,this.series.layout[this.isNode?"nodes":"links"]),w.prototype.destroy.apply(this,arguments)}getDegree(){let t=this.isNode?this.linksFrom.length+this.linksTo.length:0;return 0===t?1:t}getLinkAttributes(){let t=this.series.options.link,e=this.options;return{"stroke-width":(0,i.pick)(e.width,t.width),stroke:e.color||t.color,dashstyle:e.dashStyle||t.dashStyle,opacity:(0,i.pick)(e.opacity,t.opacity,1)}}getLinkPath(){let t=this.fromNode,e=this.toNode;return t.plotX>e.plotX&&(t=this.toNode,e=this.fromNode),[["M",t.plotX||0,t.plotY||0],["L",e.plotX||0,e.plotY||0]]}getMass(){let t=this.fromNode.mass,e=this.toNode.mass,i=t+e;return{fromNode:1-t/i,toNode:1-e/i}}constructor(t,e,s){super(t,e,s),this.series.options.draggable&&!this.series.chart.styledMode&&((0,i.addEvent)(this,"mouseOver",function(){(0,i.css)(this.series.chart.container,{cursor:"move"})}),(0,i.addEvent)(this,"mouseOut",function(){(0,i.css)(this.series.chart.container,{cursor:"default"})}))}isValid(){return!this.isNode||(0,i.defined)(this.id)}redrawLink(){let t,e=this.getLinkPath();if(this.graphic){this.shapeArgs={d:e},this.series.chart.styledMode||(t=this.series.pointAttribs(this),this.graphic.attr(t),(this.dataLabels||[]).forEach(function(e){e&&e.attr({opacity:t.opacity})})),this.graphic.animate(this.shapeArgs);let i=e[0],s=e[1];"M"===i[0]&&"L"===s[0]&&(this.plotX=(i[1]+s[1])/2,this.plotY=(i[2]+s[2])/2)}}remove(t,e){let i=this.series,s=i.options.nodes||[],o,r=s.length;if(this.isNode){for(i.points=[],[].concat(this.linksFrom).concat(this.linksTo).forEach(function(t){(o=t.fromNode.linksFrom.indexOf(t))>-1&&t.fromNode.linksFrom.splice(o,1),(o=t.toNode.linksTo.indexOf(t))>-1&&t.toNode.linksTo.splice(o,1),P.removePoint.call(i,i.data.indexOf(t),!1,!1)}),i.points=i.data.slice(),i.nodes.splice(i.nodes.indexOf(this),1);r--;)if(s[r].id===this.options.id){i.options.nodes.splice(r,1);break}this&&this.destroy(),i.isDirty=!0,i.isDirtyData=!0,t&&i.chart.redraw(t)}else i.removePoint(i.data.indexOf(this),t,e)}renderLink(){let t;!this.graphic&&(this.graphic=this.series.chart.renderer.path(this.getLinkPath()).addClass(this.getClassName(),!0).add(this.series.group),this.series.chart.styledMode||(t=this.series.pointAttribs(this),this.graphic.attr(t),(this.dataLabels||[]).forEach(function(e){e&&e.attr({opacity:t.opacity})})))}}(0,i.extend)(S.prototype,{setState:L.setNodeState});let M={attractive:function(t,e,i,s){let o=t.getMass(),r=i.x/s*e,a=i.y/s*e;t.fromNode.fixedPosition||(t.fromNode.dispX-=r*o.fromNode/t.fromNode.degree,t.fromNode.dispY-=a*o.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.dispX+=r*o.toNode/t.toNode.degree,t.toNode.dispY+=a*o.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return t*t/e},barycenter:function(){let t=this.options.gravitationalConstant,e=this.barycenter.xFactor,i=this.barycenter.yFactor;this.nodes.forEach(function(s){if(!s.fixedPosition){let o=s.getDegree(),r=o*(1+o/2);s.dispX+=(e-s.plotX)*t*r/s.degree,s.dispY+=(i-s.plotY)*t*r/s.degree}})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.3)},integrate:function(t,e){e.dispX+=e.dispX*t.options.friction,e.dispY+=e.dispY*t.options.friction;let i=e.temperature=t.vectorLength({x:e.dispX,y:e.dispY});0!==i&&(e.plotX+=e.dispX/i*Math.min(Math.abs(e.dispX),t.temperature),e.plotY+=e.dispY/i*Math.min(Math.abs(e.dispY),t.temperature))},repulsive:function(t,e,i,s){t.dispX+=i.x/s*e/t.degree,t.dispY+=i.y/s*e/t.degree},repulsiveForceFunction:function(t,e){return e*e/t}};class E{constructor(t){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=t,this.boxSize=Math.min(t.width,t.height)}divideBox(){let t=this.box.width/2,e=this.box.height/2;this.nodes[0]=new E({left:this.box.left,top:this.box.top,width:t,height:e}),this.nodes[1]=new E({left:this.box.left+t,top:this.box.top,width:t,height:e}),this.nodes[2]=new E({left:this.box.left+t,top:this.box.top+e,width:t,height:e}),this.nodes[3]=new E({left:this.box.left,top:this.box.top+e,width:t,height:e})}getBoxPosition(t){let e=t.plotX<this.box.left+this.box.width/2,i=t.plotY<this.box.top+this.box.height/2;return e?3*!i:i?1:2}insert(t,e){let i;this.isInternal?this.nodes[this.getBoxPosition(t)].insert(t,e-1):(this.isEmpty=!1,this.body?e?(this.isInternal=!0,this.divideBox(),!0!==this.body&&(this.nodes[this.getBoxPosition(this.body)].insert(this.body,e-1),this.body=!0),this.nodes[this.getBoxPosition(t)].insert(t,e-1)):((i=new E({top:t.plotX||NaN,left:t.plotY||NaN,width:.1,height:.1})).body=t,i.isInternal=!1,this.nodes.push(i)):(this.isInternal=!1,this.body=t))}updateMassAndCenter(){let t=0,e=0,i=0;if(this.isInternal){for(let s of this.nodes)s.isEmpty||(t+=s.mass,e+=s.plotX*s.mass,i+=s.plotY*s.mass);e/=t,i/=t}else this.body&&(t=this.body.mass,e=this.body.plotX,i=this.body.plotY);this.mass=t,this.plotX=e,this.plotY=i}}let T=class{constructor(t,e,i,s){this.box={left:t,top:e,width:i,height:s},this.maxDepth=25,this.root=new E(this.box),this.root.isInternal=!0,this.root.isRoot=!0,this.root.divideBox()}calculateMassAndCenter(){this.visitNodeRecursive(null,null,function(t){t.updateMassAndCenter()})}insertNodes(t){for(let e of t)this.root.insert(e,this.maxDepth)}visitNodeRecursive(t,e,i){let s;if(t||(t=this.root),t===this.root&&e&&(s=e(t)),!1!==s){for(let o of t.nodes){if(o.isInternal){if(e&&(s=e(o)),!1===s)continue;this.visitNodeRecursive(o,e,i)}else o.body&&e&&e(o.body);i&&i(o)}t===this.root&&i&&i(t)}}},X={attractive:function(t,e,i){let s=t.getMass(),o=-i.x*e*this.diffTemperature,r=-i.y*e*this.diffTemperature;t.fromNode.fixedPosition||(t.fromNode.plotX-=o*s.fromNode/t.fromNode.degree,t.fromNode.plotY-=r*s.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.plotX+=o*s.toNode/t.toNode.degree,t.toNode.plotY+=r*s.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return(e-t)/t},barycenter:function(){let t=this.options.gravitationalConstant||0,e=(this.barycenter.xFactor-(this.box.left+this.box.width)/2)*t,i=(this.barycenter.yFactor-(this.box.top+this.box.height)/2)*t;this.nodes.forEach(function(t){t.fixedPosition||(t.plotX-=e/t.mass/t.degree,t.plotY-=i/t.mass/t.degree)})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.5)},integrate:function(t,e){let i=-t.options.friction,s=t.options.maxSpeed,o=e.prevX,r=e.prevY,a=(e.plotX+e.dispX-o)*i,n=(e.plotY+e.dispY-r)*i,h=Math.abs,l=h(a)/(a||1),d=h(n)/(n||1),p=l*Math.min(s,Math.abs(a)),c=d*Math.min(s,Math.abs(n));e.prevX=e.plotX+e.dispX,e.prevY=e.plotY+e.dispY,e.plotX+=p,e.plotY+=c,e.temperature=t.vectorLength({x:p,y:c})},repulsive:function(t,e,i){let s=e*this.diffTemperature/t.mass/t.degree;t.fixedPosition||(t.plotX+=i.x*s,t.plotY+=i.y*s)},repulsiveForceFunction:function(t,e){return(e-t)/t*(e>t)}},{win:Y}=r();class D{constructor(){this.box={},this.currentStep=0,this.initialRendering=!0,this.links=[],this.nodes=[],this.series=[],this.simulation=!1}static compose(t){g(t),y.euler=M,y.verlet=X,b["reingold-fruchterman"]=D}init(t){this.options=t,this.nodes=[],this.links=[],this.series=[],this.box={x:0,y:0,width:0,height:0},this.setInitialRendering(!0),this.integration=y[t.integration],this.enableSimulation=t.enableSimulation,this.attractiveForce=(0,i.pick)(t.attractiveForce,this.integration.attractiveForceFunction),this.repulsiveForce=(0,i.pick)(t.repulsiveForce,this.integration.repulsiveForceFunction),this.approximation=t.approximation}updateSimulation(t){this.enableSimulation=(0,i.pick)(t,this.options.enableSimulation)}start(){let t=this.series,e=this.options;this.currentStep=0,this.forces=t[0]&&t[0].forces||[],this.chart=t[0]&&t[0].chart,this.initialRendering&&(this.initPositions(),t.forEach(function(t){t.finishedAnimating=!0,t.render()})),this.setK(),this.resetSimulation(e),this.enableSimulation&&this.step()}step(){let t=this.series;for(let t of(this.currentStep++,"barnes-hut"===this.approximation&&(this.createQuadTree(),this.quadTree.calculateMassAndCenter()),this.forces||[]))this[t+"Forces"](this.temperature);if(this.applyLimits(),this.temperature=this.coolDown(this.startTemperature,this.diffTemperature,this.currentStep),this.prevSystemTemperature=this.systemTemperature,this.systemTemperature=this.getSystemTemperature(),this.enableSimulation){for(let e of t)e.chart&&e.render();this.maxIterations--&&isFinite(this.temperature)&&!this.isStable()?(this.simulation&&Y.cancelAnimationFrame(this.simulation),this.simulation=Y.requestAnimationFrame(()=>this.step())):(this.simulation=!1,this.series.forEach(t=>{(0,i.fireEvent)(t,"afterSimulation")}))}}stop(){this.simulation&&Y.cancelAnimationFrame(this.simulation)}setArea(t,e,i,s){this.box={left:t,top:e,width:i,height:s}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(t,e){for(let i of t)-1===e.indexOf(i)&&e.push(i)}removeElementFromCollection(t,e){let i=e.indexOf(t);-1!==i&&e.splice(i,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(t){this.maxIterations=(0,i.pick)(t,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(t){this.initialRendering=t}createQuadTree(){this.quadTree=new T(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){let t=this.options.initialPositions;if((0,i.isFunction)(t))for(let e of(t.call(this),this.nodes))(0,i.defined)(e.prevX)||(e.prevX=e.plotX),(0,i.defined)(e.prevY)||(e.prevY=e.plotY),e.dispX=0,e.dispY=0;else"circle"===t?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){let t,e=this.box,s=this.nodes,o=2*Math.PI/(s.length+1),r=s.filter(function(t){return 0===t.linksTo.length}),a={},n=this.options.initialPositionRadius,h=t=>{for(let e of t.linksFrom||[])a[e.toNode.id]||(a[e.toNode.id]=!0,l.push(e.toNode),h(e.toNode))},l=[];for(let t of r)l.push(t),h(t);if(l.length)for(let t of s)-1===l.indexOf(t)&&l.push(t);else l=s;for(let s=0,r=l.length;s<r;++s)(t=l[s]).plotX=t.prevX=(0,i.pick)(t.plotX,e.width/2+n*Math.cos(s*o)),t.plotY=t.prevY=(0,i.pick)(t.plotY,e.height/2+n*Math.sin(s*o)),t.dispX=0,t.dispY=0}setRandomPositions(){let t,e=this.box,s=this.nodes,o=s.length+1,r=t=>{let e=t*t/Math.PI;return e-Math.floor(e)};for(let a=0,n=s.length;a<n;++a)(t=s[a]).plotX=t.prevX=(0,i.pick)(t.plotX,e.width*r(a)),t.plotY=t.prevY=(0,i.pick)(t.plotY,e.height*r(o+a)),t.dispX=0,t.dispY=0}force(t,...e){this.integration[t].apply(this,e)}barycenterForces(){this.getBarycenter(),this.force("barycenter")}getBarycenter(){let t=0,e=0,i=0;for(let s of this.nodes)e+=s.plotX*s.mass,i+=s.plotY*s.mass,t+=s.mass;return this.barycenter={x:e,y:i,xFactor:e/t,yFactor:i/t},this.barycenter}barnesHutApproximation(t,e){let i,s,o=this.getDistXY(t,e),r=this.vectorLength(o);return t!==e&&0!==r&&(e.isInternal?e.boxSize/r<this.options.theta&&0!==r?(s=this.repulsiveForce(r,this.k),this.force("repulsive",t,s*e.mass,o,r),i=!1):i=!0:(s=this.repulsiveForce(r,this.k),this.force("repulsive",t,s*e.mass,o,r))),i}repulsiveForces(){if("barnes-hut"===this.approximation)for(let t of this.nodes)this.quadTree.visitNodeRecursive(null,e=>this.barnesHutApproximation(t,e));else{let t,e,i;for(let s of this.nodes)for(let o of this.nodes)s===o||s.fixedPosition||(i=this.getDistXY(s,o),0!==(e=this.vectorLength(i))&&(t=this.repulsiveForce(e,this.k),this.force("repulsive",s,t*o.mass,i,e)))}}attractiveForces(){let t,e,i;for(let s of this.links)s.fromNode&&s.toNode&&(t=this.getDistXY(s.fromNode,s.toNode),0!==(e=this.vectorLength(t))&&(i=this.attractiveForce(e,this.k),this.force("attractive",s,i,t,e)))}applyLimits(){for(let t of this.nodes)t.fixedPosition||(this.integration.integrate(this,t),this.applyLimitBox(t,this.box),t.dispX=0,t.dispY=0)}applyLimitBox(t,e){let s=t.radius;t.plotX=(0,i.clamp)(t.plotX,e.left+s,e.width-s),t.plotY=(0,i.clamp)(t.plotY,e.top+s,e.height-s)}coolDown(t,e,i){return t-e*i}isStable(){return 1e-5>Math.abs(this.systemTemperature-this.prevSystemTemperature)||this.temperature<=0}getSystemTemperature(){let t=0;for(let e of this.nodes)t+=e.temperature;return t}vectorLength(t){return Math.sqrt(t.x*t.x+t.y*t.y)}getDistR(t,e){let i=this.getDistXY(t,e);return this.vectorLength(i)}getDistXY(t,e){let i=t.plotX-e.plotX,s=t.plotY-e.plotY;return{x:i,y:s,absX:Math.abs(i),absY:Math.abs(s)}}}let{composed:F,deg2rad:A}=r(),{noop:C}=r(),{series:I,seriesTypes:{column:{prototype:O},line:{prototype:R}}}=k(),{initDataLabels:B,initDataLabelsDefer:q}={initDataLabels:function(){let t=this.options.dataLabels;if(!this.dataLabelsGroup){let e=this.initDataLabelsGroup(0,t);return!this.chart.styledMode&&t?.style&&e.css(t.style),e.attr({opacity:0}),this.visible&&(this.options.animation&&t?.animation?e.animate({opacity:1},t.animation):e.attr({opacity:1}),e.show()),e}return this.dataLabelsGroup.attr({opacity:1,...this.getPlotBox("data-labels")}),this.dataLabelsGroup},initDataLabelsDefer:function(){let t=this.options.dataLabels;t?.defer&&this.options.layoutAlgorithm?.enableSimulation?(0,i.syncTimeout)(()=>{this.deferDataLabels=!1},t?(0,i.animObject)(t.animation).defer:0):this.deferDataLabels=!1}};s=n(),(0,i.pushUnique)(F,"TextPath")&&((0,i.addEvent)(s,"afterGetBBox",function(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let t=[],{b:s,h:o}=this.renderer.fontMetrics(this.element),r=o-s,a=RegExp('(<tspan>|<tspan(?!\\sclass="highcharts-br")[^>]*>|<\\/tspan>)',"g"),n=i.innerHTML.replace(a,"").split(/<tspan class="highcharts-br"[^>]*>/),h=n.length,l=(t,e)=>{let{x:o,y:a}=e,n=(i.getRotationOfChar(t)-90)*A,h=Math.cos(n),l=Math.sin(n);return[[o-r*h,a-r*l],[o+s*h,a+s*l]]};for(let e=0,s=0;s<h;s++){let o=n[s].length;for(let r=0;r<o;r+=5)try{let o=e+r+s,[a,n]=l(o,i.getStartPositionOfChar(o));0===r?(t.push(n),t.push(a)):(0===s&&t.unshift(n),s===h-1&&t.push(a))}catch{break}e+=o-1;try{let o=e+s,r=i.getEndPositionOfChar(o),[a,n]=l(o,r);t.unshift(n),t.unshift(a)}catch{break}}t.length&&t.push(t[0].slice()),e.polygon=t}return e}),(0,i.addEvent)(s,"beforeAddingDataLabel",function(t){let e=t.labelOptions,i=t.point,s=e[i.formatPrefix+"TextPath"]||e.textPath;s&&!e.useHTML&&(this.setTextPath(i.getDataLabelPath?.(this)||i.graphic,s),i.dataLabelPath&&!s.enabled&&(i.dataLabelPath=i.dataLabelPath.destroy()))}),s.prototype.setTextPath=s.prototype.setTextPath??function(t,e){let s=this.renderer.url,o=this.text||this,r=o.textPath,{attributes:a,enabled:n}=(0,i.merge)({enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);if(t=t||r&&r.path,r?.undo(),t&&n){let e=(0,i.addEvent)(o,"afterModifyTree",e=>{if(t&&n){let r=t.attr("id");r||t.attr("id",r=(0,i.uniqueKey)());let n={x:0,y:0};(0,i.defined)(a.dx)&&(n.dx=a.dx,delete a.dx),(0,i.defined)(a.dy)&&(n.dy=a.dy,delete a.dy),o.attr(n),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let h=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:(0,i.extend)(a,{"text-anchor":a.textAnchor,href:`${s}#${r}`}),children:h}}});o.textPath={path:t,undo:e}}else o.attr({dx:0,dy:0}),delete o.textPath;return this.added&&(o.textCache="",this.renderer.buildText(o)),this});class G extends I{constructor(){super(...arguments),this.deferDataLabels=!0}static compose(t){d.compose(t),D.compose(t)}deferLayout(){let t=this.options.layoutAlgorithm,e=this.chart.options.chart,s,o=this.chart.graphLayoutsStorage,r=this.chart.graphLayoutsLookup;this.visible&&(o||(this.chart.graphLayoutsStorage=o={},this.chart.graphLayoutsLookup=r=[]),(s=o[t.type])||(t.enableSimulation=(0,i.defined)(e.forExport)?!e.forExport:t.enableSimulation,o[t.type]=s=new b[t.type],s.init(t),r.splice(s.index,0,s)),this.layout=s,s.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),s.addElementsToCollection([this],s.series),s.addElementsToCollection(this.nodes,s.nodes),s.addElementsToCollection(this.points,s.links))}destroy(){this.layout&&this.layout.removeElementFromCollection(this,this.layout.series),L.destroy.call(this)}drawDataLabels(){let t;if(this.deferDataLabels)return;let e=this.options.dataLabels;e?.textPath&&(t=e.textPath),I.prototype.drawDataLabels.call(this,this.nodes),e?.linkTextPath&&(e.textPath=e.linkTextPath),I.prototype.drawDataLabels.call(this,this.data),e?.textPath&&(e.textPath=t)}generatePoints(){let t,e;for(L.generatePoints.apply(this,arguments),this.options.nodes&&this.options.nodes.forEach(function(t){this.nodeLookup[t.id]||(this.nodeLookup[t.id]=this.createNode(t.id))},this),e=this.nodes.length-1;e>=0;e--)(t=this.nodes[e]).degree=t.getDegree(),t.radius=(0,i.pick)(t.marker&&t.marker.radius,this.options.marker&&this.options.marker.radius,0),t.key=t.name,this.nodeLookup[t.id]||t.remove();this.data.forEach(function(t){t.formatPrefix="link"}),this.indexateNodes()}getPointsCollection(){return this.nodes||[]}indexateNodes(){this.nodes.forEach(function(t,e){t.index=e})}init(t,e){return super.init(t,e),q.call(this),(0,i.addEvent)(this,"updatedData",()=>{this.layout&&this.layout.stop()}),(0,i.addEvent)(this,"afterUpdate",()=>{this.nodes.forEach(t=>{t&&t.series&&t.resolveColor()})}),(0,i.addEvent)(this,"afterSimulation",function(){this.deferDataLabels=!1,this.drawDataLabels()}),this}markerAttribs(t,e){let s=I.prototype.markerAttribs.call(this,t,e);return(0,i.defined)(t.plotY)||(s.y=0),s.x=(t.plotX||0)-(s.width||0)/2,s}pointAttribs(t,e){let i=e||t&&t.state||"normal",s=this.options.states?.[i],o=I.prototype.pointAttribs.call(this,t,i);return t&&!t.isNode&&(o=t.getLinkAttributes(),s&&(o={stroke:s.link?.color||o.stroke,dashstyle:s.link?.dashStyle||o.dashstyle,opacity:s.linkOpacity??s.link?.opacity??o.opacity,"stroke-width":s.link?.width||o["stroke-width"]})),o}render(){let t=this.points,e=this.chart.hoverPoint,i=[];this.points=this.nodes,R.render.call(this),this.points=t,t.forEach(function(t){t.fromNode&&t.toNode&&(t.renderLink(),t.redrawLink())}),e&&e.series===this&&this.redrawHalo(e),this.chart.hasRendered&&!this.options.dataLabels.allowOverlap&&(this.nodes.concat(this.points).forEach(function(t){t.dataLabel&&i.push(t.dataLabel)}),this.chart.hideOverlappingLabels(i))}setState(t,e){e?(this.points=this.nodes.concat(this.data),I.prototype.setState.apply(this,arguments),this.points=this.data):I.prototype.setState.apply(this,arguments),this.layout.simulation||t||this.render()}translate(){this.generatePoints(),this.deferLayout(),this.nodes.forEach(function(t){t.isInside=!0,t.linksFrom.forEach(function(t){t.shapeType="path",t.y=1})})}}G.defaultOptions=(0,i.merge)(I.defaultOptions,{stickyTracking:!1,inactiveOtherPoints:!0,marker:{enabled:!0,states:{inactive:{opacity:.3,animation:{duration:50}}}},states:{inactive:{linkOpacity:.3,link:{opacity:.3},animation:{duration:50}}},dataLabels:{formatter:function(){return String(this.key??"")},linkFormatter:function(){return this.fromNode.name+"<br>"+this.toNode.name},linkTextPath:{enabled:!0},textPath:{enabled:!1},style:{transition:"opacity 2000ms"},defer:!0,animation:{defer:1e3}},link:{color:"rgba(100, 100, 100, 0.5)",width:1},draggable:!0,layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:1,enableSimulation:!1,theta:.5,maxSpeed:10,approximation:"none",type:"reingold-fruchterman",integration:"euler",maxIterations:1e3,gravitationalConstant:.0625,friction:-.981},showInLegend:!1}),(0,i.extend)(G.prototype,{pointClass:S,animate:void 0,directTouch:!0,drawGraph:void 0,forces:["barycenter","repulsive","attractive"],hasDraggableNodes:!0,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["from","to"],requireSorting:!1,trackerGroups:["group","markerGroup","dataLabelsGroup"],initDataLabels:B,buildKDTree:C,createNode:L.createNode,drawTracker:O.drawTracker,onMouseDown:d.onMouseDown,onMouseMove:d.onMouseMove,onMouseUp:d.onMouseUp,redrawHalo:d.redrawHalo}),k().registerSeriesType("networkgraph",G);let H=r();G.compose(H.Chart);let U=r();export{U as default};
|
|
13
|
+
*/import*as t from"../highcharts.js";let e={};e.n=t=>{let i=t&&t.__esModule?()=>t.default:()=>t;return e.d(i,{a:i}),i},e.d=(t,i)=>{if(Array.isArray(i))for(var s=0;s<i.length;){var o=i[s++],r=i[s++];e.o(t,o)?0===r&&s++:0===r?Object.defineProperty(t,o,{enumerable:!0,value:i[s++]}):Object.defineProperty(t,o,{enumerable:!0,get:r})}else for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},e.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let i=t.default;var s,o,r=e.n(i);let a=t.default.SVGElement;var n=e.n(a);let{composed:h}=r();function l(){let t,e,s,o,r=this;r.container&&(t=(0,i.addEvent)(r.container,"mousedown",t=>{e&&e(),s&&s(),(o=r.hoverPoint)&&o.series&&o.series.hasDraggableNodes&&o.series.options.draggable&&(o.series.onMouseDown(o,t),e=(0,i.addEvent)(r.container,"mousemove",t=>o&&o.series&&o.series.onMouseMove(o,t)),s=(0,i.addEvent)(r.container.ownerDocument,"mouseup",t=>(e(),s(),o&&o.series&&o.series.onMouseUp(o,t))))})),(0,i.addEvent)(r,"destroy",function(){t()})}let d={compose:function(t){(0,i.pushUnique)(h,"DragNodes")&&(0,i.addEvent)(t,"load",l)},onMouseDown:function(t,e){let{panKey:i}=this.chart.options.chart;if(i&&e[`${i}Key`])return;let s=this.chart.pointer?.normalize(e)||e;t.fixedPosition={chartX:s.chartX,chartY:s.chartY,plotX:t.plotX,plotY:t.plotY},t.inDragMode=!0},onMouseMove:function(t,e){if(t.fixedPosition&&t.inDragMode){let i,s,o=this.chart,r=o.pointer?.normalize(e)||e,a=t.fixedPosition.chartX-r.chartX,n=t.fixedPosition.chartY-r.chartY,h=o.graphLayoutsLookup;(Math.abs(a)>5||Math.abs(n)>5)&&(i=t.fixedPosition.plotX-a,s=t.fixedPosition.plotY-n,o.isInsidePlot(i,s)&&(t.plotX=i,t.plotY=s,t.hasDragged=!0,this.redrawHalo(t),h.forEach(t=>{t.restartSimulation()})))}},onMouseUp:function(t){t.fixedPosition&&(t.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),t.inDragMode=t.hasDragged=!1,this.options.fixedDraggable||delete t.fixedPosition)},redrawHalo:function(t){t&&this.halo&&this.halo.attr({d:t.haloPath((0,i.isObject)(this.options.states?.hover?.halo)&&this.options.states?.hover?.halo.size||0)})}},{composed:p}=r();function c(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation()}),this.redraw())}function u(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation(!1)}),this.redraw())}function f(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(t=>{t.stop()})}function m(){let t,e=!1,s=i=>{i.maxIterations--&&isFinite(i.temperature)&&!i.isStable()&&!i.enableSimulation&&(i.beforeStep&&i.beforeStep(),i.step(),t=!1,e=!0)};if(this.graphLayoutsLookup&&!this.pointer?.hasDragged){for((0,i.setAnimation)(!1,this),this.graphLayoutsLookup.forEach(t=>t.start());!t;)t=!0,this.graphLayoutsLookup.forEach(s);e&&this.series.forEach(t=>{t&&t.layout&&(t.render(),(0,i.fireEvent)(t,"afterSimulation"))})}}let g=function(t){(0,i.pushUnique)(p,"GraphLayout")&&((0,i.addEvent)(t,"afterPrint",c),(0,i.addEvent)(t,"beforePrint",u),(0,i.addEvent)(t,"predraw",f),(0,i.addEvent)(t,"render",m))},y={},b={},x=t.default.SeriesRegistry;var v=e.n(x);let{series:{prototype:k,prototype:{pointClass:{prototype:N}}}}=v();!function(t){function e(){if(!this.hasDataLabels?.()&&this.nodes)for(let t of this.nodes)t.destroyElements({dataLabel:1})}function s(){return this.data=[].concat(this.points||[],this.nodes),k.destroy.apply(this,arguments)}function o(){this.nodes&&(this.nodes.forEach(t=>{t.destroy()}),this.nodes.length=0),k.setData.apply(this,arguments)}function r(t){let e=arguments,i=this.isNode?this.linksTo.concat(this.linksFrom):[this.fromNode,this.toNode];"select"!==t&&i.forEach(t=>{t&&t.series&&(N.setState.apply(t,e),!t.isNode&&(t.fromNode.graphic&&N.setState.apply(t.fromNode,e),t.toNode&&t.toNode.graphic&&N.setState.apply(t.toNode,e)))}),N.setState.apply(this,e)}function a(t,e,s,o){let r=this.series.options.nodes,a=this.series.options.data,n=a?.length||0,h=a?.[this.index];if(N.update.call(this,t,!this.isNode&&e,s,o),this.isNode){let t=(r||[]).reduce((t,e,i)=>this.id===e.id?i:t,-1),o=(0,i.merge)(r&&r[t]||{},a?.[this.index]||{});a&&(h?a[this.index]=h:a.length=n),r?t>=0?r[t]=o:r.push(o):this.series.options.nodes=[o],(e??!0)&&this.series.chart.redraw(s)}}t.compose=function(t,n){let h=t.prototype,l=n.prototype;return h.setNodeState=r,h.setState=r,h.update=a,l.destroy=s,l.setData=o,(0,i.addEvent)(n,"afterUpdate",e),n},t.createNode=function(t){let e=this.pointClass,s=(t,e)=>(0,i.find)(t,t=>t.id===e),o=s(this.nodes,t),r;if(!o){r=this.options.nodes&&s(this.options.nodes,t);let a=new e(this,(0,i.extend)({className:"highcharts-node",isNode:!0,id:t,y:1},r));a.linksTo=[],a.linksFrom=[],a.getSum=function(){let t=0,e=0;return a.linksTo.forEach(e=>{t+=e.weight||0}),a.linksFrom.forEach(t=>{e+=t.weight||0}),Math.max(t,e)},a.offset=function(t,e){let i=0;for(let s=0;s<a[e].length;s++){if(a[e][s]===t)return i;i+=a[e][s].weight}},a.hasShape=function(){let t=0;return a.linksTo.forEach(e=>{e.outgoing&&t++}),!a.linksTo.length||t!==a.linksTo.length},a.index=this.nodes.push(a)-1,o=a}return o.formatPrefix="node",o.name=o.name||o.options.id||"",o.mass=o.options.mass??(o.options.marker&&o.options.marker.radius)??(this.options.marker&&this.options.marker.radius)??4,o},t.destroy=s,t.generatePoints=function(){let t=this.chart,e={};k.generatePoints.call(this),this.nodes||(this.nodes=[]),this.colorCounter=0,this.nodes.forEach(t=>{t.linksFrom.length=0,t.linksTo.length=0,t.level=t.options.level}),this.points.forEach(s=>{(0,i.defined)(s.from)&&(e[s.from]||(e[s.from]=this.createNode(s.from)),e[s.from].linksFrom.push(s),s.fromNode=e[s.from],t.styledMode?s.colorIndex=s.options.colorIndex??e[s.from].colorIndex:s.color=s.options.color||e[s.from].color),(0,i.defined)(s.to)&&(e[s.to]||(e[s.to]=this.createNode(s.to)),e[s.to].linksTo.push(s),s.toNode=e[s.to]),s.name=s.name||s.id},this),this.nodeLookup=e},t.setNodeState=r,t.updateNode=a}(o||(o={}));let L=o,{series:{prototype:P,prototype:{pointClass:w}}}=v();class S extends w{destroy(){return this.isNode&&this.linksFrom.concat(this.linksTo).forEach(function(t){t.destroyElements&&t.destroyElements()}),this.series.layout.removeElementFromCollection(this,this.series.layout[this.isNode?"nodes":"links"]),w.prototype.destroy.apply(this,arguments)}getDegree(){let t=this.isNode?this.linksFrom.length+this.linksTo.length:0;return 0===t?1:t}getLinkAttributes(){let t=this.series.options.link,e=this.options;return{"stroke-width":e.width??t.width,stroke:e.color||t.color,dashstyle:e.dashStyle||t.dashStyle,opacity:e.opacity??t.opacity??1}}getLinkPath(){let t=this.fromNode,e=this.toNode;return t.plotX>e.plotX&&(t=this.toNode,e=this.fromNode),[["M",t.plotX||0,t.plotY||0],["L",e.plotX||0,e.plotY||0]]}getMass(){let t=this.fromNode.mass,e=this.toNode.mass,i=t+e;return{fromNode:1-t/i,toNode:1-e/i}}constructor(t,e,s){super(t,e,s),this.series.options.draggable&&!this.series.chart.styledMode&&((0,i.addEvent)(this,"mouseOver",function(){(0,i.css)(this.series.chart.container,{cursor:"move"})}),(0,i.addEvent)(this,"mouseOut",function(){(0,i.css)(this.series.chart.container,{cursor:"default"})}))}isValid(){return!this.isNode||(0,i.defined)(this.id)}redrawLink(){let t,e=this.getLinkPath();if(this.graphic){this.shapeArgs={d:e},this.series.chart.styledMode||(t=this.series.pointAttribs(this),this.graphic.attr(t),(this.dataLabels||[]).forEach(function(e){e&&e.attr({opacity:t.opacity})})),this.graphic.animate(this.shapeArgs);let i=e[0],s=e[1];"M"===i[0]&&"L"===s[0]&&(this.plotX=(i[1]+s[1])/2,this.plotY=(i[2]+s[2])/2)}}remove(t,e){let i=this.series,s=i.options.nodes||[],o,r=s.length;if(this.isNode){for(i.points=[],[].concat(this.linksFrom).concat(this.linksTo).forEach(function(t){(o=t.fromNode.linksFrom.indexOf(t))>-1&&t.fromNode.linksFrom.splice(o,1),(o=t.toNode.linksTo.indexOf(t))>-1&&t.toNode.linksTo.splice(o,1),P.removePoint.call(i,i.data.indexOf(t),!1,!1)}),i.points=i.data.slice(),i.nodes.splice(i.nodes.indexOf(this),1);r--;)if(s[r].id===this.options.id){i.options.nodes.splice(r,1);break}this&&this.destroy(),i.isDirty=!0,i.isDirtyData=!0,t&&i.chart.redraw(t)}else i.removePoint(i.data.indexOf(this),t,e)}renderLink(){let t;!this.graphic&&(this.graphic=this.series.chart.renderer.path(this.getLinkPath()).addClass(this.getClassName(),!0).add(this.series.group),this.series.chart.styledMode||(t=this.series.pointAttribs(this),this.graphic.attr(t),(this.dataLabels||[]).forEach(function(e){e&&e.attr({opacity:t.opacity})})))}}(0,i.extend)(S.prototype,{setState:L.setNodeState});let M={attractive:function(t,e,i,s){let o=t.getMass(),r=i.x/s*e,a=i.y/s*e;t.fromNode.fixedPosition||(t.fromNode.dispX-=r*o.fromNode/t.fromNode.degree,t.fromNode.dispY-=a*o.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.dispX+=r*o.toNode/t.toNode.degree,t.toNode.dispY+=a*o.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return t*t/e},barycenter:function(){let t=this.options.gravitationalConstant,e=this.barycenter.xFactor,i=this.barycenter.yFactor;this.nodes.forEach(function(s){if(!s.fixedPosition){let o=s.getDegree(),r=o*(1+o/2);s.dispX+=(e-s.plotX)*t*r/s.degree,s.dispY+=(i-s.plotY)*t*r/s.degree}})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.3)},integrate:function(t,e){e.dispX+=e.dispX*t.options.friction,e.dispY+=e.dispY*t.options.friction;let i=e.temperature=t.vectorLength({x:e.dispX,y:e.dispY});0!==i&&(e.plotX+=e.dispX/i*Math.min(Math.abs(e.dispX),t.temperature),e.plotY+=e.dispY/i*Math.min(Math.abs(e.dispY),t.temperature))},repulsive:function(t,e,i,s){t.dispX+=i.x/s*e/t.degree,t.dispY+=i.y/s*e/t.degree},repulsiveForceFunction:function(t,e){return e*e/t}};class E{constructor(t){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=t,this.boxSize=Math.min(t.width,t.height)}divideBox(){let t=this.box.width/2,e=this.box.height/2;this.nodes[0]=new E({left:this.box.left,top:this.box.top,width:t,height:e}),this.nodes[1]=new E({left:this.box.left+t,top:this.box.top,width:t,height:e}),this.nodes[2]=new E({left:this.box.left+t,top:this.box.top+e,width:t,height:e}),this.nodes[3]=new E({left:this.box.left,top:this.box.top+e,width:t,height:e})}getBoxPosition(t){let e=t.plotX<this.box.left+this.box.width/2,i=t.plotY<this.box.top+this.box.height/2;return e?3*!i:i?1:2}insert(t,e){let i;this.isInternal?this.nodes[this.getBoxPosition(t)].insert(t,e-1):(this.isEmpty=!1,this.body?e?(this.isInternal=!0,this.divideBox(),!0!==this.body&&(this.nodes[this.getBoxPosition(this.body)].insert(this.body,e-1),this.body=!0),this.nodes[this.getBoxPosition(t)].insert(t,e-1)):((i=new E({top:t.plotX||NaN,left:t.plotY||NaN,width:.1,height:.1})).body=t,i.isInternal=!1,this.nodes.push(i)):(this.isInternal=!1,this.body=t))}updateMassAndCenter(){let t=0,e=0,i=0;if(this.isInternal){for(let s of this.nodes)s.isEmpty||(t+=s.mass,e+=s.plotX*s.mass,i+=s.plotY*s.mass);e/=t,i/=t}else this.body&&(t=this.body.mass,e=this.body.plotX,i=this.body.plotY);this.mass=t,this.plotX=e,this.plotY=i}}let T=class{constructor(t,e,i,s){this.box={left:t,top:e,width:i,height:s},this.maxDepth=25,this.root=new E(this.box),this.root.isInternal=!0,this.root.isRoot=!0,this.root.divideBox()}calculateMassAndCenter(){this.visitNodeRecursive(null,null,function(t){t.updateMassAndCenter()})}insertNodes(t){for(let e of t)this.root.insert(e,this.maxDepth)}visitNodeRecursive(t,e,i){let s;if(t||(t=this.root),t===this.root&&e&&(s=e(t)),!1!==s){for(let o of t.nodes){if(o.isInternal){if(e&&(s=e(o)),!1===s)continue;this.visitNodeRecursive(o,e,i)}else o.body&&e&&e(o.body);i&&i(o)}t===this.root&&i&&i(t)}}},X={attractive:function(t,e,i){let s=t.getMass(),o=-i.x*e*this.diffTemperature,r=-i.y*e*this.diffTemperature;t.fromNode.fixedPosition||(t.fromNode.plotX-=o*s.fromNode/t.fromNode.degree,t.fromNode.plotY-=r*s.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.plotX+=o*s.toNode/t.toNode.degree,t.toNode.plotY+=r*s.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return(e-t)/t},barycenter:function(){let t=this.options.gravitationalConstant||0,e=(this.barycenter.xFactor-(this.box.left+this.box.width)/2)*t,i=(this.barycenter.yFactor-(this.box.top+this.box.height)/2)*t;this.nodes.forEach(function(t){t.fixedPosition||(t.plotX-=e/t.mass/t.degree,t.plotY-=i/t.mass/t.degree)})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.5)},integrate:function(t,e){let i=-t.options.friction,s=t.options.maxSpeed,o=e.prevX,r=e.prevY,a=(e.plotX+e.dispX-o)*i,n=(e.plotY+e.dispY-r)*i,h=Math.abs,l=h(a)/(a||1),d=h(n)/(n||1),p=l*Math.min(s,Math.abs(a)),c=d*Math.min(s,Math.abs(n));e.prevX=e.plotX+e.dispX,e.prevY=e.plotY+e.dispY,e.plotX+=p,e.plotY+=c,e.temperature=t.vectorLength({x:p,y:c})},repulsive:function(t,e,i){let s=e*this.diffTemperature/t.mass/t.degree;t.fixedPosition||(t.plotX+=i.x*s,t.plotY+=i.y*s)},repulsiveForceFunction:function(t,e){return(e-t)/t*(e>t)}},{win:Y}=r();class D{constructor(){this.box={},this.currentStep=0,this.initialRendering=!0,this.links=[],this.nodes=[],this.series=[],this.simulation=!1}static compose(t){g(t),y.euler=M,y.verlet=X,b["reingold-fruchterman"]=D}init(t){this.options=t,this.nodes=[],this.links=[],this.series=[],this.box={x:0,y:0,width:0,height:0},this.setInitialRendering(!0),this.integration=y[t.integration],this.enableSimulation=t.enableSimulation,this.attractiveForce=t.attractiveForce??this.integration.attractiveForceFunction,this.repulsiveForce=t.repulsiveForce??this.integration.repulsiveForceFunction,this.approximation=t.approximation}updateSimulation(t){this.enableSimulation=t??this.options.enableSimulation}start(){let t=this.series,e=this.options;this.currentStep=0,this.forces=t[0]&&t[0].forces||[],this.chart=t[0]&&t[0].chart,this.initialRendering&&(this.initPositions(),t.forEach(function(t){t.finishedAnimating=!0,t.render()})),this.setK(),this.resetSimulation(e),this.enableSimulation&&this.step()}step(){let t=this.series;for(let t of(this.currentStep++,"barnes-hut"===this.approximation&&(this.createQuadTree(),this.quadTree.calculateMassAndCenter()),this.forces||[]))this[t+"Forces"](this.temperature);if(this.applyLimits(),this.temperature=this.coolDown(this.startTemperature,this.diffTemperature,this.currentStep),this.prevSystemTemperature=this.systemTemperature,this.systemTemperature=this.getSystemTemperature(),this.enableSimulation){for(let e of t)e.chart&&e.render();this.maxIterations--&&isFinite(this.temperature)&&!this.isStable()?(this.simulation&&Y.cancelAnimationFrame(this.simulation),this.simulation=Y.requestAnimationFrame(()=>this.step())):(this.simulation=!1,this.series.forEach(t=>{(0,i.fireEvent)(t,"afterSimulation")}))}}stop(){this.simulation&&Y.cancelAnimationFrame(this.simulation)}setArea(t,e,i,s){this.box={left:t,top:e,width:i,height:s}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(t,e){for(let i of t)-1===e.indexOf(i)&&e.push(i)}removeElementFromCollection(t,e){let i=e.indexOf(t);-1!==i&&e.splice(i,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(t){this.maxIterations=t??this.options.maxIterations}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(t){this.initialRendering=t}createQuadTree(){this.quadTree=new T(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){let t=this.options.initialPositions;if((0,i.isFunction)(t))for(let e of(t.call(this),this.nodes))(0,i.defined)(e.prevX)||(e.prevX=e.plotX),(0,i.defined)(e.prevY)||(e.prevY=e.plotY),e.dispX=0,e.dispY=0;else"circle"===t?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){let t,e=this.box,i=this.nodes,s=2*Math.PI/(i.length+1),o=i.filter(function(t){return 0===t.linksTo.length}),r={},a=this.options.initialPositionRadius,n=t=>{for(let e of t.linksFrom||[])r[e.toNode.id]||(r[e.toNode.id]=!0,h.push(e.toNode),n(e.toNode))},h=[];for(let t of o)h.push(t),n(t);if(h.length)for(let t of i)-1===h.indexOf(t)&&h.push(t);else h=i;for(let i=0,o=h.length;i<o;++i)(t=h[i]).plotX=t.prevX=t.plotX??e.width/2+a*Math.cos(i*s),t.plotY=t.prevY=t.plotY??e.height/2+a*Math.sin(i*s),t.dispX=0,t.dispY=0}setRandomPositions(){let t,e=this.box,i=this.nodes,s=i.length+1,o=t=>{let e=t*t/Math.PI;return e-Math.floor(e)};for(let r=0,a=i.length;r<a;++r)(t=i[r]).plotX=t.prevX=t.plotX??e.width*o(r),t.plotY=t.prevY=t.plotY??e.height*o(s+r),t.dispX=0,t.dispY=0}force(t,...e){this.integration[t].apply(this,e)}barycenterForces(){this.getBarycenter(),this.force("barycenter")}getBarycenter(){let t=0,e=0,i=0;for(let s of this.nodes)e+=s.plotX*s.mass,i+=s.plotY*s.mass,t+=s.mass;return this.barycenter={x:e,y:i,xFactor:e/t,yFactor:i/t},this.barycenter}barnesHutApproximation(t,e){let i,s,o=this.getDistXY(t,e),r=this.vectorLength(o);return t!==e&&0!==r&&(e.isInternal?e.boxSize/r<this.options.theta&&0!==r?(s=this.repulsiveForce(r,this.k),this.force("repulsive",t,s*e.mass,o,r),i=!1):i=!0:(s=this.repulsiveForce(r,this.k),this.force("repulsive",t,s*e.mass,o,r))),i}repulsiveForces(){if("barnes-hut"===this.approximation)for(let t of this.nodes)this.quadTree.visitNodeRecursive(null,e=>this.barnesHutApproximation(t,e));else{let t,e,i;for(let s of this.nodes)for(let o of this.nodes)s===o||s.fixedPosition||(i=this.getDistXY(s,o),0!==(e=this.vectorLength(i))&&(t=this.repulsiveForce(e,this.k),this.force("repulsive",s,t*o.mass,i,e)))}}attractiveForces(){let t,e,i;for(let s of this.links)s.fromNode&&s.toNode&&(t=this.getDistXY(s.fromNode,s.toNode),0!==(e=this.vectorLength(t))&&(i=this.attractiveForce(e,this.k),this.force("attractive",s,i,t,e)))}applyLimits(){for(let t of this.nodes)t.fixedPosition||(this.integration.integrate(this,t),this.applyLimitBox(t,this.box),t.dispX=0,t.dispY=0)}applyLimitBox(t,e){let s=t.radius;t.plotX=(0,i.clamp)(t.plotX,e.left+s,e.width-s),t.plotY=(0,i.clamp)(t.plotY,e.top+s,e.height-s)}coolDown(t,e,i){return t-e*i}isStable(){return 1e-5>Math.abs(this.systemTemperature-this.prevSystemTemperature)||this.temperature<=0}getSystemTemperature(){let t=0;for(let e of this.nodes)t+=e.temperature;return t}vectorLength(t){return Math.sqrt(t.x*t.x+t.y*t.y)}getDistR(t,e){let i=this.getDistXY(t,e);return this.vectorLength(i)}getDistXY(t,e){let i=t.plotX-e.plotX,s=t.plotY-e.plotY;return{x:i,y:s,absX:Math.abs(i),absY:Math.abs(s)}}}let{composed:F,deg2rad:A}=r(),{noop:C}=r(),{series:I,seriesTypes:{column:{prototype:O},line:{prototype:R}}}=v(),{initDataLabels:B,initDataLabelsDefer:q}={initDataLabels:function(){let t=this.options.dataLabels;if(!this.dataLabelsGroup){let e=this.initDataLabelsGroup(0,t);return!this.chart.styledMode&&t?.style&&e.css(t.style),e.attr({opacity:0}),this.visible&&(this.options.animation&&t?.animation?e.animate({opacity:1},t.animation):e.attr({opacity:1}),e.show()),e}return this.dataLabelsGroup.attr({opacity:1,...this.getPlotBox("data-labels")}),this.dataLabelsGroup},initDataLabelsDefer:function(){let t=this.options.dataLabels;t?.defer&&this.options.layoutAlgorithm?.enableSimulation?(0,i.syncTimeout)(()=>{this.deferDataLabels=!1},t?(0,i.animObject)(t.animation).defer:0):this.deferDataLabels=!1}};s=n(),(0,i.pushUnique)(F,"TextPath")&&((0,i.addEvent)(s,"afterGetBBox",function(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let t=[],{b:s,h:o}=this.renderer.fontMetrics(this.element),r=o-s,a=RegExp('(<tspan>|<tspan(?!\\sclass="highcharts-br")[^>]*>|<\\/tspan>)',"g"),n=i.innerHTML.replace(a,"").split(/<tspan class="highcharts-br"[^>]*>/),h=n.length,l=(t,e)=>{let{x:o,y:a}=e,n=(i.getRotationOfChar(t)-90)*A,h=Math.cos(n),l=Math.sin(n);return[[o-r*h,a-r*l],[o+s*h,a+s*l]]};for(let e=0,s=0;s<h;s++){let o=n[s].length;for(let r=0;r<o;r+=5)try{let o=e+r+s,[a,n]=l(o,i.getStartPositionOfChar(o));0===r?(t.push(n),t.push(a)):(0===s&&t.unshift(n),s===h-1&&t.push(a))}catch{break}e+=o-1;try{let o=e+s,r=i.getEndPositionOfChar(o),[a,n]=l(o,r);t.unshift(n),t.unshift(a)}catch{break}}t.length&&t.push(t[0].slice()),e.polygon=t}return e}),(0,i.addEvent)(s,"beforeAddingDataLabel",function(t){let e=t.labelOptions,i=t.point,s=e[i.formatPrefix+"TextPath"]||e.textPath;s&&!e.useHTML&&(this.setTextPath(i.getDataLabelPath?.(this)||i.graphic,s),i.dataLabelPath&&!s.enabled&&(i.dataLabelPath=i.dataLabelPath.destroy()))}),s.prototype.setTextPath=s.prototype.setTextPath??function(t,e){let s=this.renderer.url,o=this.text||this,r=o.textPath,{attributes:a,enabled:n}=(0,i.merge)({enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);if(t=t||r&&r.path,r?.undo(),t&&n){let e=(0,i.addEvent)(o,"afterModifyTree",e=>{if(t&&n){let r=t.attr("id");r||t.attr("id",r=(0,i.uniqueKey)());let n={x:0,y:0};(0,i.defined)(a.dx)&&(n.dx=a.dx,delete a.dx),(0,i.defined)(a.dy)&&(n.dy=a.dy,delete a.dy),o.attr(n),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let h=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:(0,i.extend)(a,{"text-anchor":a.textAnchor,href:`${s}#${r}`}),children:h}}});o.textPath={path:t,undo:e}}else o.attr({dx:0,dy:0}),delete o.textPath;return this.added&&(o.textCache="",this.renderer.buildText(o)),this});class G extends I{constructor(){super(...arguments),this.deferDataLabels=!0}static compose(t){d.compose(t),D.compose(t)}deferLayout(){let t=this.options.layoutAlgorithm,e=this.chart.options.chart,s,o=this.chart.graphLayoutsStorage,r=this.chart.graphLayoutsLookup;this.visible&&(o||(this.chart.graphLayoutsStorage=o={},this.chart.graphLayoutsLookup=r=[]),(s=o[t.type])||(t.enableSimulation=(0,i.defined)(e.forExport)?!e.forExport:t.enableSimulation,o[t.type]=s=new b[t.type],s.init(t),r.splice(s.index,0,s)),this.layout=s,s.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),s.addElementsToCollection([this],s.series),s.addElementsToCollection(this.nodes,s.nodes),s.addElementsToCollection(this.points,s.links))}destroy(){this.layout&&this.layout.removeElementFromCollection(this,this.layout.series),L.destroy.call(this)}drawDataLabels(){let t;if(this.deferDataLabels)return;let e=this.options.dataLabels;e?.textPath&&(t=e.textPath),I.prototype.drawDataLabels.call(this,this.nodes),e?.linkTextPath&&(e.textPath=e.linkTextPath),I.prototype.drawDataLabels.call(this,this.data),e?.textPath&&(e.textPath=t)}generatePoints(){let t,e;for(L.generatePoints.apply(this,arguments),this.options.nodes&&this.options.nodes.forEach(function(t){this.nodeLookup[t.id]||(this.nodeLookup[t.id]=this.createNode(t.id))},this),e=this.nodes.length-1;e>=0;e--)(t=this.nodes[e]).degree=t.getDegree(),t.radius=(t.marker&&t.marker.radius)??(this.options.marker&&this.options.marker.radius)??0,t.key=t.name,this.nodeLookup[t.id]||t.remove();this.data.forEach(function(t){t.formatPrefix="link"}),this.indexateNodes()}getPointsCollection(){return this.nodes||[]}indexateNodes(){this.nodes.forEach(function(t,e){t.index=e})}init(t,e){return super.init(t,e),q.call(this),(0,i.addEvent)(this,"updatedData",()=>{this.layout&&this.layout.stop()}),(0,i.addEvent)(this,"afterUpdate",()=>{this.nodes.forEach(t=>{t&&t.series&&t.resolveColor()})}),(0,i.addEvent)(this,"afterSimulation",function(){this.deferDataLabels=!1,this.drawDataLabels()}),this}markerAttribs(t,e){let s=I.prototype.markerAttribs.call(this,t,e);return(0,i.defined)(t.plotY)||(s.y=0),s.x=(t.plotX||0)-(s.width||0)/2,s}pointAttribs(t,e){let i=e||t&&t.state||"normal",s=this.options.states?.[i],o=I.prototype.pointAttribs.call(this,t,i);return t&&!t.isNode&&(o=t.getLinkAttributes(),s&&(o={stroke:s.link?.color||o.stroke,dashstyle:s.link?.dashStyle||o.dashstyle,opacity:s.linkOpacity??s.link?.opacity??o.opacity,"stroke-width":s.link?.width||o["stroke-width"]})),o}render(){let t=this.points,e=this.chart.hoverPoint,i=[];this.points=this.nodes,R.render.call(this),this.points=t,t.forEach(function(t){t.fromNode&&t.toNode&&(t.renderLink(),t.redrawLink())}),e&&e.series===this&&this.redrawHalo(e),this.chart.hasRendered&&!this.options.dataLabels.allowOverlap&&(this.nodes.concat(this.points).forEach(function(t){t.dataLabel&&i.push(t.dataLabel)}),this.chart.hideOverlappingLabels(i))}setState(t,e){e?(this.points=this.nodes.concat(this.data),I.prototype.setState.apply(this,arguments),this.points=this.data):I.prototype.setState.apply(this,arguments),this.layout.simulation||t||this.render()}translate(){this.generatePoints(),this.deferLayout(),this.nodes.forEach(function(t){t.isInside=!0,t.linksFrom.forEach(function(t){t.shapeType="path",t.y=1})})}}G.defaultOptions=(0,i.merge)(I.defaultOptions,{stickyTracking:!1,inactiveOtherPoints:!0,marker:{enabled:!0,states:{inactive:{opacity:.3,animation:{duration:50}}}},states:{inactive:{linkOpacity:.3,link:{opacity:.3},animation:{duration:50}}},dataLabels:{formatter:function(){return String(this.key??"")},linkFormatter:function(){return this.fromNode.name+"<br>"+this.toNode.name},linkTextPath:{enabled:!0},textPath:{enabled:!1},style:{transition:"opacity 2000ms"},defer:!0,animation:{defer:1e3}},link:{color:"rgba(100, 100, 100, 0.5)",width:1},draggable:!0,layoutAlgorithm:{initialPositions:"circle",initialPositionRadius:1,enableSimulation:!1,theta:.5,maxSpeed:10,approximation:"none",type:"reingold-fruchterman",integration:"euler",maxIterations:1e3,gravitationalConstant:.0625,friction:-.981},showInLegend:!1}),(0,i.extend)(G.prototype,{pointClass:S,animate:void 0,directTouch:!0,drawGraph:void 0,forces:["barycenter","repulsive","attractive"],hasDraggableNodes:!0,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:["from","to"],requireSorting:!1,trackerGroups:["group","markerGroup","dataLabelsGroup"],initDataLabels:B,buildKDTree:C,createNode:L.createNode,drawTracker:O.drawTracker,onMouseDown:d.onMouseDown,onMouseMove:d.onMouseMove,onMouseUp:d.onMouseUp,redrawHalo:d.redrawHalo}),v().registerSeriesType("networkgraph",G);let H=r();G.compose(H.Chart);let U=r();export{U as default};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
2
2
|
/**
|
|
3
|
-
* @license Highcharts JS v13.0.
|
|
3
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
4
4
|
* @module highcharts/modules/networkgraph
|
|
5
5
|
* @requires highcharts
|
|
6
6
|
*
|
|
@@ -497,13 +497,10 @@ var NodesComposition;
|
|
|
497
497
|
// For use in formats
|
|
498
498
|
node.name = node.name || node.options.id || '';
|
|
499
499
|
// Mass is used in networkgraph:
|
|
500
|
-
node.mass = (
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
this.options.marker && this.options.marker.radius,
|
|
505
|
-
// Default:
|
|
506
|
-
4);
|
|
500
|
+
node.mass = (node.options.mass ??
|
|
501
|
+
(node.options.marker && node.options.marker.radius) ??
|
|
502
|
+
(this.options.marker && this.options.marker.radius) ??
|
|
503
|
+
4);
|
|
507
504
|
return node;
|
|
508
505
|
}
|
|
509
506
|
NodesComposition.createNode = createNode;
|
|
@@ -546,7 +543,9 @@ var NodesComposition;
|
|
|
546
543
|
point.fromNode = nodeLookup[point.from];
|
|
547
544
|
// Point color defaults to the fromNode's color
|
|
548
545
|
if (chart.styledMode) {
|
|
549
|
-
point.colorIndex =
|
|
546
|
+
point.colorIndex =
|
|
547
|
+
point.options.colorIndex ??
|
|
548
|
+
nodeLookup[point.from].colorIndex;
|
|
550
549
|
}
|
|
551
550
|
else {
|
|
552
551
|
point.color =
|
|
@@ -644,7 +643,7 @@ var NodesComposition;
|
|
|
644
643
|
else {
|
|
645
644
|
this.series.options.nodes = [nodeConfig];
|
|
646
645
|
}
|
|
647
|
-
if (
|
|
646
|
+
if (redraw ?? true) {
|
|
648
647
|
this.series.chart.redraw(animation);
|
|
649
648
|
}
|
|
650
649
|
}
|
|
@@ -724,10 +723,10 @@ class NetworkgraphPoint extends Point {
|
|
|
724
723
|
getLinkAttributes() {
|
|
725
724
|
const linkOptions = this.series.options.link, pointOptions = this.options;
|
|
726
725
|
return {
|
|
727
|
-
'stroke-width': (
|
|
726
|
+
'stroke-width': (pointOptions.width ?? linkOptions.width),
|
|
728
727
|
stroke: (pointOptions.color || linkOptions.color),
|
|
729
728
|
dashstyle: (pointOptions.dashStyle || linkOptions.dashStyle),
|
|
730
|
-
opacity: (
|
|
729
|
+
opacity: (pointOptions.opacity ?? linkOptions.opacity ?? 1)
|
|
731
730
|
};
|
|
732
731
|
}
|
|
733
732
|
/**
|
|
@@ -2398,12 +2397,16 @@ class ReingoldFruchtermanLayout {
|
|
|
2398
2397
|
this.integration =
|
|
2399
2398
|
Series_GraphLayoutComposition.integrations[options.integration];
|
|
2400
2399
|
this.enableSimulation = options.enableSimulation;
|
|
2401
|
-
this.attractiveForce =
|
|
2402
|
-
|
|
2400
|
+
this.attractiveForce =
|
|
2401
|
+
options.attractiveForce ??
|
|
2402
|
+
this.integration.attractiveForceFunction;
|
|
2403
|
+
this.repulsiveForce =
|
|
2404
|
+
options.repulsiveForce ??
|
|
2405
|
+
this.integration.repulsiveForceFunction;
|
|
2403
2406
|
this.approximation = options.approximation;
|
|
2404
2407
|
}
|
|
2405
2408
|
updateSimulation(enable) {
|
|
2406
|
-
this.enableSimulation = (
|
|
2409
|
+
this.enableSimulation = (enable ?? this.options.enableSimulation);
|
|
2407
2410
|
}
|
|
2408
2411
|
start() {
|
|
2409
2412
|
const layout = this, series = this.series, options = this.options;
|
|
@@ -2533,7 +2536,7 @@ class ReingoldFruchtermanLayout {
|
|
|
2533
2536
|
}
|
|
2534
2537
|
}
|
|
2535
2538
|
setMaxIterations(maxIterations) {
|
|
2536
|
-
this.maxIterations = (
|
|
2539
|
+
this.maxIterations = (maxIterations ?? this.options.maxIterations);
|
|
2537
2540
|
}
|
|
2538
2541
|
setTemperature() {
|
|
2539
2542
|
this.temperature = this.startTemperature =
|
|
@@ -2609,8 +2612,12 @@ class ReingoldFruchtermanLayout {
|
|
|
2609
2612
|
// as a cluster in the middle
|
|
2610
2613
|
for (let i = 0, iEnd = sortedNodes.length; i < iEnd; ++i) {
|
|
2611
2614
|
node = sortedNodes[i];
|
|
2612
|
-
node.plotX = node.prevX =
|
|
2613
|
-
|
|
2615
|
+
node.plotX = node.prevX =
|
|
2616
|
+
node.plotX ??
|
|
2617
|
+
box.width / 2 + radius * Math.cos(i * angle);
|
|
2618
|
+
node.plotY = node.prevY =
|
|
2619
|
+
node.plotY ??
|
|
2620
|
+
box.height / 2 + radius * Math.sin(i * angle);
|
|
2614
2621
|
node.dispX = 0;
|
|
2615
2622
|
node.dispY = 0;
|
|
2616
2623
|
}
|
|
@@ -2631,8 +2638,9 @@ class ReingoldFruchtermanLayout {
|
|
|
2631
2638
|
// Initial positions:
|
|
2632
2639
|
for (let i = 0, iEnd = nodes.length; i < iEnd; ++i) {
|
|
2633
2640
|
node = nodes[i];
|
|
2634
|
-
node.plotX = node.prevX = (
|
|
2635
|
-
node.plotY = node.prevY =
|
|
2641
|
+
node.plotX = node.prevX = (node.plotX ?? box.width * unrandom(i));
|
|
2642
|
+
node.plotY = node.prevY =
|
|
2643
|
+
node.plotY ?? box.height * unrandom(nodesLength + i);
|
|
2636
2644
|
node.dispX = 0;
|
|
2637
2645
|
node.dispY = 0;
|
|
2638
2646
|
}
|
|
@@ -3351,7 +3359,9 @@ class NetworkgraphSeries extends Series {
|
|
|
3351
3359
|
for (i = this.nodes.length - 1; i >= 0; i--) {
|
|
3352
3360
|
node = this.nodes[i];
|
|
3353
3361
|
node.degree = node.getDegree();
|
|
3354
|
-
node.radius = (
|
|
3362
|
+
node.radius = ((node.marker && node.marker.radius) ??
|
|
3363
|
+
(this.options.marker && this.options.marker.radius) ??
|
|
3364
|
+
0);
|
|
3355
3365
|
node.key = node.name;
|
|
3356
3366
|
// If node exists, but it's not available in nodeLookup,
|
|
3357
3367
|
// then it's leftover from previous runs (e.g. setData)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
2
2
|
/**
|
|
3
|
-
* @license Highcharts JS v13.0.
|
|
3
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
4
4
|
* @module highcharts/modules/offline-exporting
|
|
5
5
|
* @requires highcharts
|
|
6
6
|
* @requires highcharts/modules/exporting
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Highcharts JS v13.0.
|
|
2
|
+
* Highcharts JS v13.0.2 (2026-08-27)
|
|
3
3
|
* Organization chart series type
|
|
4
4
|
* @module highcharts/modules/organization
|
|
5
5
|
* @requires highcharts
|
|
@@ -10,6 +10,6 @@
|
|
|
10
10
|
*
|
|
11
11
|
* A commercial license may be required depending on use,
|
|
12
12
|
* see www.highcharts.com/license
|
|
13
|
-
*/import*as t from"../highcharts.js";let e={};e.n=t=>{let i=t&&t.__esModule?()=>t.default:()=>t;return e.d(i,{a:i}),i},e.d=(t,i)=>{if(Array.isArray(i))for(var s=0;s<i.length;){var n=i[s++],r=i[s++];e.o(t,n)?0===r&&s++:0===r?Object.defineProperty(t,n,{enumerable:!0,value:i[s++]}):Object.defineProperty(t,n,{enumerable:!0,get:r})}else for(var n in i)e.o(i,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:i[n]})},e.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let i=t.default;var s,n=e.n(i);let r=t.default.SeriesRegistry;var a=e.n(r);let{sankey:{prototype:{pointClass:o}}}=a().seriesTypes,h=class extends o{constructor(t,e,i){super(t,e,i),this.isNode||(this.dataLabelOnNull=!0,this.formatPrefix="link")}getSum(){return 1}setNodeColumn(){super.setNodeColumn();let t=this,e=t.getFromNode().fromNode;if(!(0,i.defined)(t.options.column)&&0!==t.linksTo.length&&e&&"hanging"===e.options.layout){let s=-1,n;t.options.layout=
|
|
13
|
+
*/import*as t from"../highcharts.js";let e={};e.n=t=>{let i=t&&t.__esModule?()=>t.default:()=>t;return e.d(i,{a:i}),i},e.d=(t,i)=>{if(Array.isArray(i))for(var s=0;s<i.length;){var n=i[s++],r=i[s++];e.o(t,n)?0===r&&s++:0===r?Object.defineProperty(t,n,{enumerable:!0,value:i[s++]}):Object.defineProperty(t,n,{enumerable:!0,get:r})}else for(var n in i)e.o(i,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:i[n]})},e.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let i=t.default;var s,n=e.n(i);let r=t.default.SeriesRegistry;var a=e.n(r);let{sankey:{prototype:{pointClass:o}}}=a().seriesTypes,h=class extends o{constructor(t,e,i){super(t,e,i),this.isNode||(this.dataLabelOnNull=!0,this.formatPrefix="link")}getSum(){return 1}setNodeColumn(){super.setNodeColumn();let t=this,e=t.getFromNode().fromNode;if(!(0,i.defined)(t.options.column)&&0!==t.linksTo.length&&e&&"hanging"===e.options.layout){let s=-1,n;t.options.layout=t.options.layout??"hanging",t.hangsFrom=e,(0,i.find)(e.linksFrom,(e,i)=>{let n=e.toNode===t;return n&&(s=i),n});for(let i=0;i<e.linksFrom.length;++i)(n=e.linksFrom[i]).toNode.id===t.id?i=e.linksFrom.length:s+=function t(e){let i=e.linksFrom.length;return e.linksFrom.forEach(e=>{e.id===e.toNode.linksTo[0].id?i+=t(e.toNode):i--}),i}(n.toNode);t.column=(t.column||0)+s}}};function l(t,e){let i=[];for(let s=0;s<t.length;s++){let n=t[s][1],r=t[s][2];if("number"==typeof n&&"number"==typeof r)if(0===s)i.push(["M",n,r]);else if(s===t.length-1)i.push(["L",n,r]);else if(e){let a=t[s-1],o=t[s+1];if(a&&o){let t=a[1],s=a[2],h=o[1],l=o[2];if("number"==typeof t&&"number"==typeof h&&"number"==typeof s&&"number"==typeof l&&t!==h&&s!==l){let a=t<h?1:-1,o=s<l?1:-1;i.push(["L",n-a*Math.min(Math.abs(n-t),e),r-o*Math.min(Math.abs(r-s),e)],["C",n,r,n,r,n+a*Math.min(Math.abs(n-h),e),r+o*Math.min(Math.abs(r-l),e)])}}}else i.push(["L",n,r])}return i}let d=t.default.SVGElement;var p=e.n(d);let{composed:g,deg2rad:u}=n(),{sankey:c}=a().seriesTypes;s=p(),(0,i.pushUnique)(g,"TextPath")&&((0,i.addEvent)(s,"afterGetBBox",function(t){let e=t.bBox,i=this.element?.querySelector("textPath");if(i){let t=[],{b:s,h:n}=this.renderer.fontMetrics(this.element),r=n-s,a=RegExp('(<tspan>|<tspan(?!\\sclass="highcharts-br")[^>]*>|<\\/tspan>)',"g"),o=i.innerHTML.replace(a,"").split(/<tspan class="highcharts-br"[^>]*>/),h=o.length,l=(t,e)=>{let{x:n,y:a}=e,o=(i.getRotationOfChar(t)-90)*u,h=Math.cos(o),l=Math.sin(o);return[[n-r*h,a-r*l],[n+s*h,a+s*l]]};for(let e=0,s=0;s<h;s++){let n=o[s].length;for(let r=0;r<n;r+=5)try{let n=e+r+s,[a,o]=l(n,i.getStartPositionOfChar(n));0===r?(t.push(o),t.push(a)):(0===s&&t.unshift(o),s===h-1&&t.push(a))}catch{break}e+=n-1;try{let n=e+s,r=i.getEndPositionOfChar(n),[a,o]=l(n,r);t.unshift(o),t.unshift(a)}catch{break}}t.length&&t.push(t[0].slice()),e.polygon=t}return e}),(0,i.addEvent)(s,"beforeAddingDataLabel",function(t){let e=t.labelOptions,i=t.point,s=e[i.formatPrefix+"TextPath"]||e.textPath;s&&!e.useHTML&&(this.setTextPath(i.getDataLabelPath?.(this)||i.graphic,s),i.dataLabelPath&&!s.enabled&&(i.dataLabelPath=i.dataLabelPath.destroy()))}),s.prototype.setTextPath=s.prototype.setTextPath??function(t,e){let s=this.renderer.url,n=this.text||this,r=n.textPath,{attributes:a,enabled:o}=(0,i.merge)({enabled:!0,attributes:{dy:-5,startOffset:"50%",textAnchor:"middle"}},e);if(t=t||r&&r.path,r?.undo(),t&&o){let e=(0,i.addEvent)(n,"afterModifyTree",e=>{if(t&&o){let r=t.attr("id");r||t.attr("id",r=(0,i.uniqueKey)());let o={x:0,y:0};(0,i.defined)(a.dx)&&(o.dx=a.dx,delete a.dx),(0,i.defined)(a.dy)&&(o.dy=a.dy,delete a.dy),n.attr(o),this.attr({transform:""}),this.box&&(this.box=this.box.destroy());let h=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:"textPath",attributes:(0,i.extend)(a,{"text-anchor":a.textAnchor,href:`${s}#${r}`}),children:h}}});n.textPath={path:t,undo:e}}else n.attr({dx:0,dy:0}),delete n.textPath;return this.added&&(n.textCache="",this.renderer.buildText(n)),this});class f extends c{alignDataLabel(t,e,s){let n=t.shapeArgs,r=e.text;if(s.useHTML&&n){let t=(0,i.splat)(this.options.dataLabels.padding||0),s=this.options.borderWidth||0,a=s+2*t[3%t.length],o=s+2*t[0%t.length],h=n.width||0,l=n.height||0;this.chart.inverted&&(h=l,l=n.width||0),h-=a,l-=o,r.foreignObject?.attr({x:0,y:0,width:h,height:l}),(0,i.css)(r.element.parentNode,{width:h+"px",height:l+"px"}),(0,i.css)(r.element,{left:0,top:0,width:"100%",height:"100%",overflow:"hidden"}),e.getBBox=()=>({width:h,height:l,x:0,y:0}),e.width=h,e.height=l}super.alignDataLabel.apply(this,arguments)}createNode(t){let e=super.createNode.call(this,t);return e.getSum=()=>1,e}pointAttribs(t,e){let s=c.prototype.pointAttribs.call(this,t,e),n=t.isNode?t.level:t.fromNode.level,r=this.mapOptionsToLevel[n||0]||{},a=t.options,o=r.states?.[e||"normal"]||{},h=o.borderRadius??a.borderRadius??r.borderRadius??this.options.borderRadius,l=o.linkColor??a.linkColor??r.linkColor??this.options.linkColor??o.link?.color??a.link?.color??r.link?.color??this.options.link?.color,d=o.linkLineWidth??a.linkLineWidth??r.linkLineWidth??this.options.linkLineWidth??o.link?.lineWidth??a.link?.lineWidth??r.link?.lineWidth??this.options.link?.lineWidth,p=o.linkOpacity??a.linkOpacity??r.linkOpacity??this.options.linkOpacity??o.link?.linkOpacity??a.link?.linkOpacity??r.link?.linkOpacity??this.options.link?.linkOpacity;return t.isNode?(0,i.isNumber)(h)&&(s.r=h):(s.stroke=l,s["stroke-width"]=d,s.opacity=p,delete s.fill),s}translateLink(t){let{chart:e,options:s}=this,n=t.fromNode,r=t.toNode,a=s.linkLineWidth??s.link.lineWidth??0,o=s.link.offset??.5,h=t.options.link?.type??s.link.type;if(n.shapeArgs&&r.shapeArgs){let d=s.hangingIndent||0,p="right"===s.hangingSide,g=r.options.offset,u=/%$/.test(g)&&parseInt(g,10),c=e.inverted,f=(0,i.crisp)((n.shapeArgs.x||0)+(n.shapeArgs.width||0),a),y=(0,i.crisp)((n.shapeArgs.y||0)+(n.shapeArgs.height||0)/2,a),m=(0,i.crisp)(r.shapeArgs.x||0,a),b=(0,i.crisp)((r.shapeArgs.y||0)+(r.shapeArgs.height||0)/2,a),x;if(c&&(f-=n.shapeArgs.width||0,m+=r.shapeArgs.width||0),x=this.colDistance?(0,i.crisp)(m+(c?1:-1)*(this.colDistance-this.nodeWidth)/2,a):(0,i.crisp)((m+f)/2,a),u&&(u>=50||u<=-50)&&(x=m=(0,i.crisp)(m+(c?-.5:.5)*(r.shapeArgs.width||0),a),b=r.shapeArgs.y||0,u>0&&(b+=r.shapeArgs.height||0)),r.hangsFrom===n&&(e.inverted?(y=p?(0,i.crisp)((n.shapeArgs.y||0)+d/2,a):(0,i.crisp)((n.shapeArgs.y||0)+(n.shapeArgs.height||0)-d/2,a),b=p?(r.shapeArgs.y||0)+d/2:(r.shapeArgs.y||0)+(r.shapeArgs.height||0)):y=(0,i.crisp)((n.shapeArgs.y||0)+d/2,a),x=m=(0,i.crisp)((r.shapeArgs.x||0)+(r.shapeArgs.width||0)/2,a)),t.plotX=x,t.plotY=(y+b)/2,t.shapeType="path","straight"===h)t.shapeArgs={d:[["M",f,y],["L",m,b]]};else if("curved"===h){let e=Math.abs(m-f)*o*(c?-1:1);t.shapeArgs={d:[["M",f,y],["C",f+e,y,m-e,b,m,b]]}}else t.shapeArgs={d:l([["M",f,y],["L",x,y],["L",x,b],["L",m,b]],s.linkRadius??s.link.radius)};t.dlBox={x:(f+m)/2,y:(y+b)/2,height:a,width:0}}}translateNode(t,e){super.translateNode(t,e);let s=this.chart,n=this.options,r=Math.max(Math.round(t.getSum()*this.translationFactor),n.minLinkWidth||0),a="right"===n.hangingSide,o=n.hangingIndent||0,h=n.hangingIndentTranslation,l=n.minNodeLength||10,d=Math.round(this.nodeWidth),p=t.shapeArgs,g=s.inverted?-1:1,u=t.hangsFrom;if(u)if("cumulative"===h)for(p.height-=o,s.inverted&&!a&&(p.y-=g*o);u;)p.y+=(a?1:g)*o,u=u.hangsFrom;else if("shrink"===h)for(;u&&p.height>o+l;)p.height-=o,(!s.inverted||a)&&(p.y+=o),u=u.hangsFrom;else p.height-=o,(!s.inverted||a)&&(p.y+=o);t.nodeHeight=s.inverted?p.width:p.height,t.shapeArgs&&!t.hangsFrom&&(t.shapeArgs=(0,i.merge)(t.shapeArgs,{x:(t.shapeArgs.x||0)+d/2-(t.shapeArgs.width||0)/2,y:(t.shapeArgs.y||0)+r/2-(t.shapeArgs.height||0)/2}))}drawDataLabels(){let t=this.options.dataLabels;if(t.linkTextPath&&t.linkTextPath.enabled)for(let t of this.points)t.options.dataLabels=(0,i.merge)(t.options.dataLabels,{useHTML:!1});super.drawDataLabels()}}f.defaultOptions=(0,i.merge)(c.defaultOptions,{borderColor:"var(--highcharts-neutral-color-60)",borderRadius:3,link:{color:"var(--highcharts-neutral-color-60)",lineWidth:1,radius:10,type:"orthogonal"},borderWidth:1,dataLabels:{nodeFormatter:function(){let t={width:"100%",height:"100%",display:"flex","flex-direction":"row","align-items":"center","justify-content":"center"},e={"max-height":"100%","border-radius":"50%"},i={width:"100%",padding:0,"text-align":"center","white-space":"normal"};function s(t){return Object.keys(t).reduce(function(e,i){return e+i+":"+t[i]+";"},'style="')+'"'}let{description:n,image:r,title:a}=this.point;r&&(e["max-width"]="30%",i.width="70%"),this.series.chart.renderer.forExport&&(t.display="block",i.position="absolute",i.left=r?"30%":0,i.top=0);let o="<div "+s(t)+">";return r&&(o+='<img src="'+r+'" '+s(e)+">"),o+="<div "+s(i)+">",this.point.name&&(o+="<h4 "+s({margin:0})+">"+this.point.name+"</h4>"),a?o+="<p "+s({margin:0})+">"+a+"</p>":o+=`<p aria-hidden="true"
|
|
14
14
|
style="line-height:0;margin:1px;font-size:1px;opacity:0"
|
|
15
15
|
>.</p>`,n&&(o+="<p "+s({opacity:.75,margin:"5px"})+">"+n+"</p>"),o+="</div></div>"},style:{fontWeight:"normal",fontSize:"0.9em",textAlign:"left"},useHTML:!0,linkTextPath:{attributes:{startOffset:"95%",textAnchor:"end"}}},hangingIndent:20,hangingIndentTranslation:"inherit",hangingSide:"left",minNodeLength:10,nodeWidth:50,tooltip:{nodeFormat:"{point.name}<br>{point.title}<br>{point.description}"}}),(0,i.extend)(f.prototype,{pointClass:h}),a().registerSeriesType("organization",f);let y=n();export{y as default};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
2
2
|
/**
|
|
3
|
-
* @license Highcharts JS v13.0.
|
|
3
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
4
4
|
* Organization chart series type
|
|
5
5
|
* @module highcharts/modules/organization
|
|
6
6
|
* @requires highcharts
|
|
@@ -155,7 +155,8 @@ class OrganizationPoint extends SankeyPointClass {
|
|
|
155
155
|
let i = -1, link;
|
|
156
156
|
// Default all children of the hanging node
|
|
157
157
|
// to have hanging layout
|
|
158
|
-
node.options.layout =
|
|
158
|
+
node.options.layout =
|
|
159
|
+
node.options.layout ?? 'hanging';
|
|
159
160
|
node.hangsFrom = fromNode;
|
|
160
161
|
(0,external_highcharts_src_js_default_namespaceObject.find)(fromNode.linksFrom, (link, index) => {
|
|
161
162
|
const found = link.toNode === node;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Highcharts JS v13.0.
|
|
2
|
+
* Highcharts JS v13.0.2 (2026-08-27)
|
|
3
3
|
* @module highcharts/modules/parallel-coordinates
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
*
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
*
|
|
11
11
|
* A commercial license may be required depending on use,
|
|
12
12
|
* see www.highcharts.com/license
|
|
13
|
-
*/import*as e from"../highcharts.js";let t={};t.n=e=>{let a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a:a}),a},t.d=(e,a)=>{if(Array.isArray(a))for(var i=0;i<a.length;){var s=a[i++],l=a[i++];t.o(e,s)?0===l&&i++:0===l?Object.defineProperty(e,s,{enumerable:!0,value:a[i++]}):Object.defineProperty(e,s,{enumerable:!0,get:l})}else for(var s in a)t.o(a,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:a[s]})},t.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let a=e.default;var i,s,l,o=t.n(a);let r={parallelCoordinates:!1,parallelAxes:{lineWidth:1,title:{text:"",reserveSpace:!1},labels:{x:0,y:4,align:"center",reserveSpace:!1},offset:0}},n={lineWidth:0,tickLength:0,opposite:!0,type:"category"};class h{constructor(e){this.axis=e}setPosition(e,t){let a=this.axis,i=a.chart,s=((this.position||0)+.5)/(i.parallelInfo.counter+1);i.polar?t.angle=360*s:(t[e[0]]=100*s+"%",a[e[1]]=t[e[1]]=0,a[e[2]]=t[e[2]]=null,a[e[3]]=t[e[3]]=null)}}!function(e){function t(e){let t=this.chart,i=this.parallelCoordinates,s=["left","width","height","top"];if(t.hasParallelCoordinates)if(t.inverted&&(s=s.reverse()),this.isXAxis)this.options=(0,a.merge)(this.options,n,e.userOptions);else{let l=t.yAxis.indexOf(this);this.options=(0,a.merge)(this.options,this.chart.options.chart.parallelAxes,e.userOptions),i.position=
|
|
13
|
+
*/import*as e from"../highcharts.js";let t={};t.n=e=>{let a=e&&e.__esModule?()=>e.default:()=>e;return t.d(a,{a:a}),a},t.d=(e,a)=>{if(Array.isArray(a))for(var i=0;i<a.length;){var s=a[i++],l=a[i++];t.o(e,s)?0===l&&i++:0===l?Object.defineProperty(e,s,{enumerable:!0,value:a[i++]}):Object.defineProperty(e,s,{enumerable:!0,get:l})}else for(var s in a)t.o(a,s)&&!t.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:a[s]})},t.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let a=e.default;var i,s,l,o=t.n(a);let r={parallelCoordinates:!1,parallelAxes:{lineWidth:1,title:{text:"",reserveSpace:!1},labels:{x:0,y:4,align:"center",reserveSpace:!1},offset:0}},n={lineWidth:0,tickLength:0,opposite:!0,type:"category"};class h{constructor(e){this.axis=e}setPosition(e,t){let a=this.axis,i=a.chart,s=((this.position||0)+.5)/(i.parallelInfo.counter+1);i.polar?t.angle=360*s:(t[e[0]]=100*s+"%",a[e[1]]=t[e[1]]=0,a[e[2]]=t[e[2]]=null,a[e[3]]=t[e[3]]=null)}}!function(e){function t(e){let t=this.chart,i=this.parallelCoordinates,s=["left","width","height","top"];if(t.hasParallelCoordinates)if(t.inverted&&(s=s.reverse()),this.isXAxis)this.options=(0,a.merge)(this.options,n,e.userOptions);else{let l=t.yAxis.indexOf(this);this.options=(0,a.merge)(this.options,this.chart.options.chart.parallelAxes,e.userOptions),i.position=i.position??(l>=0?l:t.yAxis.length),i.setPosition(s,this.options)}}function i(e){let t=this.chart,i=this.parallelCoordinates;if(i&&t&&t.hasParallelCoordinates&&!this.isXAxis){let t=i.position,s=[];this.series.forEach(function(e){e.visible&&(0,a.isNumber)(t)&&(s=(e.pointArrayMap||["y"]).reduce((a,i)=>[...a,e.getColumn(i)?.[t]??null],s))}),s=s.filter(a.isNumber),this.dataMin=(0,a.arrayMin)(s),this.dataMax=(0,a.arrayMax)(s),e.preventDefault()}}function s(){this.parallelCoordinates||(this.parallelCoordinates=new h(this))}e.compose=function(e){e.keepProps.includes("parallel")||(e.keepProps.push("parallel"),(0,a.addEvent)(e,"init",s),(0,a.addEvent)(e,"afterSetOptions",t),(0,a.addEvent)(e,"getSeriesExtremes",i))}}(i||(i={}));let p=i,d=e.default.Templating;var c=t.n(d);let{composed:f}=o(),{format:u}=c();!function(e){function t(){let e=this.chart,t=this.points,i=t&&t.length,s=Number.MAX_VALUE,l,o;if(this.chart.hasParallelCoordinates){for(let r=0;r<i;r++)o=t[r],(0,a.defined)(o.y)?(e.polar?o.plotX=e.yAxis[r].angleRad||0:e.inverted?o.plotX=e.plotHeight-e.yAxis[r].top+e.plotTop:o.plotX=e.yAxis[r].left-e.plotLeft,o.clientX=o.plotX,o.plotY=e.yAxis[r].translate(o.y,!1,!0,void 0,!0),(0,a.isNumber)(o.high)&&(o.plotHigh=e.yAxis[r].translate(o.high,!1,!0,void 0,!0)),void 0!==l&&(s=Math.min(s,Math.abs(o.plotX-l))),l=o.plotX,o.isInside=e.isInsidePlot(o.plotX,o.plotY,{inverted:e.inverted})):o.isNull=!0;this.closestPointRangePx=s}}function i(e){let t=this.chart;if(t.hasParallelCoordinates){for(let e of t.axes)(0,a.insertItem)(this,e.series),e.isDirty=!0;this.xAxis=t.xAxis[0],this.yAxis=t.yAxis[0],e.preventDefault()}}function s(){let e=this.chart;if(e.hasParallelCoordinates)for(let t of e.axes||[])t&&t.series&&((0,a.erase)(t.series,this),t.isDirty=t.forceRedraw=!0)}function l(){let e=this.chart;if(e?.hasParallelCoordinates)for(let t of this.points){let i,s=e.yAxis[t.x||0],l=s.options,o=l.tooltipValueFormat??l.labels.format;i=o?u(o,(0,a.extend)(t,{value:t.y}),e):s.dateTime?e.time.dateFormat(e.time.resolveDTLFormat(l.dateTimeLabelFormats?.[s.tickPositions.info?.unitName||"year"]||"").main,t.y??void 0):(0,a.isArray)(l.categories)?l.categories[t.y??-1]:String(t.y??""),t.formattedValue=i}}e.compose=function(e){(0,a.pushUnique)(f,"ParallelSeries")&&((0,a.addEvent)(e,"afterTranslate",t,{order:1}),(0,a.addEvent)(e,"bindAxes",i),(0,a.addEvent)(e,"destroy",s),(0,a.addEvent)(e,"afterGeneratePoints",l))}}(s||(s={}));let x=s;class m{constructor(e){this.chart=e}setParallelInfo(e){let t=this.chart||this,a=e.series;for(let e of(t.parallelInfo={counter:0},a))e.data&&(t.parallelInfo.counter=Math.max(t.parallelInfo.counter,e.data.length-1))}}function y(e){let t=e.args[0],i=(0,a.splat)(t.yAxis||{}),s=[],l=i.length;if(this.hasParallelCoordinates=t.chart&&t.chart.parallelCoordinates,this.hasParallelCoordinates){for(this.setParallelInfo(t);l<=this.parallelInfo.counter;l++)s.push({});t.legend||(t.legend={}),t.legend&&void 0===t.legend.enabled&&(t.legend.enabled=!1),(0,a.merge)(!0,t,{boost:{seriesThreshold:Number.MAX_VALUE},plotOptions:{series:{boostThreshold:Number.MAX_VALUE}}}),t.yAxis=i.concat(s),t.xAxis=(0,a.merge)(n,(0,a.splat)(t.xAxis||{})[0])}}function g(e){let t=e.options;if(!1!==e.hasChanged&&(t.chart&&((0,a.defined)(t.chart.parallelCoordinates)&&(this.hasParallelCoordinates=t.chart.parallelCoordinates),this.options.chart.parallelAxes=(0,a.merge)(this.options.chart.parallelAxes,t.chart.parallelAxes)),this.hasParallelCoordinates))for(let e of(t.series&&this.setParallelInfo(t),this.yAxis))e.update({},!1)}(l||(l={})).compose=function(e,t,i,s){p.compose(e),x.compose(s);let l=m.prototype,o=t.prototype;o.setParallelInfo||(o.setParallelInfo=l.setParallelInfo,(0,a.addEvent)(t,"init",y),(0,a.addEvent)(t,"update",g),(0,a.merge)(!0,i.chart,r))};let A=l,v=o();A.compose(v.Axis,v.Chart,v.defaultOptions,v.Series);let P=o();export{P as default};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
2
2
|
/**
|
|
3
|
-
* @license Highcharts JS v13.0.
|
|
3
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
4
4
|
* @module highcharts/modules/parallel-coordinates
|
|
5
5
|
* @requires highcharts
|
|
6
6
|
*
|
|
@@ -331,7 +331,7 @@ var ParallelAxis;
|
|
|
331
331
|
else {
|
|
332
332
|
const axisIndex = chart.yAxis.indexOf(axis); // #13608
|
|
333
333
|
axis.options = (0,external_highcharts_src_js_default_namespaceObject.merge)(axis.options, axis.chart.options.chart.parallelAxes, e.userOptions);
|
|
334
|
-
parallelCoordinates.position =
|
|
334
|
+
parallelCoordinates.position = parallelCoordinates.position ?? (axisIndex >= 0 ? axisIndex : chart.yAxis.length);
|
|
335
335
|
parallelCoordinates.setPosition(axisPosition, axis.options);
|
|
336
336
|
}
|
|
337
337
|
}
|
package/esm/modules/pareto.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
let t;/**
|
|
2
|
-
* Highcharts Gantt JS v13.0.
|
|
2
|
+
* Highcharts Gantt JS v13.0.2 (2026-08-27)
|
|
3
3
|
* @module highcharts/modules/pathfinder
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
*
|
|
@@ -10,4 +10,4 @@ let t;/**
|
|
|
10
10
|
*
|
|
11
11
|
* A commercial license may be required depending on use,
|
|
12
12
|
* see www.highcharts.com/license
|
|
13
|
-
*/import*as e from"../highcharts.js";let n={};n.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{if(Array.isArray(e))for(var i=0;i<e.length;){var r=e[i++],a=e[i++];n.o(t,r)?0===a&&i++:0===a?Object.defineProperty(t,r,{enumerable:!0,value:e[i++]}):Object.defineProperty(t,r,{enumerable:!0,get:a})}else for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let i=e.default;var r,a=n.n(i);let o=a().deg2rad,s=Math.max,h=Math.min,c=class{constructor(t,e,n){this.init(t,e,n)}init(t,e,n){this.fromPoint=t,this.toPoint=e,this.options=n,this.chart=t.series.chart,this.pathfinder=this.chart.pathfinder}renderPath(t,e){let n=this.chart,i=n.styledMode,r=this.pathfinder,a={},o=this.graphics&&this.graphics.path;r.group||(r.group=n.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(n.seriesGroup)),r.group.translate(n.plotLeft,n.plotTop),!(o&&o.renderer)&&(o=n.renderer.path().add(r.group),i||o.attr({opacity:0})),o.attr(e),a.d=t,i||(a.opacity=1),o.animate(a),this.graphics=this.graphics||{},this.graphics.path=o}addMarker(t,e,n){let i,r,a,s,h,c,l,x=this.fromPoint.series.chart,M=x.pathfinder,d=x.renderer,y="start"===t?this.fromPoint:this.toPoint,p=y.getPathfinderAnchorPoint(e);e.enabled&&((l="start"===t?n[1]:n[n.length-2])&&"M"===l[0]||"L"===l[0])&&(c={x:l[1],y:l[2]},r=y.getRadiansToVector(c,p),i=y.getMarkerVector(r,e.radius,p),e.width&&e.height?(s=e.width,h=e.height):s=h=2*e.radius,this.graphics=this.graphics||{},a={x:i.x-s/2,y:i.y-h/2,width:s,height:h,rotation:-r/o,rotationOriginX:i.x,rotationOriginY:i.y},this.graphics[t]?this.graphics[t].animate(a):(this.graphics[t]=d.symbol(e.symbol).addClass("highcharts-point-connecting-path-"+t+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(a).add(M.group),d.styledMode||this.graphics[t].attr({fill:e.color||this.fromPoint.color,stroke:e.lineColor,"stroke-width":e.lineWidth,opacity:0}).animate({opacity:1},y.series.options.animation)))}getPath(t){let e=this.pathfinder,n=this.chart,r=e.algorithms[t.type],a=e.chartObstacles;return"function"!=typeof r?((0,i.error)('"'+t.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(r.requiresObstacles&&!a&&(a=e.chartObstacles=e.getChartObstacles(t),n.options.connectors.algorithmMargin=t.algorithmMargin,e.chartObstacleMetrics=e.getObstacleMetrics(a)),r(this.fromPoint.getPathfinderAnchorPoint(t.startMarker),this.toPoint.getPathfinderAnchorPoint(t.endMarker),(0,i.merge)({chartObstacles:a,lineObstacles:e.lineObstacles||[],obstacleMetrics:e.chartObstacleMetrics,hardBounds:{xMin:0,xMax:n.plotWidth,yMin:0,yMax:n.plotHeight},obstacleOptions:{margin:t.algorithmMargin},startDirectionX:e.getAlgorithmStartDirection(t.startMarker)},t)))}render(){let t=this.fromPoint,e=t.series,n=e.chart,r=n.pathfinder,a={},o=(0,i.merge)(n.options.connectors,e.options.connectors,t.options.connectors,this.options);!n.styledMode&&(a.stroke=o.lineColor||t.color,a["stroke-width"]=o.lineWidth,o.dashStyle&&(a.dashstyle=o.dashStyle)),a.class="highcharts-point-connecting-path highcharts-color-"+t.colorIndex,o=(0,i.merge)(a,o),(0,i.defined)(o.marker.radius)||(o.marker.radius=h(s(Math.ceil((o.algorithmMargin||8)/2)-1,1),5));let c=this.getPath(o),l=c.path;c.obstacles&&(r.lineObstacles=r.lineObstacles||[],r.lineObstacles=r.lineObstacles.concat(c.obstacles)),this.renderPath(l,a),this.addMarker("start",(0,i.merge)(o.marker,o.startMarker),l),this.addMarker("end",(0,i.merge)(o.marker,o.endMarker),l)}destroy(){this.graphics&&((0,i.objectEach)(this.graphics,function(t){t.destroy()}),delete this.graphics)}};function l(t,e){let n=[];for(let i=0;i<t.length;i++){let r=t[i][1],a=t[i][2];if("number"==typeof r&&"number"==typeof a)if(0===i)n.push(["M",r,a]);else if(i===t.length-1)n.push(["L",r,a]);else if(e){let o=t[i-1],s=t[i+1];if(o&&s){let t=o[1],i=o[2],h=s[1],c=s[2];if("number"==typeof t&&"number"==typeof h&&"number"==typeof i&&"number"==typeof c&&t!==h&&i!==c){let o=t<h?1:-1,s=i<c?1:-1;n.push(["L",r-o*Math.min(Math.abs(r-t),e),a-s*Math.min(Math.abs(a-i),e)],["C",r,a,r,a,r+o*Math.min(Math.abs(r-h),e),a+s*Math.min(Math.abs(a-c),e)])}}}else n.push(["L",r,a])}return n}let{min:x,max:M,abs:d}=Math;function y(t,e,n){let i=e-1e-7,r=n||0,a=t.length-1,o,s;for(;r<=a;)if((s=i-t[o=a+r>>1].xMin)>0)r=o+1;else{if(!(s<0))return o;a=o-1}return r>0?r-1:0}function p(t,e){let n=y(t,e.x+1)+1;for(;n--;){var i;if(t[n].xMax>=e.x&&(i=t[n],e.x<=i.xMax&&e.x>=i.xMin&&e.y<=i.yMax&&e.y>=i.yMin))return n}return -1}function f(t){let e=[];if(t.length){e.push(["M",t[0].start.x,t[0].start.y]);for(let n=0;n<t.length;++n)e.push(["L",t[n].end.x,t[n].end.y])}return e}function u(t,e){t.yMin=M(t.yMin,e.yMin),t.yMax=x(t.yMax,e.yMax),t.xMin=M(t.xMin,e.xMin),t.xMax=x(t.xMax,e.xMax)}let g=function(t,e,n){let r=[],a=n.chartObstacles,o=p(a,t),s=p(a,e),h,c=(0,i.pick)(n.startDirectionX,d(e.x-t.x)>d(e.y-t.y))?"x":"y",x,M,y,u;function g(t,e,n,i,r){let a={x:t.x,y:t.y};return a[e]=n[i||e]+(r||0),a}function m(t,e,n){let i=d(e[n]-t[n+"Min"])>d(e[n]-t[n+"Max"]);return g(e,n,t,n+(i?"Max":"Min"),i?1:-1)}s>-1?(h={start:M=m(a[s],e,c),end:e},u=M):u=e,o>-1&&(M=m(x=a[o],t,c),r.push({start:t,end:M}),M[c]>=t[c]==M[c]>=u[c]&&(y=t[c="y"===c?"x":"y"]<e[c],r.push({start:M,end:g(M,c,x,c+(y?"Max":"Min"),y?1:-1)}),c="y"===c?"x":"y"));let b=r.length?r[r.length-1].end:t;M=g(b,c,u),r.push({start:b,end:M});let P=g(M,c="y"===c?"x":"y",u);return r.push({start:M,end:P}),h&&r.push(h),{path:l(f(r),n.radius),obstacles:r}};function m(t,e,n){let r=(0,i.pick)(n.startDirectionX,d(e.x-t.x)>d(e.y-t.y)),a=r?"x":"y",o=[],s=n.obstacleMetrics,h=x(t.x,e.x)-s.maxWidth-10,c=M(t.x,e.x)+s.maxWidth+10,l=x(t.y,e.y)-s.maxHeight-10,g=M(t.y,e.y)+s.maxHeight+10,m,b,P,O=!1,v=n.chartObstacles,k=y(v,c),w=y(v,h);function A(t,e,n){let i,r,a,o,s=t.x<e.x?1:-1;t.x<e.x?(i=t,r=e):(i=e,r=t),t.y<e.y?(o=t,a=e):(o=e,a=t);let h=s<0?x(y(v,r.x),v.length-1):0;for(;v[h]&&(s>0&&v[h].xMin<=r.x||s<0&&v[h].xMax>=i.x);){if(v[h].xMin<=r.x&&v[h].xMax>=i.x&&v[h].yMin<=a.y&&v[h].yMax>=o.y){if(n)return{y:t.y,x:t.x<e.x?v[h].xMin-1:v[h].xMax+1,obstacle:v[h]};return{x:t.x,y:t.y<e.y?v[h].yMin-1:v[h].yMax+1,obstacle:v[h]}}h+=s}return e}function E(t,e,n,i,r){let a=r.soft,o=r.hard,s=i?"x":"y",h={x:e.x,y:e.y},c={x:e.x,y:e.y},l=t[s+"Max"]>=a[s+"Max"],x=t[s+"Min"]<=a[s+"Min"],M=t[s+"Max"]>=o[s+"Max"],y=t[s+"Min"]<=o[s+"Min"],p=d(t[s+"Min"]-e[s]),f=d(t[s+"Max"]-e[s]),u=10>d(p-f)?e[s]<n[s]:f<p;c[s]=t[s+"Min"],h[s]=t[s+"Max"];let g=A(e,c,i)[s]!==c[s],m=A(e,h,i)[s]!==h[s];return u=g?!m||u:!m&&u,u=x?!l||u:!l&&u,u=y?!M||u:!M&&u}if((k=p(v=v.slice(w,k+1),e))>-1){var I,L;let i,r;I=v[k],L=e,i=x(I.xMax-L.x,L.x-I.xMin)<x(I.yMax-L.y,L.y-I.yMin),r=E(I,L,t,i,{soft:n.hardBounds,hard:n.hardBounds}),P=i?{y:L.y,x:I[r?"xMax":"xMin"]+(r?1:-1)}:{x:L.x,y:I[r?"yMax":"yMin"]+(r?1:-1)},o.push({end:e,start:P}),e=P}for(;(k=p(v,e))>-1;)b=e[a]-t[a]<0,(P={x:e.x,y:e.y})[a]=v[k][b?a+"Max":a+"Min"]+(b?1:-1),o.push({end:e,start:P}),e=P;return{path:f(m=(m=function t(e,i,r){let a,o,s,d,y,f,m;if(e.x===i.x&&e.y===i.y)return[];let b=r?"x":"y",P=n.obstacleOptions.margin,k={soft:{xMin:h,xMax:c,yMin:l,yMax:g},hard:n.hardBounds};return(y=p(v,e))>-1?(d=E(y=v[y],e,i,r,k),u(y,n.hardBounds),m=r?{y:e.y,x:y[d?"xMax":"xMin"]+(d?1:-1)}:{x:e.x,y:y[d?"yMax":"yMin"]+(d?1:-1)},(f=p(v,m))>-1&&(u(f=v[f],n.hardBounds),m[b]=d?M(y[b+"Max"]-P+1,(f[b+"Min"]+y[b+"Max"])/2):x(y[b+"Min"]+P-1,(f[b+"Max"]+y[b+"Min"])/2),e.x===m.x&&e.y===m.y?(O&&(m[b]=d?M(y[b+"Max"],f[b+"Max"])+1:x(y[b+"Min"],f[b+"Min"])-1),O=!O):O=!1),o=[{start:e,end:m}]):(a=A(e,{x:r?i.x:e.x,y:r?e.y:i.y},r),o=[{start:e,end:{x:a.x,y:a.y}}],a[r?"x":"y"]!==i[r?"x":"y"]&&(d=E(a.obstacle,a,i,!r,k),u(a.obstacle,n.hardBounds),s={x:r?a.x:a.obstacle[d?"xMax":"xMin"]+(d?1:-1),y:r?a.obstacle[d?"yMax":"yMin"]+(d?1:-1):a.y},r=!r,o=o.concat(t({x:a.x,y:a.y},s,r)))),o=o.concat(t(o[o.length-1].end,i,!r))}(t,e,r)).concat(o.reverse())),obstacles:m}}g.requiresObstacles=!0,m.requiresObstacles=!0;let b={connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}},{setOptions:P}=a();function O(t){let e=t.shapeArgs;if(e)return{xMin:e.x||0,xMax:(e.x||0)+(e.width||0),yMin:e.y||0,yMax:(e.y||0)+(e.height||0)};let n=t.graphic&&t.graphic.getBBox();return n?{xMin:t.plotX-n.width/2,xMax:t.plotX+n.width/2,yMin:t.plotY-n.height/2,yMax:t.plotY+n.height/2}:null}!function(t){function e(t){let e,n,i=O(this);switch(t.align){case"right":e="xMax";break;case"left":e="xMin"}switch(t.verticalAlign){case"top":n="yMin";break;case"bottom":n="yMax"}return e=e?i[e]:(i.xMin+i.xMax)/2,n=n?i[n]:(i.yMin+i.yMax)/2,{x:e+(t.xOffset||0),y:n+(t.yOffset||0)}}function n(t,e){let n;return!(0,i.defined)(e)&&(n=O(this))&&(e={x:(n.xMin+n.xMax)/2,y:(n.yMin+n.yMax)/2}),Math.atan2(e.y-t.y,t.x-e.x)}function r(t,e,n){let i=2*Math.PI,r=O(this),a=r.xMax-r.xMin,o=r.yMax-r.yMin,s=Math.atan2(o,a),h=a/2,c=o/2,l=r.xMin+h,x=r.yMin+c,M={x:l,y:x},d=t,y=1,p=!1,f=1,u=1;for(;d<-Math.PI;)d+=i;for(;d>Math.PI;)d-=i;return y=Math.tan(d),d>-s&&d<=s?(u=-1,p=!0):d>s&&d<=Math.PI-s?u=-1:d>Math.PI-s||d<=-(Math.PI-s)?(f=-1,p=!0):f=-1,p?(M.x+=f*h,M.y+=u*h*y):(M.x+=o/(2*y)*f,M.y+=u*c),n.x!==l&&(M.x=n.x),n.y!==x&&(M.y=n.y),{x:M.x+e*Math.cos(d),y:M.y-e*Math.sin(d)}}t.compose=function(t,a,o){let s=o.prototype;s.getPathfinderAnchorPoint||(t.prototype.callbacks.push(function(t){!1!==t.options.connectors.enabled&&((t.options.pathfinder||t.series.reduce(function(t,e){return e.options&&(0,i.merge)(!0,e.options.connectors=e.options.connectors||{},e.options.pathfinder),t||e.options&&e.options.pathfinder},!1))&&((0,i.merge)(!0,t.options.connectors=t.options.connectors||{},t.options.pathfinder),(0,i.error)('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new a(this),this.pathfinder.update(!0))}),s.getMarkerVector=r,s.getPathfinderAnchorPoint=e,s.getRadiansToVector=n,P(b))}}(r||(r={}));let v=r,k=e.default.Point;var w=n.n(k);let A=Math.max,E=Math.min;class I{static compose(t,e){v.compose(t,I,e)}constructor(t){this.init(t)}init(t){this.chart=t,this.connections=[],(0,i.addEvent)(t,"redraw",function(){this.pathfinder.update()})}update(t){let e=this.chart,n=this,r=n.connections;n.connections=[],e.series.forEach(function(t){t.visible&&!t.options.isInternal&&t.points.forEach(function(t){let r,a=t.options;a&&a.dependency&&(a.connect=a.dependency);let o=t.options?.connect?(0,i.splat)(t.options.connect):[];t.visible&&!1!==t.isInside&&o.forEach(i=>{let a="string"==typeof i?i:i.to;a&&(r=e.get(a)),r instanceof w()&&r.series.visible&&r.visible&&!1!==r.isInside&&n.connections.push(new c(t,r,"string"==typeof i?{}:i))})})});for(let t=0,e,i,a=r.length,o=n.connections.length;t<a;++t){i=!1;let a=r[t];for(e=0;e<o;++e){let t=n.connections[e];if((a.options&&a.options.type)===(t.options&&t.options.type)&&a.fromPoint===t.fromPoint&&a.toPoint===t.toPoint){t.graphics=a.graphics,i=!0;break}}i||a.destroy()}delete this.chartObstacles,delete this.lineObstacles,n.renderConnections(t)}renderConnections(t){t?this.chart.series.forEach(function(t){let e=function(){let e=t.chart.pathfinder;(e&&e.connections||[]).forEach(function(e){e.fromPoint&&e.fromPoint.series===t&&e.render()}),t.pathfinderRemoveRenderEvent&&(t.pathfinderRemoveRenderEvent(),delete t.pathfinderRemoveRenderEvent)};!1===t.options.animation?e():t.pathfinderRemoveRenderEvent=(0,i.addEvent)(t,"afterAnimate",e)}):this.connections.forEach(function(t){t.render()})}getChartObstacles(t){let e=this.chart.series,n=(0,i.pick)(t.algorithmMargin,0),r=[],a;for(let t=0,i=e.length;t<i;++t)if(e[t].visible&&!e[t].options.isInternal)for(let i=0,a=e[t].points.length,o,s;i<a;++i)(s=e[t].points[i]).visible&&(o=function(t){let e=t.shapeArgs;if(e)return{xMin:e.x||0,xMax:(e.x||0)+(e.width||0),yMin:e.y||0,yMax:(e.y||0)+(e.height||0)};let n=t.graphic&&t.graphic.getBBox();return n?{xMin:t.plotX-n.width/2,xMax:t.plotX+n.width/2,yMin:t.plotY-n.height/2,yMax:t.plotY+n.height/2}:null}(s))&&r.push({xMin:o.xMin-n,xMax:o.xMax+n,yMin:o.yMin-n,yMax:o.yMax+n});return r=r.sort(function(t,e){return t.xMin-e.xMin}),(0,i.defined)(t.algorithmMargin)||(a=t.algorithmMargin=function(t){let e,n=t.length,r=[];for(let a=0;a<n;++a)for(let o=a+1;o<n;++o)(e=function t(e,n,r){let a=(0,i.pick)(r,10),o=e.yMax+a>n.yMin-a&&e.yMin-a<n.yMax+a,s=e.xMax+a>n.xMin-a&&e.xMin-a<n.xMax+a,h=o?e.xMin>n.xMax?e.xMin-n.xMax:n.xMin-e.xMax:1/0,c=s?e.yMin>n.yMax?e.yMin-n.yMax:n.yMin-e.yMax:1/0;return s&&o?a?t(e,n,Math.floor(a/2)):1/0:E(h,c)}(t[a],t[o]))<80&&r.push(e);return r.push(80),A(Math.floor(r.sort(function(t,e){return t-e})[Math.floor(r.length/10)]/2-1),1)}(r),r.forEach(function(t){t.xMin-=a,t.xMax+=a,t.yMin-=a,t.yMax+=a})),r}getObstacleMetrics(t){let e=0,n=0,i,r,a=t.length;for(;a--;)i=t[a].xMax-t[a].xMin,r=t[a].yMax-t[a].yMin,e<i&&(e=i),n<r&&(n=r);return{maxHeight:n,maxWidth:e}}getAlgorithmStartDirection(t){let e="left"!==t.align&&"right"!==t.align,n="top"!==t.verticalAlign&&"bottom"!==t.verticalAlign;return e?!!n&&void 0:!!n||void 0}}function L(t,e,n,i){return[["M",t,e+i/2],["L",t+n,e],["L",t,e+i/2],["L",t+n,e+i]]}I.prototype.algorithms={fastAvoid:m,straight:function(t,e){return{path:[["M",t.x,t.y],["L",e.x,e.y]],obstacles:[{start:t,end:e}]}},simpleConnect:g};function R(t,e,n,i){return[["M",t+n,e],["L",t,e+i/2],["L",t+n,e+i],["Z"]]}function B(t,e,n,i){return R(t,e,n/2,i)}let C=a();C.Pathfinder=C.Pathfinder||I,(t=C.SVGRenderer.prototype.symbols).arrow=L,t["arrow-filled"]=R,t["arrow-filled-half"]=B,t["arrow-half"]=function(t,e,n,i){return L(t,e,n/2,i)},t["triangle-left"]=R,t["triangle-left-half"]=B,C.Pathfinder.compose(C.Chart,C.Point);let W=a();export{W as default};
|
|
13
|
+
*/import*as e from"../highcharts.js";let n={};n.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{if(Array.isArray(e))for(var i=0;i<e.length;){var r=e[i++],a=e[i++];n.o(t,r)?0===a&&i++:0===a?Object.defineProperty(t,r,{enumerable:!0,value:e[i++]}):Object.defineProperty(t,r,{enumerable:!0,get:a})}else for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let i=e.default;var r,a=n.n(i);let o=a().deg2rad,s=Math.max,h=Math.min,c=class{constructor(t,e,n){this.init(t,e,n)}init(t,e,n){this.fromPoint=t,this.toPoint=e,this.options=n,this.chart=t.series.chart,this.pathfinder=this.chart.pathfinder}renderPath(t,e){let n=this.chart,i=n.styledMode,r=this.pathfinder,a={},o=this.graphics&&this.graphics.path;r.group||(r.group=n.renderer.g().addClass("highcharts-pathfinder-group").attr({zIndex:-1}).add(n.seriesGroup)),r.group.translate(n.plotLeft,n.plotTop),!(o&&o.renderer)&&(o=n.renderer.path().add(r.group),i||o.attr({opacity:0})),o.attr(e),a.d=t,i||(a.opacity=1),o.animate(a),this.graphics=this.graphics||{},this.graphics.path=o}addMarker(t,e,n){let i,r,a,s,h,c,l,x=this.fromPoint.series.chart,M=x.pathfinder,d=x.renderer,y="start"===t?this.fromPoint:this.toPoint,p=y.getPathfinderAnchorPoint(e);e.enabled&&((l="start"===t?n[1]:n[n.length-2])&&"M"===l[0]||"L"===l[0])&&(c={x:l[1],y:l[2]},r=y.getRadiansToVector(c,p),i=y.getMarkerVector(r,e.radius,p),e.width&&e.height?(s=e.width,h=e.height):s=h=2*e.radius,this.graphics=this.graphics||{},a={x:i.x-s/2,y:i.y-h/2,width:s,height:h,rotation:-r/o,rotationOriginX:i.x,rotationOriginY:i.y},this.graphics[t]?this.graphics[t].animate(a):(this.graphics[t]=d.symbol(e.symbol).addClass("highcharts-point-connecting-path-"+t+"-marker highcharts-color-"+this.fromPoint.colorIndex).attr(a).add(M.group),d.styledMode||this.graphics[t].attr({fill:e.color||this.fromPoint.color,stroke:e.lineColor,"stroke-width":e.lineWidth,opacity:0}).animate({opacity:1},y.series.options.animation)))}getPath(t){let e=this.pathfinder,n=this.chart,r=e.algorithms[t.type],a=e.chartObstacles;return"function"!=typeof r?((0,i.error)('"'+t.type+'" is not a Pathfinder algorithm.'),{path:[],obstacles:[]}):(r.requiresObstacles&&!a&&(a=e.chartObstacles=e.getChartObstacles(t),n.options.connectors.algorithmMargin=t.algorithmMargin,e.chartObstacleMetrics=e.getObstacleMetrics(a)),r(this.fromPoint.getPathfinderAnchorPoint(t.startMarker),this.toPoint.getPathfinderAnchorPoint(t.endMarker),(0,i.merge)({chartObstacles:a,lineObstacles:e.lineObstacles||[],obstacleMetrics:e.chartObstacleMetrics,hardBounds:{xMin:0,xMax:n.plotWidth,yMin:0,yMax:n.plotHeight},obstacleOptions:{margin:t.algorithmMargin},startDirectionX:e.getAlgorithmStartDirection(t.startMarker)},t)))}render(){let t=this.fromPoint,e=t.series,n=e.chart,r=n.pathfinder,a={},o=(0,i.merge)(n.options.connectors,e.options.connectors,t.options.connectors,this.options);!n.styledMode&&(a.stroke=o.lineColor||t.color,a["stroke-width"]=o.lineWidth,o.dashStyle&&(a.dashstyle=o.dashStyle)),a.class="highcharts-point-connecting-path highcharts-color-"+t.colorIndex,o=(0,i.merge)(a,o),(0,i.defined)(o.marker.radius)||(o.marker.radius=h(s(Math.ceil((o.algorithmMargin||8)/2)-1,1),5));let c=this.getPath(o),l=c.path;c.obstacles&&(r.lineObstacles=r.lineObstacles||[],r.lineObstacles=r.lineObstacles.concat(c.obstacles)),this.renderPath(l,a),this.addMarker("start",(0,i.merge)(o.marker,o.startMarker),l),this.addMarker("end",(0,i.merge)(o.marker,o.endMarker),l)}destroy(){this.graphics&&((0,i.objectEach)(this.graphics,function(t){t.destroy()}),delete this.graphics)}};function l(t,e){let n=[];for(let i=0;i<t.length;i++){let r=t[i][1],a=t[i][2];if("number"==typeof r&&"number"==typeof a)if(0===i)n.push(["M",r,a]);else if(i===t.length-1)n.push(["L",r,a]);else if(e){let o=t[i-1],s=t[i+1];if(o&&s){let t=o[1],i=o[2],h=s[1],c=s[2];if("number"==typeof t&&"number"==typeof h&&"number"==typeof i&&"number"==typeof c&&t!==h&&i!==c){let o=t<h?1:-1,s=i<c?1:-1;n.push(["L",r-o*Math.min(Math.abs(r-t),e),a-s*Math.min(Math.abs(a-i),e)],["C",r,a,r,a,r+o*Math.min(Math.abs(r-h),e),a+s*Math.min(Math.abs(a-c),e)])}}}else n.push(["L",r,a])}return n}let{min:x,max:M,abs:d}=Math;function y(t,e,n){let i=e-1e-7,r=n||0,a=t.length-1,o,s;for(;r<=a;)if((s=i-t[o=a+r>>1].xMin)>0)r=o+1;else{if(!(s<0))return o;a=o-1}return r>0?r-1:0}function p(t,e){let n=y(t,e.x+1)+1;for(;n--;){var i;if(t[n].xMax>=e.x&&(i=t[n],e.x<=i.xMax&&e.x>=i.xMin&&e.y<=i.yMax&&e.y>=i.yMin))return n}return -1}function f(t){let e=[];if(t.length){e.push(["M",t[0].start.x,t[0].start.y]);for(let n=0;n<t.length;++n)e.push(["L",t[n].end.x,t[n].end.y])}return e}function u(t,e){t.yMin=M(t.yMin,e.yMin),t.yMax=x(t.yMax,e.yMax),t.xMin=M(t.xMin,e.xMin),t.xMax=x(t.xMax,e.xMax)}let g=function(t,e,n){let i=[],r=n.chartObstacles,a=p(r,t),o=p(r,e),s,h=n.startDirectionX??d(e.x-t.x)>d(e.y-t.y)?"x":"y",c,x,M,y;function u(t,e,n,i,r){let a={x:t.x,y:t.y};return a[e]=n[i||e]+(r||0),a}function g(t,e,n){let i=d(e[n]-t[n+"Min"])>d(e[n]-t[n+"Max"]);return u(e,n,t,n+(i?"Max":"Min"),i?1:-1)}o>-1?(s={start:x=g(r[o],e,h),end:e},y=x):y=e,a>-1&&(x=g(c=r[a],t,h),i.push({start:t,end:x}),x[h]>=t[h]==x[h]>=y[h]&&(M=t[h="y"===h?"x":"y"]<e[h],i.push({start:x,end:u(x,h,c,h+(M?"Max":"Min"),M?1:-1)}),h="y"===h?"x":"y"));let m=i.length?i[i.length-1].end:t;x=u(m,h,y),i.push({start:m,end:x});let b=u(x,h="y"===h?"x":"y",y);return i.push({start:x,end:b}),s&&i.push(s),{path:l(f(i),n.radius),obstacles:i}};function m(t,e,n){let i=n.startDirectionX??d(e.x-t.x)>d(e.y-t.y),r=i?"x":"y",a=[],o=n.obstacleMetrics,s=x(t.x,e.x)-o.maxWidth-10,h=M(t.x,e.x)+o.maxWidth+10,c=x(t.y,e.y)-o.maxHeight-10,l=M(t.y,e.y)+o.maxHeight+10,g,m,b,P=!1,O=n.chartObstacles,v=y(O,h),k=y(O,s);function w(t,e,n){let i,r,a,o,s=t.x<e.x?1:-1;t.x<e.x?(i=t,r=e):(i=e,r=t),t.y<e.y?(o=t,a=e):(o=e,a=t);let h=s<0?x(y(O,r.x),O.length-1):0;for(;O[h]&&(s>0&&O[h].xMin<=r.x||s<0&&O[h].xMax>=i.x);){if(O[h].xMin<=r.x&&O[h].xMax>=i.x&&O[h].yMin<=a.y&&O[h].yMax>=o.y){if(n)return{y:t.y,x:t.x<e.x?O[h].xMin-1:O[h].xMax+1,obstacle:O[h]};return{x:t.x,y:t.y<e.y?O[h].yMin-1:O[h].yMax+1,obstacle:O[h]}}h+=s}return e}function A(t,e,n,i,r){let a=r.soft,o=r.hard,s=i?"x":"y",h={x:e.x,y:e.y},c={x:e.x,y:e.y},l=t[s+"Max"]>=a[s+"Max"],x=t[s+"Min"]<=a[s+"Min"],M=t[s+"Max"]>=o[s+"Max"],y=t[s+"Min"]<=o[s+"Min"],p=d(t[s+"Min"]-e[s]),f=d(t[s+"Max"]-e[s]),u=10>d(p-f)?e[s]<n[s]:f<p;c[s]=t[s+"Min"],h[s]=t[s+"Max"];let g=w(e,c,i)[s]!==c[s],m=w(e,h,i)[s]!==h[s];return u=g?!m||u:!m&&u,u=x?!l||u:!l&&u,u=y?!M||u:!M&&u}if((v=p(O=O.slice(k,v+1),e))>-1){var E,I;let i,r;E=O[v],I=e,i=x(E.xMax-I.x,I.x-E.xMin)<x(E.yMax-I.y,I.y-E.yMin),r=A(E,I,t,i,{soft:n.hardBounds,hard:n.hardBounds}),b=i?{y:I.y,x:E[r?"xMax":"xMin"]+(r?1:-1)}:{x:I.x,y:E[r?"yMax":"yMin"]+(r?1:-1)},a.push({end:e,start:b}),e=b}for(;(v=p(O,e))>-1;)m=e[r]-t[r]<0,(b={x:e.x,y:e.y})[r]=O[v][m?r+"Max":r+"Min"]+(m?1:-1),a.push({end:e,start:b}),e=b;return{path:f(g=(g=function t(e,i,r){let a,o,d,y,f,g,m;if(e.x===i.x&&e.y===i.y)return[];let b=r?"x":"y",v=n.obstacleOptions.margin,k={soft:{xMin:s,xMax:h,yMin:c,yMax:l},hard:n.hardBounds};return(f=p(O,e))>-1?(y=A(f=O[f],e,i,r,k),u(f,n.hardBounds),m=r?{y:e.y,x:f[y?"xMax":"xMin"]+(y?1:-1)}:{x:e.x,y:f[y?"yMax":"yMin"]+(y?1:-1)},(g=p(O,m))>-1&&(u(g=O[g],n.hardBounds),m[b]=y?M(f[b+"Max"]-v+1,(g[b+"Min"]+f[b+"Max"])/2):x(f[b+"Min"]+v-1,(g[b+"Max"]+f[b+"Min"])/2),e.x===m.x&&e.y===m.y?(P&&(m[b]=y?M(f[b+"Max"],g[b+"Max"])+1:x(f[b+"Min"],g[b+"Min"])-1),P=!P):P=!1),o=[{start:e,end:m}]):(a=w(e,{x:r?i.x:e.x,y:r?e.y:i.y},r),o=[{start:e,end:{x:a.x,y:a.y}}],a[r?"x":"y"]!==i[r?"x":"y"]&&(y=A(a.obstacle,a,i,!r,k),u(a.obstacle,n.hardBounds),d={x:r?a.x:a.obstacle[y?"xMax":"xMin"]+(y?1:-1),y:r?a.obstacle[y?"yMax":"yMin"]+(y?1:-1):a.y},r=!r,o=o.concat(t({x:a.x,y:a.y},d,r)))),o=o.concat(t(o[o.length-1].end,i,!r))}(t,e,i)).concat(a.reverse())),obstacles:g}}g.requiresObstacles=!0,m.requiresObstacles=!0;let b={connectors:{type:"straight",radius:0,lineWidth:1,marker:{enabled:!1,align:"center",verticalAlign:"middle",inside:!1,lineWidth:1},startMarker:{symbol:"diamond"},endMarker:{symbol:"arrow-filled"}}},{setOptions:P}=a();function O(t){let e=t.shapeArgs;if(e)return{xMin:e.x||0,xMax:(e.x||0)+(e.width||0),yMin:e.y||0,yMax:(e.y||0)+(e.height||0)};let n=t.graphic&&t.graphic.getBBox();return n?{xMin:t.plotX-n.width/2,xMax:t.plotX+n.width/2,yMin:t.plotY-n.height/2,yMax:t.plotY+n.height/2}:null}!function(t){function e(t){let e,n,i=O(this);switch(t.align){case"right":e="xMax";break;case"left":e="xMin"}switch(t.verticalAlign){case"top":n="yMin";break;case"bottom":n="yMax"}return e=e?i[e]:(i.xMin+i.xMax)/2,n=n?i[n]:(i.yMin+i.yMax)/2,{x:e+(t.xOffset||0),y:n+(t.yOffset||0)}}function n(t,e){let n;return!(0,i.defined)(e)&&(n=O(this))&&(e={x:(n.xMin+n.xMax)/2,y:(n.yMin+n.yMax)/2}),Math.atan2(e.y-t.y,t.x-e.x)}function r(t,e,n){let i=2*Math.PI,r=O(this),a=r.xMax-r.xMin,o=r.yMax-r.yMin,s=Math.atan2(o,a),h=a/2,c=o/2,l=r.xMin+h,x=r.yMin+c,M={x:l,y:x},d=t,y=1,p=!1,f=1,u=1;for(;d<-Math.PI;)d+=i;for(;d>Math.PI;)d-=i;return y=Math.tan(d),d>-s&&d<=s?(u=-1,p=!0):d>s&&d<=Math.PI-s?u=-1:d>Math.PI-s||d<=-(Math.PI-s)?(f=-1,p=!0):f=-1,p?(M.x+=f*h,M.y+=u*h*y):(M.x+=o/(2*y)*f,M.y+=u*c),n.x!==l&&(M.x=n.x),n.y!==x&&(M.y=n.y),{x:M.x+e*Math.cos(d),y:M.y-e*Math.sin(d)}}t.compose=function(t,a,o){let s=o.prototype;s.getPathfinderAnchorPoint||(t.prototype.callbacks.push(function(t){!1!==t.options.connectors.enabled&&((t.options.pathfinder||t.series.reduce(function(t,e){return e.options&&(0,i.merge)(!0,e.options.connectors=e.options.connectors||{},e.options.pathfinder),t||e.options&&e.options.pathfinder},!1))&&((0,i.merge)(!0,t.options.connectors=t.options.connectors||{},t.options.pathfinder),(0,i.error)('WARNING: Pathfinder options have been renamed. Use "chart.connectors" or "series.connectors" instead.')),this.pathfinder=new a(this),this.pathfinder.update(!0))}),s.getMarkerVector=r,s.getPathfinderAnchorPoint=e,s.getRadiansToVector=n,P(b))}}(r||(r={}));let v=r,k=e.default.Point;var w=n.n(k);let A=Math.max,E=Math.min;class I{static compose(t,e){v.compose(t,I,e)}constructor(t){this.init(t)}init(t){this.chart=t,this.connections=[],(0,i.addEvent)(t,"redraw",function(){this.pathfinder.update()})}update(t){let e=this.chart,n=this,r=n.connections;n.connections=[],e.series.forEach(function(t){t.visible&&!t.options.isInternal&&t.points.forEach(function(t){let r,a=t.options;a&&a.dependency&&(a.connect=a.dependency);let o=t.options?.connect?(0,i.splat)(t.options.connect):[];t.visible&&!1!==t.isInside&&o.forEach(i=>{let a="string"==typeof i?i:i.to;a&&(r=e.get(a)),r instanceof w()&&r.series.visible&&r.visible&&!1!==r.isInside&&n.connections.push(new c(t,r,"string"==typeof i?{}:i))})})});for(let t=0,e,i,a=r.length,o=n.connections.length;t<a;++t){i=!1;let a=r[t];for(e=0;e<o;++e){let t=n.connections[e];if((a.options&&a.options.type)===(t.options&&t.options.type)&&a.fromPoint===t.fromPoint&&a.toPoint===t.toPoint){t.graphics=a.graphics,i=!0;break}}i||a.destroy()}delete this.chartObstacles,delete this.lineObstacles,n.renderConnections(t)}renderConnections(t){t?this.chart.series.forEach(function(t){let e=function(){let e=t.chart.pathfinder;(e&&e.connections||[]).forEach(function(e){e.fromPoint&&e.fromPoint.series===t&&e.render()}),t.pathfinderRemoveRenderEvent&&(t.pathfinderRemoveRenderEvent(),delete t.pathfinderRemoveRenderEvent)};!1===t.options.animation?e():t.pathfinderRemoveRenderEvent=(0,i.addEvent)(t,"afterAnimate",e)}):this.connections.forEach(function(t){t.render()})}getChartObstacles(t){let e=this.chart.series,n=t.algorithmMargin??0,r=[],a;for(let t=0,i=e.length;t<i;++t)if(e[t].visible&&!e[t].options.isInternal)for(let i=0,a=e[t].points.length,o,s;i<a;++i)(s=e[t].points[i]).visible&&(o=function(t){let e=t.shapeArgs;if(e)return{xMin:e.x||0,xMax:(e.x||0)+(e.width||0),yMin:e.y||0,yMax:(e.y||0)+(e.height||0)};let n=t.graphic&&t.graphic.getBBox();return n?{xMin:t.plotX-n.width/2,xMax:t.plotX+n.width/2,yMin:t.plotY-n.height/2,yMax:t.plotY+n.height/2}:null}(s))&&r.push({xMin:o.xMin-n,xMax:o.xMax+n,yMin:o.yMin-n,yMax:o.yMax+n});return r=r.sort(function(t,e){return t.xMin-e.xMin}),(0,i.defined)(t.algorithmMargin)||(a=t.algorithmMargin=function(t){let e,n=t.length,i=[];for(let r=0;r<n;++r)for(let a=r+1;a<n;++a)(e=function t(e,n,i){let r=i??10,a=e.yMax+r>n.yMin-r&&e.yMin-r<n.yMax+r,o=e.xMax+r>n.xMin-r&&e.xMin-r<n.xMax+r,s=a?e.xMin>n.xMax?e.xMin-n.xMax:n.xMin-e.xMax:1/0,h=o?e.yMin>n.yMax?e.yMin-n.yMax:n.yMin-e.yMax:1/0;return o&&a?r?t(e,n,Math.floor(r/2)):1/0:E(s,h)}(t[r],t[a]))<80&&i.push(e);return i.push(80),A(Math.floor(i.sort(function(t,e){return t-e})[Math.floor(i.length/10)]/2-1),1)}(r),r.forEach(function(t){t.xMin-=a,t.xMax+=a,t.yMin-=a,t.yMax+=a})),r}getObstacleMetrics(t){let e=0,n=0,i,r,a=t.length;for(;a--;)i=t[a].xMax-t[a].xMin,r=t[a].yMax-t[a].yMin,e<i&&(e=i),n<r&&(n=r);return{maxHeight:n,maxWidth:e}}getAlgorithmStartDirection(t){let e="left"!==t.align&&"right"!==t.align,n="top"!==t.verticalAlign&&"bottom"!==t.verticalAlign;return e?!!n&&void 0:!!n||void 0}}function L(t,e,n,i){return[["M",t,e+i/2],["L",t+n,e],["L",t,e+i/2],["L",t+n,e+i]]}I.prototype.algorithms={fastAvoid:m,straight:function(t,e){return{path:[["M",t.x,t.y],["L",e.x,e.y]],obstacles:[{start:t,end:e}]}},simpleConnect:g};function R(t,e,n,i){return[["M",t+n,e],["L",t,e+i/2],["L",t+n,e+i],["Z"]]}function B(t,e,n,i){return R(t,e,n/2,i)}let C=a();C.Pathfinder=C.Pathfinder||I,(t=C.SVGRenderer.prototype.symbols).arrow=L,t["arrow-filled"]=R,t["arrow-filled-half"]=B,t["arrow-half"]=function(t,e,n,i){return L(t,e,n/2,i)},t["triangle-left"]=R,t["triangle-left-half"]=B,C.Pathfinder.compose(C.Chart,C.Point);let W=a();export{W as default};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
2
2
|
/**
|
|
3
|
-
* @license Highcharts Gantt JS v13.0.
|
|
3
|
+
* @license Highcharts Gantt JS v13.0.2 (2026-08-27)
|
|
4
4
|
* @module highcharts/modules/pathfinder
|
|
5
5
|
* @requires highcharts
|
|
6
6
|
*
|
|
@@ -577,7 +577,6 @@ const PathUtilities = {
|
|
|
577
577
|
* */
|
|
578
578
|
|
|
579
579
|
|
|
580
|
-
|
|
581
580
|
/* *
|
|
582
581
|
*
|
|
583
582
|
* Constants
|
|
@@ -774,7 +773,8 @@ function straight(start, end) {
|
|
|
774
773
|
*/
|
|
775
774
|
const simpleConnect = function (start, end, options) {
|
|
776
775
|
const segments = [], chartObstacles = options.chartObstacles, startObstacleIx = findObstacleFromPoint(chartObstacles, start), endObstacleIx = findObstacleFromPoint(chartObstacles, end);
|
|
777
|
-
let endSegment, dir = (
|
|
776
|
+
let endSegment, dir = (options.startDirectionX ??
|
|
777
|
+
(abs(end.x - start.x) > abs(end.y - start.y))) ? 'x' : 'y', startObstacle, endObstacle, waypoint, useMax, endPoint;
|
|
778
778
|
// eslint-disable-next-line valid-jsdoc
|
|
779
779
|
/**
|
|
780
780
|
* Return a clone of a point with a property set from a target object,
|
|
@@ -916,7 +916,8 @@ function fastAvoid(start, end, options) {
|
|
|
916
916
|
- When going around the end obstacle we should not always go the
|
|
917
917
|
shortest route, rather pick the one closer to the end point
|
|
918
918
|
*/
|
|
919
|
-
const dirIsX =
|
|
919
|
+
const dirIsX = options.startDirectionX ??
|
|
920
|
+
(abs(end.x - start.x) > abs(end.y - start.y)), dir = dirIsX ? 'x' : 'y', endSegments = [],
|
|
920
921
|
// Boundaries to stay within. If beyond soft boundary, prefer to
|
|
921
922
|
// change direction ASAP. If at hard max, always change immediately.
|
|
922
923
|
metrics = options.obstacleMetrics, softMinX = PathfinderAlgorithms_min(start.x, end.x) - metrics.maxWidth - 10, softMaxX = PathfinderAlgorithms_max(start.x, end.x) + metrics.maxWidth + 10, softMinY = PathfinderAlgorithms_min(start.y, end.y) - metrics.maxHeight - 10, softMaxY = PathfinderAlgorithms_max(start.y, end.y) + metrics.maxHeight + 10;
|
|
@@ -1873,7 +1874,7 @@ function Pathfinder_getPointBB(point) {
|
|
|
1873
1874
|
*/
|
|
1874
1875
|
function calculateObstacleDistance(a, b, bbMargin) {
|
|
1875
1876
|
// Count the distance even if we are slightly off
|
|
1876
|
-
const margin = (
|
|
1877
|
+
const margin = (bbMargin ?? 10), yOverlap = a.yMax + margin > b.yMin - margin &&
|
|
1877
1878
|
a.yMin - margin < b.yMax + margin, xOverlap = a.xMax + margin > b.xMin - margin &&
|
|
1878
1879
|
a.xMin - margin < b.xMax + margin, xDistance = yOverlap ? (a.xMin > b.xMax ? a.xMin - b.xMax : b.xMin - a.xMax) : Infinity, yDistance = xOverlap ? (a.yMin > b.yMax ? a.yMin - b.yMax : b.yMin - a.yMax) : Infinity;
|
|
1879
1880
|
// If the rectangles collide, try recomputing with smaller margin.
|
|
@@ -2118,7 +2119,7 @@ class Pathfinder {
|
|
|
2118
2119
|
* with xMin, xMax, yMin and yMax properties.
|
|
2119
2120
|
*/
|
|
2120
2121
|
getChartObstacles(options) {
|
|
2121
|
-
const series = this.chart.series, margin = (
|
|
2122
|
+
const series = this.chart.series, margin = (options.algorithmMargin ?? 0);
|
|
2122
2123
|
let obstacles = [], calculatedMargin;
|
|
2123
2124
|
for (let i = 0, sLen = series.length; i < sLen; ++i) {
|
|
2124
2125
|
if (series[i].visible && !series[i].options.isInternal) {
|