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/highmaps.src.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
2
2
|
/**
|
|
3
|
-
* @license Highcharts Maps v13.0.
|
|
3
|
+
* @license Highcharts Maps v13.0.2 (2026-08-27)
|
|
4
4
|
* @module highcharts/highmaps
|
|
5
5
|
*
|
|
6
6
|
* (c) 2011-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;
|
|
@@ -49651,7 +49756,7 @@ var ColorAxisComposition;
|
|
|
49651
49756
|
series.bindAxes();
|
|
49652
49757
|
series.isDirtyData = true;
|
|
49653
49758
|
});
|
|
49654
|
-
if (
|
|
49759
|
+
if (options.redraw ?? true) {
|
|
49655
49760
|
chart.redraw(options.animation);
|
|
49656
49761
|
}
|
|
49657
49762
|
return axis;
|
|
@@ -50426,10 +50531,8 @@ class ColorAxis extends Axis_Axis {
|
|
|
50426
50531
|
* @internal
|
|
50427
50532
|
*/
|
|
50428
50533
|
drawLegendSymbol(legend, item) {
|
|
50429
|
-
const axis = this, legendItem = item.legendItem || {}, padding = legend.padding, legendOptions = legend.options, labelOptions = axis.options.labels, itemDistance =
|
|
50430
|
-
|
|
50431
|
-
// vertical
|
|
50432
|
-
legendOptions.labelPadding, horiz ? 16 : 30);
|
|
50534
|
+
const axis = this, legendItem = item.legendItem || {}, padding = legend.padding, legendOptions = legend.options, labelOptions = axis.options.labels, itemDistance = (legendOptions.itemDistance ?? 10), horiz = axis.horiz, { width, height } = axis.getSize(), labelPadding = legendOptions.labelPadding ??
|
|
50535
|
+
(horiz ? 16 : 30);
|
|
50433
50536
|
this.setLegendColor();
|
|
50434
50537
|
let titleHeight = 0;
|
|
50435
50538
|
let titleWidth = 0;
|
|
@@ -50531,7 +50634,12 @@ class ColorAxis extends Axis_Axis {
|
|
|
50531
50634
|
this.dataMax = -Infinity;
|
|
50532
50635
|
while (i--) { // X, y, value, other
|
|
50533
50636
|
cSeries = series[i];
|
|
50534
|
-
colorKey = cSeries.colorKey =
|
|
50637
|
+
colorKey = cSeries.colorKey =
|
|
50638
|
+
cSeries.options.colorKey ??
|
|
50639
|
+
cSeries.colorKey ??
|
|
50640
|
+
cSeries.pointValKey ??
|
|
50641
|
+
cSeries.zoneAxis ??
|
|
50642
|
+
'y';
|
|
50535
50643
|
calculatedExtremes = cSeries[colorKey + 'Min'] &&
|
|
50536
50644
|
cSeries[colorKey + 'Max'];
|
|
50537
50645
|
// Find the first column that has values
|
|
@@ -50718,7 +50826,7 @@ class ColorAxis extends Axis_Axis {
|
|
|
50718
50826
|
getDataClassLegendSymbols() {
|
|
50719
50827
|
const axis = this, chart = axis.chart, legendItems = (axis.legendItem &&
|
|
50720
50828
|
axis.legendItem.labels ||
|
|
50721
|
-
[]), legendOptions = chart.options.legend, valueDecimals =
|
|
50829
|
+
[]), legendOptions = chart.options.legend, valueDecimals = (legendOptions.valueDecimals ?? -1), valueSuffix = (legendOptions.valueSuffix ?? '');
|
|
50722
50830
|
const getPointsInDataClass = (i) => axis.series.reduce((points, s) => {
|
|
50723
50831
|
points.push(...s.points.filter((point) => point.dataClass === i));
|
|
50724
50832
|
return points;
|
|
@@ -50788,9 +50896,13 @@ class ColorAxis extends Axis_Axis {
|
|
|
50788
50896
|
* @internal
|
|
50789
50897
|
*/
|
|
50790
50898
|
getSize() {
|
|
50791
|
-
const axis = this, { chart, horiz } = axis, { height: colorAxisHeight, width: colorAxisWidth } = axis.options, { legend: legendOptions } = chart.options, width =
|
|
50792
|
-
relativeLength(colorAxisWidth, chart.chartWidth) :
|
|
50793
|
-
|
|
50899
|
+
const axis = this, { chart, horiz } = axis, { height: colorAxisHeight, width: colorAxisWidth } = axis.options, { legend: legendOptions } = chart.options, width = defined(colorAxisWidth) ?
|
|
50900
|
+
relativeLength(colorAxisWidth, chart.chartWidth) :
|
|
50901
|
+
(legendOptions?.symbolWidth ??
|
|
50902
|
+
(horiz ? ColorAxis.defaultLegendLength : 12)), height = defined(colorAxisHeight) ?
|
|
50903
|
+
relativeLength(colorAxisHeight, chart.chartHeight) :
|
|
50904
|
+
(legendOptions?.symbolHeight ??
|
|
50905
|
+
(horiz ? 12 : ColorAxis.defaultLegendLength));
|
|
50794
50906
|
return {
|
|
50795
50907
|
width,
|
|
50796
50908
|
height
|
|
@@ -50838,7 +50950,7 @@ Array.prototype.push.apply(Axis_Axis.keepProps, ColorAxis.keepProps);
|
|
|
50838
50950
|
/* unused harmony import specifier */ var Highcharts;
|
|
50839
50951
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
50840
50952
|
/**
|
|
50841
|
-
* @license Highcharts JS v13.0.
|
|
50953
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
50842
50954
|
* @module highcharts/modules/color-axis
|
|
50843
50955
|
* @requires highcharts
|
|
50844
50956
|
*
|
|
@@ -51251,7 +51363,7 @@ var MapPointer;
|
|
|
51251
51363
|
const mapNavigation = this.chart.options.mapNavigation;
|
|
51252
51364
|
// Pinch status
|
|
51253
51365
|
if (mapNavigation &&
|
|
51254
|
-
|
|
51366
|
+
(mapNavigation.enableTouchZoom ?? mapNavigation.enabled)) {
|
|
51255
51367
|
this.chart.zooming.pinchType = 'xy';
|
|
51256
51368
|
}
|
|
51257
51369
|
proceed.apply(this, [].slice.call(arguments, 1));
|
|
@@ -51434,7 +51546,7 @@ class MapNavigation {
|
|
|
51434
51546
|
navButtons.pop()?.destroy();
|
|
51435
51547
|
}
|
|
51436
51548
|
if (!chart.renderer.forExport &&
|
|
51437
|
-
|
|
51549
|
+
(navOptions.enableButtons ?? navOptions.enabled)) {
|
|
51438
51550
|
if (!mapNav.navButtonsGroup) {
|
|
51439
51551
|
mapNav.navButtonsGroup = chart.renderer.g()
|
|
51440
51552
|
.attr({
|
|
@@ -51565,7 +51677,7 @@ class MapNavigation {
|
|
|
51565
51677
|
updateEvents(options) {
|
|
51566
51678
|
const chart = this.chart;
|
|
51567
51679
|
// Add the double click event
|
|
51568
|
-
if (
|
|
51680
|
+
if ((options.enableDoubleClickZoom ?? options.enabled) ||
|
|
51569
51681
|
options.enableDoubleClickZoomTo) {
|
|
51570
51682
|
this.unbindDblClick = this.unbindDblClick || addEvent(chart.container, 'dblclick', function (e) {
|
|
51571
51683
|
chart.pointer.onContainerDblClick(e);
|
|
@@ -51576,7 +51688,7 @@ class MapNavigation {
|
|
|
51576
51688
|
this.unbindDblClick = this.unbindDblClick();
|
|
51577
51689
|
}
|
|
51578
51690
|
// Add the mousewheel event
|
|
51579
|
-
if (
|
|
51691
|
+
if (options.enableMouseWheelZoom ?? options.enabled) {
|
|
51580
51692
|
this.unbindMouseWheel = this.unbindMouseWheel || addEvent(chart.container, 'wheel', function (e) {
|
|
51581
51693
|
// Prevent scrolling when the pointer is over the element
|
|
51582
51694
|
// with that class, for example annotation popup #12100.
|
|
@@ -51806,9 +51918,11 @@ class MapChart extends Chart_Chart {
|
|
|
51806
51918
|
type: 'map'
|
|
51807
51919
|
},
|
|
51808
51920
|
credits: {
|
|
51809
|
-
mapText:
|
|
51810
|
-
'{geojson.
|
|
51811
|
-
|
|
51921
|
+
mapText: (defaultCreditsOptions.mapText ??
|
|
51922
|
+
' \u00a9 <a href="{geojson.copyrightUrl}">' +
|
|
51923
|
+
'{geojson.copyrightShort}</a>'),
|
|
51924
|
+
mapTextFull: defaultCreditsOptions.mapTextFull ??
|
|
51925
|
+
'{geojson.copyright}'
|
|
51812
51926
|
},
|
|
51813
51927
|
mapView: {}, // Required to enable Chart.mapView
|
|
51814
51928
|
tooltip: {
|
|
@@ -51931,7 +52045,7 @@ class MapChart extends Chart_Chart {
|
|
|
51931
52045
|
*/
|
|
51932
52046
|
function mapChart(a, b, c) {
|
|
51933
52047
|
const chart = new MapChart(a, b, c);
|
|
51934
|
-
return chart.promise
|
|
52048
|
+
return chart.promise ?? chart;
|
|
51935
52049
|
}
|
|
51936
52050
|
MapChart.mapChart = mapChart;
|
|
51937
52051
|
/* eslint-enable jsdoc/check-param-names */
|
|
@@ -52121,8 +52235,10 @@ class MapPoint extends ScatterPoint {
|
|
|
52121
52235
|
}
|
|
52122
52236
|
else {
|
|
52123
52237
|
const propMiddleX = properties?.['hc-middle-x'], propMiddleY = properties?.['hc-middle-y'];
|
|
52124
|
-
bounds.midX = (bounds.x1 + (bounds.x2 - bounds.x1) *
|
|
52125
|
-
|
|
52238
|
+
bounds.midX = (bounds.x1 + (bounds.x2 - bounds.x1) * (this.middleX ??
|
|
52239
|
+
(isNumber(propMiddleX) ? propMiddleX : 0.5)));
|
|
52240
|
+
let middleYFraction = this.middleY ??
|
|
52241
|
+
(isNumber(propMiddleY) ? propMiddleY : 0.5);
|
|
52126
52242
|
// No geographic geometry, only path given => flip
|
|
52127
52243
|
if (!this.geometry) {
|
|
52128
52244
|
middleYFraction = 1 - middleYFraction;
|
|
@@ -55162,7 +55278,7 @@ class MapView {
|
|
|
55162
55278
|
fitToBounds(bounds, padding, redraw = true, animation) {
|
|
55163
55279
|
const b = bounds || this.getProjectedBounds();
|
|
55164
55280
|
if (b) {
|
|
55165
|
-
const pad =
|
|
55281
|
+
const pad = padding ?? (bounds ? 0 : this.options.padding), fullField = this.getField(false), padArr = isArray(pad) ? pad : [pad, pad, pad, pad];
|
|
55166
55282
|
this.padding = [
|
|
55167
55283
|
relativeLength(padArr[0], fullField.height),
|
|
55168
55284
|
relativeLength(padArr[1], fullField.width),
|
|
@@ -56205,8 +56321,8 @@ class MapSeries extends MapSeries_ScatterSeries {
|
|
|
56205
56321
|
!isNumber(params['stroke-width']));
|
|
56206
56322
|
// When strokeWidth is animating
|
|
56207
56323
|
if (animateIn || animateOut) {
|
|
56208
|
-
const strokeWidth =
|
|
56209
|
-
|
|
56324
|
+
const strokeWidth = series.getStrokeWidth(series.options) ??
|
|
56325
|
+
1, inheritedStrokeWidth = (strokeWidth /
|
|
56210
56326
|
(chart.mapView?.getScale() ||
|
|
56211
56327
|
1));
|
|
56212
56328
|
// For animating from undefined, .attr() reads the
|
|
@@ -56235,8 +56351,7 @@ class MapSeries extends MapSeries_ScatterSeries {
|
|
|
56235
56351
|
}
|
|
56236
56352
|
// Apply the SVG transform
|
|
56237
56353
|
transformGroups.forEach((transformGroup, i) => {
|
|
56238
|
-
const view = i === 0 ? mapView : mapView.insets[i - 1], svgTransform = view.getSVGTransform(), strokeWidth =
|
|
56239
|
-
);
|
|
56354
|
+
const view = i === 0 ? mapView : mapView.insets[i - 1], svgTransform = view.getSVGTransform(), strokeWidth = (this.getStrokeWidth(this.options) ?? 1);
|
|
56240
56355
|
/*
|
|
56241
56356
|
Animate or move to the new zoom level. In order to prevent
|
|
56242
56357
|
flickering as the different transform components are set out of sync
|
|
@@ -56337,9 +56452,7 @@ class MapSeries extends MapSeries_ScatterSeries {
|
|
|
56337
56452
|
if (!point.bounds) {
|
|
56338
56453
|
let bounds = point.getProjectedBounds(projection);
|
|
56339
56454
|
if (bounds) {
|
|
56340
|
-
point.labelrank =
|
|
56341
|
-
// Bigger shape, higher rank
|
|
56342
|
-
((bounds.x2 - bounds.x1) *
|
|
56455
|
+
point.labelrank = (point.labelrank ?? ((bounds.x2 - bounds.x1) *
|
|
56343
56456
|
(bounds.y2 - bounds.y1)));
|
|
56344
56457
|
const { midX, midY } = bounds;
|
|
56345
56458
|
if (insets && isNumber(midX) && isNumber(midY)) {
|
|
@@ -57702,7 +57815,7 @@ class BubbleLegendItem {
|
|
|
57702
57815
|
* Legend instance
|
|
57703
57816
|
*/
|
|
57704
57817
|
drawLegendSymbol(legend) {
|
|
57705
|
-
const itemDistance =
|
|
57818
|
+
const itemDistance = (legend.options.itemDistance ?? 20), legendItem = this.legendItem || {}, options = this.options, ranges = options.ranges, connectorDistance = options.connectorDistance;
|
|
57706
57819
|
let connectorSpace;
|
|
57707
57820
|
// Do not create bubbleLegend now if ranges or ranges values are not
|
|
57708
57821
|
// specified or if are empty array.
|
|
@@ -57748,13 +57861,17 @@ class BubbleLegendItem {
|
|
|
57748
57861
|
// Allow to parts of styles be used individually for range
|
|
57749
57862
|
ranges.forEach(function (range, i) {
|
|
57750
57863
|
if (!styledMode) {
|
|
57751
|
-
bubbleAttribs.stroke =
|
|
57864
|
+
bubbleAttribs.stroke =
|
|
57865
|
+
range.borderColor ?? options.borderColor ?? series.color;
|
|
57752
57866
|
bubbleAttribs.fill = range.color || options.color;
|
|
57753
57867
|
if (!bubbleAttribs.fill) {
|
|
57754
57868
|
bubbleAttribs.fill = series.color;
|
|
57755
57869
|
bubbleAttribs['fill-opacity'] = fillOpacity ?? 1;
|
|
57756
57870
|
}
|
|
57757
|
-
connectorAttribs.stroke =
|
|
57871
|
+
connectorAttribs.stroke =
|
|
57872
|
+
range.connectorColor ??
|
|
57873
|
+
options.connectorColor ??
|
|
57874
|
+
series.color;
|
|
57758
57875
|
}
|
|
57759
57876
|
// Set options needed for rendering each range
|
|
57760
57877
|
ranges[i].radius = this.getRangeRadius(range.value);
|
|
@@ -57951,10 +58068,10 @@ class BubbleLegendItem {
|
|
|
57951
58068
|
if (s.isBubble && !s.ignoreSeries) {
|
|
57952
58069
|
zData = s.getColumn('z').filter(isNumber);
|
|
57953
58070
|
if (zData.length) {
|
|
57954
|
-
minZ =
|
|
58071
|
+
minZ = (s.options.zMin ?? Math.min(minZ, Math.max(arrayMin(zData), s.options.displayNegative === false ?
|
|
57955
58072
|
s.options.zThreshold :
|
|
57956
58073
|
-Number.MAX_VALUE)));
|
|
57957
|
-
maxZ =
|
|
58074
|
+
maxZ = (s.options.zMax ?? Math.max(maxZ, arrayMax(zData)));
|
|
57958
58075
|
}
|
|
57959
58076
|
}
|
|
57960
58077
|
});
|
|
@@ -58469,7 +58586,8 @@ function onAxisFoundExtremes() {
|
|
|
58469
58586
|
['min', 'userMin', pxMin],
|
|
58470
58587
|
['max', 'userMax', pxMax]
|
|
58471
58588
|
].forEach((keys) => {
|
|
58472
|
-
if (typeof
|
|
58589
|
+
if (typeof (this.options[keys[0]] ??
|
|
58590
|
+
this[keys[1]]) === 'undefined') {
|
|
58473
58591
|
this[keys[0]] += keys[2] / transA;
|
|
58474
58592
|
}
|
|
58475
58593
|
});
|
|
@@ -58566,10 +58684,10 @@ class BubbleSeries extends BubbleSeries_ScatterSeries {
|
|
|
58566
58684
|
if (otherSeries.bubblePadding && otherSeries.reserveSpace()) {
|
|
58567
58685
|
const zExtremes = (otherSeries.onPoint || otherSeries).getZExtremes();
|
|
58568
58686
|
if (zExtremes) {
|
|
58569
|
-
//
|
|
58687
|
+
// Use nullish coalescing because min or max can be 0.
|
|
58570
58688
|
// #17280
|
|
58571
|
-
zMin = Math.min(
|
|
58572
|
-
zMax = Math.max(
|
|
58689
|
+
zMin = Math.min((zMin ?? zExtremes.zMin), zExtremes.zMin);
|
|
58690
|
+
zMax = Math.max((zMax ?? zExtremes.zMax), zExtremes.zMax);
|
|
58573
58691
|
valid = true;
|
|
58574
58692
|
}
|
|
58575
58693
|
}
|
|
@@ -58707,19 +58825,19 @@ class BubbleSeries extends BubbleSeries_ScatterSeries {
|
|
|
58707
58825
|
}
|
|
58708
58826
|
return isPercent ? smallestSize * length / 100 : length;
|
|
58709
58827
|
};
|
|
58710
|
-
const minPxSize = getPxSize(
|
|
58828
|
+
const minPxSize = getPxSize(this.options.minSize ?? 8);
|
|
58711
58829
|
// Prioritize min size if conflict to make sure bubbles are
|
|
58712
58830
|
// always visible. #5873
|
|
58713
|
-
const maxPxSize = Math.max(getPxSize(
|
|
58831
|
+
const maxPxSize = Math.max(getPxSize(this.options.maxSize ?? '20%'), minPxSize);
|
|
58714
58832
|
return { minPxSize, maxPxSize };
|
|
58715
58833
|
}
|
|
58716
58834
|
getZExtremes() {
|
|
58717
58835
|
const options = this.options, zData = this.getColumn('z').filter(isNumber);
|
|
58718
58836
|
if (zData.length) {
|
|
58719
|
-
const zMin =
|
|
58837
|
+
const zMin = (options.zMin ?? clamp(arrayMin(zData), options.displayNegative === false ?
|
|
58720
58838
|
(options.zThreshold || 0) :
|
|
58721
58839
|
-Number.MAX_VALUE, Number.MAX_VALUE));
|
|
58722
|
-
const zMax =
|
|
58840
|
+
const zMax = (options.zMax ?? arrayMax(zData));
|
|
58723
58841
|
if (isNumber(zMin) && isNumber(zMax)) {
|
|
58724
58842
|
return { zMin, zMax };
|
|
58725
58843
|
}
|
|
@@ -59547,7 +59665,7 @@ class HeatmapPoint extends HeatmapPoint_ScatterPoint {
|
|
|
59547
59665
|
* Functions
|
|
59548
59666
|
*
|
|
59549
59667
|
* */
|
|
59550
|
-
/** @
|
|
59668
|
+
/** @internal */
|
|
59551
59669
|
applyOptions(options, x) {
|
|
59552
59670
|
// #17970, if point is null remove its color, because it may be updated
|
|
59553
59671
|
if (this.isNull || this.value === null) {
|
|
@@ -59558,10 +59676,10 @@ class HeatmapPoint extends HeatmapPoint_ScatterPoint {
|
|
|
59558
59676
|
'null' : 'point';
|
|
59559
59677
|
return this;
|
|
59560
59678
|
}
|
|
59561
|
-
/** @
|
|
59679
|
+
/** @internal */
|
|
59562
59680
|
getCellAttributes() {
|
|
59563
59681
|
const point = this, series = point.series, seriesOptions = series.options, xPad = (seriesOptions.colsize || 1) / 2, yPad = (seriesOptions.rowsize || 1) / 2, xAxis = series.xAxis, yAxis = series.yAxis, markerOptions = point.options.marker || series.options.marker, pointPlacement = series.pointPlacementToXValue(), // #7860
|
|
59564
|
-
pointPadding =
|
|
59682
|
+
pointPadding = point.pointPadding ?? seriesOptions.pointPadding ?? 0, cellAttr = {
|
|
59565
59683
|
x1: clamp(Math.round(xAxis.len -
|
|
59566
59684
|
xAxis.translate(point.x - xPad, false, true, false, true, -pointPlacement)), -xAxis.len, 2 * xAxis.len),
|
|
59567
59685
|
x2: clamp(Math.round(xAxis.len -
|
|
@@ -59596,7 +59714,7 @@ class HeatmapPoint extends HeatmapPoint_ScatterPoint {
|
|
|
59596
59714
|
return cellAttr;
|
|
59597
59715
|
}
|
|
59598
59716
|
/**
|
|
59599
|
-
* @
|
|
59717
|
+
* @internal
|
|
59600
59718
|
*/
|
|
59601
59719
|
haloPath(size) {
|
|
59602
59720
|
if (!size) {
|
|
@@ -59614,7 +59732,7 @@ class HeatmapPoint extends HeatmapPoint_ScatterPoint {
|
|
|
59614
59732
|
/**
|
|
59615
59733
|
* Color points have a value option that determines whether or not it is
|
|
59616
59734
|
* a null point
|
|
59617
|
-
* @
|
|
59735
|
+
* @internal
|
|
59618
59736
|
*/
|
|
59619
59737
|
isValid() {
|
|
59620
59738
|
// Undefined is allowed
|
|
@@ -60301,7 +60419,7 @@ const { doc: InterpolationUtilities_doc } = Core_Globals;
|
|
|
60301
60419
|
/**
|
|
60302
60420
|
* Find color of point based on color axis.
|
|
60303
60421
|
*
|
|
60304
|
-
* @
|
|
60422
|
+
* @internal
|
|
60305
60423
|
*
|
|
60306
60424
|
* @param {number | null} value
|
|
60307
60425
|
* Value to find corresponding color on the color axis.
|
|
@@ -60319,8 +60437,8 @@ function colorFromPoint(value, point) {
|
|
|
60319
60437
|
.split(')')[0]
|
|
60320
60438
|
.split('(')[1]
|
|
60321
60439
|
.split(',')
|
|
60322
|
-
.map((s) =>
|
|
60323
|
-
rgba[3] =
|
|
60440
|
+
.map((s) => (parseFloat(s) ?? parseInt(s, 10))));
|
|
60441
|
+
rgba[3] = (rgba[3] ?? 1.0) * 255;
|
|
60324
60442
|
if (!defined(value) || !point.visible) {
|
|
60325
60443
|
rgba[3] = 0;
|
|
60326
60444
|
}
|
|
@@ -60330,7 +60448,7 @@ function colorFromPoint(value, point) {
|
|
|
60330
60448
|
}
|
|
60331
60449
|
/**
|
|
60332
60450
|
* Method responsible for creating a canvas for interpolation image.
|
|
60333
|
-
* @
|
|
60451
|
+
* @internal
|
|
60334
60452
|
*/
|
|
60335
60453
|
function getContext(series) {
|
|
60336
60454
|
const { canvas, context } = series;
|
|
@@ -60383,7 +60501,7 @@ const { colorFromPoint: HeatmapSeries_colorFromPoint, getContext: HeatmapSeries_
|
|
|
60383
60501
|
*
|
|
60384
60502
|
* */
|
|
60385
60503
|
/**
|
|
60386
|
-
* @
|
|
60504
|
+
* @internal
|
|
60387
60505
|
* @class
|
|
60388
60506
|
* @name Highcharts.seriesTypes.heatmap
|
|
60389
60507
|
*
|
|
@@ -60407,7 +60525,7 @@ class HeatmapSeries extends HeatmapSeries_ScatterSeries {
|
|
|
60407
60525
|
*
|
|
60408
60526
|
* */
|
|
60409
60527
|
/**
|
|
60410
|
-
* @
|
|
60528
|
+
* @internal
|
|
60411
60529
|
*/
|
|
60412
60530
|
drawPoints() {
|
|
60413
60531
|
const series = this, seriesOptions = series.options, interpolation = seriesOptions.interpolation, seriesMarkerOptions = seriesOptions.marker || {};
|
|
@@ -60466,13 +60584,13 @@ class HeatmapSeries extends HeatmapSeries_ScatterSeries {
|
|
|
60466
60584
|
}
|
|
60467
60585
|
/**
|
|
60468
60586
|
* Override to use rectangle by default
|
|
60469
|
-
* @
|
|
60587
|
+
* @internal
|
|
60470
60588
|
*/
|
|
60471
60589
|
getSymbol() {
|
|
60472
60590
|
this.symbol = this.options.marker?.symbol || 'rect';
|
|
60473
60591
|
}
|
|
60474
60592
|
/**
|
|
60475
|
-
* @
|
|
60593
|
+
* @internal
|
|
60476
60594
|
*/
|
|
60477
60595
|
getExtremes() {
|
|
60478
60596
|
// Get the extremes from the value data
|
|
@@ -60490,7 +60608,7 @@ class HeatmapSeries extends HeatmapSeries_ScatterSeries {
|
|
|
60490
60608
|
/**
|
|
60491
60609
|
* Override to also allow null points, used when building the k-d-tree for
|
|
60492
60610
|
* tooltips in boost mode.
|
|
60493
|
-
* @
|
|
60611
|
+
* @internal
|
|
60494
60612
|
*/
|
|
60495
60613
|
getValidPoints(points, insideOnly) {
|
|
60496
60614
|
return HeatmapSeries_Series.prototype.getValidPoints.call(this, points, insideOnly, true);
|
|
@@ -60498,20 +60616,20 @@ class HeatmapSeries extends HeatmapSeries_ScatterSeries {
|
|
|
60498
60616
|
/**
|
|
60499
60617
|
* Define hasData function for non-cartesian series. Returns true if the
|
|
60500
60618
|
* series has points at all.
|
|
60501
|
-
* @
|
|
60619
|
+
* @internal
|
|
60502
60620
|
*/
|
|
60503
60621
|
hasData() {
|
|
60504
60622
|
return !!this.dataTable.rowCount;
|
|
60505
60623
|
}
|
|
60506
60624
|
/**
|
|
60507
60625
|
* Override the init method to add point ranges on both axes.
|
|
60508
|
-
* @
|
|
60626
|
+
* @internal
|
|
60509
60627
|
*/
|
|
60510
60628
|
init() {
|
|
60511
60629
|
super.init.apply(this, arguments);
|
|
60512
60630
|
const options = this.options;
|
|
60513
60631
|
// #3758, prevent resetting in setData
|
|
60514
|
-
options.pointRange =
|
|
60632
|
+
options.pointRange = options.pointRange ?? (options.colsize || 1);
|
|
60515
60633
|
// General point range
|
|
60516
60634
|
this.yAxis.axisPointRange = options.rowsize || 1;
|
|
60517
60635
|
// Bind new symbol names
|
|
@@ -60534,7 +60652,7 @@ class HeatmapSeries extends HeatmapSeries_ScatterSeries {
|
|
|
60534
60652
|
}
|
|
60535
60653
|
}
|
|
60536
60654
|
/**
|
|
60537
|
-
* @
|
|
60655
|
+
* @internal
|
|
60538
60656
|
*/
|
|
60539
60657
|
markerAttribs(point, state) {
|
|
60540
60658
|
const shapeArgs = point.shapeArgs || {};
|
|
@@ -60568,7 +60686,7 @@ class HeatmapSeries extends HeatmapSeries_ScatterSeries {
|
|
|
60568
60686
|
return shapeArgs;
|
|
60569
60687
|
}
|
|
60570
60688
|
/**
|
|
60571
|
-
* @
|
|
60689
|
+
* @internal
|
|
60572
60690
|
*/
|
|
60573
60691
|
pointAttribs(point, state) {
|
|
60574
60692
|
const series = this, attr = HeatmapSeries_Series.prototype.pointAttribs.call(series, point, state), seriesOptions = series.options || {}, plotOptions = series.chart.options.plotOptions || {}, seriesPlotOptions = plotOptions.series || {}, heatmapPlotOptions = plotOptions.heatmap || {},
|
|
@@ -60598,7 +60716,7 @@ class HeatmapSeries extends HeatmapSeries_ScatterSeries {
|
|
|
60598
60716
|
return attr;
|
|
60599
60717
|
}
|
|
60600
60718
|
/**
|
|
60601
|
-
* @
|
|
60719
|
+
* @internal
|
|
60602
60720
|
*/
|
|
60603
60721
|
translate() {
|
|
60604
60722
|
const series = this, options = series.options, { borderRadius, marker } = options, symbol = marker?.symbol || 'rect', shape = HeatmapSeries_symbols[symbol] ? symbol : 'rect', hasRegularShape = ['circle', 'square'].indexOf(shape) !== -1;
|
|
@@ -60650,7 +60768,7 @@ extend(HeatmapSeries.prototype, {
|
|
|
60650
60768
|
specialGroup: 'group',
|
|
60651
60769
|
trackerGroups: Series_ColorMapComposition.seriesMembers.trackerGroups,
|
|
60652
60770
|
/**
|
|
60653
|
-
* @
|
|
60771
|
+
* @internal
|
|
60654
60772
|
*/
|
|
60655
60773
|
alignDataLabel: HeatmapSeries_ColumnSeries.prototype.alignDataLabel,
|
|
60656
60774
|
colorAttribs: Series_ColorMapComposition.seriesMembers.colorAttribs
|
|
@@ -60697,7 +60815,7 @@ Series_SeriesRegistry.registerSeriesType('heatmap', HeatmapSeries);
|
|
|
60697
60815
|
/* unused harmony import specifier */ var map_src_Highcharts;
|
|
60698
60816
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
60699
60817
|
/**
|
|
60700
|
-
* @license Highmaps JS v13.0.
|
|
60818
|
+
* @license Highmaps JS v13.0.2 (2026-08-27)
|
|
60701
60819
|
* @module highcharts/modules/map
|
|
60702
60820
|
* @requires highcharts
|
|
60703
60821
|
*
|