highcharts 13.0.1 → 13.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +2 -3
- package/es-modules/Accessibility/A11yI18n.js +4 -4
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +6 -4
- package/es-modules/Accessibility/Components/LegendComponent.js +2 -2
- package/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +13 -10
- package/es-modules/Accessibility/Components/ZoomComponent.js +2 -2
- package/es-modules/Accessibility/FocusBorder.js +2 -2
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +1 -2
- package/es-modules/Core/Animation/AnimationUtilities.js +3 -2
- package/es-modules/Core/Axis/Axis.js +48 -57
- package/es-modules/Core/Axis/Axis3DComposition.js +8 -6
- package/es-modules/Core/Axis/BrokenAxis.js +6 -5
- package/es-modules/Core/Axis/Color/ColorAxis.js +17 -10
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +2 -2
- package/es-modules/Core/Axis/GridAxis.js +4 -4
- package/es-modules/Core/Axis/LogarithmicAxis.js +5 -3
- package/es-modules/Core/Axis/NavigatorAxisComposition.js +2 -2
- package/es-modules/Core/Axis/OrdinalAxis.js +9 -7
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -2
- package/es-modules/Core/Axis/RadialAxis.js +15 -9
- package/es-modules/Core/Axis/ScrollbarAxis.js +3 -3
- package/es-modules/Core/Axis/Stacking/StackItem.js +5 -5
- package/es-modules/Core/Axis/Stacking/StackingAxis.js +4 -4
- package/es-modules/Core/Axis/Tick.js +10 -11
- package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +3 -3
- package/es-modules/Core/Chart/Chart.js +14 -14
- package/es-modules/Core/Chart/Chart3D.js +3 -3
- package/es-modules/Core/Chart/ChartDefaults.js +23 -0
- package/es-modules/Core/Chart/MapChart.js +7 -5
- package/es-modules/Core/Chart/StockChart.js +15 -11
- package/es-modules/Core/Color/Color.js +3 -1
- package/es-modules/Core/Defaults.js +35 -0
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/Legend/Legend.js +16 -12
- package/es-modules/Core/Legend/LegendSymbol.js +2 -2
- package/es-modules/Core/MSPointer.js +2 -2
- package/es-modules/Core/Math3D.js +6 -7
- package/es-modules/Core/Pointer.js +9 -9
- package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGElement.js +11 -9
- package/es-modules/Core/Renderer/SVG/SVGElement3D.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +5 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +5 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +11 -9
- package/es-modules/Core/Renderer/SVG/Symbols.js +6 -5
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
- package/es-modules/Core/Responsive.js +7 -5
- package/es-modules/Core/Series/DataLabel.js +8 -6
- package/es-modules/Core/Series/OverlappingDataLabels.js +5 -2
- package/es-modules/Core/Series/Point.js +3 -3
- package/es-modules/Core/Series/Series.js +37 -21
- package/es-modules/Core/Series/Series3D.js +2 -2
- package/es-modules/Core/Templating.js +2 -2
- package/es-modules/Core/Tooltip.js +11 -7
- package/es-modules/Core/Utilities.js +4 -3
- package/es-modules/Data/Connectors/DataConnector.js +2 -2
- package/es-modules/Data/Connectors/GoogleSheetsConnector.js +2 -2
- package/es-modules/Data/DataTable.js +17 -0
- package/es-modules/Extensions/Annotations/Annotation.js +4 -4
- package/es-modules/Extensions/Annotations/AnnotationChart.js +2 -2
- package/es-modules/Extensions/Annotations/ControlPoint.js +2 -2
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +2 -2
- package/es-modules/Extensions/Annotations/EventEmitter.js +4 -4
- package/es-modules/Extensions/Annotations/NavigationBindings.js +6 -3
- package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +2 -2
- package/es-modules/Extensions/Annotations/Popup/Popup.js +3 -2
- package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +4 -6
- package/es-modules/Extensions/Annotations/Types/Measure.js +3 -3
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +3 -3
- package/es-modules/Extensions/Boost/BoostChart.js +11 -4
- package/es-modules/Extensions/Boost/BoostSeries.js +8 -9
- package/es-modules/Extensions/Boost/WGLRenderer.js +9 -6
- package/es-modules/Extensions/Boost/WGLShader.js +3 -3
- package/es-modules/Extensions/BoostCanvas.js +2 -2
- package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +5 -4
- package/es-modules/Extensions/DataGrouping/DataGrouping.js +2 -2
- package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +4 -3
- package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +2 -2
- package/es-modules/Extensions/DraggablePoints/DragDropProps.js +2 -3
- package/es-modules/Extensions/ExportData/ExportData.js +17 -16
- package/es-modules/Extensions/Exporting/Exporting.js +7 -7
- package/es-modules/Extensions/MouseWheelZoom/MouseWheelZoom.js +2 -2
- package/es-modules/Extensions/Pane/PaneComposition.js +2 -2
- package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +2 -2
- package/es-modules/Extensions/PatternFill.js +7 -5
- package/es-modules/Extensions/PriceIndication.js +5 -4
- package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +7 -7
- package/es-modules/Extensions/Sonification/MIDI.js +2 -3
- package/es-modules/Extensions/Sonification/Sonification.js +2 -2
- package/es-modules/Extensions/Sonification/SonificationSpeaker.js +3 -2
- package/es-modules/Extensions/Sonification/SynthPatch.js +3 -3
- package/es-modules/Extensions/Sonification/TimelineFromChart.js +11 -11
- package/es-modules/Gantt/Legacy.js +2 -2
- package/es-modules/Gantt/Pathfinder.js +3 -3
- package/es-modules/Gantt/PathfinderAlgorithms.js +4 -3
- package/es-modules/Gantt/Tree.js +1 -1
- package/es-modules/Maps/MapNavigation.js +4 -4
- package/es-modules/Maps/MapPointer.js +2 -2
- package/es-modules/Maps/MapView.js +2 -2
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +8 -6
- package/es-modules/Series/Area/AreaSeries.js +4 -5
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +13 -4
- package/es-modules/Series/Bubble/BubbleLegendItem.js +10 -6
- package/es-modules/Series/Bubble/BubbleSeries.js +10 -9
- package/es-modules/Series/Bullet/BulletSeries.js +17 -10
- package/es-modules/Series/CenteredUtilities.js +7 -5
- package/es-modules/Series/Column/ColumnSeries.js +2 -2
- package/es-modules/Series/Column3D/Column3DComposition.js +6 -5
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +4 -4
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +4 -2
- package/es-modules/Series/Cylinder/CylinderComposition.js +2 -2
- package/es-modules/Series/DataModifyComposition.js +9 -7
- package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -2
- package/es-modules/Series/Dumbbell/DumbbellPoint.js +14 -3
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +24 -7
- package/es-modules/Series/FlowMap/FlowMapPoint.js +5 -3
- package/es-modules/Series/FlowMap/FlowMapSeries.js +17 -9
- package/es-modules/Series/Funnel/FunnelSeries.js +2 -2
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +7 -5
- package/es-modules/Series/Gauge/GaugeSeries.js +2 -2
- package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +4 -4
- package/es-modules/Series/Heatmap/HeatmapPoint.js +6 -6
- package/es-modules/Series/Heatmap/HeatmapPointOptions.js +12 -0
- package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -13
- package/es-modules/Series/Heatmap/HeatmapSeriesOptions.js +12 -0
- package/es-modules/Series/Histogram/HistogramPoint.js +17 -0
- package/es-modules/Series/Histogram/HistogramPointOptions.js +12 -0
- package/es-modules/Series/Histogram/HistogramSeries.js +14 -2
- package/es-modules/Series/Histogram/HistogramSeriesOptions.js +12 -0
- package/es-modules/Series/InterpolationUtilities.js +5 -5
- package/es-modules/Series/Item/ItemPointOptions.js +14 -0
- package/es-modules/Series/Item/ItemSeries.js +18 -6
- package/es-modules/Series/Item/ItemSeriesOptions.js +14 -0
- package/es-modules/Series/Map/MapPoint.js +5 -3
- package/es-modules/Series/Map/MapSeries.js +5 -8
- package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +3 -3
- package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -2
- package/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js +18 -9
- package/es-modules/Series/NodesComposition.js +9 -10
- package/es-modules/Series/Organization/OrganizationPoint.js +3 -2
- package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -3
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +5 -5
- package/es-modules/Series/Pictorial/PictorialSeries.js +4 -2
- package/es-modules/Series/Pie/PieDataLabel.js +2 -2
- package/es-modules/Series/Pie/PiePoint.js +2 -2
- package/es-modules/Series/Pie/PieSeries.js +3 -2
- package/es-modules/Series/Pie3D/Pie3DSeries.js +8 -4
- package/es-modules/Series/PolarComposition.js +8 -7
- package/es-modules/Series/Sankey/SankeySeries.js +11 -5
- package/es-modules/Series/Scatter/ScatterSeries.js +6 -5
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +2 -2
- package/es-modules/Series/Spline/SplineSeries.js +5 -5
- package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +8 -6
- package/es-modules/Series/Tilemap/TilemapShapes.js +2 -2
- package/es-modules/Series/Timeline/TimelinePoint.js +2 -2
- package/es-modules/Series/Timeline/TimelineSeries.js +4 -3
- package/es-modules/Series/TreeUtilities.js +16 -7
- package/es-modules/Series/Treegraph/TreegraphLink.js +2 -2
- package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +14 -11
- package/es-modules/Series/VariablePie/VariablePieSeries.js +6 -4
- package/es-modules/Series/Variwide/VariwideSeries.js +2 -2
- package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -2
- package/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
- package/es-modules/Shared/TimeBase.js +8 -2
- package/es-modules/Shared/Utilities.js +9 -7
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -3
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +4 -3
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +1 -1
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +2 -2
- package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +4 -4
- package/es-modules/Stock/Navigator/Navigator.js +26 -26
- package/es-modules/Stock/Navigator/StandaloneNavigator.js +4 -4
- package/es-modules/Stock/RangeSelector/RangeSelector.js +15 -11
- package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +3 -3
- package/es-modules/Stock/Scrollbar/Scrollbar.js +8 -7
- package/es-modules/Stock/StockTools/StockToolbar.js +5 -5
- package/es-modules/Stock/StockTools/StockTools.js +2 -2
- package/es-modules/Stock/StockTools/StockToolsGui.js +4 -2
- package/es-modules/masters/highcharts-3d.src.js +1 -1
- package/es-modules/masters/highcharts-autoload.src.js +1 -1
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +1 -1
- package/es-modules/masters/highcharts.src.js +7 -2
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
- package/es-modules/masters/i18n/fr-FR.src.js +1 -1
- package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
- package/es-modules/masters/i18n/nb-NO.src.js +1 -1
- package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
- package/es-modules/masters/i18n/zh-CN.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
- package/es-modules/masters/modules/annotations.src.js +1 -1
- package/es-modules/masters/modules/arc-diagram.src.js +1 -1
- package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
- package/es-modules/masters/modules/boost-canvas.src.js +1 -1
- package/es-modules/masters/modules/boost.src.js +1 -1
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/contour.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data-sorting.src.js +1 -1
- package/es-modules/masters/modules/data-tools.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +1 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/exporting.src.js +1 -1
- package/es-modules/masters/modules/flowmap.src.js +1 -1
- package/es-modules/masters/modules/full-screen.src.js +1 -1
- package/es-modules/masters/modules/funnel.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/es-modules/masters/modules/gantt.src.js +1 -1
- package/es-modules/masters/modules/geoheatmap.src.js +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
- package/es-modules/masters/modules/navigator.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +1 -1
- package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
- package/es-modules/masters/modules/non-cartesian-zoom.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/organization.src.js +1 -1
- package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
- package/es-modules/masters/modules/pareto.src.js +1 -1
- package/es-modules/masters/modules/pathfinder.src.js +1 -1
- package/es-modules/masters/modules/pattern-fill.src.js +1 -1
- package/es-modules/masters/modules/pictorial.src.js +1 -1
- package/es-modules/masters/modules/pointandfigure.src.js +1 -1
- package/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/es-modules/masters/modules/pyramid3d.src.js +1 -1
- package/es-modules/masters/modules/renko.src.js +1 -1
- package/es-modules/masters/modules/sankey.src.js +1 -1
- package/es-modules/masters/modules/series-label.src.js +1 -1
- package/es-modules/masters/modules/series-on-point.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +1 -1
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/textpath.src.js +1 -1
- package/es-modules/masters/modules/tiledwebmap.src.js +1 -1
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/timeline.src.js +1 -1
- package/es-modules/masters/modules/treegraph.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +1 -1
- package/es-modules/masters/modules/treemap.src.js +1 -1
- package/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/es-modules/masters/modules/variwide.src.js +1 -1
- package/es-modules/masters/modules/vector.src.js +1 -1
- package/es-modules/masters/modules/venn.src.js +1 -1
- package/es-modules/masters/modules/windbarb.src.js +1 -1
- package/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/es-modules/masters/modules/xrange.src.js +1 -1
- package/es-modules/masters/standalone-navigator.src.js +1 -1
- package/es-modules/masters/themes/adaptive.src.js +1 -1
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/high-contrast.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/es-modules/tsconfig.tsbuildinfo +1 -1
- package/esm/highcharts-3d.js +2 -2
- package/esm/highcharts-3d.src.js +40 -32
- package/esm/highcharts-autoload.js +1 -1
- package/esm/highcharts-autoload.src.js +1 -1
- package/esm/highcharts-gantt.js +1 -1
- package/esm/highcharts-gantt.src.js +1 -1
- package/esm/highcharts-more.js +2 -2
- package/esm/highcharts-more.src.js +90 -56
- package/esm/highcharts.js +4 -4
- package/esm/highcharts.src.js +312 -207
- package/esm/highmaps.js +1 -1
- package/esm/highmaps.src.js +1 -1
- package/esm/highstock.js +1 -1
- package/esm/highstock.src.js +1 -1
- package/esm/i18n/fr-FR.js +1 -1
- package/esm/i18n/fr-FR.src.js +1 -1
- package/esm/i18n/nb-NO.js +1 -1
- package/esm/i18n/nb-NO.src.js +1 -1
- package/esm/i18n/zh-CN.js +1 -1
- package/esm/i18n/zh-CN.src.js +1 -1
- package/esm/indicators/acceleration-bands.js +1 -1
- package/esm/indicators/acceleration-bands.src.js +1 -1
- package/esm/indicators/accumulation-distribution.js +1 -1
- package/esm/indicators/accumulation-distribution.src.js +1 -1
- package/esm/indicators/ao.js +1 -1
- package/esm/indicators/ao.src.js +1 -1
- package/esm/indicators/apo.js +1 -1
- package/esm/indicators/apo.src.js +1 -1
- package/esm/indicators/aroon-oscillator.js +1 -1
- package/esm/indicators/aroon-oscillator.src.js +1 -1
- package/esm/indicators/aroon.js +2 -2
- package/esm/indicators/aroon.src.js +3 -3
- package/esm/indicators/atr.js +1 -1
- package/esm/indicators/atr.src.js +1 -1
- package/esm/indicators/bollinger-bands.js +1 -1
- package/esm/indicators/bollinger-bands.src.js +1 -1
- package/esm/indicators/cci.js +1 -1
- package/esm/indicators/cci.src.js +1 -1
- package/esm/indicators/chaikin.js +1 -1
- package/esm/indicators/chaikin.src.js +1 -1
- package/esm/indicators/cmf.js +1 -1
- package/esm/indicators/cmf.src.js +1 -1
- package/esm/indicators/cmo.js +1 -1
- package/esm/indicators/cmo.src.js +1 -1
- package/esm/indicators/dema.js +1 -1
- package/esm/indicators/dema.src.js +1 -1
- package/esm/indicators/disparity-index.js +1 -1
- package/esm/indicators/disparity-index.src.js +1 -1
- package/esm/indicators/dmi.js +1 -1
- package/esm/indicators/dmi.src.js +1 -1
- package/esm/indicators/dpo.js +2 -2
- package/esm/indicators/dpo.src.js +4 -3
- package/esm/indicators/ichimoku-kinko-hyo.js +1 -1
- package/esm/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/esm/indicators/indicators-all.js +2 -2
- package/esm/indicators/indicators-all.src.js +8 -7
- package/esm/indicators/indicators.js +2 -2
- package/esm/indicators/indicators.src.js +2 -2
- package/esm/indicators/keltner-channels.js +1 -1
- package/esm/indicators/keltner-channels.src.js +1 -1
- package/esm/indicators/klinger.js +1 -1
- package/esm/indicators/klinger.src.js +1 -1
- package/esm/indicators/macd.js +1 -1
- package/esm/indicators/macd.src.js +1 -1
- package/esm/indicators/mfi.js +1 -1
- package/esm/indicators/mfi.src.js +1 -1
- package/esm/indicators/momentum.js +1 -1
- package/esm/indicators/momentum.src.js +1 -1
- package/esm/indicators/natr.js +1 -1
- package/esm/indicators/natr.src.js +1 -1
- package/esm/indicators/obv.js +1 -1
- package/esm/indicators/obv.src.js +1 -1
- package/esm/indicators/pivot-points.js +1 -1
- package/esm/indicators/pivot-points.src.js +1 -1
- package/esm/indicators/ppo.js +1 -1
- package/esm/indicators/ppo.src.js +1 -1
- package/esm/indicators/price-channel.js +1 -1
- package/esm/indicators/price-channel.src.js +1 -1
- package/esm/indicators/price-envelopes.js +1 -1
- package/esm/indicators/price-envelopes.src.js +1 -1
- package/esm/indicators/psar.js +1 -1
- package/esm/indicators/psar.src.js +1 -1
- package/esm/indicators/regressions.js +1 -1
- package/esm/indicators/regressions.src.js +1 -1
- package/esm/indicators/roc.js +1 -1
- package/esm/indicators/roc.src.js +1 -1
- package/esm/indicators/rsi.js +1 -1
- package/esm/indicators/rsi.src.js +2 -2
- package/esm/indicators/slow-stochastic.js +1 -1
- package/esm/indicators/slow-stochastic.src.js +1 -1
- package/esm/indicators/stochastic.js +1 -1
- package/esm/indicators/stochastic.src.js +1 -1
- package/esm/indicators/supertrend.js +1 -1
- package/esm/indicators/supertrend.src.js +1 -1
- package/esm/indicators/tema.js +1 -1
- package/esm/indicators/tema.src.js +1 -1
- package/esm/indicators/trendline.js +1 -1
- package/esm/indicators/trendline.src.js +1 -1
- package/esm/indicators/trix.js +1 -1
- package/esm/indicators/trix.src.js +1 -1
- package/esm/indicators/volume-by-price.js +1 -1
- package/esm/indicators/volume-by-price.src.js +1 -1
- package/esm/indicators/vwap.js +1 -1
- package/esm/indicators/vwap.src.js +1 -1
- package/esm/indicators/williams-r.js +1 -1
- package/esm/indicators/williams-r.src.js +1 -1
- package/esm/indicators/wma.js +1 -1
- package/esm/indicators/wma.src.js +1 -1
- package/esm/indicators/zigzag.js +1 -1
- package/esm/indicators/zigzag.src.js +1 -1
- package/esm/modules/accessibility.js +2 -2
- package/esm/modules/accessibility.src.js +69 -63
- package/esm/modules/annotations-advanced.js +3 -3
- package/esm/modules/annotations-advanced.src.js +25 -23
- package/esm/modules/annotations.js +3 -3
- package/esm/modules/annotations.src.js +21 -19
- package/esm/modules/arc-diagram.js +2 -2
- package/esm/modules/arc-diagram.src.js +16 -15
- package/esm/modules/arrow-symbols.js +1 -1
- package/esm/modules/arrow-symbols.src.js +1 -1
- package/esm/modules/boost-canvas.js +2 -2
- package/esm/modules/boost-canvas.src.js +29 -20
- package/esm/modules/boost.js +2 -2
- package/esm/modules/boost.src.js +28 -19
- package/esm/modules/broken-axis.js +2 -2
- package/esm/modules/broken-axis.src.js +6 -5
- package/esm/modules/bullet.js +2 -2
- package/esm/modules/bullet.src.js +17 -10
- package/esm/modules/coloraxis.js +2 -2
- package/esm/modules/coloraxis.src.js +18 -11
- package/esm/modules/contour.js +1 -1
- package/esm/modules/contour.src.js +1 -1
- package/esm/modules/current-date-indicator.js +1 -1
- package/esm/modules/current-date-indicator.src.js +1 -1
- package/esm/modules/cylinder.js +2 -2
- package/esm/modules/cylinder.src.js +9 -10
- package/esm/modules/data-sorting.js +1 -1
- package/esm/modules/data-sorting.src.js +1 -1
- package/esm/modules/data-tools.js +2 -2
- package/esm/modules/data-tools.src.js +20 -3
- package/esm/modules/data.js +1 -1
- package/esm/modules/data.src.js +1 -1
- package/esm/modules/datagrouping.js +2 -2
- package/esm/modules/datagrouping.src.js +6 -5
- package/esm/modules/debugger.js +1 -1
- package/esm/modules/debugger.src.js +1 -1
- package/esm/modules/dependency-wheel.js +1 -1
- package/esm/modules/dependency-wheel.src.js +1 -1
- package/esm/modules/dotplot.js +2 -2
- package/esm/modules/dotplot.src.js +3 -2
- package/esm/modules/drag-panes.js +1 -1
- package/esm/modules/drag-panes.src.js +1 -1
- package/esm/modules/draggable-points.js +2 -2
- package/esm/modules/draggable-points.src.js +2 -3
- package/esm/modules/drilldown.js +2 -2
- package/esm/modules/drilldown.src.js +5 -4
- package/esm/modules/dumbbell.js +2 -2
- package/esm/modules/dumbbell.src.js +37 -9
- package/esm/modules/export-data.js +2 -2
- package/esm/modules/export-data.src.js +17 -16
- package/esm/modules/exporting.js +2 -2
- package/esm/modules/exporting.src.js +7 -7
- package/esm/modules/flowmap.js +2 -2
- package/esm/modules/flowmap.src.js +21 -11
- package/esm/modules/full-screen.js +1 -1
- package/esm/modules/full-screen.src.js +1 -1
- package/esm/modules/funnel.js +2 -2
- package/esm/modules/funnel.src.js +2 -2
- package/esm/modules/funnel3d.js +2 -2
- package/esm/modules/funnel3d.src.js +14 -13
- package/esm/modules/gantt.js +2 -2
- package/esm/modules/gantt.src.js +93 -76
- package/esm/modules/geoheatmap.js +2 -2
- package/esm/modules/geoheatmap.src.js +8 -8
- package/esm/modules/grid-axis.js +2 -2
- package/esm/modules/grid-axis.src.js +4 -4
- package/esm/modules/heatmap.js +2 -2
- package/esm/modules/heatmap.src.js +22 -22
- package/esm/modules/heikinashi.js +1 -1
- package/esm/modules/heikinashi.src.js +1 -1
- package/esm/modules/histogram-bellcurve.js +1 -1
- package/esm/modules/histogram-bellcurve.src.js +15 -3
- package/esm/modules/hollowcandlestick.js +1 -1
- package/esm/modules/hollowcandlestick.src.js +1 -1
- package/esm/modules/item-series.js +2 -2
- package/esm/modules/item-series.src.js +18 -6
- package/esm/modules/lollipop.js +1 -1
- package/esm/modules/lollipop.src.js +1 -1
- package/esm/modules/map.js +2 -2
- package/esm/modules/map.src.js +65 -57
- package/esm/modules/marker-clusters.js +1 -1
- package/esm/modules/marker-clusters.src.js +1 -1
- package/esm/modules/mouse-wheel-zoom.js +2 -2
- package/esm/modules/mouse-wheel-zoom.src.js +3 -3
- package/esm/modules/navigator.js +2 -2
- package/esm/modules/navigator.src.js +47 -45
- package/esm/modules/networkgraph.js +2 -2
- package/esm/modules/networkgraph.src.js +31 -21
- package/esm/modules/no-data-to-display.js +1 -1
- package/esm/modules/no-data-to-display.src.js +1 -1
- package/esm/modules/non-cartesian-zoom.js +1 -1
- package/esm/modules/non-cartesian-zoom.src.js +1 -1
- package/esm/modules/offline-exporting.js +1 -1
- package/esm/modules/offline-exporting.src.js +1 -1
- package/esm/modules/organization.js +2 -2
- package/esm/modules/organization.src.js +3 -2
- package/esm/modules/parallel-coordinates.js +2 -2
- package/esm/modules/parallel-coordinates.src.js +2 -2
- package/esm/modules/pareto.js +1 -1
- package/esm/modules/pareto.src.js +1 -1
- package/esm/modules/pathfinder.js +2 -2
- package/esm/modules/pathfinder.src.js +7 -6
- package/esm/modules/pattern-fill.js +2 -2
- package/esm/modules/pattern-fill.src.js +7 -5
- package/esm/modules/pictorial.js +2 -2
- package/esm/modules/pictorial.src.js +10 -6
- package/esm/modules/pointandfigure.js +1 -1
- package/esm/modules/pointandfigure.src.js +1 -1
- package/esm/modules/price-indicator.js +2 -2
- package/esm/modules/price-indicator.src.js +5 -4
- package/esm/modules/pyramid3d.js +1 -1
- package/esm/modules/pyramid3d.src.js +1 -1
- package/esm/modules/renko.js +1 -1
- package/esm/modules/renko.src.js +1 -1
- package/esm/modules/sankey.js +2 -2
- package/esm/modules/sankey.src.js +34 -20
- package/esm/modules/series-label.js +2 -2
- package/esm/modules/series-label.src.js +7 -7
- package/esm/modules/series-on-point.js +1 -1
- package/esm/modules/series-on-point.src.js +1 -1
- package/esm/modules/solid-gauge.js +2 -2
- package/esm/modules/solid-gauge.src.js +2 -2
- package/esm/modules/sonification.js +2 -2
- package/esm/modules/sonification.src.js +19 -19
- package/esm/modules/static-scale.js +1 -1
- package/esm/modules/static-scale.src.js +1 -1
- package/esm/modules/stock-tools.js +3 -3
- package/esm/modules/stock-tools.src.js +15 -10
- package/esm/modules/stock.js +2 -2
- package/esm/modules/stock.src.js +90 -76
- package/esm/modules/streamgraph.js +1 -1
- package/esm/modules/streamgraph.src.js +1 -1
- package/esm/modules/sunburst.js +2 -2
- package/esm/modules/sunburst.src.js +41 -26
- package/esm/modules/textpath.js +1 -1
- package/esm/modules/textpath.src.js +1 -1
- package/esm/modules/tiledwebmap.js +2 -2
- package/esm/modules/tiledwebmap.src.js +8 -6
- package/esm/modules/tilemap.js +2 -2
- package/esm/modules/tilemap.src.js +3 -3
- package/esm/modules/timeline.js +2 -2
- package/esm/modules/timeline.src.js +5 -4
- package/esm/modules/treegraph.js +2 -2
- package/esm/modules/treegraph.src.js +17 -8
- package/esm/modules/treegrid.js +2 -2
- package/esm/modules/treegrid.src.js +28 -18
- package/esm/modules/treemap.js +2 -2
- package/esm/modules/treemap.src.js +35 -22
- package/esm/modules/variable-pie.js +2 -2
- package/esm/modules/variable-pie.src.js +6 -4
- package/esm/modules/variwide.js +2 -2
- package/esm/modules/variwide.src.js +2 -2
- package/esm/modules/vector.js +1 -1
- package/esm/modules/vector.src.js +1 -1
- package/esm/modules/venn.js +1 -1
- package/esm/modules/venn.src.js +1 -1
- package/esm/modules/windbarb.js +2 -2
- package/esm/modules/windbarb.src.js +2 -2
- package/esm/modules/wordcloud.js +1 -1
- package/esm/modules/wordcloud.src.js +1 -1
- package/esm/modules/xrange.js +1 -1
- package/esm/modules/xrange.src.js +1 -1
- package/esm/standalone-navigator.js +4 -4
- package/esm/standalone-navigator.src.js +355 -249
- package/esm/themes/adaptive.js +1 -1
- package/esm/themes/adaptive.src.js +1 -1
- package/esm/themes/avocado.js +1 -1
- package/esm/themes/avocado.src.js +1 -1
- package/esm/themes/dark-unica.js +1 -1
- package/esm/themes/dark-unica.src.js +1 -1
- package/esm/themes/grid-light.js +1 -1
- package/esm/themes/grid-light.src.js +1 -1
- package/esm/themes/high-contrast.js +1 -1
- package/esm/themes/high-contrast.src.js +1 -1
- package/esm/themes/sand-signika.js +1 -1
- package/esm/themes/sand-signika.src.js +1 -1
- package/esm/themes/sunset.js +1 -1
- package/esm/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +2 -2
- package/highcharts-3d.src.js +40 -32
- package/highcharts-autoload.d.ts +8 -2
- package/highcharts-autoload.js +4 -4
- package/highcharts-autoload.src.d.ts +8 -2
- package/highcharts-autoload.src.js +313 -208
- package/highcharts-gantt.js +4 -4
- package/highcharts-gantt.src.js +404 -283
- package/highcharts-more.js +2 -2
- package/highcharts-more.src.js +90 -56
- package/highcharts.d.ts +61 -4
- package/highcharts.js +4 -4
- package/highcharts.src.d.ts +61 -4
- package/highcharts.src.js +312 -207
- package/highmaps.js +4 -4
- package/highmaps.src.js +390 -272
- package/highstock.js +4 -4
- package/highstock.src.js +413 -293
- package/i18n/fr-FR.js +1 -1
- package/i18n/fr-FR.src.js +1 -1
- package/i18n/nb-NO.js +1 -1
- package/i18n/nb-NO.src.js +1 -1
- package/i18n/zh-CN.js +1 -1
- package/i18n/zh-CN.src.js +1 -1
- package/indicators/acceleration-bands.js +1 -1
- package/indicators/acceleration-bands.src.js +1 -1
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +1 -1
- package/indicators/ao.src.js +1 -1
- package/indicators/apo.js +1 -1
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.js +1 -1
- package/indicators/aroon-oscillator.src.js +1 -1
- package/indicators/aroon.js +2 -2
- package/indicators/aroon.src.js +3 -3
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.src.js +1 -1
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +1 -1
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.src.js +1 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.js +1 -1
- package/indicators/dema.src.js +1 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.js +1 -1
- package/indicators/dmi.src.js +1 -1
- package/indicators/dpo.js +2 -2
- package/indicators/dpo.src.js +4 -3
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.js +2 -2
- package/indicators/indicators-all.src.js +8 -7
- package/indicators/indicators.js +2 -2
- package/indicators/indicators.src.js +2 -2
- package/indicators/keltner-channels.js +1 -1
- package/indicators/keltner-channels.src.js +1 -1
- package/indicators/klinger.js +1 -1
- package/indicators/klinger.src.js +1 -1
- package/indicators/macd.js +1 -1
- package/indicators/macd.src.js +1 -1
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +1 -1
- package/indicators/natr.src.js +1 -1
- package/indicators/obv.js +1 -1
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.js +1 -1
- package/indicators/price-channel.src.js +1 -1
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +1 -1
- package/indicators/regressions.src.js +1 -1
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.src.js +2 -2
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.src.js +1 -1
- package/indicators/stochastic.js +1 -1
- package/indicators/stochastic.src.js +1 -1
- package/indicators/supertrend.js +1 -1
- package/indicators/supertrend.src.js +1 -1
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +1 -1
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.js +1 -1
- package/indicators/volume-by-price.src.js +1 -1
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.js +2 -2
- package/modules/accessibility.src.js +69 -63
- package/modules/annotations-advanced.js +3 -3
- package/modules/annotations-advanced.src.js +25 -23
- package/modules/annotations.js +3 -3
- package/modules/annotations.src.js +21 -19
- package/modules/arc-diagram.js +2 -2
- package/modules/arc-diagram.src.js +16 -15
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +2 -2
- package/modules/boost-canvas.src.js +29 -20
- package/modules/boost.js +2 -2
- package/modules/boost.src.js +28 -19
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.src.js +6 -5
- package/modules/bullet.js +2 -2
- package/modules/bullet.src.js +17 -10
- package/modules/coloraxis.js +2 -2
- package/modules/coloraxis.src.js +18 -11
- package/modules/contour.js +4 -4
- package/modules/contour.src.js +19 -12
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +2 -2
- package/modules/cylinder.src.js +9 -10
- package/modules/data-sorting.js +1 -1
- package/modules/data-sorting.src.js +1 -1
- package/modules/data-tools.js +2 -2
- package/modules/data-tools.src.js +20 -3
- package/modules/data.js +1 -1
- package/modules/data.src.js +1 -1
- package/modules/datagrouping.js +2 -2
- package/modules/datagrouping.src.js +6 -5
- package/modules/debugger.js +1 -1
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.js +1 -1
- package/modules/dependency-wheel.src.js +1 -1
- package/modules/dotplot.js +2 -2
- package/modules/dotplot.src.js +3 -2
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +2 -2
- package/modules/draggable-points.src.js +2 -3
- package/modules/drilldown.js +2 -2
- package/modules/drilldown.src.js +5 -4
- package/modules/dumbbell.js +2 -2
- package/modules/dumbbell.src.js +37 -9
- package/modules/export-data.js +2 -2
- package/modules/export-data.src.js +17 -16
- package/modules/exporting.js +2 -2
- package/modules/exporting.src.js +7 -7
- package/modules/flowmap.js +2 -2
- package/modules/flowmap.src.js +21 -11
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +1 -1
- package/modules/funnel.js +2 -2
- package/modules/funnel.src.js +2 -2
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.src.js +14 -13
- package/modules/gantt.js +6 -6
- package/modules/gantt.src.js +96 -79
- package/modules/geoheatmap.d.ts +0 -12
- package/modules/geoheatmap.js +2 -2
- package/modules/geoheatmap.src.d.ts +0 -12
- package/modules/geoheatmap.src.js +8 -8
- package/modules/grid-axis.js +2 -2
- package/modules/grid-axis.src.js +4 -4
- package/modules/heatmap.d.ts +0 -12
- package/modules/heatmap.js +4 -4
- package/modules/heatmap.src.d.ts +0 -12
- package/modules/heatmap.src.js +40 -33
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +1 -1
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.src.js +15 -3
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.src.js +1 -1
- package/modules/item-series.js +2 -2
- package/modules/item-series.src.js +18 -6
- package/modules/lollipop.js +1 -1
- package/modules/lollipop.src.js +1 -1
- package/modules/map.d.ts +0 -12
- package/modules/map.js +4 -4
- package/modules/map.src.d.ts +0 -12
- package/modules/map.src.js +83 -68
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.src.js +1 -1
- package/modules/mouse-wheel-zoom.js +2 -2
- package/modules/mouse-wheel-zoom.src.js +3 -3
- package/modules/navigator.js +2 -2
- package/modules/navigator.src.js +47 -45
- package/modules/networkgraph.js +2 -2
- package/modules/networkgraph.src.js +31 -21
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/non-cartesian-zoom.js +1 -1
- package/modules/non-cartesian-zoom.src.js +1 -1
- package/modules/offline-exporting.js +1 -1
- package/modules/offline-exporting.src.js +1 -1
- package/modules/organization.js +2 -2
- package/modules/organization.src.js +3 -2
- package/modules/parallel-coordinates.js +2 -2
- package/modules/parallel-coordinates.src.js +2 -2
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +2 -2
- package/modules/pathfinder.src.js +7 -6
- package/modules/pattern-fill.js +2 -2
- package/modules/pattern-fill.src.js +7 -5
- package/modules/pictorial.js +2 -2
- package/modules/pictorial.src.js +10 -6
- package/modules/pointandfigure.js +1 -1
- package/modules/pointandfigure.src.js +1 -1
- package/modules/price-indicator.js +2 -2
- package/modules/price-indicator.src.js +5 -4
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +1 -1
- package/modules/renko.js +1 -1
- package/modules/renko.src.js +1 -1
- package/modules/sankey.js +2 -2
- package/modules/sankey.src.js +34 -20
- package/modules/series-label.js +2 -2
- package/modules/series-label.src.js +7 -7
- package/modules/series-on-point.js +1 -1
- package/modules/series-on-point.src.js +1 -1
- package/modules/solid-gauge.js +2 -2
- package/modules/solid-gauge.src.js +2 -2
- package/modules/sonification.js +2 -2
- package/modules/sonification.src.js +19 -19
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +3 -3
- package/modules/stock-tools.src.js +15 -10
- package/modules/stock.js +6 -6
- package/modules/stock.src.js +105 -89
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +2 -2
- package/modules/sunburst.src.js +41 -26
- package/modules/textpath.js +1 -1
- package/modules/textpath.src.js +1 -1
- package/modules/tiledwebmap.js +2 -2
- package/modules/tiledwebmap.src.js +8 -6
- package/modules/tilemap.js +2 -2
- package/modules/tilemap.src.js +3 -3
- package/modules/timeline.js +2 -2
- package/modules/timeline.src.js +5 -4
- package/modules/treegraph.js +2 -2
- package/modules/treegraph.src.js +17 -8
- package/modules/treegrid.js +2 -2
- package/modules/treegrid.src.js +28 -18
- package/modules/treemap.js +2 -2
- package/modules/treemap.src.js +35 -22
- package/modules/variable-pie.js +2 -2
- package/modules/variable-pie.src.js +6 -4
- package/modules/variwide.js +2 -2
- package/modules/variwide.src.js +2 -2
- package/modules/vector.js +1 -1
- package/modules/vector.src.js +1 -1
- package/modules/venn.js +1 -1
- package/modules/venn.src.js +1 -1
- package/modules/windbarb.js +2 -2
- package/modules/windbarb.src.js +2 -2
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.src.js +1 -1
- package/modules/xrange.js +1 -1
- package/modules/xrange.src.js +1 -1
- package/package.json +2 -3
- package/standalone-navigator.js +4 -4
- package/standalone-navigator.src.js +355 -249
- package/themes/adaptive.js +1 -1
- package/themes/adaptive.src.js +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/high-contrast.js +1 -1
- package/themes/high-contrast.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/sunset.js +1 -1
- package/themes/sunset.src.js +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
2
2
|
/**
|
|
3
|
-
* @license Highcharts JS v13.0.
|
|
3
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
4
4
|
* @module highcharts/standalone-navigator
|
|
5
5
|
*
|
|
6
6
|
* Standalone Navigator for Highcharts.
|
|
@@ -95,7 +95,7 @@ var Globals;
|
|
|
95
95
|
* Constants
|
|
96
96
|
*
|
|
97
97
|
* */
|
|
98
|
-
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.
|
|
98
|
+
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.2', Globals.win = (typeof window !== 'undefined' ?
|
|
99
99
|
window :
|
|
100
100
|
{}), // eslint-disable-line node/no-unsupported-features/es-builtins
|
|
101
101
|
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 = [
|
|
@@ -422,6 +422,29 @@ const ChartDefaults = {
|
|
|
422
422
|
* @context Highcharts.Chart
|
|
423
423
|
* @apioption chart.events.load
|
|
424
424
|
*/
|
|
425
|
+
/**
|
|
426
|
+
* Fires while the chart is panned by mouse drag. Panning must be
|
|
427
|
+
* enabled through [chart.panning](#chart.panning). One parameter,
|
|
428
|
+
* `event`, is passed to the function, containing common event
|
|
429
|
+
* information as well as `event.originalEvent`, the underlying pointer
|
|
430
|
+
* event. Note that the event fires for every mouse move during the
|
|
431
|
+
* drag, not once per gesture.
|
|
432
|
+
*
|
|
433
|
+
* Calling `event.preventDefault()` or returning false prevents the
|
|
434
|
+
* default panning of the axes. In Highcharts Maps, and on ordinal axes
|
|
435
|
+
* in Highcharts Stock, the panning is applied outside the default
|
|
436
|
+
* action and is not prevented.
|
|
437
|
+
*
|
|
438
|
+
* Panning by touch does not fire this event, unless
|
|
439
|
+
* [chart.zooming.singleTouch](#chart.zooming.singleTouch) is enabled and
|
|
440
|
+
* no zoom type is set. Single-finger drags are then handled as mouse
|
|
441
|
+
* drags and fire this event.
|
|
442
|
+
*
|
|
443
|
+
* @type {Highcharts.ChartPanCallbackFunction}
|
|
444
|
+
* @since 7.0.2
|
|
445
|
+
* @context Highcharts.Chart
|
|
446
|
+
* @apioption chart.events.pan
|
|
447
|
+
*/
|
|
425
448
|
/**
|
|
426
449
|
* Fires when the chart is redrawn, either after a call to
|
|
427
450
|
* `chart.redraw()` or after an axis, series or point is modified with
|
|
@@ -2436,7 +2459,7 @@ function getStyle(el, prop, toInt) {
|
|
|
2436
2459
|
const css = win.getComputedStyle(el, void 0); // eslint-disable-line no-undefined
|
|
2437
2460
|
if (css) {
|
|
2438
2461
|
style = css.getPropertyValue(prop);
|
|
2439
|
-
if (
|
|
2462
|
+
if (toInt ?? prop !== 'opacity') {
|
|
2440
2463
|
style = pInt(style);
|
|
2441
2464
|
}
|
|
2442
2465
|
}
|
|
@@ -2686,7 +2709,7 @@ function merge(extendOrSource, ...sources) {
|
|
|
2686
2709
|
function normalizeTickInterval(interval, multiples, magnitude, allowDecimals, hasTickAmount) {
|
|
2687
2710
|
let i, retInterval = interval;
|
|
2688
2711
|
// Round to a tenfold of 1, 2, 2.5 or 5
|
|
2689
|
-
magnitude =
|
|
2712
|
+
magnitude = (magnitude ?? getMagnitude(interval));
|
|
2690
2713
|
const normalized = interval / magnitude;
|
|
2691
2714
|
// Multiples for a linear scale
|
|
2692
2715
|
if (!multiples) {
|
|
@@ -2799,20 +2822,22 @@ function pad(number, length, padder) {
|
|
|
2799
2822
|
.replace('-', '')
|
|
2800
2823
|
.length).join(padder || '0') + number;
|
|
2801
2824
|
}
|
|
2802
|
-
/* eslint-disable jsdoc
|
|
2825
|
+
/* eslint-disable valid-jsdoc */
|
|
2803
2826
|
/**
|
|
2804
2827
|
* Return the first value that is not null or undefined.
|
|
2805
2828
|
*
|
|
2829
|
+
* @deprecated 13.0.2
|
|
2830
|
+
* Use nullish coalescing (`??`) or explicit fallback logic instead.
|
|
2831
|
+
*
|
|
2806
2832
|
* @function Highcharts.pick<T>
|
|
2807
2833
|
*
|
|
2808
|
-
* @param {...
|
|
2834
|
+
* @param {...(T|null|undefined)} args
|
|
2809
2835
|
* Variable number of arguments to inspect.
|
|
2810
2836
|
*
|
|
2811
2837
|
* @return {T}
|
|
2812
2838
|
* The value of the first argument that is not null or undefined.
|
|
2813
2839
|
*/
|
|
2814
|
-
function pick() {
|
|
2815
|
-
const args = arguments;
|
|
2840
|
+
function pick(...args) {
|
|
2816
2841
|
const length = args.length;
|
|
2817
2842
|
for (let i = 0; i < length; i++) {
|
|
2818
2843
|
const arg = args[i];
|
|
@@ -2821,7 +2846,7 @@ function pick() {
|
|
|
2821
2846
|
}
|
|
2822
2847
|
}
|
|
2823
2848
|
}
|
|
2824
|
-
/* eslint-enable jsdoc
|
|
2849
|
+
/* eslint-enable valid-jsdoc */
|
|
2825
2850
|
/**
|
|
2826
2851
|
* Shortcut for parseInt
|
|
2827
2852
|
*
|
|
@@ -3204,7 +3229,8 @@ function insertItem(item, collection) {
|
|
|
3204
3229
|
!collection[i] ||
|
|
3205
3230
|
// Handle index option, the element to insert has lower index
|
|
3206
3231
|
(isNumber(indexOption) &&
|
|
3207
|
-
indexOption <
|
|
3232
|
+
indexOption < (collection[i].options.index ??
|
|
3233
|
+
collection[i]._i)) ||
|
|
3208
3234
|
// Insert the new item before other internal items
|
|
3209
3235
|
// (navigator)
|
|
3210
3236
|
collection[i].options.isInternal) {
|
|
@@ -3290,7 +3316,7 @@ const uniqueKey = (function () {
|
|
|
3290
3316
|
* State of the serial mode.
|
|
3291
3317
|
*/
|
|
3292
3318
|
function useSerialIds(mode) {
|
|
3293
|
-
return (serialMode =
|
|
3319
|
+
return (serialMode = (mode ?? serialMode));
|
|
3294
3320
|
}
|
|
3295
3321
|
/* *
|
|
3296
3322
|
*
|
|
@@ -3756,6 +3782,10 @@ const isDateTimeFormatOptions = (obj) => obj.main === void 0;
|
|
|
3756
3782
|
*
|
|
3757
3783
|
* @param {Highcharts.TimeOptions} [options] Time options as defined in
|
|
3758
3784
|
* [chart.options.time](/highcharts/time).
|
|
3785
|
+
*
|
|
3786
|
+
* @param {Highcharts.LangOptions} [lang]
|
|
3787
|
+
* Language options. When `options.locale` is not set, `lang.locale` is used as
|
|
3788
|
+
* the locale fallback for locale-aware date formatting.
|
|
3759
3789
|
*/
|
|
3760
3790
|
class TimeBase {
|
|
3761
3791
|
/* *
|
|
@@ -3774,8 +3804,8 @@ class TimeBase {
|
|
|
3774
3804
|
};
|
|
3775
3805
|
this.variableTimezone = false;
|
|
3776
3806
|
this.Date = TimeBase_win.Date;
|
|
3777
|
-
this.update(options);
|
|
3778
3807
|
this.lang = lang;
|
|
3808
|
+
this.update(options);
|
|
3779
3809
|
}
|
|
3780
3810
|
/* *
|
|
3781
3811
|
*
|
|
@@ -3887,7 +3917,9 @@ class TimeBase {
|
|
|
3887
3917
|
/**
|
|
3888
3918
|
* Shorthand to get a cached `Intl.DateTimeFormat` instance.
|
|
3889
3919
|
*/
|
|
3890
|
-
dateTimeFormat(options, timestamp, locale = this.options.locale ||
|
|
3920
|
+
dateTimeFormat(options, timestamp, locale = (this.options.locale ||
|
|
3921
|
+
this.lang?.locale ||
|
|
3922
|
+
pageLang)) {
|
|
3891
3923
|
const cacheKey = JSON.stringify(options) + locale;
|
|
3892
3924
|
if (isString(options)) {
|
|
3893
3925
|
options = this.str2dtf(options);
|
|
@@ -7827,6 +7859,41 @@ const DefaultOptions = {
|
|
|
7827
7859
|
* @param {global.Event} event
|
|
7828
7860
|
* The event that occurred.
|
|
7829
7861
|
*/
|
|
7862
|
+
/**
|
|
7863
|
+
* Gets fired while the chart is panned by mouse drag. Calling
|
|
7864
|
+
* `event.preventDefault()` or returning `false` prevents the default panning
|
|
7865
|
+
* of the axes.
|
|
7866
|
+
*
|
|
7867
|
+
* @callback Highcharts.ChartPanCallbackFunction
|
|
7868
|
+
*
|
|
7869
|
+
* @param {Highcharts.Chart} this
|
|
7870
|
+
* The chart on which the event occurred.
|
|
7871
|
+
*
|
|
7872
|
+
* @param {Highcharts.ChartPanEventObject} event
|
|
7873
|
+
* The event that occurred.
|
|
7874
|
+
*/
|
|
7875
|
+
/**
|
|
7876
|
+
* Contains common event information. Through the `originalEvent` property you
|
|
7877
|
+
* can access the pointer event that triggered the panning.
|
|
7878
|
+
*
|
|
7879
|
+
* @interface Highcharts.ChartPanEventObject
|
|
7880
|
+
*/ /**
|
|
7881
|
+
* The pointer event that triggered the panning.
|
|
7882
|
+
* @name Highcharts.ChartPanEventObject#originalEvent
|
|
7883
|
+
* @type {Highcharts.PointerEventObject}
|
|
7884
|
+
*/ /**
|
|
7885
|
+
* Prevents the default behavior of the event.
|
|
7886
|
+
* @name Highcharts.ChartPanEventObject#preventDefault
|
|
7887
|
+
* @type {Function}
|
|
7888
|
+
*/ /**
|
|
7889
|
+
* The event target.
|
|
7890
|
+
* @name Highcharts.ChartPanEventObject#target
|
|
7891
|
+
* @type {Highcharts.Chart}
|
|
7892
|
+
*/ /**
|
|
7893
|
+
* The event type.
|
|
7894
|
+
* @name Highcharts.ChartPanEventObject#type
|
|
7895
|
+
* @type {"pan"}
|
|
7896
|
+
*/
|
|
7830
7897
|
/**
|
|
7831
7898
|
* Fires when the chart is redrawn, either after a call to `chart.redraw()` or
|
|
7832
7899
|
* after an axis, series or point is modified with the `redraw` option set to
|
|
@@ -8202,7 +8269,9 @@ Color.None = new Color(''); // Must be last static for init
|
|
|
8202
8269
|
*/
|
|
8203
8270
|
/**
|
|
8204
8271
|
* A valid color type than can be parsed and handled by Highcharts. It can be a
|
|
8205
|
-
* color string, a gradient object, or a pattern
|
|
8272
|
+
* color string (including CSS expressions), a gradient object, or a pattern
|
|
8273
|
+
* object. Read more about colors in the [Highcharts
|
|
8274
|
+
* documentation](https://www.highcharts.com/docs/chart-design-and-style/colors).
|
|
8206
8275
|
*
|
|
8207
8276
|
* @typedef {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject} Highcharts.ColorType
|
|
8208
8277
|
*/
|
|
@@ -8745,7 +8814,8 @@ Fx.timers = [];
|
|
|
8745
8814
|
* so it should be moved to the SVGRenderer.
|
|
8746
8815
|
*/
|
|
8747
8816
|
function setAnimation(animation, chart) {
|
|
8748
|
-
chart.renderer.globalAnimation =
|
|
8817
|
+
chart.renderer.globalAnimation =
|
|
8818
|
+
animation ?? chart.options.chart.animation ?? true;
|
|
8749
8819
|
}
|
|
8750
8820
|
/**
|
|
8751
8821
|
* Get the animation in object form, where a disabled animation is always
|
|
@@ -9808,7 +9878,7 @@ function format(str = '', ctx, owner) {
|
|
|
9808
9878
|
replacement = `"${replacement}"`;
|
|
9809
9879
|
}
|
|
9810
9880
|
}
|
|
9811
|
-
str = str.replace(match.find,
|
|
9881
|
+
str = str.replace(match.find, (replacement ?? ''));
|
|
9812
9882
|
});
|
|
9813
9883
|
return hasSub ? format(str, ctx, owner) : str;
|
|
9814
9884
|
}
|
|
@@ -10057,7 +10127,7 @@ var RendererUtilities;
|
|
|
10057
10127
|
boxes = boxes.map((box) => ({
|
|
10058
10128
|
size: box.size,
|
|
10059
10129
|
targets: [box.target],
|
|
10060
|
-
align:
|
|
10130
|
+
align: (box.align ?? 0.5)
|
|
10061
10131
|
}));
|
|
10062
10132
|
while (overlapping) {
|
|
10063
10133
|
// Initial positions: target centered in box
|
|
@@ -10215,8 +10285,10 @@ class SVGElement {
|
|
|
10215
10285
|
* Property value.
|
|
10216
10286
|
*/
|
|
10217
10287
|
_defaultGetter(key) {
|
|
10218
|
-
let ret =
|
|
10219
|
-
|
|
10288
|
+
let ret = (this[key + 'Value'] ??
|
|
10289
|
+
this[key] ??
|
|
10290
|
+
(this.element ? this.element.getAttribute(key) : null) ??
|
|
10291
|
+
0);
|
|
10220
10292
|
if (/^-?[\d\.]+$/.test(ret)) { // Is numerical
|
|
10221
10293
|
ret = parseFloat(ret);
|
|
10222
10294
|
}
|
|
@@ -10379,7 +10451,7 @@ class SVGElement {
|
|
|
10379
10451
|
}
|
|
10380
10452
|
alignTo = void 0; // Do not use the box
|
|
10381
10453
|
}
|
|
10382
|
-
const alignToBox =
|
|
10454
|
+
const alignToBox = alignTo ?? renderer[alignToKey] ?? renderer,
|
|
10383
10455
|
// Default: left align
|
|
10384
10456
|
x = (alignToBox.x || 0) + (alignOptions.x || 0) +
|
|
10385
10457
|
((alignToBox.width || 0) - (alignOptions.width || 0)) *
|
|
@@ -10439,7 +10511,7 @@ class SVGElement {
|
|
|
10439
10511
|
* Returns the SVGElement for chaining.
|
|
10440
10512
|
*/
|
|
10441
10513
|
animate(params, options, complete) {
|
|
10442
|
-
const animOptions = animObject(
|
|
10514
|
+
const animOptions = animObject((options ?? this.renderer.globalAnimation ?? true)), deferTime = animOptions.defer;
|
|
10443
10515
|
// When the page is hidden save resources in the background by not
|
|
10444
10516
|
// running animation at all (#9749).
|
|
10445
10517
|
if (SVGElement_doc.hidden) {
|
|
@@ -10931,7 +11003,7 @@ class SVGElement {
|
|
|
10931
11003
|
.split(','); // Ending comma
|
|
10932
11004
|
i = v.length;
|
|
10933
11005
|
while (i--) {
|
|
10934
|
-
v[i] = '' + (pInt(v[i]) *
|
|
11006
|
+
v[i] = '' + (pInt(v[i]) * (strokeWidth ?? NaN));
|
|
10935
11007
|
}
|
|
10936
11008
|
value = v.join(',').replace(/NaN/g, 'none'); // #3226
|
|
10937
11009
|
this.element.setAttribute('stroke-dasharray', value);
|
|
@@ -11071,7 +11143,7 @@ class SVGElement {
|
|
|
11071
11143
|
* The bounding box with `x`, `y`, `width` and `height` properties.
|
|
11072
11144
|
*/
|
|
11073
11145
|
getBBox(reload, rot) {
|
|
11074
|
-
const wrapper = this, { element, renderer, styles, textStr } = wrapper, { cache, cacheKeys } = renderer, isSVG = element.namespaceURI === wrapper.SVG_NS, rotation =
|
|
11146
|
+
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 &&
|
|
11075
11147
|
SVGElement.prototype.getStyle.call(element, 'font-size')) : (styles.fontSize), cacheKey = this.getBBoxCacheKey([
|
|
11076
11148
|
renderer.rootFontSize,
|
|
11077
11149
|
this.textWidth, // #7874, also useHTML
|
|
@@ -11597,7 +11669,7 @@ class SVGElement {
|
|
|
11597
11669
|
symbolAttr(hash) {
|
|
11598
11670
|
const wrapper = this;
|
|
11599
11671
|
SVGElement.symbolCustomAttribs.forEach(function (key) {
|
|
11600
|
-
wrapper[key] =
|
|
11672
|
+
wrapper[key] = (hash[key] ?? wrapper[key]);
|
|
11601
11673
|
});
|
|
11602
11674
|
wrapper.attr({
|
|
11603
11675
|
d: wrapper.renderer.symbols[wrapper.symbolName](wrapper.x, wrapper.y, wrapper.width, wrapper.height, wrapper)
|
|
@@ -11637,7 +11709,7 @@ class SVGElement {
|
|
|
11637
11709
|
}
|
|
11638
11710
|
// Replace text content and escape markup
|
|
11639
11711
|
titleNode.textContent = replaceNested(// Scan #[73]
|
|
11640
|
-
|
|
11712
|
+
(value ?? ''), // #3276, #3895
|
|
11641
11713
|
[/<[^>]*>/g, '']).replace(/</g, '<').replace(/>/g, '>');
|
|
11642
11714
|
}
|
|
11643
11715
|
/**
|
|
@@ -12415,7 +12487,7 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12415
12487
|
if ((this.textStr && this.bBox.width === 0 && this.bBox.height === 0) || this.rotation) {
|
|
12416
12488
|
this.updateBoxSize();
|
|
12417
12489
|
}
|
|
12418
|
-
const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft =
|
|
12490
|
+
const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft = (this.paddingLeft ?? padding), rotation = rot ?? (this.rotation || 0);
|
|
12419
12491
|
let bBox = {
|
|
12420
12492
|
width,
|
|
12421
12493
|
height,
|
|
@@ -12468,7 +12540,7 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12468
12540
|
this.attr({
|
|
12469
12541
|
// Alignment is available now (#3295, 0 not rendered if given
|
|
12470
12542
|
// as a value)
|
|
12471
|
-
text:
|
|
12543
|
+
text: (this.textStr ?? ''),
|
|
12472
12544
|
x: this.x || 0,
|
|
12473
12545
|
y: this.y || 0
|
|
12474
12546
|
});
|
|
@@ -12624,8 +12696,8 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12624
12696
|
/** @internal */
|
|
12625
12697
|
getPaddedWidth() {
|
|
12626
12698
|
const padding = this.padding;
|
|
12627
|
-
const paddingLeft =
|
|
12628
|
-
const paddingRight =
|
|
12699
|
+
const paddingLeft = (this.paddingLeft ?? padding);
|
|
12700
|
+
const paddingRight = (this.paddingRight ?? padding);
|
|
12629
12701
|
return ((this.widthSetting || this.bBox.width || 0) +
|
|
12630
12702
|
paddingLeft +
|
|
12631
12703
|
paddingRight);
|
|
@@ -12726,7 +12798,7 @@ function arc(cx, cy, w, h, options) {
|
|
|
12726
12798
|
const arc = [];
|
|
12727
12799
|
if (options) {
|
|
12728
12800
|
let start = options.start || 0, end = options.end || 0;
|
|
12729
|
-
const rx =
|
|
12801
|
+
const rx = (options.r ?? w), ry = (options.r ?? (h || w)),
|
|
12730
12802
|
// Subtract a small number to prevent cos and sin of start and end
|
|
12731
12803
|
// from becoming equal on 360 arcs (#1561). See "Arc proximity"
|
|
12732
12804
|
// tests at samples/unit-tests/svgrenderer/symbol/demo.js
|
|
@@ -12736,16 +12808,17 @@ function arc(cx, cy, w, h, options) {
|
|
|
12736
12808
|
start = Math.PI / 2;
|
|
12737
12809
|
end = Math.PI * 2.5 - proximity;
|
|
12738
12810
|
}
|
|
12739
|
-
const innerRadius = options.innerR, open =
|
|
12811
|
+
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),
|
|
12740
12812
|
// Proximity takes care of rounding errors around PI (#6971)
|
|
12741
|
-
longArc =
|
|
12813
|
+
longArc = options.longArc ??
|
|
12814
|
+
(end - start - Math.PI < proximity ? 0 : 1);
|
|
12742
12815
|
let arcSegment = [
|
|
12743
12816
|
'A', // ArcTo
|
|
12744
12817
|
rx, // X radius
|
|
12745
12818
|
ry, // Y radius
|
|
12746
12819
|
0, // Slanting
|
|
12747
12820
|
longArc, // Long or short arc
|
|
12748
|
-
|
|
12821
|
+
(options.clockwise ?? 1), // Clockwise
|
|
12749
12822
|
// Use a static pixel offset for full circle (#21701)
|
|
12750
12823
|
cx + (fullCircle ? 0.001 : rx * cosEnd),
|
|
12751
12824
|
cy + ry * sinEnd
|
|
@@ -13276,7 +13349,7 @@ class TextBuilder {
|
|
|
13276
13349
|
* @internal
|
|
13277
13350
|
*/
|
|
13278
13351
|
buildSVG() {
|
|
13279
|
-
const wrapper = this.svgElement, textNode = wrapper.element, renderer = wrapper.renderer, textStr =
|
|
13352
|
+
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,
|
|
13280
13353
|
// The buildText code is quite heavy, so if we're not changing
|
|
13281
13354
|
// something that affects the text, skip it (#6113).
|
|
13282
13355
|
textCache = [
|
|
@@ -13860,7 +13933,7 @@ class SVGRenderer {
|
|
|
13860
13933
|
this.url = this.getReferenceURL();
|
|
13861
13934
|
// Add description
|
|
13862
13935
|
const desc = this.createElement('desc').add();
|
|
13863
|
-
desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.
|
|
13936
|
+
desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.2'));
|
|
13864
13937
|
this.defs = this.createElement('defs').add();
|
|
13865
13938
|
this.allowHTML = allowHTML;
|
|
13866
13939
|
this.forExport = forExport;
|
|
@@ -14646,7 +14719,7 @@ class SVGRenderer {
|
|
|
14646
14719
|
this.attr('height')
|
|
14647
14720
|
});
|
|
14648
14721
|
},
|
|
14649
|
-
duration:
|
|
14722
|
+
duration: (animate ?? true) ? void 0 : 0
|
|
14650
14723
|
});
|
|
14651
14724
|
renderer.alignElements();
|
|
14652
14725
|
}
|
|
@@ -14804,8 +14877,8 @@ class SVGRenderer {
|
|
|
14804
14877
|
// The image width is not always the same as the symbol width. The
|
|
14805
14878
|
// image may be centered within the symbol, as is the case when
|
|
14806
14879
|
// image shapes are used as label backgrounds, for example in flags.
|
|
14807
|
-
img.imgwidth =
|
|
14808
|
-
img.imgheight =
|
|
14880
|
+
img.imgwidth = (options?.width ?? symbolSizes[imageSrc]?.width);
|
|
14881
|
+
img.imgheight = (options?.height ?? symbolSizes[imageSrc]?.height);
|
|
14809
14882
|
/**
|
|
14810
14883
|
* Set the size and position
|
|
14811
14884
|
*/
|
|
@@ -19284,11 +19357,11 @@ class Tick {
|
|
|
19284
19357
|
* @function Highcharts.Tick#addLabel
|
|
19285
19358
|
*/
|
|
19286
19359
|
addLabel() {
|
|
19287
|
-
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 =
|
|
19360
|
+
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;
|
|
19288
19361
|
let label = tick.label, dateTimeLabelFormat, dateTimeLabelFormats, i;
|
|
19289
19362
|
// The context value
|
|
19290
19363
|
let value = this.parameters.category || (categories ?
|
|
19291
|
-
|
|
19364
|
+
(categories[pos] ?? names[pos] ?? pos) :
|
|
19292
19365
|
pos);
|
|
19293
19366
|
if (log && isNumber(value)) {
|
|
19294
19367
|
value = correctFloat(log.lin2log(value));
|
|
@@ -19535,7 +19608,7 @@ class Tick {
|
|
|
19535
19608
|
labelOptions.y;
|
|
19536
19609
|
}
|
|
19537
19610
|
x = x +
|
|
19538
|
-
|
|
19611
|
+
(labelOptions.x ?? [0, 1, 0, -1][axis.side] * distance) +
|
|
19539
19612
|
labelOffsetCorrection +
|
|
19540
19613
|
rotCorr.x -
|
|
19541
19614
|
(tickmarkOffset && horiz ?
|
|
@@ -19590,7 +19663,7 @@ class Tick {
|
|
|
19590
19663
|
* @function Highcharts.Tick#handleOverflow
|
|
19591
19664
|
*/
|
|
19592
19665
|
handleOverflow(xy) {
|
|
19593
|
-
const tick = this, axis = this.axis, labelOptions = axis.options.labels, pxPos = xy.x, chartWidth = axis.chart.chartWidth, spacing = axis.chart.spacing, leftBound =
|
|
19666
|
+
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 = {};
|
|
19594
19667
|
let modifiedSlotWidth = slotWidth, goRight = 1, leftPos, rightPos, textWidth;
|
|
19595
19668
|
// Check if the label overshoots the chart spacing box. If it does, move
|
|
19596
19669
|
// it. If it now overshoots the slotWidth, add ellipsis.
|
|
@@ -19657,9 +19730,8 @@ class Tick {
|
|
|
19657
19730
|
* @param {number} [opacity]
|
|
19658
19731
|
*/
|
|
19659
19732
|
render(index, old, opacity) {
|
|
19660
|
-
const tick = this, axis = tick.axis, horiz = axis.horiz, pos = tick.pos, tickmarkOffset =
|
|
19661
|
-
const labelOpacity =
|
|
19662
|
-
1);
|
|
19733
|
+
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;
|
|
19734
|
+
const labelOpacity = (opacity ?? tick.label?.newOpacity ?? 1);
|
|
19663
19735
|
// Anything that is not between `axis.pos` and `axis.pos + axis.length`
|
|
19664
19736
|
// should not be visible (#20166). The `correctFloat` is for reversed
|
|
19665
19737
|
// axes in Safari.
|
|
@@ -19687,7 +19759,7 @@ class Tick {
|
|
|
19687
19759
|
* @param {number} opacity The opacity of the grid line
|
|
19688
19760
|
*/
|
|
19689
19761
|
renderGridLine(old, opacity) {
|
|
19690
|
-
const tick = this, axis = tick.axis, options = axis.options, attribs = {}, pos = tick.pos, type = tick.type, tickmarkOffset =
|
|
19762
|
+
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;
|
|
19691
19763
|
let gridLine = tick.gridLine, gridLinePath, gridLineWidth = options.gridLineWidth, gridLineColor = options.gridLineColor, dashStyle = options.gridLineDashStyle;
|
|
19692
19764
|
if (tick.type === 'minor') {
|
|
19693
19765
|
gridLineWidth = options.minorGridLineWidth;
|
|
@@ -19743,7 +19815,7 @@ class Tick {
|
|
|
19743
19815
|
* @param {number} opacity The opacity of the mark
|
|
19744
19816
|
*/
|
|
19745
19817
|
renderMark(xy, opacity) {
|
|
19746
|
-
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 =
|
|
19818
|
+
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
|
|
19747
19819
|
tickColor = options[type !== 'minor' ? 'tickColor' : 'minorTickColor'];
|
|
19748
19820
|
let mark = tick.mark;
|
|
19749
19821
|
const isNewMark = !mark;
|
|
@@ -19788,7 +19860,7 @@ class Tick {
|
|
|
19788
19860
|
* @param {number} index The index of the tick
|
|
19789
19861
|
*/
|
|
19790
19862
|
renderLabel(xy, old, opacity, index) {
|
|
19791
|
-
const tick = this, axis = tick.axis, horiz = axis.horiz, options = axis.options, label = tick.label, labelOptions = options.labels, step = labelOptions.step, tickmarkOffset =
|
|
19863
|
+
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;
|
|
19792
19864
|
let show = true;
|
|
19793
19865
|
if (label && isNumber(x)) {
|
|
19794
19866
|
label.xy = xy = tick.getLabelPosition(x, y, label, horiz, labelOptions, tickmarkOffset, index, step);
|
|
@@ -19893,12 +19965,7 @@ const { deg2rad: Axis_deg2rad } = Core_Globals;
|
|
|
19893
19965
|
|
|
19894
19966
|
|
|
19895
19967
|
|
|
19896
|
-
const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0,
|
|
19897
|
-
// If the tick interval is greater than 0.5, avoid decimals, as
|
|
19898
|
-
// linear axes are often used to render discrete values (#3363). If
|
|
19899
|
-
// a tick amount is set, allow decimals by default, as it increases
|
|
19900
|
-
// the chances for a good fit.
|
|
19901
|
-
tickInterval < 0.5 || axis.tickAmount !== void 0), !!axis.tickAmount);
|
|
19968
|
+
const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0, (axis.options.allowDecimals ?? (tickInterval < 0.5 || axis.tickAmount !== void 0)), !!axis.tickAmount);
|
|
19902
19969
|
extend(Axis_defaultOptions, { xAxis, yAxis: merge(xAxis, yAxis) });
|
|
19903
19970
|
/* *
|
|
19904
19971
|
*
|
|
@@ -20006,7 +20073,7 @@ class Axis {
|
|
|
20006
20073
|
axis.coll = coll;
|
|
20007
20074
|
fireEvent(this, 'init', { userOptions: userOptions });
|
|
20008
20075
|
// Needed in setOptions
|
|
20009
|
-
axis.opposite =
|
|
20076
|
+
axis.opposite = (userOptions.opposite ?? axis.opposite);
|
|
20010
20077
|
/**
|
|
20011
20078
|
* The side on which the axis is rendered. 0 is top, 1 is right, 2
|
|
20012
20079
|
* is bottom and 3 is left.
|
|
@@ -20014,10 +20081,9 @@ class Axis {
|
|
|
20014
20081
|
* @name Highcharts.Axis#side
|
|
20015
20082
|
* @type {number}
|
|
20016
20083
|
*/
|
|
20017
|
-
axis.side =
|
|
20084
|
+
axis.side = (userOptions.side ?? axis.side ?? (horiz ?
|
|
20018
20085
|
(axis.opposite ? 0 : 2) : // Top : bottom
|
|
20019
|
-
(axis.opposite ? 1 : 3))
|
|
20020
|
-
);
|
|
20086
|
+
(axis.opposite ? 1 : 3)));
|
|
20021
20087
|
/**
|
|
20022
20088
|
* Current options for the axis after merge of defaults and user's
|
|
20023
20089
|
* options.
|
|
@@ -20046,7 +20112,7 @@ class Axis {
|
|
|
20046
20112
|
* @name Highcharts.Axis#reversed
|
|
20047
20113
|
* @type {boolean}
|
|
20048
20114
|
*/
|
|
20049
|
-
axis.reversed =
|
|
20115
|
+
axis.reversed = (options.reversed ?? axis.reversed);
|
|
20050
20116
|
axis.visible = options.visible;
|
|
20051
20117
|
axis.zoomEnabled = options.zoomEnabled;
|
|
20052
20118
|
// Initial categories
|
|
@@ -20134,7 +20200,7 @@ class Axis {
|
|
|
20134
20200
|
* @name Highcharts.Axis#crosshair
|
|
20135
20201
|
* @type {boolean|Highcharts.AxisCrosshairOptions}
|
|
20136
20202
|
*/
|
|
20137
|
-
const crosshair =
|
|
20203
|
+
const crosshair = options.crosshair ?? splat(chart.options.tooltip.crosshairs)[isXAxis ? 0 : 1];
|
|
20138
20204
|
axis.crosshair = crosshair === true ? {} : crosshair;
|
|
20139
20205
|
// Register. Don't add it again on Axis.update().
|
|
20140
20206
|
if (chart.axes.indexOf(axis) === -1) { //
|
|
@@ -20318,8 +20384,8 @@ class Axis {
|
|
|
20318
20384
|
seriesDataMax = xExtremes.max;
|
|
20319
20385
|
}
|
|
20320
20386
|
if (xData.length) {
|
|
20321
|
-
axis.dataMin = Math.min(
|
|
20322
|
-
axis.dataMax = Math.max(
|
|
20387
|
+
axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
|
|
20388
|
+
axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
|
|
20323
20389
|
}
|
|
20324
20390
|
}
|
|
20325
20391
|
// Get dataMin and dataMax for Y axes, as well as handle
|
|
@@ -20334,11 +20400,11 @@ class Axis {
|
|
|
20334
20400
|
// doesn't have active y data, we continue with nulls
|
|
20335
20401
|
if (isNumber(dataExtremes.dataMin)) {
|
|
20336
20402
|
seriesDataMin = dataExtremes.dataMin;
|
|
20337
|
-
axis.dataMin = Math.min(
|
|
20403
|
+
axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
|
|
20338
20404
|
}
|
|
20339
20405
|
if (isNumber(dataExtremes.dataMax)) {
|
|
20340
20406
|
seriesDataMax = dataExtremes.dataMax;
|
|
20341
|
-
axis.dataMax = Math.max(
|
|
20407
|
+
axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
|
|
20342
20408
|
}
|
|
20343
20409
|
// Adjust to threshold
|
|
20344
20410
|
if (defined(threshold)) {
|
|
@@ -20493,7 +20559,7 @@ class Axis {
|
|
|
20493
20559
|
translatedValue
|
|
20494
20560
|
};
|
|
20495
20561
|
fireEvent(this, 'getPlotLinePath', evt, function (e) {
|
|
20496
|
-
translatedValue =
|
|
20562
|
+
translatedValue = translatedValue ?? axis.translate(value, void 0, void 0, old);
|
|
20497
20563
|
// Keep the translated value within sane bounds, and avoid Infinity
|
|
20498
20564
|
// to fail the isNumber test (#7709).
|
|
20499
20565
|
translatedValue = clamp(translatedValue, -1e9, 1e9);
|
|
@@ -20582,7 +20648,7 @@ class Axis {
|
|
|
20582
20648
|
getMinorTickInterval() {
|
|
20583
20649
|
const { minorTicks, minorTickInterval } = this.options;
|
|
20584
20650
|
if (minorTicks === true) {
|
|
20585
|
-
return
|
|
20651
|
+
return (minorTickInterval ?? 'auto');
|
|
20586
20652
|
}
|
|
20587
20653
|
if (minorTicks === false) {
|
|
20588
20654
|
return;
|
|
@@ -20865,7 +20931,9 @@ class Axis {
|
|
|
20865
20931
|
const seriesPointRange = hasCategories ?
|
|
20866
20932
|
1 :
|
|
20867
20933
|
(isXAxis ?
|
|
20868
|
-
|
|
20934
|
+
(series.options.pointRange ??
|
|
20935
|
+
closestPointRange ??
|
|
20936
|
+
0) :
|
|
20869
20937
|
(axis.axisPointRange || 0)), // #2806
|
|
20870
20938
|
pointPlacement = series.options.pointPlacement;
|
|
20871
20939
|
pointRange = Math.max(pointRange, seriesPointRange);
|
|
@@ -20949,14 +21017,16 @@ class Axis {
|
|
|
20949
21017
|
this.getTickAmount();
|
|
20950
21018
|
}
|
|
20951
21019
|
// Min or max set either by zooming/setExtremes or initial options
|
|
20952
|
-
hardMin =
|
|
20953
|
-
hardMax =
|
|
21020
|
+
hardMin = (axis.userMin ?? time.parse(options.min));
|
|
21021
|
+
hardMax = (axis.userMax ?? time.parse(options.max));
|
|
20954
21022
|
// Linked axis gets the extremes from the parent axis
|
|
20955
21023
|
if (linkedParent) {
|
|
20956
21024
|
axis.linkedParent = linkedParent;
|
|
20957
21025
|
linkedParentExtremes = linkedParent.getExtremes();
|
|
20958
|
-
axis.min =
|
|
20959
|
-
|
|
21026
|
+
axis.min =
|
|
21027
|
+
linkedParentExtremes.min ?? linkedParentExtremes.dataMin;
|
|
21028
|
+
axis.max =
|
|
21029
|
+
linkedParentExtremes.max ?? linkedParentExtremes.dataMax;
|
|
20960
21030
|
if (this.type !== linkedParent.type) {
|
|
20961
21031
|
// Can't link axes of different type
|
|
20962
21032
|
error(11, true, chart);
|
|
@@ -20978,14 +21048,14 @@ class Axis {
|
|
|
20978
21048
|
maxPadding = 0;
|
|
20979
21049
|
}
|
|
20980
21050
|
}
|
|
20981
|
-
axis.min =
|
|
20982
|
-
axis.max =
|
|
21051
|
+
axis.min = (hardMin ?? thresholdMin ?? dataMin);
|
|
21052
|
+
axis.max = (hardMax ?? thresholdMax ?? dataMax);
|
|
20983
21053
|
}
|
|
20984
21054
|
if (isNumber(axis.max) && isNumber(axis.min)) {
|
|
20985
21055
|
if (logarithmic) {
|
|
20986
21056
|
if (axis.positiveValuesOnly &&
|
|
20987
21057
|
!secondPass &&
|
|
20988
|
-
Math.min(axis.min,
|
|
21058
|
+
Math.min(axis.min, (dataMin ?? axis.min)) <= 0) { // #978
|
|
20989
21059
|
// Can't plot negative values on log axis
|
|
20990
21060
|
error(10, true, chart);
|
|
20991
21061
|
}
|
|
@@ -21091,16 +21161,13 @@ class Axis {
|
|
|
21091
21161
|
axis.tickInterval = tickIntervalOption = linkedParent.tickInterval;
|
|
21092
21162
|
}
|
|
21093
21163
|
else {
|
|
21094
|
-
axis.tickInterval =
|
|
21164
|
+
axis.tickInterval = tickIntervalOption ?? (this.tickAmount ?
|
|
21095
21165
|
range / Math.max(this.tickAmount - 1, 1) :
|
|
21096
|
-
|
|
21097
|
-
|
|
21098
|
-
|
|
21099
|
-
|
|
21100
|
-
|
|
21101
|
-
// Don't let it be more than the data range
|
|
21102
|
-
range * tickPixelIntervalOption /
|
|
21103
|
-
Math.max(axis.len, tickPixelIntervalOption));
|
|
21166
|
+
categories ?
|
|
21167
|
+
1 :
|
|
21168
|
+
// Don't let it be more than the data range
|
|
21169
|
+
range * tickPixelIntervalOption /
|
|
21170
|
+
Math.max(axis.len, tickPixelIntervalOption));
|
|
21104
21171
|
}
|
|
21105
21172
|
// Now we're finished detecting min and max, crop and group series data.
|
|
21106
21173
|
// This is in turn needed in order to find tick positions in ordinal
|
|
@@ -21130,12 +21197,9 @@ class Axis {
|
|
|
21130
21197
|
}
|
|
21131
21198
|
// Before normalizing the tick interval, handle minimum tick interval.
|
|
21132
21199
|
// This applies only if tickInterval is not defined.
|
|
21133
|
-
const minTickInterval =
|
|
21134
|
-
|
|
21135
|
-
|
|
21136
|
-
dateTime &&
|
|
21137
|
-
!axis.series.some((s) => !s.sorted) ?
|
|
21138
|
-
axis.closestPointRange : 0);
|
|
21200
|
+
const minTickInterval = options.minTickInterval ?? (dateTime && !axis.series.some((s) => !s.sorted) ?
|
|
21201
|
+
axis.closestPointRange :
|
|
21202
|
+
0);
|
|
21139
21203
|
if (!tickIntervalOption &&
|
|
21140
21204
|
minTickInterval &&
|
|
21141
21205
|
axis.tickInterval < minTickInterval) {
|
|
@@ -21465,7 +21529,7 @@ class Axis {
|
|
|
21465
21529
|
* @function Highcharts.Axis#adjustTickAmount
|
|
21466
21530
|
*/
|
|
21467
21531
|
adjustTickAmount() {
|
|
21468
|
-
const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold =
|
|
21532
|
+
const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold = axis.threshold ?? (axis.softThreshold ? 0 : null);
|
|
21469
21533
|
let len, i, tickInterval = axis.tickInterval, thresholdTickIndex;
|
|
21470
21534
|
const
|
|
21471
21535
|
// Extend the tickPositions by appending a position
|
|
@@ -21701,7 +21765,8 @@ class Axis {
|
|
|
21701
21765
|
offsets = options.offsets || [0, 0, 0, 0], horiz = this.horiz,
|
|
21702
21766
|
// Check for percentage based input values. Rounding fixes problems
|
|
21703
21767
|
// with column overflow and plot line filtering (#4898, #4899)
|
|
21704
|
-
width = this.width = Math.round(relativeLength(
|
|
21768
|
+
width = this.width = Math.round(relativeLength((options.width ?? chart.plotWidth - offsets[3] + offsets[1]), chart.plotWidth)), height = this.height = Math.round(relativeLength((options.height ??
|
|
21769
|
+
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));
|
|
21705
21770
|
// Expose basic values to use in Series object and navigator
|
|
21706
21771
|
this.bottom = chart.chartHeight - height - top;
|
|
21707
21772
|
this.right = chart.chartWidth - width - left;
|
|
@@ -21812,9 +21877,7 @@ class Axis {
|
|
|
21812
21877
|
* An array of tickLength and tickWidth
|
|
21813
21878
|
*/
|
|
21814
21879
|
tickSize(prefix) {
|
|
21815
|
-
const options = this.options, tickWidth =
|
|
21816
|
-
// Default to 1 on linear and datetime X axes
|
|
21817
|
-
prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
|
|
21880
|
+
const options = this.options, tickWidth = options[prefix === 'tick' ? 'tickWidth' : 'minorTickWidth'] ?? (prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
|
|
21818
21881
|
let tickLength = options[prefix === 'tick' ? 'tickLength' : 'minorTickLength'], tickSize;
|
|
21819
21882
|
if (tickWidth && tickLength) {
|
|
21820
21883
|
// Negate the length
|
|
@@ -21901,7 +21964,7 @@ class Axis {
|
|
|
21901
21964
|
newTickInterval = getStep(lineHeight * 0.75);
|
|
21902
21965
|
}
|
|
21903
21966
|
this.autoRotation = autoRotation;
|
|
21904
|
-
this.labelRotation =
|
|
21967
|
+
this.labelRotation = rotation ?? (isNumber(rotationOption) ? rotationOption : 0);
|
|
21905
21968
|
return labelOptions.step ? tickInterval : newTickInterval;
|
|
21906
21969
|
}
|
|
21907
21970
|
/**
|
|
@@ -22253,7 +22316,7 @@ class Axis {
|
|
|
22253
22316
|
titleOffsetOption = axisTitleOptions.offset;
|
|
22254
22317
|
titleMargin = defined(titleOffsetOption) ?
|
|
22255
22318
|
0 :
|
|
22256
|
-
|
|
22319
|
+
axisTitleOptions.margin ?? (horiz ? 5 : 10);
|
|
22257
22320
|
}
|
|
22258
22321
|
}
|
|
22259
22322
|
// Render the axis line
|
|
@@ -22764,9 +22827,9 @@ class Axis {
|
|
|
22764
22827
|
}
|
|
22765
22828
|
else if (defined(point)) {
|
|
22766
22829
|
// #3834
|
|
22767
|
-
pos =
|
|
22768
|
-
point.crosshairPos :
|
|
22769
|
-
null
|
|
22830
|
+
pos = (this.coll !== 'colorAxis' ?
|
|
22831
|
+
point.crosshairPos :
|
|
22832
|
+
null) ?? (this.isXAxis ?
|
|
22770
22833
|
point.plotX :
|
|
22771
22834
|
this.len - point.plotY);
|
|
22772
22835
|
}
|
|
@@ -22775,7 +22838,7 @@ class Axis {
|
|
|
22775
22838
|
// Value, only used on radial
|
|
22776
22839
|
value: point && (this.isXAxis ?
|
|
22777
22840
|
point.x :
|
|
22778
|
-
|
|
22841
|
+
(point.stackY ?? point.y ?? void 0)),
|
|
22779
22842
|
translatedValue: pos
|
|
22780
22843
|
};
|
|
22781
22844
|
if (chart.polar) {
|
|
@@ -22808,7 +22871,7 @@ class Axis {
|
|
|
22808
22871
|
(categorized ? 'category ' : 'thin ') +
|
|
22809
22872
|
(options.className || ''))
|
|
22810
22873
|
.attr({
|
|
22811
|
-
zIndex:
|
|
22874
|
+
zIndex: (options.zIndex ?? 2)
|
|
22812
22875
|
})
|
|
22813
22876
|
.clip(options.clip === false ?
|
|
22814
22877
|
void 0 :
|
|
@@ -22823,7 +22886,7 @@ class Axis {
|
|
|
22823
22886
|
// eslint-disable-next-line max-len
|
|
22824
22887
|
'var(--highcharts-highlight-color-20)').setOpacity(0.25).get() :
|
|
22825
22888
|
'var(--highcharts-neutral-color-20)'),
|
|
22826
|
-
'stroke-width':
|
|
22889
|
+
'stroke-width': (options.width ?? 1)
|
|
22827
22890
|
}).css({
|
|
22828
22891
|
'pointer-events': 'none'
|
|
22829
22892
|
});
|
|
@@ -22889,7 +22952,7 @@ class Axis {
|
|
|
22889
22952
|
this.destroy(true);
|
|
22890
22953
|
this.init(chart, options);
|
|
22891
22954
|
chart.isDirtyBox = true;
|
|
22892
|
-
if (
|
|
22955
|
+
if (redraw ?? true) {
|
|
22893
22956
|
chart.redraw();
|
|
22894
22957
|
}
|
|
22895
22958
|
}
|
|
@@ -22919,7 +22982,7 @@ class Axis {
|
|
|
22919
22982
|
chart.orderItems(coll);
|
|
22920
22983
|
this.destroy();
|
|
22921
22984
|
chart.isDirtyBox = true;
|
|
22922
|
-
if (
|
|
22985
|
+
if (redraw ?? true) {
|
|
22923
22986
|
chart.redraw();
|
|
22924
22987
|
}
|
|
22925
22988
|
}
|
|
@@ -23575,8 +23638,10 @@ var LogarithmicAxis;
|
|
|
23575
23638
|
tickIntervalOption, tickPixelIntervalOption = options.tickPixelInterval / (minor ? 5 : 1), totalPixelLength = minor ?
|
|
23576
23639
|
axisLength / axis.tickPositions.length :
|
|
23577
23640
|
axisLength;
|
|
23578
|
-
interval =
|
|
23579
|
-
|
|
23641
|
+
interval = filteredTickIntervalOption ??
|
|
23642
|
+
log.minorAutoInterval ??
|
|
23643
|
+
(realMax - realMin) * tickPixelIntervalOption /
|
|
23644
|
+
(totalPixelLength || 1);
|
|
23580
23645
|
interval = normalizeTickInterval(interval);
|
|
23581
23646
|
positions = axis.getLinearTickPositions(interval, realMin, realMax).map(log.log2lin);
|
|
23582
23647
|
if (!minor) {
|
|
@@ -24005,7 +24070,8 @@ class PlotLineOrBand {
|
|
|
24005
24070
|
if (!chart.styledMode) {
|
|
24006
24071
|
if (isLine) {
|
|
24007
24072
|
attribs.stroke = color || 'var(--highcharts-neutral-color-40)';
|
|
24008
|
-
attribs['stroke-width'] =
|
|
24073
|
+
attribs['stroke-width'] =
|
|
24074
|
+
options.width ?? 1;
|
|
24009
24075
|
if (options.dashStyle) {
|
|
24010
24076
|
attribs.dashstyle = options.dashStyle;
|
|
24011
24077
|
}
|
|
@@ -25137,7 +25203,8 @@ class Tooltip {
|
|
|
25137
25203
|
'highcharts-label',
|
|
25138
25204
|
isHeader && 'highcharts-tooltip-header',
|
|
25139
25205
|
isSplit ? 'highcharts-tooltip-box' : 'highcharts-tooltip',
|
|
25140
|
-
!isHeader &&
|
|
25206
|
+
!isHeader &&
|
|
25207
|
+
'highcharts-color-' + (point.colorIndex ?? series.colorIndex),
|
|
25141
25208
|
seriesOptions?.className
|
|
25142
25209
|
].filter(isString).join(' ');
|
|
25143
25210
|
}
|
|
@@ -25322,7 +25389,8 @@ class Tooltip {
|
|
|
25322
25389
|
}
|
|
25323
25390
|
// The far side is right or bottom
|
|
25324
25391
|
const preferFarSide = !this.followPointer &&
|
|
25325
|
-
|
|
25392
|
+
(point.ttBelow ??
|
|
25393
|
+
(polar ? false : !inverted === flipped)), // #4984
|
|
25326
25394
|
/*
|
|
25327
25395
|
* Handle the preferred dimension. When the preferred dimension is
|
|
25328
25396
|
* tooltip on top or bottom of the point, it will look for space
|
|
@@ -25449,7 +25517,7 @@ class Tooltip {
|
|
|
25449
25517
|
const tooltip = this;
|
|
25450
25518
|
// Disallow duplicate timers (#1728, #1766)
|
|
25451
25519
|
clearTimeouts(this);
|
|
25452
|
-
delay =
|
|
25520
|
+
delay = (delay ?? this.options.hideDelay);
|
|
25453
25521
|
if (!this.isHidden) {
|
|
25454
25522
|
this.hideTimer = syncTimeout(function () {
|
|
25455
25523
|
const label = tooltip.getLabel();
|
|
@@ -25552,7 +25620,9 @@ class Tooltip {
|
|
|
25552
25620
|
* Split tooltip does not support outside in the first iteration. Should
|
|
25553
25621
|
* not be too complicated to implement.
|
|
25554
25622
|
*/
|
|
25555
|
-
this.outside =
|
|
25623
|
+
this.outside =
|
|
25624
|
+
options.outside ??
|
|
25625
|
+
Boolean(chart.scrollablePixelsX || chart.scrollablePixelsY);
|
|
25556
25626
|
}
|
|
25557
25627
|
shouldStickOnContact(pointerEvent) {
|
|
25558
25628
|
return !!(!this.followPointer &&
|
|
@@ -25632,7 +25702,7 @@ class Tooltip {
|
|
|
25632
25702
|
point.points = void 0;
|
|
25633
25703
|
// Register the current series
|
|
25634
25704
|
const currentSeries = point.series;
|
|
25635
|
-
this.distance =
|
|
25705
|
+
this.distance = (currentSeries.tooltipOptions.distance ?? 16);
|
|
25636
25706
|
// Update the inner HTML
|
|
25637
25707
|
if (text === false) {
|
|
25638
25708
|
this.hide();
|
|
@@ -25905,7 +25975,7 @@ class Tooltip {
|
|
|
25905
25975
|
anchorY,
|
|
25906
25976
|
boxWidth,
|
|
25907
25977
|
point,
|
|
25908
|
-
rank:
|
|
25978
|
+
rank: boxPosition.rank ?? (isHeader ? 1 : 0),
|
|
25909
25979
|
size,
|
|
25910
25980
|
target: boxPosition.y,
|
|
25911
25981
|
tt,
|
|
@@ -27250,7 +27320,7 @@ class Point {
|
|
|
27250
27320
|
*/
|
|
27251
27321
|
select(selected, accumulate) {
|
|
27252
27322
|
const point = this, series = point.series, chart = series.chart;
|
|
27253
|
-
selected =
|
|
27323
|
+
selected = (selected ?? !point.selected);
|
|
27254
27324
|
this.selectedStaging = selected;
|
|
27255
27325
|
// Fire the event with the default handler
|
|
27256
27326
|
point.firePointEvent(selected ? 'select' : 'unselect', { accumulate: accumulate }, function () {
|
|
@@ -27501,7 +27571,7 @@ class Point {
|
|
|
27501
27571
|
});
|
|
27502
27572
|
halo.attr({
|
|
27503
27573
|
'class': 'highcharts-halo highcharts-color-' +
|
|
27504
|
-
|
|
27574
|
+
(point.colorIndex ?? series.colorIndex) +
|
|
27505
27575
|
(point.className ? ' ' + point.className : ''),
|
|
27506
27576
|
'visibility': markerVisibility,
|
|
27507
27577
|
'zIndex': -1 // #4929, #8276
|
|
@@ -28234,7 +28304,7 @@ class Pointer {
|
|
|
28234
28304
|
const hoverPoints = [], useExisting = !!(isDirectTouch && existingHoverPoint), filter = function (s) {
|
|
28235
28305
|
return (s.visible &&
|
|
28236
28306
|
!(!shared && s.directTouch) && // #3821
|
|
28237
|
-
|
|
28307
|
+
(s.options.enableMouseTracking ?? true));
|
|
28238
28308
|
};
|
|
28239
28309
|
let hoverSeries = existingHoverSeries,
|
|
28240
28310
|
// Which series to look in for the hover point
|
|
@@ -28420,8 +28490,8 @@ class Pointer {
|
|
|
28420
28490
|
const ePos = (touches ?
|
|
28421
28491
|
touches.length ?
|
|
28422
28492
|
touches.item(0) :
|
|
28423
|
-
(
|
|
28424
|
-
|
|
28493
|
+
(touches.changedTouches ??
|
|
28494
|
+
e.changedTouches)[0] :
|
|
28425
28495
|
e);
|
|
28426
28496
|
// Get mouse position
|
|
28427
28497
|
if (!chartPosition) {
|
|
@@ -28495,7 +28565,7 @@ class Pointer {
|
|
|
28495
28565
|
* @function Highcharts.Pointer#onContainerMouseLeave
|
|
28496
28566
|
*/
|
|
28497
28567
|
onContainerMouseLeave(e) {
|
|
28498
|
-
const { pointer } = Pointer_charts[
|
|
28568
|
+
const { pointer } = Pointer_charts[(Pointer.hoverChartIndex ?? -1)] || {};
|
|
28499
28569
|
e = this.normalize(e);
|
|
28500
28570
|
this.onContainerMouseMove(e);
|
|
28501
28571
|
// #4886, MS Touch end fires mouseleave but with no related target
|
|
@@ -28595,7 +28665,7 @@ class Pointer {
|
|
|
28595
28665
|
if (e?.touches && this.hasPinchMoved) {
|
|
28596
28666
|
e?.preventDefault?.();
|
|
28597
28667
|
}
|
|
28598
|
-
Pointer_charts[
|
|
28668
|
+
Pointer_charts[(Pointer.hoverChartIndex ?? -1)]
|
|
28599
28669
|
?.pointer
|
|
28600
28670
|
?.drop(e);
|
|
28601
28671
|
}
|
|
@@ -29102,7 +29172,7 @@ class Pointer {
|
|
|
29102
29172
|
*/
|
|
29103
29173
|
setHoverChartIndex(e) {
|
|
29104
29174
|
const chart = this.chart;
|
|
29105
|
-
const hoverChart = Core_Globals.charts[
|
|
29175
|
+
const hoverChart = Core_Globals.charts[(Pointer.hoverChartIndex ?? -1)];
|
|
29106
29176
|
if (hoverChart &&
|
|
29107
29177
|
hoverChart !== chart) {
|
|
29108
29178
|
const relatedTargetObj = { relatedTarget: chart.container };
|
|
@@ -29148,7 +29218,7 @@ class Pointer {
|
|
|
29148
29218
|
Math.pow(pinchDown[0].chartY - e.chartY, 2)) >= 16 :
|
|
29149
29219
|
false;
|
|
29150
29220
|
}
|
|
29151
|
-
if (
|
|
29221
|
+
if (hasMoved ?? true) {
|
|
29152
29222
|
this.pinch(e);
|
|
29153
29223
|
}
|
|
29154
29224
|
}
|
|
@@ -29191,7 +29261,7 @@ class Pointer {
|
|
|
29191
29261
|
let zoomType = chart.zooming.type || '', zoomX, zoomY;
|
|
29192
29262
|
// Look for the pinchType option
|
|
29193
29263
|
if (/touch/.test(e.type)) {
|
|
29194
|
-
zoomType =
|
|
29264
|
+
zoomType = (chart.zooming.pinchType ?? zoomType);
|
|
29195
29265
|
}
|
|
29196
29266
|
this.zoomX = zoomX = /x/.test(zoomType);
|
|
29197
29267
|
this.zoomY = zoomY = /y/.test(zoomType);
|
|
@@ -29965,7 +30035,7 @@ var LegendSymbol;
|
|
|
29965
30035
|
// Draw the marker
|
|
29966
30036
|
if (markerOptions && markerOptions.enabled !== false && symbolWidth) {
|
|
29967
30037
|
// Do not allow the marker to be larger than the symbolHeight
|
|
29968
|
-
let radius = Math.min(
|
|
30038
|
+
let radius = Math.min((markerOptions.radius ?? generalRadius), generalRadius);
|
|
29969
30039
|
// Restrict symbol markers size
|
|
29970
30040
|
if (symbol.indexOf('url') === 0) {
|
|
29971
30041
|
markerOptions = merge(markerOptions, {
|
|
@@ -32986,7 +33056,7 @@ class Series {
|
|
|
32986
33056
|
if (chartSeries.length) {
|
|
32987
33057
|
lastSeries = chartSeries[chartSeries.length - 1];
|
|
32988
33058
|
}
|
|
32989
|
-
series._i =
|
|
33059
|
+
series._i = (lastSeries?._i ?? -1) + 1;
|
|
32990
33060
|
series.opacity = series.options.opacity;
|
|
32991
33061
|
// Insert the series and re-order all series above the insertion
|
|
32992
33062
|
// point.
|
|
@@ -33033,7 +33103,7 @@ class Series {
|
|
|
33033
33103
|
// Apply if the series xAxis or yAxis option matches
|
|
33034
33104
|
// the number of the axis, or if undefined, use the
|
|
33035
33105
|
// first axis
|
|
33036
|
-
if (
|
|
33106
|
+
if ((seriesOptions[coll] ?? 0) === axis.index ||
|
|
33037
33107
|
(typeof seriesOptions[coll] !==
|
|
33038
33108
|
'undefined' &&
|
|
33039
33109
|
seriesOptions[coll] === axisOptions.id)) {
|
|
@@ -33076,8 +33146,12 @@ class Series {
|
|
|
33076
33146
|
* @function Highcharts.Series#hasMarkerChanged
|
|
33077
33147
|
*/
|
|
33078
33148
|
hasMarkerChanged(options, oldOptions) {
|
|
33079
|
-
const marker = options.marker, oldMarker = oldOptions.marker
|
|
33080
|
-
|
|
33149
|
+
const marker = options.marker, oldMarker = oldOptions.marker;
|
|
33150
|
+
// Note that `marker` holds the full, merged object including
|
|
33151
|
+
// `plotOptions`, while `oldMarker` is the user-defined series-level
|
|
33152
|
+
// options only. We may need to refactor that in the future if more
|
|
33153
|
+
// issues like #24057 arise.
|
|
33154
|
+
return marker && oldMarker && ((oldMarker.enabled && !marker.enabled) ||
|
|
33081
33155
|
oldMarker.symbol !== marker.symbol || // #10870, #15946
|
|
33082
33156
|
oldMarker.height !== marker.height || // #16274
|
|
33083
33157
|
oldMarker.width !== marker.width // #16274
|
|
@@ -33096,7 +33170,8 @@ class Series {
|
|
|
33096
33170
|
time.parse(options.pointStart) ??
|
|
33097
33171
|
0;
|
|
33098
33172
|
let pointInterval;
|
|
33099
|
-
this.pointInterval = pointInterval =
|
|
33173
|
+
this.pointInterval = pointInterval =
|
|
33174
|
+
this.pointInterval ?? options.pointInterval ?? 1;
|
|
33100
33175
|
if (relativeXValue && isNumber(x)) {
|
|
33101
33176
|
pointInterval *= x;
|
|
33102
33177
|
}
|
|
@@ -33168,9 +33243,13 @@ class Series {
|
|
|
33168
33243
|
);
|
|
33169
33244
|
// When shared tooltip, stickyTracking is true by default,
|
|
33170
33245
|
// unless user says otherwise.
|
|
33171
|
-
this.stickyTracking =
|
|
33172
|
-
|
|
33173
|
-
|
|
33246
|
+
this.stickyTracking =
|
|
33247
|
+
seriesUserOptions.stickyTracking ??
|
|
33248
|
+
userPlotOptionsType.stickyTracking ??
|
|
33249
|
+
userPlotOptionsSeries.stickyTracking ??
|
|
33250
|
+
(this.tooltipOptions.shared && !this.noSharedTooltip ?
|
|
33251
|
+
true :
|
|
33252
|
+
options.stickyTracking);
|
|
33174
33253
|
// Delete marker object if not allowed (#1125)
|
|
33175
33254
|
if (typeOptions.marker === null) {
|
|
33176
33255
|
delete options.marker;
|
|
@@ -33248,7 +33327,9 @@ class Series {
|
|
|
33248
33327
|
if (!value) {
|
|
33249
33328
|
// Pick up either the colorIndex option, or the series.colorIndex
|
|
33250
33329
|
// after Series.update()
|
|
33251
|
-
setting =
|
|
33330
|
+
setting = prop === 'color' ?
|
|
33331
|
+
(this.options.colorIndex ?? this[indexName]) :
|
|
33332
|
+
this[indexName];
|
|
33252
33333
|
if (defined(setting)) { // After Series.update()
|
|
33253
33334
|
i = setting;
|
|
33254
33335
|
}
|
|
@@ -34275,7 +34356,9 @@ class Series {
|
|
|
34275
34356
|
yValue = stackValues[1];
|
|
34276
34357
|
if (lowValue === stackThreshold &&
|
|
34277
34358
|
stackIndicator.key === stacks[xValue].base) {
|
|
34278
|
-
lowValue =
|
|
34359
|
+
lowValue = isNumber(threshold) ?
|
|
34360
|
+
threshold :
|
|
34361
|
+
yAxis.min;
|
|
34279
34362
|
}
|
|
34280
34363
|
// #1200, #1232
|
|
34281
34364
|
if (yAxis.positiveValuesOnly &&
|
|
@@ -34283,7 +34366,7 @@ class Series {
|
|
|
34283
34366
|
lowValue <= 0) {
|
|
34284
34367
|
lowValue = void 0;
|
|
34285
34368
|
}
|
|
34286
|
-
point.total = point.stackTotal =
|
|
34369
|
+
point.total = point.stackTotal = stackItem.total ?? void 0;
|
|
34287
34370
|
point.percentage = defined(point.y) && stackItem.total ?
|
|
34288
34371
|
(point.y / stackItem.total * 100) : void 0;
|
|
34289
34372
|
point.stackY = yValue;
|
|
@@ -34533,7 +34616,9 @@ class Series {
|
|
|
34533
34616
|
// Only draw the point if y is defined
|
|
34534
34617
|
if (shouldDrawMarker) {
|
|
34535
34618
|
// Shortcuts
|
|
34536
|
-
const symbol =
|
|
34619
|
+
const symbol = pointMarkerOptions.symbol ??
|
|
34620
|
+
series.symbol ??
|
|
34621
|
+
'rect';
|
|
34537
34622
|
markerAttribs = series.markerAttribs(point, point.selected ? 'select' : '');
|
|
34538
34623
|
const isInside = point.isInside !== false;
|
|
34539
34624
|
if (!graphic &&
|
|
@@ -34801,7 +34886,7 @@ class Series {
|
|
|
34801
34886
|
// Reset
|
|
34802
34887
|
zones.forEach((zone) => {
|
|
34803
34888
|
zone.lineClip = [];
|
|
34804
|
-
zone.translated = clamp(axis.toPixels(
|
|
34889
|
+
zone.translated = clamp(axis.toPixels((zone.value ?? axisMax), true) || 0, 0, len);
|
|
34805
34890
|
});
|
|
34806
34891
|
// The use of the Color Threshold assumes there are no gaps so it is
|
|
34807
34892
|
// safe to hide the original graph and area unless it is not
|
|
@@ -35457,7 +35542,7 @@ class Series {
|
|
|
35457
35542
|
const series = this, seriesOptions = series.options, { chart, data, dataTable: table, xAxis } = series, names = xAxis?.hasNames && xAxis.names, dataOptions = seriesOptions.data, xData = series.getColumn('x');
|
|
35458
35543
|
let isInTheMiddle, i;
|
|
35459
35544
|
// Optional redraw, defaults to true
|
|
35460
|
-
redraw =
|
|
35545
|
+
redraw = (redraw ?? true);
|
|
35461
35546
|
// Get options and push the point to xData, yData and series.options. In
|
|
35462
35547
|
// series.generatePoints the Point instance will be created on demand
|
|
35463
35548
|
// and pushed to the series.data array.
|
|
@@ -35568,7 +35653,7 @@ class Series {
|
|
|
35568
35653
|
}
|
|
35569
35654
|
};
|
|
35570
35655
|
setAnimation(animation, chart);
|
|
35571
|
-
redraw =
|
|
35656
|
+
redraw = (redraw ?? true);
|
|
35572
35657
|
// Fire the event with a default handler of removing the point
|
|
35573
35658
|
if (point) {
|
|
35574
35659
|
point.firePointEvent('remove', null, remove);
|
|
@@ -35611,7 +35696,7 @@ class Series {
|
|
|
35611
35696
|
// Redraw
|
|
35612
35697
|
chart.isDirtyLegend = chart.isDirtyBox = true;
|
|
35613
35698
|
chart.linkSeries(keepEvents);
|
|
35614
|
-
if (
|
|
35699
|
+
if (redraw ?? true) {
|
|
35615
35700
|
chart.redraw(animation);
|
|
35616
35701
|
}
|
|
35617
35702
|
}
|
|
@@ -35828,7 +35913,7 @@ class Series {
|
|
|
35828
35913
|
series.isDirtyData = true;
|
|
35829
35914
|
}
|
|
35830
35915
|
fireEvent(this, 'afterUpdate');
|
|
35831
|
-
if (
|
|
35916
|
+
if (redraw ?? true) {
|
|
35832
35917
|
chart.redraw(keepPoints ? void 0 : false);
|
|
35833
35918
|
}
|
|
35834
35919
|
}
|
|
@@ -35845,12 +35930,12 @@ class Series {
|
|
|
35845
35930
|
* @internal
|
|
35846
35931
|
*/
|
|
35847
35932
|
hasOptionChanged(optionName) {
|
|
35848
|
-
const chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName], plotOptionsOption =
|
|
35933
|
+
const chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName], plotOptionsOption = (plotOptions?.[this.type]?.[optionName] ?? plotOptions?.series?.[optionName]);
|
|
35849
35934
|
// Check if `plotOptions` are defined already, #19203
|
|
35850
35935
|
if (oldOption && !defined(plotOptionsOption)) {
|
|
35851
35936
|
return option !== oldOption;
|
|
35852
35937
|
}
|
|
35853
|
-
return option !==
|
|
35938
|
+
return option !== (plotOptionsOption ?? option);
|
|
35854
35939
|
}
|
|
35855
35940
|
/**
|
|
35856
35941
|
* Runs on mouse over the series graphical items.
|
|
@@ -35924,7 +36009,8 @@ class Series {
|
|
|
35924
36009
|
const series = this, { graph, options } = series, { inactiveOtherPoints, states: stateOptions = {} } = options,
|
|
35925
36010
|
// By default a quick animation to hover/inactive,
|
|
35926
36011
|
// slower to un-hover
|
|
35927
|
-
stateAnimation =
|
|
36012
|
+
stateAnimation = stateOptions[state || 'normal']?.animation ??
|
|
36013
|
+
series.chart.options.chart.animation;
|
|
35928
36014
|
let { lineWidth, opacity } = options;
|
|
35929
36015
|
state = state || '';
|
|
35930
36016
|
if (series.state !== state) {
|
|
@@ -36810,7 +36896,7 @@ class Legend {
|
|
|
36810
36896
|
* @param {Highcharts.LegendOptions} options
|
|
36811
36897
|
*/
|
|
36812
36898
|
setOptions(options) {
|
|
36813
|
-
const padding =
|
|
36899
|
+
const padding = (options.padding ?? 8);
|
|
36814
36900
|
/**
|
|
36815
36901
|
* Legend options.
|
|
36816
36902
|
*
|
|
@@ -36827,7 +36913,7 @@ class Legend {
|
|
|
36827
36913
|
this.itemMarginBottom = options.itemMarginBottom;
|
|
36828
36914
|
this.padding = padding;
|
|
36829
36915
|
this.initialItemY = padding - 5; // 5 is pixels above the text
|
|
36830
|
-
this.symbolWidth =
|
|
36916
|
+
this.symbolWidth = (options.symbolWidth ?? 16);
|
|
36831
36917
|
this.pages = [];
|
|
36832
36918
|
this.proximate = options.layout === 'proximate' && !this.chart.inverted;
|
|
36833
36919
|
// #12705: baseline has to be reset on every update
|
|
@@ -36861,7 +36947,7 @@ class Legend {
|
|
|
36861
36947
|
}
|
|
36862
36948
|
this.destroy();
|
|
36863
36949
|
chart.isDirtyLegend = chart.isDirtyBox = true;
|
|
36864
|
-
if (
|
|
36950
|
+
if (redraw ?? true) {
|
|
36865
36951
|
chart.redraw();
|
|
36866
36952
|
}
|
|
36867
36953
|
fireEvent(this, 'afterUpdate', { redraw });
|
|
@@ -37099,7 +37185,7 @@ class Legend {
|
|
|
37099
37185
|
* The item to render.
|
|
37100
37186
|
*/
|
|
37101
37187
|
renderItem(item) {
|
|
37102
|
-
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 ?
|
|
37188
|
+
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 ?
|
|
37103
37189
|
item.series :
|
|
37104
37190
|
item, seriesOptions = series.options, showCheckbox = (!!legend.createCheckboxForItem &&
|
|
37105
37191
|
seriesOptions &&
|
|
@@ -37145,9 +37231,11 @@ class Legend {
|
|
|
37145
37231
|
legend.fontMetrics.f + 3 + legend.itemMarginTop;
|
|
37146
37232
|
label.attr('y', legend.baseline);
|
|
37147
37233
|
legend.symbolHeight =
|
|
37148
|
-
|
|
37234
|
+
(options.symbolHeight ?? legend.fontMetrics.f);
|
|
37149
37235
|
if (options.squareSymbol) {
|
|
37150
|
-
legend.symbolWidth =
|
|
37236
|
+
legend.symbolWidth =
|
|
37237
|
+
options.symbolWidth ??
|
|
37238
|
+
Math.max(legend.symbolHeight, 16);
|
|
37151
37239
|
itemExtraWidth = legend.symbolWidth + symbolPadding +
|
|
37152
37240
|
itemDistance + (showCheckbox ? 20 : 0);
|
|
37153
37241
|
if (ltr) {
|
|
@@ -37199,7 +37287,7 @@ class Legend {
|
|
|
37199
37287
|
* @param {Highcharts.BubbleLegendItem|Highcharts.Point|Highcharts.Series} item
|
|
37200
37288
|
*/
|
|
37201
37289
|
layoutItem(item) {
|
|
37202
|
-
const options = this.options, padding = this.padding, horizontal = options.layout === 'horizontal', itemHeight = item.itemHeight, itemMarginBottom = this.itemMarginBottom, itemMarginTop = this.itemMarginTop, itemDistance = horizontal ?
|
|
37290
|
+
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 &&
|
|
37203
37291
|
this.totalItemWidth > maxLegendWidth) ?
|
|
37204
37292
|
this.maxItemWidth :
|
|
37205
37293
|
item.itemWidth, legendItem = item.legendItem || {};
|
|
@@ -37253,7 +37341,9 @@ class Legend {
|
|
|
37253
37341
|
const seriesOptions = series?.options;
|
|
37254
37342
|
// Handle showInLegend. If the series is linked to another series,
|
|
37255
37343
|
// defaults to false.
|
|
37256
|
-
if (series &&
|
|
37344
|
+
if (series &&
|
|
37345
|
+
(seriesOptions.showInLegend ??
|
|
37346
|
+
(!defined(seriesOptions.linkedTo)))) {
|
|
37257
37347
|
// Use points or series for the legend item depending on
|
|
37258
37348
|
// legendType
|
|
37259
37349
|
allItems = allItems.concat(series.legendItem?.labels ||
|
|
@@ -37535,7 +37625,7 @@ class Legend {
|
|
|
37535
37625
|
* @function Highcharts.Legend#handleOverflow
|
|
37536
37626
|
*/
|
|
37537
37627
|
handleOverflow(legendHeight) {
|
|
37538
|
-
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 =
|
|
37628
|
+
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) {
|
|
37539
37629
|
if (typeof height === 'number') {
|
|
37540
37630
|
clipRect.attr({
|
|
37541
37631
|
height: height
|
|
@@ -37581,7 +37671,7 @@ class Legend {
|
|
|
37581
37671
|
navOptions.enabled !== false) {
|
|
37582
37672
|
this.clipHeight = clipHeight =
|
|
37583
37673
|
Math.max(spaceHeight - 20 - this.titleHeight - padding, 0);
|
|
37584
|
-
this.currentPage =
|
|
37674
|
+
this.currentPage = (this.currentPage ?? 1);
|
|
37585
37675
|
this.fullHeight = legendHeight;
|
|
37586
37676
|
// Fill pages with Y positions so that the top of each a legend item
|
|
37587
37677
|
// defines the scroll top for each page (#2098)
|
|
@@ -37741,7 +37831,7 @@ class Legend {
|
|
|
37741
37831
|
this.currentPage = currentPage;
|
|
37742
37832
|
this.positionCheckboxes();
|
|
37743
37833
|
// Fire event after scroll animation is complete
|
|
37744
|
-
const animOptions = animObject(
|
|
37834
|
+
const animOptions = animObject((animation ?? chart.renderer.globalAnimation ?? true));
|
|
37745
37835
|
syncTimeout(() => {
|
|
37746
37836
|
fireEvent(this, 'afterScroll', { currentPage });
|
|
37747
37837
|
}, animOptions.duration);
|
|
@@ -38182,7 +38272,7 @@ class Chart {
|
|
|
38182
38272
|
*/
|
|
38183
38273
|
static chart(a, b, c) {
|
|
38184
38274
|
const chart = new Chart(a, b, c);
|
|
38185
|
-
return chart.promise
|
|
38275
|
+
return chart.promise ?? chart;
|
|
38186
38276
|
}
|
|
38187
38277
|
// Implementation
|
|
38188
38278
|
constructor(a,
|
|
@@ -38223,10 +38313,10 @@ class Chart {
|
|
|
38223
38313
|
const chart = this, options = chart.options.chart, zooming = options.zooming;
|
|
38224
38314
|
chart.zooming = {
|
|
38225
38315
|
...zooming,
|
|
38226
|
-
type:
|
|
38227
|
-
key:
|
|
38228
|
-
pinchType:
|
|
38229
|
-
singleTouch:
|
|
38316
|
+
type: (options.zoomType ?? zooming.type),
|
|
38317
|
+
key: (options.zoomKey ?? zooming.key),
|
|
38318
|
+
pinchType: (options.pinchType ?? zooming.pinchType),
|
|
38319
|
+
singleTouch: options.zoomBySingleTouch ?? zooming.singleTouch ?? false,
|
|
38230
38320
|
resetButton: merge(zooming.resetButton, options.resetZoomButton)
|
|
38231
38321
|
};
|
|
38232
38322
|
}
|
|
@@ -38778,7 +38868,7 @@ class Chart {
|
|
|
38778
38868
|
// inspect the generated series.points.
|
|
38779
38869
|
series.getPointsCollection()
|
|
38780
38870
|
.forEach((point) => {
|
|
38781
|
-
if (
|
|
38871
|
+
if (point.selectedStaging ?? point.selected) {
|
|
38782
38872
|
acc.push(point);
|
|
38783
38873
|
}
|
|
38784
38874
|
});
|
|
@@ -39216,7 +39306,7 @@ class Chart {
|
|
|
39216
39306
|
chartWidth = chart.chartWidth;
|
|
39217
39307
|
if (!chart.styledMode) {
|
|
39218
39308
|
css(container, {
|
|
39219
|
-
width:
|
|
39309
|
+
width: (optionsChart.style?.width ?? chartWidth + 'px')
|
|
39220
39310
|
});
|
|
39221
39311
|
}
|
|
39222
39312
|
}
|
|
@@ -39859,7 +39949,7 @@ class Chart {
|
|
|
39859
39949
|
const mockTick = new Axis_Tick(axis, 0, '', true), label = mockTick.createLabel('x', labels);
|
|
39860
39950
|
mockTick.destroy();
|
|
39861
39951
|
if (label &&
|
|
39862
|
-
|
|
39952
|
+
(labels.reserveSpace ?? !isNumber(options.crossing))) {
|
|
39863
39953
|
expectedSpace = label.getBBox().height +
|
|
39864
39954
|
labels.distance +
|
|
39865
39955
|
Math.max(isNumber(offset) ? offset : 0, 0);
|
|
@@ -40194,7 +40284,7 @@ class Chart {
|
|
|
40194
40284
|
const chart = this;
|
|
40195
40285
|
let series;
|
|
40196
40286
|
if (options) { // <- not necessary
|
|
40197
|
-
redraw =
|
|
40287
|
+
redraw = (redraw ?? true); // Defaults to true
|
|
40198
40288
|
fireEvent(chart, 'addSeries', { options: options }, function () {
|
|
40199
40289
|
series = chart.initSeries(options);
|
|
40200
40290
|
chart.isDirtyLegend = true;
|
|
@@ -40285,7 +40375,7 @@ class Chart {
|
|
|
40285
40375
|
*/
|
|
40286
40376
|
createAxis(coll, options) {
|
|
40287
40377
|
const axis = new Axis_Axis(this, options.axis, coll);
|
|
40288
|
-
if (
|
|
40378
|
+
if (options.redraw ?? true) {
|
|
40289
40379
|
this.redraw(options.animation);
|
|
40290
40380
|
}
|
|
40291
40381
|
return axis;
|
|
@@ -40333,7 +40423,7 @@ class Chart {
|
|
|
40333
40423
|
}
|
|
40334
40424
|
loadingDiv.className = 'highcharts-loading';
|
|
40335
40425
|
// Update text
|
|
40336
|
-
HTML_AST.setElementHTML(loadingSpan,
|
|
40426
|
+
HTML_AST.setElementHTML(loadingSpan, (str ?? options.lang.loading ?? ''));
|
|
40337
40427
|
if (!chart.styledMode) {
|
|
40338
40428
|
// Update visuals
|
|
40339
40429
|
css(loadingDiv, extend(loadingStyle, { zIndex: 10 }));
|
|
@@ -40571,7 +40661,7 @@ class Chart {
|
|
|
40571
40661
|
}
|
|
40572
40662
|
// No match by id found, match by index instead
|
|
40573
40663
|
if (!item && chart[coll]) {
|
|
40574
|
-
item = chart[coll][
|
|
40664
|
+
item = chart[coll][(newOptions.index ?? i)];
|
|
40575
40665
|
// Check if we grabbed an item with an existing but
|
|
40576
40666
|
// different id (#13541). Check that the item in this
|
|
40577
40667
|
// position is not internal (navigator).
|
|
@@ -40784,7 +40874,7 @@ class Chart {
|
|
|
40784
40874
|
fireEvent(this, 'transform', params);
|
|
40785
40875
|
let hasZoomed = params.hasZoomed || false, displayButton, isAnyAxisPanning;
|
|
40786
40876
|
for (const axis of axes) {
|
|
40787
|
-
const { horiz, len, minPointOffset = 0, options, reversed } = axis, wh = horiz ? 'width' : 'height', xy = horiz ? 'x' : 'y', toLength =
|
|
40877
|
+
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),
|
|
40788
40878
|
// If fingers pinched very close on this axis, treat as pan
|
|
40789
40879
|
scale = Math.abs(toLength) < 10 ?
|
|
40790
40880
|
1 :
|
|
@@ -41648,7 +41738,7 @@ class StackItem {
|
|
|
41648
41738
|
r: options.borderRadius || 0,
|
|
41649
41739
|
text: str,
|
|
41650
41740
|
// Set default padding to 5 as it is in dataLabels #12308
|
|
41651
|
-
padding:
|
|
41741
|
+
padding: (options.padding ?? 5),
|
|
41652
41742
|
visibility: 'hidden' // Hidden until setOffset is called
|
|
41653
41743
|
};
|
|
41654
41744
|
if (!chart.styledMode) {
|
|
@@ -41682,7 +41772,7 @@ class StackItem {
|
|
|
41682
41772
|
}), { verticalAlign } = alignOptions;
|
|
41683
41773
|
if (label && stackBox) {
|
|
41684
41774
|
const labelBox = label.getBBox(void 0, 0), padding = label.padding;
|
|
41685
|
-
let isJustify =
|
|
41775
|
+
let isJustify = (options.overflow ?? 'justify') === 'justify', visible;
|
|
41686
41776
|
// Reset alignOptions property after justify #12337
|
|
41687
41777
|
alignOptions.x = options.x || 0;
|
|
41688
41778
|
alignOptions.y = options.y || 0;
|
|
@@ -41719,7 +41809,7 @@ class StackItem {
|
|
|
41719
41809
|
rotationOriginY: labelBox.height / 2
|
|
41720
41810
|
});
|
|
41721
41811
|
// Check if the dataLabel should be visible.
|
|
41722
|
-
if (
|
|
41812
|
+
if (((!isJustify && options.crop) ?? true)) {
|
|
41723
41813
|
visible =
|
|
41724
41814
|
isNumber(label.x) &&
|
|
41725
41815
|
isNumber(label.y) &&
|
|
@@ -41753,7 +41843,7 @@ class StackItem {
|
|
|
41753
41843
|
getStackBox(stackBoxProps) {
|
|
41754
41844
|
const stackItem = this, axis = this.axis, chart = axis.chart, { boxTop, defaultX, xOffset, width, boxBottom } = stackBoxProps, totalStackValue = axis.stacking.usePercentage ?
|
|
41755
41845
|
100 :
|
|
41756
|
-
|
|
41846
|
+
(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 ||
|
|
41757
41847
|
(isNumber(axis.min) &&
|
|
41758
41848
|
axis.logarithmic &&
|
|
41759
41849
|
axis.logarithmic.lin2log(axis.min)) ||
|
|
@@ -41866,7 +41956,7 @@ function chartGetStacks() {
|
|
|
41866
41956
|
if (series.options.stacking && series.reserveSpace()) {
|
|
41867
41957
|
series.stackKey = [
|
|
41868
41958
|
series.type,
|
|
41869
|
-
|
|
41959
|
+
(series.options.stack ?? ''),
|
|
41870
41960
|
inverted ? xAxisOptions.top : xAxisOptions.left,
|
|
41871
41961
|
inverted ? xAxisOptions.height : xAxisOptions.width
|
|
41872
41962
|
].join(',');
|
|
@@ -42029,7 +42119,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
|
|
|
42029
42119
|
stack = stacks[key][x];
|
|
42030
42120
|
if (y !== null) {
|
|
42031
42121
|
stack.points[pointKey] = stack.points[series.index] = [
|
|
42032
|
-
|
|
42122
|
+
(stack.cumulative ?? stackThreshold)
|
|
42033
42123
|
];
|
|
42034
42124
|
// Record the base of the stack
|
|
42035
42125
|
if (!defined(stack.cumulative)) {
|
|
@@ -42077,7 +42167,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
|
|
|
42077
42167
|
stack.cumulative = (total || 1) - 1;
|
|
42078
42168
|
}
|
|
42079
42169
|
else {
|
|
42080
|
-
stack.cumulative = correctFloat(
|
|
42170
|
+
stack.cumulative = correctFloat((stack.cumulative ?? stackThreshold) + yNumber);
|
|
42081
42171
|
}
|
|
42082
42172
|
stack.total = total;
|
|
42083
42173
|
if (y !== null) {
|
|
@@ -43092,8 +43182,7 @@ class AreaSeries extends AreaSeries_LineSeries {
|
|
|
43092
43182
|
*/
|
|
43093
43183
|
getGraphPath(points) {
|
|
43094
43184
|
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
|
|
43095
|
-
yAxis.getThreshold(options.threshold)), connectNulls =
|
|
43096
|
-
options.connectNulls, stacking === 'percent'),
|
|
43185
|
+
yAxis.getThreshold(options.threshold)), connectNulls = (options.connectNulls ?? stacking === 'percent'),
|
|
43097
43186
|
// To display null points in underlying stacked series, this
|
|
43098
43187
|
// series graph must be broken, and the area also fall down to
|
|
43099
43188
|
// fill the gap left by the null point. #2069
|
|
@@ -43146,9 +43235,9 @@ class AreaSeries extends AreaSeries_LineSeries {
|
|
|
43146
43235
|
// Treat points with undefined plotY as null (e.g. non-positive
|
|
43147
43236
|
// values on logarithmic axis, #18422)
|
|
43148
43237
|
isNull = points[i].isNull || !defined(points[i].plotY);
|
|
43149
|
-
plotX =
|
|
43238
|
+
plotX = (points[i].rectPlotX ?? points[i].plotX);
|
|
43150
43239
|
yBottom = stacking ?
|
|
43151
|
-
|
|
43240
|
+
(points[i].yBottom ?? translatedThreshold) :
|
|
43152
43241
|
translatedThreshold;
|
|
43153
43242
|
if (!isNull || connectNulls) {
|
|
43154
43243
|
if (!connectNulls) {
|
|
@@ -43486,10 +43575,10 @@ class SplineSeries extends SplineSeries_LineSeries {
|
|
|
43486
43575
|
}
|
|
43487
43576
|
const ret = [
|
|
43488
43577
|
'C',
|
|
43489
|
-
|
|
43490
|
-
|
|
43491
|
-
|
|
43492
|
-
|
|
43578
|
+
(lastPoint.rightContX ?? lastPoint.plotX ?? 0),
|
|
43579
|
+
(lastPoint.rightContY ?? lastPoint.plotY ?? 0),
|
|
43580
|
+
(leftContX ?? plotX ?? 0),
|
|
43581
|
+
(leftContY ?? plotY ?? 0),
|
|
43493
43582
|
plotX,
|
|
43494
43583
|
plotY
|
|
43495
43584
|
];
|
|
@@ -44458,7 +44547,7 @@ class ColumnSeries extends Series_Series {
|
|
|
44458
44547
|
xAxis.tickInterval ||
|
|
44459
44548
|
1), // #2610
|
|
44460
44549
|
xAxis.len // #1535
|
|
44461
|
-
), groupPadding = categoryWidth * options.groupPadding, groupWidth = categoryWidth - 2 * groupPadding, pointOffsetWidth = groupWidth / (columnCount || 1), pointWidth = Math.min(options.maxPointWidth || xAxis.len,
|
|
44550
|
+
), 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,
|
|
44462
44551
|
// #1251, #3737
|
|
44463
44552
|
colIndex = (series.columnIndex || 0) + (reverseStacks ? 1 : 0), pointXOffset = pointPadding +
|
|
44464
44553
|
(groupPadding +
|
|
@@ -45022,7 +45111,7 @@ var DataLabel;
|
|
|
45022
45111
|
// that parts of the align box is inside the plot area
|
|
45023
45112
|
// (#12370). When stacking, it is always inside regardless
|
|
45024
45113
|
// of the option (#15148).
|
|
45025
|
-
|
|
45114
|
+
(options.inside ?? !!this.options.stacking) &&
|
|
45026
45115
|
alignTo &&
|
|
45027
45116
|
chart.isInsidePlot(plotX, inverted ?
|
|
45028
45117
|
alignTo.x + 1 :
|
|
@@ -45125,8 +45214,8 @@ var DataLabel;
|
|
|
45125
45214
|
// zIndex: 20
|
|
45126
45215
|
// }).add();
|
|
45127
45216
|
// chart.renderer.circle(
|
|
45128
|
-
// chart.plotLeft +
|
|
45129
|
-
// chart.plotTop +
|
|
45217
|
+
// chart.plotLeft + (dataLabel.alignAttr.x ?? 0),
|
|
45218
|
+
// chart.plotTop + (dataLabel.alignAttr.y ?? 0),
|
|
45130
45219
|
// 2
|
|
45131
45220
|
// ).attr({
|
|
45132
45221
|
// fill: 'red',
|
|
@@ -45309,7 +45398,7 @@ var DataLabel;
|
|
|
45309
45398
|
if (labelEnabled) {
|
|
45310
45399
|
// Create individual options structure that can be
|
|
45311
45400
|
// extended without affecting others
|
|
45312
|
-
formatString =
|
|
45401
|
+
formatString = (labelOptions[point.formatPrefix + 'Format'] ?? labelOptions.format);
|
|
45313
45402
|
labelText = defined(formatString) ?
|
|
45314
45403
|
DataLabel_format(formatString, point, chart) :
|
|
45315
45404
|
(labelOptions[point.formatPrefix + 'Formatter'] ||
|
|
@@ -45317,7 +45406,9 @@ var DataLabel;
|
|
|
45317
45406
|
rotation = labelOptions.rotation;
|
|
45318
45407
|
if (!chart.styledMode) {
|
|
45319
45408
|
// Determine the color
|
|
45320
|
-
style.color =
|
|
45409
|
+
style.color = (isString(labelOptions.color) ?
|
|
45410
|
+
labelOptions.color :
|
|
45411
|
+
void 0) ?? style.color ?? (isString(series.color) ? series.color : void 0) ?? 'var(--highcharts-neutral-color-100)';
|
|
45321
45412
|
// Get automated contrast color
|
|
45322
45413
|
if (style.color === 'contrast') {
|
|
45323
45414
|
if (backgroundColor !== 'none') {
|
|
@@ -46118,14 +46209,15 @@ class ScatterSeries extends ScatterSeries_LineSeries {
|
|
|
46118
46209
|
return rand - Math.floor(rand);
|
|
46119
46210
|
}
|
|
46120
46211
|
if (jitter) {
|
|
46121
|
-
this.points.forEach(
|
|
46122
|
-
['x', 'y'].forEach(
|
|
46212
|
+
this.points.forEach((point, i) => {
|
|
46213
|
+
['x', 'y'].forEach((dim, j) => {
|
|
46123
46214
|
if (jitter[dim] && !point.isNull) {
|
|
46124
|
-
const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`]
|
|
46125
|
-
axis.transA;
|
|
46215
|
+
const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`];
|
|
46126
46216
|
if (axis && !axis.logarithmic) {
|
|
46127
46217
|
// Identify the outer bounds of the jitter range
|
|
46128
|
-
|
|
46218
|
+
// (#25054)
|
|
46219
|
+
const translatedJitter = jitter[dim] * axis.transA *
|
|
46220
|
+
(axis.reversed ? -1 : 1), min = (point[plotProp] || 0) - translatedJitter, max = (point[plotProp] || 0) + translatedJitter;
|
|
46129
46221
|
// Find a random position within this range
|
|
46130
46222
|
point[plotProp] = min +
|
|
46131
46223
|
(max - min) * unrandom(i + j * len);
|
|
@@ -46230,11 +46322,13 @@ var CenteredUtilities;
|
|
|
46230
46322
|
innerSize = parseFloat(innerSize);
|
|
46231
46323
|
}
|
|
46232
46324
|
const positions = [
|
|
46233
|
-
|
|
46234
|
-
|
|
46325
|
+
(centerOption?.[0] ?? '50%'),
|
|
46326
|
+
(centerOption?.[1] ?? '50%'),
|
|
46235
46327
|
// Prevent from negative values
|
|
46236
|
-
|
|
46237
|
-
|
|
46328
|
+
((size && size < 0 ? void 0 : options.size) ?? '100%'),
|
|
46329
|
+
((innerSize && innerSize < 0 ?
|
|
46330
|
+
void 0 :
|
|
46331
|
+
options.innerSize || 0) ?? '0%')
|
|
46238
46332
|
];
|
|
46239
46333
|
for (i = 0; i < 4; ++i) {
|
|
46240
46334
|
value = positions[i];
|
|
@@ -46436,7 +46530,7 @@ class PiePoint extends Series_Point {
|
|
|
46436
46530
|
const series = this.series, chart = series.chart;
|
|
46437
46531
|
setAnimation(animation, chart);
|
|
46438
46532
|
// Redraw is true by default
|
|
46439
|
-
redraw =
|
|
46533
|
+
redraw = (redraw ?? true);
|
|
46440
46534
|
this.sliced = this.options.sliced = sliced ?? !this.sliced;
|
|
46441
46535
|
// Update options.data
|
|
46442
46536
|
if (series.options.data) {
|
|
@@ -47241,7 +47335,8 @@ class PieSeries extends Series_Series {
|
|
|
47241
47335
|
// Start values
|
|
47242
47336
|
graphic.attr({
|
|
47243
47337
|
// Animate from inner radius (#779)
|
|
47244
|
-
r:
|
|
47338
|
+
r: point.startR ??
|
|
47339
|
+
(series.center && series.center[3] / 2),
|
|
47245
47340
|
start: startAngleRad,
|
|
47246
47341
|
end: startAngleRad
|
|
47247
47342
|
});
|
|
@@ -47882,7 +47977,7 @@ var PieDataLabel_ColumnDataLabel;
|
|
|
47882
47977
|
labelPosition.computed.x = x;
|
|
47883
47978
|
labelPosition.computed.y = y - topOffset;
|
|
47884
47979
|
// Detect overflowing data labels
|
|
47885
|
-
if (
|
|
47980
|
+
if (dataLabelOptions.crop ?? true) {
|
|
47886
47981
|
dataLabelWidth = dataLabel.getBBox().width;
|
|
47887
47982
|
let sideOverflow;
|
|
47888
47983
|
// Overflow left
|
|
@@ -48398,7 +48493,10 @@ function OverlappingDataLabels_onChartRender() {
|
|
|
48398
48493
|
if (point.visible) {
|
|
48399
48494
|
(point.dataLabels || []).forEach((label) => {
|
|
48400
48495
|
const options = label.options || {};
|
|
48401
|
-
label.labelrank =
|
|
48496
|
+
label.labelrank =
|
|
48497
|
+
options.labelrank ??
|
|
48498
|
+
point.labelrank ??
|
|
48499
|
+
point.shapeArgs?.height; // #4118
|
|
48402
48500
|
// #21725: Sync target positions for generic overlap
|
|
48403
48501
|
// checking. During animations (e.g., toggling a
|
|
48404
48502
|
// point), DOM positions may overlap. We force
|
|
@@ -48887,10 +48985,12 @@ var Responsive;
|
|
|
48887
48985
|
*/
|
|
48888
48986
|
function matchResponsiveRule(rule, matches) {
|
|
48889
48987
|
const condition = rule.condition, fn = condition.callback || function () {
|
|
48890
|
-
return (this.chartWidth <=
|
|
48891
|
-
|
|
48892
|
-
this.
|
|
48893
|
-
|
|
48988
|
+
return (this.chartWidth <=
|
|
48989
|
+
(condition.maxWidth ?? Number.MAX_VALUE) &&
|
|
48990
|
+
this.chartHeight <=
|
|
48991
|
+
(condition.maxHeight ?? Number.MAX_VALUE) &&
|
|
48992
|
+
this.chartWidth >= (condition.minWidth ?? 0) &&
|
|
48993
|
+
this.chartHeight >= (condition.minHeight ?? 0));
|
|
48894
48994
|
};
|
|
48895
48995
|
if (fn.call(this, this)) {
|
|
48896
48996
|
matches.push(rule._id);
|
|
@@ -49104,7 +49204,7 @@ var Responsive;
|
|
|
49104
49204
|
;// ./code/es-modules/masters/highcharts.src.js
|
|
49105
49205
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
49106
49206
|
/**
|
|
49107
|
-
* @license Highcharts JS v13.0.
|
|
49207
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
49108
49208
|
* @module highcharts/highcharts
|
|
49109
49209
|
*
|
|
49110
49210
|
* (c) 2009-2026 Highsoft AS
|
|
@@ -49181,7 +49281,12 @@ G.SVGElement = SVG_SVGElement;
|
|
|
49181
49281
|
G.SVGRenderer = SVG_SVGRenderer;
|
|
49182
49282
|
G.Templating = Core_Templating;
|
|
49183
49283
|
G.Tick = Axis_Tick;
|
|
49184
|
-
G.Time = Core_Time
|
|
49284
|
+
G.Time = class extends Core_Time {
|
|
49285
|
+
constructor(options, lang) {
|
|
49286
|
+
const defaultOptions = Defaults.getOptions();
|
|
49287
|
+
super(options ?? defaultOptions.time, lang ?? defaultOptions.lang);
|
|
49288
|
+
}
|
|
49289
|
+
};
|
|
49185
49290
|
G.Tooltip = Core_Tooltip;
|
|
49186
49291
|
// Utilities
|
|
49187
49292
|
G.addEvent = addEvent;
|
|
@@ -49353,7 +49458,7 @@ function onChartAfterSetChartSize() {
|
|
|
49353
49458
|
navigator.top = this.plotTop + scrollButtonSize;
|
|
49354
49459
|
}
|
|
49355
49460
|
else {
|
|
49356
|
-
navigator.left =
|
|
49461
|
+
navigator.left = (xAxis.left ?? this.plotLeft + scrollButtonSize);
|
|
49357
49462
|
navigator.top = navigator.navigatorOptions.top ||
|
|
49358
49463
|
this.chartHeight -
|
|
49359
49464
|
navigator.height -
|
|
@@ -49369,7 +49474,7 @@ function onChartAfterSetChartSize() {
|
|
|
49369
49474
|
legendOptions.enabled &&
|
|
49370
49475
|
!legendOptions.floating) ?
|
|
49371
49476
|
legend.legendHeight +
|
|
49372
|
-
|
|
49477
|
+
(legendOptions.margin ?? 10) :
|
|
49373
49478
|
0) -
|
|
49374
49479
|
(this.titleOffset ? this.titleOffset[2] : 0);
|
|
49375
49480
|
}
|
|
@@ -49394,7 +49499,7 @@ function onChartAfterUpdate(event) {
|
|
|
49394
49499
|
(this.options.navigator.enabled ||
|
|
49395
49500
|
this.options.scrollbar.enabled)) {
|
|
49396
49501
|
this.scroller = this.navigator = new NavigatorConstructor(this);
|
|
49397
|
-
if (
|
|
49502
|
+
if (event.redraw ?? true) {
|
|
49398
49503
|
this.redraw(event.animation); // #7067
|
|
49399
49504
|
}
|
|
49400
49505
|
}
|
|
@@ -49572,7 +49677,7 @@ class NavigatorAxisAdditions {
|
|
|
49572
49677
|
*/
|
|
49573
49678
|
toFixedRange(pxMin, pxMax, fixedMin, fixedMax) {
|
|
49574
49679
|
const axis = this.axis, halfPointRange = (axis.pointRange || 0) / 2;
|
|
49575
|
-
let newMin =
|
|
49680
|
+
let newMin = fixedMin ?? axis.translate(pxMin, true, !axis.horiz), newMax = fixedMax ?? axis.translate(pxMax, true, !axis.horiz);
|
|
49576
49681
|
// Add/remove half point range to/from the extremes (#1172)
|
|
49577
49682
|
if (!defined(fixedMin)) {
|
|
49578
49683
|
newMin = correctFloat(newMin + halfPointRange);
|
|
@@ -50347,8 +50452,8 @@ var ScrollbarAxis;
|
|
|
50347
50452
|
ScrollbarAxis.compose = compose;
|
|
50348
50453
|
/** @internal */
|
|
50349
50454
|
function getExtremes(axis) {
|
|
50350
|
-
const axisMin =
|
|
50351
|
-
const axisMax =
|
|
50455
|
+
const axisMin = (axis.options?.min ?? axis.min);
|
|
50456
|
+
const axisMax = (axis.options?.max ?? axis.max);
|
|
50352
50457
|
return {
|
|
50353
50458
|
axisMin,
|
|
50354
50459
|
axisMax,
|
|
@@ -50887,7 +50992,7 @@ class Scrollbar {
|
|
|
50887
50992
|
buttonToMaxClick(e) {
|
|
50888
50993
|
const scroller = this;
|
|
50889
50994
|
const range = ((scroller.to - scroller.from) *
|
|
50890
|
-
|
|
50995
|
+
(scroller.options.step ?? 0.2));
|
|
50891
50996
|
scroller.updatePosition(scroller.from + range, scroller.to + range);
|
|
50892
50997
|
fireEvent(scroller, 'changed', {
|
|
50893
50998
|
from: scroller.from,
|
|
@@ -50899,7 +51004,7 @@ class Scrollbar {
|
|
|
50899
51004
|
buttonToMinClick(e) {
|
|
50900
51005
|
const scroller = this;
|
|
50901
51006
|
const range = correctFloat(scroller.to - scroller.from) *
|
|
50902
|
-
|
|
51007
|
+
(scroller.options.step ?? 0.2);
|
|
50903
51008
|
scroller.updatePosition(correctFloat(scroller.from - range), correctFloat(scroller.to - range));
|
|
50904
51009
|
fireEvent(scroller, 'changed', {
|
|
50905
51010
|
from: scroller.from,
|
|
@@ -51031,10 +51136,11 @@ class Scrollbar {
|
|
|
51031
51136
|
scroller.renderer = renderer;
|
|
51032
51137
|
scroller.userOptions = options;
|
|
51033
51138
|
scroller.options = merge(Scrollbar_ScrollbarDefaults, Scrollbar_defaultOptions.scrollbar, options);
|
|
51034
|
-
scroller.options.margin =
|
|
51139
|
+
scroller.options.margin = (scroller.options.margin ?? 10);
|
|
51035
51140
|
scroller.chart = chart;
|
|
51036
51141
|
// Backward compatibility
|
|
51037
|
-
scroller.size =
|
|
51142
|
+
scroller.size = scroller.options.size ??
|
|
51143
|
+
scroller.options.height;
|
|
51038
51144
|
// Init
|
|
51039
51145
|
if (options.enabled) {
|
|
51040
51146
|
scroller.render();
|
|
@@ -51324,9 +51430,9 @@ class Scrollbar {
|
|
|
51324
51430
|
* @function Highcharts.Scrollbar#shouldUpdateExtremes
|
|
51325
51431
|
*/
|
|
51326
51432
|
shouldUpdateExtremes(eventType) {
|
|
51327
|
-
return (
|
|
51433
|
+
return ((this.options.liveRedraw ?? (Core_Globals.svg &&
|
|
51328
51434
|
!Core_Globals.isTouchDevice &&
|
|
51329
|
-
!this.chart.boosted) ||
|
|
51435
|
+
!this.chart.boosted)) ||
|
|
51330
51436
|
// Mouseup always should change extremes
|
|
51331
51437
|
eventType === 'mouseup' ||
|
|
51332
51438
|
eventType === 'touchend' ||
|
|
@@ -51846,18 +51952,18 @@ class Navigator {
|
|
|
51846
51952
|
// it. For example hidden series, but visible navigator (#6022).
|
|
51847
51953
|
if (rendered) {
|
|
51848
51954
|
pxMin = 0;
|
|
51849
|
-
pxMax =
|
|
51955
|
+
pxMax = (xAxis.width ?? scrollbarXAxis.width);
|
|
51850
51956
|
}
|
|
51851
51957
|
else {
|
|
51852
51958
|
return;
|
|
51853
51959
|
}
|
|
51854
51960
|
}
|
|
51855
|
-
navigator.left =
|
|
51856
|
-
// In case of scrollbar only, without navigator
|
|
51857
|
-
chart.plotLeft + scrollButtonSize +
|
|
51961
|
+
navigator.left = (xAxis.left ?? chart.plotLeft + scrollButtonSize +
|
|
51858
51962
|
(inverted ? chart.plotWidth : 0));
|
|
51859
|
-
let zoomedMax = navigator.size = navigatorSize =
|
|
51860
|
-
|
|
51963
|
+
let zoomedMax = navigator.size = navigatorSize =
|
|
51964
|
+
xAxis.len ??
|
|
51965
|
+
(inverted ? chart.plotHeight : chart.plotWidth) -
|
|
51966
|
+
2 * scrollButtonSize;
|
|
51861
51967
|
if (inverted) {
|
|
51862
51968
|
navigatorWidth = scrollbarHeight;
|
|
51863
51969
|
}
|
|
@@ -51865,8 +51971,8 @@ class Navigator {
|
|
|
51865
51971
|
navigatorWidth = navigatorSize + 2 * scrollButtonSize;
|
|
51866
51972
|
}
|
|
51867
51973
|
// Get the pixel position of the handles
|
|
51868
|
-
pxMin =
|
|
51869
|
-
pxMax =
|
|
51974
|
+
pxMin = (pxMin ?? xAxis.toPixels(min, true));
|
|
51975
|
+
pxMax = (pxMax ?? xAxis.toPixels(max, true));
|
|
51870
51976
|
// Verify (#1851, #2238)
|
|
51871
51977
|
if (!isNumber(pxMin) || Math.abs(pxMin) === Infinity) {
|
|
51872
51978
|
pxMin = 0;
|
|
@@ -52145,11 +52251,10 @@ class Navigator {
|
|
|
52145
52251
|
navigator.render(0, 0, chartX - dragOffset, chartX - dragOffset + range);
|
|
52146
52252
|
}
|
|
52147
52253
|
if (navigator.hasDragged &&
|
|
52148
|
-
|
|
52254
|
+
(navigator.scrollbarOptions?.liveRedraw ?? (
|
|
52149
52255
|
// By default, don't run live redraw on touch
|
|
52150
52256
|
// devices or if the chart is in boost.
|
|
52151
|
-
!Navigator_isTouchDevice &&
|
|
52152
|
-
!this.chart.boosted)) {
|
|
52257
|
+
!Navigator_isTouchDevice && !this.chart.boosted))) {
|
|
52153
52258
|
e.DOMType = e.type;
|
|
52154
52259
|
setTimeout(function () {
|
|
52155
52260
|
navigator.onMouseUp(e);
|
|
@@ -52338,8 +52443,10 @@ class Navigator {
|
|
|
52338
52443
|
offset: 0,
|
|
52339
52444
|
index: yAxisIndex,
|
|
52340
52445
|
isInternal: true,
|
|
52341
|
-
reversed:
|
|
52342
|
-
navigatorOptions.yAxis.reversed)
|
|
52446
|
+
reversed: ((navigatorOptions.yAxis &&
|
|
52447
|
+
navigatorOptions.yAxis.reversed) ??
|
|
52448
|
+
(chart.yAxis[0] && chart.yAxis[0].reversed) ??
|
|
52449
|
+
false), // #14060
|
|
52343
52450
|
zoomEnabled: false
|
|
52344
52451
|
}, chart.inverted ? {
|
|
52345
52452
|
width: height
|
|
@@ -52425,7 +52532,9 @@ class Navigator {
|
|
|
52425
52532
|
*/
|
|
52426
52533
|
setOpposite() {
|
|
52427
52534
|
const navigatorOptions = this.navigatorOptions, navigatorEnabled = this.navigatorEnabled, chart = this.chart;
|
|
52428
|
-
this.opposite =
|
|
52535
|
+
this.opposite =
|
|
52536
|
+
navigatorOptions.opposite ??
|
|
52537
|
+
Boolean(!navigatorEnabled && chart.inverted); // #6262
|
|
52429
52538
|
}
|
|
52430
52539
|
/**
|
|
52431
52540
|
* Get the union data extremes of the chart - the outer data extremes of the
|
|
@@ -52439,9 +52548,8 @@ class Navigator {
|
|
|
52439
52548
|
let ret;
|
|
52440
52549
|
if (!returnFalseOnNoBaseSeries || baseAxis.dataMin !== null) {
|
|
52441
52550
|
ret = {
|
|
52442
|
-
dataMin:
|
|
52443
|
-
time.parse(navAxisOptions?.
|
|
52444
|
-
dataMax: pick(time.parse(navAxisOptions?.max), numExt('max', time.parse(baseAxisOptions.max), baseAxis.dataMax, navAxis.dataMax, navAxis.max))
|
|
52551
|
+
dataMin: (time.parse(navAxisOptions?.min) ?? numExt('min', time.parse(baseAxisOptions.min), baseAxis.dataMin, navAxis.dataMin, navAxis.min)),
|
|
52552
|
+
dataMax: (time.parse(navAxisOptions?.max) ?? numExt('max', time.parse(baseAxisOptions.max), baseAxis.dataMax, navAxis.dataMax, navAxis.max))
|
|
52445
52553
|
};
|
|
52446
52554
|
}
|
|
52447
52555
|
return ret;
|
|
@@ -52556,11 +52664,9 @@ class Navigator {
|
|
|
52556
52664
|
userNavOptions.dataLabels = splat(userNavOptions.dataLabels);
|
|
52557
52665
|
mergedNavSeriesOptions = merge(baseOptions, navSeriesMixin, userNavOptions, baseNavigatorOptions);
|
|
52558
52666
|
// Once nav series type is resolved, pick correct pointRange
|
|
52559
|
-
mergedNavSeriesOptions.pointRange =
|
|
52560
|
-
|
|
52561
|
-
|
|
52562
|
-
// Fallback to default values, e.g. `null` for column
|
|
52563
|
-
Navigator_defaultOptions.plotOptions[mergedNavSeriesOptions.type || 'line']?.pointRange);
|
|
52667
|
+
mergedNavSeriesOptions.pointRange = (userNavOptions.pointRange ??
|
|
52668
|
+
baseNavigatorOptions.pointRange ??
|
|
52669
|
+
Navigator_defaultOptions.plotOptions[mergedNavSeriesOptions.type || 'line']?.pointRange);
|
|
52564
52670
|
// Merge data separately. Do a slice to avoid mutating the
|
|
52565
52671
|
// navigator options from base series (#4923).
|
|
52566
52672
|
const navigatorSeriesData = baseNavigatorOptions.data || userNavOptions.data, navigatorSeriesDataTable = baseNavigatorOptions.dataTable ||
|
|
@@ -52720,7 +52826,7 @@ class Navigator {
|
|
|
52720
52826
|
* @function Highcharts.Navigator#modifyBaseAxisExtremes
|
|
52721
52827
|
*/
|
|
52722
52828
|
modifyBaseAxisExtremes() {
|
|
52723
|
-
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 =
|
|
52829
|
+
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,
|
|
52724
52830
|
// When the extremes have been set by range selector button, don't
|
|
52725
52831
|
// stick to min or max. The range selector buttons will handle the
|
|
52726
52832
|
// extremes. (#5489)
|
|
@@ -52772,8 +52878,8 @@ class Navigator {
|
|
|
52772
52878
|
Math.round(navigator.zoomedMax) >= Math.round(navigator.size);
|
|
52773
52879
|
// If the scrollbar is scrolled all the way to the right, keep right as
|
|
52774
52880
|
// new data comes in, unless user set navigator.stickToMax to false.
|
|
52775
|
-
navigator.stickToMax =
|
|
52776
|
-
this.chart.options.navigator.stickToMax
|
|
52881
|
+
navigator.stickToMax = (this.chart.options.navigator &&
|
|
52882
|
+
this.chart.options.navigator.stickToMax) ?? shouldStickToMax;
|
|
52777
52883
|
navigator.stickToMin = navigator.shouldStickToMin(baseSeries, navigator);
|
|
52778
52884
|
// Set the navigator series data to the new data of the base series
|
|
52779
52885
|
if (navigatorSeries && !navigator.hasNavigatorData) {
|
|
@@ -53251,7 +53357,7 @@ class StandaloneNavigator {
|
|
|
53251
53357
|
* Options for the series to be added to the navigator.
|
|
53252
53358
|
*/
|
|
53253
53359
|
addSeries(seriesOptions) {
|
|
53254
|
-
this.navigator.chart.addSeries(merge(seriesOptions, { showInNavigator:
|
|
53360
|
+
this.navigator.chart.addSeries(merge(seriesOptions, { showInNavigator: (seriesOptions.showInNavigator ?? true) }));
|
|
53255
53361
|
this.navigator.setBaseSeries();
|
|
53256
53362
|
}
|
|
53257
53363
|
/**
|
|
@@ -53290,8 +53396,8 @@ class StandaloneNavigator {
|
|
|
53290
53396
|
getRange() {
|
|
53291
53397
|
const { min, max } = this.navigator.chart.xAxis[0].getExtremes(), { userMin, userMax, min: dataMin, max: dataMax } = this.navigator.xAxis.getExtremes();
|
|
53292
53398
|
return {
|
|
53293
|
-
min:
|
|
53294
|
-
max:
|
|
53399
|
+
min: (min ?? dataMin),
|
|
53400
|
+
max: (max ?? dataMax),
|
|
53295
53401
|
dataMin,
|
|
53296
53402
|
dataMax,
|
|
53297
53403
|
userMin,
|
|
@@ -53358,7 +53464,7 @@ class StandaloneNavigator {
|
|
|
53358
53464
|
/* unused harmony import specifier */ var Highcharts;
|
|
53359
53465
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
53360
53466
|
/**
|
|
53361
|
-
* @license Highcharts JS v13.0.
|
|
53467
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
53362
53468
|
* @module highcharts/modules/navigator
|
|
53363
53469
|
* @requires highcharts
|
|
53364
53470
|
*
|