@ntlab/ntjs-assets 2.99.0 → 2.101.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/assets/js/DataTables/DataTables/js/dataTables.js +110 -122
- package/assets/js/DataTables/DataTables/js/dataTables.min.js +2 -2
- package/assets/js/DataTables/Extensions/AutoFill/js/autoFill.bootstrap5.min.js +1 -1
- package/assets/js/DataTables/Extensions/AutoFill/js/autoFill.dataTables.min.js +1 -1
- package/assets/js/DataTables/Extensions/AutoFill/js/dataTables.autoFill.js +6 -4
- package/assets/js/DataTables/Extensions/AutoFill/js/dataTables.autoFill.min.js +2 -2
- package/assets/js/DataTables/Extensions/Buttons/css/buttons.bootstrap5.css +56 -39
- package/assets/js/DataTables/Extensions/Buttons/css/buttons.bootstrap5.min.css +1 -1
- package/assets/js/DataTables/Extensions/Buttons/js/buttons.bootstrap5.js +14 -6
- package/assets/js/DataTables/Extensions/Buttons/js/buttons.bootstrap5.min.js +1 -1
- package/assets/js/DataTables/Extensions/Buttons/js/buttons.html5.js +8 -3
- package/assets/js/DataTables/Extensions/Buttons/js/buttons.html5.min.js +1 -1
- package/assets/js/DataTables/Extensions/Buttons/js/buttons.print.js +0 -16
- package/assets/js/DataTables/Extensions/Buttons/js/buttons.print.min.js +1 -1
- package/assets/js/DataTables/Extensions/Buttons/js/dataTables.buttons.js +15 -8
- package/assets/js/DataTables/Extensions/Buttons/js/dataTables.buttons.min.js +2 -2
- package/assets/js/DataTables/Extensions/DateTime/css/dataTables.dateTime.css +123 -131
- package/assets/js/DataTables/Extensions/DateTime/css/dataTables.dateTime.min.css +1 -1
- package/assets/js/DataTables/Extensions/DateTime/js/dataTables.dateTime.js +45 -16
- package/assets/js/DataTables/Extensions/DateTime/js/dataTables.dateTime.min.js +2 -2
- package/assets/js/DataTables/Extensions/FixedColumns/css/fixedColumns.bootstrap5.css +13 -17
- package/assets/js/DataTables/Extensions/FixedColumns/css/fixedColumns.bootstrap5.min.css +1 -1
- package/assets/js/DataTables/Extensions/FixedColumns/css/fixedColumns.dataTables.css +13 -17
- package/assets/js/DataTables/Extensions/FixedColumns/css/fixedColumns.dataTables.min.css +1 -1
- package/assets/js/DataTables/Extensions/FixedColumns/js/FixedColumns.js +1 -1
- package/assets/js/DataTables/Extensions/FixedColumns/js/dataTables.fixedColumns.js +4 -4
- package/assets/js/DataTables/Extensions/FixedColumns/js/dataTables.fixedColumns.min.js +2 -2
- package/assets/js/DataTables/Extensions/FixedColumns/js/fixedColumns.bootstrap5.min.js +1 -1
- package/assets/js/DataTables/Extensions/FixedColumns/js/fixedColumns.dataTables.min.js +1 -1
- package/assets/js/DataTables/Extensions/FixedColumns/js/index.js +3 -3
- package/assets/js/DataTables/Extensions/RowGroup/js/dataTables.rowGroup.js +30 -12
- package/assets/js/DataTables/Extensions/RowGroup/js/dataTables.rowGroup.min.js +2 -2
- package/assets/js/DataTables/Extensions/SearchBuilder/js/dataTables.searchBuilder.js +16 -9
- package/assets/js/DataTables/Extensions/SearchBuilder/js/dataTables.searchBuilder.min.js +2 -2
- package/assets/js/DataTables/Extensions/StateRestore/js/StateRestore.js +19 -12
- package/assets/js/DataTables/Extensions/StateRestore/js/StateRestoreCollection.js +81 -12
- package/assets/js/DataTables/Extensions/StateRestore/js/dataTables.stateRestore.js +105 -28
- package/assets/js/DataTables/Extensions/StateRestore/js/dataTables.stateRestore.min.js +2 -2
- package/assets/js/DataTables/Extensions/StateRestore/js/index.js +5 -4
- package/assets/js/DataTables/Extensions/StateRestore/js/stateRestore.bootstrap5.min.js +1 -1
- package/assets/js/DataTables/Extensions/StateRestore/js/stateRestore.dataTables.min.js +1 -1
- package/assets/js/cdn.json +9 -9
- package/assets/js/highcharts/css/highcharts.css +0 -5
- package/assets/js/highcharts/es-modules/Accessibility/Components/MenuComponent.js +3 -1
- package/assets/js/highcharts/es-modules/Accessibility/Components/NavigatorComponent.js +5 -1
- package/assets/js/highcharts/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +3 -1
- package/assets/js/highcharts/es-modules/Accessibility/FocusBorder.js +4 -0
- package/assets/js/highcharts/es-modules/Accessibility/Options/A11yDefaults.js +12 -0
- package/assets/js/highcharts/es-modules/Core/Axis/Axis.js +4 -3
- package/assets/js/highcharts/es-modules/Core/Axis/Axis3DComposition.js +0 -3
- package/assets/js/highcharts/es-modules/Core/Axis/AxisDefaults.js +0 -8
- package/assets/js/highcharts/es-modules/Core/Axis/BrokenAxis.js +114 -90
- package/assets/js/highcharts/es-modules/Core/Axis/Color/ColorAxis.js +3 -3
- package/assets/js/highcharts/es-modules/Core/Axis/Color/ColorAxisDefaults.js +2 -3
- package/assets/js/highcharts/es-modules/Core/Axis/OrdinalAxis.js +0 -1
- package/assets/js/highcharts/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +2 -2
- package/assets/js/highcharts/es-modules/Core/Axis/RadialAxis.js +15 -3
- package/assets/js/highcharts/es-modules/Core/Axis/ScrollbarAxis.js +19 -17
- package/assets/js/highcharts/es-modules/Core/Axis/Stacking/StackingAxis.js +0 -1
- package/assets/js/highcharts/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +36 -51
- package/assets/js/highcharts/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +39 -17
- package/assets/js/highcharts/es-modules/Core/Chart/Chart.js +10 -9
- package/assets/js/highcharts/es-modules/Core/Chart/ChartDefaults.js +4 -3
- package/assets/js/highcharts/es-modules/Core/Chart/StockChart.js +42 -49
- package/assets/js/highcharts/es-modules/Core/Defaults.js +12 -7
- package/assets/js/highcharts/es-modules/Core/Geometry/CircleUtilities.js +3 -1
- package/assets/js/highcharts/es-modules/Core/Globals.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Legend/Legend.js +8 -7
- package/assets/js/highcharts/es-modules/Core/Pointer.js +14 -5
- package/assets/js/highcharts/es-modules/Core/Renderer/HTML/AST.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Renderer/HTML/HTMLElement.js +2 -1
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGElement.js +2 -2
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGLabel.js +10 -1
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGRenderer.js +7 -7
- package/assets/js/highcharts/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
- package/assets/js/highcharts/es-modules/Core/Series/Point.js +9 -0
- package/assets/js/highcharts/es-modules/Core/Series/Series.js +1 -1
- package/assets/js/highcharts/es-modules/Core/Series/SeriesRegistry.js +8 -1
- package/assets/js/highcharts/es-modules/Data/Connectors/JSONConnector.js +0 -1
- package/assets/js/highcharts/es-modules/Data/Converters/HTMLTableConverter.js +1 -1
- package/assets/js/highcharts/es-modules/Data/Converters/JSONConverter.js +0 -1
- package/assets/js/highcharts/es-modules/Data/DataTable.js +1 -2
- package/assets/js/highcharts/es-modules/Data/Formula/FormulaParser.js +33 -1
- package/assets/js/highcharts/es-modules/Data/Formula/FormulaProcessor.js +97 -45
- package/assets/js/highcharts/es-modules/Data/Modifiers/DataModifier.js +1 -1
- package/assets/js/highcharts/es-modules/Data/Modifiers/FilterModifier.js +168 -0
- package/assets/js/highcharts/es-modules/Data/Modifiers/FilterModifierOptions.js +14 -0
- package/assets/js/highcharts/es-modules/Data/Modifiers/SortModifier.js +12 -3
- package/assets/js/highcharts/es-modules/Extensions/Annotations/MockPoint.js +6 -3
- package/assets/js/highcharts/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/Annotations/Popup/PopupComposition.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/Boost/Boost.js +5 -1
- package/assets/js/highcharts/es-modules/Extensions/Boost/BoostSeries.js +31 -18
- package/assets/js/highcharts/es-modules/Extensions/Boost/WGLRenderer.js +30 -21
- package/assets/js/highcharts/es-modules/Extensions/Boost/WGLShader.js +18 -5
- package/assets/js/highcharts/es-modules/Extensions/BoostCanvas.js +0 -5
- package/assets/js/highcharts/es-modules/Extensions/BorderRadius.js +6 -2
- package/assets/js/highcharts/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/DownloadURL.js +3 -1
- package/assets/js/highcharts/es-modules/Extensions/ExportData/ExportData.js +3 -5
- package/assets/js/highcharts/es-modules/Extensions/Exporting/Exporting.js +86 -0
- package/assets/js/highcharts/es-modules/Extensions/Exporting/ExportingDefaults.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/NonCartesianSeriesZoom/NonCartesianSeriesZoom.js +25 -25
- package/assets/js/highcharts/es-modules/Extensions/OfflineExporting/OfflineExporting.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/Pane/PaneComposition.js +19 -12
- package/assets/js/highcharts/es-modules/Extensions/ScrollablePlotArea.js +29 -21
- package/assets/js/highcharts/es-modules/Extensions/Sonification/Sonification.js +1 -1
- package/assets/js/highcharts/es-modules/Extensions/StaticScale.js +13 -11
- package/assets/js/highcharts/es-modules/Extensions/TextPath.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Bellcurve/BellcurveSeries.js +16 -9
- package/assets/js/highcharts/es-modules/Series/DataModifyComposition.js +0 -2
- package/assets/js/highcharts/es-modules/Series/DrawPointUtilities.js +1 -1
- package/assets/js/highcharts/es-modules/Series/Histogram/HistogramSeries.js +19 -17
- package/assets/js/highcharts/es-modules/Series/Pie/PieDataLabel.js +2 -2
- package/assets/js/highcharts/es-modules/Series/Pie/PieSeries.js +2 -2
- package/assets/js/highcharts/es-modules/Series/PolarComposition.js +36 -1
- package/assets/js/highcharts/es-modules/Series/SeriesOnPointComposition.js +0 -1
- package/assets/js/highcharts/es-modules/Series/SimulationSeriesUtilities.js +7 -0
- package/assets/js/highcharts/es-modules/Series/SolidGauge/SolidGaugeSeriesDefaults.js +13 -0
- package/assets/js/highcharts/es-modules/Series/Treegraph/TreegraphLayout.js +10 -4
- package/assets/js/highcharts/es-modules/Series/Treemap/TreemapSeries.js +4 -4
- package/assets/js/highcharts/es-modules/Series/Variwide/VariwideComposition.js +9 -11
- package/assets/js/highcharts/es-modules/Series/Waterfall/WaterfallSeries.js +6 -9
- package/assets/js/highcharts/es-modules/Series/XRange/XRangePoint.js +2 -1
- package/assets/js/highcharts/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -1
- package/assets/js/highcharts/es-modules/Stock/StockTools/StockToolbar.js +1 -1
- package/assets/js/highcharts/es-modules/masters/highcharts-3d.src.js +2 -2
- package/assets/js/highcharts/es-modules/masters/highcharts-gantt.src.js +8 -2
- package/assets/js/highcharts/es-modules/masters/highcharts-more.src.js +2 -2
- package/assets/js/highcharts/es-modules/masters/highcharts.src.js +2 -2
- package/assets/js/highcharts/es-modules/masters/highmaps.src.js +2 -2
- package/assets/js/highcharts/es-modules/masters/highstock.src.js +2 -2
- package/assets/js/highcharts/es-modules/masters/i18n/fr-FR.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/i18n/nb-NO.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/i18n/zh-CN.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/ao.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/apo.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/aroon.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/atr.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/cci.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/chaikin.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/cmf.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/cmo.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/dema.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/disparity-index.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/dmi.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/dpo.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/ema.src.js +0 -3
- package/assets/js/highcharts/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/indicators-all.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/indicators.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/keltner-channels.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/klinger.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/macd.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/mfi.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/momentum.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/natr.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/obv.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/pivot-points.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/ppo.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/price-channel.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/price-envelopes.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/psar.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/regressions.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/roc.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/rsi.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/stochastic.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/supertrend.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/tema.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/trendline.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/trix.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/volume-by-price.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/vwap.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/williams-r.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/wma.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/indicators/zigzag.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/accessibility.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/annotations-advanced.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/annotations.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/arc-diagram.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/arrow-symbols.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/boost-canvas.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/boost.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/broken-axis.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/bullet.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/coloraxis.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/current-date-indicator.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/cylinder.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/data-tools.src.js +2 -1
- package/assets/js/highcharts/es-modules/masters/modules/data.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/datagrouping.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/debugger.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/dependency-wheel.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/dotplot.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/drag-panes.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/draggable-points.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/drilldown.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/dumbbell.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/export-data.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/exporting.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/flowmap.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/full-screen.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/funnel.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/funnel3d.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/gantt.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/geoheatmap.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/grid-axis.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/heatmap.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/heikinashi.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/item-series.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/lollipop.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/map.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/marker-clusters.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/navigator.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/networkgraph.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/no-data-to-display.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/non-cartesian-zoom.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/offline-exporting.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/organization.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/pareto.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/pathfinder.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/pattern-fill.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/pictorial.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/pointandfigure.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/price-indicator.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/pyramid3d.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/renko.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/sankey.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/series-label.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/series-on-point.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/solid-gauge.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/sonification.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/static-scale.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/stock-tools.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/stock.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/streamgraph.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/sunburst.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/textpath.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/tiledwebmap.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/tilemap.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/timeline.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/treegraph.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/treegrid.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/treemap.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/variable-pie.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/variwide.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/vector.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/venn.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/windbarb.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/wordcloud.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/modules/xrange.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/standalone-navigator.src.js +7 -6
- package/assets/js/highcharts/es-modules/masters/themes/adaptive.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/avocado.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/brand-dark.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/brand-light.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/dark-blue.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/dark-green.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/dark-unica.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/gray.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/grid-light.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/grid.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/high-contrast-light.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/sand-signika.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/skies.src.js +1 -1
- package/assets/js/highcharts/es-modules/masters/themes/sunset.src.js +1 -1
- package/assets/js/highcharts/esm/highcharts-3d.js +3 -3
- package/assets/js/highcharts/esm/highcharts-3d.src.js +2 -5
- package/assets/js/highcharts/esm/highcharts-gantt.js +8 -2
- package/assets/js/highcharts/esm/highcharts-gantt.src.js +8 -2
- package/assets/js/highcharts/esm/highcharts-more.js +3 -3
- package/assets/js/highcharts/esm/highcharts-more.src.js +475 -31
- package/assets/js/highcharts/esm/highcharts.js +4 -4
- package/assets/js/highcharts/esm/highcharts.src.js +140 -93
- package/assets/js/highcharts/esm/highmaps.js +2 -2
- package/assets/js/highcharts/esm/highmaps.src.js +2 -2
- package/assets/js/highcharts/esm/highstock.js +2 -2
- package/assets/js/highcharts/esm/highstock.src.js +2 -2
- package/assets/js/highcharts/esm/i18n/fr-FR.js +1 -1
- package/assets/js/highcharts/esm/i18n/fr-FR.src.js +1 -1
- package/assets/js/highcharts/esm/i18n/nb-NO.js +1 -1
- package/assets/js/highcharts/esm/i18n/nb-NO.src.js +1 -1
- package/assets/js/highcharts/esm/i18n/zh-CN.js +1 -1
- package/assets/js/highcharts/esm/i18n/zh-CN.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/acceleration-bands.js +1 -1
- package/assets/js/highcharts/esm/indicators/acceleration-bands.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/accumulation-distribution.js +1 -1
- package/assets/js/highcharts/esm/indicators/accumulation-distribution.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/ao.js +1 -1
- package/assets/js/highcharts/esm/indicators/ao.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/apo.js +1 -1
- package/assets/js/highcharts/esm/indicators/apo.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/aroon-oscillator.js +1 -1
- package/assets/js/highcharts/esm/indicators/aroon-oscillator.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/aroon.js +1 -1
- package/assets/js/highcharts/esm/indicators/aroon.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/atr.js +1 -1
- package/assets/js/highcharts/esm/indicators/atr.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/bollinger-bands.js +1 -1
- package/assets/js/highcharts/esm/indicators/bollinger-bands.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/cci.js +1 -1
- package/assets/js/highcharts/esm/indicators/cci.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/chaikin.js +1 -1
- package/assets/js/highcharts/esm/indicators/chaikin.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/cmf.js +1 -1
- package/assets/js/highcharts/esm/indicators/cmf.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/cmo.js +1 -1
- package/assets/js/highcharts/esm/indicators/cmo.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/dema.js +1 -1
- package/assets/js/highcharts/esm/indicators/dema.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/disparity-index.js +1 -1
- package/assets/js/highcharts/esm/indicators/disparity-index.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/dmi.js +1 -1
- package/assets/js/highcharts/esm/indicators/dmi.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/dpo.js +1 -1
- package/assets/js/highcharts/esm/indicators/dpo.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/ema.src.js +0 -3
- package/assets/js/highcharts/esm/indicators/ichimoku-kinko-hyo.js +1 -1
- package/assets/js/highcharts/esm/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/indicators-all.js +2 -2
- package/assets/js/highcharts/esm/indicators/indicators-all.src.js +2 -2
- package/assets/js/highcharts/esm/indicators/indicators.js +1 -1
- package/assets/js/highcharts/esm/indicators/indicators.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/keltner-channels.js +1 -1
- package/assets/js/highcharts/esm/indicators/keltner-channels.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/klinger.js +1 -1
- package/assets/js/highcharts/esm/indicators/klinger.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/macd.js +2 -2
- package/assets/js/highcharts/esm/indicators/macd.src.js +2 -2
- package/assets/js/highcharts/esm/indicators/mfi.js +1 -1
- package/assets/js/highcharts/esm/indicators/mfi.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/momentum.js +1 -1
- package/assets/js/highcharts/esm/indicators/momentum.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/natr.js +1 -1
- package/assets/js/highcharts/esm/indicators/natr.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/obv.js +1 -1
- package/assets/js/highcharts/esm/indicators/obv.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/pivot-points.js +1 -1
- package/assets/js/highcharts/esm/indicators/pivot-points.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/ppo.js +1 -1
- package/assets/js/highcharts/esm/indicators/ppo.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/price-channel.js +1 -1
- package/assets/js/highcharts/esm/indicators/price-channel.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/price-envelopes.js +1 -1
- package/assets/js/highcharts/esm/indicators/price-envelopes.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/psar.js +1 -1
- package/assets/js/highcharts/esm/indicators/psar.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/regressions.js +1 -1
- package/assets/js/highcharts/esm/indicators/regressions.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/roc.js +1 -1
- package/assets/js/highcharts/esm/indicators/roc.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/rsi.js +1 -1
- package/assets/js/highcharts/esm/indicators/rsi.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/slow-stochastic.js +1 -1
- package/assets/js/highcharts/esm/indicators/slow-stochastic.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/stochastic.js +1 -1
- package/assets/js/highcharts/esm/indicators/stochastic.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/supertrend.js +1 -1
- package/assets/js/highcharts/esm/indicators/supertrend.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/tema.js +1 -1
- package/assets/js/highcharts/esm/indicators/tema.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/trendline.js +1 -1
- package/assets/js/highcharts/esm/indicators/trendline.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/trix.js +1 -1
- package/assets/js/highcharts/esm/indicators/trix.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/volume-by-price.js +1 -1
- package/assets/js/highcharts/esm/indicators/volume-by-price.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/vwap.js +1 -1
- package/assets/js/highcharts/esm/indicators/vwap.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/williams-r.js +1 -1
- package/assets/js/highcharts/esm/indicators/williams-r.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/wma.js +1 -1
- package/assets/js/highcharts/esm/indicators/wma.src.js +1 -1
- package/assets/js/highcharts/esm/indicators/zigzag.js +1 -1
- package/assets/js/highcharts/esm/indicators/zigzag.src.js +1 -1
- package/assets/js/highcharts/esm/modules/accessibility.js +2 -2
- package/assets/js/highcharts/esm/modules/accessibility.src.js +47 -21
- package/assets/js/highcharts/esm/modules/annotations-advanced.js +2 -2
- package/assets/js/highcharts/esm/modules/annotations-advanced.src.js +8 -5
- package/assets/js/highcharts/esm/modules/annotations.js +2 -2
- package/assets/js/highcharts/esm/modules/annotations.src.js +9 -6
- package/assets/js/highcharts/esm/modules/arc-diagram.js +2 -2
- package/assets/js/highcharts/esm/modules/arc-diagram.src.js +3 -3
- package/assets/js/highcharts/esm/modules/arrow-symbols.js +1 -1
- package/assets/js/highcharts/esm/modules/arrow-symbols.src.js +1 -1
- package/assets/js/highcharts/esm/modules/boost-canvas.js +2 -2
- package/assets/js/highcharts/esm/modules/boost-canvas.src.js +80 -50
- package/assets/js/highcharts/esm/modules/boost.js +2 -2
- package/assets/js/highcharts/esm/modules/boost.src.js +85 -46
- package/assets/js/highcharts/esm/modules/broken-axis.js +2 -2
- package/assets/js/highcharts/esm/modules/broken-axis.src.js +115 -91
- package/assets/js/highcharts/esm/modules/bullet.js +1 -1
- package/assets/js/highcharts/esm/modules/bullet.src.js +1 -1
- package/assets/js/highcharts/esm/modules/coloraxis.js +2 -2
- package/assets/js/highcharts/esm/modules/coloraxis.src.js +6 -7
- package/assets/js/highcharts/esm/modules/current-date-indicator.js +1 -1
- package/assets/js/highcharts/esm/modules/current-date-indicator.src.js +1 -1
- package/assets/js/highcharts/esm/modules/cylinder.js +1 -1
- package/assets/js/highcharts/esm/modules/cylinder.src.js +1 -1
- package/assets/js/highcharts/esm/modules/data-tools.js +2 -2
- package/assets/js/highcharts/esm/modules/data-tools.src.js +318 -57
- package/assets/js/highcharts/esm/modules/data.js +1 -1
- package/assets/js/highcharts/esm/modules/data.src.js +1 -1
- package/assets/js/highcharts/esm/modules/datagrouping.js +1 -1
- package/assets/js/highcharts/esm/modules/datagrouping.src.js +1 -1
- package/assets/js/highcharts/esm/modules/debugger.js +1 -1
- package/assets/js/highcharts/esm/modules/debugger.src.js +1 -1
- package/assets/js/highcharts/esm/modules/dependency-wheel.js +2 -2
- package/assets/js/highcharts/esm/modules/dependency-wheel.src.js +3 -3
- package/assets/js/highcharts/esm/modules/dotplot.js +1 -1
- package/assets/js/highcharts/esm/modules/dotplot.src.js +1 -1
- package/assets/js/highcharts/esm/modules/drag-panes.js +1 -1
- package/assets/js/highcharts/esm/modules/drag-panes.src.js +1 -1
- package/assets/js/highcharts/esm/modules/draggable-points.js +1 -1
- package/assets/js/highcharts/esm/modules/draggable-points.src.js +1 -1
- package/assets/js/highcharts/esm/modules/drilldown.js +1 -1
- package/assets/js/highcharts/esm/modules/drilldown.src.js +2 -2
- package/assets/js/highcharts/esm/modules/dumbbell.js +1 -1
- package/assets/js/highcharts/esm/modules/dumbbell.src.js +1 -1
- package/assets/js/highcharts/esm/modules/export-data.js +2 -2
- package/assets/js/highcharts/esm/modules/export-data.src.js +7 -7
- package/assets/js/highcharts/esm/modules/exporting.js +2 -2
- package/assets/js/highcharts/esm/modules/exporting.src.js +91 -3
- package/assets/js/highcharts/esm/modules/flowmap.js +1 -1
- package/assets/js/highcharts/esm/modules/flowmap.src.js +1 -1
- package/assets/js/highcharts/esm/modules/full-screen.js +1 -1
- package/assets/js/highcharts/esm/modules/full-screen.src.js +1 -1
- package/assets/js/highcharts/esm/modules/funnel.js +1 -1
- package/assets/js/highcharts/esm/modules/funnel.src.js +7 -3
- package/assets/js/highcharts/esm/modules/funnel3d.js +1 -1
- package/assets/js/highcharts/esm/modules/funnel3d.src.js +1 -1
- package/assets/js/highcharts/esm/modules/gantt.js +2 -2
- package/assets/js/highcharts/esm/modules/gantt.src.js +222 -188
- package/assets/js/highcharts/esm/modules/geoheatmap.js +1 -1
- package/assets/js/highcharts/esm/modules/geoheatmap.src.js +1 -1
- package/assets/js/highcharts/esm/modules/grid-axis.js +1 -1
- package/assets/js/highcharts/esm/modules/grid-axis.src.js +1 -1
- package/assets/js/highcharts/esm/modules/heatmap.js +1 -1
- package/assets/js/highcharts/esm/modules/heatmap.src.js +1 -1
- package/assets/js/highcharts/esm/modules/heikinashi.js +1 -1
- package/assets/js/highcharts/esm/modules/heikinashi.src.js +1 -1
- package/assets/js/highcharts/esm/modules/histogram-bellcurve.js +2 -2
- package/assets/js/highcharts/esm/modules/histogram-bellcurve.src.js +36 -27
- package/assets/js/highcharts/esm/modules/hollowcandlestick.js +1 -1
- package/assets/js/highcharts/esm/modules/hollowcandlestick.src.js +1 -1
- package/assets/js/highcharts/esm/modules/item-series.js +1 -1
- package/assets/js/highcharts/esm/modules/item-series.src.js +1 -1
- package/assets/js/highcharts/esm/modules/lollipop.js +1 -1
- package/assets/js/highcharts/esm/modules/lollipop.src.js +1 -1
- package/assets/js/highcharts/esm/modules/map.js +1 -1
- package/assets/js/highcharts/esm/modules/map.src.js +1 -1
- package/assets/js/highcharts/esm/modules/marker-clusters.js +1 -1
- package/assets/js/highcharts/esm/modules/marker-clusters.src.js +1 -1
- package/assets/js/highcharts/esm/modules/mouse-wheel-zoom.js +1 -1
- package/assets/js/highcharts/esm/modules/mouse-wheel-zoom.src.js +1 -1
- package/assets/js/highcharts/esm/modules/navigator.js +2 -2
- package/assets/js/highcharts/esm/modules/navigator.src.js +20 -18
- package/assets/js/highcharts/esm/modules/networkgraph.js +2 -2
- package/assets/js/highcharts/esm/modules/networkgraph.src.js +10 -3
- package/assets/js/highcharts/esm/modules/no-data-to-display.js +1 -1
- package/assets/js/highcharts/esm/modules/no-data-to-display.src.js +1 -1
- package/assets/js/highcharts/esm/modules/non-cartesian-zoom.js +2 -2
- package/assets/js/highcharts/esm/modules/non-cartesian-zoom.src.js +26 -26
- package/assets/js/highcharts/esm/modules/offline-exporting.js +2 -2
- package/assets/js/highcharts/esm/modules/offline-exporting.src.js +5 -3
- package/assets/js/highcharts/esm/modules/organization.js +2 -2
- package/assets/js/highcharts/esm/modules/organization.src.js +3 -3
- package/assets/js/highcharts/esm/modules/parallel-coordinates.js +1 -1
- package/assets/js/highcharts/esm/modules/parallel-coordinates.src.js +1 -1
- package/assets/js/highcharts/esm/modules/pareto.js +1 -1
- package/assets/js/highcharts/esm/modules/pareto.src.js +1 -1
- package/assets/js/highcharts/esm/modules/pathfinder.js +1 -1
- package/assets/js/highcharts/esm/modules/pathfinder.src.js +1 -1
- package/assets/js/highcharts/esm/modules/pattern-fill.js +1 -1
- package/assets/js/highcharts/esm/modules/pattern-fill.src.js +1 -1
- package/assets/js/highcharts/esm/modules/pictorial.js +1 -1
- package/assets/js/highcharts/esm/modules/pictorial.src.js +1 -1
- package/assets/js/highcharts/esm/modules/pointandfigure.js +1 -1
- package/assets/js/highcharts/esm/modules/pointandfigure.src.js +1 -1
- package/assets/js/highcharts/esm/modules/price-indicator.js +1 -1
- package/assets/js/highcharts/esm/modules/price-indicator.src.js +1 -1
- package/assets/js/highcharts/esm/modules/pyramid3d.js +1 -1
- package/assets/js/highcharts/esm/modules/pyramid3d.src.js +1 -1
- package/assets/js/highcharts/esm/modules/renko.js +1 -1
- package/assets/js/highcharts/esm/modules/renko.src.js +1 -1
- package/assets/js/highcharts/esm/modules/sankey.js +2 -2
- package/assets/js/highcharts/esm/modules/sankey.src.js +3 -3
- package/assets/js/highcharts/esm/modules/series-label.js +1 -1
- package/assets/js/highcharts/esm/modules/series-label.src.js +1 -1
- package/assets/js/highcharts/esm/modules/series-on-point.js +2 -2
- package/assets/js/highcharts/esm/modules/series-on-point.src.js +1 -9
- package/assets/js/highcharts/esm/modules/solid-gauge.js +1 -1
- package/assets/js/highcharts/esm/modules/solid-gauge.src.js +20 -3
- package/assets/js/highcharts/esm/modules/sonification.js +2 -2
- package/assets/js/highcharts/esm/modules/sonification.src.js +5 -3
- package/assets/js/highcharts/esm/modules/static-scale.js +2 -2
- package/assets/js/highcharts/esm/modules/static-scale.src.js +14 -12
- package/assets/js/highcharts/esm/modules/stock-tools.js +2 -2
- package/assets/js/highcharts/esm/modules/stock-tools.src.js +3 -3
- package/assets/js/highcharts/esm/modules/stock.js +2 -2
- package/assets/js/highcharts/esm/modules/stock.src.js +68 -76
- package/assets/js/highcharts/esm/modules/streamgraph.js +1 -1
- package/assets/js/highcharts/esm/modules/streamgraph.src.js +1 -1
- package/assets/js/highcharts/esm/modules/sunburst.js +2 -2
- package/assets/js/highcharts/esm/modules/sunburst.src.js +9 -9
- package/assets/js/highcharts/esm/modules/textpath.js +2 -2
- package/assets/js/highcharts/esm/modules/textpath.src.js +3 -3
- package/assets/js/highcharts/esm/modules/tiledwebmap.js +1 -1
- package/assets/js/highcharts/esm/modules/tiledwebmap.src.js +1 -1
- package/assets/js/highcharts/esm/modules/tilemap.js +1 -1
- package/assets/js/highcharts/esm/modules/tilemap.src.js +1 -1
- package/assets/js/highcharts/esm/modules/timeline.js +1 -1
- package/assets/js/highcharts/esm/modules/timeline.src.js +1 -1
- package/assets/js/highcharts/esm/modules/treegraph.js +2 -2
- package/assets/js/highcharts/esm/modules/treegraph.src.js +13 -7
- package/assets/js/highcharts/esm/modules/treegrid.js +2 -2
- package/assets/js/highcharts/esm/modules/treegrid.src.js +190 -159
- package/assets/js/highcharts/esm/modules/treemap.js +2 -2
- package/assets/js/highcharts/esm/modules/treemap.src.js +7 -7
- package/assets/js/highcharts/esm/modules/variable-pie.js +1 -1
- package/assets/js/highcharts/esm/modules/variable-pie.src.js +1 -1
- package/assets/js/highcharts/esm/modules/variwide.js +2 -2
- package/assets/js/highcharts/esm/modules/variwide.src.js +10 -12
- package/assets/js/highcharts/esm/modules/vector.js +1 -1
- package/assets/js/highcharts/esm/modules/vector.src.js +1 -1
- package/assets/js/highcharts/esm/modules/venn.js +2 -2
- package/assets/js/highcharts/esm/modules/venn.src.js +5 -3
- package/assets/js/highcharts/esm/modules/windbarb.js +1 -1
- package/assets/js/highcharts/esm/modules/windbarb.src.js +1 -1
- package/assets/js/highcharts/esm/modules/wordcloud.js +1 -1
- package/assets/js/highcharts/esm/modules/wordcloud.src.js +2 -2
- package/assets/js/highcharts/esm/modules/xrange.js +2 -2
- package/assets/js/highcharts/esm/modules/xrange.src.js +3 -2
- package/assets/js/highcharts/esm/standalone-navigator.js +7 -5
- package/assets/js/highcharts/esm/standalone-navigator.src.js +172 -122
- package/assets/js/highcharts/esm/themes/adaptive.js +1 -1
- package/assets/js/highcharts/esm/themes/adaptive.src.js +1 -1
- package/assets/js/highcharts/esm/themes/avocado.js +1 -1
- package/assets/js/highcharts/esm/themes/avocado.src.js +1 -1
- package/assets/js/highcharts/esm/themes/brand-dark.js +1 -1
- package/assets/js/highcharts/esm/themes/brand-dark.src.js +1 -1
- package/assets/js/highcharts/esm/themes/brand-light.js +1 -1
- package/assets/js/highcharts/esm/themes/brand-light.src.js +1 -1
- package/assets/js/highcharts/esm/themes/dark-blue.js +1 -1
- package/assets/js/highcharts/esm/themes/dark-blue.src.js +1 -1
- package/assets/js/highcharts/esm/themes/dark-green.js +1 -1
- package/assets/js/highcharts/esm/themes/dark-green.src.js +1 -1
- package/assets/js/highcharts/esm/themes/dark-unica.js +1 -1
- package/assets/js/highcharts/esm/themes/dark-unica.src.js +1 -1
- package/assets/js/highcharts/esm/themes/gray.js +1 -1
- package/assets/js/highcharts/esm/themes/gray.src.js +1 -1
- package/assets/js/highcharts/esm/themes/grid-light.js +1 -1
- package/assets/js/highcharts/esm/themes/grid-light.src.js +1 -1
- package/assets/js/highcharts/esm/themes/grid.js +1 -1
- package/assets/js/highcharts/esm/themes/grid.src.js +1 -1
- package/assets/js/highcharts/esm/themes/high-contrast-dark.js +1 -1
- package/assets/js/highcharts/esm/themes/high-contrast-dark.src.js +1 -1
- package/assets/js/highcharts/esm/themes/high-contrast-light.js +1 -1
- package/assets/js/highcharts/esm/themes/high-contrast-light.src.js +1 -1
- package/assets/js/highcharts/esm/themes/sand-signika.js +1 -1
- package/assets/js/highcharts/esm/themes/sand-signika.src.js +1 -1
- package/assets/js/highcharts/esm/themes/skies.js +1 -1
- package/assets/js/highcharts/esm/themes/skies.src.js +1 -1
- package/assets/js/highcharts/esm/themes/sunset.js +1 -1
- package/assets/js/highcharts/esm/themes/sunset.src.js +1 -1
- package/assets/js/highcharts/highcharts-3d.js +3 -3
- package/assets/js/highcharts/highcharts-3d.src.js +2 -5
- package/assets/js/highcharts/highcharts-gantt.js +10 -11
- package/assets/js/highcharts/highcharts-gantt.src.js +383 -295
- package/assets/js/highcharts/highcharts-more.js +3 -3
- package/assets/js/highcharts/highcharts-more.src.js +475 -31
- package/assets/js/highcharts/highcharts.js +4 -4
- package/assets/js/highcharts/highcharts.src.js +140 -93
- package/assets/js/highcharts/highmaps.js +4 -11
- package/assets/js/highcharts/highmaps.src.js +157 -111
- package/assets/js/highcharts/highstock.js +4 -11
- package/assets/js/highcharts/highstock.src.js +329 -266
- package/assets/js/highcharts/i18n/fr-FR.js +1 -1
- package/assets/js/highcharts/i18n/fr-FR.src.js +1 -1
- package/assets/js/highcharts/i18n/nb-NO.js +1 -1
- package/assets/js/highcharts/i18n/nb-NO.src.js +1 -1
- package/assets/js/highcharts/i18n/zh-CN.js +1 -1
- package/assets/js/highcharts/i18n/zh-CN.src.js +1 -1
- package/assets/js/highcharts/indicators/acceleration-bands.js +1 -1
- package/assets/js/highcharts/indicators/acceleration-bands.src.js +1 -1
- package/assets/js/highcharts/indicators/accumulation-distribution.js +1 -1
- package/assets/js/highcharts/indicators/accumulation-distribution.src.js +1 -1
- package/assets/js/highcharts/indicators/ao.js +1 -1
- package/assets/js/highcharts/indicators/ao.src.js +1 -1
- package/assets/js/highcharts/indicators/apo.js +1 -1
- package/assets/js/highcharts/indicators/apo.src.js +1 -1
- package/assets/js/highcharts/indicators/aroon-oscillator.js +1 -1
- package/assets/js/highcharts/indicators/aroon-oscillator.src.js +1 -1
- package/assets/js/highcharts/indicators/aroon.js +1 -1
- package/assets/js/highcharts/indicators/aroon.src.js +1 -1
- package/assets/js/highcharts/indicators/atr.js +1 -1
- package/assets/js/highcharts/indicators/atr.src.js +1 -1
- package/assets/js/highcharts/indicators/bollinger-bands.js +1 -1
- package/assets/js/highcharts/indicators/bollinger-bands.src.js +1 -1
- package/assets/js/highcharts/indicators/cci.js +1 -1
- package/assets/js/highcharts/indicators/cci.src.js +1 -1
- package/assets/js/highcharts/indicators/chaikin.js +1 -1
- package/assets/js/highcharts/indicators/chaikin.src.js +1 -1
- package/assets/js/highcharts/indicators/cmf.js +1 -1
- package/assets/js/highcharts/indicators/cmf.src.js +1 -1
- package/assets/js/highcharts/indicators/cmo.js +1 -1
- package/assets/js/highcharts/indicators/cmo.src.js +1 -1
- package/assets/js/highcharts/indicators/dema.js +1 -1
- package/assets/js/highcharts/indicators/dema.src.js +1 -1
- package/assets/js/highcharts/indicators/disparity-index.js +1 -1
- package/assets/js/highcharts/indicators/disparity-index.src.js +1 -1
- package/assets/js/highcharts/indicators/dmi.js +1 -1
- package/assets/js/highcharts/indicators/dmi.src.js +1 -1
- package/assets/js/highcharts/indicators/dpo.js +1 -1
- package/assets/js/highcharts/indicators/dpo.src.js +1 -1
- package/assets/js/highcharts/indicators/ema.src.js +0 -3
- package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.js +1 -1
- package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.src.js +1 -1
- package/assets/js/highcharts/indicators/indicators-all.js +2 -2
- package/assets/js/highcharts/indicators/indicators-all.src.js +2 -2
- package/assets/js/highcharts/indicators/indicators.js +1 -1
- package/assets/js/highcharts/indicators/indicators.src.js +1 -1
- package/assets/js/highcharts/indicators/keltner-channels.js +1 -1
- package/assets/js/highcharts/indicators/keltner-channels.src.js +1 -1
- package/assets/js/highcharts/indicators/klinger.js +1 -1
- package/assets/js/highcharts/indicators/klinger.src.js +1 -1
- package/assets/js/highcharts/indicators/macd.js +2 -2
- package/assets/js/highcharts/indicators/macd.src.js +2 -2
- package/assets/js/highcharts/indicators/mfi.js +1 -1
- package/assets/js/highcharts/indicators/mfi.src.js +1 -1
- package/assets/js/highcharts/indicators/momentum.js +1 -1
- package/assets/js/highcharts/indicators/momentum.src.js +1 -1
- package/assets/js/highcharts/indicators/natr.js +1 -1
- package/assets/js/highcharts/indicators/natr.src.js +1 -1
- package/assets/js/highcharts/indicators/obv.js +1 -1
- package/assets/js/highcharts/indicators/obv.src.js +1 -1
- package/assets/js/highcharts/indicators/pivot-points.js +1 -1
- package/assets/js/highcharts/indicators/pivot-points.src.js +1 -1
- package/assets/js/highcharts/indicators/ppo.js +1 -1
- package/assets/js/highcharts/indicators/ppo.src.js +1 -1
- package/assets/js/highcharts/indicators/price-channel.js +1 -1
- package/assets/js/highcharts/indicators/price-channel.src.js +1 -1
- package/assets/js/highcharts/indicators/price-envelopes.js +1 -1
- package/assets/js/highcharts/indicators/price-envelopes.src.js +1 -1
- package/assets/js/highcharts/indicators/psar.js +1 -1
- package/assets/js/highcharts/indicators/psar.src.js +1 -1
- package/assets/js/highcharts/indicators/regressions.js +1 -1
- package/assets/js/highcharts/indicators/regressions.src.js +1 -1
- package/assets/js/highcharts/indicators/roc.js +1 -1
- package/assets/js/highcharts/indicators/roc.src.js +1 -1
- package/assets/js/highcharts/indicators/rsi.js +1 -1
- package/assets/js/highcharts/indicators/rsi.src.js +1 -1
- package/assets/js/highcharts/indicators/slow-stochastic.js +1 -1
- package/assets/js/highcharts/indicators/slow-stochastic.src.js +1 -1
- package/assets/js/highcharts/indicators/stochastic.js +1 -1
- package/assets/js/highcharts/indicators/stochastic.src.js +1 -1
- package/assets/js/highcharts/indicators/supertrend.js +1 -1
- package/assets/js/highcharts/indicators/supertrend.src.js +1 -1
- package/assets/js/highcharts/indicators/tema.js +1 -1
- package/assets/js/highcharts/indicators/tema.src.js +1 -1
- package/assets/js/highcharts/indicators/trendline.js +1 -1
- package/assets/js/highcharts/indicators/trendline.src.js +1 -1
- package/assets/js/highcharts/indicators/trix.js +1 -1
- package/assets/js/highcharts/indicators/trix.src.js +1 -1
- package/assets/js/highcharts/indicators/volume-by-price.js +1 -1
- package/assets/js/highcharts/indicators/volume-by-price.src.js +1 -1
- package/assets/js/highcharts/indicators/vwap.js +1 -1
- package/assets/js/highcharts/indicators/vwap.src.js +1 -1
- package/assets/js/highcharts/indicators/williams-r.js +1 -1
- package/assets/js/highcharts/indicators/williams-r.src.js +1 -1
- package/assets/js/highcharts/indicators/wma.js +1 -1
- package/assets/js/highcharts/indicators/wma.src.js +1 -1
- package/assets/js/highcharts/indicators/zigzag.js +1 -1
- package/assets/js/highcharts/indicators/zigzag.src.js +1 -1
- package/assets/js/highcharts/modules/accessibility.js +2 -2
- package/assets/js/highcharts/modules/accessibility.src.js +47 -21
- package/assets/js/highcharts/modules/annotations-advanced.js +6 -6
- package/assets/js/highcharts/modules/annotations-advanced.src.js +22 -19
- package/assets/js/highcharts/modules/annotations.js +2 -2
- package/assets/js/highcharts/modules/annotations.src.js +9 -6
- package/assets/js/highcharts/modules/arc-diagram.js +2 -2
- package/assets/js/highcharts/modules/arc-diagram.src.js +3 -3
- package/assets/js/highcharts/modules/arrow-symbols.js +1 -1
- package/assets/js/highcharts/modules/arrow-symbols.src.js +1 -1
- package/assets/js/highcharts/modules/boost-canvas.js +2 -2
- package/assets/js/highcharts/modules/boost-canvas.src.js +80 -50
- package/assets/js/highcharts/modules/boost.js +2 -2
- package/assets/js/highcharts/modules/boost.src.js +85 -46
- package/assets/js/highcharts/modules/broken-axis.js +2 -2
- package/assets/js/highcharts/modules/broken-axis.src.js +115 -91
- package/assets/js/highcharts/modules/bullet.js +1 -1
- package/assets/js/highcharts/modules/bullet.src.js +1 -1
- package/assets/js/highcharts/modules/coloraxis.js +2 -2
- package/assets/js/highcharts/modules/coloraxis.src.js +6 -7
- package/assets/js/highcharts/modules/current-date-indicator.js +1 -1
- package/assets/js/highcharts/modules/current-date-indicator.src.js +1 -1
- package/assets/js/highcharts/modules/cylinder.js +1 -1
- package/assets/js/highcharts/modules/cylinder.src.js +1 -1
- package/assets/js/highcharts/modules/data-tools.js +2 -2
- package/assets/js/highcharts/modules/data-tools.src.js +318 -57
- package/assets/js/highcharts/modules/data.js +1 -1
- package/assets/js/highcharts/modules/data.src.js +1 -1
- package/assets/js/highcharts/modules/datagrouping.js +1 -1
- package/assets/js/highcharts/modules/datagrouping.src.js +1 -1
- package/assets/js/highcharts/modules/debugger.js +1 -1
- package/assets/js/highcharts/modules/debugger.src.js +1 -1
- package/assets/js/highcharts/modules/dependency-wheel.js +2 -2
- package/assets/js/highcharts/modules/dependency-wheel.src.js +3 -3
- package/assets/js/highcharts/modules/dotplot.js +1 -1
- package/assets/js/highcharts/modules/dotplot.src.js +1 -1
- package/assets/js/highcharts/modules/drag-panes.js +1 -1
- package/assets/js/highcharts/modules/drag-panes.src.js +1 -1
- package/assets/js/highcharts/modules/draggable-points.js +1 -1
- package/assets/js/highcharts/modules/draggable-points.src.js +1 -1
- package/assets/js/highcharts/modules/drilldown.js +1 -1
- package/assets/js/highcharts/modules/drilldown.src.js +2 -2
- package/assets/js/highcharts/modules/dumbbell.js +1 -1
- package/assets/js/highcharts/modules/dumbbell.src.js +1 -1
- package/assets/js/highcharts/modules/export-data.js +2 -2
- package/assets/js/highcharts/modules/export-data.src.js +7 -7
- package/assets/js/highcharts/modules/exporting.js +2 -2
- package/assets/js/highcharts/modules/exporting.src.js +91 -3
- package/assets/js/highcharts/modules/flowmap.js +1 -1
- package/assets/js/highcharts/modules/flowmap.src.js +1 -1
- package/assets/js/highcharts/modules/full-screen.js +1 -1
- package/assets/js/highcharts/modules/full-screen.src.js +1 -1
- package/assets/js/highcharts/modules/funnel.js +1 -1
- package/assets/js/highcharts/modules/funnel.src.js +7 -3
- package/assets/js/highcharts/modules/funnel3d.js +1 -1
- package/assets/js/highcharts/modules/funnel3d.src.js +1 -1
- package/assets/js/highcharts/modules/gantt.js +14 -14
- package/assets/js/highcharts/modules/gantt.src.js +241 -206
- package/assets/js/highcharts/modules/geoheatmap.js +1 -1
- package/assets/js/highcharts/modules/geoheatmap.src.js +1 -1
- package/assets/js/highcharts/modules/grid-axis.js +1 -1
- package/assets/js/highcharts/modules/grid-axis.src.js +1 -1
- package/assets/js/highcharts/modules/heatmap.js +10 -10
- package/assets/js/highcharts/modules/heatmap.src.js +20 -21
- package/assets/js/highcharts/modules/heikinashi.js +1 -1
- package/assets/js/highcharts/modules/heikinashi.src.js +1 -1
- package/assets/js/highcharts/modules/histogram-bellcurve.js +2 -2
- package/assets/js/highcharts/modules/histogram-bellcurve.src.js +36 -27
- package/assets/js/highcharts/modules/hollowcandlestick.js +1 -1
- package/assets/js/highcharts/modules/hollowcandlestick.src.js +1 -1
- package/assets/js/highcharts/modules/item-series.js +1 -1
- package/assets/js/highcharts/modules/item-series.src.js +1 -1
- package/assets/js/highcharts/modules/lollipop.js +1 -1
- package/assets/js/highcharts/modules/lollipop.src.js +1 -1
- package/assets/js/highcharts/modules/map.js +10 -10
- package/assets/js/highcharts/modules/map.src.js +21 -22
- package/assets/js/highcharts/modules/marker-clusters.js +1 -1
- package/assets/js/highcharts/modules/marker-clusters.src.js +1 -1
- package/assets/js/highcharts/modules/mouse-wheel-zoom.js +1 -1
- package/assets/js/highcharts/modules/mouse-wheel-zoom.src.js +1 -1
- package/assets/js/highcharts/modules/navigator.js +2 -2
- package/assets/js/highcharts/modules/navigator.src.js +20 -18
- package/assets/js/highcharts/modules/networkgraph.js +2 -2
- package/assets/js/highcharts/modules/networkgraph.src.js +10 -3
- package/assets/js/highcharts/modules/no-data-to-display.js +1 -1
- package/assets/js/highcharts/modules/no-data-to-display.src.js +1 -1
- package/assets/js/highcharts/modules/non-cartesian-zoom.js +2 -2
- package/assets/js/highcharts/modules/non-cartesian-zoom.src.js +26 -26
- package/assets/js/highcharts/modules/offline-exporting.js +2 -2
- package/assets/js/highcharts/modules/offline-exporting.src.js +5 -3
- package/assets/js/highcharts/modules/organization.js +2 -2
- package/assets/js/highcharts/modules/organization.src.js +3 -3
- package/assets/js/highcharts/modules/parallel-coordinates.js +1 -1
- package/assets/js/highcharts/modules/parallel-coordinates.src.js +1 -1
- package/assets/js/highcharts/modules/pareto.js +1 -1
- package/assets/js/highcharts/modules/pareto.src.js +1 -1
- package/assets/js/highcharts/modules/pathfinder.js +1 -1
- package/assets/js/highcharts/modules/pathfinder.src.js +1 -1
- package/assets/js/highcharts/modules/pattern-fill.js +1 -1
- package/assets/js/highcharts/modules/pattern-fill.src.js +1 -1
- package/assets/js/highcharts/modules/pictorial.js +1 -1
- package/assets/js/highcharts/modules/pictorial.src.js +1 -1
- package/assets/js/highcharts/modules/pointandfigure.js +1 -1
- package/assets/js/highcharts/modules/pointandfigure.src.js +1 -1
- package/assets/js/highcharts/modules/price-indicator.js +1 -1
- package/assets/js/highcharts/modules/price-indicator.src.js +1 -1
- package/assets/js/highcharts/modules/pyramid3d.js +1 -1
- package/assets/js/highcharts/modules/pyramid3d.src.js +1 -1
- package/assets/js/highcharts/modules/renko.js +1 -1
- package/assets/js/highcharts/modules/renko.src.js +1 -1
- package/assets/js/highcharts/modules/sankey.js +2 -2
- package/assets/js/highcharts/modules/sankey.src.js +3 -3
- package/assets/js/highcharts/modules/series-label.js +1 -1
- package/assets/js/highcharts/modules/series-label.src.js +1 -1
- package/assets/js/highcharts/modules/series-on-point.js +2 -2
- package/assets/js/highcharts/modules/series-on-point.src.js +6 -16
- package/assets/js/highcharts/modules/solid-gauge.js +1 -1
- package/assets/js/highcharts/modules/solid-gauge.src.js +20 -3
- package/assets/js/highcharts/modules/sonification.js +2 -2
- package/assets/js/highcharts/modules/sonification.src.js +5 -3
- package/assets/js/highcharts/modules/static-scale.js +2 -2
- package/assets/js/highcharts/modules/static-scale.src.js +14 -12
- package/assets/js/highcharts/modules/stock-tools.js +2 -2
- package/assets/js/highcharts/modules/stock-tools.src.js +3 -3
- package/assets/js/highcharts/modules/stock.js +8 -16
- package/assets/js/highcharts/modules/stock.src.js +203 -187
- package/assets/js/highcharts/modules/streamgraph.js +1 -1
- package/assets/js/highcharts/modules/streamgraph.src.js +1 -1
- package/assets/js/highcharts/modules/sunburst.js +2 -2
- package/assets/js/highcharts/modules/sunburst.src.js +9 -9
- package/assets/js/highcharts/modules/textpath.js +2 -2
- package/assets/js/highcharts/modules/textpath.src.js +3 -3
- package/assets/js/highcharts/modules/tiledwebmap.js +1 -1
- package/assets/js/highcharts/modules/tiledwebmap.src.js +1 -1
- package/assets/js/highcharts/modules/tilemap.js +1 -1
- package/assets/js/highcharts/modules/tilemap.src.js +1 -1
- package/assets/js/highcharts/modules/timeline.js +1 -1
- package/assets/js/highcharts/modules/timeline.src.js +1 -1
- package/assets/js/highcharts/modules/treegraph.js +2 -2
- package/assets/js/highcharts/modules/treegraph.src.js +13 -7
- package/assets/js/highcharts/modules/treegrid.js +2 -2
- package/assets/js/highcharts/modules/treegrid.src.js +190 -159
- package/assets/js/highcharts/modules/treemap.js +2 -2
- package/assets/js/highcharts/modules/treemap.src.js +7 -7
- package/assets/js/highcharts/modules/variable-pie.js +1 -1
- package/assets/js/highcharts/modules/variable-pie.src.js +1 -1
- package/assets/js/highcharts/modules/variwide.js +2 -2
- package/assets/js/highcharts/modules/variwide.src.js +10 -12
- package/assets/js/highcharts/modules/vector.js +1 -1
- package/assets/js/highcharts/modules/vector.src.js +1 -1
- package/assets/js/highcharts/modules/venn.js +2 -2
- package/assets/js/highcharts/modules/venn.src.js +5 -3
- package/assets/js/highcharts/modules/windbarb.js +1 -1
- package/assets/js/highcharts/modules/windbarb.src.js +1 -1
- package/assets/js/highcharts/modules/wordcloud.js +1 -1
- package/assets/js/highcharts/modules/wordcloud.src.js +2 -2
- package/assets/js/highcharts/modules/xrange.js +2 -2
- package/assets/js/highcharts/modules/xrange.src.js +3 -2
- package/assets/js/highcharts/standalone-navigator.js +7 -5
- package/assets/js/highcharts/standalone-navigator.src.js +172 -122
- package/assets/js/highcharts/themes/adaptive.js +1 -1
- package/assets/js/highcharts/themes/adaptive.src.js +1 -1
- package/assets/js/highcharts/themes/avocado.js +1 -1
- package/assets/js/highcharts/themes/avocado.src.js +1 -1
- package/assets/js/highcharts/themes/brand-dark.js +1 -1
- package/assets/js/highcharts/themes/brand-dark.src.js +1 -1
- package/assets/js/highcharts/themes/brand-light.js +1 -1
- package/assets/js/highcharts/themes/brand-light.src.js +1 -1
- package/assets/js/highcharts/themes/dark-blue.js +1 -1
- package/assets/js/highcharts/themes/dark-blue.src.js +1 -1
- package/assets/js/highcharts/themes/dark-green.js +1 -1
- package/assets/js/highcharts/themes/dark-green.src.js +1 -1
- package/assets/js/highcharts/themes/dark-unica.js +1 -1
- package/assets/js/highcharts/themes/dark-unica.src.js +1 -1
- package/assets/js/highcharts/themes/gray.js +1 -1
- package/assets/js/highcharts/themes/gray.src.js +1 -1
- package/assets/js/highcharts/themes/grid-light.js +1 -1
- package/assets/js/highcharts/themes/grid-light.src.js +1 -1
- package/assets/js/highcharts/themes/grid.js +1 -1
- package/assets/js/highcharts/themes/grid.src.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-dark.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-dark.src.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-light.js +1 -1
- package/assets/js/highcharts/themes/high-contrast-light.src.js +1 -1
- package/assets/js/highcharts/themes/sand-signika.js +1 -1
- package/assets/js/highcharts/themes/sand-signika.src.js +1 -1
- package/assets/js/highcharts/themes/skies.js +1 -1
- package/assets/js/highcharts/themes/skies.src.js +1 -1
- package/assets/js/highcharts/themes/sunset.js +1 -1
- package/assets/js/highcharts/themes/sunset.src.js +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
!/**
|
|
2
|
-
* Highcharts JS v12.
|
|
2
|
+
* Highcharts JS v12.4.0 (2025-09-04)
|
|
3
3
|
* @module highcharts/modules/boost-canvas
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
*
|
|
@@ -9,4 +9,4 @@
|
|
|
9
9
|
* Author: Torstein Honsi
|
|
10
10
|
*
|
|
11
11
|
* License: www.highcharts.com/license
|
|
12
|
-
*/function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/boost-canvas",["highcharts/highcharts"],function(t){return e(t,t.Color)}):"object"==typeof exports?exports["highcharts/modules/boost-canvas"]=e(t._Highcharts,t._Highcharts.Color):t.Highcharts=e(t.Highcharts,t.Highcharts.Color)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";let i,s;var o,r,n={620:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function l(t){var e=a[t];if(void 0!==e)return e.exports;var i=a[t]={exports:{}};return n[t](i,i.exports,l),i.exports}l.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return l.d(e,{a:e}),e},l.d=(t,e)=>{for(var i in e)l.o(e,i)&&!l.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},l.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var h={};l.d(h,{default:()=>tF});var d=l(944),u=l.n(d);let c=["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"],g={};c.forEach(t=>{g[t]=!0});let{composed:m}=u(),{addEvent:p,pick:f,pushUnique:b}=u();function x(t){let e=t.series,i=t.boost=t.boost||{},s=t.options.boost||{},o=f(s.seriesThreshold,50);if(e.length>=o)return!0;if(1===e.length)return!1;let r=s.allowForce;if(void 0===r){for(let e of(r=!0,t.xAxis))if(f(e.min,-1/0)>f(e.dataMin,-1/0)||f(e.max,1/0)<f(e.dataMax,1/0)){r=!1;break}}if(void 0!==i.forceChartBoost){if(r)return i.forceChartBoost;i.forceChartBoost=void 0}let n=0,a=0,l;for(let t of e)0!==(l=t.options).boostThreshold&&!1!==t.visible&&"heatmap"!==t.type&&(g[t.type]&&++n,function(...t){let e=-Number.MAX_VALUE;return t.forEach(t=>{if(null!=t&&void 0!==t.length&&t.length>0)return e=t.length,!0}),e}(t.getColumn("x",!0),l.data,t.points)>=(l.boostThreshold||Number.MAX_VALUE)&&++a);return i.forceChartBoost=r&&(n===e.length&&a===n||a>5),i.forceChartBoost}function A(t){function e(){t.boost&&t.boost.wgl&&x(t)&&t.boost.wgl.render(t)}p(t,"predraw",function(){t.boost=t.boost||{},t.boost.forceChartBoost=void 0,t.boosted=!1,t.axes.some(t=>t.isPanning)||t.boost.clear?.(),t.boost.canvas&&t.boost.wgl&&x(t)&&t.boost.wgl.allocateBuffer(t),t.boost.markerGroup&&t.xAxis&&t.xAxis.length>0&&t.yAxis&&t.yAxis.length>0&&t.boost.markerGroup.translate(t.xAxis[0].pos,t.yAxis[0].pos)}),p(t,"load",e,{order:-1}),p(t,"redraw",e);let i=-1,s=-1;p(t.pointer,"afterGetHoverData",e=>{let o=e.hoverPoint?.series;if(t.boost=t.boost||{},t.boost.markerGroup&&o){let e=t.inverted?o.yAxis:o.xAxis,r=t.inverted?o.xAxis:o.yAxis;(e&&e.pos!==i||r&&r.pos!==s)&&(t.series.forEach(t=>{t.halo?.hide()}),t.boost.markerGroup.translate(e.pos,r.pos),i=e.pos,s=r.pos)}})}let y={compose:function(t,e){return e&&b(m,"Boost.Chart")&&t.prototype.callbacks.push(A),t},getBoostClipRect:function(t,e){let i=t.navigator,s={x:t.plotLeft,y:t.plotTop,width:t.plotWidth,height:t.plotHeight};if(i&&t.inverted?(s.width+=i.top+i.height,i.opposite||(s.x=i.left)):i&&!t.inverted&&(s.height=i.top+i.height-t.plotTop),e.is){let{xAxis:i,yAxis:o}=e;if(s=t.getClipBox(e),t.inverted){let t=s.width;s.width=s.height,s.height=t,s.x=o.pos,s.y=i.pos}else s.x=i.pos,s.y=o.pos}if(e===t){let e=t.inverted?t.xAxis:t.yAxis;e.length<=1&&(s.y=Math.min(e[0].pos,s.y),s.height=e[0].pos-t.plotTop+e[0].len)}return s},isChartSeriesBoosting:x};var v=l(620),P=l.n(v);let T={area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"},{clamp:C,error:S,pick:M}=u(),E=class{constructor(t){if(this.errors=[],this.uLocations={},this.gl=t,t&&!this.createShader())return}bind(){this.gl&&this.shaderProgram&&this.gl.useProgram(this.shaderProgram)}createShader(){let t=this.stringToProgram("#version 100\n#define LN10 2.302585092994046\nprecision highp float;\nattribute vec4 aVertexPosition;\nattribute vec4 aColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform mat4 uPMatrix;\nuniform float pSize;\nuniform float translatedThreshold;\nuniform bool hasThreshold;\nuniform bool skipTranslation;\nuniform float xAxisTrans;\nuniform float xAxisMin;\nuniform float xAxisMinPad;\nuniform float xAxisPointRange;\nuniform float xAxisLen;\nuniform bool xAxisPostTranslate;\nuniform float xAxisOrdinalSlope;\nuniform float xAxisOrdinalOffset;\nuniform float xAxisPos;\nuniform bool xAxisCVSCoord;\nuniform bool xAxisIsLog;\nuniform bool xAxisReversed;\nuniform float yAxisTrans;\nuniform float yAxisMin;\nuniform float yAxisMinPad;\nuniform float yAxisPointRange;\nuniform float yAxisLen;\nuniform bool yAxisPostTranslate;\nuniform float yAxisOrdinalSlope;\nuniform float yAxisOrdinalOffset;\nuniform float yAxisPos;\nuniform bool yAxisCVSCoord;\nuniform bool yAxisIsLog;\nuniform bool yAxisReversed;\nuniform bool isBubble;\nuniform bool bubbleSizeByArea;\nuniform float bubbleZMin;\nuniform float bubbleZMax;\nuniform float bubbleZThreshold;\nuniform float bubbleMinSize;\nuniform float bubbleMaxSize;\nuniform bool bubbleSizeAbs;\nuniform bool isInverted;\nfloat bubbleRadius(){\nfloat value = aVertexPosition.w;\nfloat zMax = bubbleZMax;\nfloat zMin = bubbleZMin;\nfloat radius = 0.0;\nfloat pos = 0.0;\nfloat zRange = zMax - zMin;\nif (bubbleSizeAbs){\nvalue = value - bubbleZThreshold;\nzMax = max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\nzMin = 0.0;\n}\nif (value < zMin){\nradius = bubbleZMin / 2.0 - 1.0;\n} else {\npos = zRange > 0.0 ? (value - zMin) / zRange : 0.5;\nif (bubbleSizeByArea && pos > 0.0){\npos = sqrt(pos);\n}\nradius = ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\n}\nreturn radius * 2.0;\n}\nfloat translate(float val,\nfloat pointPlacement,\nfloat localA,\nfloat localMin,\nfloat minPixelPadding,\nfloat pointRange,\nfloat len,\nbool cvsCoord,\nbool isLog,\nbool reversed\n){\nfloat sign = 1.0;\nfloat cvsOffset = 0.0;\nif (cvsCoord) {\nsign *= -1.0;\ncvsOffset = len;\n}\nif (isLog) {\nval = log(val) / LN10;\n}\nif (reversed) {\nsign *= -1.0;\ncvsOffset -= sign * len;\n}\nreturn sign * (val - localMin) * localA + cvsOffset + \n(sign * minPixelPadding);\n}\nfloat xToPixels(float value) {\nif (skipTranslation){\nreturn value;// + xAxisPos;\n}\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord, xAxisIsLog, xAxisReversed);// + xAxisPos;\n}\nfloat yToPixels(float value, float checkTreshold) {\nfloat v;\nif (skipTranslation){\nv = value;// + yAxisPos;\n} else {\nv = translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord, yAxisIsLog, yAxisReversed);// + yAxisPos;\nif (v > yAxisLen) {\nv = yAxisLen;\n}\n}\nif (checkTreshold > 0.0 && hasThreshold) {\nv = min(v, translatedThreshold);\n}\nreturn v;\n}\nvoid main(void) {\nif (isBubble){\ngl_PointSize = bubbleRadius();\n} else {\ngl_PointSize = pSize;\n}\nvColor = aColor;\nif (skipTranslation && isInverted) {\ngl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);\n} else if (isInverted) {\ngl_Position = uPMatrix * vec4(yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, xToPixels(aVertexPosition.x) + xAxisPos, 0.0, 1.0);\n} else {\ngl_Position = uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\n}\n}","vertex"),e=this.stringToProgram("precision highp float;\nuniform vec4 fillColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform sampler2D uSampler;\nuniform bool isCircle;\nuniform bool hasColor;\nvoid main(void) {\nvec4 col = fillColor;\nvec4 tcol = texture2D(uSampler, gl_PointCoord.st);\nif (hasColor) {\ncol = vColor;\n}\nif (isCircle) {\ncol *= tcol;\nif (tcol.r < 0.0) {\ndiscard;\n} else {\ngl_FragColor = col;\n}\n} else {\ngl_FragColor = col;\n}\n}","fragment"),i=t=>this.gl.getUniformLocation(this.shaderProgram,t);return t&&e?(this.shaderProgram=this.gl.createProgram(),this.gl.attachShader(this.shaderProgram,t),this.gl.attachShader(this.shaderProgram,e),this.gl.linkProgram(this.shaderProgram),this.gl.getProgramParameter(this.shaderProgram,this.gl.LINK_STATUS))?(this.gl.useProgram(this.shaderProgram),this.gl.bindAttribLocation(this.shaderProgram,0,"aVertexPosition"),this.pUniform=i("uPMatrix"),this.psUniform=i("pSize"),this.fcUniform=i("fillColor"),this.isBubbleUniform=i("isBubble"),this.bubbleSizeAbsUniform=i("bubbleSizeAbs"),this.bubbleSizeAreaUniform=i("bubbleSizeByArea"),this.uSamplerUniform=i("uSampler"),this.skipTranslationUniform=i("skipTranslation"),this.isCircleUniform=i("isCircle"),this.isInverted=i("isInverted"),!0):(this.errors.push(this.gl.getProgramInfoLog(this.shaderProgram)),this.handleErrors(),this.shaderProgram=!1,!1):(this.shaderProgram=!1,this.handleErrors(),!1)}handleErrors(){this.errors.length&&S("[highcharts boost] shader error - "+this.errors.join("\n"))}stringToProgram(t,e){let i=this.gl.createShader("vertex"===e?this.gl.VERTEX_SHADER:this.gl.FRAGMENT_SHADER);return(this.gl.shaderSource(i,t),this.gl.compileShader(i),this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS))?i:(this.errors.push("when compiling "+e+" shader:\n"+this.gl.getShaderInfoLog(i)),!1)}destroy(){this.gl&&this.shaderProgram&&(this.gl.deleteProgram(this.shaderProgram),this.shaderProgram=!1)}fillColorUniform(){return this.fcUniform}getProgram(){return this.shaderProgram}pointSizeUniform(){return this.psUniform}perspectiveUniform(){return this.pUniform}reset(){this.gl&&this.shaderProgram&&(this.gl.uniform1i(this.isBubbleUniform,0),this.gl.uniform1i(this.isCircleUniform,0))}setBubbleUniforms(t,e,i,s=1){let o=t.options,r=Number.MAX_VALUE,n=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&t.is("bubble")){let a=t.getPxExtremes();r=M(o.zMin,C(e,!1===o.displayNegative?o.zThreshold:-Number.MAX_VALUE,r)),n=M(o.zMax,Math.max(n,i)),this.gl.uniform1i(this.isBubbleUniform,1),this.gl.uniform1i(this.isCircleUniform,1),this.gl.uniform1i(this.bubbleSizeAreaUniform,"width"!==t.options.sizeBy),this.gl.uniform1i(this.bubbleSizeAbsUniform,t.options.sizeByAbsoluteValue),this.setUniform("bubbleMinSize",a.minPxSize*s),this.setUniform("bubbleMaxSize",a.maxPxSize*s),this.setUniform("bubbleZMin",r),this.setUniform("bubbleZMax",n),this.setUniform("bubbleZThreshold",t.options.zThreshold)}}setColor(t){this.gl&&this.shaderProgram&&this.gl.uniform4f(this.fcUniform,t[0]/255,t[1]/255,t[2]/255,t[3])}setDrawAsCircle(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isCircleUniform,+!!t)}setInverted(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isInverted,t)}setPMatrix(t){this.gl&&this.shaderProgram&&this.gl.uniformMatrix4fv(this.pUniform,!1,t)}setPointSize(t){this.gl&&this.shaderProgram&&this.gl.uniform1f(this.psUniform,t)}setSkipTranslation(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.skipTranslationUniform,+(!0===t))}setTexture(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.uSamplerUniform,t)}setUniform(t,e){if(this.gl&&this.shaderProgram){let i=this.uLocations[t]=this.uLocations[t]||this.gl.getUniformLocation(this.shaderProgram,t);this.gl.uniform1f(i,e)}}},k=class{constructor(t,e,i){this.buffer=!1,this.iterator=0,this.preAllocated=!1,this.vertAttribute=!1,this.components=i||2,this.dataComponents=i,this.gl=t,this.shader=e}allocate(t){this.iterator=-1,this.preAllocated=new Float32Array(4*t)}bind(){if(!this.buffer)return!1;this.gl.vertexAttribPointer(this.vertAttribute,this.components,this.gl.FLOAT,!1,0,0)}build(t,e,i){let s;return(this.data=t||[],this.data&&0!==this.data.length||this.preAllocated)?(this.components=i||this.components,this.buffer&&this.gl.deleteBuffer(this.buffer),this.preAllocated||(s=new Float32Array(this.data)),this.buffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.buffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.preAllocated||s,this.gl.STATIC_DRAW),this.vertAttribute=this.gl.getAttribLocation(this.shader.getProgram(),e),this.gl.enableVertexAttribArray(this.vertAttribute),s=!1,!0):(this.destroy(),!1)}destroy(){this.buffer&&(this.gl.deleteBuffer(this.buffer),this.buffer=!1,this.vertAttribute=!1),this.iterator=0,this.components=this.dataComponents||2,this.data=[]}push(t,e,i,s){this.preAllocated&&(this.preAllocated[++this.iterator]=t,this.preAllocated[++this.iterator]=e,this.preAllocated[++this.iterator]=i,this.preAllocated[++this.iterator]=s)}render(t,e,i){let s=this.preAllocated?this.preAllocated.length:this.data.length;return!!this.buffer&&!!s&&((!t||t>s||t<0)&&(t=0),(!e||e>s)&&(e=s),!(t>=e)&&(i=i||"POINTS",this.gl.drawArrays(this.gl[i],t/this.components,(e-t)/this.components),!0))}},{parse:w}=P(),{doc:R,win:U}=u(),{isNumber:L,isObject:N,merge:_,objectEach:D,pick:z}=u(),G={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},I={scatter:!0,bubble:!0},B=["webgl","experimental-webgl","moz-webgl","webkit-3d"];class O{static orthoMatrix(t,e){return[2/t,0,0,0,0,-(2/e),0,0,0,0,-2,0,-1,1,-1,1]}static seriesPointCount(t){let e,i,s;return t.boosted?(e=!!t.options.stacking,i=(t.getColumn("x").length?t.getColumn("x"):void 0)||t.options.xData||t.getColumn("x",!0),s=(e?t.data:i||t.options.data).length,"treemap"===t.type?s*=12:"heatmap"===t.type?s*=6:G[t.type]&&(s*=2),s):0}constructor(t){this.data=[],this.height=0,this.isInited=!1,this.markerData=[],this.series=[],this.textureHandles={},this.width=0,this.postRenderCallback=t,this.settings={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}}}getPixelRatio(){return this.settings.pixelRatio||U.devicePixelRatio||1}setOptions(t){"pixelRatio"in t||(t.pixelRatio=1),_(!0,this.settings,t)}allocateBuffer(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.series.forEach(t=>{t.boosted&&(i+=O.seriesPointCount(t))}),e&&e.allocate(i))}allocateBufferForSingleSeries(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.boosted&&(i=O.seriesPointCount(t)),e&&e.allocate(i))}clear(){let t=this.gl;t&&t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}pushSeriesData(t,e){let i=this.data,s=this.settings,o=this.vbuffer,r=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),{chart:n,options:a,sorted:l,xAxis:h,yAxis:d}=t,u=!!a.stacking,c=a.data,g=t.xAxis.getExtremes(),m=g.min-(t.xAxis.minPointOffset||0),p=g.max+(t.xAxis.minPointOffset||0),f=t.yAxis.getExtremes(),b=f.min-(t.yAxis.minPointOffset||0),x=f.max+(t.yAxis.minPointOffset||0),A=(t.getColumn("x").length?t.getColumn("x"):void 0)||a.xData||t.getColumn("x",!0),y=(t.getColumn("y").length?t.getColumn("y"):void 0)||a.yData||t.getColumn("y",!0),v=(t.getColumn("z").length?t.getColumn("z"):void 0)||a.zData||t.getColumn("z",!0),P=!A||0===A.length,T=a.connectNulls,C=t.points||!1,S=u?t.data:A||c,M={x:Number.MAX_VALUE,y:0},E={x:-Number.MAX_VALUE,y:0},k=void 0===n.index,R=G[t.type],U=a.zoneAxis||"y",L=a.zones||!1,_=a.threshold,D=this.getPixelRatio(),z=t.chart.plotWidth,I=!1,B=!1,O,V,X=0,F=!1,H,Y,W,j,K=-1,Z=!1,q=!1,Q,J=!1,$=!1,tt=!1,te=!1,ti=!0,ts=!0,to,tr=!1,tn=!1,ta=0;if(a.boostData&&a.boostData.length>0)return;a.gapSize&&(tn="value"!==a.gapUnit?a.gapSize*t.closestPointRange:a.gapSize),L&&(to=[],L.forEach((t,e)=>{if(t.color){let i=w(t.color).rgba;i[0]/=255,i[1]/=255,i[2]/=255,to[e]=i,tr||void 0!==t.value||(tr=i)}}),tr||(tr=w(t.pointAttribs&&t.pointAttribs().fill||t.color).rgba,tr[0]/=255,tr[1]/=255,tr[2]/=255)),n.inverted&&(z=t.chart.plotHeight),t.closestPointRangePx=Number.MAX_VALUE;let tl=t=>{t&&(e.colorData.push(t[0]),e.colorData.push(t[1]),e.colorData.push(t[2]),e.colorData.push(t[3]))},th=(t,r,n,a=1,l)=>{tl(l),1!==D&&(!s.useGPUTranslations||e.skipTranslation)&&(t*=D,r*=D,a*=D),s.usePreallocated&&o?(o.push(t,r,+!!n,a),ta+=4):(i.push(t),i.push(r),i.push(n?D:0),i.push(a))},td=()=>{e.segments.length&&(e.segments[e.segments.length-1].to=i.length||ta)},tu=()=>{e.segments.length&&e.segments[e.segments.length-1].from===(i.length||ta)||(td(),e.segments.push({from:i.length||ta}))},tc=(t,e,i,s,o)=>{tl(o),th(t+i,e),tl(o),th(t,e),tl(o),th(t,e+s),tl(o),th(t,e+s),tl(o),th(t+i,e+s),tl(o),th(t+i,e)};if(tu(),C&&C.length>0){e.skipTranslation=!0,e.drawMode="TRIANGLES",C[0].node&&C[0].node.levelDynamic&&C.sort((t,e)=>{if(t.node){if(t.node.levelDynamic>e.node.levelDynamic)return 1;if(t.node.levelDynamic<e.node.levelDynamic)return -1}return 0}),C.forEach(e=>{let i,s,o=e.plotY;if(void 0!==o&&!isNaN(o)&&null!==e.y&&e.shapeArgs){let{x:o=0,y:r=0,width:a=0,height:l=0}=e.shapeArgs;i=(s=n.styledMode?e.series.colorAttribs(e):s=e.series.pointAttribs(e))["stroke-width"]||0,tt=w(s.fill).rgba,tt[0]/=255,tt[1]/=255,tt[2]/=255,t.is("treemap")&&(i=i||1,V=w(s.stroke).rgba,V[0]/=255,V[1]/=255,V[2]/=255,tc(o,r,a,l,V),i/=2),t.is("heatmap")&&n.inverted&&(o=h.len-o,r=d.len-r,a=-a,l=-l),tc(o+i,r+i,a-2*i,l-2*i,tt)}}),td();return}for(;K<S.length-1;){if(void 0===(W=S[++K]))continue;if(k)break;let i=c&&c[K];if(!P&&N(i,!0)&&i.color&&(tt=w(i.color).rgba,tt[0]/=255,tt[1]/=255,tt[2]/=255),P?(H=W[0],Y=W[1],S[K+1]&&(q=S[K+1][0]),S[K-1]&&(Z=S[K-1][0]),W.length>=3&&(j=W[2],W[2]>e.zMax&&(e.zMax=W[2]),W[2]<e.zMin&&(e.zMin=W[2]))):(H=W,Y=y?.[K],S[K+1]&&(q=S[K+1]),S[K-1]&&(Z=S[K-1]),v&&v.length&&(j=v[K],v[K]>e.zMax&&(e.zMax=v[K]),v[K]<e.zMin&&(e.zMin=v[K]))),!T&&(null===H||null===Y)){tu();continue}if(q&&q>=m&&q<=p&&(J=!0),Z&&Z>=m&&Z<=p&&($=!0),r?(P&&(Y=W.slice(1,3)),Q=t.getColumn("low",!0)?.[K],Y=t.getColumn("high",!0)?.[K]||0):u&&(H=W.x,Q=(Y=W.stackY)-W.y),null!=b&&null!=x&&(ti=Y>=b&&Y<=x),!l&&!ti||(H>p&&E.x<p&&(E.x=H,E.y=Y),H<m&&M.x>m&&(M.x=H,M.y=Y),null===Y&&T))continue;if(null===Y||!ti&&S.length>1&&!J&&!$){tu();continue}if((l&&(q>=m||H>=m)&&(Z<=p||H<=p)||!l&&H>=m&&H<=p)&&(te=!0),te||J||$){if(tn&&H-Z>tn&&tu(),L){let t;L.some((e,i)=>{let s=L[i-1];return"x"===U?void 0!==e.value&&H<=e.value&&(to[i]&&(!s||H>=s.value)&&(t=to[i]),!0):void 0!==e.value&&Y<=e.value&&(to[i]&&(!s||Y>=s.value)&&(t=to[i]),!0)}),tt=t||tr||tt}if(s.useGPUTranslations||(e.skipTranslation=!0,H=h.toPixels(H,!0),Y=d.toPixels(Y,!0),!(H>z)||"POINTS"!==e.drawMode)){if(e.hasMarkers&&te&&!1!==I&&(t.closestPointRangePx=Math.min(t.closestPointRangePx,Math.abs(H-I))),!s.useGPUTranslations&&!s.usePreallocated&&I&&1>Math.abs(H-I)&&B&&1>Math.abs(Y-B)){s.debug.showSkipSummary&&++X;continue}R&&(O=Q||0,(!1===Q||void 0===Q)&&(O=Y<0?Y:0),(r||u)&&!d.logarithmic||(O=Math.max(null===_?b:_,b)),s.useGPUTranslations||(O=d.toPixels(O,!0)),th(H,O,0,0,tt)),a.step&&!ts&&th(H,B,0,2,tt),th(H,Y,0,"bubble"===t.type?j||1:2,tt),I=H,B=Y,F=!0,ts=!1}}}s.debug.showSkipSummary&&console.log("skipped points:",X);let tg=(t,i)=>{if(s.useGPUTranslations||(e.skipTranslation=!0,t.x=h.toPixels(t.x,!0),t.y=d.toPixels(t.y,!0)),i){this.data=[t.x,t.y,0,2].concat(this.data);return}th(t.x,t.y,0,2)};!F&&!1!==T&&"line_strip"===t.drawMode&&(M.x<Number.MAX_VALUE&&tg(M,!0),E.x>-Number.MAX_VALUE&&tg(E)),td()}pushSeries(t){let e=this.markerData,i=this.series,s=this.settings;i.length>0&&i[i.length-1].hasMarkers&&(i[i.length-1].markerTo=e.length),s.debug.timeSeriesProcessing&&console.time("building "+t.type+" series");let o={segments:[],markerFrom:e.length,colorData:[],series:t,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:!!t.options.marker&&!1!==t.options.marker.enabled,showMarkers:!0,drawMode:T[t.type]||"LINE_STRIP"};t.index>=i.length?i.push(o):i[t.index]=o,this.pushSeriesData(t,o),s.debug.timeSeriesProcessing&&console.timeEnd("building "+t.type+" series")}flush(){let t=this.vbuffer;this.data=[],this.markerData=[],this.series=[],t&&t.destroy()}setXAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("xAxisTrans",t.transA*i),e.setUniform("xAxisMin",t.min),e.setUniform("xAxisMinPad",t.minPixelPadding*i),e.setUniform("xAxisPointRange",t.pointRange),e.setUniform("xAxisLen",t.len*i),e.setUniform("xAxisPos",t.pos*i),e.setUniform("xAxisCVSCoord",!t.horiz),e.setUniform("xAxisIsLog",!!t.logarithmic),e.setUniform("xAxisReversed",!!t.reversed)}setYAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("yAxisTrans",t.transA*i),e.setUniform("yAxisMin",t.min),e.setUniform("yAxisMinPad",t.minPixelPadding*i),e.setUniform("yAxisPointRange",t.pointRange),e.setUniform("yAxisLen",t.len*i),e.setUniform("yAxisPos",t.pos*i),e.setUniform("yAxisCVSCoord",!t.horiz),e.setUniform("yAxisIsLog",!!t.logarithmic),e.setUniform("yAxisReversed",!!t.reversed)}setThreshold(t,e){let i=this.shader;i&&(i.setUniform("hasThreshold",t),i.setUniform("translatedThreshold",e))}renderChart(t){let e=this.gl,i=this.settings,s=this.shader,o=this.vbuffer,r=this.getPixelRatio();if(!t)return!1;this.width=t.chartWidth*r,this.height=t.chartHeight*r;let n=this.height,a=this.width;if(!e||!s||!a||!n)return!1;i.debug.timeRendering&&console.time("gl rendering"),e.canvas.width=a,e.canvas.height=n,s.bind(),e.viewport(0,0,a,n),s.setPMatrix(O.orthoMatrix(a,n)),i.lineWidth>1&&!u().isMS&&e.lineWidth(i.lineWidth),o&&(o.build(this.data,"aVertexPosition",4),o.bind()),s.setInverted(t.inverted),this.series.forEach((n,a)=>{let l=n.series.options,h=l.marker,d=void 0!==l.lineWidth?l.lineWidth:1,u=l.threshold,c=L(u),g=n.series.yAxis.getThreshold(u),m=z(l.marker?l.marker.enabled:null,!!n.series.xAxis.isRadial||null,n.series.closestPointRangePx>2*((l.marker?l.marker.radius:10)||10)),p=this.textureHandles[h&&h.symbol||n.series.symbol]||this.textureHandles.circle,f,b,x,A=[];if(0!==n.segments.length&&n.segments[0].from!==n.segments[0].to&&(p.isReady&&(e.bindTexture(e.TEXTURE_2D,p.handle),s.setTexture(p.handle)),t.styledMode?n.series.markerGroup===n.series.chart.boost?.markerGroup?(delete n.series.markerGroup,n.series.markerGroup=n.series.plotGroup("markerGroup","markers","visible",1,t.seriesGroup).addClass("highcharts-tracker"),x=n.series.markerGroup.getStyle("fill"),n.series.markerGroup.destroy(),n.series.markerGroup=n.series.chart.boost?.markerGroup):x=n.series.markerGroup?.getStyle("fill"):(x="POINTS"===n.drawMode&&n.series.pointAttribs&&n.series.pointAttribs().fill||n.series.color,l.colorByPoint&&(x=n.series.chart.options.colors[a])),n.series.fillOpacity&&l.fillOpacity&&(x=new(P())(x).setOpacity(z(l.fillOpacity,1)).get()),A=w(x).rgba,i.useAlpha||(A[3]=1),"add"===l.boostBlending?(e.blendFunc(e.SRC_ALPHA,e.ONE),e.blendEquation(e.FUNC_ADD)):"mult"===l.boostBlending||"multiply"===l.boostBlending?e.blendFunc(e.DST_COLOR,e.ZERO):"darken"===l.boostBlending?(e.blendFunc(e.ONE,e.ONE),e.blendEquation(e.FUNC_MIN)):e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA),s.reset(),n.colorData.length>0?(s.setUniform("hasColor",1),(b=new k(e,s)).build(Array(n.segments[0].from).concat(n.colorData),"aColor",4),b.bind()):(s.setUniform("hasColor",0),e.disableVertexAttribArray(e.getAttribLocation(s.getProgram(),"aColor"))),s.setColor(A),this.setXAxis(n.series.xAxis),this.setYAxis(n.series.yAxis),this.setThreshold(c,g),"POINTS"===n.drawMode&&s.setPointSize(2*z(l.marker&&l.marker.radius,.5)*r),s.setSkipTranslation(n.skipTranslation),"bubble"===n.series.type&&s.setBubbleUniforms(n.series,n.zMin,n.zMax,r),s.setDrawAsCircle(I[n.series.type]||!1),o)){if(d>0||"LINE_STRIP"!==n.drawMode)for(f=0;f<n.segments.length;f++)o.render(n.segments[f].from,n.segments[f].to,n.drawMode);if(n.hasMarkers&&m)for(s.setPointSize(2*z(l.marker&&l.marker.radius,5)*r),s.setDrawAsCircle(!0),f=0;f<n.segments.length;f++)o.render(n.segments[f].from,n.segments[f].to,"POINTS")}}),i.debug.timeRendering&&console.timeEnd("gl rendering"),this.postRenderCallback&&this.postRenderCallback(this),this.flush()}render(t){if(this.clear(),t.renderer.forExport)return this.renderChart(t);this.isInited?this.renderChart(t):setTimeout(()=>{this.render(t)},1)}setSize(t,e){let i=this.shader;i&&(this.width!==t||this.height!==e)&&(this.width=t,this.height=e,i.bind(),i.setPMatrix(O.orthoMatrix(t,e)))}init(t,e){let i=this.settings;if(this.isInited=!1,!t)return!1;i.debug.timeSetup&&console.time("gl setup");for(let e=0;e<B.length&&(this.gl=t.getContext(B[e],{}),!this.gl);++e);let s=this.gl;if(!s)return!1;e||this.flush(),s.enable(s.BLEND),s.blendFunc(s.SRC_ALPHA,s.ONE_MINUS_SRC_ALPHA),s.disable(s.DEPTH_TEST),s.depthFunc(s.LESS);let o=this.shader=new E(s);if(!o)return!1;this.vbuffer=new k(s,o);let r=(t,e)=>{let i={isReady:!1,texture:R.createElement("canvas"),handle:s.createTexture()},o=i.texture.getContext("2d");this.textureHandles[t]=i,i.texture.width=512,i.texture.height=512,o.mozImageSmoothingEnabled=!1,o.webkitImageSmoothingEnabled=!1,o.msImageSmoothingEnabled=!1,o.imageSmoothingEnabled=!1,o.strokeStyle="rgba(255, 255, 255, 0)",o.fillStyle="#FFF",e(o);try{s.activeTexture(s.TEXTURE0),s.bindTexture(s.TEXTURE_2D,i.handle),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,s.RGBA,s.UNSIGNED_BYTE,i.texture),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.bindTexture(s.TEXTURE_2D,null),i.isReady=!0}catch(t){}};return r("circle",t=>{t.beginPath(),t.arc(256,256,256,0,2*Math.PI),t.stroke(),t.fill()}),r("square",t=>{t.fillRect(0,0,512,512)}),r("diamond",t=>{t.beginPath(),t.moveTo(256,0),t.lineTo(512,256),t.lineTo(256,512),t.lineTo(0,256),t.lineTo(256,0),t.fill()}),r("triangle",t=>{t.beginPath(),t.moveTo(0,512),t.lineTo(256,0),t.lineTo(512,512),t.lineTo(0,512),t.fill()}),r("triangle-down",t=>{t.beginPath(),t.moveTo(0,0),t.lineTo(256,512),t.lineTo(512,0),t.lineTo(0,0),t.fill()}),this.isInited=!0,i.debug.timeSetup&&console.timeEnd("gl setup"),!0}destroy(){let t=this.gl,e=this.shader,i=this.vbuffer;this.flush(),i&&i.destroy(),e&&e.destroy(),t&&(D(this.textureHandles,e=>{e.handle&&t.deleteTexture(e.handle)}),t.canvas.width=1,t.canvas.height=1)}}!function(t){t.setLength=function(t,e,i){return Array.isArray(t)?(t.length=e,t):t[i?"subarray":"slice"](0,e)},t.splice=function(t,e,i,s,o=[]){if(Array.isArray(t))return Array.isArray(o)||(o=Array.from(o)),{removed:t.splice(e,i,...o),array:t};let r=Object.getPrototypeOf(t).constructor,n=t[s?"subarray":"slice"](e,e+i),a=new r(t.length-i+o.length);return a.set(t.subarray(0,e),0),a.set(o,e),a.set(t.subarray(e+i),e+o.length),{removed:n,array:a}}}(o||(o={}));let{setLength:V,splice:X}=o,{fireEvent:F,objectEach:H,uniqueKey:Y}=u(),W=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||Y(),this.modified=this,this.rowCount=0,this.versionTag=Y();let e=0;H(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,H(this.columns,(e,i)=>{e.length!==t&&(this.columns[i]=V(e,t))})}deleteRows(t,e=1){if(e>0&&t<this.rowCount){let i=0;H(this.columns,(s,o)=>{this.columns[o]=X(s,t,e).array,i=s.length}),this.rowCount=i}F(this,"afterDeleteRows",{rowIndex:t,rowCount:e}),this.versionTag=Y()}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;H(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(F(this,"afterSetColumns"),this.versionTag=Y())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;H(t,(t,n)=>{let a=o[n]||s?.addColumns!==!1&&Array(r);a&&(i?a=X(a,e,0,!0,[t]).array:a[e]=t,o[n]=a)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(F(this,"afterSetRows"),this.versionTag=Y())}},{getBoostClipRect:j,isChartSeriesBoosting:K}=y,{getOptions:Z}=u(),{composed:q,doc:Q,noop:J,win:$}=u(),{addEvent:tt,destroyObjectProperties:te,error:ti,extend:ts,fireEvent:to,isArray:tr,isNumber:tn,pick:ta,pushUnique:tl,wrap:th,defined:td}=u();function tu(t,e){let i=e.boost;t&&i&&i.target&&i.canvas&&!K(e.chart)&&t.allocateBufferForSingleSeries(e)}function tc(t){return ta(t&&t.options&&t.options.boost&&t.options.boost.enabled,!0)}function tg(t,e){let i=t.constructor,o=t.seriesGroup||e.group,r=t.chartWidth,n=t.chartHeight,a=t,l="undefined"!=typeof SVGForeignObjectElement,h=!1;K(t)?a=t:(a=e,h=!!(e.options.events?.click||e.options.point?.events?.click));let d=a.boost=a.boost||{};if(l=!1,s||(s=Q.createElement("canvas")),!d.target&&(d.canvas=s,t.renderer.forExport||!l?(a.renderTarget=d.target=t.renderer.image("",0,0,r,n).addClass("highcharts-boost-canvas").add(o),d.clear=function(){d.target.attr({href:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="})},d.copy=function(){d.resize(),d.target.attr({href:d.canvas.toDataURL("image/png")})}):(d.targetFo=t.renderer.createElement("foreignObject").add(o),a.renderTarget=d.target=Q.createElement("canvas"),d.targetCtx=d.target.getContext("2d"),d.targetFo.element.appendChild(d.target),d.clear=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height},d.copy=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height,d.targetCtx.drawImage(d.canvas,0,0)}),d.resize=function(){r=t.chartWidth,n=t.chartHeight,(d.targetFo||d.target).attr({x:0,y:0,width:r,height:n}).css({pointerEvents:h?void 0:"none",mixedBlendMode:"normal",opacity:1}).addClass(h?"highcharts-tracker":""),a instanceof i&&a.boost?.markerGroup?.translate(t.plotLeft,t.plotTop)},d.clipRect=t.renderer.clipRect(),(d.targetFo||d.target).attr({zIndex:e.options.zIndex}),a instanceof i&&(a.boost.markerGroup=a.renderer.g().add(o).translate(e.xAxis.pos,e.yAxis.pos))),d.canvas.width=r,d.canvas.height=n,d.clipRect){let e=j(t,a),i=e.width===t.clipBox.width&&e.height===t.clipBox.height?o:d.targetFo||d.target;d.clipRect.attr(e),i?.clip(d.clipRect)}return d.resize(),d.clear(),!d.wgl&&(d.wgl=new O(t=>{t.settings.debug.timeBufferCopy&&console.time("buffer copy"),d.copy(),t.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),d.wgl.init(d.canvas)||ti("[highcharts boost] - unable to init WebGL renderer"),d.wgl.setOptions(t.options.boost||{}),a instanceof i&&d.wgl.allocateBuffer(t)),d.wgl.setSize(r,n),d.wgl}function tm(t){let e=t.points;if(e){let t,i;for(i=0;i<e.length;i+=1)(t=e[i])&&t.destroyElements&&t.destroyElements()}for(let e of(["graph","area","tracker"].forEach(e=>{let i=t[e];i&&(t[e]=i.destroy())}),t.zones))te(e,void 0,!0)}function tp(t,e,i,s,o,r){let n=(o=o||0)+(s=s||3e3),a=!0;for(;a&&o<n&&o<t.length;)a=e(t[o],o),++o;a&&(o<t.length?r?tp(t,e,i,s,o,r):$.requestAnimationFrame?$.requestAnimationFrame(function(){tp(t,e,i,s,o)}):setTimeout(tp,0,t,e,i,s,o):i&&i())}function tf(t,e){let i=t.options,s=t.dataTable.modified.rowCount,o=t.xAxis&&t.xAxis.options,r=t.yAxis&&t.yAxis.options,n=t.colorAxis&&t.colorAxis.options;return s>(i.boostThreshold||Number.MAX_VALUE)&&tn(r.min)&&tn(r.max)&&(!e||tn(o.min)&&tn(o.max))&&(!n||tn(n.min)&&tn(n.max))}let tb=(t,e)=>!t.forceCrop&&(K(t.chart)||(e?e.length:0)>=(t.options.boostThreshold||Number.MAX_VALUE));function tx(){let t=this,e=t.chart;e.boost&&e.boost.markerGroup===t.markerGroup&&(t.markerGroup=void 0),e.hoverPoints&&(e.hoverPoints=e.hoverPoints.filter(function(e){return e.series===t})),e.hoverPoint&&e.hoverPoint.series===t&&(e.hoverPoint=void 0)}function tA(){let t=this.boost;t&&t.canvas&&t.target&&(t.wgl&&t.wgl.clear(),t.clear&&t.clear())}function ty(t){let e=t.boost;e&&e.canvas&&e.target&&e.wgl&&!K(t.chart)&&e.wgl.render(t.chart)}function tv(t,e){let i=t.options,s=t.xAxis,o=t.pointClass;if(e instanceof o)return e;let r=t.is("scatter"),n=(r&&t.getColumn("x",!0).length?t.getColumn("x",!0):void 0)||(t.getColumn("x").length?t.getColumn("x"):void 0)||i.xData||t.getColumn("x",!0)||!1,a=t.getColumn("y",!0)||i.yData||!1,l=new o(t,r&&n&&a?[n[e.i],a[e.i]]:(tr(t.options.data)?t.options.data:[])[e.i],n?n[e.i]:void 0);return l.category=ta(s.categories?s.categories[l.x]:l.x,l.x),l.key=l.name??l.category,l.dist=e.dist,l.distX=e.distX,l.plotX=e.plotX,l.plotY=e.plotY,l.index=e.i,l.percentage=e.percentage,l.isInside=t.isPointInside(l),l}function tP(t){let{options:e,xAxis:i,yAxis:s}=this;if(!this.isDirty&&!i.isDirty&&!s.isDirty&&!t)return!1;this.yAxis.setTickInterval();let o=e.boostThreshold||0,r=e.cropThreshold,n=this.getColumn("x"),a=i.getExtremes(),l=a.max??Number.MAX_VALUE,h=a.min??-Number.MAX_VALUE,d=this.getColumn("y"),u=s.getExtremes(),c=u.max??Number.MAX_VALUE,g=u.min??-Number.MAX_VALUE;if(!this.boosted&&i.old&&s.old&&h>=(i.old.min??-Number.MAX_VALUE)&&l<=(i.old.max??Number.MAX_VALUE)&&g>=(s.old.min??-Number.MAX_VALUE)&&c<=(s.old.max??Number.MAX_VALUE))return this.dataTable.modified.setColumns({x:n,y:d}),!0;let m=this.dataTable.rowCount;if(!o||m<o||r&&!this.forceCrop&&!this.getExtremesFromAll&&!e.getExtremesFromAll&&m<r)return this.dataTable.modified.setColumns({x:n,y:d}),!0;let p=[],f=[],b=[],x=!(tn(a.max)||tn(a.min)),A=!(tn(u.max)||tn(u.min)),y=!1,v,P=n[0],T=n[0],C,S=d?.[0],M=d?.[0];for(let t=0,e=n.length;t<e;++t)v=n[t],C=d?.[t],v>=h&&v<=l&&C>=g&&C<=c?(p.push({x:v,y:C}),f.push(v),b.push(C),x&&(P=Math.max(P,v),T=Math.min(T,v)),A&&(S=Math.max(S,C),M=Math.min(M,C))):y=!0;return x&&(i.dataMax=Math.max(P,i.dataMax||0),i.dataMin=Math.min(T,i.dataMin||0)),A&&(s.dataMax=Math.max(S,s.dataMax||0),s.dataMin=Math.min(M,s.dataMin||0)),this.cropped=y,this.cropStart=0,y&&this.dataTable.modified===this.dataTable&&(this.dataTable.modified=new W),this.dataTable.modified.setColumns({x:f,y:b}),tb(this,f)||(this.processedData=p),!0}function tT(){let t=this.options||{},e=this.chart,s=e.boost,o=this.boost,r=this.xAxis,n=this.yAxis,a=t.xData||this.getColumn("x",!0),l=t.yData||this.getColumn("y",!0),h=this.getColumn("low",!0),d=this.getColumn("high",!0),u=this.processedData||t.data,c=r.getExtremes(),g=c.min-(r.minPointOffset||0),m=c.max+(r.minPointOffset||0),p=n.getExtremes(),f=p.min-(n.minPointOffset||0),b=p.max+(n.minPointOffset||0),x={},A=!!this.sampling,y=t.enableMouseTracking,v=t.threshold,P=this.pointArrayMap&&"low,high"===this.pointArrayMap.join(","),T=!!t.stacking,C=this.cropStart||0,S=this.requireSorting,M=!a,E="x"===t.findNearestPointBy,k=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||this.getColumn("x",!0),w=ta(t.lineWidth,1),R=t.nullInteraction&&f,U=e.tooltip,L=!1,N,_=n.getThreshold(v),D,z,G,I;if(!this.boosted||(this.points?.forEach(t=>{t?.destroyElements?.()}),this.points=[],U&&!U.isHidden?(e.hoverPoint?.series===this||e.hoverPoints?.some(t=>t.series===this))&&(e.hoverPoint=e.hoverPoints=void 0,U.hide(0)):e.hoverPoints&&(e.hoverPoints=e.hoverPoints.filter(t=>t.series!==this)),r.isPanning||n.isPanning)||(L=tg(e,this),e.boosted=!0,!this.visible))return;(this.points||this.graph)&&tm(this),K(e)?(this.markerGroup&&this.markerGroup!==s?.markerGroup&&this.markerGroup.destroy(),this.markerGroup=s?.markerGroup,o&&o.target&&(this.renderTarget=o.target=o.target.destroy())):(this.markerGroup===s?.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers","visible",1,e.seriesGroup).addClass("highcharts-tracker"));let B=this.points=[],O=(t,s,o,a)=>{let l=!!k&&k[C+o],h=t=>{e.inverted&&(t=r.len-t,s=n.len-s),B.push({destroy:J,x:l,clientX:t,plotX:t,plotY:s,i:C+o,percentage:a})};t=Math.ceil(t),i=E?t:t+","+s,y&&(x[i]?l===k[k.length-1]&&(B.length--,h(t)):(x[i]=!0,h(t)))};this.buildKDTree=J,to(this,"renderCanvas"),this.is("line")&&w>1&&o?.target&&s&&!s.lineWidthFilter&&(s.lineWidthFilter=e.renderer.definition({tagName:"filter",children:[{tagName:"feMorphology",attributes:{operator:"dilate",radius:.25*w}}],attributes:{id:"linewidth"}}),o.target.attr({filter:"url(#linewidth)"})),L&&(tu(L,this),L.pushSeries(this),ty(this));let V=L.settings;e.renderer.forExport||(V.debug.timeKDTree&&console.time("kd tree building"),tp(T?this.data.slice(C):a||u,function(t,i){let s=void 0===e.index,o,a,u,c,p,x=!1,y=!0;return!td(t)||(!s&&(M?(o=t[0],a=t[1]):(o=t,a=l[i]??R??null),P?(M&&(a=t.slice(1,3)),x=h[i],a=d[i]):T&&(o=t.x,x=(a=t.stackY)-t.y,p=t.percentage),S||(y=(a||0)>=f&&a<=b),null!==a&&o>=g&&o<=m&&y&&(u=r.toPixels(o,!0),A?((void 0===G||u===N)&&(P||(x=a),(void 0===I||a>z)&&(z=a,I=i),(void 0===G||x<D)&&(D=x,G=i)),E&&u===N||(void 0!==G&&(c=n.toPixels(z,!0),_=n.toPixels(D,!0),O(u,c,I,p),_!==c&&O(u,_,G,p)),G=I=void 0,N=u)):O(u,c=Math.ceil(n.toPixels(a,!0)),i,p))),!s)},()=>{to(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),V.debug.timeKDTree&&console.timeEnd("kd tree building")}))}function tC(t){let e=!0;if(this.chart.options&&this.chart.options.boost&&(e=void 0===this.chart.options.boost.enabled||this.chart.options.boost.enabled),!e||!this.boosted)return t.call(this);this.chart.boosted=!0;let i=tg(this.chart,this);i&&(tu(i,this),i.pushSeries(this)),ty(this)}function tS(t){if(this.boosted){if(tf(this))return{};if(this.xAxis.isPanning||this.yAxis.isPanning)return this}return t.apply(this,[].slice.call(arguments,1))}function tM(t){let e=this.options.data;if(tc(this.chart)&&g[this.type]){let s=this.is("scatter")&&!this.is("bubble")&&!this.is("treemap")&&!this.is("heatmap");if(!tb(this,e)||s||this.is("treemap")||this.options.stacking||!tf(this,!0)){if(this.boosted&&(this.xAxis?.isPanning||this.yAxis?.isPanning))return;s&&"treegrid"!==this.yAxis.type?tP.call(this,arguments[1]):t.apply(this,[].slice.call(arguments,1)),e=this.getColumn("x",!0)}if(this.boosted=tb(this,e),this.boosted){let t;this.options.data?.length&&(tn(t=this.getFirstValidPoint(this.options.data))||tr(t)||this.is("treemap")||ti(12,!1,this.chart));var i=this;i.boost=i.boost||{getPoint:t=>tv(i,t)};let e=i.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach(t=>{e.push({prop:t,val:i[t],own:Object.hasOwnProperty.call(i,t)})}),i.allowDG=!1,i.directTouch=!1,i.stickyTracking=!0,i.finishedAnimating=!0,i.labelBySeries&&(i.labelBySeries=i.labelBySeries.destroy()),i.is("scatter")&&!i.is("treemap")&&i.data.length){for(let t of i.data)t?.destroy?.();i.data.length=0,i.points.length=0,delete i.processedData}}else!function(t){let e=t.boost,i=t.chart,s=i.boost;if(s?.markerGroup)for(let t of(s.markerGroup.destroy(),s.markerGroup=void 0,i.series))t.markerGroup=void 0,t.markerGroup=t.plotGroup("markerGroup","markers","visible",1,i.seriesGroup).addClass("highcharts-tracker");e&&((e.altered||[]).forEach(e=>{e.own?t[e.prop]=e.val:delete t[e.prop]}),e.clear&&e.clear()),(i.seriesGroup||t.group)?.clip()}(this)}else t.apply(this,[].slice.call(arguments,1))}function tE(t){let e=t.apply(this,[].slice.call(arguments,1));return this.boost&&e?this.boost.getPoint(e):e}let tk={compose:function(t,e,i,s){if(tl(q,"Boost.Series")){let o=Z().plotOptions,r=t.prototype;if(tt(t,"destroy",tx),tt(t,"hide",tA),s&&(r.renderCanvas=tT),th(r,"getExtremes",tS),th(r,"processData",tM),th(r,"searchPoint",tE),["translate","generatePoints","drawTracker","drawPoints","render"].forEach(t=>(function(t,e,i){function s(t){let e=this.options.stacking&&("translate"===i||"generatePoints"===i);this.boosted&&!e&&tc(this.chart)&&"heatmap"!==this.type&&"treemap"!==this.type&&g[this.type]&&0!==this.options.boostThreshold?"render"===i&&this.renderCanvas&&this.renderCanvas():t.call(this)}if(th(t,i,s),"translate"===i)for(let t of["column","arearange","columnrange","heatmap","treemap"])e[t]&&th(e[t].prototype,i,s)})(r,e,t)),th(i.prototype,"firePointEvent",function(t,e,i){if("click"===e&&this.series.boosted){let t=i.point;if((t.dist||t.distX)>=(t.series.options.marker?.radius??10))return}return t.apply(this,[].slice.call(arguments,1))}),c.forEach(t=>{let i=o[t];i&&(i.boostThreshold=5e3,i.boostData=[],e[t].prototype.fillOpacity=!0)}),s){let{area:t,areaspline:i,bubble:s,column:o,heatmap:r,scatter:n,treemap:a}=e;if(t&&ts(t.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),i&&ts(i.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),s){let t=s.prototype;delete t.buildKDTree,th(t,"markerAttribs",function(t){return!this.boosted&&t.apply(this,[].slice.call(arguments,1))})}o&&ts(o.prototype,{fill:!0,sampling:!0}),n&&(n.prototype.fill=!0),[r,a].forEach(t=>{t&&th(t.prototype,"drawPoints",tC)})}}return t},destroyGraphics:tm,eachAsync:tp,getPoint:tv},{getBoostClipRect:tw,isChartSeriesBoosting:tR}=y,{destroyGraphics:tU}=tk,{parse:tL}=P(),{doc:tN,noop:t_}=u(),{addEvent:tD,fireEvent:tz,isNumber:tG,merge:tI,pick:tB,wrap:tO}=u();!function(t){let e,i,s="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";function o(t,e,i,s,o){o&&e!==o.clientX&&(t.moveTo(o.clientX,o.yBottom),t.lineTo(o.clientX,o.plotY),t.lineTo(e,i),t.lineTo(e,s))}function r(t,e,i,s,o){t.moveTo(e,i),t.arc(e,i,this.radii&&this.radii[o],0,2*Math.PI,!1)}function n(t,e,i,s){t.rect(e-1,i,1,s-i)}function a(){this.boost&&this.boost.copy&&this.boost.copy()}function l(){let t=this.boost||{};t.target&&t.target.attr({href:s}),t.canvas&&t.canvas.getContext("2d").clearRect(0,0,t.canvas.width,t.canvas.height)}function h(){tR(this.chart)?this.boost&&this.boost.clear&&this.boost.clear():this.boost&&this.boost.copy?this.boost.copy():this.chart.boost&&this.chart.boost.copy&&this.chart.boost.copy()}function d(t,e,i){t.lineTo(e,i)}function c(){let t,i=this.chart,o=tR(i)?i:this,r=o===i?i.seriesGroup:i.seriesGroup||this.group,n=i.chartWidth,a=i.chartHeight,l=function(t,e,i,s,o,r,n){t.call(this,i,e,s,o,r,n)},h=o.boost=o.boost||{};return t=h.targetCtx,h.canvas?!(o instanceof e):(h.canvas=tN.createElement("canvas"),h.target=i.renderer.image("",0,0,n,a).addClass("highcharts-boost-canvas").add(r),t=h.targetCtx=h.canvas.getContext("2d"),i.inverted&&["moveTo","lineTo","rect","arc"].forEach(e=>{tO(t,e,l)}),h.copy=function(){h.target.attr({href:h.canvas.toDataURL("image/png")})},h.clear=function(){t.clearRect(0,0,h.canvas.width,h.canvas.height),o===h.target&&h.target.attr({href:s})},h.clipRect=i.renderer.clipRect(),h.target.clip(h.clipRect)),h.canvas.width!==n&&(h.canvas.width=n),h.canvas.height!==a&&(h.canvas.height=a),h.target.attr({x:0,y:0,width:n,height:a,style:"pointer-events: none",href:s}),h.clipRect&&h.clipRect.attr(tw(i,o)),t}function g(){let t=this,e=t.options,o=t.chart,r=t.xAxis,n=t.yAxis,a=o.options.boost||{},l={timeRendering:a.timeRendering||!1,timeSeriesProcessing:a.timeSeriesProcessing||!1,timeSetup:a.timeSetup||!1},h=t.getColumn("x",!0),d=t.getColumn("y",!0),c=e.data,g=r.getExtremes(),m=g.min,p=g.max,f=n.getExtremes(),b=f.min,x=f.max,A={},y=!!t.sampling,v=e.marker&&e.marker.radius,T=t.cvsStrokeBatch||1e3,C=e.enableMouseTracking,S=e.threshold,M=tG(S),E=n.getThreshold(S),k=t.fill,w=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),R=!!e.stacking,U=t.cropStart||0,L=o.options.loading,N=t.requireSorting,_=e.connectNulls,D=!h,z=R?t.data:h||c,G=t.fillOpacity?P().parse(t.color).setOpacity(tB(e.fillOpacity,.75)).get():t.color,I="x"===e.findNearestPointBy,B=this.boost||{},O=t.cvsDrawPoint,V=e.lineWidth?t.cvsLineTo:void 0,X=v&&v<=1?t.cvsMarkerSquare:t.cvsMarkerCircle;B.target&&B.target.attr({href:s}),(t.points||t.graph)&&tU(t),t.plotGroup("group","series",t.visible?"visible":"hidden",e.zIndex,o.seriesGroup),t.markerGroup=t.group,tD(t,"destroy",function(){t.markerGroup=null});let F=this.points=[],H=this.getContext();if(t.buildKDTree=t_,B.clear&&B.clear(),!t.visible)return;c.length>99999&&(o.options.loading=tI(L,{labelStyle:{backgroundColor:tL("#ffffff").setOpacity(.75).get(),padding:"1em",borderRadius:"0.5em"},style:{backgroundColor:"none",opacity:1}}),u().clearTimeout(i),o.showLoading("Drawing..."),o.options.loading=L),l.timeRendering&&console.time("canvas rendering");let Y=0,W,j,K=E,Z,q,Q,J,$,tt,te=function(){k?(H.fillStyle=G,H.fill()):(H.strokeStyle=t.color,H.lineWidth=e.lineWidth,H.stroke())},ti=function(e,i,s,r){0===Y&&(H.beginPath(),V&&(H.lineJoin="round")),o.scroller&&"highcharts-navigator-series"===t.options.className?(i+=o.scroller.top,s&&(s+=o.scroller.top)):i+=o.plotTop,e+=o.plotLeft,Z?H.moveTo(e,i):O?O(H,e,i,s,j):V?V(H,e,i):X&&X.call(t,H,e,i,v,r),(Y+=1)===T&&(te(),Y=0),j={clientX:e,plotY:i,yBottom:s}},ts=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||!!this.getColumn("x",!0).length&&this.getColumn("x",!0),to=function(t,e,i){tt=I?t:t+","+e,C&&!A[tt]&&(A[tt]=!0,o.inverted&&(t=r.len-t,e=n.len-e),F.push({x:!!ts&&ts[U+i],clientX:t,plotX:t,plotY:e,i:U+i}))};tk.eachAsync(z,(e,i)=>{let s=void 0===o.index,a,l,h,u,c,g,f=!1,A=!1,v=NaN,P=NaN,T=!0;return!s&&(D?(a=e[0],l=e[1],z[i+1]&&(v=z[i+1][0]),z[i-1]&&(P=z[i-1][0])):(a=e,l=d[i],z[i+1]&&(v=z[i+1]),z[i-1]&&(P=z[i-1])),v&&v>=m&&v<=p&&(f=!0),P&&P>=m&&P<=p&&(A=!0),w?(D&&(l=e.slice(1,3)),g=l[0],l=l[1]):R&&(a=e.x,g=(l=e.stackY)-e.y),c=null===l,N||(T=l>=b&&l<=x),!c&&(a>=m&&a<=p&&T||f||A)&&(h=Math.round(r.toPixels(a,!0)),y?((void 0===J||h===W)&&(w||(g=l),(void 0===$||l>Q)&&(Q=l,$=i),(void 0===J||g<q)&&(q=g,J=i)),h!==W&&(void 0!==J&&(u=n.toPixels(Q,!0),K=n.toPixels(q,!0),ti(h,M?Math.min(u,E):u,M?Math.max(K,E):K,i),to(h,u,$),K!==u&&to(h,K,J)),J=$=void 0,W=h)):(ti(h,u=Math.round(n.toPixels(l,!0)),K,i),to(h,u,i))),Z=c&&!_,i%5e4==0&&(t.boost&&t.boost.copy?t.boost.copy():t.chart.boost&&t.chart.boost.copy&&t.chart.boost.copy())),!s},function(){let e=o.loadingDiv,s=o.loadingShown;te(),t.canvasToSVG(),l.timeRendering&&console.timeEnd("canvas rendering"),tz(t,"renderedCanvas"),s&&(e.style.transition="opacity 250ms",e.opacity=0,o.loadingShown=!1,i=setTimeout(function(){e.parentNode&&e.parentNode.removeChild(e),o.loadingDiv=o.loadingSpan=null},250)),delete t.buildKDTree,t.buildKDTree()},o.renderer.forExport?Number.MAX_VALUE:void 0)}function m(t,e,i,s){t.moveTo(e,i),t.arc(e,i,s,0,2*Math.PI,!1)}function p(t,e,i,s){t.rect(e-s,i-s,2*s,2*s)}function f(){let t=this.chart,e=this.getContext(),i=this.chart.inverted,s=this.xAxis,o=this.yAxis;e?(this.points.forEach(r=>{let n,a=r.plotY;if(void 0!==a&&!isNaN(a)&&null!==r.y&&e){let{x:n=0,y:a=0,width:l=0,height:h=0}=r.shapeArgs||{};e.fillStyle=(t.styledMode?r.series.colorAttribs(r):r.series.pointAttribs(r)).fill,i?e.fillRect(o.len-a+s.left,s.len-n+o.top,-h,-l):e.fillRect(n+s.left,a+o.top,l,h)}}),this.canvasToSVG()):this.chart.showLoading("Your browser doesn't support HTML5 canvas, <br>please use a modern browser")}t.compose=function(t,i,s){let u=i.prototype;if(!u.renderCanvas){let{area:i,bubble:b,column:x,heatmap:A,scatter:y}=s;if(e=t,t.prototype.callbacks.push(t=>{tD(t,"predraw",l),tD(t,"render",a)}),u.canvasToSVG=h,u.cvsLineTo=d,u.getContext=c,u.renderCanvas=g,i){let t=i.prototype;t.cvsDrawPoint=o,t.fill=!0,t.fillOpacity=!0,t.sampling=!0}if(b){let t=b.prototype;t.cvsMarkerCircle=r,t.cvsStrokeBatch=1}if(x){let t=x.prototype;t.cvsDrawPoint=n,t.fill=!0,t.sampling=!0}if(A&&tO(A.prototype,"drawPoints",f),y){let t=y.prototype;t.cvsMarkerCircle=m,t.cvsMarkerSquare=p,t.fill=!0}}}}(r||(r={}));let tV=r,tX=u();tX.initCanvasBoost=function(){tV.compose(tX.Chart,tX.Series,tX.seriesTypes)};let tF=u();return h.default})());
|
|
12
|
+
*/function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/boost-canvas",["highcharts/highcharts"],function(t){return e(t,t.Color)}):"object"==typeof exports?exports["highcharts/modules/boost-canvas"]=e(t._Highcharts,t._Highcharts.Color):t.Highcharts=e(t.Highcharts,t.Highcharts.Color)}("undefined"==typeof window?this:window,(t,e)=>(()=>{"use strict";let i,s;var o,r,n={620:t=>{t.exports=e},944:e=>{e.exports=t}},a={};function l(t){var e=a[t];if(void 0!==e)return e.exports;var i=a[t]={exports:{}};return n[t](i,i.exports,l),i.exports}l.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return l.d(e,{a:e}),e},l.d=(t,e)=>{for(var i in e)l.o(e,i)&&!l.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},l.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var h={};l.d(h,{default:()=>tH});var d=l(944),u=l.n(d);let c=["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"],g={};c.forEach(t=>{g[t]=!0});let{composed:m}=u(),{addEvent:f,pick:p,pushUnique:b}=u();function x(t){let e=t.series,i=t.boost=t.boost||{},s=t.options.boost||{},o=p(s.seriesThreshold,50);if(e.length>=o)return!0;if(1===e.length)return!1;let r=s.allowForce;if(void 0===r){for(let e of(r=!0,t.xAxis))if(p(e.min,-1/0)>p(e.dataMin,-1/0)||p(e.max,1/0)<p(e.dataMax,1/0)){r=!1;break}}if(void 0!==i.forceChartBoost){if(r)return i.forceChartBoost;i.forceChartBoost=void 0}let n=0,a=0,l;for(let t of e)0!==(l=t.options).boostThreshold&&!1!==t.visible&&"heatmap"!==t.type&&(g[t.type]&&++n,function(...t){let e=-Number.MAX_VALUE;return t.forEach(t=>{if(null!=t&&void 0!==t.length&&t.length>0)return e=t.length,!0}),e}(t.getColumn("x",!0),l.data,t.points)>=(l.boostThreshold||Number.MAX_VALUE)&&++a);return i.forceChartBoost=r&&(n===e.length&&a===n||a>5),i.forceChartBoost}function A(t){function e(){t.boost&&t.boost.wgl&&x(t)&&t.boost.wgl.render(t)}f(t,"predraw",function(){t.boost=t.boost||{},t.boost.forceChartBoost=void 0,t.boosted=!1,t.axes.some(t=>t.isPanning)||t.boost.clear?.(),t.boost.canvas&&t.boost.wgl&&x(t)&&t.boost.wgl.allocateBuffer(t),t.boost.markerGroup&&t.xAxis&&t.xAxis.length>0&&t.yAxis&&t.yAxis.length>0&&t.boost.markerGroup.translate(t.xAxis[0].pos,t.yAxis[0].pos)}),f(t,"load",e,{order:-1}),f(t,"redraw",e);let i=-1,s=-1;f(t.pointer,"afterGetHoverData",e=>{let o=e.hoverPoint?.series;if(t.boost=t.boost||{},t.boost.markerGroup&&o){let e=t.inverted?o.yAxis:o.xAxis,r=t.inverted?o.xAxis:o.yAxis;(e&&e.pos!==i||r&&r.pos!==s)&&(t.series.forEach(t=>{t.halo?.hide()}),t.boost.markerGroup.translate(e.pos,r.pos),i=e.pos,s=r.pos)}})}let y={compose:function(t,e){return e&&b(m,"Boost.Chart")&&t.prototype.callbacks.push(A),t},getBoostClipRect:function(t,e){let i=t.navigator,s={x:t.plotLeft,y:t.plotTop,width:t.plotWidth,height:t.plotHeight};if(i&&t.inverted?(s.width+=i.top+i.height,i.opposite||(s.x=i.left)):i&&!t.inverted&&(s.height=i.top+i.height-t.plotTop),e.is){let{xAxis:i,yAxis:o}=e;if(s=t.getClipBox(e),t.inverted){let t=s.width;s.width=s.height,s.height=t,s.x=o.pos,s.y=i.pos}else s.x=i.pos,s.y=o.pos}if(e===t){let e=t.inverted?t.xAxis:t.yAxis;e.length<=1&&(s.y=Math.min(e[0].pos,s.y),s.height=e[0].pos-t.plotTop+e[0].len)}return s},isChartSeriesBoosting:x};var v=l(620),P=l.n(v);let T={area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"},{clamp:C,error:M,pick:S}=u(),E=class{constructor(t){if(this.errors=[],this.uLocations={},this.gl=t,t&&!this.createShader())return}bind(){this.gl&&this.shaderProgram&&this.gl.useProgram(this.shaderProgram)}createShader(){let t=this.stringToProgram("#version 100\n#define LN10 2.302585092994046\nprecision highp float;\nattribute vec4 aVertexPosition;\nattribute vec4 aColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform mat4 uPMatrix;\nuniform float pSize;\nuniform float translatedThreshold;\nuniform bool hasThreshold;\nuniform bool skipTranslation;\nuniform float xAxisTrans;\nuniform float xAxisMin;\nuniform float xAxisMax;\nuniform float xAxisMinPad;\nuniform float xAxisPointRange;\nuniform float xAxisLen;\nuniform bool xAxisPostTranslate;\nuniform float xAxisOrdinalSlope;\nuniform float xAxisOrdinalOffset;\nuniform float xAxisPos;\nuniform bool xAxisCVSCoord;\nuniform bool xAxisIsLog;\nuniform bool xAxisReversed;\nuniform float yAxisTrans;\nuniform float yAxisMin;\nuniform float yAxisMax;\nuniform float yAxisMinPad;\nuniform float yAxisPointRange;\nuniform float yAxisLen;\nuniform bool yAxisPostTranslate;\nuniform float yAxisOrdinalSlope;\nuniform float yAxisOrdinalOffset;\nuniform float yAxisPos;\nuniform bool yAxisCVSCoord;\nuniform bool yAxisIsLog;\nuniform bool yAxisReversed;\nuniform bool isCircle;\nuniform bool isBubble;\nuniform bool bubbleSizeByArea;\nuniform float bubbleZMin;\nuniform float bubbleZMax;\nuniform float bubbleZThreshold;\nuniform float bubbleMinSize;\nuniform float bubbleMaxSize;\nuniform bool bubbleSizeAbs;\nuniform bool isInverted;\nfloat bubbleRadius(){\nfloat value = aVertexPosition.w;\nfloat zMax = bubbleZMax;\nfloat zMin = bubbleZMin;\nfloat radius = 0.0;\nfloat pos = 0.0;\nfloat zRange = zMax - zMin;\nif (bubbleSizeAbs){\nvalue = value - bubbleZThreshold;\nzMax = max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);\nzMin = 0.0;\n}\nif (value < zMin){\nradius = bubbleZMin / 2.0 - 1.0;\n} else {\npos = zRange > 0.0 ? (value - zMin) / zRange : 0.5;\nif (bubbleSizeByArea && pos > 0.0){\npos = sqrt(pos);\n}\nradius = ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;\n}\nreturn radius * 2.0;\n}\nfloat translate(float val,\nfloat pointPlacement,\nfloat localA,\nfloat localMin,\nfloat minPixelPadding,\nfloat pointRange,\nfloat len,\nbool cvsCoord,\nbool isLog,\nbool reversed\n){\nfloat sign = 1.0;\nfloat cvsOffset = 0.0;\nif (cvsCoord) {\nsign *= -1.0;\ncvsOffset = len;\n}\nif (isLog) {\nval = log(val) / LN10;\n}\nif (reversed) {\nsign *= -1.0;\ncvsOffset -= sign * len;\n}\nreturn sign * (val - localMin) * localA + cvsOffset + \n(sign * minPixelPadding);\n}\nfloat xToPixels(float value) {\nif (skipTranslation){\nreturn value;// + xAxisPos;\n}\nreturn translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord, xAxisIsLog, xAxisReversed);// + xAxisPos;\n}\nfloat yToPixels(float value, float checkTreshold) {\nfloat v;\nif (skipTranslation){\nv = value;// + yAxisPos;\n} else {\nv = translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord, yAxisIsLog, yAxisReversed);// + yAxisPos;\nif (v > yAxisLen) {\nv = yAxisLen;\n}\n}\nif (checkTreshold > 0.0 && hasThreshold) {\nv = min(v, translatedThreshold);\n}\nreturn v;\n}\nvoid main(void) {\nif (isBubble){\ngl_PointSize = bubbleRadius();\n} else {\ngl_PointSize = pSize;\n}\nvColor = aColor;\nif (!skipTranslation && isCircle && (\naVertexPosition.x < xAxisMin ||\naVertexPosition.x > xAxisMax ||\naVertexPosition.y < yAxisMin ||\naVertexPosition.y > yAxisMax\n)) {\ngl_Position = uPMatrix * vec4(2.0, 2.0, 2.0, 1.0);\n} else if (skipTranslation && isInverted) {\ngl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);\n} else if (isInverted) {\ngl_Position = uPMatrix * vec4(yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, xToPixels(aVertexPosition.x) + xAxisPos, 0.0, 1.0);\n} else {\ngl_Position = uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);\n}\n}","vertex"),e=this.stringToProgram("precision highp float;\nuniform vec4 fillColor;\nvarying highp vec2 position;\nvarying highp vec4 vColor;\nuniform sampler2D uSampler;\nuniform bool isCircle;\nuniform bool hasColor;\nvoid main(void) {\nvec4 col = fillColor;\nvec4 tcol = texture2D(uSampler, gl_PointCoord.st);\nif (hasColor) {\ncol = vColor;\n}\nif (isCircle) {\ncol *= tcol;\nif (tcol.r < 0.0) {\ndiscard;\n} else {\ngl_FragColor = col;\n}\n} else {\ngl_FragColor = col;\n}\n}","fragment"),i=t=>this.gl.getUniformLocation(this.shaderProgram,t);return t&&e?(this.shaderProgram=this.gl.createProgram(),this.gl.attachShader(this.shaderProgram,t),this.gl.attachShader(this.shaderProgram,e),this.gl.linkProgram(this.shaderProgram),this.gl.getProgramParameter(this.shaderProgram,this.gl.LINK_STATUS))?(this.gl.useProgram(this.shaderProgram),this.gl.bindAttribLocation(this.shaderProgram,0,"aVertexPosition"),this.pUniform=i("uPMatrix"),this.psUniform=i("pSize"),this.fcUniform=i("fillColor"),this.isBubbleUniform=i("isBubble"),this.bubbleSizeAbsUniform=i("bubbleSizeAbs"),this.bubbleSizeAreaUniform=i("bubbleSizeByArea"),this.uSamplerUniform=i("uSampler"),this.skipTranslationUniform=i("skipTranslation"),this.isCircleUniform=i("isCircle"),this.isInverted=i("isInverted"),!0):(this.errors.push(this.gl.getProgramInfoLog(this.shaderProgram)),this.handleErrors(),this.shaderProgram=!1,!1):(this.shaderProgram=!1,this.handleErrors(),!1)}handleErrors(){this.errors.length&&M("[highcharts boost] shader error - "+this.errors.join("\n"))}stringToProgram(t,e){let i=this.gl.createShader("vertex"===e?this.gl.VERTEX_SHADER:this.gl.FRAGMENT_SHADER);return(this.gl.shaderSource(i,t),this.gl.compileShader(i),this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS))?i:(this.errors.push("when compiling "+e+" shader:\n"+this.gl.getShaderInfoLog(i)),!1)}destroy(){this.gl&&this.shaderProgram&&(this.gl.deleteProgram(this.shaderProgram),this.shaderProgram=!1)}fillColorUniform(){return this.fcUniform}getProgram(){return this.shaderProgram}pointSizeUniform(){return this.psUniform}perspectiveUniform(){return this.pUniform}reset(){this.gl&&this.shaderProgram&&(this.gl.uniform1i(this.isBubbleUniform,0),this.gl.uniform1i(this.isCircleUniform,0))}setBubbleUniforms(t,e,i,s=1){let o=t.options,r=Number.MAX_VALUE,n=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&t.is("bubble")){let a=t.getPxExtremes();r=S(o.zMin,C(e,!1===o.displayNegative?o.zThreshold:-Number.MAX_VALUE,r)),n=S(o.zMax,Math.max(n,i)),this.gl.uniform1i(this.isBubbleUniform,1),this.gl.uniform1i(this.isCircleUniform,1),this.gl.uniform1i(this.bubbleSizeAreaUniform,"width"!==t.options.sizeBy),this.gl.uniform1i(this.bubbleSizeAbsUniform,t.options.sizeByAbsoluteValue),this.setUniform("bubbleMinSize",a.minPxSize*s),this.setUniform("bubbleMaxSize",a.maxPxSize*s),this.setUniform("bubbleZMin",r),this.setUniform("bubbleZMax",n),this.setUniform("bubbleZThreshold",t.options.zThreshold)}}setColor(t){this.gl&&this.shaderProgram&&this.gl.uniform4f(this.fcUniform,t[0]/255,t[1]/255,t[2]/255,t[3])}setDrawAsCircle(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isCircleUniform,+!!t)}setInverted(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isInverted,t)}setPMatrix(t){this.gl&&this.shaderProgram&&this.gl.uniformMatrix4fv(this.pUniform,!1,t)}setPointSize(t){this.gl&&this.shaderProgram&&this.gl.uniform1f(this.psUniform,t)}setSkipTranslation(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.skipTranslationUniform,+(!0===t))}setTexture(t){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.uSamplerUniform,t)}setUniform(t,e){if(this.gl&&this.shaderProgram){let i=this.uLocations[t]=this.uLocations[t]||this.gl.getUniformLocation(this.shaderProgram,t);this.gl.uniform1f(i,e)}}},k=class{constructor(t,e,i){this.buffer=!1,this.iterator=0,this.preAllocated=!1,this.vertAttribute=!1,this.components=i||2,this.dataComponents=i,this.gl=t,this.shader=e}allocate(t){this.iterator=-1,this.preAllocated=new Float32Array(4*t)}bind(){if(!this.buffer)return!1;this.gl.vertexAttribPointer(this.vertAttribute,this.components,this.gl.FLOAT,!1,0,0)}build(t,e,i){let s;return(this.data=t||[],this.data&&0!==this.data.length||this.preAllocated)?(this.components=i||this.components,this.buffer&&this.gl.deleteBuffer(this.buffer),this.preAllocated||(s=new Float32Array(this.data)),this.buffer=this.gl.createBuffer(),this.gl.bindBuffer(this.gl.ARRAY_BUFFER,this.buffer),this.gl.bufferData(this.gl.ARRAY_BUFFER,this.preAllocated||s,this.gl.STATIC_DRAW),this.vertAttribute=this.gl.getAttribLocation(this.shader.getProgram(),e),this.gl.enableVertexAttribArray(this.vertAttribute),s=!1,!0):(this.destroy(),!1)}destroy(){this.buffer&&(this.gl.deleteBuffer(this.buffer),this.buffer=!1,this.vertAttribute=!1),this.iterator=0,this.components=this.dataComponents||2,this.data=[]}push(t,e,i,s){this.preAllocated&&(this.preAllocated[++this.iterator]=t,this.preAllocated[++this.iterator]=e,this.preAllocated[++this.iterator]=i,this.preAllocated[++this.iterator]=s)}render(t,e,i){let s=this.preAllocated?this.preAllocated.length:this.data.length;return!!this.buffer&&!!s&&((!t||t>s||t<0)&&(t=0),(!e||e>s)&&(e=s),!(t>=e)&&(i=i||"POINTS",this.gl.drawArrays(this.gl[i],t/this.components,(e-t)/this.components),!0))}},{getBoostClipRect:w}=y,{parse:R}=P(),{doc:U,win:L}=u(),{isNumber:_,isObject:N,merge:D,objectEach:z,pick:I}=u(),G={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},B={scatter:!0,bubble:!0},O=["webgl","experimental-webgl","moz-webgl","webkit-3d"];class V{static orthoMatrix(t,e){return[2/t,0,0,0,0,-(2/e),0,0,0,0,-2,0,-1,1,-1,1]}static seriesPointCount(t){let e,i,s;return t.boosted?(e=!!t.options.stacking,i=(t.getColumn("x").length?t.getColumn("x"):void 0)||t.options.xData||t.getColumn("x",!0),s=(e?t.data:i||t.options.data).length,"treemap"===t.type?s*=12:"heatmap"===t.type?s*=6:G[t.type]&&(s*=2),s):0}constructor(t){this.data=[],this.height=0,this.isInited=!1,this.markerData=[],this.series=[],this.textureHandles={},this.width=0,this.postRenderCallback=t,this.settings={pointSize:1,lineWidth:1,fillColor:"#AA00AA",useAlpha:!0,usePreallocated:!1,useGPUTranslations:!1,debug:{timeRendering:!1,timeSeriesProcessing:!1,timeSetup:!1,timeBufferCopy:!1,timeKDTree:!1,showSkipSummary:!1}}}getPixelRatio(){return this.settings.pixelRatio||L.devicePixelRatio||1}setOptions(t){"pixelRatio"in t||(t.pixelRatio=1),D(!0,this.settings,t)}allocateBuffer(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.series.forEach(t=>{t.boosted&&(i+=V.seriesPointCount(t))}),e&&e.allocate(i))}allocateBufferForSingleSeries(t){let e=this.vbuffer,i=0;this.settings.usePreallocated&&(t.boosted&&(i=V.seriesPointCount(t)),e&&e.allocate(i))}clear(){let t=this.gl;t&&t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}pushSeriesData(t,e){let i=this.data,s=this.settings,o=this.vbuffer,r=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),{chart:n,options:a,sorted:l,xAxis:h,yAxis:d}=t,u=!!a.stacking,c=a.data,g=t.xAxis.getExtremes(),m=g.min-(t.xAxis.minPointOffset||0),f=g.max+(t.xAxis.minPointOffset||0),p=t.yAxis.getExtremes(),b=p.min-(t.yAxis.minPointOffset||0),x=p.max+(t.yAxis.minPointOffset||0),A=(t.getColumn("x").length?t.getColumn("x"):void 0)||a.xData||t.getColumn("x",!0),y=(t.getColumn("y").length?t.getColumn("y"):void 0)||a.yData||t.getColumn("y",!0),v=(t.getColumn("z").length?t.getColumn("z"):void 0)||a.zData||t.getColumn("z",!0),P=!A||0===A.length,T=t.options.colorByPoint,C=a.connectNulls,M=t.points||!1,S=u?t.data:A||c,E={x:Number.MAX_VALUE,y:0},k={x:-Number.MAX_VALUE,y:0},w=void 0===n.index,U=G[t.type],L=a.zoneAxis||"y",_=a.zones||!1,D=a.threshold,z=this.getPixelRatio(),I=t.chart.plotWidth,B=!1,O=!1,V,X,F=0,H=!1,Y,W,j,K,Z=-1,q=!1,Q=!1,J,$=!1,tt=!1,te,ti=!1,ts=!0,to=!0,tr,tn=!1,ta=!1,tl=0,th=0;if(a.boostData&&a.boostData.length>0)return;a.gapSize&&(ta="value"!==a.gapUnit?a.gapSize*t.closestPointRange:a.gapSize),_&&(tr=[],_.forEach((t,e)=>{if(t.color){let i=R(t.color).rgba;i[0]/=255,i[1]/=255,i[2]/=255,tr[e]=i,tn||void 0!==t.value||(tn=i)}}),tn||(tn=R(t.pointAttribs&&t.pointAttribs().fill||t.color).rgba,tn[0]/=255,tn[1]/=255,tn[2]/=255)),n.inverted&&(I=t.chart.plotHeight),t.closestPointRangePx=Number.MAX_VALUE;let td=t=>{t&&(e.colorData.push(t[0]),e.colorData.push(t[1]),e.colorData.push(t[2]),e.colorData.push(t[3]))},tu=(t,r,n,a=1,l)=>{td(l),1!==z&&(!s.useGPUTranslations||e.skipTranslation)&&(t*=z,r*=z,a*=z),s.usePreallocated&&o?(o.push(t,r,+!!n,a),tl+=4):(i.push(t),i.push(r),i.push(n?z:0),i.push(a))},tc=()=>{e.segments.length&&(e.segments[e.segments.length-1].to=i.length||tl)},tg=()=>{e.segments.length&&e.segments[e.segments.length-1].from===(i.length||tl)||(tc(),e.segments.push({from:i.length||tl}))},tm=(t,e,i,s,o)=>{td(o),tu(t+i,e),td(o),tu(t,e),td(o),tu(t,e+s),td(o),tu(t,e+s),td(o),tu(t+i,e+s),td(o),tu(t+i,e)};if(tg(),M&&M.length>0){e.skipTranslation=!0,e.drawMode="TRIANGLES",M[0].node&&M[0].node.levelDynamic&&M.sort((t,e)=>{if(t.node){if(t.node.levelDynamic>e.node.levelDynamic)return 1;if(t.node.levelDynamic<e.node.levelDynamic)return -1}return 0}),M.forEach(e=>{let i,s,o=e.plotY;if(void 0!==o&&!isNaN(o)&&null!==e.y&&e.shapeArgs){let{x:o=0,y:r=0,width:a=0,height:l=0}=e.shapeArgs;i=(s=n.styledMode?e.series.colorAttribs(e):s=e.series.pointAttribs(e))["stroke-width"]||0,te=R(s.fill).rgba,te[0]/=255,te[1]/=255,te[2]/=255,t.is("treemap")&&(i=i||1,X=R(s.stroke).rgba,X[0]/=255,X[1]/=255,X[2]/=255,tm(o,r,a,l,X),i/=2),t.is("heatmap")&&n.inverted&&(o=h.len-o,r=d.len-r,a=-a,l=-l),tm(o+i,r+i,a-2*i,l-2*i,te)}}),tc();return}for(;Z<S.length-1;){if(void 0===(j=S[++Z]))continue;if(w)break;let i=c&&c[Z];if(!P){N(i,!0)&&i.color&&(te=R(i.color).rgba);let e=t.options.keys?.indexOf("color");Array.isArray(i)&&e&&"string"==typeof i[e]?te=R(i[e]).rgba:T&&n.options.colors&&(th%=n.options.colors.length,te=R(n.options.colors[th]).rgba),te&&(te[0]/=255,te[1]/=255,te[2]/=255),th++}if(P?(Y=j[0],W=j[1],S[Z+1]&&(Q=S[Z+1][0]),S[Z-1]&&(q=S[Z-1][0]),j.length>=3&&(K=j[2],j[2]>e.zMax&&(e.zMax=j[2]),j[2]<e.zMin&&(e.zMin=j[2]))):(Y=j,W=y?.[Z],S[Z+1]&&(Q=S[Z+1]),S[Z-1]&&(q=S[Z-1]),v&&v.length&&(K=v[Z],v[Z]>e.zMax&&(e.zMax=v[Z]),v[Z]<e.zMin&&(e.zMin=v[Z]))),!C&&(null===Y||null===W)){tg();continue}if(Q&&Q>=m&&Q<=f&&($=!0),q&&q>=m&&q<=f&&(tt=!0),r?(P&&(W=j.slice(1,3)),J=t.getColumn("low",!0)?.[Z],W=t.getColumn("high",!0)?.[Z]||0):u&&(Y=j.x,J=(W=j.stackY)-j.y),null!=b&&null!=x&&(ts=W>=b&&W<=x),!l&&!ts||(Y>f&&k.x<f&&(k.x=Y,k.y=W),Y<m&&E.x>m&&(E.x=Y,E.y=W),null===W&&C))continue;if(null===W||!ts&&S.length>1&&!$&&!tt){tg();continue}if((l&&(Q>=m||Y>=m)&&(q<=f||Y<=f)||!l&&Y>=m&&Y<=f)&&(ti=!0),ti||$||tt){if(ta&&Y-q>ta&&tg(),_){let t;_.some((e,i)=>{let s=_[i-1];return"x"===L?void 0!==e.value&&Y<=e.value&&(tr[i]&&(!s||Y>=s.value)&&(t=tr[i]),!0):void 0!==e.value&&W<=e.value&&(tr[i]&&(!s||W>=s.value)&&(t=tr[i]),!0)}),te=t||tn||te}if(s.useGPUTranslations||(e.skipTranslation=!0,Y=h.toPixels(Y,!0),W=d.toPixels(W,!0),!(Y>I)||"POINTS"!==e.drawMode)){if(e.hasMarkers&&ti&&!1!==B&&(t.closestPointRangePx=Math.min(t.closestPointRangePx,Math.abs(Y-B))),!s.useGPUTranslations&&!s.usePreallocated&&B&&1>Math.abs(Y-B)&&O&&1>Math.abs(W-O)){s.debug.showSkipSummary&&++F;continue}U&&(V=J||0,(!1===J||void 0===J)&&(V=W<0?W:0),(r||u)&&!d.logarithmic||(V=Math.max(null===D?b:D,b)),s.useGPUTranslations||(V=d.toPixels(V,!0)),tu(Y,V,!1,0,te)),a.step&&!to&&tu(Y,O,!1,2,te),tu(Y,W,!1,"bubble"===t.type?K||1:2,te),B=Y,O=W,H=!0,to=!1}}}s.debug.showSkipSummary&&console.log("skipped points:",F);let tf=(t,i)=>{if(s.useGPUTranslations||(e.skipTranslation=!0,t.x=h.toPixels(t.x,!0),t.y=d.toPixels(t.y,!0)),i){this.data=[t.x,t.y,0,2].concat(this.data);return}tu(t.x,t.y,0,2)};!H&&!1!==C&&"line_strip"===t.drawMode&&(E.x<Number.MAX_VALUE&&tf(E,!0),k.x>-Number.MAX_VALUE&&tf(k)),tc()}pushSeries(t){let e=this.markerData,i=this.series,s=this.settings;i.length>0&&i[i.length-1].hasMarkers&&(i[i.length-1].markerTo=e.length),s.debug.timeSeriesProcessing&&console.time("building "+t.type+" series");let o={segments:[],markerFrom:e.length,colorData:[],series:t,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:!!t.options.marker&&!1!==t.options.marker.enabled,showMarkers:!0,drawMode:T[t.type]||"LINE_STRIP"};t.index>=i.length?i.push(o):i[t.index]=o,this.pushSeriesData(t,o),s.debug.timeSeriesProcessing&&console.timeEnd("building "+t.type+" series")}flush(){let t=this.vbuffer;this.data=[],this.markerData=[],this.series=[],t&&t.destroy()}setXAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("xAxisTrans",t.transA*i),e.setUniform("xAxisMin",t.min),e.setUniform("xAxisMax",t.max),e.setUniform("xAxisMinPad",t.minPixelPadding*i),e.setUniform("xAxisPointRange",t.pointRange),e.setUniform("xAxisLen",t.len*i),e.setUniform("xAxisPos",t.pos*i),e.setUniform("xAxisCVSCoord",!t.horiz),e.setUniform("xAxisIsLog",!!t.logarithmic),e.setUniform("xAxisReversed",!!t.reversed)}setYAxis(t){let e=this.shader;if(!e)return;let i=this.getPixelRatio();e.setUniform("yAxisTrans",t.transA*i),e.setUniform("yAxisMin",t.min),e.setUniform("yAxisMax",t.max),e.setUniform("yAxisMinPad",t.minPixelPadding*i),e.setUniform("yAxisPointRange",t.pointRange),e.setUniform("yAxisLen",t.len*i),e.setUniform("yAxisPos",t.pos*i),e.setUniform("yAxisCVSCoord",!t.horiz),e.setUniform("yAxisIsLog",!!t.logarithmic),e.setUniform("yAxisReversed",!!t.reversed)}setThreshold(t,e){let i=this.shader;i&&(i.setUniform("hasThreshold",t),i.setUniform("translatedThreshold",e))}renderChart(t){let e=this.gl,i=this.settings,s=this.shader,o=this.vbuffer,r=this.getPixelRatio();if(!t)return!1;this.width=t.chartWidth*r,this.height=t.chartHeight*r;let n=this.height,a=this.width;if(!e||!s||!a||!n)return!1;i.debug.timeRendering&&console.time("gl rendering"),e.canvas.width=a,e.canvas.height=n,s.bind(),e.viewport(0,0,a,n),s.setPMatrix(V.orthoMatrix(a,n)),i.lineWidth>1&&!u().isMS&&e.lineWidth(i.lineWidth),o&&(o.build(this.data,"aVertexPosition",4),o.bind()),s.setInverted(t.inverted),this.series.forEach((a,l)=>{let h=a.series.options,d=h.marker,u=void 0!==h.lineWidth?h.lineWidth:1,c=h.threshold,g=_(c),m=a.series.yAxis.getThreshold(c),f=I(h.marker?h.marker.enabled:null,!!a.series.xAxis.isRadial||null,a.series.closestPointRangePx>2*((h.marker?h.marker.radius:10)||10)),p=this.textureHandles[d&&d.symbol||a.series.symbol]||this.textureHandles.circle,b,x,A,y=[];if(0!==a.segments.length&&a.segments[0].from!==a.segments[0].to&&(p.isReady&&(e.bindTexture(e.TEXTURE_2D,p.handle),s.setTexture(p.handle)),t.styledMode?a.series.markerGroup===a.series.chart.boost?.markerGroup?(delete a.series.markerGroup,a.series.markerGroup=a.series.plotGroup("markerGroup","markers","visible",1,t.seriesGroup).addClass("highcharts-tracker"),A=a.series.markerGroup.getStyle("fill"),a.series.markerGroup.destroy(),a.series.markerGroup=a.series.chart.boost?.markerGroup):A=a.series.markerGroup?.getStyle("fill"):(A="POINTS"===a.drawMode&&a.series.pointAttribs&&a.series.pointAttribs().fill||a.series.color,h.colorByPoint&&(A=a.series.chart.options.colors[l])),a.series.fillOpacity&&h.fillOpacity&&(A=new(P())(A).setOpacity(I(h.fillOpacity,1)).get()),y=R(A).rgba,i.useAlpha||(y[3]=1),"add"===h.boostBlending?(e.blendFunc(e.SRC_ALPHA,e.ONE),e.blendEquation(e.FUNC_ADD)):"mult"===h.boostBlending||"multiply"===h.boostBlending?e.blendFunc(e.DST_COLOR,e.ZERO):"darken"===h.boostBlending?(e.blendFunc(e.ONE,e.ONE),e.blendEquation(e.FUNC_MIN)):e.blendFuncSeparate(e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA),s.reset(),a.colorData.length>0?(s.setUniform("hasColor",1),(x=new k(e,s)).build(Array(a.segments[0].from).concat(a.colorData),"aColor",4),x.bind()):(s.setUniform("hasColor",0),e.disableVertexAttribArray(e.getAttribLocation(s.getProgram(),"aColor"))),s.setColor(y),this.setXAxis(a.series.xAxis),this.setYAxis(a.series.yAxis),this.setThreshold(g,m),"POINTS"===a.drawMode&&s.setPointSize(2*I(h.marker&&h.marker.radius,.5)*r),s.setSkipTranslation(a.skipTranslation),"bubble"===a.series.type&&s.setBubbleUniforms(a.series,a.zMin,a.zMax,r),s.setDrawAsCircle(B[a.series.type]||!1),o)){if(u>0||"LINE_STRIP"!==a.drawMode){let{x:i,y:s,width:r,height:l}=w(t,a.series);for(e.enable(e.SCISSOR_TEST),e.scissor(i,n-s-l,r,l),b=0;b<a.segments.length;b++)o.render(a.segments[b].from,a.segments[b].to,a.drawMode);e.disable(e.SCISSOR_TEST)}if(a.hasMarkers&&f)for(s.setPointSize(2*I(h.marker&&h.marker.radius,5)*r),s.setDrawAsCircle(!0),b=0;b<a.segments.length;b++)o.render(a.segments[b].from,a.segments[b].to,"POINTS")}}),i.debug.timeRendering&&console.timeEnd("gl rendering"),this.postRenderCallback&&this.postRenderCallback(this),this.flush()}render(t){if(this.clear(),t.renderer.forExport)return this.renderChart(t);this.isInited?this.renderChart(t):setTimeout(()=>{this.render(t)},1)}setSize(t,e){let i=this.shader;i&&(this.width!==t||this.height!==e)&&(this.width=t,this.height=e,i.bind(),i.setPMatrix(V.orthoMatrix(t,e)))}init(t,e){let i=this.settings;if(this.isInited=!1,!t)return!1;i.debug.timeSetup&&console.time("gl setup");for(let e=0;e<O.length&&(this.gl=t.getContext(O[e],{}),!this.gl);++e);let s=this.gl;if(!s)return!1;e||this.flush(),s.enable(s.BLEND),s.blendFunc(s.SRC_ALPHA,s.ONE_MINUS_SRC_ALPHA),s.disable(s.DEPTH_TEST),s.depthFunc(s.LESS);let o=this.shader=new E(s);if(!o)return!1;this.vbuffer=new k(s,o);let r=(t,e)=>{let i={isReady:!1,texture:U.createElement("canvas"),handle:s.createTexture()},o=i.texture.getContext("2d");this.textureHandles[t]=i,i.texture.width=512,i.texture.height=512,o.mozImageSmoothingEnabled=!1,o.webkitImageSmoothingEnabled=!1,o.msImageSmoothingEnabled=!1,o.imageSmoothingEnabled=!1,o.strokeStyle="rgba(255, 255, 255, 0)",o.fillStyle="#FFF",e(o);try{s.activeTexture(s.TEXTURE0),s.bindTexture(s.TEXTURE_2D,i.handle),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,s.RGBA,s.UNSIGNED_BYTE,i.texture),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_S,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_WRAP_T,s.CLAMP_TO_EDGE),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MAG_FILTER,s.LINEAR),s.texParameteri(s.TEXTURE_2D,s.TEXTURE_MIN_FILTER,s.LINEAR),s.bindTexture(s.TEXTURE_2D,null),i.isReady=!0}catch{}};return r("circle",t=>{t.beginPath(),t.arc(256,256,256,0,2*Math.PI),t.stroke(),t.fill()}),r("square",t=>{t.fillRect(0,0,512,512)}),r("diamond",t=>{t.beginPath(),t.moveTo(256,0),t.lineTo(512,256),t.lineTo(256,512),t.lineTo(0,256),t.lineTo(256,0),t.fill()}),r("triangle",t=>{t.beginPath(),t.moveTo(0,512),t.lineTo(256,0),t.lineTo(512,512),t.lineTo(0,512),t.fill()}),r("triangle-down",t=>{t.beginPath(),t.moveTo(0,0),t.lineTo(256,512),t.lineTo(512,0),t.lineTo(0,0),t.fill()}),this.isInited=!0,i.debug.timeSetup&&console.timeEnd("gl setup"),!0}destroy(){let t=this.gl,e=this.shader,i=this.vbuffer;this.flush(),i&&i.destroy(),e&&e.destroy(),t&&(z(this.textureHandles,e=>{e.handle&&t.deleteTexture(e.handle)}),t.canvas.width=1,t.canvas.height=1)}}!function(t){t.setLength=function(t,e,i){return Array.isArray(t)?(t.length=e,t):t[i?"subarray":"slice"](0,e)},t.splice=function(t,e,i,s,o=[]){if(Array.isArray(t))return Array.isArray(o)||(o=Array.from(o)),{removed:t.splice(e,i,...o),array:t};let r=Object.getPrototypeOf(t).constructor,n=t[s?"subarray":"slice"](e,e+i),a=new r(t.length-i+o.length);return a.set(t.subarray(0,e),0),a.set(o,e),a.set(t.subarray(e+i),e+o.length),{removed:n,array:a}}}(o||(o={}));let{setLength:X,splice:F}=o,{fireEvent:H,objectEach:Y,uniqueKey:W}=u(),j=class{constructor(t={}){this.autoId=!t.id,this.columns={},this.id=t.id||W(),this.modified=this,this.rowCount=0,this.versionTag=W();let e=0;Y(t.columns||{},(t,i)=>{this.columns[i]=t.slice(),e=Math.max(e,t.length)}),this.applyRowCount(e)}applyRowCount(t){this.rowCount=t,Y(this.columns,(e,i)=>{e.length!==t&&(this.columns[i]=X(e,t))})}deleteRows(t,e=1){if(e>0&&t<this.rowCount){let i=0;Y(this.columns,(s,o)=>{this.columns[o]=F(s,t,e).array,i=s.length}),this.rowCount=i}H(this,"afterDeleteRows",{rowIndex:t,rowCount:e}),this.versionTag=W()}getColumn(t,e){return this.columns[t]}getColumns(t,e){return(t||Object.keys(this.columns)).reduce((t,e)=>(t[e]=this.columns[e],t),{})}getRow(t,e){return(e||Object.keys(this.columns)).map(e=>this.columns[e]?.[t])}setColumn(t,e=[],i=0,s){this.setColumns({[t]:e},i,s)}setColumns(t,e,i){let s=this.rowCount;Y(t,(t,e)=>{this.columns[e]=t.slice(),s=t.length}),this.applyRowCount(s),i?.silent||(H(this,"afterSetColumns"),this.versionTag=W())}setRow(t,e=this.rowCount,i,s){let{columns:o}=this,r=i?this.rowCount+1:e+1;Y(t,(t,n)=>{let a=o[n]||s?.addColumns!==!1&&Array(r);a&&(i?a=F(a,e,0,!0,[t]).array:a[e]=t,o[n]=a)}),r>this.rowCount&&this.applyRowCount(r),s?.silent||(H(this,"afterSetRows"),this.versionTag=W())}},{getBoostClipRect:K,isChartSeriesBoosting:Z}=y,{getOptions:q}=u(),{composed:Q,doc:J,noop:$,win:tt}=u(),{addEvent:te,destroyObjectProperties:ti,error:ts,extend:to,fireEvent:tr,isArray:tn,isNumber:ta,pick:tl,pushUnique:th,wrap:td,defined:tu}=u();function tc(t,e){let i=e.boost;t&&i&&i.target&&i.canvas&&!Z(e.chart)&&t.allocateBufferForSingleSeries(e)}function tg(t){return tl(t&&t.options&&t.options.boost&&t.options.boost.enabled,!0)}function tm(t,e){let i=t.constructor,o=t.seriesGroup||e.group,r=t.chartWidth,n=t.chartHeight,a=t,l="undefined"!=typeof SVGForeignObjectElement,h=!1;Z(t)?a=t:(a=e,h=!!(e.options.events?.click||e.options.point?.events?.click));let d=a.boost=a.boost||{};if(l=!1,s||(s=J.createElement("canvas")),!d.target&&(d.canvas=s,t.renderer.forExport||!l?(a.renderTarget=d.target=t.renderer.image("",0,0,r,n).addClass("highcharts-boost-canvas").add(o),d.clear=function(){d.target.attr({href:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="})},d.copy=function(){d.resize(),d.target.attr({href:d.canvas.toDataURL("image/png")})}):(d.targetFo=t.renderer.createElement("foreignObject").add(o),a.renderTarget=d.target=J.createElement("canvas"),d.targetCtx=d.target.getContext("2d"),d.targetFo.element.appendChild(d.target),d.clear=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height},d.copy=function(){d.target.width=d.canvas.width,d.target.height=d.canvas.height,d.targetCtx.drawImage(d.canvas,0,0)}),d.resize=function(){r=t.chartWidth,n=t.chartHeight,(d.targetFo||d.target).attr({x:0,y:0,width:r,height:n}).css({pointerEvents:h?void 0:"none",mixedBlendMode:"normal",opacity:1}).addClass(h?"highcharts-tracker":""),a instanceof i&&a.boost?.markerGroup?.translate(t.plotLeft,t.plotTop)},d.clipRect=t.renderer.clipRect(),(d.targetFo||d.target).attr({zIndex:e.options.zIndex}),a instanceof i&&(a.boost.markerGroup=a.renderer.g().add(o).translate(e.xAxis.pos,e.yAxis.pos))),d.canvas.width=r,d.canvas.height=n,d.clipRect){let e=K(t,a);d.clipRect.attr(e),e.width===t.clipBox.width&&e.height===t.clipBox.height?o?.clip(t.renderer.clipRect(e.x-4,e.y,e.width+4,e.height+4)):(d.targetFo||d.target).clip(d.clipRect)}return d.resize(),d.clear(),!d.wgl&&(d.wgl=new V(t=>{t.settings.debug.timeBufferCopy&&console.time("buffer copy"),d.copy(),t.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),d.wgl.init(d.canvas)||ts("[highcharts boost] - unable to init WebGL renderer"),d.wgl.setOptions(t.options.boost||{}),a instanceof i&&d.wgl.allocateBuffer(t)),d.wgl.setSize(r,n),d.wgl}function tf(t){let e=t.points;if(e){let t,i;for(i=0;i<e.length;i+=1)(t=e[i])&&t.destroyElements&&t.destroyElements()}for(let e of(["graph","area","tracker"].forEach(e=>{let i=t[e];i&&(t[e]=i.destroy())}),t.zones))ti(e,void 0,!0)}function tp(t,e,i,s,o,r){let n=(o=o||0)+(s=s||3e3),a=!0;for(;a&&o<n&&o<t.length;)a=e(t[o],o),++o;a&&(o<t.length?r?tp(t,e,i,s,o,r):tt.requestAnimationFrame?tt.requestAnimationFrame(function(){tp(t,e,i,s,o)}):setTimeout(tp,0,t,e,i,s,o):i&&i())}function tb(t,e){let i=t.options,s=t.dataTable.modified.rowCount,o=t.xAxis&&t.xAxis.options,r=t.yAxis&&t.yAxis.options,n=t.colorAxis&&t.colorAxis.options;return s>tl(i.boostThreshold,Number.MAX_VALUE)&&ta(r.min)&&ta(r.max)&&(!e||ta(o.min)&&ta(o.max))&&(!n||ta(n.min)&&ta(n.max))}let tx=(t,e)=>!t.forceCrop&&(Z(t.chart)||(e?e.length:0)>=tl(t.options.boostThreshold,Number.MAX_VALUE));function tA(){let t=this,e=t.chart;e.boost&&e.boost.markerGroup===t.markerGroup&&(t.markerGroup=void 0),e.hoverPoints&&(e.hoverPoints=e.hoverPoints.filter(function(e){return e.series===t})),e.hoverPoint&&e.hoverPoint.series===t&&(e.hoverPoint=void 0)}function ty(){let t=this.boost;t&&t.canvas&&t.target&&(t.wgl&&t.wgl.clear(),t.clear&&t.clear())}function tv(t){let e=t.boost;e&&e.canvas&&e.target&&e.wgl&&!Z(t.chart)&&e.wgl.render(t.chart)}function tP(t,e){let i=t.options,s=t.xAxis,o=t.pointClass;if(e instanceof o)return e;let r=i.data,n=t.is("scatter"),a=(n&&t.getColumn("x",!0).length?t.getColumn("x",!0):void 0)||(t.getColumn("x").length?t.getColumn("x"):void 0)||i.xData||t.getColumn("x",!0)||!1,l=t.getColumn("y",!0)||i.yData||!1,h=e.i,d=r?.[h]?.color,u=new o(t,n&&a&&l?[a[h],l[h]]:(tn(r)?r:[])[h],a?a[h]:void 0);if(n&&i?.keys?.length){let t=i.keys;for(let e=t.length-1;e>-1;e--)u[t[e]]=r[h][e]}return u.category=tl(s.categories?s.categories[u.x]:u.x,u.x),u.key=u.name??u.category,u.dist=e.dist,u.distX=e.distX,u.plotX=e.plotX,u.plotY=e.plotY,u.index=h,u.percentage=e.percentage,u.isInside=t.isPointInside(u),d&&(u.color=d),u}function tT(t){let{options:e,xAxis:i,yAxis:s}=this;if(!this.isDirty&&!i.isDirty&&!s.isDirty&&!t)return!1;this.yAxis.setTickInterval();let o=e.boostThreshold||0,r=e.cropThreshold,n=this.getColumn("x"),a=i.getExtremes(),l=a.max??Number.MAX_VALUE,h=a.min??-Number.MAX_VALUE,d=this.getColumn("y"),u=s.getExtremes(),c=u.max??Number.MAX_VALUE,g=u.min??-Number.MAX_VALUE;if(!this.boosted&&i.old&&s.old&&h>=(i.old.min??-Number.MAX_VALUE)&&l<=(i.old.max??Number.MAX_VALUE)&&g>=(s.old.min??-Number.MAX_VALUE)&&c<=(s.old.max??Number.MAX_VALUE))return this.dataTable.modified.setColumns({x:n,y:d}),!0;let m=this.dataTable.rowCount;if(!o||m<o||r&&!this.forceCrop&&!this.getExtremesFromAll&&!e.getExtremesFromAll&&m<r)return this.dataTable.modified.setColumns({x:n,y:d}),!0;let f=[],p=[],b=[],x=!(ta(a.max)||ta(a.min)),A=!(ta(u.max)||ta(u.min)),y=!1,v,P=n[0],T=n[0],C,M=d?.[0],S=d?.[0];for(let t=0,e=n.length;t<e;++t)v=n[t],C=d?.[t],v>=h&&v<=l&&C>=g&&C<=c?(f.push({x:v,y:C}),p.push(v),b.push(C),x&&(P=Math.max(P,v),T=Math.min(T,v)),A&&(M=Math.max(M,C),S=Math.min(S,C))):y=!0;return x&&(i.dataMax=Math.max(P,i.dataMax||0),i.dataMin=Math.min(T,i.dataMin||0)),A&&(s.dataMax=Math.max(M,s.dataMax||0),s.dataMin=Math.min(S,s.dataMin||0)),this.cropped=y,this.cropStart=0,y&&this.dataTable.modified===this.dataTable&&(this.dataTable.modified=new j),this.dataTable.modified.setColumns({x:p,y:b}),tx(this,p)||(this.processedData=f),!0}function tC(){let t=this.options||{},e=this.chart,s=e.boost,o=this.boost,r=this.xAxis,n=this.yAxis,a=t.xData||this.getColumn("x",!0),l=t.yData||this.getColumn("y",!0),h=this.getColumn("low",!0),d=this.getColumn("high",!0),u=this.processedData||t.data,c=r.getExtremes(),g=c.min-(r.minPointOffset||0),m=c.max+(r.minPointOffset||0),f=n.getExtremes(),p=f.min-(n.minPointOffset||0),b=f.max+(n.minPointOffset||0),x={},A=!!this.sampling,y=t.enableMouseTracking,v=t.threshold,P=this.pointArrayMap&&"low,high"===this.pointArrayMap.join(","),T=!!t.stacking,C=this.cropStart||0,M=this.requireSorting,S=!a,E="x"===t.findNearestPointBy,k=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||this.getColumn("x",!0),w=tl(t.lineWidth,1),R=t.nullInteraction&&p,U=e.tooltip,L=!1,_,N=n.getThreshold(v),D,z,I,G;if(!this.boosted||(this.points?.forEach(t=>{t?.destroyElements?.()}),this.points=[],U&&!U.isHidden?(e.hoverPoint?.series===this||e.hoverPoints?.some(t=>t.series===this))&&(e.hoverPoint=e.hoverPoints=void 0,U.hide(0)):e.hoverPoints&&(e.hoverPoints=e.hoverPoints.filter(t=>t.series!==this)),r.isPanning||n.isPanning)||(L=tm(e,this),e.boosted=!0,!this.visible))return;(this.points||this.graph)&&tf(this),Z(e)?(this.markerGroup&&this.markerGroup!==s?.markerGroup&&this.markerGroup.destroy(),this.markerGroup=s?.markerGroup,o&&o.target&&(this.renderTarget=o.target=o.target.destroy())):(this.markerGroup===s?.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers","visible",1,e.seriesGroup).addClass("highcharts-tracker"));let B=this.points=[],O=(t,s,o,a)=>{let l=!!k&&k[C+o],h=t=>{e.inverted&&(t=r.len-t,s=n.len-s),B.push({destroy:$,x:l,clientX:t,plotX:t,plotY:s,i:C+o,percentage:a})};t=Math.ceil(t),i=E?t:t+","+s,y&&(x[i]?l===k[k.length-1]&&(B.length--,h(t)):(x[i]=!0,h(t)))};this.buildKDTree=$,tr(this,"renderCanvas"),s&&o?.target&&w>1&&this.is("line")&&(s.lineWidthFilter?.remove(),s.lineWidthFilter=e.renderer.definition({tagName:"filter",children:[{tagName:"feMorphology",attributes:{operator:"dilate",radius:.25*w}}],attributes:{id:"linewidth"}}),o.target.attr({filter:"url(#linewidth)"})),L&&(tc(L,this),L.pushSeries(this),tv(this));let V=L.settings;e.renderer.forExport||(V.debug.timeKDTree&&console.time("kd tree building"),tp(T?this.data.slice(C):a||u,function(t,i){let s=void 0===e.index,o,a,u,c,f,x=!1,y=!0;return!tu(t)||(!s&&(S?(o=t[0],a=t[1]):(o=t,a=l[i]??R??null),P?(S&&(a=t.slice(1,3)),x=h[i],a=d[i]):T&&(o=t.x,x=(a=t.stackY)-t.y,f=t.percentage),M||(y=(a||0)>=p&&a<=b),null!==a&&o>=g&&o<=m&&y&&(u=r.toPixels(o,!0),A?((void 0===I||u===_)&&(P||(x=a),(void 0===G||a>z)&&(z=a,G=i),(void 0===I||x<D)&&(D=x,I=i)),E&&u===_||(void 0!==I&&(c=n.toPixels(z,!0),N=n.toPixels(D,!0),O(u,c,G,f),N!==c&&O(u,N,I,f)),I=G=void 0,_=u)):O(u,c=Math.ceil(n.toPixels(a,!0)),i,f))),!s)},()=>{tr(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),V.debug.timeKDTree&&console.timeEnd("kd tree building")}))}function tM(t){let e=!0;if(this.chart.options&&this.chart.options.boost&&(e=void 0===this.chart.options.boost.enabled||this.chart.options.boost.enabled),!e||!this.boosted)return t.call(this);this.chart.boosted=!0;let i=tm(this.chart,this);i&&(tc(i,this),i.pushSeries(this)),tv(this)}function tS(t){if(this.boosted){if(tb(this))return{};if(this.xAxis.isPanning||this.yAxis.isPanning)return this}return t.apply(this,[].slice.call(arguments,1))}function tE(t){let e=this.options.data;if(tg(this.chart)&&g[this.type]){let s=this.is("scatter")&&!this.is("bubble")&&!this.is("treemap")&&!this.is("heatmap");if(!tx(this,e)||s||this.is("treemap")||this.options.stacking||!tb(this,!0)){if(this.boosted&&(this.xAxis?.isPanning||this.yAxis?.isPanning))return;s&&"treegrid"!==this.yAxis.type?tT.call(this,arguments[1]):t.apply(this,[].slice.call(arguments,1)),e=this.getColumn("x",!0)}if(this.boosted=tx(this,e),this.boosted){let t;this.options.data?.length&&(ta(t=this.getFirstValidPoint(this.options.data))||tn(t)||this.is("treemap")||ts(12,!1,this.chart));var i=this;i.boost=i.boost||{getPoint:t=>tP(i,t)};let e=i.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach(t=>{e.push({prop:t,val:i[t],own:Object.hasOwnProperty.call(i,t)})}),i.allowDG=!1,i.directTouch=!1,i.stickyTracking=!0,i.finishedAnimating=!0,i.labelBySeries&&(i.labelBySeries=i.labelBySeries.destroy()),i.is("scatter")&&!i.is("treemap")&&i.data.length){for(let t of i.data)t?.destroy?.();i.data.length=0,i.points.length=0,delete i.processedData}}else!function(t){let e=t.boost,i=t.chart,s=i.boost;if(s?.markerGroup)for(let t of(s.markerGroup.destroy(),s.markerGroup=void 0,i.series))t.markerGroup=void 0,t.markerGroup=t.plotGroup("markerGroup","markers","visible",1,i.seriesGroup).addClass("highcharts-tracker");e&&((e.altered||[]).forEach(e=>{e.own?t[e.prop]=e.val:delete t[e.prop]}),e.clear&&e.clear()),(i.seriesGroup||t.group)?.clip()}(this)}else t.apply(this,[].slice.call(arguments,1))}function tk(t){let e=t.apply(this,[].slice.call(arguments,1));return this.boost&&e?this.boost.getPoint(e):e}let tw={compose:function(t,e,i,s){if(th(Q,"Boost.Series")){let o=q().plotOptions,r=t.prototype;if(te(t,"destroy",tA),te(t,"hide",ty),s&&(r.renderCanvas=tC),td(r,"getExtremes",tS),td(r,"processData",tE),td(r,"searchPoint",tk),["translate","generatePoints","drawTracker","drawPoints","render"].forEach(t=>(function(t,e,i){function s(t){let e=this.options.stacking&&("translate"===i||"generatePoints"===i);this.boosted&&!e&&tg(this.chart)&&"heatmap"!==this.type&&"treemap"!==this.type&&g[this.type]&&0!==this.options.boostThreshold?"render"===i&&this.renderCanvas&&this.renderCanvas():t.call(this)}if(td(t,i,s),"translate"===i)for(let t of["column","arearange","columnrange","heatmap","treemap"])e[t]&&td(e[t].prototype,i,s)})(r,e,t)),td(i.prototype,"firePointEvent",function(t,e,i){if("click"===e&&this.series.boosted){let t=i.point;if((t.dist||t.distX)>=(t.series.options.marker?.radius??10))return}return t.apply(this,[].slice.call(arguments,1))}),c.forEach(t=>{let i=o[t];i&&(i.boostThreshold=5e3,i.boostData=[],e[t].prototype.fillOpacity=!0)}),s){let{area:t,areaspline:i,bubble:s,column:o,heatmap:r,scatter:n,treemap:a}=e;if(t&&to(t.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),i&&to(i.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),s){let t=s.prototype;delete t.buildKDTree,td(t,"markerAttribs",function(t){return!this.boosted&&t.apply(this,[].slice.call(arguments,1))})}o&&to(o.prototype,{fill:!0,sampling:!0}),n&&(n.prototype.fill=!0),[r,a].forEach(t=>{t&&td(t.prototype,"drawPoints",tM)})}}return t},destroyGraphics:tf,eachAsync:tp,getPoint:tP},{getBoostClipRect:tR,isChartSeriesBoosting:tU}=y,{destroyGraphics:tL}=tw,{parse:t_}=P(),{doc:tN,noop:tD}=u(),{addEvent:tz,fireEvent:tI,isNumber:tG,merge:tB,pick:tO,wrap:tV}=u();!function(t){let e,i="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";function s(t,e,i,s,o){o&&e!==o.clientX&&(t.moveTo(o.clientX,o.yBottom),t.lineTo(o.clientX,o.plotY),t.lineTo(e,i),t.lineTo(e,s))}function o(t,e,i,s,o){t.moveTo(e,i),t.arc(e,i,this.radii&&this.radii[o],0,2*Math.PI,!1)}function r(t,e,i,s){t.rect(e-1,i,1,s-i)}function n(){this.boost&&this.boost.copy&&this.boost.copy()}function a(){let t=this.boost||{};t.target&&t.target.attr({href:i}),t.canvas&&t.canvas.getContext("2d").clearRect(0,0,t.canvas.width,t.canvas.height)}function l(){tU(this.chart)?this.boost&&this.boost.clear&&this.boost.clear():this.boost&&this.boost.copy?this.boost.copy():this.chart.boost&&this.chart.boost.copy&&this.chart.boost.copy()}function h(t,e,i){t.lineTo(e,i)}function d(){let t,e=this.chart,s=tU(e)?e:this,o=s===e?e.seriesGroup:e.seriesGroup||this.group,r=e.chartWidth,n=e.chartHeight,a=function(t,e,i,s,o,r,n){t.call(this,i,e,s,o,r,n)},l=s.boost=s.boost||{};return t=l.targetCtx,l.canvas||(l.canvas=tN.createElement("canvas"),l.target=e.renderer.image("",0,0,r,n).addClass("highcharts-boost-canvas").add(o),t=l.targetCtx=l.canvas.getContext("2d"),e.inverted&&["moveTo","lineTo","rect","arc"].forEach(e=>{tV(t,e,a)}),l.copy=function(){l.target.attr({href:l.canvas.toDataURL("image/png")})},l.clear=function(){t.clearRect(0,0,l.canvas.width,l.canvas.height),s===l.target&&l.target.attr({href:i})},l.clipRect=e.renderer.clipRect(),l.target.clip(l.clipRect)),l.canvas.width!==r&&(l.canvas.width=r),l.canvas.height!==n&&(l.canvas.height=n),l.target.attr({x:0,y:0,width:r,height:n,style:"pointer-events: none",href:i}),l.clipRect&&l.clipRect.attr(tR(e,s)),t}function c(){let t=this,s=t.options,o=t.chart,r=t.xAxis,n=t.yAxis,a=o.options.boost||{},l={timeRendering:a.timeRendering||!1,timeSeriesProcessing:a.timeSeriesProcessing||!1,timeSetup:a.timeSetup||!1},h=t.getColumn("x",!0),d=t.getColumn("y",!0),c=s.data,g=r.getExtremes(),m=g.min,f=g.max,p=n.getExtremes(),b=p.min,x=p.max,A={},y=!!t.sampling,v=s.marker&&s.marker.radius,T=t.cvsStrokeBatch||1e3,C=s.enableMouseTracking,M=s.threshold,S=tG(M),E=n.getThreshold(M),k=t.fill,w=t.pointArrayMap&&"low,high"===t.pointArrayMap.join(","),R=!!s.stacking,U=t.cropStart||0,L=o.options.loading,_=t.requireSorting,N=s.connectNulls,D=!h,z=R?t.data:h||c,I=t.fillOpacity?P().parse(t.color).setOpacity(tO(s.fillOpacity,.75)).get():t.color,G="x"===s.findNearestPointBy,B=this.boost||{},O=t.cvsDrawPoint,V=s.lineWidth?t.cvsLineTo:void 0,X=v&&v<=1?t.cvsMarkerSquare:t.cvsMarkerCircle;B.target&&B.target.attr({href:i}),(t.points||t.graph)&&tL(t),t.plotGroup("group","series",t.visible?"visible":"hidden",s.zIndex,o.seriesGroup),t.markerGroup=t.group,tz(t,"destroy",function(){t.markerGroup=null});let F=this.points=[],H=this.getContext();if(t.buildKDTree=tD,B.clear&&B.clear(),!t.visible)return;c.length>99999&&(o.options.loading=tB(L,{labelStyle:{backgroundColor:t_("#ffffff").setOpacity(.75).get(),padding:"1em",borderRadius:"0.5em"},style:{backgroundColor:"none",opacity:1}}),u().clearTimeout(e),o.showLoading("Drawing..."),o.options.loading=L),l.timeRendering&&console.time("canvas rendering");let Y=0,W,j,K=E,Z,q,Q,J,$,tt,te=function(){k?(H.fillStyle=I,H.fill()):(H.strokeStyle=t.color,H.lineWidth=s.lineWidth,H.stroke())},ti=function(e,i,s,r){0===Y&&(H.beginPath(),V&&(H.lineJoin="round")),o.scroller&&"highcharts-navigator-series"===t.options.className?(i+=o.scroller.top,s&&(s+=o.scroller.top)):i+=o.plotTop,e+=o.plotLeft,Z?H.moveTo(e,i):O?O(H,e,i,s,j):V?V(H,e,i):X&&X.call(t,H,e,i,v,r),(Y+=1)===T&&(te(),Y=0),j={clientX:e,plotY:i,yBottom:s}},ts=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||!!this.getColumn("x",!0).length&&this.getColumn("x",!0),to=function(t,e,i){tt=G?t:t+","+e,C&&!A[tt]&&(A[tt]=!0,o.inverted&&(t=r.len-t,e=n.len-e),F.push({x:!!ts&&ts[U+i],clientX:t,plotX:t,plotY:e,i:U+i}))};tw.eachAsync(z,(e,i)=>{let s=void 0===o.index,a,l,h,u,c,g,p=!1,A=!1,v=NaN,P=NaN,T=!0;return!s&&(D?(a=e[0],l=e[1],z[i+1]&&(v=z[i+1][0]),z[i-1]&&(P=z[i-1][0])):(a=e,l=d[i],z[i+1]&&(v=z[i+1]),z[i-1]&&(P=z[i-1])),v&&v>=m&&v<=f&&(p=!0),P&&P>=m&&P<=f&&(A=!0),w?(D&&(l=e.slice(1,3)),g=l[0],l=l[1]):R&&(a=e.x,g=(l=e.stackY)-e.y),c=null===l,_||(T=l>=b&&l<=x),!c&&(a>=m&&a<=f&&T||p||A)&&(h=Math.round(r.toPixels(a,!0)),y?((void 0===J||h===W)&&(w||(g=l),(void 0===$||l>Q)&&(Q=l,$=i),(void 0===J||g<q)&&(q=g,J=i)),h!==W&&(void 0!==J&&(u=n.toPixels(Q,!0),K=n.toPixels(q,!0),ti(h,S?Math.min(u,E):u,S?Math.max(K,E):K,i),to(h,u,$),K!==u&&to(h,K,J)),J=$=void 0,W=h)):(ti(h,u=Math.round(n.toPixels(l,!0)),K,i),to(h,u,i))),Z=c&&!N,i%5e4==0&&(t.boost&&t.boost.copy?t.boost.copy():t.chart.boost&&t.chart.boost.copy&&t.chart.boost.copy())),!s},function(){let i=o.loadingDiv,s=o.loadingShown;te(),t.canvasToSVG(),l.timeRendering&&console.timeEnd("canvas rendering"),tI(t,"renderedCanvas"),s&&(i.style.transition="opacity 250ms",i.opacity=0,o.loadingShown=!1,e=setTimeout(function(){i.parentNode&&i.parentNode.removeChild(i),o.loadingDiv=o.loadingSpan=null},250)),delete t.buildKDTree,t.buildKDTree()},o.renderer.forExport?Number.MAX_VALUE:void 0)}function g(t,e,i,s){t.moveTo(e,i),t.arc(e,i,s,0,2*Math.PI,!1)}function m(t,e,i,s){t.rect(e-s,i-s,2*s,2*s)}function f(){let t=this.chart,e=this.getContext(),i=this.chart.inverted,s=this.xAxis,o=this.yAxis;e?(this.points.forEach(r=>{let n,a=r.plotY;if(void 0!==a&&!isNaN(a)&&null!==r.y&&e){let{x:n=0,y:a=0,width:l=0,height:h=0}=r.shapeArgs||{};e.fillStyle=(t.styledMode?r.series.colorAttribs(r):r.series.pointAttribs(r)).fill,i?e.fillRect(o.len-a+s.left,s.len-n+o.top,-h,-l):e.fillRect(n+s.left,a+o.top,l,h)}}),this.canvasToSVG()):this.chart.showLoading("Your browser doesn't support HTML5 canvas, <br>please use a modern browser")}t.compose=function(t,e,i){let u=e.prototype;if(!u.renderCanvas){let{area:e,bubble:p,column:b,heatmap:x,scatter:A}=i;if(t.prototype.callbacks.push(t=>{tz(t,"predraw",a),tz(t,"render",n)}),u.canvasToSVG=l,u.cvsLineTo=h,u.getContext=d,u.renderCanvas=c,e){let t=e.prototype;t.cvsDrawPoint=s,t.fill=!0,t.fillOpacity=!0,t.sampling=!0}if(p){let t=p.prototype;t.cvsMarkerCircle=o,t.cvsStrokeBatch=1}if(b){let t=b.prototype;t.cvsDrawPoint=r,t.fill=!0,t.sampling=!0}if(x&&tV(x.prototype,"drawPoints",f),A){let t=A.prototype;t.cvsMarkerCircle=g,t.cvsMarkerSquare=m,t.fill=!0}}}}(r||(r={}));let tX=r,tF=u();tF.initCanvasBoost=function(){tX.compose(tF.Chart,tF.Series,tF.seriesTypes)};let tH=u();return h.default})());
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Highcharts JS v12.
|
|
2
|
+
* @license Highcharts JS v12.4.0 (2025-09-04)
|
|
3
3
|
* @module highcharts/modules/boost-canvas
|
|
4
4
|
* @requires highcharts
|
|
5
5
|
*
|
|
@@ -506,7 +506,7 @@ const { clamp, error, pick: WGLShader_pick } = (highcharts_commonjs_highcharts_c
|
|
|
506
506
|
*
|
|
507
507
|
* */
|
|
508
508
|
const fragmentShader = [
|
|
509
|
-
/* eslint-disable max-len, @
|
|
509
|
+
/* eslint-disable max-len, @stylistic/indent */
|
|
510
510
|
'precision highp float;',
|
|
511
511
|
'uniform vec4 fillColor;',
|
|
512
512
|
'varying highp vec2 position;',
|
|
@@ -534,10 +534,10 @@ const fragmentShader = [
|
|
|
534
534
|
'gl_FragColor = col;',
|
|
535
535
|
'}',
|
|
536
536
|
'}'
|
|
537
|
-
/* eslint-enable max-len, @
|
|
537
|
+
/* eslint-enable max-len, @stylistic/indent */
|
|
538
538
|
].join('\n');
|
|
539
539
|
const vertexShader = [
|
|
540
|
-
/* eslint-disable max-len, @
|
|
540
|
+
/* eslint-disable max-len, @stylistic/indent */
|
|
541
541
|
'#version 100',
|
|
542
542
|
'#define LN10 2.302585092994046',
|
|
543
543
|
'precision highp float;',
|
|
@@ -552,6 +552,7 @@ const vertexShader = [
|
|
|
552
552
|
'uniform bool skipTranslation;',
|
|
553
553
|
'uniform float xAxisTrans;',
|
|
554
554
|
'uniform float xAxisMin;',
|
|
555
|
+
'uniform float xAxisMax;',
|
|
555
556
|
'uniform float xAxisMinPad;',
|
|
556
557
|
'uniform float xAxisPointRange;',
|
|
557
558
|
'uniform float xAxisLen;',
|
|
@@ -564,6 +565,7 @@ const vertexShader = [
|
|
|
564
565
|
'uniform bool xAxisReversed;',
|
|
565
566
|
'uniform float yAxisTrans;',
|
|
566
567
|
'uniform float yAxisMin;',
|
|
568
|
+
'uniform float yAxisMax;',
|
|
567
569
|
'uniform float yAxisMinPad;',
|
|
568
570
|
'uniform float yAxisPointRange;',
|
|
569
571
|
'uniform float yAxisLen;',
|
|
@@ -574,6 +576,7 @@ const vertexShader = [
|
|
|
574
576
|
'uniform bool yAxisCVSCoord;',
|
|
575
577
|
'uniform bool yAxisIsLog;',
|
|
576
578
|
'uniform bool yAxisReversed;',
|
|
579
|
+
'uniform bool isCircle;',
|
|
577
580
|
'uniform bool isBubble;',
|
|
578
581
|
'uniform bool bubbleSizeByArea;',
|
|
579
582
|
'uniform float bubbleZMin;',
|
|
@@ -662,7 +665,17 @@ const vertexShader = [
|
|
|
662
665
|
'}',
|
|
663
666
|
// 'gl_PointSize = 10.0;',
|
|
664
667
|
'vColor = aColor;',
|
|
665
|
-
'
|
|
668
|
+
// It's not working correctly on useGPUTranslations off, because we
|
|
669
|
+
// operate on pixel values then, not on axis values. Maybe we should
|
|
670
|
+
// just skip outer points before pushing them to the vertex buffer?
|
|
671
|
+
'if (!skipTranslation && isCircle && (',
|
|
672
|
+
'aVertexPosition.x < xAxisMin ||',
|
|
673
|
+
'aVertexPosition.x > xAxisMax ||',
|
|
674
|
+
'aVertexPosition.y < yAxisMin ||',
|
|
675
|
+
'aVertexPosition.y > yAxisMax',
|
|
676
|
+
')) {',
|
|
677
|
+
'gl_Position = uPMatrix * vec4(2.0, 2.0, 2.0, 1.0);',
|
|
678
|
+
'} else if (skipTranslation && isInverted) {',
|
|
666
679
|
// If we get translated values from JS, just swap them (x, y)
|
|
667
680
|
'gl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);',
|
|
668
681
|
'} else if (isInverted) {',
|
|
@@ -674,7 +687,7 @@ const vertexShader = [
|
|
|
674
687
|
'}',
|
|
675
688
|
// 'gl_Position = uPMatrix * vec4(aVertexPosition.x, aVertexPosition.y, 0.0, 1.0);',
|
|
676
689
|
'}'
|
|
677
|
-
/* eslint-enable max-len, @
|
|
690
|
+
/* eslint-enable max-len, @stylistic/indent */
|
|
678
691
|
].join('\n');
|
|
679
692
|
/* *
|
|
680
693
|
*
|
|
@@ -1156,6 +1169,8 @@ class WGLVertexBuffer {
|
|
|
1156
1169
|
* */
|
|
1157
1170
|
|
|
1158
1171
|
|
|
1172
|
+
const { getBoostClipRect: WGLRenderer_getBoostClipRect } = Boost_BoostChart;
|
|
1173
|
+
|
|
1159
1174
|
const { parse: color } = (highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default());
|
|
1160
1175
|
|
|
1161
1176
|
const { doc, win } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
|
|
@@ -1373,10 +1388,9 @@ class WGLRenderer {
|
|
|
1373
1388
|
/// threshold = options.threshold,
|
|
1374
1389
|
// yBottom = chart.yAxis[0].getThreshold(threshold),
|
|
1375
1390
|
// hasThreshold = isNumber(threshold),
|
|
1376
|
-
|
|
1391
|
+
colorByPoint = series.options.colorByPoint,
|
|
1377
1392
|
// This is required for color by point, so make sure this is
|
|
1378
1393
|
// uncommented if enabling that
|
|
1379
|
-
// colorIndex = 0,
|
|
1380
1394
|
// Required for color axis support
|
|
1381
1395
|
// caxis,
|
|
1382
1396
|
connectNulls = options.connectNulls,
|
|
@@ -1388,7 +1402,7 @@ class WGLRenderer {
|
|
|
1388
1402
|
//
|
|
1389
1403
|
skipped = 0, hadPoints = false,
|
|
1390
1404
|
// The following are used in the builder while loop
|
|
1391
|
-
x, y, d, z, i = -1, px = false, nx = false, low, nextInside = false, prevInside = false, pcolor =
|
|
1405
|
+
x, y, d, z, i = -1, px = false, nx = false, low, nextInside = false, prevInside = false, pcolor = void 0, isXInside = false, isYInside = true, firstPoint = true, zoneColors, zoneDefColor = false, gapSize = false, vlen = 0, colorIndex = 0;
|
|
1392
1406
|
if (options.boostData && options.boostData.length > 0) {
|
|
1393
1407
|
return;
|
|
1394
1408
|
}
|
|
@@ -1601,27 +1615,29 @@ class WGLRenderer {
|
|
|
1601
1615
|
if (chartDestroyed) {
|
|
1602
1616
|
break;
|
|
1603
1617
|
}
|
|
1604
|
-
// Uncomment this to enable color by point.
|
|
1605
|
-
// This currently left disabled as the charts look really ugly
|
|
1606
|
-
// when enabled and there's a lot of points.
|
|
1607
|
-
// Leaving in for the future (tm).
|
|
1608
|
-
// if (colorByPoint) {
|
|
1609
|
-
// colorIndex = ++colorIndex %
|
|
1610
|
-
// series.chart.options.colors.length;
|
|
1611
|
-
// pcolor = toRGBAFast(series.chart.options.colors[colorIndex]);
|
|
1612
|
-
// pcolor[0] /= 255.0;
|
|
1613
|
-
// pcolor[1] /= 255.0;
|
|
1614
|
-
// pcolor[2] /= 255.0;
|
|
1615
|
-
// }
|
|
1616
1618
|
// Handle the point.color option (#5999)
|
|
1617
1619
|
const pointOptions = rawData && rawData[i];
|
|
1618
|
-
if (!useRaw
|
|
1619
|
-
if (pointOptions.color) {
|
|
1620
|
+
if (!useRaw) {
|
|
1621
|
+
if (isObject(pointOptions, true) && pointOptions.color) {
|
|
1620
1622
|
pcolor = color(pointOptions.color).rgba;
|
|
1623
|
+
}
|
|
1624
|
+
const colorKeyIndex = series.options.keys?.indexOf('color');
|
|
1625
|
+
if (Array.isArray(pointOptions) &&
|
|
1626
|
+
colorKeyIndex &&
|
|
1627
|
+
typeof pointOptions[colorKeyIndex] === 'string') {
|
|
1628
|
+
pcolor = color(pointOptions[colorKeyIndex]).rgba;
|
|
1629
|
+
}
|
|
1630
|
+
else if (colorByPoint && chart.options.colors) {
|
|
1631
|
+
colorIndex = colorIndex %
|
|
1632
|
+
chart.options.colors.length;
|
|
1633
|
+
pcolor = color(chart.options.colors[colorIndex]).rgba;
|
|
1634
|
+
}
|
|
1635
|
+
if (pcolor) {
|
|
1621
1636
|
pcolor[0] /= 255.0;
|
|
1622
1637
|
pcolor[1] /= 255.0;
|
|
1623
1638
|
pcolor[2] /= 255.0;
|
|
1624
1639
|
}
|
|
1640
|
+
colorIndex++;
|
|
1625
1641
|
}
|
|
1626
1642
|
if (useRaw) {
|
|
1627
1643
|
x = d[0];
|
|
@@ -1828,15 +1844,15 @@ class WGLRenderer {
|
|
|
1828
1844
|
minVal = yAxis.toPixels(minVal, true);
|
|
1829
1845
|
}
|
|
1830
1846
|
// Need to add an extra point here
|
|
1831
|
-
vertice(x, minVal,
|
|
1847
|
+
vertice(x, minVal, false, 0, pcolor);
|
|
1832
1848
|
}
|
|
1833
1849
|
// Do step line if enabled.
|
|
1834
1850
|
// Draws an additional point at the old Y at the new X.
|
|
1835
1851
|
// See #6976.
|
|
1836
1852
|
if (options.step && !firstPoint) {
|
|
1837
|
-
vertice(x, lastY,
|
|
1853
|
+
vertice(x, lastY, false, 2, pcolor);
|
|
1838
1854
|
}
|
|
1839
|
-
vertice(x, y,
|
|
1855
|
+
vertice(x, y, false, series.type === 'bubble' ? (z || 1) : 2, pcolor);
|
|
1840
1856
|
// Uncomment this to support color axis.
|
|
1841
1857
|
// if (caxis) {
|
|
1842
1858
|
// pcolor = color(caxis.toColor(y)).rgba;
|
|
@@ -1954,6 +1970,7 @@ class WGLRenderer {
|
|
|
1954
1970
|
const pixelRatio = this.getPixelRatio();
|
|
1955
1971
|
shader.setUniform('xAxisTrans', axis.transA * pixelRatio);
|
|
1956
1972
|
shader.setUniform('xAxisMin', axis.min);
|
|
1973
|
+
shader.setUniform('xAxisMax', axis.max);
|
|
1957
1974
|
shader.setUniform('xAxisMinPad', axis.minPixelPadding * pixelRatio);
|
|
1958
1975
|
shader.setUniform('xAxisPointRange', axis.pointRange);
|
|
1959
1976
|
shader.setUniform('xAxisLen', axis.len * pixelRatio);
|
|
@@ -1976,6 +1993,7 @@ class WGLRenderer {
|
|
|
1976
1993
|
const pixelRatio = this.getPixelRatio();
|
|
1977
1994
|
shader.setUniform('yAxisTrans', axis.transA * pixelRatio);
|
|
1978
1995
|
shader.setUniform('yAxisMin', axis.min);
|
|
1996
|
+
shader.setUniform('yAxisMax', axis.max);
|
|
1979
1997
|
shader.setUniform('yAxisMinPad', axis.minPixelPadding * pixelRatio);
|
|
1980
1998
|
shader.setUniform('yAxisPointRange', axis.pointRange);
|
|
1981
1999
|
shader.setUniform('yAxisLen', axis.len * pixelRatio);
|
|
@@ -2142,9 +2160,13 @@ class WGLRenderer {
|
|
|
2142
2160
|
// Do the actual rendering
|
|
2143
2161
|
// If the line width is < 0, skip rendering of the lines. See #7833.
|
|
2144
2162
|
if (lineWidth > 0 || s.drawMode !== 'LINE_STRIP') {
|
|
2163
|
+
const { x: cx, y: cy, width: cw, height: ch } = WGLRenderer_getBoostClipRect(chart, s.series);
|
|
2164
|
+
gl.enable(gl.SCISSOR_TEST);
|
|
2165
|
+
gl.scissor(cx, height - cy - ch, cw, ch);
|
|
2145
2166
|
for (sindex = 0; sindex < s.segments.length; sindex++) {
|
|
2146
2167
|
vbuffer.render(s.segments[sindex].from, s.segments[sindex].to, s.drawMode);
|
|
2147
2168
|
}
|
|
2169
|
+
gl.disable(gl.SCISSOR_TEST);
|
|
2148
2170
|
}
|
|
2149
2171
|
if (s.hasMarkers && showMarkers) {
|
|
2150
2172
|
shader.setPointSize(WGLRenderer_pick(options.marker && options.marker.radius, 5) * 2 * pixelRatio);
|
|
@@ -2267,7 +2289,7 @@ class WGLRenderer {
|
|
|
2267
2289
|
gl.bindTexture(gl.TEXTURE_2D, null);
|
|
2268
2290
|
props.isReady = true;
|
|
2269
2291
|
}
|
|
2270
|
-
catch
|
|
2292
|
+
catch {
|
|
2271
2293
|
// Silent error
|
|
2272
2294
|
}
|
|
2273
2295
|
};
|
|
@@ -3049,15 +3071,18 @@ function createAndAttachRenderer(chart, series) {
|
|
|
3049
3071
|
boost.canvas.width = width;
|
|
3050
3072
|
boost.canvas.height = height;
|
|
3051
3073
|
if (boost.clipRect) {
|
|
3052
|
-
const box = BoostSeries_getBoostClipRect(chart, target)
|
|
3074
|
+
const box = BoostSeries_getBoostClipRect(chart, target);
|
|
3075
|
+
boost.clipRect.attr(box);
|
|
3053
3076
|
// When using panes, the image itself must be clipped. When not
|
|
3054
3077
|
// using panes, it is better to clip the target group, because then
|
|
3055
3078
|
// we preserve clipping on touch- and mousewheel zoom preview.
|
|
3056
|
-
|
|
3057
|
-
box.height === chart.clipBox.height)
|
|
3058
|
-
(
|
|
3059
|
-
|
|
3060
|
-
|
|
3079
|
+
if (box.width === chart.clipBox.width &&
|
|
3080
|
+
box.height === chart.clipBox.height) {
|
|
3081
|
+
targetGroup?.clip(chart.renderer.clipRect(box.x - 4, box.y, box.width + 4, box.height + 4)); // #9799
|
|
3082
|
+
}
|
|
3083
|
+
else {
|
|
3084
|
+
(boost.targetFo || boost.target).clip(boost.clipRect);
|
|
3085
|
+
}
|
|
3061
3086
|
}
|
|
3062
3087
|
boost.resize();
|
|
3063
3088
|
boost.clear();
|
|
@@ -3241,7 +3266,7 @@ function exitBoost(series) {
|
|
|
3241
3266
|
*/
|
|
3242
3267
|
function hasExtremes(series, checkX) {
|
|
3243
3268
|
const options = series.options, dataLength = series.dataTable.modified.rowCount, xAxis = series.xAxis && series.xAxis.options, yAxis = series.yAxis && series.yAxis.options, colorAxis = series.colorAxis && series.colorAxis.options;
|
|
3244
|
-
return dataLength > (options.boostThreshold
|
|
3269
|
+
return dataLength > BoostSeries_pick(options.boostThreshold, Number.MAX_VALUE) &&
|
|
3245
3270
|
// Defined yAxis extremes
|
|
3246
3271
|
BoostSeries_isNumber(yAxis.min) &&
|
|
3247
3272
|
BoostSeries_isNumber(yAxis.max) &&
|
|
@@ -3265,7 +3290,7 @@ const getSeriesBoosting = (series, data) => {
|
|
|
3265
3290
|
}
|
|
3266
3291
|
return (BoostSeries_isChartSeriesBoosting(series.chart) ||
|
|
3267
3292
|
((data ? data.length : 0) >=
|
|
3268
|
-
(series.options.boostThreshold
|
|
3293
|
+
BoostSeries_pick(series.options.boostThreshold, Number.MAX_VALUE)));
|
|
3269
3294
|
};
|
|
3270
3295
|
/**
|
|
3271
3296
|
* Extend series.destroy to also remove the fake k-d-tree points (#5137).
|
|
@@ -3331,7 +3356,7 @@ function getPoint(series, boostPoint) {
|
|
|
3331
3356
|
if (boostPoint instanceof PointClass) {
|
|
3332
3357
|
return boostPoint;
|
|
3333
3358
|
}
|
|
3334
|
-
const isScatter = series.is('scatter'), xData = ((isScatter && series.getColumn('x', true).length ?
|
|
3359
|
+
const data = seriesOptions.data, isScatter = series.is('scatter'), xData = ((isScatter && series.getColumn('x', true).length ?
|
|
3335
3360
|
series.getColumn('x', true) :
|
|
3336
3361
|
void 0) ||
|
|
3337
3362
|
(series.getColumn('x').length ? series.getColumn('x') : void 0) ||
|
|
@@ -3339,9 +3364,19 @@ function getPoint(series, boostPoint) {
|
|
|
3339
3364
|
series.getColumn('x', true) ||
|
|
3340
3365
|
false), yData = (series.getColumn('y', true) ||
|
|
3341
3366
|
seriesOptions.yData ||
|
|
3342
|
-
false),
|
|
3343
|
-
|
|
3344
|
-
|
|
3367
|
+
false), pointIndex = boostPoint.i, pointColor = data?.[pointIndex]
|
|
3368
|
+
?.color, point = new PointClass(series, (isScatter && xData && yData) ?
|
|
3369
|
+
[xData[pointIndex], yData[pointIndex]] :
|
|
3370
|
+
(isArray(data) ? data : [])[pointIndex], xData ? xData[pointIndex] : void 0);
|
|
3371
|
+
if (isScatter &&
|
|
3372
|
+
seriesOptions?.keys?.length) {
|
|
3373
|
+
const keys = seriesOptions.keys;
|
|
3374
|
+
// Don't reassign X and Y properties as they're already handled above
|
|
3375
|
+
for (let keysIndex = keys.length - 1; keysIndex > -1; keysIndex--) {
|
|
3376
|
+
point[keys[keysIndex]] =
|
|
3377
|
+
data[pointIndex][keysIndex];
|
|
3378
|
+
}
|
|
3379
|
+
}
|
|
3345
3380
|
point.category = BoostSeries_pick(xAxis.categories ?
|
|
3346
3381
|
xAxis.categories[point.x] :
|
|
3347
3382
|
point.x, // @todo simplify
|
|
@@ -3351,9 +3386,12 @@ function getPoint(series, boostPoint) {
|
|
|
3351
3386
|
point.distX = boostPoint.distX;
|
|
3352
3387
|
point.plotX = boostPoint.plotX;
|
|
3353
3388
|
point.plotY = boostPoint.plotY;
|
|
3354
|
-
point.index =
|
|
3389
|
+
point.index = pointIndex;
|
|
3355
3390
|
point.percentage = boostPoint.percentage;
|
|
3356
3391
|
point.isInside = series.isPointInside(point);
|
|
3392
|
+
if (pointColor) {
|
|
3393
|
+
point.color = pointColor; // Set color for hover effect #23370
|
|
3394
|
+
}
|
|
3357
3395
|
return point;
|
|
3358
3396
|
}
|
|
3359
3397
|
/**
|
|
@@ -3569,11 +3607,8 @@ function seriesRenderCanvas() {
|
|
|
3569
3607
|
// Do not start building while drawing
|
|
3570
3608
|
this.buildKDTree = noop;
|
|
3571
3609
|
BoostSeries_fireEvent(this, 'renderCanvas');
|
|
3572
|
-
if (this.is('line')
|
|
3573
|
-
|
|
3574
|
-
seriesBoost?.target &&
|
|
3575
|
-
chartBoost &&
|
|
3576
|
-
!chartBoost.lineWidthFilter) {
|
|
3610
|
+
if (chartBoost && seriesBoost?.target && lineWidth > 1 && this.is('line')) {
|
|
3611
|
+
chartBoost.lineWidthFilter?.remove();
|
|
3577
3612
|
chartBoost.lineWidthFilter = chart.renderer.definition({
|
|
3578
3613
|
tagName: 'filter',
|
|
3579
3614
|
children: [
|
|
@@ -3928,7 +3963,6 @@ var BoostCanvas;
|
|
|
3928
3963
|
* Variables
|
|
3929
3964
|
*
|
|
3930
3965
|
* */
|
|
3931
|
-
let ChartConstructor;
|
|
3932
3966
|
let destroyLoadingDiv;
|
|
3933
3967
|
/* *
|
|
3934
3968
|
*
|
|
@@ -3966,7 +4000,6 @@ var BoostCanvas;
|
|
|
3966
4000
|
const seriesProto = SeriesClass.prototype;
|
|
3967
4001
|
if (!seriesProto.renderCanvas) {
|
|
3968
4002
|
const { area: AreaSeries, bubble: BubbleSeries, column: ColumnSeries, heatmap: HeatmapSeries, scatter: ScatterSeries } = seriesTypes;
|
|
3969
|
-
ChartConstructor = ChartClass;
|
|
3970
4003
|
ChartClass.prototype.callbacks.push((chart) => {
|
|
3971
4004
|
BoostCanvas_addEvent(chart, 'predraw', onChartClear);
|
|
3972
4005
|
BoostCanvas_addEvent(chart, 'render', onChartCanvasToSVG);
|
|
@@ -4098,9 +4131,6 @@ var BoostCanvas;
|
|
|
4098
4131
|
boost.clipRect = chart.renderer.clipRect();
|
|
4099
4132
|
boost.target.clip(boost.clipRect);
|
|
4100
4133
|
}
|
|
4101
|
-
else if (!(target instanceof ChartConstructor)) {
|
|
4102
|
-
/// ctx.clearRect(0, 0, width, height);
|
|
4103
|
-
}
|
|
4104
4134
|
if (boost.canvas.width !== width) {
|
|
4105
4135
|
boost.canvas.width = width;
|
|
4106
4136
|
}
|