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
package/highcharts-gantt.src.js
CHANGED
|
@@ -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/highcharts-gantt
|
|
5
5
|
*
|
|
6
6
|
* (c) 2017-2026 Highsoft AS
|
|
@@ -99,7 +99,7 @@ var Globals;
|
|
|
99
99
|
* Constants
|
|
100
100
|
*
|
|
101
101
|
* */
|
|
102
|
-
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.
|
|
102
|
+
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.2', Globals.win = (typeof window !== 'undefined' ?
|
|
103
103
|
window :
|
|
104
104
|
{}), // eslint-disable-line node/no-unsupported-features/es-builtins
|
|
105
105
|
Globals.doc = Globals.win.document, Globals.svg = !!Globals.doc?.createElementNS?.(Globals.SVG_NS, 'svg')?.createSVGRect, Globals.pageLang = Globals.doc?.documentElement?.closest('[lang]')?.lang, Globals.userAgent = Globals.win.navigator?.userAgent || '', Globals.isChrome = Globals.win.chrome, Globals.isFirefox = Globals.userAgent.indexOf('Firefox') !== -1, Globals.isMS = /(edge|msie|trident)/i.test(Globals.userAgent) && !Globals.win.opera, Globals.isSafari = !Globals.isChrome && Globals.userAgent.indexOf('Safari') !== -1, Globals.isTouchDevice = /(Mobile|Android|Windows Phone)/.test(Globals.userAgent), Globals.isWebKit = Globals.userAgent.indexOf('AppleWebKit') !== -1, Globals.deg2rad = Math.PI * 2 / 360, Globals.marginNames = [
|
|
@@ -426,6 +426,29 @@ const ChartDefaults = {
|
|
|
426
426
|
* @context Highcharts.Chart
|
|
427
427
|
* @apioption chart.events.load
|
|
428
428
|
*/
|
|
429
|
+
/**
|
|
430
|
+
* Fires while the chart is panned by mouse drag. Panning must be
|
|
431
|
+
* enabled through [chart.panning](#chart.panning). One parameter,
|
|
432
|
+
* `event`, is passed to the function, containing common event
|
|
433
|
+
* information as well as `event.originalEvent`, the underlying pointer
|
|
434
|
+
* event. Note that the event fires for every mouse move during the
|
|
435
|
+
* drag, not once per gesture.
|
|
436
|
+
*
|
|
437
|
+
* Calling `event.preventDefault()` or returning false prevents the
|
|
438
|
+
* default panning of the axes. In Highcharts Maps, and on ordinal axes
|
|
439
|
+
* in Highcharts Stock, the panning is applied outside the default
|
|
440
|
+
* action and is not prevented.
|
|
441
|
+
*
|
|
442
|
+
* Panning by touch does not fire this event, unless
|
|
443
|
+
* [chart.zooming.singleTouch](#chart.zooming.singleTouch) is enabled and
|
|
444
|
+
* no zoom type is set. Single-finger drags are then handled as mouse
|
|
445
|
+
* drags and fire this event.
|
|
446
|
+
*
|
|
447
|
+
* @type {Highcharts.ChartPanCallbackFunction}
|
|
448
|
+
* @since 7.0.2
|
|
449
|
+
* @context Highcharts.Chart
|
|
450
|
+
* @apioption chart.events.pan
|
|
451
|
+
*/
|
|
429
452
|
/**
|
|
430
453
|
* Fires when the chart is redrawn, either after a call to
|
|
431
454
|
* `chart.redraw()` or after an axis, series or point is modified with
|
|
@@ -2440,7 +2463,7 @@ function getStyle(el, prop, toInt) {
|
|
|
2440
2463
|
const css = win.getComputedStyle(el, void 0); // eslint-disable-line no-undefined
|
|
2441
2464
|
if (css) {
|
|
2442
2465
|
style = css.getPropertyValue(prop);
|
|
2443
|
-
if (
|
|
2466
|
+
if (toInt ?? prop !== 'opacity') {
|
|
2444
2467
|
style = pInt(style);
|
|
2445
2468
|
}
|
|
2446
2469
|
}
|
|
@@ -2690,7 +2713,7 @@ function merge(extendOrSource, ...sources) {
|
|
|
2690
2713
|
function normalizeTickInterval(interval, multiples, magnitude, allowDecimals, hasTickAmount) {
|
|
2691
2714
|
let i, retInterval = interval;
|
|
2692
2715
|
// Round to a tenfold of 1, 2, 2.5 or 5
|
|
2693
|
-
magnitude =
|
|
2716
|
+
magnitude = (magnitude ?? getMagnitude(interval));
|
|
2694
2717
|
const normalized = interval / magnitude;
|
|
2695
2718
|
// Multiples for a linear scale
|
|
2696
2719
|
if (!multiples) {
|
|
@@ -2803,20 +2826,22 @@ function pad(number, length, padder) {
|
|
|
2803
2826
|
.replace('-', '')
|
|
2804
2827
|
.length).join(padder || '0') + number;
|
|
2805
2828
|
}
|
|
2806
|
-
/* eslint-disable jsdoc
|
|
2829
|
+
/* eslint-disable valid-jsdoc */
|
|
2807
2830
|
/**
|
|
2808
2831
|
* Return the first value that is not null or undefined.
|
|
2809
2832
|
*
|
|
2833
|
+
* @deprecated 13.0.2
|
|
2834
|
+
* Use nullish coalescing (`??`) or explicit fallback logic instead.
|
|
2835
|
+
*
|
|
2810
2836
|
* @function Highcharts.pick<T>
|
|
2811
2837
|
*
|
|
2812
|
-
* @param {...
|
|
2838
|
+
* @param {...(T|null|undefined)} args
|
|
2813
2839
|
* Variable number of arguments to inspect.
|
|
2814
2840
|
*
|
|
2815
2841
|
* @return {T}
|
|
2816
2842
|
* The value of the first argument that is not null or undefined.
|
|
2817
2843
|
*/
|
|
2818
|
-
function pick() {
|
|
2819
|
-
const args = arguments;
|
|
2844
|
+
function pick(...args) {
|
|
2820
2845
|
const length = args.length;
|
|
2821
2846
|
for (let i = 0; i < length; i++) {
|
|
2822
2847
|
const arg = args[i];
|
|
@@ -2825,7 +2850,7 @@ function pick() {
|
|
|
2825
2850
|
}
|
|
2826
2851
|
}
|
|
2827
2852
|
}
|
|
2828
|
-
/* eslint-enable jsdoc
|
|
2853
|
+
/* eslint-enable valid-jsdoc */
|
|
2829
2854
|
/**
|
|
2830
2855
|
* Shortcut for parseInt
|
|
2831
2856
|
*
|
|
@@ -3208,7 +3233,8 @@ function insertItem(item, collection) {
|
|
|
3208
3233
|
!collection[i] ||
|
|
3209
3234
|
// Handle index option, the element to insert has lower index
|
|
3210
3235
|
(isNumber(indexOption) &&
|
|
3211
|
-
indexOption <
|
|
3236
|
+
indexOption < (collection[i].options.index ??
|
|
3237
|
+
collection[i]._i)) ||
|
|
3212
3238
|
// Insert the new item before other internal items
|
|
3213
3239
|
// (navigator)
|
|
3214
3240
|
collection[i].options.isInternal) {
|
|
@@ -3294,7 +3320,7 @@ const uniqueKey = (function () {
|
|
|
3294
3320
|
* State of the serial mode.
|
|
3295
3321
|
*/
|
|
3296
3322
|
function useSerialIds(mode) {
|
|
3297
|
-
return (serialMode =
|
|
3323
|
+
return (serialMode = (mode ?? serialMode));
|
|
3298
3324
|
}
|
|
3299
3325
|
/* *
|
|
3300
3326
|
*
|
|
@@ -3760,6 +3786,10 @@ const isDateTimeFormatOptions = (obj) => obj.main === void 0;
|
|
|
3760
3786
|
*
|
|
3761
3787
|
* @param {Highcharts.TimeOptions} [options] Time options as defined in
|
|
3762
3788
|
* [chart.options.time](/highcharts/time).
|
|
3789
|
+
*
|
|
3790
|
+
* @param {Highcharts.LangOptions} [lang]
|
|
3791
|
+
* Language options. When `options.locale` is not set, `lang.locale` is used as
|
|
3792
|
+
* the locale fallback for locale-aware date formatting.
|
|
3763
3793
|
*/
|
|
3764
3794
|
class TimeBase {
|
|
3765
3795
|
/* *
|
|
@@ -3778,8 +3808,8 @@ class TimeBase {
|
|
|
3778
3808
|
};
|
|
3779
3809
|
this.variableTimezone = false;
|
|
3780
3810
|
this.Date = TimeBase_win.Date;
|
|
3781
|
-
this.update(options);
|
|
3782
3811
|
this.lang = lang;
|
|
3812
|
+
this.update(options);
|
|
3783
3813
|
}
|
|
3784
3814
|
/* *
|
|
3785
3815
|
*
|
|
@@ -3891,7 +3921,9 @@ class TimeBase {
|
|
|
3891
3921
|
/**
|
|
3892
3922
|
* Shorthand to get a cached `Intl.DateTimeFormat` instance.
|
|
3893
3923
|
*/
|
|
3894
|
-
dateTimeFormat(options, timestamp, locale = this.options.locale ||
|
|
3924
|
+
dateTimeFormat(options, timestamp, locale = (this.options.locale ||
|
|
3925
|
+
this.lang?.locale ||
|
|
3926
|
+
pageLang)) {
|
|
3895
3927
|
const cacheKey = JSON.stringify(options) + locale;
|
|
3896
3928
|
if (isString(options)) {
|
|
3897
3929
|
options = this.str2dtf(options);
|
|
@@ -7831,6 +7863,41 @@ const DefaultOptions = {
|
|
|
7831
7863
|
* @param {global.Event} event
|
|
7832
7864
|
* The event that occurred.
|
|
7833
7865
|
*/
|
|
7866
|
+
/**
|
|
7867
|
+
* Gets fired while the chart is panned by mouse drag. Calling
|
|
7868
|
+
* `event.preventDefault()` or returning `false` prevents the default panning
|
|
7869
|
+
* of the axes.
|
|
7870
|
+
*
|
|
7871
|
+
* @callback Highcharts.ChartPanCallbackFunction
|
|
7872
|
+
*
|
|
7873
|
+
* @param {Highcharts.Chart} this
|
|
7874
|
+
* The chart on which the event occurred.
|
|
7875
|
+
*
|
|
7876
|
+
* @param {Highcharts.ChartPanEventObject} event
|
|
7877
|
+
* The event that occurred.
|
|
7878
|
+
*/
|
|
7879
|
+
/**
|
|
7880
|
+
* Contains common event information. Through the `originalEvent` property you
|
|
7881
|
+
* can access the pointer event that triggered the panning.
|
|
7882
|
+
*
|
|
7883
|
+
* @interface Highcharts.ChartPanEventObject
|
|
7884
|
+
*/ /**
|
|
7885
|
+
* The pointer event that triggered the panning.
|
|
7886
|
+
* @name Highcharts.ChartPanEventObject#originalEvent
|
|
7887
|
+
* @type {Highcharts.PointerEventObject}
|
|
7888
|
+
*/ /**
|
|
7889
|
+
* Prevents the default behavior of the event.
|
|
7890
|
+
* @name Highcharts.ChartPanEventObject#preventDefault
|
|
7891
|
+
* @type {Function}
|
|
7892
|
+
*/ /**
|
|
7893
|
+
* The event target.
|
|
7894
|
+
* @name Highcharts.ChartPanEventObject#target
|
|
7895
|
+
* @type {Highcharts.Chart}
|
|
7896
|
+
*/ /**
|
|
7897
|
+
* The event type.
|
|
7898
|
+
* @name Highcharts.ChartPanEventObject#type
|
|
7899
|
+
* @type {"pan"}
|
|
7900
|
+
*/
|
|
7834
7901
|
/**
|
|
7835
7902
|
* Fires when the chart is redrawn, either after a call to `chart.redraw()` or
|
|
7836
7903
|
* after an axis, series or point is modified with the `redraw` option set to
|
|
@@ -8206,7 +8273,9 @@ Color.None = new Color(''); // Must be last static for init
|
|
|
8206
8273
|
*/
|
|
8207
8274
|
/**
|
|
8208
8275
|
* A valid color type than can be parsed and handled by Highcharts. It can be a
|
|
8209
|
-
* color string, a gradient object, or a pattern
|
|
8276
|
+
* color string (including CSS expressions), a gradient object, or a pattern
|
|
8277
|
+
* object. Read more about colors in the [Highcharts
|
|
8278
|
+
* documentation](https://www.highcharts.com/docs/chart-design-and-style/colors).
|
|
8210
8279
|
*
|
|
8211
8280
|
* @typedef {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject} Highcharts.ColorType
|
|
8212
8281
|
*/
|
|
@@ -8749,7 +8818,8 @@ Fx.timers = [];
|
|
|
8749
8818
|
* so it should be moved to the SVGRenderer.
|
|
8750
8819
|
*/
|
|
8751
8820
|
function setAnimation(animation, chart) {
|
|
8752
|
-
chart.renderer.globalAnimation =
|
|
8821
|
+
chart.renderer.globalAnimation =
|
|
8822
|
+
animation ?? chart.options.chart.animation ?? true;
|
|
8753
8823
|
}
|
|
8754
8824
|
/**
|
|
8755
8825
|
* Get the animation in object form, where a disabled animation is always
|
|
@@ -9812,7 +9882,7 @@ function format(str = '', ctx, owner) {
|
|
|
9812
9882
|
replacement = `"${replacement}"`;
|
|
9813
9883
|
}
|
|
9814
9884
|
}
|
|
9815
|
-
str = str.replace(match.find,
|
|
9885
|
+
str = str.replace(match.find, (replacement ?? ''));
|
|
9816
9886
|
});
|
|
9817
9887
|
return hasSub ? format(str, ctx, owner) : str;
|
|
9818
9888
|
}
|
|
@@ -10061,7 +10131,7 @@ var RendererUtilities;
|
|
|
10061
10131
|
boxes = boxes.map((box) => ({
|
|
10062
10132
|
size: box.size,
|
|
10063
10133
|
targets: [box.target],
|
|
10064
|
-
align:
|
|
10134
|
+
align: (box.align ?? 0.5)
|
|
10065
10135
|
}));
|
|
10066
10136
|
while (overlapping) {
|
|
10067
10137
|
// Initial positions: target centered in box
|
|
@@ -10219,8 +10289,10 @@ class SVGElement {
|
|
|
10219
10289
|
* Property value.
|
|
10220
10290
|
*/
|
|
10221
10291
|
_defaultGetter(key) {
|
|
10222
|
-
let ret =
|
|
10223
|
-
|
|
10292
|
+
let ret = (this[key + 'Value'] ??
|
|
10293
|
+
this[key] ??
|
|
10294
|
+
(this.element ? this.element.getAttribute(key) : null) ??
|
|
10295
|
+
0);
|
|
10224
10296
|
if (/^-?[\d\.]+$/.test(ret)) { // Is numerical
|
|
10225
10297
|
ret = parseFloat(ret);
|
|
10226
10298
|
}
|
|
@@ -10383,7 +10455,7 @@ class SVGElement {
|
|
|
10383
10455
|
}
|
|
10384
10456
|
alignTo = void 0; // Do not use the box
|
|
10385
10457
|
}
|
|
10386
|
-
const alignToBox =
|
|
10458
|
+
const alignToBox = alignTo ?? renderer[alignToKey] ?? renderer,
|
|
10387
10459
|
// Default: left align
|
|
10388
10460
|
x = (alignToBox.x || 0) + (alignOptions.x || 0) +
|
|
10389
10461
|
((alignToBox.width || 0) - (alignOptions.width || 0)) *
|
|
@@ -10443,7 +10515,7 @@ class SVGElement {
|
|
|
10443
10515
|
* Returns the SVGElement for chaining.
|
|
10444
10516
|
*/
|
|
10445
10517
|
animate(params, options, complete) {
|
|
10446
|
-
const animOptions = animObject(
|
|
10518
|
+
const animOptions = animObject((options ?? this.renderer.globalAnimation ?? true)), deferTime = animOptions.defer;
|
|
10447
10519
|
// When the page is hidden save resources in the background by not
|
|
10448
10520
|
// running animation at all (#9749).
|
|
10449
10521
|
if (SVGElement_doc.hidden) {
|
|
@@ -10935,7 +11007,7 @@ class SVGElement {
|
|
|
10935
11007
|
.split(','); // Ending comma
|
|
10936
11008
|
i = v.length;
|
|
10937
11009
|
while (i--) {
|
|
10938
|
-
v[i] = '' + (pInt(v[i]) *
|
|
11010
|
+
v[i] = '' + (pInt(v[i]) * (strokeWidth ?? NaN));
|
|
10939
11011
|
}
|
|
10940
11012
|
value = v.join(',').replace(/NaN/g, 'none'); // #3226
|
|
10941
11013
|
this.element.setAttribute('stroke-dasharray', value);
|
|
@@ -11075,7 +11147,7 @@ class SVGElement {
|
|
|
11075
11147
|
* The bounding box with `x`, `y`, `width` and `height` properties.
|
|
11076
11148
|
*/
|
|
11077
11149
|
getBBox(reload, rot) {
|
|
11078
|
-
const wrapper = this, { element, renderer, styles, textStr } = wrapper, { cache, cacheKeys } = renderer, isSVG = element.namespaceURI === wrapper.SVG_NS, rotation =
|
|
11150
|
+
const wrapper = this, { element, renderer, styles, textStr } = wrapper, { cache, cacheKeys } = renderer, isSVG = element.namespaceURI === wrapper.SVG_NS, rotation = (rot ?? wrapper.rotation ?? 0), fontSize = renderer.styledMode ? (element &&
|
|
11079
11151
|
SVGElement.prototype.getStyle.call(element, 'font-size')) : (styles.fontSize), cacheKey = this.getBBoxCacheKey([
|
|
11080
11152
|
renderer.rootFontSize,
|
|
11081
11153
|
this.textWidth, // #7874, also useHTML
|
|
@@ -11601,7 +11673,7 @@ class SVGElement {
|
|
|
11601
11673
|
symbolAttr(hash) {
|
|
11602
11674
|
const wrapper = this;
|
|
11603
11675
|
SVGElement.symbolCustomAttribs.forEach(function (key) {
|
|
11604
|
-
wrapper[key] =
|
|
11676
|
+
wrapper[key] = (hash[key] ?? wrapper[key]);
|
|
11605
11677
|
});
|
|
11606
11678
|
wrapper.attr({
|
|
11607
11679
|
d: wrapper.renderer.symbols[wrapper.symbolName](wrapper.x, wrapper.y, wrapper.width, wrapper.height, wrapper)
|
|
@@ -11641,7 +11713,7 @@ class SVGElement {
|
|
|
11641
11713
|
}
|
|
11642
11714
|
// Replace text content and escape markup
|
|
11643
11715
|
titleNode.textContent = replaceNested(// Scan #[73]
|
|
11644
|
-
|
|
11716
|
+
(value ?? ''), // #3276, #3895
|
|
11645
11717
|
[/<[^>]*>/g, '']).replace(/</g, '<').replace(/>/g, '>');
|
|
11646
11718
|
}
|
|
11647
11719
|
/**
|
|
@@ -12419,7 +12491,7 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12419
12491
|
if ((this.textStr && this.bBox.width === 0 && this.bBox.height === 0) || this.rotation) {
|
|
12420
12492
|
this.updateBoxSize();
|
|
12421
12493
|
}
|
|
12422
|
-
const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft =
|
|
12494
|
+
const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft = (this.paddingLeft ?? padding), rotation = rot ?? (this.rotation || 0);
|
|
12423
12495
|
let bBox = {
|
|
12424
12496
|
width,
|
|
12425
12497
|
height,
|
|
@@ -12472,7 +12544,7 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12472
12544
|
this.attr({
|
|
12473
12545
|
// Alignment is available now (#3295, 0 not rendered if given
|
|
12474
12546
|
// as a value)
|
|
12475
|
-
text:
|
|
12547
|
+
text: (this.textStr ?? ''),
|
|
12476
12548
|
x: this.x || 0,
|
|
12477
12549
|
y: this.y || 0
|
|
12478
12550
|
});
|
|
@@ -12628,8 +12700,8 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12628
12700
|
/** @internal */
|
|
12629
12701
|
getPaddedWidth() {
|
|
12630
12702
|
const padding = this.padding;
|
|
12631
|
-
const paddingLeft =
|
|
12632
|
-
const paddingRight =
|
|
12703
|
+
const paddingLeft = (this.paddingLeft ?? padding);
|
|
12704
|
+
const paddingRight = (this.paddingRight ?? padding);
|
|
12633
12705
|
return ((this.widthSetting || this.bBox.width || 0) +
|
|
12634
12706
|
paddingLeft +
|
|
12635
12707
|
paddingRight);
|
|
@@ -12730,7 +12802,7 @@ function arc(cx, cy, w, h, options) {
|
|
|
12730
12802
|
const arc = [];
|
|
12731
12803
|
if (options) {
|
|
12732
12804
|
let start = options.start || 0, end = options.end || 0;
|
|
12733
|
-
const rx =
|
|
12805
|
+
const rx = (options.r ?? w), ry = (options.r ?? (h || w)),
|
|
12734
12806
|
// Subtract a small number to prevent cos and sin of start and end
|
|
12735
12807
|
// from becoming equal on 360 arcs (#1561). See "Arc proximity"
|
|
12736
12808
|
// tests at samples/unit-tests/svgrenderer/symbol/demo.js
|
|
@@ -12740,16 +12812,17 @@ function arc(cx, cy, w, h, options) {
|
|
|
12740
12812
|
start = Math.PI / 2;
|
|
12741
12813
|
end = Math.PI * 2.5 - proximity;
|
|
12742
12814
|
}
|
|
12743
|
-
const innerRadius = options.innerR, open =
|
|
12815
|
+
const innerRadius = options.innerR, open = (options.open ?? fullCircle), cosStart = fullCircle ? 0 : Math.cos(start), sinStart = fullCircle ? 1 : Math.sin(start), cosEnd = fullCircle ? 0 : Math.cos(end), sinEnd = fullCircle ? 1 : Math.sin(end),
|
|
12744
12816
|
// Proximity takes care of rounding errors around PI (#6971)
|
|
12745
|
-
longArc =
|
|
12817
|
+
longArc = options.longArc ??
|
|
12818
|
+
(end - start - Math.PI < proximity ? 0 : 1);
|
|
12746
12819
|
let arcSegment = [
|
|
12747
12820
|
'A', // ArcTo
|
|
12748
12821
|
rx, // X radius
|
|
12749
12822
|
ry, // Y radius
|
|
12750
12823
|
0, // Slanting
|
|
12751
12824
|
longArc, // Long or short arc
|
|
12752
|
-
|
|
12825
|
+
(options.clockwise ?? 1), // Clockwise
|
|
12753
12826
|
// Use a static pixel offset for full circle (#21701)
|
|
12754
12827
|
cx + (fullCircle ? 0.001 : rx * cosEnd),
|
|
12755
12828
|
cy + ry * sinEnd
|
|
@@ -13280,7 +13353,7 @@ class TextBuilder {
|
|
|
13280
13353
|
* @internal
|
|
13281
13354
|
*/
|
|
13282
13355
|
buildSVG() {
|
|
13283
|
-
const wrapper = this.svgElement, textNode = wrapper.element, renderer = wrapper.renderer, textStr =
|
|
13356
|
+
const wrapper = this.svgElement, textNode = wrapper.element, renderer = wrapper.renderer, textStr = (wrapper.textStr ?? '').toString(), hasMarkup = textStr.indexOf('<') !== -1, childNodes = textNode.childNodes, tempParent = !wrapper.added && renderer.box, regexMatchBreaks = /<br.*?>/g,
|
|
13284
13357
|
// The buildText code is quite heavy, so if we're not changing
|
|
13285
13358
|
// something that affects the text, skip it (#6113).
|
|
13286
13359
|
textCache = [
|
|
@@ -13864,7 +13937,7 @@ class SVGRenderer {
|
|
|
13864
13937
|
this.url = this.getReferenceURL();
|
|
13865
13938
|
// Add description
|
|
13866
13939
|
const desc = this.createElement('desc').add();
|
|
13867
|
-
desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.
|
|
13940
|
+
desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.2'));
|
|
13868
13941
|
this.defs = this.createElement('defs').add();
|
|
13869
13942
|
this.allowHTML = allowHTML;
|
|
13870
13943
|
this.forExport = forExport;
|
|
@@ -14650,7 +14723,7 @@ class SVGRenderer {
|
|
|
14650
14723
|
this.attr('height')
|
|
14651
14724
|
});
|
|
14652
14725
|
},
|
|
14653
|
-
duration:
|
|
14726
|
+
duration: (animate ?? true) ? void 0 : 0
|
|
14654
14727
|
});
|
|
14655
14728
|
renderer.alignElements();
|
|
14656
14729
|
}
|
|
@@ -14808,8 +14881,8 @@ class SVGRenderer {
|
|
|
14808
14881
|
// The image width is not always the same as the symbol width. The
|
|
14809
14882
|
// image may be centered within the symbol, as is the case when
|
|
14810
14883
|
// image shapes are used as label backgrounds, for example in flags.
|
|
14811
|
-
img.imgwidth =
|
|
14812
|
-
img.imgheight =
|
|
14884
|
+
img.imgwidth = (options?.width ?? symbolSizes[imageSrc]?.width);
|
|
14885
|
+
img.imgheight = (options?.height ?? symbolSizes[imageSrc]?.height);
|
|
14813
14886
|
/**
|
|
14814
14887
|
* Set the size and position
|
|
14815
14888
|
*/
|
|
@@ -19288,11 +19361,11 @@ class Tick {
|
|
|
19288
19361
|
* @function Highcharts.Tick#addLabel
|
|
19289
19362
|
*/
|
|
19290
19363
|
addLabel() {
|
|
19291
|
-
const tick = this, axis = tick.axis, options = axis.options, chart = axis.chart, categories = axis.categories, log = axis.logarithmic, names = axis.names, pos = tick.pos, labelOptions =
|
|
19364
|
+
const tick = this, axis = tick.axis, options = axis.options, chart = axis.chart, categories = axis.categories, log = axis.logarithmic, names = axis.names, pos = tick.pos, labelOptions = (tick.options?.labels ?? options.labels), tickPositions = axis.tickPositions, isFirst = pos === tickPositions[0], isLast = pos === tickPositions[tickPositions.length - 1], tickPositionInfo = tickPositions.info, boundary = tickPositionInfo?.boundaryTicks[pos], DTLFormats = options.dateTimeLabelFormats;
|
|
19292
19365
|
let label = tick.label, dateTimeLabelFormat, dateTimeLabelFormats, i;
|
|
19293
19366
|
// The context value
|
|
19294
19367
|
let value = this.parameters.category || (categories ?
|
|
19295
|
-
|
|
19368
|
+
(categories[pos] ?? names[pos] ?? pos) :
|
|
19296
19369
|
pos);
|
|
19297
19370
|
if (log && isNumber(value)) {
|
|
19298
19371
|
value = correctFloat(log.lin2log(value));
|
|
@@ -19539,7 +19612,7 @@ class Tick {
|
|
|
19539
19612
|
labelOptions.y;
|
|
19540
19613
|
}
|
|
19541
19614
|
x = x +
|
|
19542
|
-
|
|
19615
|
+
(labelOptions.x ?? [0, 1, 0, -1][axis.side] * distance) +
|
|
19543
19616
|
labelOffsetCorrection +
|
|
19544
19617
|
rotCorr.x -
|
|
19545
19618
|
(tickmarkOffset && horiz ?
|
|
@@ -19594,7 +19667,7 @@ class Tick {
|
|
|
19594
19667
|
* @function Highcharts.Tick#handleOverflow
|
|
19595
19668
|
*/
|
|
19596
19669
|
handleOverflow(xy) {
|
|
19597
|
-
const tick = this, axis = this.axis, labelOptions = axis.options.labels, pxPos = xy.x, chartWidth = axis.chart.chartWidth, spacing = axis.chart.spacing, leftBound =
|
|
19670
|
+
const tick = this, axis = this.axis, labelOptions = axis.options.labels, pxPos = xy.x, chartWidth = axis.chart.chartWidth, spacing = axis.chart.spacing, leftBound = axis.labelLeft ?? Math.min(axis.pos, spacing[3]), rightBound = (axis.labelRight ?? Math.max(!axis.isRadial ? axis.pos + axis.len : 0, chartWidth - spacing[1])), label = this.label, rotation = this.rotation, factor = getAlignFactor(axis.labelAlign || label.attr('align')), labelWidth = label.getBBox().width, slotWidth = axis.getSlotWidth(tick), xCorrection = factor, css = {};
|
|
19598
19671
|
let modifiedSlotWidth = slotWidth, goRight = 1, leftPos, rightPos, textWidth;
|
|
19599
19672
|
// Check if the label overshoots the chart spacing box. If it does, move
|
|
19600
19673
|
// it. If it now overshoots the slotWidth, add ellipsis.
|
|
@@ -19661,9 +19734,8 @@ class Tick {
|
|
|
19661
19734
|
* @param {number} [opacity]
|
|
19662
19735
|
*/
|
|
19663
19736
|
render(index, old, opacity) {
|
|
19664
|
-
const tick = this, axis = tick.axis, horiz = axis.horiz, pos = tick.pos, tickmarkOffset =
|
|
19665
|
-
const labelOpacity =
|
|
19666
|
-
1);
|
|
19737
|
+
const tick = this, axis = tick.axis, horiz = axis.horiz, pos = tick.pos, tickmarkOffset = (tick.tickmarkOffset ?? axis.tickmarkOffset), xy = tick.getPosition(horiz, pos, tickmarkOffset, old), x = xy.x, y = xy.y, axisStart = axis.pos, axisEnd = axisStart + axis.len, pxPos = horiz ? x : y;
|
|
19738
|
+
const labelOpacity = (opacity ?? tick.label?.newOpacity ?? 1);
|
|
19667
19739
|
// Anything that is not between `axis.pos` and `axis.pos + axis.length`
|
|
19668
19740
|
// should not be visible (#20166). The `correctFloat` is for reversed
|
|
19669
19741
|
// axes in Safari.
|
|
@@ -19691,7 +19763,7 @@ class Tick {
|
|
|
19691
19763
|
* @param {number} opacity The opacity of the grid line
|
|
19692
19764
|
*/
|
|
19693
19765
|
renderGridLine(old, opacity) {
|
|
19694
|
-
const tick = this, axis = tick.axis, options = axis.options, attribs = {}, pos = tick.pos, type = tick.type, tickmarkOffset =
|
|
19766
|
+
const tick = this, axis = tick.axis, options = axis.options, attribs = {}, pos = tick.pos, type = tick.type, tickmarkOffset = (tick.tickmarkOffset ?? axis.tickmarkOffset), renderer = axis.chart.renderer;
|
|
19695
19767
|
let gridLine = tick.gridLine, gridLinePath, gridLineWidth = options.gridLineWidth, gridLineColor = options.gridLineColor, dashStyle = options.gridLineDashStyle;
|
|
19696
19768
|
if (tick.type === 'minor') {
|
|
19697
19769
|
gridLineWidth = options.minorGridLineWidth;
|
|
@@ -19747,7 +19819,7 @@ class Tick {
|
|
|
19747
19819
|
* @param {number} opacity The opacity of the mark
|
|
19748
19820
|
*/
|
|
19749
19821
|
renderMark(xy, opacity) {
|
|
19750
|
-
const tick = this, axis = tick.axis, options = axis.options, renderer = axis.chart.renderer, type = tick.type, tickSize = axis.tickSize(type ? type + 'Tick' : 'tick'), x = xy.x, y = xy.y, tickWidth =
|
|
19822
|
+
const tick = this, axis = tick.axis, options = axis.options, renderer = axis.chart.renderer, type = tick.type, tickSize = axis.tickSize(type ? type + 'Tick' : 'tick'), x = xy.x, y = xy.y, tickWidth = options[type !== 'minor' ? 'tickWidth' : 'minorTickWidth'] ?? (!type && axis.isXAxis ? 1 : 0), // X axis defaults to 1
|
|
19751
19823
|
tickColor = options[type !== 'minor' ? 'tickColor' : 'minorTickColor'];
|
|
19752
19824
|
let mark = tick.mark;
|
|
19753
19825
|
const isNewMark = !mark;
|
|
@@ -19792,7 +19864,7 @@ class Tick {
|
|
|
19792
19864
|
* @param {number} index The index of the tick
|
|
19793
19865
|
*/
|
|
19794
19866
|
renderLabel(xy, old, opacity, index) {
|
|
19795
|
-
const tick = this, axis = tick.axis, horiz = axis.horiz, options = axis.options, label = tick.label, labelOptions = options.labels, step = labelOptions.step, tickmarkOffset =
|
|
19867
|
+
const tick = this, axis = tick.axis, horiz = axis.horiz, options = axis.options, label = tick.label, labelOptions = options.labels, step = labelOptions.step, tickmarkOffset = (tick.tickmarkOffset ?? axis.tickmarkOffset), x = xy.x, y = xy.y;
|
|
19796
19868
|
let show = true;
|
|
19797
19869
|
if (label && isNumber(x)) {
|
|
19798
19870
|
label.xy = xy = tick.getLabelPosition(x, y, label, horiz, labelOptions, tickmarkOffset, index, step);
|
|
@@ -19897,12 +19969,7 @@ const { deg2rad: Axis_deg2rad } = Core_Globals;
|
|
|
19897
19969
|
|
|
19898
19970
|
|
|
19899
19971
|
|
|
19900
|
-
const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0,
|
|
19901
|
-
// If the tick interval is greater than 0.5, avoid decimals, as
|
|
19902
|
-
// linear axes are often used to render discrete values (#3363). If
|
|
19903
|
-
// a tick amount is set, allow decimals by default, as it increases
|
|
19904
|
-
// the chances for a good fit.
|
|
19905
|
-
tickInterval < 0.5 || axis.tickAmount !== void 0), !!axis.tickAmount);
|
|
19972
|
+
const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0, (axis.options.allowDecimals ?? (tickInterval < 0.5 || axis.tickAmount !== void 0)), !!axis.tickAmount);
|
|
19906
19973
|
extend(Axis_defaultOptions, { xAxis, yAxis: merge(xAxis, yAxis) });
|
|
19907
19974
|
/* *
|
|
19908
19975
|
*
|
|
@@ -20010,7 +20077,7 @@ class Axis {
|
|
|
20010
20077
|
axis.coll = coll;
|
|
20011
20078
|
fireEvent(this, 'init', { userOptions: userOptions });
|
|
20012
20079
|
// Needed in setOptions
|
|
20013
|
-
axis.opposite =
|
|
20080
|
+
axis.opposite = (userOptions.opposite ?? axis.opposite);
|
|
20014
20081
|
/**
|
|
20015
20082
|
* The side on which the axis is rendered. 0 is top, 1 is right, 2
|
|
20016
20083
|
* is bottom and 3 is left.
|
|
@@ -20018,10 +20085,9 @@ class Axis {
|
|
|
20018
20085
|
* @name Highcharts.Axis#side
|
|
20019
20086
|
* @type {number}
|
|
20020
20087
|
*/
|
|
20021
|
-
axis.side =
|
|
20088
|
+
axis.side = (userOptions.side ?? axis.side ?? (horiz ?
|
|
20022
20089
|
(axis.opposite ? 0 : 2) : // Top : bottom
|
|
20023
|
-
(axis.opposite ? 1 : 3))
|
|
20024
|
-
);
|
|
20090
|
+
(axis.opposite ? 1 : 3)));
|
|
20025
20091
|
/**
|
|
20026
20092
|
* Current options for the axis after merge of defaults and user's
|
|
20027
20093
|
* options.
|
|
@@ -20050,7 +20116,7 @@ class Axis {
|
|
|
20050
20116
|
* @name Highcharts.Axis#reversed
|
|
20051
20117
|
* @type {boolean}
|
|
20052
20118
|
*/
|
|
20053
|
-
axis.reversed =
|
|
20119
|
+
axis.reversed = (options.reversed ?? axis.reversed);
|
|
20054
20120
|
axis.visible = options.visible;
|
|
20055
20121
|
axis.zoomEnabled = options.zoomEnabled;
|
|
20056
20122
|
// Initial categories
|
|
@@ -20138,7 +20204,7 @@ class Axis {
|
|
|
20138
20204
|
* @name Highcharts.Axis#crosshair
|
|
20139
20205
|
* @type {boolean|Highcharts.AxisCrosshairOptions}
|
|
20140
20206
|
*/
|
|
20141
|
-
const crosshair =
|
|
20207
|
+
const crosshair = options.crosshair ?? splat(chart.options.tooltip.crosshairs)[isXAxis ? 0 : 1];
|
|
20142
20208
|
axis.crosshair = crosshair === true ? {} : crosshair;
|
|
20143
20209
|
// Register. Don't add it again on Axis.update().
|
|
20144
20210
|
if (chart.axes.indexOf(axis) === -1) { //
|
|
@@ -20322,8 +20388,8 @@ class Axis {
|
|
|
20322
20388
|
seriesDataMax = xExtremes.max;
|
|
20323
20389
|
}
|
|
20324
20390
|
if (xData.length) {
|
|
20325
|
-
axis.dataMin = Math.min(
|
|
20326
|
-
axis.dataMax = Math.max(
|
|
20391
|
+
axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
|
|
20392
|
+
axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
|
|
20327
20393
|
}
|
|
20328
20394
|
}
|
|
20329
20395
|
// Get dataMin and dataMax for Y axes, as well as handle
|
|
@@ -20338,11 +20404,11 @@ class Axis {
|
|
|
20338
20404
|
// doesn't have active y data, we continue with nulls
|
|
20339
20405
|
if (isNumber(dataExtremes.dataMin)) {
|
|
20340
20406
|
seriesDataMin = dataExtremes.dataMin;
|
|
20341
|
-
axis.dataMin = Math.min(
|
|
20407
|
+
axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
|
|
20342
20408
|
}
|
|
20343
20409
|
if (isNumber(dataExtremes.dataMax)) {
|
|
20344
20410
|
seriesDataMax = dataExtremes.dataMax;
|
|
20345
|
-
axis.dataMax = Math.max(
|
|
20411
|
+
axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
|
|
20346
20412
|
}
|
|
20347
20413
|
// Adjust to threshold
|
|
20348
20414
|
if (defined(threshold)) {
|
|
@@ -20497,7 +20563,7 @@ class Axis {
|
|
|
20497
20563
|
translatedValue
|
|
20498
20564
|
};
|
|
20499
20565
|
fireEvent(this, 'getPlotLinePath', evt, function (e) {
|
|
20500
|
-
translatedValue =
|
|
20566
|
+
translatedValue = translatedValue ?? axis.translate(value, void 0, void 0, old);
|
|
20501
20567
|
// Keep the translated value within sane bounds, and avoid Infinity
|
|
20502
20568
|
// to fail the isNumber test (#7709).
|
|
20503
20569
|
translatedValue = clamp(translatedValue, -1e9, 1e9);
|
|
@@ -20586,7 +20652,7 @@ class Axis {
|
|
|
20586
20652
|
getMinorTickInterval() {
|
|
20587
20653
|
const { minorTicks, minorTickInterval } = this.options;
|
|
20588
20654
|
if (minorTicks === true) {
|
|
20589
|
-
return
|
|
20655
|
+
return (minorTickInterval ?? 'auto');
|
|
20590
20656
|
}
|
|
20591
20657
|
if (minorTicks === false) {
|
|
20592
20658
|
return;
|
|
@@ -20869,7 +20935,9 @@ class Axis {
|
|
|
20869
20935
|
const seriesPointRange = hasCategories ?
|
|
20870
20936
|
1 :
|
|
20871
20937
|
(isXAxis ?
|
|
20872
|
-
|
|
20938
|
+
(series.options.pointRange ??
|
|
20939
|
+
closestPointRange ??
|
|
20940
|
+
0) :
|
|
20873
20941
|
(axis.axisPointRange || 0)), // #2806
|
|
20874
20942
|
pointPlacement = series.options.pointPlacement;
|
|
20875
20943
|
pointRange = Math.max(pointRange, seriesPointRange);
|
|
@@ -20953,14 +21021,16 @@ class Axis {
|
|
|
20953
21021
|
this.getTickAmount();
|
|
20954
21022
|
}
|
|
20955
21023
|
// Min or max set either by zooming/setExtremes or initial options
|
|
20956
|
-
hardMin =
|
|
20957
|
-
hardMax =
|
|
21024
|
+
hardMin = (axis.userMin ?? time.parse(options.min));
|
|
21025
|
+
hardMax = (axis.userMax ?? time.parse(options.max));
|
|
20958
21026
|
// Linked axis gets the extremes from the parent axis
|
|
20959
21027
|
if (linkedParent) {
|
|
20960
21028
|
axis.linkedParent = linkedParent;
|
|
20961
21029
|
linkedParentExtremes = linkedParent.getExtremes();
|
|
20962
|
-
axis.min =
|
|
20963
|
-
|
|
21030
|
+
axis.min =
|
|
21031
|
+
linkedParentExtremes.min ?? linkedParentExtremes.dataMin;
|
|
21032
|
+
axis.max =
|
|
21033
|
+
linkedParentExtremes.max ?? linkedParentExtremes.dataMax;
|
|
20964
21034
|
if (this.type !== linkedParent.type) {
|
|
20965
21035
|
// Can't link axes of different type
|
|
20966
21036
|
error(11, true, chart);
|
|
@@ -20982,14 +21052,14 @@ class Axis {
|
|
|
20982
21052
|
maxPadding = 0;
|
|
20983
21053
|
}
|
|
20984
21054
|
}
|
|
20985
|
-
axis.min =
|
|
20986
|
-
axis.max =
|
|
21055
|
+
axis.min = (hardMin ?? thresholdMin ?? dataMin);
|
|
21056
|
+
axis.max = (hardMax ?? thresholdMax ?? dataMax);
|
|
20987
21057
|
}
|
|
20988
21058
|
if (isNumber(axis.max) && isNumber(axis.min)) {
|
|
20989
21059
|
if (logarithmic) {
|
|
20990
21060
|
if (axis.positiveValuesOnly &&
|
|
20991
21061
|
!secondPass &&
|
|
20992
|
-
Math.min(axis.min,
|
|
21062
|
+
Math.min(axis.min, (dataMin ?? axis.min)) <= 0) { // #978
|
|
20993
21063
|
// Can't plot negative values on log axis
|
|
20994
21064
|
error(10, true, chart);
|
|
20995
21065
|
}
|
|
@@ -21095,16 +21165,13 @@ class Axis {
|
|
|
21095
21165
|
axis.tickInterval = tickIntervalOption = linkedParent.tickInterval;
|
|
21096
21166
|
}
|
|
21097
21167
|
else {
|
|
21098
|
-
axis.tickInterval =
|
|
21168
|
+
axis.tickInterval = tickIntervalOption ?? (this.tickAmount ?
|
|
21099
21169
|
range / Math.max(this.tickAmount - 1, 1) :
|
|
21100
|
-
|
|
21101
|
-
|
|
21102
|
-
|
|
21103
|
-
|
|
21104
|
-
|
|
21105
|
-
// Don't let it be more than the data range
|
|
21106
|
-
range * tickPixelIntervalOption /
|
|
21107
|
-
Math.max(axis.len, tickPixelIntervalOption));
|
|
21170
|
+
categories ?
|
|
21171
|
+
1 :
|
|
21172
|
+
// Don't let it be more than the data range
|
|
21173
|
+
range * tickPixelIntervalOption /
|
|
21174
|
+
Math.max(axis.len, tickPixelIntervalOption));
|
|
21108
21175
|
}
|
|
21109
21176
|
// Now we're finished detecting min and max, crop and group series data.
|
|
21110
21177
|
// This is in turn needed in order to find tick positions in ordinal
|
|
@@ -21134,12 +21201,9 @@ class Axis {
|
|
|
21134
21201
|
}
|
|
21135
21202
|
// Before normalizing the tick interval, handle minimum tick interval.
|
|
21136
21203
|
// This applies only if tickInterval is not defined.
|
|
21137
|
-
const minTickInterval =
|
|
21138
|
-
|
|
21139
|
-
|
|
21140
|
-
dateTime &&
|
|
21141
|
-
!axis.series.some((s) => !s.sorted) ?
|
|
21142
|
-
axis.closestPointRange : 0);
|
|
21204
|
+
const minTickInterval = options.minTickInterval ?? (dateTime && !axis.series.some((s) => !s.sorted) ?
|
|
21205
|
+
axis.closestPointRange :
|
|
21206
|
+
0);
|
|
21143
21207
|
if (!tickIntervalOption &&
|
|
21144
21208
|
minTickInterval &&
|
|
21145
21209
|
axis.tickInterval < minTickInterval) {
|
|
@@ -21469,7 +21533,7 @@ class Axis {
|
|
|
21469
21533
|
* @function Highcharts.Axis#adjustTickAmount
|
|
21470
21534
|
*/
|
|
21471
21535
|
adjustTickAmount() {
|
|
21472
|
-
const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold =
|
|
21536
|
+
const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold = axis.threshold ?? (axis.softThreshold ? 0 : null);
|
|
21473
21537
|
let len, i, tickInterval = axis.tickInterval, thresholdTickIndex;
|
|
21474
21538
|
const
|
|
21475
21539
|
// Extend the tickPositions by appending a position
|
|
@@ -21705,7 +21769,8 @@ class Axis {
|
|
|
21705
21769
|
offsets = options.offsets || [0, 0, 0, 0], horiz = this.horiz,
|
|
21706
21770
|
// Check for percentage based input values. Rounding fixes problems
|
|
21707
21771
|
// with column overflow and plot line filtering (#4898, #4899)
|
|
21708
|
-
width = this.width = Math.round(relativeLength(
|
|
21772
|
+
width = this.width = Math.round(relativeLength((options.width ?? chart.plotWidth - offsets[3] + offsets[1]), chart.plotWidth)), height = this.height = Math.round(relativeLength((options.height ??
|
|
21773
|
+
chart.plotHeight - offsets[0] + offsets[2]), chart.plotHeight)), top = this.top = Math.round(relativeLength((options.top ?? chart.plotTop + offsets[0]), chart.plotHeight, chart.plotTop)), left = this.left = Math.round(relativeLength((options.left ?? chart.plotLeft + offsets[3]), chart.plotWidth, chart.plotLeft));
|
|
21709
21774
|
// Expose basic values to use in Series object and navigator
|
|
21710
21775
|
this.bottom = chart.chartHeight - height - top;
|
|
21711
21776
|
this.right = chart.chartWidth - width - left;
|
|
@@ -21816,9 +21881,7 @@ class Axis {
|
|
|
21816
21881
|
* An array of tickLength and tickWidth
|
|
21817
21882
|
*/
|
|
21818
21883
|
tickSize(prefix) {
|
|
21819
|
-
const options = this.options, tickWidth =
|
|
21820
|
-
// Default to 1 on linear and datetime X axes
|
|
21821
|
-
prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
|
|
21884
|
+
const options = this.options, tickWidth = options[prefix === 'tick' ? 'tickWidth' : 'minorTickWidth'] ?? (prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
|
|
21822
21885
|
let tickLength = options[prefix === 'tick' ? 'tickLength' : 'minorTickLength'], tickSize;
|
|
21823
21886
|
if (tickWidth && tickLength) {
|
|
21824
21887
|
// Negate the length
|
|
@@ -21905,7 +21968,7 @@ class Axis {
|
|
|
21905
21968
|
newTickInterval = getStep(lineHeight * 0.75);
|
|
21906
21969
|
}
|
|
21907
21970
|
this.autoRotation = autoRotation;
|
|
21908
|
-
this.labelRotation =
|
|
21971
|
+
this.labelRotation = rotation ?? (isNumber(rotationOption) ? rotationOption : 0);
|
|
21909
21972
|
return labelOptions.step ? tickInterval : newTickInterval;
|
|
21910
21973
|
}
|
|
21911
21974
|
/**
|
|
@@ -22257,7 +22320,7 @@ class Axis {
|
|
|
22257
22320
|
titleOffsetOption = axisTitleOptions.offset;
|
|
22258
22321
|
titleMargin = defined(titleOffsetOption) ?
|
|
22259
22322
|
0 :
|
|
22260
|
-
|
|
22323
|
+
axisTitleOptions.margin ?? (horiz ? 5 : 10);
|
|
22261
22324
|
}
|
|
22262
22325
|
}
|
|
22263
22326
|
// Render the axis line
|
|
@@ -22768,9 +22831,9 @@ class Axis {
|
|
|
22768
22831
|
}
|
|
22769
22832
|
else if (defined(point)) {
|
|
22770
22833
|
// #3834
|
|
22771
|
-
pos =
|
|
22772
|
-
point.crosshairPos :
|
|
22773
|
-
null
|
|
22834
|
+
pos = (this.coll !== 'colorAxis' ?
|
|
22835
|
+
point.crosshairPos :
|
|
22836
|
+
null) ?? (this.isXAxis ?
|
|
22774
22837
|
point.plotX :
|
|
22775
22838
|
this.len - point.plotY);
|
|
22776
22839
|
}
|
|
@@ -22779,7 +22842,7 @@ class Axis {
|
|
|
22779
22842
|
// Value, only used on radial
|
|
22780
22843
|
value: point && (this.isXAxis ?
|
|
22781
22844
|
point.x :
|
|
22782
|
-
|
|
22845
|
+
(point.stackY ?? point.y ?? void 0)),
|
|
22783
22846
|
translatedValue: pos
|
|
22784
22847
|
};
|
|
22785
22848
|
if (chart.polar) {
|
|
@@ -22812,7 +22875,7 @@ class Axis {
|
|
|
22812
22875
|
(categorized ? 'category ' : 'thin ') +
|
|
22813
22876
|
(options.className || ''))
|
|
22814
22877
|
.attr({
|
|
22815
|
-
zIndex:
|
|
22878
|
+
zIndex: (options.zIndex ?? 2)
|
|
22816
22879
|
})
|
|
22817
22880
|
.clip(options.clip === false ?
|
|
22818
22881
|
void 0 :
|
|
@@ -22827,7 +22890,7 @@ class Axis {
|
|
|
22827
22890
|
// eslint-disable-next-line max-len
|
|
22828
22891
|
'var(--highcharts-highlight-color-20)').setOpacity(0.25).get() :
|
|
22829
22892
|
'var(--highcharts-neutral-color-20)'),
|
|
22830
|
-
'stroke-width':
|
|
22893
|
+
'stroke-width': (options.width ?? 1)
|
|
22831
22894
|
}).css({
|
|
22832
22895
|
'pointer-events': 'none'
|
|
22833
22896
|
});
|
|
@@ -22893,7 +22956,7 @@ class Axis {
|
|
|
22893
22956
|
this.destroy(true);
|
|
22894
22957
|
this.init(chart, options);
|
|
22895
22958
|
chart.isDirtyBox = true;
|
|
22896
|
-
if (
|
|
22959
|
+
if (redraw ?? true) {
|
|
22897
22960
|
chart.redraw();
|
|
22898
22961
|
}
|
|
22899
22962
|
}
|
|
@@ -22923,7 +22986,7 @@ class Axis {
|
|
|
22923
22986
|
chart.orderItems(coll);
|
|
22924
22987
|
this.destroy();
|
|
22925
22988
|
chart.isDirtyBox = true;
|
|
22926
|
-
if (
|
|
22989
|
+
if (redraw ?? true) {
|
|
22927
22990
|
chart.redraw();
|
|
22928
22991
|
}
|
|
22929
22992
|
}
|
|
@@ -23579,8 +23642,10 @@ var LogarithmicAxis;
|
|
|
23579
23642
|
tickIntervalOption, tickPixelIntervalOption = options.tickPixelInterval / (minor ? 5 : 1), totalPixelLength = minor ?
|
|
23580
23643
|
axisLength / axis.tickPositions.length :
|
|
23581
23644
|
axisLength;
|
|
23582
|
-
interval =
|
|
23583
|
-
|
|
23645
|
+
interval = filteredTickIntervalOption ??
|
|
23646
|
+
log.minorAutoInterval ??
|
|
23647
|
+
(realMax - realMin) * tickPixelIntervalOption /
|
|
23648
|
+
(totalPixelLength || 1);
|
|
23584
23649
|
interval = normalizeTickInterval(interval);
|
|
23585
23650
|
positions = axis.getLinearTickPositions(interval, realMin, realMax).map(log.log2lin);
|
|
23586
23651
|
if (!minor) {
|
|
@@ -24009,7 +24074,8 @@ class PlotLineOrBand {
|
|
|
24009
24074
|
if (!chart.styledMode) {
|
|
24010
24075
|
if (isLine) {
|
|
24011
24076
|
attribs.stroke = color || 'var(--highcharts-neutral-color-40)';
|
|
24012
|
-
attribs['stroke-width'] =
|
|
24077
|
+
attribs['stroke-width'] =
|
|
24078
|
+
options.width ?? 1;
|
|
24013
24079
|
if (options.dashStyle) {
|
|
24014
24080
|
attribs.dashstyle = options.dashStyle;
|
|
24015
24081
|
}
|
|
@@ -25141,7 +25207,8 @@ class Tooltip {
|
|
|
25141
25207
|
'highcharts-label',
|
|
25142
25208
|
isHeader && 'highcharts-tooltip-header',
|
|
25143
25209
|
isSplit ? 'highcharts-tooltip-box' : 'highcharts-tooltip',
|
|
25144
|
-
!isHeader &&
|
|
25210
|
+
!isHeader &&
|
|
25211
|
+
'highcharts-color-' + (point.colorIndex ?? series.colorIndex),
|
|
25145
25212
|
seriesOptions?.className
|
|
25146
25213
|
].filter(isString).join(' ');
|
|
25147
25214
|
}
|
|
@@ -25326,7 +25393,8 @@ class Tooltip {
|
|
|
25326
25393
|
}
|
|
25327
25394
|
// The far side is right or bottom
|
|
25328
25395
|
const preferFarSide = !this.followPointer &&
|
|
25329
|
-
|
|
25396
|
+
(point.ttBelow ??
|
|
25397
|
+
(polar ? false : !inverted === flipped)), // #4984
|
|
25330
25398
|
/*
|
|
25331
25399
|
* Handle the preferred dimension. When the preferred dimension is
|
|
25332
25400
|
* tooltip on top or bottom of the point, it will look for space
|
|
@@ -25453,7 +25521,7 @@ class Tooltip {
|
|
|
25453
25521
|
const tooltip = this;
|
|
25454
25522
|
// Disallow duplicate timers (#1728, #1766)
|
|
25455
25523
|
clearTimeouts(this);
|
|
25456
|
-
delay =
|
|
25524
|
+
delay = (delay ?? this.options.hideDelay);
|
|
25457
25525
|
if (!this.isHidden) {
|
|
25458
25526
|
this.hideTimer = syncTimeout(function () {
|
|
25459
25527
|
const label = tooltip.getLabel();
|
|
@@ -25556,7 +25624,9 @@ class Tooltip {
|
|
|
25556
25624
|
* Split tooltip does not support outside in the first iteration. Should
|
|
25557
25625
|
* not be too complicated to implement.
|
|
25558
25626
|
*/
|
|
25559
|
-
this.outside =
|
|
25627
|
+
this.outside =
|
|
25628
|
+
options.outside ??
|
|
25629
|
+
Boolean(chart.scrollablePixelsX || chart.scrollablePixelsY);
|
|
25560
25630
|
}
|
|
25561
25631
|
shouldStickOnContact(pointerEvent) {
|
|
25562
25632
|
return !!(!this.followPointer &&
|
|
@@ -25636,7 +25706,7 @@ class Tooltip {
|
|
|
25636
25706
|
point.points = void 0;
|
|
25637
25707
|
// Register the current series
|
|
25638
25708
|
const currentSeries = point.series;
|
|
25639
|
-
this.distance =
|
|
25709
|
+
this.distance = (currentSeries.tooltipOptions.distance ?? 16);
|
|
25640
25710
|
// Update the inner HTML
|
|
25641
25711
|
if (text === false) {
|
|
25642
25712
|
this.hide();
|
|
@@ -25909,7 +25979,7 @@ class Tooltip {
|
|
|
25909
25979
|
anchorY,
|
|
25910
25980
|
boxWidth,
|
|
25911
25981
|
point,
|
|
25912
|
-
rank:
|
|
25982
|
+
rank: boxPosition.rank ?? (isHeader ? 1 : 0),
|
|
25913
25983
|
size,
|
|
25914
25984
|
target: boxPosition.y,
|
|
25915
25985
|
tt,
|
|
@@ -27254,7 +27324,7 @@ class Point {
|
|
|
27254
27324
|
*/
|
|
27255
27325
|
select(selected, accumulate) {
|
|
27256
27326
|
const point = this, series = point.series, chart = series.chart;
|
|
27257
|
-
selected =
|
|
27327
|
+
selected = (selected ?? !point.selected);
|
|
27258
27328
|
this.selectedStaging = selected;
|
|
27259
27329
|
// Fire the event with the default handler
|
|
27260
27330
|
point.firePointEvent(selected ? 'select' : 'unselect', { accumulate: accumulate }, function () {
|
|
@@ -27505,7 +27575,7 @@ class Point {
|
|
|
27505
27575
|
});
|
|
27506
27576
|
halo.attr({
|
|
27507
27577
|
'class': 'highcharts-halo highcharts-color-' +
|
|
27508
|
-
|
|
27578
|
+
(point.colorIndex ?? series.colorIndex) +
|
|
27509
27579
|
(point.className ? ' ' + point.className : ''),
|
|
27510
27580
|
'visibility': markerVisibility,
|
|
27511
27581
|
'zIndex': -1 // #4929, #8276
|
|
@@ -28238,7 +28308,7 @@ class Pointer {
|
|
|
28238
28308
|
const hoverPoints = [], useExisting = !!(isDirectTouch && existingHoverPoint), filter = function (s) {
|
|
28239
28309
|
return (s.visible &&
|
|
28240
28310
|
!(!shared && s.directTouch) && // #3821
|
|
28241
|
-
|
|
28311
|
+
(s.options.enableMouseTracking ?? true));
|
|
28242
28312
|
};
|
|
28243
28313
|
let hoverSeries = existingHoverSeries,
|
|
28244
28314
|
// Which series to look in for the hover point
|
|
@@ -28424,8 +28494,8 @@ class Pointer {
|
|
|
28424
28494
|
const ePos = (touches ?
|
|
28425
28495
|
touches.length ?
|
|
28426
28496
|
touches.item(0) :
|
|
28427
|
-
(
|
|
28428
|
-
|
|
28497
|
+
(touches.changedTouches ??
|
|
28498
|
+
e.changedTouches)[0] :
|
|
28429
28499
|
e);
|
|
28430
28500
|
// Get mouse position
|
|
28431
28501
|
if (!chartPosition) {
|
|
@@ -28499,7 +28569,7 @@ class Pointer {
|
|
|
28499
28569
|
* @function Highcharts.Pointer#onContainerMouseLeave
|
|
28500
28570
|
*/
|
|
28501
28571
|
onContainerMouseLeave(e) {
|
|
28502
|
-
const { pointer } = Pointer_charts[
|
|
28572
|
+
const { pointer } = Pointer_charts[(Pointer.hoverChartIndex ?? -1)] || {};
|
|
28503
28573
|
e = this.normalize(e);
|
|
28504
28574
|
this.onContainerMouseMove(e);
|
|
28505
28575
|
// #4886, MS Touch end fires mouseleave but with no related target
|
|
@@ -28599,7 +28669,7 @@ class Pointer {
|
|
|
28599
28669
|
if (e?.touches && this.hasPinchMoved) {
|
|
28600
28670
|
e?.preventDefault?.();
|
|
28601
28671
|
}
|
|
28602
|
-
Pointer_charts[
|
|
28672
|
+
Pointer_charts[(Pointer.hoverChartIndex ?? -1)]
|
|
28603
28673
|
?.pointer
|
|
28604
28674
|
?.drop(e);
|
|
28605
28675
|
}
|
|
@@ -29106,7 +29176,7 @@ class Pointer {
|
|
|
29106
29176
|
*/
|
|
29107
29177
|
setHoverChartIndex(e) {
|
|
29108
29178
|
const chart = this.chart;
|
|
29109
|
-
const hoverChart = Core_Globals.charts[
|
|
29179
|
+
const hoverChart = Core_Globals.charts[(Pointer.hoverChartIndex ?? -1)];
|
|
29110
29180
|
if (hoverChart &&
|
|
29111
29181
|
hoverChart !== chart) {
|
|
29112
29182
|
const relatedTargetObj = { relatedTarget: chart.container };
|
|
@@ -29152,7 +29222,7 @@ class Pointer {
|
|
|
29152
29222
|
Math.pow(pinchDown[0].chartY - e.chartY, 2)) >= 16 :
|
|
29153
29223
|
false;
|
|
29154
29224
|
}
|
|
29155
|
-
if (
|
|
29225
|
+
if (hasMoved ?? true) {
|
|
29156
29226
|
this.pinch(e);
|
|
29157
29227
|
}
|
|
29158
29228
|
}
|
|
@@ -29195,7 +29265,7 @@ class Pointer {
|
|
|
29195
29265
|
let zoomType = chart.zooming.type || '', zoomX, zoomY;
|
|
29196
29266
|
// Look for the pinchType option
|
|
29197
29267
|
if (/touch/.test(e.type)) {
|
|
29198
|
-
zoomType =
|
|
29268
|
+
zoomType = (chart.zooming.pinchType ?? zoomType);
|
|
29199
29269
|
}
|
|
29200
29270
|
this.zoomX = zoomX = /x/.test(zoomType);
|
|
29201
29271
|
this.zoomY = zoomY = /y/.test(zoomType);
|
|
@@ -29969,7 +30039,7 @@ var LegendSymbol;
|
|
|
29969
30039
|
// Draw the marker
|
|
29970
30040
|
if (markerOptions && markerOptions.enabled !== false && symbolWidth) {
|
|
29971
30041
|
// Do not allow the marker to be larger than the symbolHeight
|
|
29972
|
-
let radius = Math.min(
|
|
30042
|
+
let radius = Math.min((markerOptions.radius ?? generalRadius), generalRadius);
|
|
29973
30043
|
// Restrict symbol markers size
|
|
29974
30044
|
if (symbol.indexOf('url') === 0) {
|
|
29975
30045
|
markerOptions = merge(markerOptions, {
|
|
@@ -32990,7 +33060,7 @@ class Series {
|
|
|
32990
33060
|
if (chartSeries.length) {
|
|
32991
33061
|
lastSeries = chartSeries[chartSeries.length - 1];
|
|
32992
33062
|
}
|
|
32993
|
-
series._i =
|
|
33063
|
+
series._i = (lastSeries?._i ?? -1) + 1;
|
|
32994
33064
|
series.opacity = series.options.opacity;
|
|
32995
33065
|
// Insert the series and re-order all series above the insertion
|
|
32996
33066
|
// point.
|
|
@@ -33037,7 +33107,7 @@ class Series {
|
|
|
33037
33107
|
// Apply if the series xAxis or yAxis option matches
|
|
33038
33108
|
// the number of the axis, or if undefined, use the
|
|
33039
33109
|
// first axis
|
|
33040
|
-
if (
|
|
33110
|
+
if ((seriesOptions[coll] ?? 0) === axis.index ||
|
|
33041
33111
|
(typeof seriesOptions[coll] !==
|
|
33042
33112
|
'undefined' &&
|
|
33043
33113
|
seriesOptions[coll] === axisOptions.id)) {
|
|
@@ -33080,8 +33150,12 @@ class Series {
|
|
|
33080
33150
|
* @function Highcharts.Series#hasMarkerChanged
|
|
33081
33151
|
*/
|
|
33082
33152
|
hasMarkerChanged(options, oldOptions) {
|
|
33083
|
-
const marker = options.marker, oldMarker = oldOptions.marker
|
|
33084
|
-
|
|
33153
|
+
const marker = options.marker, oldMarker = oldOptions.marker;
|
|
33154
|
+
// Note that `marker` holds the full, merged object including
|
|
33155
|
+
// `plotOptions`, while `oldMarker` is the user-defined series-level
|
|
33156
|
+
// options only. We may need to refactor that in the future if more
|
|
33157
|
+
// issues like #24057 arise.
|
|
33158
|
+
return marker && oldMarker && ((oldMarker.enabled && !marker.enabled) ||
|
|
33085
33159
|
oldMarker.symbol !== marker.symbol || // #10870, #15946
|
|
33086
33160
|
oldMarker.height !== marker.height || // #16274
|
|
33087
33161
|
oldMarker.width !== marker.width // #16274
|
|
@@ -33100,7 +33174,8 @@ class Series {
|
|
|
33100
33174
|
time.parse(options.pointStart) ??
|
|
33101
33175
|
0;
|
|
33102
33176
|
let pointInterval;
|
|
33103
|
-
this.pointInterval = pointInterval =
|
|
33177
|
+
this.pointInterval = pointInterval =
|
|
33178
|
+
this.pointInterval ?? options.pointInterval ?? 1;
|
|
33104
33179
|
if (relativeXValue && isNumber(x)) {
|
|
33105
33180
|
pointInterval *= x;
|
|
33106
33181
|
}
|
|
@@ -33172,9 +33247,13 @@ class Series {
|
|
|
33172
33247
|
);
|
|
33173
33248
|
// When shared tooltip, stickyTracking is true by default,
|
|
33174
33249
|
// unless user says otherwise.
|
|
33175
|
-
this.stickyTracking =
|
|
33176
|
-
|
|
33177
|
-
|
|
33250
|
+
this.stickyTracking =
|
|
33251
|
+
seriesUserOptions.stickyTracking ??
|
|
33252
|
+
userPlotOptionsType.stickyTracking ??
|
|
33253
|
+
userPlotOptionsSeries.stickyTracking ??
|
|
33254
|
+
(this.tooltipOptions.shared && !this.noSharedTooltip ?
|
|
33255
|
+
true :
|
|
33256
|
+
options.stickyTracking);
|
|
33178
33257
|
// Delete marker object if not allowed (#1125)
|
|
33179
33258
|
if (typeOptions.marker === null) {
|
|
33180
33259
|
delete options.marker;
|
|
@@ -33252,7 +33331,9 @@ class Series {
|
|
|
33252
33331
|
if (!value) {
|
|
33253
33332
|
// Pick up either the colorIndex option, or the series.colorIndex
|
|
33254
33333
|
// after Series.update()
|
|
33255
|
-
setting =
|
|
33334
|
+
setting = prop === 'color' ?
|
|
33335
|
+
(this.options.colorIndex ?? this[indexName]) :
|
|
33336
|
+
this[indexName];
|
|
33256
33337
|
if (defined(setting)) { // After Series.update()
|
|
33257
33338
|
i = setting;
|
|
33258
33339
|
}
|
|
@@ -34279,7 +34360,9 @@ class Series {
|
|
|
34279
34360
|
yValue = stackValues[1];
|
|
34280
34361
|
if (lowValue === stackThreshold &&
|
|
34281
34362
|
stackIndicator.key === stacks[xValue].base) {
|
|
34282
|
-
lowValue =
|
|
34363
|
+
lowValue = isNumber(threshold) ?
|
|
34364
|
+
threshold :
|
|
34365
|
+
yAxis.min;
|
|
34283
34366
|
}
|
|
34284
34367
|
// #1200, #1232
|
|
34285
34368
|
if (yAxis.positiveValuesOnly &&
|
|
@@ -34287,7 +34370,7 @@ class Series {
|
|
|
34287
34370
|
lowValue <= 0) {
|
|
34288
34371
|
lowValue = void 0;
|
|
34289
34372
|
}
|
|
34290
|
-
point.total = point.stackTotal =
|
|
34373
|
+
point.total = point.stackTotal = stackItem.total ?? void 0;
|
|
34291
34374
|
point.percentage = defined(point.y) && stackItem.total ?
|
|
34292
34375
|
(point.y / stackItem.total * 100) : void 0;
|
|
34293
34376
|
point.stackY = yValue;
|
|
@@ -34537,7 +34620,9 @@ class Series {
|
|
|
34537
34620
|
// Only draw the point if y is defined
|
|
34538
34621
|
if (shouldDrawMarker) {
|
|
34539
34622
|
// Shortcuts
|
|
34540
|
-
const symbol =
|
|
34623
|
+
const symbol = pointMarkerOptions.symbol ??
|
|
34624
|
+
series.symbol ??
|
|
34625
|
+
'rect';
|
|
34541
34626
|
markerAttribs = series.markerAttribs(point, point.selected ? 'select' : '');
|
|
34542
34627
|
const isInside = point.isInside !== false;
|
|
34543
34628
|
if (!graphic &&
|
|
@@ -34805,7 +34890,7 @@ class Series {
|
|
|
34805
34890
|
// Reset
|
|
34806
34891
|
zones.forEach((zone) => {
|
|
34807
34892
|
zone.lineClip = [];
|
|
34808
|
-
zone.translated = clamp(axis.toPixels(
|
|
34893
|
+
zone.translated = clamp(axis.toPixels((zone.value ?? axisMax), true) || 0, 0, len);
|
|
34809
34894
|
});
|
|
34810
34895
|
// The use of the Color Threshold assumes there are no gaps so it is
|
|
34811
34896
|
// safe to hide the original graph and area unless it is not
|
|
@@ -35461,7 +35546,7 @@ class Series {
|
|
|
35461
35546
|
const series = this, seriesOptions = series.options, { chart, data, dataTable: table, xAxis } = series, names = xAxis?.hasNames && xAxis.names, dataOptions = seriesOptions.data, xData = series.getColumn('x');
|
|
35462
35547
|
let isInTheMiddle, i;
|
|
35463
35548
|
// Optional redraw, defaults to true
|
|
35464
|
-
redraw =
|
|
35549
|
+
redraw = (redraw ?? true);
|
|
35465
35550
|
// Get options and push the point to xData, yData and series.options. In
|
|
35466
35551
|
// series.generatePoints the Point instance will be created on demand
|
|
35467
35552
|
// and pushed to the series.data array.
|
|
@@ -35572,7 +35657,7 @@ class Series {
|
|
|
35572
35657
|
}
|
|
35573
35658
|
};
|
|
35574
35659
|
setAnimation(animation, chart);
|
|
35575
|
-
redraw =
|
|
35660
|
+
redraw = (redraw ?? true);
|
|
35576
35661
|
// Fire the event with a default handler of removing the point
|
|
35577
35662
|
if (point) {
|
|
35578
35663
|
point.firePointEvent('remove', null, remove);
|
|
@@ -35615,7 +35700,7 @@ class Series {
|
|
|
35615
35700
|
// Redraw
|
|
35616
35701
|
chart.isDirtyLegend = chart.isDirtyBox = true;
|
|
35617
35702
|
chart.linkSeries(keepEvents);
|
|
35618
|
-
if (
|
|
35703
|
+
if (redraw ?? true) {
|
|
35619
35704
|
chart.redraw(animation);
|
|
35620
35705
|
}
|
|
35621
35706
|
}
|
|
@@ -35832,7 +35917,7 @@ class Series {
|
|
|
35832
35917
|
series.isDirtyData = true;
|
|
35833
35918
|
}
|
|
35834
35919
|
fireEvent(this, 'afterUpdate');
|
|
35835
|
-
if (
|
|
35920
|
+
if (redraw ?? true) {
|
|
35836
35921
|
chart.redraw(keepPoints ? void 0 : false);
|
|
35837
35922
|
}
|
|
35838
35923
|
}
|
|
@@ -35849,12 +35934,12 @@ class Series {
|
|
|
35849
35934
|
* @internal
|
|
35850
35935
|
*/
|
|
35851
35936
|
hasOptionChanged(optionName) {
|
|
35852
|
-
const chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName], plotOptionsOption =
|
|
35937
|
+
const chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName], plotOptionsOption = (plotOptions?.[this.type]?.[optionName] ?? plotOptions?.series?.[optionName]);
|
|
35853
35938
|
// Check if `plotOptions` are defined already, #19203
|
|
35854
35939
|
if (oldOption && !defined(plotOptionsOption)) {
|
|
35855
35940
|
return option !== oldOption;
|
|
35856
35941
|
}
|
|
35857
|
-
return option !==
|
|
35942
|
+
return option !== (plotOptionsOption ?? option);
|
|
35858
35943
|
}
|
|
35859
35944
|
/**
|
|
35860
35945
|
* Runs on mouse over the series graphical items.
|
|
@@ -35928,7 +36013,8 @@ class Series {
|
|
|
35928
36013
|
const series = this, { graph, options } = series, { inactiveOtherPoints, states: stateOptions = {} } = options,
|
|
35929
36014
|
// By default a quick animation to hover/inactive,
|
|
35930
36015
|
// slower to un-hover
|
|
35931
|
-
stateAnimation =
|
|
36016
|
+
stateAnimation = stateOptions[state || 'normal']?.animation ??
|
|
36017
|
+
series.chart.options.chart.animation;
|
|
35932
36018
|
let { lineWidth, opacity } = options;
|
|
35933
36019
|
state = state || '';
|
|
35934
36020
|
if (series.state !== state) {
|
|
@@ -36814,7 +36900,7 @@ class Legend {
|
|
|
36814
36900
|
* @param {Highcharts.LegendOptions} options
|
|
36815
36901
|
*/
|
|
36816
36902
|
setOptions(options) {
|
|
36817
|
-
const padding =
|
|
36903
|
+
const padding = (options.padding ?? 8);
|
|
36818
36904
|
/**
|
|
36819
36905
|
* Legend options.
|
|
36820
36906
|
*
|
|
@@ -36831,7 +36917,7 @@ class Legend {
|
|
|
36831
36917
|
this.itemMarginBottom = options.itemMarginBottom;
|
|
36832
36918
|
this.padding = padding;
|
|
36833
36919
|
this.initialItemY = padding - 5; // 5 is pixels above the text
|
|
36834
|
-
this.symbolWidth =
|
|
36920
|
+
this.symbolWidth = (options.symbolWidth ?? 16);
|
|
36835
36921
|
this.pages = [];
|
|
36836
36922
|
this.proximate = options.layout === 'proximate' && !this.chart.inverted;
|
|
36837
36923
|
// #12705: baseline has to be reset on every update
|
|
@@ -36865,7 +36951,7 @@ class Legend {
|
|
|
36865
36951
|
}
|
|
36866
36952
|
this.destroy();
|
|
36867
36953
|
chart.isDirtyLegend = chart.isDirtyBox = true;
|
|
36868
|
-
if (
|
|
36954
|
+
if (redraw ?? true) {
|
|
36869
36955
|
chart.redraw();
|
|
36870
36956
|
}
|
|
36871
36957
|
fireEvent(this, 'afterUpdate', { redraw });
|
|
@@ -37103,7 +37189,7 @@ class Legend {
|
|
|
37103
37189
|
* The item to render.
|
|
37104
37190
|
*/
|
|
37105
37191
|
renderItem(item) {
|
|
37106
|
-
const legend = this, legendItem = item.legendItem = item.legendItem || {}, chart = legend.chart, renderer = chart.renderer, options = legend.options, horizontal = options.layout === 'horizontal', symbolWidth = legend.symbolWidth, symbolPadding = options.symbolPadding || 0, itemStyle = legend.itemStyle, itemHiddenStyle = legend.itemHiddenStyle, itemDistance = horizontal ?
|
|
37192
|
+
const legend = this, legendItem = item.legendItem = item.legendItem || {}, chart = legend.chart, renderer = chart.renderer, options = legend.options, horizontal = options.layout === 'horizontal', symbolWidth = legend.symbolWidth, symbolPadding = options.symbolPadding || 0, itemStyle = legend.itemStyle, itemHiddenStyle = legend.itemHiddenStyle, itemDistance = horizontal ? (options.itemDistance ?? 20) : 0, ltr = !options.rtl, isSeries = !item.series, series = !isSeries && item.series.drawLegendSymbol ?
|
|
37107
37193
|
item.series :
|
|
37108
37194
|
item, seriesOptions = series.options, showCheckbox = (!!legend.createCheckboxForItem &&
|
|
37109
37195
|
seriesOptions &&
|
|
@@ -37149,9 +37235,11 @@ class Legend {
|
|
|
37149
37235
|
legend.fontMetrics.f + 3 + legend.itemMarginTop;
|
|
37150
37236
|
label.attr('y', legend.baseline);
|
|
37151
37237
|
legend.symbolHeight =
|
|
37152
|
-
|
|
37238
|
+
(options.symbolHeight ?? legend.fontMetrics.f);
|
|
37153
37239
|
if (options.squareSymbol) {
|
|
37154
|
-
legend.symbolWidth =
|
|
37240
|
+
legend.symbolWidth =
|
|
37241
|
+
options.symbolWidth ??
|
|
37242
|
+
Math.max(legend.symbolHeight, 16);
|
|
37155
37243
|
itemExtraWidth = legend.symbolWidth + symbolPadding +
|
|
37156
37244
|
itemDistance + (showCheckbox ? 20 : 0);
|
|
37157
37245
|
if (ltr) {
|
|
@@ -37203,7 +37291,7 @@ class Legend {
|
|
|
37203
37291
|
* @param {Highcharts.BubbleLegendItem|Highcharts.Point|Highcharts.Series} item
|
|
37204
37292
|
*/
|
|
37205
37293
|
layoutItem(item) {
|
|
37206
|
-
const options = this.options, padding = this.padding, horizontal = options.layout === 'horizontal', itemHeight = item.itemHeight, itemMarginBottom = this.itemMarginBottom, itemMarginTop = this.itemMarginTop, itemDistance = horizontal ?
|
|
37294
|
+
const options = this.options, padding = this.padding, horizontal = options.layout === 'horizontal', itemHeight = item.itemHeight, itemMarginBottom = this.itemMarginBottom, itemMarginTop = this.itemMarginTop, itemDistance = horizontal ? (options.itemDistance ?? 20) : 0, maxLegendWidth = this.maxLegendWidth, itemWidth = (options.alignColumns &&
|
|
37207
37295
|
this.totalItemWidth > maxLegendWidth) ?
|
|
37208
37296
|
this.maxItemWidth :
|
|
37209
37297
|
item.itemWidth, legendItem = item.legendItem || {};
|
|
@@ -37257,7 +37345,9 @@ class Legend {
|
|
|
37257
37345
|
const seriesOptions = series?.options;
|
|
37258
37346
|
// Handle showInLegend. If the series is linked to another series,
|
|
37259
37347
|
// defaults to false.
|
|
37260
|
-
if (series &&
|
|
37348
|
+
if (series &&
|
|
37349
|
+
(seriesOptions.showInLegend ??
|
|
37350
|
+
(!defined(seriesOptions.linkedTo)))) {
|
|
37261
37351
|
// Use points or series for the legend item depending on
|
|
37262
37352
|
// legendType
|
|
37263
37353
|
allItems = allItems.concat(series.legendItem?.labels ||
|
|
@@ -37539,7 +37629,7 @@ class Legend {
|
|
|
37539
37629
|
* @function Highcharts.Legend#handleOverflow
|
|
37540
37630
|
*/
|
|
37541
37631
|
handleOverflow(legendHeight) {
|
|
37542
|
-
const legend = this, chart = this.chart, renderer = chart.renderer, options = this.options, optionsY = options.y, alignTop = options.verticalAlign === 'top', padding = this.padding, maxHeight = options.maxHeight, navOptions = options.navigation, animation =
|
|
37632
|
+
const legend = this, chart = this.chart, renderer = chart.renderer, options = this.options, optionsY = options.y, alignTop = options.verticalAlign === 'top', padding = this.padding, maxHeight = options.maxHeight, navOptions = options.navigation, animation = (navOptions.animation ?? true), arrowSize = navOptions.arrowSize || 12, pages = this.pages, allItems = this.allItems, clipToHeight = function (height) {
|
|
37543
37633
|
if (typeof height === 'number') {
|
|
37544
37634
|
clipRect.attr({
|
|
37545
37635
|
height: height
|
|
@@ -37585,7 +37675,7 @@ class Legend {
|
|
|
37585
37675
|
navOptions.enabled !== false) {
|
|
37586
37676
|
this.clipHeight = clipHeight =
|
|
37587
37677
|
Math.max(spaceHeight - 20 - this.titleHeight - padding, 0);
|
|
37588
|
-
this.currentPage =
|
|
37678
|
+
this.currentPage = (this.currentPage ?? 1);
|
|
37589
37679
|
this.fullHeight = legendHeight;
|
|
37590
37680
|
// Fill pages with Y positions so that the top of each a legend item
|
|
37591
37681
|
// defines the scroll top for each page (#2098)
|
|
@@ -37745,7 +37835,7 @@ class Legend {
|
|
|
37745
37835
|
this.currentPage = currentPage;
|
|
37746
37836
|
this.positionCheckboxes();
|
|
37747
37837
|
// Fire event after scroll animation is complete
|
|
37748
|
-
const animOptions = animObject(
|
|
37838
|
+
const animOptions = animObject((animation ?? chart.renderer.globalAnimation ?? true));
|
|
37749
37839
|
syncTimeout(() => {
|
|
37750
37840
|
fireEvent(this, 'afterScroll', { currentPage });
|
|
37751
37841
|
}, animOptions.duration);
|
|
@@ -38186,7 +38276,7 @@ class Chart {
|
|
|
38186
38276
|
*/
|
|
38187
38277
|
static chart(a, b, c) {
|
|
38188
38278
|
const chart = new Chart(a, b, c);
|
|
38189
|
-
return chart.promise
|
|
38279
|
+
return chart.promise ?? chart;
|
|
38190
38280
|
}
|
|
38191
38281
|
// Implementation
|
|
38192
38282
|
constructor(a,
|
|
@@ -38227,10 +38317,10 @@ class Chart {
|
|
|
38227
38317
|
const chart = this, options = chart.options.chart, zooming = options.zooming;
|
|
38228
38318
|
chart.zooming = {
|
|
38229
38319
|
...zooming,
|
|
38230
|
-
type:
|
|
38231
|
-
key:
|
|
38232
|
-
pinchType:
|
|
38233
|
-
singleTouch:
|
|
38320
|
+
type: (options.zoomType ?? zooming.type),
|
|
38321
|
+
key: (options.zoomKey ?? zooming.key),
|
|
38322
|
+
pinchType: (options.pinchType ?? zooming.pinchType),
|
|
38323
|
+
singleTouch: options.zoomBySingleTouch ?? zooming.singleTouch ?? false,
|
|
38234
38324
|
resetButton: merge(zooming.resetButton, options.resetZoomButton)
|
|
38235
38325
|
};
|
|
38236
38326
|
}
|
|
@@ -38782,7 +38872,7 @@ class Chart {
|
|
|
38782
38872
|
// inspect the generated series.points.
|
|
38783
38873
|
series.getPointsCollection()
|
|
38784
38874
|
.forEach((point) => {
|
|
38785
|
-
if (
|
|
38875
|
+
if (point.selectedStaging ?? point.selected) {
|
|
38786
38876
|
acc.push(point);
|
|
38787
38877
|
}
|
|
38788
38878
|
});
|
|
@@ -39220,7 +39310,7 @@ class Chart {
|
|
|
39220
39310
|
chartWidth = chart.chartWidth;
|
|
39221
39311
|
if (!chart.styledMode) {
|
|
39222
39312
|
css(container, {
|
|
39223
|
-
width:
|
|
39313
|
+
width: (optionsChart.style?.width ?? chartWidth + 'px')
|
|
39224
39314
|
});
|
|
39225
39315
|
}
|
|
39226
39316
|
}
|
|
@@ -39863,7 +39953,7 @@ class Chart {
|
|
|
39863
39953
|
const mockTick = new Axis_Tick(axis, 0, '', true), label = mockTick.createLabel('x', labels);
|
|
39864
39954
|
mockTick.destroy();
|
|
39865
39955
|
if (label &&
|
|
39866
|
-
|
|
39956
|
+
(labels.reserveSpace ?? !isNumber(options.crossing))) {
|
|
39867
39957
|
expectedSpace = label.getBBox().height +
|
|
39868
39958
|
labels.distance +
|
|
39869
39959
|
Math.max(isNumber(offset) ? offset : 0, 0);
|
|
@@ -40198,7 +40288,7 @@ class Chart {
|
|
|
40198
40288
|
const chart = this;
|
|
40199
40289
|
let series;
|
|
40200
40290
|
if (options) { // <- not necessary
|
|
40201
|
-
redraw =
|
|
40291
|
+
redraw = (redraw ?? true); // Defaults to true
|
|
40202
40292
|
fireEvent(chart, 'addSeries', { options: options }, function () {
|
|
40203
40293
|
series = chart.initSeries(options);
|
|
40204
40294
|
chart.isDirtyLegend = true;
|
|
@@ -40289,7 +40379,7 @@ class Chart {
|
|
|
40289
40379
|
*/
|
|
40290
40380
|
createAxis(coll, options) {
|
|
40291
40381
|
const axis = new Axis_Axis(this, options.axis, coll);
|
|
40292
|
-
if (
|
|
40382
|
+
if (options.redraw ?? true) {
|
|
40293
40383
|
this.redraw(options.animation);
|
|
40294
40384
|
}
|
|
40295
40385
|
return axis;
|
|
@@ -40337,7 +40427,7 @@ class Chart {
|
|
|
40337
40427
|
}
|
|
40338
40428
|
loadingDiv.className = 'highcharts-loading';
|
|
40339
40429
|
// Update text
|
|
40340
|
-
HTML_AST.setElementHTML(loadingSpan,
|
|
40430
|
+
HTML_AST.setElementHTML(loadingSpan, (str ?? options.lang.loading ?? ''));
|
|
40341
40431
|
if (!chart.styledMode) {
|
|
40342
40432
|
// Update visuals
|
|
40343
40433
|
css(loadingDiv, extend(loadingStyle, { zIndex: 10 }));
|
|
@@ -40575,7 +40665,7 @@ class Chart {
|
|
|
40575
40665
|
}
|
|
40576
40666
|
// No match by id found, match by index instead
|
|
40577
40667
|
if (!item && chart[coll]) {
|
|
40578
|
-
item = chart[coll][
|
|
40668
|
+
item = chart[coll][(newOptions.index ?? i)];
|
|
40579
40669
|
// Check if we grabbed an item with an existing but
|
|
40580
40670
|
// different id (#13541). Check that the item in this
|
|
40581
40671
|
// position is not internal (navigator).
|
|
@@ -40788,7 +40878,7 @@ class Chart {
|
|
|
40788
40878
|
fireEvent(this, 'transform', params);
|
|
40789
40879
|
let hasZoomed = params.hasZoomed || false, displayButton, isAnyAxisPanning;
|
|
40790
40880
|
for (const axis of axes) {
|
|
40791
|
-
const { horiz, len, minPointOffset = 0, options, reversed } = axis, wh = horiz ? 'width' : 'height', xy = horiz ? 'x' : 'y', toLength =
|
|
40881
|
+
const { horiz, len, minPointOffset = 0, options, reversed } = axis, wh = horiz ? 'width' : 'height', xy = horiz ? 'x' : 'y', toLength = (to[wh] ?? axis.len), fromLength = (from[wh] ?? axis.len),
|
|
40792
40882
|
// If fingers pinched very close on this axis, treat as pan
|
|
40793
40883
|
scale = Math.abs(toLength) < 10 ?
|
|
40794
40884
|
1 :
|
|
@@ -41652,7 +41742,7 @@ class StackItem {
|
|
|
41652
41742
|
r: options.borderRadius || 0,
|
|
41653
41743
|
text: str,
|
|
41654
41744
|
// Set default padding to 5 as it is in dataLabels #12308
|
|
41655
|
-
padding:
|
|
41745
|
+
padding: (options.padding ?? 5),
|
|
41656
41746
|
visibility: 'hidden' // Hidden until setOffset is called
|
|
41657
41747
|
};
|
|
41658
41748
|
if (!chart.styledMode) {
|
|
@@ -41686,7 +41776,7 @@ class StackItem {
|
|
|
41686
41776
|
}), { verticalAlign } = alignOptions;
|
|
41687
41777
|
if (label && stackBox) {
|
|
41688
41778
|
const labelBox = label.getBBox(void 0, 0), padding = label.padding;
|
|
41689
|
-
let isJustify =
|
|
41779
|
+
let isJustify = (options.overflow ?? 'justify') === 'justify', visible;
|
|
41690
41780
|
// Reset alignOptions property after justify #12337
|
|
41691
41781
|
alignOptions.x = options.x || 0;
|
|
41692
41782
|
alignOptions.y = options.y || 0;
|
|
@@ -41723,7 +41813,7 @@ class StackItem {
|
|
|
41723
41813
|
rotationOriginY: labelBox.height / 2
|
|
41724
41814
|
});
|
|
41725
41815
|
// Check if the dataLabel should be visible.
|
|
41726
|
-
if (
|
|
41816
|
+
if (((!isJustify && options.crop) ?? true)) {
|
|
41727
41817
|
visible =
|
|
41728
41818
|
isNumber(label.x) &&
|
|
41729
41819
|
isNumber(label.y) &&
|
|
@@ -41757,7 +41847,7 @@ class StackItem {
|
|
|
41757
41847
|
getStackBox(stackBoxProps) {
|
|
41758
41848
|
const stackItem = this, axis = this.axis, chart = axis.chart, { boxTop, defaultX, xOffset, width, boxBottom } = stackBoxProps, totalStackValue = axis.stacking.usePercentage ?
|
|
41759
41849
|
100 :
|
|
41760
|
-
|
|
41850
|
+
(boxTop ?? this.total ?? 0), y = axis.toPixels(totalStackValue), xAxis = stackBoxProps.xAxis || chart.xAxis[0], x = (defaultX ?? xAxis.translate(this.x)) + xOffset, yZero = axis.toPixels(boxBottom ||
|
|
41761
41851
|
(isNumber(axis.min) &&
|
|
41762
41852
|
axis.logarithmic &&
|
|
41763
41853
|
axis.logarithmic.lin2log(axis.min)) ||
|
|
@@ -41870,7 +41960,7 @@ function chartGetStacks() {
|
|
|
41870
41960
|
if (series.options.stacking && series.reserveSpace()) {
|
|
41871
41961
|
series.stackKey = [
|
|
41872
41962
|
series.type,
|
|
41873
|
-
|
|
41963
|
+
(series.options.stack ?? ''),
|
|
41874
41964
|
inverted ? xAxisOptions.top : xAxisOptions.left,
|
|
41875
41965
|
inverted ? xAxisOptions.height : xAxisOptions.width
|
|
41876
41966
|
].join(',');
|
|
@@ -42033,7 +42123,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
|
|
|
42033
42123
|
stack = stacks[key][x];
|
|
42034
42124
|
if (y !== null) {
|
|
42035
42125
|
stack.points[pointKey] = stack.points[series.index] = [
|
|
42036
|
-
|
|
42126
|
+
(stack.cumulative ?? stackThreshold)
|
|
42037
42127
|
];
|
|
42038
42128
|
// Record the base of the stack
|
|
42039
42129
|
if (!defined(stack.cumulative)) {
|
|
@@ -42081,7 +42171,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
|
|
|
42081
42171
|
stack.cumulative = (total || 1) - 1;
|
|
42082
42172
|
}
|
|
42083
42173
|
else {
|
|
42084
|
-
stack.cumulative = correctFloat(
|
|
42174
|
+
stack.cumulative = correctFloat((stack.cumulative ?? stackThreshold) + yNumber);
|
|
42085
42175
|
}
|
|
42086
42176
|
stack.total = total;
|
|
42087
42177
|
if (y !== null) {
|
|
@@ -43096,8 +43186,7 @@ class AreaSeries extends AreaSeries_LineSeries {
|
|
|
43096
43186
|
*/
|
|
43097
43187
|
getGraphPath(points) {
|
|
43098
43188
|
const getGraphPath = AreaSeries_LineSeries.prototype.getGraphPath, options = this.options, stacking = options.stacking, yAxis = this.yAxis, bottomPoints = [], graphPoints = [], seriesIndex = this.index, stacks = yAxis.stacking.stacks[this.stackKey], threshold = options.threshold, translatedThreshold = Math.round(// #10909
|
|
43099
|
-
yAxis.getThreshold(options.threshold)), connectNulls =
|
|
43100
|
-
options.connectNulls, stacking === 'percent'),
|
|
43189
|
+
yAxis.getThreshold(options.threshold)), connectNulls = (options.connectNulls ?? stacking === 'percent'),
|
|
43101
43190
|
// To display null points in underlying stacked series, this
|
|
43102
43191
|
// series graph must be broken, and the area also fall down to
|
|
43103
43192
|
// fill the gap left by the null point. #2069
|
|
@@ -43150,9 +43239,9 @@ class AreaSeries extends AreaSeries_LineSeries {
|
|
|
43150
43239
|
// Treat points with undefined plotY as null (e.g. non-positive
|
|
43151
43240
|
// values on logarithmic axis, #18422)
|
|
43152
43241
|
isNull = points[i].isNull || !defined(points[i].plotY);
|
|
43153
|
-
plotX =
|
|
43242
|
+
plotX = (points[i].rectPlotX ?? points[i].plotX);
|
|
43154
43243
|
yBottom = stacking ?
|
|
43155
|
-
|
|
43244
|
+
(points[i].yBottom ?? translatedThreshold) :
|
|
43156
43245
|
translatedThreshold;
|
|
43157
43246
|
if (!isNull || connectNulls) {
|
|
43158
43247
|
if (!connectNulls) {
|
|
@@ -43490,10 +43579,10 @@ class SplineSeries extends SplineSeries_LineSeries {
|
|
|
43490
43579
|
}
|
|
43491
43580
|
const ret = [
|
|
43492
43581
|
'C',
|
|
43493
|
-
|
|
43494
|
-
|
|
43495
|
-
|
|
43496
|
-
|
|
43582
|
+
(lastPoint.rightContX ?? lastPoint.plotX ?? 0),
|
|
43583
|
+
(lastPoint.rightContY ?? lastPoint.plotY ?? 0),
|
|
43584
|
+
(leftContX ?? plotX ?? 0),
|
|
43585
|
+
(leftContY ?? plotY ?? 0),
|
|
43497
43586
|
plotX,
|
|
43498
43587
|
plotY
|
|
43499
43588
|
];
|
|
@@ -44462,7 +44551,7 @@ class ColumnSeries extends Series_Series {
|
|
|
44462
44551
|
xAxis.tickInterval ||
|
|
44463
44552
|
1), // #2610
|
|
44464
44553
|
xAxis.len // #1535
|
|
44465
|
-
), groupPadding = categoryWidth * options.groupPadding, groupWidth = categoryWidth - 2 * groupPadding, pointOffsetWidth = groupWidth / (columnCount || 1), pointWidth = Math.min(options.maxPointWidth || xAxis.len,
|
|
44554
|
+
), groupPadding = categoryWidth * options.groupPadding, groupWidth = categoryWidth - 2 * groupPadding, pointOffsetWidth = groupWidth / (columnCount || 1), pointWidth = Math.min(options.maxPointWidth || xAxis.len, (options.pointWidth ?? pointOffsetWidth * (1 - 2 * options.pointPadding))), pointPadding = (pointOffsetWidth - pointWidth) / 2,
|
|
44466
44555
|
// #1251, #3737
|
|
44467
44556
|
colIndex = (series.columnIndex || 0) + (reverseStacks ? 1 : 0), pointXOffset = pointPadding +
|
|
44468
44557
|
(groupPadding +
|
|
@@ -45026,7 +45115,7 @@ var DataLabel;
|
|
|
45026
45115
|
// that parts of the align box is inside the plot area
|
|
45027
45116
|
// (#12370). When stacking, it is always inside regardless
|
|
45028
45117
|
// of the option (#15148).
|
|
45029
|
-
|
|
45118
|
+
(options.inside ?? !!this.options.stacking) &&
|
|
45030
45119
|
alignTo &&
|
|
45031
45120
|
chart.isInsidePlot(plotX, inverted ?
|
|
45032
45121
|
alignTo.x + 1 :
|
|
@@ -45129,8 +45218,8 @@ var DataLabel;
|
|
|
45129
45218
|
// zIndex: 20
|
|
45130
45219
|
// }).add();
|
|
45131
45220
|
// chart.renderer.circle(
|
|
45132
|
-
// chart.plotLeft +
|
|
45133
|
-
// chart.plotTop +
|
|
45221
|
+
// chart.plotLeft + (dataLabel.alignAttr.x ?? 0),
|
|
45222
|
+
// chart.plotTop + (dataLabel.alignAttr.y ?? 0),
|
|
45134
45223
|
// 2
|
|
45135
45224
|
// ).attr({
|
|
45136
45225
|
// fill: 'red',
|
|
@@ -45313,7 +45402,7 @@ var DataLabel;
|
|
|
45313
45402
|
if (labelEnabled) {
|
|
45314
45403
|
// Create individual options structure that can be
|
|
45315
45404
|
// extended without affecting others
|
|
45316
|
-
formatString =
|
|
45405
|
+
formatString = (labelOptions[point.formatPrefix + 'Format'] ?? labelOptions.format);
|
|
45317
45406
|
labelText = defined(formatString) ?
|
|
45318
45407
|
DataLabel_format(formatString, point, chart) :
|
|
45319
45408
|
(labelOptions[point.formatPrefix + 'Formatter'] ||
|
|
@@ -45321,7 +45410,9 @@ var DataLabel;
|
|
|
45321
45410
|
rotation = labelOptions.rotation;
|
|
45322
45411
|
if (!chart.styledMode) {
|
|
45323
45412
|
// Determine the color
|
|
45324
|
-
style.color =
|
|
45413
|
+
style.color = (isString(labelOptions.color) ?
|
|
45414
|
+
labelOptions.color :
|
|
45415
|
+
void 0) ?? style.color ?? (isString(series.color) ? series.color : void 0) ?? 'var(--highcharts-neutral-color-100)';
|
|
45325
45416
|
// Get automated contrast color
|
|
45326
45417
|
if (style.color === 'contrast') {
|
|
45327
45418
|
if (backgroundColor !== 'none') {
|
|
@@ -46122,14 +46213,15 @@ class ScatterSeries extends ScatterSeries_LineSeries {
|
|
|
46122
46213
|
return rand - Math.floor(rand);
|
|
46123
46214
|
}
|
|
46124
46215
|
if (jitter) {
|
|
46125
|
-
this.points.forEach(
|
|
46126
|
-
['x', 'y'].forEach(
|
|
46216
|
+
this.points.forEach((point, i) => {
|
|
46217
|
+
['x', 'y'].forEach((dim, j) => {
|
|
46127
46218
|
if (jitter[dim] && !point.isNull) {
|
|
46128
|
-
const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`]
|
|
46129
|
-
axis.transA;
|
|
46219
|
+
const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`];
|
|
46130
46220
|
if (axis && !axis.logarithmic) {
|
|
46131
46221
|
// Identify the outer bounds of the jitter range
|
|
46132
|
-
|
|
46222
|
+
// (#25054)
|
|
46223
|
+
const translatedJitter = jitter[dim] * axis.transA *
|
|
46224
|
+
(axis.reversed ? -1 : 1), min = (point[plotProp] || 0) - translatedJitter, max = (point[plotProp] || 0) + translatedJitter;
|
|
46133
46225
|
// Find a random position within this range
|
|
46134
46226
|
point[plotProp] = min +
|
|
46135
46227
|
(max - min) * unrandom(i + j * len);
|
|
@@ -46234,11 +46326,13 @@ var CenteredUtilities;
|
|
|
46234
46326
|
innerSize = parseFloat(innerSize);
|
|
46235
46327
|
}
|
|
46236
46328
|
const positions = [
|
|
46237
|
-
|
|
46238
|
-
|
|
46329
|
+
(centerOption?.[0] ?? '50%'),
|
|
46330
|
+
(centerOption?.[1] ?? '50%'),
|
|
46239
46331
|
// Prevent from negative values
|
|
46240
|
-
|
|
46241
|
-
|
|
46332
|
+
((size && size < 0 ? void 0 : options.size) ?? '100%'),
|
|
46333
|
+
((innerSize && innerSize < 0 ?
|
|
46334
|
+
void 0 :
|
|
46335
|
+
options.innerSize || 0) ?? '0%')
|
|
46242
46336
|
];
|
|
46243
46337
|
for (i = 0; i < 4; ++i) {
|
|
46244
46338
|
value = positions[i];
|
|
@@ -46440,7 +46534,7 @@ class PiePoint extends Series_Point {
|
|
|
46440
46534
|
const series = this.series, chart = series.chart;
|
|
46441
46535
|
setAnimation(animation, chart);
|
|
46442
46536
|
// Redraw is true by default
|
|
46443
|
-
redraw =
|
|
46537
|
+
redraw = (redraw ?? true);
|
|
46444
46538
|
this.sliced = this.options.sliced = sliced ?? !this.sliced;
|
|
46445
46539
|
// Update options.data
|
|
46446
46540
|
if (series.options.data) {
|
|
@@ -47245,7 +47339,8 @@ class PieSeries extends Series_Series {
|
|
|
47245
47339
|
// Start values
|
|
47246
47340
|
graphic.attr({
|
|
47247
47341
|
// Animate from inner radius (#779)
|
|
47248
|
-
r:
|
|
47342
|
+
r: point.startR ??
|
|
47343
|
+
(series.center && series.center[3] / 2),
|
|
47249
47344
|
start: startAngleRad,
|
|
47250
47345
|
end: startAngleRad
|
|
47251
47346
|
});
|
|
@@ -47886,7 +47981,7 @@ var PieDataLabel_ColumnDataLabel;
|
|
|
47886
47981
|
labelPosition.computed.x = x;
|
|
47887
47982
|
labelPosition.computed.y = y - topOffset;
|
|
47888
47983
|
// Detect overflowing data labels
|
|
47889
|
-
if (
|
|
47984
|
+
if (dataLabelOptions.crop ?? true) {
|
|
47890
47985
|
dataLabelWidth = dataLabel.getBBox().width;
|
|
47891
47986
|
let sideOverflow;
|
|
47892
47987
|
// Overflow left
|
|
@@ -48402,7 +48497,10 @@ function OverlappingDataLabels_onChartRender() {
|
|
|
48402
48497
|
if (point.visible) {
|
|
48403
48498
|
(point.dataLabels || []).forEach((label) => {
|
|
48404
48499
|
const options = label.options || {};
|
|
48405
|
-
label.labelrank =
|
|
48500
|
+
label.labelrank =
|
|
48501
|
+
options.labelrank ??
|
|
48502
|
+
point.labelrank ??
|
|
48503
|
+
point.shapeArgs?.height; // #4118
|
|
48406
48504
|
// #21725: Sync target positions for generic overlap
|
|
48407
48505
|
// checking. During animations (e.g., toggling a
|
|
48408
48506
|
// point), DOM positions may overlap. We force
|
|
@@ -48891,10 +48989,12 @@ var Responsive;
|
|
|
48891
48989
|
*/
|
|
48892
48990
|
function matchResponsiveRule(rule, matches) {
|
|
48893
48991
|
const condition = rule.condition, fn = condition.callback || function () {
|
|
48894
|
-
return (this.chartWidth <=
|
|
48895
|
-
|
|
48896
|
-
this.
|
|
48897
|
-
|
|
48992
|
+
return (this.chartWidth <=
|
|
48993
|
+
(condition.maxWidth ?? Number.MAX_VALUE) &&
|
|
48994
|
+
this.chartHeight <=
|
|
48995
|
+
(condition.maxHeight ?? Number.MAX_VALUE) &&
|
|
48996
|
+
this.chartWidth >= (condition.minWidth ?? 0) &&
|
|
48997
|
+
this.chartHeight >= (condition.minHeight ?? 0));
|
|
48898
48998
|
};
|
|
48899
48999
|
if (fn.call(this, this)) {
|
|
48900
49000
|
matches.push(rule._id);
|
|
@@ -49108,7 +49208,7 @@ var Responsive;
|
|
|
49108
49208
|
;// ./code/es-modules/masters/highcharts.src.js
|
|
49109
49209
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
49110
49210
|
/**
|
|
49111
|
-
* @license Highcharts JS v13.0.
|
|
49211
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
49112
49212
|
* @module highcharts/highcharts
|
|
49113
49213
|
*
|
|
49114
49214
|
* (c) 2009-2026 Highsoft AS
|
|
@@ -49185,7 +49285,12 @@ G.SVGElement = SVG_SVGElement;
|
|
|
49185
49285
|
G.SVGRenderer = SVG_SVGRenderer;
|
|
49186
49286
|
G.Templating = Core_Templating;
|
|
49187
49287
|
G.Tick = Axis_Tick;
|
|
49188
|
-
G.Time = Core_Time
|
|
49288
|
+
G.Time = class extends Core_Time {
|
|
49289
|
+
constructor(options, lang) {
|
|
49290
|
+
const defaultOptions = Defaults.getOptions();
|
|
49291
|
+
super(options ?? defaultOptions.time, lang ?? defaultOptions.lang);
|
|
49292
|
+
}
|
|
49293
|
+
};
|
|
49189
49294
|
G.Tooltip = Core_Tooltip;
|
|
49190
49295
|
// Utilities
|
|
49191
49296
|
G.addEvent = addEvent;
|
|
@@ -50185,7 +50290,7 @@ function onChartAfterSetChartSize() {
|
|
|
50185
50290
|
navigator.top = this.plotTop + scrollButtonSize;
|
|
50186
50291
|
}
|
|
50187
50292
|
else {
|
|
50188
|
-
navigator.left =
|
|
50293
|
+
navigator.left = (xAxis.left ?? this.plotLeft + scrollButtonSize);
|
|
50189
50294
|
navigator.top = navigator.navigatorOptions.top ||
|
|
50190
50295
|
this.chartHeight -
|
|
50191
50296
|
navigator.height -
|
|
@@ -50201,7 +50306,7 @@ function onChartAfterSetChartSize() {
|
|
|
50201
50306
|
legendOptions.enabled &&
|
|
50202
50307
|
!legendOptions.floating) ?
|
|
50203
50308
|
legend.legendHeight +
|
|
50204
|
-
|
|
50309
|
+
(legendOptions.margin ?? 10) :
|
|
50205
50310
|
0) -
|
|
50206
50311
|
(this.titleOffset ? this.titleOffset[2] : 0);
|
|
50207
50312
|
}
|
|
@@ -50226,7 +50331,7 @@ function onChartAfterUpdate(event) {
|
|
|
50226
50331
|
(this.options.navigator.enabled ||
|
|
50227
50332
|
this.options.scrollbar.enabled)) {
|
|
50228
50333
|
this.scroller = this.navigator = new NavigatorConstructor(this);
|
|
50229
|
-
if (
|
|
50334
|
+
if (event.redraw ?? true) {
|
|
50230
50335
|
this.redraw(event.animation); // #7067
|
|
50231
50336
|
}
|
|
50232
50337
|
}
|
|
@@ -50404,7 +50509,7 @@ class NavigatorAxisAdditions {
|
|
|
50404
50509
|
*/
|
|
50405
50510
|
toFixedRange(pxMin, pxMax, fixedMin, fixedMax) {
|
|
50406
50511
|
const axis = this.axis, halfPointRange = (axis.pointRange || 0) / 2;
|
|
50407
|
-
let newMin =
|
|
50512
|
+
let newMin = fixedMin ?? axis.translate(pxMin, true, !axis.horiz), newMax = fixedMax ?? axis.translate(pxMax, true, !axis.horiz);
|
|
50408
50513
|
// Add/remove half point range to/from the extremes (#1172)
|
|
50409
50514
|
if (!defined(fixedMin)) {
|
|
50410
50515
|
newMin = correctFloat(newMin + halfPointRange);
|
|
@@ -51179,8 +51284,8 @@ var ScrollbarAxis;
|
|
|
51179
51284
|
ScrollbarAxis.compose = compose;
|
|
51180
51285
|
/** @internal */
|
|
51181
51286
|
function getExtremes(axis) {
|
|
51182
|
-
const axisMin =
|
|
51183
|
-
const axisMax =
|
|
51287
|
+
const axisMin = (axis.options?.min ?? axis.min);
|
|
51288
|
+
const axisMax = (axis.options?.max ?? axis.max);
|
|
51184
51289
|
return {
|
|
51185
51290
|
axisMin,
|
|
51186
51291
|
axisMax,
|
|
@@ -51719,7 +51824,7 @@ class Scrollbar {
|
|
|
51719
51824
|
buttonToMaxClick(e) {
|
|
51720
51825
|
const scroller = this;
|
|
51721
51826
|
const range = ((scroller.to - scroller.from) *
|
|
51722
|
-
|
|
51827
|
+
(scroller.options.step ?? 0.2));
|
|
51723
51828
|
scroller.updatePosition(scroller.from + range, scroller.to + range);
|
|
51724
51829
|
fireEvent(scroller, 'changed', {
|
|
51725
51830
|
from: scroller.from,
|
|
@@ -51731,7 +51836,7 @@ class Scrollbar {
|
|
|
51731
51836
|
buttonToMinClick(e) {
|
|
51732
51837
|
const scroller = this;
|
|
51733
51838
|
const range = correctFloat(scroller.to - scroller.from) *
|
|
51734
|
-
|
|
51839
|
+
(scroller.options.step ?? 0.2);
|
|
51735
51840
|
scroller.updatePosition(correctFloat(scroller.from - range), correctFloat(scroller.to - range));
|
|
51736
51841
|
fireEvent(scroller, 'changed', {
|
|
51737
51842
|
from: scroller.from,
|
|
@@ -51863,10 +51968,11 @@ class Scrollbar {
|
|
|
51863
51968
|
scroller.renderer = renderer;
|
|
51864
51969
|
scroller.userOptions = options;
|
|
51865
51970
|
scroller.options = merge(Scrollbar_ScrollbarDefaults, Scrollbar_defaultOptions.scrollbar, options);
|
|
51866
|
-
scroller.options.margin =
|
|
51971
|
+
scroller.options.margin = (scroller.options.margin ?? 10);
|
|
51867
51972
|
scroller.chart = chart;
|
|
51868
51973
|
// Backward compatibility
|
|
51869
|
-
scroller.size =
|
|
51974
|
+
scroller.size = scroller.options.size ??
|
|
51975
|
+
scroller.options.height;
|
|
51870
51976
|
// Init
|
|
51871
51977
|
if (options.enabled) {
|
|
51872
51978
|
scroller.render();
|
|
@@ -52156,9 +52262,9 @@ class Scrollbar {
|
|
|
52156
52262
|
* @function Highcharts.Scrollbar#shouldUpdateExtremes
|
|
52157
52263
|
*/
|
|
52158
52264
|
shouldUpdateExtremes(eventType) {
|
|
52159
|
-
return (
|
|
52265
|
+
return ((this.options.liveRedraw ?? (Core_Globals.svg &&
|
|
52160
52266
|
!Core_Globals.isTouchDevice &&
|
|
52161
|
-
!this.chart.boosted) ||
|
|
52267
|
+
!this.chart.boosted)) ||
|
|
52162
52268
|
// Mouseup always should change extremes
|
|
52163
52269
|
eventType === 'mouseup' ||
|
|
52164
52270
|
eventType === 'touchend' ||
|
|
@@ -52678,18 +52784,18 @@ class Navigator {
|
|
|
52678
52784
|
// it. For example hidden series, but visible navigator (#6022).
|
|
52679
52785
|
if (rendered) {
|
|
52680
52786
|
pxMin = 0;
|
|
52681
|
-
pxMax =
|
|
52787
|
+
pxMax = (xAxis.width ?? scrollbarXAxis.width);
|
|
52682
52788
|
}
|
|
52683
52789
|
else {
|
|
52684
52790
|
return;
|
|
52685
52791
|
}
|
|
52686
52792
|
}
|
|
52687
|
-
navigator.left =
|
|
52688
|
-
// In case of scrollbar only, without navigator
|
|
52689
|
-
chart.plotLeft + scrollButtonSize +
|
|
52793
|
+
navigator.left = (xAxis.left ?? chart.plotLeft + scrollButtonSize +
|
|
52690
52794
|
(inverted ? chart.plotWidth : 0));
|
|
52691
|
-
let zoomedMax = navigator.size = navigatorSize =
|
|
52692
|
-
|
|
52795
|
+
let zoomedMax = navigator.size = navigatorSize =
|
|
52796
|
+
xAxis.len ??
|
|
52797
|
+
(inverted ? chart.plotHeight : chart.plotWidth) -
|
|
52798
|
+
2 * scrollButtonSize;
|
|
52693
52799
|
if (inverted) {
|
|
52694
52800
|
navigatorWidth = scrollbarHeight;
|
|
52695
52801
|
}
|
|
@@ -52697,8 +52803,8 @@ class Navigator {
|
|
|
52697
52803
|
navigatorWidth = navigatorSize + 2 * scrollButtonSize;
|
|
52698
52804
|
}
|
|
52699
52805
|
// Get the pixel position of the handles
|
|
52700
|
-
pxMin =
|
|
52701
|
-
pxMax =
|
|
52806
|
+
pxMin = (pxMin ?? xAxis.toPixels(min, true));
|
|
52807
|
+
pxMax = (pxMax ?? xAxis.toPixels(max, true));
|
|
52702
52808
|
// Verify (#1851, #2238)
|
|
52703
52809
|
if (!isNumber(pxMin) || Math.abs(pxMin) === Infinity) {
|
|
52704
52810
|
pxMin = 0;
|
|
@@ -52977,11 +53083,10 @@ class Navigator {
|
|
|
52977
53083
|
navigator.render(0, 0, chartX - dragOffset, chartX - dragOffset + range);
|
|
52978
53084
|
}
|
|
52979
53085
|
if (navigator.hasDragged &&
|
|
52980
|
-
|
|
53086
|
+
(navigator.scrollbarOptions?.liveRedraw ?? (
|
|
52981
53087
|
// By default, don't run live redraw on touch
|
|
52982
53088
|
// devices or if the chart is in boost.
|
|
52983
|
-
!Navigator_isTouchDevice &&
|
|
52984
|
-
!this.chart.boosted)) {
|
|
53089
|
+
!Navigator_isTouchDevice && !this.chart.boosted))) {
|
|
52985
53090
|
e.DOMType = e.type;
|
|
52986
53091
|
setTimeout(function () {
|
|
52987
53092
|
navigator.onMouseUp(e);
|
|
@@ -53170,8 +53275,10 @@ class Navigator {
|
|
|
53170
53275
|
offset: 0,
|
|
53171
53276
|
index: yAxisIndex,
|
|
53172
53277
|
isInternal: true,
|
|
53173
|
-
reversed:
|
|
53174
|
-
navigatorOptions.yAxis.reversed)
|
|
53278
|
+
reversed: ((navigatorOptions.yAxis &&
|
|
53279
|
+
navigatorOptions.yAxis.reversed) ??
|
|
53280
|
+
(chart.yAxis[0] && chart.yAxis[0].reversed) ??
|
|
53281
|
+
false), // #14060
|
|
53175
53282
|
zoomEnabled: false
|
|
53176
53283
|
}, chart.inverted ? {
|
|
53177
53284
|
width: height
|
|
@@ -53257,7 +53364,9 @@ class Navigator {
|
|
|
53257
53364
|
*/
|
|
53258
53365
|
setOpposite() {
|
|
53259
53366
|
const navigatorOptions = this.navigatorOptions, navigatorEnabled = this.navigatorEnabled, chart = this.chart;
|
|
53260
|
-
this.opposite =
|
|
53367
|
+
this.opposite =
|
|
53368
|
+
navigatorOptions.opposite ??
|
|
53369
|
+
Boolean(!navigatorEnabled && chart.inverted); // #6262
|
|
53261
53370
|
}
|
|
53262
53371
|
/**
|
|
53263
53372
|
* Get the union data extremes of the chart - the outer data extremes of the
|
|
@@ -53271,9 +53380,8 @@ class Navigator {
|
|
|
53271
53380
|
let ret;
|
|
53272
53381
|
if (!returnFalseOnNoBaseSeries || baseAxis.dataMin !== null) {
|
|
53273
53382
|
ret = {
|
|
53274
|
-
dataMin:
|
|
53275
|
-
time.parse(navAxisOptions?.
|
|
53276
|
-
dataMax: pick(time.parse(navAxisOptions?.max), numExt('max', time.parse(baseAxisOptions.max), baseAxis.dataMax, navAxis.dataMax, navAxis.max))
|
|
53383
|
+
dataMin: (time.parse(navAxisOptions?.min) ?? numExt('min', time.parse(baseAxisOptions.min), baseAxis.dataMin, navAxis.dataMin, navAxis.min)),
|
|
53384
|
+
dataMax: (time.parse(navAxisOptions?.max) ?? numExt('max', time.parse(baseAxisOptions.max), baseAxis.dataMax, navAxis.dataMax, navAxis.max))
|
|
53277
53385
|
};
|
|
53278
53386
|
}
|
|
53279
53387
|
return ret;
|
|
@@ -53388,11 +53496,9 @@ class Navigator {
|
|
|
53388
53496
|
userNavOptions.dataLabels = splat(userNavOptions.dataLabels);
|
|
53389
53497
|
mergedNavSeriesOptions = merge(baseOptions, navSeriesMixin, userNavOptions, baseNavigatorOptions);
|
|
53390
53498
|
// Once nav series type is resolved, pick correct pointRange
|
|
53391
|
-
mergedNavSeriesOptions.pointRange =
|
|
53392
|
-
|
|
53393
|
-
|
|
53394
|
-
// Fallback to default values, e.g. `null` for column
|
|
53395
|
-
Navigator_defaultOptions.plotOptions[mergedNavSeriesOptions.type || 'line']?.pointRange);
|
|
53499
|
+
mergedNavSeriesOptions.pointRange = (userNavOptions.pointRange ??
|
|
53500
|
+
baseNavigatorOptions.pointRange ??
|
|
53501
|
+
Navigator_defaultOptions.plotOptions[mergedNavSeriesOptions.type || 'line']?.pointRange);
|
|
53396
53502
|
// Merge data separately. Do a slice to avoid mutating the
|
|
53397
53503
|
// navigator options from base series (#4923).
|
|
53398
53504
|
const navigatorSeriesData = baseNavigatorOptions.data || userNavOptions.data, navigatorSeriesDataTable = baseNavigatorOptions.dataTable ||
|
|
@@ -53552,7 +53658,7 @@ class Navigator {
|
|
|
53552
53658
|
* @function Highcharts.Navigator#modifyBaseAxisExtremes
|
|
53553
53659
|
*/
|
|
53554
53660
|
modifyBaseAxisExtremes() {
|
|
53555
|
-
const baseXAxis = this, navigator = baseXAxis.chart.navigator, baseExtremes = baseXAxis.getExtremes(), baseMin = baseExtremes.min, baseMax = baseExtremes.max, baseDataMin = baseExtremes.dataMin, baseDataMax = baseExtremes.dataMax, range = baseMax - baseMin, stickToMin = navigator?.stickToMin, stickToMax = navigator?.stickToMax, overscroll =
|
|
53661
|
+
const baseXAxis = this, navigator = baseXAxis.chart.navigator, baseExtremes = baseXAxis.getExtremes(), baseMin = baseExtremes.min, baseMax = baseExtremes.max, baseDataMin = baseExtremes.dataMin, baseDataMax = baseExtremes.dataMax, range = baseMax - baseMin, stickToMin = navigator?.stickToMin, stickToMax = navigator?.stickToMax, overscroll = (baseXAxis.ordinal?.convertOverscroll(baseXAxis.options.overscroll) ?? 0), navigatorSeries = navigator.series && navigator.series[0], hasSetExtremes = !!baseXAxis.setExtremes,
|
|
53556
53662
|
// When the extremes have been set by range selector button, don't
|
|
53557
53663
|
// stick to min or max. The range selector buttons will handle the
|
|
53558
53664
|
// extremes. (#5489)
|
|
@@ -53604,8 +53710,8 @@ class Navigator {
|
|
|
53604
53710
|
Math.round(navigator.zoomedMax) >= Math.round(navigator.size);
|
|
53605
53711
|
// If the scrollbar is scrolled all the way to the right, keep right as
|
|
53606
53712
|
// new data comes in, unless user set navigator.stickToMax to false.
|
|
53607
|
-
navigator.stickToMax =
|
|
53608
|
-
this.chart.options.navigator.stickToMax
|
|
53713
|
+
navigator.stickToMax = (this.chart.options.navigator &&
|
|
53714
|
+
this.chart.options.navigator.stickToMax) ?? shouldStickToMax;
|
|
53609
53715
|
navigator.stickToMin = navigator.shouldStickToMin(baseSeries, navigator);
|
|
53610
53716
|
// Set the navigator series data to the new data of the base series
|
|
53611
53717
|
if (navigatorSeries && !navigator.hasNavigatorData) {
|
|
@@ -54380,7 +54486,7 @@ function axisMinFromRange() {
|
|
|
54380
54486
|
this.chart.setFixedRange(max - min);
|
|
54381
54487
|
}
|
|
54382
54488
|
}
|
|
54383
|
-
const dataMin =
|
|
54489
|
+
const dataMin = (this.dataMin ?? Number.MIN_VALUE);
|
|
54384
54490
|
if (!isNumber(min)) {
|
|
54385
54491
|
min = dataMin;
|
|
54386
54492
|
}
|
|
@@ -54389,7 +54495,7 @@ function axisMinFromRange() {
|
|
|
54389
54495
|
if (typeof range === 'undefined') { // #4501
|
|
54390
54496
|
range = getTrueRange(min, rangeOptions.count);
|
|
54391
54497
|
}
|
|
54392
|
-
this.newMax = Math.min(min + range,
|
|
54498
|
+
this.newMax = Math.min(min + range, (this.dataMax ?? Number.MAX_VALUE));
|
|
54393
54499
|
}
|
|
54394
54500
|
if (!isNumber(max)) {
|
|
54395
54501
|
min = void 0;
|
|
@@ -54810,7 +54916,7 @@ class RangeSelector {
|
|
|
54810
54916
|
}
|
|
54811
54917
|
else if (isNumber(newMin) || isNumber(newMax)) {
|
|
54812
54918
|
// Existing axis object. Set extremes after render time.
|
|
54813
|
-
baseAxis.setExtremes(newMin, newMax,
|
|
54919
|
+
baseAxis.setExtremes(newMin, newMax, (redraw ?? true), void 0, // Auto animation
|
|
54814
54920
|
{
|
|
54815
54921
|
trigger: 'rangeSelectorButton',
|
|
54816
54922
|
rangeSelectorButton: rangeOptions
|
|
@@ -55045,8 +55151,8 @@ class RangeSelector {
|
|
|
55045
55151
|
year: 365
|
|
55046
55152
|
}[type] * 24 * 36e5 * count;
|
|
55047
55153
|
}
|
|
55048
|
-
rangeOptions._offsetMin =
|
|
55049
|
-
rangeOptions._offsetMax =
|
|
55154
|
+
rangeOptions._offsetMin = (rangeOptions.offsetMin ?? 0);
|
|
55155
|
+
rangeOptions._offsetMax = (rangeOptions.offsetMax ?? 0);
|
|
55050
55156
|
rangeOptions._range +=
|
|
55051
55157
|
rangeOptions._offsetMax - rangeOptions._offsetMin;
|
|
55052
55158
|
}
|
|
@@ -55357,7 +55463,7 @@ class RangeSelector {
|
|
|
55357
55463
|
};
|
|
55358
55464
|
}
|
|
55359
55465
|
createElements() {
|
|
55360
|
-
const chart = this.chart, renderer = chart.renderer, container = chart.container, chartOptions = chart.options, options = chartOptions.rangeSelector, inputEnabled = options.inputEnabled, inputsZIndex =
|
|
55466
|
+
const chart = this.chart, renderer = chart.renderer, container = chart.container, chartOptions = chart.options, options = chartOptions.rangeSelector, inputEnabled = options.inputEnabled, inputsZIndex = (chartOptions.chart.style?.zIndex ?? 0) + 1;
|
|
55361
55467
|
if (options.enabled === false) {
|
|
55362
55468
|
return;
|
|
55363
55469
|
}
|
|
@@ -55498,10 +55604,14 @@ class RangeSelector {
|
|
|
55498
55604
|
// Create a label for dropdown select element
|
|
55499
55605
|
const userButtonTheme = chart.userOptions.rangeSelector?.buttonTheme;
|
|
55500
55606
|
this.dropdownLabel = renderer.button('', 0, 0, () => { }, merge(buttonTheme, {
|
|
55501
|
-
'stroke-width':
|
|
55607
|
+
'stroke-width': (buttonTheme['stroke-width'] ?? 0),
|
|
55502
55608
|
width: 'auto',
|
|
55503
|
-
paddingLeft:
|
|
55504
|
-
|
|
55609
|
+
paddingLeft: options.buttonTheme.paddingLeft ??
|
|
55610
|
+
userButtonTheme?.padding ??
|
|
55611
|
+
8,
|
|
55612
|
+
paddingRight: options.buttonTheme.paddingRight ??
|
|
55613
|
+
userButtonTheme?.padding ??
|
|
55614
|
+
8
|
|
55505
55615
|
}), states && states.hover, states && states.select, states && states.disabled)
|
|
55506
55616
|
.hide()
|
|
55507
55617
|
.add(this.group);
|
|
@@ -55682,7 +55792,7 @@ class RangeSelector {
|
|
|
55682
55792
|
legendOptions.enabled &&
|
|
55683
55793
|
!legendOptions.floating ?
|
|
55684
55794
|
(chart.legend.legendHeight +
|
|
55685
|
-
|
|
55795
|
+
(legendOptions.margin ?? 10)) :
|
|
55686
55796
|
0);
|
|
55687
55797
|
groupHeight = groupHeight + legendHeight - 20;
|
|
55688
55798
|
translateY = (alignTranslateY -
|
|
@@ -55828,7 +55938,7 @@ class RangeSelector {
|
|
|
55828
55938
|
// Align button group
|
|
55829
55939
|
buttonGroup.align({
|
|
55830
55940
|
y: buttonPosition.y,
|
|
55831
|
-
width:
|
|
55941
|
+
width: (width ?? this.initialButtonGroupWidth),
|
|
55832
55942
|
align: buttonPosition.align,
|
|
55833
55943
|
x: translateX
|
|
55834
55944
|
}, true, chart.spacingBox);
|
|
@@ -55847,7 +55957,7 @@ class RangeSelector {
|
|
|
55847
55957
|
if (zoomText && zoomText.visibility !== 'hidden') {
|
|
55848
55958
|
// #8769, allow dynamically updating margins
|
|
55849
55959
|
zoomText[verb]({
|
|
55850
|
-
x:
|
|
55960
|
+
x: plotLeft + (buttonPosition.x ?? 0)
|
|
55851
55961
|
});
|
|
55852
55962
|
// Button start position
|
|
55853
55963
|
buttonLeft += buttonPosition.x +
|
|
@@ -56311,7 +56421,6 @@ const PathUtilities = {
|
|
|
56311
56421
|
* */
|
|
56312
56422
|
|
|
56313
56423
|
|
|
56314
|
-
|
|
56315
56424
|
/* *
|
|
56316
56425
|
*
|
|
56317
56426
|
* Constants
|
|
@@ -56508,7 +56617,8 @@ function straight(start, end) {
|
|
|
56508
56617
|
*/
|
|
56509
56618
|
const simpleConnect = function (start, end, options) {
|
|
56510
56619
|
const segments = [], chartObstacles = options.chartObstacles, startObstacleIx = findObstacleFromPoint(chartObstacles, start), endObstacleIx = findObstacleFromPoint(chartObstacles, end);
|
|
56511
|
-
let endSegment, dir =
|
|
56620
|
+
let endSegment, dir = (options.startDirectionX ??
|
|
56621
|
+
(abs(end.x - start.x) > abs(end.y - start.y))) ? 'x' : 'y', startObstacle, endObstacle, waypoint, useMax, endPoint;
|
|
56512
56622
|
// eslint-disable-next-line valid-jsdoc
|
|
56513
56623
|
/**
|
|
56514
56624
|
* Return a clone of a point with a property set from a target object,
|
|
@@ -56650,7 +56760,8 @@ function fastAvoid(start, end, options) {
|
|
|
56650
56760
|
- When going around the end obstacle we should not always go the
|
|
56651
56761
|
shortest route, rather pick the one closer to the end point
|
|
56652
56762
|
*/
|
|
56653
|
-
const dirIsX =
|
|
56763
|
+
const dirIsX = options.startDirectionX ??
|
|
56764
|
+
(abs(end.x - start.x) > abs(end.y - start.y)), dir = dirIsX ? 'x' : 'y', endSegments = [],
|
|
56654
56765
|
// Boundaries to stay within. If beyond soft boundary, prefer to
|
|
56655
56766
|
// change direction ASAP. If at hard max, always change immediately.
|
|
56656
56767
|
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;
|
|
@@ -57604,7 +57715,7 @@ function Pathfinder_getPointBB(point) {
|
|
|
57604
57715
|
*/
|
|
57605
57716
|
function calculateObstacleDistance(a, b, bbMargin) {
|
|
57606
57717
|
// Count the distance even if we are slightly off
|
|
57607
|
-
const margin =
|
|
57718
|
+
const margin = (bbMargin ?? 10), yOverlap = a.yMax + margin > b.yMin - margin &&
|
|
57608
57719
|
a.yMin - margin < b.yMax + margin, xOverlap = a.xMax + margin > b.xMin - margin &&
|
|
57609
57720
|
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;
|
|
57610
57721
|
// If the rectangles collide, try recomputing with smaller margin.
|
|
@@ -57849,7 +57960,7 @@ class Pathfinder {
|
|
|
57849
57960
|
* with xMin, xMax, yMin and yMax properties.
|
|
57850
57961
|
*/
|
|
57851
57962
|
getChartObstacles(options) {
|
|
57852
|
-
const series = this.chart.series, margin =
|
|
57963
|
+
const series = this.chart.series, margin = (options.algorithmMargin ?? 0);
|
|
57853
57964
|
let obstacles = [], calculatedMargin;
|
|
57854
57965
|
for (let i = 0, sLen = series.length; i < sLen; ++i) {
|
|
57855
57966
|
if (series[i].visible && !series[i].options.isInternal) {
|
|
@@ -57985,7 +58096,7 @@ Pathfinder.prototype.algorithms = PathfinderAlgorithms;
|
|
|
57985
58096
|
/* unused harmony import specifier */ var Highcharts;
|
|
57986
58097
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
57987
58098
|
/**
|
|
57988
|
-
* @license Highcharts Gantt JS v13.0.
|
|
58099
|
+
* @license Highcharts Gantt JS v13.0.2 (2026-08-27)
|
|
57989
58100
|
* @module highcharts/modules/pathfinder
|
|
57990
58101
|
* @requires highcharts
|
|
57991
58102
|
*
|
|
@@ -58116,7 +58227,7 @@ function chartAdjustHeight() {
|
|
|
58116
58227
|
/* unused harmony import specifier */ var static_scale_src_Highcharts;
|
|
58117
58228
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
58118
58229
|
/**
|
|
58119
|
-
* @license Highcharts Gantt JS v13.0.
|
|
58230
|
+
* @license Highcharts Gantt JS v13.0.2 (2026-08-27)
|
|
58120
58231
|
* @module highcharts/modules/static-scale
|
|
58121
58232
|
* @requires highcharts
|
|
58122
58233
|
*
|
|
@@ -58932,7 +59043,7 @@ Series_SeriesRegistry.registerSeriesType('xrange', XRangeSeries);
|
|
|
58932
59043
|
/* unused harmony import specifier */ var xrange_src_Highcharts;
|
|
58933
59044
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
58934
59045
|
/**
|
|
58935
|
-
* @license Highcharts JS v13.0.
|
|
59046
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
58936
59047
|
* @module highcharts/modules/xrange
|
|
58937
59048
|
* @requires highcharts
|
|
58938
59049
|
*
|
|
@@ -59377,7 +59488,7 @@ var BrokenAxis;
|
|
|
59377
59488
|
/** @internal */
|
|
59378
59489
|
function onSeriesAfterRender() {
|
|
59379
59490
|
this.drawBreaks(this.xAxis, ['x']);
|
|
59380
|
-
this.drawBreaks(this.yAxis,
|
|
59491
|
+
this.drawBreaks(this.yAxis, (this.pointArrayMap ?? ['y']));
|
|
59381
59492
|
}
|
|
59382
59493
|
/** @internal */
|
|
59383
59494
|
function seriesDrawBreaks(axis, keys) {
|
|
@@ -59389,7 +59500,7 @@ var BrokenAxis;
|
|
|
59389
59500
|
breaks = brokenAxis?.breakArray || [];
|
|
59390
59501
|
threshold = axis.isXAxis ?
|
|
59391
59502
|
axis.min :
|
|
59392
|
-
|
|
59503
|
+
(series.options.threshold ?? axis.min);
|
|
59393
59504
|
points.forEach(function (point) {
|
|
59394
59505
|
y = point['stack' + key.toUpperCase()] ??
|
|
59395
59506
|
point[key];
|
|
@@ -59682,7 +59793,8 @@ var BrokenAxis;
|
|
|
59682
59793
|
if (Additions.isInBreak(breaks[i], val)) {
|
|
59683
59794
|
inbrk = true;
|
|
59684
59795
|
if (!keep) {
|
|
59685
|
-
keep =
|
|
59796
|
+
keep =
|
|
59797
|
+
breaks[i].showPoints ?? !axis.isXAxis;
|
|
59686
59798
|
}
|
|
59687
59799
|
}
|
|
59688
59800
|
}
|
|
@@ -59865,7 +59977,7 @@ var BrokenAxis;
|
|
|
59865
59977
|
}
|
|
59866
59978
|
};
|
|
59867
59979
|
}
|
|
59868
|
-
if (
|
|
59980
|
+
if (redraw ?? true) {
|
|
59869
59981
|
axis.chart.redraw();
|
|
59870
59982
|
}
|
|
59871
59983
|
}
|
|
@@ -59937,7 +60049,7 @@ function applyGridOptions(axis) {
|
|
|
59937
60049
|
options.labels = {};
|
|
59938
60050
|
}
|
|
59939
60051
|
*/
|
|
59940
|
-
options.labels.align =
|
|
60052
|
+
options.labels.align = (options.labels.align ?? 'center');
|
|
59941
60053
|
// @todo: Check against tickLabelPlacement between/on etc
|
|
59942
60054
|
/* Prevents adding the last tick label if the axis is not a category
|
|
59943
60055
|
axis.
|
|
@@ -60481,8 +60593,8 @@ function onAfterSetOptions(e) {
|
|
|
60481
60593
|
_________________________
|
|
60482
60594
|
Into this: |_____|_____|_____|_____|
|
|
60483
60595
|
^ ^ */
|
|
60484
|
-
options.minPadding =
|
|
60485
|
-
options.maxPadding =
|
|
60596
|
+
options.minPadding = (userOptions.minPadding ?? 0);
|
|
60597
|
+
options.maxPadding = (userOptions.maxPadding ?? 0);
|
|
60486
60598
|
}
|
|
60487
60599
|
// If borderWidth is set, then use its value for tick and
|
|
60488
60600
|
// line width.
|
|
@@ -61001,7 +61113,7 @@ function getNode(id, parent, level, data, mapOfIdToChildren, options) {
|
|
|
61001
61113
|
}
|
|
61002
61114
|
// Call getNode recursively on the children. Calculate the height of the
|
|
61003
61115
|
// node, and the number of descendants.
|
|
61004
|
-
const children = (
|
|
61116
|
+
const children = (mapOfIdToChildren[id] || []).map((child) => {
|
|
61005
61117
|
const node = getNode(child.id, id, (level + 1), child, mapOfIdToChildren, options), childStart = child.start || NaN, childEnd = (child.milestone === true ?
|
|
61006
61118
|
childStart :
|
|
61007
61119
|
child.end ||
|
|
@@ -61130,7 +61242,7 @@ function renderLabelIcon(tick, params) {
|
|
|
61130
61242
|
}
|
|
61131
61243
|
/** @internal */
|
|
61132
61244
|
function wrapGetLabelPosition(proceed, x, y, label, horiz, labelOptions, tickmarkOffset, index, step) {
|
|
61133
|
-
const tick = this, lbOptions =
|
|
61245
|
+
const tick = this, lbOptions = (tick.options?.labels ?? labelOptions), pos = tick.pos, axis = tick.axis, isTreeGrid = axis.type === 'treegrid', result = proceed.apply(tick, [x, y, label, horiz, lbOptions, tickmarkOffset, index, step]);
|
|
61134
61246
|
let mapOfPosToGridNode, node, level;
|
|
61135
61247
|
if (isTreeGrid) {
|
|
61136
61248
|
const { width = 0, padding = axis.linkedParent ? 0 : 5 } = (lbOptions && isObject(lbOptions.symbol, true) ?
|
|
@@ -61151,7 +61263,7 @@ function wrapGetLabelPosition(proceed, x, y, label, horiz, labelOptions, tickmar
|
|
|
61151
61263
|
}
|
|
61152
61264
|
/** @internal */
|
|
61153
61265
|
function wrapRenderLabel(proceed) {
|
|
61154
|
-
const tick = this, { pos, axis, label, treeGrid: tickGrid, options: tickOptions } = tick, icon = tickGrid?.labelIcon, labelElement = label?.element, { treeGrid: axisGrid, options: axisOptions, chart, tickPositions } = axis, mapOfPosToGridNode = axisGrid.mapOfPosToGridNode, labelOptions =
|
|
61266
|
+
const tick = this, { pos, axis, label, treeGrid: tickGrid, options: tickOptions } = tick, icon = tickGrid?.labelIcon, labelElement = label?.element, { treeGrid: axisGrid, options: axisOptions, chart, tickPositions } = axis, mapOfPosToGridNode = axisGrid.mapOfPosToGridNode, labelOptions = (tickOptions?.labels ?? axisOptions?.labels), symbolOptions = (labelOptions && isObject(labelOptions.symbol, true) ?
|
|
61155
61267
|
labelOptions.symbol :
|
|
61156
61268
|
{}), node = mapOfPosToGridNode?.[pos], { descendants, depth } = node || {}, hasDescendants = node && descendants && descendants > 0, level = depth, isTreeGridElement = (axis.type === 'treegrid') && labelElement, shouldRender = tickPositions.indexOf(pos) > -1, prefixClassName = 'highcharts-treegrid-node-', prefixLevelClass = prefixClassName + 'level-', styledMode = chart.styledMode;
|
|
61157
61269
|
let collapsed, addClassName, removeClassName;
|
|
@@ -61414,9 +61526,17 @@ function getColor(node, options) {
|
|
|
61414
61526
|
}
|
|
61415
61527
|
// Select either point color, level color or inherited color.
|
|
61416
61528
|
if (!series.chart.styledMode) {
|
|
61417
|
-
color =
|
|
61418
|
-
|
|
61419
|
-
|
|
61529
|
+
color = ((point && point.options.color) ??
|
|
61530
|
+
(level && level.color) ??
|
|
61531
|
+
colorByPoint ??
|
|
61532
|
+
(parentColor && variateColor(parentColor)) ??
|
|
61533
|
+
series.color);
|
|
61534
|
+
}
|
|
61535
|
+
colorIndex = ((point && point.options.colorIndex) ??
|
|
61536
|
+
(level && level.colorIndex) ??
|
|
61537
|
+
colorIndexByPoint ??
|
|
61538
|
+
parentColorIndex ??
|
|
61539
|
+
options.colorIndex);
|
|
61420
61540
|
}
|
|
61421
61541
|
return {
|
|
61422
61542
|
color: color,
|
|
@@ -61453,7 +61573,8 @@ function getLevelOptions(params) {
|
|
|
61453
61573
|
let level, levelIsConstant, options;
|
|
61454
61574
|
if (isObject(item) && isNumber(item.level)) {
|
|
61455
61575
|
options = merge({}, item);
|
|
61456
|
-
levelIsConstant =
|
|
61576
|
+
levelIsConstant =
|
|
61577
|
+
options.levelIsConstant ?? defaults.levelIsConstant;
|
|
61457
61578
|
// Delete redundant properties.
|
|
61458
61579
|
delete options.levelIsConstant;
|
|
61459
61580
|
delete options.level;
|
|
@@ -61485,7 +61606,7 @@ function setTreeValues(tree, options) {
|
|
|
61485
61606
|
const before = options.before, idRoot = options.idRoot, mapIdToNode = options.mapIdToNode, nodeRoot = mapIdToNode[idRoot], levelIsConstant = (options.levelIsConstant !== false), points = options.points, point = points[tree.i], optionsPoint = point && point.options || {}, children = [];
|
|
61486
61607
|
let childrenTotal = 0;
|
|
61487
61608
|
tree.levelDynamic = tree.level - (levelIsConstant ? 0 : nodeRoot.level);
|
|
61488
|
-
tree.name =
|
|
61609
|
+
tree.name = ((point && point.name) ?? '');
|
|
61489
61610
|
tree.visible = (idRoot === tree.id ||
|
|
61490
61611
|
options.visible === true);
|
|
61491
61612
|
if (typeof before === 'function') {
|
|
@@ -61506,7 +61627,7 @@ function setTreeValues(tree, options) {
|
|
|
61506
61627
|
}
|
|
61507
61628
|
});
|
|
61508
61629
|
// Set the values
|
|
61509
|
-
const value =
|
|
61630
|
+
const value = (optionsPoint.value ?? childrenTotal);
|
|
61510
61631
|
tree.visible = value >= 0 && (childrenTotal > 0 || tree.visible);
|
|
61511
61632
|
tree.children = children;
|
|
61512
61633
|
tree.childrenTotal = childrenTotal;
|
|
@@ -61532,7 +61653,7 @@ function updateRootId(series) {
|
|
|
61532
61653
|
// Get the series options.
|
|
61533
61654
|
options = isObject(series.options) ? series.options : {};
|
|
61534
61655
|
// Calculate the rootId.
|
|
61535
|
-
rootId =
|
|
61656
|
+
rootId = (series.rootNode ?? options.rootId ?? '');
|
|
61536
61657
|
// Set rootId on series.userOptions to pick it up in exporting.
|
|
61537
61658
|
if (isObject(series.userOptions)) {
|
|
61538
61659
|
series.userOptions.rootId = rootId;
|
|
@@ -62440,7 +62561,7 @@ Series_SeriesRegistry.registerSeriesType('gantt', GanttSeries);
|
|
|
62440
62561
|
/* unused harmony import specifier */ var gantt_src_Highcharts;
|
|
62441
62562
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
62442
62563
|
/**
|
|
62443
|
-
* @license Highcharts Gantt JS v13.0.
|
|
62564
|
+
* @license Highcharts Gantt JS v13.0.2 (2026-08-27)
|
|
62444
62565
|
* @module highcharts/modules/gantt
|
|
62445
62566
|
* @requires highcharts
|
|
62446
62567
|
*
|