highcharts 13.0.1 → 13.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +2 -3
- package/es-modules/Accessibility/A11yI18n.js +4 -4
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +6 -4
- package/es-modules/Accessibility/Components/LegendComponent.js +2 -2
- package/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +13 -10
- package/es-modules/Accessibility/Components/ZoomComponent.js +2 -2
- package/es-modules/Accessibility/FocusBorder.js +2 -2
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +1 -2
- package/es-modules/Core/Animation/AnimationUtilities.js +3 -2
- package/es-modules/Core/Axis/Axis.js +48 -57
- package/es-modules/Core/Axis/Axis3DComposition.js +8 -6
- package/es-modules/Core/Axis/BrokenAxis.js +6 -5
- package/es-modules/Core/Axis/Color/ColorAxis.js +17 -10
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +2 -2
- package/es-modules/Core/Axis/GridAxis.js +4 -4
- package/es-modules/Core/Axis/LogarithmicAxis.js +5 -3
- package/es-modules/Core/Axis/NavigatorAxisComposition.js +2 -2
- package/es-modules/Core/Axis/OrdinalAxis.js +9 -7
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -2
- package/es-modules/Core/Axis/RadialAxis.js +15 -9
- package/es-modules/Core/Axis/ScrollbarAxis.js +3 -3
- package/es-modules/Core/Axis/Stacking/StackItem.js +5 -5
- package/es-modules/Core/Axis/Stacking/StackingAxis.js +4 -4
- package/es-modules/Core/Axis/Tick.js +10 -11
- package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +3 -3
- package/es-modules/Core/Chart/Chart.js +14 -14
- package/es-modules/Core/Chart/Chart3D.js +3 -3
- package/es-modules/Core/Chart/ChartDefaults.js +23 -0
- package/es-modules/Core/Chart/MapChart.js +7 -5
- package/es-modules/Core/Chart/StockChart.js +15 -11
- package/es-modules/Core/Color/Color.js +3 -1
- package/es-modules/Core/Defaults.js +35 -0
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/Legend/Legend.js +16 -12
- package/es-modules/Core/Legend/LegendSymbol.js +2 -2
- package/es-modules/Core/MSPointer.js +2 -2
- package/es-modules/Core/Math3D.js +6 -7
- package/es-modules/Core/Pointer.js +9 -9
- package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGElement.js +11 -9
- package/es-modules/Core/Renderer/SVG/SVGElement3D.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +5 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +5 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +11 -9
- package/es-modules/Core/Renderer/SVG/Symbols.js +6 -5
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
- package/es-modules/Core/Responsive.js +7 -5
- package/es-modules/Core/Series/DataLabel.js +8 -6
- package/es-modules/Core/Series/OverlappingDataLabels.js +5 -2
- package/es-modules/Core/Series/Point.js +3 -3
- package/es-modules/Core/Series/Series.js +37 -21
- package/es-modules/Core/Series/Series3D.js +2 -2
- package/es-modules/Core/Templating.js +2 -2
- package/es-modules/Core/Tooltip.js +11 -7
- package/es-modules/Core/Utilities.js +4 -3
- package/es-modules/Data/Connectors/DataConnector.js +2 -2
- package/es-modules/Data/Connectors/GoogleSheetsConnector.js +2 -2
- package/es-modules/Data/DataTable.js +17 -0
- package/es-modules/Extensions/Annotations/Annotation.js +4 -4
- package/es-modules/Extensions/Annotations/AnnotationChart.js +2 -2
- package/es-modules/Extensions/Annotations/ControlPoint.js +2 -2
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +2 -2
- package/es-modules/Extensions/Annotations/EventEmitter.js +4 -4
- package/es-modules/Extensions/Annotations/NavigationBindings.js +6 -3
- package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +2 -2
- package/es-modules/Extensions/Annotations/Popup/Popup.js +3 -2
- package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +4 -6
- package/es-modules/Extensions/Annotations/Types/Measure.js +3 -3
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +3 -3
- package/es-modules/Extensions/Boost/BoostChart.js +11 -4
- package/es-modules/Extensions/Boost/BoostSeries.js +8 -9
- package/es-modules/Extensions/Boost/WGLRenderer.js +9 -6
- package/es-modules/Extensions/Boost/WGLShader.js +3 -3
- package/es-modules/Extensions/BoostCanvas.js +2 -2
- package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +5 -4
- package/es-modules/Extensions/DataGrouping/DataGrouping.js +2 -2
- package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +4 -3
- package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +2 -2
- package/es-modules/Extensions/DraggablePoints/DragDropProps.js +2 -3
- package/es-modules/Extensions/ExportData/ExportData.js +17 -16
- package/es-modules/Extensions/Exporting/Exporting.js +7 -7
- package/es-modules/Extensions/MouseWheelZoom/MouseWheelZoom.js +2 -2
- package/es-modules/Extensions/Pane/PaneComposition.js +2 -2
- package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +2 -2
- package/es-modules/Extensions/PatternFill.js +7 -5
- package/es-modules/Extensions/PriceIndication.js +5 -4
- package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +7 -7
- package/es-modules/Extensions/Sonification/MIDI.js +2 -3
- package/es-modules/Extensions/Sonification/Sonification.js +2 -2
- package/es-modules/Extensions/Sonification/SonificationSpeaker.js +3 -2
- package/es-modules/Extensions/Sonification/SynthPatch.js +3 -3
- package/es-modules/Extensions/Sonification/TimelineFromChart.js +11 -11
- package/es-modules/Gantt/Legacy.js +2 -2
- package/es-modules/Gantt/Pathfinder.js +3 -3
- package/es-modules/Gantt/PathfinderAlgorithms.js +4 -3
- package/es-modules/Gantt/Tree.js +1 -1
- package/es-modules/Maps/MapNavigation.js +4 -4
- package/es-modules/Maps/MapPointer.js +2 -2
- package/es-modules/Maps/MapView.js +2 -2
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +8 -6
- package/es-modules/Series/Area/AreaSeries.js +4 -5
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +13 -4
- package/es-modules/Series/Bubble/BubbleLegendItem.js +10 -6
- package/es-modules/Series/Bubble/BubbleSeries.js +10 -9
- package/es-modules/Series/Bullet/BulletSeries.js +17 -10
- package/es-modules/Series/CenteredUtilities.js +7 -5
- package/es-modules/Series/Column/ColumnSeries.js +2 -2
- package/es-modules/Series/Column3D/Column3DComposition.js +6 -5
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +4 -4
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +4 -2
- package/es-modules/Series/Cylinder/CylinderComposition.js +2 -2
- package/es-modules/Series/DataModifyComposition.js +9 -7
- package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -2
- package/es-modules/Series/Dumbbell/DumbbellPoint.js +14 -3
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +24 -7
- package/es-modules/Series/FlowMap/FlowMapPoint.js +5 -3
- package/es-modules/Series/FlowMap/FlowMapSeries.js +17 -9
- package/es-modules/Series/Funnel/FunnelSeries.js +2 -2
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +7 -5
- package/es-modules/Series/Gauge/GaugeSeries.js +2 -2
- package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +4 -4
- package/es-modules/Series/Heatmap/HeatmapPoint.js +6 -6
- package/es-modules/Series/Heatmap/HeatmapPointOptions.js +12 -0
- package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -13
- package/es-modules/Series/Heatmap/HeatmapSeriesOptions.js +12 -0
- package/es-modules/Series/Histogram/HistogramPoint.js +17 -0
- package/es-modules/Series/Histogram/HistogramPointOptions.js +12 -0
- package/es-modules/Series/Histogram/HistogramSeries.js +14 -2
- package/es-modules/Series/Histogram/HistogramSeriesOptions.js +12 -0
- package/es-modules/Series/InterpolationUtilities.js +5 -5
- package/es-modules/Series/Item/ItemPointOptions.js +14 -0
- package/es-modules/Series/Item/ItemSeries.js +18 -6
- package/es-modules/Series/Item/ItemSeriesOptions.js +14 -0
- package/es-modules/Series/Map/MapPoint.js +5 -3
- package/es-modules/Series/Map/MapSeries.js +5 -8
- package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +3 -3
- package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -2
- package/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js +18 -9
- package/es-modules/Series/NodesComposition.js +9 -10
- package/es-modules/Series/Organization/OrganizationPoint.js +3 -2
- package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -3
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +5 -5
- package/es-modules/Series/Pictorial/PictorialSeries.js +4 -2
- package/es-modules/Series/Pie/PieDataLabel.js +2 -2
- package/es-modules/Series/Pie/PiePoint.js +2 -2
- package/es-modules/Series/Pie/PieSeries.js +3 -2
- package/es-modules/Series/Pie3D/Pie3DSeries.js +8 -4
- package/es-modules/Series/PolarComposition.js +8 -7
- package/es-modules/Series/Sankey/SankeySeries.js +11 -5
- package/es-modules/Series/Scatter/ScatterSeries.js +6 -5
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +2 -2
- package/es-modules/Series/Spline/SplineSeries.js +5 -5
- package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +8 -6
- package/es-modules/Series/Tilemap/TilemapShapes.js +2 -2
- package/es-modules/Series/Timeline/TimelinePoint.js +2 -2
- package/es-modules/Series/Timeline/TimelineSeries.js +4 -3
- package/es-modules/Series/TreeUtilities.js +16 -7
- package/es-modules/Series/Treegraph/TreegraphLink.js +2 -2
- package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +14 -11
- package/es-modules/Series/VariablePie/VariablePieSeries.js +6 -4
- package/es-modules/Series/Variwide/VariwideSeries.js +2 -2
- package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -2
- package/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
- package/es-modules/Shared/TimeBase.js +8 -2
- package/es-modules/Shared/Utilities.js +9 -7
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -3
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +4 -3
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +1 -1
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +2 -2
- package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +4 -4
- package/es-modules/Stock/Navigator/Navigator.js +26 -26
- package/es-modules/Stock/Navigator/StandaloneNavigator.js +4 -4
- package/es-modules/Stock/RangeSelector/RangeSelector.js +15 -11
- package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +3 -3
- package/es-modules/Stock/Scrollbar/Scrollbar.js +8 -7
- package/es-modules/Stock/StockTools/StockToolbar.js +5 -5
- package/es-modules/Stock/StockTools/StockTools.js +2 -2
- package/es-modules/Stock/StockTools/StockToolsGui.js +4 -2
- package/es-modules/masters/highcharts-3d.src.js +1 -1
- package/es-modules/masters/highcharts-autoload.src.js +1 -1
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +1 -1
- package/es-modules/masters/highcharts.src.js +7 -2
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
- package/es-modules/masters/i18n/fr-FR.src.js +1 -1
- package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
- package/es-modules/masters/i18n/nb-NO.src.js +1 -1
- package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
- package/es-modules/masters/i18n/zh-CN.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
- package/es-modules/masters/modules/annotations.src.js +1 -1
- package/es-modules/masters/modules/arc-diagram.src.js +1 -1
- package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
- package/es-modules/masters/modules/boost-canvas.src.js +1 -1
- package/es-modules/masters/modules/boost.src.js +1 -1
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/contour.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data-sorting.src.js +1 -1
- package/es-modules/masters/modules/data-tools.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +1 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/exporting.src.js +1 -1
- package/es-modules/masters/modules/flowmap.src.js +1 -1
- package/es-modules/masters/modules/full-screen.src.js +1 -1
- package/es-modules/masters/modules/funnel.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/es-modules/masters/modules/gantt.src.js +1 -1
- package/es-modules/masters/modules/geoheatmap.src.js +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
- package/es-modules/masters/modules/navigator.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +1 -1
- package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
- package/es-modules/masters/modules/non-cartesian-zoom.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/organization.src.js +1 -1
- package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
- package/es-modules/masters/modules/pareto.src.js +1 -1
- package/es-modules/masters/modules/pathfinder.src.js +1 -1
- package/es-modules/masters/modules/pattern-fill.src.js +1 -1
- package/es-modules/masters/modules/pictorial.src.js +1 -1
- package/es-modules/masters/modules/pointandfigure.src.js +1 -1
- package/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/es-modules/masters/modules/pyramid3d.src.js +1 -1
- package/es-modules/masters/modules/renko.src.js +1 -1
- package/es-modules/masters/modules/sankey.src.js +1 -1
- package/es-modules/masters/modules/series-label.src.js +1 -1
- package/es-modules/masters/modules/series-on-point.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +1 -1
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/textpath.src.js +1 -1
- package/es-modules/masters/modules/tiledwebmap.src.js +1 -1
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/timeline.src.js +1 -1
- package/es-modules/masters/modules/treegraph.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +1 -1
- package/es-modules/masters/modules/treemap.src.js +1 -1
- package/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/es-modules/masters/modules/variwide.src.js +1 -1
- package/es-modules/masters/modules/vector.src.js +1 -1
- package/es-modules/masters/modules/venn.src.js +1 -1
- package/es-modules/masters/modules/windbarb.src.js +1 -1
- package/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/es-modules/masters/modules/xrange.src.js +1 -1
- package/es-modules/masters/standalone-navigator.src.js +1 -1
- package/es-modules/masters/themes/adaptive.src.js +1 -1
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/high-contrast.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/es-modules/tsconfig.tsbuildinfo +1 -1
- package/esm/highcharts-3d.js +2 -2
- package/esm/highcharts-3d.src.js +40 -32
- package/esm/highcharts-autoload.js +1 -1
- package/esm/highcharts-autoload.src.js +1 -1
- package/esm/highcharts-gantt.js +1 -1
- package/esm/highcharts-gantt.src.js +1 -1
- package/esm/highcharts-more.js +2 -2
- package/esm/highcharts-more.src.js +90 -56
- package/esm/highcharts.js +4 -4
- package/esm/highcharts.src.js +312 -207
- package/esm/highmaps.js +1 -1
- package/esm/highmaps.src.js +1 -1
- package/esm/highstock.js +1 -1
- package/esm/highstock.src.js +1 -1
- package/esm/i18n/fr-FR.js +1 -1
- package/esm/i18n/fr-FR.src.js +1 -1
- package/esm/i18n/nb-NO.js +1 -1
- package/esm/i18n/nb-NO.src.js +1 -1
- package/esm/i18n/zh-CN.js +1 -1
- package/esm/i18n/zh-CN.src.js +1 -1
- package/esm/indicators/acceleration-bands.js +1 -1
- package/esm/indicators/acceleration-bands.src.js +1 -1
- package/esm/indicators/accumulation-distribution.js +1 -1
- package/esm/indicators/accumulation-distribution.src.js +1 -1
- package/esm/indicators/ao.js +1 -1
- package/esm/indicators/ao.src.js +1 -1
- package/esm/indicators/apo.js +1 -1
- package/esm/indicators/apo.src.js +1 -1
- package/esm/indicators/aroon-oscillator.js +1 -1
- package/esm/indicators/aroon-oscillator.src.js +1 -1
- package/esm/indicators/aroon.js +2 -2
- package/esm/indicators/aroon.src.js +3 -3
- package/esm/indicators/atr.js +1 -1
- package/esm/indicators/atr.src.js +1 -1
- package/esm/indicators/bollinger-bands.js +1 -1
- package/esm/indicators/bollinger-bands.src.js +1 -1
- package/esm/indicators/cci.js +1 -1
- package/esm/indicators/cci.src.js +1 -1
- package/esm/indicators/chaikin.js +1 -1
- package/esm/indicators/chaikin.src.js +1 -1
- package/esm/indicators/cmf.js +1 -1
- package/esm/indicators/cmf.src.js +1 -1
- package/esm/indicators/cmo.js +1 -1
- package/esm/indicators/cmo.src.js +1 -1
- package/esm/indicators/dema.js +1 -1
- package/esm/indicators/dema.src.js +1 -1
- package/esm/indicators/disparity-index.js +1 -1
- package/esm/indicators/disparity-index.src.js +1 -1
- package/esm/indicators/dmi.js +1 -1
- package/esm/indicators/dmi.src.js +1 -1
- package/esm/indicators/dpo.js +2 -2
- package/esm/indicators/dpo.src.js +4 -3
- package/esm/indicators/ichimoku-kinko-hyo.js +1 -1
- package/esm/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/esm/indicators/indicators-all.js +2 -2
- package/esm/indicators/indicators-all.src.js +8 -7
- package/esm/indicators/indicators.js +2 -2
- package/esm/indicators/indicators.src.js +2 -2
- package/esm/indicators/keltner-channels.js +1 -1
- package/esm/indicators/keltner-channels.src.js +1 -1
- package/esm/indicators/klinger.js +1 -1
- package/esm/indicators/klinger.src.js +1 -1
- package/esm/indicators/macd.js +1 -1
- package/esm/indicators/macd.src.js +1 -1
- package/esm/indicators/mfi.js +1 -1
- package/esm/indicators/mfi.src.js +1 -1
- package/esm/indicators/momentum.js +1 -1
- package/esm/indicators/momentum.src.js +1 -1
- package/esm/indicators/natr.js +1 -1
- package/esm/indicators/natr.src.js +1 -1
- package/esm/indicators/obv.js +1 -1
- package/esm/indicators/obv.src.js +1 -1
- package/esm/indicators/pivot-points.js +1 -1
- package/esm/indicators/pivot-points.src.js +1 -1
- package/esm/indicators/ppo.js +1 -1
- package/esm/indicators/ppo.src.js +1 -1
- package/esm/indicators/price-channel.js +1 -1
- package/esm/indicators/price-channel.src.js +1 -1
- package/esm/indicators/price-envelopes.js +1 -1
- package/esm/indicators/price-envelopes.src.js +1 -1
- package/esm/indicators/psar.js +1 -1
- package/esm/indicators/psar.src.js +1 -1
- package/esm/indicators/regressions.js +1 -1
- package/esm/indicators/regressions.src.js +1 -1
- package/esm/indicators/roc.js +1 -1
- package/esm/indicators/roc.src.js +1 -1
- package/esm/indicators/rsi.js +1 -1
- package/esm/indicators/rsi.src.js +2 -2
- package/esm/indicators/slow-stochastic.js +1 -1
- package/esm/indicators/slow-stochastic.src.js +1 -1
- package/esm/indicators/stochastic.js +1 -1
- package/esm/indicators/stochastic.src.js +1 -1
- package/esm/indicators/supertrend.js +1 -1
- package/esm/indicators/supertrend.src.js +1 -1
- package/esm/indicators/tema.js +1 -1
- package/esm/indicators/tema.src.js +1 -1
- package/esm/indicators/trendline.js +1 -1
- package/esm/indicators/trendline.src.js +1 -1
- package/esm/indicators/trix.js +1 -1
- package/esm/indicators/trix.src.js +1 -1
- package/esm/indicators/volume-by-price.js +1 -1
- package/esm/indicators/volume-by-price.src.js +1 -1
- package/esm/indicators/vwap.js +1 -1
- package/esm/indicators/vwap.src.js +1 -1
- package/esm/indicators/williams-r.js +1 -1
- package/esm/indicators/williams-r.src.js +1 -1
- package/esm/indicators/wma.js +1 -1
- package/esm/indicators/wma.src.js +1 -1
- package/esm/indicators/zigzag.js +1 -1
- package/esm/indicators/zigzag.src.js +1 -1
- package/esm/modules/accessibility.js +2 -2
- package/esm/modules/accessibility.src.js +69 -63
- package/esm/modules/annotations-advanced.js +3 -3
- package/esm/modules/annotations-advanced.src.js +25 -23
- package/esm/modules/annotations.js +3 -3
- package/esm/modules/annotations.src.js +21 -19
- package/esm/modules/arc-diagram.js +2 -2
- package/esm/modules/arc-diagram.src.js +16 -15
- package/esm/modules/arrow-symbols.js +1 -1
- package/esm/modules/arrow-symbols.src.js +1 -1
- package/esm/modules/boost-canvas.js +2 -2
- package/esm/modules/boost-canvas.src.js +29 -20
- package/esm/modules/boost.js +2 -2
- package/esm/modules/boost.src.js +28 -19
- package/esm/modules/broken-axis.js +2 -2
- package/esm/modules/broken-axis.src.js +6 -5
- package/esm/modules/bullet.js +2 -2
- package/esm/modules/bullet.src.js +17 -10
- package/esm/modules/coloraxis.js +2 -2
- package/esm/modules/coloraxis.src.js +18 -11
- package/esm/modules/contour.js +1 -1
- package/esm/modules/contour.src.js +1 -1
- package/esm/modules/current-date-indicator.js +1 -1
- package/esm/modules/current-date-indicator.src.js +1 -1
- package/esm/modules/cylinder.js +2 -2
- package/esm/modules/cylinder.src.js +9 -10
- package/esm/modules/data-sorting.js +1 -1
- package/esm/modules/data-sorting.src.js +1 -1
- package/esm/modules/data-tools.js +2 -2
- package/esm/modules/data-tools.src.js +20 -3
- package/esm/modules/data.js +1 -1
- package/esm/modules/data.src.js +1 -1
- package/esm/modules/datagrouping.js +2 -2
- package/esm/modules/datagrouping.src.js +6 -5
- package/esm/modules/debugger.js +1 -1
- package/esm/modules/debugger.src.js +1 -1
- package/esm/modules/dependency-wheel.js +1 -1
- package/esm/modules/dependency-wheel.src.js +1 -1
- package/esm/modules/dotplot.js +2 -2
- package/esm/modules/dotplot.src.js +3 -2
- package/esm/modules/drag-panes.js +1 -1
- package/esm/modules/drag-panes.src.js +1 -1
- package/esm/modules/draggable-points.js +2 -2
- package/esm/modules/draggable-points.src.js +2 -3
- package/esm/modules/drilldown.js +2 -2
- package/esm/modules/drilldown.src.js +5 -4
- package/esm/modules/dumbbell.js +2 -2
- package/esm/modules/dumbbell.src.js +37 -9
- package/esm/modules/export-data.js +2 -2
- package/esm/modules/export-data.src.js +17 -16
- package/esm/modules/exporting.js +2 -2
- package/esm/modules/exporting.src.js +7 -7
- package/esm/modules/flowmap.js +2 -2
- package/esm/modules/flowmap.src.js +21 -11
- package/esm/modules/full-screen.js +1 -1
- package/esm/modules/full-screen.src.js +1 -1
- package/esm/modules/funnel.js +2 -2
- package/esm/modules/funnel.src.js +2 -2
- package/esm/modules/funnel3d.js +2 -2
- package/esm/modules/funnel3d.src.js +14 -13
- package/esm/modules/gantt.js +2 -2
- package/esm/modules/gantt.src.js +93 -76
- package/esm/modules/geoheatmap.js +2 -2
- package/esm/modules/geoheatmap.src.js +8 -8
- package/esm/modules/grid-axis.js +2 -2
- package/esm/modules/grid-axis.src.js +4 -4
- package/esm/modules/heatmap.js +2 -2
- package/esm/modules/heatmap.src.js +22 -22
- package/esm/modules/heikinashi.js +1 -1
- package/esm/modules/heikinashi.src.js +1 -1
- package/esm/modules/histogram-bellcurve.js +1 -1
- package/esm/modules/histogram-bellcurve.src.js +15 -3
- package/esm/modules/hollowcandlestick.js +1 -1
- package/esm/modules/hollowcandlestick.src.js +1 -1
- package/esm/modules/item-series.js +2 -2
- package/esm/modules/item-series.src.js +18 -6
- package/esm/modules/lollipop.js +1 -1
- package/esm/modules/lollipop.src.js +1 -1
- package/esm/modules/map.js +2 -2
- package/esm/modules/map.src.js +65 -57
- package/esm/modules/marker-clusters.js +1 -1
- package/esm/modules/marker-clusters.src.js +1 -1
- package/esm/modules/mouse-wheel-zoom.js +2 -2
- package/esm/modules/mouse-wheel-zoom.src.js +3 -3
- package/esm/modules/navigator.js +2 -2
- package/esm/modules/navigator.src.js +47 -45
- package/esm/modules/networkgraph.js +2 -2
- package/esm/modules/networkgraph.src.js +31 -21
- package/esm/modules/no-data-to-display.js +1 -1
- package/esm/modules/no-data-to-display.src.js +1 -1
- package/esm/modules/non-cartesian-zoom.js +1 -1
- package/esm/modules/non-cartesian-zoom.src.js +1 -1
- package/esm/modules/offline-exporting.js +1 -1
- package/esm/modules/offline-exporting.src.js +1 -1
- package/esm/modules/organization.js +2 -2
- package/esm/modules/organization.src.js +3 -2
- package/esm/modules/parallel-coordinates.js +2 -2
- package/esm/modules/parallel-coordinates.src.js +2 -2
- package/esm/modules/pareto.js +1 -1
- package/esm/modules/pareto.src.js +1 -1
- package/esm/modules/pathfinder.js +2 -2
- package/esm/modules/pathfinder.src.js +7 -6
- package/esm/modules/pattern-fill.js +2 -2
- package/esm/modules/pattern-fill.src.js +7 -5
- package/esm/modules/pictorial.js +2 -2
- package/esm/modules/pictorial.src.js +10 -6
- package/esm/modules/pointandfigure.js +1 -1
- package/esm/modules/pointandfigure.src.js +1 -1
- package/esm/modules/price-indicator.js +2 -2
- package/esm/modules/price-indicator.src.js +5 -4
- package/esm/modules/pyramid3d.js +1 -1
- package/esm/modules/pyramid3d.src.js +1 -1
- package/esm/modules/renko.js +1 -1
- package/esm/modules/renko.src.js +1 -1
- package/esm/modules/sankey.js +2 -2
- package/esm/modules/sankey.src.js +34 -20
- package/esm/modules/series-label.js +2 -2
- package/esm/modules/series-label.src.js +7 -7
- package/esm/modules/series-on-point.js +1 -1
- package/esm/modules/series-on-point.src.js +1 -1
- package/esm/modules/solid-gauge.js +2 -2
- package/esm/modules/solid-gauge.src.js +2 -2
- package/esm/modules/sonification.js +2 -2
- package/esm/modules/sonification.src.js +19 -19
- package/esm/modules/static-scale.js +1 -1
- package/esm/modules/static-scale.src.js +1 -1
- package/esm/modules/stock-tools.js +3 -3
- package/esm/modules/stock-tools.src.js +15 -10
- package/esm/modules/stock.js +2 -2
- package/esm/modules/stock.src.js +90 -76
- package/esm/modules/streamgraph.js +1 -1
- package/esm/modules/streamgraph.src.js +1 -1
- package/esm/modules/sunburst.js +2 -2
- package/esm/modules/sunburst.src.js +41 -26
- package/esm/modules/textpath.js +1 -1
- package/esm/modules/textpath.src.js +1 -1
- package/esm/modules/tiledwebmap.js +2 -2
- package/esm/modules/tiledwebmap.src.js +8 -6
- package/esm/modules/tilemap.js +2 -2
- package/esm/modules/tilemap.src.js +3 -3
- package/esm/modules/timeline.js +2 -2
- package/esm/modules/timeline.src.js +5 -4
- package/esm/modules/treegraph.js +2 -2
- package/esm/modules/treegraph.src.js +17 -8
- package/esm/modules/treegrid.js +2 -2
- package/esm/modules/treegrid.src.js +28 -18
- package/esm/modules/treemap.js +2 -2
- package/esm/modules/treemap.src.js +35 -22
- package/esm/modules/variable-pie.js +2 -2
- package/esm/modules/variable-pie.src.js +6 -4
- package/esm/modules/variwide.js +2 -2
- package/esm/modules/variwide.src.js +2 -2
- package/esm/modules/vector.js +1 -1
- package/esm/modules/vector.src.js +1 -1
- package/esm/modules/venn.js +1 -1
- package/esm/modules/venn.src.js +1 -1
- package/esm/modules/windbarb.js +2 -2
- package/esm/modules/windbarb.src.js +2 -2
- package/esm/modules/wordcloud.js +1 -1
- package/esm/modules/wordcloud.src.js +1 -1
- package/esm/modules/xrange.js +1 -1
- package/esm/modules/xrange.src.js +1 -1
- package/esm/standalone-navigator.js +4 -4
- package/esm/standalone-navigator.src.js +355 -249
- package/esm/themes/adaptive.js +1 -1
- package/esm/themes/adaptive.src.js +1 -1
- package/esm/themes/avocado.js +1 -1
- package/esm/themes/avocado.src.js +1 -1
- package/esm/themes/dark-unica.js +1 -1
- package/esm/themes/dark-unica.src.js +1 -1
- package/esm/themes/grid-light.js +1 -1
- package/esm/themes/grid-light.src.js +1 -1
- package/esm/themes/high-contrast.js +1 -1
- package/esm/themes/high-contrast.src.js +1 -1
- package/esm/themes/sand-signika.js +1 -1
- package/esm/themes/sand-signika.src.js +1 -1
- package/esm/themes/sunset.js +1 -1
- package/esm/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +2 -2
- package/highcharts-3d.src.js +40 -32
- package/highcharts-autoload.d.ts +8 -2
- package/highcharts-autoload.js +4 -4
- package/highcharts-autoload.src.d.ts +8 -2
- package/highcharts-autoload.src.js +313 -208
- package/highcharts-gantt.js +4 -4
- package/highcharts-gantt.src.js +404 -283
- package/highcharts-more.js +2 -2
- package/highcharts-more.src.js +90 -56
- package/highcharts.d.ts +61 -4
- package/highcharts.js +4 -4
- package/highcharts.src.d.ts +61 -4
- package/highcharts.src.js +312 -207
- package/highmaps.js +4 -4
- package/highmaps.src.js +390 -272
- package/highstock.js +4 -4
- package/highstock.src.js +413 -293
- package/i18n/fr-FR.js +1 -1
- package/i18n/fr-FR.src.js +1 -1
- package/i18n/nb-NO.js +1 -1
- package/i18n/nb-NO.src.js +1 -1
- package/i18n/zh-CN.js +1 -1
- package/i18n/zh-CN.src.js +1 -1
- package/indicators/acceleration-bands.js +1 -1
- package/indicators/acceleration-bands.src.js +1 -1
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +1 -1
- package/indicators/ao.src.js +1 -1
- package/indicators/apo.js +1 -1
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.js +1 -1
- package/indicators/aroon-oscillator.src.js +1 -1
- package/indicators/aroon.js +2 -2
- package/indicators/aroon.src.js +3 -3
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.src.js +1 -1
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +1 -1
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.src.js +1 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.js +1 -1
- package/indicators/dema.src.js +1 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.js +1 -1
- package/indicators/dmi.src.js +1 -1
- package/indicators/dpo.js +2 -2
- package/indicators/dpo.src.js +4 -3
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.js +2 -2
- package/indicators/indicators-all.src.js +8 -7
- package/indicators/indicators.js +2 -2
- package/indicators/indicators.src.js +2 -2
- package/indicators/keltner-channels.js +1 -1
- package/indicators/keltner-channels.src.js +1 -1
- package/indicators/klinger.js +1 -1
- package/indicators/klinger.src.js +1 -1
- package/indicators/macd.js +1 -1
- package/indicators/macd.src.js +1 -1
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +1 -1
- package/indicators/natr.src.js +1 -1
- package/indicators/obv.js +1 -1
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.js +1 -1
- package/indicators/price-channel.src.js +1 -1
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +1 -1
- package/indicators/regressions.src.js +1 -1
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.src.js +2 -2
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.src.js +1 -1
- package/indicators/stochastic.js +1 -1
- package/indicators/stochastic.src.js +1 -1
- package/indicators/supertrend.js +1 -1
- package/indicators/supertrend.src.js +1 -1
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +1 -1
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.js +1 -1
- package/indicators/volume-by-price.src.js +1 -1
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.js +2 -2
- package/modules/accessibility.src.js +69 -63
- package/modules/annotations-advanced.js +3 -3
- package/modules/annotations-advanced.src.js +25 -23
- package/modules/annotations.js +3 -3
- package/modules/annotations.src.js +21 -19
- package/modules/arc-diagram.js +2 -2
- package/modules/arc-diagram.src.js +16 -15
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +2 -2
- package/modules/boost-canvas.src.js +29 -20
- package/modules/boost.js +2 -2
- package/modules/boost.src.js +28 -19
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.src.js +6 -5
- package/modules/bullet.js +2 -2
- package/modules/bullet.src.js +17 -10
- package/modules/coloraxis.js +2 -2
- package/modules/coloraxis.src.js +18 -11
- package/modules/contour.js +4 -4
- package/modules/contour.src.js +19 -12
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +2 -2
- package/modules/cylinder.src.js +9 -10
- package/modules/data-sorting.js +1 -1
- package/modules/data-sorting.src.js +1 -1
- package/modules/data-tools.js +2 -2
- package/modules/data-tools.src.js +20 -3
- package/modules/data.js +1 -1
- package/modules/data.src.js +1 -1
- package/modules/datagrouping.js +2 -2
- package/modules/datagrouping.src.js +6 -5
- package/modules/debugger.js +1 -1
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.js +1 -1
- package/modules/dependency-wheel.src.js +1 -1
- package/modules/dotplot.js +2 -2
- package/modules/dotplot.src.js +3 -2
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +2 -2
- package/modules/draggable-points.src.js +2 -3
- package/modules/drilldown.js +2 -2
- package/modules/drilldown.src.js +5 -4
- package/modules/dumbbell.js +2 -2
- package/modules/dumbbell.src.js +37 -9
- package/modules/export-data.js +2 -2
- package/modules/export-data.src.js +17 -16
- package/modules/exporting.js +2 -2
- package/modules/exporting.src.js +7 -7
- package/modules/flowmap.js +2 -2
- package/modules/flowmap.src.js +21 -11
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +1 -1
- package/modules/funnel.js +2 -2
- package/modules/funnel.src.js +2 -2
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.src.js +14 -13
- package/modules/gantt.js +6 -6
- package/modules/gantt.src.js +96 -79
- package/modules/geoheatmap.d.ts +0 -12
- package/modules/geoheatmap.js +2 -2
- package/modules/geoheatmap.src.d.ts +0 -12
- package/modules/geoheatmap.src.js +8 -8
- package/modules/grid-axis.js +2 -2
- package/modules/grid-axis.src.js +4 -4
- package/modules/heatmap.d.ts +0 -12
- package/modules/heatmap.js +4 -4
- package/modules/heatmap.src.d.ts +0 -12
- package/modules/heatmap.src.js +40 -33
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +1 -1
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.src.js +15 -3
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.src.js +1 -1
- package/modules/item-series.js +2 -2
- package/modules/item-series.src.js +18 -6
- package/modules/lollipop.js +1 -1
- package/modules/lollipop.src.js +1 -1
- package/modules/map.d.ts +0 -12
- package/modules/map.js +4 -4
- package/modules/map.src.d.ts +0 -12
- package/modules/map.src.js +83 -68
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.src.js +1 -1
- package/modules/mouse-wheel-zoom.js +2 -2
- package/modules/mouse-wheel-zoom.src.js +3 -3
- package/modules/navigator.js +2 -2
- package/modules/navigator.src.js +47 -45
- package/modules/networkgraph.js +2 -2
- package/modules/networkgraph.src.js +31 -21
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/non-cartesian-zoom.js +1 -1
- package/modules/non-cartesian-zoom.src.js +1 -1
- package/modules/offline-exporting.js +1 -1
- package/modules/offline-exporting.src.js +1 -1
- package/modules/organization.js +2 -2
- package/modules/organization.src.js +3 -2
- package/modules/parallel-coordinates.js +2 -2
- package/modules/parallel-coordinates.src.js +2 -2
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +2 -2
- package/modules/pathfinder.src.js +7 -6
- package/modules/pattern-fill.js +2 -2
- package/modules/pattern-fill.src.js +7 -5
- package/modules/pictorial.js +2 -2
- package/modules/pictorial.src.js +10 -6
- package/modules/pointandfigure.js +1 -1
- package/modules/pointandfigure.src.js +1 -1
- package/modules/price-indicator.js +2 -2
- package/modules/price-indicator.src.js +5 -4
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +1 -1
- package/modules/renko.js +1 -1
- package/modules/renko.src.js +1 -1
- package/modules/sankey.js +2 -2
- package/modules/sankey.src.js +34 -20
- package/modules/series-label.js +2 -2
- package/modules/series-label.src.js +7 -7
- package/modules/series-on-point.js +1 -1
- package/modules/series-on-point.src.js +1 -1
- package/modules/solid-gauge.js +2 -2
- package/modules/solid-gauge.src.js +2 -2
- package/modules/sonification.js +2 -2
- package/modules/sonification.src.js +19 -19
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +3 -3
- package/modules/stock-tools.src.js +15 -10
- package/modules/stock.js +6 -6
- package/modules/stock.src.js +105 -89
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +2 -2
- package/modules/sunburst.src.js +41 -26
- package/modules/textpath.js +1 -1
- package/modules/textpath.src.js +1 -1
- package/modules/tiledwebmap.js +2 -2
- package/modules/tiledwebmap.src.js +8 -6
- package/modules/tilemap.js +2 -2
- package/modules/tilemap.src.js +3 -3
- package/modules/timeline.js +2 -2
- package/modules/timeline.src.js +5 -4
- package/modules/treegraph.js +2 -2
- package/modules/treegraph.src.js +17 -8
- package/modules/treegrid.js +2 -2
- package/modules/treegrid.src.js +28 -18
- package/modules/treemap.js +2 -2
- package/modules/treemap.src.js +35 -22
- package/modules/variable-pie.js +2 -2
- package/modules/variable-pie.src.js +6 -4
- package/modules/variwide.js +2 -2
- package/modules/variwide.src.js +2 -2
- package/modules/vector.js +1 -1
- package/modules/vector.src.js +1 -1
- package/modules/venn.js +1 -1
- package/modules/venn.src.js +1 -1
- package/modules/windbarb.js +2 -2
- package/modules/windbarb.src.js +2 -2
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.src.js +1 -1
- package/modules/xrange.js +1 -1
- package/modules/xrange.src.js +1 -1
- package/package.json +2 -3
- package/standalone-navigator.js +4 -4
- package/standalone-navigator.src.js +355 -249
- package/themes/adaptive.js +1 -1
- package/themes/adaptive.src.js +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/high-contrast.js +1 -1
- package/themes/high-contrast.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/sunset.js +1 -1
- package/themes/sunset.src.js +1 -1
package/highstock.src.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
2
2
|
/**
|
|
3
|
-
* @license Highcharts Stock v13.0.
|
|
3
|
+
* @license Highcharts Stock v13.0.2 (2026-08-27)
|
|
4
4
|
* @module highcharts/highstock
|
|
5
5
|
*
|
|
6
6
|
* (c) 2009-2026 Highsoft AS
|
|
@@ -93,7 +93,7 @@ var Globals;
|
|
|
93
93
|
* Constants
|
|
94
94
|
*
|
|
95
95
|
* */
|
|
96
|
-
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.
|
|
96
|
+
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.2', Globals.win = (typeof window !== 'undefined' ?
|
|
97
97
|
window :
|
|
98
98
|
{}), // eslint-disable-line node/no-unsupported-features/es-builtins
|
|
99
99
|
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 = [
|
|
@@ -420,6 +420,29 @@ const ChartDefaults = {
|
|
|
420
420
|
* @context Highcharts.Chart
|
|
421
421
|
* @apioption chart.events.load
|
|
422
422
|
*/
|
|
423
|
+
/**
|
|
424
|
+
* Fires while the chart is panned by mouse drag. Panning must be
|
|
425
|
+
* enabled through [chart.panning](#chart.panning). One parameter,
|
|
426
|
+
* `event`, is passed to the function, containing common event
|
|
427
|
+
* information as well as `event.originalEvent`, the underlying pointer
|
|
428
|
+
* event. Note that the event fires for every mouse move during the
|
|
429
|
+
* drag, not once per gesture.
|
|
430
|
+
*
|
|
431
|
+
* Calling `event.preventDefault()` or returning false prevents the
|
|
432
|
+
* default panning of the axes. In Highcharts Maps, and on ordinal axes
|
|
433
|
+
* in Highcharts Stock, the panning is applied outside the default
|
|
434
|
+
* action and is not prevented.
|
|
435
|
+
*
|
|
436
|
+
* Panning by touch does not fire this event, unless
|
|
437
|
+
* [chart.zooming.singleTouch](#chart.zooming.singleTouch) is enabled and
|
|
438
|
+
* no zoom type is set. Single-finger drags are then handled as mouse
|
|
439
|
+
* drags and fire this event.
|
|
440
|
+
*
|
|
441
|
+
* @type {Highcharts.ChartPanCallbackFunction}
|
|
442
|
+
* @since 7.0.2
|
|
443
|
+
* @context Highcharts.Chart
|
|
444
|
+
* @apioption chart.events.pan
|
|
445
|
+
*/
|
|
423
446
|
/**
|
|
424
447
|
* Fires when the chart is redrawn, either after a call to
|
|
425
448
|
* `chart.redraw()` or after an axis, series or point is modified with
|
|
@@ -2434,7 +2457,7 @@ function getStyle(el, prop, toInt) {
|
|
|
2434
2457
|
const css = win.getComputedStyle(el, void 0); // eslint-disable-line no-undefined
|
|
2435
2458
|
if (css) {
|
|
2436
2459
|
style = css.getPropertyValue(prop);
|
|
2437
|
-
if (
|
|
2460
|
+
if (toInt ?? prop !== 'opacity') {
|
|
2438
2461
|
style = pInt(style);
|
|
2439
2462
|
}
|
|
2440
2463
|
}
|
|
@@ -2684,7 +2707,7 @@ function merge(extendOrSource, ...sources) {
|
|
|
2684
2707
|
function normalizeTickInterval(interval, multiples, magnitude, allowDecimals, hasTickAmount) {
|
|
2685
2708
|
let i, retInterval = interval;
|
|
2686
2709
|
// Round to a tenfold of 1, 2, 2.5 or 5
|
|
2687
|
-
magnitude =
|
|
2710
|
+
magnitude = (magnitude ?? getMagnitude(interval));
|
|
2688
2711
|
const normalized = interval / magnitude;
|
|
2689
2712
|
// Multiples for a linear scale
|
|
2690
2713
|
if (!multiples) {
|
|
@@ -2797,20 +2820,22 @@ function pad(number, length, padder) {
|
|
|
2797
2820
|
.replace('-', '')
|
|
2798
2821
|
.length).join(padder || '0') + number;
|
|
2799
2822
|
}
|
|
2800
|
-
/* eslint-disable jsdoc
|
|
2823
|
+
/* eslint-disable valid-jsdoc */
|
|
2801
2824
|
/**
|
|
2802
2825
|
* Return the first value that is not null or undefined.
|
|
2803
2826
|
*
|
|
2827
|
+
* @deprecated 13.0.2
|
|
2828
|
+
* Use nullish coalescing (`??`) or explicit fallback logic instead.
|
|
2829
|
+
*
|
|
2804
2830
|
* @function Highcharts.pick<T>
|
|
2805
2831
|
*
|
|
2806
|
-
* @param {...
|
|
2832
|
+
* @param {...(T|null|undefined)} args
|
|
2807
2833
|
* Variable number of arguments to inspect.
|
|
2808
2834
|
*
|
|
2809
2835
|
* @return {T}
|
|
2810
2836
|
* The value of the first argument that is not null or undefined.
|
|
2811
2837
|
*/
|
|
2812
|
-
function pick() {
|
|
2813
|
-
const args = arguments;
|
|
2838
|
+
function pick(...args) {
|
|
2814
2839
|
const length = args.length;
|
|
2815
2840
|
for (let i = 0; i < length; i++) {
|
|
2816
2841
|
const arg = args[i];
|
|
@@ -2819,7 +2844,7 @@ function pick() {
|
|
|
2819
2844
|
}
|
|
2820
2845
|
}
|
|
2821
2846
|
}
|
|
2822
|
-
/* eslint-enable jsdoc
|
|
2847
|
+
/* eslint-enable valid-jsdoc */
|
|
2823
2848
|
/**
|
|
2824
2849
|
* Shortcut for parseInt
|
|
2825
2850
|
*
|
|
@@ -3202,7 +3227,8 @@ function insertItem(item, collection) {
|
|
|
3202
3227
|
!collection[i] ||
|
|
3203
3228
|
// Handle index option, the element to insert has lower index
|
|
3204
3229
|
(isNumber(indexOption) &&
|
|
3205
|
-
indexOption <
|
|
3230
|
+
indexOption < (collection[i].options.index ??
|
|
3231
|
+
collection[i]._i)) ||
|
|
3206
3232
|
// Insert the new item before other internal items
|
|
3207
3233
|
// (navigator)
|
|
3208
3234
|
collection[i].options.isInternal) {
|
|
@@ -3288,7 +3314,7 @@ const uniqueKey = (function () {
|
|
|
3288
3314
|
* State of the serial mode.
|
|
3289
3315
|
*/
|
|
3290
3316
|
function useSerialIds(mode) {
|
|
3291
|
-
return (serialMode =
|
|
3317
|
+
return (serialMode = (mode ?? serialMode));
|
|
3292
3318
|
}
|
|
3293
3319
|
/* *
|
|
3294
3320
|
*
|
|
@@ -3754,6 +3780,10 @@ const isDateTimeFormatOptions = (obj) => obj.main === void 0;
|
|
|
3754
3780
|
*
|
|
3755
3781
|
* @param {Highcharts.TimeOptions} [options] Time options as defined in
|
|
3756
3782
|
* [chart.options.time](/highcharts/time).
|
|
3783
|
+
*
|
|
3784
|
+
* @param {Highcharts.LangOptions} [lang]
|
|
3785
|
+
* Language options. When `options.locale` is not set, `lang.locale` is used as
|
|
3786
|
+
* the locale fallback for locale-aware date formatting.
|
|
3757
3787
|
*/
|
|
3758
3788
|
class TimeBase {
|
|
3759
3789
|
/* *
|
|
@@ -3772,8 +3802,8 @@ class TimeBase {
|
|
|
3772
3802
|
};
|
|
3773
3803
|
this.variableTimezone = false;
|
|
3774
3804
|
this.Date = TimeBase_win.Date;
|
|
3775
|
-
this.update(options);
|
|
3776
3805
|
this.lang = lang;
|
|
3806
|
+
this.update(options);
|
|
3777
3807
|
}
|
|
3778
3808
|
/* *
|
|
3779
3809
|
*
|
|
@@ -3885,7 +3915,9 @@ class TimeBase {
|
|
|
3885
3915
|
/**
|
|
3886
3916
|
* Shorthand to get a cached `Intl.DateTimeFormat` instance.
|
|
3887
3917
|
*/
|
|
3888
|
-
dateTimeFormat(options, timestamp, locale = this.options.locale ||
|
|
3918
|
+
dateTimeFormat(options, timestamp, locale = (this.options.locale ||
|
|
3919
|
+
this.lang?.locale ||
|
|
3920
|
+
pageLang)) {
|
|
3889
3921
|
const cacheKey = JSON.stringify(options) + locale;
|
|
3890
3922
|
if (isString(options)) {
|
|
3891
3923
|
options = this.str2dtf(options);
|
|
@@ -7825,6 +7857,41 @@ const DefaultOptions = {
|
|
|
7825
7857
|
* @param {global.Event} event
|
|
7826
7858
|
* The event that occurred.
|
|
7827
7859
|
*/
|
|
7860
|
+
/**
|
|
7861
|
+
* Gets fired while the chart is panned by mouse drag. Calling
|
|
7862
|
+
* `event.preventDefault()` or returning `false` prevents the default panning
|
|
7863
|
+
* of the axes.
|
|
7864
|
+
*
|
|
7865
|
+
* @callback Highcharts.ChartPanCallbackFunction
|
|
7866
|
+
*
|
|
7867
|
+
* @param {Highcharts.Chart} this
|
|
7868
|
+
* The chart on which the event occurred.
|
|
7869
|
+
*
|
|
7870
|
+
* @param {Highcharts.ChartPanEventObject} event
|
|
7871
|
+
* The event that occurred.
|
|
7872
|
+
*/
|
|
7873
|
+
/**
|
|
7874
|
+
* Contains common event information. Through the `originalEvent` property you
|
|
7875
|
+
* can access the pointer event that triggered the panning.
|
|
7876
|
+
*
|
|
7877
|
+
* @interface Highcharts.ChartPanEventObject
|
|
7878
|
+
*/ /**
|
|
7879
|
+
* The pointer event that triggered the panning.
|
|
7880
|
+
* @name Highcharts.ChartPanEventObject#originalEvent
|
|
7881
|
+
* @type {Highcharts.PointerEventObject}
|
|
7882
|
+
*/ /**
|
|
7883
|
+
* Prevents the default behavior of the event.
|
|
7884
|
+
* @name Highcharts.ChartPanEventObject#preventDefault
|
|
7885
|
+
* @type {Function}
|
|
7886
|
+
*/ /**
|
|
7887
|
+
* The event target.
|
|
7888
|
+
* @name Highcharts.ChartPanEventObject#target
|
|
7889
|
+
* @type {Highcharts.Chart}
|
|
7890
|
+
*/ /**
|
|
7891
|
+
* The event type.
|
|
7892
|
+
* @name Highcharts.ChartPanEventObject#type
|
|
7893
|
+
* @type {"pan"}
|
|
7894
|
+
*/
|
|
7828
7895
|
/**
|
|
7829
7896
|
* Fires when the chart is redrawn, either after a call to `chart.redraw()` or
|
|
7830
7897
|
* after an axis, series or point is modified with the `redraw` option set to
|
|
@@ -8200,7 +8267,9 @@ Color.None = new Color(''); // Must be last static for init
|
|
|
8200
8267
|
*/
|
|
8201
8268
|
/**
|
|
8202
8269
|
* A valid color type than can be parsed and handled by Highcharts. It can be a
|
|
8203
|
-
* color string, a gradient object, or a pattern
|
|
8270
|
+
* color string (including CSS expressions), a gradient object, or a pattern
|
|
8271
|
+
* object. Read more about colors in the [Highcharts
|
|
8272
|
+
* documentation](https://www.highcharts.com/docs/chart-design-and-style/colors).
|
|
8204
8273
|
*
|
|
8205
8274
|
* @typedef {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject} Highcharts.ColorType
|
|
8206
8275
|
*/
|
|
@@ -8743,7 +8812,8 @@ Fx.timers = [];
|
|
|
8743
8812
|
* so it should be moved to the SVGRenderer.
|
|
8744
8813
|
*/
|
|
8745
8814
|
function setAnimation(animation, chart) {
|
|
8746
|
-
chart.renderer.globalAnimation =
|
|
8815
|
+
chart.renderer.globalAnimation =
|
|
8816
|
+
animation ?? chart.options.chart.animation ?? true;
|
|
8747
8817
|
}
|
|
8748
8818
|
/**
|
|
8749
8819
|
* Get the animation in object form, where a disabled animation is always
|
|
@@ -9806,7 +9876,7 @@ function format(str = '', ctx, owner) {
|
|
|
9806
9876
|
replacement = `"${replacement}"`;
|
|
9807
9877
|
}
|
|
9808
9878
|
}
|
|
9809
|
-
str = str.replace(match.find,
|
|
9879
|
+
str = str.replace(match.find, (replacement ?? ''));
|
|
9810
9880
|
});
|
|
9811
9881
|
return hasSub ? format(str, ctx, owner) : str;
|
|
9812
9882
|
}
|
|
@@ -10055,7 +10125,7 @@ var RendererUtilities;
|
|
|
10055
10125
|
boxes = boxes.map((box) => ({
|
|
10056
10126
|
size: box.size,
|
|
10057
10127
|
targets: [box.target],
|
|
10058
|
-
align:
|
|
10128
|
+
align: (box.align ?? 0.5)
|
|
10059
10129
|
}));
|
|
10060
10130
|
while (overlapping) {
|
|
10061
10131
|
// Initial positions: target centered in box
|
|
@@ -10213,8 +10283,10 @@ class SVGElement {
|
|
|
10213
10283
|
* Property value.
|
|
10214
10284
|
*/
|
|
10215
10285
|
_defaultGetter(key) {
|
|
10216
|
-
let ret =
|
|
10217
|
-
|
|
10286
|
+
let ret = (this[key + 'Value'] ??
|
|
10287
|
+
this[key] ??
|
|
10288
|
+
(this.element ? this.element.getAttribute(key) : null) ??
|
|
10289
|
+
0);
|
|
10218
10290
|
if (/^-?[\d\.]+$/.test(ret)) { // Is numerical
|
|
10219
10291
|
ret = parseFloat(ret);
|
|
10220
10292
|
}
|
|
@@ -10377,7 +10449,7 @@ class SVGElement {
|
|
|
10377
10449
|
}
|
|
10378
10450
|
alignTo = void 0; // Do not use the box
|
|
10379
10451
|
}
|
|
10380
|
-
const alignToBox =
|
|
10452
|
+
const alignToBox = alignTo ?? renderer[alignToKey] ?? renderer,
|
|
10381
10453
|
// Default: left align
|
|
10382
10454
|
x = (alignToBox.x || 0) + (alignOptions.x || 0) +
|
|
10383
10455
|
((alignToBox.width || 0) - (alignOptions.width || 0)) *
|
|
@@ -10437,7 +10509,7 @@ class SVGElement {
|
|
|
10437
10509
|
* Returns the SVGElement for chaining.
|
|
10438
10510
|
*/
|
|
10439
10511
|
animate(params, options, complete) {
|
|
10440
|
-
const animOptions = animObject(
|
|
10512
|
+
const animOptions = animObject((options ?? this.renderer.globalAnimation ?? true)), deferTime = animOptions.defer;
|
|
10441
10513
|
// When the page is hidden save resources in the background by not
|
|
10442
10514
|
// running animation at all (#9749).
|
|
10443
10515
|
if (SVGElement_doc.hidden) {
|
|
@@ -10929,7 +11001,7 @@ class SVGElement {
|
|
|
10929
11001
|
.split(','); // Ending comma
|
|
10930
11002
|
i = v.length;
|
|
10931
11003
|
while (i--) {
|
|
10932
|
-
v[i] = '' + (pInt(v[i]) *
|
|
11004
|
+
v[i] = '' + (pInt(v[i]) * (strokeWidth ?? NaN));
|
|
10933
11005
|
}
|
|
10934
11006
|
value = v.join(',').replace(/NaN/g, 'none'); // #3226
|
|
10935
11007
|
this.element.setAttribute('stroke-dasharray', value);
|
|
@@ -11069,7 +11141,7 @@ class SVGElement {
|
|
|
11069
11141
|
* The bounding box with `x`, `y`, `width` and `height` properties.
|
|
11070
11142
|
*/
|
|
11071
11143
|
getBBox(reload, rot) {
|
|
11072
|
-
const wrapper = this, { element, renderer, styles, textStr } = wrapper, { cache, cacheKeys } = renderer, isSVG = element.namespaceURI === wrapper.SVG_NS, rotation =
|
|
11144
|
+
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 &&
|
|
11073
11145
|
SVGElement.prototype.getStyle.call(element, 'font-size')) : (styles.fontSize), cacheKey = this.getBBoxCacheKey([
|
|
11074
11146
|
renderer.rootFontSize,
|
|
11075
11147
|
this.textWidth, // #7874, also useHTML
|
|
@@ -11595,7 +11667,7 @@ class SVGElement {
|
|
|
11595
11667
|
symbolAttr(hash) {
|
|
11596
11668
|
const wrapper = this;
|
|
11597
11669
|
SVGElement.symbolCustomAttribs.forEach(function (key) {
|
|
11598
|
-
wrapper[key] =
|
|
11670
|
+
wrapper[key] = (hash[key] ?? wrapper[key]);
|
|
11599
11671
|
});
|
|
11600
11672
|
wrapper.attr({
|
|
11601
11673
|
d: wrapper.renderer.symbols[wrapper.symbolName](wrapper.x, wrapper.y, wrapper.width, wrapper.height, wrapper)
|
|
@@ -11635,7 +11707,7 @@ class SVGElement {
|
|
|
11635
11707
|
}
|
|
11636
11708
|
// Replace text content and escape markup
|
|
11637
11709
|
titleNode.textContent = replaceNested(// Scan #[73]
|
|
11638
|
-
|
|
11710
|
+
(value ?? ''), // #3276, #3895
|
|
11639
11711
|
[/<[^>]*>/g, '']).replace(/</g, '<').replace(/>/g, '>');
|
|
11640
11712
|
}
|
|
11641
11713
|
/**
|
|
@@ -12413,7 +12485,7 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12413
12485
|
if ((this.textStr && this.bBox.width === 0 && this.bBox.height === 0) || this.rotation) {
|
|
12414
12486
|
this.updateBoxSize();
|
|
12415
12487
|
}
|
|
12416
|
-
const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft =
|
|
12488
|
+
const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft = (this.paddingLeft ?? padding), rotation = rot ?? (this.rotation || 0);
|
|
12417
12489
|
let bBox = {
|
|
12418
12490
|
width,
|
|
12419
12491
|
height,
|
|
@@ -12466,7 +12538,7 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12466
12538
|
this.attr({
|
|
12467
12539
|
// Alignment is available now (#3295, 0 not rendered if given
|
|
12468
12540
|
// as a value)
|
|
12469
|
-
text:
|
|
12541
|
+
text: (this.textStr ?? ''),
|
|
12470
12542
|
x: this.x || 0,
|
|
12471
12543
|
y: this.y || 0
|
|
12472
12544
|
});
|
|
@@ -12622,8 +12694,8 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12622
12694
|
/** @internal */
|
|
12623
12695
|
getPaddedWidth() {
|
|
12624
12696
|
const padding = this.padding;
|
|
12625
|
-
const paddingLeft =
|
|
12626
|
-
const paddingRight =
|
|
12697
|
+
const paddingLeft = (this.paddingLeft ?? padding);
|
|
12698
|
+
const paddingRight = (this.paddingRight ?? padding);
|
|
12627
12699
|
return ((this.widthSetting || this.bBox.width || 0) +
|
|
12628
12700
|
paddingLeft +
|
|
12629
12701
|
paddingRight);
|
|
@@ -12724,7 +12796,7 @@ function arc(cx, cy, w, h, options) {
|
|
|
12724
12796
|
const arc = [];
|
|
12725
12797
|
if (options) {
|
|
12726
12798
|
let start = options.start || 0, end = options.end || 0;
|
|
12727
|
-
const rx =
|
|
12799
|
+
const rx = (options.r ?? w), ry = (options.r ?? (h || w)),
|
|
12728
12800
|
// Subtract a small number to prevent cos and sin of start and end
|
|
12729
12801
|
// from becoming equal on 360 arcs (#1561). See "Arc proximity"
|
|
12730
12802
|
// tests at samples/unit-tests/svgrenderer/symbol/demo.js
|
|
@@ -12734,16 +12806,17 @@ function arc(cx, cy, w, h, options) {
|
|
|
12734
12806
|
start = Math.PI / 2;
|
|
12735
12807
|
end = Math.PI * 2.5 - proximity;
|
|
12736
12808
|
}
|
|
12737
|
-
const innerRadius = options.innerR, open =
|
|
12809
|
+
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),
|
|
12738
12810
|
// Proximity takes care of rounding errors around PI (#6971)
|
|
12739
|
-
longArc =
|
|
12811
|
+
longArc = options.longArc ??
|
|
12812
|
+
(end - start - Math.PI < proximity ? 0 : 1);
|
|
12740
12813
|
let arcSegment = [
|
|
12741
12814
|
'A', // ArcTo
|
|
12742
12815
|
rx, // X radius
|
|
12743
12816
|
ry, // Y radius
|
|
12744
12817
|
0, // Slanting
|
|
12745
12818
|
longArc, // Long or short arc
|
|
12746
|
-
|
|
12819
|
+
(options.clockwise ?? 1), // Clockwise
|
|
12747
12820
|
// Use a static pixel offset for full circle (#21701)
|
|
12748
12821
|
cx + (fullCircle ? 0.001 : rx * cosEnd),
|
|
12749
12822
|
cy + ry * sinEnd
|
|
@@ -13274,7 +13347,7 @@ class TextBuilder {
|
|
|
13274
13347
|
* @internal
|
|
13275
13348
|
*/
|
|
13276
13349
|
buildSVG() {
|
|
13277
|
-
const wrapper = this.svgElement, textNode = wrapper.element, renderer = wrapper.renderer, textStr =
|
|
13350
|
+
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,
|
|
13278
13351
|
// The buildText code is quite heavy, so if we're not changing
|
|
13279
13352
|
// something that affects the text, skip it (#6113).
|
|
13280
13353
|
textCache = [
|
|
@@ -13858,7 +13931,7 @@ class SVGRenderer {
|
|
|
13858
13931
|
this.url = this.getReferenceURL();
|
|
13859
13932
|
// Add description
|
|
13860
13933
|
const desc = this.createElement('desc').add();
|
|
13861
|
-
desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.
|
|
13934
|
+
desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.2'));
|
|
13862
13935
|
this.defs = this.createElement('defs').add();
|
|
13863
13936
|
this.allowHTML = allowHTML;
|
|
13864
13937
|
this.forExport = forExport;
|
|
@@ -14644,7 +14717,7 @@ class SVGRenderer {
|
|
|
14644
14717
|
this.attr('height')
|
|
14645
14718
|
});
|
|
14646
14719
|
},
|
|
14647
|
-
duration:
|
|
14720
|
+
duration: (animate ?? true) ? void 0 : 0
|
|
14648
14721
|
});
|
|
14649
14722
|
renderer.alignElements();
|
|
14650
14723
|
}
|
|
@@ -14802,8 +14875,8 @@ class SVGRenderer {
|
|
|
14802
14875
|
// The image width is not always the same as the symbol width. The
|
|
14803
14876
|
// image may be centered within the symbol, as is the case when
|
|
14804
14877
|
// image shapes are used as label backgrounds, for example in flags.
|
|
14805
|
-
img.imgwidth =
|
|
14806
|
-
img.imgheight =
|
|
14878
|
+
img.imgwidth = (options?.width ?? symbolSizes[imageSrc]?.width);
|
|
14879
|
+
img.imgheight = (options?.height ?? symbolSizes[imageSrc]?.height);
|
|
14807
14880
|
/**
|
|
14808
14881
|
* Set the size and position
|
|
14809
14882
|
*/
|
|
@@ -19282,11 +19355,11 @@ class Tick {
|
|
|
19282
19355
|
* @function Highcharts.Tick#addLabel
|
|
19283
19356
|
*/
|
|
19284
19357
|
addLabel() {
|
|
19285
|
-
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 =
|
|
19358
|
+
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;
|
|
19286
19359
|
let label = tick.label, dateTimeLabelFormat, dateTimeLabelFormats, i;
|
|
19287
19360
|
// The context value
|
|
19288
19361
|
let value = this.parameters.category || (categories ?
|
|
19289
|
-
|
|
19362
|
+
(categories[pos] ?? names[pos] ?? pos) :
|
|
19290
19363
|
pos);
|
|
19291
19364
|
if (log && isNumber(value)) {
|
|
19292
19365
|
value = correctFloat(log.lin2log(value));
|
|
@@ -19533,7 +19606,7 @@ class Tick {
|
|
|
19533
19606
|
labelOptions.y;
|
|
19534
19607
|
}
|
|
19535
19608
|
x = x +
|
|
19536
|
-
|
|
19609
|
+
(labelOptions.x ?? [0, 1, 0, -1][axis.side] * distance) +
|
|
19537
19610
|
labelOffsetCorrection +
|
|
19538
19611
|
rotCorr.x -
|
|
19539
19612
|
(tickmarkOffset && horiz ?
|
|
@@ -19588,7 +19661,7 @@ class Tick {
|
|
|
19588
19661
|
* @function Highcharts.Tick#handleOverflow
|
|
19589
19662
|
*/
|
|
19590
19663
|
handleOverflow(xy) {
|
|
19591
|
-
const tick = this, axis = this.axis, labelOptions = axis.options.labels, pxPos = xy.x, chartWidth = axis.chart.chartWidth, spacing = axis.chart.spacing, leftBound =
|
|
19664
|
+
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 = {};
|
|
19592
19665
|
let modifiedSlotWidth = slotWidth, goRight = 1, leftPos, rightPos, textWidth;
|
|
19593
19666
|
// Check if the label overshoots the chart spacing box. If it does, move
|
|
19594
19667
|
// it. If it now overshoots the slotWidth, add ellipsis.
|
|
@@ -19655,9 +19728,8 @@ class Tick {
|
|
|
19655
19728
|
* @param {number} [opacity]
|
|
19656
19729
|
*/
|
|
19657
19730
|
render(index, old, opacity) {
|
|
19658
|
-
const tick = this, axis = tick.axis, horiz = axis.horiz, pos = tick.pos, tickmarkOffset =
|
|
19659
|
-
const labelOpacity =
|
|
19660
|
-
1);
|
|
19731
|
+
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;
|
|
19732
|
+
const labelOpacity = (opacity ?? tick.label?.newOpacity ?? 1);
|
|
19661
19733
|
// Anything that is not between `axis.pos` and `axis.pos + axis.length`
|
|
19662
19734
|
// should not be visible (#20166). The `correctFloat` is for reversed
|
|
19663
19735
|
// axes in Safari.
|
|
@@ -19685,7 +19757,7 @@ class Tick {
|
|
|
19685
19757
|
* @param {number} opacity The opacity of the grid line
|
|
19686
19758
|
*/
|
|
19687
19759
|
renderGridLine(old, opacity) {
|
|
19688
|
-
const tick = this, axis = tick.axis, options = axis.options, attribs = {}, pos = tick.pos, type = tick.type, tickmarkOffset =
|
|
19760
|
+
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;
|
|
19689
19761
|
let gridLine = tick.gridLine, gridLinePath, gridLineWidth = options.gridLineWidth, gridLineColor = options.gridLineColor, dashStyle = options.gridLineDashStyle;
|
|
19690
19762
|
if (tick.type === 'minor') {
|
|
19691
19763
|
gridLineWidth = options.minorGridLineWidth;
|
|
@@ -19741,7 +19813,7 @@ class Tick {
|
|
|
19741
19813
|
* @param {number} opacity The opacity of the mark
|
|
19742
19814
|
*/
|
|
19743
19815
|
renderMark(xy, opacity) {
|
|
19744
|
-
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 =
|
|
19816
|
+
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
|
|
19745
19817
|
tickColor = options[type !== 'minor' ? 'tickColor' : 'minorTickColor'];
|
|
19746
19818
|
let mark = tick.mark;
|
|
19747
19819
|
const isNewMark = !mark;
|
|
@@ -19786,7 +19858,7 @@ class Tick {
|
|
|
19786
19858
|
* @param {number} index The index of the tick
|
|
19787
19859
|
*/
|
|
19788
19860
|
renderLabel(xy, old, opacity, index) {
|
|
19789
|
-
const tick = this, axis = tick.axis, horiz = axis.horiz, options = axis.options, label = tick.label, labelOptions = options.labels, step = labelOptions.step, tickmarkOffset =
|
|
19861
|
+
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;
|
|
19790
19862
|
let show = true;
|
|
19791
19863
|
if (label && isNumber(x)) {
|
|
19792
19864
|
label.xy = xy = tick.getLabelPosition(x, y, label, horiz, labelOptions, tickmarkOffset, index, step);
|
|
@@ -19891,12 +19963,7 @@ const { deg2rad: Axis_deg2rad } = Core_Globals;
|
|
|
19891
19963
|
|
|
19892
19964
|
|
|
19893
19965
|
|
|
19894
|
-
const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0,
|
|
19895
|
-
// If the tick interval is greater than 0.5, avoid decimals, as
|
|
19896
|
-
// linear axes are often used to render discrete values (#3363). If
|
|
19897
|
-
// a tick amount is set, allow decimals by default, as it increases
|
|
19898
|
-
// the chances for a good fit.
|
|
19899
|
-
tickInterval < 0.5 || axis.tickAmount !== void 0), !!axis.tickAmount);
|
|
19966
|
+
const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0, (axis.options.allowDecimals ?? (tickInterval < 0.5 || axis.tickAmount !== void 0)), !!axis.tickAmount);
|
|
19900
19967
|
extend(Axis_defaultOptions, { xAxis, yAxis: merge(xAxis, yAxis) });
|
|
19901
19968
|
/* *
|
|
19902
19969
|
*
|
|
@@ -20004,7 +20071,7 @@ class Axis {
|
|
|
20004
20071
|
axis.coll = coll;
|
|
20005
20072
|
fireEvent(this, 'init', { userOptions: userOptions });
|
|
20006
20073
|
// Needed in setOptions
|
|
20007
|
-
axis.opposite =
|
|
20074
|
+
axis.opposite = (userOptions.opposite ?? axis.opposite);
|
|
20008
20075
|
/**
|
|
20009
20076
|
* The side on which the axis is rendered. 0 is top, 1 is right, 2
|
|
20010
20077
|
* is bottom and 3 is left.
|
|
@@ -20012,10 +20079,9 @@ class Axis {
|
|
|
20012
20079
|
* @name Highcharts.Axis#side
|
|
20013
20080
|
* @type {number}
|
|
20014
20081
|
*/
|
|
20015
|
-
axis.side =
|
|
20082
|
+
axis.side = (userOptions.side ?? axis.side ?? (horiz ?
|
|
20016
20083
|
(axis.opposite ? 0 : 2) : // Top : bottom
|
|
20017
|
-
(axis.opposite ? 1 : 3))
|
|
20018
|
-
);
|
|
20084
|
+
(axis.opposite ? 1 : 3)));
|
|
20019
20085
|
/**
|
|
20020
20086
|
* Current options for the axis after merge of defaults and user's
|
|
20021
20087
|
* options.
|
|
@@ -20044,7 +20110,7 @@ class Axis {
|
|
|
20044
20110
|
* @name Highcharts.Axis#reversed
|
|
20045
20111
|
* @type {boolean}
|
|
20046
20112
|
*/
|
|
20047
|
-
axis.reversed =
|
|
20113
|
+
axis.reversed = (options.reversed ?? axis.reversed);
|
|
20048
20114
|
axis.visible = options.visible;
|
|
20049
20115
|
axis.zoomEnabled = options.zoomEnabled;
|
|
20050
20116
|
// Initial categories
|
|
@@ -20132,7 +20198,7 @@ class Axis {
|
|
|
20132
20198
|
* @name Highcharts.Axis#crosshair
|
|
20133
20199
|
* @type {boolean|Highcharts.AxisCrosshairOptions}
|
|
20134
20200
|
*/
|
|
20135
|
-
const crosshair =
|
|
20201
|
+
const crosshair = options.crosshair ?? splat(chart.options.tooltip.crosshairs)[isXAxis ? 0 : 1];
|
|
20136
20202
|
axis.crosshair = crosshair === true ? {} : crosshair;
|
|
20137
20203
|
// Register. Don't add it again on Axis.update().
|
|
20138
20204
|
if (chart.axes.indexOf(axis) === -1) { //
|
|
@@ -20316,8 +20382,8 @@ class Axis {
|
|
|
20316
20382
|
seriesDataMax = xExtremes.max;
|
|
20317
20383
|
}
|
|
20318
20384
|
if (xData.length) {
|
|
20319
|
-
axis.dataMin = Math.min(
|
|
20320
|
-
axis.dataMax = Math.max(
|
|
20385
|
+
axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
|
|
20386
|
+
axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
|
|
20321
20387
|
}
|
|
20322
20388
|
}
|
|
20323
20389
|
// Get dataMin and dataMax for Y axes, as well as handle
|
|
@@ -20332,11 +20398,11 @@ class Axis {
|
|
|
20332
20398
|
// doesn't have active y data, we continue with nulls
|
|
20333
20399
|
if (isNumber(dataExtremes.dataMin)) {
|
|
20334
20400
|
seriesDataMin = dataExtremes.dataMin;
|
|
20335
|
-
axis.dataMin = Math.min(
|
|
20401
|
+
axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
|
|
20336
20402
|
}
|
|
20337
20403
|
if (isNumber(dataExtremes.dataMax)) {
|
|
20338
20404
|
seriesDataMax = dataExtremes.dataMax;
|
|
20339
|
-
axis.dataMax = Math.max(
|
|
20405
|
+
axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
|
|
20340
20406
|
}
|
|
20341
20407
|
// Adjust to threshold
|
|
20342
20408
|
if (defined(threshold)) {
|
|
@@ -20491,7 +20557,7 @@ class Axis {
|
|
|
20491
20557
|
translatedValue
|
|
20492
20558
|
};
|
|
20493
20559
|
fireEvent(this, 'getPlotLinePath', evt, function (e) {
|
|
20494
|
-
translatedValue =
|
|
20560
|
+
translatedValue = translatedValue ?? axis.translate(value, void 0, void 0, old);
|
|
20495
20561
|
// Keep the translated value within sane bounds, and avoid Infinity
|
|
20496
20562
|
// to fail the isNumber test (#7709).
|
|
20497
20563
|
translatedValue = clamp(translatedValue, -1e9, 1e9);
|
|
@@ -20580,7 +20646,7 @@ class Axis {
|
|
|
20580
20646
|
getMinorTickInterval() {
|
|
20581
20647
|
const { minorTicks, minorTickInterval } = this.options;
|
|
20582
20648
|
if (minorTicks === true) {
|
|
20583
|
-
return
|
|
20649
|
+
return (minorTickInterval ?? 'auto');
|
|
20584
20650
|
}
|
|
20585
20651
|
if (minorTicks === false) {
|
|
20586
20652
|
return;
|
|
@@ -20863,7 +20929,9 @@ class Axis {
|
|
|
20863
20929
|
const seriesPointRange = hasCategories ?
|
|
20864
20930
|
1 :
|
|
20865
20931
|
(isXAxis ?
|
|
20866
|
-
|
|
20932
|
+
(series.options.pointRange ??
|
|
20933
|
+
closestPointRange ??
|
|
20934
|
+
0) :
|
|
20867
20935
|
(axis.axisPointRange || 0)), // #2806
|
|
20868
20936
|
pointPlacement = series.options.pointPlacement;
|
|
20869
20937
|
pointRange = Math.max(pointRange, seriesPointRange);
|
|
@@ -20947,14 +21015,16 @@ class Axis {
|
|
|
20947
21015
|
this.getTickAmount();
|
|
20948
21016
|
}
|
|
20949
21017
|
// Min or max set either by zooming/setExtremes or initial options
|
|
20950
|
-
hardMin =
|
|
20951
|
-
hardMax =
|
|
21018
|
+
hardMin = (axis.userMin ?? time.parse(options.min));
|
|
21019
|
+
hardMax = (axis.userMax ?? time.parse(options.max));
|
|
20952
21020
|
// Linked axis gets the extremes from the parent axis
|
|
20953
21021
|
if (linkedParent) {
|
|
20954
21022
|
axis.linkedParent = linkedParent;
|
|
20955
21023
|
linkedParentExtremes = linkedParent.getExtremes();
|
|
20956
|
-
axis.min =
|
|
20957
|
-
|
|
21024
|
+
axis.min =
|
|
21025
|
+
linkedParentExtremes.min ?? linkedParentExtremes.dataMin;
|
|
21026
|
+
axis.max =
|
|
21027
|
+
linkedParentExtremes.max ?? linkedParentExtremes.dataMax;
|
|
20958
21028
|
if (this.type !== linkedParent.type) {
|
|
20959
21029
|
// Can't link axes of different type
|
|
20960
21030
|
error(11, true, chart);
|
|
@@ -20976,14 +21046,14 @@ class Axis {
|
|
|
20976
21046
|
maxPadding = 0;
|
|
20977
21047
|
}
|
|
20978
21048
|
}
|
|
20979
|
-
axis.min =
|
|
20980
|
-
axis.max =
|
|
21049
|
+
axis.min = (hardMin ?? thresholdMin ?? dataMin);
|
|
21050
|
+
axis.max = (hardMax ?? thresholdMax ?? dataMax);
|
|
20981
21051
|
}
|
|
20982
21052
|
if (isNumber(axis.max) && isNumber(axis.min)) {
|
|
20983
21053
|
if (logarithmic) {
|
|
20984
21054
|
if (axis.positiveValuesOnly &&
|
|
20985
21055
|
!secondPass &&
|
|
20986
|
-
Math.min(axis.min,
|
|
21056
|
+
Math.min(axis.min, (dataMin ?? axis.min)) <= 0) { // #978
|
|
20987
21057
|
// Can't plot negative values on log axis
|
|
20988
21058
|
error(10, true, chart);
|
|
20989
21059
|
}
|
|
@@ -21089,16 +21159,13 @@ class Axis {
|
|
|
21089
21159
|
axis.tickInterval = tickIntervalOption = linkedParent.tickInterval;
|
|
21090
21160
|
}
|
|
21091
21161
|
else {
|
|
21092
|
-
axis.tickInterval =
|
|
21162
|
+
axis.tickInterval = tickIntervalOption ?? (this.tickAmount ?
|
|
21093
21163
|
range / Math.max(this.tickAmount - 1, 1) :
|
|
21094
|
-
|
|
21095
|
-
|
|
21096
|
-
|
|
21097
|
-
|
|
21098
|
-
|
|
21099
|
-
// Don't let it be more than the data range
|
|
21100
|
-
range * tickPixelIntervalOption /
|
|
21101
|
-
Math.max(axis.len, tickPixelIntervalOption));
|
|
21164
|
+
categories ?
|
|
21165
|
+
1 :
|
|
21166
|
+
// Don't let it be more than the data range
|
|
21167
|
+
range * tickPixelIntervalOption /
|
|
21168
|
+
Math.max(axis.len, tickPixelIntervalOption));
|
|
21102
21169
|
}
|
|
21103
21170
|
// Now we're finished detecting min and max, crop and group series data.
|
|
21104
21171
|
// This is in turn needed in order to find tick positions in ordinal
|
|
@@ -21128,12 +21195,9 @@ class Axis {
|
|
|
21128
21195
|
}
|
|
21129
21196
|
// Before normalizing the tick interval, handle minimum tick interval.
|
|
21130
21197
|
// This applies only if tickInterval is not defined.
|
|
21131
|
-
const minTickInterval =
|
|
21132
|
-
|
|
21133
|
-
|
|
21134
|
-
dateTime &&
|
|
21135
|
-
!axis.series.some((s) => !s.sorted) ?
|
|
21136
|
-
axis.closestPointRange : 0);
|
|
21198
|
+
const minTickInterval = options.minTickInterval ?? (dateTime && !axis.series.some((s) => !s.sorted) ?
|
|
21199
|
+
axis.closestPointRange :
|
|
21200
|
+
0);
|
|
21137
21201
|
if (!tickIntervalOption &&
|
|
21138
21202
|
minTickInterval &&
|
|
21139
21203
|
axis.tickInterval < minTickInterval) {
|
|
@@ -21463,7 +21527,7 @@ class Axis {
|
|
|
21463
21527
|
* @function Highcharts.Axis#adjustTickAmount
|
|
21464
21528
|
*/
|
|
21465
21529
|
adjustTickAmount() {
|
|
21466
|
-
const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold =
|
|
21530
|
+
const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold = axis.threshold ?? (axis.softThreshold ? 0 : null);
|
|
21467
21531
|
let len, i, tickInterval = axis.tickInterval, thresholdTickIndex;
|
|
21468
21532
|
const
|
|
21469
21533
|
// Extend the tickPositions by appending a position
|
|
@@ -21699,7 +21763,8 @@ class Axis {
|
|
|
21699
21763
|
offsets = options.offsets || [0, 0, 0, 0], horiz = this.horiz,
|
|
21700
21764
|
// Check for percentage based input values. Rounding fixes problems
|
|
21701
21765
|
// with column overflow and plot line filtering (#4898, #4899)
|
|
21702
|
-
width = this.width = Math.round(relativeLength(
|
|
21766
|
+
width = this.width = Math.round(relativeLength((options.width ?? chart.plotWidth - offsets[3] + offsets[1]), chart.plotWidth)), height = this.height = Math.round(relativeLength((options.height ??
|
|
21767
|
+
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));
|
|
21703
21768
|
// Expose basic values to use in Series object and navigator
|
|
21704
21769
|
this.bottom = chart.chartHeight - height - top;
|
|
21705
21770
|
this.right = chart.chartWidth - width - left;
|
|
@@ -21810,9 +21875,7 @@ class Axis {
|
|
|
21810
21875
|
* An array of tickLength and tickWidth
|
|
21811
21876
|
*/
|
|
21812
21877
|
tickSize(prefix) {
|
|
21813
|
-
const options = this.options, tickWidth =
|
|
21814
|
-
// Default to 1 on linear and datetime X axes
|
|
21815
|
-
prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
|
|
21878
|
+
const options = this.options, tickWidth = options[prefix === 'tick' ? 'tickWidth' : 'minorTickWidth'] ?? (prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
|
|
21816
21879
|
let tickLength = options[prefix === 'tick' ? 'tickLength' : 'minorTickLength'], tickSize;
|
|
21817
21880
|
if (tickWidth && tickLength) {
|
|
21818
21881
|
// Negate the length
|
|
@@ -21899,7 +21962,7 @@ class Axis {
|
|
|
21899
21962
|
newTickInterval = getStep(lineHeight * 0.75);
|
|
21900
21963
|
}
|
|
21901
21964
|
this.autoRotation = autoRotation;
|
|
21902
|
-
this.labelRotation =
|
|
21965
|
+
this.labelRotation = rotation ?? (isNumber(rotationOption) ? rotationOption : 0);
|
|
21903
21966
|
return labelOptions.step ? tickInterval : newTickInterval;
|
|
21904
21967
|
}
|
|
21905
21968
|
/**
|
|
@@ -22251,7 +22314,7 @@ class Axis {
|
|
|
22251
22314
|
titleOffsetOption = axisTitleOptions.offset;
|
|
22252
22315
|
titleMargin = defined(titleOffsetOption) ?
|
|
22253
22316
|
0 :
|
|
22254
|
-
|
|
22317
|
+
axisTitleOptions.margin ?? (horiz ? 5 : 10);
|
|
22255
22318
|
}
|
|
22256
22319
|
}
|
|
22257
22320
|
// Render the axis line
|
|
@@ -22762,9 +22825,9 @@ class Axis {
|
|
|
22762
22825
|
}
|
|
22763
22826
|
else if (defined(point)) {
|
|
22764
22827
|
// #3834
|
|
22765
|
-
pos =
|
|
22766
|
-
point.crosshairPos :
|
|
22767
|
-
null
|
|
22828
|
+
pos = (this.coll !== 'colorAxis' ?
|
|
22829
|
+
point.crosshairPos :
|
|
22830
|
+
null) ?? (this.isXAxis ?
|
|
22768
22831
|
point.plotX :
|
|
22769
22832
|
this.len - point.plotY);
|
|
22770
22833
|
}
|
|
@@ -22773,7 +22836,7 @@ class Axis {
|
|
|
22773
22836
|
// Value, only used on radial
|
|
22774
22837
|
value: point && (this.isXAxis ?
|
|
22775
22838
|
point.x :
|
|
22776
|
-
|
|
22839
|
+
(point.stackY ?? point.y ?? void 0)),
|
|
22777
22840
|
translatedValue: pos
|
|
22778
22841
|
};
|
|
22779
22842
|
if (chart.polar) {
|
|
@@ -22806,7 +22869,7 @@ class Axis {
|
|
|
22806
22869
|
(categorized ? 'category ' : 'thin ') +
|
|
22807
22870
|
(options.className || ''))
|
|
22808
22871
|
.attr({
|
|
22809
|
-
zIndex:
|
|
22872
|
+
zIndex: (options.zIndex ?? 2)
|
|
22810
22873
|
})
|
|
22811
22874
|
.clip(options.clip === false ?
|
|
22812
22875
|
void 0 :
|
|
@@ -22821,7 +22884,7 @@ class Axis {
|
|
|
22821
22884
|
// eslint-disable-next-line max-len
|
|
22822
22885
|
'var(--highcharts-highlight-color-20)').setOpacity(0.25).get() :
|
|
22823
22886
|
'var(--highcharts-neutral-color-20)'),
|
|
22824
|
-
'stroke-width':
|
|
22887
|
+
'stroke-width': (options.width ?? 1)
|
|
22825
22888
|
}).css({
|
|
22826
22889
|
'pointer-events': 'none'
|
|
22827
22890
|
});
|
|
@@ -22887,7 +22950,7 @@ class Axis {
|
|
|
22887
22950
|
this.destroy(true);
|
|
22888
22951
|
this.init(chart, options);
|
|
22889
22952
|
chart.isDirtyBox = true;
|
|
22890
|
-
if (
|
|
22953
|
+
if (redraw ?? true) {
|
|
22891
22954
|
chart.redraw();
|
|
22892
22955
|
}
|
|
22893
22956
|
}
|
|
@@ -22917,7 +22980,7 @@ class Axis {
|
|
|
22917
22980
|
chart.orderItems(coll);
|
|
22918
22981
|
this.destroy();
|
|
22919
22982
|
chart.isDirtyBox = true;
|
|
22920
|
-
if (
|
|
22983
|
+
if (redraw ?? true) {
|
|
22921
22984
|
chart.redraw();
|
|
22922
22985
|
}
|
|
22923
22986
|
}
|
|
@@ -23573,8 +23636,10 @@ var LogarithmicAxis;
|
|
|
23573
23636
|
tickIntervalOption, tickPixelIntervalOption = options.tickPixelInterval / (minor ? 5 : 1), totalPixelLength = minor ?
|
|
23574
23637
|
axisLength / axis.tickPositions.length :
|
|
23575
23638
|
axisLength;
|
|
23576
|
-
interval =
|
|
23577
|
-
|
|
23639
|
+
interval = filteredTickIntervalOption ??
|
|
23640
|
+
log.minorAutoInterval ??
|
|
23641
|
+
(realMax - realMin) * tickPixelIntervalOption /
|
|
23642
|
+
(totalPixelLength || 1);
|
|
23578
23643
|
interval = normalizeTickInterval(interval);
|
|
23579
23644
|
positions = axis.getLinearTickPositions(interval, realMin, realMax).map(log.log2lin);
|
|
23580
23645
|
if (!minor) {
|
|
@@ -24003,7 +24068,8 @@ class PlotLineOrBand {
|
|
|
24003
24068
|
if (!chart.styledMode) {
|
|
24004
24069
|
if (isLine) {
|
|
24005
24070
|
attribs.stroke = color || 'var(--highcharts-neutral-color-40)';
|
|
24006
|
-
attribs['stroke-width'] =
|
|
24071
|
+
attribs['stroke-width'] =
|
|
24072
|
+
options.width ?? 1;
|
|
24007
24073
|
if (options.dashStyle) {
|
|
24008
24074
|
attribs.dashstyle = options.dashStyle;
|
|
24009
24075
|
}
|
|
@@ -25135,7 +25201,8 @@ class Tooltip {
|
|
|
25135
25201
|
'highcharts-label',
|
|
25136
25202
|
isHeader && 'highcharts-tooltip-header',
|
|
25137
25203
|
isSplit ? 'highcharts-tooltip-box' : 'highcharts-tooltip',
|
|
25138
|
-
!isHeader &&
|
|
25204
|
+
!isHeader &&
|
|
25205
|
+
'highcharts-color-' + (point.colorIndex ?? series.colorIndex),
|
|
25139
25206
|
seriesOptions?.className
|
|
25140
25207
|
].filter(isString).join(' ');
|
|
25141
25208
|
}
|
|
@@ -25320,7 +25387,8 @@ class Tooltip {
|
|
|
25320
25387
|
}
|
|
25321
25388
|
// The far side is right or bottom
|
|
25322
25389
|
const preferFarSide = !this.followPointer &&
|
|
25323
|
-
|
|
25390
|
+
(point.ttBelow ??
|
|
25391
|
+
(polar ? false : !inverted === flipped)), // #4984
|
|
25324
25392
|
/*
|
|
25325
25393
|
* Handle the preferred dimension. When the preferred dimension is
|
|
25326
25394
|
* tooltip on top or bottom of the point, it will look for space
|
|
@@ -25447,7 +25515,7 @@ class Tooltip {
|
|
|
25447
25515
|
const tooltip = this;
|
|
25448
25516
|
// Disallow duplicate timers (#1728, #1766)
|
|
25449
25517
|
clearTimeouts(this);
|
|
25450
|
-
delay =
|
|
25518
|
+
delay = (delay ?? this.options.hideDelay);
|
|
25451
25519
|
if (!this.isHidden) {
|
|
25452
25520
|
this.hideTimer = syncTimeout(function () {
|
|
25453
25521
|
const label = tooltip.getLabel();
|
|
@@ -25550,7 +25618,9 @@ class Tooltip {
|
|
|
25550
25618
|
* Split tooltip does not support outside in the first iteration. Should
|
|
25551
25619
|
* not be too complicated to implement.
|
|
25552
25620
|
*/
|
|
25553
|
-
this.outside =
|
|
25621
|
+
this.outside =
|
|
25622
|
+
options.outside ??
|
|
25623
|
+
Boolean(chart.scrollablePixelsX || chart.scrollablePixelsY);
|
|
25554
25624
|
}
|
|
25555
25625
|
shouldStickOnContact(pointerEvent) {
|
|
25556
25626
|
return !!(!this.followPointer &&
|
|
@@ -25630,7 +25700,7 @@ class Tooltip {
|
|
|
25630
25700
|
point.points = void 0;
|
|
25631
25701
|
// Register the current series
|
|
25632
25702
|
const currentSeries = point.series;
|
|
25633
|
-
this.distance =
|
|
25703
|
+
this.distance = (currentSeries.tooltipOptions.distance ?? 16);
|
|
25634
25704
|
// Update the inner HTML
|
|
25635
25705
|
if (text === false) {
|
|
25636
25706
|
this.hide();
|
|
@@ -25903,7 +25973,7 @@ class Tooltip {
|
|
|
25903
25973
|
anchorY,
|
|
25904
25974
|
boxWidth,
|
|
25905
25975
|
point,
|
|
25906
|
-
rank:
|
|
25976
|
+
rank: boxPosition.rank ?? (isHeader ? 1 : 0),
|
|
25907
25977
|
size,
|
|
25908
25978
|
target: boxPosition.y,
|
|
25909
25979
|
tt,
|
|
@@ -27248,7 +27318,7 @@ class Point {
|
|
|
27248
27318
|
*/
|
|
27249
27319
|
select(selected, accumulate) {
|
|
27250
27320
|
const point = this, series = point.series, chart = series.chart;
|
|
27251
|
-
selected =
|
|
27321
|
+
selected = (selected ?? !point.selected);
|
|
27252
27322
|
this.selectedStaging = selected;
|
|
27253
27323
|
// Fire the event with the default handler
|
|
27254
27324
|
point.firePointEvent(selected ? 'select' : 'unselect', { accumulate: accumulate }, function () {
|
|
@@ -27499,7 +27569,7 @@ class Point {
|
|
|
27499
27569
|
});
|
|
27500
27570
|
halo.attr({
|
|
27501
27571
|
'class': 'highcharts-halo highcharts-color-' +
|
|
27502
|
-
|
|
27572
|
+
(point.colorIndex ?? series.colorIndex) +
|
|
27503
27573
|
(point.className ? ' ' + point.className : ''),
|
|
27504
27574
|
'visibility': markerVisibility,
|
|
27505
27575
|
'zIndex': -1 // #4929, #8276
|
|
@@ -28232,7 +28302,7 @@ class Pointer {
|
|
|
28232
28302
|
const hoverPoints = [], useExisting = !!(isDirectTouch && existingHoverPoint), filter = function (s) {
|
|
28233
28303
|
return (s.visible &&
|
|
28234
28304
|
!(!shared && s.directTouch) && // #3821
|
|
28235
|
-
|
|
28305
|
+
(s.options.enableMouseTracking ?? true));
|
|
28236
28306
|
};
|
|
28237
28307
|
let hoverSeries = existingHoverSeries,
|
|
28238
28308
|
// Which series to look in for the hover point
|
|
@@ -28418,8 +28488,8 @@ class Pointer {
|
|
|
28418
28488
|
const ePos = (touches ?
|
|
28419
28489
|
touches.length ?
|
|
28420
28490
|
touches.item(0) :
|
|
28421
|
-
(
|
|
28422
|
-
|
|
28491
|
+
(touches.changedTouches ??
|
|
28492
|
+
e.changedTouches)[0] :
|
|
28423
28493
|
e);
|
|
28424
28494
|
// Get mouse position
|
|
28425
28495
|
if (!chartPosition) {
|
|
@@ -28493,7 +28563,7 @@ class Pointer {
|
|
|
28493
28563
|
* @function Highcharts.Pointer#onContainerMouseLeave
|
|
28494
28564
|
*/
|
|
28495
28565
|
onContainerMouseLeave(e) {
|
|
28496
|
-
const { pointer } = Pointer_charts[
|
|
28566
|
+
const { pointer } = Pointer_charts[(Pointer.hoverChartIndex ?? -1)] || {};
|
|
28497
28567
|
e = this.normalize(e);
|
|
28498
28568
|
this.onContainerMouseMove(e);
|
|
28499
28569
|
// #4886, MS Touch end fires mouseleave but with no related target
|
|
@@ -28593,7 +28663,7 @@ class Pointer {
|
|
|
28593
28663
|
if (e?.touches && this.hasPinchMoved) {
|
|
28594
28664
|
e?.preventDefault?.();
|
|
28595
28665
|
}
|
|
28596
|
-
Pointer_charts[
|
|
28666
|
+
Pointer_charts[(Pointer.hoverChartIndex ?? -1)]
|
|
28597
28667
|
?.pointer
|
|
28598
28668
|
?.drop(e);
|
|
28599
28669
|
}
|
|
@@ -29100,7 +29170,7 @@ class Pointer {
|
|
|
29100
29170
|
*/
|
|
29101
29171
|
setHoverChartIndex(e) {
|
|
29102
29172
|
const chart = this.chart;
|
|
29103
|
-
const hoverChart = Core_Globals.charts[
|
|
29173
|
+
const hoverChart = Core_Globals.charts[(Pointer.hoverChartIndex ?? -1)];
|
|
29104
29174
|
if (hoverChart &&
|
|
29105
29175
|
hoverChart !== chart) {
|
|
29106
29176
|
const relatedTargetObj = { relatedTarget: chart.container };
|
|
@@ -29146,7 +29216,7 @@ class Pointer {
|
|
|
29146
29216
|
Math.pow(pinchDown[0].chartY - e.chartY, 2)) >= 16 :
|
|
29147
29217
|
false;
|
|
29148
29218
|
}
|
|
29149
|
-
if (
|
|
29219
|
+
if (hasMoved ?? true) {
|
|
29150
29220
|
this.pinch(e);
|
|
29151
29221
|
}
|
|
29152
29222
|
}
|
|
@@ -29189,7 +29259,7 @@ class Pointer {
|
|
|
29189
29259
|
let zoomType = chart.zooming.type || '', zoomX, zoomY;
|
|
29190
29260
|
// Look for the pinchType option
|
|
29191
29261
|
if (/touch/.test(e.type)) {
|
|
29192
|
-
zoomType =
|
|
29262
|
+
zoomType = (chart.zooming.pinchType ?? zoomType);
|
|
29193
29263
|
}
|
|
29194
29264
|
this.zoomX = zoomX = /x/.test(zoomType);
|
|
29195
29265
|
this.zoomY = zoomY = /y/.test(zoomType);
|
|
@@ -29963,7 +30033,7 @@ var LegendSymbol;
|
|
|
29963
30033
|
// Draw the marker
|
|
29964
30034
|
if (markerOptions && markerOptions.enabled !== false && symbolWidth) {
|
|
29965
30035
|
// Do not allow the marker to be larger than the symbolHeight
|
|
29966
|
-
let radius = Math.min(
|
|
30036
|
+
let radius = Math.min((markerOptions.radius ?? generalRadius), generalRadius);
|
|
29967
30037
|
// Restrict symbol markers size
|
|
29968
30038
|
if (symbol.indexOf('url') === 0) {
|
|
29969
30039
|
markerOptions = merge(markerOptions, {
|
|
@@ -32984,7 +33054,7 @@ class Series {
|
|
|
32984
33054
|
if (chartSeries.length) {
|
|
32985
33055
|
lastSeries = chartSeries[chartSeries.length - 1];
|
|
32986
33056
|
}
|
|
32987
|
-
series._i =
|
|
33057
|
+
series._i = (lastSeries?._i ?? -1) + 1;
|
|
32988
33058
|
series.opacity = series.options.opacity;
|
|
32989
33059
|
// Insert the series and re-order all series above the insertion
|
|
32990
33060
|
// point.
|
|
@@ -33031,7 +33101,7 @@ class Series {
|
|
|
33031
33101
|
// Apply if the series xAxis or yAxis option matches
|
|
33032
33102
|
// the number of the axis, or if undefined, use the
|
|
33033
33103
|
// first axis
|
|
33034
|
-
if (
|
|
33104
|
+
if ((seriesOptions[coll] ?? 0) === axis.index ||
|
|
33035
33105
|
(typeof seriesOptions[coll] !==
|
|
33036
33106
|
'undefined' &&
|
|
33037
33107
|
seriesOptions[coll] === axisOptions.id)) {
|
|
@@ -33074,8 +33144,12 @@ class Series {
|
|
|
33074
33144
|
* @function Highcharts.Series#hasMarkerChanged
|
|
33075
33145
|
*/
|
|
33076
33146
|
hasMarkerChanged(options, oldOptions) {
|
|
33077
|
-
const marker = options.marker, oldMarker = oldOptions.marker
|
|
33078
|
-
|
|
33147
|
+
const marker = options.marker, oldMarker = oldOptions.marker;
|
|
33148
|
+
// Note that `marker` holds the full, merged object including
|
|
33149
|
+
// `plotOptions`, while `oldMarker` is the user-defined series-level
|
|
33150
|
+
// options only. We may need to refactor that in the future if more
|
|
33151
|
+
// issues like #24057 arise.
|
|
33152
|
+
return marker && oldMarker && ((oldMarker.enabled && !marker.enabled) ||
|
|
33079
33153
|
oldMarker.symbol !== marker.symbol || // #10870, #15946
|
|
33080
33154
|
oldMarker.height !== marker.height || // #16274
|
|
33081
33155
|
oldMarker.width !== marker.width // #16274
|
|
@@ -33094,7 +33168,8 @@ class Series {
|
|
|
33094
33168
|
time.parse(options.pointStart) ??
|
|
33095
33169
|
0;
|
|
33096
33170
|
let pointInterval;
|
|
33097
|
-
this.pointInterval = pointInterval =
|
|
33171
|
+
this.pointInterval = pointInterval =
|
|
33172
|
+
this.pointInterval ?? options.pointInterval ?? 1;
|
|
33098
33173
|
if (relativeXValue && isNumber(x)) {
|
|
33099
33174
|
pointInterval *= x;
|
|
33100
33175
|
}
|
|
@@ -33166,9 +33241,13 @@ class Series {
|
|
|
33166
33241
|
);
|
|
33167
33242
|
// When shared tooltip, stickyTracking is true by default,
|
|
33168
33243
|
// unless user says otherwise.
|
|
33169
|
-
this.stickyTracking =
|
|
33170
|
-
|
|
33171
|
-
|
|
33244
|
+
this.stickyTracking =
|
|
33245
|
+
seriesUserOptions.stickyTracking ??
|
|
33246
|
+
userPlotOptionsType.stickyTracking ??
|
|
33247
|
+
userPlotOptionsSeries.stickyTracking ??
|
|
33248
|
+
(this.tooltipOptions.shared && !this.noSharedTooltip ?
|
|
33249
|
+
true :
|
|
33250
|
+
options.stickyTracking);
|
|
33172
33251
|
// Delete marker object if not allowed (#1125)
|
|
33173
33252
|
if (typeOptions.marker === null) {
|
|
33174
33253
|
delete options.marker;
|
|
@@ -33246,7 +33325,9 @@ class Series {
|
|
|
33246
33325
|
if (!value) {
|
|
33247
33326
|
// Pick up either the colorIndex option, or the series.colorIndex
|
|
33248
33327
|
// after Series.update()
|
|
33249
|
-
setting =
|
|
33328
|
+
setting = prop === 'color' ?
|
|
33329
|
+
(this.options.colorIndex ?? this[indexName]) :
|
|
33330
|
+
this[indexName];
|
|
33250
33331
|
if (defined(setting)) { // After Series.update()
|
|
33251
33332
|
i = setting;
|
|
33252
33333
|
}
|
|
@@ -34273,7 +34354,9 @@ class Series {
|
|
|
34273
34354
|
yValue = stackValues[1];
|
|
34274
34355
|
if (lowValue === stackThreshold &&
|
|
34275
34356
|
stackIndicator.key === stacks[xValue].base) {
|
|
34276
|
-
lowValue =
|
|
34357
|
+
lowValue = isNumber(threshold) ?
|
|
34358
|
+
threshold :
|
|
34359
|
+
yAxis.min;
|
|
34277
34360
|
}
|
|
34278
34361
|
// #1200, #1232
|
|
34279
34362
|
if (yAxis.positiveValuesOnly &&
|
|
@@ -34281,7 +34364,7 @@ class Series {
|
|
|
34281
34364
|
lowValue <= 0) {
|
|
34282
34365
|
lowValue = void 0;
|
|
34283
34366
|
}
|
|
34284
|
-
point.total = point.stackTotal =
|
|
34367
|
+
point.total = point.stackTotal = stackItem.total ?? void 0;
|
|
34285
34368
|
point.percentage = defined(point.y) && stackItem.total ?
|
|
34286
34369
|
(point.y / stackItem.total * 100) : void 0;
|
|
34287
34370
|
point.stackY = yValue;
|
|
@@ -34531,7 +34614,9 @@ class Series {
|
|
|
34531
34614
|
// Only draw the point if y is defined
|
|
34532
34615
|
if (shouldDrawMarker) {
|
|
34533
34616
|
// Shortcuts
|
|
34534
|
-
const symbol =
|
|
34617
|
+
const symbol = pointMarkerOptions.symbol ??
|
|
34618
|
+
series.symbol ??
|
|
34619
|
+
'rect';
|
|
34535
34620
|
markerAttribs = series.markerAttribs(point, point.selected ? 'select' : '');
|
|
34536
34621
|
const isInside = point.isInside !== false;
|
|
34537
34622
|
if (!graphic &&
|
|
@@ -34799,7 +34884,7 @@ class Series {
|
|
|
34799
34884
|
// Reset
|
|
34800
34885
|
zones.forEach((zone) => {
|
|
34801
34886
|
zone.lineClip = [];
|
|
34802
|
-
zone.translated = clamp(axis.toPixels(
|
|
34887
|
+
zone.translated = clamp(axis.toPixels((zone.value ?? axisMax), true) || 0, 0, len);
|
|
34803
34888
|
});
|
|
34804
34889
|
// The use of the Color Threshold assumes there are no gaps so it is
|
|
34805
34890
|
// safe to hide the original graph and area unless it is not
|
|
@@ -35455,7 +35540,7 @@ class Series {
|
|
|
35455
35540
|
const series = this, seriesOptions = series.options, { chart, data, dataTable: table, xAxis } = series, names = xAxis?.hasNames && xAxis.names, dataOptions = seriesOptions.data, xData = series.getColumn('x');
|
|
35456
35541
|
let isInTheMiddle, i;
|
|
35457
35542
|
// Optional redraw, defaults to true
|
|
35458
|
-
redraw =
|
|
35543
|
+
redraw = (redraw ?? true);
|
|
35459
35544
|
// Get options and push the point to xData, yData and series.options. In
|
|
35460
35545
|
// series.generatePoints the Point instance will be created on demand
|
|
35461
35546
|
// and pushed to the series.data array.
|
|
@@ -35566,7 +35651,7 @@ class Series {
|
|
|
35566
35651
|
}
|
|
35567
35652
|
};
|
|
35568
35653
|
setAnimation(animation, chart);
|
|
35569
|
-
redraw =
|
|
35654
|
+
redraw = (redraw ?? true);
|
|
35570
35655
|
// Fire the event with a default handler of removing the point
|
|
35571
35656
|
if (point) {
|
|
35572
35657
|
point.firePointEvent('remove', null, remove);
|
|
@@ -35609,7 +35694,7 @@ class Series {
|
|
|
35609
35694
|
// Redraw
|
|
35610
35695
|
chart.isDirtyLegend = chart.isDirtyBox = true;
|
|
35611
35696
|
chart.linkSeries(keepEvents);
|
|
35612
|
-
if (
|
|
35697
|
+
if (redraw ?? true) {
|
|
35613
35698
|
chart.redraw(animation);
|
|
35614
35699
|
}
|
|
35615
35700
|
}
|
|
@@ -35826,7 +35911,7 @@ class Series {
|
|
|
35826
35911
|
series.isDirtyData = true;
|
|
35827
35912
|
}
|
|
35828
35913
|
fireEvent(this, 'afterUpdate');
|
|
35829
|
-
if (
|
|
35914
|
+
if (redraw ?? true) {
|
|
35830
35915
|
chart.redraw(keepPoints ? void 0 : false);
|
|
35831
35916
|
}
|
|
35832
35917
|
}
|
|
@@ -35843,12 +35928,12 @@ class Series {
|
|
|
35843
35928
|
* @internal
|
|
35844
35929
|
*/
|
|
35845
35930
|
hasOptionChanged(optionName) {
|
|
35846
|
-
const chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName], plotOptionsOption =
|
|
35931
|
+
const chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName], plotOptionsOption = (plotOptions?.[this.type]?.[optionName] ?? plotOptions?.series?.[optionName]);
|
|
35847
35932
|
// Check if `plotOptions` are defined already, #19203
|
|
35848
35933
|
if (oldOption && !defined(plotOptionsOption)) {
|
|
35849
35934
|
return option !== oldOption;
|
|
35850
35935
|
}
|
|
35851
|
-
return option !==
|
|
35936
|
+
return option !== (plotOptionsOption ?? option);
|
|
35852
35937
|
}
|
|
35853
35938
|
/**
|
|
35854
35939
|
* Runs on mouse over the series graphical items.
|
|
@@ -35922,7 +36007,8 @@ class Series {
|
|
|
35922
36007
|
const series = this, { graph, options } = series, { inactiveOtherPoints, states: stateOptions = {} } = options,
|
|
35923
36008
|
// By default a quick animation to hover/inactive,
|
|
35924
36009
|
// slower to un-hover
|
|
35925
|
-
stateAnimation =
|
|
36010
|
+
stateAnimation = stateOptions[state || 'normal']?.animation ??
|
|
36011
|
+
series.chart.options.chart.animation;
|
|
35926
36012
|
let { lineWidth, opacity } = options;
|
|
35927
36013
|
state = state || '';
|
|
35928
36014
|
if (series.state !== state) {
|
|
@@ -36808,7 +36894,7 @@ class Legend {
|
|
|
36808
36894
|
* @param {Highcharts.LegendOptions} options
|
|
36809
36895
|
*/
|
|
36810
36896
|
setOptions(options) {
|
|
36811
|
-
const padding =
|
|
36897
|
+
const padding = (options.padding ?? 8);
|
|
36812
36898
|
/**
|
|
36813
36899
|
* Legend options.
|
|
36814
36900
|
*
|
|
@@ -36825,7 +36911,7 @@ class Legend {
|
|
|
36825
36911
|
this.itemMarginBottom = options.itemMarginBottom;
|
|
36826
36912
|
this.padding = padding;
|
|
36827
36913
|
this.initialItemY = padding - 5; // 5 is pixels above the text
|
|
36828
|
-
this.symbolWidth =
|
|
36914
|
+
this.symbolWidth = (options.symbolWidth ?? 16);
|
|
36829
36915
|
this.pages = [];
|
|
36830
36916
|
this.proximate = options.layout === 'proximate' && !this.chart.inverted;
|
|
36831
36917
|
// #12705: baseline has to be reset on every update
|
|
@@ -36859,7 +36945,7 @@ class Legend {
|
|
|
36859
36945
|
}
|
|
36860
36946
|
this.destroy();
|
|
36861
36947
|
chart.isDirtyLegend = chart.isDirtyBox = true;
|
|
36862
|
-
if (
|
|
36948
|
+
if (redraw ?? true) {
|
|
36863
36949
|
chart.redraw();
|
|
36864
36950
|
}
|
|
36865
36951
|
fireEvent(this, 'afterUpdate', { redraw });
|
|
@@ -37097,7 +37183,7 @@ class Legend {
|
|
|
37097
37183
|
* The item to render.
|
|
37098
37184
|
*/
|
|
37099
37185
|
renderItem(item) {
|
|
37100
|
-
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 ?
|
|
37186
|
+
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 ?
|
|
37101
37187
|
item.series :
|
|
37102
37188
|
item, seriesOptions = series.options, showCheckbox = (!!legend.createCheckboxForItem &&
|
|
37103
37189
|
seriesOptions &&
|
|
@@ -37143,9 +37229,11 @@ class Legend {
|
|
|
37143
37229
|
legend.fontMetrics.f + 3 + legend.itemMarginTop;
|
|
37144
37230
|
label.attr('y', legend.baseline);
|
|
37145
37231
|
legend.symbolHeight =
|
|
37146
|
-
|
|
37232
|
+
(options.symbolHeight ?? legend.fontMetrics.f);
|
|
37147
37233
|
if (options.squareSymbol) {
|
|
37148
|
-
legend.symbolWidth =
|
|
37234
|
+
legend.symbolWidth =
|
|
37235
|
+
options.symbolWidth ??
|
|
37236
|
+
Math.max(legend.symbolHeight, 16);
|
|
37149
37237
|
itemExtraWidth = legend.symbolWidth + symbolPadding +
|
|
37150
37238
|
itemDistance + (showCheckbox ? 20 : 0);
|
|
37151
37239
|
if (ltr) {
|
|
@@ -37197,7 +37285,7 @@ class Legend {
|
|
|
37197
37285
|
* @param {Highcharts.BubbleLegendItem|Highcharts.Point|Highcharts.Series} item
|
|
37198
37286
|
*/
|
|
37199
37287
|
layoutItem(item) {
|
|
37200
|
-
const options = this.options, padding = this.padding, horizontal = options.layout === 'horizontal', itemHeight = item.itemHeight, itemMarginBottom = this.itemMarginBottom, itemMarginTop = this.itemMarginTop, itemDistance = horizontal ?
|
|
37288
|
+
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 &&
|
|
37201
37289
|
this.totalItemWidth > maxLegendWidth) ?
|
|
37202
37290
|
this.maxItemWidth :
|
|
37203
37291
|
item.itemWidth, legendItem = item.legendItem || {};
|
|
@@ -37251,7 +37339,9 @@ class Legend {
|
|
|
37251
37339
|
const seriesOptions = series?.options;
|
|
37252
37340
|
// Handle showInLegend. If the series is linked to another series,
|
|
37253
37341
|
// defaults to false.
|
|
37254
|
-
if (series &&
|
|
37342
|
+
if (series &&
|
|
37343
|
+
(seriesOptions.showInLegend ??
|
|
37344
|
+
(!defined(seriesOptions.linkedTo)))) {
|
|
37255
37345
|
// Use points or series for the legend item depending on
|
|
37256
37346
|
// legendType
|
|
37257
37347
|
allItems = allItems.concat(series.legendItem?.labels ||
|
|
@@ -37533,7 +37623,7 @@ class Legend {
|
|
|
37533
37623
|
* @function Highcharts.Legend#handleOverflow
|
|
37534
37624
|
*/
|
|
37535
37625
|
handleOverflow(legendHeight) {
|
|
37536
|
-
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 =
|
|
37626
|
+
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) {
|
|
37537
37627
|
if (typeof height === 'number') {
|
|
37538
37628
|
clipRect.attr({
|
|
37539
37629
|
height: height
|
|
@@ -37579,7 +37669,7 @@ class Legend {
|
|
|
37579
37669
|
navOptions.enabled !== false) {
|
|
37580
37670
|
this.clipHeight = clipHeight =
|
|
37581
37671
|
Math.max(spaceHeight - 20 - this.titleHeight - padding, 0);
|
|
37582
|
-
this.currentPage =
|
|
37672
|
+
this.currentPage = (this.currentPage ?? 1);
|
|
37583
37673
|
this.fullHeight = legendHeight;
|
|
37584
37674
|
// Fill pages with Y positions so that the top of each a legend item
|
|
37585
37675
|
// defines the scroll top for each page (#2098)
|
|
@@ -37739,7 +37829,7 @@ class Legend {
|
|
|
37739
37829
|
this.currentPage = currentPage;
|
|
37740
37830
|
this.positionCheckboxes();
|
|
37741
37831
|
// Fire event after scroll animation is complete
|
|
37742
|
-
const animOptions = animObject(
|
|
37832
|
+
const animOptions = animObject((animation ?? chart.renderer.globalAnimation ?? true));
|
|
37743
37833
|
syncTimeout(() => {
|
|
37744
37834
|
fireEvent(this, 'afterScroll', { currentPage });
|
|
37745
37835
|
}, animOptions.duration);
|
|
@@ -38180,7 +38270,7 @@ class Chart {
|
|
|
38180
38270
|
*/
|
|
38181
38271
|
static chart(a, b, c) {
|
|
38182
38272
|
const chart = new Chart(a, b, c);
|
|
38183
|
-
return chart.promise
|
|
38273
|
+
return chart.promise ?? chart;
|
|
38184
38274
|
}
|
|
38185
38275
|
// Implementation
|
|
38186
38276
|
constructor(a,
|
|
@@ -38221,10 +38311,10 @@ class Chart {
|
|
|
38221
38311
|
const chart = this, options = chart.options.chart, zooming = options.zooming;
|
|
38222
38312
|
chart.zooming = {
|
|
38223
38313
|
...zooming,
|
|
38224
|
-
type:
|
|
38225
|
-
key:
|
|
38226
|
-
pinchType:
|
|
38227
|
-
singleTouch:
|
|
38314
|
+
type: (options.zoomType ?? zooming.type),
|
|
38315
|
+
key: (options.zoomKey ?? zooming.key),
|
|
38316
|
+
pinchType: (options.pinchType ?? zooming.pinchType),
|
|
38317
|
+
singleTouch: options.zoomBySingleTouch ?? zooming.singleTouch ?? false,
|
|
38228
38318
|
resetButton: merge(zooming.resetButton, options.resetZoomButton)
|
|
38229
38319
|
};
|
|
38230
38320
|
}
|
|
@@ -38776,7 +38866,7 @@ class Chart {
|
|
|
38776
38866
|
// inspect the generated series.points.
|
|
38777
38867
|
series.getPointsCollection()
|
|
38778
38868
|
.forEach((point) => {
|
|
38779
|
-
if (
|
|
38869
|
+
if (point.selectedStaging ?? point.selected) {
|
|
38780
38870
|
acc.push(point);
|
|
38781
38871
|
}
|
|
38782
38872
|
});
|
|
@@ -39214,7 +39304,7 @@ class Chart {
|
|
|
39214
39304
|
chartWidth = chart.chartWidth;
|
|
39215
39305
|
if (!chart.styledMode) {
|
|
39216
39306
|
css(container, {
|
|
39217
|
-
width:
|
|
39307
|
+
width: (optionsChart.style?.width ?? chartWidth + 'px')
|
|
39218
39308
|
});
|
|
39219
39309
|
}
|
|
39220
39310
|
}
|
|
@@ -39857,7 +39947,7 @@ class Chart {
|
|
|
39857
39947
|
const mockTick = new Axis_Tick(axis, 0, '', true), label = mockTick.createLabel('x', labels);
|
|
39858
39948
|
mockTick.destroy();
|
|
39859
39949
|
if (label &&
|
|
39860
|
-
|
|
39950
|
+
(labels.reserveSpace ?? !isNumber(options.crossing))) {
|
|
39861
39951
|
expectedSpace = label.getBBox().height +
|
|
39862
39952
|
labels.distance +
|
|
39863
39953
|
Math.max(isNumber(offset) ? offset : 0, 0);
|
|
@@ -40192,7 +40282,7 @@ class Chart {
|
|
|
40192
40282
|
const chart = this;
|
|
40193
40283
|
let series;
|
|
40194
40284
|
if (options) { // <- not necessary
|
|
40195
|
-
redraw =
|
|
40285
|
+
redraw = (redraw ?? true); // Defaults to true
|
|
40196
40286
|
fireEvent(chart, 'addSeries', { options: options }, function () {
|
|
40197
40287
|
series = chart.initSeries(options);
|
|
40198
40288
|
chart.isDirtyLegend = true;
|
|
@@ -40283,7 +40373,7 @@ class Chart {
|
|
|
40283
40373
|
*/
|
|
40284
40374
|
createAxis(coll, options) {
|
|
40285
40375
|
const axis = new Axis_Axis(this, options.axis, coll);
|
|
40286
|
-
if (
|
|
40376
|
+
if (options.redraw ?? true) {
|
|
40287
40377
|
this.redraw(options.animation);
|
|
40288
40378
|
}
|
|
40289
40379
|
return axis;
|
|
@@ -40331,7 +40421,7 @@ class Chart {
|
|
|
40331
40421
|
}
|
|
40332
40422
|
loadingDiv.className = 'highcharts-loading';
|
|
40333
40423
|
// Update text
|
|
40334
|
-
HTML_AST.setElementHTML(loadingSpan,
|
|
40424
|
+
HTML_AST.setElementHTML(loadingSpan, (str ?? options.lang.loading ?? ''));
|
|
40335
40425
|
if (!chart.styledMode) {
|
|
40336
40426
|
// Update visuals
|
|
40337
40427
|
css(loadingDiv, extend(loadingStyle, { zIndex: 10 }));
|
|
@@ -40569,7 +40659,7 @@ class Chart {
|
|
|
40569
40659
|
}
|
|
40570
40660
|
// No match by id found, match by index instead
|
|
40571
40661
|
if (!item && chart[coll]) {
|
|
40572
|
-
item = chart[coll][
|
|
40662
|
+
item = chart[coll][(newOptions.index ?? i)];
|
|
40573
40663
|
// Check if we grabbed an item with an existing but
|
|
40574
40664
|
// different id (#13541). Check that the item in this
|
|
40575
40665
|
// position is not internal (navigator).
|
|
@@ -40782,7 +40872,7 @@ class Chart {
|
|
|
40782
40872
|
fireEvent(this, 'transform', params);
|
|
40783
40873
|
let hasZoomed = params.hasZoomed || false, displayButton, isAnyAxisPanning;
|
|
40784
40874
|
for (const axis of axes) {
|
|
40785
|
-
const { horiz, len, minPointOffset = 0, options, reversed } = axis, wh = horiz ? 'width' : 'height', xy = horiz ? 'x' : 'y', toLength =
|
|
40875
|
+
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),
|
|
40786
40876
|
// If fingers pinched very close on this axis, treat as pan
|
|
40787
40877
|
scale = Math.abs(toLength) < 10 ?
|
|
40788
40878
|
1 :
|
|
@@ -41646,7 +41736,7 @@ class StackItem {
|
|
|
41646
41736
|
r: options.borderRadius || 0,
|
|
41647
41737
|
text: str,
|
|
41648
41738
|
// Set default padding to 5 as it is in dataLabels #12308
|
|
41649
|
-
padding:
|
|
41739
|
+
padding: (options.padding ?? 5),
|
|
41650
41740
|
visibility: 'hidden' // Hidden until setOffset is called
|
|
41651
41741
|
};
|
|
41652
41742
|
if (!chart.styledMode) {
|
|
@@ -41680,7 +41770,7 @@ class StackItem {
|
|
|
41680
41770
|
}), { verticalAlign } = alignOptions;
|
|
41681
41771
|
if (label && stackBox) {
|
|
41682
41772
|
const labelBox = label.getBBox(void 0, 0), padding = label.padding;
|
|
41683
|
-
let isJustify =
|
|
41773
|
+
let isJustify = (options.overflow ?? 'justify') === 'justify', visible;
|
|
41684
41774
|
// Reset alignOptions property after justify #12337
|
|
41685
41775
|
alignOptions.x = options.x || 0;
|
|
41686
41776
|
alignOptions.y = options.y || 0;
|
|
@@ -41717,7 +41807,7 @@ class StackItem {
|
|
|
41717
41807
|
rotationOriginY: labelBox.height / 2
|
|
41718
41808
|
});
|
|
41719
41809
|
// Check if the dataLabel should be visible.
|
|
41720
|
-
if (
|
|
41810
|
+
if (((!isJustify && options.crop) ?? true)) {
|
|
41721
41811
|
visible =
|
|
41722
41812
|
isNumber(label.x) &&
|
|
41723
41813
|
isNumber(label.y) &&
|
|
@@ -41751,7 +41841,7 @@ class StackItem {
|
|
|
41751
41841
|
getStackBox(stackBoxProps) {
|
|
41752
41842
|
const stackItem = this, axis = this.axis, chart = axis.chart, { boxTop, defaultX, xOffset, width, boxBottom } = stackBoxProps, totalStackValue = axis.stacking.usePercentage ?
|
|
41753
41843
|
100 :
|
|
41754
|
-
|
|
41844
|
+
(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 ||
|
|
41755
41845
|
(isNumber(axis.min) &&
|
|
41756
41846
|
axis.logarithmic &&
|
|
41757
41847
|
axis.logarithmic.lin2log(axis.min)) ||
|
|
@@ -41864,7 +41954,7 @@ function chartGetStacks() {
|
|
|
41864
41954
|
if (series.options.stacking && series.reserveSpace()) {
|
|
41865
41955
|
series.stackKey = [
|
|
41866
41956
|
series.type,
|
|
41867
|
-
|
|
41957
|
+
(series.options.stack ?? ''),
|
|
41868
41958
|
inverted ? xAxisOptions.top : xAxisOptions.left,
|
|
41869
41959
|
inverted ? xAxisOptions.height : xAxisOptions.width
|
|
41870
41960
|
].join(',');
|
|
@@ -42027,7 +42117,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
|
|
|
42027
42117
|
stack = stacks[key][x];
|
|
42028
42118
|
if (y !== null) {
|
|
42029
42119
|
stack.points[pointKey] = stack.points[series.index] = [
|
|
42030
|
-
|
|
42120
|
+
(stack.cumulative ?? stackThreshold)
|
|
42031
42121
|
];
|
|
42032
42122
|
// Record the base of the stack
|
|
42033
42123
|
if (!defined(stack.cumulative)) {
|
|
@@ -42075,7 +42165,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
|
|
|
42075
42165
|
stack.cumulative = (total || 1) - 1;
|
|
42076
42166
|
}
|
|
42077
42167
|
else {
|
|
42078
|
-
stack.cumulative = correctFloat(
|
|
42168
|
+
stack.cumulative = correctFloat((stack.cumulative ?? stackThreshold) + yNumber);
|
|
42079
42169
|
}
|
|
42080
42170
|
stack.total = total;
|
|
42081
42171
|
if (y !== null) {
|
|
@@ -43090,8 +43180,7 @@ class AreaSeries extends AreaSeries_LineSeries {
|
|
|
43090
43180
|
*/
|
|
43091
43181
|
getGraphPath(points) {
|
|
43092
43182
|
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
|
|
43093
|
-
yAxis.getThreshold(options.threshold)), connectNulls =
|
|
43094
|
-
options.connectNulls, stacking === 'percent'),
|
|
43183
|
+
yAxis.getThreshold(options.threshold)), connectNulls = (options.connectNulls ?? stacking === 'percent'),
|
|
43095
43184
|
// To display null points in underlying stacked series, this
|
|
43096
43185
|
// series graph must be broken, and the area also fall down to
|
|
43097
43186
|
// fill the gap left by the null point. #2069
|
|
@@ -43144,9 +43233,9 @@ class AreaSeries extends AreaSeries_LineSeries {
|
|
|
43144
43233
|
// Treat points with undefined plotY as null (e.g. non-positive
|
|
43145
43234
|
// values on logarithmic axis, #18422)
|
|
43146
43235
|
isNull = points[i].isNull || !defined(points[i].plotY);
|
|
43147
|
-
plotX =
|
|
43236
|
+
plotX = (points[i].rectPlotX ?? points[i].plotX);
|
|
43148
43237
|
yBottom = stacking ?
|
|
43149
|
-
|
|
43238
|
+
(points[i].yBottom ?? translatedThreshold) :
|
|
43150
43239
|
translatedThreshold;
|
|
43151
43240
|
if (!isNull || connectNulls) {
|
|
43152
43241
|
if (!connectNulls) {
|
|
@@ -43484,10 +43573,10 @@ class SplineSeries extends SplineSeries_LineSeries {
|
|
|
43484
43573
|
}
|
|
43485
43574
|
const ret = [
|
|
43486
43575
|
'C',
|
|
43487
|
-
|
|
43488
|
-
|
|
43489
|
-
|
|
43490
|
-
|
|
43576
|
+
(lastPoint.rightContX ?? lastPoint.plotX ?? 0),
|
|
43577
|
+
(lastPoint.rightContY ?? lastPoint.plotY ?? 0),
|
|
43578
|
+
(leftContX ?? plotX ?? 0),
|
|
43579
|
+
(leftContY ?? plotY ?? 0),
|
|
43491
43580
|
plotX,
|
|
43492
43581
|
plotY
|
|
43493
43582
|
];
|
|
@@ -44456,7 +44545,7 @@ class ColumnSeries extends Series_Series {
|
|
|
44456
44545
|
xAxis.tickInterval ||
|
|
44457
44546
|
1), // #2610
|
|
44458
44547
|
xAxis.len // #1535
|
|
44459
|
-
), groupPadding = categoryWidth * options.groupPadding, groupWidth = categoryWidth - 2 * groupPadding, pointOffsetWidth = groupWidth / (columnCount || 1), pointWidth = Math.min(options.maxPointWidth || xAxis.len,
|
|
44548
|
+
), 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,
|
|
44460
44549
|
// #1251, #3737
|
|
44461
44550
|
colIndex = (series.columnIndex || 0) + (reverseStacks ? 1 : 0), pointXOffset = pointPadding +
|
|
44462
44551
|
(groupPadding +
|
|
@@ -45020,7 +45109,7 @@ var DataLabel;
|
|
|
45020
45109
|
// that parts of the align box is inside the plot area
|
|
45021
45110
|
// (#12370). When stacking, it is always inside regardless
|
|
45022
45111
|
// of the option (#15148).
|
|
45023
|
-
|
|
45112
|
+
(options.inside ?? !!this.options.stacking) &&
|
|
45024
45113
|
alignTo &&
|
|
45025
45114
|
chart.isInsidePlot(plotX, inverted ?
|
|
45026
45115
|
alignTo.x + 1 :
|
|
@@ -45123,8 +45212,8 @@ var DataLabel;
|
|
|
45123
45212
|
// zIndex: 20
|
|
45124
45213
|
// }).add();
|
|
45125
45214
|
// chart.renderer.circle(
|
|
45126
|
-
// chart.plotLeft +
|
|
45127
|
-
// chart.plotTop +
|
|
45215
|
+
// chart.plotLeft + (dataLabel.alignAttr.x ?? 0),
|
|
45216
|
+
// chart.plotTop + (dataLabel.alignAttr.y ?? 0),
|
|
45128
45217
|
// 2
|
|
45129
45218
|
// ).attr({
|
|
45130
45219
|
// fill: 'red',
|
|
@@ -45307,7 +45396,7 @@ var DataLabel;
|
|
|
45307
45396
|
if (labelEnabled) {
|
|
45308
45397
|
// Create individual options structure that can be
|
|
45309
45398
|
// extended without affecting others
|
|
45310
|
-
formatString =
|
|
45399
|
+
formatString = (labelOptions[point.formatPrefix + 'Format'] ?? labelOptions.format);
|
|
45311
45400
|
labelText = defined(formatString) ?
|
|
45312
45401
|
DataLabel_format(formatString, point, chart) :
|
|
45313
45402
|
(labelOptions[point.formatPrefix + 'Formatter'] ||
|
|
@@ -45315,7 +45404,9 @@ var DataLabel;
|
|
|
45315
45404
|
rotation = labelOptions.rotation;
|
|
45316
45405
|
if (!chart.styledMode) {
|
|
45317
45406
|
// Determine the color
|
|
45318
|
-
style.color =
|
|
45407
|
+
style.color = (isString(labelOptions.color) ?
|
|
45408
|
+
labelOptions.color :
|
|
45409
|
+
void 0) ?? style.color ?? (isString(series.color) ? series.color : void 0) ?? 'var(--highcharts-neutral-color-100)';
|
|
45319
45410
|
// Get automated contrast color
|
|
45320
45411
|
if (style.color === 'contrast') {
|
|
45321
45412
|
if (backgroundColor !== 'none') {
|
|
@@ -46116,14 +46207,15 @@ class ScatterSeries extends ScatterSeries_LineSeries {
|
|
|
46116
46207
|
return rand - Math.floor(rand);
|
|
46117
46208
|
}
|
|
46118
46209
|
if (jitter) {
|
|
46119
|
-
this.points.forEach(
|
|
46120
|
-
['x', 'y'].forEach(
|
|
46210
|
+
this.points.forEach((point, i) => {
|
|
46211
|
+
['x', 'y'].forEach((dim, j) => {
|
|
46121
46212
|
if (jitter[dim] && !point.isNull) {
|
|
46122
|
-
const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`]
|
|
46123
|
-
axis.transA;
|
|
46213
|
+
const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`];
|
|
46124
46214
|
if (axis && !axis.logarithmic) {
|
|
46125
46215
|
// Identify the outer bounds of the jitter range
|
|
46126
|
-
|
|
46216
|
+
// (#25054)
|
|
46217
|
+
const translatedJitter = jitter[dim] * axis.transA *
|
|
46218
|
+
(axis.reversed ? -1 : 1), min = (point[plotProp] || 0) - translatedJitter, max = (point[plotProp] || 0) + translatedJitter;
|
|
46127
46219
|
// Find a random position within this range
|
|
46128
46220
|
point[plotProp] = min +
|
|
46129
46221
|
(max - min) * unrandom(i + j * len);
|
|
@@ -46228,11 +46320,13 @@ var CenteredUtilities;
|
|
|
46228
46320
|
innerSize = parseFloat(innerSize);
|
|
46229
46321
|
}
|
|
46230
46322
|
const positions = [
|
|
46231
|
-
|
|
46232
|
-
|
|
46323
|
+
(centerOption?.[0] ?? '50%'),
|
|
46324
|
+
(centerOption?.[1] ?? '50%'),
|
|
46233
46325
|
// Prevent from negative values
|
|
46234
|
-
|
|
46235
|
-
|
|
46326
|
+
((size && size < 0 ? void 0 : options.size) ?? '100%'),
|
|
46327
|
+
((innerSize && innerSize < 0 ?
|
|
46328
|
+
void 0 :
|
|
46329
|
+
options.innerSize || 0) ?? '0%')
|
|
46236
46330
|
];
|
|
46237
46331
|
for (i = 0; i < 4; ++i) {
|
|
46238
46332
|
value = positions[i];
|
|
@@ -46434,7 +46528,7 @@ class PiePoint extends Series_Point {
|
|
|
46434
46528
|
const series = this.series, chart = series.chart;
|
|
46435
46529
|
setAnimation(animation, chart);
|
|
46436
46530
|
// Redraw is true by default
|
|
46437
|
-
redraw =
|
|
46531
|
+
redraw = (redraw ?? true);
|
|
46438
46532
|
this.sliced = this.options.sliced = sliced ?? !this.sliced;
|
|
46439
46533
|
// Update options.data
|
|
46440
46534
|
if (series.options.data) {
|
|
@@ -47239,7 +47333,8 @@ class PieSeries extends Series_Series {
|
|
|
47239
47333
|
// Start values
|
|
47240
47334
|
graphic.attr({
|
|
47241
47335
|
// Animate from inner radius (#779)
|
|
47242
|
-
r:
|
|
47336
|
+
r: point.startR ??
|
|
47337
|
+
(series.center && series.center[3] / 2),
|
|
47243
47338
|
start: startAngleRad,
|
|
47244
47339
|
end: startAngleRad
|
|
47245
47340
|
});
|
|
@@ -47880,7 +47975,7 @@ var PieDataLabel_ColumnDataLabel;
|
|
|
47880
47975
|
labelPosition.computed.x = x;
|
|
47881
47976
|
labelPosition.computed.y = y - topOffset;
|
|
47882
47977
|
// Detect overflowing data labels
|
|
47883
|
-
if (
|
|
47978
|
+
if (dataLabelOptions.crop ?? true) {
|
|
47884
47979
|
dataLabelWidth = dataLabel.getBBox().width;
|
|
47885
47980
|
let sideOverflow;
|
|
47886
47981
|
// Overflow left
|
|
@@ -48396,7 +48491,10 @@ function OverlappingDataLabels_onChartRender() {
|
|
|
48396
48491
|
if (point.visible) {
|
|
48397
48492
|
(point.dataLabels || []).forEach((label) => {
|
|
48398
48493
|
const options = label.options || {};
|
|
48399
|
-
label.labelrank =
|
|
48494
|
+
label.labelrank =
|
|
48495
|
+
options.labelrank ??
|
|
48496
|
+
point.labelrank ??
|
|
48497
|
+
point.shapeArgs?.height; // #4118
|
|
48400
48498
|
// #21725: Sync target positions for generic overlap
|
|
48401
48499
|
// checking. During animations (e.g., toggling a
|
|
48402
48500
|
// point), DOM positions may overlap. We force
|
|
@@ -48885,10 +48983,12 @@ var Responsive;
|
|
|
48885
48983
|
*/
|
|
48886
48984
|
function matchResponsiveRule(rule, matches) {
|
|
48887
48985
|
const condition = rule.condition, fn = condition.callback || function () {
|
|
48888
|
-
return (this.chartWidth <=
|
|
48889
|
-
|
|
48890
|
-
this.
|
|
48891
|
-
|
|
48986
|
+
return (this.chartWidth <=
|
|
48987
|
+
(condition.maxWidth ?? Number.MAX_VALUE) &&
|
|
48988
|
+
this.chartHeight <=
|
|
48989
|
+
(condition.maxHeight ?? Number.MAX_VALUE) &&
|
|
48990
|
+
this.chartWidth >= (condition.minWidth ?? 0) &&
|
|
48991
|
+
this.chartHeight >= (condition.minHeight ?? 0));
|
|
48892
48992
|
};
|
|
48893
48993
|
if (fn.call(this, this)) {
|
|
48894
48994
|
matches.push(rule._id);
|
|
@@ -49102,7 +49202,7 @@ var Responsive;
|
|
|
49102
49202
|
;// ./code/es-modules/masters/highcharts.src.js
|
|
49103
49203
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
49104
49204
|
/**
|
|
49105
|
-
* @license Highcharts JS v13.0.
|
|
49205
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
49106
49206
|
* @module highcharts/highcharts
|
|
49107
49207
|
*
|
|
49108
49208
|
* (c) 2009-2026 Highsoft AS
|
|
@@ -49179,7 +49279,12 @@ G.SVGElement = SVG_SVGElement;
|
|
|
49179
49279
|
G.SVGRenderer = SVG_SVGRenderer;
|
|
49180
49280
|
G.Templating = Core_Templating;
|
|
49181
49281
|
G.Tick = Axis_Tick;
|
|
49182
|
-
G.Time = Core_Time
|
|
49282
|
+
G.Time = class extends Core_Time {
|
|
49283
|
+
constructor(options, lang) {
|
|
49284
|
+
const defaultOptions = Defaults.getOptions();
|
|
49285
|
+
super(options ?? defaultOptions.time, lang ?? defaultOptions.lang);
|
|
49286
|
+
}
|
|
49287
|
+
};
|
|
49183
49288
|
G.Tooltip = Core_Tooltip;
|
|
49184
49289
|
// Utilities
|
|
49185
49290
|
G.addEvent = addEvent;
|
|
@@ -49348,7 +49453,7 @@ var DataModifyComposition;
|
|
|
49348
49453
|
series.setCumulative(modeState, false);
|
|
49349
49454
|
}
|
|
49350
49455
|
});
|
|
49351
|
-
if (
|
|
49456
|
+
if (redraw ?? true) {
|
|
49352
49457
|
this.chart.redraw();
|
|
49353
49458
|
}
|
|
49354
49459
|
}
|
|
@@ -49365,7 +49470,7 @@ var DataModifyComposition;
|
|
|
49365
49470
|
function tooltipFormatter(pointFormat) {
|
|
49366
49471
|
const point = this, { numberFormatter } = point.series.chart, replace = function (value) {
|
|
49367
49472
|
pointFormat = pointFormat.replace('{point.' + value + '}', (point[value] > 0 && value === 'change' ? '+' : '') +
|
|
49368
|
-
numberFormatter(point[value],
|
|
49473
|
+
numberFormatter(point[value], (point.series.tooltipOptions.changeDecimals ?? 2)));
|
|
49369
49474
|
};
|
|
49370
49475
|
if (defined(point.change)) {
|
|
49371
49476
|
replace('change');
|
|
@@ -49393,7 +49498,9 @@ var DataModifyComposition;
|
|
|
49393
49498
|
chart.series[this.index - 1] :
|
|
49394
49499
|
chart.get(linkedTo);
|
|
49395
49500
|
if (linkedSeries instanceof Series_Series) {
|
|
49396
|
-
this.options.compare =
|
|
49501
|
+
this.options.compare =
|
|
49502
|
+
this.userOptions.compare ??
|
|
49503
|
+
linkedSeries.options.compare;
|
|
49397
49504
|
}
|
|
49398
49505
|
}
|
|
49399
49506
|
const compare = this.options.compare;
|
|
@@ -49467,7 +49574,7 @@ var DataModifyComposition;
|
|
|
49467
49574
|
// Survive to export, #5485 (and for options generally)
|
|
49468
49575
|
this.options.compare = this.userOptions.compare = compare;
|
|
49469
49576
|
// Fire series.init() that will set or delete series.dataModify
|
|
49470
|
-
this.update({},
|
|
49577
|
+
this.update({}, (redraw ?? true));
|
|
49471
49578
|
if (this.dataModify && (compare === 'value' || compare === 'percent')) {
|
|
49472
49579
|
this.dataModify.initCompare(compare);
|
|
49473
49580
|
}
|
|
@@ -49554,11 +49661,11 @@ var DataModifyComposition;
|
|
|
49554
49661
|
*/
|
|
49555
49662
|
function seriesSetCumulative(cumulative, redraw) {
|
|
49556
49663
|
// Set default value to false
|
|
49557
|
-
cumulative =
|
|
49664
|
+
cumulative = (cumulative ?? false);
|
|
49558
49665
|
// Survive to export, #5485 (and for options generally)
|
|
49559
49666
|
this.options.cumulative = this.userOptions.cumulative = cumulative;
|
|
49560
49667
|
// Fire series.init() that will set or delete series.dataModify
|
|
49561
|
-
this.update({},
|
|
49668
|
+
this.update({}, (redraw ?? true));
|
|
49562
49669
|
// If should, turn on the Cumulative Sum mode
|
|
49563
49670
|
if (this.dataModify) {
|
|
49564
49671
|
this.dataModify.initCumulative();
|
|
@@ -49904,7 +50011,7 @@ function onChartAfterSetChartSize() {
|
|
|
49904
50011
|
navigator.top = this.plotTop + scrollButtonSize;
|
|
49905
50012
|
}
|
|
49906
50013
|
else {
|
|
49907
|
-
navigator.left =
|
|
50014
|
+
navigator.left = (xAxis.left ?? this.plotLeft + scrollButtonSize);
|
|
49908
50015
|
navigator.top = navigator.navigatorOptions.top ||
|
|
49909
50016
|
this.chartHeight -
|
|
49910
50017
|
navigator.height -
|
|
@@ -49920,7 +50027,7 @@ function onChartAfterSetChartSize() {
|
|
|
49920
50027
|
legendOptions.enabled &&
|
|
49921
50028
|
!legendOptions.floating) ?
|
|
49922
50029
|
legend.legendHeight +
|
|
49923
|
-
|
|
50030
|
+
(legendOptions.margin ?? 10) :
|
|
49924
50031
|
0) -
|
|
49925
50032
|
(this.titleOffset ? this.titleOffset[2] : 0);
|
|
49926
50033
|
}
|
|
@@ -49945,7 +50052,7 @@ function onChartAfterUpdate(event) {
|
|
|
49945
50052
|
(this.options.navigator.enabled ||
|
|
49946
50053
|
this.options.scrollbar.enabled)) {
|
|
49947
50054
|
this.scroller = this.navigator = new NavigatorConstructor(this);
|
|
49948
|
-
if (
|
|
50055
|
+
if (event.redraw ?? true) {
|
|
49949
50056
|
this.redraw(event.animation); // #7067
|
|
49950
50057
|
}
|
|
49951
50058
|
}
|
|
@@ -50123,7 +50230,7 @@ class NavigatorAxisAdditions {
|
|
|
50123
50230
|
*/
|
|
50124
50231
|
toFixedRange(pxMin, pxMax, fixedMin, fixedMax) {
|
|
50125
50232
|
const axis = this.axis, halfPointRange = (axis.pointRange || 0) / 2;
|
|
50126
|
-
let newMin =
|
|
50233
|
+
let newMin = fixedMin ?? axis.translate(pxMin, true, !axis.horiz), newMax = fixedMax ?? axis.translate(pxMax, true, !axis.horiz);
|
|
50127
50234
|
// Add/remove half point range to/from the extremes (#1172)
|
|
50128
50235
|
if (!defined(fixedMin)) {
|
|
50129
50236
|
newMin = correctFloat(newMin + halfPointRange);
|
|
@@ -50898,8 +51005,8 @@ var ScrollbarAxis;
|
|
|
50898
51005
|
ScrollbarAxis.compose = compose;
|
|
50899
51006
|
/** @internal */
|
|
50900
51007
|
function getExtremes(axis) {
|
|
50901
|
-
const axisMin =
|
|
50902
|
-
const axisMax =
|
|
51008
|
+
const axisMin = (axis.options?.min ?? axis.min);
|
|
51009
|
+
const axisMax = (axis.options?.max ?? axis.max);
|
|
50903
51010
|
return {
|
|
50904
51011
|
axisMin,
|
|
50905
51012
|
axisMax,
|
|
@@ -51438,7 +51545,7 @@ class Scrollbar {
|
|
|
51438
51545
|
buttonToMaxClick(e) {
|
|
51439
51546
|
const scroller = this;
|
|
51440
51547
|
const range = ((scroller.to - scroller.from) *
|
|
51441
|
-
|
|
51548
|
+
(scroller.options.step ?? 0.2));
|
|
51442
51549
|
scroller.updatePosition(scroller.from + range, scroller.to + range);
|
|
51443
51550
|
fireEvent(scroller, 'changed', {
|
|
51444
51551
|
from: scroller.from,
|
|
@@ -51450,7 +51557,7 @@ class Scrollbar {
|
|
|
51450
51557
|
buttonToMinClick(e) {
|
|
51451
51558
|
const scroller = this;
|
|
51452
51559
|
const range = correctFloat(scroller.to - scroller.from) *
|
|
51453
|
-
|
|
51560
|
+
(scroller.options.step ?? 0.2);
|
|
51454
51561
|
scroller.updatePosition(correctFloat(scroller.from - range), correctFloat(scroller.to - range));
|
|
51455
51562
|
fireEvent(scroller, 'changed', {
|
|
51456
51563
|
from: scroller.from,
|
|
@@ -51582,10 +51689,11 @@ class Scrollbar {
|
|
|
51582
51689
|
scroller.renderer = renderer;
|
|
51583
51690
|
scroller.userOptions = options;
|
|
51584
51691
|
scroller.options = merge(Scrollbar_ScrollbarDefaults, Scrollbar_defaultOptions.scrollbar, options);
|
|
51585
|
-
scroller.options.margin =
|
|
51692
|
+
scroller.options.margin = (scroller.options.margin ?? 10);
|
|
51586
51693
|
scroller.chart = chart;
|
|
51587
51694
|
// Backward compatibility
|
|
51588
|
-
scroller.size =
|
|
51695
|
+
scroller.size = scroller.options.size ??
|
|
51696
|
+
scroller.options.height;
|
|
51589
51697
|
// Init
|
|
51590
51698
|
if (options.enabled) {
|
|
51591
51699
|
scroller.render();
|
|
@@ -51875,9 +51983,9 @@ class Scrollbar {
|
|
|
51875
51983
|
* @function Highcharts.Scrollbar#shouldUpdateExtremes
|
|
51876
51984
|
*/
|
|
51877
51985
|
shouldUpdateExtremes(eventType) {
|
|
51878
|
-
return (
|
|
51986
|
+
return ((this.options.liveRedraw ?? (Core_Globals.svg &&
|
|
51879
51987
|
!Core_Globals.isTouchDevice &&
|
|
51880
|
-
!this.chart.boosted) ||
|
|
51988
|
+
!this.chart.boosted)) ||
|
|
51881
51989
|
// Mouseup always should change extremes
|
|
51882
51990
|
eventType === 'mouseup' ||
|
|
51883
51991
|
eventType === 'touchend' ||
|
|
@@ -52397,18 +52505,18 @@ class Navigator {
|
|
|
52397
52505
|
// it. For example hidden series, but visible navigator (#6022).
|
|
52398
52506
|
if (rendered) {
|
|
52399
52507
|
pxMin = 0;
|
|
52400
|
-
pxMax =
|
|
52508
|
+
pxMax = (xAxis.width ?? scrollbarXAxis.width);
|
|
52401
52509
|
}
|
|
52402
52510
|
else {
|
|
52403
52511
|
return;
|
|
52404
52512
|
}
|
|
52405
52513
|
}
|
|
52406
|
-
navigator.left =
|
|
52407
|
-
// In case of scrollbar only, without navigator
|
|
52408
|
-
chart.plotLeft + scrollButtonSize +
|
|
52514
|
+
navigator.left = (xAxis.left ?? chart.plotLeft + scrollButtonSize +
|
|
52409
52515
|
(inverted ? chart.plotWidth : 0));
|
|
52410
|
-
let zoomedMax = navigator.size = navigatorSize =
|
|
52411
|
-
|
|
52516
|
+
let zoomedMax = navigator.size = navigatorSize =
|
|
52517
|
+
xAxis.len ??
|
|
52518
|
+
(inverted ? chart.plotHeight : chart.plotWidth) -
|
|
52519
|
+
2 * scrollButtonSize;
|
|
52412
52520
|
if (inverted) {
|
|
52413
52521
|
navigatorWidth = scrollbarHeight;
|
|
52414
52522
|
}
|
|
@@ -52416,8 +52524,8 @@ class Navigator {
|
|
|
52416
52524
|
navigatorWidth = navigatorSize + 2 * scrollButtonSize;
|
|
52417
52525
|
}
|
|
52418
52526
|
// Get the pixel position of the handles
|
|
52419
|
-
pxMin =
|
|
52420
|
-
pxMax =
|
|
52527
|
+
pxMin = (pxMin ?? xAxis.toPixels(min, true));
|
|
52528
|
+
pxMax = (pxMax ?? xAxis.toPixels(max, true));
|
|
52421
52529
|
// Verify (#1851, #2238)
|
|
52422
52530
|
if (!isNumber(pxMin) || Math.abs(pxMin) === Infinity) {
|
|
52423
52531
|
pxMin = 0;
|
|
@@ -52696,11 +52804,10 @@ class Navigator {
|
|
|
52696
52804
|
navigator.render(0, 0, chartX - dragOffset, chartX - dragOffset + range);
|
|
52697
52805
|
}
|
|
52698
52806
|
if (navigator.hasDragged &&
|
|
52699
|
-
|
|
52807
|
+
(navigator.scrollbarOptions?.liveRedraw ?? (
|
|
52700
52808
|
// By default, don't run live redraw on touch
|
|
52701
52809
|
// devices or if the chart is in boost.
|
|
52702
|
-
!Navigator_isTouchDevice &&
|
|
52703
|
-
!this.chart.boosted)) {
|
|
52810
|
+
!Navigator_isTouchDevice && !this.chart.boosted))) {
|
|
52704
52811
|
e.DOMType = e.type;
|
|
52705
52812
|
setTimeout(function () {
|
|
52706
52813
|
navigator.onMouseUp(e);
|
|
@@ -52889,8 +52996,10 @@ class Navigator {
|
|
|
52889
52996
|
offset: 0,
|
|
52890
52997
|
index: yAxisIndex,
|
|
52891
52998
|
isInternal: true,
|
|
52892
|
-
reversed:
|
|
52893
|
-
navigatorOptions.yAxis.reversed)
|
|
52999
|
+
reversed: ((navigatorOptions.yAxis &&
|
|
53000
|
+
navigatorOptions.yAxis.reversed) ??
|
|
53001
|
+
(chart.yAxis[0] && chart.yAxis[0].reversed) ??
|
|
53002
|
+
false), // #14060
|
|
52894
53003
|
zoomEnabled: false
|
|
52895
53004
|
}, chart.inverted ? {
|
|
52896
53005
|
width: height
|
|
@@ -52976,7 +53085,9 @@ class Navigator {
|
|
|
52976
53085
|
*/
|
|
52977
53086
|
setOpposite() {
|
|
52978
53087
|
const navigatorOptions = this.navigatorOptions, navigatorEnabled = this.navigatorEnabled, chart = this.chart;
|
|
52979
|
-
this.opposite =
|
|
53088
|
+
this.opposite =
|
|
53089
|
+
navigatorOptions.opposite ??
|
|
53090
|
+
Boolean(!navigatorEnabled && chart.inverted); // #6262
|
|
52980
53091
|
}
|
|
52981
53092
|
/**
|
|
52982
53093
|
* Get the union data extremes of the chart - the outer data extremes of the
|
|
@@ -52990,9 +53101,8 @@ class Navigator {
|
|
|
52990
53101
|
let ret;
|
|
52991
53102
|
if (!returnFalseOnNoBaseSeries || baseAxis.dataMin !== null) {
|
|
52992
53103
|
ret = {
|
|
52993
|
-
dataMin:
|
|
52994
|
-
time.parse(navAxisOptions?.
|
|
52995
|
-
dataMax: pick(time.parse(navAxisOptions?.max), numExt('max', time.parse(baseAxisOptions.max), baseAxis.dataMax, navAxis.dataMax, navAxis.max))
|
|
53104
|
+
dataMin: (time.parse(navAxisOptions?.min) ?? numExt('min', time.parse(baseAxisOptions.min), baseAxis.dataMin, navAxis.dataMin, navAxis.min)),
|
|
53105
|
+
dataMax: (time.parse(navAxisOptions?.max) ?? numExt('max', time.parse(baseAxisOptions.max), baseAxis.dataMax, navAxis.dataMax, navAxis.max))
|
|
52996
53106
|
};
|
|
52997
53107
|
}
|
|
52998
53108
|
return ret;
|
|
@@ -53107,11 +53217,9 @@ class Navigator {
|
|
|
53107
53217
|
userNavOptions.dataLabels = splat(userNavOptions.dataLabels);
|
|
53108
53218
|
mergedNavSeriesOptions = merge(baseOptions, navSeriesMixin, userNavOptions, baseNavigatorOptions);
|
|
53109
53219
|
// Once nav series type is resolved, pick correct pointRange
|
|
53110
|
-
mergedNavSeriesOptions.pointRange =
|
|
53111
|
-
|
|
53112
|
-
|
|
53113
|
-
// Fallback to default values, e.g. `null` for column
|
|
53114
|
-
Navigator_defaultOptions.plotOptions[mergedNavSeriesOptions.type || 'line']?.pointRange);
|
|
53220
|
+
mergedNavSeriesOptions.pointRange = (userNavOptions.pointRange ??
|
|
53221
|
+
baseNavigatorOptions.pointRange ??
|
|
53222
|
+
Navigator_defaultOptions.plotOptions[mergedNavSeriesOptions.type || 'line']?.pointRange);
|
|
53115
53223
|
// Merge data separately. Do a slice to avoid mutating the
|
|
53116
53224
|
// navigator options from base series (#4923).
|
|
53117
53225
|
const navigatorSeriesData = baseNavigatorOptions.data || userNavOptions.data, navigatorSeriesDataTable = baseNavigatorOptions.dataTable ||
|
|
@@ -53271,7 +53379,7 @@ class Navigator {
|
|
|
53271
53379
|
* @function Highcharts.Navigator#modifyBaseAxisExtremes
|
|
53272
53380
|
*/
|
|
53273
53381
|
modifyBaseAxisExtremes() {
|
|
53274
|
-
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 =
|
|
53382
|
+
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,
|
|
53275
53383
|
// When the extremes have been set by range selector button, don't
|
|
53276
53384
|
// stick to min or max. The range selector buttons will handle the
|
|
53277
53385
|
// extremes. (#5489)
|
|
@@ -53323,8 +53431,8 @@ class Navigator {
|
|
|
53323
53431
|
Math.round(navigator.zoomedMax) >= Math.round(navigator.size);
|
|
53324
53432
|
// If the scrollbar is scrolled all the way to the right, keep right as
|
|
53325
53433
|
// new data comes in, unless user set navigator.stickToMax to false.
|
|
53326
|
-
navigator.stickToMax =
|
|
53327
|
-
this.chart.options.navigator.stickToMax
|
|
53434
|
+
navigator.stickToMax = (this.chart.options.navigator &&
|
|
53435
|
+
this.chart.options.navigator.stickToMax) ?? shouldStickToMax;
|
|
53328
53436
|
navigator.stickToMin = navigator.shouldStickToMin(baseSeries, navigator);
|
|
53329
53437
|
// Set the navigator series data to the new data of the base series
|
|
53330
53438
|
if (navigatorSeries && !navigator.hasNavigatorData) {
|
|
@@ -54054,9 +54162,7 @@ var OrdinalAxis;
|
|
|
54054
54162
|
// Without a custom function it is sorted as strings
|
|
54055
54163
|
return a - b;
|
|
54056
54164
|
});
|
|
54057
|
-
overscrollPointsRange = Math.min(overscrollPointsRange,
|
|
54058
|
-
// Check for a single-point series:
|
|
54059
|
-
series.closestPointRange, overscrollPointsRange));
|
|
54165
|
+
overscrollPointsRange = Math.min(overscrollPointsRange, (series.closestPointRange ?? overscrollPointsRange));
|
|
54060
54166
|
if (len) {
|
|
54061
54167
|
i = 0;
|
|
54062
54168
|
while (i < len - 1) {
|
|
@@ -54157,7 +54263,9 @@ var OrdinalAxis;
|
|
|
54157
54263
|
ordinal.offset = min - (minIndex * slope);
|
|
54158
54264
|
}
|
|
54159
54265
|
else {
|
|
54160
|
-
ordinal.overscrollPointsRange =
|
|
54266
|
+
ordinal.overscrollPointsRange =
|
|
54267
|
+
axis.closestPointRange ??
|
|
54268
|
+
ordinal.overscrollPointsRange;
|
|
54161
54269
|
ordinal.positions = axis.ordinal.slope = ordinal.offset =
|
|
54162
54270
|
void 0;
|
|
54163
54271
|
}
|
|
@@ -54450,8 +54558,10 @@ var OrdinalAxis;
|
|
|
54450
54558
|
*/
|
|
54451
54559
|
convertOverscroll(overscroll = 0) {
|
|
54452
54560
|
const ordinal = this, axis = ordinal.axis, calculateOverscroll = function (overscrollPercentage) {
|
|
54453
|
-
return
|
|
54454
|
-
axis.dataMax
|
|
54561
|
+
return (ordinal.originalOrdinalRange ??
|
|
54562
|
+
(defined(axis.dataMax) && defined(axis.dataMin) ?
|
|
54563
|
+
axis.dataMax - axis.dataMin :
|
|
54564
|
+
0)) * overscrollPercentage;
|
|
54455
54565
|
};
|
|
54456
54566
|
if (isString(overscroll)) {
|
|
54457
54567
|
const overscrollValue = parseInt(overscroll, 10);
|
|
@@ -55138,7 +55248,7 @@ function axisMinFromRange() {
|
|
|
55138
55248
|
this.chart.setFixedRange(max - min);
|
|
55139
55249
|
}
|
|
55140
55250
|
}
|
|
55141
|
-
const dataMin =
|
|
55251
|
+
const dataMin = (this.dataMin ?? Number.MIN_VALUE);
|
|
55142
55252
|
if (!isNumber(min)) {
|
|
55143
55253
|
min = dataMin;
|
|
55144
55254
|
}
|
|
@@ -55147,7 +55257,7 @@ function axisMinFromRange() {
|
|
|
55147
55257
|
if (typeof range === 'undefined') { // #4501
|
|
55148
55258
|
range = getTrueRange(min, rangeOptions.count);
|
|
55149
55259
|
}
|
|
55150
|
-
this.newMax = Math.min(min + range,
|
|
55260
|
+
this.newMax = Math.min(min + range, (this.dataMax ?? Number.MAX_VALUE));
|
|
55151
55261
|
}
|
|
55152
55262
|
if (!isNumber(max)) {
|
|
55153
55263
|
min = void 0;
|
|
@@ -55568,7 +55678,7 @@ class RangeSelector {
|
|
|
55568
55678
|
}
|
|
55569
55679
|
else if (isNumber(newMin) || isNumber(newMax)) {
|
|
55570
55680
|
// Existing axis object. Set extremes after render time.
|
|
55571
|
-
baseAxis.setExtremes(newMin, newMax,
|
|
55681
|
+
baseAxis.setExtremes(newMin, newMax, (redraw ?? true), void 0, // Auto animation
|
|
55572
55682
|
{
|
|
55573
55683
|
trigger: 'rangeSelectorButton',
|
|
55574
55684
|
rangeSelectorButton: rangeOptions
|
|
@@ -55803,8 +55913,8 @@ class RangeSelector {
|
|
|
55803
55913
|
year: 365
|
|
55804
55914
|
}[type] * 24 * 36e5 * count;
|
|
55805
55915
|
}
|
|
55806
|
-
rangeOptions._offsetMin =
|
|
55807
|
-
rangeOptions._offsetMax =
|
|
55916
|
+
rangeOptions._offsetMin = (rangeOptions.offsetMin ?? 0);
|
|
55917
|
+
rangeOptions._offsetMax = (rangeOptions.offsetMax ?? 0);
|
|
55808
55918
|
rangeOptions._range +=
|
|
55809
55919
|
rangeOptions._offsetMax - rangeOptions._offsetMin;
|
|
55810
55920
|
}
|
|
@@ -56115,7 +56225,7 @@ class RangeSelector {
|
|
|
56115
56225
|
};
|
|
56116
56226
|
}
|
|
56117
56227
|
createElements() {
|
|
56118
|
-
const chart = this.chart, renderer = chart.renderer, container = chart.container, chartOptions = chart.options, options = chartOptions.rangeSelector, inputEnabled = options.inputEnabled, inputsZIndex =
|
|
56228
|
+
const chart = this.chart, renderer = chart.renderer, container = chart.container, chartOptions = chart.options, options = chartOptions.rangeSelector, inputEnabled = options.inputEnabled, inputsZIndex = (chartOptions.chart.style?.zIndex ?? 0) + 1;
|
|
56119
56229
|
if (options.enabled === false) {
|
|
56120
56230
|
return;
|
|
56121
56231
|
}
|
|
@@ -56256,10 +56366,14 @@ class RangeSelector {
|
|
|
56256
56366
|
// Create a label for dropdown select element
|
|
56257
56367
|
const userButtonTheme = chart.userOptions.rangeSelector?.buttonTheme;
|
|
56258
56368
|
this.dropdownLabel = renderer.button('', 0, 0, () => { }, merge(buttonTheme, {
|
|
56259
|
-
'stroke-width':
|
|
56369
|
+
'stroke-width': (buttonTheme['stroke-width'] ?? 0),
|
|
56260
56370
|
width: 'auto',
|
|
56261
|
-
paddingLeft:
|
|
56262
|
-
|
|
56371
|
+
paddingLeft: options.buttonTheme.paddingLeft ??
|
|
56372
|
+
userButtonTheme?.padding ??
|
|
56373
|
+
8,
|
|
56374
|
+
paddingRight: options.buttonTheme.paddingRight ??
|
|
56375
|
+
userButtonTheme?.padding ??
|
|
56376
|
+
8
|
|
56263
56377
|
}), states && states.hover, states && states.select, states && states.disabled)
|
|
56264
56378
|
.hide()
|
|
56265
56379
|
.add(this.group);
|
|
@@ -56440,7 +56554,7 @@ class RangeSelector {
|
|
|
56440
56554
|
legendOptions.enabled &&
|
|
56441
56555
|
!legendOptions.floating ?
|
|
56442
56556
|
(chart.legend.legendHeight +
|
|
56443
|
-
|
|
56557
|
+
(legendOptions.margin ?? 10)) :
|
|
56444
56558
|
0);
|
|
56445
56559
|
groupHeight = groupHeight + legendHeight - 20;
|
|
56446
56560
|
translateY = (alignTranslateY -
|
|
@@ -56586,7 +56700,7 @@ class RangeSelector {
|
|
|
56586
56700
|
// Align button group
|
|
56587
56701
|
buttonGroup.align({
|
|
56588
56702
|
y: buttonPosition.y,
|
|
56589
|
-
width:
|
|
56703
|
+
width: (width ?? this.initialButtonGroupWidth),
|
|
56590
56704
|
align: buttonPosition.align,
|
|
56591
56705
|
x: translateX
|
|
56592
56706
|
}, true, chart.spacingBox);
|
|
@@ -56605,7 +56719,7 @@ class RangeSelector {
|
|
|
56605
56719
|
if (zoomText && zoomText.visibility !== 'hidden') {
|
|
56606
56720
|
// #8769, allow dynamically updating margins
|
|
56607
56721
|
zoomText[verb]({
|
|
56608
|
-
x:
|
|
56722
|
+
x: plotLeft + (buttonPosition.x ?? 0)
|
|
56609
56723
|
});
|
|
56610
56724
|
// Button start position
|
|
56611
56725
|
buttonLeft += buttonPosition.x +
|
|
@@ -56983,7 +57097,9 @@ function getForcedAxisOptions(type, chartOptions) {
|
|
|
56983
57097
|
if (type === 'xAxis') {
|
|
56984
57098
|
// Always disable startOnTick:true on the main axis when the navigator
|
|
56985
57099
|
// is enabled (#1090)
|
|
56986
|
-
const navigatorEnabled =
|
|
57100
|
+
const navigatorEnabled = chartOptions.navigator?.enabled ??
|
|
57101
|
+
Navigator_NavigatorDefaults.enabled ??
|
|
57102
|
+
true;
|
|
56987
57103
|
const axisOptions = {
|
|
56988
57104
|
type: 'datetime',
|
|
56989
57105
|
categories: void 0
|
|
@@ -57037,7 +57153,9 @@ class StockChart extends Chart_Chart {
|
|
|
57037
57153
|
const defaultOptions = StockChart_getOptions(), xAxisOptions = userOptions.xAxis, yAxisOptions = userOptions.yAxis,
|
|
57038
57154
|
// Always disable startOnTick:true on the main axis when the
|
|
57039
57155
|
// navigator is enabled (#1090)
|
|
57040
|
-
navigatorEnabled =
|
|
57156
|
+
navigatorEnabled = userOptions.navigator?.enabled ??
|
|
57157
|
+
Navigator_NavigatorDefaults.enabled ??
|
|
57158
|
+
true;
|
|
57041
57159
|
// Avoid doing these twice
|
|
57042
57160
|
userOptions.xAxis = userOptions.yAxis = void 0;
|
|
57043
57161
|
const options = merge({
|
|
@@ -57058,17 +57176,17 @@ class StockChart extends Chart_Chart {
|
|
|
57058
57176
|
},
|
|
57059
57177
|
scrollbar: {
|
|
57060
57178
|
// #4988 - check if setOptions was called
|
|
57061
|
-
enabled:
|
|
57179
|
+
enabled: (Scrollbar_ScrollbarDefaults.enabled ?? true)
|
|
57062
57180
|
},
|
|
57063
57181
|
rangeSelector: {
|
|
57064
57182
|
// #4988 - check if setOptions was called
|
|
57065
|
-
enabled:
|
|
57183
|
+
enabled: RangeSelector_RangeSelectorDefaults.rangeSelector.enabled ?? true
|
|
57066
57184
|
},
|
|
57067
57185
|
title: {
|
|
57068
57186
|
text: null
|
|
57069
57187
|
},
|
|
57070
57188
|
tooltip: {
|
|
57071
|
-
split:
|
|
57189
|
+
split: (defaultOptions.tooltip?.split ?? true),
|
|
57072
57190
|
crosshairs: true
|
|
57073
57191
|
},
|
|
57074
57192
|
legend: {
|
|
@@ -57202,8 +57320,8 @@ addEvent(Chart_Chart, 'update', function (e) {
|
|
|
57202
57320
|
axis.series[0] && this.series[0].colorIndex))
|
|
57203
57321
|
.attr({
|
|
57204
57322
|
align: options.align || align,
|
|
57205
|
-
padding:
|
|
57206
|
-
r:
|
|
57323
|
+
padding: (options.padding ?? 8),
|
|
57324
|
+
r: (options.borderRadius ?? 3),
|
|
57207
57325
|
zIndex: 2
|
|
57208
57326
|
})
|
|
57209
57327
|
.add(axis.labelGroup);
|
|
@@ -57428,7 +57546,7 @@ addEvent(Chart_Chart, 'update', function (e) {
|
|
|
57428
57546
|
uniqueAxes.push(axis2);
|
|
57429
57547
|
}
|
|
57430
57548
|
}
|
|
57431
|
-
transVal =
|
|
57549
|
+
transVal = translatedValue ?? axis.translate(value || 0, void 0, void 0, e.old);
|
|
57432
57550
|
if (isNumber(transVal)) {
|
|
57433
57551
|
let skip, pos = horiz ?
|
|
57434
57552
|
transVal + axis.pos :
|
|
@@ -57507,7 +57625,7 @@ addEvent(Chart_Chart, 'update', function (e) {
|
|
|
57507
57625
|
function seriesForceCropping() {
|
|
57508
57626
|
const series = this, chart = series.chart, options = series.options, dataGroupingOptions = options.dataGrouping, groupingEnabled = (series.allowDG !== false &&
|
|
57509
57627
|
dataGroupingOptions &&
|
|
57510
|
-
|
|
57628
|
+
(dataGroupingOptions.enabled ?? chart.options.isStock));
|
|
57511
57629
|
return groupingEnabled;
|
|
57512
57630
|
}
|
|
57513
57631
|
/* eslint-disable jsdoc/check-param-names */
|
|
@@ -57545,7 +57663,7 @@ addEvent(Chart_Chart, 'update', function (e) {
|
|
|
57545
57663
|
*/
|
|
57546
57664
|
function stockChart(a, b, c) {
|
|
57547
57665
|
const chart = new StockChart(a, b, c);
|
|
57548
|
-
return chart.promise
|
|
57666
|
+
return chart.promise ?? chart;
|
|
57549
57667
|
}
|
|
57550
57668
|
StockChart.stockChart = stockChart;
|
|
57551
57669
|
/* eslint-enable jsdoc/check-param-names */
|
|
@@ -59864,7 +59982,7 @@ var BrokenAxis;
|
|
|
59864
59982
|
/** @internal */
|
|
59865
59983
|
function onSeriesAfterRender() {
|
|
59866
59984
|
this.drawBreaks(this.xAxis, ['x']);
|
|
59867
|
-
this.drawBreaks(this.yAxis,
|
|
59985
|
+
this.drawBreaks(this.yAxis, (this.pointArrayMap ?? ['y']));
|
|
59868
59986
|
}
|
|
59869
59987
|
/** @internal */
|
|
59870
59988
|
function seriesDrawBreaks(axis, keys) {
|
|
@@ -59876,7 +59994,7 @@ var BrokenAxis;
|
|
|
59876
59994
|
breaks = brokenAxis?.breakArray || [];
|
|
59877
59995
|
threshold = axis.isXAxis ?
|
|
59878
59996
|
axis.min :
|
|
59879
|
-
|
|
59997
|
+
(series.options.threshold ?? axis.min);
|
|
59880
59998
|
points.forEach(function (point) {
|
|
59881
59999
|
y = point['stack' + key.toUpperCase()] ??
|
|
59882
60000
|
point[key];
|
|
@@ -60169,7 +60287,8 @@ var BrokenAxis;
|
|
|
60169
60287
|
if (Additions.isInBreak(breaks[i], val)) {
|
|
60170
60288
|
inbrk = true;
|
|
60171
60289
|
if (!keep) {
|
|
60172
|
-
keep =
|
|
60290
|
+
keep =
|
|
60291
|
+
breaks[i].showPoints ?? !axis.isXAxis;
|
|
60173
60292
|
}
|
|
60174
60293
|
}
|
|
60175
60294
|
}
|
|
@@ -60352,7 +60471,7 @@ var BrokenAxis;
|
|
|
60352
60471
|
}
|
|
60353
60472
|
};
|
|
60354
60473
|
}
|
|
60355
|
-
if (
|
|
60474
|
+
if (redraw ?? true) {
|
|
60356
60475
|
axis.chart.redraw();
|
|
60357
60476
|
}
|
|
60358
60477
|
}
|
|
@@ -60371,7 +60490,7 @@ var BrokenAxis;
|
|
|
60371
60490
|
/* unused harmony import specifier */ var Highcharts;
|
|
60372
60491
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
60373
60492
|
/**
|
|
60374
|
-
* @license Highcharts JS v13.0.
|
|
60493
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
60375
60494
|
* @module highcharts/modules/broken-axis
|
|
60376
60495
|
* @requires highcharts
|
|
60377
60496
|
*
|
|
@@ -60796,7 +60915,8 @@ function getGroupPixelWidth() {
|
|
|
60796
60915
|
// same group pixel width (#334)
|
|
60797
60916
|
groupPixelWidth = Math.max(groupPixelWidth,
|
|
60798
60917
|
// Fallback to commonOptions (#9693)
|
|
60799
|
-
|
|
60918
|
+
(dgOptions.groupPixelWidth ??
|
|
60919
|
+
DataGrouping_DataGroupingDefaults.common.groupPixelWidth));
|
|
60800
60920
|
dataLength = (series[i].dataTable.getModified() ||
|
|
60801
60921
|
series[i].dataTable).rowCount;
|
|
60802
60922
|
// Execute grouping if the amount of points is greater than the
|
|
@@ -60840,7 +60960,7 @@ function onAfterSetScale() {
|
|
|
60840
60960
|
function setDataGrouping(dataGrouping, redraw) {
|
|
60841
60961
|
const axis = this;
|
|
60842
60962
|
let i;
|
|
60843
|
-
redraw =
|
|
60963
|
+
redraw = (redraw ?? true);
|
|
60844
60964
|
if (!dataGrouping) {
|
|
60845
60965
|
dataGrouping = {
|
|
60846
60966
|
forced: false,
|
|
@@ -61011,7 +61131,7 @@ function anchorPoints(series, groupedXData, xMax) {
|
|
|
61011
61131
|
*/
|
|
61012
61132
|
function DataGroupingSeriesComposition_applyGrouping(hasExtremesChanged) {
|
|
61013
61133
|
const series = this, chart = series.chart, options = series.options, dataGroupingOptions = options.dataGrouping, groupingEnabled = series.allowDG !== false && dataGroupingOptions &&
|
|
61014
|
-
|
|
61134
|
+
(dataGroupingOptions.enabled ?? chart.options.isStock), reserveSpace = series.reserveSpace(), lastDataGrouping = this.currentDataGrouping;
|
|
61015
61135
|
let currentDataGrouping, croppedData, revertRequireSorting = false;
|
|
61016
61136
|
// Data needs to be sorted for dataGrouping
|
|
61017
61137
|
if (groupingEnabled && !series.requireSorting) {
|
|
@@ -61455,7 +61575,7 @@ function onTooltipHeaderFormatter(e) {
|
|
|
61455
61575
|
else if (!xDateFormat && dateTimeLabelFormats && xAxis.dateTime) {
|
|
61456
61576
|
xDateFormat = xAxis.dateTime.getXDateFormat(point.x, tooltipOptions.dateTimeLabelFormats);
|
|
61457
61577
|
}
|
|
61458
|
-
const groupStart =
|
|
61578
|
+
const groupStart = series.groupMap?.[point.index].groupStart ?? point.key, groupEnd = groupStart + (currentDataGrouping?.totalRange || 0) - 1;
|
|
61459
61579
|
formattedKey = time.dateFormat(xDateFormat, groupStart);
|
|
61460
61580
|
if (xDateFormatEnd) {
|
|
61461
61581
|
formattedKey += time.dateFormat(xDateFormatEnd, groupEnd);
|
|
@@ -61857,7 +61977,7 @@ const DataGroupingComposition = {
|
|
|
61857
61977
|
/* unused harmony import specifier */ var datagrouping_src_Highcharts;
|
|
61858
61978
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
61859
61979
|
/**
|
|
61860
|
-
* @license Highstock JS v13.0.
|
|
61980
|
+
* @license Highstock JS v13.0.2 (2026-08-27)
|
|
61861
61981
|
* @module highcharts/modules/datagrouping
|
|
61862
61982
|
* @requires highcharts
|
|
61863
61983
|
*
|
|
@@ -61942,7 +62062,7 @@ function getAssignedAxis(coords) {
|
|
|
61942
62062
|
const extremes = coord.axis.getExtremes(), axisMin = extremes.min, axisMax = extremes.max,
|
|
61943
62063
|
// Correct axis edges when axis has series
|
|
61944
62064
|
// with pointRange (like column)
|
|
61945
|
-
minPointOffset =
|
|
62065
|
+
minPointOffset = (coord.axis.minPointOffset ?? 0);
|
|
61946
62066
|
return isNumber(axisMin) && isNumber(axisMax) &&
|
|
61947
62067
|
coord.value >= (axisMin - minPointOffset) &&
|
|
61948
62068
|
coord.value <= (axisMax + minPointOffset) &&
|
|
@@ -62055,7 +62175,7 @@ const optionsToObject = (options) => {
|
|
|
62055
62175
|
};
|
|
62056
62176
|
/** @internal */
|
|
62057
62177
|
const zoomBy = function (chart, howMuch, xAxis, yAxis, mouseX, mouseY, options) {
|
|
62058
|
-
const type =
|
|
62178
|
+
const type = (options.type ?? chart.zooming.type ?? '');
|
|
62059
62179
|
let axes = [];
|
|
62060
62180
|
if (type === 'x') {
|
|
62061
62181
|
axes = xAxis;
|
|
@@ -62222,7 +62342,7 @@ const MouseWheelZoomComposition = {
|
|
|
62222
62342
|
/* unused harmony import specifier */ var mouse_wheel_zoom_src_Highcharts;
|
|
62223
62343
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
62224
62344
|
/**
|
|
62225
|
-
* @license Highcharts JS v13.0.
|
|
62345
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
62226
62346
|
* @module highcharts/modules/mouse-wheel-zoom
|
|
62227
62347
|
* @requires highcharts
|
|
62228
62348
|
*
|
|
@@ -62246,7 +62366,7 @@ mouse_wheel_zoom_src_G.MouseWheelZoom.compose(mouse_wheel_zoom_src_G.Chart);
|
|
|
62246
62366
|
/* unused harmony import specifier */ var stock_src_Highcharts;
|
|
62247
62367
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
62248
62368
|
/**
|
|
62249
|
-
* @license Highstock JS v13.0.
|
|
62369
|
+
* @license Highstock JS v13.0.2 (2026-08-27)
|
|
62250
62370
|
* @module highcharts/modules/stock
|
|
62251
62371
|
* @requires highcharts
|
|
62252
62372
|
*
|