highcharts 13.0.1 → 13.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +2 -3
- package/es-modules/Accessibility/A11yI18n.js +4 -4
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +6 -4
- package/es-modules/Accessibility/Components/LegendComponent.js +2 -2
- package/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +13 -10
- package/es-modules/Accessibility/Components/ZoomComponent.js +2 -2
- package/es-modules/Accessibility/FocusBorder.js +2 -2
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +1 -2
- package/es-modules/Core/Animation/AnimationUtilities.js +3 -2
- package/es-modules/Core/Axis/Axis.js +48 -57
- package/es-modules/Core/Axis/Axis3DComposition.js +8 -6
- package/es-modules/Core/Axis/BrokenAxis.js +6 -5
- package/es-modules/Core/Axis/Color/ColorAxis.js +17 -10
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +2 -2
- package/es-modules/Core/Axis/GridAxis.js +4 -4
- package/es-modules/Core/Axis/LogarithmicAxis.js +5 -3
- package/es-modules/Core/Axis/NavigatorAxisComposition.js +2 -2
- package/es-modules/Core/Axis/OrdinalAxis.js +9 -7
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -2
- package/es-modules/Core/Axis/RadialAxis.js +15 -9
- package/es-modules/Core/Axis/ScrollbarAxis.js +3 -3
- package/es-modules/Core/Axis/Stacking/StackItem.js +5 -5
- package/es-modules/Core/Axis/Stacking/StackingAxis.js +4 -4
- package/es-modules/Core/Axis/Tick.js +10 -11
- package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +3 -3
- package/es-modules/Core/Chart/Chart.js +14 -14
- package/es-modules/Core/Chart/Chart3D.js +3 -3
- package/es-modules/Core/Chart/ChartDefaults.js +23 -0
- package/es-modules/Core/Chart/MapChart.js +7 -5
- package/es-modules/Core/Chart/StockChart.js +15 -11
- package/es-modules/Core/Color/Color.js +3 -1
- package/es-modules/Core/Defaults.js +35 -0
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/Legend/Legend.js +16 -12
- package/es-modules/Core/Legend/LegendSymbol.js +2 -2
- package/es-modules/Core/MSPointer.js +2 -2
- package/es-modules/Core/Math3D.js +6 -7
- package/es-modules/Core/Pointer.js +9 -9
- package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGElement.js +11 -9
- package/es-modules/Core/Renderer/SVG/SVGElement3D.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +5 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +5 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +11 -9
- package/es-modules/Core/Renderer/SVG/Symbols.js +6 -5
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
- package/es-modules/Core/Responsive.js +7 -5
- package/es-modules/Core/Series/DataLabel.js +8 -6
- package/es-modules/Core/Series/OverlappingDataLabels.js +5 -2
- package/es-modules/Core/Series/Point.js +3 -3
- package/es-modules/Core/Series/Series.js +37 -21
- package/es-modules/Core/Series/Series3D.js +2 -2
- package/es-modules/Core/Templating.js +2 -2
- package/es-modules/Core/Tooltip.js +11 -7
- package/es-modules/Core/Utilities.js +4 -3
- package/es-modules/Data/Connectors/DataConnector.js +2 -2
- package/es-modules/Data/Connectors/GoogleSheetsConnector.js +2 -2
- package/es-modules/Data/DataTable.js +17 -0
- package/es-modules/Extensions/Annotations/Annotation.js +4 -4
- package/es-modules/Extensions/Annotations/AnnotationChart.js +2 -2
- package/es-modules/Extensions/Annotations/ControlPoint.js +2 -2
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +2 -2
- package/es-modules/Extensions/Annotations/EventEmitter.js +4 -4
- package/es-modules/Extensions/Annotations/NavigationBindings.js +6 -3
- package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +2 -2
- package/es-modules/Extensions/Annotations/Popup/Popup.js +3 -2
- package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +4 -6
- package/es-modules/Extensions/Annotations/Types/Measure.js +3 -3
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +3 -3
- package/es-modules/Extensions/Boost/BoostChart.js +11 -4
- package/es-modules/Extensions/Boost/BoostSeries.js +8 -9
- package/es-modules/Extensions/Boost/WGLRenderer.js +9 -6
- package/es-modules/Extensions/Boost/WGLShader.js +3 -3
- package/es-modules/Extensions/BoostCanvas.js +2 -2
- package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +5 -4
- package/es-modules/Extensions/DataGrouping/DataGrouping.js +2 -2
- package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +4 -3
- package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +2 -2
- package/es-modules/Extensions/DraggablePoints/DragDropProps.js +2 -3
- package/es-modules/Extensions/ExportData/ExportData.js +17 -16
- package/es-modules/Extensions/Exporting/Exporting.js +7 -7
- package/es-modules/Extensions/MouseWheelZoom/MouseWheelZoom.js +2 -2
- package/es-modules/Extensions/Pane/PaneComposition.js +2 -2
- package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +2 -2
- package/es-modules/Extensions/PatternFill.js +7 -5
- package/es-modules/Extensions/PriceIndication.js +5 -4
- package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +7 -7
- package/es-modules/Extensions/Sonification/MIDI.js +2 -3
- package/es-modules/Extensions/Sonification/Sonification.js +2 -2
- package/es-modules/Extensions/Sonification/SonificationSpeaker.js +3 -2
- package/es-modules/Extensions/Sonification/SynthPatch.js +3 -3
- package/es-modules/Extensions/Sonification/TimelineFromChart.js +11 -11
- package/es-modules/Gantt/Legacy.js +2 -2
- package/es-modules/Gantt/Pathfinder.js +3 -3
- package/es-modules/Gantt/PathfinderAlgorithms.js +4 -3
- package/es-modules/Gantt/Tree.js +1 -1
- package/es-modules/Maps/MapNavigation.js +4 -4
- package/es-modules/Maps/MapPointer.js +2 -2
- package/es-modules/Maps/MapView.js +2 -2
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +8 -6
- package/es-modules/Series/Area/AreaSeries.js +4 -5
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +13 -4
- package/es-modules/Series/Bubble/BubbleLegendItem.js +10 -6
- package/es-modules/Series/Bubble/BubbleSeries.js +10 -9
- package/es-modules/Series/Bullet/BulletSeries.js +17 -10
- package/es-modules/Series/CenteredUtilities.js +7 -5
- package/es-modules/Series/Column/ColumnSeries.js +2 -2
- package/es-modules/Series/Column3D/Column3DComposition.js +6 -5
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +4 -4
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +4 -2
- package/es-modules/Series/Cylinder/CylinderComposition.js +2 -2
- package/es-modules/Series/DataModifyComposition.js +9 -7
- package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -2
- package/es-modules/Series/Dumbbell/DumbbellPoint.js +14 -3
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +24 -7
- package/es-modules/Series/FlowMap/FlowMapPoint.js +5 -3
- package/es-modules/Series/FlowMap/FlowMapSeries.js +17 -9
- package/es-modules/Series/Funnel/FunnelSeries.js +2 -2
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +7 -5
- package/es-modules/Series/Gauge/GaugeSeries.js +2 -2
- package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +4 -4
- package/es-modules/Series/Heatmap/HeatmapPoint.js +6 -6
- package/es-modules/Series/Heatmap/HeatmapPointOptions.js +12 -0
- package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -13
- package/es-modules/Series/Heatmap/HeatmapSeriesOptions.js +12 -0
- package/es-modules/Series/Histogram/HistogramPoint.js +17 -0
- package/es-modules/Series/Histogram/HistogramPointOptions.js +12 -0
- package/es-modules/Series/Histogram/HistogramSeries.js +14 -2
- package/es-modules/Series/Histogram/HistogramSeriesOptions.js +12 -0
- package/es-modules/Series/InterpolationUtilities.js +5 -5
- package/es-modules/Series/Item/ItemPointOptions.js +14 -0
- package/es-modules/Series/Item/ItemSeries.js +18 -6
- package/es-modules/Series/Item/ItemSeriesOptions.js +14 -0
- package/es-modules/Series/Map/MapPoint.js +5 -3
- package/es-modules/Series/Map/MapSeries.js +5 -8
- package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +3 -3
- package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -2
- package/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js +18 -9
- package/es-modules/Series/NodesComposition.js +9 -10
- package/es-modules/Series/Organization/OrganizationPoint.js +3 -2
- package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -3
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +5 -5
- package/es-modules/Series/Pictorial/PictorialSeries.js +4 -2
- package/es-modules/Series/Pie/PieDataLabel.js +2 -2
- package/es-modules/Series/Pie/PiePoint.js +2 -2
- package/es-modules/Series/Pie/PieSeries.js +3 -2
- package/es-modules/Series/Pie3D/Pie3DSeries.js +8 -4
- package/es-modules/Series/PolarComposition.js +8 -7
- package/es-modules/Series/Sankey/SankeySeries.js +11 -5
- package/es-modules/Series/Scatter/ScatterSeries.js +6 -5
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +2 -2
- package/es-modules/Series/Spline/SplineSeries.js +5 -5
- package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +8 -6
- package/es-modules/Series/Tilemap/TilemapShapes.js +2 -2
- package/es-modules/Series/Timeline/TimelinePoint.js +2 -2
- package/es-modules/Series/Timeline/TimelineSeries.js +4 -3
- package/es-modules/Series/TreeUtilities.js +16 -7
- package/es-modules/Series/Treegraph/TreegraphLink.js +2 -2
- package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +14 -11
- package/es-modules/Series/VariablePie/VariablePieSeries.js +6 -4
- package/es-modules/Series/Variwide/VariwideSeries.js +2 -2
- package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -2
- package/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
- package/es-modules/Shared/TimeBase.js +8 -2
- package/es-modules/Shared/Utilities.js +9 -7
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -3
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +4 -3
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +1 -1
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +2 -2
- package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +4 -4
- package/es-modules/Stock/Navigator/Navigator.js +26 -26
- package/es-modules/Stock/Navigator/StandaloneNavigator.js +4 -4
- package/es-modules/Stock/RangeSelector/RangeSelector.js +15 -11
- package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +3 -3
- package/es-modules/Stock/Scrollbar/Scrollbar.js +8 -7
- package/es-modules/Stock/StockTools/StockToolbar.js +5 -5
- package/es-modules/Stock/StockTools/StockTools.js +2 -2
- package/es-modules/Stock/StockTools/StockToolsGui.js +4 -2
- package/es-modules/masters/highcharts-3d.src.js +1 -1
- package/es-modules/masters/highcharts-autoload.src.js +1 -1
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +1 -1
- package/es-modules/masters/highcharts.src.js +7 -2
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
- package/es-modules/masters/i18n/fr-FR.src.js +1 -1
- package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
- package/es-modules/masters/i18n/nb-NO.src.js +1 -1
- package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
- package/es-modules/masters/i18n/zh-CN.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
- package/es-modules/masters/modules/annotations.src.js +1 -1
- package/es-modules/masters/modules/arc-diagram.src.js +1 -1
- package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
- package/es-modules/masters/modules/boost-canvas.src.js +1 -1
- package/es-modules/masters/modules/boost.src.js +1 -1
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/contour.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data-sorting.src.js +1 -1
- package/es-modules/masters/modules/data-tools.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +1 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/exporting.src.js +1 -1
- package/es-modules/masters/modules/flowmap.src.js +1 -1
- package/es-modules/masters/modules/full-screen.src.js +1 -1
- package/es-modules/masters/modules/funnel.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/es-modules/masters/modules/gantt.src.js +1 -1
- package/es-modules/masters/modules/geoheatmap.src.js +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
- package/es-modules/masters/modules/navigator.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +1 -1
- package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
- package/es-modules/masters/modules/non-cartesian-zoom.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/organization.src.js +1 -1
- package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
- package/es-modules/masters/modules/pareto.src.js +1 -1
- package/es-modules/masters/modules/pathfinder.src.js +1 -1
- package/es-modules/masters/modules/pattern-fill.src.js +1 -1
- package/es-modules/masters/modules/pictorial.src.js +1 -1
- package/es-modules/masters/modules/pointandfigure.src.js +1 -1
- package/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/es-modules/masters/modules/pyramid3d.src.js +1 -1
- package/es-modules/masters/modules/renko.src.js +1 -1
- package/es-modules/masters/modules/sankey.src.js +1 -1
- package/es-modules/masters/modules/series-label.src.js +1 -1
- package/es-modules/masters/modules/series-on-point.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +1 -1
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/textpath.src.js +1 -1
- package/es-modules/masters/modules/tiledwebmap.src.js +1 -1
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/timeline.src.js +1 -1
- package/es-modules/masters/modules/treegraph.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +1 -1
- package/es-modules/masters/modules/treemap.src.js +1 -1
- package/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/es-modules/masters/modules/variwide.src.js +1 -1
- package/es-modules/masters/modules/vector.src.js +1 -1
- package/es-modules/masters/modules/venn.src.js +1 -1
- package/es-modules/masters/modules/windbarb.src.js +1 -1
- package/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/es-modules/masters/modules/xrange.src.js +1 -1
- package/es-modules/masters/standalone-navigator.src.js +1 -1
- package/es-modules/masters/themes/adaptive.src.js +1 -1
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/high-contrast.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/es-modules/tsconfig.tsbuildinfo +1 -1
- package/esm/highcharts-3d.js +2 -2
- package/esm/highcharts-3d.src.js +40 -32
- package/esm/highcharts-autoload.js +1 -1
- package/esm/highcharts-autoload.src.js +1 -1
- package/esm/highcharts-gantt.js +1 -1
- package/esm/highcharts-gantt.src.js +1 -1
- package/esm/highcharts-more.js +2 -2
- package/esm/highcharts-more.src.js +90 -56
- package/esm/highcharts.js +4 -4
- package/esm/highcharts.src.js +312 -207
- package/esm/highmaps.js +1 -1
- package/esm/highmaps.src.js +1 -1
- package/esm/highstock.js +1 -1
- package/esm/highstock.src.js +1 -1
- package/esm/i18n/fr-FR.js +1 -1
- package/esm/i18n/fr-FR.src.js +1 -1
- package/esm/i18n/nb-NO.js +1 -1
- package/esm/i18n/nb-NO.src.js +1 -1
- package/esm/i18n/zh-CN.js +1 -1
- package/esm/i18n/zh-CN.src.js +1 -1
- package/esm/indicators/acceleration-bands.js +1 -1
- package/esm/indicators/acceleration-bands.src.js +1 -1
- package/esm/indicators/accumulation-distribution.js +1 -1
- package/esm/indicators/accumulation-distribution.src.js +1 -1
- package/esm/indicators/ao.js +1 -1
- package/esm/indicators/ao.src.js +1 -1
- package/esm/indicators/apo.js +1 -1
- package/esm/indicators/apo.src.js +1 -1
- package/esm/indicators/aroon-oscillator.js +1 -1
- package/esm/indicators/aroon-oscillator.src.js +1 -1
- package/esm/indicators/aroon.js +2 -2
- package/esm/indicators/aroon.src.js +3 -3
- package/esm/indicators/atr.js +1 -1
- package/esm/indicators/atr.src.js +1 -1
- package/esm/indicators/bollinger-bands.js +1 -1
- package/esm/indicators/bollinger-bands.src.js +1 -1
- package/esm/indicators/cci.js +1 -1
- package/esm/indicators/cci.src.js +1 -1
- package/esm/indicators/chaikin.js +1 -1
- package/esm/indicators/chaikin.src.js +1 -1
- package/esm/indicators/cmf.js +1 -1
- package/esm/indicators/cmf.src.js +1 -1
- package/esm/indicators/cmo.js +1 -1
- package/esm/indicators/cmo.src.js +1 -1
- package/esm/indicators/dema.js +1 -1
- package/esm/indicators/dema.src.js +1 -1
- package/esm/indicators/disparity-index.js +1 -1
- package/esm/indicators/disparity-index.src.js +1 -1
- package/esm/indicators/dmi.js +1 -1
- package/esm/indicators/dmi.src.js +1 -1
- package/esm/indicators/dpo.js +2 -2
- package/esm/indicators/dpo.src.js +4 -3
- package/esm/indicators/ichimoku-kinko-hyo.js +1 -1
- package/esm/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/esm/indicators/indicators-all.js +2 -2
- package/esm/indicators/indicators-all.src.js +8 -7
- package/esm/indicators/indicators.js +2 -2
- package/esm/indicators/indicators.src.js +2 -2
- package/esm/indicators/keltner-channels.js +1 -1
- package/esm/indicators/keltner-channels.src.js +1 -1
- package/esm/indicators/klinger.js +1 -1
- package/esm/indicators/klinger.src.js +1 -1
- package/esm/indicators/macd.js +1 -1
- package/esm/indicators/macd.src.js +1 -1
- package/esm/indicators/mfi.js +1 -1
- package/esm/indicators/mfi.src.js +1 -1
- package/esm/indicators/momentum.js +1 -1
- package/esm/indicators/momentum.src.js +1 -1
- package/esm/indicators/natr.js +1 -1
- package/esm/indicators/natr.src.js +1 -1
- package/esm/indicators/obv.js +1 -1
- package/esm/indicators/obv.src.js +1 -1
- package/esm/indicators/pivot-points.js +1 -1
- package/esm/indicators/pivot-points.src.js +1 -1
- package/esm/indicators/ppo.js +1 -1
- package/esm/indicators/ppo.src.js +1 -1
- package/esm/indicators/price-channel.js +1 -1
- package/esm/indicators/price-channel.src.js +1 -1
- package/esm/indicators/price-envelopes.js +1 -1
- package/esm/indicators/price-envelopes.src.js +1 -1
- package/esm/indicators/psar.js +1 -1
- package/esm/indicators/psar.src.js +1 -1
- package/esm/indicators/regressions.js +1 -1
- package/esm/indicators/regressions.src.js +1 -1
- package/esm/indicators/roc.js +1 -1
- package/esm/indicators/roc.src.js +1 -1
- package/esm/indicators/rsi.js +1 -1
- package/esm/indicators/rsi.src.js +2 -2
- package/esm/indicators/slow-stochastic.js +1 -1
- package/esm/indicators/slow-stochastic.src.js +1 -1
- package/esm/indicators/stochastic.js +1 -1
- package/esm/indicators/stochastic.src.js +1 -1
- package/esm/indicators/supertrend.js +1 -1
- package/esm/indicators/supertrend.src.js +1 -1
- package/esm/indicators/tema.js +1 -1
- package/esm/indicators/tema.src.js +1 -1
- package/esm/indicators/trendline.js +1 -1
- package/esm/indicators/trendline.src.js +1 -1
- package/esm/indicators/trix.js +1 -1
- package/esm/indicators/trix.src.js +1 -1
- package/esm/indicators/volume-by-price.js +1 -1
- package/esm/indicators/volume-by-price.src.js +1 -1
- package/esm/indicators/vwap.js +1 -1
- package/esm/indicators/vwap.src.js +1 -1
- package/esm/indicators/williams-r.js +1 -1
- package/esm/indicators/williams-r.src.js +1 -1
- package/esm/indicators/wma.js +1 -1
- package/esm/indicators/wma.src.js +1 -1
- package/esm/indicators/zigzag.js +1 -1
- package/esm/indicators/zigzag.src.js +1 -1
- package/esm/modules/accessibility.js +2 -2
- package/esm/modules/accessibility.src.js +69 -63
- package/esm/modules/annotations-advanced.js +3 -3
- package/esm/modules/annotations-advanced.src.js +25 -23
- package/esm/modules/annotations.js +3 -3
- package/esm/modules/annotations.src.js +21 -19
- package/esm/modules/arc-diagram.js +2 -2
- package/esm/modules/arc-diagram.src.js +16 -15
- package/esm/modules/arrow-symbols.js +1 -1
- package/esm/modules/arrow-symbols.src.js +1 -1
- package/esm/modules/boost-canvas.js +2 -2
- package/esm/modules/boost-canvas.src.js +29 -20
- package/esm/modules/boost.js +2 -2
- package/esm/modules/boost.src.js +28 -19
- package/esm/modules/broken-axis.js +2 -2
- package/esm/modules/broken-axis.src.js +6 -5
- package/esm/modules/bullet.js +2 -2
- package/esm/modules/bullet.src.js +17 -10
- package/esm/modules/coloraxis.js +2 -2
- package/esm/modules/coloraxis.src.js +18 -11
- package/esm/modules/contour.js +1 -1
- package/esm/modules/contour.src.js +1 -1
- package/esm/modules/current-date-indicator.js +1 -1
- package/esm/modules/current-date-indicator.src.js +1 -1
- package/esm/modules/cylinder.js +2 -2
- package/esm/modules/cylinder.src.js +9 -10
- package/esm/modules/data-sorting.js +1 -1
- package/esm/modules/data-sorting.src.js +1 -1
- package/esm/modules/data-tools.js +2 -2
- package/esm/modules/data-tools.src.js +20 -3
- package/esm/modules/data.js +1 -1
- package/esm/modules/data.src.js +1 -1
- package/esm/modules/datagrouping.js +2 -2
- package/esm/modules/datagrouping.src.js +6 -5
- package/esm/modules/debugger.js +1 -1
- package/esm/modules/debugger.src.js +1 -1
- package/esm/modules/dependency-wheel.js +1 -1
- package/esm/modules/dependency-wheel.src.js +1 -1
- package/esm/modules/dotplot.js +2 -2
- package/esm/modules/dotplot.src.js +3 -2
- package/esm/modules/drag-panes.js +1 -1
- package/esm/modules/drag-panes.src.js +1 -1
- package/esm/modules/draggable-points.js +2 -2
- package/esm/modules/draggable-points.src.js +2 -3
- package/esm/modules/drilldown.js +2 -2
- package/esm/modules/drilldown.src.js +5 -4
- package/esm/modules/dumbbell.js +2 -2
- package/esm/modules/dumbbell.src.js +37 -9
- package/esm/modules/export-data.js +2 -2
- package/esm/modules/export-data.src.js +17 -16
- package/esm/modules/exporting.js +2 -2
- package/esm/modules/exporting.src.js +7 -7
- package/esm/modules/flowmap.js +2 -2
- package/esm/modules/flowmap.src.js +21 -11
- package/esm/modules/full-screen.js +1 -1
- package/esm/modules/full-screen.src.js +1 -1
- package/esm/modules/funnel.js +2 -2
- package/esm/modules/funnel.src.js +2 -2
- package/esm/modules/funnel3d.js +2 -2
- package/esm/modules/funnel3d.src.js +14 -13
- package/esm/modules/gantt.js +2 -2
- package/esm/modules/gantt.src.js +93 -76
- package/esm/modules/geoheatmap.js +2 -2
- package/esm/modules/geoheatmap.src.js +8 -8
- package/esm/modules/grid-axis.js +2 -2
- package/esm/modules/grid-axis.src.js +4 -4
- package/esm/modules/heatmap.js +2 -2
- package/esm/modules/heatmap.src.js +22 -22
- package/esm/modules/heikinashi.js +1 -1
- package/esm/modules/heikinashi.src.js +1 -1
- package/esm/modules/histogram-bellcurve.js +1 -1
- package/esm/modules/histogram-bellcurve.src.js +15 -3
- package/esm/modules/hollowcandlestick.js +1 -1
- package/esm/modules/hollowcandlestick.src.js +1 -1
- package/esm/modules/item-series.js +2 -2
- package/esm/modules/item-series.src.js +18 -6
- package/esm/modules/lollipop.js +1 -1
- package/esm/modules/lollipop.src.js +1 -1
- package/esm/modules/map.js +2 -2
- package/esm/modules/map.src.js +65 -57
- package/esm/modules/marker-clusters.js +1 -1
- package/esm/modules/marker-clusters.src.js +1 -1
- package/esm/modules/mouse-wheel-zoom.js +2 -2
- package/esm/modules/mouse-wheel-zoom.src.js +3 -3
- package/esm/modules/navigator.js +2 -2
- package/esm/modules/navigator.src.js +47 -45
- package/esm/modules/networkgraph.js +2 -2
- package/esm/modules/networkgraph.src.js +31 -21
- package/esm/modules/no-data-to-display.js +1 -1
- package/esm/modules/no-data-to-display.src.js +1 -1
- package/esm/modules/non-cartesian-zoom.js +1 -1
- package/esm/modules/non-cartesian-zoom.src.js +1 -1
- package/esm/modules/offline-exporting.js +1 -1
- package/esm/modules/offline-exporting.src.js +1 -1
- package/esm/modules/organization.js +2 -2
- package/esm/modules/organization.src.js +3 -2
- package/esm/modules/parallel-coordinates.js +2 -2
- package/esm/modules/parallel-coordinates.src.js +2 -2
- package/esm/modules/pareto.js +1 -1
- package/esm/modules/pareto.src.js +1 -1
- package/esm/modules/pathfinder.js +2 -2
- package/esm/modules/pathfinder.src.js +7 -6
- package/esm/modules/pattern-fill.js +2 -2
- package/esm/modules/pattern-fill.src.js +7 -5
- package/esm/modules/pictorial.js +2 -2
- package/esm/modules/pictorial.src.js +10 -6
- package/esm/modules/pointandfigure.js +1 -1
- package/esm/modules/pointandfigure.src.js +1 -1
- package/esm/modules/price-indicator.js +2 -2
- package/esm/modules/price-indicator.src.js +5 -4
- package/esm/modules/pyramid3d.js +1 -1
- package/esm/modules/pyramid3d.src.js +1 -1
- package/esm/modules/renko.js +1 -1
- package/esm/modules/renko.src.js +1 -1
- package/esm/modules/sankey.js +2 -2
- package/esm/modules/sankey.src.js +34 -20
- package/esm/modules/series-label.js +2 -2
- package/esm/modules/series-label.src.js +7 -7
- package/esm/modules/series-on-point.js +1 -1
- package/esm/modules/series-on-point.src.js +1 -1
- package/esm/modules/solid-gauge.js +2 -2
- package/esm/modules/solid-gauge.src.js +2 -2
- package/esm/modules/sonification.js +2 -2
- package/esm/modules/sonification.src.js +19 -19
- package/esm/modules/static-scale.js +1 -1
- package/esm/modules/static-scale.src.js +1 -1
- package/esm/modules/stock-tools.js +3 -3
- package/esm/modules/stock-tools.src.js +15 -10
- package/esm/modules/stock.js +2 -2
- package/esm/modules/stock.src.js +90 -76
- package/esm/modules/streamgraph.js +1 -1
- package/esm/modules/streamgraph.src.js +1 -1
- package/esm/modules/sunburst.js +2 -2
- package/esm/modules/sunburst.src.js +41 -26
- package/esm/modules/textpath.js +1 -1
- package/esm/modules/textpath.src.js +1 -1
- package/esm/modules/tiledwebmap.js +2 -2
- package/esm/modules/tiledwebmap.src.js +8 -6
- package/esm/modules/tilemap.js +2 -2
- package/esm/modules/tilemap.src.js +3 -3
- package/esm/modules/timeline.js +2 -2
- package/esm/modules/timeline.src.js +5 -4
- package/esm/modules/treegraph.js +2 -2
- package/esm/modules/treegraph.src.js +17 -8
- package/esm/modules/treegrid.js +2 -2
- package/esm/modules/treegrid.src.js +28 -18
- package/esm/modules/treemap.js +2 -2
- package/esm/modules/treemap.src.js +35 -22
- package/esm/modules/variable-pie.js +2 -2
- package/esm/modules/variable-pie.src.js +6 -4
- package/esm/modules/variwide.js +2 -2
- package/esm/modules/variwide.src.js +2 -2
- package/esm/modules/vector.js +1 -1
- package/esm/modules/vector.src.js +1 -1
- package/esm/modules/venn.js +1 -1
- package/esm/modules/venn.src.js +1 -1
- package/esm/modules/windbarb.js +2 -2
- package/esm/modules/windbarb.src.js +2 -2
- package/esm/modules/wordcloud.js +1 -1
- package/esm/modules/wordcloud.src.js +1 -1
- package/esm/modules/xrange.js +1 -1
- package/esm/modules/xrange.src.js +1 -1
- package/esm/standalone-navigator.js +4 -4
- package/esm/standalone-navigator.src.js +355 -249
- package/esm/themes/adaptive.js +1 -1
- package/esm/themes/adaptive.src.js +1 -1
- package/esm/themes/avocado.js +1 -1
- package/esm/themes/avocado.src.js +1 -1
- package/esm/themes/dark-unica.js +1 -1
- package/esm/themes/dark-unica.src.js +1 -1
- package/esm/themes/grid-light.js +1 -1
- package/esm/themes/grid-light.src.js +1 -1
- package/esm/themes/high-contrast.js +1 -1
- package/esm/themes/high-contrast.src.js +1 -1
- package/esm/themes/sand-signika.js +1 -1
- package/esm/themes/sand-signika.src.js +1 -1
- package/esm/themes/sunset.js +1 -1
- package/esm/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +2 -2
- package/highcharts-3d.src.js +40 -32
- package/highcharts-autoload.d.ts +8 -2
- package/highcharts-autoload.js +4 -4
- package/highcharts-autoload.src.d.ts +8 -2
- package/highcharts-autoload.src.js +313 -208
- package/highcharts-gantt.js +4 -4
- package/highcharts-gantt.src.js +404 -283
- package/highcharts-more.js +2 -2
- package/highcharts-more.src.js +90 -56
- package/highcharts.d.ts +61 -4
- package/highcharts.js +4 -4
- package/highcharts.src.d.ts +61 -4
- package/highcharts.src.js +312 -207
- package/highmaps.js +4 -4
- package/highmaps.src.js +390 -272
- package/highstock.js +4 -4
- package/highstock.src.js +413 -293
- package/i18n/fr-FR.js +1 -1
- package/i18n/fr-FR.src.js +1 -1
- package/i18n/nb-NO.js +1 -1
- package/i18n/nb-NO.src.js +1 -1
- package/i18n/zh-CN.js +1 -1
- package/i18n/zh-CN.src.js +1 -1
- package/indicators/acceleration-bands.js +1 -1
- package/indicators/acceleration-bands.src.js +1 -1
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +1 -1
- package/indicators/ao.src.js +1 -1
- package/indicators/apo.js +1 -1
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.js +1 -1
- package/indicators/aroon-oscillator.src.js +1 -1
- package/indicators/aroon.js +2 -2
- package/indicators/aroon.src.js +3 -3
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.src.js +1 -1
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +1 -1
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.src.js +1 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.js +1 -1
- package/indicators/dema.src.js +1 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.js +1 -1
- package/indicators/dmi.src.js +1 -1
- package/indicators/dpo.js +2 -2
- package/indicators/dpo.src.js +4 -3
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.js +2 -2
- package/indicators/indicators-all.src.js +8 -7
- package/indicators/indicators.js +2 -2
- package/indicators/indicators.src.js +2 -2
- package/indicators/keltner-channels.js +1 -1
- package/indicators/keltner-channels.src.js +1 -1
- package/indicators/klinger.js +1 -1
- package/indicators/klinger.src.js +1 -1
- package/indicators/macd.js +1 -1
- package/indicators/macd.src.js +1 -1
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +1 -1
- package/indicators/natr.src.js +1 -1
- package/indicators/obv.js +1 -1
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.js +1 -1
- package/indicators/price-channel.src.js +1 -1
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +1 -1
- package/indicators/regressions.src.js +1 -1
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.src.js +2 -2
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.src.js +1 -1
- package/indicators/stochastic.js +1 -1
- package/indicators/stochastic.src.js +1 -1
- package/indicators/supertrend.js +1 -1
- package/indicators/supertrend.src.js +1 -1
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +1 -1
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.js +1 -1
- package/indicators/volume-by-price.src.js +1 -1
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.js +2 -2
- package/modules/accessibility.src.js +69 -63
- package/modules/annotations-advanced.js +3 -3
- package/modules/annotations-advanced.src.js +25 -23
- package/modules/annotations.js +3 -3
- package/modules/annotations.src.js +21 -19
- package/modules/arc-diagram.js +2 -2
- package/modules/arc-diagram.src.js +16 -15
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +2 -2
- package/modules/boost-canvas.src.js +29 -20
- package/modules/boost.js +2 -2
- package/modules/boost.src.js +28 -19
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.src.js +6 -5
- package/modules/bullet.js +2 -2
- package/modules/bullet.src.js +17 -10
- package/modules/coloraxis.js +2 -2
- package/modules/coloraxis.src.js +18 -11
- package/modules/contour.js +4 -4
- package/modules/contour.src.js +19 -12
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +2 -2
- package/modules/cylinder.src.js +9 -10
- package/modules/data-sorting.js +1 -1
- package/modules/data-sorting.src.js +1 -1
- package/modules/data-tools.js +2 -2
- package/modules/data-tools.src.js +20 -3
- package/modules/data.js +1 -1
- package/modules/data.src.js +1 -1
- package/modules/datagrouping.js +2 -2
- package/modules/datagrouping.src.js +6 -5
- package/modules/debugger.js +1 -1
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.js +1 -1
- package/modules/dependency-wheel.src.js +1 -1
- package/modules/dotplot.js +2 -2
- package/modules/dotplot.src.js +3 -2
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +2 -2
- package/modules/draggable-points.src.js +2 -3
- package/modules/drilldown.js +2 -2
- package/modules/drilldown.src.js +5 -4
- package/modules/dumbbell.js +2 -2
- package/modules/dumbbell.src.js +37 -9
- package/modules/export-data.js +2 -2
- package/modules/export-data.src.js +17 -16
- package/modules/exporting.js +2 -2
- package/modules/exporting.src.js +7 -7
- package/modules/flowmap.js +2 -2
- package/modules/flowmap.src.js +21 -11
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +1 -1
- package/modules/funnel.js +2 -2
- package/modules/funnel.src.js +2 -2
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.src.js +14 -13
- package/modules/gantt.js +6 -6
- package/modules/gantt.src.js +96 -79
- package/modules/geoheatmap.d.ts +0 -12
- package/modules/geoheatmap.js +2 -2
- package/modules/geoheatmap.src.d.ts +0 -12
- package/modules/geoheatmap.src.js +8 -8
- package/modules/grid-axis.js +2 -2
- package/modules/grid-axis.src.js +4 -4
- package/modules/heatmap.d.ts +0 -12
- package/modules/heatmap.js +4 -4
- package/modules/heatmap.src.d.ts +0 -12
- package/modules/heatmap.src.js +40 -33
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +1 -1
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.src.js +15 -3
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.src.js +1 -1
- package/modules/item-series.js +2 -2
- package/modules/item-series.src.js +18 -6
- package/modules/lollipop.js +1 -1
- package/modules/lollipop.src.js +1 -1
- package/modules/map.d.ts +0 -12
- package/modules/map.js +4 -4
- package/modules/map.src.d.ts +0 -12
- package/modules/map.src.js +83 -68
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.src.js +1 -1
- package/modules/mouse-wheel-zoom.js +2 -2
- package/modules/mouse-wheel-zoom.src.js +3 -3
- package/modules/navigator.js +2 -2
- package/modules/navigator.src.js +47 -45
- package/modules/networkgraph.js +2 -2
- package/modules/networkgraph.src.js +31 -21
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/non-cartesian-zoom.js +1 -1
- package/modules/non-cartesian-zoom.src.js +1 -1
- package/modules/offline-exporting.js +1 -1
- package/modules/offline-exporting.src.js +1 -1
- package/modules/organization.js +2 -2
- package/modules/organization.src.js +3 -2
- package/modules/parallel-coordinates.js +2 -2
- package/modules/parallel-coordinates.src.js +2 -2
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +2 -2
- package/modules/pathfinder.src.js +7 -6
- package/modules/pattern-fill.js +2 -2
- package/modules/pattern-fill.src.js +7 -5
- package/modules/pictorial.js +2 -2
- package/modules/pictorial.src.js +10 -6
- package/modules/pointandfigure.js +1 -1
- package/modules/pointandfigure.src.js +1 -1
- package/modules/price-indicator.js +2 -2
- package/modules/price-indicator.src.js +5 -4
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +1 -1
- package/modules/renko.js +1 -1
- package/modules/renko.src.js +1 -1
- package/modules/sankey.js +2 -2
- package/modules/sankey.src.js +34 -20
- package/modules/series-label.js +2 -2
- package/modules/series-label.src.js +7 -7
- package/modules/series-on-point.js +1 -1
- package/modules/series-on-point.src.js +1 -1
- package/modules/solid-gauge.js +2 -2
- package/modules/solid-gauge.src.js +2 -2
- package/modules/sonification.js +2 -2
- package/modules/sonification.src.js +19 -19
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +3 -3
- package/modules/stock-tools.src.js +15 -10
- package/modules/stock.js +6 -6
- package/modules/stock.src.js +105 -89
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +2 -2
- package/modules/sunburst.src.js +41 -26
- package/modules/textpath.js +1 -1
- package/modules/textpath.src.js +1 -1
- package/modules/tiledwebmap.js +2 -2
- package/modules/tiledwebmap.src.js +8 -6
- package/modules/tilemap.js +2 -2
- package/modules/tilemap.src.js +3 -3
- package/modules/timeline.js +2 -2
- package/modules/timeline.src.js +5 -4
- package/modules/treegraph.js +2 -2
- package/modules/treegraph.src.js +17 -8
- package/modules/treegrid.js +2 -2
- package/modules/treegrid.src.js +28 -18
- package/modules/treemap.js +2 -2
- package/modules/treemap.src.js +35 -22
- package/modules/variable-pie.js +2 -2
- package/modules/variable-pie.src.js +6 -4
- package/modules/variwide.js +2 -2
- package/modules/variwide.src.js +2 -2
- package/modules/vector.js +1 -1
- package/modules/vector.src.js +1 -1
- package/modules/venn.js +1 -1
- package/modules/venn.src.js +1 -1
- package/modules/windbarb.js +2 -2
- package/modules/windbarb.src.js +2 -2
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.src.js +1 -1
- package/modules/xrange.js +1 -1
- package/modules/xrange.src.js +1 -1
- package/package.json +2 -3
- package/standalone-navigator.js +4 -4
- package/standalone-navigator.src.js +355 -249
- package/themes/adaptive.js +1 -1
- package/themes/adaptive.src.js +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/high-contrast.js +1 -1
- package/themes/high-contrast.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/sunset.js +1 -1
- package/themes/sunset.src.js +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS v13.0.
|
|
2
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
3
3
|
* @module highcharts/highcharts-autoload
|
|
4
4
|
*
|
|
5
5
|
* (c) 2009-2024 Torstein Honsi
|
|
@@ -91,7 +91,7 @@ var Globals;
|
|
|
91
91
|
* Constants
|
|
92
92
|
*
|
|
93
93
|
* */
|
|
94
|
-
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.
|
|
94
|
+
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.2', Globals.win = (typeof window !== 'undefined' ?
|
|
95
95
|
window :
|
|
96
96
|
{}), // eslint-disable-line node/no-unsupported-features/es-builtins
|
|
97
97
|
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 = [
|
|
@@ -418,6 +418,29 @@ const ChartDefaults = {
|
|
|
418
418
|
* @context Highcharts.Chart
|
|
419
419
|
* @apioption chart.events.load
|
|
420
420
|
*/
|
|
421
|
+
/**
|
|
422
|
+
* Fires while the chart is panned by mouse drag. Panning must be
|
|
423
|
+
* enabled through [chart.panning](#chart.panning). One parameter,
|
|
424
|
+
* `event`, is passed to the function, containing common event
|
|
425
|
+
* information as well as `event.originalEvent`, the underlying pointer
|
|
426
|
+
* event. Note that the event fires for every mouse move during the
|
|
427
|
+
* drag, not once per gesture.
|
|
428
|
+
*
|
|
429
|
+
* Calling `event.preventDefault()` or returning false prevents the
|
|
430
|
+
* default panning of the axes. In Highcharts Maps, and on ordinal axes
|
|
431
|
+
* in Highcharts Stock, the panning is applied outside the default
|
|
432
|
+
* action and is not prevented.
|
|
433
|
+
*
|
|
434
|
+
* Panning by touch does not fire this event, unless
|
|
435
|
+
* [chart.zooming.singleTouch](#chart.zooming.singleTouch) is enabled and
|
|
436
|
+
* no zoom type is set. Single-finger drags are then handled as mouse
|
|
437
|
+
* drags and fire this event.
|
|
438
|
+
*
|
|
439
|
+
* @type {Highcharts.ChartPanCallbackFunction}
|
|
440
|
+
* @since 7.0.2
|
|
441
|
+
* @context Highcharts.Chart
|
|
442
|
+
* @apioption chart.events.pan
|
|
443
|
+
*/
|
|
421
444
|
/**
|
|
422
445
|
* Fires when the chart is redrawn, either after a call to
|
|
423
446
|
* `chart.redraw()` or after an axis, series or point is modified with
|
|
@@ -2432,7 +2455,7 @@ function getStyle(el, prop, toInt) {
|
|
|
2432
2455
|
const css = win.getComputedStyle(el, void 0); // eslint-disable-line no-undefined
|
|
2433
2456
|
if (css) {
|
|
2434
2457
|
style = css.getPropertyValue(prop);
|
|
2435
|
-
if (
|
|
2458
|
+
if (toInt ?? prop !== 'opacity') {
|
|
2436
2459
|
style = pInt(style);
|
|
2437
2460
|
}
|
|
2438
2461
|
}
|
|
@@ -2682,7 +2705,7 @@ function merge(extendOrSource, ...sources) {
|
|
|
2682
2705
|
function normalizeTickInterval(interval, multiples, magnitude, allowDecimals, hasTickAmount) {
|
|
2683
2706
|
let i, retInterval = interval;
|
|
2684
2707
|
// Round to a tenfold of 1, 2, 2.5 or 5
|
|
2685
|
-
magnitude =
|
|
2708
|
+
magnitude = (magnitude ?? getMagnitude(interval));
|
|
2686
2709
|
const normalized = interval / magnitude;
|
|
2687
2710
|
// Multiples for a linear scale
|
|
2688
2711
|
if (!multiples) {
|
|
@@ -2795,20 +2818,22 @@ function pad(number, length, padder) {
|
|
|
2795
2818
|
.replace('-', '')
|
|
2796
2819
|
.length).join(padder || '0') + number;
|
|
2797
2820
|
}
|
|
2798
|
-
/* eslint-disable jsdoc
|
|
2821
|
+
/* eslint-disable valid-jsdoc */
|
|
2799
2822
|
/**
|
|
2800
2823
|
* Return the first value that is not null or undefined.
|
|
2801
2824
|
*
|
|
2825
|
+
* @deprecated 13.0.2
|
|
2826
|
+
* Use nullish coalescing (`??`) or explicit fallback logic instead.
|
|
2827
|
+
*
|
|
2802
2828
|
* @function Highcharts.pick<T>
|
|
2803
2829
|
*
|
|
2804
|
-
* @param {...
|
|
2830
|
+
* @param {...(T|null|undefined)} args
|
|
2805
2831
|
* Variable number of arguments to inspect.
|
|
2806
2832
|
*
|
|
2807
2833
|
* @return {T}
|
|
2808
2834
|
* The value of the first argument that is not null or undefined.
|
|
2809
2835
|
*/
|
|
2810
|
-
function pick() {
|
|
2811
|
-
const args = arguments;
|
|
2836
|
+
function pick(...args) {
|
|
2812
2837
|
const length = args.length;
|
|
2813
2838
|
for (let i = 0; i < length; i++) {
|
|
2814
2839
|
const arg = args[i];
|
|
@@ -2817,7 +2842,7 @@ function pick() {
|
|
|
2817
2842
|
}
|
|
2818
2843
|
}
|
|
2819
2844
|
}
|
|
2820
|
-
/* eslint-enable jsdoc
|
|
2845
|
+
/* eslint-enable valid-jsdoc */
|
|
2821
2846
|
/**
|
|
2822
2847
|
* Shortcut for parseInt
|
|
2823
2848
|
*
|
|
@@ -3200,7 +3225,8 @@ function insertItem(item, collection) {
|
|
|
3200
3225
|
!collection[i] ||
|
|
3201
3226
|
// Handle index option, the element to insert has lower index
|
|
3202
3227
|
(isNumber(indexOption) &&
|
|
3203
|
-
indexOption <
|
|
3228
|
+
indexOption < (collection[i].options.index ??
|
|
3229
|
+
collection[i]._i)) ||
|
|
3204
3230
|
// Insert the new item before other internal items
|
|
3205
3231
|
// (navigator)
|
|
3206
3232
|
collection[i].options.isInternal) {
|
|
@@ -3286,7 +3312,7 @@ const uniqueKey = (function () {
|
|
|
3286
3312
|
* State of the serial mode.
|
|
3287
3313
|
*/
|
|
3288
3314
|
function useSerialIds(mode) {
|
|
3289
|
-
return (serialMode =
|
|
3315
|
+
return (serialMode = (mode ?? serialMode));
|
|
3290
3316
|
}
|
|
3291
3317
|
/* *
|
|
3292
3318
|
*
|
|
@@ -3752,6 +3778,10 @@ const isDateTimeFormatOptions = (obj) => obj.main === void 0;
|
|
|
3752
3778
|
*
|
|
3753
3779
|
* @param {Highcharts.TimeOptions} [options] Time options as defined in
|
|
3754
3780
|
* [chart.options.time](/highcharts/time).
|
|
3781
|
+
*
|
|
3782
|
+
* @param {Highcharts.LangOptions} [lang]
|
|
3783
|
+
* Language options. When `options.locale` is not set, `lang.locale` is used as
|
|
3784
|
+
* the locale fallback for locale-aware date formatting.
|
|
3755
3785
|
*/
|
|
3756
3786
|
class TimeBase {
|
|
3757
3787
|
/* *
|
|
@@ -3770,8 +3800,8 @@ class TimeBase {
|
|
|
3770
3800
|
};
|
|
3771
3801
|
this.variableTimezone = false;
|
|
3772
3802
|
this.Date = TimeBase_win.Date;
|
|
3773
|
-
this.update(options);
|
|
3774
3803
|
this.lang = lang;
|
|
3804
|
+
this.update(options);
|
|
3775
3805
|
}
|
|
3776
3806
|
/* *
|
|
3777
3807
|
*
|
|
@@ -3883,7 +3913,9 @@ class TimeBase {
|
|
|
3883
3913
|
/**
|
|
3884
3914
|
* Shorthand to get a cached `Intl.DateTimeFormat` instance.
|
|
3885
3915
|
*/
|
|
3886
|
-
dateTimeFormat(options, timestamp, locale = this.options.locale ||
|
|
3916
|
+
dateTimeFormat(options, timestamp, locale = (this.options.locale ||
|
|
3917
|
+
this.lang?.locale ||
|
|
3918
|
+
pageLang)) {
|
|
3887
3919
|
const cacheKey = JSON.stringify(options) + locale;
|
|
3888
3920
|
if (isString(options)) {
|
|
3889
3921
|
options = this.str2dtf(options);
|
|
@@ -7823,6 +7855,41 @@ const DefaultOptions = {
|
|
|
7823
7855
|
* @param {global.Event} event
|
|
7824
7856
|
* The event that occurred.
|
|
7825
7857
|
*/
|
|
7858
|
+
/**
|
|
7859
|
+
* Gets fired while the chart is panned by mouse drag. Calling
|
|
7860
|
+
* `event.preventDefault()` or returning `false` prevents the default panning
|
|
7861
|
+
* of the axes.
|
|
7862
|
+
*
|
|
7863
|
+
* @callback Highcharts.ChartPanCallbackFunction
|
|
7864
|
+
*
|
|
7865
|
+
* @param {Highcharts.Chart} this
|
|
7866
|
+
* The chart on which the event occurred.
|
|
7867
|
+
*
|
|
7868
|
+
* @param {Highcharts.ChartPanEventObject} event
|
|
7869
|
+
* The event that occurred.
|
|
7870
|
+
*/
|
|
7871
|
+
/**
|
|
7872
|
+
* Contains common event information. Through the `originalEvent` property you
|
|
7873
|
+
* can access the pointer event that triggered the panning.
|
|
7874
|
+
*
|
|
7875
|
+
* @interface Highcharts.ChartPanEventObject
|
|
7876
|
+
*/ /**
|
|
7877
|
+
* The pointer event that triggered the panning.
|
|
7878
|
+
* @name Highcharts.ChartPanEventObject#originalEvent
|
|
7879
|
+
* @type {Highcharts.PointerEventObject}
|
|
7880
|
+
*/ /**
|
|
7881
|
+
* Prevents the default behavior of the event.
|
|
7882
|
+
* @name Highcharts.ChartPanEventObject#preventDefault
|
|
7883
|
+
* @type {Function}
|
|
7884
|
+
*/ /**
|
|
7885
|
+
* The event target.
|
|
7886
|
+
* @name Highcharts.ChartPanEventObject#target
|
|
7887
|
+
* @type {Highcharts.Chart}
|
|
7888
|
+
*/ /**
|
|
7889
|
+
* The event type.
|
|
7890
|
+
* @name Highcharts.ChartPanEventObject#type
|
|
7891
|
+
* @type {"pan"}
|
|
7892
|
+
*/
|
|
7826
7893
|
/**
|
|
7827
7894
|
* Fires when the chart is redrawn, either after a call to `chart.redraw()` or
|
|
7828
7895
|
* after an axis, series or point is modified with the `redraw` option set to
|
|
@@ -8198,7 +8265,9 @@ Color.None = new Color(''); // Must be last static for init
|
|
|
8198
8265
|
*/
|
|
8199
8266
|
/**
|
|
8200
8267
|
* A valid color type than can be parsed and handled by Highcharts. It can be a
|
|
8201
|
-
* color string, a gradient object, or a pattern
|
|
8268
|
+
* color string (including CSS expressions), a gradient object, or a pattern
|
|
8269
|
+
* object. Read more about colors in the [Highcharts
|
|
8270
|
+
* documentation](https://www.highcharts.com/docs/chart-design-and-style/colors).
|
|
8202
8271
|
*
|
|
8203
8272
|
* @typedef {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject} Highcharts.ColorType
|
|
8204
8273
|
*/
|
|
@@ -8741,7 +8810,8 @@ Fx.timers = [];
|
|
|
8741
8810
|
* so it should be moved to the SVGRenderer.
|
|
8742
8811
|
*/
|
|
8743
8812
|
function setAnimation(animation, chart) {
|
|
8744
|
-
chart.renderer.globalAnimation =
|
|
8813
|
+
chart.renderer.globalAnimation =
|
|
8814
|
+
animation ?? chart.options.chart.animation ?? true;
|
|
8745
8815
|
}
|
|
8746
8816
|
/**
|
|
8747
8817
|
* Get the animation in object form, where a disabled animation is always
|
|
@@ -9804,7 +9874,7 @@ function format(str = '', ctx, owner) {
|
|
|
9804
9874
|
replacement = `"${replacement}"`;
|
|
9805
9875
|
}
|
|
9806
9876
|
}
|
|
9807
|
-
str = str.replace(match.find,
|
|
9877
|
+
str = str.replace(match.find, (replacement ?? ''));
|
|
9808
9878
|
});
|
|
9809
9879
|
return hasSub ? format(str, ctx, owner) : str;
|
|
9810
9880
|
}
|
|
@@ -10053,7 +10123,7 @@ var RendererUtilities;
|
|
|
10053
10123
|
boxes = boxes.map((box) => ({
|
|
10054
10124
|
size: box.size,
|
|
10055
10125
|
targets: [box.target],
|
|
10056
|
-
align:
|
|
10126
|
+
align: (box.align ?? 0.5)
|
|
10057
10127
|
}));
|
|
10058
10128
|
while (overlapping) {
|
|
10059
10129
|
// Initial positions: target centered in box
|
|
@@ -10211,8 +10281,10 @@ class SVGElement {
|
|
|
10211
10281
|
* Property value.
|
|
10212
10282
|
*/
|
|
10213
10283
|
_defaultGetter(key) {
|
|
10214
|
-
let ret =
|
|
10215
|
-
|
|
10284
|
+
let ret = (this[key + 'Value'] ??
|
|
10285
|
+
this[key] ??
|
|
10286
|
+
(this.element ? this.element.getAttribute(key) : null) ??
|
|
10287
|
+
0);
|
|
10216
10288
|
if (/^-?[\d\.]+$/.test(ret)) { // Is numerical
|
|
10217
10289
|
ret = parseFloat(ret);
|
|
10218
10290
|
}
|
|
@@ -10375,7 +10447,7 @@ class SVGElement {
|
|
|
10375
10447
|
}
|
|
10376
10448
|
alignTo = void 0; // Do not use the box
|
|
10377
10449
|
}
|
|
10378
|
-
const alignToBox =
|
|
10450
|
+
const alignToBox = alignTo ?? renderer[alignToKey] ?? renderer,
|
|
10379
10451
|
// Default: left align
|
|
10380
10452
|
x = (alignToBox.x || 0) + (alignOptions.x || 0) +
|
|
10381
10453
|
((alignToBox.width || 0) - (alignOptions.width || 0)) *
|
|
@@ -10435,7 +10507,7 @@ class SVGElement {
|
|
|
10435
10507
|
* Returns the SVGElement for chaining.
|
|
10436
10508
|
*/
|
|
10437
10509
|
animate(params, options, complete) {
|
|
10438
|
-
const animOptions = animObject(
|
|
10510
|
+
const animOptions = animObject((options ?? this.renderer.globalAnimation ?? true)), deferTime = animOptions.defer;
|
|
10439
10511
|
// When the page is hidden save resources in the background by not
|
|
10440
10512
|
// running animation at all (#9749).
|
|
10441
10513
|
if (SVGElement_doc.hidden) {
|
|
@@ -10927,7 +10999,7 @@ class SVGElement {
|
|
|
10927
10999
|
.split(','); // Ending comma
|
|
10928
11000
|
i = v.length;
|
|
10929
11001
|
while (i--) {
|
|
10930
|
-
v[i] = '' + (pInt(v[i]) *
|
|
11002
|
+
v[i] = '' + (pInt(v[i]) * (strokeWidth ?? NaN));
|
|
10931
11003
|
}
|
|
10932
11004
|
value = v.join(',').replace(/NaN/g, 'none'); // #3226
|
|
10933
11005
|
this.element.setAttribute('stroke-dasharray', value);
|
|
@@ -11067,7 +11139,7 @@ class SVGElement {
|
|
|
11067
11139
|
* The bounding box with `x`, `y`, `width` and `height` properties.
|
|
11068
11140
|
*/
|
|
11069
11141
|
getBBox(reload, rot) {
|
|
11070
|
-
const wrapper = this, { element, renderer, styles, textStr } = wrapper, { cache, cacheKeys } = renderer, isSVG = element.namespaceURI === wrapper.SVG_NS, rotation =
|
|
11142
|
+
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 &&
|
|
11071
11143
|
SVGElement.prototype.getStyle.call(element, 'font-size')) : (styles.fontSize), cacheKey = this.getBBoxCacheKey([
|
|
11072
11144
|
renderer.rootFontSize,
|
|
11073
11145
|
this.textWidth, // #7874, also useHTML
|
|
@@ -11593,7 +11665,7 @@ class SVGElement {
|
|
|
11593
11665
|
symbolAttr(hash) {
|
|
11594
11666
|
const wrapper = this;
|
|
11595
11667
|
SVGElement.symbolCustomAttribs.forEach(function (key) {
|
|
11596
|
-
wrapper[key] =
|
|
11668
|
+
wrapper[key] = (hash[key] ?? wrapper[key]);
|
|
11597
11669
|
});
|
|
11598
11670
|
wrapper.attr({
|
|
11599
11671
|
d: wrapper.renderer.symbols[wrapper.symbolName](wrapper.x, wrapper.y, wrapper.width, wrapper.height, wrapper)
|
|
@@ -11633,7 +11705,7 @@ class SVGElement {
|
|
|
11633
11705
|
}
|
|
11634
11706
|
// Replace text content and escape markup
|
|
11635
11707
|
titleNode.textContent = replaceNested(// Scan #[73]
|
|
11636
|
-
|
|
11708
|
+
(value ?? ''), // #3276, #3895
|
|
11637
11709
|
[/<[^>]*>/g, '']).replace(/</g, '<').replace(/>/g, '>');
|
|
11638
11710
|
}
|
|
11639
11711
|
/**
|
|
@@ -12411,7 +12483,7 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12411
12483
|
if ((this.textStr && this.bBox.width === 0 && this.bBox.height === 0) || this.rotation) {
|
|
12412
12484
|
this.updateBoxSize();
|
|
12413
12485
|
}
|
|
12414
|
-
const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft =
|
|
12486
|
+
const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft = (this.paddingLeft ?? padding), rotation = rot ?? (this.rotation || 0);
|
|
12415
12487
|
let bBox = {
|
|
12416
12488
|
width,
|
|
12417
12489
|
height,
|
|
@@ -12464,7 +12536,7 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12464
12536
|
this.attr({
|
|
12465
12537
|
// Alignment is available now (#3295, 0 not rendered if given
|
|
12466
12538
|
// as a value)
|
|
12467
|
-
text:
|
|
12539
|
+
text: (this.textStr ?? ''),
|
|
12468
12540
|
x: this.x || 0,
|
|
12469
12541
|
y: this.y || 0
|
|
12470
12542
|
});
|
|
@@ -12620,8 +12692,8 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12620
12692
|
/** @internal */
|
|
12621
12693
|
getPaddedWidth() {
|
|
12622
12694
|
const padding = this.padding;
|
|
12623
|
-
const paddingLeft =
|
|
12624
|
-
const paddingRight =
|
|
12695
|
+
const paddingLeft = (this.paddingLeft ?? padding);
|
|
12696
|
+
const paddingRight = (this.paddingRight ?? padding);
|
|
12625
12697
|
return ((this.widthSetting || this.bBox.width || 0) +
|
|
12626
12698
|
paddingLeft +
|
|
12627
12699
|
paddingRight);
|
|
@@ -12722,7 +12794,7 @@ function arc(cx, cy, w, h, options) {
|
|
|
12722
12794
|
const arc = [];
|
|
12723
12795
|
if (options) {
|
|
12724
12796
|
let start = options.start || 0, end = options.end || 0;
|
|
12725
|
-
const rx =
|
|
12797
|
+
const rx = (options.r ?? w), ry = (options.r ?? (h || w)),
|
|
12726
12798
|
// Subtract a small number to prevent cos and sin of start and end
|
|
12727
12799
|
// from becoming equal on 360 arcs (#1561). See "Arc proximity"
|
|
12728
12800
|
// tests at samples/unit-tests/svgrenderer/symbol/demo.js
|
|
@@ -12732,16 +12804,17 @@ function arc(cx, cy, w, h, options) {
|
|
|
12732
12804
|
start = Math.PI / 2;
|
|
12733
12805
|
end = Math.PI * 2.5 - proximity;
|
|
12734
12806
|
}
|
|
12735
|
-
const innerRadius = options.innerR, open =
|
|
12807
|
+
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),
|
|
12736
12808
|
// Proximity takes care of rounding errors around PI (#6971)
|
|
12737
|
-
longArc =
|
|
12809
|
+
longArc = options.longArc ??
|
|
12810
|
+
(end - start - Math.PI < proximity ? 0 : 1);
|
|
12738
12811
|
let arcSegment = [
|
|
12739
12812
|
'A', // ArcTo
|
|
12740
12813
|
rx, // X radius
|
|
12741
12814
|
ry, // Y radius
|
|
12742
12815
|
0, // Slanting
|
|
12743
12816
|
longArc, // Long or short arc
|
|
12744
|
-
|
|
12817
|
+
(options.clockwise ?? 1), // Clockwise
|
|
12745
12818
|
// Use a static pixel offset for full circle (#21701)
|
|
12746
12819
|
cx + (fullCircle ? 0.001 : rx * cosEnd),
|
|
12747
12820
|
cy + ry * sinEnd
|
|
@@ -13272,7 +13345,7 @@ class TextBuilder {
|
|
|
13272
13345
|
* @internal
|
|
13273
13346
|
*/
|
|
13274
13347
|
buildSVG() {
|
|
13275
|
-
const wrapper = this.svgElement, textNode = wrapper.element, renderer = wrapper.renderer, textStr =
|
|
13348
|
+
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,
|
|
13276
13349
|
// The buildText code is quite heavy, so if we're not changing
|
|
13277
13350
|
// something that affects the text, skip it (#6113).
|
|
13278
13351
|
textCache = [
|
|
@@ -13856,7 +13929,7 @@ class SVGRenderer {
|
|
|
13856
13929
|
this.url = this.getReferenceURL();
|
|
13857
13930
|
// Add description
|
|
13858
13931
|
const desc = this.createElement('desc').add();
|
|
13859
|
-
desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.
|
|
13932
|
+
desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.2'));
|
|
13860
13933
|
this.defs = this.createElement('defs').add();
|
|
13861
13934
|
this.allowHTML = allowHTML;
|
|
13862
13935
|
this.forExport = forExport;
|
|
@@ -14642,7 +14715,7 @@ class SVGRenderer {
|
|
|
14642
14715
|
this.attr('height')
|
|
14643
14716
|
});
|
|
14644
14717
|
},
|
|
14645
|
-
duration:
|
|
14718
|
+
duration: (animate ?? true) ? void 0 : 0
|
|
14646
14719
|
});
|
|
14647
14720
|
renderer.alignElements();
|
|
14648
14721
|
}
|
|
@@ -14800,8 +14873,8 @@ class SVGRenderer {
|
|
|
14800
14873
|
// The image width is not always the same as the symbol width. The
|
|
14801
14874
|
// image may be centered within the symbol, as is the case when
|
|
14802
14875
|
// image shapes are used as label backgrounds, for example in flags.
|
|
14803
|
-
img.imgwidth =
|
|
14804
|
-
img.imgheight =
|
|
14876
|
+
img.imgwidth = (options?.width ?? symbolSizes[imageSrc]?.width);
|
|
14877
|
+
img.imgheight = (options?.height ?? symbolSizes[imageSrc]?.height);
|
|
14805
14878
|
/**
|
|
14806
14879
|
* Set the size and position
|
|
14807
14880
|
*/
|
|
@@ -19280,11 +19353,11 @@ class Tick {
|
|
|
19280
19353
|
* @function Highcharts.Tick#addLabel
|
|
19281
19354
|
*/
|
|
19282
19355
|
addLabel() {
|
|
19283
|
-
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 =
|
|
19356
|
+
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;
|
|
19284
19357
|
let label = tick.label, dateTimeLabelFormat, dateTimeLabelFormats, i;
|
|
19285
19358
|
// The context value
|
|
19286
19359
|
let value = this.parameters.category || (categories ?
|
|
19287
|
-
|
|
19360
|
+
(categories[pos] ?? names[pos] ?? pos) :
|
|
19288
19361
|
pos);
|
|
19289
19362
|
if (log && isNumber(value)) {
|
|
19290
19363
|
value = correctFloat(log.lin2log(value));
|
|
@@ -19531,7 +19604,7 @@ class Tick {
|
|
|
19531
19604
|
labelOptions.y;
|
|
19532
19605
|
}
|
|
19533
19606
|
x = x +
|
|
19534
|
-
|
|
19607
|
+
(labelOptions.x ?? [0, 1, 0, -1][axis.side] * distance) +
|
|
19535
19608
|
labelOffsetCorrection +
|
|
19536
19609
|
rotCorr.x -
|
|
19537
19610
|
(tickmarkOffset && horiz ?
|
|
@@ -19586,7 +19659,7 @@ class Tick {
|
|
|
19586
19659
|
* @function Highcharts.Tick#handleOverflow
|
|
19587
19660
|
*/
|
|
19588
19661
|
handleOverflow(xy) {
|
|
19589
|
-
const tick = this, axis = this.axis, labelOptions = axis.options.labels, pxPos = xy.x, chartWidth = axis.chart.chartWidth, spacing = axis.chart.spacing, leftBound =
|
|
19662
|
+
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 = {};
|
|
19590
19663
|
let modifiedSlotWidth = slotWidth, goRight = 1, leftPos, rightPos, textWidth;
|
|
19591
19664
|
// Check if the label overshoots the chart spacing box. If it does, move
|
|
19592
19665
|
// it. If it now overshoots the slotWidth, add ellipsis.
|
|
@@ -19653,9 +19726,8 @@ class Tick {
|
|
|
19653
19726
|
* @param {number} [opacity]
|
|
19654
19727
|
*/
|
|
19655
19728
|
render(index, old, opacity) {
|
|
19656
|
-
const tick = this, axis = tick.axis, horiz = axis.horiz, pos = tick.pos, tickmarkOffset =
|
|
19657
|
-
const labelOpacity =
|
|
19658
|
-
1);
|
|
19729
|
+
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;
|
|
19730
|
+
const labelOpacity = (opacity ?? tick.label?.newOpacity ?? 1);
|
|
19659
19731
|
// Anything that is not between `axis.pos` and `axis.pos + axis.length`
|
|
19660
19732
|
// should not be visible (#20166). The `correctFloat` is for reversed
|
|
19661
19733
|
// axes in Safari.
|
|
@@ -19683,7 +19755,7 @@ class Tick {
|
|
|
19683
19755
|
* @param {number} opacity The opacity of the grid line
|
|
19684
19756
|
*/
|
|
19685
19757
|
renderGridLine(old, opacity) {
|
|
19686
|
-
const tick = this, axis = tick.axis, options = axis.options, attribs = {}, pos = tick.pos, type = tick.type, tickmarkOffset =
|
|
19758
|
+
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;
|
|
19687
19759
|
let gridLine = tick.gridLine, gridLinePath, gridLineWidth = options.gridLineWidth, gridLineColor = options.gridLineColor, dashStyle = options.gridLineDashStyle;
|
|
19688
19760
|
if (tick.type === 'minor') {
|
|
19689
19761
|
gridLineWidth = options.minorGridLineWidth;
|
|
@@ -19739,7 +19811,7 @@ class Tick {
|
|
|
19739
19811
|
* @param {number} opacity The opacity of the mark
|
|
19740
19812
|
*/
|
|
19741
19813
|
renderMark(xy, opacity) {
|
|
19742
|
-
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 =
|
|
19814
|
+
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
|
|
19743
19815
|
tickColor = options[type !== 'minor' ? 'tickColor' : 'minorTickColor'];
|
|
19744
19816
|
let mark = tick.mark;
|
|
19745
19817
|
const isNewMark = !mark;
|
|
@@ -19784,7 +19856,7 @@ class Tick {
|
|
|
19784
19856
|
* @param {number} index The index of the tick
|
|
19785
19857
|
*/
|
|
19786
19858
|
renderLabel(xy, old, opacity, index) {
|
|
19787
|
-
const tick = this, axis = tick.axis, horiz = axis.horiz, options = axis.options, label = tick.label, labelOptions = options.labels, step = labelOptions.step, tickmarkOffset =
|
|
19859
|
+
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;
|
|
19788
19860
|
let show = true;
|
|
19789
19861
|
if (label && isNumber(x)) {
|
|
19790
19862
|
label.xy = xy = tick.getLabelPosition(x, y, label, horiz, labelOptions, tickmarkOffset, index, step);
|
|
@@ -19889,12 +19961,7 @@ const { deg2rad: Axis_deg2rad } = Core_Globals;
|
|
|
19889
19961
|
|
|
19890
19962
|
|
|
19891
19963
|
|
|
19892
|
-
const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0,
|
|
19893
|
-
// If the tick interval is greater than 0.5, avoid decimals, as
|
|
19894
|
-
// linear axes are often used to render discrete values (#3363). If
|
|
19895
|
-
// a tick amount is set, allow decimals by default, as it increases
|
|
19896
|
-
// the chances for a good fit.
|
|
19897
|
-
tickInterval < 0.5 || axis.tickAmount !== void 0), !!axis.tickAmount);
|
|
19964
|
+
const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0, (axis.options.allowDecimals ?? (tickInterval < 0.5 || axis.tickAmount !== void 0)), !!axis.tickAmount);
|
|
19898
19965
|
extend(Axis_defaultOptions, { xAxis, yAxis: merge(xAxis, yAxis) });
|
|
19899
19966
|
/* *
|
|
19900
19967
|
*
|
|
@@ -20002,7 +20069,7 @@ class Axis {
|
|
|
20002
20069
|
axis.coll = coll;
|
|
20003
20070
|
fireEvent(this, 'init', { userOptions: userOptions });
|
|
20004
20071
|
// Needed in setOptions
|
|
20005
|
-
axis.opposite =
|
|
20072
|
+
axis.opposite = (userOptions.opposite ?? axis.opposite);
|
|
20006
20073
|
/**
|
|
20007
20074
|
* The side on which the axis is rendered. 0 is top, 1 is right, 2
|
|
20008
20075
|
* is bottom and 3 is left.
|
|
@@ -20010,10 +20077,9 @@ class Axis {
|
|
|
20010
20077
|
* @name Highcharts.Axis#side
|
|
20011
20078
|
* @type {number}
|
|
20012
20079
|
*/
|
|
20013
|
-
axis.side =
|
|
20080
|
+
axis.side = (userOptions.side ?? axis.side ?? (horiz ?
|
|
20014
20081
|
(axis.opposite ? 0 : 2) : // Top : bottom
|
|
20015
|
-
(axis.opposite ? 1 : 3))
|
|
20016
|
-
);
|
|
20082
|
+
(axis.opposite ? 1 : 3)));
|
|
20017
20083
|
/**
|
|
20018
20084
|
* Current options for the axis after merge of defaults and user's
|
|
20019
20085
|
* options.
|
|
@@ -20042,7 +20108,7 @@ class Axis {
|
|
|
20042
20108
|
* @name Highcharts.Axis#reversed
|
|
20043
20109
|
* @type {boolean}
|
|
20044
20110
|
*/
|
|
20045
|
-
axis.reversed =
|
|
20111
|
+
axis.reversed = (options.reversed ?? axis.reversed);
|
|
20046
20112
|
axis.visible = options.visible;
|
|
20047
20113
|
axis.zoomEnabled = options.zoomEnabled;
|
|
20048
20114
|
// Initial categories
|
|
@@ -20130,7 +20196,7 @@ class Axis {
|
|
|
20130
20196
|
* @name Highcharts.Axis#crosshair
|
|
20131
20197
|
* @type {boolean|Highcharts.AxisCrosshairOptions}
|
|
20132
20198
|
*/
|
|
20133
|
-
const crosshair =
|
|
20199
|
+
const crosshair = options.crosshair ?? splat(chart.options.tooltip.crosshairs)[isXAxis ? 0 : 1];
|
|
20134
20200
|
axis.crosshair = crosshair === true ? {} : crosshair;
|
|
20135
20201
|
// Register. Don't add it again on Axis.update().
|
|
20136
20202
|
if (chart.axes.indexOf(axis) === -1) { //
|
|
@@ -20314,8 +20380,8 @@ class Axis {
|
|
|
20314
20380
|
seriesDataMax = xExtremes.max;
|
|
20315
20381
|
}
|
|
20316
20382
|
if (xData.length) {
|
|
20317
|
-
axis.dataMin = Math.min(
|
|
20318
|
-
axis.dataMax = Math.max(
|
|
20383
|
+
axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
|
|
20384
|
+
axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
|
|
20319
20385
|
}
|
|
20320
20386
|
}
|
|
20321
20387
|
// Get dataMin and dataMax for Y axes, as well as handle
|
|
@@ -20330,11 +20396,11 @@ class Axis {
|
|
|
20330
20396
|
// doesn't have active y data, we continue with nulls
|
|
20331
20397
|
if (isNumber(dataExtremes.dataMin)) {
|
|
20332
20398
|
seriesDataMin = dataExtremes.dataMin;
|
|
20333
|
-
axis.dataMin = Math.min(
|
|
20399
|
+
axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
|
|
20334
20400
|
}
|
|
20335
20401
|
if (isNumber(dataExtremes.dataMax)) {
|
|
20336
20402
|
seriesDataMax = dataExtremes.dataMax;
|
|
20337
|
-
axis.dataMax = Math.max(
|
|
20403
|
+
axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
|
|
20338
20404
|
}
|
|
20339
20405
|
// Adjust to threshold
|
|
20340
20406
|
if (defined(threshold)) {
|
|
@@ -20489,7 +20555,7 @@ class Axis {
|
|
|
20489
20555
|
translatedValue
|
|
20490
20556
|
};
|
|
20491
20557
|
fireEvent(this, 'getPlotLinePath', evt, function (e) {
|
|
20492
|
-
translatedValue =
|
|
20558
|
+
translatedValue = translatedValue ?? axis.translate(value, void 0, void 0, old);
|
|
20493
20559
|
// Keep the translated value within sane bounds, and avoid Infinity
|
|
20494
20560
|
// to fail the isNumber test (#7709).
|
|
20495
20561
|
translatedValue = clamp(translatedValue, -1e9, 1e9);
|
|
@@ -20578,7 +20644,7 @@ class Axis {
|
|
|
20578
20644
|
getMinorTickInterval() {
|
|
20579
20645
|
const { minorTicks, minorTickInterval } = this.options;
|
|
20580
20646
|
if (minorTicks === true) {
|
|
20581
|
-
return
|
|
20647
|
+
return (minorTickInterval ?? 'auto');
|
|
20582
20648
|
}
|
|
20583
20649
|
if (minorTicks === false) {
|
|
20584
20650
|
return;
|
|
@@ -20861,7 +20927,9 @@ class Axis {
|
|
|
20861
20927
|
const seriesPointRange = hasCategories ?
|
|
20862
20928
|
1 :
|
|
20863
20929
|
(isXAxis ?
|
|
20864
|
-
|
|
20930
|
+
(series.options.pointRange ??
|
|
20931
|
+
closestPointRange ??
|
|
20932
|
+
0) :
|
|
20865
20933
|
(axis.axisPointRange || 0)), // #2806
|
|
20866
20934
|
pointPlacement = series.options.pointPlacement;
|
|
20867
20935
|
pointRange = Math.max(pointRange, seriesPointRange);
|
|
@@ -20945,14 +21013,16 @@ class Axis {
|
|
|
20945
21013
|
this.getTickAmount();
|
|
20946
21014
|
}
|
|
20947
21015
|
// Min or max set either by zooming/setExtremes or initial options
|
|
20948
|
-
hardMin =
|
|
20949
|
-
hardMax =
|
|
21016
|
+
hardMin = (axis.userMin ?? time.parse(options.min));
|
|
21017
|
+
hardMax = (axis.userMax ?? time.parse(options.max));
|
|
20950
21018
|
// Linked axis gets the extremes from the parent axis
|
|
20951
21019
|
if (linkedParent) {
|
|
20952
21020
|
axis.linkedParent = linkedParent;
|
|
20953
21021
|
linkedParentExtremes = linkedParent.getExtremes();
|
|
20954
|
-
axis.min =
|
|
20955
|
-
|
|
21022
|
+
axis.min =
|
|
21023
|
+
linkedParentExtremes.min ?? linkedParentExtremes.dataMin;
|
|
21024
|
+
axis.max =
|
|
21025
|
+
linkedParentExtremes.max ?? linkedParentExtremes.dataMax;
|
|
20956
21026
|
if (this.type !== linkedParent.type) {
|
|
20957
21027
|
// Can't link axes of different type
|
|
20958
21028
|
error(11, true, chart);
|
|
@@ -20974,14 +21044,14 @@ class Axis {
|
|
|
20974
21044
|
maxPadding = 0;
|
|
20975
21045
|
}
|
|
20976
21046
|
}
|
|
20977
|
-
axis.min =
|
|
20978
|
-
axis.max =
|
|
21047
|
+
axis.min = (hardMin ?? thresholdMin ?? dataMin);
|
|
21048
|
+
axis.max = (hardMax ?? thresholdMax ?? dataMax);
|
|
20979
21049
|
}
|
|
20980
21050
|
if (isNumber(axis.max) && isNumber(axis.min)) {
|
|
20981
21051
|
if (logarithmic) {
|
|
20982
21052
|
if (axis.positiveValuesOnly &&
|
|
20983
21053
|
!secondPass &&
|
|
20984
|
-
Math.min(axis.min,
|
|
21054
|
+
Math.min(axis.min, (dataMin ?? axis.min)) <= 0) { // #978
|
|
20985
21055
|
// Can't plot negative values on log axis
|
|
20986
21056
|
error(10, true, chart);
|
|
20987
21057
|
}
|
|
@@ -21087,16 +21157,13 @@ class Axis {
|
|
|
21087
21157
|
axis.tickInterval = tickIntervalOption = linkedParent.tickInterval;
|
|
21088
21158
|
}
|
|
21089
21159
|
else {
|
|
21090
|
-
axis.tickInterval =
|
|
21160
|
+
axis.tickInterval = tickIntervalOption ?? (this.tickAmount ?
|
|
21091
21161
|
range / Math.max(this.tickAmount - 1, 1) :
|
|
21092
|
-
|
|
21093
|
-
|
|
21094
|
-
|
|
21095
|
-
|
|
21096
|
-
|
|
21097
|
-
// Don't let it be more than the data range
|
|
21098
|
-
range * tickPixelIntervalOption /
|
|
21099
|
-
Math.max(axis.len, tickPixelIntervalOption));
|
|
21162
|
+
categories ?
|
|
21163
|
+
1 :
|
|
21164
|
+
// Don't let it be more than the data range
|
|
21165
|
+
range * tickPixelIntervalOption /
|
|
21166
|
+
Math.max(axis.len, tickPixelIntervalOption));
|
|
21100
21167
|
}
|
|
21101
21168
|
// Now we're finished detecting min and max, crop and group series data.
|
|
21102
21169
|
// This is in turn needed in order to find tick positions in ordinal
|
|
@@ -21126,12 +21193,9 @@ class Axis {
|
|
|
21126
21193
|
}
|
|
21127
21194
|
// Before normalizing the tick interval, handle minimum tick interval.
|
|
21128
21195
|
// This applies only if tickInterval is not defined.
|
|
21129
|
-
const minTickInterval =
|
|
21130
|
-
|
|
21131
|
-
|
|
21132
|
-
dateTime &&
|
|
21133
|
-
!axis.series.some((s) => !s.sorted) ?
|
|
21134
|
-
axis.closestPointRange : 0);
|
|
21196
|
+
const minTickInterval = options.minTickInterval ?? (dateTime && !axis.series.some((s) => !s.sorted) ?
|
|
21197
|
+
axis.closestPointRange :
|
|
21198
|
+
0);
|
|
21135
21199
|
if (!tickIntervalOption &&
|
|
21136
21200
|
minTickInterval &&
|
|
21137
21201
|
axis.tickInterval < minTickInterval) {
|
|
@@ -21461,7 +21525,7 @@ class Axis {
|
|
|
21461
21525
|
* @function Highcharts.Axis#adjustTickAmount
|
|
21462
21526
|
*/
|
|
21463
21527
|
adjustTickAmount() {
|
|
21464
|
-
const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold =
|
|
21528
|
+
const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold = axis.threshold ?? (axis.softThreshold ? 0 : null);
|
|
21465
21529
|
let len, i, tickInterval = axis.tickInterval, thresholdTickIndex;
|
|
21466
21530
|
const
|
|
21467
21531
|
// Extend the tickPositions by appending a position
|
|
@@ -21697,7 +21761,8 @@ class Axis {
|
|
|
21697
21761
|
offsets = options.offsets || [0, 0, 0, 0], horiz = this.horiz,
|
|
21698
21762
|
// Check for percentage based input values. Rounding fixes problems
|
|
21699
21763
|
// with column overflow and plot line filtering (#4898, #4899)
|
|
21700
|
-
width = this.width = Math.round(relativeLength(
|
|
21764
|
+
width = this.width = Math.round(relativeLength((options.width ?? chart.plotWidth - offsets[3] + offsets[1]), chart.plotWidth)), height = this.height = Math.round(relativeLength((options.height ??
|
|
21765
|
+
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));
|
|
21701
21766
|
// Expose basic values to use in Series object and navigator
|
|
21702
21767
|
this.bottom = chart.chartHeight - height - top;
|
|
21703
21768
|
this.right = chart.chartWidth - width - left;
|
|
@@ -21808,9 +21873,7 @@ class Axis {
|
|
|
21808
21873
|
* An array of tickLength and tickWidth
|
|
21809
21874
|
*/
|
|
21810
21875
|
tickSize(prefix) {
|
|
21811
|
-
const options = this.options, tickWidth =
|
|
21812
|
-
// Default to 1 on linear and datetime X axes
|
|
21813
|
-
prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
|
|
21876
|
+
const options = this.options, tickWidth = options[prefix === 'tick' ? 'tickWidth' : 'minorTickWidth'] ?? (prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
|
|
21814
21877
|
let tickLength = options[prefix === 'tick' ? 'tickLength' : 'minorTickLength'], tickSize;
|
|
21815
21878
|
if (tickWidth && tickLength) {
|
|
21816
21879
|
// Negate the length
|
|
@@ -21897,7 +21960,7 @@ class Axis {
|
|
|
21897
21960
|
newTickInterval = getStep(lineHeight * 0.75);
|
|
21898
21961
|
}
|
|
21899
21962
|
this.autoRotation = autoRotation;
|
|
21900
|
-
this.labelRotation =
|
|
21963
|
+
this.labelRotation = rotation ?? (isNumber(rotationOption) ? rotationOption : 0);
|
|
21901
21964
|
return labelOptions.step ? tickInterval : newTickInterval;
|
|
21902
21965
|
}
|
|
21903
21966
|
/**
|
|
@@ -22249,7 +22312,7 @@ class Axis {
|
|
|
22249
22312
|
titleOffsetOption = axisTitleOptions.offset;
|
|
22250
22313
|
titleMargin = defined(titleOffsetOption) ?
|
|
22251
22314
|
0 :
|
|
22252
|
-
|
|
22315
|
+
axisTitleOptions.margin ?? (horiz ? 5 : 10);
|
|
22253
22316
|
}
|
|
22254
22317
|
}
|
|
22255
22318
|
// Render the axis line
|
|
@@ -22760,9 +22823,9 @@ class Axis {
|
|
|
22760
22823
|
}
|
|
22761
22824
|
else if (defined(point)) {
|
|
22762
22825
|
// #3834
|
|
22763
|
-
pos =
|
|
22764
|
-
point.crosshairPos :
|
|
22765
|
-
null
|
|
22826
|
+
pos = (this.coll !== 'colorAxis' ?
|
|
22827
|
+
point.crosshairPos :
|
|
22828
|
+
null) ?? (this.isXAxis ?
|
|
22766
22829
|
point.plotX :
|
|
22767
22830
|
this.len - point.plotY);
|
|
22768
22831
|
}
|
|
@@ -22771,7 +22834,7 @@ class Axis {
|
|
|
22771
22834
|
// Value, only used on radial
|
|
22772
22835
|
value: point && (this.isXAxis ?
|
|
22773
22836
|
point.x :
|
|
22774
|
-
|
|
22837
|
+
(point.stackY ?? point.y ?? void 0)),
|
|
22775
22838
|
translatedValue: pos
|
|
22776
22839
|
};
|
|
22777
22840
|
if (chart.polar) {
|
|
@@ -22804,7 +22867,7 @@ class Axis {
|
|
|
22804
22867
|
(categorized ? 'category ' : 'thin ') +
|
|
22805
22868
|
(options.className || ''))
|
|
22806
22869
|
.attr({
|
|
22807
|
-
zIndex:
|
|
22870
|
+
zIndex: (options.zIndex ?? 2)
|
|
22808
22871
|
})
|
|
22809
22872
|
.clip(options.clip === false ?
|
|
22810
22873
|
void 0 :
|
|
@@ -22819,7 +22882,7 @@ class Axis {
|
|
|
22819
22882
|
// eslint-disable-next-line max-len
|
|
22820
22883
|
'var(--highcharts-highlight-color-20)').setOpacity(0.25).get() :
|
|
22821
22884
|
'var(--highcharts-neutral-color-20)'),
|
|
22822
|
-
'stroke-width':
|
|
22885
|
+
'stroke-width': (options.width ?? 1)
|
|
22823
22886
|
}).css({
|
|
22824
22887
|
'pointer-events': 'none'
|
|
22825
22888
|
});
|
|
@@ -22885,7 +22948,7 @@ class Axis {
|
|
|
22885
22948
|
this.destroy(true);
|
|
22886
22949
|
this.init(chart, options);
|
|
22887
22950
|
chart.isDirtyBox = true;
|
|
22888
|
-
if (
|
|
22951
|
+
if (redraw ?? true) {
|
|
22889
22952
|
chart.redraw();
|
|
22890
22953
|
}
|
|
22891
22954
|
}
|
|
@@ -22915,7 +22978,7 @@ class Axis {
|
|
|
22915
22978
|
chart.orderItems(coll);
|
|
22916
22979
|
this.destroy();
|
|
22917
22980
|
chart.isDirtyBox = true;
|
|
22918
|
-
if (
|
|
22981
|
+
if (redraw ?? true) {
|
|
22919
22982
|
chart.redraw();
|
|
22920
22983
|
}
|
|
22921
22984
|
}
|
|
@@ -23571,8 +23634,10 @@ var LogarithmicAxis;
|
|
|
23571
23634
|
tickIntervalOption, tickPixelIntervalOption = options.tickPixelInterval / (minor ? 5 : 1), totalPixelLength = minor ?
|
|
23572
23635
|
axisLength / axis.tickPositions.length :
|
|
23573
23636
|
axisLength;
|
|
23574
|
-
interval =
|
|
23575
|
-
|
|
23637
|
+
interval = filteredTickIntervalOption ??
|
|
23638
|
+
log.minorAutoInterval ??
|
|
23639
|
+
(realMax - realMin) * tickPixelIntervalOption /
|
|
23640
|
+
(totalPixelLength || 1);
|
|
23576
23641
|
interval = normalizeTickInterval(interval);
|
|
23577
23642
|
positions = axis.getLinearTickPositions(interval, realMin, realMax).map(log.log2lin);
|
|
23578
23643
|
if (!minor) {
|
|
@@ -24001,7 +24066,8 @@ class PlotLineOrBand {
|
|
|
24001
24066
|
if (!chart.styledMode) {
|
|
24002
24067
|
if (isLine) {
|
|
24003
24068
|
attribs.stroke = color || 'var(--highcharts-neutral-color-40)';
|
|
24004
|
-
attribs['stroke-width'] =
|
|
24069
|
+
attribs['stroke-width'] =
|
|
24070
|
+
options.width ?? 1;
|
|
24005
24071
|
if (options.dashStyle) {
|
|
24006
24072
|
attribs.dashstyle = options.dashStyle;
|
|
24007
24073
|
}
|
|
@@ -25133,7 +25199,8 @@ class Tooltip {
|
|
|
25133
25199
|
'highcharts-label',
|
|
25134
25200
|
isHeader && 'highcharts-tooltip-header',
|
|
25135
25201
|
isSplit ? 'highcharts-tooltip-box' : 'highcharts-tooltip',
|
|
25136
|
-
!isHeader &&
|
|
25202
|
+
!isHeader &&
|
|
25203
|
+
'highcharts-color-' + (point.colorIndex ?? series.colorIndex),
|
|
25137
25204
|
seriesOptions?.className
|
|
25138
25205
|
].filter(isString).join(' ');
|
|
25139
25206
|
}
|
|
@@ -25318,7 +25385,8 @@ class Tooltip {
|
|
|
25318
25385
|
}
|
|
25319
25386
|
// The far side is right or bottom
|
|
25320
25387
|
const preferFarSide = !this.followPointer &&
|
|
25321
|
-
|
|
25388
|
+
(point.ttBelow ??
|
|
25389
|
+
(polar ? false : !inverted === flipped)), // #4984
|
|
25322
25390
|
/*
|
|
25323
25391
|
* Handle the preferred dimension. When the preferred dimension is
|
|
25324
25392
|
* tooltip on top or bottom of the point, it will look for space
|
|
@@ -25445,7 +25513,7 @@ class Tooltip {
|
|
|
25445
25513
|
const tooltip = this;
|
|
25446
25514
|
// Disallow duplicate timers (#1728, #1766)
|
|
25447
25515
|
clearTimeouts(this);
|
|
25448
|
-
delay =
|
|
25516
|
+
delay = (delay ?? this.options.hideDelay);
|
|
25449
25517
|
if (!this.isHidden) {
|
|
25450
25518
|
this.hideTimer = syncTimeout(function () {
|
|
25451
25519
|
const label = tooltip.getLabel();
|
|
@@ -25548,7 +25616,9 @@ class Tooltip {
|
|
|
25548
25616
|
* Split tooltip does not support outside in the first iteration. Should
|
|
25549
25617
|
* not be too complicated to implement.
|
|
25550
25618
|
*/
|
|
25551
|
-
this.outside =
|
|
25619
|
+
this.outside =
|
|
25620
|
+
options.outside ??
|
|
25621
|
+
Boolean(chart.scrollablePixelsX || chart.scrollablePixelsY);
|
|
25552
25622
|
}
|
|
25553
25623
|
shouldStickOnContact(pointerEvent) {
|
|
25554
25624
|
return !!(!this.followPointer &&
|
|
@@ -25628,7 +25698,7 @@ class Tooltip {
|
|
|
25628
25698
|
point.points = void 0;
|
|
25629
25699
|
// Register the current series
|
|
25630
25700
|
const currentSeries = point.series;
|
|
25631
|
-
this.distance =
|
|
25701
|
+
this.distance = (currentSeries.tooltipOptions.distance ?? 16);
|
|
25632
25702
|
// Update the inner HTML
|
|
25633
25703
|
if (text === false) {
|
|
25634
25704
|
this.hide();
|
|
@@ -25901,7 +25971,7 @@ class Tooltip {
|
|
|
25901
25971
|
anchorY,
|
|
25902
25972
|
boxWidth,
|
|
25903
25973
|
point,
|
|
25904
|
-
rank:
|
|
25974
|
+
rank: boxPosition.rank ?? (isHeader ? 1 : 0),
|
|
25905
25975
|
size,
|
|
25906
25976
|
target: boxPosition.y,
|
|
25907
25977
|
tt,
|
|
@@ -27246,7 +27316,7 @@ class Point {
|
|
|
27246
27316
|
*/
|
|
27247
27317
|
select(selected, accumulate) {
|
|
27248
27318
|
const point = this, series = point.series, chart = series.chart;
|
|
27249
|
-
selected =
|
|
27319
|
+
selected = (selected ?? !point.selected);
|
|
27250
27320
|
this.selectedStaging = selected;
|
|
27251
27321
|
// Fire the event with the default handler
|
|
27252
27322
|
point.firePointEvent(selected ? 'select' : 'unselect', { accumulate: accumulate }, function () {
|
|
@@ -27497,7 +27567,7 @@ class Point {
|
|
|
27497
27567
|
});
|
|
27498
27568
|
halo.attr({
|
|
27499
27569
|
'class': 'highcharts-halo highcharts-color-' +
|
|
27500
|
-
|
|
27570
|
+
(point.colorIndex ?? series.colorIndex) +
|
|
27501
27571
|
(point.className ? ' ' + point.className : ''),
|
|
27502
27572
|
'visibility': markerVisibility,
|
|
27503
27573
|
'zIndex': -1 // #4929, #8276
|
|
@@ -28230,7 +28300,7 @@ class Pointer {
|
|
|
28230
28300
|
const hoverPoints = [], useExisting = !!(isDirectTouch && existingHoverPoint), filter = function (s) {
|
|
28231
28301
|
return (s.visible &&
|
|
28232
28302
|
!(!shared && s.directTouch) && // #3821
|
|
28233
|
-
|
|
28303
|
+
(s.options.enableMouseTracking ?? true));
|
|
28234
28304
|
};
|
|
28235
28305
|
let hoverSeries = existingHoverSeries,
|
|
28236
28306
|
// Which series to look in for the hover point
|
|
@@ -28416,8 +28486,8 @@ class Pointer {
|
|
|
28416
28486
|
const ePos = (touches ?
|
|
28417
28487
|
touches.length ?
|
|
28418
28488
|
touches.item(0) :
|
|
28419
|
-
(
|
|
28420
|
-
|
|
28489
|
+
(touches.changedTouches ??
|
|
28490
|
+
e.changedTouches)[0] :
|
|
28421
28491
|
e);
|
|
28422
28492
|
// Get mouse position
|
|
28423
28493
|
if (!chartPosition) {
|
|
@@ -28491,7 +28561,7 @@ class Pointer {
|
|
|
28491
28561
|
* @function Highcharts.Pointer#onContainerMouseLeave
|
|
28492
28562
|
*/
|
|
28493
28563
|
onContainerMouseLeave(e) {
|
|
28494
|
-
const { pointer } = Pointer_charts[
|
|
28564
|
+
const { pointer } = Pointer_charts[(Pointer.hoverChartIndex ?? -1)] || {};
|
|
28495
28565
|
e = this.normalize(e);
|
|
28496
28566
|
this.onContainerMouseMove(e);
|
|
28497
28567
|
// #4886, MS Touch end fires mouseleave but with no related target
|
|
@@ -28591,7 +28661,7 @@ class Pointer {
|
|
|
28591
28661
|
if (e?.touches && this.hasPinchMoved) {
|
|
28592
28662
|
e?.preventDefault?.();
|
|
28593
28663
|
}
|
|
28594
|
-
Pointer_charts[
|
|
28664
|
+
Pointer_charts[(Pointer.hoverChartIndex ?? -1)]
|
|
28595
28665
|
?.pointer
|
|
28596
28666
|
?.drop(e);
|
|
28597
28667
|
}
|
|
@@ -29098,7 +29168,7 @@ class Pointer {
|
|
|
29098
29168
|
*/
|
|
29099
29169
|
setHoverChartIndex(e) {
|
|
29100
29170
|
const chart = this.chart;
|
|
29101
|
-
const hoverChart = Core_Globals.charts[
|
|
29171
|
+
const hoverChart = Core_Globals.charts[(Pointer.hoverChartIndex ?? -1)];
|
|
29102
29172
|
if (hoverChart &&
|
|
29103
29173
|
hoverChart !== chart) {
|
|
29104
29174
|
const relatedTargetObj = { relatedTarget: chart.container };
|
|
@@ -29144,7 +29214,7 @@ class Pointer {
|
|
|
29144
29214
|
Math.pow(pinchDown[0].chartY - e.chartY, 2)) >= 16 :
|
|
29145
29215
|
false;
|
|
29146
29216
|
}
|
|
29147
|
-
if (
|
|
29217
|
+
if (hasMoved ?? true) {
|
|
29148
29218
|
this.pinch(e);
|
|
29149
29219
|
}
|
|
29150
29220
|
}
|
|
@@ -29187,7 +29257,7 @@ class Pointer {
|
|
|
29187
29257
|
let zoomType = chart.zooming.type || '', zoomX, zoomY;
|
|
29188
29258
|
// Look for the pinchType option
|
|
29189
29259
|
if (/touch/.test(e.type)) {
|
|
29190
|
-
zoomType =
|
|
29260
|
+
zoomType = (chart.zooming.pinchType ?? zoomType);
|
|
29191
29261
|
}
|
|
29192
29262
|
this.zoomX = zoomX = /x/.test(zoomType);
|
|
29193
29263
|
this.zoomY = zoomY = /y/.test(zoomType);
|
|
@@ -29961,7 +30031,7 @@ var LegendSymbol;
|
|
|
29961
30031
|
// Draw the marker
|
|
29962
30032
|
if (markerOptions && markerOptions.enabled !== false && symbolWidth) {
|
|
29963
30033
|
// Do not allow the marker to be larger than the symbolHeight
|
|
29964
|
-
let radius = Math.min(
|
|
30034
|
+
let radius = Math.min((markerOptions.radius ?? generalRadius), generalRadius);
|
|
29965
30035
|
// Restrict symbol markers size
|
|
29966
30036
|
if (symbol.indexOf('url') === 0) {
|
|
29967
30037
|
markerOptions = merge(markerOptions, {
|
|
@@ -32982,7 +33052,7 @@ class Series {
|
|
|
32982
33052
|
if (chartSeries.length) {
|
|
32983
33053
|
lastSeries = chartSeries[chartSeries.length - 1];
|
|
32984
33054
|
}
|
|
32985
|
-
series._i =
|
|
33055
|
+
series._i = (lastSeries?._i ?? -1) + 1;
|
|
32986
33056
|
series.opacity = series.options.opacity;
|
|
32987
33057
|
// Insert the series and re-order all series above the insertion
|
|
32988
33058
|
// point.
|
|
@@ -33029,7 +33099,7 @@ class Series {
|
|
|
33029
33099
|
// Apply if the series xAxis or yAxis option matches
|
|
33030
33100
|
// the number of the axis, or if undefined, use the
|
|
33031
33101
|
// first axis
|
|
33032
|
-
if (
|
|
33102
|
+
if ((seriesOptions[coll] ?? 0) === axis.index ||
|
|
33033
33103
|
(typeof seriesOptions[coll] !==
|
|
33034
33104
|
'undefined' &&
|
|
33035
33105
|
seriesOptions[coll] === axisOptions.id)) {
|
|
@@ -33072,8 +33142,12 @@ class Series {
|
|
|
33072
33142
|
* @function Highcharts.Series#hasMarkerChanged
|
|
33073
33143
|
*/
|
|
33074
33144
|
hasMarkerChanged(options, oldOptions) {
|
|
33075
|
-
const marker = options.marker, oldMarker = oldOptions.marker
|
|
33076
|
-
|
|
33145
|
+
const marker = options.marker, oldMarker = oldOptions.marker;
|
|
33146
|
+
// Note that `marker` holds the full, merged object including
|
|
33147
|
+
// `plotOptions`, while `oldMarker` is the user-defined series-level
|
|
33148
|
+
// options only. We may need to refactor that in the future if more
|
|
33149
|
+
// issues like #24057 arise.
|
|
33150
|
+
return marker && oldMarker && ((oldMarker.enabled && !marker.enabled) ||
|
|
33077
33151
|
oldMarker.symbol !== marker.symbol || // #10870, #15946
|
|
33078
33152
|
oldMarker.height !== marker.height || // #16274
|
|
33079
33153
|
oldMarker.width !== marker.width // #16274
|
|
@@ -33092,7 +33166,8 @@ class Series {
|
|
|
33092
33166
|
time.parse(options.pointStart) ??
|
|
33093
33167
|
0;
|
|
33094
33168
|
let pointInterval;
|
|
33095
|
-
this.pointInterval = pointInterval =
|
|
33169
|
+
this.pointInterval = pointInterval =
|
|
33170
|
+
this.pointInterval ?? options.pointInterval ?? 1;
|
|
33096
33171
|
if (relativeXValue && isNumber(x)) {
|
|
33097
33172
|
pointInterval *= x;
|
|
33098
33173
|
}
|
|
@@ -33164,9 +33239,13 @@ class Series {
|
|
|
33164
33239
|
);
|
|
33165
33240
|
// When shared tooltip, stickyTracking is true by default,
|
|
33166
33241
|
// unless user says otherwise.
|
|
33167
|
-
this.stickyTracking =
|
|
33168
|
-
|
|
33169
|
-
|
|
33242
|
+
this.stickyTracking =
|
|
33243
|
+
seriesUserOptions.stickyTracking ??
|
|
33244
|
+
userPlotOptionsType.stickyTracking ??
|
|
33245
|
+
userPlotOptionsSeries.stickyTracking ??
|
|
33246
|
+
(this.tooltipOptions.shared && !this.noSharedTooltip ?
|
|
33247
|
+
true :
|
|
33248
|
+
options.stickyTracking);
|
|
33170
33249
|
// Delete marker object if not allowed (#1125)
|
|
33171
33250
|
if (typeOptions.marker === null) {
|
|
33172
33251
|
delete options.marker;
|
|
@@ -33244,7 +33323,9 @@ class Series {
|
|
|
33244
33323
|
if (!value) {
|
|
33245
33324
|
// Pick up either the colorIndex option, or the series.colorIndex
|
|
33246
33325
|
// after Series.update()
|
|
33247
|
-
setting =
|
|
33326
|
+
setting = prop === 'color' ?
|
|
33327
|
+
(this.options.colorIndex ?? this[indexName]) :
|
|
33328
|
+
this[indexName];
|
|
33248
33329
|
if (defined(setting)) { // After Series.update()
|
|
33249
33330
|
i = setting;
|
|
33250
33331
|
}
|
|
@@ -34271,7 +34352,9 @@ class Series {
|
|
|
34271
34352
|
yValue = stackValues[1];
|
|
34272
34353
|
if (lowValue === stackThreshold &&
|
|
34273
34354
|
stackIndicator.key === stacks[xValue].base) {
|
|
34274
|
-
lowValue =
|
|
34355
|
+
lowValue = isNumber(threshold) ?
|
|
34356
|
+
threshold :
|
|
34357
|
+
yAxis.min;
|
|
34275
34358
|
}
|
|
34276
34359
|
// #1200, #1232
|
|
34277
34360
|
if (yAxis.positiveValuesOnly &&
|
|
@@ -34279,7 +34362,7 @@ class Series {
|
|
|
34279
34362
|
lowValue <= 0) {
|
|
34280
34363
|
lowValue = void 0;
|
|
34281
34364
|
}
|
|
34282
|
-
point.total = point.stackTotal =
|
|
34365
|
+
point.total = point.stackTotal = stackItem.total ?? void 0;
|
|
34283
34366
|
point.percentage = defined(point.y) && stackItem.total ?
|
|
34284
34367
|
(point.y / stackItem.total * 100) : void 0;
|
|
34285
34368
|
point.stackY = yValue;
|
|
@@ -34529,7 +34612,9 @@ class Series {
|
|
|
34529
34612
|
// Only draw the point if y is defined
|
|
34530
34613
|
if (shouldDrawMarker) {
|
|
34531
34614
|
// Shortcuts
|
|
34532
|
-
const symbol =
|
|
34615
|
+
const symbol = pointMarkerOptions.symbol ??
|
|
34616
|
+
series.symbol ??
|
|
34617
|
+
'rect';
|
|
34533
34618
|
markerAttribs = series.markerAttribs(point, point.selected ? 'select' : '');
|
|
34534
34619
|
const isInside = point.isInside !== false;
|
|
34535
34620
|
if (!graphic &&
|
|
@@ -34797,7 +34882,7 @@ class Series {
|
|
|
34797
34882
|
// Reset
|
|
34798
34883
|
zones.forEach((zone) => {
|
|
34799
34884
|
zone.lineClip = [];
|
|
34800
|
-
zone.translated = clamp(axis.toPixels(
|
|
34885
|
+
zone.translated = clamp(axis.toPixels((zone.value ?? axisMax), true) || 0, 0, len);
|
|
34801
34886
|
});
|
|
34802
34887
|
// The use of the Color Threshold assumes there are no gaps so it is
|
|
34803
34888
|
// safe to hide the original graph and area unless it is not
|
|
@@ -35453,7 +35538,7 @@ class Series {
|
|
|
35453
35538
|
const series = this, seriesOptions = series.options, { chart, data, dataTable: table, xAxis } = series, names = xAxis?.hasNames && xAxis.names, dataOptions = seriesOptions.data, xData = series.getColumn('x');
|
|
35454
35539
|
let isInTheMiddle, i;
|
|
35455
35540
|
// Optional redraw, defaults to true
|
|
35456
|
-
redraw =
|
|
35541
|
+
redraw = (redraw ?? true);
|
|
35457
35542
|
// Get options and push the point to xData, yData and series.options. In
|
|
35458
35543
|
// series.generatePoints the Point instance will be created on demand
|
|
35459
35544
|
// and pushed to the series.data array.
|
|
@@ -35564,7 +35649,7 @@ class Series {
|
|
|
35564
35649
|
}
|
|
35565
35650
|
};
|
|
35566
35651
|
setAnimation(animation, chart);
|
|
35567
|
-
redraw =
|
|
35652
|
+
redraw = (redraw ?? true);
|
|
35568
35653
|
// Fire the event with a default handler of removing the point
|
|
35569
35654
|
if (point) {
|
|
35570
35655
|
point.firePointEvent('remove', null, remove);
|
|
@@ -35607,7 +35692,7 @@ class Series {
|
|
|
35607
35692
|
// Redraw
|
|
35608
35693
|
chart.isDirtyLegend = chart.isDirtyBox = true;
|
|
35609
35694
|
chart.linkSeries(keepEvents);
|
|
35610
|
-
if (
|
|
35695
|
+
if (redraw ?? true) {
|
|
35611
35696
|
chart.redraw(animation);
|
|
35612
35697
|
}
|
|
35613
35698
|
}
|
|
@@ -35824,7 +35909,7 @@ class Series {
|
|
|
35824
35909
|
series.isDirtyData = true;
|
|
35825
35910
|
}
|
|
35826
35911
|
fireEvent(this, 'afterUpdate');
|
|
35827
|
-
if (
|
|
35912
|
+
if (redraw ?? true) {
|
|
35828
35913
|
chart.redraw(keepPoints ? void 0 : false);
|
|
35829
35914
|
}
|
|
35830
35915
|
}
|
|
@@ -35841,12 +35926,12 @@ class Series {
|
|
|
35841
35926
|
* @internal
|
|
35842
35927
|
*/
|
|
35843
35928
|
hasOptionChanged(optionName) {
|
|
35844
|
-
const chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName], plotOptionsOption =
|
|
35929
|
+
const chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName], plotOptionsOption = (plotOptions?.[this.type]?.[optionName] ?? plotOptions?.series?.[optionName]);
|
|
35845
35930
|
// Check if `plotOptions` are defined already, #19203
|
|
35846
35931
|
if (oldOption && !defined(plotOptionsOption)) {
|
|
35847
35932
|
return option !== oldOption;
|
|
35848
35933
|
}
|
|
35849
|
-
return option !==
|
|
35934
|
+
return option !== (plotOptionsOption ?? option);
|
|
35850
35935
|
}
|
|
35851
35936
|
/**
|
|
35852
35937
|
* Runs on mouse over the series graphical items.
|
|
@@ -35920,7 +36005,8 @@ class Series {
|
|
|
35920
36005
|
const series = this, { graph, options } = series, { inactiveOtherPoints, states: stateOptions = {} } = options,
|
|
35921
36006
|
// By default a quick animation to hover/inactive,
|
|
35922
36007
|
// slower to un-hover
|
|
35923
|
-
stateAnimation =
|
|
36008
|
+
stateAnimation = stateOptions[state || 'normal']?.animation ??
|
|
36009
|
+
series.chart.options.chart.animation;
|
|
35924
36010
|
let { lineWidth, opacity } = options;
|
|
35925
36011
|
state = state || '';
|
|
35926
36012
|
if (series.state !== state) {
|
|
@@ -36806,7 +36892,7 @@ class Legend {
|
|
|
36806
36892
|
* @param {Highcharts.LegendOptions} options
|
|
36807
36893
|
*/
|
|
36808
36894
|
setOptions(options) {
|
|
36809
|
-
const padding =
|
|
36895
|
+
const padding = (options.padding ?? 8);
|
|
36810
36896
|
/**
|
|
36811
36897
|
* Legend options.
|
|
36812
36898
|
*
|
|
@@ -36823,7 +36909,7 @@ class Legend {
|
|
|
36823
36909
|
this.itemMarginBottom = options.itemMarginBottom;
|
|
36824
36910
|
this.padding = padding;
|
|
36825
36911
|
this.initialItemY = padding - 5; // 5 is pixels above the text
|
|
36826
|
-
this.symbolWidth =
|
|
36912
|
+
this.symbolWidth = (options.symbolWidth ?? 16);
|
|
36827
36913
|
this.pages = [];
|
|
36828
36914
|
this.proximate = options.layout === 'proximate' && !this.chart.inverted;
|
|
36829
36915
|
// #12705: baseline has to be reset on every update
|
|
@@ -36857,7 +36943,7 @@ class Legend {
|
|
|
36857
36943
|
}
|
|
36858
36944
|
this.destroy();
|
|
36859
36945
|
chart.isDirtyLegend = chart.isDirtyBox = true;
|
|
36860
|
-
if (
|
|
36946
|
+
if (redraw ?? true) {
|
|
36861
36947
|
chart.redraw();
|
|
36862
36948
|
}
|
|
36863
36949
|
fireEvent(this, 'afterUpdate', { redraw });
|
|
@@ -37095,7 +37181,7 @@ class Legend {
|
|
|
37095
37181
|
* The item to render.
|
|
37096
37182
|
*/
|
|
37097
37183
|
renderItem(item) {
|
|
37098
|
-
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 ?
|
|
37184
|
+
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 ?
|
|
37099
37185
|
item.series :
|
|
37100
37186
|
item, seriesOptions = series.options, showCheckbox = (!!legend.createCheckboxForItem &&
|
|
37101
37187
|
seriesOptions &&
|
|
@@ -37141,9 +37227,11 @@ class Legend {
|
|
|
37141
37227
|
legend.fontMetrics.f + 3 + legend.itemMarginTop;
|
|
37142
37228
|
label.attr('y', legend.baseline);
|
|
37143
37229
|
legend.symbolHeight =
|
|
37144
|
-
|
|
37230
|
+
(options.symbolHeight ?? legend.fontMetrics.f);
|
|
37145
37231
|
if (options.squareSymbol) {
|
|
37146
|
-
legend.symbolWidth =
|
|
37232
|
+
legend.symbolWidth =
|
|
37233
|
+
options.symbolWidth ??
|
|
37234
|
+
Math.max(legend.symbolHeight, 16);
|
|
37147
37235
|
itemExtraWidth = legend.symbolWidth + symbolPadding +
|
|
37148
37236
|
itemDistance + (showCheckbox ? 20 : 0);
|
|
37149
37237
|
if (ltr) {
|
|
@@ -37195,7 +37283,7 @@ class Legend {
|
|
|
37195
37283
|
* @param {Highcharts.BubbleLegendItem|Highcharts.Point|Highcharts.Series} item
|
|
37196
37284
|
*/
|
|
37197
37285
|
layoutItem(item) {
|
|
37198
|
-
const options = this.options, padding = this.padding, horizontal = options.layout === 'horizontal', itemHeight = item.itemHeight, itemMarginBottom = this.itemMarginBottom, itemMarginTop = this.itemMarginTop, itemDistance = horizontal ?
|
|
37286
|
+
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 &&
|
|
37199
37287
|
this.totalItemWidth > maxLegendWidth) ?
|
|
37200
37288
|
this.maxItemWidth :
|
|
37201
37289
|
item.itemWidth, legendItem = item.legendItem || {};
|
|
@@ -37249,7 +37337,9 @@ class Legend {
|
|
|
37249
37337
|
const seriesOptions = series?.options;
|
|
37250
37338
|
// Handle showInLegend. If the series is linked to another series,
|
|
37251
37339
|
// defaults to false.
|
|
37252
|
-
if (series &&
|
|
37340
|
+
if (series &&
|
|
37341
|
+
(seriesOptions.showInLegend ??
|
|
37342
|
+
(!defined(seriesOptions.linkedTo)))) {
|
|
37253
37343
|
// Use points or series for the legend item depending on
|
|
37254
37344
|
// legendType
|
|
37255
37345
|
allItems = allItems.concat(series.legendItem?.labels ||
|
|
@@ -37531,7 +37621,7 @@ class Legend {
|
|
|
37531
37621
|
* @function Highcharts.Legend#handleOverflow
|
|
37532
37622
|
*/
|
|
37533
37623
|
handleOverflow(legendHeight) {
|
|
37534
|
-
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 =
|
|
37624
|
+
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) {
|
|
37535
37625
|
if (typeof height === 'number') {
|
|
37536
37626
|
clipRect.attr({
|
|
37537
37627
|
height: height
|
|
@@ -37577,7 +37667,7 @@ class Legend {
|
|
|
37577
37667
|
navOptions.enabled !== false) {
|
|
37578
37668
|
this.clipHeight = clipHeight =
|
|
37579
37669
|
Math.max(spaceHeight - 20 - this.titleHeight - padding, 0);
|
|
37580
|
-
this.currentPage =
|
|
37670
|
+
this.currentPage = (this.currentPage ?? 1);
|
|
37581
37671
|
this.fullHeight = legendHeight;
|
|
37582
37672
|
// Fill pages with Y positions so that the top of each a legend item
|
|
37583
37673
|
// defines the scroll top for each page (#2098)
|
|
@@ -37737,7 +37827,7 @@ class Legend {
|
|
|
37737
37827
|
this.currentPage = currentPage;
|
|
37738
37828
|
this.positionCheckboxes();
|
|
37739
37829
|
// Fire event after scroll animation is complete
|
|
37740
|
-
const animOptions = animObject(
|
|
37830
|
+
const animOptions = animObject((animation ?? chart.renderer.globalAnimation ?? true));
|
|
37741
37831
|
syncTimeout(() => {
|
|
37742
37832
|
fireEvent(this, 'afterScroll', { currentPage });
|
|
37743
37833
|
}, animOptions.duration);
|
|
@@ -38178,7 +38268,7 @@ class Chart {
|
|
|
38178
38268
|
*/
|
|
38179
38269
|
static chart(a, b, c) {
|
|
38180
38270
|
const chart = new Chart(a, b, c);
|
|
38181
|
-
return chart.promise
|
|
38271
|
+
return chart.promise ?? chart;
|
|
38182
38272
|
}
|
|
38183
38273
|
// Implementation
|
|
38184
38274
|
constructor(a,
|
|
@@ -38219,10 +38309,10 @@ class Chart {
|
|
|
38219
38309
|
const chart = this, options = chart.options.chart, zooming = options.zooming;
|
|
38220
38310
|
chart.zooming = {
|
|
38221
38311
|
...zooming,
|
|
38222
|
-
type:
|
|
38223
|
-
key:
|
|
38224
|
-
pinchType:
|
|
38225
|
-
singleTouch:
|
|
38312
|
+
type: (options.zoomType ?? zooming.type),
|
|
38313
|
+
key: (options.zoomKey ?? zooming.key),
|
|
38314
|
+
pinchType: (options.pinchType ?? zooming.pinchType),
|
|
38315
|
+
singleTouch: options.zoomBySingleTouch ?? zooming.singleTouch ?? false,
|
|
38226
38316
|
resetButton: merge(zooming.resetButton, options.resetZoomButton)
|
|
38227
38317
|
};
|
|
38228
38318
|
}
|
|
@@ -38774,7 +38864,7 @@ class Chart {
|
|
|
38774
38864
|
// inspect the generated series.points.
|
|
38775
38865
|
series.getPointsCollection()
|
|
38776
38866
|
.forEach((point) => {
|
|
38777
|
-
if (
|
|
38867
|
+
if (point.selectedStaging ?? point.selected) {
|
|
38778
38868
|
acc.push(point);
|
|
38779
38869
|
}
|
|
38780
38870
|
});
|
|
@@ -39212,7 +39302,7 @@ class Chart {
|
|
|
39212
39302
|
chartWidth = chart.chartWidth;
|
|
39213
39303
|
if (!chart.styledMode) {
|
|
39214
39304
|
css(container, {
|
|
39215
|
-
width:
|
|
39305
|
+
width: (optionsChart.style?.width ?? chartWidth + 'px')
|
|
39216
39306
|
});
|
|
39217
39307
|
}
|
|
39218
39308
|
}
|
|
@@ -39855,7 +39945,7 @@ class Chart {
|
|
|
39855
39945
|
const mockTick = new Axis_Tick(axis, 0, '', true), label = mockTick.createLabel('x', labels);
|
|
39856
39946
|
mockTick.destroy();
|
|
39857
39947
|
if (label &&
|
|
39858
|
-
|
|
39948
|
+
(labels.reserveSpace ?? !isNumber(options.crossing))) {
|
|
39859
39949
|
expectedSpace = label.getBBox().height +
|
|
39860
39950
|
labels.distance +
|
|
39861
39951
|
Math.max(isNumber(offset) ? offset : 0, 0);
|
|
@@ -40190,7 +40280,7 @@ class Chart {
|
|
|
40190
40280
|
const chart = this;
|
|
40191
40281
|
let series;
|
|
40192
40282
|
if (options) { // <- not necessary
|
|
40193
|
-
redraw =
|
|
40283
|
+
redraw = (redraw ?? true); // Defaults to true
|
|
40194
40284
|
fireEvent(chart, 'addSeries', { options: options }, function () {
|
|
40195
40285
|
series = chart.initSeries(options);
|
|
40196
40286
|
chart.isDirtyLegend = true;
|
|
@@ -40281,7 +40371,7 @@ class Chart {
|
|
|
40281
40371
|
*/
|
|
40282
40372
|
createAxis(coll, options) {
|
|
40283
40373
|
const axis = new Axis_Axis(this, options.axis, coll);
|
|
40284
|
-
if (
|
|
40374
|
+
if (options.redraw ?? true) {
|
|
40285
40375
|
this.redraw(options.animation);
|
|
40286
40376
|
}
|
|
40287
40377
|
return axis;
|
|
@@ -40329,7 +40419,7 @@ class Chart {
|
|
|
40329
40419
|
}
|
|
40330
40420
|
loadingDiv.className = 'highcharts-loading';
|
|
40331
40421
|
// Update text
|
|
40332
|
-
HTML_AST.setElementHTML(loadingSpan,
|
|
40422
|
+
HTML_AST.setElementHTML(loadingSpan, (str ?? options.lang.loading ?? ''));
|
|
40333
40423
|
if (!chart.styledMode) {
|
|
40334
40424
|
// Update visuals
|
|
40335
40425
|
css(loadingDiv, extend(loadingStyle, { zIndex: 10 }));
|
|
@@ -40567,7 +40657,7 @@ class Chart {
|
|
|
40567
40657
|
}
|
|
40568
40658
|
// No match by id found, match by index instead
|
|
40569
40659
|
if (!item && chart[coll]) {
|
|
40570
|
-
item = chart[coll][
|
|
40660
|
+
item = chart[coll][(newOptions.index ?? i)];
|
|
40571
40661
|
// Check if we grabbed an item with an existing but
|
|
40572
40662
|
// different id (#13541). Check that the item in this
|
|
40573
40663
|
// position is not internal (navigator).
|
|
@@ -40780,7 +40870,7 @@ class Chart {
|
|
|
40780
40870
|
fireEvent(this, 'transform', params);
|
|
40781
40871
|
let hasZoomed = params.hasZoomed || false, displayButton, isAnyAxisPanning;
|
|
40782
40872
|
for (const axis of axes) {
|
|
40783
|
-
const { horiz, len, minPointOffset = 0, options, reversed } = axis, wh = horiz ? 'width' : 'height', xy = horiz ? 'x' : 'y', toLength =
|
|
40873
|
+
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),
|
|
40784
40874
|
// If fingers pinched very close on this axis, treat as pan
|
|
40785
40875
|
scale = Math.abs(toLength) < 10 ?
|
|
40786
40876
|
1 :
|
|
@@ -41644,7 +41734,7 @@ class StackItem {
|
|
|
41644
41734
|
r: options.borderRadius || 0,
|
|
41645
41735
|
text: str,
|
|
41646
41736
|
// Set default padding to 5 as it is in dataLabels #12308
|
|
41647
|
-
padding:
|
|
41737
|
+
padding: (options.padding ?? 5),
|
|
41648
41738
|
visibility: 'hidden' // Hidden until setOffset is called
|
|
41649
41739
|
};
|
|
41650
41740
|
if (!chart.styledMode) {
|
|
@@ -41678,7 +41768,7 @@ class StackItem {
|
|
|
41678
41768
|
}), { verticalAlign } = alignOptions;
|
|
41679
41769
|
if (label && stackBox) {
|
|
41680
41770
|
const labelBox = label.getBBox(void 0, 0), padding = label.padding;
|
|
41681
|
-
let isJustify =
|
|
41771
|
+
let isJustify = (options.overflow ?? 'justify') === 'justify', visible;
|
|
41682
41772
|
// Reset alignOptions property after justify #12337
|
|
41683
41773
|
alignOptions.x = options.x || 0;
|
|
41684
41774
|
alignOptions.y = options.y || 0;
|
|
@@ -41715,7 +41805,7 @@ class StackItem {
|
|
|
41715
41805
|
rotationOriginY: labelBox.height / 2
|
|
41716
41806
|
});
|
|
41717
41807
|
// Check if the dataLabel should be visible.
|
|
41718
|
-
if (
|
|
41808
|
+
if (((!isJustify && options.crop) ?? true)) {
|
|
41719
41809
|
visible =
|
|
41720
41810
|
isNumber(label.x) &&
|
|
41721
41811
|
isNumber(label.y) &&
|
|
@@ -41749,7 +41839,7 @@ class StackItem {
|
|
|
41749
41839
|
getStackBox(stackBoxProps) {
|
|
41750
41840
|
const stackItem = this, axis = this.axis, chart = axis.chart, { boxTop, defaultX, xOffset, width, boxBottom } = stackBoxProps, totalStackValue = axis.stacking.usePercentage ?
|
|
41751
41841
|
100 :
|
|
41752
|
-
|
|
41842
|
+
(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 ||
|
|
41753
41843
|
(isNumber(axis.min) &&
|
|
41754
41844
|
axis.logarithmic &&
|
|
41755
41845
|
axis.logarithmic.lin2log(axis.min)) ||
|
|
@@ -41862,7 +41952,7 @@ function chartGetStacks() {
|
|
|
41862
41952
|
if (series.options.stacking && series.reserveSpace()) {
|
|
41863
41953
|
series.stackKey = [
|
|
41864
41954
|
series.type,
|
|
41865
|
-
|
|
41955
|
+
(series.options.stack ?? ''),
|
|
41866
41956
|
inverted ? xAxisOptions.top : xAxisOptions.left,
|
|
41867
41957
|
inverted ? xAxisOptions.height : xAxisOptions.width
|
|
41868
41958
|
].join(',');
|
|
@@ -42025,7 +42115,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
|
|
|
42025
42115
|
stack = stacks[key][x];
|
|
42026
42116
|
if (y !== null) {
|
|
42027
42117
|
stack.points[pointKey] = stack.points[series.index] = [
|
|
42028
|
-
|
|
42118
|
+
(stack.cumulative ?? stackThreshold)
|
|
42029
42119
|
];
|
|
42030
42120
|
// Record the base of the stack
|
|
42031
42121
|
if (!defined(stack.cumulative)) {
|
|
@@ -42073,7 +42163,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
|
|
|
42073
42163
|
stack.cumulative = (total || 1) - 1;
|
|
42074
42164
|
}
|
|
42075
42165
|
else {
|
|
42076
|
-
stack.cumulative = correctFloat(
|
|
42166
|
+
stack.cumulative = correctFloat((stack.cumulative ?? stackThreshold) + yNumber);
|
|
42077
42167
|
}
|
|
42078
42168
|
stack.total = total;
|
|
42079
42169
|
if (y !== null) {
|
|
@@ -43088,8 +43178,7 @@ class AreaSeries extends AreaSeries_LineSeries {
|
|
|
43088
43178
|
*/
|
|
43089
43179
|
getGraphPath(points) {
|
|
43090
43180
|
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
|
|
43091
|
-
yAxis.getThreshold(options.threshold)), connectNulls =
|
|
43092
|
-
options.connectNulls, stacking === 'percent'),
|
|
43181
|
+
yAxis.getThreshold(options.threshold)), connectNulls = (options.connectNulls ?? stacking === 'percent'),
|
|
43093
43182
|
// To display null points in underlying stacked series, this
|
|
43094
43183
|
// series graph must be broken, and the area also fall down to
|
|
43095
43184
|
// fill the gap left by the null point. #2069
|
|
@@ -43142,9 +43231,9 @@ class AreaSeries extends AreaSeries_LineSeries {
|
|
|
43142
43231
|
// Treat points with undefined plotY as null (e.g. non-positive
|
|
43143
43232
|
// values on logarithmic axis, #18422)
|
|
43144
43233
|
isNull = points[i].isNull || !defined(points[i].plotY);
|
|
43145
|
-
plotX =
|
|
43234
|
+
plotX = (points[i].rectPlotX ?? points[i].plotX);
|
|
43146
43235
|
yBottom = stacking ?
|
|
43147
|
-
|
|
43236
|
+
(points[i].yBottom ?? translatedThreshold) :
|
|
43148
43237
|
translatedThreshold;
|
|
43149
43238
|
if (!isNull || connectNulls) {
|
|
43150
43239
|
if (!connectNulls) {
|
|
@@ -43482,10 +43571,10 @@ class SplineSeries extends SplineSeries_LineSeries {
|
|
|
43482
43571
|
}
|
|
43483
43572
|
const ret = [
|
|
43484
43573
|
'C',
|
|
43485
|
-
|
|
43486
|
-
|
|
43487
|
-
|
|
43488
|
-
|
|
43574
|
+
(lastPoint.rightContX ?? lastPoint.plotX ?? 0),
|
|
43575
|
+
(lastPoint.rightContY ?? lastPoint.plotY ?? 0),
|
|
43576
|
+
(leftContX ?? plotX ?? 0),
|
|
43577
|
+
(leftContY ?? plotY ?? 0),
|
|
43489
43578
|
plotX,
|
|
43490
43579
|
plotY
|
|
43491
43580
|
];
|
|
@@ -44454,7 +44543,7 @@ class ColumnSeries extends Series_Series {
|
|
|
44454
44543
|
xAxis.tickInterval ||
|
|
44455
44544
|
1), // #2610
|
|
44456
44545
|
xAxis.len // #1535
|
|
44457
|
-
), groupPadding = categoryWidth * options.groupPadding, groupWidth = categoryWidth - 2 * groupPadding, pointOffsetWidth = groupWidth / (columnCount || 1), pointWidth = Math.min(options.maxPointWidth || xAxis.len,
|
|
44546
|
+
), 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,
|
|
44458
44547
|
// #1251, #3737
|
|
44459
44548
|
colIndex = (series.columnIndex || 0) + (reverseStacks ? 1 : 0), pointXOffset = pointPadding +
|
|
44460
44549
|
(groupPadding +
|
|
@@ -45018,7 +45107,7 @@ var DataLabel;
|
|
|
45018
45107
|
// that parts of the align box is inside the plot area
|
|
45019
45108
|
// (#12370). When stacking, it is always inside regardless
|
|
45020
45109
|
// of the option (#15148).
|
|
45021
|
-
|
|
45110
|
+
(options.inside ?? !!this.options.stacking) &&
|
|
45022
45111
|
alignTo &&
|
|
45023
45112
|
chart.isInsidePlot(plotX, inverted ?
|
|
45024
45113
|
alignTo.x + 1 :
|
|
@@ -45121,8 +45210,8 @@ var DataLabel;
|
|
|
45121
45210
|
// zIndex: 20
|
|
45122
45211
|
// }).add();
|
|
45123
45212
|
// chart.renderer.circle(
|
|
45124
|
-
// chart.plotLeft +
|
|
45125
|
-
// chart.plotTop +
|
|
45213
|
+
// chart.plotLeft + (dataLabel.alignAttr.x ?? 0),
|
|
45214
|
+
// chart.plotTop + (dataLabel.alignAttr.y ?? 0),
|
|
45126
45215
|
// 2
|
|
45127
45216
|
// ).attr({
|
|
45128
45217
|
// fill: 'red',
|
|
@@ -45305,7 +45394,7 @@ var DataLabel;
|
|
|
45305
45394
|
if (labelEnabled) {
|
|
45306
45395
|
// Create individual options structure that can be
|
|
45307
45396
|
// extended without affecting others
|
|
45308
|
-
formatString =
|
|
45397
|
+
formatString = (labelOptions[point.formatPrefix + 'Format'] ?? labelOptions.format);
|
|
45309
45398
|
labelText = defined(formatString) ?
|
|
45310
45399
|
DataLabel_format(formatString, point, chart) :
|
|
45311
45400
|
(labelOptions[point.formatPrefix + 'Formatter'] ||
|
|
@@ -45313,7 +45402,9 @@ var DataLabel;
|
|
|
45313
45402
|
rotation = labelOptions.rotation;
|
|
45314
45403
|
if (!chart.styledMode) {
|
|
45315
45404
|
// Determine the color
|
|
45316
|
-
style.color =
|
|
45405
|
+
style.color = (isString(labelOptions.color) ?
|
|
45406
|
+
labelOptions.color :
|
|
45407
|
+
void 0) ?? style.color ?? (isString(series.color) ? series.color : void 0) ?? 'var(--highcharts-neutral-color-100)';
|
|
45317
45408
|
// Get automated contrast color
|
|
45318
45409
|
if (style.color === 'contrast') {
|
|
45319
45410
|
if (backgroundColor !== 'none') {
|
|
@@ -46114,14 +46205,15 @@ class ScatterSeries extends ScatterSeries_LineSeries {
|
|
|
46114
46205
|
return rand - Math.floor(rand);
|
|
46115
46206
|
}
|
|
46116
46207
|
if (jitter) {
|
|
46117
|
-
this.points.forEach(
|
|
46118
|
-
['x', 'y'].forEach(
|
|
46208
|
+
this.points.forEach((point, i) => {
|
|
46209
|
+
['x', 'y'].forEach((dim, j) => {
|
|
46119
46210
|
if (jitter[dim] && !point.isNull) {
|
|
46120
|
-
const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`]
|
|
46121
|
-
axis.transA;
|
|
46211
|
+
const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`];
|
|
46122
46212
|
if (axis && !axis.logarithmic) {
|
|
46123
46213
|
// Identify the outer bounds of the jitter range
|
|
46124
|
-
|
|
46214
|
+
// (#25054)
|
|
46215
|
+
const translatedJitter = jitter[dim] * axis.transA *
|
|
46216
|
+
(axis.reversed ? -1 : 1), min = (point[plotProp] || 0) - translatedJitter, max = (point[plotProp] || 0) + translatedJitter;
|
|
46125
46217
|
// Find a random position within this range
|
|
46126
46218
|
point[plotProp] = min +
|
|
46127
46219
|
(max - min) * unrandom(i + j * len);
|
|
@@ -46226,11 +46318,13 @@ var CenteredUtilities;
|
|
|
46226
46318
|
innerSize = parseFloat(innerSize);
|
|
46227
46319
|
}
|
|
46228
46320
|
const positions = [
|
|
46229
|
-
|
|
46230
|
-
|
|
46321
|
+
(centerOption?.[0] ?? '50%'),
|
|
46322
|
+
(centerOption?.[1] ?? '50%'),
|
|
46231
46323
|
// Prevent from negative values
|
|
46232
|
-
|
|
46233
|
-
|
|
46324
|
+
((size && size < 0 ? void 0 : options.size) ?? '100%'),
|
|
46325
|
+
((innerSize && innerSize < 0 ?
|
|
46326
|
+
void 0 :
|
|
46327
|
+
options.innerSize || 0) ?? '0%')
|
|
46234
46328
|
];
|
|
46235
46329
|
for (i = 0; i < 4; ++i) {
|
|
46236
46330
|
value = positions[i];
|
|
@@ -46432,7 +46526,7 @@ class PiePoint extends Series_Point {
|
|
|
46432
46526
|
const series = this.series, chart = series.chart;
|
|
46433
46527
|
setAnimation(animation, chart);
|
|
46434
46528
|
// Redraw is true by default
|
|
46435
|
-
redraw =
|
|
46529
|
+
redraw = (redraw ?? true);
|
|
46436
46530
|
this.sliced = this.options.sliced = sliced ?? !this.sliced;
|
|
46437
46531
|
// Update options.data
|
|
46438
46532
|
if (series.options.data) {
|
|
@@ -47237,7 +47331,8 @@ class PieSeries extends Series_Series {
|
|
|
47237
47331
|
// Start values
|
|
47238
47332
|
graphic.attr({
|
|
47239
47333
|
// Animate from inner radius (#779)
|
|
47240
|
-
r:
|
|
47334
|
+
r: point.startR ??
|
|
47335
|
+
(series.center && series.center[3] / 2),
|
|
47241
47336
|
start: startAngleRad,
|
|
47242
47337
|
end: startAngleRad
|
|
47243
47338
|
});
|
|
@@ -47878,7 +47973,7 @@ var PieDataLabel_ColumnDataLabel;
|
|
|
47878
47973
|
labelPosition.computed.x = x;
|
|
47879
47974
|
labelPosition.computed.y = y - topOffset;
|
|
47880
47975
|
// Detect overflowing data labels
|
|
47881
|
-
if (
|
|
47976
|
+
if (dataLabelOptions.crop ?? true) {
|
|
47882
47977
|
dataLabelWidth = dataLabel.getBBox().width;
|
|
47883
47978
|
let sideOverflow;
|
|
47884
47979
|
// Overflow left
|
|
@@ -48394,7 +48489,10 @@ function OverlappingDataLabels_onChartRender() {
|
|
|
48394
48489
|
if (point.visible) {
|
|
48395
48490
|
(point.dataLabels || []).forEach((label) => {
|
|
48396
48491
|
const options = label.options || {};
|
|
48397
|
-
label.labelrank =
|
|
48492
|
+
label.labelrank =
|
|
48493
|
+
options.labelrank ??
|
|
48494
|
+
point.labelrank ??
|
|
48495
|
+
point.shapeArgs?.height; // #4118
|
|
48398
48496
|
// #21725: Sync target positions for generic overlap
|
|
48399
48497
|
// checking. During animations (e.g., toggling a
|
|
48400
48498
|
// point), DOM positions may overlap. We force
|
|
@@ -48883,10 +48981,12 @@ var Responsive;
|
|
|
48883
48981
|
*/
|
|
48884
48982
|
function matchResponsiveRule(rule, matches) {
|
|
48885
48983
|
const condition = rule.condition, fn = condition.callback || function () {
|
|
48886
|
-
return (this.chartWidth <=
|
|
48887
|
-
|
|
48888
|
-
this.
|
|
48889
|
-
|
|
48984
|
+
return (this.chartWidth <=
|
|
48985
|
+
(condition.maxWidth ?? Number.MAX_VALUE) &&
|
|
48986
|
+
this.chartHeight <=
|
|
48987
|
+
(condition.maxHeight ?? Number.MAX_VALUE) &&
|
|
48988
|
+
this.chartWidth >= (condition.minWidth ?? 0) &&
|
|
48989
|
+
this.chartHeight >= (condition.minHeight ?? 0));
|
|
48890
48990
|
};
|
|
48891
48991
|
if (fn.call(this, this)) {
|
|
48892
48992
|
matches.push(rule._id);
|
|
@@ -49100,7 +49200,7 @@ var Responsive;
|
|
|
49100
49200
|
;// ./code/es-modules/masters/highcharts.src.js
|
|
49101
49201
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
49102
49202
|
/**
|
|
49103
|
-
* @license Highcharts JS v13.0.
|
|
49203
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
49104
49204
|
* @module highcharts/highcharts
|
|
49105
49205
|
*
|
|
49106
49206
|
* (c) 2009-2026 Highsoft AS
|
|
@@ -49177,7 +49277,12 @@ G.SVGElement = SVG_SVGElement;
|
|
|
49177
49277
|
G.SVGRenderer = SVG_SVGRenderer;
|
|
49178
49278
|
G.Templating = Core_Templating;
|
|
49179
49279
|
G.Tick = Axis_Tick;
|
|
49180
|
-
G.Time = Core_Time
|
|
49280
|
+
G.Time = class extends Core_Time {
|
|
49281
|
+
constructor(options, lang) {
|
|
49282
|
+
const defaultOptions = Defaults.getOptions();
|
|
49283
|
+
super(options ?? defaultOptions.time, lang ?? defaultOptions.lang);
|
|
49284
|
+
}
|
|
49285
|
+
};
|
|
49181
49286
|
G.Tooltip = Core_Tooltip;
|
|
49182
49287
|
// Utilities
|
|
49183
49288
|
G.addEvent = addEvent;
|