highcharts 11.3.0 → 11.4.0
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/README.md +1 -1
- package/bower.json +1 -1
- package/css/annotations/popup.css +27 -19
- package/css/stocktools/gui.css +19 -7
- package/es-modules/Accessibility/A11yI18n.js +4 -6
- package/es-modules/Accessibility/Accessibility.js +8 -6
- package/es-modules/Accessibility/Components/InfoRegionsComponent.js +11 -6
- package/es-modules/Accessibility/Components/LegendComponent.js +4 -4
- package/es-modules/Accessibility/Components/MenuComponent.js +3 -6
- package/es-modules/Accessibility/Components/NavigatorComponent.js +6 -3
- package/es-modules/Accessibility/Components/RangeSelectorComponent.js +4 -7
- package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +18 -3
- package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +5 -3
- package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +4 -4
- package/es-modules/Accessibility/FocusBorder.js +5 -5
- package/es-modules/Accessibility/HighContrastMode.js +22 -13
- package/es-modules/Accessibility/HighContrastTheme.js +2 -6
- package/es-modules/Accessibility/KeyboardNavigation.js +17 -8
- package/es-modules/Accessibility/Options/A11yDefaults.js +11 -1
- package/es-modules/Accessibility/ProxyElement.js +4 -4
- package/es-modules/Accessibility/ProxyProvider.js +8 -2
- package/es-modules/Accessibility/Utils/DOMElementProvider.js +8 -0
- package/es-modules/Accessibility/Utils/EventProvider.js +9 -0
- package/es-modules/Core/Animation/Fx.js +3 -3
- package/es-modules/Core/Axis/Axis.js +43 -97
- package/es-modules/Core/Axis/Axis3DComposition.js +5 -5
- package/es-modules/Core/Axis/Axis3DDefaults.js +1 -1
- package/es-modules/Core/Axis/AxisDefaults.js +18 -7
- package/es-modules/Core/Axis/BrokenAxis.js +4 -6
- package/es-modules/Core/Axis/Color/ColorAxis.js +2 -1
- package/es-modules/Core/Axis/Color/ColorAxisComposition.js +3 -5
- package/es-modules/Core/Axis/DateTimeAxis.js +3 -5
- package/es-modules/Core/Axis/GridAxis.js +7 -7
- package/es-modules/Core/Axis/LogarithmicAxis.js +2 -4
- package/es-modules/Core/Axis/NavigatorAxisComposition.js +26 -22
- package/es-modules/Core/Axis/OrdinalAxis.js +97 -53
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -3
- package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +4 -5
- package/es-modules/Core/Axis/RadialAxis.js +5 -5
- package/es-modules/Core/Axis/ScrollbarAxis.js +2 -2
- package/es-modules/Core/Axis/Stacking/StackItem.js +8 -4
- package/es-modules/Core/Axis/Stacking/StackingAxis.js +3 -5
- package/es-modules/Core/Axis/Tick.js +16 -7
- package/es-modules/Core/Axis/Tick3DComposition.js +2 -2
- package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +4 -8
- package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +3 -6
- package/es-modules/Core/Axis/WaterfallAxis.js +3 -3
- package/es-modules/Core/Axis/ZAxis.js +6 -11
- package/es-modules/Core/Chart/Chart.js +201 -176
- package/es-modules/Core/Chart/Chart3D.js +1 -1
- package/es-modules/Core/Chart/ChartDefaults.js +7 -0
- package/es-modules/Core/Chart/GanttChart.js +2 -2
- package/es-modules/Core/Chart/MapChart.js +12 -2
- package/es-modules/Core/Chart/StockChart.js +12 -11
- package/es-modules/Core/Color/Color.js +3 -3
- package/es-modules/Core/Color/Palettes.js +2 -2
- package/es-modules/Core/Defaults.js +18 -15
- package/es-modules/Core/Geometry/CircleUtilities.js +3 -3
- package/es-modules/Core/Globals.js +2 -2
- package/es-modules/Core/HttpUtilities.js +4 -4
- package/es-modules/Core/Legend/Legend.js +6 -6
- package/es-modules/Core/MSPointer.js +7 -7
- package/es-modules/Core/Pointer.js +230 -245
- package/es-modules/Core/Renderer/HTML/AST.js +1 -1
- package/es-modules/Core/Renderer/HTML/HTMLElement.js +213 -26
- package/es-modules/Core/Renderer/RendererUtilities.js +1 -1
- package/es-modules/Core/Renderer/SVG/SVGElement.js +85 -52
- package/es-modules/Core/Renderer/SVG/SVGLabel.js +14 -11
- package/es-modules/Core/Renderer/SVG/SVGRenderer.js +17 -14
- package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +8 -7
- package/es-modules/Core/Renderer/SVG/Symbols.js +1 -1
- package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
- package/es-modules/Core/Responsive.js +5 -6
- package/es-modules/Core/Series/DataLabel.js +70 -90
- package/es-modules/Core/Series/DataSeriesComposition.js +1 -1
- package/es-modules/Core/Series/DataSeriesConverter.js +2 -2
- package/es-modules/Core/Series/Point.js +48 -40
- package/es-modules/Core/Series/Series.js +61 -51
- package/es-modules/Core/Series/Series3D.js +2 -2
- package/es-modules/Core/Series/SeriesRegistry.js +10 -2
- package/es-modules/Core/Templating.js +1 -1
- package/es-modules/Core/Time.js +12 -7
- package/es-modules/Core/Tooltip.js +19 -17
- package/es-modules/Core/Utilities.js +54 -26
- package/es-modules/Data/Connectors/CSVConnector.js +2 -2
- package/es-modules/Data/Connectors/DataConnector.js +4 -2
- package/es-modules/Data/Connectors/GoogleSheetsConnector.js +2 -2
- package/es-modules/Data/Connectors/HTMLTableConnector.js +2 -2
- package/es-modules/Data/Connectors/JSONConnector.js +3 -5
- package/es-modules/Data/Converters/CSVConverter.js +1 -3
- package/es-modules/Data/Converters/DataConverter.js +8 -2
- package/es-modules/Data/Converters/HTMLTableConverter.js +1 -3
- package/es-modules/Data/Converters/JSONConverter.js +1 -0
- package/es-modules/Data/DataTable.js +1 -2
- package/es-modules/Data/Formula/FormulaProcessor.js +4 -2
- package/es-modules/Data/Modifiers/DataModifier.js +15 -3
- package/es-modules/Extensions/Annotations/Annotation.js +6 -7
- package/es-modules/Extensions/Annotations/AnnotationChart.js +4 -5
- package/es-modules/Extensions/Annotations/AnnotationDefaults.js +4 -4
- package/es-modules/Extensions/Annotations/ControlPoint.js +2 -2
- package/es-modules/Extensions/Annotations/ControlTarget.js +1 -1
- package/es-modules/Extensions/Annotations/Controllables/Controllable.js +7 -3
- package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +3 -3
- package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +8 -9
- package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +3 -4
- package/es-modules/Extensions/Annotations/EventEmitter.js +6 -6
- package/es-modules/Extensions/Annotations/NavigationBindings.js +29 -18
- package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +6 -6
- package/es-modules/Extensions/Annotations/Popup/Popup.js +1 -1
- package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +10 -6
- package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +2 -2
- package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +31 -31
- package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +1 -1
- package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +14 -11
- package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +1 -1
- package/es-modules/Extensions/Annotations/Types/Measure.js +1 -1
- package/es-modules/Extensions/ArrowSymbols.js +7 -13
- package/es-modules/Extensions/Boost/Boost.js +39 -7
- package/es-modules/Extensions/Boost/BoostChart.js +4 -4
- package/es-modules/Extensions/Boost/BoostSeries.js +58 -13
- package/es-modules/Extensions/Boost/WGLRenderer.js +3 -3
- package/es-modules/Extensions/Boost/WGLVertexBuffer.js +1 -1
- package/es-modules/Extensions/BoostCanvas.js +5 -4
- package/es-modules/Extensions/BorderRadius.js +5 -4
- package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +9 -9
- package/es-modules/Extensions/CurrentDateIndication.js +1 -1
- package/es-modules/Extensions/Data.js +11 -11
- package/es-modules/Extensions/DataGrouping/DataGrouping.js +1 -1
- package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +8 -9
- package/es-modules/Extensions/DataGrouping/DataGroupingDefaults.js +1 -1
- package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +6 -7
- package/es-modules/Extensions/Debugger/Debugger.js +1 -1
- package/es-modules/Extensions/Debugger/ErrorMessages.js +2 -2
- package/es-modules/Extensions/DragPanes/AxisResizer.js +13 -16
- package/es-modules/Extensions/DragPanes/DragPanes.js +2 -4
- package/es-modules/Extensions/DraggablePoints/DragDropDefaults.js +2 -1
- package/es-modules/Extensions/DraggablePoints/DragDropUtilities.js +1 -1
- package/es-modules/Extensions/DraggablePoints/DraggableChart.js +4 -4
- package/es-modules/Extensions/DraggablePoints/DraggablePoints.js +8 -9
- package/es-modules/Extensions/Drilldown/Drilldown.js +11 -9
- package/es-modules/Extensions/Drilldown/DrilldownSeries.js +5 -6
- package/es-modules/Extensions/ExportData/ExportData.js +27 -18
- package/es-modules/Extensions/Exporting/Exporting.js +25 -20
- package/es-modules/Extensions/Exporting/ExportingDefaults.js +1 -1
- package/es-modules/Extensions/Exporting/Fullscreen.js +5 -10
- package/es-modules/Extensions/MarkerClusters/MarkerClusterScatter.js +26 -21
- package/es-modules/Extensions/MarkerClusters/MarkerClusterSymbols.js +2 -12
- package/es-modules/Extensions/MarkerClusters/MarkerClusters.js +3 -3
- package/es-modules/Extensions/MouseWheelZoom/MouseWheelZoom.js +51 -161
- package/es-modules/Extensions/NoDataToDisplay/NoDataToDisplay.js +3 -5
- package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +5 -6
- package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
- package/es-modules/Extensions/OverlappingDataLabels.js +21 -49
- package/es-modules/Extensions/Pane/PaneComposition.js +3 -5
- package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +2 -4
- package/es-modules/Extensions/ParallelCoordinates/ParallelCoordinates.js +5 -6
- package/es-modules/Extensions/ParallelCoordinates/ParallelSeries.js +1 -1
- package/es-modules/Extensions/PatternFill.js +19 -22
- package/es-modules/Extensions/PriceIndication.js +1 -1
- package/es-modules/Extensions/ScrollablePlotArea.js +218 -292
- package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +26 -18
- package/es-modules/Extensions/Sonification/Options.js +1 -0
- package/es-modules/Extensions/Sonification/SonificationSpeaker.js +2 -2
- package/es-modules/Extensions/Sonification/SynthPatch.js +3 -3
- package/es-modules/Extensions/StaticScale.js +3 -5
- package/es-modules/Gantt/Legacy.js +1 -1
- package/es-modules/Gantt/Pathfinder.js +2 -2
- package/es-modules/Gantt/PathfinderComposition.js +3 -5
- package/es-modules/Gantt/Tree.js +3 -3
- package/es-modules/Maps/GeoJSONComposition.js +20 -13
- package/es-modules/Maps/MapNavigation.js +2 -2
- package/es-modules/Maps/MapPointer.js +3 -19
- package/es-modules/Maps/MapSymbols.js +3 -9
- package/es-modules/Maps/MapView.js +134 -74
- package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +5 -4
- package/es-modules/Series/Area/AreaSeries.js +2 -4
- package/es-modules/Series/Area3D/Area3DSeries.js +1 -1
- package/es-modules/Series/AreaRange/AreaRangePoint.js +2 -2
- package/es-modules/Series/AreaRange/AreaRangeSeries.js +2 -3
- package/es-modules/Series/AreaSpline/AreaSplineSeries.js +1 -1
- package/es-modules/Series/Bar/BarSeries.js +1 -1
- package/es-modules/Series/Bellcurve/BellcurveSeries.js +1 -1
- package/es-modules/Series/BoxPlot/BoxPlotSeriesDefaults.js +4 -0
- package/es-modules/Series/Bubble/BubbleLegendComposition.js +1 -1
- package/es-modules/Series/Bubble/BubbleLegendDefaults.js +2 -2
- package/es-modules/Series/Bubble/BubbleLegendItem.js +3 -3
- package/es-modules/Series/Bubble/BubbleSeries.js +1 -1
- package/es-modules/Series/Bullet/BulletSeriesDefaults.js +2 -2
- package/es-modules/Series/Candlestick/CandlestickSeries.js +2 -2
- package/es-modules/Series/Candlestick/CandlestickSeriesDefaults.js +1 -5
- package/es-modules/Series/ColorMapComposition.js +1 -1
- package/es-modules/Series/Column/ColumnDataLabel.js +2 -2
- package/es-modules/Series/Column/ColumnSeries.js +20 -22
- package/es-modules/Series/Column/ColumnSeriesDefaults.js +1 -1
- package/es-modules/Series/Column3D/Column3DComposition.js +1 -1
- package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
- package/es-modules/Series/Cylinder/CylinderComposition.js +9 -9
- package/es-modules/Series/DataModifyComposition.js +5 -5
- package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +3 -2
- package/es-modules/Series/DependencyWheel/DependencyWheelSeriesDefaults.js +1 -1
- package/es-modules/Series/DragNodesComposition.js +7 -7
- package/es-modules/Series/DrawPointUtilities.js +0 -2
- package/es-modules/Series/Dumbbell/DumbbellSeriesDefaults.js +1 -1
- package/es-modules/Series/Funnel/FunnelSeries.js +1 -1
- package/es-modules/Series/Funnel3D/Funnel3DComposition.js +6 -6
- package/es-modules/Series/Funnel3D/Funnel3DSeriesDefaults.js +2 -2
- package/es-modules/Series/Funnel3D/SVGElement3DFunnel.js +1 -1
- package/es-modules/Series/Gantt/GanttSeries.js +0 -1
- package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +5 -5
- package/es-modules/Series/GraphLayoutComposition.js +1 -1
- package/es-modules/Series/Heatmap/HeatmapSeries.js +2 -2
- package/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +1 -1
- package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
- package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -3
- package/es-modules/Series/HeikinAshi/HeikinAshiSeriesDefaults.js +1 -1
- package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +2 -2
- package/es-modules/Series/Item/ItemSeries.js +1 -1
- package/es-modules/Series/Line/LineSeries.js +1 -1
- package/es-modules/Series/Lollipop/LollipopSeries.js +3 -1
- package/es-modules/Series/Map/MapPoint.js +5 -1
- package/es-modules/Series/Map/MapSeries.js +32 -7
- package/es-modules/Series/Map/MapSeriesDefaults.js +5 -3
- package/es-modules/Series/Networkgraph/EulerIntegration.js +5 -5
- package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -4
- package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +5 -5
- package/es-modules/Series/Networkgraph/QuadTree.js +1 -1
- package/es-modules/Series/Networkgraph/QuadTreeNode.js +1 -1
- package/es-modules/Series/Networkgraph/VerletIntegration.js +9 -9
- package/es-modules/Series/NodesComposition.js +1 -1
- package/es-modules/Series/OHLC/OHLCSeries.js +1 -1
- package/es-modules/Series/OHLC/OHLCSeriesDefaults.js +1 -1
- package/es-modules/Series/OnSeriesComposition.js +1 -1
- package/es-modules/Series/Organization/OrganizationPoint.js +1 -1
- package/es-modules/Series/Organization/OrganizationSeries.js +22 -10
- package/es-modules/Series/Organization/OrganizationSeriesDefaults.js +15 -2
- package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -5
- package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
- package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +6 -10
- package/es-modules/Series/Pictorial/PictorialSeries.js +2 -2
- package/es-modules/Series/Pie/PieDataLabel.js +2 -2
- package/es-modules/Series/Pie/PiePoint.js +1 -1
- package/es-modules/Series/Pie/PieSeries.js +10 -1
- package/es-modules/Series/Pie/PieSeriesDefaults.js +1 -1
- package/es-modules/Series/Pie3D/Pie3DSeries.js +2 -2
- package/es-modules/Series/PolarComposition.js +22 -20
- package/es-modules/Series/Sankey/SankeyColumnComposition.js +1 -1
- package/es-modules/Series/Sankey/SankeySeries.js +8 -8
- package/es-modules/Series/Sankey/SankeySeriesDefaults.js +57 -13
- package/es-modules/Series/SeriesOnPointComposition.js +3 -3
- package/es-modules/Series/Spline/SplineSeries.js +1 -1
- package/es-modules/Series/Sunburst/SunburstPoint.js +1 -1
- package/es-modules/Series/Sunburst/SunburstSeries.js +2 -7
- package/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +3 -3
- package/es-modules/Series/Sunburst/SunburstUtilities.js +1 -1
- package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +23 -25
- package/es-modules/Series/Tilemap/TilemapSeries.js +2 -2
- package/es-modules/Series/Timeline/TimelineSeries.js +2 -2
- package/es-modules/Series/TreeUtilities.js +23 -1
- package/es-modules/Series/Treegraph/TreegraphLayout.js +7 -11
- package/es-modules/Series/Treegraph/TreegraphPoint.js +1 -0
- package/es-modules/Series/Treegraph/TreegraphSeries.js +8 -8
- package/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +39 -2
- package/es-modules/Series/Treemap/TreemapSeries.js +4 -2
- package/es-modules/Series/Treemap/TreemapUtilities.js +0 -7
- package/es-modules/Series/Variwide/VariwideComposition.js +6 -2
- package/es-modules/Series/Variwide/VariwideSeries.js +1 -1
- package/es-modules/Series/Venn/VennSeries.js +4 -4
- package/es-modules/Series/Venn/VennUtils.js +5 -6
- package/es-modules/Series/Waterfall/WaterfallSeriesDefaults.js +1 -1
- package/es-modules/Series/Windbarb/WindbarbSeries.js +1 -1
- package/es-modules/Series/Wordcloud/WordcloudUtils.js +6 -4
- package/es-modules/Series/XRange/XRangePoint.js +2 -2
- package/es-modules/Series/XRange/XRangeSeries.js +1 -1
- package/es-modules/Shared/BaseForm.js +1 -1
- package/es-modules/Stock/Indicators/AD/ADIndicator.js +3 -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/CMO/CMOIndicator.js +2 -2
- package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +1 -1
- package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +1 -1
- package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +1 -1
- package/es-modules/Stock/Indicators/LinearRegression/LinearRegressionIndicator.js +7 -7
- package/es-modules/Stock/Indicators/MultipleLinesComposition.js +9 -9
- package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +1 -1
- package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -1
- package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +2 -2
- package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
- package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +16 -17
- package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +4 -5
- package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +1 -1
- package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +5 -5
- package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +188 -0
- package/es-modules/Stock/Navigator/Navigator.js +42 -27
- package/es-modules/Stock/Navigator/NavigatorComposition.js +10 -149
- package/es-modules/Stock/Navigator/NavigatorDefaults.js +16 -2
- package/es-modules/Stock/Navigator/StandaloneNavigator.js +334 -0
- package/es-modules/Stock/Navigator/StandaloneNavigatorDefaults.js +64 -0
- package/es-modules/Stock/RangeSelector/RangeSelector.js +28 -16
- package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +2 -2
- package/es-modules/Stock/Scrollbar/Scrollbar.js +10 -10
- package/es-modules/Stock/Scrollbar/ScrollbarDefaults.js +1 -3
- package/es-modules/Stock/StockTools/StockToolbar.js +6 -5
- package/es-modules/Stock/StockTools/StockTools.js +10 -13
- package/es-modules/Stock/StockTools/StockToolsBindings.js +35 -35
- package/es-modules/Stock/StockTools/StockToolsDefaults.js +2 -1
- package/es-modules/Stock/StockTools/StockToolsGui.js +7 -8
- package/es-modules/Stock/StockTools/StockToolsUtilities.js +8 -9
- package/es-modules/Stock/Utilities/StockUtilities.js +41 -0
- package/es-modules/masters/highcharts-3d.src.js +2 -1
- package/es-modules/masters/highcharts-gantt.src.js +1 -1
- package/es-modules/masters/highcharts-more.src.js +2 -1
- package/es-modules/masters/highcharts.src.js +41 -40
- package/es-modules/masters/highmaps.src.js +1 -1
- package/es-modules/masters/highstock.src.js +1 -1
- package/es-modules/masters/indicators/acceleration-bands.src.js +3 -1
- package/es-modules/masters/indicators/accumulation-distribution.src.js +3 -1
- package/es-modules/masters/indicators/ao.src.js +3 -1
- package/es-modules/masters/indicators/apo.src.js +3 -1
- package/es-modules/masters/indicators/aroon-oscillator.src.js +3 -1
- package/es-modules/masters/indicators/aroon.src.js +3 -1
- package/es-modules/masters/indicators/atr.src.js +3 -1
- package/es-modules/masters/indicators/bollinger-bands.src.js +3 -1
- package/es-modules/masters/indicators/cci.src.js +3 -1
- package/es-modules/masters/indicators/chaikin.src.js +3 -1
- package/es-modules/masters/indicators/cmf.src.js +3 -1
- package/es-modules/masters/indicators/cmo.src.js +3 -1
- package/es-modules/masters/indicators/dema.src.js +3 -1
- package/es-modules/masters/indicators/disparity-index.src.js +3 -1
- package/es-modules/masters/indicators/dmi.src.js +3 -1
- package/es-modules/masters/indicators/dpo.src.js +3 -1
- package/es-modules/masters/indicators/ema.src.js +2 -0
- package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +3 -1
- package/es-modules/masters/indicators/indicators-all.src.js +3 -1
- package/es-modules/masters/indicators/indicators.src.js +7 -1
- package/es-modules/masters/indicators/keltner-channels.src.js +3 -1
- package/es-modules/masters/indicators/klinger.src.js +3 -1
- package/es-modules/masters/indicators/macd.src.js +3 -1
- package/es-modules/masters/indicators/mfi.src.js +3 -1
- package/es-modules/masters/indicators/momentum.src.js +3 -1
- package/es-modules/masters/indicators/natr.src.js +3 -1
- package/es-modules/masters/indicators/obv.src.js +3 -1
- package/es-modules/masters/indicators/pivot-points.src.js +3 -1
- package/es-modules/masters/indicators/ppo.src.js +3 -1
- package/es-modules/masters/indicators/price-channel.src.js +3 -1
- package/es-modules/masters/indicators/price-envelopes.src.js +3 -1
- package/es-modules/masters/indicators/psar.src.js +3 -1
- package/es-modules/masters/indicators/regressions.src.js +3 -1
- package/es-modules/masters/indicators/roc.src.js +3 -1
- package/es-modules/masters/indicators/rsi.src.js +3 -1
- package/es-modules/masters/indicators/slow-stochastic.src.js +3 -1
- package/es-modules/masters/indicators/stochastic.src.js +3 -1
- package/es-modules/masters/indicators/supertrend.src.js +3 -1
- package/es-modules/masters/indicators/tema.src.js +3 -1
- package/es-modules/masters/indicators/trendline.src.js +3 -1
- package/es-modules/masters/indicators/trix.src.js +3 -1
- package/es-modules/masters/indicators/volume-by-price.src.js +3 -1
- package/es-modules/masters/indicators/vwap.src.js +3 -1
- package/es-modules/masters/indicators/williams-r.src.js +3 -1
- package/es-modules/masters/indicators/wma.src.js +3 -1
- package/es-modules/masters/indicators/zigzag.src.js +3 -1
- package/es-modules/masters/modules/accessibility.src.js +4 -1
- package/es-modules/masters/modules/annotations-advanced.src.js +3 -5
- package/es-modules/masters/modules/annotations.src.js +6 -3
- package/es-modules/masters/modules/arc-diagram.src.js +3 -1
- package/es-modules/masters/modules/arrow-symbols.src.js +2 -1
- package/es-modules/masters/modules/boost-canvas.src.js +2 -1
- package/es-modules/masters/modules/boost.src.js +3 -2
- package/es-modules/masters/modules/broken-axis.src.js +4 -3
- package/es-modules/masters/modules/bullet.src.js +3 -1
- package/es-modules/masters/modules/coloraxis.src.js +4 -3
- package/es-modules/masters/modules/current-date-indicator.src.js +2 -1
- package/es-modules/masters/modules/cylinder.src.js +3 -1
- package/es-modules/masters/modules/data-tools.src.js +9 -8
- package/es-modules/masters/modules/data.src.js +9 -8
- package/es-modules/masters/modules/datagrouping.src.js +7 -5
- package/es-modules/masters/modules/debugger.src.js +3 -2
- package/es-modules/masters/modules/dependency-wheel.src.js +3 -1
- package/es-modules/masters/modules/dotplot.src.js +3 -1
- package/es-modules/masters/modules/drag-panes.src.js +2 -1
- package/es-modules/masters/modules/draggable-points.src.js +2 -1
- package/es-modules/masters/modules/drilldown.src.js +3 -2
- package/es-modules/masters/modules/dumbbell.src.js +3 -1
- package/es-modules/masters/modules/export-data.src.js +5 -4
- package/es-modules/masters/modules/exporting.src.js +6 -5
- package/es-modules/masters/modules/flowmap.src.js +3 -1
- package/es-modules/masters/modules/full-screen.src.js +4 -3
- package/es-modules/masters/modules/funnel.src.js +2 -1
- package/es-modules/masters/modules/funnel3d.src.js +4 -3
- package/es-modules/masters/modules/gantt.src.js +15 -17
- package/es-modules/masters/modules/geoheatmap.src.js +3 -1
- package/es-modules/masters/modules/grid-axis.src.js +2 -1
- package/es-modules/masters/modules/heatmap.src.js +3 -5
- package/es-modules/masters/modules/heikinashi.src.js +2 -1
- package/es-modules/masters/modules/histogram-bellcurve.src.js +3 -1
- package/es-modules/masters/modules/hollowcandlestick.src.js +3 -1
- package/es-modules/masters/modules/item-series.src.js +3 -1
- package/es-modules/masters/modules/lollipop.src.js +3 -1
- package/es-modules/masters/modules/map.src.js +15 -10
- package/es-modules/masters/modules/marker-clusters.src.js +2 -1
- package/es-modules/masters/modules/mouse-wheel-zoom.src.js +4 -2
- package/es-modules/masters/modules/navigator.src.d.ts +1 -0
- package/es-modules/masters/modules/navigator.src.js +19 -0
- package/es-modules/masters/modules/networkgraph.src.js +2 -1
- package/es-modules/masters/modules/no-data-to-display.src.js +2 -1
- package/es-modules/masters/modules/offline-exporting.src.js +4 -3
- package/es-modules/masters/modules/organization.src.js +3 -1
- package/es-modules/masters/modules/overlapping-datalabels.src.js +4 -2
- package/es-modules/masters/modules/parallel-coordinates.src.js +2 -1
- package/es-modules/masters/modules/pareto.src.js +3 -1
- package/es-modules/masters/modules/pathfinder.src.js +4 -3
- package/es-modules/masters/modules/pattern-fill.src.js +2 -1
- package/es-modules/masters/modules/pictorial.src.js +3 -1
- package/es-modules/masters/modules/price-indicator.src.js +2 -1
- package/es-modules/masters/modules/pyramid3d.src.js +3 -1
- package/es-modules/masters/modules/sankey.src.js +3 -1
- package/es-modules/masters/modules/series-label.src.js +2 -1
- package/es-modules/masters/modules/series-on-point.src.js +2 -1
- package/es-modules/masters/modules/solid-gauge.src.js +3 -1
- package/es-modules/masters/modules/sonification.src.js +2 -1
- package/es-modules/masters/modules/static-scale.src.js +2 -1
- package/es-modules/masters/modules/stock-tools.src.js +5 -3
- package/es-modules/masters/modules/stock.src.js +20 -15
- package/es-modules/masters/modules/streamgraph.src.js +3 -1
- package/es-modules/masters/modules/sunburst.src.js +4 -3
- package/es-modules/masters/modules/tiledwebmap.src.js +5 -4
- package/es-modules/masters/modules/tilemap.src.js +2 -1
- package/es-modules/masters/modules/timeline.src.js +3 -1
- package/es-modules/masters/modules/treegraph.src.js +3 -1
- package/es-modules/masters/modules/treegrid.src.js +2 -2
- package/es-modules/masters/modules/treemap.src.js +5 -4
- package/es-modules/masters/modules/variable-pie.src.js +3 -1
- package/es-modules/masters/modules/variwide.src.js +2 -1
- package/es-modules/masters/modules/vector.src.js +3 -1
- package/es-modules/masters/modules/venn.src.js +3 -1
- package/es-modules/masters/modules/windbarb.src.js +3 -1
- package/es-modules/masters/modules/wordcloud.src.js +3 -1
- package/es-modules/masters/modules/xrange.src.js +2 -1
- package/es-modules/masters/standalone-navigator.src.js +13 -0
- package/es-modules/masters/themes/avocado.src.js +2 -1
- package/es-modules/masters/themes/brand-dark.src.js +2 -1
- package/es-modules/masters/themes/brand-light.src.js +2 -1
- package/es-modules/masters/themes/dark-blue.src.js +2 -1
- package/es-modules/masters/themes/dark-green.src.js +2 -1
- package/es-modules/masters/themes/dark-unica.src.js +2 -1
- package/es-modules/masters/themes/gray.src.js +2 -1
- package/es-modules/masters/themes/grid-light.src.js +2 -1
- package/es-modules/masters/themes/grid.src.js +2 -1
- package/es-modules/masters/themes/high-contrast-dark.src.js +2 -1
- package/es-modules/masters/themes/high-contrast-light.src.js +2 -1
- package/es-modules/masters/themes/sand-signika.src.js +2 -1
- package/es-modules/masters/themes/skies.src.js +2 -1
- package/es-modules/masters/themes/sunset.src.js +2 -1
- package/es-modules/tsconfig.tsbuildinfo +1 -0
- package/globals.d.ts +9 -0
- package/globals.src.d.ts +9 -0
- package/highcharts-3d.js +3 -3
- package/highcharts-3d.src.js +32 -33
- package/highcharts-gantt.js +4 -4
- package/highcharts-gantt.src.js +5703 -5639
- package/highcharts-more.d.ts +4 -0
- package/highcharts-more.js +3 -3
- package/highcharts-more.src.d.ts +4 -0
- package/highcharts-more.src.js +88 -87
- package/highcharts.d.ts +834 -5365
- package/highcharts.js +4 -4
- package/highcharts.src.d.ts +834 -5365
- package/highcharts.src.js +1583 -1682
- package/highmaps.js +4 -4
- package/highmaps.src.js +1837 -1835
- package/highstock.js +4 -4
- package/highstock.src.js +12488 -12510
- package/indicators/acceleration-bands.js +3 -3
- package/indicators/acceleration-bands.src.js +12 -11
- package/indicators/accumulation-distribution.js +3 -3
- package/indicators/accumulation-distribution.src.js +6 -3
- package/indicators/ao.js +3 -3
- package/indicators/ao.src.js +3 -2
- package/indicators/apo.js +3 -3
- package/indicators/apo.src.js +4 -3
- package/indicators/aroon-oscillator.js +3 -3
- package/indicators/aroon-oscillator.src.js +12 -11
- package/indicators/aroon.js +3 -3
- package/indicators/aroon.src.js +13 -12
- package/indicators/atr.js +3 -3
- package/indicators/atr.src.js +3 -2
- package/indicators/bollinger-bands.js +3 -3
- package/indicators/bollinger-bands.src.js +12 -11
- package/indicators/cci.js +3 -3
- package/indicators/cci.src.js +3 -2
- package/indicators/chaikin.js +3 -3
- package/indicators/chaikin.src.js +7 -4
- package/indicators/cmf.js +3 -3
- package/indicators/cmf.src.js +4 -3
- package/indicators/cmo.js +3 -3
- package/indicators/cmo.src.js +5 -4
- package/indicators/dema.js +3 -3
- package/indicators/dema.src.js +3 -2
- package/indicators/disparity-index.js +3 -3
- package/indicators/disparity-index.src.js +3 -2
- package/indicators/dmi.js +3 -3
- package/indicators/dmi.src.js +12 -11
- package/indicators/dpo.js +3 -3
- package/indicators/dpo.src.js +4 -3
- package/indicators/ema.js +1 -1
- package/indicators/ema.src.js +2 -1
- package/indicators/ichimoku-kinko-hyo.js +3 -3
- package/indicators/ichimoku-kinko-hyo.src.js +3 -2
- package/indicators/indicators-all.js +3 -3
- package/indicators/indicators-all.src.js +63 -60
- package/indicators/indicators.js +3 -3
- package/indicators/indicators.src.js +286 -3
- package/indicators/keltner-channels.js +3 -3
- package/indicators/keltner-channels.src.js +12 -11
- package/indicators/klinger.js +3 -3
- package/indicators/klinger.src.js +13 -12
- package/indicators/macd.js +3 -3
- package/indicators/macd.src.js +3 -2
- package/indicators/mfi.js +3 -3
- package/indicators/mfi.src.js +3 -2
- package/indicators/momentum.js +3 -3
- package/indicators/momentum.src.js +3 -2
- package/indicators/natr.js +3 -3
- package/indicators/natr.src.js +3 -2
- package/indicators/obv.js +3 -3
- package/indicators/obv.src.js +4 -3
- package/indicators/pivot-points.js +3 -3
- package/indicators/pivot-points.src.js +5 -4
- package/indicators/ppo.js +3 -3
- package/indicators/ppo.src.js +4 -3
- package/indicators/price-channel.js +3 -3
- package/indicators/price-channel.src.js +12 -11
- package/indicators/price-envelopes.js +3 -3
- package/indicators/price-envelopes.src.js +12 -11
- package/indicators/psar.js +3 -3
- package/indicators/psar.src.js +3 -2
- package/indicators/regressions.js +3 -3
- package/indicators/regressions.src.js +10 -9
- package/indicators/roc.js +3 -3
- package/indicators/roc.src.js +3 -2
- package/indicators/rsi.js +3 -3
- package/indicators/rsi.src.js +3 -2
- package/indicators/slow-stochastic.js +3 -3
- package/indicators/slow-stochastic.src.js +3 -2
- package/indicators/stochastic.js +3 -3
- package/indicators/stochastic.src.js +12 -11
- package/indicators/supertrend.js +3 -3
- package/indicators/supertrend.src.js +20 -19
- package/indicators/tema.js +3 -3
- package/indicators/tema.src.js +3 -2
- package/indicators/trendline.js +3 -3
- package/indicators/trendline.src.js +3 -2
- package/indicators/trix.js +3 -3
- package/indicators/trix.src.js +3 -2
- package/indicators/volume-by-price.js +3 -3
- package/indicators/volume-by-price.src.js +8 -7
- package/indicators/vwap.js +3 -3
- package/indicators/vwap.src.js +3 -2
- package/indicators/williams-r.js +3 -3
- package/indicators/williams-r.src.js +4 -3
- package/indicators/wma.js +3 -3
- package/indicators/wma.src.js +3 -2
- package/indicators/zigzag.js +3 -3
- package/indicators/zigzag.src.js +8 -7
- package/lib/svg2pdf.js +7 -7
- package/lib/svg2pdf.src.js +185 -150
- package/modules/accessibility.js +3 -3
- package/modules/accessibility.src.js +664 -2793
- package/modules/annotations-advanced.d.ts +3 -0
- package/modules/annotations-advanced.js +3 -3
- package/modules/annotations-advanced.src.d.ts +3 -0
- package/modules/annotations-advanced.src.js +2949 -2920
- package/modules/annotations.d.ts +0 -3
- package/modules/annotations.js +3 -3
- package/modules/annotations.src.d.ts +0 -3
- package/modules/annotations.src.js +2926 -2905
- package/modules/arc-diagram.js +3 -3
- package/modules/arc-diagram.src.js +8 -6
- package/modules/arrow-symbols.js +3 -3
- package/modules/arrow-symbols.src.js +10 -13
- package/modules/boost-canvas.js +3 -3
- package/modules/boost-canvas.src.js +73 -26
- package/modules/boost.js +3 -3
- package/modules/boost.src.js +108 -30
- package/modules/broken-axis.js +3 -3
- package/modules/broken-axis.src.js +9 -9
- package/modules/bullet.js +3 -3
- package/modules/bullet.src.js +5 -4
- package/modules/coloraxis.js +3 -3
- package/modules/coloraxis.src.js +10 -9
- package/modules/current-date-indicator.js +3 -3
- package/modules/current-date-indicator.src.js +3 -2
- package/modules/cylinder.js +3 -3
- package/modules/cylinder.src.js +12 -11
- package/modules/data-tools.js +3 -3
- package/modules/data-tools.src.js +53 -36
- package/modules/data.d.ts +2 -2
- package/modules/data.js +3 -3
- package/modules/data.src.d.ts +2 -2
- package/modules/data.src.js +24 -23
- package/modules/datagrouping.js +3 -3
- package/modules/datagrouping.src.js +25 -23
- package/modules/debugger.js +3 -3
- package/modules/debugger.src.js +6 -5
- package/modules/dependency-wheel.js +3 -3
- package/modules/dependency-wheel.src.js +7 -5
- package/modules/dotplot.js +3 -3
- package/modules/dotplot.src.js +3 -2
- package/modules/drag-panes.js +3 -3
- package/modules/drag-panes.src.js +19 -21
- package/modules/draggable-points.js +3 -3
- package/modules/draggable-points.src.js +18 -16
- package/modules/drilldown.js +3 -3
- package/modules/drilldown.src.js +29 -26
- package/modules/dumbbell.js +3 -3
- package/modules/dumbbell.src.js +5 -4
- package/modules/export-data.js +3 -3
- package/modules/export-data.src.js +33 -22
- package/modules/exporting.d.ts +1 -1
- package/modules/exporting.js +3 -3
- package/modules/exporting.src.d.ts +1 -1
- package/modules/exporting.src.js +40 -39
- package/modules/flowmap.js +3 -3
- package/modules/flowmap.src.js +3 -2
- package/modules/full-screen.js +3 -3
- package/modules/full-screen.src.js +9 -13
- package/modules/funnel.js +3 -3
- package/modules/funnel.src.js +3 -2
- package/modules/funnel3d.js +3 -3
- package/modules/funnel3d.src.js +12 -12
- package/modules/gantt.d.ts +3 -4
- package/modules/gantt.js +3 -3
- package/modules/gantt.src.d.ts +3 -4
- package/modules/gantt.src.js +4165 -4002
- package/modules/geoheatmap.js +3 -3
- package/modules/geoheatmap.src.js +8 -7
- package/modules/grid-axis.js +3 -3
- package/modules/grid-axis.src.js +9 -8
- package/modules/heatmap.d.ts +2 -2
- package/modules/heatmap.js +3 -3
- package/modules/heatmap.src.d.ts +2 -2
- package/modules/heatmap.src.js +21 -15
- package/modules/heikinashi.js +3 -3
- package/modules/heikinashi.src.js +9 -6
- package/modules/histogram-bellcurve.js +3 -3
- package/modules/histogram-bellcurve.src.js +4 -3
- package/modules/hollowcandlestick.js +3 -3
- package/modules/hollowcandlestick.src.js +5 -4
- package/modules/item-series.js +3 -3
- package/modules/item-series.src.js +4 -3
- package/modules/lollipop.js +3 -3
- package/modules/lollipop.src.js +6 -3
- package/modules/map.d.ts +22 -1
- package/modules/map.js +3 -3
- package/modules/map.src.d.ts +22 -1
- package/modules/map.src.js +256 -155
- package/modules/marker-clusters.js +3 -3
- package/modules/marker-clusters.src.js +35 -37
- package/modules/mouse-wheel-zoom.js +3 -3
- package/modules/mouse-wheel-zoom.src.js +55 -163
- package/modules/navigator.d.ts +148 -0
- package/modules/navigator.js +9 -0
- package/modules/navigator.src.d.ts +148 -0
- package/modules/navigator.src.js +3921 -0
- package/modules/networkgraph.d.ts +2 -2
- package/modules/networkgraph.js +3 -3
- package/modules/networkgraph.src.d.ts +2 -2
- package/modules/networkgraph.src.js +36 -35
- package/modules/no-data-to-display.js +3 -3
- package/modules/no-data-to-display.src.js +6 -6
- package/modules/offline-exporting.js +3 -3
- package/modules/offline-exporting.src.js +10 -10
- package/modules/organization.js +3 -3
- package/modules/organization.src.js +41 -15
- package/modules/overlapping-datalabels.js +3 -3
- package/modules/overlapping-datalabels.src.js +4 -2
- package/modules/parallel-coordinates.js +3 -3
- package/modules/parallel-coordinates.src.js +12 -12
- package/modules/pareto.js +3 -3
- package/modules/pareto.src.js +3 -2
- package/modules/pathfinder.js +3 -3
- package/modules/pathfinder.src.js +18 -22
- package/modules/pattern-fill.js +3 -3
- package/modules/pattern-fill.src.js +22 -23
- package/modules/pictorial.js +3 -3
- package/modules/pictorial.src.js +25 -26
- package/modules/price-indicator.js +3 -3
- package/modules/price-indicator.src.js +3 -2
- package/modules/pyramid3d.js +3 -3
- package/modules/pyramid3d.src.js +3 -2
- package/modules/sankey.js +3 -3
- package/modules/sankey.src.js +93 -26
- package/modules/series-label.js +3 -3
- package/modules/series-label.src.js +28 -19
- package/modules/series-on-point.js +3 -3
- package/modules/series-on-point.src.js +5 -4
- package/modules/solid-gauge.js +3 -3
- package/modules/solid-gauge.src.js +3 -2
- package/modules/sonification.d.ts +2 -2
- package/modules/sonification.js +3 -3
- package/modules/sonification.src.d.ts +2 -2
- package/modules/sonification.src.js +8 -6
- package/modules/static-scale.js +3 -3
- package/modules/static-scale.src.js +6 -6
- package/modules/stock-tools.js +3 -3
- package/modules/stock-tools.src.js +109 -96
- package/modules/stock.d.ts +1 -1
- package/modules/stock.js +3 -3
- package/modules/stock.src.d.ts +1 -1
- package/modules/stock.src.js +10762 -10685
- package/modules/streamgraph.js +3 -3
- package/modules/streamgraph.src.js +3 -2
- package/modules/sunburst.js +3 -3
- package/modules/sunburst.src.js +50 -37
- package/modules/tiledwebmap.js +4 -4
- package/modules/tiledwebmap.src.js +28 -29
- package/modules/tilemap.js +3 -3
- package/modules/tilemap.src.js +4 -3
- package/modules/timeline.js +3 -3
- package/modules/timeline.src.js +5 -4
- package/modules/treegraph.js +3 -3
- package/modules/treegraph.src.js +58 -23
- package/modules/treegrid.js +3 -3
- package/modules/treegrid.src.js +49 -33
- package/modules/treemap.js +3 -3
- package/modules/treemap.src.js +44 -26
- package/modules/variable-pie.js +3 -3
- package/modules/variable-pie.src.js +3 -2
- package/modules/variwide.js +3 -3
- package/modules/variwide.src.js +9 -4
- package/modules/vector.js +3 -3
- package/modules/vector.src.js +3 -2
- package/modules/venn.js +3 -3
- package/modules/venn.src.js +16 -17
- package/modules/windbarb.js +3 -3
- package/modules/windbarb.src.js +5 -4
- package/modules/wordcloud.js +3 -3
- package/modules/wordcloud.src.js +10 -8
- package/modules/xrange.js +3 -3
- package/modules/xrange.src.js +5 -4
- package/package.json +1 -1
- package/standalone-navigator.js +2 -0
- package/standalone-navigator.src.js +49402 -0
- package/themes/avocado.js +3 -3
- package/themes/avocado.src.js +2 -1
- package/themes/brand-dark.js +3 -3
- package/themes/brand-dark.src.js +2 -1
- package/themes/brand-light.js +3 -3
- package/themes/brand-light.src.js +2 -1
- package/themes/dark-blue.js +3 -3
- package/themes/dark-blue.src.js +2 -1
- package/themes/dark-green.js +3 -3
- package/themes/dark-green.src.js +2 -1
- package/themes/dark-unica.js +3 -3
- package/themes/dark-unica.src.js +2 -1
- package/themes/gray.js +3 -3
- package/themes/gray.src.js +2 -1
- package/themes/grid-light.js +3 -3
- package/themes/grid-light.src.js +2 -1
- package/themes/grid.js +3 -3
- package/themes/grid.src.js +2 -1
- package/themes/high-contrast-dark.js +3 -3
- package/themes/high-contrast-dark.src.js +2 -1
- package/themes/high-contrast-light.js +3 -3
- package/themes/high-contrast-light.src.js +2 -1
- package/themes/sand-signika.js +3 -3
- package/themes/sand-signika.src.js +2 -1
- package/themes/skies.js +3 -3
- package/themes/skies.src.js +2 -1
- package/themes/sunset.js +3 -3
- package/themes/sunset.src.js +2 -1
- package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +0 -259
- package/lib/canvg.js +0 -8
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
import Color from './Color/Color.js';
|
|
12
12
|
const { parse: color } = Color;
|
|
13
13
|
import H from './Globals.js';
|
|
14
|
-
const { charts, composed
|
|
14
|
+
const { charts, composed } = H;
|
|
15
15
|
import U from './Utilities.js';
|
|
16
|
-
const { addEvent, attr, css,
|
|
16
|
+
const { addEvent, attr, css, extend, find, fireEvent, isNumber, isObject, objectEach, offset, pick, pushUnique, splat } = U;
|
|
17
17
|
/* *
|
|
18
18
|
*
|
|
19
19
|
* Class
|
|
@@ -119,22 +119,24 @@ class Pointer {
|
|
|
119
119
|
shapeType: 'rect'
|
|
120
120
|
};
|
|
121
121
|
fireEvent(this, 'getSelectionMarkerAttrs', e, (e) => {
|
|
122
|
-
const { chart, mouseDownX = 0, mouseDownY = 0
|
|
122
|
+
const { chart, zoomHor, zoomVert } = this, { mouseDownX = 0, mouseDownY = 0 } = chart, attrs = e.attrs;
|
|
123
123
|
let size;
|
|
124
124
|
attrs.x = chart.plotLeft;
|
|
125
125
|
attrs.y = chart.plotTop;
|
|
126
126
|
attrs.width = zoomHor ? 1 : chart.plotWidth;
|
|
127
127
|
attrs.height = zoomVert ? 1 : chart.plotHeight;
|
|
128
|
-
// Adjust the width of the selection marker
|
|
128
|
+
// Adjust the width of the selection marker. Firefox needs at
|
|
129
|
+
// least one pixel width or height in order to return a bounding
|
|
130
|
+
// box.
|
|
129
131
|
if (zoomHor) {
|
|
130
132
|
size = chartX - mouseDownX;
|
|
131
|
-
attrs.width = Math.abs(size);
|
|
133
|
+
attrs.width = Math.max(1, Math.abs(size));
|
|
132
134
|
attrs.x = (size > 0 ? 0 : size) + mouseDownX;
|
|
133
135
|
}
|
|
134
136
|
// Adjust the height of the selection marker
|
|
135
137
|
if (zoomVert) {
|
|
136
138
|
size = chartY - mouseDownY;
|
|
137
|
-
attrs.height = Math.abs(size);
|
|
139
|
+
attrs.height = Math.max(1, Math.abs(size));
|
|
138
140
|
attrs.y = (size > 0 ? 0 : size) + mouseDownY;
|
|
139
141
|
}
|
|
140
142
|
});
|
|
@@ -147,9 +149,9 @@ class Pointer {
|
|
|
147
149
|
* @function Highcharts.Pointer#drag
|
|
148
150
|
*/
|
|
149
151
|
drag(e) {
|
|
150
|
-
const chart = this
|
|
151
|
-
|
|
152
|
-
|
|
152
|
+
const { chart } = this, { mouseDownX = 0, mouseDownY = 0 } = chart, { panning, panKey, selectionMarkerFill } = chart.options.chart, plotLeft = chart.plotLeft, plotTop = chart.plotTop, plotWidth = chart.plotWidth, plotHeight = chart.plotHeight, panningEnabled = isObject(panning) ?
|
|
153
|
+
panning.enabled :
|
|
154
|
+
panning, panKeyPressed = panKey && e[`${panKey}Key`];
|
|
153
155
|
let chartX = e.chartX, chartY = e.chartY, clickedInside, selectionMarker = this.selectionMarker;
|
|
154
156
|
// If the device supports both touch and mouse (like IE11), and we are
|
|
155
157
|
// touch-dragging inside the plot area, don't handle the mouse event.
|
|
@@ -171,7 +173,7 @@ class Pointer {
|
|
|
171
173
|
else if (chartY > plotTop + plotHeight) {
|
|
172
174
|
chartY = plotTop + plotHeight;
|
|
173
175
|
}
|
|
174
|
-
//
|
|
176
|
+
// Determine if the mouse has moved more than 10px
|
|
175
177
|
this.hasDragged = Math.sqrt(Math.pow(mouseDownX - chartX, 2) +
|
|
176
178
|
Math.pow(mouseDownY - chartY, 2));
|
|
177
179
|
if (this.hasDragged > 10) {
|
|
@@ -179,11 +181,11 @@ class Pointer {
|
|
|
179
181
|
visiblePlotOnly: true
|
|
180
182
|
});
|
|
181
183
|
const { shapeType, attrs } = this.getSelectionMarkerAttrs(chartX, chartY);
|
|
182
|
-
//
|
|
184
|
+
// Make a selection
|
|
183
185
|
if ((chart.hasCartesianSeries || chart.mapView) &&
|
|
184
|
-
|
|
186
|
+
this.hasZoom &&
|
|
185
187
|
clickedInside &&
|
|
186
|
-
!
|
|
188
|
+
!panKeyPressed) {
|
|
187
189
|
if (!selectionMarker) {
|
|
188
190
|
this.selectionMarker = selectionMarker =
|
|
189
191
|
chart.renderer[shapeType]();
|
|
@@ -195,7 +197,7 @@ class Pointer {
|
|
|
195
197
|
.add();
|
|
196
198
|
if (!chart.styledMode) {
|
|
197
199
|
selectionMarker.attr({
|
|
198
|
-
fill:
|
|
200
|
+
fill: selectionMarkerFill ||
|
|
199
201
|
color("#334eff" /* Palette.highlightColor80 */)
|
|
200
202
|
.setOpacity(0.25).get()
|
|
201
203
|
});
|
|
@@ -205,11 +207,9 @@ class Pointer {
|
|
|
205
207
|
if (selectionMarker) {
|
|
206
208
|
selectionMarker.attr(attrs);
|
|
207
209
|
}
|
|
208
|
-
//
|
|
209
|
-
if (clickedInside &&
|
|
210
|
-
|
|
211
|
-
panningEnabled) {
|
|
212
|
-
chart.pan(e, chartOptions.panning);
|
|
210
|
+
// Panning
|
|
211
|
+
if (clickedInside && !selectionMarker && panningEnabled) {
|
|
212
|
+
chart.pan(e, panning);
|
|
213
213
|
}
|
|
214
214
|
}
|
|
215
215
|
}
|
|
@@ -223,8 +223,8 @@ class Pointer {
|
|
|
223
223
|
// Record the start position
|
|
224
224
|
chart.mouseIsDown = e.type;
|
|
225
225
|
chart.cancelClick = false;
|
|
226
|
-
chart.mouseDownX =
|
|
227
|
-
chart.mouseDownY =
|
|
226
|
+
chart.mouseDownX = e.chartX;
|
|
227
|
+
chart.mouseDownY = e.chartY;
|
|
228
228
|
}
|
|
229
229
|
/**
|
|
230
230
|
* Get selection box to calculate extremes
|
|
@@ -235,16 +235,9 @@ class Pointer {
|
|
|
235
235
|
getSelectionBox(marker) {
|
|
236
236
|
const e = {
|
|
237
237
|
args: { marker },
|
|
238
|
-
result:
|
|
238
|
+
result: marker.getBBox()
|
|
239
239
|
};
|
|
240
|
-
fireEvent(this, 'getSelectionBox', e
|
|
241
|
-
e.result = {
|
|
242
|
-
x: marker.attr ? +marker.attr('x') : marker.x,
|
|
243
|
-
y: marker.attr ? +marker.attr('y') : marker.y,
|
|
244
|
-
width: marker.attr ? marker.attr('width') : marker.width,
|
|
245
|
-
height: marker.attr ? marker.attr('height') : marker.height
|
|
246
|
-
};
|
|
247
|
-
});
|
|
240
|
+
fireEvent(this, 'getSelectionBox', e);
|
|
248
241
|
return e.result;
|
|
249
242
|
}
|
|
250
243
|
/**
|
|
@@ -253,72 +246,55 @@ class Pointer {
|
|
|
253
246
|
* @function Highcharts.Pointer#drop
|
|
254
247
|
*/
|
|
255
248
|
drop(e) {
|
|
256
|
-
const
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
// a selection has been made
|
|
272
|
-
if (this.hasDragged || hasPinched) {
|
|
273
|
-
// record each axis' min and max
|
|
274
|
-
chart.axes.forEach(function (axis) {
|
|
275
|
-
if (axis.zoomEnabled &&
|
|
276
|
-
defined(axis.min) &&
|
|
277
|
-
(hasPinched ||
|
|
278
|
-
pointer[{
|
|
279
|
-
xAxis: 'zoomX',
|
|
280
|
-
yAxis: 'zoomY'
|
|
281
|
-
}[axis.coll]]) &&
|
|
282
|
-
isNumber(x) &&
|
|
283
|
-
isNumber(y) &&
|
|
284
|
-
isNumber(width) &&
|
|
285
|
-
isNumber(height)) { // #859, #3569
|
|
286
|
-
const horiz = axis.horiz, minPixelPadding = e.type === 'touchend' ?
|
|
287
|
-
axis.minPixelPadding :
|
|
288
|
-
0, // #1207, #3075
|
|
289
|
-
selectionMin = axis.toValue((horiz ? x : y) + minPixelPadding), selectionMax = axis.toValue((horiz ? x + width : y + height) -
|
|
290
|
-
minPixelPadding);
|
|
291
|
-
selectionData[axis.coll].push({
|
|
292
|
-
axis: axis,
|
|
293
|
-
// Min/max for reversed axes
|
|
294
|
-
min: Math.min(selectionMin, selectionMax),
|
|
295
|
-
max: Math.max(selectionMin, selectionMax)
|
|
296
|
-
});
|
|
297
|
-
runZoom = true;
|
|
298
|
-
}
|
|
299
|
-
});
|
|
300
|
-
if (runZoom) {
|
|
301
|
-
fireEvent(chart, 'selection', selectionData, function (args) {
|
|
302
|
-
chart.zoom(extend(args, hasPinched ?
|
|
303
|
-
{ animation: false } :
|
|
304
|
-
null));
|
|
305
|
-
});
|
|
249
|
+
const { chart, selectionMarker } = this;
|
|
250
|
+
// During a mouse, touch or mousewheel pan, the `startOnTick` and
|
|
251
|
+
// `endOnTick` options are ignored. Otherwise the zooming or panning
|
|
252
|
+
// would be jumpy, or even not performed because the end ticks would
|
|
253
|
+
// block it. After the touch has ended, we undo this and render again.
|
|
254
|
+
let redraw;
|
|
255
|
+
for (const axis of chart.axes) {
|
|
256
|
+
if (axis.isPanning) {
|
|
257
|
+
axis.isPanning = false;
|
|
258
|
+
if (axis.options.startOnTick ||
|
|
259
|
+
axis.options.endOnTick ||
|
|
260
|
+
axis.series.some((s) => s.boosted)) {
|
|
261
|
+
axis.forceRedraw = true;
|
|
262
|
+
axis.setExtremes(axis.userMin, axis.userMax, false);
|
|
263
|
+
redraw = true;
|
|
306
264
|
}
|
|
307
265
|
}
|
|
308
|
-
|
|
309
|
-
|
|
266
|
+
}
|
|
267
|
+
if (redraw) {
|
|
268
|
+
chart.redraw();
|
|
269
|
+
}
|
|
270
|
+
if (selectionMarker && e) {
|
|
271
|
+
// A selection has been made
|
|
272
|
+
if (this.hasDragged) {
|
|
273
|
+
const from = this.getSelectionBox(selectionMarker);
|
|
274
|
+
chart.transform({
|
|
275
|
+
axes: chart.axes.filter((a) => a.zoomEnabled &&
|
|
276
|
+
((a.coll === 'xAxis' && this.zoomX) ||
|
|
277
|
+
(a.coll === 'yAxis' && this.zoomY))),
|
|
278
|
+
selection: {
|
|
279
|
+
originalEvent: e,
|
|
280
|
+
xAxis: [],
|
|
281
|
+
yAxis: [],
|
|
282
|
+
...from
|
|
283
|
+
},
|
|
284
|
+
from
|
|
285
|
+
});
|
|
310
286
|
}
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
this.scaleGroups();
|
|
287
|
+
if (isNumber(chart.index)) {
|
|
288
|
+
this.selectionMarker = selectionMarker.destroy();
|
|
314
289
|
}
|
|
315
290
|
}
|
|
316
291
|
// Reset all. Check isNumber because it may be destroyed on mouse up
|
|
317
292
|
// (#877)
|
|
318
293
|
if (chart && isNumber(chart.index)) {
|
|
319
294
|
css(chart.container, { cursor: chart._cursor });
|
|
320
|
-
chart.cancelClick =
|
|
321
|
-
chart.mouseIsDown =
|
|
295
|
+
chart.cancelClick = this.hasDragged > 10; // #370
|
|
296
|
+
chart.mouseIsDown = false;
|
|
297
|
+
this.hasDragged = 0;
|
|
322
298
|
this.pinchDown = [];
|
|
323
299
|
}
|
|
324
300
|
}
|
|
@@ -344,8 +320,8 @@ class Pointer {
|
|
|
344
320
|
let closest;
|
|
345
321
|
/** @private */
|
|
346
322
|
function sort(p1, p2) {
|
|
347
|
-
const isCloserX = p1.distX - p2.distX, isCloser = p1.dist - p2.dist, isAbove = (
|
|
348
|
-
|
|
323
|
+
const isCloserX = p1.distX - p2.distX, isCloser = p1.dist - p2.dist, isAbove = (p2.series.group?.zIndex -
|
|
324
|
+
p1.series.group?.zIndex);
|
|
349
325
|
let result;
|
|
350
326
|
// We have two points which are not in the same place on xAxis
|
|
351
327
|
// and shared tooltip:
|
|
@@ -387,10 +363,9 @@ class Pointer {
|
|
|
387
363
|
* @function Highcharts.Pointer#getChartCoordinatesFromPoint
|
|
388
364
|
*/
|
|
389
365
|
getChartCoordinatesFromPoint(point, inverted) {
|
|
390
|
-
const
|
|
366
|
+
const { xAxis, yAxis } = point.series, shapeArgs = point.shapeArgs;
|
|
391
367
|
if (xAxis && yAxis) {
|
|
392
|
-
let x =
|
|
393
|
-
let y = point.plotY || 0;
|
|
368
|
+
let x = point.clientX ?? point.plotX ?? 0, y = point.plotY || 0;
|
|
394
369
|
if (point.isNode &&
|
|
395
370
|
shapeArgs &&
|
|
396
371
|
isNumber(shapeArgs.x) &&
|
|
@@ -436,8 +411,7 @@ class Pointer {
|
|
|
436
411
|
scaleX: 1,
|
|
437
412
|
scaleY: 1
|
|
438
413
|
};
|
|
439
|
-
const offsetWidth = container
|
|
440
|
-
const offsetHeight = container.offsetHeight;
|
|
414
|
+
const { offsetHeight, offsetWidth } = container;
|
|
441
415
|
// #13342 - tooltip was not visible in Chrome, when chart
|
|
442
416
|
// updates height.
|
|
443
417
|
if (offsetWidth > 2 && // #13342
|
|
@@ -464,12 +438,12 @@ class Pointer {
|
|
|
464
438
|
xAxis: [],
|
|
465
439
|
yAxis: []
|
|
466
440
|
};
|
|
467
|
-
this.chart.axes
|
|
441
|
+
for (const axis of this.chart.axes) {
|
|
468
442
|
coordinates[axis.isXAxis ? 'xAxis' : 'yAxis'].push({
|
|
469
|
-
axis
|
|
443
|
+
axis,
|
|
470
444
|
value: axis.toValue(e[axis.horiz ? 'chartX' : 'chartY'])
|
|
471
445
|
});
|
|
472
|
-
}
|
|
446
|
+
}
|
|
473
447
|
return coordinates;
|
|
474
448
|
}
|
|
475
449
|
/**
|
|
@@ -644,9 +618,7 @@ class Pointer {
|
|
|
644
618
|
* tooltip structures.
|
|
645
619
|
*/
|
|
646
620
|
constructor(chart, options) {
|
|
647
|
-
this.hasDragged =
|
|
648
|
-
this.lastValidTouch = {};
|
|
649
|
-
this.pinchDown = [];
|
|
621
|
+
this.hasDragged = 0;
|
|
650
622
|
this.eventsToUnbind = [];
|
|
651
623
|
// Store references
|
|
652
624
|
this.options = options;
|
|
@@ -654,7 +626,6 @@ class Pointer {
|
|
|
654
626
|
// Do we need to handle click on a touch device?
|
|
655
627
|
this.runChartClick = Boolean(options.chart.events?.click);
|
|
656
628
|
this.pinchDown = [];
|
|
657
|
-
this.lastValidTouch = {};
|
|
658
629
|
this.setDOMEvents();
|
|
659
630
|
fireEvent(this, 'afterInit');
|
|
660
631
|
}
|
|
@@ -679,7 +650,7 @@ class Pointer {
|
|
|
679
650
|
*/
|
|
680
651
|
normalize(e, chartPosition) {
|
|
681
652
|
const touches = e.touches;
|
|
682
|
-
// iOS (#2757)
|
|
653
|
+
// Position for iOS (#2757)
|
|
683
654
|
const ePos = (touches ?
|
|
684
655
|
touches.length ?
|
|
685
656
|
touches.item(0) :
|
|
@@ -714,19 +685,19 @@ class Pointer {
|
|
|
714
685
|
// On tracker click, fire the series and point events. #783, #1583
|
|
715
686
|
if (hoverPoint &&
|
|
716
687
|
this.inClass(pEvt.target, 'highcharts-tracker')) {
|
|
717
|
-
//
|
|
688
|
+
// The series click event
|
|
718
689
|
fireEvent(hoverPoint.series, 'click', extend(pEvt, {
|
|
719
690
|
point: hoverPoint
|
|
720
691
|
}));
|
|
721
|
-
//
|
|
722
|
-
if (chart.hoverPoint) { //
|
|
692
|
+
// The point click event
|
|
693
|
+
if (chart.hoverPoint) { // It may be destroyed (#1844)
|
|
723
694
|
hoverPoint.firePointEvent('click', pEvt);
|
|
724
695
|
}
|
|
725
696
|
// When clicking outside a tracker, fire a chart event
|
|
726
697
|
}
|
|
727
698
|
else {
|
|
728
699
|
extend(pEvt, this.getCoordinates(pEvt));
|
|
729
|
-
//
|
|
700
|
+
// Fire a click event in the chart
|
|
730
701
|
if (chart.isInsidePlot(pEvt.chartX - plotLeft, pEvt.chartY - plotTop, {
|
|
731
702
|
visiblePlotOnly: true
|
|
732
703
|
})) {
|
|
@@ -752,9 +723,8 @@ class Pointer {
|
|
|
752
723
|
isPrimaryButton) {
|
|
753
724
|
this.zoomOption(e);
|
|
754
725
|
// #295, #13737 solve conflict between container drag and chart zoom
|
|
755
|
-
if (isPrimaryButton
|
|
756
|
-
e.preventDefault)
|
|
757
|
-
e.preventDefault();
|
|
726
|
+
if (isPrimaryButton) {
|
|
727
|
+
e.preventDefault?.();
|
|
758
728
|
}
|
|
759
729
|
this.dragStart(e);
|
|
760
730
|
}
|
|
@@ -765,16 +735,16 @@ class Pointer {
|
|
|
765
735
|
* @function Highcharts.Pointer#onContainerMouseLeave
|
|
766
736
|
*/
|
|
767
737
|
onContainerMouseLeave(e) {
|
|
768
|
-
const
|
|
738
|
+
const { pointer } = charts[pick(Pointer.hoverChartIndex, -1)] || {};
|
|
769
739
|
e = this.normalize(e);
|
|
770
740
|
this.onContainerMouseMove(e);
|
|
771
741
|
// #4886, MS Touch end fires mouseleave but with no related target
|
|
772
|
-
if (
|
|
742
|
+
if (pointer &&
|
|
773
743
|
e.relatedTarget &&
|
|
774
744
|
!this.inClass(e.relatedTarget, 'highcharts-tooltip')) {
|
|
775
|
-
|
|
745
|
+
pointer.reset();
|
|
776
746
|
// Also reset the chart position, used in #149 fix
|
|
777
|
-
|
|
747
|
+
pointer.chartPosition = void 0;
|
|
778
748
|
}
|
|
779
749
|
}
|
|
780
750
|
/**
|
|
@@ -782,7 +752,7 @@ class Pointer {
|
|
|
782
752
|
* @private
|
|
783
753
|
* @function Highcharts.Pointer#onContainerMouseEnter
|
|
784
754
|
*/
|
|
785
|
-
onContainerMouseEnter(
|
|
755
|
+
onContainerMouseEnter() {
|
|
786
756
|
delete this.chartPosition;
|
|
787
757
|
}
|
|
788
758
|
/**
|
|
@@ -820,10 +790,7 @@ class Pointer {
|
|
|
820
790
|
* @function Highcharts.Pointer#onDocumentTouchEnd
|
|
821
791
|
*/
|
|
822
792
|
onDocumentTouchEnd(e) {
|
|
823
|
-
|
|
824
|
-
if (hoverChart) {
|
|
825
|
-
hoverChart.pointer.drop(e);
|
|
826
|
-
}
|
|
793
|
+
this.onDocumentMouseUp(e);
|
|
827
794
|
}
|
|
828
795
|
/**
|
|
829
796
|
* @private
|
|
@@ -878,10 +845,9 @@ class Pointer {
|
|
|
878
845
|
* @function Highcharts.Pointer#onDocumentMouseUp
|
|
879
846
|
*/
|
|
880
847
|
onDocumentMouseUp(e) {
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
}
|
|
848
|
+
charts[pick(Pointer.hoverChartIndex, -1)]
|
|
849
|
+
?.pointer
|
|
850
|
+
?.drop(e);
|
|
885
851
|
}
|
|
886
852
|
/**
|
|
887
853
|
* Handle touch events with two touches
|
|
@@ -889,132 +855,182 @@ class Pointer {
|
|
|
889
855
|
* @function Highcharts.Pointer#pinch
|
|
890
856
|
*/
|
|
891
857
|
pinch(e) {
|
|
892
|
-
const
|
|
858
|
+
const pointer = this, { chart, hasZoom, lastTouches } = pointer, touches = [].map.call(e.touches || [],
|
|
859
|
+
// Normalize each touch
|
|
860
|
+
(touch) => pointer.normalize(touch)), touchesLength = touches.length, fireClickEvent = touchesLength === 1 && ((pointer.inClass(e.target, 'highcharts-tracker') &&
|
|
893
861
|
chart.runTrackerClick) ||
|
|
894
|
-
|
|
895
|
-
pick(
|
|
896
|
-
let selectionMarker = self.selectionMarker;
|
|
862
|
+
pointer.runChartClick), tooltip = chart.tooltip, followTouchMove = touchesLength === 1 &&
|
|
863
|
+
pick(tooltip?.options.followTouchMove, true);
|
|
897
864
|
// Don't initiate panning until the user has pinched. This prevents us
|
|
898
865
|
// from blocking page scrolling as users scroll down a long page
|
|
899
866
|
// (#4210).
|
|
900
867
|
if (touchesLength > 1) {
|
|
901
|
-
|
|
868
|
+
pointer.initiated = true;
|
|
902
869
|
}
|
|
903
870
|
else if (followTouchMove) {
|
|
904
871
|
// #16119: Prevent blocking scroll when single-finger panning is
|
|
905
872
|
// not enabled
|
|
906
|
-
|
|
873
|
+
pointer.initiated = false;
|
|
907
874
|
}
|
|
908
875
|
// On touch devices, only proceed to trigger click if a handler is
|
|
909
876
|
// defined
|
|
910
877
|
if (hasZoom &&
|
|
911
|
-
|
|
878
|
+
pointer.initiated &&
|
|
912
879
|
!fireClickEvent &&
|
|
913
880
|
e.cancelable !== false) {
|
|
914
881
|
e.preventDefault();
|
|
915
882
|
}
|
|
916
|
-
// Normalize each touch
|
|
917
|
-
[].map.call(touches, function (e) {
|
|
918
|
-
return self.normalize(e);
|
|
919
|
-
});
|
|
920
883
|
// Register the touch start position
|
|
921
884
|
if (e.type === 'touchstart') {
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
});
|
|
925
|
-
lastValidTouch.x = [pinchDown[0].chartX, pinchDown[1] &&
|
|
926
|
-
pinchDown[1].chartX];
|
|
927
|
-
lastValidTouch.y = [pinchDown[0].chartY, pinchDown[1] &&
|
|
928
|
-
pinchDown[1].chartY];
|
|
929
|
-
// Identify the data bounds in pixels
|
|
930
|
-
chart.axes.forEach(function (axis) {
|
|
931
|
-
if (axis.zoomEnabled) {
|
|
932
|
-
const bounds = chart.bounds[axis.horiz ? 'h' : 'v'], minPixelPadding = axis.minPixelPadding, min = axis.toPixels(Math.min(pick(axis.options.min, axis.dataMin), axis.dataMin)), max = axis.toPixels(Math.max(pick(axis.options.max, axis.dataMax), axis.dataMax)), absMin = Math.min(min, max), absMax = Math.max(min, max);
|
|
933
|
-
// Store the bounds for use in the touchmove handler
|
|
934
|
-
bounds.min = Math.min(axis.pos, absMin - minPixelPadding);
|
|
935
|
-
bounds.max = Math.max(axis.pos + axis.len, absMax + minPixelPadding);
|
|
936
|
-
}
|
|
937
|
-
});
|
|
938
|
-
self.res = true; // reset on next move
|
|
885
|
+
pointer.pinchDown = touches;
|
|
886
|
+
pointer.res = true; // Reset on next move
|
|
939
887
|
// Optionally move the tooltip on touchmove
|
|
940
888
|
}
|
|
941
889
|
else if (followTouchMove) {
|
|
942
|
-
this.runPointActions(
|
|
943
|
-
// Event type is touchmove, handle panning and pinching
|
|
890
|
+
this.runPointActions(pointer.normalize(e));
|
|
891
|
+
// Event type is touchmove, handle panning and pinching. The length can
|
|
892
|
+
// be 0 when releasing, if touchend fires first
|
|
944
893
|
}
|
|
945
|
-
else if (
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
894
|
+
else if (lastTouches) {
|
|
895
|
+
fireEvent(chart, 'touchpan', {
|
|
896
|
+
originalEvent: e,
|
|
897
|
+
touches
|
|
898
|
+
}, () => {
|
|
899
|
+
const boxFromTouches = (touches) => {
|
|
900
|
+
const finger0 = touches[0], finger1 = touches[1] || finger0;
|
|
901
|
+
return {
|
|
902
|
+
x: finger0.chartX,
|
|
903
|
+
y: finger0.chartY,
|
|
904
|
+
width: finger1.chartX - finger0.chartX,
|
|
905
|
+
height: finger1.chartY - finger0.chartY
|
|
906
|
+
};
|
|
907
|
+
};
|
|
908
|
+
chart.transform({
|
|
909
|
+
axes: chart.axes
|
|
910
|
+
.filter((axis) => axis.zoomEnabled &&
|
|
911
|
+
((this.zoomHor && axis.horiz) ||
|
|
912
|
+
(this.zoomVert && !axis.horiz))),
|
|
913
|
+
to: boxFromTouches(touches),
|
|
914
|
+
from: boxFromTouches(lastTouches),
|
|
915
|
+
trigger: e.type
|
|
916
|
+
});
|
|
962
917
|
});
|
|
963
|
-
if (
|
|
964
|
-
|
|
918
|
+
if (pointer.res) {
|
|
919
|
+
pointer.res = false;
|
|
965
920
|
this.reset(false, 0);
|
|
966
921
|
}
|
|
967
922
|
}
|
|
923
|
+
pointer.lastTouches = touches;
|
|
968
924
|
}
|
|
969
925
|
/**
|
|
970
926
|
* Run translation operations
|
|
971
927
|
* @private
|
|
972
928
|
* @function Highcharts.Pointer#pinchTranslate
|
|
973
|
-
|
|
974
|
-
pinchTranslate(
|
|
929
|
+
* /
|
|
930
|
+
public pinchTranslate(
|
|
931
|
+
pinchDown: Array<any>,
|
|
932
|
+
touches: Array<PointerEvent>,
|
|
933
|
+
transform: any,
|
|
934
|
+
selectionMarker: any,
|
|
935
|
+
clip: any,
|
|
936
|
+
lastValidTouch: any
|
|
937
|
+
): void {
|
|
975
938
|
if (this.zoomHor) {
|
|
976
|
-
this.pinchTranslateDirection(
|
|
939
|
+
this.pinchTranslateDirection(
|
|
940
|
+
true,
|
|
941
|
+
pinchDown,
|
|
942
|
+
touches,
|
|
943
|
+
transform,
|
|
944
|
+
selectionMarker,
|
|
945
|
+
clip,
|
|
946
|
+
lastValidTouch
|
|
947
|
+
);
|
|
977
948
|
}
|
|
978
949
|
if (this.zoomVert) {
|
|
979
|
-
this.pinchTranslateDirection(
|
|
950
|
+
this.pinchTranslateDirection(
|
|
951
|
+
false,
|
|
952
|
+
pinchDown,
|
|
953
|
+
touches,
|
|
954
|
+
transform,
|
|
955
|
+
selectionMarker,
|
|
956
|
+
clip,
|
|
957
|
+
lastValidTouch
|
|
958
|
+
);
|
|
980
959
|
}
|
|
981
960
|
}
|
|
961
|
+
*/
|
|
982
962
|
/**
|
|
983
963
|
* Run translation operations for each direction (horizontal and vertical)
|
|
984
964
|
* independently.
|
|
985
965
|
* @private
|
|
986
966
|
* @function Highcharts.Pointer#pinchTranslateDirection
|
|
987
|
-
|
|
988
|
-
pinchTranslateDirection(
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
967
|
+
* /
|
|
968
|
+
public pinchTranslateDirection(
|
|
969
|
+
horiz: boolean,
|
|
970
|
+
pinchDown: Array<any>,
|
|
971
|
+
touches: Array<PointerEvent>,
|
|
972
|
+
transform: any,
|
|
973
|
+
selectionMarker: any,
|
|
974
|
+
clip: any,
|
|
975
|
+
lastValidTouch: any,
|
|
976
|
+
forcedScale?: number
|
|
977
|
+
): void {
|
|
978
|
+
const chart = this.chart,
|
|
979
|
+
xy: ('x'|'y') = horiz ? 'x' : 'y',
|
|
980
|
+
XY: ('X'|'Y') = horiz ? 'X' : 'Y',
|
|
981
|
+
sChartXY: ('chartX'|'chartY') = ('chart' + XY) as any,
|
|
982
|
+
wh = horiz ? 'width' : 'height',
|
|
983
|
+
plotLeftTop = (chart as any)['plot' + (horiz ? 'Left' : 'Top')],
|
|
984
|
+
inverted = chart.inverted,
|
|
985
|
+
bounds = chart.bounds[horiz ? 'h' : 'v'],
|
|
986
|
+
singleTouch = pinchDown.length === 1,
|
|
987
|
+
touch0Start = pinchDown[0][sChartXY],
|
|
988
|
+
touch1Start = !singleTouch && pinchDown[1][sChartXY],
|
|
989
|
+
setScale = function (): void {
|
|
990
|
+
// Don't zoom if fingers are too close on this axis
|
|
991
|
+
if (
|
|
992
|
+
typeof touch1Now === 'number' &&
|
|
993
|
+
Math.abs(touch0Start - touch1Start) > 20
|
|
994
|
+
) {
|
|
995
|
+
scale = forcedScale ||
|
|
996
|
+
Math.abs(touch0Now - touch1Now) /
|
|
995
997
|
Math.abs(touch0Start - touch1Start);
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
998
|
+
}
|
|
999
|
+
|
|
1000
|
+
clipXY = ((plotLeftTop - touch0Now) / scale) + touch0Start;
|
|
1001
|
+
selectionWH = (chart as any)[
|
|
1002
|
+
'plot' + (horiz ? 'Width' : 'Height')
|
|
1003
|
+
] / scale;
|
|
1004
|
+
};
|
|
1005
|
+
|
|
1006
|
+
let selectionWH: any,
|
|
1007
|
+
selectionXY,
|
|
1008
|
+
clipXY: any,
|
|
1009
|
+
scale = forcedScale || 1,
|
|
1010
|
+
touch0Now = touches[0][sChartXY],
|
|
1011
|
+
touch1Now = !singleTouch && touches[1][sChartXY],
|
|
1012
|
+
outOfBounds;
|
|
1013
|
+
|
|
1001
1014
|
// Set the scale, first pass
|
|
1002
1015
|
setScale();
|
|
1016
|
+
|
|
1003
1017
|
// The clip position (x or y) is altered if out of bounds, the selection
|
|
1004
1018
|
// position is not
|
|
1005
1019
|
selectionXY = clipXY;
|
|
1020
|
+
|
|
1006
1021
|
// Out of bounds
|
|
1007
1022
|
if (selectionXY < bounds.min) {
|
|
1008
1023
|
selectionXY = bounds.min;
|
|
1009
1024
|
outOfBounds = true;
|
|
1010
|
-
}
|
|
1011
|
-
else if (selectionXY + selectionWH > bounds.max) {
|
|
1025
|
+
} else if (selectionXY + selectionWH > bounds.max) {
|
|
1012
1026
|
selectionXY = bounds.max - selectionWH;
|
|
1013
1027
|
outOfBounds = true;
|
|
1014
1028
|
}
|
|
1029
|
+
|
|
1015
1030
|
// Is the chart dragged off its bounds, determined by dataMin and
|
|
1016
1031
|
// dataMax?
|
|
1017
1032
|
if (outOfBounds) {
|
|
1033
|
+
|
|
1018
1034
|
// Modify the touchNow position in order to create an elastic drag
|
|
1019
1035
|
// movement. This indicates to the user that the chart is responsive
|
|
1020
1036
|
// but can't be dragged further.
|
|
@@ -1022,13 +1038,15 @@ class Pointer {
|
|
|
1022
1038
|
if (typeof touch1Now === 'number') {
|
|
1023
1039
|
touch1Now -= 0.8 * (touch1Now - lastValidTouch[xy][1]);
|
|
1024
1040
|
}
|
|
1041
|
+
|
|
1025
1042
|
// Set the scale, second pass to adapt to the modified touchNow
|
|
1026
1043
|
// positions
|
|
1027
1044
|
setScale();
|
|
1028
|
-
|
|
1029
|
-
else {
|
|
1045
|
+
|
|
1046
|
+
} else {
|
|
1030
1047
|
lastValidTouch[xy] = [touch0Now, touch1Now];
|
|
1031
1048
|
}
|
|
1049
|
+
|
|
1032
1050
|
// Set geometry for clipping, selection and transformation
|
|
1033
1051
|
if (!inverted) {
|
|
1034
1052
|
clip[xy] = clipXY - plotLeftTop;
|
|
@@ -1037,6 +1055,7 @@ class Pointer {
|
|
|
1037
1055
|
const scaleKey = inverted ?
|
|
1038
1056
|
(horiz ? 'scaleY' : 'scaleX') : 'scale' + XY;
|
|
1039
1057
|
const transformScale = inverted ? 1 / scale : scale;
|
|
1058
|
+
|
|
1040
1059
|
selectionMarker[wh] = selectionWH;
|
|
1041
1060
|
selectionMarker[xy] = selectionXY;
|
|
1042
1061
|
// Invert scale if needed (#19217)
|
|
@@ -1044,6 +1063,7 @@ class Pointer {
|
|
|
1044
1063
|
transform['translate' + XY] = (transformScale * plotLeftTop) +
|
|
1045
1064
|
(touch0Now - (transformScale * touch0Start));
|
|
1046
1065
|
}
|
|
1066
|
+
*/
|
|
1047
1067
|
/**
|
|
1048
1068
|
* Reset the tracking by hiding the tooltip, the hover series state and the
|
|
1049
1069
|
* hover point
|
|
@@ -1123,7 +1143,7 @@ class Pointer {
|
|
|
1123
1143
|
chart.axes.forEach(function (axis) {
|
|
1124
1144
|
axis.hideCrosshair();
|
|
1125
1145
|
});
|
|
1126
|
-
|
|
1146
|
+
chart.hoverPoints = chart.hoverPoint = void 0;
|
|
1127
1147
|
}
|
|
1128
1148
|
}
|
|
1129
1149
|
/**
|
|
@@ -1222,12 +1242,9 @@ class Pointer {
|
|
|
1222
1242
|
}
|
|
1223
1243
|
// Start the event listener to pick up the tooltip and crosshairs
|
|
1224
1244
|
if (!pointer.unDocMouseMove) {
|
|
1225
|
-
pointer.unDocMouseMove = addEvent(chart.container.ownerDocument, 'mousemove',
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
chart.pointer.onDocumentMouseMove(e);
|
|
1229
|
-
}
|
|
1230
|
-
});
|
|
1245
|
+
pointer.unDocMouseMove = addEvent(chart.container.ownerDocument, 'mousemove', (e) => charts[Pointer.hoverChartIndex ?? -1]
|
|
1246
|
+
?.pointer
|
|
1247
|
+
?.onDocumentMouseMove(e));
|
|
1231
1248
|
pointer.eventsToUnbind.push(pointer.unDocMouseMove);
|
|
1232
1249
|
}
|
|
1233
1250
|
// Issues related to crosshair #4927, #5269 #5066, #5658
|
|
@@ -1251,34 +1268,6 @@ class Pointer {
|
|
|
1251
1268
|
}
|
|
1252
1269
|
});
|
|
1253
1270
|
}
|
|
1254
|
-
/**
|
|
1255
|
-
* Scale series groups to a certain scale and translation.
|
|
1256
|
-
* @private
|
|
1257
|
-
* @function Highcharts.Pointer#scaleGroups
|
|
1258
|
-
*/
|
|
1259
|
-
scaleGroups(attribs, clip) {
|
|
1260
|
-
const chart = this.chart;
|
|
1261
|
-
// Scale each series
|
|
1262
|
-
chart.series.forEach(function (series) {
|
|
1263
|
-
const seriesAttribs = attribs || series.getPlotBox('series'); // #1701 and #19217
|
|
1264
|
-
if (series.group &&
|
|
1265
|
-
((series.xAxis && series.xAxis.zoomEnabled) ||
|
|
1266
|
-
chart.mapView)) {
|
|
1267
|
-
series.group.attr(seriesAttribs);
|
|
1268
|
-
if (series.markerGroup) {
|
|
1269
|
-
series.markerGroup.attr(
|
|
1270
|
-
// #20018
|
|
1271
|
-
attribs || series.getPlotBox('marker'));
|
|
1272
|
-
series.markerGroup.clip(clip ? chart.clipRect : null);
|
|
1273
|
-
}
|
|
1274
|
-
if (series.dataLabelsGroup) {
|
|
1275
|
-
series.dataLabelsGroup.attr(seriesAttribs);
|
|
1276
|
-
}
|
|
1277
|
-
}
|
|
1278
|
-
});
|
|
1279
|
-
// Clip
|
|
1280
|
-
chart.clipRect.attr(clip || chart.clipBox);
|
|
1281
|
-
}
|
|
1282
1271
|
/**
|
|
1283
1272
|
* Set the JS DOM events on the container and document. This method should
|
|
1284
1273
|
* contain a one-to-one assignment between methods and their handlers. Any
|
|
@@ -1292,8 +1281,7 @@ class Pointer {
|
|
|
1292
1281
|
container.onmousedown = this.onContainerMouseDown.bind(this);
|
|
1293
1282
|
container.onmousemove = this.onContainerMouseMove.bind(this);
|
|
1294
1283
|
container.onclick = this.onContainerClick.bind(this);
|
|
1295
|
-
this.eventsToUnbind.push(addEvent(container, 'mouseenter', this.onContainerMouseEnter.bind(this)));
|
|
1296
|
-
this.eventsToUnbind.push(addEvent(container, 'mouseleave', this.onContainerMouseLeave.bind(this)));
|
|
1284
|
+
this.eventsToUnbind.push(addEvent(container, 'mouseenter', this.onContainerMouseEnter.bind(this)), addEvent(container, 'mouseleave', this.onContainerMouseLeave.bind(this)));
|
|
1297
1285
|
if (!Pointer.unbindDocumentMouseUp) {
|
|
1298
1286
|
Pointer.unbindDocumentMouseUp = addEvent(ownerDoc, 'mouseup', this.onDocumentMouseUp.bind(this));
|
|
1299
1287
|
}
|
|
@@ -1306,12 +1294,9 @@ class Pointer {
|
|
|
1306
1294
|
}));
|
|
1307
1295
|
parent = parent.parentElement;
|
|
1308
1296
|
}
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
if (!Pointer.unbindDocumentTouchEnd) {
|
|
1313
|
-
Pointer.unbindDocumentTouchEnd = addEvent(ownerDoc, 'touchend', this.onDocumentTouchEnd.bind(this), { passive: false });
|
|
1314
|
-
}
|
|
1297
|
+
this.eventsToUnbind.push(addEvent(container, 'touchstart', this.onContainerTouchStart.bind(this), { passive: false }), addEvent(container, 'touchmove', this.onContainerTouchMove.bind(this), { passive: false }));
|
|
1298
|
+
if (!Pointer.unbindDocumentTouchEnd) {
|
|
1299
|
+
Pointer.unbindDocumentTouchEnd = addEvent(ownerDoc, 'touchend', this.onDocumentTouchEnd.bind(this), { passive: false });
|
|
1315
1300
|
}
|
|
1316
1301
|
}
|
|
1317
1302
|
/**
|
|
@@ -1325,7 +1310,7 @@ class Pointer {
|
|
|
1325
1310
|
const hoverChart = H.charts[pick(Pointer.hoverChartIndex, -1)];
|
|
1326
1311
|
if (hoverChart &&
|
|
1327
1312
|
hoverChart !== chart) {
|
|
1328
|
-
hoverChart.pointer
|
|
1313
|
+
hoverChart.pointer?.onContainerMouseLeave(e || { relatedTarget: chart.container });
|
|
1329
1314
|
}
|
|
1330
1315
|
if (!hoverChart ||
|
|
1331
1316
|
!hoverChart.mouseIsDown) {
|
|
@@ -1338,8 +1323,8 @@ class Pointer {
|
|
|
1338
1323
|
* @function Highcharts.Pointer#touch
|
|
1339
1324
|
*/
|
|
1340
1325
|
touch(e, start) {
|
|
1341
|
-
const chart = this
|
|
1342
|
-
let hasMoved,
|
|
1326
|
+
const { chart, pinchDown = [] } = this;
|
|
1327
|
+
let hasMoved, isInside;
|
|
1343
1328
|
this.setHoverChartIndex();
|
|
1344
1329
|
if (e.touches.length === 1) {
|
|
1345
1330
|
e = this.normalize(e);
|
|
@@ -1356,12 +1341,12 @@ class Pointer {
|
|
|
1356
1341
|
// however, the touchmove doesn't fire unless the finger moves
|
|
1357
1342
|
// more than ~4px. So we emulate this behaviour in Android by
|
|
1358
1343
|
// checking how much it moved, and cancelling on small
|
|
1359
|
-
// distances. #3450.
|
|
1344
|
+
// distances. #3450. Tested and still relevant as of 2024.
|
|
1360
1345
|
if (e.type === 'touchmove') {
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1346
|
+
hasMoved = pinchDown[0] ? // #5266
|
|
1347
|
+
(Math.pow(pinchDown[0].chartX - e.chartX, 2) +
|
|
1348
|
+
Math.pow(pinchDown[0].chartY - e.chartY, 2)) >= 16 :
|
|
1349
|
+
false;
|
|
1365
1350
|
}
|
|
1366
1351
|
if (pick(hasMoved, true)) {
|
|
1367
1352
|
this.pinch(e);
|
|
@@ -1394,7 +1379,7 @@ class Pointer {
|
|
|
1394
1379
|
* @function Highcharts.Pointer#zoomOption
|
|
1395
1380
|
*/
|
|
1396
1381
|
zoomOption(e) {
|
|
1397
|
-
const chart = this.chart,
|
|
1382
|
+
const chart = this.chart, inverted = chart.inverted;
|
|
1398
1383
|
let zoomType = chart.zooming.type || '', zoomX, zoomY;
|
|
1399
1384
|
// Look for the pinchType option
|
|
1400
1385
|
if (/touch/.test(e.type)) {
|
|
@@ -1427,7 +1412,7 @@ class Pointer {
|
|
|
1427
1412
|
* @private
|
|
1428
1413
|
*/
|
|
1429
1414
|
function compose(ChartClass) {
|
|
1430
|
-
if (pushUnique(composed,
|
|
1415
|
+
if (pushUnique(composed, 'Core.Pointer')) {
|
|
1431
1416
|
addEvent(ChartClass, 'beforeRender', function () {
|
|
1432
1417
|
/**
|
|
1433
1418
|
* The Pointer that keeps track of mouse and touch
|