highcharts 13.0.1 → 13.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +2 -3
- package/es-modules/Accessibility/A11yI18n.js +4 -4
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +6 -4
- package/es-modules/Accessibility/Components/LegendComponent.js +2 -2
- package/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +13 -10
- package/es-modules/Accessibility/Components/ZoomComponent.js +2 -2
- package/es-modules/Accessibility/FocusBorder.js +2 -2
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +1 -2
- package/es-modules/Core/Animation/AnimationUtilities.js +3 -2
- package/es-modules/Core/Axis/Axis.js +48 -57
- package/es-modules/Core/Axis/Axis3DComposition.js +8 -6
- package/es-modules/Core/Axis/BrokenAxis.js +6 -5
- package/es-modules/Core/Axis/Color/ColorAxis.js +17 -10
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +2 -2
- package/es-modules/Core/Axis/GridAxis.js +4 -4
- package/es-modules/Core/Axis/LogarithmicAxis.js +5 -3
- package/es-modules/Core/Axis/NavigatorAxisComposition.js +2 -2
- package/es-modules/Core/Axis/OrdinalAxis.js +9 -7
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -2
- package/es-modules/Core/Axis/RadialAxis.js +15 -9
- package/es-modules/Core/Axis/ScrollbarAxis.js +3 -3
- package/es-modules/Core/Axis/Stacking/StackItem.js +5 -5
- package/es-modules/Core/Axis/Stacking/StackingAxis.js +4 -4
- package/es-modules/Core/Axis/Tick.js +10 -11
- package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +3 -3
- package/es-modules/Core/Chart/Chart.js +14 -14
- package/es-modules/Core/Chart/Chart3D.js +3 -3
- package/es-modules/Core/Chart/ChartDefaults.js +23 -0
- package/es-modules/Core/Chart/MapChart.js +7 -5
- package/es-modules/Core/Chart/StockChart.js +15 -11
- package/es-modules/Core/Color/Color.js +3 -1
- package/es-modules/Core/Defaults.js +35 -0
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/Legend/Legend.js +16 -12
- package/es-modules/Core/Legend/LegendSymbol.js +2 -2
- package/es-modules/Core/MSPointer.js +2 -2
- package/es-modules/Core/Math3D.js +6 -7
- package/es-modules/Core/Pointer.js +9 -9
- package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGElement.js +11 -9
- package/es-modules/Core/Renderer/SVG/SVGElement3D.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +5 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +5 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +11 -9
- package/es-modules/Core/Renderer/SVG/Symbols.js +6 -5
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
- package/es-modules/Core/Responsive.js +7 -5
- package/es-modules/Core/Series/DataLabel.js +8 -6
- package/es-modules/Core/Series/OverlappingDataLabels.js +5 -2
- package/es-modules/Core/Series/Point.js +3 -3
- package/es-modules/Core/Series/Series.js +37 -21
- package/es-modules/Core/Series/Series3D.js +2 -2
- package/es-modules/Core/Templating.js +2 -2
- package/es-modules/Core/Tooltip.js +11 -7
- package/es-modules/Core/Utilities.js +4 -3
- package/es-modules/Data/Connectors/DataConnector.js +2 -2
- package/es-modules/Data/Connectors/GoogleSheetsConnector.js +2 -2
- package/es-modules/Data/DataTable.js +17 -0
- package/es-modules/Extensions/Annotations/Annotation.js +4 -4
- package/es-modules/Extensions/Annotations/AnnotationChart.js +2 -2
- package/es-modules/Extensions/Annotations/ControlPoint.js +2 -2
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +2 -2
- package/es-modules/Extensions/Annotations/EventEmitter.js +4 -4
- package/es-modules/Extensions/Annotations/NavigationBindings.js +6 -3
- package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +2 -2
- package/es-modules/Extensions/Annotations/Popup/Popup.js +3 -2
- package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +4 -6
- package/es-modules/Extensions/Annotations/Types/Measure.js +3 -3
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +3 -3
- package/es-modules/Extensions/Boost/BoostChart.js +11 -4
- package/es-modules/Extensions/Boost/BoostSeries.js +8 -9
- package/es-modules/Extensions/Boost/WGLRenderer.js +9 -6
- package/es-modules/Extensions/Boost/WGLShader.js +3 -3
- package/es-modules/Extensions/BoostCanvas.js +2 -2
- package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +5 -4
- package/es-modules/Extensions/DataGrouping/DataGrouping.js +2 -2
- package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +4 -3
- package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +2 -2
- package/es-modules/Extensions/DraggablePoints/DragDropProps.js +2 -3
- package/es-modules/Extensions/ExportData/ExportData.js +17 -16
- package/es-modules/Extensions/Exporting/Exporting.js +7 -7
- package/es-modules/Extensions/MouseWheelZoom/MouseWheelZoom.js +2 -2
- package/es-modules/Extensions/Pane/PaneComposition.js +2 -2
- package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +2 -2
- package/es-modules/Extensions/PatternFill.js +7 -5
- package/es-modules/Extensions/PriceIndication.js +5 -4
- package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +7 -7
- package/es-modules/Extensions/Sonification/MIDI.js +2 -3
- package/es-modules/Extensions/Sonification/Sonification.js +2 -2
- package/es-modules/Extensions/Sonification/SonificationSpeaker.js +3 -2
- package/es-modules/Extensions/Sonification/SynthPatch.js +3 -3
- package/es-modules/Extensions/Sonification/TimelineFromChart.js +11 -11
- package/es-modules/Gantt/Legacy.js +2 -2
- package/es-modules/Gantt/Pathfinder.js +3 -3
- package/es-modules/Gantt/PathfinderAlgorithms.js +4 -3
- package/es-modules/Gantt/Tree.js +1 -1
- package/es-modules/Maps/MapNavigation.js +4 -4
- package/es-modules/Maps/MapPointer.js +2 -2
- package/es-modules/Maps/MapView.js +2 -2
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +8 -6
- package/es-modules/Series/Area/AreaSeries.js +4 -5
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +13 -4
- package/es-modules/Series/Bubble/BubbleLegendItem.js +10 -6
- package/es-modules/Series/Bubble/BubbleSeries.js +10 -9
- package/es-modules/Series/Bullet/BulletSeries.js +17 -10
- package/es-modules/Series/CenteredUtilities.js +7 -5
- package/es-modules/Series/Column/ColumnSeries.js +2 -2
- package/es-modules/Series/Column3D/Column3DComposition.js +6 -5
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +4 -4
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +4 -2
- package/es-modules/Series/Cylinder/CylinderComposition.js +2 -2
- package/es-modules/Series/DataModifyComposition.js +9 -7
- package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -2
- package/es-modules/Series/Dumbbell/DumbbellPoint.js +14 -3
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +24 -7
- package/es-modules/Series/FlowMap/FlowMapPoint.js +5 -3
- package/es-modules/Series/FlowMap/FlowMapSeries.js +17 -9
- package/es-modules/Series/Funnel/FunnelSeries.js +2 -2
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +7 -5
- package/es-modules/Series/Gauge/GaugeSeries.js +2 -2
- package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +4 -4
- package/es-modules/Series/Heatmap/HeatmapPoint.js +6 -6
- package/es-modules/Series/Heatmap/HeatmapPointOptions.js +12 -0
- package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -13
- package/es-modules/Series/Heatmap/HeatmapSeriesOptions.js +12 -0
- package/es-modules/Series/Histogram/HistogramPoint.js +17 -0
- package/es-modules/Series/Histogram/HistogramPointOptions.js +12 -0
- package/es-modules/Series/Histogram/HistogramSeries.js +14 -2
- package/es-modules/Series/Histogram/HistogramSeriesOptions.js +12 -0
- package/es-modules/Series/InterpolationUtilities.js +5 -5
- package/es-modules/Series/Item/ItemPointOptions.js +14 -0
- package/es-modules/Series/Item/ItemSeries.js +18 -6
- package/es-modules/Series/Item/ItemSeriesOptions.js +14 -0
- package/es-modules/Series/Map/MapPoint.js +5 -3
- package/es-modules/Series/Map/MapSeries.js +5 -8
- package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +3 -3
- package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -2
- package/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js +18 -9
- package/es-modules/Series/NodesComposition.js +9 -10
- package/es-modules/Series/Organization/OrganizationPoint.js +3 -2
- package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -3
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +5 -5
- package/es-modules/Series/Pictorial/PictorialSeries.js +4 -2
- package/es-modules/Series/Pie/PieDataLabel.js +2 -2
- package/es-modules/Series/Pie/PiePoint.js +2 -2
- package/es-modules/Series/Pie/PieSeries.js +3 -2
- package/es-modules/Series/Pie3D/Pie3DSeries.js +8 -4
- package/es-modules/Series/PolarComposition.js +8 -7
- package/es-modules/Series/Sankey/SankeySeries.js +11 -5
- package/es-modules/Series/Scatter/ScatterSeries.js +6 -5
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +2 -2
- package/es-modules/Series/Spline/SplineSeries.js +5 -5
- package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +8 -6
- package/es-modules/Series/Tilemap/TilemapShapes.js +2 -2
- package/es-modules/Series/Timeline/TimelinePoint.js +2 -2
- package/es-modules/Series/Timeline/TimelineSeries.js +4 -3
- package/es-modules/Series/TreeUtilities.js +16 -7
- package/es-modules/Series/Treegraph/TreegraphLink.js +2 -2
- package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +14 -11
- package/es-modules/Series/VariablePie/VariablePieSeries.js +6 -4
- package/es-modules/Series/Variwide/VariwideSeries.js +2 -2
- package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -2
- package/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
- package/es-modules/Shared/TimeBase.js +8 -2
- package/es-modules/Shared/Utilities.js +9 -7
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -3
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +4 -3
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +1 -1
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +2 -2
- package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +4 -4
- package/es-modules/Stock/Navigator/Navigator.js +26 -26
- package/es-modules/Stock/Navigator/StandaloneNavigator.js +4 -4
- package/es-modules/Stock/RangeSelector/RangeSelector.js +15 -11
- package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +3 -3
- package/es-modules/Stock/Scrollbar/Scrollbar.js +8 -7
- package/es-modules/Stock/StockTools/StockToolbar.js +5 -5
- package/es-modules/Stock/StockTools/StockTools.js +2 -2
- package/es-modules/Stock/StockTools/StockToolsGui.js +4 -2
- package/es-modules/masters/highcharts-3d.src.js +1 -1
- package/es-modules/masters/highcharts-autoload.src.js +1 -1
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +1 -1
- package/es-modules/masters/highcharts.src.js +7 -2
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
- package/es-modules/masters/i18n/fr-FR.src.js +1 -1
- package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
- package/es-modules/masters/i18n/nb-NO.src.js +1 -1
- package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
- package/es-modules/masters/i18n/zh-CN.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
- package/es-modules/masters/modules/annotations.src.js +1 -1
- package/es-modules/masters/modules/arc-diagram.src.js +1 -1
- package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
- package/es-modules/masters/modules/boost-canvas.src.js +1 -1
- package/es-modules/masters/modules/boost.src.js +1 -1
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/contour.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data-sorting.src.js +1 -1
- package/es-modules/masters/modules/data-tools.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +1 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/exporting.src.js +1 -1
- package/es-modules/masters/modules/flowmap.src.js +1 -1
- package/es-modules/masters/modules/full-screen.src.js +1 -1
- package/es-modules/masters/modules/funnel.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/es-modules/masters/modules/gantt.src.js +1 -1
- package/es-modules/masters/modules/geoheatmap.src.js +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
- package/es-modules/masters/modules/navigator.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +1 -1
- package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
- package/es-modules/masters/modules/non-cartesian-zoom.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/organization.src.js +1 -1
- package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
- package/es-modules/masters/modules/pareto.src.js +1 -1
- package/es-modules/masters/modules/pathfinder.src.js +1 -1
- package/es-modules/masters/modules/pattern-fill.src.js +1 -1
- package/es-modules/masters/modules/pictorial.src.js +1 -1
- package/es-modules/masters/modules/pointandfigure.src.js +1 -1
- package/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/es-modules/masters/modules/pyramid3d.src.js +1 -1
- package/es-modules/masters/modules/renko.src.js +1 -1
- package/es-modules/masters/modules/sankey.src.js +1 -1
- package/es-modules/masters/modules/series-label.src.js +1 -1
- package/es-modules/masters/modules/series-on-point.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +1 -1
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/textpath.src.js +1 -1
- package/es-modules/masters/modules/tiledwebmap.src.js +1 -1
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/timeline.src.js +1 -1
- package/es-modules/masters/modules/treegraph.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +1 -1
- package/es-modules/masters/modules/treemap.src.js +1 -1
- package/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/es-modules/masters/modules/variwide.src.js +1 -1
- package/es-modules/masters/modules/vector.src.js +1 -1
- package/es-modules/masters/modules/venn.src.js +1 -1
- package/es-modules/masters/modules/windbarb.src.js +1 -1
- package/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/es-modules/masters/modules/xrange.src.js +1 -1
- package/es-modules/masters/standalone-navigator.src.js +1 -1
- package/es-modules/masters/themes/adaptive.src.js +1 -1
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/high-contrast.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/es-modules/tsconfig.tsbuildinfo +1 -1
- package/esm/highcharts-3d.js +2 -2
- package/esm/highcharts-3d.src.js +40 -32
- package/esm/highcharts-autoload.js +1 -1
- package/esm/highcharts-autoload.src.js +1 -1
- package/esm/highcharts-gantt.js +1 -1
- package/esm/highcharts-gantt.src.js +1 -1
- package/esm/highcharts-more.js +2 -2
- package/esm/highcharts-more.src.js +90 -56
- package/esm/highcharts.js +4 -4
- package/esm/highcharts.src.js +312 -207
- package/esm/highmaps.js +1 -1
- package/esm/highmaps.src.js +1 -1
- package/esm/highstock.js +1 -1
- package/esm/highstock.src.js +1 -1
- package/esm/i18n/fr-FR.js +1 -1
- package/esm/i18n/fr-FR.src.js +1 -1
- package/esm/i18n/nb-NO.js +1 -1
- package/esm/i18n/nb-NO.src.js +1 -1
- package/esm/i18n/zh-CN.js +1 -1
- package/esm/i18n/zh-CN.src.js +1 -1
- package/esm/indicators/acceleration-bands.js +1 -1
- package/esm/indicators/acceleration-bands.src.js +1 -1
- package/esm/indicators/accumulation-distribution.js +1 -1
- package/esm/indicators/accumulation-distribution.src.js +1 -1
- package/esm/indicators/ao.js +1 -1
- package/esm/indicators/ao.src.js +1 -1
- package/esm/indicators/apo.js +1 -1
- package/esm/indicators/apo.src.js +1 -1
- package/esm/indicators/aroon-oscillator.js +1 -1
- package/esm/indicators/aroon-oscillator.src.js +1 -1
- package/esm/indicators/aroon.js +2 -2
- package/esm/indicators/aroon.src.js +3 -3
- package/esm/indicators/atr.js +1 -1
- package/esm/indicators/atr.src.js +1 -1
- package/esm/indicators/bollinger-bands.js +1 -1
- package/esm/indicators/bollinger-bands.src.js +1 -1
- package/esm/indicators/cci.js +1 -1
- package/esm/indicators/cci.src.js +1 -1
- package/esm/indicators/chaikin.js +1 -1
- package/esm/indicators/chaikin.src.js +1 -1
- package/esm/indicators/cmf.js +1 -1
- package/esm/indicators/cmf.src.js +1 -1
- package/esm/indicators/cmo.js +1 -1
- package/esm/indicators/cmo.src.js +1 -1
- package/esm/indicators/dema.js +1 -1
- package/esm/indicators/dema.src.js +1 -1
- package/esm/indicators/disparity-index.js +1 -1
- package/esm/indicators/disparity-index.src.js +1 -1
- package/esm/indicators/dmi.js +1 -1
- package/esm/indicators/dmi.src.js +1 -1
- package/esm/indicators/dpo.js +2 -2
- package/esm/indicators/dpo.src.js +4 -3
- package/esm/indicators/ichimoku-kinko-hyo.js +1 -1
- package/esm/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/esm/indicators/indicators-all.js +2 -2
- package/esm/indicators/indicators-all.src.js +8 -7
- package/esm/indicators/indicators.js +2 -2
- package/esm/indicators/indicators.src.js +2 -2
- package/esm/indicators/keltner-channels.js +1 -1
- package/esm/indicators/keltner-channels.src.js +1 -1
- package/esm/indicators/klinger.js +1 -1
- package/esm/indicators/klinger.src.js +1 -1
- package/esm/indicators/macd.js +1 -1
- package/esm/indicators/macd.src.js +1 -1
- package/esm/indicators/mfi.js +1 -1
- package/esm/indicators/mfi.src.js +1 -1
- package/esm/indicators/momentum.js +1 -1
- package/esm/indicators/momentum.src.js +1 -1
- package/esm/indicators/natr.js +1 -1
- package/esm/indicators/natr.src.js +1 -1
- package/esm/indicators/obv.js +1 -1
- package/esm/indicators/obv.src.js +1 -1
- package/esm/indicators/pivot-points.js +1 -1
- package/esm/indicators/pivot-points.src.js +1 -1
- package/esm/indicators/ppo.js +1 -1
- package/esm/indicators/ppo.src.js +1 -1
- package/esm/indicators/price-channel.js +1 -1
- package/esm/indicators/price-channel.src.js +1 -1
- package/esm/indicators/price-envelopes.js +1 -1
- package/esm/indicators/price-envelopes.src.js +1 -1
- package/esm/indicators/psar.js +1 -1
- package/esm/indicators/psar.src.js +1 -1
- package/esm/indicators/regressions.js +1 -1
- package/esm/indicators/regressions.src.js +1 -1
- package/esm/indicators/roc.js +1 -1
- package/esm/indicators/roc.src.js +1 -1
- package/esm/indicators/rsi.js +1 -1
- package/esm/indicators/rsi.src.js +2 -2
- package/esm/indicators/slow-stochastic.js +1 -1
- package/esm/indicators/slow-stochastic.src.js +1 -1
- package/esm/indicators/stochastic.js +1 -1
- package/esm/indicators/stochastic.src.js +1 -1
- package/esm/indicators/supertrend.js +1 -1
- package/esm/indicators/supertrend.src.js +1 -1
- package/esm/indicators/tema.js +1 -1
- package/esm/indicators/tema.src.js +1 -1
- package/esm/indicators/trendline.js +1 -1
- package/esm/indicators/trendline.src.js +1 -1
- package/esm/indicators/trix.js +1 -1
- package/esm/indicators/trix.src.js +1 -1
- package/esm/indicators/volume-by-price.js +1 -1
- package/esm/indicators/volume-by-price.src.js +1 -1
- package/esm/indicators/vwap.js +1 -1
- package/esm/indicators/vwap.src.js +1 -1
- package/esm/indicators/williams-r.js +1 -1
- package/esm/indicators/williams-r.src.js +1 -1
- package/esm/indicators/wma.js +1 -1
- package/esm/indicators/wma.src.js +1 -1
- package/esm/indicators/zigzag.js +1 -1
- package/esm/indicators/zigzag.src.js +1 -1
- package/esm/modules/accessibility.js +2 -2
- package/esm/modules/accessibility.src.js +69 -63
- package/esm/modules/annotations-advanced.js +3 -3
- package/esm/modules/annotations-advanced.src.js +25 -23
- package/esm/modules/annotations.js +3 -3
- package/esm/modules/annotations.src.js +21 -19
- package/esm/modules/arc-diagram.js +2 -2
- package/esm/modules/arc-diagram.src.js +16 -15
- package/esm/modules/arrow-symbols.js +1 -1
- package/esm/modules/arrow-symbols.src.js +1 -1
- package/esm/modules/boost-canvas.js +2 -2
- package/esm/modules/boost-canvas.src.js +29 -20
- package/esm/modules/boost.js +2 -2
- package/esm/modules/boost.src.js +28 -19
- package/esm/modules/broken-axis.js +2 -2
- package/esm/modules/broken-axis.src.js +6 -5
- package/esm/modules/bullet.js +2 -2
- package/esm/modules/bullet.src.js +17 -10
- package/esm/modules/coloraxis.js +2 -2
- package/esm/modules/coloraxis.src.js +18 -11
- package/esm/modules/contour.js +1 -1
- package/esm/modules/contour.src.js +1 -1
- package/esm/modules/current-date-indicator.js +1 -1
- package/esm/modules/current-date-indicator.src.js +1 -1
- package/esm/modules/cylinder.js +2 -2
- package/esm/modules/cylinder.src.js +9 -10
- package/esm/modules/data-sorting.js +1 -1
- package/esm/modules/data-sorting.src.js +1 -1
- package/esm/modules/data-tools.js +2 -2
- package/esm/modules/data-tools.src.js +20 -3
- package/esm/modules/data.js +1 -1
- package/esm/modules/data.src.js +1 -1
- package/esm/modules/datagrouping.js +2 -2
- package/esm/modules/datagrouping.src.js +6 -5
- package/esm/modules/debugger.js +1 -1
- package/esm/modules/debugger.src.js +1 -1
- package/esm/modules/dependency-wheel.js +1 -1
- package/esm/modules/dependency-wheel.src.js +1 -1
- package/esm/modules/dotplot.js +2 -2
- package/esm/modules/dotplot.src.js +3 -2
- package/esm/modules/drag-panes.js +1 -1
- package/esm/modules/drag-panes.src.js +1 -1
- package/esm/modules/draggable-points.js +2 -2
- package/esm/modules/draggable-points.src.js +2 -3
- package/esm/modules/drilldown.js +2 -2
- package/esm/modules/drilldown.src.js +5 -4
- package/esm/modules/dumbbell.js +2 -2
- package/esm/modules/dumbbell.src.js +37 -9
- package/esm/modules/export-data.js +2 -2
- package/esm/modules/export-data.src.js +17 -16
- package/esm/modules/exporting.js +2 -2
- package/esm/modules/exporting.src.js +7 -7
- package/esm/modules/flowmap.js +2 -2
- package/esm/modules/flowmap.src.js +21 -11
- package/esm/modules/full-screen.js +1 -1
- package/esm/modules/full-screen.src.js +1 -1
- package/esm/modules/funnel.js +2 -2
- package/esm/modules/funnel.src.js +2 -2
- package/esm/modules/funnel3d.js +2 -2
- package/esm/modules/funnel3d.src.js +14 -13
- package/esm/modules/gantt.js +2 -2
- package/esm/modules/gantt.src.js +93 -76
- package/esm/modules/geoheatmap.js +2 -2
- package/esm/modules/geoheatmap.src.js +8 -8
- package/esm/modules/grid-axis.js +2 -2
- package/esm/modules/grid-axis.src.js +4 -4
- package/esm/modules/heatmap.js +2 -2
- package/esm/modules/heatmap.src.js +22 -22
- package/esm/modules/heikinashi.js +1 -1
- package/esm/modules/heikinashi.src.js +1 -1
- package/esm/modules/histogram-bellcurve.js +1 -1
- package/esm/modules/histogram-bellcurve.src.js +15 -3
- package/esm/modules/hollowcandlestick.js +1 -1
- package/esm/modules/hollowcandlestick.src.js +1 -1
- package/esm/modules/item-series.js +2 -2
- package/esm/modules/item-series.src.js +18 -6
- package/esm/modules/lollipop.js +1 -1
- package/esm/modules/lollipop.src.js +1 -1
- package/esm/modules/map.js +2 -2
- package/esm/modules/map.src.js +65 -57
- package/esm/modules/marker-clusters.js +1 -1
- package/esm/modules/marker-clusters.src.js +1 -1
- package/esm/modules/mouse-wheel-zoom.js +2 -2
- package/esm/modules/mouse-wheel-zoom.src.js +3 -3
- package/esm/modules/navigator.js +2 -2
- package/esm/modules/navigator.src.js +47 -45
- package/esm/modules/networkgraph.js +2 -2
- package/esm/modules/networkgraph.src.js +31 -21
- package/esm/modules/no-data-to-display.js +1 -1
- package/esm/modules/no-data-to-display.src.js +1 -1
- package/esm/modules/non-cartesian-zoom.js +1 -1
- package/esm/modules/non-cartesian-zoom.src.js +1 -1
- package/esm/modules/offline-exporting.js +1 -1
- package/esm/modules/offline-exporting.src.js +1 -1
- package/esm/modules/organization.js +2 -2
- package/esm/modules/organization.src.js +3 -2
- package/esm/modules/parallel-coordinates.js +2 -2
- package/esm/modules/parallel-coordinates.src.js +2 -2
- package/esm/modules/pareto.js +1 -1
- package/esm/modules/pareto.src.js +1 -1
- package/esm/modules/pathfinder.js +2 -2
- package/esm/modules/pathfinder.src.js +7 -6
- package/esm/modules/pattern-fill.js +2 -2
- package/esm/modules/pattern-fill.src.js +7 -5
- package/esm/modules/pictorial.js +2 -2
- package/esm/modules/pictorial.src.js +10 -6
- package/esm/modules/pointandfigure.js +1 -1
- package/esm/modules/pointandfigure.src.js +1 -1
- package/esm/modules/price-indicator.js +2 -2
- package/esm/modules/price-indicator.src.js +5 -4
- package/esm/modules/pyramid3d.js +1 -1
- package/esm/modules/pyramid3d.src.js +1 -1
- package/esm/modules/renko.js +1 -1
- package/esm/modules/renko.src.js +1 -1
- package/esm/modules/sankey.js +2 -2
- package/esm/modules/sankey.src.js +34 -20
- package/esm/modules/series-label.js +2 -2
- package/esm/modules/series-label.src.js +7 -7
- package/esm/modules/series-on-point.js +1 -1
- package/esm/modules/series-on-point.src.js +1 -1
- package/esm/modules/solid-gauge.js +2 -2
- package/esm/modules/solid-gauge.src.js +2 -2
- package/esm/modules/sonification.js +2 -2
- package/esm/modules/sonification.src.js +19 -19
- package/esm/modules/static-scale.js +1 -1
- package/esm/modules/static-scale.src.js +1 -1
- package/esm/modules/stock-tools.js +3 -3
- package/esm/modules/stock-tools.src.js +15 -10
- package/esm/modules/stock.js +2 -2
- package/esm/modules/stock.src.js +90 -76
- package/esm/modules/streamgraph.js +1 -1
- package/esm/modules/streamgraph.src.js +1 -1
- package/esm/modules/sunburst.js +2 -2
- package/esm/modules/sunburst.src.js +41 -26
- package/esm/modules/textpath.js +1 -1
- package/esm/modules/textpath.src.js +1 -1
- package/esm/modules/tiledwebmap.js +2 -2
- package/esm/modules/tiledwebmap.src.js +8 -6
- package/esm/modules/tilemap.js +2 -2
- package/esm/modules/tilemap.src.js +3 -3
- package/esm/modules/timeline.js +2 -2
- package/esm/modules/timeline.src.js +5 -4
- package/esm/modules/treegraph.js +2 -2
- package/esm/modules/treegraph.src.js +17 -8
- package/esm/modules/treegrid.js +2 -2
- package/esm/modules/treegrid.src.js +28 -18
- package/esm/modules/treemap.js +2 -2
- package/esm/modules/treemap.src.js +35 -22
- package/esm/modules/variable-pie.js +2 -2
- package/esm/modules/variable-pie.src.js +6 -4
- package/esm/modules/variwide.js +2 -2
- package/esm/modules/variwide.src.js +2 -2
- package/esm/modules/vector.js +1 -1
- package/esm/modules/vector.src.js +1 -1
- package/esm/modules/venn.js +1 -1
- package/esm/modules/venn.src.js +1 -1
- package/esm/modules/windbarb.js +2 -2
- package/esm/modules/windbarb.src.js +2 -2
- package/esm/modules/wordcloud.js +1 -1
- package/esm/modules/wordcloud.src.js +1 -1
- package/esm/modules/xrange.js +1 -1
- package/esm/modules/xrange.src.js +1 -1
- package/esm/standalone-navigator.js +4 -4
- package/esm/standalone-navigator.src.js +355 -249
- package/esm/themes/adaptive.js +1 -1
- package/esm/themes/adaptive.src.js +1 -1
- package/esm/themes/avocado.js +1 -1
- package/esm/themes/avocado.src.js +1 -1
- package/esm/themes/dark-unica.js +1 -1
- package/esm/themes/dark-unica.src.js +1 -1
- package/esm/themes/grid-light.js +1 -1
- package/esm/themes/grid-light.src.js +1 -1
- package/esm/themes/high-contrast.js +1 -1
- package/esm/themes/high-contrast.src.js +1 -1
- package/esm/themes/sand-signika.js +1 -1
- package/esm/themes/sand-signika.src.js +1 -1
- package/esm/themes/sunset.js +1 -1
- package/esm/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +2 -2
- package/highcharts-3d.src.js +40 -32
- package/highcharts-autoload.d.ts +8 -2
- package/highcharts-autoload.js +4 -4
- package/highcharts-autoload.src.d.ts +8 -2
- package/highcharts-autoload.src.js +313 -208
- package/highcharts-gantt.js +4 -4
- package/highcharts-gantt.src.js +404 -283
- package/highcharts-more.js +2 -2
- package/highcharts-more.src.js +90 -56
- package/highcharts.d.ts +61 -4
- package/highcharts.js +4 -4
- package/highcharts.src.d.ts +61 -4
- package/highcharts.src.js +312 -207
- package/highmaps.js +4 -4
- package/highmaps.src.js +390 -272
- package/highstock.js +4 -4
- package/highstock.src.js +413 -293
- package/i18n/fr-FR.js +1 -1
- package/i18n/fr-FR.src.js +1 -1
- package/i18n/nb-NO.js +1 -1
- package/i18n/nb-NO.src.js +1 -1
- package/i18n/zh-CN.js +1 -1
- package/i18n/zh-CN.src.js +1 -1
- package/indicators/acceleration-bands.js +1 -1
- package/indicators/acceleration-bands.src.js +1 -1
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +1 -1
- package/indicators/ao.src.js +1 -1
- package/indicators/apo.js +1 -1
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.js +1 -1
- package/indicators/aroon-oscillator.src.js +1 -1
- package/indicators/aroon.js +2 -2
- package/indicators/aroon.src.js +3 -3
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.src.js +1 -1
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +1 -1
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.src.js +1 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.js +1 -1
- package/indicators/dema.src.js +1 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.js +1 -1
- package/indicators/dmi.src.js +1 -1
- package/indicators/dpo.js +2 -2
- package/indicators/dpo.src.js +4 -3
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.js +2 -2
- package/indicators/indicators-all.src.js +8 -7
- package/indicators/indicators.js +2 -2
- package/indicators/indicators.src.js +2 -2
- package/indicators/keltner-channels.js +1 -1
- package/indicators/keltner-channels.src.js +1 -1
- package/indicators/klinger.js +1 -1
- package/indicators/klinger.src.js +1 -1
- package/indicators/macd.js +1 -1
- package/indicators/macd.src.js +1 -1
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +1 -1
- package/indicators/natr.src.js +1 -1
- package/indicators/obv.js +1 -1
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.js +1 -1
- package/indicators/price-channel.src.js +1 -1
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +1 -1
- package/indicators/regressions.src.js +1 -1
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.src.js +2 -2
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.src.js +1 -1
- package/indicators/stochastic.js +1 -1
- package/indicators/stochastic.src.js +1 -1
- package/indicators/supertrend.js +1 -1
- package/indicators/supertrend.src.js +1 -1
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +1 -1
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.js +1 -1
- package/indicators/volume-by-price.src.js +1 -1
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.js +2 -2
- package/modules/accessibility.src.js +69 -63
- package/modules/annotations-advanced.js +3 -3
- package/modules/annotations-advanced.src.js +25 -23
- package/modules/annotations.js +3 -3
- package/modules/annotations.src.js +21 -19
- package/modules/arc-diagram.js +2 -2
- package/modules/arc-diagram.src.js +16 -15
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +2 -2
- package/modules/boost-canvas.src.js +29 -20
- package/modules/boost.js +2 -2
- package/modules/boost.src.js +28 -19
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.src.js +6 -5
- package/modules/bullet.js +2 -2
- package/modules/bullet.src.js +17 -10
- package/modules/coloraxis.js +2 -2
- package/modules/coloraxis.src.js +18 -11
- package/modules/contour.js +4 -4
- package/modules/contour.src.js +19 -12
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +2 -2
- package/modules/cylinder.src.js +9 -10
- package/modules/data-sorting.js +1 -1
- package/modules/data-sorting.src.js +1 -1
- package/modules/data-tools.js +2 -2
- package/modules/data-tools.src.js +20 -3
- package/modules/data.js +1 -1
- package/modules/data.src.js +1 -1
- package/modules/datagrouping.js +2 -2
- package/modules/datagrouping.src.js +6 -5
- package/modules/debugger.js +1 -1
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.js +1 -1
- package/modules/dependency-wheel.src.js +1 -1
- package/modules/dotplot.js +2 -2
- package/modules/dotplot.src.js +3 -2
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +2 -2
- package/modules/draggable-points.src.js +2 -3
- package/modules/drilldown.js +2 -2
- package/modules/drilldown.src.js +5 -4
- package/modules/dumbbell.js +2 -2
- package/modules/dumbbell.src.js +37 -9
- package/modules/export-data.js +2 -2
- package/modules/export-data.src.js +17 -16
- package/modules/exporting.js +2 -2
- package/modules/exporting.src.js +7 -7
- package/modules/flowmap.js +2 -2
- package/modules/flowmap.src.js +21 -11
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +1 -1
- package/modules/funnel.js +2 -2
- package/modules/funnel.src.js +2 -2
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.src.js +14 -13
- package/modules/gantt.js +6 -6
- package/modules/gantt.src.js +96 -79
- package/modules/geoheatmap.d.ts +0 -12
- package/modules/geoheatmap.js +2 -2
- package/modules/geoheatmap.src.d.ts +0 -12
- package/modules/geoheatmap.src.js +8 -8
- package/modules/grid-axis.js +2 -2
- package/modules/grid-axis.src.js +4 -4
- package/modules/heatmap.d.ts +0 -12
- package/modules/heatmap.js +4 -4
- package/modules/heatmap.src.d.ts +0 -12
- package/modules/heatmap.src.js +40 -33
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +1 -1
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.src.js +15 -3
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.src.js +1 -1
- package/modules/item-series.js +2 -2
- package/modules/item-series.src.js +18 -6
- package/modules/lollipop.js +1 -1
- package/modules/lollipop.src.js +1 -1
- package/modules/map.d.ts +0 -12
- package/modules/map.js +4 -4
- package/modules/map.src.d.ts +0 -12
- package/modules/map.src.js +83 -68
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.src.js +1 -1
- package/modules/mouse-wheel-zoom.js +2 -2
- package/modules/mouse-wheel-zoom.src.js +3 -3
- package/modules/navigator.js +2 -2
- package/modules/navigator.src.js +47 -45
- package/modules/networkgraph.js +2 -2
- package/modules/networkgraph.src.js +31 -21
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/non-cartesian-zoom.js +1 -1
- package/modules/non-cartesian-zoom.src.js +1 -1
- package/modules/offline-exporting.js +1 -1
- package/modules/offline-exporting.src.js +1 -1
- package/modules/organization.js +2 -2
- package/modules/organization.src.js +3 -2
- package/modules/parallel-coordinates.js +2 -2
- package/modules/parallel-coordinates.src.js +2 -2
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +2 -2
- package/modules/pathfinder.src.js +7 -6
- package/modules/pattern-fill.js +2 -2
- package/modules/pattern-fill.src.js +7 -5
- package/modules/pictorial.js +2 -2
- package/modules/pictorial.src.js +10 -6
- package/modules/pointandfigure.js +1 -1
- package/modules/pointandfigure.src.js +1 -1
- package/modules/price-indicator.js +2 -2
- package/modules/price-indicator.src.js +5 -4
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +1 -1
- package/modules/renko.js +1 -1
- package/modules/renko.src.js +1 -1
- package/modules/sankey.js +2 -2
- package/modules/sankey.src.js +34 -20
- package/modules/series-label.js +2 -2
- package/modules/series-label.src.js +7 -7
- package/modules/series-on-point.js +1 -1
- package/modules/series-on-point.src.js +1 -1
- package/modules/solid-gauge.js +2 -2
- package/modules/solid-gauge.src.js +2 -2
- package/modules/sonification.js +2 -2
- package/modules/sonification.src.js +19 -19
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +3 -3
- package/modules/stock-tools.src.js +15 -10
- package/modules/stock.js +6 -6
- package/modules/stock.src.js +105 -89
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +2 -2
- package/modules/sunburst.src.js +41 -26
- package/modules/textpath.js +1 -1
- package/modules/textpath.src.js +1 -1
- package/modules/tiledwebmap.js +2 -2
- package/modules/tiledwebmap.src.js +8 -6
- package/modules/tilemap.js +2 -2
- package/modules/tilemap.src.js +3 -3
- package/modules/timeline.js +2 -2
- package/modules/timeline.src.js +5 -4
- package/modules/treegraph.js +2 -2
- package/modules/treegraph.src.js +17 -8
- package/modules/treegrid.js +2 -2
- package/modules/treegrid.src.js +28 -18
- package/modules/treemap.js +2 -2
- package/modules/treemap.src.js +35 -22
- package/modules/variable-pie.js +2 -2
- package/modules/variable-pie.src.js +6 -4
- package/modules/variwide.js +2 -2
- package/modules/variwide.src.js +2 -2
- package/modules/vector.js +1 -1
- package/modules/vector.src.js +1 -1
- package/modules/venn.js +1 -1
- package/modules/venn.src.js +1 -1
- package/modules/windbarb.js +2 -2
- package/modules/windbarb.src.js +2 -2
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.src.js +1 -1
- package/modules/xrange.js +1 -1
- package/modules/xrange.src.js +1 -1
- package/package.json +2 -3
- package/standalone-navigator.js +4 -4
- package/standalone-navigator.src.js +355 -249
- package/themes/adaptive.js +1 -1
- package/themes/adaptive.src.js +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/high-contrast.js +1 -1
- package/themes/high-contrast.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/sunset.js +1 -1
- package/themes/sunset.src.js +1 -1
package/esm/highcharts.src.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
2
2
|
/**
|
|
3
|
-
* @license Highcharts JS v13.0.
|
|
3
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
4
4
|
* @module highcharts/highcharts
|
|
5
5
|
*
|
|
6
6
|
* (c) 2009-2026 Highsoft AS
|
|
@@ -38,7 +38,7 @@ var Globals;
|
|
|
38
38
|
* Constants
|
|
39
39
|
*
|
|
40
40
|
* */
|
|
41
|
-
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.
|
|
41
|
+
Globals.SVG_NS = 'http://www.w3.org/2000/svg', Globals.product = 'Highcharts', Globals.version = '13.0.2', Globals.win = (typeof window !== 'undefined' ?
|
|
42
42
|
window :
|
|
43
43
|
{}), // eslint-disable-line node/no-unsupported-features/es-builtins
|
|
44
44
|
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 = [
|
|
@@ -365,6 +365,29 @@ const ChartDefaults = {
|
|
|
365
365
|
* @context Highcharts.Chart
|
|
366
366
|
* @apioption chart.events.load
|
|
367
367
|
*/
|
|
368
|
+
/**
|
|
369
|
+
* Fires while the chart is panned by mouse drag. Panning must be
|
|
370
|
+
* enabled through [chart.panning](#chart.panning). One parameter,
|
|
371
|
+
* `event`, is passed to the function, containing common event
|
|
372
|
+
* information as well as `event.originalEvent`, the underlying pointer
|
|
373
|
+
* event. Note that the event fires for every mouse move during the
|
|
374
|
+
* drag, not once per gesture.
|
|
375
|
+
*
|
|
376
|
+
* Calling `event.preventDefault()` or returning false prevents the
|
|
377
|
+
* default panning of the axes. In Highcharts Maps, and on ordinal axes
|
|
378
|
+
* in Highcharts Stock, the panning is applied outside the default
|
|
379
|
+
* action and is not prevented.
|
|
380
|
+
*
|
|
381
|
+
* Panning by touch does not fire this event, unless
|
|
382
|
+
* [chart.zooming.singleTouch](#chart.zooming.singleTouch) is enabled and
|
|
383
|
+
* no zoom type is set. Single-finger drags are then handled as mouse
|
|
384
|
+
* drags and fire this event.
|
|
385
|
+
*
|
|
386
|
+
* @type {Highcharts.ChartPanCallbackFunction}
|
|
387
|
+
* @since 7.0.2
|
|
388
|
+
* @context Highcharts.Chart
|
|
389
|
+
* @apioption chart.events.pan
|
|
390
|
+
*/
|
|
368
391
|
/**
|
|
369
392
|
* Fires when the chart is redrawn, either after a call to
|
|
370
393
|
* `chart.redraw()` or after an axis, series or point is modified with
|
|
@@ -2379,7 +2402,7 @@ function getStyle(el, prop, toInt) {
|
|
|
2379
2402
|
const css = win.getComputedStyle(el, void 0); // eslint-disable-line no-undefined
|
|
2380
2403
|
if (css) {
|
|
2381
2404
|
style = css.getPropertyValue(prop);
|
|
2382
|
-
if (
|
|
2405
|
+
if (toInt ?? prop !== 'opacity') {
|
|
2383
2406
|
style = pInt(style);
|
|
2384
2407
|
}
|
|
2385
2408
|
}
|
|
@@ -2629,7 +2652,7 @@ function merge(extendOrSource, ...sources) {
|
|
|
2629
2652
|
function normalizeTickInterval(interval, multiples, magnitude, allowDecimals, hasTickAmount) {
|
|
2630
2653
|
let i, retInterval = interval;
|
|
2631
2654
|
// Round to a tenfold of 1, 2, 2.5 or 5
|
|
2632
|
-
magnitude =
|
|
2655
|
+
magnitude = (magnitude ?? getMagnitude(interval));
|
|
2633
2656
|
const normalized = interval / magnitude;
|
|
2634
2657
|
// Multiples for a linear scale
|
|
2635
2658
|
if (!multiples) {
|
|
@@ -2742,20 +2765,22 @@ function pad(number, length, padder) {
|
|
|
2742
2765
|
.replace('-', '')
|
|
2743
2766
|
.length).join(padder || '0') + number;
|
|
2744
2767
|
}
|
|
2745
|
-
/* eslint-disable jsdoc
|
|
2768
|
+
/* eslint-disable valid-jsdoc */
|
|
2746
2769
|
/**
|
|
2747
2770
|
* Return the first value that is not null or undefined.
|
|
2748
2771
|
*
|
|
2772
|
+
* @deprecated 13.0.2
|
|
2773
|
+
* Use nullish coalescing (`??`) or explicit fallback logic instead.
|
|
2774
|
+
*
|
|
2749
2775
|
* @function Highcharts.pick<T>
|
|
2750
2776
|
*
|
|
2751
|
-
* @param {...
|
|
2777
|
+
* @param {...(T|null|undefined)} args
|
|
2752
2778
|
* Variable number of arguments to inspect.
|
|
2753
2779
|
*
|
|
2754
2780
|
* @return {T}
|
|
2755
2781
|
* The value of the first argument that is not null or undefined.
|
|
2756
2782
|
*/
|
|
2757
|
-
function pick() {
|
|
2758
|
-
const args = arguments;
|
|
2783
|
+
function pick(...args) {
|
|
2759
2784
|
const length = args.length;
|
|
2760
2785
|
for (let i = 0; i < length; i++) {
|
|
2761
2786
|
const arg = args[i];
|
|
@@ -2764,7 +2789,7 @@ function pick() {
|
|
|
2764
2789
|
}
|
|
2765
2790
|
}
|
|
2766
2791
|
}
|
|
2767
|
-
/* eslint-enable jsdoc
|
|
2792
|
+
/* eslint-enable valid-jsdoc */
|
|
2768
2793
|
/**
|
|
2769
2794
|
* Shortcut for parseInt
|
|
2770
2795
|
*
|
|
@@ -3147,7 +3172,8 @@ function insertItem(item, collection) {
|
|
|
3147
3172
|
!collection[i] ||
|
|
3148
3173
|
// Handle index option, the element to insert has lower index
|
|
3149
3174
|
(isNumber(indexOption) &&
|
|
3150
|
-
indexOption <
|
|
3175
|
+
indexOption < (collection[i].options.index ??
|
|
3176
|
+
collection[i]._i)) ||
|
|
3151
3177
|
// Insert the new item before other internal items
|
|
3152
3178
|
// (navigator)
|
|
3153
3179
|
collection[i].options.isInternal) {
|
|
@@ -3233,7 +3259,7 @@ const uniqueKey = (function () {
|
|
|
3233
3259
|
* State of the serial mode.
|
|
3234
3260
|
*/
|
|
3235
3261
|
function useSerialIds(mode) {
|
|
3236
|
-
return (serialMode =
|
|
3262
|
+
return (serialMode = (mode ?? serialMode));
|
|
3237
3263
|
}
|
|
3238
3264
|
/* *
|
|
3239
3265
|
*
|
|
@@ -3699,6 +3725,10 @@ const isDateTimeFormatOptions = (obj) => obj.main === void 0;
|
|
|
3699
3725
|
*
|
|
3700
3726
|
* @param {Highcharts.TimeOptions} [options] Time options as defined in
|
|
3701
3727
|
* [chart.options.time](/highcharts/time).
|
|
3728
|
+
*
|
|
3729
|
+
* @param {Highcharts.LangOptions} [lang]
|
|
3730
|
+
* Language options. When `options.locale` is not set, `lang.locale` is used as
|
|
3731
|
+
* the locale fallback for locale-aware date formatting.
|
|
3702
3732
|
*/
|
|
3703
3733
|
class TimeBase {
|
|
3704
3734
|
/* *
|
|
@@ -3717,8 +3747,8 @@ class TimeBase {
|
|
|
3717
3747
|
};
|
|
3718
3748
|
this.variableTimezone = false;
|
|
3719
3749
|
this.Date = TimeBase_win.Date;
|
|
3720
|
-
this.update(options);
|
|
3721
3750
|
this.lang = lang;
|
|
3751
|
+
this.update(options);
|
|
3722
3752
|
}
|
|
3723
3753
|
/* *
|
|
3724
3754
|
*
|
|
@@ -3830,7 +3860,9 @@ class TimeBase {
|
|
|
3830
3860
|
/**
|
|
3831
3861
|
* Shorthand to get a cached `Intl.DateTimeFormat` instance.
|
|
3832
3862
|
*/
|
|
3833
|
-
dateTimeFormat(options, timestamp, locale = this.options.locale ||
|
|
3863
|
+
dateTimeFormat(options, timestamp, locale = (this.options.locale ||
|
|
3864
|
+
this.lang?.locale ||
|
|
3865
|
+
pageLang)) {
|
|
3834
3866
|
const cacheKey = JSON.stringify(options) + locale;
|
|
3835
3867
|
if (isString(options)) {
|
|
3836
3868
|
options = this.str2dtf(options);
|
|
@@ -7770,6 +7802,41 @@ const DefaultOptions = {
|
|
|
7770
7802
|
* @param {global.Event} event
|
|
7771
7803
|
* The event that occurred.
|
|
7772
7804
|
*/
|
|
7805
|
+
/**
|
|
7806
|
+
* Gets fired while the chart is panned by mouse drag. Calling
|
|
7807
|
+
* `event.preventDefault()` or returning `false` prevents the default panning
|
|
7808
|
+
* of the axes.
|
|
7809
|
+
*
|
|
7810
|
+
* @callback Highcharts.ChartPanCallbackFunction
|
|
7811
|
+
*
|
|
7812
|
+
* @param {Highcharts.Chart} this
|
|
7813
|
+
* The chart on which the event occurred.
|
|
7814
|
+
*
|
|
7815
|
+
* @param {Highcharts.ChartPanEventObject} event
|
|
7816
|
+
* The event that occurred.
|
|
7817
|
+
*/
|
|
7818
|
+
/**
|
|
7819
|
+
* Contains common event information. Through the `originalEvent` property you
|
|
7820
|
+
* can access the pointer event that triggered the panning.
|
|
7821
|
+
*
|
|
7822
|
+
* @interface Highcharts.ChartPanEventObject
|
|
7823
|
+
*/ /**
|
|
7824
|
+
* The pointer event that triggered the panning.
|
|
7825
|
+
* @name Highcharts.ChartPanEventObject#originalEvent
|
|
7826
|
+
* @type {Highcharts.PointerEventObject}
|
|
7827
|
+
*/ /**
|
|
7828
|
+
* Prevents the default behavior of the event.
|
|
7829
|
+
* @name Highcharts.ChartPanEventObject#preventDefault
|
|
7830
|
+
* @type {Function}
|
|
7831
|
+
*/ /**
|
|
7832
|
+
* The event target.
|
|
7833
|
+
* @name Highcharts.ChartPanEventObject#target
|
|
7834
|
+
* @type {Highcharts.Chart}
|
|
7835
|
+
*/ /**
|
|
7836
|
+
* The event type.
|
|
7837
|
+
* @name Highcharts.ChartPanEventObject#type
|
|
7838
|
+
* @type {"pan"}
|
|
7839
|
+
*/
|
|
7773
7840
|
/**
|
|
7774
7841
|
* Fires when the chart is redrawn, either after a call to `chart.redraw()` or
|
|
7775
7842
|
* after an axis, series or point is modified with the `redraw` option set to
|
|
@@ -8145,7 +8212,9 @@ Color.None = new Color(''); // Must be last static for init
|
|
|
8145
8212
|
*/
|
|
8146
8213
|
/**
|
|
8147
8214
|
* A valid color type than can be parsed and handled by Highcharts. It can be a
|
|
8148
|
-
* color string, a gradient object, or a pattern
|
|
8215
|
+
* color string (including CSS expressions), a gradient object, or a pattern
|
|
8216
|
+
* object. Read more about colors in the [Highcharts
|
|
8217
|
+
* documentation](https://www.highcharts.com/docs/chart-design-and-style/colors).
|
|
8149
8218
|
*
|
|
8150
8219
|
* @typedef {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject} Highcharts.ColorType
|
|
8151
8220
|
*/
|
|
@@ -8688,7 +8757,8 @@ Fx.timers = [];
|
|
|
8688
8757
|
* so it should be moved to the SVGRenderer.
|
|
8689
8758
|
*/
|
|
8690
8759
|
function setAnimation(animation, chart) {
|
|
8691
|
-
chart.renderer.globalAnimation =
|
|
8760
|
+
chart.renderer.globalAnimation =
|
|
8761
|
+
animation ?? chart.options.chart.animation ?? true;
|
|
8692
8762
|
}
|
|
8693
8763
|
/**
|
|
8694
8764
|
* Get the animation in object form, where a disabled animation is always
|
|
@@ -9751,7 +9821,7 @@ function format(str = '', ctx, owner) {
|
|
|
9751
9821
|
replacement = `"${replacement}"`;
|
|
9752
9822
|
}
|
|
9753
9823
|
}
|
|
9754
|
-
str = str.replace(match.find,
|
|
9824
|
+
str = str.replace(match.find, (replacement ?? ''));
|
|
9755
9825
|
});
|
|
9756
9826
|
return hasSub ? format(str, ctx, owner) : str;
|
|
9757
9827
|
}
|
|
@@ -10000,7 +10070,7 @@ var RendererUtilities;
|
|
|
10000
10070
|
boxes = boxes.map((box) => ({
|
|
10001
10071
|
size: box.size,
|
|
10002
10072
|
targets: [box.target],
|
|
10003
|
-
align:
|
|
10073
|
+
align: (box.align ?? 0.5)
|
|
10004
10074
|
}));
|
|
10005
10075
|
while (overlapping) {
|
|
10006
10076
|
// Initial positions: target centered in box
|
|
@@ -10158,8 +10228,10 @@ class SVGElement {
|
|
|
10158
10228
|
* Property value.
|
|
10159
10229
|
*/
|
|
10160
10230
|
_defaultGetter(key) {
|
|
10161
|
-
let ret =
|
|
10162
|
-
|
|
10231
|
+
let ret = (this[key + 'Value'] ??
|
|
10232
|
+
this[key] ??
|
|
10233
|
+
(this.element ? this.element.getAttribute(key) : null) ??
|
|
10234
|
+
0);
|
|
10163
10235
|
if (/^-?[\d\.]+$/.test(ret)) { // Is numerical
|
|
10164
10236
|
ret = parseFloat(ret);
|
|
10165
10237
|
}
|
|
@@ -10322,7 +10394,7 @@ class SVGElement {
|
|
|
10322
10394
|
}
|
|
10323
10395
|
alignTo = void 0; // Do not use the box
|
|
10324
10396
|
}
|
|
10325
|
-
const alignToBox =
|
|
10397
|
+
const alignToBox = alignTo ?? renderer[alignToKey] ?? renderer,
|
|
10326
10398
|
// Default: left align
|
|
10327
10399
|
x = (alignToBox.x || 0) + (alignOptions.x || 0) +
|
|
10328
10400
|
((alignToBox.width || 0) - (alignOptions.width || 0)) *
|
|
@@ -10382,7 +10454,7 @@ class SVGElement {
|
|
|
10382
10454
|
* Returns the SVGElement for chaining.
|
|
10383
10455
|
*/
|
|
10384
10456
|
animate(params, options, complete) {
|
|
10385
|
-
const animOptions = animObject(
|
|
10457
|
+
const animOptions = animObject((options ?? this.renderer.globalAnimation ?? true)), deferTime = animOptions.defer;
|
|
10386
10458
|
// When the page is hidden save resources in the background by not
|
|
10387
10459
|
// running animation at all (#9749).
|
|
10388
10460
|
if (SVGElement_doc.hidden) {
|
|
@@ -10874,7 +10946,7 @@ class SVGElement {
|
|
|
10874
10946
|
.split(','); // Ending comma
|
|
10875
10947
|
i = v.length;
|
|
10876
10948
|
while (i--) {
|
|
10877
|
-
v[i] = '' + (pInt(v[i]) *
|
|
10949
|
+
v[i] = '' + (pInt(v[i]) * (strokeWidth ?? NaN));
|
|
10878
10950
|
}
|
|
10879
10951
|
value = v.join(',').replace(/NaN/g, 'none'); // #3226
|
|
10880
10952
|
this.element.setAttribute('stroke-dasharray', value);
|
|
@@ -11014,7 +11086,7 @@ class SVGElement {
|
|
|
11014
11086
|
* The bounding box with `x`, `y`, `width` and `height` properties.
|
|
11015
11087
|
*/
|
|
11016
11088
|
getBBox(reload, rot) {
|
|
11017
|
-
const wrapper = this, { element, renderer, styles, textStr } = wrapper, { cache, cacheKeys } = renderer, isSVG = element.namespaceURI === wrapper.SVG_NS, rotation =
|
|
11089
|
+
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 &&
|
|
11018
11090
|
SVGElement.prototype.getStyle.call(element, 'font-size')) : (styles.fontSize), cacheKey = this.getBBoxCacheKey([
|
|
11019
11091
|
renderer.rootFontSize,
|
|
11020
11092
|
this.textWidth, // #7874, also useHTML
|
|
@@ -11540,7 +11612,7 @@ class SVGElement {
|
|
|
11540
11612
|
symbolAttr(hash) {
|
|
11541
11613
|
const wrapper = this;
|
|
11542
11614
|
SVGElement.symbolCustomAttribs.forEach(function (key) {
|
|
11543
|
-
wrapper[key] =
|
|
11615
|
+
wrapper[key] = (hash[key] ?? wrapper[key]);
|
|
11544
11616
|
});
|
|
11545
11617
|
wrapper.attr({
|
|
11546
11618
|
d: wrapper.renderer.symbols[wrapper.symbolName](wrapper.x, wrapper.y, wrapper.width, wrapper.height, wrapper)
|
|
@@ -11580,7 +11652,7 @@ class SVGElement {
|
|
|
11580
11652
|
}
|
|
11581
11653
|
// Replace text content and escape markup
|
|
11582
11654
|
titleNode.textContent = replaceNested(// Scan #[73]
|
|
11583
|
-
|
|
11655
|
+
(value ?? ''), // #3276, #3895
|
|
11584
11656
|
[/<[^>]*>/g, '']).replace(/</g, '<').replace(/>/g, '>');
|
|
11585
11657
|
}
|
|
11586
11658
|
/**
|
|
@@ -12358,7 +12430,7 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12358
12430
|
if ((this.textStr && this.bBox.width === 0 && this.bBox.height === 0) || this.rotation) {
|
|
12359
12431
|
this.updateBoxSize();
|
|
12360
12432
|
}
|
|
12361
|
-
const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft =
|
|
12433
|
+
const { padding, height = 0, translateX = 0, translateY = 0, width = 0 } = this, paddingLeft = (this.paddingLeft ?? padding), rotation = rot ?? (this.rotation || 0);
|
|
12362
12434
|
let bBox = {
|
|
12363
12435
|
width,
|
|
12364
12436
|
height,
|
|
@@ -12411,7 +12483,7 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12411
12483
|
this.attr({
|
|
12412
12484
|
// Alignment is available now (#3295, 0 not rendered if given
|
|
12413
12485
|
// as a value)
|
|
12414
|
-
text:
|
|
12486
|
+
text: (this.textStr ?? ''),
|
|
12415
12487
|
x: this.x || 0,
|
|
12416
12488
|
y: this.y || 0
|
|
12417
12489
|
});
|
|
@@ -12567,8 +12639,8 @@ class SVGLabel extends SVG_SVGElement {
|
|
|
12567
12639
|
/** @internal */
|
|
12568
12640
|
getPaddedWidth() {
|
|
12569
12641
|
const padding = this.padding;
|
|
12570
|
-
const paddingLeft =
|
|
12571
|
-
const paddingRight =
|
|
12642
|
+
const paddingLeft = (this.paddingLeft ?? padding);
|
|
12643
|
+
const paddingRight = (this.paddingRight ?? padding);
|
|
12572
12644
|
return ((this.widthSetting || this.bBox.width || 0) +
|
|
12573
12645
|
paddingLeft +
|
|
12574
12646
|
paddingRight);
|
|
@@ -12669,7 +12741,7 @@ function arc(cx, cy, w, h, options) {
|
|
|
12669
12741
|
const arc = [];
|
|
12670
12742
|
if (options) {
|
|
12671
12743
|
let start = options.start || 0, end = options.end || 0;
|
|
12672
|
-
const rx =
|
|
12744
|
+
const rx = (options.r ?? w), ry = (options.r ?? (h || w)),
|
|
12673
12745
|
// Subtract a small number to prevent cos and sin of start and end
|
|
12674
12746
|
// from becoming equal on 360 arcs (#1561). See "Arc proximity"
|
|
12675
12747
|
// tests at samples/unit-tests/svgrenderer/symbol/demo.js
|
|
@@ -12679,16 +12751,17 @@ function arc(cx, cy, w, h, options) {
|
|
|
12679
12751
|
start = Math.PI / 2;
|
|
12680
12752
|
end = Math.PI * 2.5 - proximity;
|
|
12681
12753
|
}
|
|
12682
|
-
const innerRadius = options.innerR, open =
|
|
12754
|
+
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),
|
|
12683
12755
|
// Proximity takes care of rounding errors around PI (#6971)
|
|
12684
|
-
longArc =
|
|
12756
|
+
longArc = options.longArc ??
|
|
12757
|
+
(end - start - Math.PI < proximity ? 0 : 1);
|
|
12685
12758
|
let arcSegment = [
|
|
12686
12759
|
'A', // ArcTo
|
|
12687
12760
|
rx, // X radius
|
|
12688
12761
|
ry, // Y radius
|
|
12689
12762
|
0, // Slanting
|
|
12690
12763
|
longArc, // Long or short arc
|
|
12691
|
-
|
|
12764
|
+
(options.clockwise ?? 1), // Clockwise
|
|
12692
12765
|
// Use a static pixel offset for full circle (#21701)
|
|
12693
12766
|
cx + (fullCircle ? 0.001 : rx * cosEnd),
|
|
12694
12767
|
cy + ry * sinEnd
|
|
@@ -13219,7 +13292,7 @@ class TextBuilder {
|
|
|
13219
13292
|
* @internal
|
|
13220
13293
|
*/
|
|
13221
13294
|
buildSVG() {
|
|
13222
|
-
const wrapper = this.svgElement, textNode = wrapper.element, renderer = wrapper.renderer, textStr =
|
|
13295
|
+
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,
|
|
13223
13296
|
// The buildText code is quite heavy, so if we're not changing
|
|
13224
13297
|
// something that affects the text, skip it (#6113).
|
|
13225
13298
|
textCache = [
|
|
@@ -13803,7 +13876,7 @@ class SVGRenderer {
|
|
|
13803
13876
|
this.url = this.getReferenceURL();
|
|
13804
13877
|
// Add description
|
|
13805
13878
|
const desc = this.createElement('desc').add();
|
|
13806
|
-
desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.
|
|
13879
|
+
desc.element.appendChild(SVGRenderer_doc.createTextNode('Created with Highcharts 13.0.2'));
|
|
13807
13880
|
this.defs = this.createElement('defs').add();
|
|
13808
13881
|
this.allowHTML = allowHTML;
|
|
13809
13882
|
this.forExport = forExport;
|
|
@@ -14589,7 +14662,7 @@ class SVGRenderer {
|
|
|
14589
14662
|
this.attr('height')
|
|
14590
14663
|
});
|
|
14591
14664
|
},
|
|
14592
|
-
duration:
|
|
14665
|
+
duration: (animate ?? true) ? void 0 : 0
|
|
14593
14666
|
});
|
|
14594
14667
|
renderer.alignElements();
|
|
14595
14668
|
}
|
|
@@ -14747,8 +14820,8 @@ class SVGRenderer {
|
|
|
14747
14820
|
// The image width is not always the same as the symbol width. The
|
|
14748
14821
|
// image may be centered within the symbol, as is the case when
|
|
14749
14822
|
// image shapes are used as label backgrounds, for example in flags.
|
|
14750
|
-
img.imgwidth =
|
|
14751
|
-
img.imgheight =
|
|
14823
|
+
img.imgwidth = (options?.width ?? symbolSizes[imageSrc]?.width);
|
|
14824
|
+
img.imgheight = (options?.height ?? symbolSizes[imageSrc]?.height);
|
|
14752
14825
|
/**
|
|
14753
14826
|
* Set the size and position
|
|
14754
14827
|
*/
|
|
@@ -19227,11 +19300,11 @@ class Tick {
|
|
|
19227
19300
|
* @function Highcharts.Tick#addLabel
|
|
19228
19301
|
*/
|
|
19229
19302
|
addLabel() {
|
|
19230
|
-
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 =
|
|
19303
|
+
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;
|
|
19231
19304
|
let label = tick.label, dateTimeLabelFormat, dateTimeLabelFormats, i;
|
|
19232
19305
|
// The context value
|
|
19233
19306
|
let value = this.parameters.category || (categories ?
|
|
19234
|
-
|
|
19307
|
+
(categories[pos] ?? names[pos] ?? pos) :
|
|
19235
19308
|
pos);
|
|
19236
19309
|
if (log && isNumber(value)) {
|
|
19237
19310
|
value = correctFloat(log.lin2log(value));
|
|
@@ -19478,7 +19551,7 @@ class Tick {
|
|
|
19478
19551
|
labelOptions.y;
|
|
19479
19552
|
}
|
|
19480
19553
|
x = x +
|
|
19481
|
-
|
|
19554
|
+
(labelOptions.x ?? [0, 1, 0, -1][axis.side] * distance) +
|
|
19482
19555
|
labelOffsetCorrection +
|
|
19483
19556
|
rotCorr.x -
|
|
19484
19557
|
(tickmarkOffset && horiz ?
|
|
@@ -19533,7 +19606,7 @@ class Tick {
|
|
|
19533
19606
|
* @function Highcharts.Tick#handleOverflow
|
|
19534
19607
|
*/
|
|
19535
19608
|
handleOverflow(xy) {
|
|
19536
|
-
const tick = this, axis = this.axis, labelOptions = axis.options.labels, pxPos = xy.x, chartWidth = axis.chart.chartWidth, spacing = axis.chart.spacing, leftBound =
|
|
19609
|
+
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 = {};
|
|
19537
19610
|
let modifiedSlotWidth = slotWidth, goRight = 1, leftPos, rightPos, textWidth;
|
|
19538
19611
|
// Check if the label overshoots the chart spacing box. If it does, move
|
|
19539
19612
|
// it. If it now overshoots the slotWidth, add ellipsis.
|
|
@@ -19600,9 +19673,8 @@ class Tick {
|
|
|
19600
19673
|
* @param {number} [opacity]
|
|
19601
19674
|
*/
|
|
19602
19675
|
render(index, old, opacity) {
|
|
19603
|
-
const tick = this, axis = tick.axis, horiz = axis.horiz, pos = tick.pos, tickmarkOffset =
|
|
19604
|
-
const labelOpacity =
|
|
19605
|
-
1);
|
|
19676
|
+
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;
|
|
19677
|
+
const labelOpacity = (opacity ?? tick.label?.newOpacity ?? 1);
|
|
19606
19678
|
// Anything that is not between `axis.pos` and `axis.pos + axis.length`
|
|
19607
19679
|
// should not be visible (#20166). The `correctFloat` is for reversed
|
|
19608
19680
|
// axes in Safari.
|
|
@@ -19630,7 +19702,7 @@ class Tick {
|
|
|
19630
19702
|
* @param {number} opacity The opacity of the grid line
|
|
19631
19703
|
*/
|
|
19632
19704
|
renderGridLine(old, opacity) {
|
|
19633
|
-
const tick = this, axis = tick.axis, options = axis.options, attribs = {}, pos = tick.pos, type = tick.type, tickmarkOffset =
|
|
19705
|
+
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;
|
|
19634
19706
|
let gridLine = tick.gridLine, gridLinePath, gridLineWidth = options.gridLineWidth, gridLineColor = options.gridLineColor, dashStyle = options.gridLineDashStyle;
|
|
19635
19707
|
if (tick.type === 'minor') {
|
|
19636
19708
|
gridLineWidth = options.minorGridLineWidth;
|
|
@@ -19686,7 +19758,7 @@ class Tick {
|
|
|
19686
19758
|
* @param {number} opacity The opacity of the mark
|
|
19687
19759
|
*/
|
|
19688
19760
|
renderMark(xy, opacity) {
|
|
19689
|
-
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 =
|
|
19761
|
+
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
|
|
19690
19762
|
tickColor = options[type !== 'minor' ? 'tickColor' : 'minorTickColor'];
|
|
19691
19763
|
let mark = tick.mark;
|
|
19692
19764
|
const isNewMark = !mark;
|
|
@@ -19731,7 +19803,7 @@ class Tick {
|
|
|
19731
19803
|
* @param {number} index The index of the tick
|
|
19732
19804
|
*/
|
|
19733
19805
|
renderLabel(xy, old, opacity, index) {
|
|
19734
|
-
const tick = this, axis = tick.axis, horiz = axis.horiz, options = axis.options, label = tick.label, labelOptions = options.labels, step = labelOptions.step, tickmarkOffset =
|
|
19806
|
+
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;
|
|
19735
19807
|
let show = true;
|
|
19736
19808
|
if (label && isNumber(x)) {
|
|
19737
19809
|
label.xy = xy = tick.getLabelPosition(x, y, label, horiz, labelOptions, tickmarkOffset, index, step);
|
|
@@ -19836,12 +19908,7 @@ const { deg2rad: Axis_deg2rad } = Core_Globals;
|
|
|
19836
19908
|
|
|
19837
19909
|
|
|
19838
19910
|
|
|
19839
|
-
const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0,
|
|
19840
|
-
// If the tick interval is greater than 0.5, avoid decimals, as
|
|
19841
|
-
// linear axes are often used to render discrete values (#3363). If
|
|
19842
|
-
// a tick amount is set, allow decimals by default, as it increases
|
|
19843
|
-
// the chances for a good fit.
|
|
19844
|
-
tickInterval < 0.5 || axis.tickAmount !== void 0), !!axis.tickAmount);
|
|
19911
|
+
const getNormalizedTickInterval = (axis, tickInterval) => normalizeTickInterval(tickInterval, void 0, void 0, (axis.options.allowDecimals ?? (tickInterval < 0.5 || axis.tickAmount !== void 0)), !!axis.tickAmount);
|
|
19845
19912
|
extend(Axis_defaultOptions, { xAxis, yAxis: merge(xAxis, yAxis) });
|
|
19846
19913
|
/* *
|
|
19847
19914
|
*
|
|
@@ -19949,7 +20016,7 @@ class Axis {
|
|
|
19949
20016
|
axis.coll = coll;
|
|
19950
20017
|
fireEvent(this, 'init', { userOptions: userOptions });
|
|
19951
20018
|
// Needed in setOptions
|
|
19952
|
-
axis.opposite =
|
|
20019
|
+
axis.opposite = (userOptions.opposite ?? axis.opposite);
|
|
19953
20020
|
/**
|
|
19954
20021
|
* The side on which the axis is rendered. 0 is top, 1 is right, 2
|
|
19955
20022
|
* is bottom and 3 is left.
|
|
@@ -19957,10 +20024,9 @@ class Axis {
|
|
|
19957
20024
|
* @name Highcharts.Axis#side
|
|
19958
20025
|
* @type {number}
|
|
19959
20026
|
*/
|
|
19960
|
-
axis.side =
|
|
20027
|
+
axis.side = (userOptions.side ?? axis.side ?? (horiz ?
|
|
19961
20028
|
(axis.opposite ? 0 : 2) : // Top : bottom
|
|
19962
|
-
(axis.opposite ? 1 : 3))
|
|
19963
|
-
);
|
|
20029
|
+
(axis.opposite ? 1 : 3)));
|
|
19964
20030
|
/**
|
|
19965
20031
|
* Current options for the axis after merge of defaults and user's
|
|
19966
20032
|
* options.
|
|
@@ -19989,7 +20055,7 @@ class Axis {
|
|
|
19989
20055
|
* @name Highcharts.Axis#reversed
|
|
19990
20056
|
* @type {boolean}
|
|
19991
20057
|
*/
|
|
19992
|
-
axis.reversed =
|
|
20058
|
+
axis.reversed = (options.reversed ?? axis.reversed);
|
|
19993
20059
|
axis.visible = options.visible;
|
|
19994
20060
|
axis.zoomEnabled = options.zoomEnabled;
|
|
19995
20061
|
// Initial categories
|
|
@@ -20077,7 +20143,7 @@ class Axis {
|
|
|
20077
20143
|
* @name Highcharts.Axis#crosshair
|
|
20078
20144
|
* @type {boolean|Highcharts.AxisCrosshairOptions}
|
|
20079
20145
|
*/
|
|
20080
|
-
const crosshair =
|
|
20146
|
+
const crosshair = options.crosshair ?? splat(chart.options.tooltip.crosshairs)[isXAxis ? 0 : 1];
|
|
20081
20147
|
axis.crosshair = crosshair === true ? {} : crosshair;
|
|
20082
20148
|
// Register. Don't add it again on Axis.update().
|
|
20083
20149
|
if (chart.axes.indexOf(axis) === -1) { //
|
|
@@ -20261,8 +20327,8 @@ class Axis {
|
|
|
20261
20327
|
seriesDataMax = xExtremes.max;
|
|
20262
20328
|
}
|
|
20263
20329
|
if (xData.length) {
|
|
20264
|
-
axis.dataMin = Math.min(
|
|
20265
|
-
axis.dataMax = Math.max(
|
|
20330
|
+
axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
|
|
20331
|
+
axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
|
|
20266
20332
|
}
|
|
20267
20333
|
}
|
|
20268
20334
|
// Get dataMin and dataMax for Y axes, as well as handle
|
|
@@ -20277,11 +20343,11 @@ class Axis {
|
|
|
20277
20343
|
// doesn't have active y data, we continue with nulls
|
|
20278
20344
|
if (isNumber(dataExtremes.dataMin)) {
|
|
20279
20345
|
seriesDataMin = dataExtremes.dataMin;
|
|
20280
|
-
axis.dataMin = Math.min(
|
|
20346
|
+
axis.dataMin = Math.min((axis.dataMin ?? seriesDataMin), seriesDataMin);
|
|
20281
20347
|
}
|
|
20282
20348
|
if (isNumber(dataExtremes.dataMax)) {
|
|
20283
20349
|
seriesDataMax = dataExtremes.dataMax;
|
|
20284
|
-
axis.dataMax = Math.max(
|
|
20350
|
+
axis.dataMax = Math.max((axis.dataMax ?? seriesDataMax), seriesDataMax);
|
|
20285
20351
|
}
|
|
20286
20352
|
// Adjust to threshold
|
|
20287
20353
|
if (defined(threshold)) {
|
|
@@ -20436,7 +20502,7 @@ class Axis {
|
|
|
20436
20502
|
translatedValue
|
|
20437
20503
|
};
|
|
20438
20504
|
fireEvent(this, 'getPlotLinePath', evt, function (e) {
|
|
20439
|
-
translatedValue =
|
|
20505
|
+
translatedValue = translatedValue ?? axis.translate(value, void 0, void 0, old);
|
|
20440
20506
|
// Keep the translated value within sane bounds, and avoid Infinity
|
|
20441
20507
|
// to fail the isNumber test (#7709).
|
|
20442
20508
|
translatedValue = clamp(translatedValue, -1e9, 1e9);
|
|
@@ -20525,7 +20591,7 @@ class Axis {
|
|
|
20525
20591
|
getMinorTickInterval() {
|
|
20526
20592
|
const { minorTicks, minorTickInterval } = this.options;
|
|
20527
20593
|
if (minorTicks === true) {
|
|
20528
|
-
return
|
|
20594
|
+
return (minorTickInterval ?? 'auto');
|
|
20529
20595
|
}
|
|
20530
20596
|
if (minorTicks === false) {
|
|
20531
20597
|
return;
|
|
@@ -20808,7 +20874,9 @@ class Axis {
|
|
|
20808
20874
|
const seriesPointRange = hasCategories ?
|
|
20809
20875
|
1 :
|
|
20810
20876
|
(isXAxis ?
|
|
20811
|
-
|
|
20877
|
+
(series.options.pointRange ??
|
|
20878
|
+
closestPointRange ??
|
|
20879
|
+
0) :
|
|
20812
20880
|
(axis.axisPointRange || 0)), // #2806
|
|
20813
20881
|
pointPlacement = series.options.pointPlacement;
|
|
20814
20882
|
pointRange = Math.max(pointRange, seriesPointRange);
|
|
@@ -20892,14 +20960,16 @@ class Axis {
|
|
|
20892
20960
|
this.getTickAmount();
|
|
20893
20961
|
}
|
|
20894
20962
|
// Min or max set either by zooming/setExtremes or initial options
|
|
20895
|
-
hardMin =
|
|
20896
|
-
hardMax =
|
|
20963
|
+
hardMin = (axis.userMin ?? time.parse(options.min));
|
|
20964
|
+
hardMax = (axis.userMax ?? time.parse(options.max));
|
|
20897
20965
|
// Linked axis gets the extremes from the parent axis
|
|
20898
20966
|
if (linkedParent) {
|
|
20899
20967
|
axis.linkedParent = linkedParent;
|
|
20900
20968
|
linkedParentExtremes = linkedParent.getExtremes();
|
|
20901
|
-
axis.min =
|
|
20902
|
-
|
|
20969
|
+
axis.min =
|
|
20970
|
+
linkedParentExtremes.min ?? linkedParentExtremes.dataMin;
|
|
20971
|
+
axis.max =
|
|
20972
|
+
linkedParentExtremes.max ?? linkedParentExtremes.dataMax;
|
|
20903
20973
|
if (this.type !== linkedParent.type) {
|
|
20904
20974
|
// Can't link axes of different type
|
|
20905
20975
|
error(11, true, chart);
|
|
@@ -20921,14 +20991,14 @@ class Axis {
|
|
|
20921
20991
|
maxPadding = 0;
|
|
20922
20992
|
}
|
|
20923
20993
|
}
|
|
20924
|
-
axis.min =
|
|
20925
|
-
axis.max =
|
|
20994
|
+
axis.min = (hardMin ?? thresholdMin ?? dataMin);
|
|
20995
|
+
axis.max = (hardMax ?? thresholdMax ?? dataMax);
|
|
20926
20996
|
}
|
|
20927
20997
|
if (isNumber(axis.max) && isNumber(axis.min)) {
|
|
20928
20998
|
if (logarithmic) {
|
|
20929
20999
|
if (axis.positiveValuesOnly &&
|
|
20930
21000
|
!secondPass &&
|
|
20931
|
-
Math.min(axis.min,
|
|
21001
|
+
Math.min(axis.min, (dataMin ?? axis.min)) <= 0) { // #978
|
|
20932
21002
|
// Can't plot negative values on log axis
|
|
20933
21003
|
error(10, true, chart);
|
|
20934
21004
|
}
|
|
@@ -21034,16 +21104,13 @@ class Axis {
|
|
|
21034
21104
|
axis.tickInterval = tickIntervalOption = linkedParent.tickInterval;
|
|
21035
21105
|
}
|
|
21036
21106
|
else {
|
|
21037
|
-
axis.tickInterval =
|
|
21107
|
+
axis.tickInterval = tickIntervalOption ?? (this.tickAmount ?
|
|
21038
21108
|
range / Math.max(this.tickAmount - 1, 1) :
|
|
21039
|
-
|
|
21040
|
-
|
|
21041
|
-
|
|
21042
|
-
|
|
21043
|
-
|
|
21044
|
-
// Don't let it be more than the data range
|
|
21045
|
-
range * tickPixelIntervalOption /
|
|
21046
|
-
Math.max(axis.len, tickPixelIntervalOption));
|
|
21109
|
+
categories ?
|
|
21110
|
+
1 :
|
|
21111
|
+
// Don't let it be more than the data range
|
|
21112
|
+
range * tickPixelIntervalOption /
|
|
21113
|
+
Math.max(axis.len, tickPixelIntervalOption));
|
|
21047
21114
|
}
|
|
21048
21115
|
// Now we're finished detecting min and max, crop and group series data.
|
|
21049
21116
|
// This is in turn needed in order to find tick positions in ordinal
|
|
@@ -21073,12 +21140,9 @@ class Axis {
|
|
|
21073
21140
|
}
|
|
21074
21141
|
// Before normalizing the tick interval, handle minimum tick interval.
|
|
21075
21142
|
// This applies only if tickInterval is not defined.
|
|
21076
|
-
const minTickInterval =
|
|
21077
|
-
|
|
21078
|
-
|
|
21079
|
-
dateTime &&
|
|
21080
|
-
!axis.series.some((s) => !s.sorted) ?
|
|
21081
|
-
axis.closestPointRange : 0);
|
|
21143
|
+
const minTickInterval = options.minTickInterval ?? (dateTime && !axis.series.some((s) => !s.sorted) ?
|
|
21144
|
+
axis.closestPointRange :
|
|
21145
|
+
0);
|
|
21082
21146
|
if (!tickIntervalOption &&
|
|
21083
21147
|
minTickInterval &&
|
|
21084
21148
|
axis.tickInterval < minTickInterval) {
|
|
@@ -21408,7 +21472,7 @@ class Axis {
|
|
|
21408
21472
|
* @function Highcharts.Axis#adjustTickAmount
|
|
21409
21473
|
*/
|
|
21410
21474
|
adjustTickAmount() {
|
|
21411
|
-
const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold =
|
|
21475
|
+
const axis = this, { finalTickAmt, max, min, options, tickPositions, tickAmount, thresholdAlignment } = axis, currentTickAmount = tickPositions?.length, threshold = axis.threshold ?? (axis.softThreshold ? 0 : null);
|
|
21412
21476
|
let len, i, tickInterval = axis.tickInterval, thresholdTickIndex;
|
|
21413
21477
|
const
|
|
21414
21478
|
// Extend the tickPositions by appending a position
|
|
@@ -21644,7 +21708,8 @@ class Axis {
|
|
|
21644
21708
|
offsets = options.offsets || [0, 0, 0, 0], horiz = this.horiz,
|
|
21645
21709
|
// Check for percentage based input values. Rounding fixes problems
|
|
21646
21710
|
// with column overflow and plot line filtering (#4898, #4899)
|
|
21647
|
-
width = this.width = Math.round(relativeLength(
|
|
21711
|
+
width = this.width = Math.round(relativeLength((options.width ?? chart.plotWidth - offsets[3] + offsets[1]), chart.plotWidth)), height = this.height = Math.round(relativeLength((options.height ??
|
|
21712
|
+
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));
|
|
21648
21713
|
// Expose basic values to use in Series object and navigator
|
|
21649
21714
|
this.bottom = chart.chartHeight - height - top;
|
|
21650
21715
|
this.right = chart.chartWidth - width - left;
|
|
@@ -21755,9 +21820,7 @@ class Axis {
|
|
|
21755
21820
|
* An array of tickLength and tickWidth
|
|
21756
21821
|
*/
|
|
21757
21822
|
tickSize(prefix) {
|
|
21758
|
-
const options = this.options, tickWidth =
|
|
21759
|
-
// Default to 1 on linear and datetime X axes
|
|
21760
|
-
prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
|
|
21823
|
+
const options = this.options, tickWidth = options[prefix === 'tick' ? 'tickWidth' : 'minorTickWidth'] ?? (prefix === 'tick' && this.isXAxis && !this.categories ? 1 : 0);
|
|
21761
21824
|
let tickLength = options[prefix === 'tick' ? 'tickLength' : 'minorTickLength'], tickSize;
|
|
21762
21825
|
if (tickWidth && tickLength) {
|
|
21763
21826
|
// Negate the length
|
|
@@ -21844,7 +21907,7 @@ class Axis {
|
|
|
21844
21907
|
newTickInterval = getStep(lineHeight * 0.75);
|
|
21845
21908
|
}
|
|
21846
21909
|
this.autoRotation = autoRotation;
|
|
21847
|
-
this.labelRotation =
|
|
21910
|
+
this.labelRotation = rotation ?? (isNumber(rotationOption) ? rotationOption : 0);
|
|
21848
21911
|
return labelOptions.step ? tickInterval : newTickInterval;
|
|
21849
21912
|
}
|
|
21850
21913
|
/**
|
|
@@ -22196,7 +22259,7 @@ class Axis {
|
|
|
22196
22259
|
titleOffsetOption = axisTitleOptions.offset;
|
|
22197
22260
|
titleMargin = defined(titleOffsetOption) ?
|
|
22198
22261
|
0 :
|
|
22199
|
-
|
|
22262
|
+
axisTitleOptions.margin ?? (horiz ? 5 : 10);
|
|
22200
22263
|
}
|
|
22201
22264
|
}
|
|
22202
22265
|
// Render the axis line
|
|
@@ -22707,9 +22770,9 @@ class Axis {
|
|
|
22707
22770
|
}
|
|
22708
22771
|
else if (defined(point)) {
|
|
22709
22772
|
// #3834
|
|
22710
|
-
pos =
|
|
22711
|
-
point.crosshairPos :
|
|
22712
|
-
null
|
|
22773
|
+
pos = (this.coll !== 'colorAxis' ?
|
|
22774
|
+
point.crosshairPos :
|
|
22775
|
+
null) ?? (this.isXAxis ?
|
|
22713
22776
|
point.plotX :
|
|
22714
22777
|
this.len - point.plotY);
|
|
22715
22778
|
}
|
|
@@ -22718,7 +22781,7 @@ class Axis {
|
|
|
22718
22781
|
// Value, only used on radial
|
|
22719
22782
|
value: point && (this.isXAxis ?
|
|
22720
22783
|
point.x :
|
|
22721
|
-
|
|
22784
|
+
(point.stackY ?? point.y ?? void 0)),
|
|
22722
22785
|
translatedValue: pos
|
|
22723
22786
|
};
|
|
22724
22787
|
if (chart.polar) {
|
|
@@ -22751,7 +22814,7 @@ class Axis {
|
|
|
22751
22814
|
(categorized ? 'category ' : 'thin ') +
|
|
22752
22815
|
(options.className || ''))
|
|
22753
22816
|
.attr({
|
|
22754
|
-
zIndex:
|
|
22817
|
+
zIndex: (options.zIndex ?? 2)
|
|
22755
22818
|
})
|
|
22756
22819
|
.clip(options.clip === false ?
|
|
22757
22820
|
void 0 :
|
|
@@ -22766,7 +22829,7 @@ class Axis {
|
|
|
22766
22829
|
// eslint-disable-next-line max-len
|
|
22767
22830
|
'var(--highcharts-highlight-color-20)').setOpacity(0.25).get() :
|
|
22768
22831
|
'var(--highcharts-neutral-color-20)'),
|
|
22769
|
-
'stroke-width':
|
|
22832
|
+
'stroke-width': (options.width ?? 1)
|
|
22770
22833
|
}).css({
|
|
22771
22834
|
'pointer-events': 'none'
|
|
22772
22835
|
});
|
|
@@ -22832,7 +22895,7 @@ class Axis {
|
|
|
22832
22895
|
this.destroy(true);
|
|
22833
22896
|
this.init(chart, options);
|
|
22834
22897
|
chart.isDirtyBox = true;
|
|
22835
|
-
if (
|
|
22898
|
+
if (redraw ?? true) {
|
|
22836
22899
|
chart.redraw();
|
|
22837
22900
|
}
|
|
22838
22901
|
}
|
|
@@ -22862,7 +22925,7 @@ class Axis {
|
|
|
22862
22925
|
chart.orderItems(coll);
|
|
22863
22926
|
this.destroy();
|
|
22864
22927
|
chart.isDirtyBox = true;
|
|
22865
|
-
if (
|
|
22928
|
+
if (redraw ?? true) {
|
|
22866
22929
|
chart.redraw();
|
|
22867
22930
|
}
|
|
22868
22931
|
}
|
|
@@ -23518,8 +23581,10 @@ var LogarithmicAxis;
|
|
|
23518
23581
|
tickIntervalOption, tickPixelIntervalOption = options.tickPixelInterval / (minor ? 5 : 1), totalPixelLength = minor ?
|
|
23519
23582
|
axisLength / axis.tickPositions.length :
|
|
23520
23583
|
axisLength;
|
|
23521
|
-
interval =
|
|
23522
|
-
|
|
23584
|
+
interval = filteredTickIntervalOption ??
|
|
23585
|
+
log.minorAutoInterval ??
|
|
23586
|
+
(realMax - realMin) * tickPixelIntervalOption /
|
|
23587
|
+
(totalPixelLength || 1);
|
|
23523
23588
|
interval = normalizeTickInterval(interval);
|
|
23524
23589
|
positions = axis.getLinearTickPositions(interval, realMin, realMax).map(log.log2lin);
|
|
23525
23590
|
if (!minor) {
|
|
@@ -23948,7 +24013,8 @@ class PlotLineOrBand {
|
|
|
23948
24013
|
if (!chart.styledMode) {
|
|
23949
24014
|
if (isLine) {
|
|
23950
24015
|
attribs.stroke = color || 'var(--highcharts-neutral-color-40)';
|
|
23951
|
-
attribs['stroke-width'] =
|
|
24016
|
+
attribs['stroke-width'] =
|
|
24017
|
+
options.width ?? 1;
|
|
23952
24018
|
if (options.dashStyle) {
|
|
23953
24019
|
attribs.dashstyle = options.dashStyle;
|
|
23954
24020
|
}
|
|
@@ -25080,7 +25146,8 @@ class Tooltip {
|
|
|
25080
25146
|
'highcharts-label',
|
|
25081
25147
|
isHeader && 'highcharts-tooltip-header',
|
|
25082
25148
|
isSplit ? 'highcharts-tooltip-box' : 'highcharts-tooltip',
|
|
25083
|
-
!isHeader &&
|
|
25149
|
+
!isHeader &&
|
|
25150
|
+
'highcharts-color-' + (point.colorIndex ?? series.colorIndex),
|
|
25084
25151
|
seriesOptions?.className
|
|
25085
25152
|
].filter(isString).join(' ');
|
|
25086
25153
|
}
|
|
@@ -25265,7 +25332,8 @@ class Tooltip {
|
|
|
25265
25332
|
}
|
|
25266
25333
|
// The far side is right or bottom
|
|
25267
25334
|
const preferFarSide = !this.followPointer &&
|
|
25268
|
-
|
|
25335
|
+
(point.ttBelow ??
|
|
25336
|
+
(polar ? false : !inverted === flipped)), // #4984
|
|
25269
25337
|
/*
|
|
25270
25338
|
* Handle the preferred dimension. When the preferred dimension is
|
|
25271
25339
|
* tooltip on top or bottom of the point, it will look for space
|
|
@@ -25392,7 +25460,7 @@ class Tooltip {
|
|
|
25392
25460
|
const tooltip = this;
|
|
25393
25461
|
// Disallow duplicate timers (#1728, #1766)
|
|
25394
25462
|
clearTimeouts(this);
|
|
25395
|
-
delay =
|
|
25463
|
+
delay = (delay ?? this.options.hideDelay);
|
|
25396
25464
|
if (!this.isHidden) {
|
|
25397
25465
|
this.hideTimer = syncTimeout(function () {
|
|
25398
25466
|
const label = tooltip.getLabel();
|
|
@@ -25495,7 +25563,9 @@ class Tooltip {
|
|
|
25495
25563
|
* Split tooltip does not support outside in the first iteration. Should
|
|
25496
25564
|
* not be too complicated to implement.
|
|
25497
25565
|
*/
|
|
25498
|
-
this.outside =
|
|
25566
|
+
this.outside =
|
|
25567
|
+
options.outside ??
|
|
25568
|
+
Boolean(chart.scrollablePixelsX || chart.scrollablePixelsY);
|
|
25499
25569
|
}
|
|
25500
25570
|
shouldStickOnContact(pointerEvent) {
|
|
25501
25571
|
return !!(!this.followPointer &&
|
|
@@ -25575,7 +25645,7 @@ class Tooltip {
|
|
|
25575
25645
|
point.points = void 0;
|
|
25576
25646
|
// Register the current series
|
|
25577
25647
|
const currentSeries = point.series;
|
|
25578
|
-
this.distance =
|
|
25648
|
+
this.distance = (currentSeries.tooltipOptions.distance ?? 16);
|
|
25579
25649
|
// Update the inner HTML
|
|
25580
25650
|
if (text === false) {
|
|
25581
25651
|
this.hide();
|
|
@@ -25848,7 +25918,7 @@ class Tooltip {
|
|
|
25848
25918
|
anchorY,
|
|
25849
25919
|
boxWidth,
|
|
25850
25920
|
point,
|
|
25851
|
-
rank:
|
|
25921
|
+
rank: boxPosition.rank ?? (isHeader ? 1 : 0),
|
|
25852
25922
|
size,
|
|
25853
25923
|
target: boxPosition.y,
|
|
25854
25924
|
tt,
|
|
@@ -27193,7 +27263,7 @@ class Point {
|
|
|
27193
27263
|
*/
|
|
27194
27264
|
select(selected, accumulate) {
|
|
27195
27265
|
const point = this, series = point.series, chart = series.chart;
|
|
27196
|
-
selected =
|
|
27266
|
+
selected = (selected ?? !point.selected);
|
|
27197
27267
|
this.selectedStaging = selected;
|
|
27198
27268
|
// Fire the event with the default handler
|
|
27199
27269
|
point.firePointEvent(selected ? 'select' : 'unselect', { accumulate: accumulate }, function () {
|
|
@@ -27444,7 +27514,7 @@ class Point {
|
|
|
27444
27514
|
});
|
|
27445
27515
|
halo.attr({
|
|
27446
27516
|
'class': 'highcharts-halo highcharts-color-' +
|
|
27447
|
-
|
|
27517
|
+
(point.colorIndex ?? series.colorIndex) +
|
|
27448
27518
|
(point.className ? ' ' + point.className : ''),
|
|
27449
27519
|
'visibility': markerVisibility,
|
|
27450
27520
|
'zIndex': -1 // #4929, #8276
|
|
@@ -28177,7 +28247,7 @@ class Pointer {
|
|
|
28177
28247
|
const hoverPoints = [], useExisting = !!(isDirectTouch && existingHoverPoint), filter = function (s) {
|
|
28178
28248
|
return (s.visible &&
|
|
28179
28249
|
!(!shared && s.directTouch) && // #3821
|
|
28180
|
-
|
|
28250
|
+
(s.options.enableMouseTracking ?? true));
|
|
28181
28251
|
};
|
|
28182
28252
|
let hoverSeries = existingHoverSeries,
|
|
28183
28253
|
// Which series to look in for the hover point
|
|
@@ -28363,8 +28433,8 @@ class Pointer {
|
|
|
28363
28433
|
const ePos = (touches ?
|
|
28364
28434
|
touches.length ?
|
|
28365
28435
|
touches.item(0) :
|
|
28366
|
-
(
|
|
28367
|
-
|
|
28436
|
+
(touches.changedTouches ??
|
|
28437
|
+
e.changedTouches)[0] :
|
|
28368
28438
|
e);
|
|
28369
28439
|
// Get mouse position
|
|
28370
28440
|
if (!chartPosition) {
|
|
@@ -28438,7 +28508,7 @@ class Pointer {
|
|
|
28438
28508
|
* @function Highcharts.Pointer#onContainerMouseLeave
|
|
28439
28509
|
*/
|
|
28440
28510
|
onContainerMouseLeave(e) {
|
|
28441
|
-
const { pointer } = Pointer_charts[
|
|
28511
|
+
const { pointer } = Pointer_charts[(Pointer.hoverChartIndex ?? -1)] || {};
|
|
28442
28512
|
e = this.normalize(e);
|
|
28443
28513
|
this.onContainerMouseMove(e);
|
|
28444
28514
|
// #4886, MS Touch end fires mouseleave but with no related target
|
|
@@ -28538,7 +28608,7 @@ class Pointer {
|
|
|
28538
28608
|
if (e?.touches && this.hasPinchMoved) {
|
|
28539
28609
|
e?.preventDefault?.();
|
|
28540
28610
|
}
|
|
28541
|
-
Pointer_charts[
|
|
28611
|
+
Pointer_charts[(Pointer.hoverChartIndex ?? -1)]
|
|
28542
28612
|
?.pointer
|
|
28543
28613
|
?.drop(e);
|
|
28544
28614
|
}
|
|
@@ -29045,7 +29115,7 @@ class Pointer {
|
|
|
29045
29115
|
*/
|
|
29046
29116
|
setHoverChartIndex(e) {
|
|
29047
29117
|
const chart = this.chart;
|
|
29048
|
-
const hoverChart = Core_Globals.charts[
|
|
29118
|
+
const hoverChart = Core_Globals.charts[(Pointer.hoverChartIndex ?? -1)];
|
|
29049
29119
|
if (hoverChart &&
|
|
29050
29120
|
hoverChart !== chart) {
|
|
29051
29121
|
const relatedTargetObj = { relatedTarget: chart.container };
|
|
@@ -29091,7 +29161,7 @@ class Pointer {
|
|
|
29091
29161
|
Math.pow(pinchDown[0].chartY - e.chartY, 2)) >= 16 :
|
|
29092
29162
|
false;
|
|
29093
29163
|
}
|
|
29094
|
-
if (
|
|
29164
|
+
if (hasMoved ?? true) {
|
|
29095
29165
|
this.pinch(e);
|
|
29096
29166
|
}
|
|
29097
29167
|
}
|
|
@@ -29134,7 +29204,7 @@ class Pointer {
|
|
|
29134
29204
|
let zoomType = chart.zooming.type || '', zoomX, zoomY;
|
|
29135
29205
|
// Look for the pinchType option
|
|
29136
29206
|
if (/touch/.test(e.type)) {
|
|
29137
|
-
zoomType =
|
|
29207
|
+
zoomType = (chart.zooming.pinchType ?? zoomType);
|
|
29138
29208
|
}
|
|
29139
29209
|
this.zoomX = zoomX = /x/.test(zoomType);
|
|
29140
29210
|
this.zoomY = zoomY = /y/.test(zoomType);
|
|
@@ -29908,7 +29978,7 @@ var LegendSymbol;
|
|
|
29908
29978
|
// Draw the marker
|
|
29909
29979
|
if (markerOptions && markerOptions.enabled !== false && symbolWidth) {
|
|
29910
29980
|
// Do not allow the marker to be larger than the symbolHeight
|
|
29911
|
-
let radius = Math.min(
|
|
29981
|
+
let radius = Math.min((markerOptions.radius ?? generalRadius), generalRadius);
|
|
29912
29982
|
// Restrict symbol markers size
|
|
29913
29983
|
if (symbol.indexOf('url') === 0) {
|
|
29914
29984
|
markerOptions = merge(markerOptions, {
|
|
@@ -32929,7 +32999,7 @@ class Series {
|
|
|
32929
32999
|
if (chartSeries.length) {
|
|
32930
33000
|
lastSeries = chartSeries[chartSeries.length - 1];
|
|
32931
33001
|
}
|
|
32932
|
-
series._i =
|
|
33002
|
+
series._i = (lastSeries?._i ?? -1) + 1;
|
|
32933
33003
|
series.opacity = series.options.opacity;
|
|
32934
33004
|
// Insert the series and re-order all series above the insertion
|
|
32935
33005
|
// point.
|
|
@@ -32976,7 +33046,7 @@ class Series {
|
|
|
32976
33046
|
// Apply if the series xAxis or yAxis option matches
|
|
32977
33047
|
// the number of the axis, or if undefined, use the
|
|
32978
33048
|
// first axis
|
|
32979
|
-
if (
|
|
33049
|
+
if ((seriesOptions[coll] ?? 0) === axis.index ||
|
|
32980
33050
|
(typeof seriesOptions[coll] !==
|
|
32981
33051
|
'undefined' &&
|
|
32982
33052
|
seriesOptions[coll] === axisOptions.id)) {
|
|
@@ -33019,8 +33089,12 @@ class Series {
|
|
|
33019
33089
|
* @function Highcharts.Series#hasMarkerChanged
|
|
33020
33090
|
*/
|
|
33021
33091
|
hasMarkerChanged(options, oldOptions) {
|
|
33022
|
-
const marker = options.marker, oldMarker = oldOptions.marker
|
|
33023
|
-
|
|
33092
|
+
const marker = options.marker, oldMarker = oldOptions.marker;
|
|
33093
|
+
// Note that `marker` holds the full, merged object including
|
|
33094
|
+
// `plotOptions`, while `oldMarker` is the user-defined series-level
|
|
33095
|
+
// options only. We may need to refactor that in the future if more
|
|
33096
|
+
// issues like #24057 arise.
|
|
33097
|
+
return marker && oldMarker && ((oldMarker.enabled && !marker.enabled) ||
|
|
33024
33098
|
oldMarker.symbol !== marker.symbol || // #10870, #15946
|
|
33025
33099
|
oldMarker.height !== marker.height || // #16274
|
|
33026
33100
|
oldMarker.width !== marker.width // #16274
|
|
@@ -33039,7 +33113,8 @@ class Series {
|
|
|
33039
33113
|
time.parse(options.pointStart) ??
|
|
33040
33114
|
0;
|
|
33041
33115
|
let pointInterval;
|
|
33042
|
-
this.pointInterval = pointInterval =
|
|
33116
|
+
this.pointInterval = pointInterval =
|
|
33117
|
+
this.pointInterval ?? options.pointInterval ?? 1;
|
|
33043
33118
|
if (relativeXValue && isNumber(x)) {
|
|
33044
33119
|
pointInterval *= x;
|
|
33045
33120
|
}
|
|
@@ -33111,9 +33186,13 @@ class Series {
|
|
|
33111
33186
|
);
|
|
33112
33187
|
// When shared tooltip, stickyTracking is true by default,
|
|
33113
33188
|
// unless user says otherwise.
|
|
33114
|
-
this.stickyTracking =
|
|
33115
|
-
|
|
33116
|
-
|
|
33189
|
+
this.stickyTracking =
|
|
33190
|
+
seriesUserOptions.stickyTracking ??
|
|
33191
|
+
userPlotOptionsType.stickyTracking ??
|
|
33192
|
+
userPlotOptionsSeries.stickyTracking ??
|
|
33193
|
+
(this.tooltipOptions.shared && !this.noSharedTooltip ?
|
|
33194
|
+
true :
|
|
33195
|
+
options.stickyTracking);
|
|
33117
33196
|
// Delete marker object if not allowed (#1125)
|
|
33118
33197
|
if (typeOptions.marker === null) {
|
|
33119
33198
|
delete options.marker;
|
|
@@ -33191,7 +33270,9 @@ class Series {
|
|
|
33191
33270
|
if (!value) {
|
|
33192
33271
|
// Pick up either the colorIndex option, or the series.colorIndex
|
|
33193
33272
|
// after Series.update()
|
|
33194
|
-
setting =
|
|
33273
|
+
setting = prop === 'color' ?
|
|
33274
|
+
(this.options.colorIndex ?? this[indexName]) :
|
|
33275
|
+
this[indexName];
|
|
33195
33276
|
if (defined(setting)) { // After Series.update()
|
|
33196
33277
|
i = setting;
|
|
33197
33278
|
}
|
|
@@ -34218,7 +34299,9 @@ class Series {
|
|
|
34218
34299
|
yValue = stackValues[1];
|
|
34219
34300
|
if (lowValue === stackThreshold &&
|
|
34220
34301
|
stackIndicator.key === stacks[xValue].base) {
|
|
34221
|
-
lowValue =
|
|
34302
|
+
lowValue = isNumber(threshold) ?
|
|
34303
|
+
threshold :
|
|
34304
|
+
yAxis.min;
|
|
34222
34305
|
}
|
|
34223
34306
|
// #1200, #1232
|
|
34224
34307
|
if (yAxis.positiveValuesOnly &&
|
|
@@ -34226,7 +34309,7 @@ class Series {
|
|
|
34226
34309
|
lowValue <= 0) {
|
|
34227
34310
|
lowValue = void 0;
|
|
34228
34311
|
}
|
|
34229
|
-
point.total = point.stackTotal =
|
|
34312
|
+
point.total = point.stackTotal = stackItem.total ?? void 0;
|
|
34230
34313
|
point.percentage = defined(point.y) && stackItem.total ?
|
|
34231
34314
|
(point.y / stackItem.total * 100) : void 0;
|
|
34232
34315
|
point.stackY = yValue;
|
|
@@ -34476,7 +34559,9 @@ class Series {
|
|
|
34476
34559
|
// Only draw the point if y is defined
|
|
34477
34560
|
if (shouldDrawMarker) {
|
|
34478
34561
|
// Shortcuts
|
|
34479
|
-
const symbol =
|
|
34562
|
+
const symbol = pointMarkerOptions.symbol ??
|
|
34563
|
+
series.symbol ??
|
|
34564
|
+
'rect';
|
|
34480
34565
|
markerAttribs = series.markerAttribs(point, point.selected ? 'select' : '');
|
|
34481
34566
|
const isInside = point.isInside !== false;
|
|
34482
34567
|
if (!graphic &&
|
|
@@ -34744,7 +34829,7 @@ class Series {
|
|
|
34744
34829
|
// Reset
|
|
34745
34830
|
zones.forEach((zone) => {
|
|
34746
34831
|
zone.lineClip = [];
|
|
34747
|
-
zone.translated = clamp(axis.toPixels(
|
|
34832
|
+
zone.translated = clamp(axis.toPixels((zone.value ?? axisMax), true) || 0, 0, len);
|
|
34748
34833
|
});
|
|
34749
34834
|
// The use of the Color Threshold assumes there are no gaps so it is
|
|
34750
34835
|
// safe to hide the original graph and area unless it is not
|
|
@@ -35400,7 +35485,7 @@ class Series {
|
|
|
35400
35485
|
const series = this, seriesOptions = series.options, { chart, data, dataTable: table, xAxis } = series, names = xAxis?.hasNames && xAxis.names, dataOptions = seriesOptions.data, xData = series.getColumn('x');
|
|
35401
35486
|
let isInTheMiddle, i;
|
|
35402
35487
|
// Optional redraw, defaults to true
|
|
35403
|
-
redraw =
|
|
35488
|
+
redraw = (redraw ?? true);
|
|
35404
35489
|
// Get options and push the point to xData, yData and series.options. In
|
|
35405
35490
|
// series.generatePoints the Point instance will be created on demand
|
|
35406
35491
|
// and pushed to the series.data array.
|
|
@@ -35511,7 +35596,7 @@ class Series {
|
|
|
35511
35596
|
}
|
|
35512
35597
|
};
|
|
35513
35598
|
setAnimation(animation, chart);
|
|
35514
|
-
redraw =
|
|
35599
|
+
redraw = (redraw ?? true);
|
|
35515
35600
|
// Fire the event with a default handler of removing the point
|
|
35516
35601
|
if (point) {
|
|
35517
35602
|
point.firePointEvent('remove', null, remove);
|
|
@@ -35554,7 +35639,7 @@ class Series {
|
|
|
35554
35639
|
// Redraw
|
|
35555
35640
|
chart.isDirtyLegend = chart.isDirtyBox = true;
|
|
35556
35641
|
chart.linkSeries(keepEvents);
|
|
35557
|
-
if (
|
|
35642
|
+
if (redraw ?? true) {
|
|
35558
35643
|
chart.redraw(animation);
|
|
35559
35644
|
}
|
|
35560
35645
|
}
|
|
@@ -35771,7 +35856,7 @@ class Series {
|
|
|
35771
35856
|
series.isDirtyData = true;
|
|
35772
35857
|
}
|
|
35773
35858
|
fireEvent(this, 'afterUpdate');
|
|
35774
|
-
if (
|
|
35859
|
+
if (redraw ?? true) {
|
|
35775
35860
|
chart.redraw(keepPoints ? void 0 : false);
|
|
35776
35861
|
}
|
|
35777
35862
|
}
|
|
@@ -35788,12 +35873,12 @@ class Series {
|
|
|
35788
35873
|
* @internal
|
|
35789
35874
|
*/
|
|
35790
35875
|
hasOptionChanged(optionName) {
|
|
35791
|
-
const chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName], plotOptionsOption =
|
|
35876
|
+
const chart = this.chart, option = this.options[optionName], plotOptions = chart.options.plotOptions, oldOption = this.userOptions[optionName], plotOptionsOption = (plotOptions?.[this.type]?.[optionName] ?? plotOptions?.series?.[optionName]);
|
|
35792
35877
|
// Check if `plotOptions` are defined already, #19203
|
|
35793
35878
|
if (oldOption && !defined(plotOptionsOption)) {
|
|
35794
35879
|
return option !== oldOption;
|
|
35795
35880
|
}
|
|
35796
|
-
return option !==
|
|
35881
|
+
return option !== (plotOptionsOption ?? option);
|
|
35797
35882
|
}
|
|
35798
35883
|
/**
|
|
35799
35884
|
* Runs on mouse over the series graphical items.
|
|
@@ -35867,7 +35952,8 @@ class Series {
|
|
|
35867
35952
|
const series = this, { graph, options } = series, { inactiveOtherPoints, states: stateOptions = {} } = options,
|
|
35868
35953
|
// By default a quick animation to hover/inactive,
|
|
35869
35954
|
// slower to un-hover
|
|
35870
|
-
stateAnimation =
|
|
35955
|
+
stateAnimation = stateOptions[state || 'normal']?.animation ??
|
|
35956
|
+
series.chart.options.chart.animation;
|
|
35871
35957
|
let { lineWidth, opacity } = options;
|
|
35872
35958
|
state = state || '';
|
|
35873
35959
|
if (series.state !== state) {
|
|
@@ -36753,7 +36839,7 @@ class Legend {
|
|
|
36753
36839
|
* @param {Highcharts.LegendOptions} options
|
|
36754
36840
|
*/
|
|
36755
36841
|
setOptions(options) {
|
|
36756
|
-
const padding =
|
|
36842
|
+
const padding = (options.padding ?? 8);
|
|
36757
36843
|
/**
|
|
36758
36844
|
* Legend options.
|
|
36759
36845
|
*
|
|
@@ -36770,7 +36856,7 @@ class Legend {
|
|
|
36770
36856
|
this.itemMarginBottom = options.itemMarginBottom;
|
|
36771
36857
|
this.padding = padding;
|
|
36772
36858
|
this.initialItemY = padding - 5; // 5 is pixels above the text
|
|
36773
|
-
this.symbolWidth =
|
|
36859
|
+
this.symbolWidth = (options.symbolWidth ?? 16);
|
|
36774
36860
|
this.pages = [];
|
|
36775
36861
|
this.proximate = options.layout === 'proximate' && !this.chart.inverted;
|
|
36776
36862
|
// #12705: baseline has to be reset on every update
|
|
@@ -36804,7 +36890,7 @@ class Legend {
|
|
|
36804
36890
|
}
|
|
36805
36891
|
this.destroy();
|
|
36806
36892
|
chart.isDirtyLegend = chart.isDirtyBox = true;
|
|
36807
|
-
if (
|
|
36893
|
+
if (redraw ?? true) {
|
|
36808
36894
|
chart.redraw();
|
|
36809
36895
|
}
|
|
36810
36896
|
fireEvent(this, 'afterUpdate', { redraw });
|
|
@@ -37042,7 +37128,7 @@ class Legend {
|
|
|
37042
37128
|
* The item to render.
|
|
37043
37129
|
*/
|
|
37044
37130
|
renderItem(item) {
|
|
37045
|
-
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 ?
|
|
37131
|
+
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 ?
|
|
37046
37132
|
item.series :
|
|
37047
37133
|
item, seriesOptions = series.options, showCheckbox = (!!legend.createCheckboxForItem &&
|
|
37048
37134
|
seriesOptions &&
|
|
@@ -37088,9 +37174,11 @@ class Legend {
|
|
|
37088
37174
|
legend.fontMetrics.f + 3 + legend.itemMarginTop;
|
|
37089
37175
|
label.attr('y', legend.baseline);
|
|
37090
37176
|
legend.symbolHeight =
|
|
37091
|
-
|
|
37177
|
+
(options.symbolHeight ?? legend.fontMetrics.f);
|
|
37092
37178
|
if (options.squareSymbol) {
|
|
37093
|
-
legend.symbolWidth =
|
|
37179
|
+
legend.symbolWidth =
|
|
37180
|
+
options.symbolWidth ??
|
|
37181
|
+
Math.max(legend.symbolHeight, 16);
|
|
37094
37182
|
itemExtraWidth = legend.symbolWidth + symbolPadding +
|
|
37095
37183
|
itemDistance + (showCheckbox ? 20 : 0);
|
|
37096
37184
|
if (ltr) {
|
|
@@ -37142,7 +37230,7 @@ class Legend {
|
|
|
37142
37230
|
* @param {Highcharts.BubbleLegendItem|Highcharts.Point|Highcharts.Series} item
|
|
37143
37231
|
*/
|
|
37144
37232
|
layoutItem(item) {
|
|
37145
|
-
const options = this.options, padding = this.padding, horizontal = options.layout === 'horizontal', itemHeight = item.itemHeight, itemMarginBottom = this.itemMarginBottom, itemMarginTop = this.itemMarginTop, itemDistance = horizontal ?
|
|
37233
|
+
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 &&
|
|
37146
37234
|
this.totalItemWidth > maxLegendWidth) ?
|
|
37147
37235
|
this.maxItemWidth :
|
|
37148
37236
|
item.itemWidth, legendItem = item.legendItem || {};
|
|
@@ -37196,7 +37284,9 @@ class Legend {
|
|
|
37196
37284
|
const seriesOptions = series?.options;
|
|
37197
37285
|
// Handle showInLegend. If the series is linked to another series,
|
|
37198
37286
|
// defaults to false.
|
|
37199
|
-
if (series &&
|
|
37287
|
+
if (series &&
|
|
37288
|
+
(seriesOptions.showInLegend ??
|
|
37289
|
+
(!defined(seriesOptions.linkedTo)))) {
|
|
37200
37290
|
// Use points or series for the legend item depending on
|
|
37201
37291
|
// legendType
|
|
37202
37292
|
allItems = allItems.concat(series.legendItem?.labels ||
|
|
@@ -37478,7 +37568,7 @@ class Legend {
|
|
|
37478
37568
|
* @function Highcharts.Legend#handleOverflow
|
|
37479
37569
|
*/
|
|
37480
37570
|
handleOverflow(legendHeight) {
|
|
37481
|
-
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 =
|
|
37571
|
+
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) {
|
|
37482
37572
|
if (typeof height === 'number') {
|
|
37483
37573
|
clipRect.attr({
|
|
37484
37574
|
height: height
|
|
@@ -37524,7 +37614,7 @@ class Legend {
|
|
|
37524
37614
|
navOptions.enabled !== false) {
|
|
37525
37615
|
this.clipHeight = clipHeight =
|
|
37526
37616
|
Math.max(spaceHeight - 20 - this.titleHeight - padding, 0);
|
|
37527
|
-
this.currentPage =
|
|
37617
|
+
this.currentPage = (this.currentPage ?? 1);
|
|
37528
37618
|
this.fullHeight = legendHeight;
|
|
37529
37619
|
// Fill pages with Y positions so that the top of each a legend item
|
|
37530
37620
|
// defines the scroll top for each page (#2098)
|
|
@@ -37684,7 +37774,7 @@ class Legend {
|
|
|
37684
37774
|
this.currentPage = currentPage;
|
|
37685
37775
|
this.positionCheckboxes();
|
|
37686
37776
|
// Fire event after scroll animation is complete
|
|
37687
|
-
const animOptions = animObject(
|
|
37777
|
+
const animOptions = animObject((animation ?? chart.renderer.globalAnimation ?? true));
|
|
37688
37778
|
syncTimeout(() => {
|
|
37689
37779
|
fireEvent(this, 'afterScroll', { currentPage });
|
|
37690
37780
|
}, animOptions.duration);
|
|
@@ -38125,7 +38215,7 @@ class Chart {
|
|
|
38125
38215
|
*/
|
|
38126
38216
|
static chart(a, b, c) {
|
|
38127
38217
|
const chart = new Chart(a, b, c);
|
|
38128
|
-
return chart.promise
|
|
38218
|
+
return chart.promise ?? chart;
|
|
38129
38219
|
}
|
|
38130
38220
|
// Implementation
|
|
38131
38221
|
constructor(a,
|
|
@@ -38166,10 +38256,10 @@ class Chart {
|
|
|
38166
38256
|
const chart = this, options = chart.options.chart, zooming = options.zooming;
|
|
38167
38257
|
chart.zooming = {
|
|
38168
38258
|
...zooming,
|
|
38169
|
-
type:
|
|
38170
|
-
key:
|
|
38171
|
-
pinchType:
|
|
38172
|
-
singleTouch:
|
|
38259
|
+
type: (options.zoomType ?? zooming.type),
|
|
38260
|
+
key: (options.zoomKey ?? zooming.key),
|
|
38261
|
+
pinchType: (options.pinchType ?? zooming.pinchType),
|
|
38262
|
+
singleTouch: options.zoomBySingleTouch ?? zooming.singleTouch ?? false,
|
|
38173
38263
|
resetButton: merge(zooming.resetButton, options.resetZoomButton)
|
|
38174
38264
|
};
|
|
38175
38265
|
}
|
|
@@ -38721,7 +38811,7 @@ class Chart {
|
|
|
38721
38811
|
// inspect the generated series.points.
|
|
38722
38812
|
series.getPointsCollection()
|
|
38723
38813
|
.forEach((point) => {
|
|
38724
|
-
if (
|
|
38814
|
+
if (point.selectedStaging ?? point.selected) {
|
|
38725
38815
|
acc.push(point);
|
|
38726
38816
|
}
|
|
38727
38817
|
});
|
|
@@ -39159,7 +39249,7 @@ class Chart {
|
|
|
39159
39249
|
chartWidth = chart.chartWidth;
|
|
39160
39250
|
if (!chart.styledMode) {
|
|
39161
39251
|
css(container, {
|
|
39162
|
-
width:
|
|
39252
|
+
width: (optionsChart.style?.width ?? chartWidth + 'px')
|
|
39163
39253
|
});
|
|
39164
39254
|
}
|
|
39165
39255
|
}
|
|
@@ -39802,7 +39892,7 @@ class Chart {
|
|
|
39802
39892
|
const mockTick = new Axis_Tick(axis, 0, '', true), label = mockTick.createLabel('x', labels);
|
|
39803
39893
|
mockTick.destroy();
|
|
39804
39894
|
if (label &&
|
|
39805
|
-
|
|
39895
|
+
(labels.reserveSpace ?? !isNumber(options.crossing))) {
|
|
39806
39896
|
expectedSpace = label.getBBox().height +
|
|
39807
39897
|
labels.distance +
|
|
39808
39898
|
Math.max(isNumber(offset) ? offset : 0, 0);
|
|
@@ -40137,7 +40227,7 @@ class Chart {
|
|
|
40137
40227
|
const chart = this;
|
|
40138
40228
|
let series;
|
|
40139
40229
|
if (options) { // <- not necessary
|
|
40140
|
-
redraw =
|
|
40230
|
+
redraw = (redraw ?? true); // Defaults to true
|
|
40141
40231
|
fireEvent(chart, 'addSeries', { options: options }, function () {
|
|
40142
40232
|
series = chart.initSeries(options);
|
|
40143
40233
|
chart.isDirtyLegend = true;
|
|
@@ -40228,7 +40318,7 @@ class Chart {
|
|
|
40228
40318
|
*/
|
|
40229
40319
|
createAxis(coll, options) {
|
|
40230
40320
|
const axis = new Axis_Axis(this, options.axis, coll);
|
|
40231
|
-
if (
|
|
40321
|
+
if (options.redraw ?? true) {
|
|
40232
40322
|
this.redraw(options.animation);
|
|
40233
40323
|
}
|
|
40234
40324
|
return axis;
|
|
@@ -40276,7 +40366,7 @@ class Chart {
|
|
|
40276
40366
|
}
|
|
40277
40367
|
loadingDiv.className = 'highcharts-loading';
|
|
40278
40368
|
// Update text
|
|
40279
|
-
HTML_AST.setElementHTML(loadingSpan,
|
|
40369
|
+
HTML_AST.setElementHTML(loadingSpan, (str ?? options.lang.loading ?? ''));
|
|
40280
40370
|
if (!chart.styledMode) {
|
|
40281
40371
|
// Update visuals
|
|
40282
40372
|
css(loadingDiv, extend(loadingStyle, { zIndex: 10 }));
|
|
@@ -40514,7 +40604,7 @@ class Chart {
|
|
|
40514
40604
|
}
|
|
40515
40605
|
// No match by id found, match by index instead
|
|
40516
40606
|
if (!item && chart[coll]) {
|
|
40517
|
-
item = chart[coll][
|
|
40607
|
+
item = chart[coll][(newOptions.index ?? i)];
|
|
40518
40608
|
// Check if we grabbed an item with an existing but
|
|
40519
40609
|
// different id (#13541). Check that the item in this
|
|
40520
40610
|
// position is not internal (navigator).
|
|
@@ -40727,7 +40817,7 @@ class Chart {
|
|
|
40727
40817
|
fireEvent(this, 'transform', params);
|
|
40728
40818
|
let hasZoomed = params.hasZoomed || false, displayButton, isAnyAxisPanning;
|
|
40729
40819
|
for (const axis of axes) {
|
|
40730
|
-
const { horiz, len, minPointOffset = 0, options, reversed } = axis, wh = horiz ? 'width' : 'height', xy = horiz ? 'x' : 'y', toLength =
|
|
40820
|
+
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),
|
|
40731
40821
|
// If fingers pinched very close on this axis, treat as pan
|
|
40732
40822
|
scale = Math.abs(toLength) < 10 ?
|
|
40733
40823
|
1 :
|
|
@@ -41591,7 +41681,7 @@ class StackItem {
|
|
|
41591
41681
|
r: options.borderRadius || 0,
|
|
41592
41682
|
text: str,
|
|
41593
41683
|
// Set default padding to 5 as it is in dataLabels #12308
|
|
41594
|
-
padding:
|
|
41684
|
+
padding: (options.padding ?? 5),
|
|
41595
41685
|
visibility: 'hidden' // Hidden until setOffset is called
|
|
41596
41686
|
};
|
|
41597
41687
|
if (!chart.styledMode) {
|
|
@@ -41625,7 +41715,7 @@ class StackItem {
|
|
|
41625
41715
|
}), { verticalAlign } = alignOptions;
|
|
41626
41716
|
if (label && stackBox) {
|
|
41627
41717
|
const labelBox = label.getBBox(void 0, 0), padding = label.padding;
|
|
41628
|
-
let isJustify =
|
|
41718
|
+
let isJustify = (options.overflow ?? 'justify') === 'justify', visible;
|
|
41629
41719
|
// Reset alignOptions property after justify #12337
|
|
41630
41720
|
alignOptions.x = options.x || 0;
|
|
41631
41721
|
alignOptions.y = options.y || 0;
|
|
@@ -41662,7 +41752,7 @@ class StackItem {
|
|
|
41662
41752
|
rotationOriginY: labelBox.height / 2
|
|
41663
41753
|
});
|
|
41664
41754
|
// Check if the dataLabel should be visible.
|
|
41665
|
-
if (
|
|
41755
|
+
if (((!isJustify && options.crop) ?? true)) {
|
|
41666
41756
|
visible =
|
|
41667
41757
|
isNumber(label.x) &&
|
|
41668
41758
|
isNumber(label.y) &&
|
|
@@ -41696,7 +41786,7 @@ class StackItem {
|
|
|
41696
41786
|
getStackBox(stackBoxProps) {
|
|
41697
41787
|
const stackItem = this, axis = this.axis, chart = axis.chart, { boxTop, defaultX, xOffset, width, boxBottom } = stackBoxProps, totalStackValue = axis.stacking.usePercentage ?
|
|
41698
41788
|
100 :
|
|
41699
|
-
|
|
41789
|
+
(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 ||
|
|
41700
41790
|
(isNumber(axis.min) &&
|
|
41701
41791
|
axis.logarithmic &&
|
|
41702
41792
|
axis.logarithmic.lin2log(axis.min)) ||
|
|
@@ -41809,7 +41899,7 @@ function chartGetStacks() {
|
|
|
41809
41899
|
if (series.options.stacking && series.reserveSpace()) {
|
|
41810
41900
|
series.stackKey = [
|
|
41811
41901
|
series.type,
|
|
41812
|
-
|
|
41902
|
+
(series.options.stack ?? ''),
|
|
41813
41903
|
inverted ? xAxisOptions.top : xAxisOptions.left,
|
|
41814
41904
|
inverted ? xAxisOptions.height : xAxisOptions.width
|
|
41815
41905
|
].join(',');
|
|
@@ -41972,7 +42062,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
|
|
|
41972
42062
|
stack = stacks[key][x];
|
|
41973
42063
|
if (y !== null) {
|
|
41974
42064
|
stack.points[pointKey] = stack.points[series.index] = [
|
|
41975
|
-
|
|
42065
|
+
(stack.cumulative ?? stackThreshold)
|
|
41976
42066
|
];
|
|
41977
42067
|
// Record the base of the stack
|
|
41978
42068
|
if (!defined(stack.cumulative)) {
|
|
@@ -42020,7 +42110,7 @@ function seriesSetStackedPoints(axis, stackingParam) {
|
|
|
42020
42110
|
stack.cumulative = (total || 1) - 1;
|
|
42021
42111
|
}
|
|
42022
42112
|
else {
|
|
42023
|
-
stack.cumulative = correctFloat(
|
|
42113
|
+
stack.cumulative = correctFloat((stack.cumulative ?? stackThreshold) + yNumber);
|
|
42024
42114
|
}
|
|
42025
42115
|
stack.total = total;
|
|
42026
42116
|
if (y !== null) {
|
|
@@ -43035,8 +43125,7 @@ class AreaSeries extends AreaSeries_LineSeries {
|
|
|
43035
43125
|
*/
|
|
43036
43126
|
getGraphPath(points) {
|
|
43037
43127
|
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
|
|
43038
|
-
yAxis.getThreshold(options.threshold)), connectNulls =
|
|
43039
|
-
options.connectNulls, stacking === 'percent'),
|
|
43128
|
+
yAxis.getThreshold(options.threshold)), connectNulls = (options.connectNulls ?? stacking === 'percent'),
|
|
43040
43129
|
// To display null points in underlying stacked series, this
|
|
43041
43130
|
// series graph must be broken, and the area also fall down to
|
|
43042
43131
|
// fill the gap left by the null point. #2069
|
|
@@ -43089,9 +43178,9 @@ class AreaSeries extends AreaSeries_LineSeries {
|
|
|
43089
43178
|
// Treat points with undefined plotY as null (e.g. non-positive
|
|
43090
43179
|
// values on logarithmic axis, #18422)
|
|
43091
43180
|
isNull = points[i].isNull || !defined(points[i].plotY);
|
|
43092
|
-
plotX =
|
|
43181
|
+
plotX = (points[i].rectPlotX ?? points[i].plotX);
|
|
43093
43182
|
yBottom = stacking ?
|
|
43094
|
-
|
|
43183
|
+
(points[i].yBottom ?? translatedThreshold) :
|
|
43095
43184
|
translatedThreshold;
|
|
43096
43185
|
if (!isNull || connectNulls) {
|
|
43097
43186
|
if (!connectNulls) {
|
|
@@ -43429,10 +43518,10 @@ class SplineSeries extends SplineSeries_LineSeries {
|
|
|
43429
43518
|
}
|
|
43430
43519
|
const ret = [
|
|
43431
43520
|
'C',
|
|
43432
|
-
|
|
43433
|
-
|
|
43434
|
-
|
|
43435
|
-
|
|
43521
|
+
(lastPoint.rightContX ?? lastPoint.plotX ?? 0),
|
|
43522
|
+
(lastPoint.rightContY ?? lastPoint.plotY ?? 0),
|
|
43523
|
+
(leftContX ?? plotX ?? 0),
|
|
43524
|
+
(leftContY ?? plotY ?? 0),
|
|
43436
43525
|
plotX,
|
|
43437
43526
|
plotY
|
|
43438
43527
|
];
|
|
@@ -44401,7 +44490,7 @@ class ColumnSeries extends Series_Series {
|
|
|
44401
44490
|
xAxis.tickInterval ||
|
|
44402
44491
|
1), // #2610
|
|
44403
44492
|
xAxis.len // #1535
|
|
44404
|
-
), groupPadding = categoryWidth * options.groupPadding, groupWidth = categoryWidth - 2 * groupPadding, pointOffsetWidth = groupWidth / (columnCount || 1), pointWidth = Math.min(options.maxPointWidth || xAxis.len,
|
|
44493
|
+
), 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,
|
|
44405
44494
|
// #1251, #3737
|
|
44406
44495
|
colIndex = (series.columnIndex || 0) + (reverseStacks ? 1 : 0), pointXOffset = pointPadding +
|
|
44407
44496
|
(groupPadding +
|
|
@@ -44965,7 +45054,7 @@ var DataLabel;
|
|
|
44965
45054
|
// that parts of the align box is inside the plot area
|
|
44966
45055
|
// (#12370). When stacking, it is always inside regardless
|
|
44967
45056
|
// of the option (#15148).
|
|
44968
|
-
|
|
45057
|
+
(options.inside ?? !!this.options.stacking) &&
|
|
44969
45058
|
alignTo &&
|
|
44970
45059
|
chart.isInsidePlot(plotX, inverted ?
|
|
44971
45060
|
alignTo.x + 1 :
|
|
@@ -45068,8 +45157,8 @@ var DataLabel;
|
|
|
45068
45157
|
// zIndex: 20
|
|
45069
45158
|
// }).add();
|
|
45070
45159
|
// chart.renderer.circle(
|
|
45071
|
-
// chart.plotLeft +
|
|
45072
|
-
// chart.plotTop +
|
|
45160
|
+
// chart.plotLeft + (dataLabel.alignAttr.x ?? 0),
|
|
45161
|
+
// chart.plotTop + (dataLabel.alignAttr.y ?? 0),
|
|
45073
45162
|
// 2
|
|
45074
45163
|
// ).attr({
|
|
45075
45164
|
// fill: 'red',
|
|
@@ -45252,7 +45341,7 @@ var DataLabel;
|
|
|
45252
45341
|
if (labelEnabled) {
|
|
45253
45342
|
// Create individual options structure that can be
|
|
45254
45343
|
// extended without affecting others
|
|
45255
|
-
formatString =
|
|
45344
|
+
formatString = (labelOptions[point.formatPrefix + 'Format'] ?? labelOptions.format);
|
|
45256
45345
|
labelText = defined(formatString) ?
|
|
45257
45346
|
DataLabel_format(formatString, point, chart) :
|
|
45258
45347
|
(labelOptions[point.formatPrefix + 'Formatter'] ||
|
|
@@ -45260,7 +45349,9 @@ var DataLabel;
|
|
|
45260
45349
|
rotation = labelOptions.rotation;
|
|
45261
45350
|
if (!chart.styledMode) {
|
|
45262
45351
|
// Determine the color
|
|
45263
|
-
style.color =
|
|
45352
|
+
style.color = (isString(labelOptions.color) ?
|
|
45353
|
+
labelOptions.color :
|
|
45354
|
+
void 0) ?? style.color ?? (isString(series.color) ? series.color : void 0) ?? 'var(--highcharts-neutral-color-100)';
|
|
45264
45355
|
// Get automated contrast color
|
|
45265
45356
|
if (style.color === 'contrast') {
|
|
45266
45357
|
if (backgroundColor !== 'none') {
|
|
@@ -46061,14 +46152,15 @@ class ScatterSeries extends ScatterSeries_LineSeries {
|
|
|
46061
46152
|
return rand - Math.floor(rand);
|
|
46062
46153
|
}
|
|
46063
46154
|
if (jitter) {
|
|
46064
|
-
this.points.forEach(
|
|
46065
|
-
['x', 'y'].forEach(
|
|
46155
|
+
this.points.forEach((point, i) => {
|
|
46156
|
+
['x', 'y'].forEach((dim, j) => {
|
|
46066
46157
|
if (jitter[dim] && !point.isNull) {
|
|
46067
|
-
const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`]
|
|
46068
|
-
axis.transA;
|
|
46158
|
+
const plotProp = `plot${dim.toUpperCase()}`, axis = series[`${dim}Axis`];
|
|
46069
46159
|
if (axis && !axis.logarithmic) {
|
|
46070
46160
|
// Identify the outer bounds of the jitter range
|
|
46071
|
-
|
|
46161
|
+
// (#25054)
|
|
46162
|
+
const translatedJitter = jitter[dim] * axis.transA *
|
|
46163
|
+
(axis.reversed ? -1 : 1), min = (point[plotProp] || 0) - translatedJitter, max = (point[plotProp] || 0) + translatedJitter;
|
|
46072
46164
|
// Find a random position within this range
|
|
46073
46165
|
point[plotProp] = min +
|
|
46074
46166
|
(max - min) * unrandom(i + j * len);
|
|
@@ -46173,11 +46265,13 @@ var CenteredUtilities;
|
|
|
46173
46265
|
innerSize = parseFloat(innerSize);
|
|
46174
46266
|
}
|
|
46175
46267
|
const positions = [
|
|
46176
|
-
|
|
46177
|
-
|
|
46268
|
+
(centerOption?.[0] ?? '50%'),
|
|
46269
|
+
(centerOption?.[1] ?? '50%'),
|
|
46178
46270
|
// Prevent from negative values
|
|
46179
|
-
|
|
46180
|
-
|
|
46271
|
+
((size && size < 0 ? void 0 : options.size) ?? '100%'),
|
|
46272
|
+
((innerSize && innerSize < 0 ?
|
|
46273
|
+
void 0 :
|
|
46274
|
+
options.innerSize || 0) ?? '0%')
|
|
46181
46275
|
];
|
|
46182
46276
|
for (i = 0; i < 4; ++i) {
|
|
46183
46277
|
value = positions[i];
|
|
@@ -46379,7 +46473,7 @@ class PiePoint extends Series_Point {
|
|
|
46379
46473
|
const series = this.series, chart = series.chart;
|
|
46380
46474
|
setAnimation(animation, chart);
|
|
46381
46475
|
// Redraw is true by default
|
|
46382
|
-
redraw =
|
|
46476
|
+
redraw = (redraw ?? true);
|
|
46383
46477
|
this.sliced = this.options.sliced = sliced ?? !this.sliced;
|
|
46384
46478
|
// Update options.data
|
|
46385
46479
|
if (series.options.data) {
|
|
@@ -47184,7 +47278,8 @@ class PieSeries extends Series_Series {
|
|
|
47184
47278
|
// Start values
|
|
47185
47279
|
graphic.attr({
|
|
47186
47280
|
// Animate from inner radius (#779)
|
|
47187
|
-
r:
|
|
47281
|
+
r: point.startR ??
|
|
47282
|
+
(series.center && series.center[3] / 2),
|
|
47188
47283
|
start: startAngleRad,
|
|
47189
47284
|
end: startAngleRad
|
|
47190
47285
|
});
|
|
@@ -47825,7 +47920,7 @@ var PieDataLabel_ColumnDataLabel;
|
|
|
47825
47920
|
labelPosition.computed.x = x;
|
|
47826
47921
|
labelPosition.computed.y = y - topOffset;
|
|
47827
47922
|
// Detect overflowing data labels
|
|
47828
|
-
if (
|
|
47923
|
+
if (dataLabelOptions.crop ?? true) {
|
|
47829
47924
|
dataLabelWidth = dataLabel.getBBox().width;
|
|
47830
47925
|
let sideOverflow;
|
|
47831
47926
|
// Overflow left
|
|
@@ -48341,7 +48436,10 @@ function OverlappingDataLabels_onChartRender() {
|
|
|
48341
48436
|
if (point.visible) {
|
|
48342
48437
|
(point.dataLabels || []).forEach((label) => {
|
|
48343
48438
|
const options = label.options || {};
|
|
48344
|
-
label.labelrank =
|
|
48439
|
+
label.labelrank =
|
|
48440
|
+
options.labelrank ??
|
|
48441
|
+
point.labelrank ??
|
|
48442
|
+
point.shapeArgs?.height; // #4118
|
|
48345
48443
|
// #21725: Sync target positions for generic overlap
|
|
48346
48444
|
// checking. During animations (e.g., toggling a
|
|
48347
48445
|
// point), DOM positions may overlap. We force
|
|
@@ -48830,10 +48928,12 @@ var Responsive;
|
|
|
48830
48928
|
*/
|
|
48831
48929
|
function matchResponsiveRule(rule, matches) {
|
|
48832
48930
|
const condition = rule.condition, fn = condition.callback || function () {
|
|
48833
|
-
return (this.chartWidth <=
|
|
48834
|
-
|
|
48835
|
-
this.
|
|
48836
|
-
|
|
48931
|
+
return (this.chartWidth <=
|
|
48932
|
+
(condition.maxWidth ?? Number.MAX_VALUE) &&
|
|
48933
|
+
this.chartHeight <=
|
|
48934
|
+
(condition.maxHeight ?? Number.MAX_VALUE) &&
|
|
48935
|
+
this.chartWidth >= (condition.minWidth ?? 0) &&
|
|
48936
|
+
this.chartHeight >= (condition.minHeight ?? 0));
|
|
48837
48937
|
};
|
|
48838
48938
|
if (fn.call(this, this)) {
|
|
48839
48939
|
matches.push(rule._id);
|
|
@@ -49115,7 +49215,12 @@ G.SVGElement = SVG_SVGElement;
|
|
|
49115
49215
|
G.SVGRenderer = SVG_SVGRenderer;
|
|
49116
49216
|
G.Templating = Core_Templating;
|
|
49117
49217
|
G.Tick = Axis_Tick;
|
|
49118
|
-
G.Time = Core_Time
|
|
49218
|
+
G.Time = class extends Core_Time {
|
|
49219
|
+
constructor(options, lang) {
|
|
49220
|
+
const defaultOptions = Defaults.getOptions();
|
|
49221
|
+
super(options ?? defaultOptions.time, lang ?? defaultOptions.lang);
|
|
49222
|
+
}
|
|
49223
|
+
};
|
|
49119
49224
|
G.Tooltip = Core_Tooltip;
|
|
49120
49225
|
// Utilities
|
|
49121
49226
|
G.addEvent = addEvent;
|