highcharts 11.4.3 → 11.4.5
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 +1 -1
- package/es-modules/Accessibility/Accessibility.js +1 -1
- package/es-modules/Accessibility/AccessibilityComponent.js +1 -1
- package/es-modules/Accessibility/Components/NavigatorComponent.js +2 -2
- package/es-modules/Accessibility/KeyboardNavigation.js +1 -1
- package/es-modules/Accessibility/KeyboardNavigationHandler.js +5 -5
- package/es-modules/Accessibility/Options/A11yDefaults.js +1 -1
- package/es-modules/Accessibility/Options/LangDefaults.js +3 -3
- package/es-modules/Accessibility/Utils/EventProvider.js +1 -1
- package/es-modules/Accessibility/Utils/HTMLUtilities.js +1 -1
- package/es-modules/Core/Animation/Fx.js +4 -2
- package/es-modules/Core/Axis/Axis.js +6 -4
- package/es-modules/Core/Axis/AxisDefaults.js +1 -0
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +2 -1
- package/es-modules/Core/Axis/Color/ColorAxisDefaults.js +7 -3
- package/es-modules/Core/Axis/GridAxis.js +1 -1
- package/es-modules/Core/Axis/OrdinalAxis.js +5 -2
- package/es-modules/Core/Axis/RadialAxisDefaults.js +3 -3
- package/es-modules/Core/Axis/Stacking/StackItem.js +1 -1
- package/es-modules/Core/Chart/Chart.js +16 -7
- package/es-modules/Core/Chart/MapChart.js +3 -3
- package/es-modules/Core/Chart/StockChart.js +1 -1
- package/es-modules/Core/Color/Color.js +2 -2
- package/es-modules/Core/Defaults.js +27 -1
- package/es-modules/Core/Geometry/GeometryUtilities.js +22 -0
- package/es-modules/Core/Globals.js +1 -1
- package/es-modules/Core/Legend/Legend.js +82 -14
- package/es-modules/Core/MSPointer.js +42 -1
- package/es-modules/Core/Pointer.js +10 -6
- package/es-modules/Core/Renderer/HTML/AST.js +6 -0
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +2 -2
- package/es-modules/Core/Renderer/SVG/SVGElement.js +31 -98
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +20 -0
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +29 -14
- package/es-modules/Core/Renderer/SVG/Symbols.js +18 -18
- package/es-modules/Core/Responsive.js +6 -1
- package/es-modules/Core/Series/DataLabel.js +1 -10
- package/es-modules/Core/Series/DataSeriesComposition.js +0 -2
- package/es-modules/Core/Series/Point.js +7 -10
- package/es-modules/Core/Series/Series.js +40 -24
- package/es-modules/Core/Series/SeriesDefaults.js +18 -12
- package/es-modules/Core/Templating.js +2 -2
- package/es-modules/Core/Tooltip.js +6 -3
- package/es-modules/Data/Connectors/JSONConnector.js +1 -0
- package/es-modules/Data/Converters/CSVConverter.js +1 -1
- package/es-modules/Data/Converters/DataConverter.js +7 -7
- package/es-modules/Data/Converters/GoogleSheetsConverter.js +8 -3
- package/es-modules/Data/DataTable.js +106 -5
- package/es-modules/Data/Formula/FormulaParser.js +2 -2
- package/es-modules/Extensions/Annotations/Controllables/ControllableDefaults.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +1 -1
- package/es-modules/Extensions/Annotations/NavigationBindings.js +1 -2
- package/es-modules/Extensions/Boost/Boost.js +1 -1
- package/es-modules/Extensions/Boost/BoostChart.js +8 -2
- package/es-modules/Extensions/Boost/BoostSeries.js +41 -10
- package/es-modules/Extensions/Boost/WGLShader.js +1 -1
- package/es-modules/Extensions/BorderRadius.js +3 -3
- package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +0 -38
- package/es-modules/Extensions/Data.js +11 -11
- package/es-modules/Extensions/DataGrouping/DataGrouping.js +1 -2
- package/es-modules/Extensions/DataGrouping/DataGroupingDefaults.js +1 -1
- package/es-modules/Extensions/DownloadURL.js +1 -1
- package/es-modules/Extensions/Drilldown/Drilldown.js +0 -2
- package/es-modules/Extensions/Exporting/Exporting.js +14 -14
- package/es-modules/Extensions/OverlappingDataLabels.js +36 -5
- package/es-modules/Extensions/Pane/PaneDefaults.js +3 -2
- package/es-modules/Extensions/ParallelCoordinates/ParallelCoordinates.js +1 -1
- package/es-modules/Extensions/Sonification/MIDI.js +7 -7
- package/es-modules/Extensions/Sonification/SonificationInstrument.js +0 -1
- package/es-modules/Extensions/Sonification/TimelineFromChart.js +1 -3
- package/es-modules/Extensions/TextPath.js +227 -0
- package/es-modules/Maps/MapUtilities.js +1 -20
- package/es-modules/Maps/MapView.js +3 -1
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +3 -0
- package/es-modules/Series/Area/AreaSeries.js +5 -0
- package/es-modules/Series/Area/AreaSeriesDefaults.js +1 -1
- package/es-modules/Series/Bar/BarSeries.js +1 -1
- package/es-modules/Series/Bellcurve/BellcurveSeriesDefaults.js +2 -2
- package/es-modules/Series/BoxPlot/BoxPlotSeries.js +2 -1
- package/es-modules/Series/Bubble/BubbleLegendComposition.js +4 -7
- package/es-modules/Series/Bubble/BubbleLegendDefaults.js +3 -3
- package/es-modules/Series/Bubble/BubbleSeries.js +4 -4
- package/es-modules/Series/Column/ColumnSeriesDefaults.js +1 -1
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +5 -2
- package/es-modules/Series/Dumbbell/DumbbellSeriesDefaults.js +2 -2
- package/es-modules/Series/ErrorBar/ErrorBarSeries.js +2 -2
- package/es-modules/Series/Flags/FlagsSeries.js +2 -2
- package/es-modules/Series/Flags/FlagsSeriesDefaults.js +1 -1
- package/es-modules/Series/Gantt/GanttSeriesDefaults.js +1 -1
- package/es-modules/Series/Gauge/GaugeSeries.js +1 -1
- package/es-modules/Series/HLC/HLCSeries.js +1 -1
- package/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +2 -2
- package/es-modules/Series/Item/ItemSeries.js +1 -1
- package/es-modules/Series/Map/MapSeries.js +1 -1
- package/es-modules/Series/Map/MapSeriesDefaults.js +2 -2
- package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -1
- package/es-modules/Series/Organization/OrganizationSeries.js +3 -0
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +8 -5
- package/es-modules/Series/Pie/PieDataLabel.js +7 -6
- package/es-modules/Series/Pie/PiePoint.js +6 -6
- package/es-modules/Series/Pie/PieSeriesDefaults.js +11 -10
- package/es-modules/Series/Pie3D/Pie3DSeries.js +1 -1
- package/es-modules/Series/Sankey/SankeySeries.js +7 -4
- package/es-modules/Series/Sankey/SankeySeriesDefaults.js +1 -1
- package/es-modules/Series/Sunburst/SunburstSeries.js +8 -5
- package/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +2 -2
- package/es-modules/Series/Tilemap/TilemapSeriesDefaults.js +2 -2
- package/es-modules/Series/Treegraph/TreegraphSeries.js +23 -2
- package/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +2 -2
- package/es-modules/Series/Treemap/TreemapPoint.js +2 -1
- package/es-modules/Series/Treemap/TreemapSeries.js +15 -7
- package/es-modules/Series/Treemap/TreemapSeriesDefaults.js +15 -1
- package/es-modules/Series/VariablePie/VariablePieSeriesDefaults.js +2 -2
- package/es-modules/Series/Variwide/VariwideComposition.js +1 -1
- package/es-modules/Series/Vector/VectorSeries.js +1 -1
- package/es-modules/Series/Windbarb/WindbarbSeries.js +2 -2
- package/es-modules/Series/Wordcloud/WordcloudSeries.js +2 -2
- package/es-modules/Series/Wordcloud/WordcloudSeriesDefaults.js +1 -1
- package/es-modules/Stock/Indicators/AD/ADIndicator.js +1 -1
- package/es-modules/Stock/Indicators/APO/APOIndicator.js +1 -1
- package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -1
- package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +1 -1
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +1 -1
- package/es-modules/Stock/Indicators/IKH/IKHIndicator.js +3 -3
- package/es-modules/Stock/Indicators/LinearRegression/LinearRegressionIndicator.js +1 -1
- package/es-modules/Stock/Indicators/MFI/MFIIndicator.js +1 -1
- package/es-modules/Stock/Indicators/PC/PCIndicator.js +1 -1
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -1
- package/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +1 -1
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +3 -3
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
- package/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +2 -2
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +3 -3
- package/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +1 -1
- package/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +1 -1
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +1 -1
- package/es-modules/Stock/Navigator/Navigator.js +141 -55
- package/es-modules/Stock/Navigator/NavigatorDefaults.js +1 -1
- package/es-modules/Stock/RangeSelector/RangeSelector.js +1 -1
- package/es-modules/Stock/RangeSelector/RangeSelectorDefaults.js +1 -1
- package/es-modules/Stock/Scrollbar/ScrollbarDefaults.js +1 -1
- package/es-modules/Stock/StockTools/StockToolbar.js +115 -37
- package/es-modules/Stock/StockTools/StockToolsDefaults.js +7 -1
- package/es-modules/Stock/StockTools/StockToolsGui.js +24 -23
- package/es-modules/Stock/StockTools/StockToolsUtilities.js +26 -0
- package/es-modules/masters/highcharts-more.src.js +2 -2
- package/es-modules/masters/modules/arc-diagram.src.js +1 -2
- package/es-modules/masters/modules/cylinder.src.js +1 -1
- package/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/es-modules/masters/modules/map.src.js +1 -1
- package/es-modules/masters/modules/pyramid3d.src.js +1 -1
- package/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/es-modules/masters/modules/textpath.src.d.ts +1 -0
- package/es-modules/masters/modules/textpath.src.js +16 -0
- package/es-modules/tsconfig.tsbuildinfo +1 -1
- package/highcharts-3d.js +2 -2
- package/highcharts-3d.src.js +4 -4
- package/highcharts-gantt.js +3 -3
- package/highcharts-gantt.src.js +3376 -3042
- package/highcharts-more.d.ts +42 -2
- package/highcharts-more.js +2 -2
- package/highcharts-more.src.d.ts +42 -2
- package/highcharts-more.src.js +262 -35
- package/highcharts.d.ts +840 -407
- package/highcharts.js +3 -3
- package/highcharts.src.d.ts +840 -407
- package/highcharts.src.js +6064 -5818
- package/highmaps.js +3 -3
- package/highmaps.src.js +3276 -3046
- package/highstock.js +3 -3
- package/highstock.src.js +3395 -3062
- package/indicators/acceleration-bands.js +2 -2
- package/indicators/acceleration-bands.src.js +3 -3
- package/indicators/accumulation-distribution.js +2 -2
- package/indicators/accumulation-distribution.src.js +4 -4
- package/indicators/ao.js +2 -2
- package/indicators/ao.src.js +3 -3
- package/indicators/apo.js +2 -2
- package/indicators/apo.src.js +4 -4
- package/indicators/aroon-oscillator.js +2 -2
- package/indicators/aroon-oscillator.src.js +3 -3
- package/indicators/aroon.js +2 -2
- package/indicators/aroon.src.js +4 -4
- package/indicators/atr.js +2 -2
- package/indicators/atr.src.js +3 -3
- package/indicators/bollinger-bands.js +2 -2
- package/indicators/bollinger-bands.src.js +3 -3
- package/indicators/cci.js +2 -2
- package/indicators/cci.src.js +3 -3
- package/indicators/chaikin.js +2 -2
- package/indicators/chaikin.src.js +5 -5
- package/indicators/cmf.js +2 -2
- package/indicators/cmf.src.js +4 -4
- package/indicators/cmo.js +2 -2
- package/indicators/cmo.src.js +3 -3
- package/indicators/dema.js +2 -2
- package/indicators/dema.src.js +3 -3
- package/indicators/disparity-index.js +2 -2
- package/indicators/disparity-index.src.js +3 -3
- package/indicators/dmi.js +2 -2
- package/indicators/dmi.src.js +3 -3
- package/indicators/dpo.js +2 -2
- package/indicators/dpo.src.js +3 -3
- package/indicators/ema.js +1 -1
- package/indicators/ema.src.js +2 -2
- package/indicators/ichimoku-kinko-hyo.js +2 -2
- package/indicators/ichimoku-kinko-hyo.src.js +6 -6
- package/indicators/indicators-all.js +2 -2
- package/indicators/indicators-all.src.js +28 -28
- package/indicators/indicators.js +2 -2
- package/indicators/indicators.src.js +4 -4
- package/indicators/keltner-channels.js +2 -2
- package/indicators/keltner-channels.src.js +3 -3
- package/indicators/klinger.js +2 -2
- package/indicators/klinger.src.js +3 -3
- package/indicators/macd.js +2 -2
- package/indicators/macd.src.js +3 -3
- package/indicators/mfi.js +2 -2
- package/indicators/mfi.src.js +4 -4
- package/indicators/momentum.js +2 -2
- package/indicators/momentum.src.js +3 -3
- package/indicators/natr.js +2 -2
- package/indicators/natr.src.js +3 -3
- package/indicators/obv.js +2 -2
- package/indicators/obv.src.js +3 -3
- package/indicators/pivot-points.js +2 -2
- package/indicators/pivot-points.src.js +6 -6
- package/indicators/ppo.js +2 -2
- package/indicators/ppo.src.js +4 -4
- package/indicators/price-channel.js +2 -2
- package/indicators/price-channel.src.js +4 -4
- package/indicators/price-envelopes.js +2 -2
- package/indicators/price-envelopes.src.js +3 -3
- package/indicators/psar.js +2 -2
- package/indicators/psar.src.js +4 -4
- package/indicators/regressions.js +2 -2
- package/indicators/regressions.src.js +4 -4
- package/indicators/roc.js +2 -2
- package/indicators/roc.src.js +3 -3
- package/indicators/rsi.js +2 -2
- package/indicators/rsi.src.js +3 -3
- package/indicators/slow-stochastic.js +2 -2
- package/indicators/slow-stochastic.src.js +5 -5
- package/indicators/stochastic.js +2 -2
- package/indicators/stochastic.src.js +3 -3
- package/indicators/supertrend.js +2 -2
- package/indicators/supertrend.src.js +6 -6
- package/indicators/tema.js +2 -2
- package/indicators/tema.src.js +3 -3
- package/indicators/trendline.js +2 -2
- package/indicators/trendline.src.js +4 -4
- package/indicators/trix.js +2 -2
- package/indicators/trix.src.js +3 -3
- package/indicators/volume-by-price.js +2 -2
- package/indicators/volume-by-price.src.js +3 -3
- package/indicators/vwap.js +2 -2
- package/indicators/vwap.src.js +4 -4
- package/indicators/williams-r.js +2 -2
- package/indicators/williams-r.src.js +4 -4
- package/indicators/wma.js +2 -2
- package/indicators/wma.src.js +3 -3
- package/indicators/zigzag.js +2 -2
- package/indicators/zigzag.src.js +3 -3
- package/modules/accessibility.js +2 -2
- package/modules/accessibility.src.js +162 -77
- package/modules/annotations-advanced.js +2 -2
- package/modules/annotations-advanced.src.js +8 -9
- package/modules/annotations.js +2 -2
- package/modules/annotations.src.js +8 -9
- package/modules/arc-diagram.d.ts +120 -1
- package/modules/arc-diagram.js +2 -2
- package/modules/arc-diagram.src.d.ts +120 -1
- package/modules/arc-diagram.src.js +9363 -5
- package/modules/arrow-symbols.js +2 -2
- package/modules/arrow-symbols.src.js +3 -3
- package/modules/boost-canvas.js +2 -2
- package/modules/boost-canvas.src.js +53 -16
- package/modules/boost.js +2 -2
- package/modules/boost.src.js +54 -17
- package/modules/broken-axis.js +2 -2
- package/modules/broken-axis.src.js +3 -3
- package/modules/bullet.js +2 -2
- package/modules/bullet.src.js +3 -3
- package/modules/coloraxis.js +2 -2
- package/modules/coloraxis.src.js +12 -7
- package/modules/current-date-indicator.js +2 -2
- package/modules/current-date-indicator.src.js +3 -3
- package/modules/cylinder.js +2 -2
- package/modules/cylinder.src.js +4 -4
- package/modules/data-tools.js +2 -2
- package/modules/data-tools.src.js +128 -21
- package/modules/data.js +2 -2
- package/modules/data.src.js +14 -14
- package/modules/datagrouping.js +2 -2
- package/modules/datagrouping.src.js +5 -6
- package/modules/debugger.js +2 -2
- package/modules/debugger.src.js +3 -3
- package/modules/dependency-wheel.js +2 -2
- package/modules/dependency-wheel.src.js +7 -6
- package/modules/dotplot.js +2 -2
- package/modules/dotplot.src.js +3 -3
- package/modules/drag-panes.js +2 -2
- package/modules/drag-panes.src.js +3 -3
- package/modules/draggable-points.js +2 -2
- package/modules/draggable-points.src.js +3 -3
- package/modules/drilldown.js +2 -2
- package/modules/drilldown.src.js +3 -43
- package/modules/dumbbell.js +2 -2
- package/modules/dumbbell.src.js +5 -5
- package/modules/export-data.js +2 -2
- package/modules/export-data.src.js +4 -4
- package/modules/exporting.js +2 -2
- package/modules/exporting.src.js +17 -17
- package/modules/flowmap.js +2 -2
- package/modules/flowmap.src.js +3 -3
- package/modules/full-screen.js +2 -2
- package/modules/full-screen.src.js +3 -3
- package/modules/funnel.js +2 -2
- package/modules/funnel.src.js +3 -3
- package/modules/funnel3d.js +2 -2
- package/modules/funnel3d.src.js +4 -4
- package/modules/gantt.js +2 -2
- package/modules/gantt.src.js +155 -67
- package/modules/geoheatmap.js +2 -2
- package/modules/geoheatmap.src.js +3 -3
- package/modules/grid-axis.js +2 -2
- package/modules/grid-axis.src.js +4 -4
- package/modules/heatmap.js +2 -2
- package/modules/heatmap.src.js +14 -9
- package/modules/heikinashi.js +2 -2
- package/modules/heikinashi.src.js +3 -3
- package/modules/histogram-bellcurve.js +2 -2
- package/modules/histogram-bellcurve.src.js +5 -5
- package/modules/hollowcandlestick.js +2 -2
- package/modules/hollowcandlestick.src.js +3 -3
- package/modules/item-series.js +2 -2
- package/modules/item-series.src.js +4 -4
- package/modules/lollipop.js +2 -2
- package/modules/lollipop.src.js +3 -3
- package/modules/map.d.ts +1 -1
- package/modules/map.js +2 -2
- package/modules/map.src.d.ts +1 -1
- package/modules/map.src.js +36 -52
- package/modules/marker-clusters.js +2 -2
- package/modules/marker-clusters.src.js +3 -3
- 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 +146 -61
- package/modules/networkgraph.d.ts +40 -0
- package/modules/networkgraph.js +2 -2
- package/modules/networkgraph.src.d.ts +40 -0
- package/modules/networkgraph.src.js +233 -5
- package/modules/no-data-to-display.js +2 -2
- package/modules/no-data-to-display.src.js +3 -3
- package/modules/offline-exporting.js +2 -2
- package/modules/offline-exporting.src.js +5 -5
- package/modules/organization.js +2 -2
- package/modules/organization.src.js +5 -4
- package/modules/overlapping-datalabels.js +2 -2
- package/modules/overlapping-datalabels.src.js +3 -3
- package/modules/parallel-coordinates.js +2 -2
- package/modules/parallel-coordinates.src.js +4 -4
- package/modules/pareto.js +2 -2
- package/modules/pareto.src.js +3 -3
- package/modules/pathfinder.js +2 -2
- package/modules/pathfinder.src.js +3 -3
- package/modules/pattern-fill.js +2 -2
- package/modules/pattern-fill.src.js +3 -3
- package/modules/pictorial.js +2 -2
- package/modules/pictorial.src.js +3 -3
- package/modules/price-indicator.js +2 -2
- package/modules/price-indicator.src.js +3 -3
- package/modules/pyramid3d.js +2 -2
- package/modules/pyramid3d.src.js +4 -4
- package/modules/sankey.d.ts +42 -1
- package/modules/sankey.js +2 -2
- package/modules/sankey.src.d.ts +42 -1
- package/modules/sankey.src.js +237 -9
- package/modules/series-label.js +2 -2
- package/modules/series-label.src.js +3 -3
- package/modules/series-on-point.js +2 -2
- package/modules/series-on-point.src.js +3 -3
- package/modules/solid-gauge.js +2 -2
- package/modules/solid-gauge.src.js +4 -4
- package/modules/sonification.js +2 -2
- package/modules/sonification.src.js +12 -15
- package/modules/static-scale.js +2 -2
- package/modules/static-scale.src.js +3 -3
- package/modules/stock-tools.d.ts +15 -1
- package/modules/stock-tools.js +2 -2
- package/modules/stock-tools.src.d.ts +15 -1
- package/modules/stock-tools.src.js +177 -69
- package/modules/stock.js +2 -2
- package/modules/stock.src.js +160 -73
- package/modules/streamgraph.js +2 -2
- package/modules/streamgraph.src.js +3 -3
- package/modules/sunburst.d.ts +40 -0
- package/modules/sunburst.js +2 -2
- package/modules/sunburst.src.d.ts +40 -0
- package/modules/sunburst.src.js +271 -58
- package/modules/textpath.d.ts +58 -0
- package/modules/textpath.js +7 -0
- package/modules/textpath.src.d.ts +58 -0
- package/modules/textpath.src.js +271 -0
- package/modules/tiledwebmap.js +3 -3
- package/modules/tiledwebmap.src.js +3 -3
- package/modules/tilemap.js +2 -2
- package/modules/tilemap.src.js +5 -5
- package/modules/timeline.js +2 -2
- package/modules/timeline.src.js +3 -3
- package/modules/treegraph.d.ts +40 -0
- package/modules/treegraph.js +2 -2
- package/modules/treegraph.src.d.ts +40 -0
- package/modules/treegraph.src.js +254 -8
- package/modules/treegrid.js +2 -2
- package/modules/treegrid.src.js +4 -4
- package/modules/treemap.js +2 -2
- package/modules/treemap.src.js +35 -50
- package/modules/variable-pie.js +2 -2
- package/modules/variable-pie.src.js +5 -5
- package/modules/variwide.js +2 -2
- package/modules/variwide.src.js +4 -4
- package/modules/vector.js +2 -2
- package/modules/vector.src.js +4 -4
- package/modules/venn.js +2 -2
- package/modules/venn.src.js +3 -88
- package/modules/windbarb.js +2 -2
- package/modules/windbarb.src.js +5 -5
- package/modules/wordcloud.js +2 -2
- package/modules/wordcloud.src.js +6 -6
- package/modules/xrange.js +2 -2
- package/modules/xrange.src.js +3 -3
- package/options/ad.d.ts +17 -9
- package/options/ad.src.d.ts +17 -9
- package/options/apo.d.ts +17 -9
- package/options/apo.src.d.ts +17 -9
- package/options/arearange.d.ts +17 -9
- package/options/arearange.src.d.ts +17 -9
- package/options/areaspline.d.ts +17 -9
- package/options/areaspline.src.d.ts +17 -9
- package/options/bar.d.ts +17 -9
- package/options/bar.src.d.ts +17 -9
- package/options/bb.d.ts +17 -9
- package/options/bb.src.d.ts +17 -9
- package/options/bubble.d.ts +17 -9
- package/options/bubble.src.d.ts +17 -9
- package/options/candlestick.d.ts +17 -9
- package/options/candlestick.src.d.ts +17 -9
- package/options/cci.d.ts +17 -9
- package/options/cci.src.d.ts +17 -9
- package/options/cmf.d.ts +17 -9
- package/options/cmf.src.d.ts +17 -9
- package/options/column.d.ts +17 -9
- package/options/column.src.d.ts +17 -9
- package/options/columnpyramid.d.ts +17 -9
- package/options/columnpyramid.src.d.ts +17 -9
- package/options/columnrange.d.ts +17 -9
- package/options/columnrange.src.d.ts +17 -9
- package/options/cylinder.d.ts +17 -9
- package/options/cylinder.src.d.ts +17 -9
- package/options/dema.d.ts +17 -9
- package/options/dema.src.d.ts +17 -9
- package/options/dependencywheel.d.ts +17 -9
- package/options/dependencywheel.src.d.ts +17 -9
- package/options/disparityindex.d.ts +17 -9
- package/options/disparityindex.src.d.ts +17 -9
- package/options/dpo.d.ts +17 -9
- package/options/dpo.src.d.ts +17 -9
- package/options/dumbbell.d.ts +17 -9
- package/options/dumbbell.src.d.ts +17 -9
- package/options/ema.d.ts +17 -9
- package/options/ema.src.d.ts +17 -9
- package/options/funnel.d.ts +17 -9
- package/options/funnel.src.d.ts +17 -9
- package/options/gantt.d.ts +16 -8
- package/options/gantt.src.d.ts +16 -8
- package/options/klinger.d.ts +17 -9
- package/options/klinger.src.d.ts +17 -9
- package/options/linearregression.d.ts +17 -9
- package/options/linearregression.src.d.ts +17 -9
- package/options/lollipop.d.ts +17 -9
- package/options/lollipop.src.d.ts +17 -9
- package/options/macd.d.ts +17 -9
- package/options/macd.src.d.ts +17 -9
- package/options/momentum.d.ts +17 -9
- package/options/momentum.src.d.ts +17 -9
- package/options/ohlc.d.ts +17 -9
- package/options/ohlc.src.d.ts +17 -9
- package/options/organization.d.ts +17 -9
- package/options/organization.src.d.ts +17 -9
- package/options/pareto.d.ts +16 -8
- package/options/pareto.src.d.ts +16 -8
- package/options/pc.d.ts +17 -9
- package/options/pc.src.d.ts +17 -9
- package/options/polygon.d.ts +17 -9
- package/options/polygon.src.d.ts +17 -9
- package/options/ppo.d.ts +17 -9
- package/options/ppo.src.d.ts +17 -9
- package/options/psar.d.ts +17 -9
- package/options/psar.src.d.ts +17 -9
- package/options/pyramid.d.ts +17 -9
- package/options/pyramid.src.d.ts +17 -9
- package/options/roc.d.ts +17 -9
- package/options/roc.src.d.ts +17 -9
- package/options/sankey.d.ts +17 -9
- package/options/sankey.src.d.ts +17 -9
- package/options/scatter.d.ts +17 -9
- package/options/scatter.src.d.ts +17 -9
- package/options/series.d.ts +17 -9
- package/options/series.src.d.ts +17 -9
- package/options/sma.d.ts +17 -9
- package/options/sma.src.d.ts +17 -9
- package/options/spline.d.ts +17 -9
- package/options/spline.src.d.ts +17 -9
- package/options/stochastic.d.ts +17 -9
- package/options/stochastic.src.d.ts +17 -9
- package/options/supertrend.d.ts +17 -9
- package/options/supertrend.src.d.ts +17 -9
- package/options/tilemap.d.ts +17 -9
- package/options/tilemap.src.d.ts +17 -9
- package/options/treegraph.d.ts +24 -9
- package/options/treegraph.src.d.ts +24 -9
- package/options/treemap.d.ts +23 -8
- package/options/treemap.src.d.ts +23 -8
- package/options/trendline.d.ts +17 -9
- package/options/trendline.src.d.ts +17 -9
- package/options/variwide.d.ts +17 -9
- package/options/variwide.src.d.ts +17 -9
- package/options/vbp.d.ts +17 -9
- package/options/vbp.src.d.ts +17 -9
- package/options/vector.d.ts +17 -9
- package/options/vector.src.d.ts +17 -9
- package/options/waterfall.d.ts +17 -9
- package/options/waterfall.src.d.ts +17 -9
- package/options/williamsr.d.ts +17 -9
- package/options/williamsr.src.d.ts +17 -9
- package/options/xrange.d.ts +17 -9
- package/options/xrange.src.d.ts +17 -9
- package/package.json +1 -1
- package/standalone-navigator.js +2 -2
- package/standalone-navigator.src.js +3380 -3049
- package/themes/avocado.js +2 -2
- package/themes/avocado.src.js +3 -3
- package/themes/brand-dark.js +2 -2
- package/themes/brand-dark.src.js +3 -3
- package/themes/brand-light.js +2 -2
- package/themes/brand-light.src.js +3 -3
- package/themes/dark-blue.js +2 -2
- package/themes/dark-blue.src.js +3 -3
- package/themes/dark-green.js +2 -2
- package/themes/dark-green.src.js +3 -3
- package/themes/dark-unica.js +2 -2
- package/themes/dark-unica.src.js +3 -3
- package/themes/gray.js +2 -2
- package/themes/gray.src.js +3 -3
- package/themes/grid-light.js +2 -2
- package/themes/grid-light.src.js +3 -3
- package/themes/grid.js +2 -2
- package/themes/grid.src.js +3 -3
- package/themes/high-contrast-dark.js +2 -2
- package/themes/high-contrast-dark.src.js +3 -3
- package/themes/high-contrast-light.js +2 -2
- package/themes/high-contrast-light.src.js +3 -3
- package/themes/sand-signika.js +2 -2
- package/themes/sand-signika.src.js +3 -3
- package/themes/skies.js +2 -2
- package/themes/skies.src.js +3 -3
- package/themes/sunset.js +2 -2
- package/themes/sunset.src.js +3 -3
|
@@ -67,7 +67,7 @@ function hasURLOption(options) {
|
|
|
67
67
|
/**
|
|
68
68
|
* The Data class
|
|
69
69
|
*
|
|
70
|
-
* @requires
|
|
70
|
+
* @requires modules/data
|
|
71
71
|
*
|
|
72
72
|
* @class
|
|
73
73
|
* @name Highcharts.Data
|
|
@@ -130,7 +130,7 @@ class Data {
|
|
|
130
130
|
*/
|
|
131
131
|
this.dateFormats = {
|
|
132
132
|
'YYYY/mm/dd': {
|
|
133
|
-
regex: /^(
|
|
133
|
+
regex: /^(\d{4})[\-\/\.](\d{1,2})[\-\/\.](\d{1,2})$/,
|
|
134
134
|
parser: function (match) {
|
|
135
135
|
return (match ?
|
|
136
136
|
Date.UTC(+match[1], match[2] - 1, +match[3]) :
|
|
@@ -138,7 +138,7 @@ class Data {
|
|
|
138
138
|
}
|
|
139
139
|
},
|
|
140
140
|
'dd/mm/YYYY': {
|
|
141
|
-
regex: /^(
|
|
141
|
+
regex: /^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{4})$/,
|
|
142
142
|
parser: function (match) {
|
|
143
143
|
return (match ?
|
|
144
144
|
Date.UTC(+match[3], match[2] - 1, +match[1]) :
|
|
@@ -147,7 +147,7 @@ class Data {
|
|
|
147
147
|
alternative: 'mm/dd/YYYY' // Different format with the same regex
|
|
148
148
|
},
|
|
149
149
|
'mm/dd/YYYY': {
|
|
150
|
-
regex: /^(
|
|
150
|
+
regex: /^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{4})$/,
|
|
151
151
|
parser: function (match) {
|
|
152
152
|
return (match ?
|
|
153
153
|
Date.UTC(+match[3], match[1] - 1, +match[2]) :
|
|
@@ -155,7 +155,7 @@ class Data {
|
|
|
155
155
|
}
|
|
156
156
|
},
|
|
157
157
|
'dd/mm/YY': {
|
|
158
|
-
regex: /^(
|
|
158
|
+
regex: /^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{2})$/,
|
|
159
159
|
parser: function (match) {
|
|
160
160
|
if (!match) {
|
|
161
161
|
return NaN;
|
|
@@ -173,7 +173,7 @@ class Data {
|
|
|
173
173
|
alternative: 'mm/dd/YY' // Different format with the same regex
|
|
174
174
|
},
|
|
175
175
|
'mm/dd/YY': {
|
|
176
|
-
regex: /^(
|
|
176
|
+
regex: /^(\d{1,2})[\-\/\.](\d{1,2})[\-\/\.](\d{2})$/,
|
|
177
177
|
parser: function (match) {
|
|
178
178
|
return (match ?
|
|
179
179
|
Date.UTC(+match[3] + 2000, match[1] - 1, +match[2]) :
|
|
@@ -1023,7 +1023,7 @@ class Data {
|
|
|
1023
1023
|
if (typeof str === 'string') {
|
|
1024
1024
|
str = str.replace(/^\s+|\s+$/g, '');
|
|
1025
1025
|
// Clear white space inside the string, like thousands separators
|
|
1026
|
-
if (inside &&
|
|
1026
|
+
if (inside && /[\d\s]+/.test(str)) {
|
|
1027
1027
|
str = str.replace(/\s/g, '');
|
|
1028
1028
|
}
|
|
1029
1029
|
if (this.decimalRegex) {
|
|
@@ -1195,10 +1195,10 @@ class Data {
|
|
|
1195
1195
|
}
|
|
1196
1196
|
// Fall back to Date.parse
|
|
1197
1197
|
if (!match) {
|
|
1198
|
-
if (val.match(/:.+(GMT|UTC|[Z
|
|
1198
|
+
if (val.match(/:.+(GMT|UTC|[Z+\-])/)) {
|
|
1199
1199
|
val = val
|
|
1200
|
-
.replace(/\s*(?:GMT|UTC)?([
|
|
1201
|
-
.replace(/(?:\s+|GMT|UTC)([
|
|
1200
|
+
.replace(/\s*(?:GMT|UTC)?([+\-])(\d\d)(\d\d)$/, '$1$2:$3')
|
|
1201
|
+
.replace(/(?:\s+|GMT|UTC)([+\-])/, '$1')
|
|
1202
1202
|
.replace(/(\d)\s*(?:GMT|UTC|Z)$/, '$1+00:00');
|
|
1203
1203
|
}
|
|
1204
1204
|
match = Date.parse(val);
|
|
@@ -1712,7 +1712,7 @@ export default Data;
|
|
|
1712
1712
|
* A callback function to modify the CSV before parsing it. Return the modified
|
|
1713
1713
|
* string.
|
|
1714
1714
|
*
|
|
1715
|
-
* @sample {highcharts} highcharts/demo/line-
|
|
1715
|
+
* @sample {highcharts} highcharts/demo/line-csv/
|
|
1716
1716
|
* Modify CSV before parse
|
|
1717
1717
|
*
|
|
1718
1718
|
* @type {Highcharts.DataBeforeParseCallbackFunction}
|
|
@@ -187,8 +187,7 @@ export default DataGroupingComposition;
|
|
|
187
187
|
*
|
|
188
188
|
* @declare Highcharts.DataGroupingOptionsObject
|
|
189
189
|
* @product highstock
|
|
190
|
-
* @requires
|
|
191
|
-
* @requires module:modules/datagrouping
|
|
190
|
+
* @requires modules/stock
|
|
192
191
|
* @apioption plotOptions.series.dataGrouping
|
|
193
192
|
*/
|
|
194
193
|
/**
|
|
@@ -40,7 +40,7 @@ const domurl = win.URL || win.webkitURL || win;
|
|
|
40
40
|
function dataURLtoBlob(dataURL) {
|
|
41
41
|
const parts = dataURL
|
|
42
42
|
.replace(/filename=.*;/, '')
|
|
43
|
-
.match(/data:([^;]*)(;base64)?,([
|
|
43
|
+
.match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);
|
|
44
44
|
if (parts &&
|
|
45
45
|
parts.length > 3 &&
|
|
46
46
|
(win.atob) &&
|
|
@@ -76,8 +76,6 @@ function axisGetDDPoints(x) {
|
|
|
76
76
|
* This method creates an array of arrays containing a level number
|
|
77
77
|
* with the corresponding series/point.
|
|
78
78
|
*
|
|
79
|
-
* @requires modules/breadcrumbs
|
|
80
|
-
*
|
|
81
79
|
* @private
|
|
82
80
|
* @param {Highcharts.Chart} chart
|
|
83
81
|
* Highcharts Chart object.
|
|
@@ -42,17 +42,17 @@ var Exporting;
|
|
|
42
42
|
* */
|
|
43
43
|
// These CSS properties are not inlined. Remember camelCase.
|
|
44
44
|
const inlineDenylist = [
|
|
45
|
-
/-/,
|
|
46
|
-
/^(clipPath|cssText|d|height|width)$/,
|
|
47
|
-
/^font$/,
|
|
45
|
+
/-/, // In Firefox, both hyphened and camelCased names are listed
|
|
46
|
+
/^(clipPath|cssText|d|height|width)$/, // Full words
|
|
47
|
+
/^font$/, // More specific props are set
|
|
48
48
|
/[lL]ogical(Width|Height)$/,
|
|
49
49
|
/^parentRule$/,
|
|
50
|
-
/^(cssRules|ownerRules)$/,
|
|
50
|
+
/^(cssRules|ownerRules)$/, // #19516 read-only properties
|
|
51
51
|
/perspective/,
|
|
52
52
|
/TapHighlightColor/,
|
|
53
53
|
/^transition/,
|
|
54
|
-
/^length$/,
|
|
55
|
-
|
|
54
|
+
/^length$/, // #7700
|
|
55
|
+
/^\d+$/ // #17538
|
|
56
56
|
];
|
|
57
57
|
// These ones are translated to attributes rather than styles
|
|
58
58
|
const inlineToAttributes = [
|
|
@@ -636,7 +636,7 @@ var Exporting;
|
|
|
636
636
|
.toLowerCase()
|
|
637
637
|
.replace(/<\/?[^>]+(>|$)/g, '') // Strip HTML tags
|
|
638
638
|
.replace(/[\s_]+/g, '-')
|
|
639
|
-
.replace(/[^a-
|
|
639
|
+
.replace(/[^a-z\d\-]/g, '') // Preserve only latin
|
|
640
640
|
.replace(/^[\-]+/g, '') // Dashes in the start
|
|
641
641
|
.replace(/[\-]+/g, '-') // Dashes in a row
|
|
642
642
|
.substr(0, 24)
|
|
@@ -708,7 +708,7 @@ var Exporting;
|
|
|
708
708
|
options.series = [];
|
|
709
709
|
chart.series.forEach(function (serie) {
|
|
710
710
|
seriesOptions = merge(serie.userOptions, {
|
|
711
|
-
animation: false,
|
|
711
|
+
animation: false, // Turn off animation
|
|
712
712
|
enableMouseTracking: false,
|
|
713
713
|
showCheckbox: false,
|
|
714
714
|
visible: serie.visible
|
|
@@ -797,8 +797,8 @@ var Exporting;
|
|
|
797
797
|
* Hyphenated property name
|
|
798
798
|
*/
|
|
799
799
|
function hyphenate(prop) {
|
|
800
|
-
return prop.replace(/
|
|
801
|
-
return '-' +
|
|
800
|
+
return prop.replace(/[A-Z]/g, function (match) {
|
|
801
|
+
return '-' + match.toLowerCase();
|
|
802
802
|
});
|
|
803
803
|
}
|
|
804
804
|
/**
|
|
@@ -920,7 +920,7 @@ var Exporting;
|
|
|
920
920
|
for (const key in s) {
|
|
921
921
|
if (key.length < 1000 /* RegexLimits.shortLimit */ &&
|
|
922
922
|
typeof s[key] === 'string' &&
|
|
923
|
-
|
|
923
|
+
!/^\d+$/.test(key)) {
|
|
924
924
|
defaults[key] = s[key];
|
|
925
925
|
}
|
|
926
926
|
}
|
|
@@ -1131,14 +1131,14 @@ var Exporting;
|
|
|
1131
1131
|
svg = svg
|
|
1132
1132
|
.replace(/zIndex="[^"]+"/g, '')
|
|
1133
1133
|
.replace(/symbolName="[^"]+"/g, '')
|
|
1134
|
-
.replace(/jQuery
|
|
1134
|
+
.replace(/jQuery\d+="[^"]+"/g, '')
|
|
1135
1135
|
.replace(/url\(("|")(.*?)("|")\;?\)/g, 'url($2)')
|
|
1136
1136
|
.replace(/url\([^#]+#/g, 'url(#')
|
|
1137
1137
|
.replace(/<svg /, '<svg xmlns:xlink="http://www.w3.org/1999/xlink" ')
|
|
1138
|
-
.replace(/ (
|
|
1138
|
+
.replace(/ (NS\d+\:)?href=/g, ' xlink:href=') // #3567
|
|
1139
1139
|
.replace(/\n+/g, ' ')
|
|
1140
1140
|
// Batik doesn't support rgba fills and strokes (#3095)
|
|
1141
|
-
.replace(/(fill|stroke)="rgba\(([
|
|
1141
|
+
.replace(/(fill|stroke)="rgba\(([ \d]+,[ \d]+,[ \d]+),([ \d\.]+)\)"/g, // eslint-disable-line max-len
|
|
1142
1142
|
'$1="rgb($2)" $1-opacity="$3"')
|
|
1143
1143
|
// Replace HTML entities, issue #347
|
|
1144
1144
|
.replace(/ /g, '\u00A0') // No-break space
|
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
*
|
|
12
12
|
* */
|
|
13
13
|
'use strict';
|
|
14
|
+
import GeometryUtilities from '../Core/Geometry/GeometryUtilities.js';
|
|
15
|
+
const { pointInPolygon } = GeometryUtilities;
|
|
14
16
|
import U from '../Core/Utilities.js';
|
|
15
17
|
const { addEvent, fireEvent, objectEach, pick } = U;
|
|
16
18
|
/* *
|
|
@@ -33,7 +35,14 @@ function chartHideOverlappingLabels(labels) {
|
|
|
33
35
|
const chart = this, len = labels.length, isIntersectRect = (box1, box2) => !(box2.x >= box1.x + box1.width ||
|
|
34
36
|
box2.x + box2.width <= box1.x ||
|
|
35
37
|
box2.y >= box1.y + box1.height ||
|
|
36
|
-
box2.y + box2.height <= box1.y)
|
|
38
|
+
box2.y + box2.height <= box1.y), isPolygonOverlap = (box1Poly, box2Poly) => {
|
|
39
|
+
for (const p of box1Poly) {
|
|
40
|
+
if (pointInPolygon({ x: p[0], y: p[1] }, box2Poly)) {
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return false;
|
|
45
|
+
};
|
|
37
46
|
/**
|
|
38
47
|
* Get the box with its position inside the chart, as opposed to getBBox
|
|
39
48
|
* that only reports the position relative to the parent.
|
|
@@ -50,7 +59,8 @@ function chartHideOverlappingLabels(labels) {
|
|
|
50
59
|
x: pos.x + (label.parentGroup?.translateX || 0) + padding,
|
|
51
60
|
y: pos.y + (label.parentGroup?.translateY || 0) + padding,
|
|
52
61
|
width: (label.width || 0) - 2 * padding,
|
|
53
|
-
height: (label.height || 0) - 2 * padding
|
|
62
|
+
height: (label.height || 0) - 2 * padding,
|
|
63
|
+
polygon: bBox?.polygon
|
|
54
64
|
};
|
|
55
65
|
}
|
|
56
66
|
}
|
|
@@ -71,9 +81,11 @@ function chartHideOverlappingLabels(labels) {
|
|
|
71
81
|
for (let i = 0; i < len; ++i) {
|
|
72
82
|
label1 = labels[i];
|
|
73
83
|
box1 = label1 && label1.absoluteBox;
|
|
84
|
+
const box1Poly = box1?.polygon;
|
|
74
85
|
for (let j = i + 1; j < len; ++j) {
|
|
75
86
|
label2 = labels[j];
|
|
76
87
|
box2 = label2 && label2.absoluteBox;
|
|
88
|
+
let toHide = false;
|
|
77
89
|
if (box1 &&
|
|
78
90
|
box2 &&
|
|
79
91
|
label1 !== label2 && // #6465, polar chart with connectEnds
|
|
@@ -82,9 +94,28 @@ function chartHideOverlappingLabels(labels) {
|
|
|
82
94
|
// #15863 dataLabels are no longer hidden by translation
|
|
83
95
|
label1.visibility !== 'hidden' &&
|
|
84
96
|
label2.visibility !== 'hidden') {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
97
|
+
const box2Poly = box2.polygon;
|
|
98
|
+
// If labels have polygons, only evaluate
|
|
99
|
+
// based on polygons
|
|
100
|
+
if (box1Poly &&
|
|
101
|
+
box2Poly &&
|
|
102
|
+
box1Poly !== box2Poly) {
|
|
103
|
+
if (isPolygonOverlap(box1Poly, box2Poly)) {
|
|
104
|
+
toHide = true;
|
|
105
|
+
}
|
|
106
|
+
// If there are no polygons, evaluate rectangles coliding
|
|
107
|
+
}
|
|
108
|
+
else if (isIntersectRect(box1, box2)) {
|
|
109
|
+
toHide = true;
|
|
110
|
+
}
|
|
111
|
+
if (toHide) {
|
|
112
|
+
const overlappingLabel = (label1.labelrank < label2.labelrank ?
|
|
113
|
+
label1 :
|
|
114
|
+
label2), labelText = overlappingLabel.text;
|
|
115
|
+
overlappingLabel.newOpacity = 0;
|
|
116
|
+
if (labelText?.element.querySelector('textPath')) {
|
|
117
|
+
labelText.hide();
|
|
118
|
+
}
|
|
88
119
|
}
|
|
89
120
|
}
|
|
90
121
|
}
|
|
@@ -92,7 +92,7 @@ const background = {
|
|
|
92
92
|
]
|
|
93
93
|
},
|
|
94
94
|
/** @ignore-option */
|
|
95
|
-
from: -Number.MAX_VALUE,
|
|
95
|
+
from: -Number.MAX_VALUE, // Corrected to axis min
|
|
96
96
|
/**
|
|
97
97
|
* The inner radius of the pane background. Can be either numeric
|
|
98
98
|
* (pixels) or a percentage string.
|
|
@@ -103,7 +103,7 @@ const background = {
|
|
|
103
103
|
*/
|
|
104
104
|
innerRadius: 0,
|
|
105
105
|
/** @ignore-option */
|
|
106
|
-
to: Number.MAX_VALUE,
|
|
106
|
+
to: Number.MAX_VALUE, // Corrected to axis max
|
|
107
107
|
/**
|
|
108
108
|
* The outer radius of the circular pane background. Can be either
|
|
109
109
|
* numeric (pixels) or a percentage string.
|
|
@@ -118,6 +118,7 @@ const background = {
|
|
|
118
118
|
* The pane serves as a container for axes and backgrounds for circular
|
|
119
119
|
* gauges and polar charts.
|
|
120
120
|
*
|
|
121
|
+
* @type {*|Array<*>}
|
|
121
122
|
* @since 2.3.0
|
|
122
123
|
* @product highcharts
|
|
123
124
|
* @requires highcharts-more
|
|
@@ -105,7 +105,7 @@ var ParallelCoordinates;
|
|
|
105
105
|
* Flag used in parallel coordinates plot to check if chart has
|
|
106
106
|
* ||-coords (parallel coords).
|
|
107
107
|
*
|
|
108
|
-
* @requires
|
|
108
|
+
* @requires modules/parallel-coordinates
|
|
109
109
|
*
|
|
110
110
|
* @name Highcharts.Chart#hasParallelCoordinates
|
|
111
111
|
* @type {boolean}
|
|
@@ -15,10 +15,10 @@ import SonificationInstrument from './SonificationInstrument.js';
|
|
|
15
15
|
import U from '../../Core/Utilities.js';
|
|
16
16
|
const { pick } = U;
|
|
17
17
|
const freqToNote = (f) => Math.round(12 * Math.log(f) / Math.LN2 - 48.37632), b = (byte, n) => n >>> 8 * byte & 0xFF, getHeader = (nTracks) => [
|
|
18
|
-
0x4D, 0x54, 0x68, 0x64,
|
|
19
|
-
0, 0, 0, 6,
|
|
20
|
-
0, nTracks > 1 ? 1 : 0,
|
|
21
|
-
b(1, nTracks), b(0, nTracks),
|
|
18
|
+
0x4D, 0x54, 0x68, 0x64, // HD_TYPE
|
|
19
|
+
0, 0, 0, 6, // HD_SIZE
|
|
20
|
+
0, nTracks > 1 ? 1 : 0, // HD_FORMAT
|
|
21
|
+
b(1, nTracks), b(0, nTracks), // HD_NTRACKS
|
|
22
22
|
// SMTPE: 0xE7 0x28
|
|
23
23
|
// -25/40 time div gives us millisecond SMTPE, but not widely supported.
|
|
24
24
|
1, 0xF4 // HD_TIMEDIV, 500 ticks per beat = millisecond at 120bpm
|
|
@@ -51,7 +51,7 @@ varLenEnc = (n) => {
|
|
|
51
51
|
const o = e.instrumentEventOptions || {}, t = e.time, dur = cachedDur = pick(o.noteDuration, cachedDur), tNOF = dur && e.time + dur, ctrl = [{
|
|
52
52
|
valMap: (n) => 64 + 63 * n & 0x7F,
|
|
53
53
|
data: {
|
|
54
|
-
0x0A: o.pan,
|
|
54
|
+
0x0A: o.pan, // Use MSB only, no need for fine adjust
|
|
55
55
|
0x5C: o.tremoloDepth,
|
|
56
56
|
0x5D: o.tremoloSpeed
|
|
57
57
|
}
|
|
@@ -122,8 +122,8 @@ varLenEnc = (n) => {
|
|
|
122
122
|
metaEvents.length +
|
|
123
123
|
trackEvents.length + trackEnd.length;
|
|
124
124
|
return [
|
|
125
|
-
0x4D, 0x54, 0x72, 0x6B,
|
|
126
|
-
b(3, size), b(2, size),
|
|
125
|
+
0x4D, 0x54, 0x72, 0x6B, // TRK_TYPE
|
|
126
|
+
b(3, size), b(2, size), // TRK_SIZE
|
|
127
127
|
b(1, size), b(0, size)
|
|
128
128
|
].concat(addTimeInfo ? timeInfo : [], metaEvents, trackEvents, trackEnd // SYSEX_TRACK_END
|
|
129
129
|
);
|
|
@@ -234,7 +234,6 @@ class SonificationInstrument {
|
|
|
234
234
|
* @private
|
|
235
235
|
*/
|
|
236
236
|
static noteStringToC0Distance(note) {
|
|
237
|
-
// eslint-disable-next-line require-unicode-regexp
|
|
238
237
|
const match = note.match(/^([a-g][#b]?)([0-8])$/i), semitone = match ? match[1] : 'a', wholetone = semitone[0].toLowerCase(), accidental = semitone[1], octave = match ? parseInt(match[2], 10) : 4, accidentalOffset = accidental === '#' ?
|
|
239
238
|
1 : accidental === 'b' ? -1 : 0;
|
|
240
239
|
return ({
|
|
@@ -17,9 +17,7 @@ import U from '../../Core/Utilities.js';
|
|
|
17
17
|
const { clamp, defined, extend, getNestedProperty, merge, pick } = U;
|
|
18
18
|
import T from '../../Core/Templating.js';
|
|
19
19
|
const { format } = T;
|
|
20
|
-
const isNoteDefinition = (str) =>
|
|
21
|
-
// eslint-disable-next-line require-unicode-regexp
|
|
22
|
-
(/^([a-g][#b]?)[0-8]$/i).test(str);
|
|
20
|
+
const isNoteDefinition = (str) => (/^([a-g][#b]?)[0-8]$/i).test(str);
|
|
23
21
|
/**
|
|
24
22
|
* Get the value of a point property from string.
|
|
25
23
|
* @private
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/* *
|
|
2
|
+
*
|
|
3
|
+
* Highcharts module with textPath functionality.
|
|
4
|
+
*
|
|
5
|
+
* (c) 2009-2024 Torstein Honsi
|
|
6
|
+
*
|
|
7
|
+
* License: www.highcharts.com/license
|
|
8
|
+
*
|
|
9
|
+
* !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
|
|
10
|
+
*
|
|
11
|
+
* */
|
|
12
|
+
'use strict';
|
|
13
|
+
import H from '../Core/Globals.js';
|
|
14
|
+
import U from '../Core/Utilities.js';
|
|
15
|
+
const { deg2rad } = H;
|
|
16
|
+
const { addEvent, merge, uniqueKey, defined, extend } = U;
|
|
17
|
+
/**
|
|
18
|
+
* Set a text path for a `text` or `label` element, allowing the text to
|
|
19
|
+
* flow along a path.
|
|
20
|
+
*
|
|
21
|
+
* In order to unset the path for an existing element, call `setTextPath`
|
|
22
|
+
* with `{ enabled: false }` as the second argument.
|
|
23
|
+
*
|
|
24
|
+
* Text path support is not bundled into `highcharts.js`, and requires the
|
|
25
|
+
* `modules/textpath.js` file. However, it is included in the script files of
|
|
26
|
+
* those series types that use it by default
|
|
27
|
+
*
|
|
28
|
+
* @sample highcharts/members/renderer-textpath/ Text path demonstrated
|
|
29
|
+
*
|
|
30
|
+
* @function Highcharts.SVGElement#setTextPath
|
|
31
|
+
*
|
|
32
|
+
* @param {Highcharts.SVGElement|undefined} path
|
|
33
|
+
* Path to follow. If undefined, it allows changing options for the
|
|
34
|
+
* existing path.
|
|
35
|
+
*
|
|
36
|
+
* @param {Highcharts.DataLabelsTextPathOptionsObject} textPathOptions
|
|
37
|
+
* Options.
|
|
38
|
+
*
|
|
39
|
+
* @return {Highcharts.SVGElement} Returns the SVGElement for chaining.
|
|
40
|
+
*/
|
|
41
|
+
function setTextPath(path, textPathOptions) {
|
|
42
|
+
// Defaults
|
|
43
|
+
textPathOptions = merge(true, {
|
|
44
|
+
enabled: true,
|
|
45
|
+
attributes: {
|
|
46
|
+
dy: -5,
|
|
47
|
+
startOffset: '50%',
|
|
48
|
+
textAnchor: 'middle'
|
|
49
|
+
}
|
|
50
|
+
}, textPathOptions);
|
|
51
|
+
const url = this.renderer.url, textWrapper = this.text || this, textPath = textWrapper.textPath, { attributes, enabled } = textPathOptions;
|
|
52
|
+
path = path || (textPath && textPath.path);
|
|
53
|
+
// Remove previously added event
|
|
54
|
+
if (textPath) {
|
|
55
|
+
textPath.undo();
|
|
56
|
+
}
|
|
57
|
+
if (path && enabled) {
|
|
58
|
+
const undo = addEvent(textWrapper, 'afterModifyTree', (e) => {
|
|
59
|
+
if (path && enabled) {
|
|
60
|
+
// Set ID for the path
|
|
61
|
+
let textPathId = path.attr('id');
|
|
62
|
+
if (!textPathId) {
|
|
63
|
+
path.attr('id', textPathId = uniqueKey());
|
|
64
|
+
}
|
|
65
|
+
// Set attributes for the <text>
|
|
66
|
+
const textAttribs = {
|
|
67
|
+
// `dx`/`dy` options must by set on <text> (parent), the
|
|
68
|
+
// rest should be set on <textPath>
|
|
69
|
+
x: 0,
|
|
70
|
+
y: 0
|
|
71
|
+
};
|
|
72
|
+
if (defined(attributes.dx)) {
|
|
73
|
+
textAttribs.dx = attributes.dx;
|
|
74
|
+
delete attributes.dx;
|
|
75
|
+
}
|
|
76
|
+
if (defined(attributes.dy)) {
|
|
77
|
+
textAttribs.dy = attributes.dy;
|
|
78
|
+
delete attributes.dy;
|
|
79
|
+
}
|
|
80
|
+
textWrapper.attr(textAttribs);
|
|
81
|
+
// Handle label properties
|
|
82
|
+
this.attr({ transform: '' });
|
|
83
|
+
if (this.box) {
|
|
84
|
+
this.box = this.box.destroy();
|
|
85
|
+
}
|
|
86
|
+
// Wrap the nodes in a textPath
|
|
87
|
+
const children = e.nodes.slice(0);
|
|
88
|
+
e.nodes.length = 0;
|
|
89
|
+
e.nodes[0] = {
|
|
90
|
+
tagName: 'textPath',
|
|
91
|
+
attributes: extend(attributes, {
|
|
92
|
+
'text-anchor': attributes.textAnchor,
|
|
93
|
+
href: `${url}#${textPathId}`
|
|
94
|
+
}),
|
|
95
|
+
children
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
// Set the reference
|
|
100
|
+
textWrapper.textPath = { path, undo };
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
textWrapper.attr({ dx: 0, dy: 0 });
|
|
104
|
+
delete textWrapper.textPath;
|
|
105
|
+
}
|
|
106
|
+
if (this.added) {
|
|
107
|
+
// Rebuild text after added
|
|
108
|
+
textWrapper.textCache = '';
|
|
109
|
+
this.renderer.buildText(textWrapper);
|
|
110
|
+
}
|
|
111
|
+
return this;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Attach a polygon to a bounding box if the element contains a textPath.
|
|
115
|
+
*
|
|
116
|
+
* @function Highcharts.SVGElement#setPolygon
|
|
117
|
+
*
|
|
118
|
+
* @param {any} event
|
|
119
|
+
* An event containing a bounding box object
|
|
120
|
+
*
|
|
121
|
+
* @return {Highcharts.BBoxObject} Returns the bounding box object.
|
|
122
|
+
*/
|
|
123
|
+
function setPolygon(event) {
|
|
124
|
+
const bBox = event.bBox, tp = this.element?.querySelector('textPath');
|
|
125
|
+
if (tp) {
|
|
126
|
+
const polygon = [], { b, h } = this.renderer.fontMetrics(this.element), descender = h - b, lineCleanerRegex = new RegExp('(<tspan>|' +
|
|
127
|
+
'<tspan(?!\\sclass="highcharts-br")[^>]*>|' +
|
|
128
|
+
'<\\/tspan>)', 'g'), lines = tp
|
|
129
|
+
.innerHTML
|
|
130
|
+
.replace(lineCleanerRegex, '')
|
|
131
|
+
.split(/<tspan class="highcharts-br"[^>]*>/), numOfLines = lines.length;
|
|
132
|
+
// Calculate top and bottom coordinates for
|
|
133
|
+
// either the start or the end of a single
|
|
134
|
+
// character, and append it to the polygon.
|
|
135
|
+
const appendTopAndBottom = (charIndex, positionOfChar) => {
|
|
136
|
+
const { x, y } = positionOfChar, rotation = (tp.getRotationOfChar(charIndex) - 90) * deg2rad, cosRot = Math.cos(rotation), sinRot = Math.sin(rotation);
|
|
137
|
+
return [
|
|
138
|
+
[
|
|
139
|
+
x - descender * cosRot,
|
|
140
|
+
y - descender * sinRot
|
|
141
|
+
],
|
|
142
|
+
[
|
|
143
|
+
x + b * cosRot,
|
|
144
|
+
y + b * sinRot
|
|
145
|
+
]
|
|
146
|
+
];
|
|
147
|
+
};
|
|
148
|
+
for (let i = 0, lineIndex = 0; lineIndex < numOfLines; lineIndex++) {
|
|
149
|
+
const line = lines[lineIndex], lineLen = line.length;
|
|
150
|
+
for (let lineCharIndex = 0; lineCharIndex < lineLen; lineCharIndex += 5) {
|
|
151
|
+
try {
|
|
152
|
+
const srcCharIndex = (i +
|
|
153
|
+
lineCharIndex +
|
|
154
|
+
lineIndex), [lower, upper] = appendTopAndBottom(srcCharIndex, tp.getStartPositionOfChar(srcCharIndex));
|
|
155
|
+
if (lineCharIndex === 0) {
|
|
156
|
+
polygon.push(upper);
|
|
157
|
+
polygon.push(lower);
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
if (lineIndex === 0) {
|
|
161
|
+
polygon.unshift(upper);
|
|
162
|
+
}
|
|
163
|
+
if (lineIndex === numOfLines - 1) {
|
|
164
|
+
polygon.push(lower);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
catch (e) {
|
|
169
|
+
// Safari fails on getStartPositionOfChar even if the
|
|
170
|
+
// character is within the `textContent.length`
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
i += lineLen - 1;
|
|
175
|
+
try {
|
|
176
|
+
const srcCharIndex = i + lineIndex, charPos = tp.getEndPositionOfChar(srcCharIndex), [lower, upper] = appendTopAndBottom(srcCharIndex, charPos);
|
|
177
|
+
polygon.unshift(upper);
|
|
178
|
+
polygon.unshift(lower);
|
|
179
|
+
}
|
|
180
|
+
catch (e) {
|
|
181
|
+
// Safari fails on getStartPositionOfChar even if the character
|
|
182
|
+
// is within the `textContent.length`
|
|
183
|
+
break;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// Close it
|
|
187
|
+
if (polygon.length) {
|
|
188
|
+
polygon.push(polygon[0].slice());
|
|
189
|
+
}
|
|
190
|
+
bBox.polygon = polygon;
|
|
191
|
+
}
|
|
192
|
+
return bBox;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Draw text along a textPath for a dataLabel.
|
|
196
|
+
*
|
|
197
|
+
* @function Highcharts.SVGElement#setTextPath
|
|
198
|
+
*
|
|
199
|
+
* @param {any} event
|
|
200
|
+
* An event containing label options
|
|
201
|
+
*
|
|
202
|
+
* @return {void}
|
|
203
|
+
*/
|
|
204
|
+
function drawTextPath(event) {
|
|
205
|
+
const labelOptions = event.labelOptions, point = event.point, textPathOptions = (labelOptions[point.formatPrefix + 'TextPath'] ||
|
|
206
|
+
labelOptions.textPath);
|
|
207
|
+
if (textPathOptions && !labelOptions.useHTML) {
|
|
208
|
+
this.setTextPath(point.getDataLabelPath?.(this) || point.graphic, textPathOptions);
|
|
209
|
+
if (point.dataLabelPath &&
|
|
210
|
+
!textPathOptions.enabled) {
|
|
211
|
+
// Clean the DOM
|
|
212
|
+
point.dataLabelPath = (point.dataLabelPath.destroy());
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
function compose(SVGElementClass) {
|
|
217
|
+
addEvent(SVGElementClass, 'afterGetBBox', setPolygon);
|
|
218
|
+
addEvent(SVGElementClass, 'beforeAddingDataLabel', drawTextPath);
|
|
219
|
+
const svgElementProto = SVGElementClass.prototype;
|
|
220
|
+
if (!svgElementProto.setTextPath) {
|
|
221
|
+
svgElementProto.setTextPath = setTextPath;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
const TextPath = {
|
|
225
|
+
compose
|
|
226
|
+
};
|
|
227
|
+
export default TextPath;
|
|
@@ -26,31 +26,12 @@ const boundsFromPath = function (path) {
|
|
|
26
26
|
return { x1, y1, x2, y2 };
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
|
-
/**
|
|
30
|
-
* Test for point in polygon. Polygon defined as array of [x,y] points.
|
|
31
|
-
* @private
|
|
32
|
-
*/
|
|
33
|
-
const pointInPolygon = function ({ x, y }, polygon) {
|
|
34
|
-
let i, j, rel1, rel2, c = false;
|
|
35
|
-
for (i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
|
|
36
|
-
rel1 = polygon[i][1] > y;
|
|
37
|
-
rel2 = polygon[j][1] > y;
|
|
38
|
-
if (rel1 !== rel2 &&
|
|
39
|
-
(x < (polygon[j][0] - polygon[i][0]) * (y - polygon[i][1]) /
|
|
40
|
-
(polygon[j][1] - polygon[i][1]) +
|
|
41
|
-
polygon[i][0])) {
|
|
42
|
-
c = !c;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return c;
|
|
46
|
-
};
|
|
47
29
|
/* *
|
|
48
30
|
*
|
|
49
31
|
* Default Export
|
|
50
32
|
*
|
|
51
33
|
* */
|
|
52
34
|
const MapUtilities = {
|
|
53
|
-
boundsFromPath
|
|
54
|
-
pointInPolygon
|
|
35
|
+
boundsFromPath
|
|
55
36
|
};
|
|
56
37
|
export default MapUtilities;
|
|
@@ -12,9 +12,11 @@ import H from '../Core/Globals.js';
|
|
|
12
12
|
const { composed } = H;
|
|
13
13
|
import MapViewDefaults from './MapViewDefaults.js';
|
|
14
14
|
import GeoJSONComposition from './GeoJSONComposition.js';
|
|
15
|
+
import GeometryUtilities from '../Core/Geometry/GeometryUtilities.js';
|
|
16
|
+
const { pointInPolygon } = GeometryUtilities;
|
|
15
17
|
const { topo2geo } = GeoJSONComposition;
|
|
16
18
|
import MU from './MapUtilities.js';
|
|
17
|
-
const { boundsFromPath
|
|
19
|
+
const { boundsFromPath } = MU;
|
|
18
20
|
import Projection from './Projection.js';
|
|
19
21
|
import U from '../Core/Utilities.js';
|
|
20
22
|
const { addEvent, clamp, crisp, fireEvent, isArray, isNumber, isObject, isString, merge, pick, pushUnique, relativeLength } = U;
|
|
@@ -17,6 +17,9 @@ import Series from '../../Core/Series/Series.js';
|
|
|
17
17
|
import SeriesRegistry from '../../Core/Series/SeriesRegistry.js';
|
|
18
18
|
import SVGRenderer from '../../Core/Renderer/SVG/SVGRenderer.js';
|
|
19
19
|
import U from '../../Core/Utilities.js';
|
|
20
|
+
import SVGElement from '../../Core/Renderer/SVG/SVGElement.js';
|
|
21
|
+
import TextPath from '../../Extensions/TextPath.js';
|
|
22
|
+
TextPath.compose(SVGElement);
|
|
20
23
|
const { prototype: { symbols } } = SVGRenderer;
|
|
21
24
|
const { seriesTypes: { column: ColumnSeries, sankey: SankeySeries } } = SeriesRegistry;
|
|
22
25
|
const { crisp, extend, merge, pick, relativeLength } = U;
|