highcharts 13.0.1 → 13.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bower.json +2 -3
- package/es-modules/Accessibility/A11yI18n.js +4 -4
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +6 -4
- package/es-modules/Accessibility/Components/LegendComponent.js +2 -2
- package/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +13 -10
- package/es-modules/Accessibility/Components/ZoomComponent.js +2 -2
- package/es-modules/Accessibility/FocusBorder.js +2 -2
- package/es-modules/Accessibility/Options/DeprecatedOptions.js +1 -2
- package/es-modules/Core/Animation/AnimationUtilities.js +3 -2
- package/es-modules/Core/Axis/Axis.js +48 -57
- package/es-modules/Core/Axis/Axis3DComposition.js +8 -6
- package/es-modules/Core/Axis/BrokenAxis.js +6 -5
- package/es-modules/Core/Axis/Color/ColorAxis.js +17 -10
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +2 -2
- package/es-modules/Core/Axis/GridAxis.js +4 -4
- package/es-modules/Core/Axis/LogarithmicAxis.js +5 -3
- package/es-modules/Core/Axis/NavigatorAxisComposition.js +2 -2
- package/es-modules/Core/Axis/OrdinalAxis.js +9 -7
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -2
- package/es-modules/Core/Axis/RadialAxis.js +15 -9
- package/es-modules/Core/Axis/ScrollbarAxis.js +3 -3
- package/es-modules/Core/Axis/Stacking/StackItem.js +5 -5
- package/es-modules/Core/Axis/Stacking/StackingAxis.js +4 -4
- package/es-modules/Core/Axis/Tick.js +10 -11
- package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +3 -3
- package/es-modules/Core/Chart/Chart.js +14 -14
- package/es-modules/Core/Chart/Chart3D.js +3 -3
- package/es-modules/Core/Chart/ChartDefaults.js +23 -0
- package/es-modules/Core/Chart/MapChart.js +7 -5
- package/es-modules/Core/Chart/StockChart.js +15 -11
- package/es-modules/Core/Color/Color.js +3 -1
- package/es-modules/Core/Defaults.js +35 -0
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/Legend/Legend.js +16 -12
- package/es-modules/Core/Legend/LegendSymbol.js +2 -2
- package/es-modules/Core/MSPointer.js +2 -2
- package/es-modules/Core/Math3D.js +6 -7
- package/es-modules/Core/Pointer.js +9 -9
- package/es-modules/Core/Renderer/RendererUtilities.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGElement.js +11 -9
- package/es-modules/Core/Renderer/SVG/SVGElement3D.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +5 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +5 -5
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +11 -9
- package/es-modules/Core/Renderer/SVG/Symbols.js +6 -5
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
- package/es-modules/Core/Responsive.js +7 -5
- package/es-modules/Core/Series/DataLabel.js +8 -6
- package/es-modules/Core/Series/OverlappingDataLabels.js +5 -2
- package/es-modules/Core/Series/Point.js +3 -3
- package/es-modules/Core/Series/Series.js +37 -21
- package/es-modules/Core/Series/Series3D.js +2 -2
- package/es-modules/Core/Templating.js +2 -2
- package/es-modules/Core/Tooltip.js +11 -7
- package/es-modules/Core/Utilities.js +4 -3
- package/es-modules/Data/Connectors/DataConnector.js +2 -2
- package/es-modules/Data/Connectors/GoogleSheetsConnector.js +2 -2
- package/es-modules/Data/DataTable.js +17 -0
- package/es-modules/Extensions/Annotations/Annotation.js +4 -4
- package/es-modules/Extensions/Annotations/AnnotationChart.js +2 -2
- package/es-modules/Extensions/Annotations/ControlPoint.js +2 -2
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +2 -2
- package/es-modules/Extensions/Annotations/EventEmitter.js +4 -4
- package/es-modules/Extensions/Annotations/NavigationBindings.js +6 -3
- package/es-modules/Extensions/Annotations/NavigationBindingsUtilities.js +2 -2
- package/es-modules/Extensions/Annotations/Popup/Popup.js +3 -2
- package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +4 -6
- package/es-modules/Extensions/Annotations/Types/Measure.js +3 -3
- package/es-modules/Extensions/Annotations/Types/VerticalLine.js +3 -3
- package/es-modules/Extensions/Boost/BoostChart.js +11 -4
- package/es-modules/Extensions/Boost/BoostSeries.js +8 -9
- package/es-modules/Extensions/Boost/WGLRenderer.js +9 -6
- package/es-modules/Extensions/Boost/WGLShader.js +3 -3
- package/es-modules/Extensions/BoostCanvas.js +2 -2
- package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +5 -4
- package/es-modules/Extensions/DataGrouping/DataGrouping.js +2 -2
- package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +4 -3
- package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +2 -2
- package/es-modules/Extensions/DraggablePoints/DragDropProps.js +2 -3
- package/es-modules/Extensions/ExportData/ExportData.js +17 -16
- package/es-modules/Extensions/Exporting/Exporting.js +7 -7
- package/es-modules/Extensions/MouseWheelZoom/MouseWheelZoom.js +2 -2
- package/es-modules/Extensions/Pane/PaneComposition.js +2 -2
- package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +2 -2
- package/es-modules/Extensions/PatternFill.js +7 -5
- package/es-modules/Extensions/PriceIndication.js +5 -4
- package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +7 -7
- package/es-modules/Extensions/Sonification/MIDI.js +2 -3
- package/es-modules/Extensions/Sonification/Sonification.js +2 -2
- package/es-modules/Extensions/Sonification/SonificationSpeaker.js +3 -2
- package/es-modules/Extensions/Sonification/SynthPatch.js +3 -3
- package/es-modules/Extensions/Sonification/TimelineFromChart.js +11 -11
- package/es-modules/Gantt/Legacy.js +2 -2
- package/es-modules/Gantt/Pathfinder.js +3 -3
- package/es-modules/Gantt/PathfinderAlgorithms.js +4 -3
- package/es-modules/Gantt/Tree.js +1 -1
- package/es-modules/Maps/MapNavigation.js +4 -4
- package/es-modules/Maps/MapPointer.js +2 -2
- package/es-modules/Maps/MapView.js +2 -2
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +8 -6
- package/es-modules/Series/Area/AreaSeries.js +4 -5
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +13 -4
- package/es-modules/Series/Bubble/BubbleLegendItem.js +10 -6
- package/es-modules/Series/Bubble/BubbleSeries.js +10 -9
- package/es-modules/Series/Bullet/BulletSeries.js +17 -10
- package/es-modules/Series/CenteredUtilities.js +7 -5
- package/es-modules/Series/Column/ColumnSeries.js +2 -2
- package/es-modules/Series/Column3D/Column3DComposition.js +6 -5
- package/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +4 -4
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +4 -2
- package/es-modules/Series/Cylinder/CylinderComposition.js +2 -2
- package/es-modules/Series/DataModifyComposition.js +9 -7
- package/es-modules/Series/DotPlot/DotPlotSeries.js +3 -2
- package/es-modules/Series/Dumbbell/DumbbellPoint.js +14 -3
- package/es-modules/Series/Dumbbell/DumbbellSeries.js +24 -7
- package/es-modules/Series/FlowMap/FlowMapPoint.js +5 -3
- package/es-modules/Series/FlowMap/FlowMapSeries.js +17 -9
- package/es-modules/Series/Funnel/FunnelSeries.js +2 -2
- package/es-modules/Series/Funnel3D/Funnel3DSeries.js +7 -5
- package/es-modules/Series/Gauge/GaugeSeries.js +2 -2
- package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +4 -4
- package/es-modules/Series/Heatmap/HeatmapPoint.js +6 -6
- package/es-modules/Series/Heatmap/HeatmapPointOptions.js +12 -0
- package/es-modules/Series/Heatmap/HeatmapSeries.js +13 -13
- package/es-modules/Series/Heatmap/HeatmapSeriesOptions.js +12 -0
- package/es-modules/Series/Histogram/HistogramPoint.js +17 -0
- package/es-modules/Series/Histogram/HistogramPointOptions.js +12 -0
- package/es-modules/Series/Histogram/HistogramSeries.js +14 -2
- package/es-modules/Series/Histogram/HistogramSeriesOptions.js +12 -0
- package/es-modules/Series/InterpolationUtilities.js +5 -5
- package/es-modules/Series/Item/ItemPointOptions.js +14 -0
- package/es-modules/Series/Item/ItemSeries.js +18 -6
- package/es-modules/Series/Item/ItemSeriesOptions.js +14 -0
- package/es-modules/Series/Map/MapPoint.js +5 -3
- package/es-modules/Series/Map/MapSeries.js +5 -8
- package/es-modules/Series/Networkgraph/NetworkgraphPoint.js +3 -3
- package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -2
- package/es-modules/Series/Networkgraph/ReingoldFruchtermanLayout.js +18 -9
- package/es-modules/Series/NodesComposition.js +9 -10
- package/es-modules/Series/Organization/OrganizationPoint.js +3 -2
- package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -3
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +5 -5
- package/es-modules/Series/Pictorial/PictorialSeries.js +4 -2
- package/es-modules/Series/Pie/PieDataLabel.js +2 -2
- package/es-modules/Series/Pie/PiePoint.js +2 -2
- package/es-modules/Series/Pie/PieSeries.js +3 -2
- package/es-modules/Series/Pie3D/Pie3DSeries.js +8 -4
- package/es-modules/Series/PolarComposition.js +8 -7
- package/es-modules/Series/Sankey/SankeySeries.js +11 -5
- package/es-modules/Series/Scatter/ScatterSeries.js +6 -5
- package/es-modules/Series/SolidGauge/SolidGaugeSeries.js +2 -2
- package/es-modules/Series/Spline/SplineSeries.js +5 -5
- package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +8 -6
- package/es-modules/Series/Tilemap/TilemapShapes.js +2 -2
- package/es-modules/Series/Timeline/TimelinePoint.js +2 -2
- package/es-modules/Series/Timeline/TimelineSeries.js +4 -3
- package/es-modules/Series/TreeUtilities.js +16 -7
- package/es-modules/Series/Treegraph/TreegraphLink.js +2 -2
- package/es-modules/Series/Treemap/TreemapPoint.js +2 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +14 -11
- package/es-modules/Series/VariablePie/VariablePieSeries.js +6 -4
- package/es-modules/Series/Variwide/VariwideSeries.js +2 -2
- package/es-modules/Series/Waterfall/WaterfallSeries.js +2 -2
- package/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
- package/es-modules/Shared/TimeBase.js +8 -2
- package/es-modules/Shared/Utilities.js +9 -7
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +3 -3
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +4 -3
- package/es-modules/Stock/Indicators/RSI/RSIIndicator.js +1 -1
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +2 -2
- package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +4 -4
- package/es-modules/Stock/Navigator/Navigator.js +26 -26
- package/es-modules/Stock/Navigator/StandaloneNavigator.js +4 -4
- package/es-modules/Stock/RangeSelector/RangeSelector.js +15 -11
- package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +3 -3
- package/es-modules/Stock/Scrollbar/Scrollbar.js +8 -7
- package/es-modules/Stock/StockTools/StockToolbar.js +5 -5
- package/es-modules/Stock/StockTools/StockTools.js +2 -2
- package/es-modules/Stock/StockTools/StockToolsGui.js +4 -2
- package/es-modules/masters/highcharts-3d.src.js +1 -1
- package/es-modules/masters/highcharts-autoload.src.js +1 -1
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +1 -1
- package/es-modules/masters/highcharts.src.js +7 -2
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/i18n/fr-FR.src.d.ts +1 -1
- package/es-modules/masters/i18n/fr-FR.src.js +1 -1
- package/es-modules/masters/i18n/nb-NO.src.d.ts +1 -1
- package/es-modules/masters/i18n/nb-NO.src.js +1 -1
- package/es-modules/masters/i18n/zh-CN.src.d.ts +1 -1
- package/es-modules/masters/i18n/zh-CN.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/es-modules/masters/indicators/ao.src.js +1 -1
- package/es-modules/masters/indicators/apo.src.js +1 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/es-modules/masters/indicators/aroon.src.js +1 -1
- package/es-modules/masters/indicators/atr.src.js +1 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/es-modules/masters/indicators/cci.src.js +1 -1
- package/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/es-modules/masters/indicators/cmf.src.js +1 -1
- package/es-modules/masters/indicators/cmo.src.js +1 -1
- package/es-modules/masters/indicators/dema.src.js +1 -1
- package/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/es-modules/masters/indicators/dmi.src.js +1 -1
- package/es-modules/masters/indicators/dpo.src.js +1 -1
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/es-modules/masters/indicators/indicators.src.js +1 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/es-modules/masters/indicators/klinger.src.js +1 -1
- package/es-modules/masters/indicators/macd.src.js +1 -1
- package/es-modules/masters/indicators/mfi.src.js +1 -1
- package/es-modules/masters/indicators/momentum.src.js +1 -1
- package/es-modules/masters/indicators/natr.src.js +1 -1
- package/es-modules/masters/indicators/obv.src.js +1 -1
- package/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/es-modules/masters/indicators/ppo.src.js +1 -1
- package/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/es-modules/masters/indicators/psar.src.js +1 -1
- package/es-modules/masters/indicators/regressions.src.js +1 -1
- package/es-modules/masters/indicators/roc.src.js +1 -1
- package/es-modules/masters/indicators/rsi.src.js +1 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/es-modules/masters/indicators/tema.src.js +1 -1
- package/es-modules/masters/indicators/trendline.src.js +1 -1
- package/es-modules/masters/indicators/trix.src.js +1 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/es-modules/masters/indicators/vwap.src.js +1 -1
- package/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/es-modules/masters/indicators/wma.src.js +1 -1
- package/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/es-modules/masters/modules/accessibility.src.js +1 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +1 -1
- package/es-modules/masters/modules/annotations.src.js +1 -1
- package/es-modules/masters/modules/arc-diagram.src.js +1 -1
- package/es-modules/masters/modules/arrow-symbols.src.js +1 -1
- package/es-modules/masters/modules/boost-canvas.src.js +1 -1
- package/es-modules/masters/modules/boost.src.js +1 -1
- package/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/es-modules/masters/modules/bullet.src.js +1 -1
- package/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/es-modules/masters/modules/contour.src.js +1 -1
- package/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/data-sorting.src.js +1 -1
- package/es-modules/masters/modules/data-tools.src.js +1 -1
- package/es-modules/masters/modules/data.src.js +1 -1
- package/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/es-modules/masters/modules/debugger.src.js +1 -1
- package/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/es-modules/masters/modules/dotplot.src.js +1 -1
- package/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/es-modules/masters/modules/drilldown.src.js +1 -1
- package/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/es-modules/masters/modules/export-data.src.js +1 -1
- package/es-modules/masters/modules/exporting.src.js +1 -1
- package/es-modules/masters/modules/flowmap.src.js +1 -1
- package/es-modules/masters/modules/full-screen.src.js +1 -1
- package/es-modules/masters/modules/funnel.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/es-modules/masters/modules/gantt.src.js +1 -1
- package/es-modules/masters/modules/geoheatmap.src.js +1 -1
- package/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/es-modules/masters/modules/heatmap.src.js +1 -1
- package/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/es-modules/masters/modules/item-series.src.js +1 -1
- package/es-modules/masters/modules/lollipop.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -1
- package/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
- package/es-modules/masters/modules/navigator.src.js +1 -1
- package/es-modules/masters/modules/networkgraph.src.js +1 -1
- package/es-modules/masters/modules/no-data-to-display.src.js +1 -1
- package/es-modules/masters/modules/non-cartesian-zoom.src.js +1 -1
- package/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/es-modules/masters/modules/organization.src.js +1 -1
- package/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
- package/es-modules/masters/modules/pareto.src.js +1 -1
- package/es-modules/masters/modules/pathfinder.src.js +1 -1
- package/es-modules/masters/modules/pattern-fill.src.js +1 -1
- package/es-modules/masters/modules/pictorial.src.js +1 -1
- package/es-modules/masters/modules/pointandfigure.src.js +1 -1
- package/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/es-modules/masters/modules/pyramid3d.src.js +1 -1
- package/es-modules/masters/modules/renko.src.js +1 -1
- package/es-modules/masters/modules/sankey.src.js +1 -1
- package/es-modules/masters/modules/series-label.src.js +1 -1
- package/es-modules/masters/modules/series-on-point.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/sonification.src.js +1 -1
- package/es-modules/masters/modules/static-scale.src.js +1 -1
- package/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/es-modules/masters/modules/stock.src.js +1 -1
- package/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/es-modules/masters/modules/sunburst.src.js +1 -1
- package/es-modules/masters/modules/textpath.src.js +1 -1
- package/es-modules/masters/modules/tiledwebmap.src.js +1 -1
- package/es-modules/masters/modules/tilemap.src.js +1 -1
- package/es-modules/masters/modules/timeline.src.js +1 -1
- package/es-modules/masters/modules/treegraph.src.js +1 -1
- package/es-modules/masters/modules/treegrid.src.js +1 -1
- package/es-modules/masters/modules/treemap.src.js +1 -1
- package/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/es-modules/masters/modules/variwide.src.js +1 -1
- package/es-modules/masters/modules/vector.src.js +1 -1
- package/es-modules/masters/modules/venn.src.js +1 -1
- package/es-modules/masters/modules/windbarb.src.js +1 -1
- package/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/es-modules/masters/modules/xrange.src.js +1 -1
- package/es-modules/masters/standalone-navigator.src.js +1 -1
- package/es-modules/masters/themes/adaptive.src.js +1 -1
- package/es-modules/masters/themes/avocado.src.js +1 -1
- package/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/es-modules/masters/themes/grid-light.src.js +1 -1
- package/es-modules/masters/themes/high-contrast.src.js +1 -1
- package/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/es-modules/masters/themes/sunset.src.js +1 -1
- package/es-modules/tsconfig.tsbuildinfo +1 -1
- package/esm/highcharts-3d.js +2 -2
- package/esm/highcharts-3d.src.js +40 -32
- package/esm/highcharts-autoload.js +1 -1
- package/esm/highcharts-autoload.src.js +1 -1
- package/esm/highcharts-gantt.js +1 -1
- package/esm/highcharts-gantt.src.js +1 -1
- package/esm/highcharts-more.js +2 -2
- package/esm/highcharts-more.src.js +90 -56
- package/esm/highcharts.js +4 -4
- package/esm/highcharts.src.js +312 -207
- package/esm/highmaps.js +1 -1
- package/esm/highmaps.src.js +1 -1
- package/esm/highstock.js +1 -1
- package/esm/highstock.src.js +1 -1
- package/esm/i18n/fr-FR.js +1 -1
- package/esm/i18n/fr-FR.src.js +1 -1
- package/esm/i18n/nb-NO.js +1 -1
- package/esm/i18n/nb-NO.src.js +1 -1
- package/esm/i18n/zh-CN.js +1 -1
- package/esm/i18n/zh-CN.src.js +1 -1
- package/esm/indicators/acceleration-bands.js +1 -1
- package/esm/indicators/acceleration-bands.src.js +1 -1
- package/esm/indicators/accumulation-distribution.js +1 -1
- package/esm/indicators/accumulation-distribution.src.js +1 -1
- package/esm/indicators/ao.js +1 -1
- package/esm/indicators/ao.src.js +1 -1
- package/esm/indicators/apo.js +1 -1
- package/esm/indicators/apo.src.js +1 -1
- package/esm/indicators/aroon-oscillator.js +1 -1
- package/esm/indicators/aroon-oscillator.src.js +1 -1
- package/esm/indicators/aroon.js +2 -2
- package/esm/indicators/aroon.src.js +3 -3
- package/esm/indicators/atr.js +1 -1
- package/esm/indicators/atr.src.js +1 -1
- package/esm/indicators/bollinger-bands.js +1 -1
- package/esm/indicators/bollinger-bands.src.js +1 -1
- package/esm/indicators/cci.js +1 -1
- package/esm/indicators/cci.src.js +1 -1
- package/esm/indicators/chaikin.js +1 -1
- package/esm/indicators/chaikin.src.js +1 -1
- package/esm/indicators/cmf.js +1 -1
- package/esm/indicators/cmf.src.js +1 -1
- package/esm/indicators/cmo.js +1 -1
- package/esm/indicators/cmo.src.js +1 -1
- package/esm/indicators/dema.js +1 -1
- package/esm/indicators/dema.src.js +1 -1
- package/esm/indicators/disparity-index.js +1 -1
- package/esm/indicators/disparity-index.src.js +1 -1
- package/esm/indicators/dmi.js +1 -1
- package/esm/indicators/dmi.src.js +1 -1
- package/esm/indicators/dpo.js +2 -2
- package/esm/indicators/dpo.src.js +4 -3
- package/esm/indicators/ichimoku-kinko-hyo.js +1 -1
- package/esm/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/esm/indicators/indicators-all.js +2 -2
- package/esm/indicators/indicators-all.src.js +8 -7
- package/esm/indicators/indicators.js +2 -2
- package/esm/indicators/indicators.src.js +2 -2
- package/esm/indicators/keltner-channels.js +1 -1
- package/esm/indicators/keltner-channels.src.js +1 -1
- package/esm/indicators/klinger.js +1 -1
- package/esm/indicators/klinger.src.js +1 -1
- package/esm/indicators/macd.js +1 -1
- package/esm/indicators/macd.src.js +1 -1
- package/esm/indicators/mfi.js +1 -1
- package/esm/indicators/mfi.src.js +1 -1
- package/esm/indicators/momentum.js +1 -1
- package/esm/indicators/momentum.src.js +1 -1
- package/esm/indicators/natr.js +1 -1
- package/esm/indicators/natr.src.js +1 -1
- package/esm/indicators/obv.js +1 -1
- package/esm/indicators/obv.src.js +1 -1
- package/esm/indicators/pivot-points.js +1 -1
- package/esm/indicators/pivot-points.src.js +1 -1
- package/esm/indicators/ppo.js +1 -1
- package/esm/indicators/ppo.src.js +1 -1
- package/esm/indicators/price-channel.js +1 -1
- package/esm/indicators/price-channel.src.js +1 -1
- package/esm/indicators/price-envelopes.js +1 -1
- package/esm/indicators/price-envelopes.src.js +1 -1
- package/esm/indicators/psar.js +1 -1
- package/esm/indicators/psar.src.js +1 -1
- package/esm/indicators/regressions.js +1 -1
- package/esm/indicators/regressions.src.js +1 -1
- package/esm/indicators/roc.js +1 -1
- package/esm/indicators/roc.src.js +1 -1
- package/esm/indicators/rsi.js +1 -1
- package/esm/indicators/rsi.src.js +2 -2
- package/esm/indicators/slow-stochastic.js +1 -1
- package/esm/indicators/slow-stochastic.src.js +1 -1
- package/esm/indicators/stochastic.js +1 -1
- package/esm/indicators/stochastic.src.js +1 -1
- package/esm/indicators/supertrend.js +1 -1
- package/esm/indicators/supertrend.src.js +1 -1
- package/esm/indicators/tema.js +1 -1
- package/esm/indicators/tema.src.js +1 -1
- package/esm/indicators/trendline.js +1 -1
- package/esm/indicators/trendline.src.js +1 -1
- package/esm/indicators/trix.js +1 -1
- package/esm/indicators/trix.src.js +1 -1
- package/esm/indicators/volume-by-price.js +1 -1
- package/esm/indicators/volume-by-price.src.js +1 -1
- package/esm/indicators/vwap.js +1 -1
- package/esm/indicators/vwap.src.js +1 -1
- package/esm/indicators/williams-r.js +1 -1
- package/esm/indicators/williams-r.src.js +1 -1
- package/esm/indicators/wma.js +1 -1
- package/esm/indicators/wma.src.js +1 -1
- package/esm/indicators/zigzag.js +1 -1
- package/esm/indicators/zigzag.src.js +1 -1
- package/esm/modules/accessibility.js +2 -2
- package/esm/modules/accessibility.src.js +69 -63
- package/esm/modules/annotations-advanced.js +3 -3
- package/esm/modules/annotations-advanced.src.js +25 -23
- package/esm/modules/annotations.js +3 -3
- package/esm/modules/annotations.src.js +21 -19
- package/esm/modules/arc-diagram.js +2 -2
- package/esm/modules/arc-diagram.src.js +16 -15
- package/esm/modules/arrow-symbols.js +1 -1
- package/esm/modules/arrow-symbols.src.js +1 -1
- package/esm/modules/boost-canvas.js +2 -2
- package/esm/modules/boost-canvas.src.js +29 -20
- package/esm/modules/boost.js +2 -2
- package/esm/modules/boost.src.js +28 -19
- package/esm/modules/broken-axis.js +2 -2
- package/esm/modules/broken-axis.src.js +6 -5
- package/esm/modules/bullet.js +2 -2
- package/esm/modules/bullet.src.js +17 -10
- package/esm/modules/coloraxis.js +2 -2
- package/esm/modules/coloraxis.src.js +18 -11
- package/esm/modules/contour.js +1 -1
- package/esm/modules/contour.src.js +1 -1
- package/esm/modules/current-date-indicator.js +1 -1
- package/esm/modules/current-date-indicator.src.js +1 -1
- package/esm/modules/cylinder.js +2 -2
- package/esm/modules/cylinder.src.js +9 -10
- package/esm/modules/data-sorting.js +1 -1
- package/esm/modules/data-sorting.src.js +1 -1
- package/esm/modules/data-tools.js +2 -2
- package/esm/modules/data-tools.src.js +20 -3
- package/esm/modules/data.js +1 -1
- package/esm/modules/data.src.js +1 -1
- package/esm/modules/datagrouping.js +2 -2
- package/esm/modules/datagrouping.src.js +6 -5
- package/esm/modules/debugger.js +1 -1
- package/esm/modules/debugger.src.js +1 -1
- package/esm/modules/dependency-wheel.js +1 -1
- package/esm/modules/dependency-wheel.src.js +1 -1
- package/esm/modules/dotplot.js +2 -2
- package/esm/modules/dotplot.src.js +3 -2
- package/esm/modules/drag-panes.js +1 -1
- package/esm/modules/drag-panes.src.js +1 -1
- package/esm/modules/draggable-points.js +2 -2
- package/esm/modules/draggable-points.src.js +2 -3
- package/esm/modules/drilldown.js +2 -2
- package/esm/modules/drilldown.src.js +5 -4
- package/esm/modules/dumbbell.js +2 -2
- package/esm/modules/dumbbell.src.js +37 -9
- package/esm/modules/export-data.js +2 -2
- package/esm/modules/export-data.src.js +17 -16
- package/esm/modules/exporting.js +2 -2
- package/esm/modules/exporting.src.js +7 -7
- package/esm/modules/flowmap.js +2 -2
- package/esm/modules/flowmap.src.js +21 -11
- package/esm/modules/full-screen.js +1 -1
- package/esm/modules/full-screen.src.js +1 -1
- package/esm/modules/funnel.js +2 -2
- package/esm/modules/funnel.src.js +2 -2
- package/esm/modules/funnel3d.js +2 -2
- package/esm/modules/funnel3d.src.js +14 -13
- package/esm/modules/gantt.js +2 -2
- package/esm/modules/gantt.src.js +93 -76
- package/esm/modules/geoheatmap.js +2 -2
- package/esm/modules/geoheatmap.src.js +8 -8
- package/esm/modules/grid-axis.js +2 -2
- package/esm/modules/grid-axis.src.js +4 -4
- package/esm/modules/heatmap.js +2 -2
- package/esm/modules/heatmap.src.js +22 -22
- package/esm/modules/heikinashi.js +1 -1
- package/esm/modules/heikinashi.src.js +1 -1
- package/esm/modules/histogram-bellcurve.js +1 -1
- package/esm/modules/histogram-bellcurve.src.js +15 -3
- package/esm/modules/hollowcandlestick.js +1 -1
- package/esm/modules/hollowcandlestick.src.js +1 -1
- package/esm/modules/item-series.js +2 -2
- package/esm/modules/item-series.src.js +18 -6
- package/esm/modules/lollipop.js +1 -1
- package/esm/modules/lollipop.src.js +1 -1
- package/esm/modules/map.js +2 -2
- package/esm/modules/map.src.js +65 -57
- package/esm/modules/marker-clusters.js +1 -1
- package/esm/modules/marker-clusters.src.js +1 -1
- package/esm/modules/mouse-wheel-zoom.js +2 -2
- package/esm/modules/mouse-wheel-zoom.src.js +3 -3
- package/esm/modules/navigator.js +2 -2
- package/esm/modules/navigator.src.js +47 -45
- package/esm/modules/networkgraph.js +2 -2
- package/esm/modules/networkgraph.src.js +31 -21
- package/esm/modules/no-data-to-display.js +1 -1
- package/esm/modules/no-data-to-display.src.js +1 -1
- package/esm/modules/non-cartesian-zoom.js +1 -1
- package/esm/modules/non-cartesian-zoom.src.js +1 -1
- package/esm/modules/offline-exporting.js +1 -1
- package/esm/modules/offline-exporting.src.js +1 -1
- package/esm/modules/organization.js +2 -2
- package/esm/modules/organization.src.js +3 -2
- package/esm/modules/parallel-coordinates.js +2 -2
- package/esm/modules/parallel-coordinates.src.js +2 -2
- package/esm/modules/pareto.js +1 -1
- package/esm/modules/pareto.src.js +1 -1
- package/esm/modules/pathfinder.js +2 -2
- package/esm/modules/pathfinder.src.js +7 -6
- package/esm/modules/pattern-fill.js +2 -2
- package/esm/modules/pattern-fill.src.js +7 -5
- package/esm/modules/pictorial.js +2 -2
- package/esm/modules/pictorial.src.js +10 -6
- package/esm/modules/pointandfigure.js +1 -1
- package/esm/modules/pointandfigure.src.js +1 -1
- package/esm/modules/price-indicator.js +2 -2
- package/esm/modules/price-indicator.src.js +5 -4
- package/esm/modules/pyramid3d.js +1 -1
- package/esm/modules/pyramid3d.src.js +1 -1
- package/esm/modules/renko.js +1 -1
- package/esm/modules/renko.src.js +1 -1
- package/esm/modules/sankey.js +2 -2
- package/esm/modules/sankey.src.js +34 -20
- package/esm/modules/series-label.js +2 -2
- package/esm/modules/series-label.src.js +7 -7
- package/esm/modules/series-on-point.js +1 -1
- package/esm/modules/series-on-point.src.js +1 -1
- package/esm/modules/solid-gauge.js +2 -2
- package/esm/modules/solid-gauge.src.js +2 -2
- package/esm/modules/sonification.js +2 -2
- package/esm/modules/sonification.src.js +19 -19
- package/esm/modules/static-scale.js +1 -1
- package/esm/modules/static-scale.src.js +1 -1
- package/esm/modules/stock-tools.js +3 -3
- package/esm/modules/stock-tools.src.js +15 -10
- package/esm/modules/stock.js +2 -2
- package/esm/modules/stock.src.js +90 -76
- package/esm/modules/streamgraph.js +1 -1
- package/esm/modules/streamgraph.src.js +1 -1
- package/esm/modules/sunburst.js +2 -2
- package/esm/modules/sunburst.src.js +41 -26
- package/esm/modules/textpath.js +1 -1
- package/esm/modules/textpath.src.js +1 -1
- package/esm/modules/tiledwebmap.js +2 -2
- package/esm/modules/tiledwebmap.src.js +8 -6
- package/esm/modules/tilemap.js +2 -2
- package/esm/modules/tilemap.src.js +3 -3
- package/esm/modules/timeline.js +2 -2
- package/esm/modules/timeline.src.js +5 -4
- package/esm/modules/treegraph.js +2 -2
- package/esm/modules/treegraph.src.js +17 -8
- package/esm/modules/treegrid.js +2 -2
- package/esm/modules/treegrid.src.js +28 -18
- package/esm/modules/treemap.js +2 -2
- package/esm/modules/treemap.src.js +35 -22
- package/esm/modules/variable-pie.js +2 -2
- package/esm/modules/variable-pie.src.js +6 -4
- package/esm/modules/variwide.js +2 -2
- package/esm/modules/variwide.src.js +2 -2
- package/esm/modules/vector.js +1 -1
- package/esm/modules/vector.src.js +1 -1
- package/esm/modules/venn.js +1 -1
- package/esm/modules/venn.src.js +1 -1
- package/esm/modules/windbarb.js +2 -2
- package/esm/modules/windbarb.src.js +2 -2
- package/esm/modules/wordcloud.js +1 -1
- package/esm/modules/wordcloud.src.js +1 -1
- package/esm/modules/xrange.js +1 -1
- package/esm/modules/xrange.src.js +1 -1
- package/esm/standalone-navigator.js +4 -4
- package/esm/standalone-navigator.src.js +355 -249
- package/esm/themes/adaptive.js +1 -1
- package/esm/themes/adaptive.src.js +1 -1
- package/esm/themes/avocado.js +1 -1
- package/esm/themes/avocado.src.js +1 -1
- package/esm/themes/dark-unica.js +1 -1
- package/esm/themes/dark-unica.src.js +1 -1
- package/esm/themes/grid-light.js +1 -1
- package/esm/themes/grid-light.src.js +1 -1
- package/esm/themes/high-contrast.js +1 -1
- package/esm/themes/high-contrast.src.js +1 -1
- package/esm/themes/sand-signika.js +1 -1
- package/esm/themes/sand-signika.src.js +1 -1
- package/esm/themes/sunset.js +1 -1
- package/esm/themes/sunset.src.js +1 -1
- package/highcharts-3d.js +2 -2
- package/highcharts-3d.src.js +40 -32
- package/highcharts-autoload.d.ts +8 -2
- package/highcharts-autoload.js +4 -4
- package/highcharts-autoload.src.d.ts +8 -2
- package/highcharts-autoload.src.js +313 -208
- package/highcharts-gantt.js +4 -4
- package/highcharts-gantt.src.js +404 -283
- package/highcharts-more.js +2 -2
- package/highcharts-more.src.js +90 -56
- package/highcharts.d.ts +61 -4
- package/highcharts.js +4 -4
- package/highcharts.src.d.ts +61 -4
- package/highcharts.src.js +312 -207
- package/highmaps.js +4 -4
- package/highmaps.src.js +390 -272
- package/highstock.js +4 -4
- package/highstock.src.js +413 -293
- package/i18n/fr-FR.js +1 -1
- package/i18n/fr-FR.src.js +1 -1
- package/i18n/nb-NO.js +1 -1
- package/i18n/nb-NO.src.js +1 -1
- package/i18n/zh-CN.js +1 -1
- package/i18n/zh-CN.src.js +1 -1
- package/indicators/acceleration-bands.js +1 -1
- package/indicators/acceleration-bands.src.js +1 -1
- package/indicators/accumulation-distribution.js +1 -1
- package/indicators/accumulation-distribution.src.js +1 -1
- package/indicators/ao.js +1 -1
- package/indicators/ao.src.js +1 -1
- package/indicators/apo.js +1 -1
- package/indicators/apo.src.js +1 -1
- package/indicators/aroon-oscillator.js +1 -1
- package/indicators/aroon-oscillator.src.js +1 -1
- package/indicators/aroon.js +2 -2
- package/indicators/aroon.src.js +3 -3
- package/indicators/atr.js +1 -1
- package/indicators/atr.src.js +1 -1
- package/indicators/bollinger-bands.js +1 -1
- package/indicators/bollinger-bands.src.js +1 -1
- package/indicators/cci.js +1 -1
- package/indicators/cci.src.js +1 -1
- package/indicators/chaikin.js +1 -1
- package/indicators/chaikin.src.js +1 -1
- package/indicators/cmf.js +1 -1
- package/indicators/cmf.src.js +1 -1
- package/indicators/cmo.js +1 -1
- package/indicators/cmo.src.js +1 -1
- package/indicators/dema.js +1 -1
- package/indicators/dema.src.js +1 -1
- package/indicators/disparity-index.js +1 -1
- package/indicators/disparity-index.src.js +1 -1
- package/indicators/dmi.js +1 -1
- package/indicators/dmi.src.js +1 -1
- package/indicators/dpo.js +2 -2
- package/indicators/dpo.src.js +4 -3
- package/indicators/ichimoku-kinko-hyo.js +1 -1
- package/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/indicators/indicators-all.js +2 -2
- package/indicators/indicators-all.src.js +8 -7
- package/indicators/indicators.js +2 -2
- package/indicators/indicators.src.js +2 -2
- package/indicators/keltner-channels.js +1 -1
- package/indicators/keltner-channels.src.js +1 -1
- package/indicators/klinger.js +1 -1
- package/indicators/klinger.src.js +1 -1
- package/indicators/macd.js +1 -1
- package/indicators/macd.src.js +1 -1
- package/indicators/mfi.js +1 -1
- package/indicators/mfi.src.js +1 -1
- package/indicators/momentum.js +1 -1
- package/indicators/momentum.src.js +1 -1
- package/indicators/natr.js +1 -1
- package/indicators/natr.src.js +1 -1
- package/indicators/obv.js +1 -1
- package/indicators/obv.src.js +1 -1
- package/indicators/pivot-points.js +1 -1
- package/indicators/pivot-points.src.js +1 -1
- package/indicators/ppo.js +1 -1
- package/indicators/ppo.src.js +1 -1
- package/indicators/price-channel.js +1 -1
- package/indicators/price-channel.src.js +1 -1
- package/indicators/price-envelopes.js +1 -1
- package/indicators/price-envelopes.src.js +1 -1
- package/indicators/psar.js +1 -1
- package/indicators/psar.src.js +1 -1
- package/indicators/regressions.js +1 -1
- package/indicators/regressions.src.js +1 -1
- package/indicators/roc.js +1 -1
- package/indicators/roc.src.js +1 -1
- package/indicators/rsi.js +1 -1
- package/indicators/rsi.src.js +2 -2
- package/indicators/slow-stochastic.js +1 -1
- package/indicators/slow-stochastic.src.js +1 -1
- package/indicators/stochastic.js +1 -1
- package/indicators/stochastic.src.js +1 -1
- package/indicators/supertrend.js +1 -1
- package/indicators/supertrend.src.js +1 -1
- package/indicators/tema.js +1 -1
- package/indicators/tema.src.js +1 -1
- package/indicators/trendline.js +1 -1
- package/indicators/trendline.src.js +1 -1
- package/indicators/trix.js +1 -1
- package/indicators/trix.src.js +1 -1
- package/indicators/volume-by-price.js +1 -1
- package/indicators/volume-by-price.src.js +1 -1
- package/indicators/vwap.js +1 -1
- package/indicators/vwap.src.js +1 -1
- package/indicators/williams-r.js +1 -1
- package/indicators/williams-r.src.js +1 -1
- package/indicators/wma.js +1 -1
- package/indicators/wma.src.js +1 -1
- package/indicators/zigzag.js +1 -1
- package/indicators/zigzag.src.js +1 -1
- package/modules/accessibility.js +2 -2
- package/modules/accessibility.src.js +69 -63
- package/modules/annotations-advanced.js +3 -3
- package/modules/annotations-advanced.src.js +25 -23
- package/modules/annotations.js +3 -3
- package/modules/annotations.src.js +21 -19
- package/modules/arc-diagram.js +2 -2
- package/modules/arc-diagram.src.js +16 -15
- package/modules/arrow-symbols.js +1 -1
- package/modules/arrow-symbols.src.js +1 -1
- package/modules/boost-canvas.js +2 -2
- package/modules/boost-canvas.src.js +29 -20
- package/modules/boost.js +2 -2
- package/modules/boost.src.js +28 -19
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.src.js +6 -5
- package/modules/bullet.js +2 -2
- package/modules/bullet.src.js +17 -10
- package/modules/coloraxis.js +2 -2
- package/modules/coloraxis.src.js +18 -11
- package/modules/contour.js +4 -4
- package/modules/contour.src.js +19 -12
- package/modules/current-date-indicator.js +1 -1
- package/modules/current-date-indicator.src.js +1 -1
- package/modules/cylinder.js +2 -2
- package/modules/cylinder.src.js +9 -10
- package/modules/data-sorting.js +1 -1
- package/modules/data-sorting.src.js +1 -1
- package/modules/data-tools.js +2 -2
- package/modules/data-tools.src.js +20 -3
- package/modules/data.js +1 -1
- package/modules/data.src.js +1 -1
- package/modules/datagrouping.js +2 -2
- package/modules/datagrouping.src.js +6 -5
- package/modules/debugger.js +1 -1
- package/modules/debugger.src.js +1 -1
- package/modules/dependency-wheel.js +1 -1
- package/modules/dependency-wheel.src.js +1 -1
- package/modules/dotplot.js +2 -2
- package/modules/dotplot.src.js +3 -2
- package/modules/drag-panes.js +1 -1
- package/modules/drag-panes.src.js +1 -1
- package/modules/draggable-points.js +2 -2
- package/modules/draggable-points.src.js +2 -3
- package/modules/drilldown.js +2 -2
- package/modules/drilldown.src.js +5 -4
- package/modules/dumbbell.js +2 -2
- package/modules/dumbbell.src.js +37 -9
- package/modules/export-data.js +2 -2
- package/modules/export-data.src.js +17 -16
- package/modules/exporting.js +2 -2
- package/modules/exporting.src.js +7 -7
- package/modules/flowmap.js +2 -2
- package/modules/flowmap.src.js +21 -11
- package/modules/full-screen.js +1 -1
- package/modules/full-screen.src.js +1 -1
- package/modules/funnel.js +2 -2
- package/modules/funnel.src.js +2 -2
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.src.js +14 -13
- package/modules/gantt.js +6 -6
- package/modules/gantt.src.js +96 -79
- package/modules/geoheatmap.d.ts +0 -12
- package/modules/geoheatmap.js +2 -2
- package/modules/geoheatmap.src.d.ts +0 -12
- package/modules/geoheatmap.src.js +8 -8
- package/modules/grid-axis.js +2 -2
- package/modules/grid-axis.src.js +4 -4
- package/modules/heatmap.d.ts +0 -12
- package/modules/heatmap.js +4 -4
- package/modules/heatmap.src.d.ts +0 -12
- package/modules/heatmap.src.js +40 -33
- package/modules/heikinashi.js +1 -1
- package/modules/heikinashi.src.js +1 -1
- package/modules/histogram-bellcurve.js +1 -1
- package/modules/histogram-bellcurve.src.js +15 -3
- package/modules/hollowcandlestick.js +1 -1
- package/modules/hollowcandlestick.src.js +1 -1
- package/modules/item-series.js +2 -2
- package/modules/item-series.src.js +18 -6
- package/modules/lollipop.js +1 -1
- package/modules/lollipop.src.js +1 -1
- package/modules/map.d.ts +0 -12
- package/modules/map.js +4 -4
- package/modules/map.src.d.ts +0 -12
- package/modules/map.src.js +83 -68
- package/modules/marker-clusters.js +1 -1
- package/modules/marker-clusters.src.js +1 -1
- package/modules/mouse-wheel-zoom.js +2 -2
- package/modules/mouse-wheel-zoom.src.js +3 -3
- package/modules/navigator.js +2 -2
- package/modules/navigator.src.js +47 -45
- package/modules/networkgraph.js +2 -2
- package/modules/networkgraph.src.js +31 -21
- package/modules/no-data-to-display.js +1 -1
- package/modules/no-data-to-display.src.js +1 -1
- package/modules/non-cartesian-zoom.js +1 -1
- package/modules/non-cartesian-zoom.src.js +1 -1
- package/modules/offline-exporting.js +1 -1
- package/modules/offline-exporting.src.js +1 -1
- package/modules/organization.js +2 -2
- package/modules/organization.src.js +3 -2
- package/modules/parallel-coordinates.js +2 -2
- package/modules/parallel-coordinates.src.js +2 -2
- package/modules/pareto.js +1 -1
- package/modules/pareto.src.js +1 -1
- package/modules/pathfinder.js +2 -2
- package/modules/pathfinder.src.js +7 -6
- package/modules/pattern-fill.js +2 -2
- package/modules/pattern-fill.src.js +7 -5
- package/modules/pictorial.js +2 -2
- package/modules/pictorial.src.js +10 -6
- package/modules/pointandfigure.js +1 -1
- package/modules/pointandfigure.src.js +1 -1
- package/modules/price-indicator.js +2 -2
- package/modules/price-indicator.src.js +5 -4
- package/modules/pyramid3d.js +1 -1
- package/modules/pyramid3d.src.js +1 -1
- package/modules/renko.js +1 -1
- package/modules/renko.src.js +1 -1
- package/modules/sankey.js +2 -2
- package/modules/sankey.src.js +34 -20
- package/modules/series-label.js +2 -2
- package/modules/series-label.src.js +7 -7
- package/modules/series-on-point.js +1 -1
- package/modules/series-on-point.src.js +1 -1
- package/modules/solid-gauge.js +2 -2
- package/modules/solid-gauge.src.js +2 -2
- package/modules/sonification.js +2 -2
- package/modules/sonification.src.js +19 -19
- package/modules/static-scale.js +1 -1
- package/modules/static-scale.src.js +1 -1
- package/modules/stock-tools.js +3 -3
- package/modules/stock-tools.src.js +15 -10
- package/modules/stock.js +6 -6
- package/modules/stock.src.js +105 -89
- package/modules/streamgraph.js +1 -1
- package/modules/streamgraph.src.js +1 -1
- package/modules/sunburst.js +2 -2
- package/modules/sunburst.src.js +41 -26
- package/modules/textpath.js +1 -1
- package/modules/textpath.src.js +1 -1
- package/modules/tiledwebmap.js +2 -2
- package/modules/tiledwebmap.src.js +8 -6
- package/modules/tilemap.js +2 -2
- package/modules/tilemap.src.js +3 -3
- package/modules/timeline.js +2 -2
- package/modules/timeline.src.js +5 -4
- package/modules/treegraph.js +2 -2
- package/modules/treegraph.src.js +17 -8
- package/modules/treegrid.js +2 -2
- package/modules/treegrid.src.js +28 -18
- package/modules/treemap.js +2 -2
- package/modules/treemap.src.js +35 -22
- package/modules/variable-pie.js +2 -2
- package/modules/variable-pie.src.js +6 -4
- package/modules/variwide.js +2 -2
- package/modules/variwide.src.js +2 -2
- package/modules/vector.js +1 -1
- package/modules/vector.src.js +1 -1
- package/modules/venn.js +1 -1
- package/modules/venn.src.js +1 -1
- package/modules/windbarb.js +2 -2
- package/modules/windbarb.src.js +2 -2
- package/modules/wordcloud.js +1 -1
- package/modules/wordcloud.src.js +1 -1
- package/modules/xrange.js +1 -1
- package/modules/xrange.src.js +1 -1
- package/package.json +2 -3
- package/standalone-navigator.js +4 -4
- package/standalone-navigator.src.js +355 -249
- package/themes/adaptive.js +1 -1
- package/themes/adaptive.src.js +1 -1
- package/themes/avocado.js +1 -1
- package/themes/avocado.src.js +1 -1
- package/themes/dark-unica.js +1 -1
- package/themes/dark-unica.src.js +1 -1
- package/themes/grid-light.js +1 -1
- package/themes/grid-light.src.js +1 -1
- package/themes/high-contrast.js +1 -1
- package/themes/high-contrast.src.js +1 -1
- package/themes/sand-signika.js +1 -1
- package/themes/sand-signika.src.js +1 -1
- package/themes/sunset.js +1 -1
- package/themes/sunset.src.js +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// SPDX-License-Identifier: LicenseRef-Highcharts
|
|
2
2
|
/**
|
|
3
|
-
* @license Highcharts JS v13.0.
|
|
3
|
+
* @license Highcharts JS v13.0.2 (2026-08-27)
|
|
4
4
|
* @module highcharts/modules/export-data
|
|
5
5
|
* @requires highcharts
|
|
6
6
|
* @requires highcharts/modules/exporting
|
|
@@ -915,11 +915,11 @@ var ExportData;
|
|
|
915
915
|
*/
|
|
916
916
|
function getCSV(useLocalDecimalPoint) {
|
|
917
917
|
let csv = '';
|
|
918
|
-
const rows = this.getDataRows(), csvOptions = this.options?.csv, decimalPoint =
|
|
918
|
+
const rows = this.getDataRows(), csvOptions = this.options?.csv, decimalPoint = csvOptions?.decimalPoint ?? (csvOptions?.itemDelimiter !== ',' && useLocalDecimalPoint ?
|
|
919
919
|
(1.1).toLocaleString()[1] :
|
|
920
920
|
'.'),
|
|
921
921
|
// Use ';' for direct to Excel
|
|
922
|
-
itemDelimiter =
|
|
922
|
+
itemDelimiter = csvOptions?.itemDelimiter ?? (decimalPoint === ',' ? ';' : ','),
|
|
923
923
|
// '\n' isn't working with the js csv data extraction
|
|
924
924
|
lineDelimiter = csvOptions?.lineDelimiter;
|
|
925
925
|
// Transform the rows to CSV
|
|
@@ -1139,15 +1139,13 @@ var ExportData;
|
|
|
1139
1139
|
val =
|
|
1140
1140
|
series.pointClass.prototype.getNestedProperty.apply(mockPoint, [prop]);
|
|
1141
1141
|
// Allow values from nested properties (#20470)
|
|
1142
|
-
rows[key][i + j] =
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
// Linear/log yAxis
|
|
1150
|
-
val);
|
|
1142
|
+
rows[key][i + j] =
|
|
1143
|
+
categoryAndDatetimeMap.categoryMap[prop][val] ??
|
|
1144
|
+
(categoryAndDatetimeMap
|
|
1145
|
+
.dateTimeValueAxisMap[prop] ?
|
|
1146
|
+
time.dateFormat(csvOptions.dateFormat, val) :
|
|
1147
|
+
null) ??
|
|
1148
|
+
val;
|
|
1151
1149
|
j++;
|
|
1152
1150
|
}
|
|
1153
1151
|
});
|
|
@@ -1194,7 +1192,10 @@ var ExportData;
|
|
|
1194
1192
|
category = time.dateFormat(csvOptions.dateFormat, row.x);
|
|
1195
1193
|
}
|
|
1196
1194
|
else if (xAxis.categories) {
|
|
1197
|
-
category =
|
|
1195
|
+
category =
|
|
1196
|
+
xAxis.names[row.x] ??
|
|
1197
|
+
xAxis.categories[row.x] ??
|
|
1198
|
+
row.x;
|
|
1198
1199
|
}
|
|
1199
1200
|
else {
|
|
1200
1201
|
category = row.x;
|
|
@@ -1275,7 +1276,7 @@ var ExportData;
|
|
|
1275
1276
|
*/
|
|
1276
1277
|
function getTableAST(useLocalDecimalPoint) {
|
|
1277
1278
|
let rowLength = 0;
|
|
1278
|
-
const treeChildren = [], exporting = this, chart = exporting.chart, options = chart.options, decimalPoint = useLocalDecimalPoint ? (1.1).toLocaleString()[1] : void 0, useMultiLevelHeaders =
|
|
1279
|
+
const treeChildren = [], exporting = this, chart = exporting.chart, options = chart.options, decimalPoint = useLocalDecimalPoint ? (1.1).toLocaleString()[1] : void 0, useMultiLevelHeaders = exporting.options.useMultiLevelHeaders ?? true, rows = exporting.getDataRows(useMultiLevelHeaders), topHeaders = useMultiLevelHeaders ? rows.shift() : null, subHeaders = rows.shift(),
|
|
1279
1280
|
// Compare two rows for equality
|
|
1280
1281
|
isRowEqual = function (row1, row2) {
|
|
1281
1282
|
let i = row1.length;
|
|
@@ -1294,7 +1295,7 @@ var ExportData;
|
|
|
1294
1295
|
// Get table cell HTML from value
|
|
1295
1296
|
getCellHTMLFromValue = function (tagName, classes, attributes, value) {
|
|
1296
1297
|
const children = [];
|
|
1297
|
-
let textContent = (
|
|
1298
|
+
let textContent = (value ?? ''), className = 'highcharts-text' + (classes ? ' ' + classes : '');
|
|
1298
1299
|
// Convert to string if number
|
|
1299
1300
|
if (typeof textContent === 'number') {
|
|
1300
1301
|
textContent = chart.numberFormatter(textContent, -1, decimalPoint, tagName === 'th' ? '' : void 0);
|
|
@@ -1486,7 +1487,7 @@ var ExportData;
|
|
|
1486
1487
|
function toggleDataTable(show) {
|
|
1487
1488
|
const chart = this.chart,
|
|
1488
1489
|
// Create the div
|
|
1489
|
-
createContainer = (show = (
|
|
1490
|
+
createContainer = (show = (show ?? !this.isDataTableVisible)) &&
|
|
1490
1491
|
!this.dataTableDiv;
|
|
1491
1492
|
if (createContainer) {
|
|
1492
1493
|
this.dataTableDiv = ExportData_doc.createElement('div');
|
package/modules/exporting.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
!/**
|
|
2
|
-
* Highcharts JS v13.0.
|
|
2
|
+
* Highcharts JS v13.0.2 (2026-08-27)
|
|
3
3
|
* @module highcharts/modules/exporting
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
*
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
*
|
|
11
11
|
* A commercial license may be required depending on use,
|
|
12
12
|
* see www.highcharts.com/license
|
|
13
|
-
*/function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.AST,e._Highcharts.Chart):"function"==typeof define&&define.amd?define("highcharts/modules/exporting",["highcharts/highcharts"],function(e){return t(e,e.AST,e.Chart)}):"object"==typeof exports?exports["highcharts/modules/exporting"]=t(e._Highcharts,e._Highcharts.AST,e._Highcharts.Chart):e.Highcharts=t(e.Highcharts,e.Highcharts.AST,e.Highcharts.Chart)}("u"<typeof window?this:window,(e,t,n)=>(()=>{"use strict";var i,r,o={660(e){e.exports=t},960(e){e.exports=n},944(t){t.exports=e}};let a={};function s(e){let t=a[e];if(void 0!==t)return t.exports;let n=a[e]={exports:{}};return o[e](n,n.exports,s),n.exports}s.n=e=>{let t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],r=t[n++];s.o(e,i)?0===r&&n++:0===r?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:r})}else for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let l={};s.d(l,{default:()=>$});var c=s(944),h=s.n(c),d=s(660),p=s.n(d),u=s(960),g=s.n(u),f=i||(i={});f.compose=function(e){return e.navigation||(e.navigation=new m(e)),e};class m{constructor(e){this.updates=[],this.chart=e}addUpdate(e){this.chart.navigation.updates.push(e)}update(e,t){this.updates.forEach(n=>{n.call(this.chart,e,t)})}}f.Additions=m;let y=i,{isSafari:x,win:v,win:{document:w}}=h(),b=v.URL||v.webkitURL||v;function S(e,t){let n=v.navigator,i=w.createElement("a");if("string"!=typeof e&&!(e instanceof String)&&n.msSaveOrOpenBlob)return void n.msSaveOrOpenBlob(e,t);if(e=""+e,n.userAgent.length>1e3)throw Error("Input too long");let r=/Edge\/\d+/.test(n.userAgent);if((x&&"string"==typeof e&&0===e.indexOf("data:application/pdf")||r||e.length>2e6)&&!(e=function(e){let t=e.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(t&&t.length>3&&v.atob&&v.ArrayBuffer&&v.Uint8Array&&v.Blob&&b.createObjectURL){let e=v.atob(t[3]),n=new v.ArrayBuffer(e.length),i=new v.Uint8Array(n);for(let t=0;t<i.length;++t)i[t]=e.charCodeAt(t);return b.createObjectURL(new v.Blob([i],{type:t[1]}))}}(e)||""))throw Error("Failed to convert to blob");if(void 0!==i.download)i.href=e,i.download=t,w.body.appendChild(i),i.click(),w.body.removeChild(i);else try{if(!v.open(e,"chart"))throw Error("Failed to open window")}catch{v.location.href=e}}let{isTouchDevice:E}=h(),C={exporting:{allowHTML:!0,allowTableSorting:!0,local:!0,type:"image/png",url:`https://export-svg.highcharts.com?v=${h().version}`,pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadSVG"]}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen?.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.exporting?.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:async function(){await this.exporting?.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:async function(){await this.exporting?.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:async function(){await this.exporting?.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:async function(){await this.exporting?.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:5,height:28,y:-5,verticalAlign:"top",width:28,symbolFill:"var(--highcharts-neutral-color-60)",symbolStroke:"var(--highcharts-neutral-color-60)",symbolStrokeWidth:3,theme:{fill:"var(--highcharts-background-color)",padding:5,stroke:"none","stroke-linecap":"round"}},menuStyle:{border:"none",borderRadius:"3px",background:"var(--highcharts-background-color)",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"var(--highcharts-neutral-color-80)",padding:"0.5em",fontSize:E?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"var(--highcharts-neutral-color-5)"}}};!function(e){let t=[];function n(e,t,n,i){return[["M",e,t+2.5],["L",e+n,t+2.5],["M",e,t+i/2+.5],["L",e+n,t+i/2+.5],["M",e,t+i-1.5],["L",e+n,t+i-1.5]]}function i(e,t,n,i){let r=i/3-2,o=[];return o.concat(this.circle(n-r,t,r,r),this.circle(n-r,t+r+4,r,r),this.circle(n-r,t+2*(r+4),r,r))}e.compose=function(e){if(-1===t.indexOf(e)){t.push(e);let r=e.prototype.symbols;r.menu=n,r.menuball=i.bind(r)}}}(r||(r={}));let O=r,{composed:T}=h();function F(){this.fullscreen=new k(this)}class k{static compose(e){(0,c.pushUnique)(T,"Fullscreen")&&(0,c.addEvent)(e,"beforeRender",F)}constructor(e){this.chart=e,this.isOpen=!1;const t=e.renderTo;!this.browserProps&&("function"==typeof t.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:t.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:t.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:t.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){let e=this,t=e.chart,n=t.options.chart;(0,c.fireEvent)(t,"fullscreenClose",void 0,function(){e.isOpen&&e.browserProps&&t.container.ownerDocument instanceof Document&&t.container.ownerDocument[e.browserProps.exitFullscreen](),e.unbindFullscreenEvent&&(e.unbindFullscreenEvent=e.unbindFullscreenEvent()),t.setSize(e.origWidth,e.origHeight,!1),e.origWidth=void 0,e.origHeight=void 0,n.width=e.origWidthOption,n.height=e.origHeightOption,e.origWidthOption=void 0,e.origHeightOption=void 0,e.isOpen=!1,e.setButtonText()})}open(){let e=this,t=e.chart,n=t.options.chart;(0,c.fireEvent)(t,"fullscreenOpen",void 0,function(){if(n&&(e.origWidthOption=n.width,e.origHeightOption=n.height),e.origWidth=t.chartWidth,e.origHeight=t.chartHeight,e.browserProps){let n=(0,c.addEvent)(t.container.ownerDocument,e.browserProps.fullscreenChange,function(){e.isOpen?(e.isOpen=!1,e.close()):(t.setSize(null,null,!1),e.isOpen=!0,e.setButtonText())}),i=(0,c.addEvent)(t,"destroy",n);e.unbindFullscreenEvent=()=>{n(),i()};let r=t.renderTo[e.browserProps.requestFullscreen]();r&&r.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){let e=this.chart,t=e.exporting?.divElements,n=e.options.exporting,i=n&&n.buttons&&n.buttons.contextButton.menuItems,r=e.options.lang;if(n?.menuItemDefinitions&&r?.exitFullscreen&&r.viewFullscreen&&i&&t){let e=t[i.indexOf("viewFullscreen")];e&&p().setElementHTML(e,this.isOpen?r.exitFullscreen:n.menuItemDefinitions.viewFullscreen?.text||r.viewFullscreen)}}toggle(){this.isOpen?this.close():this.open()}}let{win:R}=h(),A={ajax:function(e){let t={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},n=new XMLHttpRequest;function i(t,n){e.error&&e.error(t,n)}if(!e.url)return!1;n.open((e.type||"get").toUpperCase(),e.url,!0),e.headers?.["Content-Type"]||n.setRequestHeader("Content-Type",t[e.dataType||"json"]||t.text),(0,c.objectEach)(e.headers,function(e,t){n.setRequestHeader(t,e)}),e.responseType&&(n.responseType=e.responseType),n.onreadystatechange=function(){let t;if(4===n.readyState){if(200===n.status){if("blob"!==e.responseType&&(t=n.responseText,"json"===e.dataType))try{t=JSON.parse(t)}catch(e){if(e instanceof Error)return i(n,e)}return e.success?.(t,n)}i(n,n.responseText)}},e.data&&"string"!=typeof e.data&&(e.data=JSON.stringify(e.data)),n.send(e.data)},getJSON:function(e,t){A.ajax({url:e,success:t,dataType:"json",headers:{"Content-Type":"text/plain"}})}};A.post=async function(e,t,n){let i=new R.FormData;(0,c.objectEach)(t,function(e,t){i.append(t,e)}),i.append("b64","true");let r=await R.fetch(e,{method:"POST",body:i,...n});if(r.ok){let e=await r.text(),n=document.createElement("a");n.href=`data:${t.type};base64,${e}`,n.download=t.filename,n.click(),(0,c.discardElement)(n)}};let{defaultOptions:N,setOptions:P}=h(),{composed:M,doc:D,isFirefox:H,isMS:L,isSafari:I,SVG_NS:U,win:G}=h();p().allowedAttributes.push("data-z-index","fill-opacity","filter","preserveAspectRatio","rx","ry","stroke-dasharray","stroke-linejoin","stroke-opacity","text-anchor","transform","transform-origin","version","viewBox","visibility","xmlns","xmlns:xlink"),p().allowedTags.push("desc","clippath","fedropshadow","femorphology","g","image");let j=G.URL||G.webkitURL||G;class B{constructor(e,t){this.options={},this.chart=e,this.options=t,this.btnCount=0,this.buttonOffset=0,this.divElements=[],this.svgElements=[]}static hyphenate(e){return e.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()})}static async imageToDataURL(e,t,n){let i=await B.loadImage(e),r=D.createElement("canvas"),o=r?.getContext("2d");if(o)return r.height=i.height*t,r.width=i.width*t,o.drawImage(i,0,0,r.width,r.height),r.toDataURL(n);throw Error("No canvas found!")}static async fetchCSS(e){try{let t=await fetch(e),n=await t.text(),i=new CSSStyleSheet;return i.replaceSync(n),i}catch{(0,c.error)(`Warning: Failed to fetch CSS from ${e}`,!1)}}static extractFontFamilies(e){return e?e.split(",").map(e=>e.trim().replace(/^['"]|['"]$/g,"")).filter(Boolean):[]}static selectorAffectsSVG(e,t){try{if(t.matches(e))return!0;return!!t.querySelector(e)}catch{return!1}}static collectSVGInlineFonts(e,t){for(let n of[e,...Array.from(e.querySelectorAll("text, tspan"))]){let e=n.getAttribute("style")||"",i=n.getAttribute("font-family")||"";if(e.indexOf("font-family")>-1){let n=e.match(/font-family\s*:\s*([^;]+)/i);for(let e of B.extractFontFamilies(n?.[1]))t.add(e)}for(let e of B.extractFontFamilies(i))t.add(e)}}static async handleStyleSheet(e,t,n,i,r=new Set){let o=e.href;if(o){if(r.has(o))return;r.add(o)}try{for(let a of Array.from(e.cssRules)){if(a instanceof CSSImportRule)try{let e=await B.fetchCSS(a.href);e&&await B.handleStyleSheet(e,t,n,i,r)}catch{}if(a instanceof CSSStyleRule&&B.selectorAffectsSVG(a.selectorText,i))for(let e of B.extractFontFamilies(a.style.fontFamily))n.add(e);if(a instanceof CSSFontFaceRule){let e=a.cssText;if(o){let t=/url\(\s*(['"]?)(?![a-z]+:|\/\/)([^'")]+?)\1\s*\)/gi;e=e.replace(t,(e,t,n)=>{let i=new URL(n,o).href;return`url(${t}${i}${t})`})}t.push(e)}}}catch(e){if("SecurityError"===e.name&&o)try{let e=await B.fetchCSS(o);e&&await B.handleStyleSheet(e,t,n,i,r)}catch{}}}static async fetchStyleSheets(e){let t=[],n=new Set;for(let i of(B.collectSVGInlineFonts(e,n),Array.from(D.styleSheets)))await B.handleStyleSheet(i,t,n,e);return n.size?t.filter(e=>{let t=e.match(/font-family\s*:\s*([^;]+);?/i);return B.extractFontFamilies(t?.[1]).some(e=>n.has(e))}):t}static async inlineFonts(e){let t=await B.fetchStyleSheets(e),n=/url\(([^)]+)\)/g,i=[],r=t.join("\n"),o;for(;o=n.exec(r);){let e=o[1].replace(/['"]/g,"");i.includes(e)||i.push(e)}let a=e=>{let t="",n=new Uint8Array(e);for(let e=0;e<n.byteLength;e++)t+=String.fromCharCode(n[e]);return btoa(t)},s={};for(let e of i)try{let t=await fetch(e),n=t.headers.get("Content-Type")||"",i=a(await t.arrayBuffer());s[e]=`data:${n};base64,${i}`}catch{}r=r.replace(n,(e,t)=>{let n=t.replace(/['"]/g,"");return`url(${s[n]||n})`});let l=document.createElementNS("http://www.w3.org/2000/svg","style");return l.textContent=r,e.append(l),e}static loadImage(e){return new Promise((t,n)=>{let i=new G.Image;i.crossOrigin="Anonymous",i.onload=()=>{setTimeout(()=>{t(i)},B.loadEventDeferDelay)},i.onerror=e=>{n(e)},i.src=e})}static prepareImageOptions(e){let t=e?.type||"image/png",n=e?.libURL||N.exporting?.libURL;return{type:t,filename:(e?.filename||"chart")+"."+("image/svg+xml"===t?"svg":t.split("/")[1]),scale:e?.scale||1,libURL:n?.slice(-1)!=="/"?n+"/":n}}static sanitizeDOM(e){e.querySelectorAll("foreignObject").forEach(e=>{["width","height"].forEach(t=>{let n=e.getAttribute(t);n&&e.setAttribute(t,Math.ceil(1.15*parseInt(n,10)))})})}static sanitizeSVG(e,t){let n=e.lastIndexOf("</svg>");return n>-1&&(e=e.substr(0,n+6)),e=e.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />").replace(/(<svg(?![^>]*xmlns=)[^>]*)>/g,'$1 xmlns="http://www.w3.org/2000/svg">').replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery\d+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/<svg /,'<svg xmlns:xlink="http://www.w3.org/1999/xlink" ').replace(/ (NS\d+\:)?href=/g," xlink:href=").replace(/(<image[^>]*) xlink:href=/g,"$1 href=").replace(/\n+/g," ").replace(/ /g,"\xa0").replace(/­/g,"\xad")}static svgToDataURL(e){let t=G.navigator.userAgent,n=t.indexOf("WebKit")>-1&&0>t.indexOf("Chrome");try{if(!n&&-1===e.indexOf("<foreignObject"))return j.createObjectURL(new G.Blob([e],{type:"image/svg+xml;charset-utf-16"}))}catch{}return"data:image/svg+xml;charset=UTF-8,"+encodeURIComponent(e)}addButton(e){let t,n=this,i=n.chart,r=i.renderer,o=(0,c.merge)(i.options.navigation?.buttonOptions,e),a=o.onclick,s=o.menuItems,l=o.symbolSize||12;if(!1===o.enabled||!o.theme)return;let h=i.styledMode?{}:o.theme,d=()=>{};a?d=function(e){e&&e.stopPropagation(),a.call(i,e,i)}:s&&(d=function(e){e&&e.stopPropagation(),n.contextMenu(p.menuClassName,s,p.translateX||0,p.translateY||0,p.width||0,p.height||0,p),p.setState(2)}),o.text&&o.symbol?h.paddingLeft=(0,c.pick)(h.paddingLeft,30):o.text||(0,c.extend)(h,{width:o.width,height:o.height,padding:0});let p=r.button(o.text||"",0,0,d,h,void 0,void 0,void 0,void 0,o.useHTML).addClass(e.className||"").attr({title:(0,c.pick)(i.options.lang[o._titleKey||o.titleKey],"")});p.menuClassName=e.menuClassName||"highcharts-menu-"+n.btnCount++,o.symbol&&(t=r.symbol(o.symbol,Math.round((o.symbolX||0)-l/2),Math.round((o.symbolY||0)-l/2),l,l,{width:l,height:l}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(p),i.styledMode||t.attr({stroke:o.symbolStroke,fill:o.symbolFill,"stroke-width":o.symbolStrokeWidth||1})),p.add(n.group).align((0,c.extend)(o,{width:p.width,x:(0,c.pick)(o.x,n.buttonOffset)}),!0,"spacingBox"),n.buttonOffset+=((p.width||0)+(o.buttonSpacing||0))*("right"===o.align?-1:1),n.svgElements.push(p,t)}afterPrint(){let e=this.chart;if(!this.printReverseInfo)return;let{childNodes:t,origDisplay:n,resetParams:i}=this.printReverseInfo;this.moveContainers(e.renderTo),[].forEach.call(t,function(e,t){1===e.nodeType&&(e.style.display=n[t]||"")}),this.isPrinting=!1,i&&e.setSize.apply(e,i),delete this.printReverseInfo,B.printingChart=void 0,(0,c.fireEvent)(e,"afterPrint")}beforePrint(){let e=this.chart,t=D.body,n=this.options.printMaxWidth,i={childNodes:t.childNodes,origDisplay:[],resetParams:void 0};this.isPrinting=!0,e.pointer?.reset(void 0,0),(0,c.fireEvent)(e,"beforePrint"),n&&e.chartWidth>n&&(i.resetParams=[e.options.chart.width,void 0,!1],e.setSize(n,void 0,!1)),[].forEach.call(i.childNodes,function(e,t){1===e.nodeType&&(i.origDisplay[t]=e.style.display,e.style.display="none")}),this.moveContainers(t),this.printReverseInfo=i}contextMenu(e,t,n,i,r,o,a){let s=this,l=s.chart,h=l.options.navigation,{chartWidth:d,chartHeight:u}=l,g="cache-"+e,f=Math.max(r,o),m,y=l[g];y||(s.contextMenuEl=l[g]=y=(0,c.createElement)("div",{className:e},{position:"absolute",zIndex:1e3,padding:f+"px",pointerEvents:"auto",...l.renderer.style},l.scrollablePlotArea?.fixedDiv||l.container),m=(0,c.createElement)("ul",{className:"highcharts-menu"},l.styledMode?{}:{listStyle:"none",margin:0,padding:0},y),l.styledMode||(0,c.css)(m,(0,c.extend)({MozBoxShadow:"3px 3px 10px #0008",WebkitBoxShadow:"3px 3px 10px #0008",boxShadow:"3px 3px 10px #0008"},h?.menuStyle||{})),y.hideMenu=function(){(0,c.css)(y,{display:"none"}),a&&a.setState(0),l.exporting&&(l.exporting.openMenu=!1),(0,c.css)(l.renderTo,{overflow:"hidden"}),(0,c.css)(l.container,{overflow:"hidden"}),(0,c.internalClearTimeout)(y.hideTimer),(0,c.fireEvent)(l,"exportMenuHidden")},s.events?.push((0,c.addEvent)(y,"mouseleave",function(){y.hideTimer=G.setTimeout(y.hideMenu,500)}),(0,c.addEvent)(y,"mouseenter",function(){(0,c.internalClearTimeout)(y.hideTimer)}),(0,c.addEvent)(D,"mouseup",function(t){l.pointer?.inClass(t.target,e)||y.hideMenu()}),(0,c.addEvent)(y,"click",function(){l.exporting?.openMenu&&y.hideMenu()})),t.forEach(function(e){if("string"==typeof e&&s.options.menuItemDefinitions?.[e]&&(e=s.options.menuItemDefinitions[e]),(0,c.isObject)(e,!0)){let t;e.separator?(t=(0,c.createElement)("li",{className:"highcharts-menu-item highcharts-separator",role:"separator"},void 0,m),l.styledMode||(0,c.css)(t,{border:"none",backgroundColor:"var(--highcharts-neutral-color-40)",height:"0.5px",margin:"10px 0",padding:0,listStyle:"none","pointer-events":"none"})):("viewData"===e.textKey&&s.isDataTableVisible&&(e.textKey="hideData"),t=(0,c.createElement)("li",{className:"highcharts-menu-item",onclick:function(t){t&&t.stopPropagation(),y.hideMenu(),"string"!=typeof e&&e.onclick&&e.onclick.apply(l,arguments)}},void 0,m),p().setElementHTML(t,e.text||l.options.lang[e.textKey]),l.styledMode||(t.onmouseover=function(){(0,c.css)(this,h?.menuItemHoverStyle||{})},t.onmouseout=function(){(0,c.css)(this,h?.menuItemStyle||{})},(0,c.css)(t,(0,c.extend)({cursor:"pointer"},h?.menuItemStyle||{})))),s.divElements.push(t)}}),s.divElements.push(m,y),s.menuHeight=y.offsetHeight,s.menuWidth=y.offsetWidth);let x={display:"block"};n+(s.menuWidth||0)>d?x.right=d-n-r-f+"px":x.left=n-f+"px",i+o+(s.menuHeight||0)>u&&a.alignOptions?.verticalAlign!=="top"?x.bottom=u-i-f+"px":x.top=i+o-f+"px",(0,c.css)(y,x),(0,c.css)(l.renderTo,{overflow:""}),(0,c.css)(l.container,{overflow:""}),l.exporting&&(l.exporting.openMenu=!0),(0,c.fireEvent)(l,"exportMenuShown")}destroy(e){let t,n=e?e.target:this.chart,{divElements:i,events:r,svgElements:o}=this;o.forEach((e,i)=>{e&&(e.onclick=e.ontouchstart=null,n[t="cache-"+e.menuClassName]&&delete n[t],o[i]=e.destroy())}),o.length=0,this.group&&(this.group.destroy(),delete this.group),i.forEach(function(e,t){e&&((0,c.internalClearTimeout)(e.hideTimer),(0,c.removeEvent)(e,"mouseleave"),i[t]=e.onmouseout=e.onmouseover=e.ontouchstart=e.onclick=null,(0,c.discardElement)(e))}),i.length=0,r&&(r.forEach(function(e){e()}),r.length=0)}async downloadSVG(e,t){let n,i={svg:e,exportingOptions:t,exporting:this};if((0,c.fireEvent)(B.prototype,"downloadSVG",i),i.defaultPrevented)return;let{type:r,filename:o,scale:a,libURL:s}=B.prepareImageOptions(t);if("application/pdf"===r)throw Error("Offline exporting logic for PDF type is not found.");if("image/svg+xml"===r){if(void 0!==G.MSBlobBuilder){let t=new G.MSBlobBuilder;t.append(e),n=t.getBlob("image/svg+xml")}else n=B.svgToDataURL(e);S(n,o)}else{n=B.svgToDataURL(e);try{B.objectURLRevoke=!0;let e=await B.imageToDataURL(n,a,r);S(e,o)}catch(d){if("No canvas found!"===d.message)throw d;if(e.length>1e8)throw Error("Input too long");let t=D.createElement("canvas"),n=t.getContext("2d"),i=e.match(/^<svg[^>]*\s{,1000}width\s{,1000}=\s{,1000}\"?(\d+)\"?[^>]*>/),h=e.match(/^<svg[^>]*\s{0,1000}height\s{,1000}=\s{,1000}\"?(\d+)\"?[^>]*>/);if(n&&i&&h){let d=i[1]*a,p=h[1]*a;if(t.width=d,t.height=p,!G.canvg){var l;if(!s)throw Error("Image export requires canvg. Set exporting.libURL or preload canvg.");B.objectURLRevoke=!0,await (l=s+"canvg.js",new Promise((e,t)=>{let n=w.getElementsByTagName("head")[0],i=w.createElement("script");i.type="text/javascript",i.src=l,i.onload=()=>{e()},i.onerror=()=>{let e=`Error loading script ${l}`;(0,c.error)(e),t(Error(e))},n.appendChild(i)}))}G.canvg.Canvg.fromString(n,e).start(),S(G.navigator.msSaveOrOpenBlob?t.msToBlob():t.toDataURL(r),o)}}finally{if(B.objectURLRevoke)try{j.revokeObjectURL(n)}catch{}}}}async exportChart(e,t){if((e=(0,c.merge)(this.options,e)).local)await this.localExport(e,t||{});else{let n=await this.getSVGForExport(e,t);e.url&&await A.post(e.url,{filename:e.filename?e.filename.replace(/\//g,"-"):this.getFilename(),type:e.type,width:e.width,scale:e.scale,svg:n},e.fetchOptions)}}async fallbackToServer(e,t){!1===e.fallbackToExportServer?e.error?e.error(e,t):(0,c.error)(t?.message||28,!0,this.chart):"application/pdf"===e.type?(e.local=!1,await this.exportChart(e)):(0,c.error)(t.message,!1)}getChartHTML(e){let t=this.chart;return e&&this.inlineStyles(),this.resolveCSSVariables(),B.sanitizeDOM(t.renderer.box),t.container.querySelectorAll("canvas").forEach(function(e){let n=e.toDataURL("image/png"),i=e.parentNode,r=t.renderer.image(n,0,0,e.width,e.height);(0,c.css)(r.element,{width:e.style.width,height:e.style.height}),i.parentNode.insertBefore(r.element,i),i.remove()}),t.container.innerHTML}getFilename(){let e=this.chart.userOptions.title?.text,t=this.options.filename;return t?t.replace(/\//g,"-"):("string"==typeof e&&(t=e.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z\d\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!t||t.length<5)&&(t="chart"),t)}getSVG(e,t){let n=this.chart,i,r,o=(0,c.merge)(n.options,e);o.plotOptions=(0,c.merge)(n.userOptions.plotOptions,e?.plotOptions),o.time=(0,c.merge)(n.userOptions.time,e?.time);let a=(0,c.createElement)("div",void 0,{position:"absolute",top:"-9999em",width:n.chartWidth+"px",height:n.chartHeight+"px"},D.body),s=n.renderTo.style.width,l=n.renderTo.style.height,h=o.exporting?.sourceWidth||o.chart.width||/px$/.test(s)&&parseInt(s,10)||(o.isGantt?800:600),d=o.exporting?.sourceHeight||o.chart.height||/px$/.test(l)&&parseInt(l,10)||400;(0,c.extend)(o.chart,{animation:!1,renderTo:a,forExport:!0,renderer:"SVGRenderer",width:h,height:d}),o.exporting&&(o.exporting.enabled=!1),delete o.data,o.series=[],n.series.forEach(function(e){(r=(0,c.merge)(e.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:e.visible})).isInternal||o?.series?.push(r)});let p={};n.axes.forEach(function(e){e.userOptions.internalKey||(e.userOptions.internalKey=(0,c.uniqueKey)()),o&&!e.options.isInternal&&(p[e.coll]||(p[e.coll]=!0,o[e.coll]=[]),o[e.coll].push((0,c.merge)(e.userOptions,{visible:e.visible,type:e.type,uniqueNames:e.uniqueNames})))}),o.colorAxis=n.userOptions.colorAxis;let u=t=>{e&&["xAxis","yAxis","series"].forEach(function(n){e[n]&&t.update({[n]:e[n]})}),n.axes.forEach(function(n){let i=(0,c.find)(t.axes,e=>e.options.internalKey===n.userOptions.internalKey);if(i){let t=n.getExtremes(),r=(0,c.splat)(e?.[n.coll]||{})[0],o="min"in r?r.min:t.userMin,a="max"in r?r.max:t.userMax;(void 0!==o&&o!==i.min||void 0!==a&&a!==i.max)&&i.setExtremes(o??void 0,a??void 0,!0,!1)}});let r=t.exporting;return r?.options.applyStyleSheets&&this.applyShadowDOMStyles(t),(0,c.fireEvent)(n,"getSVG",{chartCopy:t}),i=r?.getChartHTML(n.styledMode||o?.exporting?.applyStyleSheets)||"",i=B.sanitizeSVG(i,o),(0,c.fireEvent)(n,"afterGetSVG",{chartCopy:t,svg:i}),o=void 0,t.destroy(),(0,c.discardElement)(a),i};return t?new Promise(e=>new n.constructor(o||{},function(t){n.callback?.call(this,t);let i=(0,c.addEvent)(this,"render",function(){i(),e(u(this))})})):u(new n.constructor(o,n.callback))}applyShadowDOMStyles(e){let t=this.chart,n=[],i=t.container,r;for(;i&&(!(r=i.getRootNode())||"object"!=typeof r.host);)i=i.parentNode,r=null;r?.querySelectorAll("style").forEach(t=>{let i=t.cloneNode(!0);e.renderer.defs.element.appendChild(i),n.push(i)}),(0,c.addEvent)(t,"afterGetSVG",()=>{n.forEach(e=>{e.remove()})})}async getSVGForExport(e,t){let n=this.options;return await this.getSVG((0,c.merge)({chart:{borderRadius:0}},n.chartOptions,t,{exporting:{sourceWidth:e?.sourceWidth||n.sourceWidth,sourceHeight:e?.sourceHeight||n.sourceHeight}}),!0)}inlineStyles(){let e,t=B.inlineDenylist,n=B.inlineAllowlist,i={},r=(0,c.createElement)("iframe",void 0,{width:"1px",height:"1px",visibility:"hidden"},D.body),o=r.contentWindow?.document;o&&o.body.appendChild(o.createElementNS(U,"svg")),!function r(a){let s,l,h,d,p,u,g={};if(o&&1===a.nodeType&&-1===B.unstyledElements.indexOf(a.nodeName)){if(s=G.getComputedStyle(a,null),l="svg"===a.nodeName?{}:G.getComputedStyle(a.parentNode,null),!i[a.nodeName]){e=o.getElementsByTagName("svg")[0],h=o.createElementNS(a.namespaceURI,a.nodeName),e.appendChild(h);let t=G.getComputedStyle(h,null),n={};for(let e in t)e.length<1e3&&"string"==typeof t[e]&&!/^\d+$/.test(e)&&(n[e]=t[e]);i[a.nodeName]=n,"text"===a.nodeName&&delete i.text.fill,e.removeChild(h)}for(let e in s)(H||L||I||Object.hasOwnProperty.call(s,e))&&function(e,r){if(d=p=!1,n.length){for(u=n.length;u--&&!p;)p=n[u].test(r);d=!p}for("transform"===r&&"none"===e&&(d=!0),u=t.length;u--&&!d;){if(r.length>1e3)throw Error("Input too long");d=t[u].test(r)||"function"==typeof e}!d&&(l[r]!==e||"svg"===a.nodeName)&&i[a.nodeName][r]!==e&&(B.inlineToAttributes&&-1===B.inlineToAttributes.indexOf(r)?g[r]=e:e&&a.setAttribute(B.hyphenate(r),e))}(s[e],e);if((0,c.css)(a,g),"svg"===a.nodeName&&a.setAttribute("stroke-width","1px"),"text"===a.nodeName)return;[].forEach.call(a.children||a.childNodes,r)}}(this.chart.container.querySelector("svg")),e.parentNode.removeChild(e),r.parentNode.removeChild(r)}async localExport(e,t){let n=this.chart,i,r,o=null,a;if(L&&n.styledMode&&!B.inlineAllowlist.length&&B.inlineAllowlist.push(/^blockSize/,/^border/,/^caretColor/,/^color/,/^columnRule/,/^columnRuleColor/,/^cssFloat/,/^cursor/,/^fill$/,/^fillOpacity/,/^font/,/^inlineSize/,/^length/,/^lineHeight/,/^opacity/,/^outline/,/^parentRule/,/^rx$/,/^ry$/,/^stroke/,/^textAlign/,/^textAnchor/,/^textDecoration/,/^transform/,/^vectorEffect/,/^visibility/,/^x$/,/^y$/),L&&("application/pdf"===e.type||n.container.getElementsByTagName("image").length&&"image/svg+xml"!==e.type)||"application/pdf"===e.type&&[].some.call(n.container.getElementsByTagName("image"),function(e){let t=e.getAttribute("href");return""!==t&&"string"==typeof t&&0!==t.indexOf("data:")}))return void await this.fallbackToServer(e,Error("Image type not supported for this chart/browser."));let s=(0,c.addEvent)(n,"afterGetSVG",e=>{r=e.chartCopy.options,a=(i=e.chartCopy.container.cloneNode(!0))&&i.getElementsByTagName("image")||[]});try{let n;for(let n of(await this.getSVGForExport(e,t),a?Array.from(a):[]))if(o=n.getAttributeNS("http://www.w3.org/1999/xlink","href")){B.objectURLRevoke=!1;let t=await B.imageToDataURL(o,e?.scale||1,e?.type||"image/png");n.setAttributeNS("http://www.w3.org/1999/xlink","href",t)}else n.parentNode.removeChild(n);let s=i?.querySelector("svg");s&&!e.chartOptions?.chart?.style?.fontFamily&&await B.inlineFonts(s);let l=(n=i?.innerHTML,B.sanitizeSVG(n||"",r));if(l.indexOf("<foreignObject")>-1&&"image/svg+xml"!==e.type&&(L||"application/pdf"===e.type))throw Error("Image type not supported for charts with embedded HTML");return await this.downloadSVG(l,(0,c.extend)({filename:this.getFilename()},e)),l}catch(t){await this.fallbackToServer(e,t)}finally{s()}}moveContainers(e){let t=this.chart,{scrollablePlotArea:n}=t;(n?[n.fixedDiv,n.scrollingContainer]:[t.container]).forEach(function(t){e.appendChild(t)})}print(){let e=this.chart;this.isPrinting||(B.printingChart=e,I||this.beforePrint(),setTimeout(()=>{G.focus(),G.print(),I||setTimeout(()=>{e.exporting?.afterPrint()},1e3)},1))}render(){let e=this,{chart:t,options:n}=e,i=e?.isDirty||!e?.svgElements.length;e.buttonOffset=0,e.isDirty&&e.destroy(),i&&!1!==n.enabled&&(e.events=[],e.group||(e.group=t.renderer.g("exporting-group").attr({zIndex:3}).add()),(0,c.objectEach)(n?.buttons,function(t){e.addButton(t)}),e.isDirty=!1)}resolveCSSVariables(){Array.from(this.chart.container.querySelectorAll("*")).forEach(e=>{["color","fill","stop-color","stroke"].forEach(t=>{let n=e.getAttribute(t);n?.includes("var(")&&e.setAttribute(t,getComputedStyle(e).getPropertyValue(t));let i=e.style?.[t];i?.includes("var(")&&(e.style[t]=getComputedStyle(e).getPropertyValue(t))})})}update(e,t){this.isDirty=!0,(0,c.merge)(!0,this.options,e),(0,c.pick)(t,!0)&&this.chart.redraw()}}B.inlineAllowlist=[],B.inlineDenylist=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^\d+$/],B.inlineToAttributes=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"],B.loadEventDeferDelay=150*!!L,B.unstyledElements=["clipPath","defs","desc"],function(e){function t(e){let t=e.exporting;t&&(t.render(),(0,c.addEvent)(e,"redraw",function(){this.exporting?.render()}),(0,c.addEvent)(e,"destroy",function(){this.exporting?.destroy()}))}function n(){let t=this;t.options.exporting&&(t.exporting=new e(t,t.options.exporting),y.compose(t).navigation.addUpdate((e,n)=>{t.exporting&&(t.exporting.isDirty=!0,(0,c.merge)(!0,t.options.navigation,e),(0,c.pick)(n,!0)&&t.redraw())}))}function i({alignTo:e,key:t,textPxLength:n}){let i=this.options.exporting,{align:r,buttonSpacing:o=0,verticalAlign:a,width:s=0}=(0,c.merge)(this.options.navigation?.buttonOptions,i?.buttons?.contextButton),l=e.width-n,h=s+o;(i?.enabled??!0)&&"title"===t&&"right"===r&&"top"===a&&l<2*h&&(l<h?e.width-=h:this.title?.alignValue!=="left"&&(e.x-=h-l/2))}e.compose=function(r,o){O.compose(o),k.compose(r),(0,c.pushUnique)(M,"Exporting")&&((0,c.extend)(g().prototype,{exportChart:async function(e,t){await this.exporting?.exportChart(e,t)},getChartHTML:function(e){return this.exporting?.getChartHTML(e)},getFilename:function(){return this.exporting?.getFilename()},getSVG:function(e){return this.exporting?.getSVG(e,!1)},print:function(){return this.exporting?.print()}}),r.prototype.callbacks.push(t),(0,c.addEvent)(r,"afterInit",n),(0,c.addEvent)(r,"layOutTitle",i),I&&G.matchMedia("print").addListener(function(t){e.printingChart&&(t.matches?e.printingChart.exporting?.beforePrint():e.printingChart.exporting?.afterPrint())}),P(C))}}(B||(B={}));let V=h();V.Exporting=B,V.HttpUtilities=V.HttpUtilities||A,V.ajax=V.HttpUtilities.ajax,V.getJSON=V.HttpUtilities.getJSON,V.post=V.HttpUtilities.post,B.compose(V.Chart,V.Renderer);let $=h();return l.default})());
|
|
13
|
+
*/function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.AST,e._Highcharts.Chart):"function"==typeof define&&define.amd?define("highcharts/modules/exporting",["highcharts/highcharts"],function(e){return t(e,e.AST,e.Chart)}):"object"==typeof exports?exports["highcharts/modules/exporting"]=t(e._Highcharts,e._Highcharts.AST,e._Highcharts.Chart):e.Highcharts=t(e.Highcharts,e.Highcharts.AST,e.Highcharts.Chart)}("u"<typeof window?this:window,(e,t,n)=>(()=>{"use strict";var i,r,o={660(e){e.exports=t},960(e){e.exports=n},944(t){t.exports=e}};let a={};function s(e){let t=a[e];if(void 0!==t)return t.exports;let n=a[e]={exports:{}};return o[e](n,n.exports,s),n.exports}s.n=e=>{let t=e&&e.__esModule?()=>e.default:()=>e;return s.d(t,{a:t}),t},s.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],r=t[n++];s.o(e,i)?0===r&&n++:0===r?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:r})}else for(var i in t)s.o(t,i)&&!s.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);let l={};s.d(l,{default:()=>$});var c=s(944),h=s.n(c),d=s(660),p=s.n(d),u=s(960),g=s.n(u),f=i||(i={});f.compose=function(e){return e.navigation||(e.navigation=new m(e)),e};class m{constructor(e){this.updates=[],this.chart=e}addUpdate(e){this.chart.navigation.updates.push(e)}update(e,t){this.updates.forEach(n=>{n.call(this.chart,e,t)})}}f.Additions=m;let y=i,{isSafari:x,win:v,win:{document:w}}=h(),b=v.URL||v.webkitURL||v;function S(e,t){let n=v.navigator,i=w.createElement("a");if("string"!=typeof e&&!(e instanceof String)&&n.msSaveOrOpenBlob)return void n.msSaveOrOpenBlob(e,t);if(e=""+e,n.userAgent.length>1e3)throw Error("Input too long");let r=/Edge\/\d+/.test(n.userAgent);if((x&&"string"==typeof e&&0===e.indexOf("data:application/pdf")||r||e.length>2e6)&&!(e=function(e){let t=e.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(t&&t.length>3&&v.atob&&v.ArrayBuffer&&v.Uint8Array&&v.Blob&&b.createObjectURL){let e=v.atob(t[3]),n=new v.ArrayBuffer(e.length),i=new v.Uint8Array(n);for(let t=0;t<i.length;++t)i[t]=e.charCodeAt(t);return b.createObjectURL(new v.Blob([i],{type:t[1]}))}}(e)||""))throw Error("Failed to convert to blob");if(void 0!==i.download)i.href=e,i.download=t,w.body.appendChild(i),i.click(),w.body.removeChild(i);else try{if(!v.open(e,"chart"))throw Error("Failed to open window")}catch{v.location.href=e}}let{isTouchDevice:E}=h(),C={exporting:{allowHTML:!0,allowTableSorting:!0,local:!0,type:"image/png",url:`https://export-svg.highcharts.com?v=${h().version}`,pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton",menuClassName:"highcharts-contextmenu",symbol:"menu",titleKey:"contextButtonTitle",menuItems:["viewFullscreen","printChart","separator","downloadPNG","downloadJPEG","downloadSVG"]}},menuItemDefinitions:{viewFullscreen:{textKey:"viewFullscreen",onclick:function(){this.fullscreen?.toggle()}},printChart:{textKey:"printChart",onclick:function(){this.exporting?.print()}},separator:{separator:!0},downloadPNG:{textKey:"downloadPNG",onclick:async function(){await this.exporting?.exportChart()}},downloadJPEG:{textKey:"downloadJPEG",onclick:async function(){await this.exporting?.exportChart({type:"image/jpeg"})}},downloadPDF:{textKey:"downloadPDF",onclick:async function(){await this.exporting?.exportChart({type:"application/pdf"})}},downloadSVG:{textKey:"downloadSVG",onclick:async function(){await this.exporting?.exportChart({type:"image/svg+xml"})}}}},lang:{viewFullscreen:"View in full screen",exitFullscreen:"Exit from full screen",printChart:"Print chart",downloadPNG:"Download PNG image",downloadJPEG:"Download JPEG image",downloadPDF:"Download PDF document",downloadSVG:"Download SVG vector image",contextButtonTitle:"Chart context menu"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:"right",buttonSpacing:5,height:28,y:-5,verticalAlign:"top",width:28,symbolFill:"var(--highcharts-neutral-color-60)",symbolStroke:"var(--highcharts-neutral-color-60)",symbolStrokeWidth:3,theme:{fill:"var(--highcharts-background-color)",padding:5,stroke:"none","stroke-linecap":"round"}},menuStyle:{border:"none",borderRadius:"3px",background:"var(--highcharts-background-color)",padding:"0.5em"},menuItemStyle:{background:"none",borderRadius:"3px",color:"var(--highcharts-neutral-color-80)",padding:"0.5em",fontSize:E?"0.9em":"0.8em",transition:"background 250ms, color 250ms"},menuItemHoverStyle:{background:"var(--highcharts-neutral-color-5)"}}};!function(e){let t=[];function n(e,t,n,i){return[["M",e,t+2.5],["L",e+n,t+2.5],["M",e,t+i/2+.5],["L",e+n,t+i/2+.5],["M",e,t+i-1.5],["L",e+n,t+i-1.5]]}function i(e,t,n,i){let r=i/3-2,o=[];return o.concat(this.circle(n-r,t,r,r),this.circle(n-r,t+r+4,r,r),this.circle(n-r,t+2*(r+4),r,r))}e.compose=function(e){if(-1===t.indexOf(e)){t.push(e);let r=e.prototype.symbols;r.menu=n,r.menuball=i.bind(r)}}}(r||(r={}));let O=r,{composed:T}=h();function F(){this.fullscreen=new k(this)}class k{static compose(e){(0,c.pushUnique)(T,"Fullscreen")&&(0,c.addEvent)(e,"beforeRender",F)}constructor(e){this.chart=e,this.isOpen=!1;const t=e.renderTo;!this.browserProps&&("function"==typeof t.requestFullscreen?this.browserProps={fullscreenChange:"fullscreenchange",requestFullscreen:"requestFullscreen",exitFullscreen:"exitFullscreen"}:t.mozRequestFullScreen?this.browserProps={fullscreenChange:"mozfullscreenchange",requestFullscreen:"mozRequestFullScreen",exitFullscreen:"mozCancelFullScreen"}:t.webkitRequestFullScreen?this.browserProps={fullscreenChange:"webkitfullscreenchange",requestFullscreen:"webkitRequestFullScreen",exitFullscreen:"webkitExitFullscreen"}:t.msRequestFullscreen&&(this.browserProps={fullscreenChange:"MSFullscreenChange",requestFullscreen:"msRequestFullscreen",exitFullscreen:"msExitFullscreen"}))}close(){let e=this,t=e.chart,n=t.options.chart;(0,c.fireEvent)(t,"fullscreenClose",void 0,function(){e.isOpen&&e.browserProps&&t.container.ownerDocument instanceof Document&&t.container.ownerDocument[e.browserProps.exitFullscreen](),e.unbindFullscreenEvent&&(e.unbindFullscreenEvent=e.unbindFullscreenEvent()),t.setSize(e.origWidth,e.origHeight,!1),e.origWidth=void 0,e.origHeight=void 0,n.width=e.origWidthOption,n.height=e.origHeightOption,e.origWidthOption=void 0,e.origHeightOption=void 0,e.isOpen=!1,e.setButtonText()})}open(){let e=this,t=e.chart,n=t.options.chart;(0,c.fireEvent)(t,"fullscreenOpen",void 0,function(){if(n&&(e.origWidthOption=n.width,e.origHeightOption=n.height),e.origWidth=t.chartWidth,e.origHeight=t.chartHeight,e.browserProps){let n=(0,c.addEvent)(t.container.ownerDocument,e.browserProps.fullscreenChange,function(){e.isOpen?(e.isOpen=!1,e.close()):(t.setSize(null,null,!1),e.isOpen=!0,e.setButtonText())}),i=(0,c.addEvent)(t,"destroy",n);e.unbindFullscreenEvent=()=>{n(),i()};let r=t.renderTo[e.browserProps.requestFullscreen]();r&&r.catch(function(){alert("Full screen is not supported inside a frame.")})}})}setButtonText(){let e=this.chart,t=e.exporting?.divElements,n=e.options.exporting,i=n&&n.buttons&&n.buttons.contextButton.menuItems,r=e.options.lang;if(n?.menuItemDefinitions&&r?.exitFullscreen&&r.viewFullscreen&&i&&t){let e=t[i.indexOf("viewFullscreen")];e&&p().setElementHTML(e,this.isOpen?r.exitFullscreen:n.menuItemDefinitions.viewFullscreen?.text||r.viewFullscreen)}}toggle(){this.isOpen?this.close():this.open()}}let{win:R}=h(),A={ajax:function(e){let t={json:"application/json",xml:"application/xml",text:"text/plain",octet:"application/octet-stream"},n=new XMLHttpRequest;function i(t,n){e.error&&e.error(t,n)}if(!e.url)return!1;n.open((e.type||"get").toUpperCase(),e.url,!0),e.headers?.["Content-Type"]||n.setRequestHeader("Content-Type",t[e.dataType||"json"]||t.text),(0,c.objectEach)(e.headers,function(e,t){n.setRequestHeader(t,e)}),e.responseType&&(n.responseType=e.responseType),n.onreadystatechange=function(){let t;if(4===n.readyState){if(200===n.status){if("blob"!==e.responseType&&(t=n.responseText,"json"===e.dataType))try{t=JSON.parse(t)}catch(e){if(e instanceof Error)return i(n,e)}return e.success?.(t,n)}i(n,n.responseText)}},e.data&&"string"!=typeof e.data&&(e.data=JSON.stringify(e.data)),n.send(e.data)},getJSON:function(e,t){A.ajax({url:e,success:t,dataType:"json",headers:{"Content-Type":"text/plain"}})}};A.post=async function(e,t,n){let i=new R.FormData;(0,c.objectEach)(t,function(e,t){i.append(t,e)}),i.append("b64","true");let r=await R.fetch(e,{method:"POST",body:i,...n});if(r.ok){let e=await r.text(),n=document.createElement("a");n.href=`data:${t.type};base64,${e}`,n.download=t.filename,n.click(),(0,c.discardElement)(n)}};let{defaultOptions:N,setOptions:P}=h(),{composed:M,doc:D,isFirefox:H,isMS:L,isSafari:I,SVG_NS:U,win:G}=h();p().allowedAttributes.push("data-z-index","fill-opacity","filter","preserveAspectRatio","rx","ry","stroke-dasharray","stroke-linejoin","stroke-opacity","text-anchor","transform","transform-origin","version","viewBox","visibility","xmlns","xmlns:xlink"),p().allowedTags.push("desc","clippath","fedropshadow","femorphology","g","image");let j=G.URL||G.webkitURL||G;class B{constructor(e,t){this.options={},this.chart=e,this.options=t,this.btnCount=0,this.buttonOffset=0,this.divElements=[],this.svgElements=[]}static hyphenate(e){return e.replace(/[A-Z]/g,function(e){return"-"+e.toLowerCase()})}static async imageToDataURL(e,t,n){let i=await B.loadImage(e),r=D.createElement("canvas"),o=r?.getContext("2d");if(o)return r.height=i.height*t,r.width=i.width*t,o.drawImage(i,0,0,r.width,r.height),r.toDataURL(n);throw Error("No canvas found!")}static async fetchCSS(e){try{let t=await fetch(e),n=await t.text(),i=new CSSStyleSheet;return i.replaceSync(n),i}catch{(0,c.error)(`Warning: Failed to fetch CSS from ${e}`,!1)}}static extractFontFamilies(e){return e?e.split(",").map(e=>e.trim().replace(/^['"]|['"]$/g,"")).filter(Boolean):[]}static selectorAffectsSVG(e,t){try{if(t.matches(e))return!0;return!!t.querySelector(e)}catch{return!1}}static collectSVGInlineFonts(e,t){for(let n of[e,...Array.from(e.querySelectorAll("text, tspan"))]){let e=n.getAttribute("style")||"",i=n.getAttribute("font-family")||"";if(e.indexOf("font-family")>-1){let n=e.match(/font-family\s*:\s*([^;]+)/i);for(let e of B.extractFontFamilies(n?.[1]))t.add(e)}for(let e of B.extractFontFamilies(i))t.add(e)}}static async handleStyleSheet(e,t,n,i,r=new Set){let o=e.href;if(o){if(r.has(o))return;r.add(o)}try{for(let a of Array.from(e.cssRules)){if(a instanceof CSSImportRule)try{let e=await B.fetchCSS(a.href);e&&await B.handleStyleSheet(e,t,n,i,r)}catch{}if(a instanceof CSSStyleRule&&B.selectorAffectsSVG(a.selectorText,i))for(let e of B.extractFontFamilies(a.style.fontFamily))n.add(e);if(a instanceof CSSFontFaceRule){let e=a.cssText;if(o){let t=/url\(\s*(['"]?)(?![a-z]+:|\/\/)([^'")]+?)\1\s*\)/gi;e=e.replace(t,(e,t,n)=>{let i=new URL(n,o).href;return`url(${t}${i}${t})`})}t.push(e)}}}catch(e){if("SecurityError"===e.name&&o)try{let e=await B.fetchCSS(o);e&&await B.handleStyleSheet(e,t,n,i,r)}catch{}}}static async fetchStyleSheets(e){let t=[],n=new Set;for(let i of(B.collectSVGInlineFonts(e,n),Array.from(D.styleSheets)))await B.handleStyleSheet(i,t,n,e);return n.size?t.filter(e=>{let t=e.match(/font-family\s*:\s*([^;]+);?/i);return B.extractFontFamilies(t?.[1]).some(e=>n.has(e))}):t}static async inlineFonts(e){let t=await B.fetchStyleSheets(e),n=/url\(([^)]+)\)/g,i=[],r=t.join("\n"),o;for(;o=n.exec(r);){let e=o[1].replace(/['"]/g,"");i.includes(e)||i.push(e)}let a=e=>{let t="",n=new Uint8Array(e);for(let e=0;e<n.byteLength;e++)t+=String.fromCharCode(n[e]);return btoa(t)},s={};for(let e of i)try{let t=await fetch(e),n=t.headers.get("Content-Type")||"",i=a(await t.arrayBuffer());s[e]=`data:${n};base64,${i}`}catch{}r=r.replace(n,(e,t)=>{let n=t.replace(/['"]/g,"");return`url(${s[n]||n})`});let l=document.createElementNS("http://www.w3.org/2000/svg","style");return l.textContent=r,e.append(l),e}static loadImage(e){return new Promise((t,n)=>{let i=new G.Image;i.crossOrigin="Anonymous",i.onload=()=>{setTimeout(()=>{t(i)},B.loadEventDeferDelay)},i.onerror=e=>{n(e)},i.src=e})}static prepareImageOptions(e){let t=e?.type||"image/png",n=e?.libURL||N.exporting?.libURL;return{type:t,filename:(e?.filename||"chart")+"."+("image/svg+xml"===t?"svg":t.split("/")[1]),scale:e?.scale||1,libURL:n?.slice(-1)!=="/"?n+"/":n}}static sanitizeDOM(e){e.querySelectorAll("foreignObject").forEach(e=>{["width","height"].forEach(t=>{let n=e.getAttribute(t);n&&e.setAttribute(t,Math.ceil(1.15*parseInt(n,10)))})})}static sanitizeSVG(e,t){let n=e.lastIndexOf("</svg>");return n>-1&&(e=e.substr(0,n+6)),e=e.replace(/(<(?:img|br).*?(?=\>))>/g,"$1 />").replace(/(<svg(?![^>]*xmlns=)[^>]*)>/g,'$1 xmlns="http://www.w3.org/2000/svg">').replace(/zIndex="[^"]+"/g,"").replace(/symbolName="[^"]+"/g,"").replace(/jQuery\d+="[^"]+"/g,"").replace(/url\(("|")(.*?)("|")\;?\)/g,"url($2)").replace(/url\([^#]+#/g,"url(#").replace(/<svg /,'<svg xmlns:xlink="http://www.w3.org/1999/xlink" ').replace(/ (NS\d+\:)?href=/g," xlink:href=").replace(/(<image[^>]*) xlink:href=/g,"$1 href=").replace(/\n+/g," ").replace(/ /g,"\xa0").replace(/­/g,"\xad")}static svgToDataURL(e){let t=G.navigator.userAgent,n=t.indexOf("WebKit")>-1&&0>t.indexOf("Chrome");try{if(!n&&-1===e.indexOf("<foreignObject"))return j.createObjectURL(new G.Blob([e],{type:"image/svg+xml;charset-utf-16"}))}catch{}return"data:image/svg+xml;charset=UTF-8,"+encodeURIComponent(e)}addButton(e){let t,n=this,i=n.chart,r=i.renderer,o=(0,c.merge)(i.options.navigation?.buttonOptions,e),a=o.onclick,s=o.menuItems,l=o.symbolSize||12;if(!1===o.enabled||!o.theme)return;let h=i.styledMode?{}:o.theme,d=()=>{};a?d=function(e){e&&e.stopPropagation(),a.call(i,e,i)}:s&&(d=function(e){e&&e.stopPropagation(),n.contextMenu(p.menuClassName,s,p.translateX||0,p.translateY||0,p.width||0,p.height||0,p),p.setState(2)}),o.text&&o.symbol?h.paddingLeft=h.paddingLeft??30:o.text||(0,c.extend)(h,{width:o.width,height:o.height,padding:0});let p=r.button(o.text||"",0,0,d,h,void 0,void 0,void 0,void 0,o.useHTML).addClass(e.className||"").attr({title:i.options.lang[o._titleKey||o.titleKey]??""});p.menuClassName=e.menuClassName||"highcharts-menu-"+n.btnCount++,o.symbol&&(t=r.symbol(o.symbol,Math.round((o.symbolX||0)-l/2),Math.round((o.symbolY||0)-l/2),l,l,{width:l,height:l}).addClass("highcharts-button-symbol").attr({zIndex:1}).add(p),i.styledMode||t.attr({stroke:o.symbolStroke,fill:o.symbolFill,"stroke-width":o.symbolStrokeWidth||1})),p.add(n.group).align((0,c.extend)(o,{width:p.width,x:o.x??n.buttonOffset}),!0,"spacingBox"),n.buttonOffset+=((p.width||0)+(o.buttonSpacing||0))*("right"===o.align?-1:1),n.svgElements.push(p,t)}afterPrint(){let e=this.chart;if(!this.printReverseInfo)return;let{childNodes:t,origDisplay:n,resetParams:i}=this.printReverseInfo;this.moveContainers(e.renderTo),[].forEach.call(t,function(e,t){1===e.nodeType&&(e.style.display=n[t]||"")}),this.isPrinting=!1,i&&e.setSize.apply(e,i),delete this.printReverseInfo,B.printingChart=void 0,(0,c.fireEvent)(e,"afterPrint")}beforePrint(){let e=this.chart,t=D.body,n=this.options.printMaxWidth,i={childNodes:t.childNodes,origDisplay:[],resetParams:void 0};this.isPrinting=!0,e.pointer?.reset(void 0,0),(0,c.fireEvent)(e,"beforePrint"),n&&e.chartWidth>n&&(i.resetParams=[e.options.chart.width,void 0,!1],e.setSize(n,void 0,!1)),[].forEach.call(i.childNodes,function(e,t){1===e.nodeType&&(i.origDisplay[t]=e.style.display,e.style.display="none")}),this.moveContainers(t),this.printReverseInfo=i}contextMenu(e,t,n,i,r,o,a){let s=this,l=s.chart,h=l.options.navigation,{chartWidth:d,chartHeight:u}=l,g="cache-"+e,f=Math.max(r,o),m,y=l[g];y||(s.contextMenuEl=l[g]=y=(0,c.createElement)("div",{className:e},{position:"absolute",zIndex:1e3,padding:f+"px",pointerEvents:"auto",...l.renderer.style},l.scrollablePlotArea?.fixedDiv||l.container),m=(0,c.createElement)("ul",{className:"highcharts-menu"},l.styledMode?{}:{listStyle:"none",margin:0,padding:0},y),l.styledMode||(0,c.css)(m,(0,c.extend)({MozBoxShadow:"3px 3px 10px #0008",WebkitBoxShadow:"3px 3px 10px #0008",boxShadow:"3px 3px 10px #0008"},h?.menuStyle||{})),y.hideMenu=function(){(0,c.css)(y,{display:"none"}),a&&a.setState(0),l.exporting&&(l.exporting.openMenu=!1),(0,c.css)(l.renderTo,{overflow:"hidden"}),(0,c.css)(l.container,{overflow:"hidden"}),(0,c.internalClearTimeout)(y.hideTimer),(0,c.fireEvent)(l,"exportMenuHidden")},s.events?.push((0,c.addEvent)(y,"mouseleave",function(){y.hideTimer=G.setTimeout(y.hideMenu,500)}),(0,c.addEvent)(y,"mouseenter",function(){(0,c.internalClearTimeout)(y.hideTimer)}),(0,c.addEvent)(D,"mouseup",function(t){l.pointer?.inClass(t.target,e)||y.hideMenu()}),(0,c.addEvent)(y,"click",function(){l.exporting?.openMenu&&y.hideMenu()})),t.forEach(function(e){if("string"==typeof e&&s.options.menuItemDefinitions?.[e]&&(e=s.options.menuItemDefinitions[e]),(0,c.isObject)(e,!0)){let t;e.separator?(t=(0,c.createElement)("li",{className:"highcharts-menu-item highcharts-separator",role:"separator"},void 0,m),l.styledMode||(0,c.css)(t,{border:"none",backgroundColor:"var(--highcharts-neutral-color-40)",height:"0.5px",margin:"10px 0",padding:0,listStyle:"none","pointer-events":"none"})):("viewData"===e.textKey&&s.isDataTableVisible&&(e.textKey="hideData"),t=(0,c.createElement)("li",{className:"highcharts-menu-item",onclick:function(t){t&&t.stopPropagation(),y.hideMenu(),"string"!=typeof e&&e.onclick&&e.onclick.apply(l,arguments)}},void 0,m),p().setElementHTML(t,e.text||l.options.lang[e.textKey]),l.styledMode||(t.onmouseover=function(){(0,c.css)(this,h?.menuItemHoverStyle||{})},t.onmouseout=function(){(0,c.css)(this,h?.menuItemStyle||{})},(0,c.css)(t,(0,c.extend)({cursor:"pointer"},h?.menuItemStyle||{})))),s.divElements.push(t)}}),s.divElements.push(m,y),s.menuHeight=y.offsetHeight,s.menuWidth=y.offsetWidth);let x={display:"block"};n+(s.menuWidth||0)>d?x.right=d-n-r-f+"px":x.left=n-f+"px",i+o+(s.menuHeight||0)>u&&a.alignOptions?.verticalAlign!=="top"?x.bottom=u-i-f+"px":x.top=i+o-f+"px",(0,c.css)(y,x),(0,c.css)(l.renderTo,{overflow:""}),(0,c.css)(l.container,{overflow:""}),l.exporting&&(l.exporting.openMenu=!0),(0,c.fireEvent)(l,"exportMenuShown")}destroy(e){let t,n=e?e.target:this.chart,{divElements:i,events:r,svgElements:o}=this;o.forEach((e,i)=>{e&&(e.onclick=e.ontouchstart=null,n[t="cache-"+e.menuClassName]&&delete n[t],o[i]=e.destroy())}),o.length=0,this.group&&(this.group.destroy(),delete this.group),i.forEach(function(e,t){e&&((0,c.internalClearTimeout)(e.hideTimer),(0,c.removeEvent)(e,"mouseleave"),i[t]=e.onmouseout=e.onmouseover=e.ontouchstart=e.onclick=null,(0,c.discardElement)(e))}),i.length=0,r&&(r.forEach(function(e){e()}),r.length=0)}async downloadSVG(e,t){let n,i={svg:e,exportingOptions:t,exporting:this};if((0,c.fireEvent)(B.prototype,"downloadSVG",i),i.defaultPrevented)return;let{type:r,filename:o,scale:a,libURL:s}=B.prepareImageOptions(t);if("application/pdf"===r)throw Error("Offline exporting logic for PDF type is not found.");if("image/svg+xml"===r){if(void 0!==G.MSBlobBuilder){let t=new G.MSBlobBuilder;t.append(e),n=t.getBlob("image/svg+xml")}else n=B.svgToDataURL(e);S(n,o)}else{n=B.svgToDataURL(e);try{B.objectURLRevoke=!0;let e=await B.imageToDataURL(n,a,r);S(e,o)}catch(d){if("No canvas found!"===d.message)throw d;if(e.length>1e8)throw Error("Input too long");let t=D.createElement("canvas"),n=t.getContext("2d"),i=e.match(/^<svg[^>]*\s{,1000}width\s{,1000}=\s{,1000}\"?(\d+)\"?[^>]*>/),h=e.match(/^<svg[^>]*\s{0,1000}height\s{,1000}=\s{,1000}\"?(\d+)\"?[^>]*>/);if(n&&i&&h){let d=i[1]*a,p=h[1]*a;if(t.width=d,t.height=p,!G.canvg){var l;if(!s)throw Error("Image export requires canvg. Set exporting.libURL or preload canvg.");B.objectURLRevoke=!0,await (l=s+"canvg.js",new Promise((e,t)=>{let n=w.getElementsByTagName("head")[0],i=w.createElement("script");i.type="text/javascript",i.src=l,i.onload=()=>{e()},i.onerror=()=>{let e=`Error loading script ${l}`;(0,c.error)(e),t(Error(e))},n.appendChild(i)}))}G.canvg.Canvg.fromString(n,e).start(),S(G.navigator.msSaveOrOpenBlob?t.msToBlob():t.toDataURL(r),o)}}finally{if(B.objectURLRevoke)try{j.revokeObjectURL(n)}catch{}}}}async exportChart(e,t){if((e=(0,c.merge)(this.options,e)).local)await this.localExport(e,t||{});else{let n=await this.getSVGForExport(e,t);e.url&&await A.post(e.url,{filename:e.filename?e.filename.replace(/\//g,"-"):this.getFilename(),type:e.type,width:e.width,scale:e.scale,svg:n},e.fetchOptions)}}async fallbackToServer(e,t){!1===e.fallbackToExportServer?e.error?e.error(e,t):(0,c.error)(t?.message||28,!0,this.chart):"application/pdf"===e.type?(e.local=!1,await this.exportChart(e)):(0,c.error)(t.message,!1)}getChartHTML(e){let t=this.chart;return e&&this.inlineStyles(),this.resolveCSSVariables(),B.sanitizeDOM(t.renderer.box),t.container.querySelectorAll("canvas").forEach(function(e){let n=e.toDataURL("image/png"),i=e.parentNode,r=t.renderer.image(n,0,0,e.width,e.height);(0,c.css)(r.element,{width:e.style.width,height:e.style.height}),i.parentNode.insertBefore(r.element,i),i.remove()}),t.container.innerHTML}getFilename(){let e=this.chart.userOptions.title?.text,t=this.options.filename;return t?t.replace(/\//g,"-"):("string"==typeof e&&(t=e.toLowerCase().replace(/<\/?[^>]+(>|$)/g,"").replace(/[\s_]+/g,"-").replace(/[^a-z\d\-]/g,"").replace(/^[\-]+/g,"").replace(/[\-]+/g,"-").substr(0,24).replace(/[\-]+$/g,"")),(!t||t.length<5)&&(t="chart"),t)}getSVG(e,t){let n=this.chart,i,r,o=(0,c.merge)(n.options,e);o.plotOptions=(0,c.merge)(n.userOptions.plotOptions,e?.plotOptions),o.time=(0,c.merge)(n.userOptions.time,e?.time);let a=(0,c.createElement)("div",void 0,{position:"absolute",top:"-9999em",width:n.chartWidth+"px",height:n.chartHeight+"px"},D.body),s=n.renderTo.style.width,l=n.renderTo.style.height,h=o.exporting?.sourceWidth||o.chart.width||/px$/.test(s)&&parseInt(s,10)||(o.isGantt?800:600),d=o.exporting?.sourceHeight||o.chart.height||/px$/.test(l)&&parseInt(l,10)||400;(0,c.extend)(o.chart,{animation:!1,renderTo:a,forExport:!0,renderer:"SVGRenderer",width:h,height:d}),o.exporting&&(o.exporting.enabled=!1),delete o.data,o.series=[],n.series.forEach(function(e){(r=(0,c.merge)(e.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:e.visible})).isInternal||o?.series?.push(r)});let p={};n.axes.forEach(function(e){e.userOptions.internalKey||(e.userOptions.internalKey=(0,c.uniqueKey)()),o&&!e.options.isInternal&&(p[e.coll]||(p[e.coll]=!0,o[e.coll]=[]),o[e.coll].push((0,c.merge)(e.userOptions,{visible:e.visible,type:e.type,uniqueNames:e.uniqueNames})))}),o.colorAxis=n.userOptions.colorAxis;let u=t=>{e&&["xAxis","yAxis","series"].forEach(function(n){e[n]&&t.update({[n]:e[n]})}),n.axes.forEach(function(n){let i=(0,c.find)(t.axes,e=>e.options.internalKey===n.userOptions.internalKey);if(i){let t=n.getExtremes(),r=(0,c.splat)(e?.[n.coll]||{})[0],o="min"in r?r.min:t.userMin,a="max"in r?r.max:t.userMax;(void 0!==o&&o!==i.min||void 0!==a&&a!==i.max)&&i.setExtremes(o??void 0,a??void 0,!0,!1)}});let r=t.exporting;return r?.options.applyStyleSheets&&this.applyShadowDOMStyles(t),(0,c.fireEvent)(n,"getSVG",{chartCopy:t}),i=r?.getChartHTML(n.styledMode||o?.exporting?.applyStyleSheets)||"",i=B.sanitizeSVG(i,o),(0,c.fireEvent)(n,"afterGetSVG",{chartCopy:t,svg:i}),o=void 0,t.destroy(),(0,c.discardElement)(a),i};return t?new Promise(e=>new n.constructor(o||{},function(t){n.callback?.call(this,t);let i=(0,c.addEvent)(this,"render",function(){i(),e(u(this))})})):u(new n.constructor(o,n.callback))}applyShadowDOMStyles(e){let t=this.chart,n=[],i=t.container,r;for(;i&&(!(r=i.getRootNode())||"object"!=typeof r.host);)i=i.parentNode,r=null;r?.querySelectorAll("style").forEach(t=>{let i=t.cloneNode(!0);e.renderer.defs.element.appendChild(i),n.push(i)}),(0,c.addEvent)(t,"afterGetSVG",()=>{n.forEach(e=>{e.remove()})})}async getSVGForExport(e,t){let n=this.options;return await this.getSVG((0,c.merge)({chart:{borderRadius:0}},n.chartOptions,t,{exporting:{sourceWidth:e?.sourceWidth||n.sourceWidth,sourceHeight:e?.sourceHeight||n.sourceHeight}}),!0)}inlineStyles(){let e,t=B.inlineDenylist,n=B.inlineAllowlist,i={},r=(0,c.createElement)("iframe",void 0,{width:"1px",height:"1px",visibility:"hidden"},D.body),o=r.contentWindow?.document;o&&o.body.appendChild(o.createElementNS(U,"svg")),!function r(a){let s,l,h,d,p,u,g={};if(o&&1===a.nodeType&&-1===B.unstyledElements.indexOf(a.nodeName)){if(s=G.getComputedStyle(a,null),l="svg"===a.nodeName?{}:G.getComputedStyle(a.parentNode,null),!i[a.nodeName]){e=o.getElementsByTagName("svg")[0],h=o.createElementNS(a.namespaceURI,a.nodeName),e.appendChild(h);let t=G.getComputedStyle(h,null),n={};for(let e in t)e.length<1e3&&"string"==typeof t[e]&&!/^\d+$/.test(e)&&(n[e]=t[e]);i[a.nodeName]=n,"text"===a.nodeName&&delete i.text.fill,e.removeChild(h)}for(let e in s)(H||L||I||Object.hasOwnProperty.call(s,e))&&function(e,r){if(d=p=!1,n.length){for(u=n.length;u--&&!p;)p=n[u].test(r);d=!p}for("transform"===r&&"none"===e&&(d=!0),u=t.length;u--&&!d;){if(r.length>1e3)throw Error("Input too long");d=t[u].test(r)||"function"==typeof e}!d&&(l[r]!==e||"svg"===a.nodeName)&&i[a.nodeName][r]!==e&&(B.inlineToAttributes&&-1===B.inlineToAttributes.indexOf(r)?g[r]=e:e&&a.setAttribute(B.hyphenate(r),e))}(s[e],e);if((0,c.css)(a,g),"svg"===a.nodeName&&a.setAttribute("stroke-width","1px"),"text"===a.nodeName)return;[].forEach.call(a.children||a.childNodes,r)}}(this.chart.container.querySelector("svg")),e.parentNode.removeChild(e),r.parentNode.removeChild(r)}async localExport(e,t){let n=this.chart,i,r,o=null,a;if(L&&n.styledMode&&!B.inlineAllowlist.length&&B.inlineAllowlist.push(/^blockSize/,/^border/,/^caretColor/,/^color/,/^columnRule/,/^columnRuleColor/,/^cssFloat/,/^cursor/,/^fill$/,/^fillOpacity/,/^font/,/^inlineSize/,/^length/,/^lineHeight/,/^opacity/,/^outline/,/^parentRule/,/^rx$/,/^ry$/,/^stroke/,/^textAlign/,/^textAnchor/,/^textDecoration/,/^transform/,/^vectorEffect/,/^visibility/,/^x$/,/^y$/),L&&("application/pdf"===e.type||n.container.getElementsByTagName("image").length&&"image/svg+xml"!==e.type)||"application/pdf"===e.type&&[].some.call(n.container.getElementsByTagName("image"),function(e){let t=e.getAttribute("href");return""!==t&&"string"==typeof t&&0!==t.indexOf("data:")}))return void await this.fallbackToServer(e,Error("Image type not supported for this chart/browser."));let s=(0,c.addEvent)(n,"afterGetSVG",e=>{r=e.chartCopy.options,a=(i=e.chartCopy.container.cloneNode(!0))&&i.getElementsByTagName("image")||[]});try{let n;for(let n of(await this.getSVGForExport(e,t),a?Array.from(a):[]))if(o=n.getAttributeNS("http://www.w3.org/1999/xlink","href")){B.objectURLRevoke=!1;let t=await B.imageToDataURL(o,e?.scale||1,e?.type||"image/png");n.setAttributeNS("http://www.w3.org/1999/xlink","href",t)}else n.parentNode.removeChild(n);let s=i?.querySelector("svg");s&&!e.chartOptions?.chart?.style?.fontFamily&&await B.inlineFonts(s);let l=(n=i?.innerHTML,B.sanitizeSVG(n||"",r));if(l.indexOf("<foreignObject")>-1&&"image/svg+xml"!==e.type&&(L||"application/pdf"===e.type))throw Error("Image type not supported for charts with embedded HTML");return await this.downloadSVG(l,(0,c.extend)({filename:this.getFilename()},e)),l}catch(t){await this.fallbackToServer(e,t)}finally{s()}}moveContainers(e){let t=this.chart,{scrollablePlotArea:n}=t;(n?[n.fixedDiv,n.scrollingContainer]:[t.container]).forEach(function(t){e.appendChild(t)})}print(){let e=this.chart;this.isPrinting||(B.printingChart=e,I||this.beforePrint(),setTimeout(()=>{G.focus(),G.print(),I||setTimeout(()=>{e.exporting?.afterPrint()},1e3)},1))}render(){let e=this,{chart:t,options:n}=e,i=e?.isDirty||!e?.svgElements.length;e.buttonOffset=0,e.isDirty&&e.destroy(),i&&!1!==n.enabled&&(e.events=[],e.group||(e.group=t.renderer.g("exporting-group").attr({zIndex:3}).add()),(0,c.objectEach)(n?.buttons,function(t){e.addButton(t)}),e.isDirty=!1)}resolveCSSVariables(){Array.from(this.chart.container.querySelectorAll("*")).forEach(e=>{["color","fill","stop-color","stroke"].forEach(t=>{let n=e.getAttribute(t);n?.includes("var(")&&e.setAttribute(t,getComputedStyle(e).getPropertyValue(t));let i=e.style?.[t];i?.includes("var(")&&(e.style[t]=getComputedStyle(e).getPropertyValue(t))})})}update(e,t){this.isDirty=!0,(0,c.merge)(!0,this.options,e),(t??!0)&&this.chart.redraw()}}B.inlineAllowlist=[],B.inlineDenylist=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^\d+$/],B.inlineToAttributes=["fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","textAnchor","x","y"],B.loadEventDeferDelay=150*!!L,B.unstyledElements=["clipPath","defs","desc"],function(e){function t(e){let t=e.exporting;t&&(t.render(),(0,c.addEvent)(e,"redraw",function(){this.exporting?.render()}),(0,c.addEvent)(e,"destroy",function(){this.exporting?.destroy()}))}function n(){let t=this;t.options.exporting&&(t.exporting=new e(t,t.options.exporting),y.compose(t).navigation.addUpdate((e,n)=>{t.exporting&&(t.exporting.isDirty=!0,(0,c.merge)(!0,t.options.navigation,e),(n??!0)&&t.redraw())}))}function i({alignTo:e,key:t,textPxLength:n}){let i=this.options.exporting,{align:r,buttonSpacing:o=0,verticalAlign:a,width:s=0}=(0,c.merge)(this.options.navigation?.buttonOptions,i?.buttons?.contextButton),l=e.width-n,h=s+o;(i?.enabled??!0)&&"title"===t&&"right"===r&&"top"===a&&l<2*h&&(l<h?e.width-=h:this.title?.alignValue!=="left"&&(e.x-=h-l/2))}e.compose=function(r,o){O.compose(o),k.compose(r),(0,c.pushUnique)(M,"Exporting")&&((0,c.extend)(g().prototype,{exportChart:async function(e,t){await this.exporting?.exportChart(e,t)},getChartHTML:function(e){return this.exporting?.getChartHTML(e)},getFilename:function(){return this.exporting?.getFilename()},getSVG:function(e){return this.exporting?.getSVG(e,!1)},print:function(){return this.exporting?.print()}}),r.prototype.callbacks.push(t),(0,c.addEvent)(r,"afterInit",n),(0,c.addEvent)(r,"layOutTitle",i),I&&G.matchMedia("print").addListener(function(t){e.printingChart&&(t.matches?e.printingChart.exporting?.beforePrint():e.printingChart.exporting?.afterPrint())}),P(C))}}(B||(B={}));let V=h();V.Exporting=B,V.HttpUtilities=V.HttpUtilities||A,V.ajax=V.HttpUtilities.ajax,V.getJSON=V.HttpUtilities.getJSON,V.post=V.HttpUtilities.post,B.compose(V.Chart,V.Renderer);let $=h();return l.default})());
|
package/modules/exporting.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/modules/exporting
|
|
5
5
|
* @requires highcharts
|
|
6
6
|
*
|
|
@@ -2545,7 +2545,7 @@ class Exporting {
|
|
|
2545
2545
|
};
|
|
2546
2546
|
}
|
|
2547
2547
|
if (btnOptions.text && btnOptions.symbol) {
|
|
2548
|
-
theme.paddingLeft = (
|
|
2548
|
+
theme.paddingLeft = (theme.paddingLeft ?? 30);
|
|
2549
2549
|
}
|
|
2550
2550
|
else if (!btnOptions.text) {
|
|
2551
2551
|
(0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.extend)(theme, {
|
|
@@ -2558,8 +2558,8 @@ class Exporting {
|
|
|
2558
2558
|
.button(btnOptions.text || '', 0, 0, callback, theme, void 0, void 0, void 0, void 0, btnOptions.useHTML)
|
|
2559
2559
|
.addClass(options.className || '')
|
|
2560
2560
|
.attr({
|
|
2561
|
-
title: (
|
|
2562
|
-
btnOptions.titleKey)]
|
|
2561
|
+
title: (chart.options.lang[(btnOptions._titleKey ||
|
|
2562
|
+
btnOptions.titleKey)] ?? '')
|
|
2563
2563
|
});
|
|
2564
2564
|
button.menuClassName = (options.menuClassName ||
|
|
2565
2565
|
'highcharts-menu-' + exporting.btnCount++);
|
|
@@ -2588,7 +2588,7 @@ class Exporting {
|
|
|
2588
2588
|
.add(exporting.group)
|
|
2589
2589
|
.align((0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.extend)(btnOptions, {
|
|
2590
2590
|
width: button.width,
|
|
2591
|
-
x: (
|
|
2591
|
+
x: (btnOptions.x ?? exporting.buttonOffset) // #1654
|
|
2592
2592
|
}), true, 'spacingBox');
|
|
2593
2593
|
exporting.buttonOffset += (((button.width || 0) + (btnOptions.buttonSpacing || 0)) *
|
|
2594
2594
|
(btnOptions.align === 'right' ? -1 : 1));
|
|
@@ -3842,7 +3842,7 @@ class Exporting {
|
|
|
3842
3842
|
update(exportingOptions, redraw) {
|
|
3843
3843
|
this.isDirty = true;
|
|
3844
3844
|
(0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.merge)(true, this.options, exportingOptions);
|
|
3845
|
-
if (
|
|
3845
|
+
if (redraw ?? true) {
|
|
3846
3846
|
this.chart.redraw();
|
|
3847
3847
|
}
|
|
3848
3848
|
}
|
|
@@ -4064,7 +4064,7 @@ Exporting.unstyledElements = [
|
|
|
4064
4064
|
if (chart.exporting) {
|
|
4065
4065
|
chart.exporting.isDirty = true;
|
|
4066
4066
|
(0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.merge)(true, chart.options.navigation, options);
|
|
4067
|
-
if (
|
|
4067
|
+
if (redraw ?? true) {
|
|
4068
4068
|
chart.redraw();
|
|
4069
4069
|
}
|
|
4070
4070
|
}
|
package/modules/flowmap.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
!/**
|
|
2
|
-
* Highcharts JS v13.0.
|
|
2
|
+
* Highcharts JS v13.0.2 (2026-08-27)
|
|
3
3
|
* @module highcharts/modules/flowmap
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
* @requires highcharts/modules/map
|
|
@@ -8,4 +8,4 @@
|
|
|
8
8
|
*
|
|
9
9
|
* A commercial license may be required depending on use,
|
|
10
10
|
* see www.highcharts.com/license
|
|
11
|
-
*/function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/flowmap",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/flowmap"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("u"<typeof window?this:window,(t,e)=>(()=>{"use strict";var
|
|
11
|
+
*/function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/flowmap",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/flowmap"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("u"<typeof window?this:window,(t,e)=>(()=>{"use strict";var o={512(t){t.exports=e},944(e){e.exports=t}};let i={};function s(t){let e=i[t];if(void 0!==e)return e.exports;let r=i[t]={exports:{}};return o[t](r,r.exports,s),r.exports}s.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{if(Array.isArray(e))for(var o=0;o<e.length;){var i=e[o++],r=e[o++];s.o(t,i)?0===r&&o++:0===r?Object.defineProperty(t,i,{enumerable:!0,value:e[o++]}):Object.defineProperty(t,i,{enumerable:!0,get:r})}else for(var i in e)s.o(e,i)&&!s.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let r={};s.d(r,{default:()=>u});var n=s(944),a=s.n(n),h=s(512),p=s.n(h);let{seriesTypes:{mapline:{prototype:{pointClass:l}}}}=p(),d=class extends l{isValid(){let t=!!(this.options.to&&this.options.from);return[this.options.to,this.options.from].forEach(function(e){t=!!(t&&e&&((0,n.isString)(e)||(0,n.isNumber)(e[0]??e.lat)&&(0,n.isNumber)(e[1]??e.lon)))}),t}},{series:{prototype:{pointClass:f}},seriesTypes:{column:g,map:y,mapline:c}}=p();class m extends c{static getLength(t,e){return Math.sqrt(t*t+e*e)}static normalize(t,e){let o=this.getLength(t,e);return[t/o,e/o]}static markerEndPath(t,e,o,i){let s=(0,n.relativeLength)(i.width||0,this.getLength(e[0]-t[0],e[1]-t[1])),r=i.markerType||"arrow",[a,h]=this.normalize(e[0]-t[0],e[1]-t[1]),p=[];if("arrow"===r){let[i,r]=t;i-=a*s,r-=h*s,p.push(["L",i,r]),p.push(["L",o[0],o[1]]),[i,r]=e,i+=a*s,r+=h*s,p.push(["L",i,r])}if("mushroom"===r){let[i,r]=t,[n,l]=e,[d,f]=o,g=(n-i)/2+i,y=(l-r)/2+r;i-=a*s,r-=h*s,p.push(["L",i,r]),n+=a*s,l+=h*s,p.push(["Q",(d-g)*2+g,(f-y)*2+y,n,l])}return p}animate(t){let e=this.points;t||e.forEach(t=>{if(t.shapeArgs&&(0,n.isArray)(t.shapeArgs.d)&&t.shapeArgs.d.length){let e=t.shapeArgs.d,o=e[0][1],i=e[0][2];if(o&&i){let s=[];for(let t=0;t<e.length;t++){s.push([...e[t]]);for(let r=1;r<e[t].length;r++)s[t][r]=r%2?o:i}t.graphic&&(t.graphic.attr({d:s}),t.graphic.animate({d:e}))}}})}getLinkWidth(t){let e=this.options.width,o=t.options.weight||this.options.weight;if(t.options.weight=o,e&&!o)return e;let i=this.smallestWeight,s=this.greatestWeight;if(!(0,n.defined)(o)||!i||!s)return 0;let r=this.options.minWidth;return(o-i)*(this.options.maxWidth-r)/(s-i||1)+r}autoCurve(t,e,o,i,s,r){let n={x:o-t,y:i-e},a={x:(o-t)/2+t,y:(i-e)/2+e},h={x:a.x-s,y:a.y-r},p=n.x*h.x+n.y*h.y,l=Math.atan2(n.x*h.y-n.y*h.x,p),d=180*l/Math.PI;return d<0&&(d=360+d),-(.7*Math.sin(l=d*Math.PI/180))}pointAttribs(t,e){let o=y.prototype.pointAttribs.call(this,t,e);return o.fill=t.options.fillColor??t.options.color??("none"===this.options.fillColor?void 0:this.options.fillColor)??this.color,o["fill-opacity"]=t.options.fillOpacity??this.options.fillOpacity,o["stroke-width"]=t.options.lineWidth??this.options.lineWidth??1,t.options.opacity&&(o.opacity=t.options.opacity),o}translate(){this.chart.hasRendered&&(this.isDirtyData||!this.hasRendered)&&(this.processData(),this.generatePoints());let t=[],e=0,o=0;this.points.forEach(i=>{let s,r,a=this.chart,h=a.mapView,p=i.options,l=()=>{i.series.isDirty=!0},d=t=>{let e=a.get(t);if(e instanceof f&&e.plotX&&e.plotY)return(0,n.addEvent)(e,"update",l),{x:e.plotX,y:e.plotY}},g=t=>(0,n.isArray)(t)?{lon:t[0],lat:t[1]}:t;"string"==typeof p.from?s=d(p.from):"object"==typeof p.from&&h&&(s=h.lonLatToPixels(g(p.from))),"string"==typeof p.to?r=d(p.to):"object"==typeof p.to&&h&&(r=h.lonLatToPixels(g(p.to))),i.fromPos=s,i.toPos=r,s&&r&&(e+=(s.x+r.x)/2,o+=(s.y+r.y)/2),(i.options.weight??this.options.weight)&&t.push(i.options.weight??this.options.weight)}),this.smallestWeight=(0,n.arrayMin)(t),this.greatestWeight=(0,n.arrayMax)(t),this.centerOfPoints={x:e/this.points.length,y:o/this.points.length},this.points.forEach(t=>{if(!this.getLinkWidth(t)){t.shapeArgs={d:[]};return}t.fromPos&&(t.plotX=t.fromPos.x,t.plotY=t.fromPos.y),t.shapeType="path",t.shapeArgs=this.getPointShapeArgs(t),t.color=t.options.color??t.series.color})}getPointShapeArgs(t){let{fromPos:e,toPos:o}=t;if(!e||!o)return{};let i=this.getLinkWidth(t)/2,s=t.options,r=(0,n.merge)(this.options.markerEnd,s.markerEnd),a=s.growTowards??this.options.growTowards,h=e.x||0,p=e.y||0,l=o.x||0,d=o.y||0,f=s.curveFactor??this.options.curveFactor,g=r&&r.enabled&&r.height||0;if((0,n.defined)(f)||(f=this.autoCurve(h,p,l,d,this.centerOfPoints.x,this.centerOfPoints.y)),g){g=(0,n.relativeLength)(g,4*i);let t=l-h,e=d-p,o=h+(t*=.5),s=p+(e*=.5),r=t,a=o+(t=e)*f,y=s+(e=-r)*f,[c,u]=m.normalize(a-l,y-d);c*=g,u*=g,l+=c,d+=u}let y=l-h,c=d-p,u=h+(y*=.5),x=p+(c*=.5),w=y;y=c,c=-w;let[b,P]=m.normalize(y,c),v=1+.25*Math.sqrt(f*f);b*=i*v,P*=i*v;let L=u+y*f,A=x+c*f,[W,O]=m.normalize(L-h,A-p);w=W,W=O,O=-w,W*=i,O*=i;let[M,k]=m.normalize(L-l,A-d);w=M,M=-k,k=w,M*=i,k*=i,a&&(W/=i,O/=i,b/=4,P/=4);let C={d:[["M",h-W,p-O],["Q",L-b,A-P,l-M,d-k],["L",l+M,d+k],["Q",L+b,A+P,h+W,p+O],["Z"]]};if(r&&r.enabled&&C.d){let t=m.markerEndPath([l-M,d-k],[l+M,d+k],[o.x,o.y],r);C.d.splice(2,0,...t)}let E=t.options.from,T=t.options.to,j=E.lat,S=E.lon,z=T.lat,H=T.lon;return j&&S&&(t.options.from=`${+j}, ${+S}`),z&&H&&(t.options.to=`${+z}, ${+H}`),C}}m.defaultOptions=(0,n.merge)(c.defaultOptions,{animation:!0,dataLabels:{enabled:!1},fillOpacity:.5,markerEnd:{enabled:!0,height:"40%",width:"40%",markerType:"arrow"},width:1,maxWidth:25,minWidth:5,lineWidth:void 0,tooltip:{headerFormat:'<span style="font-size: 0.8em">{series.name}</span><br/>',pointFormat:"{point.options.from} → {point.options.to}: <b>{point.options.weight}</b>"}}),(0,n.extend)(m.prototype,{pointClass:d,pointArrayMap:["from","to","weight"],drawPoints:g.prototype.drawPoints,getDataColumnKeys:g.prototype.getDataColumnKeys,useMapGeometry:!0}),p().registerSeriesType("flowmap",m);let u=a();return r.default})());
|
package/modules/flowmap.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/modules/flowmap
|
|
5
5
|
* @requires highcharts
|
|
6
6
|
* @requires highcharts/modules/map
|
|
@@ -158,8 +158,10 @@ class FlowMapPoint extends MapLinePoint {
|
|
|
158
158
|
[this.options.to, this.options.from]
|
|
159
159
|
.forEach(function (toOrFrom) {
|
|
160
160
|
valid = !!(valid && (toOrFrom && ((0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.isString)(toOrFrom) || ( // Point id or has lat/lon coords
|
|
161
|
-
(0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.isNumber)(
|
|
162
|
-
|
|
161
|
+
(0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.isNumber)(toOrFrom[0] ??
|
|
162
|
+
toOrFrom.lat) &&
|
|
163
|
+
(0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.isNumber)(toOrFrom[1] ??
|
|
164
|
+
toOrFrom.lon)))));
|
|
163
165
|
});
|
|
164
166
|
return valid;
|
|
165
167
|
}
|
|
@@ -356,9 +358,17 @@ class FlowMapSeries extends MapLineSeries {
|
|
|
356
358
|
*/
|
|
357
359
|
pointAttribs(point, state) {
|
|
358
360
|
const attrs = MapSeries.prototype.pointAttribs.call(this, point, state);
|
|
359
|
-
attrs.fill =
|
|
360
|
-
|
|
361
|
-
|
|
361
|
+
attrs.fill =
|
|
362
|
+
point.options.fillColor ??
|
|
363
|
+
point.options.color ??
|
|
364
|
+
(this.options.fillColor === 'none' ?
|
|
365
|
+
void 0 :
|
|
366
|
+
this.options.fillColor) ??
|
|
367
|
+
this.color;
|
|
368
|
+
attrs['fill-opacity'] =
|
|
369
|
+
point.options.fillOpacity ?? this.options.fillOpacity;
|
|
370
|
+
attrs['stroke-width'] =
|
|
371
|
+
point.options.lineWidth ?? this.options.lineWidth ?? 1;
|
|
362
372
|
if (point.options.opacity) {
|
|
363
373
|
attrs.opacity = point.options.opacity;
|
|
364
374
|
}
|
|
@@ -425,8 +435,8 @@ class FlowMapSeries extends MapLineSeries {
|
|
|
425
435
|
averageX += (fromPos.x + toPos.x) / 2;
|
|
426
436
|
averageY += (fromPos.y + toPos.y) / 2;
|
|
427
437
|
}
|
|
428
|
-
if (
|
|
429
|
-
weights.push(
|
|
438
|
+
if (point.options.weight ?? this.options.weight) {
|
|
439
|
+
weights.push(point.options.weight ?? this.options.weight);
|
|
430
440
|
}
|
|
431
441
|
});
|
|
432
442
|
this.smallestWeight = (0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.arrayMin)(weights);
|
|
@@ -452,7 +462,7 @@ class FlowMapSeries extends MapLineSeries {
|
|
|
452
462
|
point.shapeArgs = this.getPointShapeArgs(point);
|
|
453
463
|
// When updating point from null to normal value, set a real color
|
|
454
464
|
// (don't keep nullColor).
|
|
455
|
-
point.color = (
|
|
465
|
+
point.color = (point.options.color ?? point.series.color);
|
|
456
466
|
});
|
|
457
467
|
}
|
|
458
468
|
getPointShapeArgs(point) {
|
|
@@ -460,8 +470,8 @@ class FlowMapSeries extends MapLineSeries {
|
|
|
460
470
|
if (!fromPos || !toPos) {
|
|
461
471
|
return {};
|
|
462
472
|
}
|
|
463
|
-
const finalWidth = this.getLinkWidth(point) / 2, pointOptions = point.options, markerEndOptions = (0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.merge)(this.options.markerEnd, pointOptions.markerEnd), growTowards =
|
|
464
|
-
let toX = toPos.x || 0, toY = toPos.y || 0, curveFactor =
|
|
473
|
+
const finalWidth = this.getLinkWidth(point) / 2, pointOptions = point.options, markerEndOptions = (0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.merge)(this.options.markerEnd, pointOptions.markerEnd), growTowards = pointOptions.growTowards ?? this.options.growTowards, fromX = fromPos.x || 0, fromY = fromPos.y || 0;
|
|
474
|
+
let toX = toPos.x || 0, toY = toPos.y || 0, curveFactor = pointOptions.curveFactor ?? this.options.curveFactor, offset = markerEndOptions && markerEndOptions.enabled &&
|
|
465
475
|
markerEndOptions.height || 0;
|
|
466
476
|
if (!(0,highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_.defined)(curveFactor)) { // Automate the curveFactor value.
|
|
467
477
|
curveFactor = this.autoCurve(fromX, fromY, toX, toY, this.centerOfPoints.x, this.centerOfPoints.y);
|
package/modules/full-screen.js
CHANGED
package/modules/funnel.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
!/**
|
|
2
|
-
* Highcharts JS v13.0.
|
|
2
|
+
* Highcharts JS v13.0.2 (2026-08-27)
|
|
3
3
|
* @module highcharts/modules/funnel
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
*
|
|
@@ -10,4 +10,4 @@
|
|
|
10
10
|
*
|
|
11
11
|
* A commercial license may be required depending on use,
|
|
12
12
|
* see www.highcharts.com/license
|
|
13
|
-
*/function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/funnel",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/funnel"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("u"<typeof window?this:window,(t,e)=>(()=>{"use strict";var i={512(t){t.exports=e},944(e){e.exports=t}};let a={};function s(t){let e=a[t];if(void 0!==e)return e.exports;let r=a[t]={exports:{}};return i[t](r,r.exports,s),r.exports}s.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{if(Array.isArray(e))for(var i=0;i<e.length;){var a=e[i++],r=e[i++];s.o(t,a)?0===r&&i++:0===r?Object.defineProperty(t,a,{enumerable:!0,value:e[i++]}):Object.defineProperty(t,a,{enumerable:!0,get:r})}else for(var a in e)s.o(e,a)&&!s.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let r={};s.d(r,{default:()=>W});var d=s(944),o=s.n(d);let{defaultOptions:n}=o(),{noop:l}=o(),h={radius:0,scope:"stack",where:void 0};var p=s(512),c=s.n(p);let{composed:g,noop:u}=o(),{column:x,pie:y}=c().seriesTypes,f=c().series.prototype.alignDataLabel;function b(t,e){return/%$/.test(t)?e*parseInt(t,10)/100:parseInt(t,10)}class L extends y{alignDataLabel(t,e,i,a,s){let r=t.series,o=r.options.reversed,n=t.dlBox||t.shapeArgs,{align:l,verticalAlign:h}=i,p=(0,d.splat)(i.padding||0),c=((r.options||{}).dataLabels||{}).inside,g=r.center[1],u=t.plotY||0,x=e.height??e.getBBox().height,y=r.getWidthAt((o?2*g-u:u)-n.height/2+x),b="middle"===h?(n.topWidth-n.bottomWidth)/4:(y-n.bottomWidth)/2,L=n.y,m=n.x;"middle"===h?L=n.y-n.height/2+x/2:"top"===h&&(L=n.y-n.height+x+p[0]),("top"===h&&!o||"bottom"===h&&o||"middle"===h)&&("right"===l?m=n.x-p[1%p.length]+b:"left"===l&&(m=n.x+p[3%p.length]-b)),a={x:m,y:o?L-n.height:L,width:n.bottomWidth,height:n.height},i.verticalAlign="bottom",c&&(i.distance=void 0),c&&t.visible&&f.call(r,t,e,i,a,s),c&&(!t.visible&&t.dataLabel&&(t.dataLabel.placed=!1),t.contrastColor&&e.css({color:t.contrastColor}))}drawDataLabels(){((0,d.splat)(this.options.dataLabels||{})[0].inside?x:y).prototype.drawDataLabels.call(this)}getDataLabelPosition(t,e){let i=t.plotY||0,a=t.half?1:-1,s=this.getXPos(i,!!t.half,t);return{distance:e,natural:{x:0,y:i},computed:{},alignment:t.half?"right":"left",connectorPosition:{breakAt:{x:s+(e-5)*a,y:i},touchingSliceAt:{x:s+e*a,y:i}}}}translate(){var t;let e=this,i=e.chart,a=e.options,s=a.reversed,r=a.ignoreHiddenPoint,o=(t=a.borderRadius,(0,d.isObject)(t)||(t={radius:t||0}),(0,d.merge)(h,void 0,t)),n=i.plotWidth,l=i.plotHeight,p=a.center,c=b(p[0],n),g=b(p[1],l),x=b(a.width,n),y=b(a.height,l),f=b(a.neckWidth,n),L=b(a.neckHeight,l),m=g-y/2+y-L,v=e.points,M=(0,d.relativeLength)(o.radius,x),A=o.scope,W=+("left"===a.dataLabels.position),P=(t,e)=>{let i=Math.tan(t/2),a=Math.cos(D),r=Math.sin(D),d=M,o=d/i,n=Math.tan((Math.PI-t)/3.2104);return o>e&&(d=(o=e)*i),{dx:[o*a,(o-(n*=d))*a,o-n,o],dy:[o*r,(o-n)*r,o-n,o].map(t=>s?-t:t)}},C=0,H=0,
|
|
13
|
+
*/function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/funnel",["highcharts/highcharts"],function(t){return e(t,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/funnel"]=e(t._Highcharts,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SeriesRegistry)}("u"<typeof window?this:window,(t,e)=>(()=>{"use strict";var i={512(t){t.exports=e},944(e){e.exports=t}};let a={};function s(t){let e=a[t];if(void 0!==e)return e.exports;let r=a[t]={exports:{}};return i[t](r,r.exports,s),r.exports}s.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return s.d(e,{a:e}),e},s.d=(t,e)=>{if(Array.isArray(e))for(var i=0;i<e.length;){var a=e[i++],r=e[i++];s.o(t,a)?0===r&&i++:0===r?Object.defineProperty(t,a,{enumerable:!0,value:e[i++]}):Object.defineProperty(t,a,{enumerable:!0,get:r})}else for(var a in e)s.o(e,a)&&!s.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},s.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let r={};s.d(r,{default:()=>W});var d=s(944),o=s.n(d);let{defaultOptions:n}=o(),{noop:l}=o(),h={radius:0,scope:"stack",where:void 0};var p=s(512),c=s.n(p);let{composed:g,noop:u}=o(),{column:x,pie:y}=c().seriesTypes,f=c().series.prototype.alignDataLabel;function b(t,e){return/%$/.test(t)?e*parseInt(t,10)/100:parseInt(t,10)}class L extends y{alignDataLabel(t,e,i,a,s){let r=t.series,o=r.options.reversed,n=t.dlBox||t.shapeArgs,{align:l,verticalAlign:h}=i,p=(0,d.splat)(i.padding||0),c=((r.options||{}).dataLabels||{}).inside,g=r.center[1],u=t.plotY||0,x=e.height??e.getBBox().height,y=r.getWidthAt((o?2*g-u:u)-n.height/2+x),b="middle"===h?(n.topWidth-n.bottomWidth)/4:(y-n.bottomWidth)/2,L=n.y,m=n.x;"middle"===h?L=n.y-n.height/2+x/2:"top"===h&&(L=n.y-n.height+x+p[0]),("top"===h&&!o||"bottom"===h&&o||"middle"===h)&&("right"===l?m=n.x-p[1%p.length]+b:"left"===l&&(m=n.x+p[3%p.length]-b)),a={x:m,y:o?L-n.height:L,width:n.bottomWidth,height:n.height},i.verticalAlign="bottom",c&&(i.distance=void 0),c&&t.visible&&f.call(r,t,e,i,a,s),c&&(!t.visible&&t.dataLabel&&(t.dataLabel.placed=!1),t.contrastColor&&e.css({color:t.contrastColor}))}drawDataLabels(){((0,d.splat)(this.options.dataLabels||{})[0].inside?x:y).prototype.drawDataLabels.call(this)}getDataLabelPosition(t,e){let i=t.plotY||0,a=t.half?1:-1,s=this.getXPos(i,!!t.half,t);return{distance:e,natural:{x:0,y:i},computed:{},alignment:t.half?"right":"left",connectorPosition:{breakAt:{x:s+(e-5)*a,y:i},touchingSliceAt:{x:s+e*a,y:i}}}}translate(){var t;let e=this,i=e.chart,a=e.options,s=a.reversed,r=a.ignoreHiddenPoint,o=(t=a.borderRadius,(0,d.isObject)(t)||(t={radius:t||0}),(0,d.merge)(h,void 0,t)),n=i.plotWidth,l=i.plotHeight,p=a.center,c=b(p[0],n),g=b(p[1],l),x=b(a.width,n),y=b(a.height,l),f=b(a.neckWidth,n),L=b(a.neckHeight,l),m=g-y/2+y-L,v=e.points,M=(0,d.relativeLength)(o.radius,x),A=o.scope,W=+("left"===a.dataLabels.position),P=(t,e)=>{let i=Math.tan(t/2),a=Math.cos(D),r=Math.sin(D),d=M,o=d/i,n=Math.tan((Math.PI-t)/3.2104);return o>e&&(d=(o=e)*i),{dx:[o*a,(o-(n*=d))*a,o-n,o],dy:[o*r,(o-n)*r,o-n,o].map(t=>s?-t:t)}},C=0,H=0,w=-1,k=-1,O,j,S,D,I,R,Y,_,B,T,X;for(let t of(e.getWidthAt=function(t){let e=g-y/2;return t>m||y===L?f:f+(x-f)*(1-(t-e)/(y-L))},e.getXPos=function(t,i,a){return c+(i?-1:1)*(e.getWidthAt(s?2*g-t:t)/2+(a.dataLabel?.dataLabelPosition?.distance??(0,d.relativeLength)(this.options.dataLabels?.distance||0,x)))},e.center=[c,g,y],e.centerX=c,v))t.y&&t.isValid()&&(!r||!1!==t.visible)&&(C+=t.y,-1===w&&(w=t.index),k=t.index);for(let t of v){if(X=null,S=C?t.y/C:0,B=(R=g-y/2+H*y)+S*y,Y=(I=c-(O=e.getWidthAt(R))/2)+O,T=(_=c-(O=e.getWidthAt(B))/2)+O,(0,d.correctFloat)(R)>=m?(I=_=c-f/2,Y=T=c+f/2):B>m&&(X=B,T=(_=c-(O=e.getWidthAt(m))/2)+O,B=m),s&&(R=2*g-R,B=2*g-B,null!==X&&(X=2*g-X)),M&&("point"===A||t.index===w||t.index===k||null!==X)){let e=Math.abs(B-R),i=Y-T,a=T-_,s=Math.sqrt(i*i+e*e),r=Y-I,d=P(D=Math.atan(0!==i?e/i:1/0),Math.min(r,s)/2);if(j="stack"===A&&t.index!==w?[["M",I,R],["L",Y,R]]:[["M",I+d.dx[0],R+d.dy[0]],["C",I+d.dx[1],R+d.dy[1],I+d.dx[2],R,I+d.dx[3],R],["L",Y-d.dx[3],R],["C",Y-d.dx[2],R,Y-d.dx[1],R+d.dy[1],Y-d.dx[0],R+d.dy[0]]],null!==X){let e=Math.abs(X-B),i=P(Math.PI/2,Math.min(a,e)/2);d=P(Math.PI/2+D,Math.min(s,e)/2),j.push(["L",T+d.dx[0],B-d.dy[0]],["C",T+d.dx[1],B-d.dy[1],T,B+d.dy[2],T,B+d.dy[3]]),"stack"===A&&t.index!==k?j.push(["L",T,X],["L",_,X]):j.push(["L",T,X-i.dy[3]],["C",T,X-i.dy[2],T-i.dx[2],X,T-i.dx[3],X],["L",_+i.dx[3],X],["C",_+i.dx[2],X,_,X-i.dy[2],_,X-i.dy[3]]),j.push(["L",_,B+d.dy[3]],["C",_,B+d.dy[2],_-d.dx[1],B-d.dy[1],_-d.dx[0],B-d.dy[0]])}else a>=1?(d=P(Math.PI-D,Math.min(s,a)/2),"stack"===A&&t.index!==k?j.push(["L",T,B],["L",_,B]):j.push(["L",T+d.dx[0],B-d.dy[0]],["C",T+d.dx[1],B-d.dy[1],T-d.dx[2],B,T-d.dx[3],B],["L",_+d.dx[3],B],["C",_+d.dx[2],B,_-d.dx[1],B-d.dy[1],_-d.dx[0],B-d.dy[0]])):(d=P(Math.PI-2*D,s/2),j.push(["L",_+d.dx[0],B-d.dy[0]],["C",_+d.dx[1],B-d.dy[1],_-d.dx[1],B-d.dy[1],_-d.dx[0],B-d.dy[0]]))}else j=[["M",I,R],["L",Y,R],["L",T,B]],null!==X&&j.push(["L",T,X],["L",_,X]),j.push(["L",_,B]);j.push(["Z"]),t.shapeType="path",t.shapeArgs={d:j},t.percentage=100*S,t.plotX=c,t.plotY=(R+(X||B))/2,t.tooltipPos=[c,t.plotY],t.dlBox={x:_,y:R,topWidth:Y-I,bottomWidth:T-_,height:Math.abs((X??B)-R),width:NaN},t.slice=u,t.half=W,t.isValid()&&(!r||!1!==t.visible)&&(H+=S)}(0,d.fireEvent)(e,"afterTranslate")}sortByAngle(t){t.sort((t,e)=>t.plotY-e.plotY)}}function m(){for(let t of this.series){let e=t.options&&t.options.dataLabels;(0,d.isArray)(e)&&(e=e[0]),t.is("pie")&&t.placeDataLabels&&e&&!e.inside&&t.placeDataLabels()}}L.defaultOptions=(0,d.merge)(y.defaultOptions,{animation:!1,borderRadius:0,center:["50%","50%"],width:"90%",neckWidth:"30%",height:"100%",neckHeight:"25%",reversed:!1,size:!0,dataLabels:{connectorWidth:1,verticalAlign:"middle"},states:{select:{color:"var(--highcharts-neutral-color-20)",borderColor:"var(--highcharts-neutral-color-100)"}}}),(0,d.extend)(L.prototype,{animate:u}),(L||(L={})).compose=function(t){(0,d.pushUnique)(g,"FunnelSeries")&&(0,d.addEvent)(t,"afterHideAllOverlappingLabels",m)},c().registerSeriesType("funnel",L);let v=L;class M extends v{}M.defaultOptions=(0,d.merge)(v.defaultOptions,{neckHeight:"0%",neckWidth:"0%",reversed:!0}),c().registerSeriesType("pyramid",M);let A=o();v.compose(A.Chart);let W=o();return r.default})());
|
package/modules/funnel.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/modules/funnel
|
|
5
5
|
* @requires highcharts
|
|
6
6
|
*
|
|
@@ -1140,7 +1140,7 @@ class FunnelSeries extends PieSeries {
|
|
|
1140
1140
|
y: y1,
|
|
1141
1141
|
topWidth: x2 - x1,
|
|
1142
1142
|
bottomWidth: x4 - x3,
|
|
1143
|
-
height: Math.abs((
|
|
1143
|
+
height: Math.abs((y5 ?? y3) - y1),
|
|
1144
1144
|
width: NaN
|
|
1145
1145
|
};
|
|
1146
1146
|
// Slice is a noop on funnel points
|
package/modules/funnel3d.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
!/**
|
|
2
|
-
* Highcharts JS v13.0.
|
|
2
|
+
* Highcharts JS v13.0.2 (2026-08-27)
|
|
3
3
|
* @module highcharts/modules/funnel3d
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
* @requires highcharts/highcharts-3d
|
|
@@ -12,4 +12,4 @@
|
|
|
12
12
|
*
|
|
13
13
|
* A commercial license may be required depending on use,
|
|
14
14
|
* see www.highcharts.com/license
|
|
15
|
-
*/function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SVGRenderer,t._Highcharts.Color,t._Highcharts.SVGElement,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/funnel3d",["highcharts/highcharts"],function(t){return e(t,t.SVGRenderer,t.Color,t.SVGElement,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/funnel3d"]=e(t._Highcharts,t._Highcharts.SVGRenderer,t._Highcharts.Color,t._Highcharts.SVGElement,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SVGRenderer,t.Highcharts.Color,t.Highcharts.SVGElement,t.Highcharts.SeriesRegistry)}("u"<typeof window?this:window,(t,e,r,i,s)=>(()=>{"use strict";var o={620(t){t.exports=r},28(t){t.exports=i},540(t){t.exports=e},512(t){t.exports=s},944(e){e.exports=t}};let n={};function h(t){let e=n[t];if(void 0!==e)return e.exports;let r=n[t]={exports:{}};return o[t](r,r.exports,h),r.exports}h.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return h.d(e,{a:e}),e},h.d=(t,e)=>{if(Array.isArray(e))for(var r=0;r<e.length;){var i=e[r++],s=e[r++];h.o(t,i)?0===s&&r++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[r++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)h.o(e,i)&&!h.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},h.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let d={};h.d(d,{default:()=>j});var a=h(944),l=h.n(a),p=h(540),g=h.n(p),c=h(620),f=h.n(c),u=h(28),y=h.n(u);let{parse:x}=f();class m extends y(){constructor(){super(...arguments),this.parts=["front","top","side"],this.pathType="cuboid"}initArgs(t){let e=this.renderer,r=e[this.pathType+"Path"](t),i=r.zIndexes;for(let t of this.parts){let s={class:"highcharts-3d-"+t,zIndex:i[t]||0};e.styledMode&&("top"===t?s.filter="url(#highcharts-brighter)":"side"===t&&(s.filter="url(#highcharts-darker)")),this[t]=e.path(r[t]).attr(s).add(this)}this.attr({"stroke-linejoin":"round",zIndex:i.group}),this.forcedSides=r.forcedSides}singleSetterForParts(t,e,r,i,s,o){let n={},h=[null,null,i||"attr",s,o],d=r?.zIndexes;if(r){for(let e of(d?.group&&this.attr({zIndex:d.group}),Object.keys(r)))n[e]={},n[e][t]=r[e],d&&(n[e].zIndex=r.zIndexes[e]||0);h[1]=n}else n[t]=e,h[0]=n;return this.processParts.apply(this,h)}processParts(t,e,r,i,s){for(let o of this.parts)e&&(t=(0,a.pick)(e[o],!1)),!1!==t&&this[o][r](t,i,s);return this}destroy(){return this.processParts(null,null,"destroy"),super.destroy()}attr(t,e,r,i){if("string"==typeof t&&void 0!==e){let r=t;(t={})[r]=e}return t.shapeArgs||(0,a.defined)(t.x)?this.singleSetterForParts("d",null,this.renderer[this.pathType+"Path"](t.shapeArgs||t)):super.attr(t,void 0,r,i)}animate(t,e,r){if((0,a.defined)(t.x)&&(0,a.defined)(t.y)){let i=this.renderer[this.pathType+"Path"](t),s=i.forcedSides;this.singleSetterForParts("d",null,i,"animate",e,r),this.attr({zIndex:i.zIndexes.group}),s!==this.forcedSides&&(this.forcedSides=s,this.renderer.styledMode||this.fillSetter(this.fill))}else super.animate(t,e,r);return this}fillSetter(t){return this.forcedSides=this.forcedSides||[],this.singleSetterForParts("fill",null,{front:t,top:x(t).brighten(this.forcedSides.indexOf("top")>=0?0:.1).get(),side:x(t).brighten(this.forcedSides.indexOf("side")>=0?0:-.1).get()}),this.color=this.fill=t,this}}m.types={base:m,cuboid:m};let w=m,{parse:b}=f(),{charts:S}=l(),z=class extends w{constructor(){super(...arguments),this.mainParts=["top","bottom"],this.parts=["top","bottom","frontUpper","backUpper","frontLower","backLower","rightUpper","rightLower"],this.sideGroups=["upperGroup","lowerGroup"],this.sideParts={upperGroup:["frontUpper","backUpper","rightUpper"],lowerGroup:["frontLower","backLower","rightLower"]},this.pathType="funnel3d"}opacitySetter(t){let e=parseFloat(t),r=this.parts,i=S[this.renderer.chartIndex],s="group-opacity-"+e+"-"+i.index;if(this.parts=this.mainParts,this.singleSetterForParts("opacity",e),this.parts=r,!i.renderer.filterId){for(let t of(i.renderer.definition({tagName:"filter",attributes:{id:s},children:[{tagName:"feComponentTransfer",children:[{tagName:"feFuncA",attributes:{type:"table",tableValues:"0 "+e}}]}]}),this.sideGroups))this[t].attr({filter:"url(#"+s+")"});if(this.renderer.styledMode)for(let t of(i.renderer.definition({tagName:"style",textContent:".highcharts-"+s+" {filter:url(#"+s+")}"}),this.sideGroups))this[t].addClass("highcharts-"+s)}return this}fillSetter(t){let e=b(t),r=e.rgba[3],i={top:b(t).brighten(.1).get(),bottom:b(t).brighten(-.2).get()};if(r<1?(e.rgba[3]=1,e=e.get("rgb"),this.attr({opacity:r})):e=t,e.linearGradient||e.radialGradient||!this.gradientForSides||(e={linearGradient:{x1:0,x2:1,y1:1,y2:1},stops:[[0,b(t).brighten(-.2).get()],[.5,t],[1,b(t).brighten(-.2).get()]]}),e.linearGradient)for(let t of this.sideGroups){let r=this[t].gradientBox,s=e.linearGradient,o=(0,a.merge)(e,{linearGradient:{x1:r.x+s.x1*r.width,y1:r.y+s.y1*r.height,x2:r.x+s.x2*r.width,y2:r.y+s.y2*r.height}});for(let e of this.sideParts[t])i[e]=o}else if((0,a.merge)(!0,i,{frontUpper:e,backUpper:e,rightUpper:e,frontLower:e,backLower:e,rightLower:e}),e.radialGradient)for(let t of this.sideGroups){let e=this[t].gradientBox,r=e.x+e.width/2,i=e.y+e.height/2,s=Math.min(e.width,e.height);for(let e of this.sideParts[t])this[e].setRadialReference([r,i,s])}if(this.singleSetterForParts("fill",null,i),this.color=this.fill=t,e.linearGradient)for(let t of[this.frontLower,this.frontUpper]){let e=t.element,r=e&&this.renderer.gradients[e.gradient];r&&"userSpaceOnUse"!==r.attr("gradientUnits")&&r.attr({gradientUnits:"userSpaceOnUse"})}return this}adjustForGradient(){let t;for(let e of this.sideGroups){let r={x:Number.MAX_VALUE,y:Number.MAX_VALUE},i={x:-Number.MAX_VALUE,y:-Number.MAX_VALUE};for(let s of this.sideParts[e])t=this[s].getBBox(!0),r={x:Math.min(r.x,t.x),y:Math.min(r.y,t.y)},i={x:Math.max(i.x,t.x+t.width),y:Math.max(i.y,t.y+t.height)};this[e].gradientBox={x:r.x,width:i.x-r.x,y:r.y,height:i.y-r.y}}}zIndexSetter(){return this.finishedOnAdd&&this.adjustForGradient(),this.renderer.Element.prototype.zIndexSetter.apply(this,arguments)}onAdd(){this.adjustForGradient(),this.finishedOnAdd=!0}},{charts:A}=l();function k(t){let e=this.element3d("funnel3d",t),r=this.styledMode,i={"stroke-width":1,stroke:"none"};for(let t of(e.upperGroup=this.g("funnel3d-upper-group").attr({zIndex:e.frontUpper.zIndex}).add(e),[e.frontUpper,e.backUpper,e.rightUpper]))r||t.attr(i),t.add(e.upperGroup);for(let t of(e.lowerGroup=this.g("funnel3d-lower-group").attr({zIndex:e.frontLower.zIndex}).add(e),[e.frontLower,e.backLower,e.rightLower]))r||t.attr(i),t.add(e.lowerGroup);return e.gradientForSides=t.gradientForSides,e}function L(t){this.getCylinderEnd||(0,a.error)("A required Highcharts module is missing: cylinder.js",!0,A[this.chartIndex]);let e=A[this.chartIndex],r=t.alphaCorrection=90-Math.abs(e.options.chart.options3d.alpha%180-90),i=this.cuboidPath.call(this,(0,a.merge)(t,{depth:t.width,width:(t.width+t.bottom.width)/2})),s=i.isTop,o=!i.isFront,n=!!t.middle,h=this.getCylinderEnd(e,(0,a.merge)(t,{x:t.x-t.width/2,z:t.z-t.width/2,alphaCorrection:r})),d=t.bottom.width,l=(0,a.merge)(t,{width:d,x:t.x-d/2,z:t.z-d/2,alphaCorrection:r}),p=this.getCylinderEnd(e,l,!0),g=d,c=l,f=p,u=p,y;n&&(g=t.middle.width,c=(0,a.merge)(t,{y:t.y+t.middle.fraction*t.height,width:g,x:t.x-g/2,z:t.z-g/2}),f=this.getCylinderEnd(e,c,!1),u=this.getCylinderEnd(e,c,!1));let x={top:h,bottom:p,frontUpper:this.getCylinderFront(h,f),zIndexes:{group:i.zIndexes.group,top:3*(0===s),bottom:3*(1===s),frontUpper:o?2:1,backUpper:o?1:2,rightUpper:o?2:1}};return x.backUpper=this.getCylinderBack(h,f),y=Math.min(g,t.width)/Math.max(g,t.width)!=1,x.rightUpper=this.getCylinderFront(this.getCylinderEnd(e,(0,a.merge)(t,{x:t.x-t.width/2,z:t.z-t.width/2,alphaCorrection:y?-r:0}),!1),this.getCylinderEnd(e,(0,a.merge)(c,{alphaCorrection:y?-r:0}),!n)),n&&(y=Math.min(g,d)/Math.max(g,d)!=1,(0,a.merge)(!0,x,{frontLower:this.getCylinderFront(u,p),backLower:this.getCylinderBack(u,p),rightLower:this.getCylinderFront(this.getCylinderEnd(e,(0,a.merge)(l,{alphaCorrection:y?-r:0}),!0),this.getCylinderEnd(e,(0,a.merge)(c,{alphaCorrection:y?-r:0}),!1)),zIndexes:{frontLower:o?2:1,backLower:o?1:2,rightLower:o?1:2}})),x}var v=h(512),C=h.n(v);let{seriesTypes:{column:G}}=C();class P extends G.prototype.pointClass{}(0,a.extend)(P.prototype,{shapeType:"funnel3d"});let{deg2rad:U}=l();function M(t,e,r,i){let s=e.options.chart.options3d,o=(0,a.pick)(i,!!r&&e.inverted),n={x:e.plotWidth/2,y:e.plotHeight/2,z:s.depth/2,vd:(0,a.pick)(s.depth,1)*(0,a.pick)(s.viewDistance,0)},h=e.scale3d||1,d=U*s.beta*(o?-1:1),l=U*s.alpha*(o?-1:1),p={cosA:Math.cos(l),cosB:Math.cos(-d),sinA:Math.sin(l),sinB:Math.sin(-d)};return r||(n.x+=e.plotLeft,n.y+=e.plotTop),t.map(function(t){var e,r,i;let s=(e=(o?t.y:t.x)-n.x,r=(o?t.x:t.y)-n.y,i=(t.z||0)-n.z,{x:p.cosB*e-p.sinB*i,y:-p.sinA*p.sinB*e+p.cosA*r-p.cosB*p.sinA*i,z:p.cosA*p.sinB*e+p.sinA*r+p.cosA*p.cosB*i}),d=F(s,n,n.vd);return d.x=d.x*h+n.x,d.y=d.y*h+n.y,d.z=s.z*h+n.z,{x:o?d.y:d.x,y:o?d.x:d.y,z:d.z}})}function F(t,e,r){let i=r>0&&r<1/0?r/(t.z+e.z+r):1;return{x:t.x*i,y:t.y*i}}function H(t){let e=0,r,i;for(r=0;r<t.length;r++)i=(r+1)%t.length,e+=t[r].x*t[i].y-t[i].x*t[r].y;return e/2}let{noop:I}=l(),{perspective:B}={perspective:M,perspective3D:F,pointCameraDistance:function(t,e){let r=e.options.chart.options3d,i={x:e.plotWidth/2,y:e.plotHeight/2,z:(0,a.pick)(r.depth,1)*(0,a.pick)(r.viewDistance,0)+r.depth};return Math.sqrt(Math.pow(i.x-(0,a.pick)(t.plotX,t.x),2)+Math.pow(i.y-(0,a.pick)(t.plotY,t.y),2)+Math.pow(i.z-(0,a.pick)(t.plotZ,t.z),2))},shapeArea:H,shapeArea3D:function(t,e,r){return H(M(t,e,r))}},{series:E,seriesTypes:{column:_}}=C();class O extends _{alignDataLabel(t,e,r){let i=t.dlBoxRaw,s=this.chart.inverted,o=t.plotY>(0,a.pick)(this.translatedThreshold,this.yAxis.len),n=(0,a.pick)(r.inside,!!this.options.stacking),h={x:i.x,y:i.y,height:0};r.align=(0,a.pick)(r.align,!s||n?"center":o?"right":"left"),r.verticalAlign=(0,a.pick)(r.verticalAlign,s||n?"middle":o?"top":"bottom"),"top"!==r.verticalAlign&&(h.y+=i.bottom/("bottom"===r.verticalAlign?1:2)),h.width=this.getWidthAt(h.y),this.options.reversed&&(h.width=i.fullWidth-h.width),n?h.x-=h.width/2:"left"===r.align?(r.align="right",h.x-=1.5*h.width):"right"===r.align?(r.align="left",h.x+=h.width/2):h.x-=h.width/2,t.dlBox=h,_.prototype.alignDataLabel.apply(this,arguments)}bindAxes(){E.prototype.bindAxes.apply(this,arguments),(0,a.extend)(this.xAxis.options,{gridLineWidth:0,lineWidth:0,title:void 0,tickPositions:[]}),(0,a.merge)(!0,this.yAxis.options,{gridLineWidth:0,title:void 0,labels:{enabled:!1}})}translate(){E.prototype.translate.apply(this,arguments);let t=this.chart,e=this.options,r=e.reversed,i=e.ignoreHiddenPoint,s=t.plotWidth,o=t.plotHeight,n=e.center,h=(0,a.relativeLength)(n[0],s),d=(0,a.relativeLength)(n[1],o),l=(0,a.relativeLength)(e.width,s),p=(0,a.relativeLength)(e.height,o),g=(0,a.relativeLength)(e.neckWidth,s),c=(0,a.relativeLength)(e.neckHeight,o),f=d-p/2+p-c,u=this.points,y=0,x=0,m,w,b,S,z,A,k,L,v;for(let t of(this.getWidthAt=w=function(t){return t>f||p===c?g:g+(l-g)*(1-(t-(d-p/2))/(p-c))},this.center=[h,d,p],this.centerX=h,u))i&&!1===t.visible||(y+=t.y);for(let s of u)k=null,b=y?s.y/y:0,A=(z=d-p/2+x*p)+b*p,m=w(z),L=A-z,(v={gradientForSides:(0,a.pick)(s.options.gradientForSides,e.gradientForSides),x:h,y:z,height:L,width:m,z:1,top:{width:m}}).bottom={fraction:b,width:m=w(A)},z>=f?v.isCylinder=!0:A>f&&(k=A,m=w(f),A=f,v.bottom.width=m,v.middle={fraction:L?(f-z)/L:0,width:m}),r&&(v.y=z=d+p/2-(x+b)*p,v.middle&&(v.middle.fraction=1-(L?v.middle.fraction:0)),m=v.width,v.width=v.bottom.width,v.bottom.width=m),s.shapeArgs=(0,a.extend)(s.shapeArgs,v),s.percentage=100*b,s.plotX=h,r?s.plotY=d+p/2-(x+b/2)*p:s.plotY=(z+(k||A))/2,S=B([{x:h,y:s.plotY,z:r?-(l-w(s.plotY))/2:-w(s.plotY)/2}],t,!0)[0],s.tooltipPos=[S.x,S.y],s.dlBoxRaw={x:h,width:w(s.plotY),y:z,bottom:v.height||0,fullWidth:l},i&&!1===s.visible||(x+=b)}}O.compose=function(t){let e=t.prototype;e.funnel3d||(e.Element3D.types.funnel3d=z,(0,a.extend)(e,{funnel3d:k,funnel3dPath:L}))},O.defaultOptions=(0,a.merge)(_.defaultOptions,{center:["50%","50%"],width:"90%",neckWidth:"30%",height:"100%",neckHeight:"25%",reversed:!1,gradientForSides:!0,animation:!1,edgeWidth:0,colorByPoint:!0,showInLegend:!1,dataLabels:{align:"right",crop:!1,inside:!1,overflow:"allow"}}),(0,a.extend)(O.prototype,{pointClass:P,translate3dShapes:I}),C().registerSeriesType("funnel3d",O),O.compose(g());let j=l();return d.default})());
|
|
15
|
+
*/function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.SVGRenderer,t._Highcharts.Color,t._Highcharts.SVGElement,t._Highcharts.SeriesRegistry):"function"==typeof define&&define.amd?define("highcharts/modules/funnel3d",["highcharts/highcharts"],function(t){return e(t,t.SVGRenderer,t.Color,t.SVGElement,t.SeriesRegistry)}):"object"==typeof exports?exports["highcharts/modules/funnel3d"]=e(t._Highcharts,t._Highcharts.SVGRenderer,t._Highcharts.Color,t._Highcharts.SVGElement,t._Highcharts.SeriesRegistry):t.Highcharts=e(t.Highcharts,t.Highcharts.SVGRenderer,t.Highcharts.Color,t.Highcharts.SVGElement,t.Highcharts.SeriesRegistry)}("u"<typeof window?this:window,(t,e,r,i,s)=>(()=>{"use strict";var o={620(t){t.exports=r},28(t){t.exports=i},540(t){t.exports=e},512(t){t.exports=s},944(e){e.exports=t}};let n={};function h(t){let e=n[t];if(void 0!==e)return e.exports;let r=n[t]={exports:{}};return o[t](r,r.exports,h),r.exports}h.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return h.d(e,{a:e}),e},h.d=(t,e)=>{if(Array.isArray(e))for(var r=0;r<e.length;){var i=e[r++],s=e[r++];h.o(t,i)?0===s&&r++:0===s?Object.defineProperty(t,i,{enumerable:!0,value:e[r++]}):Object.defineProperty(t,i,{enumerable:!0,get:s})}else for(var i in e)h.o(e,i)&&!h.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},h.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let d={};h.d(d,{default:()=>j});var a=h(944),l=h.n(a),p=h(540),g=h.n(p),c=h(620),f=h.n(c),u=h(28),y=h.n(u);let{parse:x}=f();class m extends y(){constructor(){super(...arguments),this.parts=["front","top","side"],this.pathType="cuboid"}initArgs(t){let e=this.renderer,r=e[this.pathType+"Path"](t),i=r.zIndexes;for(let t of this.parts){let s={class:"highcharts-3d-"+t,zIndex:i[t]||0};e.styledMode&&("top"===t?s.filter="url(#highcharts-brighter)":"side"===t&&(s.filter="url(#highcharts-darker)")),this[t]=e.path(r[t]).attr(s).add(this)}this.attr({"stroke-linejoin":"round",zIndex:i.group}),this.forcedSides=r.forcedSides}singleSetterForParts(t,e,r,i,s,o){let n={},h=[null,null,i||"attr",s,o],d=r?.zIndexes;if(r){for(let e of(d?.group&&this.attr({zIndex:d.group}),Object.keys(r)))n[e]={},n[e][t]=r[e],d&&(n[e].zIndex=r.zIndexes[e]||0);h[1]=n}else n[t]=e,h[0]=n;return this.processParts.apply(this,h)}processParts(t,e,r,i,s){for(let o of this.parts)e&&(t=e[o]??!1),!1!==t&&this[o][r](t,i,s);return this}destroy(){return this.processParts(null,null,"destroy"),super.destroy()}attr(t,e,r,i){if("string"==typeof t&&void 0!==e){let r=t;(t={})[r]=e}return t.shapeArgs||(0,a.defined)(t.x)?this.singleSetterForParts("d",null,this.renderer[this.pathType+"Path"](t.shapeArgs||t)):super.attr(t,void 0,r,i)}animate(t,e,r){if((0,a.defined)(t.x)&&(0,a.defined)(t.y)){let i=this.renderer[this.pathType+"Path"](t),s=i.forcedSides;this.singleSetterForParts("d",null,i,"animate",e,r),this.attr({zIndex:i.zIndexes.group}),s!==this.forcedSides&&(this.forcedSides=s,this.renderer.styledMode||this.fillSetter(this.fill))}else super.animate(t,e,r);return this}fillSetter(t){return this.forcedSides=this.forcedSides||[],this.singleSetterForParts("fill",null,{front:t,top:x(t).brighten(this.forcedSides.indexOf("top")>=0?0:.1).get(),side:x(t).brighten(this.forcedSides.indexOf("side")>=0?0:-.1).get()}),this.color=this.fill=t,this}}m.types={base:m,cuboid:m};let w=m,{parse:b}=f(),{charts:S}=l(),z=class extends w{constructor(){super(...arguments),this.mainParts=["top","bottom"],this.parts=["top","bottom","frontUpper","backUpper","frontLower","backLower","rightUpper","rightLower"],this.sideGroups=["upperGroup","lowerGroup"],this.sideParts={upperGroup:["frontUpper","backUpper","rightUpper"],lowerGroup:["frontLower","backLower","rightLower"]},this.pathType="funnel3d"}opacitySetter(t){let e=parseFloat(t),r=this.parts,i=S[this.renderer.chartIndex],s="group-opacity-"+e+"-"+i.index;if(this.parts=this.mainParts,this.singleSetterForParts("opacity",e),this.parts=r,!i.renderer.filterId){for(let t of(i.renderer.definition({tagName:"filter",attributes:{id:s},children:[{tagName:"feComponentTransfer",children:[{tagName:"feFuncA",attributes:{type:"table",tableValues:"0 "+e}}]}]}),this.sideGroups))this[t].attr({filter:"url(#"+s+")"});if(this.renderer.styledMode)for(let t of(i.renderer.definition({tagName:"style",textContent:".highcharts-"+s+" {filter:url(#"+s+")}"}),this.sideGroups))this[t].addClass("highcharts-"+s)}return this}fillSetter(t){let e=b(t),r=e.rgba[3],i={top:b(t).brighten(.1).get(),bottom:b(t).brighten(-.2).get()};if(r<1?(e.rgba[3]=1,e=e.get("rgb"),this.attr({opacity:r})):e=t,e.linearGradient||e.radialGradient||!this.gradientForSides||(e={linearGradient:{x1:0,x2:1,y1:1,y2:1},stops:[[0,b(t).brighten(-.2).get()],[.5,t],[1,b(t).brighten(-.2).get()]]}),e.linearGradient)for(let t of this.sideGroups){let r=this[t].gradientBox,s=e.linearGradient,o=(0,a.merge)(e,{linearGradient:{x1:r.x+s.x1*r.width,y1:r.y+s.y1*r.height,x2:r.x+s.x2*r.width,y2:r.y+s.y2*r.height}});for(let e of this.sideParts[t])i[e]=o}else if((0,a.merge)(!0,i,{frontUpper:e,backUpper:e,rightUpper:e,frontLower:e,backLower:e,rightLower:e}),e.radialGradient)for(let t of this.sideGroups){let e=this[t].gradientBox,r=e.x+e.width/2,i=e.y+e.height/2,s=Math.min(e.width,e.height);for(let e of this.sideParts[t])this[e].setRadialReference([r,i,s])}if(this.singleSetterForParts("fill",null,i),this.color=this.fill=t,e.linearGradient)for(let t of[this.frontLower,this.frontUpper]){let e=t.element,r=e&&this.renderer.gradients[e.gradient];r&&"userSpaceOnUse"!==r.attr("gradientUnits")&&r.attr({gradientUnits:"userSpaceOnUse"})}return this}adjustForGradient(){let t;for(let e of this.sideGroups){let r={x:Number.MAX_VALUE,y:Number.MAX_VALUE},i={x:-Number.MAX_VALUE,y:-Number.MAX_VALUE};for(let s of this.sideParts[e])t=this[s].getBBox(!0),r={x:Math.min(r.x,t.x),y:Math.min(r.y,t.y)},i={x:Math.max(i.x,t.x+t.width),y:Math.max(i.y,t.y+t.height)};this[e].gradientBox={x:r.x,width:i.x-r.x,y:r.y,height:i.y-r.y}}}zIndexSetter(){return this.finishedOnAdd&&this.adjustForGradient(),this.renderer.Element.prototype.zIndexSetter.apply(this,arguments)}onAdd(){this.adjustForGradient(),this.finishedOnAdd=!0}},{charts:A}=l();function L(t){let e=this.element3d("funnel3d",t),r=this.styledMode,i={"stroke-width":1,stroke:"none"};for(let t of(e.upperGroup=this.g("funnel3d-upper-group").attr({zIndex:e.frontUpper.zIndex}).add(e),[e.frontUpper,e.backUpper,e.rightUpper]))r||t.attr(i),t.add(e.upperGroup);for(let t of(e.lowerGroup=this.g("funnel3d-lower-group").attr({zIndex:e.frontLower.zIndex}).add(e),[e.frontLower,e.backLower,e.rightLower]))r||t.attr(i),t.add(e.lowerGroup);return e.gradientForSides=t.gradientForSides,e}function v(t){this.getCylinderEnd||(0,a.error)("A required Highcharts module is missing: cylinder.js",!0,A[this.chartIndex]);let e=A[this.chartIndex],r=t.alphaCorrection=90-Math.abs(e.options.chart.options3d.alpha%180-90),i=this.cuboidPath.call(this,(0,a.merge)(t,{depth:t.width,width:(t.width+t.bottom.width)/2})),s=i.isTop,o=!i.isFront,n=!!t.middle,h=this.getCylinderEnd(e,(0,a.merge)(t,{x:t.x-t.width/2,z:t.z-t.width/2,alphaCorrection:r})),d=t.bottom.width,l=(0,a.merge)(t,{width:d,x:t.x-d/2,z:t.z-d/2,alphaCorrection:r}),p=this.getCylinderEnd(e,l,!0),g=d,c=l,f=p,u=p,y;n&&(g=t.middle.width,c=(0,a.merge)(t,{y:t.y+t.middle.fraction*t.height,width:g,x:t.x-g/2,z:t.z-g/2}),f=this.getCylinderEnd(e,c,!1),u=this.getCylinderEnd(e,c,!1));let x={top:h,bottom:p,frontUpper:this.getCylinderFront(h,f),zIndexes:{group:i.zIndexes.group,top:3*(0===s),bottom:3*(1===s),frontUpper:o?2:1,backUpper:o?1:2,rightUpper:o?2:1}};return x.backUpper=this.getCylinderBack(h,f),y=Math.min(g,t.width)/Math.max(g,t.width)!=1,x.rightUpper=this.getCylinderFront(this.getCylinderEnd(e,(0,a.merge)(t,{x:t.x-t.width/2,z:t.z-t.width/2,alphaCorrection:y?-r:0}),!1),this.getCylinderEnd(e,(0,a.merge)(c,{alphaCorrection:y?-r:0}),!n)),n&&(y=Math.min(g,d)/Math.max(g,d)!=1,(0,a.merge)(!0,x,{frontLower:this.getCylinderFront(u,p),backLower:this.getCylinderBack(u,p),rightLower:this.getCylinderFront(this.getCylinderEnd(e,(0,a.merge)(l,{alphaCorrection:y?-r:0}),!0),this.getCylinderEnd(e,(0,a.merge)(c,{alphaCorrection:y?-r:0}),!1)),zIndexes:{frontLower:o?2:1,backLower:o?1:2,rightLower:o?1:2}})),x}var C=h(512),G=h.n(C);let{seriesTypes:{column:P}}=G();class U extends P.prototype.pointClass{}(0,a.extend)(U.prototype,{shapeType:"funnel3d"});let{deg2rad:M}=l();function k(t,e,r,i){let s=e.options.chart.options3d,o=i??(!!r&&e.inverted),n={x:e.plotWidth/2,y:e.plotHeight/2,z:s.depth/2,vd:(s.depth??1)*(s.viewDistance??0)},h=e.scale3d||1,d=M*s.beta*(o?-1:1),a=M*s.alpha*(o?-1:1),l={cosA:Math.cos(a),cosB:Math.cos(-d),sinA:Math.sin(a),sinB:Math.sin(-d)};return r||(n.x+=e.plotLeft,n.y+=e.plotTop),t.map(function(t){var e,r,i;let s=(e=(o?t.y:t.x)-n.x,r=(o?t.x:t.y)-n.y,i=(t.z||0)-n.z,{x:l.cosB*e-l.sinB*i,y:-l.sinA*l.sinB*e+l.cosA*r-l.cosB*l.sinA*i,z:l.cosA*l.sinB*e+l.sinA*r+l.cosA*l.cosB*i}),d=F(s,n,n.vd);return d.x=d.x*h+n.x,d.y=d.y*h+n.y,d.z=s.z*h+n.z,{x:o?d.y:d.x,y:o?d.x:d.y,z:d.z}})}function F(t,e,r){let i=r>0&&r<1/0?r/(t.z+e.z+r):1;return{x:t.x*i,y:t.y*i}}function H(t){let e=0,r,i;for(r=0;r<t.length;r++)i=(r+1)%t.length,e+=t[r].x*t[i].y-t[i].x*t[r].y;return e/2}let{noop:I}=l(),{perspective:B}={perspective:k,perspective3D:F,pointCameraDistance:function(t,e){let r=e.options.chart.options3d,i={x:e.plotWidth/2,y:e.plotHeight/2,z:(r.depth??1)*(r.viewDistance??0)+r.depth};return Math.sqrt(Math.pow(i.x-(t.plotX??t.x),2)+Math.pow(i.y-(t.plotY??t.y),2)+Math.pow(i.z-(t.plotZ??t.z),2))},shapeArea:H,shapeArea3D:function(t,e,r){return H(k(t,e,r))}},{series:E,seriesTypes:{column:_}}=G();class O extends _{alignDataLabel(t,e,r){let i=t.dlBoxRaw,s=this.chart.inverted,o=t.plotY>(this.translatedThreshold??this.yAxis.len),n=r.inside??!!this.options.stacking,h={x:i.x,y:i.y,height:0};r.align=r.align??(!s||n?"center":o?"right":"left"),r.verticalAlign=r.verticalAlign??(s||n?"middle":o?"top":"bottom"),"top"!==r.verticalAlign&&(h.y+=i.bottom/("bottom"===r.verticalAlign?1:2)),h.width=this.getWidthAt(h.y),this.options.reversed&&(h.width=i.fullWidth-h.width),n?h.x-=h.width/2:"left"===r.align?(r.align="right",h.x-=1.5*h.width):"right"===r.align?(r.align="left",h.x+=h.width/2):h.x-=h.width/2,t.dlBox=h,_.prototype.alignDataLabel.apply(this,arguments)}bindAxes(){E.prototype.bindAxes.apply(this,arguments),(0,a.extend)(this.xAxis.options,{gridLineWidth:0,lineWidth:0,title:void 0,tickPositions:[]}),(0,a.merge)(!0,this.yAxis.options,{gridLineWidth:0,title:void 0,labels:{enabled:!1}})}translate(){E.prototype.translate.apply(this,arguments);let t=this.chart,e=this.options,r=e.reversed,i=e.ignoreHiddenPoint,s=t.plotWidth,o=t.plotHeight,n=e.center,h=(0,a.relativeLength)(n[0],s),d=(0,a.relativeLength)(n[1],o),l=(0,a.relativeLength)(e.width,s),p=(0,a.relativeLength)(e.height,o),g=(0,a.relativeLength)(e.neckWidth,s),c=(0,a.relativeLength)(e.neckHeight,o),f=d-p/2+p-c,u=this.points,y=0,x=0,m,w,b,S,z,A,L,v,C;for(let t of(this.getWidthAt=w=function(t){return t>f||p===c?g:g+(l-g)*(1-(t-(d-p/2))/(p-c))},this.center=[h,d,p],this.centerX=h,u))i&&!1===t.visible||(y+=t.y);for(let s of u)L=null,b=y?s.y/y:0,A=(z=d-p/2+x*p)+b*p,m=w(z),v=A-z,(C={gradientForSides:s.options.gradientForSides??e.gradientForSides,x:h,y:z,height:v,width:m,z:1,top:{width:m}}).bottom={fraction:b,width:m=w(A)},z>=f?C.isCylinder=!0:A>f&&(L=A,m=w(f),A=f,C.bottom.width=m,C.middle={fraction:v?(f-z)/v:0,width:m}),r&&(C.y=z=d+p/2-(x+b)*p,C.middle&&(C.middle.fraction=1-(v?C.middle.fraction:0)),m=C.width,C.width=C.bottom.width,C.bottom.width=m),s.shapeArgs=(0,a.extend)(s.shapeArgs,C),s.percentage=100*b,s.plotX=h,r?s.plotY=d+p/2-(x+b/2)*p:s.plotY=(z+(L||A))/2,S=B([{x:h,y:s.plotY,z:r?-(l-w(s.plotY))/2:-w(s.plotY)/2}],t,!0)[0],s.tooltipPos=[S.x,S.y],s.dlBoxRaw={x:h,width:w(s.plotY),y:z,bottom:C.height||0,fullWidth:l},i&&!1===s.visible||(x+=b)}}O.compose=function(t){let e=t.prototype;e.funnel3d||(e.Element3D.types.funnel3d=z,(0,a.extend)(e,{funnel3d:L,funnel3dPath:v}))},O.defaultOptions=(0,a.merge)(_.defaultOptions,{center:["50%","50%"],width:"90%",neckWidth:"30%",height:"100%",neckHeight:"25%",reversed:!1,gradientForSides:!0,animation:!1,edgeWidth:0,colorByPoint:!0,showInLegend:!1,dataLabels:{align:"right",crop:!1,inside:!1,overflow:"allow"}}),(0,a.extend)(O.prototype,{pointClass:U,translate3dShapes:I}),G().registerSeriesType("funnel3d",O),O.compose(g());let j=l();return d.default})());
|