@ntlab/ntjs-assets 2.99.0 → 2.100.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.
Files changed (834) hide show
  1. package/assets/js/cdn.json +1 -1
  2. package/assets/js/highcharts/css/highcharts.css +0 -5
  3. package/assets/js/highcharts/es-modules/Accessibility/Components/MenuComponent.js +3 -1
  4. package/assets/js/highcharts/es-modules/Accessibility/Components/NavigatorComponent.js +5 -1
  5. package/assets/js/highcharts/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +3 -1
  6. package/assets/js/highcharts/es-modules/Accessibility/FocusBorder.js +4 -0
  7. package/assets/js/highcharts/es-modules/Accessibility/Options/A11yDefaults.js +12 -0
  8. package/assets/js/highcharts/es-modules/Core/Axis/Axis.js +4 -3
  9. package/assets/js/highcharts/es-modules/Core/Axis/Axis3DComposition.js +0 -3
  10. package/assets/js/highcharts/es-modules/Core/Axis/AxisDefaults.js +0 -8
  11. package/assets/js/highcharts/es-modules/Core/Axis/BrokenAxis.js +114 -90
  12. package/assets/js/highcharts/es-modules/Core/Axis/Color/ColorAxis.js +3 -3
  13. package/assets/js/highcharts/es-modules/Core/Axis/Color/ColorAxisDefaults.js +2 -3
  14. package/assets/js/highcharts/es-modules/Core/Axis/OrdinalAxis.js +0 -1
  15. package/assets/js/highcharts/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +2 -2
  16. package/assets/js/highcharts/es-modules/Core/Axis/RadialAxis.js +15 -3
  17. package/assets/js/highcharts/es-modules/Core/Axis/ScrollbarAxis.js +19 -17
  18. package/assets/js/highcharts/es-modules/Core/Axis/Stacking/StackingAxis.js +0 -1
  19. package/assets/js/highcharts/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +36 -51
  20. package/assets/js/highcharts/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +39 -17
  21. package/assets/js/highcharts/es-modules/Core/Chart/Chart.js +10 -9
  22. package/assets/js/highcharts/es-modules/Core/Chart/ChartDefaults.js +4 -3
  23. package/assets/js/highcharts/es-modules/Core/Chart/StockChart.js +42 -49
  24. package/assets/js/highcharts/es-modules/Core/Defaults.js +12 -7
  25. package/assets/js/highcharts/es-modules/Core/Geometry/CircleUtilities.js +3 -1
  26. package/assets/js/highcharts/es-modules/Core/Globals.js +1 -1
  27. package/assets/js/highcharts/es-modules/Core/Legend/Legend.js +8 -7
  28. package/assets/js/highcharts/es-modules/Core/Pointer.js +14 -5
  29. package/assets/js/highcharts/es-modules/Core/Renderer/HTML/AST.js +1 -1
  30. package/assets/js/highcharts/es-modules/Core/Renderer/HTML/HTMLElement.js +2 -1
  31. package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGElement.js +2 -2
  32. package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGLabel.js +10 -1
  33. package/assets/js/highcharts/es-modules/Core/Renderer/SVG/SVGRenderer.js +7 -7
  34. package/assets/js/highcharts/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
  35. package/assets/js/highcharts/es-modules/Core/Series/Point.js +9 -0
  36. package/assets/js/highcharts/es-modules/Core/Series/Series.js +1 -1
  37. package/assets/js/highcharts/es-modules/Core/Series/SeriesRegistry.js +8 -1
  38. package/assets/js/highcharts/es-modules/Data/Connectors/JSONConnector.js +0 -1
  39. package/assets/js/highcharts/es-modules/Data/Converters/HTMLTableConverter.js +1 -1
  40. package/assets/js/highcharts/es-modules/Data/Converters/JSONConverter.js +0 -1
  41. package/assets/js/highcharts/es-modules/Data/DataTable.js +1 -2
  42. package/assets/js/highcharts/es-modules/Data/Formula/FormulaParser.js +33 -1
  43. package/assets/js/highcharts/es-modules/Data/Formula/FormulaProcessor.js +97 -45
  44. package/assets/js/highcharts/es-modules/Data/Modifiers/DataModifier.js +1 -1
  45. package/assets/js/highcharts/es-modules/Data/Modifiers/FilterModifier.js +168 -0
  46. package/assets/js/highcharts/es-modules/Data/Modifiers/FilterModifierOptions.js +14 -0
  47. package/assets/js/highcharts/es-modules/Data/Modifiers/SortModifier.js +12 -3
  48. package/assets/js/highcharts/es-modules/Extensions/Annotations/MockPoint.js +6 -3
  49. package/assets/js/highcharts/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +1 -1
  50. package/assets/js/highcharts/es-modules/Extensions/Annotations/Popup/PopupComposition.js +1 -1
  51. package/assets/js/highcharts/es-modules/Extensions/Boost/Boost.js +5 -1
  52. package/assets/js/highcharts/es-modules/Extensions/Boost/BoostSeries.js +31 -18
  53. package/assets/js/highcharts/es-modules/Extensions/Boost/WGLRenderer.js +30 -21
  54. package/assets/js/highcharts/es-modules/Extensions/Boost/WGLShader.js +18 -5
  55. package/assets/js/highcharts/es-modules/Extensions/BoostCanvas.js +0 -5
  56. package/assets/js/highcharts/es-modules/Extensions/BorderRadius.js +6 -2
  57. package/assets/js/highcharts/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +1 -1
  58. package/assets/js/highcharts/es-modules/Extensions/DownloadURL.js +3 -1
  59. package/assets/js/highcharts/es-modules/Extensions/ExportData/ExportData.js +3 -5
  60. package/assets/js/highcharts/es-modules/Extensions/Exporting/Exporting.js +86 -0
  61. package/assets/js/highcharts/es-modules/Extensions/Exporting/ExportingDefaults.js +1 -1
  62. package/assets/js/highcharts/es-modules/Extensions/NonCartesianSeriesZoom/NonCartesianSeriesZoom.js +25 -25
  63. package/assets/js/highcharts/es-modules/Extensions/OfflineExporting/OfflineExporting.js +1 -1
  64. package/assets/js/highcharts/es-modules/Extensions/Pane/PaneComposition.js +19 -12
  65. package/assets/js/highcharts/es-modules/Extensions/ScrollablePlotArea.js +29 -21
  66. package/assets/js/highcharts/es-modules/Extensions/Sonification/Sonification.js +1 -1
  67. package/assets/js/highcharts/es-modules/Extensions/StaticScale.js +13 -11
  68. package/assets/js/highcharts/es-modules/Extensions/TextPath.js +2 -2
  69. package/assets/js/highcharts/es-modules/Series/Bellcurve/BellcurveSeries.js +16 -9
  70. package/assets/js/highcharts/es-modules/Series/DataModifyComposition.js +0 -2
  71. package/assets/js/highcharts/es-modules/Series/DrawPointUtilities.js +1 -1
  72. package/assets/js/highcharts/es-modules/Series/Histogram/HistogramSeries.js +19 -17
  73. package/assets/js/highcharts/es-modules/Series/Pie/PieDataLabel.js +2 -2
  74. package/assets/js/highcharts/es-modules/Series/Pie/PieSeries.js +2 -2
  75. package/assets/js/highcharts/es-modules/Series/PolarComposition.js +36 -1
  76. package/assets/js/highcharts/es-modules/Series/SeriesOnPointComposition.js +0 -1
  77. package/assets/js/highcharts/es-modules/Series/SimulationSeriesUtilities.js +7 -0
  78. package/assets/js/highcharts/es-modules/Series/SolidGauge/SolidGaugeSeriesDefaults.js +13 -0
  79. package/assets/js/highcharts/es-modules/Series/Treegraph/TreegraphLayout.js +10 -4
  80. package/assets/js/highcharts/es-modules/Series/Treemap/TreemapSeries.js +4 -4
  81. package/assets/js/highcharts/es-modules/Series/Variwide/VariwideComposition.js +9 -11
  82. package/assets/js/highcharts/es-modules/Series/Waterfall/WaterfallSeries.js +6 -9
  83. package/assets/js/highcharts/es-modules/Series/XRange/XRangePoint.js +2 -1
  84. package/assets/js/highcharts/es-modules/Stock/Indicators/MACD/MACDIndicator.js +1 -1
  85. package/assets/js/highcharts/es-modules/Stock/StockTools/StockToolbar.js +1 -1
  86. package/assets/js/highcharts/es-modules/masters/highcharts-3d.src.js +2 -2
  87. package/assets/js/highcharts/es-modules/masters/highcharts-gantt.src.js +8 -2
  88. package/assets/js/highcharts/es-modules/masters/highcharts-more.src.js +2 -2
  89. package/assets/js/highcharts/es-modules/masters/highcharts.src.js +2 -2
  90. package/assets/js/highcharts/es-modules/masters/highmaps.src.js +2 -2
  91. package/assets/js/highcharts/es-modules/masters/highstock.src.js +2 -2
  92. package/assets/js/highcharts/es-modules/masters/i18n/fr-FR.src.js +1 -1
  93. package/assets/js/highcharts/es-modules/masters/i18n/nb-NO.src.js +1 -1
  94. package/assets/js/highcharts/es-modules/masters/i18n/zh-CN.src.js +1 -1
  95. package/assets/js/highcharts/es-modules/masters/indicators/acceleration-bands.src.js +1 -1
  96. package/assets/js/highcharts/es-modules/masters/indicators/accumulation-distribution.src.js +1 -1
  97. package/assets/js/highcharts/es-modules/masters/indicators/ao.src.js +1 -1
  98. package/assets/js/highcharts/es-modules/masters/indicators/apo.src.js +1 -1
  99. package/assets/js/highcharts/es-modules/masters/indicators/aroon-oscillator.src.js +1 -1
  100. package/assets/js/highcharts/es-modules/masters/indicators/aroon.src.js +1 -1
  101. package/assets/js/highcharts/es-modules/masters/indicators/atr.src.js +1 -1
  102. package/assets/js/highcharts/es-modules/masters/indicators/bollinger-bands.src.js +1 -1
  103. package/assets/js/highcharts/es-modules/masters/indicators/cci.src.js +1 -1
  104. package/assets/js/highcharts/es-modules/masters/indicators/chaikin.src.js +1 -1
  105. package/assets/js/highcharts/es-modules/masters/indicators/cmf.src.js +1 -1
  106. package/assets/js/highcharts/es-modules/masters/indicators/cmo.src.js +1 -1
  107. package/assets/js/highcharts/es-modules/masters/indicators/dema.src.js +1 -1
  108. package/assets/js/highcharts/es-modules/masters/indicators/disparity-index.src.js +1 -1
  109. package/assets/js/highcharts/es-modules/masters/indicators/dmi.src.js +1 -1
  110. package/assets/js/highcharts/es-modules/masters/indicators/dpo.src.js +1 -1
  111. package/assets/js/highcharts/es-modules/masters/indicators/ema.src.js +0 -3
  112. package/assets/js/highcharts/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +1 -1
  113. package/assets/js/highcharts/es-modules/masters/indicators/indicators-all.src.js +1 -1
  114. package/assets/js/highcharts/es-modules/masters/indicators/indicators.src.js +1 -1
  115. package/assets/js/highcharts/es-modules/masters/indicators/keltner-channels.src.js +1 -1
  116. package/assets/js/highcharts/es-modules/masters/indicators/klinger.src.js +1 -1
  117. package/assets/js/highcharts/es-modules/masters/indicators/macd.src.js +1 -1
  118. package/assets/js/highcharts/es-modules/masters/indicators/mfi.src.js +1 -1
  119. package/assets/js/highcharts/es-modules/masters/indicators/momentum.src.js +1 -1
  120. package/assets/js/highcharts/es-modules/masters/indicators/natr.src.js +1 -1
  121. package/assets/js/highcharts/es-modules/masters/indicators/obv.src.js +1 -1
  122. package/assets/js/highcharts/es-modules/masters/indicators/pivot-points.src.js +1 -1
  123. package/assets/js/highcharts/es-modules/masters/indicators/ppo.src.js +1 -1
  124. package/assets/js/highcharts/es-modules/masters/indicators/price-channel.src.js +1 -1
  125. package/assets/js/highcharts/es-modules/masters/indicators/price-envelopes.src.js +1 -1
  126. package/assets/js/highcharts/es-modules/masters/indicators/psar.src.js +1 -1
  127. package/assets/js/highcharts/es-modules/masters/indicators/regressions.src.js +1 -1
  128. package/assets/js/highcharts/es-modules/masters/indicators/roc.src.js +1 -1
  129. package/assets/js/highcharts/es-modules/masters/indicators/rsi.src.js +1 -1
  130. package/assets/js/highcharts/es-modules/masters/indicators/slow-stochastic.src.js +1 -1
  131. package/assets/js/highcharts/es-modules/masters/indicators/stochastic.src.js +1 -1
  132. package/assets/js/highcharts/es-modules/masters/indicators/supertrend.src.js +1 -1
  133. package/assets/js/highcharts/es-modules/masters/indicators/tema.src.js +1 -1
  134. package/assets/js/highcharts/es-modules/masters/indicators/trendline.src.js +1 -1
  135. package/assets/js/highcharts/es-modules/masters/indicators/trix.src.js +1 -1
  136. package/assets/js/highcharts/es-modules/masters/indicators/volume-by-price.src.js +1 -1
  137. package/assets/js/highcharts/es-modules/masters/indicators/vwap.src.js +1 -1
  138. package/assets/js/highcharts/es-modules/masters/indicators/williams-r.src.js +1 -1
  139. package/assets/js/highcharts/es-modules/masters/indicators/wma.src.js +1 -1
  140. package/assets/js/highcharts/es-modules/masters/indicators/zigzag.src.js +1 -1
  141. package/assets/js/highcharts/es-modules/masters/modules/accessibility.src.js +1 -1
  142. package/assets/js/highcharts/es-modules/masters/modules/annotations-advanced.src.js +1 -1
  143. package/assets/js/highcharts/es-modules/masters/modules/annotations.src.js +1 -1
  144. package/assets/js/highcharts/es-modules/masters/modules/arc-diagram.src.js +1 -1
  145. package/assets/js/highcharts/es-modules/masters/modules/arrow-symbols.src.js +1 -1
  146. package/assets/js/highcharts/es-modules/masters/modules/boost-canvas.src.js +1 -1
  147. package/assets/js/highcharts/es-modules/masters/modules/boost.src.js +1 -1
  148. package/assets/js/highcharts/es-modules/masters/modules/broken-axis.src.js +1 -1
  149. package/assets/js/highcharts/es-modules/masters/modules/bullet.src.js +1 -1
  150. package/assets/js/highcharts/es-modules/masters/modules/coloraxis.src.js +1 -1
  151. package/assets/js/highcharts/es-modules/masters/modules/current-date-indicator.src.js +1 -1
  152. package/assets/js/highcharts/es-modules/masters/modules/cylinder.src.js +1 -1
  153. package/assets/js/highcharts/es-modules/masters/modules/data-tools.src.js +2 -1
  154. package/assets/js/highcharts/es-modules/masters/modules/data.src.js +1 -1
  155. package/assets/js/highcharts/es-modules/masters/modules/datagrouping.src.js +1 -1
  156. package/assets/js/highcharts/es-modules/masters/modules/debugger.src.js +1 -1
  157. package/assets/js/highcharts/es-modules/masters/modules/dependency-wheel.src.js +1 -1
  158. package/assets/js/highcharts/es-modules/masters/modules/dotplot.src.js +1 -1
  159. package/assets/js/highcharts/es-modules/masters/modules/drag-panes.src.js +1 -1
  160. package/assets/js/highcharts/es-modules/masters/modules/draggable-points.src.js +1 -1
  161. package/assets/js/highcharts/es-modules/masters/modules/drilldown.src.js +1 -1
  162. package/assets/js/highcharts/es-modules/masters/modules/dumbbell.src.js +1 -1
  163. package/assets/js/highcharts/es-modules/masters/modules/export-data.src.js +1 -1
  164. package/assets/js/highcharts/es-modules/masters/modules/exporting.src.js +1 -1
  165. package/assets/js/highcharts/es-modules/masters/modules/flowmap.src.js +1 -1
  166. package/assets/js/highcharts/es-modules/masters/modules/full-screen.src.js +1 -1
  167. package/assets/js/highcharts/es-modules/masters/modules/funnel.src.js +1 -1
  168. package/assets/js/highcharts/es-modules/masters/modules/funnel3d.src.js +1 -1
  169. package/assets/js/highcharts/es-modules/masters/modules/gantt.src.js +1 -1
  170. package/assets/js/highcharts/es-modules/masters/modules/geoheatmap.src.js +1 -1
  171. package/assets/js/highcharts/es-modules/masters/modules/grid-axis.src.js +1 -1
  172. package/assets/js/highcharts/es-modules/masters/modules/heatmap.src.js +1 -1
  173. package/assets/js/highcharts/es-modules/masters/modules/heikinashi.src.js +1 -1
  174. package/assets/js/highcharts/es-modules/masters/modules/histogram-bellcurve.src.js +1 -1
  175. package/assets/js/highcharts/es-modules/masters/modules/hollowcandlestick.src.js +1 -1
  176. package/assets/js/highcharts/es-modules/masters/modules/item-series.src.js +1 -1
  177. package/assets/js/highcharts/es-modules/masters/modules/lollipop.src.js +1 -1
  178. package/assets/js/highcharts/es-modules/masters/modules/map.src.js +1 -1
  179. package/assets/js/highcharts/es-modules/masters/modules/marker-clusters.src.js +1 -1
  180. package/assets/js/highcharts/es-modules/masters/modules/mouse-wheel-zoom.src.js +1 -1
  181. package/assets/js/highcharts/es-modules/masters/modules/navigator.src.js +1 -1
  182. package/assets/js/highcharts/es-modules/masters/modules/networkgraph.src.js +1 -1
  183. package/assets/js/highcharts/es-modules/masters/modules/no-data-to-display.src.js +1 -1
  184. package/assets/js/highcharts/es-modules/masters/modules/non-cartesian-zoom.src.js +1 -1
  185. package/assets/js/highcharts/es-modules/masters/modules/offline-exporting.src.js +1 -1
  186. package/assets/js/highcharts/es-modules/masters/modules/organization.src.js +1 -1
  187. package/assets/js/highcharts/es-modules/masters/modules/parallel-coordinates.src.js +1 -1
  188. package/assets/js/highcharts/es-modules/masters/modules/pareto.src.js +1 -1
  189. package/assets/js/highcharts/es-modules/masters/modules/pathfinder.src.js +1 -1
  190. package/assets/js/highcharts/es-modules/masters/modules/pattern-fill.src.js +1 -1
  191. package/assets/js/highcharts/es-modules/masters/modules/pictorial.src.js +1 -1
  192. package/assets/js/highcharts/es-modules/masters/modules/pointandfigure.src.js +1 -1
  193. package/assets/js/highcharts/es-modules/masters/modules/price-indicator.src.js +1 -1
  194. package/assets/js/highcharts/es-modules/masters/modules/pyramid3d.src.js +1 -1
  195. package/assets/js/highcharts/es-modules/masters/modules/renko.src.js +1 -1
  196. package/assets/js/highcharts/es-modules/masters/modules/sankey.src.js +1 -1
  197. package/assets/js/highcharts/es-modules/masters/modules/series-label.src.js +1 -1
  198. package/assets/js/highcharts/es-modules/masters/modules/series-on-point.src.js +1 -1
  199. package/assets/js/highcharts/es-modules/masters/modules/solid-gauge.src.js +1 -1
  200. package/assets/js/highcharts/es-modules/masters/modules/sonification.src.js +1 -1
  201. package/assets/js/highcharts/es-modules/masters/modules/static-scale.src.js +1 -1
  202. package/assets/js/highcharts/es-modules/masters/modules/stock-tools.src.js +1 -1
  203. package/assets/js/highcharts/es-modules/masters/modules/stock.src.js +1 -1
  204. package/assets/js/highcharts/es-modules/masters/modules/streamgraph.src.js +1 -1
  205. package/assets/js/highcharts/es-modules/masters/modules/sunburst.src.js +1 -1
  206. package/assets/js/highcharts/es-modules/masters/modules/textpath.src.js +1 -1
  207. package/assets/js/highcharts/es-modules/masters/modules/tiledwebmap.src.js +1 -1
  208. package/assets/js/highcharts/es-modules/masters/modules/tilemap.src.js +1 -1
  209. package/assets/js/highcharts/es-modules/masters/modules/timeline.src.js +1 -1
  210. package/assets/js/highcharts/es-modules/masters/modules/treegraph.src.js +1 -1
  211. package/assets/js/highcharts/es-modules/masters/modules/treegrid.src.js +1 -1
  212. package/assets/js/highcharts/es-modules/masters/modules/treemap.src.js +1 -1
  213. package/assets/js/highcharts/es-modules/masters/modules/variable-pie.src.js +1 -1
  214. package/assets/js/highcharts/es-modules/masters/modules/variwide.src.js +1 -1
  215. package/assets/js/highcharts/es-modules/masters/modules/vector.src.js +1 -1
  216. package/assets/js/highcharts/es-modules/masters/modules/venn.src.js +1 -1
  217. package/assets/js/highcharts/es-modules/masters/modules/windbarb.src.js +1 -1
  218. package/assets/js/highcharts/es-modules/masters/modules/wordcloud.src.js +1 -1
  219. package/assets/js/highcharts/es-modules/masters/modules/xrange.src.js +1 -1
  220. package/assets/js/highcharts/es-modules/masters/standalone-navigator.src.js +7 -6
  221. package/assets/js/highcharts/es-modules/masters/themes/adaptive.src.js +1 -1
  222. package/assets/js/highcharts/es-modules/masters/themes/avocado.src.js +1 -1
  223. package/assets/js/highcharts/es-modules/masters/themes/brand-dark.src.js +1 -1
  224. package/assets/js/highcharts/es-modules/masters/themes/brand-light.src.js +1 -1
  225. package/assets/js/highcharts/es-modules/masters/themes/dark-blue.src.js +1 -1
  226. package/assets/js/highcharts/es-modules/masters/themes/dark-green.src.js +1 -1
  227. package/assets/js/highcharts/es-modules/masters/themes/dark-unica.src.js +1 -1
  228. package/assets/js/highcharts/es-modules/masters/themes/gray.src.js +1 -1
  229. package/assets/js/highcharts/es-modules/masters/themes/grid-light.src.js +1 -1
  230. package/assets/js/highcharts/es-modules/masters/themes/grid.src.js +1 -1
  231. package/assets/js/highcharts/es-modules/masters/themes/high-contrast-dark.src.js +1 -1
  232. package/assets/js/highcharts/es-modules/masters/themes/high-contrast-light.src.js +1 -1
  233. package/assets/js/highcharts/es-modules/masters/themes/sand-signika.src.js +1 -1
  234. package/assets/js/highcharts/es-modules/masters/themes/skies.src.js +1 -1
  235. package/assets/js/highcharts/es-modules/masters/themes/sunset.src.js +1 -1
  236. package/assets/js/highcharts/esm/highcharts-3d.js +3 -3
  237. package/assets/js/highcharts/esm/highcharts-3d.src.js +2 -5
  238. package/assets/js/highcharts/esm/highcharts-gantt.js +8 -2
  239. package/assets/js/highcharts/esm/highcharts-gantt.src.js +8 -2
  240. package/assets/js/highcharts/esm/highcharts-more.js +3 -3
  241. package/assets/js/highcharts/esm/highcharts-more.src.js +475 -31
  242. package/assets/js/highcharts/esm/highcharts.js +4 -4
  243. package/assets/js/highcharts/esm/highcharts.src.js +140 -93
  244. package/assets/js/highcharts/esm/highmaps.js +2 -2
  245. package/assets/js/highcharts/esm/highmaps.src.js +2 -2
  246. package/assets/js/highcharts/esm/highstock.js +2 -2
  247. package/assets/js/highcharts/esm/highstock.src.js +2 -2
  248. package/assets/js/highcharts/esm/i18n/fr-FR.js +1 -1
  249. package/assets/js/highcharts/esm/i18n/fr-FR.src.js +1 -1
  250. package/assets/js/highcharts/esm/i18n/nb-NO.js +1 -1
  251. package/assets/js/highcharts/esm/i18n/nb-NO.src.js +1 -1
  252. package/assets/js/highcharts/esm/i18n/zh-CN.js +1 -1
  253. package/assets/js/highcharts/esm/i18n/zh-CN.src.js +1 -1
  254. package/assets/js/highcharts/esm/indicators/acceleration-bands.js +1 -1
  255. package/assets/js/highcharts/esm/indicators/acceleration-bands.src.js +1 -1
  256. package/assets/js/highcharts/esm/indicators/accumulation-distribution.js +1 -1
  257. package/assets/js/highcharts/esm/indicators/accumulation-distribution.src.js +1 -1
  258. package/assets/js/highcharts/esm/indicators/ao.js +1 -1
  259. package/assets/js/highcharts/esm/indicators/ao.src.js +1 -1
  260. package/assets/js/highcharts/esm/indicators/apo.js +1 -1
  261. package/assets/js/highcharts/esm/indicators/apo.src.js +1 -1
  262. package/assets/js/highcharts/esm/indicators/aroon-oscillator.js +1 -1
  263. package/assets/js/highcharts/esm/indicators/aroon-oscillator.src.js +1 -1
  264. package/assets/js/highcharts/esm/indicators/aroon.js +1 -1
  265. package/assets/js/highcharts/esm/indicators/aroon.src.js +1 -1
  266. package/assets/js/highcharts/esm/indicators/atr.js +1 -1
  267. package/assets/js/highcharts/esm/indicators/atr.src.js +1 -1
  268. package/assets/js/highcharts/esm/indicators/bollinger-bands.js +1 -1
  269. package/assets/js/highcharts/esm/indicators/bollinger-bands.src.js +1 -1
  270. package/assets/js/highcharts/esm/indicators/cci.js +1 -1
  271. package/assets/js/highcharts/esm/indicators/cci.src.js +1 -1
  272. package/assets/js/highcharts/esm/indicators/chaikin.js +1 -1
  273. package/assets/js/highcharts/esm/indicators/chaikin.src.js +1 -1
  274. package/assets/js/highcharts/esm/indicators/cmf.js +1 -1
  275. package/assets/js/highcharts/esm/indicators/cmf.src.js +1 -1
  276. package/assets/js/highcharts/esm/indicators/cmo.js +1 -1
  277. package/assets/js/highcharts/esm/indicators/cmo.src.js +1 -1
  278. package/assets/js/highcharts/esm/indicators/dema.js +1 -1
  279. package/assets/js/highcharts/esm/indicators/dema.src.js +1 -1
  280. package/assets/js/highcharts/esm/indicators/disparity-index.js +1 -1
  281. package/assets/js/highcharts/esm/indicators/disparity-index.src.js +1 -1
  282. package/assets/js/highcharts/esm/indicators/dmi.js +1 -1
  283. package/assets/js/highcharts/esm/indicators/dmi.src.js +1 -1
  284. package/assets/js/highcharts/esm/indicators/dpo.js +1 -1
  285. package/assets/js/highcharts/esm/indicators/dpo.src.js +1 -1
  286. package/assets/js/highcharts/esm/indicators/ema.src.js +0 -3
  287. package/assets/js/highcharts/esm/indicators/ichimoku-kinko-hyo.js +1 -1
  288. package/assets/js/highcharts/esm/indicators/ichimoku-kinko-hyo.src.js +1 -1
  289. package/assets/js/highcharts/esm/indicators/indicators-all.js +2 -2
  290. package/assets/js/highcharts/esm/indicators/indicators-all.src.js +2 -2
  291. package/assets/js/highcharts/esm/indicators/indicators.js +1 -1
  292. package/assets/js/highcharts/esm/indicators/indicators.src.js +1 -1
  293. package/assets/js/highcharts/esm/indicators/keltner-channels.js +1 -1
  294. package/assets/js/highcharts/esm/indicators/keltner-channels.src.js +1 -1
  295. package/assets/js/highcharts/esm/indicators/klinger.js +1 -1
  296. package/assets/js/highcharts/esm/indicators/klinger.src.js +1 -1
  297. package/assets/js/highcharts/esm/indicators/macd.js +2 -2
  298. package/assets/js/highcharts/esm/indicators/macd.src.js +2 -2
  299. package/assets/js/highcharts/esm/indicators/mfi.js +1 -1
  300. package/assets/js/highcharts/esm/indicators/mfi.src.js +1 -1
  301. package/assets/js/highcharts/esm/indicators/momentum.js +1 -1
  302. package/assets/js/highcharts/esm/indicators/momentum.src.js +1 -1
  303. package/assets/js/highcharts/esm/indicators/natr.js +1 -1
  304. package/assets/js/highcharts/esm/indicators/natr.src.js +1 -1
  305. package/assets/js/highcharts/esm/indicators/obv.js +1 -1
  306. package/assets/js/highcharts/esm/indicators/obv.src.js +1 -1
  307. package/assets/js/highcharts/esm/indicators/pivot-points.js +1 -1
  308. package/assets/js/highcharts/esm/indicators/pivot-points.src.js +1 -1
  309. package/assets/js/highcharts/esm/indicators/ppo.js +1 -1
  310. package/assets/js/highcharts/esm/indicators/ppo.src.js +1 -1
  311. package/assets/js/highcharts/esm/indicators/price-channel.js +1 -1
  312. package/assets/js/highcharts/esm/indicators/price-channel.src.js +1 -1
  313. package/assets/js/highcharts/esm/indicators/price-envelopes.js +1 -1
  314. package/assets/js/highcharts/esm/indicators/price-envelopes.src.js +1 -1
  315. package/assets/js/highcharts/esm/indicators/psar.js +1 -1
  316. package/assets/js/highcharts/esm/indicators/psar.src.js +1 -1
  317. package/assets/js/highcharts/esm/indicators/regressions.js +1 -1
  318. package/assets/js/highcharts/esm/indicators/regressions.src.js +1 -1
  319. package/assets/js/highcharts/esm/indicators/roc.js +1 -1
  320. package/assets/js/highcharts/esm/indicators/roc.src.js +1 -1
  321. package/assets/js/highcharts/esm/indicators/rsi.js +1 -1
  322. package/assets/js/highcharts/esm/indicators/rsi.src.js +1 -1
  323. package/assets/js/highcharts/esm/indicators/slow-stochastic.js +1 -1
  324. package/assets/js/highcharts/esm/indicators/slow-stochastic.src.js +1 -1
  325. package/assets/js/highcharts/esm/indicators/stochastic.js +1 -1
  326. package/assets/js/highcharts/esm/indicators/stochastic.src.js +1 -1
  327. package/assets/js/highcharts/esm/indicators/supertrend.js +1 -1
  328. package/assets/js/highcharts/esm/indicators/supertrend.src.js +1 -1
  329. package/assets/js/highcharts/esm/indicators/tema.js +1 -1
  330. package/assets/js/highcharts/esm/indicators/tema.src.js +1 -1
  331. package/assets/js/highcharts/esm/indicators/trendline.js +1 -1
  332. package/assets/js/highcharts/esm/indicators/trendline.src.js +1 -1
  333. package/assets/js/highcharts/esm/indicators/trix.js +1 -1
  334. package/assets/js/highcharts/esm/indicators/trix.src.js +1 -1
  335. package/assets/js/highcharts/esm/indicators/volume-by-price.js +1 -1
  336. package/assets/js/highcharts/esm/indicators/volume-by-price.src.js +1 -1
  337. package/assets/js/highcharts/esm/indicators/vwap.js +1 -1
  338. package/assets/js/highcharts/esm/indicators/vwap.src.js +1 -1
  339. package/assets/js/highcharts/esm/indicators/williams-r.js +1 -1
  340. package/assets/js/highcharts/esm/indicators/williams-r.src.js +1 -1
  341. package/assets/js/highcharts/esm/indicators/wma.js +1 -1
  342. package/assets/js/highcharts/esm/indicators/wma.src.js +1 -1
  343. package/assets/js/highcharts/esm/indicators/zigzag.js +1 -1
  344. package/assets/js/highcharts/esm/indicators/zigzag.src.js +1 -1
  345. package/assets/js/highcharts/esm/modules/accessibility.js +2 -2
  346. package/assets/js/highcharts/esm/modules/accessibility.src.js +47 -21
  347. package/assets/js/highcharts/esm/modules/annotations-advanced.js +2 -2
  348. package/assets/js/highcharts/esm/modules/annotations-advanced.src.js +8 -5
  349. package/assets/js/highcharts/esm/modules/annotations.js +2 -2
  350. package/assets/js/highcharts/esm/modules/annotations.src.js +9 -6
  351. package/assets/js/highcharts/esm/modules/arc-diagram.js +2 -2
  352. package/assets/js/highcharts/esm/modules/arc-diagram.src.js +3 -3
  353. package/assets/js/highcharts/esm/modules/arrow-symbols.js +1 -1
  354. package/assets/js/highcharts/esm/modules/arrow-symbols.src.js +1 -1
  355. package/assets/js/highcharts/esm/modules/boost-canvas.js +2 -2
  356. package/assets/js/highcharts/esm/modules/boost-canvas.src.js +80 -50
  357. package/assets/js/highcharts/esm/modules/boost.js +2 -2
  358. package/assets/js/highcharts/esm/modules/boost.src.js +85 -46
  359. package/assets/js/highcharts/esm/modules/broken-axis.js +2 -2
  360. package/assets/js/highcharts/esm/modules/broken-axis.src.js +115 -91
  361. package/assets/js/highcharts/esm/modules/bullet.js +1 -1
  362. package/assets/js/highcharts/esm/modules/bullet.src.js +1 -1
  363. package/assets/js/highcharts/esm/modules/coloraxis.js +2 -2
  364. package/assets/js/highcharts/esm/modules/coloraxis.src.js +6 -7
  365. package/assets/js/highcharts/esm/modules/current-date-indicator.js +1 -1
  366. package/assets/js/highcharts/esm/modules/current-date-indicator.src.js +1 -1
  367. package/assets/js/highcharts/esm/modules/cylinder.js +1 -1
  368. package/assets/js/highcharts/esm/modules/cylinder.src.js +1 -1
  369. package/assets/js/highcharts/esm/modules/data-tools.js +2 -2
  370. package/assets/js/highcharts/esm/modules/data-tools.src.js +318 -57
  371. package/assets/js/highcharts/esm/modules/data.js +1 -1
  372. package/assets/js/highcharts/esm/modules/data.src.js +1 -1
  373. package/assets/js/highcharts/esm/modules/datagrouping.js +1 -1
  374. package/assets/js/highcharts/esm/modules/datagrouping.src.js +1 -1
  375. package/assets/js/highcharts/esm/modules/debugger.js +1 -1
  376. package/assets/js/highcharts/esm/modules/debugger.src.js +1 -1
  377. package/assets/js/highcharts/esm/modules/dependency-wheel.js +2 -2
  378. package/assets/js/highcharts/esm/modules/dependency-wheel.src.js +3 -3
  379. package/assets/js/highcharts/esm/modules/dotplot.js +1 -1
  380. package/assets/js/highcharts/esm/modules/dotplot.src.js +1 -1
  381. package/assets/js/highcharts/esm/modules/drag-panes.js +1 -1
  382. package/assets/js/highcharts/esm/modules/drag-panes.src.js +1 -1
  383. package/assets/js/highcharts/esm/modules/draggable-points.js +1 -1
  384. package/assets/js/highcharts/esm/modules/draggable-points.src.js +1 -1
  385. package/assets/js/highcharts/esm/modules/drilldown.js +1 -1
  386. package/assets/js/highcharts/esm/modules/drilldown.src.js +2 -2
  387. package/assets/js/highcharts/esm/modules/dumbbell.js +1 -1
  388. package/assets/js/highcharts/esm/modules/dumbbell.src.js +1 -1
  389. package/assets/js/highcharts/esm/modules/export-data.js +2 -2
  390. package/assets/js/highcharts/esm/modules/export-data.src.js +7 -7
  391. package/assets/js/highcharts/esm/modules/exporting.js +2 -2
  392. package/assets/js/highcharts/esm/modules/exporting.src.js +91 -3
  393. package/assets/js/highcharts/esm/modules/flowmap.js +1 -1
  394. package/assets/js/highcharts/esm/modules/flowmap.src.js +1 -1
  395. package/assets/js/highcharts/esm/modules/full-screen.js +1 -1
  396. package/assets/js/highcharts/esm/modules/full-screen.src.js +1 -1
  397. package/assets/js/highcharts/esm/modules/funnel.js +1 -1
  398. package/assets/js/highcharts/esm/modules/funnel.src.js +7 -3
  399. package/assets/js/highcharts/esm/modules/funnel3d.js +1 -1
  400. package/assets/js/highcharts/esm/modules/funnel3d.src.js +1 -1
  401. package/assets/js/highcharts/esm/modules/gantt.js +2 -2
  402. package/assets/js/highcharts/esm/modules/gantt.src.js +222 -188
  403. package/assets/js/highcharts/esm/modules/geoheatmap.js +1 -1
  404. package/assets/js/highcharts/esm/modules/geoheatmap.src.js +1 -1
  405. package/assets/js/highcharts/esm/modules/grid-axis.js +1 -1
  406. package/assets/js/highcharts/esm/modules/grid-axis.src.js +1 -1
  407. package/assets/js/highcharts/esm/modules/heatmap.js +1 -1
  408. package/assets/js/highcharts/esm/modules/heatmap.src.js +1 -1
  409. package/assets/js/highcharts/esm/modules/heikinashi.js +1 -1
  410. package/assets/js/highcharts/esm/modules/heikinashi.src.js +1 -1
  411. package/assets/js/highcharts/esm/modules/histogram-bellcurve.js +2 -2
  412. package/assets/js/highcharts/esm/modules/histogram-bellcurve.src.js +36 -27
  413. package/assets/js/highcharts/esm/modules/hollowcandlestick.js +1 -1
  414. package/assets/js/highcharts/esm/modules/hollowcandlestick.src.js +1 -1
  415. package/assets/js/highcharts/esm/modules/item-series.js +1 -1
  416. package/assets/js/highcharts/esm/modules/item-series.src.js +1 -1
  417. package/assets/js/highcharts/esm/modules/lollipop.js +1 -1
  418. package/assets/js/highcharts/esm/modules/lollipop.src.js +1 -1
  419. package/assets/js/highcharts/esm/modules/map.js +1 -1
  420. package/assets/js/highcharts/esm/modules/map.src.js +1 -1
  421. package/assets/js/highcharts/esm/modules/marker-clusters.js +1 -1
  422. package/assets/js/highcharts/esm/modules/marker-clusters.src.js +1 -1
  423. package/assets/js/highcharts/esm/modules/mouse-wheel-zoom.js +1 -1
  424. package/assets/js/highcharts/esm/modules/mouse-wheel-zoom.src.js +1 -1
  425. package/assets/js/highcharts/esm/modules/navigator.js +2 -2
  426. package/assets/js/highcharts/esm/modules/navigator.src.js +20 -18
  427. package/assets/js/highcharts/esm/modules/networkgraph.js +2 -2
  428. package/assets/js/highcharts/esm/modules/networkgraph.src.js +10 -3
  429. package/assets/js/highcharts/esm/modules/no-data-to-display.js +1 -1
  430. package/assets/js/highcharts/esm/modules/no-data-to-display.src.js +1 -1
  431. package/assets/js/highcharts/esm/modules/non-cartesian-zoom.js +2 -2
  432. package/assets/js/highcharts/esm/modules/non-cartesian-zoom.src.js +26 -26
  433. package/assets/js/highcharts/esm/modules/offline-exporting.js +2 -2
  434. package/assets/js/highcharts/esm/modules/offline-exporting.src.js +5 -3
  435. package/assets/js/highcharts/esm/modules/organization.js +2 -2
  436. package/assets/js/highcharts/esm/modules/organization.src.js +3 -3
  437. package/assets/js/highcharts/esm/modules/parallel-coordinates.js +1 -1
  438. package/assets/js/highcharts/esm/modules/parallel-coordinates.src.js +1 -1
  439. package/assets/js/highcharts/esm/modules/pareto.js +1 -1
  440. package/assets/js/highcharts/esm/modules/pareto.src.js +1 -1
  441. package/assets/js/highcharts/esm/modules/pathfinder.js +1 -1
  442. package/assets/js/highcharts/esm/modules/pathfinder.src.js +1 -1
  443. package/assets/js/highcharts/esm/modules/pattern-fill.js +1 -1
  444. package/assets/js/highcharts/esm/modules/pattern-fill.src.js +1 -1
  445. package/assets/js/highcharts/esm/modules/pictorial.js +1 -1
  446. package/assets/js/highcharts/esm/modules/pictorial.src.js +1 -1
  447. package/assets/js/highcharts/esm/modules/pointandfigure.js +1 -1
  448. package/assets/js/highcharts/esm/modules/pointandfigure.src.js +1 -1
  449. package/assets/js/highcharts/esm/modules/price-indicator.js +1 -1
  450. package/assets/js/highcharts/esm/modules/price-indicator.src.js +1 -1
  451. package/assets/js/highcharts/esm/modules/pyramid3d.js +1 -1
  452. package/assets/js/highcharts/esm/modules/pyramid3d.src.js +1 -1
  453. package/assets/js/highcharts/esm/modules/renko.js +1 -1
  454. package/assets/js/highcharts/esm/modules/renko.src.js +1 -1
  455. package/assets/js/highcharts/esm/modules/sankey.js +2 -2
  456. package/assets/js/highcharts/esm/modules/sankey.src.js +3 -3
  457. package/assets/js/highcharts/esm/modules/series-label.js +1 -1
  458. package/assets/js/highcharts/esm/modules/series-label.src.js +1 -1
  459. package/assets/js/highcharts/esm/modules/series-on-point.js +2 -2
  460. package/assets/js/highcharts/esm/modules/series-on-point.src.js +1 -9
  461. package/assets/js/highcharts/esm/modules/solid-gauge.js +1 -1
  462. package/assets/js/highcharts/esm/modules/solid-gauge.src.js +20 -3
  463. package/assets/js/highcharts/esm/modules/sonification.js +2 -2
  464. package/assets/js/highcharts/esm/modules/sonification.src.js +5 -3
  465. package/assets/js/highcharts/esm/modules/static-scale.js +2 -2
  466. package/assets/js/highcharts/esm/modules/static-scale.src.js +14 -12
  467. package/assets/js/highcharts/esm/modules/stock-tools.js +2 -2
  468. package/assets/js/highcharts/esm/modules/stock-tools.src.js +3 -3
  469. package/assets/js/highcharts/esm/modules/stock.js +2 -2
  470. package/assets/js/highcharts/esm/modules/stock.src.js +68 -76
  471. package/assets/js/highcharts/esm/modules/streamgraph.js +1 -1
  472. package/assets/js/highcharts/esm/modules/streamgraph.src.js +1 -1
  473. package/assets/js/highcharts/esm/modules/sunburst.js +2 -2
  474. package/assets/js/highcharts/esm/modules/sunburst.src.js +9 -9
  475. package/assets/js/highcharts/esm/modules/textpath.js +2 -2
  476. package/assets/js/highcharts/esm/modules/textpath.src.js +3 -3
  477. package/assets/js/highcharts/esm/modules/tiledwebmap.js +1 -1
  478. package/assets/js/highcharts/esm/modules/tiledwebmap.src.js +1 -1
  479. package/assets/js/highcharts/esm/modules/tilemap.js +1 -1
  480. package/assets/js/highcharts/esm/modules/tilemap.src.js +1 -1
  481. package/assets/js/highcharts/esm/modules/timeline.js +1 -1
  482. package/assets/js/highcharts/esm/modules/timeline.src.js +1 -1
  483. package/assets/js/highcharts/esm/modules/treegraph.js +2 -2
  484. package/assets/js/highcharts/esm/modules/treegraph.src.js +13 -7
  485. package/assets/js/highcharts/esm/modules/treegrid.js +2 -2
  486. package/assets/js/highcharts/esm/modules/treegrid.src.js +190 -159
  487. package/assets/js/highcharts/esm/modules/treemap.js +2 -2
  488. package/assets/js/highcharts/esm/modules/treemap.src.js +7 -7
  489. package/assets/js/highcharts/esm/modules/variable-pie.js +1 -1
  490. package/assets/js/highcharts/esm/modules/variable-pie.src.js +1 -1
  491. package/assets/js/highcharts/esm/modules/variwide.js +2 -2
  492. package/assets/js/highcharts/esm/modules/variwide.src.js +10 -12
  493. package/assets/js/highcharts/esm/modules/vector.js +1 -1
  494. package/assets/js/highcharts/esm/modules/vector.src.js +1 -1
  495. package/assets/js/highcharts/esm/modules/venn.js +2 -2
  496. package/assets/js/highcharts/esm/modules/venn.src.js +5 -3
  497. package/assets/js/highcharts/esm/modules/windbarb.js +1 -1
  498. package/assets/js/highcharts/esm/modules/windbarb.src.js +1 -1
  499. package/assets/js/highcharts/esm/modules/wordcloud.js +1 -1
  500. package/assets/js/highcharts/esm/modules/wordcloud.src.js +2 -2
  501. package/assets/js/highcharts/esm/modules/xrange.js +2 -2
  502. package/assets/js/highcharts/esm/modules/xrange.src.js +3 -2
  503. package/assets/js/highcharts/esm/standalone-navigator.js +7 -5
  504. package/assets/js/highcharts/esm/standalone-navigator.src.js +172 -122
  505. package/assets/js/highcharts/esm/themes/adaptive.js +1 -1
  506. package/assets/js/highcharts/esm/themes/adaptive.src.js +1 -1
  507. package/assets/js/highcharts/esm/themes/avocado.js +1 -1
  508. package/assets/js/highcharts/esm/themes/avocado.src.js +1 -1
  509. package/assets/js/highcharts/esm/themes/brand-dark.js +1 -1
  510. package/assets/js/highcharts/esm/themes/brand-dark.src.js +1 -1
  511. package/assets/js/highcharts/esm/themes/brand-light.js +1 -1
  512. package/assets/js/highcharts/esm/themes/brand-light.src.js +1 -1
  513. package/assets/js/highcharts/esm/themes/dark-blue.js +1 -1
  514. package/assets/js/highcharts/esm/themes/dark-blue.src.js +1 -1
  515. package/assets/js/highcharts/esm/themes/dark-green.js +1 -1
  516. package/assets/js/highcharts/esm/themes/dark-green.src.js +1 -1
  517. package/assets/js/highcharts/esm/themes/dark-unica.js +1 -1
  518. package/assets/js/highcharts/esm/themes/dark-unica.src.js +1 -1
  519. package/assets/js/highcharts/esm/themes/gray.js +1 -1
  520. package/assets/js/highcharts/esm/themes/gray.src.js +1 -1
  521. package/assets/js/highcharts/esm/themes/grid-light.js +1 -1
  522. package/assets/js/highcharts/esm/themes/grid-light.src.js +1 -1
  523. package/assets/js/highcharts/esm/themes/grid.js +1 -1
  524. package/assets/js/highcharts/esm/themes/grid.src.js +1 -1
  525. package/assets/js/highcharts/esm/themes/high-contrast-dark.js +1 -1
  526. package/assets/js/highcharts/esm/themes/high-contrast-dark.src.js +1 -1
  527. package/assets/js/highcharts/esm/themes/high-contrast-light.js +1 -1
  528. package/assets/js/highcharts/esm/themes/high-contrast-light.src.js +1 -1
  529. package/assets/js/highcharts/esm/themes/sand-signika.js +1 -1
  530. package/assets/js/highcharts/esm/themes/sand-signika.src.js +1 -1
  531. package/assets/js/highcharts/esm/themes/skies.js +1 -1
  532. package/assets/js/highcharts/esm/themes/skies.src.js +1 -1
  533. package/assets/js/highcharts/esm/themes/sunset.js +1 -1
  534. package/assets/js/highcharts/esm/themes/sunset.src.js +1 -1
  535. package/assets/js/highcharts/highcharts-3d.js +3 -3
  536. package/assets/js/highcharts/highcharts-3d.src.js +2 -5
  537. package/assets/js/highcharts/highcharts-gantt.js +10 -11
  538. package/assets/js/highcharts/highcharts-gantt.src.js +383 -295
  539. package/assets/js/highcharts/highcharts-more.js +3 -3
  540. package/assets/js/highcharts/highcharts-more.src.js +475 -31
  541. package/assets/js/highcharts/highcharts.js +4 -4
  542. package/assets/js/highcharts/highcharts.src.js +140 -93
  543. package/assets/js/highcharts/highmaps.js +4 -11
  544. package/assets/js/highcharts/highmaps.src.js +157 -111
  545. package/assets/js/highcharts/highstock.js +4 -11
  546. package/assets/js/highcharts/highstock.src.js +329 -266
  547. package/assets/js/highcharts/i18n/fr-FR.js +1 -1
  548. package/assets/js/highcharts/i18n/fr-FR.src.js +1 -1
  549. package/assets/js/highcharts/i18n/nb-NO.js +1 -1
  550. package/assets/js/highcharts/i18n/nb-NO.src.js +1 -1
  551. package/assets/js/highcharts/i18n/zh-CN.js +1 -1
  552. package/assets/js/highcharts/i18n/zh-CN.src.js +1 -1
  553. package/assets/js/highcharts/indicators/acceleration-bands.js +1 -1
  554. package/assets/js/highcharts/indicators/acceleration-bands.src.js +1 -1
  555. package/assets/js/highcharts/indicators/accumulation-distribution.js +1 -1
  556. package/assets/js/highcharts/indicators/accumulation-distribution.src.js +1 -1
  557. package/assets/js/highcharts/indicators/ao.js +1 -1
  558. package/assets/js/highcharts/indicators/ao.src.js +1 -1
  559. package/assets/js/highcharts/indicators/apo.js +1 -1
  560. package/assets/js/highcharts/indicators/apo.src.js +1 -1
  561. package/assets/js/highcharts/indicators/aroon-oscillator.js +1 -1
  562. package/assets/js/highcharts/indicators/aroon-oscillator.src.js +1 -1
  563. package/assets/js/highcharts/indicators/aroon.js +1 -1
  564. package/assets/js/highcharts/indicators/aroon.src.js +1 -1
  565. package/assets/js/highcharts/indicators/atr.js +1 -1
  566. package/assets/js/highcharts/indicators/atr.src.js +1 -1
  567. package/assets/js/highcharts/indicators/bollinger-bands.js +1 -1
  568. package/assets/js/highcharts/indicators/bollinger-bands.src.js +1 -1
  569. package/assets/js/highcharts/indicators/cci.js +1 -1
  570. package/assets/js/highcharts/indicators/cci.src.js +1 -1
  571. package/assets/js/highcharts/indicators/chaikin.js +1 -1
  572. package/assets/js/highcharts/indicators/chaikin.src.js +1 -1
  573. package/assets/js/highcharts/indicators/cmf.js +1 -1
  574. package/assets/js/highcharts/indicators/cmf.src.js +1 -1
  575. package/assets/js/highcharts/indicators/cmo.js +1 -1
  576. package/assets/js/highcharts/indicators/cmo.src.js +1 -1
  577. package/assets/js/highcharts/indicators/dema.js +1 -1
  578. package/assets/js/highcharts/indicators/dema.src.js +1 -1
  579. package/assets/js/highcharts/indicators/disparity-index.js +1 -1
  580. package/assets/js/highcharts/indicators/disparity-index.src.js +1 -1
  581. package/assets/js/highcharts/indicators/dmi.js +1 -1
  582. package/assets/js/highcharts/indicators/dmi.src.js +1 -1
  583. package/assets/js/highcharts/indicators/dpo.js +1 -1
  584. package/assets/js/highcharts/indicators/dpo.src.js +1 -1
  585. package/assets/js/highcharts/indicators/ema.src.js +0 -3
  586. package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.js +1 -1
  587. package/assets/js/highcharts/indicators/ichimoku-kinko-hyo.src.js +1 -1
  588. package/assets/js/highcharts/indicators/indicators-all.js +2 -2
  589. package/assets/js/highcharts/indicators/indicators-all.src.js +2 -2
  590. package/assets/js/highcharts/indicators/indicators.js +1 -1
  591. package/assets/js/highcharts/indicators/indicators.src.js +1 -1
  592. package/assets/js/highcharts/indicators/keltner-channels.js +1 -1
  593. package/assets/js/highcharts/indicators/keltner-channels.src.js +1 -1
  594. package/assets/js/highcharts/indicators/klinger.js +1 -1
  595. package/assets/js/highcharts/indicators/klinger.src.js +1 -1
  596. package/assets/js/highcharts/indicators/macd.js +2 -2
  597. package/assets/js/highcharts/indicators/macd.src.js +2 -2
  598. package/assets/js/highcharts/indicators/mfi.js +1 -1
  599. package/assets/js/highcharts/indicators/mfi.src.js +1 -1
  600. package/assets/js/highcharts/indicators/momentum.js +1 -1
  601. package/assets/js/highcharts/indicators/momentum.src.js +1 -1
  602. package/assets/js/highcharts/indicators/natr.js +1 -1
  603. package/assets/js/highcharts/indicators/natr.src.js +1 -1
  604. package/assets/js/highcharts/indicators/obv.js +1 -1
  605. package/assets/js/highcharts/indicators/obv.src.js +1 -1
  606. package/assets/js/highcharts/indicators/pivot-points.js +1 -1
  607. package/assets/js/highcharts/indicators/pivot-points.src.js +1 -1
  608. package/assets/js/highcharts/indicators/ppo.js +1 -1
  609. package/assets/js/highcharts/indicators/ppo.src.js +1 -1
  610. package/assets/js/highcharts/indicators/price-channel.js +1 -1
  611. package/assets/js/highcharts/indicators/price-channel.src.js +1 -1
  612. package/assets/js/highcharts/indicators/price-envelopes.js +1 -1
  613. package/assets/js/highcharts/indicators/price-envelopes.src.js +1 -1
  614. package/assets/js/highcharts/indicators/psar.js +1 -1
  615. package/assets/js/highcharts/indicators/psar.src.js +1 -1
  616. package/assets/js/highcharts/indicators/regressions.js +1 -1
  617. package/assets/js/highcharts/indicators/regressions.src.js +1 -1
  618. package/assets/js/highcharts/indicators/roc.js +1 -1
  619. package/assets/js/highcharts/indicators/roc.src.js +1 -1
  620. package/assets/js/highcharts/indicators/rsi.js +1 -1
  621. package/assets/js/highcharts/indicators/rsi.src.js +1 -1
  622. package/assets/js/highcharts/indicators/slow-stochastic.js +1 -1
  623. package/assets/js/highcharts/indicators/slow-stochastic.src.js +1 -1
  624. package/assets/js/highcharts/indicators/stochastic.js +1 -1
  625. package/assets/js/highcharts/indicators/stochastic.src.js +1 -1
  626. package/assets/js/highcharts/indicators/supertrend.js +1 -1
  627. package/assets/js/highcharts/indicators/supertrend.src.js +1 -1
  628. package/assets/js/highcharts/indicators/tema.js +1 -1
  629. package/assets/js/highcharts/indicators/tema.src.js +1 -1
  630. package/assets/js/highcharts/indicators/trendline.js +1 -1
  631. package/assets/js/highcharts/indicators/trendline.src.js +1 -1
  632. package/assets/js/highcharts/indicators/trix.js +1 -1
  633. package/assets/js/highcharts/indicators/trix.src.js +1 -1
  634. package/assets/js/highcharts/indicators/volume-by-price.js +1 -1
  635. package/assets/js/highcharts/indicators/volume-by-price.src.js +1 -1
  636. package/assets/js/highcharts/indicators/vwap.js +1 -1
  637. package/assets/js/highcharts/indicators/vwap.src.js +1 -1
  638. package/assets/js/highcharts/indicators/williams-r.js +1 -1
  639. package/assets/js/highcharts/indicators/williams-r.src.js +1 -1
  640. package/assets/js/highcharts/indicators/wma.js +1 -1
  641. package/assets/js/highcharts/indicators/wma.src.js +1 -1
  642. package/assets/js/highcharts/indicators/zigzag.js +1 -1
  643. package/assets/js/highcharts/indicators/zigzag.src.js +1 -1
  644. package/assets/js/highcharts/modules/accessibility.js +2 -2
  645. package/assets/js/highcharts/modules/accessibility.src.js +47 -21
  646. package/assets/js/highcharts/modules/annotations-advanced.js +6 -6
  647. package/assets/js/highcharts/modules/annotations-advanced.src.js +22 -19
  648. package/assets/js/highcharts/modules/annotations.js +2 -2
  649. package/assets/js/highcharts/modules/annotations.src.js +9 -6
  650. package/assets/js/highcharts/modules/arc-diagram.js +2 -2
  651. package/assets/js/highcharts/modules/arc-diagram.src.js +3 -3
  652. package/assets/js/highcharts/modules/arrow-symbols.js +1 -1
  653. package/assets/js/highcharts/modules/arrow-symbols.src.js +1 -1
  654. package/assets/js/highcharts/modules/boost-canvas.js +2 -2
  655. package/assets/js/highcharts/modules/boost-canvas.src.js +80 -50
  656. package/assets/js/highcharts/modules/boost.js +2 -2
  657. package/assets/js/highcharts/modules/boost.src.js +85 -46
  658. package/assets/js/highcharts/modules/broken-axis.js +2 -2
  659. package/assets/js/highcharts/modules/broken-axis.src.js +115 -91
  660. package/assets/js/highcharts/modules/bullet.js +1 -1
  661. package/assets/js/highcharts/modules/bullet.src.js +1 -1
  662. package/assets/js/highcharts/modules/coloraxis.js +2 -2
  663. package/assets/js/highcharts/modules/coloraxis.src.js +6 -7
  664. package/assets/js/highcharts/modules/current-date-indicator.js +1 -1
  665. package/assets/js/highcharts/modules/current-date-indicator.src.js +1 -1
  666. package/assets/js/highcharts/modules/cylinder.js +1 -1
  667. package/assets/js/highcharts/modules/cylinder.src.js +1 -1
  668. package/assets/js/highcharts/modules/data-tools.js +2 -2
  669. package/assets/js/highcharts/modules/data-tools.src.js +318 -57
  670. package/assets/js/highcharts/modules/data.js +1 -1
  671. package/assets/js/highcharts/modules/data.src.js +1 -1
  672. package/assets/js/highcharts/modules/datagrouping.js +1 -1
  673. package/assets/js/highcharts/modules/datagrouping.src.js +1 -1
  674. package/assets/js/highcharts/modules/debugger.js +1 -1
  675. package/assets/js/highcharts/modules/debugger.src.js +1 -1
  676. package/assets/js/highcharts/modules/dependency-wheel.js +2 -2
  677. package/assets/js/highcharts/modules/dependency-wheel.src.js +3 -3
  678. package/assets/js/highcharts/modules/dotplot.js +1 -1
  679. package/assets/js/highcharts/modules/dotplot.src.js +1 -1
  680. package/assets/js/highcharts/modules/drag-panes.js +1 -1
  681. package/assets/js/highcharts/modules/drag-panes.src.js +1 -1
  682. package/assets/js/highcharts/modules/draggable-points.js +1 -1
  683. package/assets/js/highcharts/modules/draggable-points.src.js +1 -1
  684. package/assets/js/highcharts/modules/drilldown.js +1 -1
  685. package/assets/js/highcharts/modules/drilldown.src.js +2 -2
  686. package/assets/js/highcharts/modules/dumbbell.js +1 -1
  687. package/assets/js/highcharts/modules/dumbbell.src.js +1 -1
  688. package/assets/js/highcharts/modules/export-data.js +2 -2
  689. package/assets/js/highcharts/modules/export-data.src.js +7 -7
  690. package/assets/js/highcharts/modules/exporting.js +2 -2
  691. package/assets/js/highcharts/modules/exporting.src.js +91 -3
  692. package/assets/js/highcharts/modules/flowmap.js +1 -1
  693. package/assets/js/highcharts/modules/flowmap.src.js +1 -1
  694. package/assets/js/highcharts/modules/full-screen.js +1 -1
  695. package/assets/js/highcharts/modules/full-screen.src.js +1 -1
  696. package/assets/js/highcharts/modules/funnel.js +1 -1
  697. package/assets/js/highcharts/modules/funnel.src.js +7 -3
  698. package/assets/js/highcharts/modules/funnel3d.js +1 -1
  699. package/assets/js/highcharts/modules/funnel3d.src.js +1 -1
  700. package/assets/js/highcharts/modules/gantt.js +14 -14
  701. package/assets/js/highcharts/modules/gantt.src.js +241 -206
  702. package/assets/js/highcharts/modules/geoheatmap.js +1 -1
  703. package/assets/js/highcharts/modules/geoheatmap.src.js +1 -1
  704. package/assets/js/highcharts/modules/grid-axis.js +1 -1
  705. package/assets/js/highcharts/modules/grid-axis.src.js +1 -1
  706. package/assets/js/highcharts/modules/heatmap.js +10 -10
  707. package/assets/js/highcharts/modules/heatmap.src.js +20 -21
  708. package/assets/js/highcharts/modules/heikinashi.js +1 -1
  709. package/assets/js/highcharts/modules/heikinashi.src.js +1 -1
  710. package/assets/js/highcharts/modules/histogram-bellcurve.js +2 -2
  711. package/assets/js/highcharts/modules/histogram-bellcurve.src.js +36 -27
  712. package/assets/js/highcharts/modules/hollowcandlestick.js +1 -1
  713. package/assets/js/highcharts/modules/hollowcandlestick.src.js +1 -1
  714. package/assets/js/highcharts/modules/item-series.js +1 -1
  715. package/assets/js/highcharts/modules/item-series.src.js +1 -1
  716. package/assets/js/highcharts/modules/lollipop.js +1 -1
  717. package/assets/js/highcharts/modules/lollipop.src.js +1 -1
  718. package/assets/js/highcharts/modules/map.js +10 -10
  719. package/assets/js/highcharts/modules/map.src.js +21 -22
  720. package/assets/js/highcharts/modules/marker-clusters.js +1 -1
  721. package/assets/js/highcharts/modules/marker-clusters.src.js +1 -1
  722. package/assets/js/highcharts/modules/mouse-wheel-zoom.js +1 -1
  723. package/assets/js/highcharts/modules/mouse-wheel-zoom.src.js +1 -1
  724. package/assets/js/highcharts/modules/navigator.js +2 -2
  725. package/assets/js/highcharts/modules/navigator.src.js +20 -18
  726. package/assets/js/highcharts/modules/networkgraph.js +2 -2
  727. package/assets/js/highcharts/modules/networkgraph.src.js +10 -3
  728. package/assets/js/highcharts/modules/no-data-to-display.js +1 -1
  729. package/assets/js/highcharts/modules/no-data-to-display.src.js +1 -1
  730. package/assets/js/highcharts/modules/non-cartesian-zoom.js +2 -2
  731. package/assets/js/highcharts/modules/non-cartesian-zoom.src.js +26 -26
  732. package/assets/js/highcharts/modules/offline-exporting.js +2 -2
  733. package/assets/js/highcharts/modules/offline-exporting.src.js +5 -3
  734. package/assets/js/highcharts/modules/organization.js +2 -2
  735. package/assets/js/highcharts/modules/organization.src.js +3 -3
  736. package/assets/js/highcharts/modules/parallel-coordinates.js +1 -1
  737. package/assets/js/highcharts/modules/parallel-coordinates.src.js +1 -1
  738. package/assets/js/highcharts/modules/pareto.js +1 -1
  739. package/assets/js/highcharts/modules/pareto.src.js +1 -1
  740. package/assets/js/highcharts/modules/pathfinder.js +1 -1
  741. package/assets/js/highcharts/modules/pathfinder.src.js +1 -1
  742. package/assets/js/highcharts/modules/pattern-fill.js +1 -1
  743. package/assets/js/highcharts/modules/pattern-fill.src.js +1 -1
  744. package/assets/js/highcharts/modules/pictorial.js +1 -1
  745. package/assets/js/highcharts/modules/pictorial.src.js +1 -1
  746. package/assets/js/highcharts/modules/pointandfigure.js +1 -1
  747. package/assets/js/highcharts/modules/pointandfigure.src.js +1 -1
  748. package/assets/js/highcharts/modules/price-indicator.js +1 -1
  749. package/assets/js/highcharts/modules/price-indicator.src.js +1 -1
  750. package/assets/js/highcharts/modules/pyramid3d.js +1 -1
  751. package/assets/js/highcharts/modules/pyramid3d.src.js +1 -1
  752. package/assets/js/highcharts/modules/renko.js +1 -1
  753. package/assets/js/highcharts/modules/renko.src.js +1 -1
  754. package/assets/js/highcharts/modules/sankey.js +2 -2
  755. package/assets/js/highcharts/modules/sankey.src.js +3 -3
  756. package/assets/js/highcharts/modules/series-label.js +1 -1
  757. package/assets/js/highcharts/modules/series-label.src.js +1 -1
  758. package/assets/js/highcharts/modules/series-on-point.js +2 -2
  759. package/assets/js/highcharts/modules/series-on-point.src.js +6 -16
  760. package/assets/js/highcharts/modules/solid-gauge.js +1 -1
  761. package/assets/js/highcharts/modules/solid-gauge.src.js +20 -3
  762. package/assets/js/highcharts/modules/sonification.js +2 -2
  763. package/assets/js/highcharts/modules/sonification.src.js +5 -3
  764. package/assets/js/highcharts/modules/static-scale.js +2 -2
  765. package/assets/js/highcharts/modules/static-scale.src.js +14 -12
  766. package/assets/js/highcharts/modules/stock-tools.js +2 -2
  767. package/assets/js/highcharts/modules/stock-tools.src.js +3 -3
  768. package/assets/js/highcharts/modules/stock.js +8 -16
  769. package/assets/js/highcharts/modules/stock.src.js +203 -187
  770. package/assets/js/highcharts/modules/streamgraph.js +1 -1
  771. package/assets/js/highcharts/modules/streamgraph.src.js +1 -1
  772. package/assets/js/highcharts/modules/sunburst.js +2 -2
  773. package/assets/js/highcharts/modules/sunburst.src.js +9 -9
  774. package/assets/js/highcharts/modules/textpath.js +2 -2
  775. package/assets/js/highcharts/modules/textpath.src.js +3 -3
  776. package/assets/js/highcharts/modules/tiledwebmap.js +1 -1
  777. package/assets/js/highcharts/modules/tiledwebmap.src.js +1 -1
  778. package/assets/js/highcharts/modules/tilemap.js +1 -1
  779. package/assets/js/highcharts/modules/tilemap.src.js +1 -1
  780. package/assets/js/highcharts/modules/timeline.js +1 -1
  781. package/assets/js/highcharts/modules/timeline.src.js +1 -1
  782. package/assets/js/highcharts/modules/treegraph.js +2 -2
  783. package/assets/js/highcharts/modules/treegraph.src.js +13 -7
  784. package/assets/js/highcharts/modules/treegrid.js +2 -2
  785. package/assets/js/highcharts/modules/treegrid.src.js +190 -159
  786. package/assets/js/highcharts/modules/treemap.js +2 -2
  787. package/assets/js/highcharts/modules/treemap.src.js +7 -7
  788. package/assets/js/highcharts/modules/variable-pie.js +1 -1
  789. package/assets/js/highcharts/modules/variable-pie.src.js +1 -1
  790. package/assets/js/highcharts/modules/variwide.js +2 -2
  791. package/assets/js/highcharts/modules/variwide.src.js +10 -12
  792. package/assets/js/highcharts/modules/vector.js +1 -1
  793. package/assets/js/highcharts/modules/vector.src.js +1 -1
  794. package/assets/js/highcharts/modules/venn.js +2 -2
  795. package/assets/js/highcharts/modules/venn.src.js +5 -3
  796. package/assets/js/highcharts/modules/windbarb.js +1 -1
  797. package/assets/js/highcharts/modules/windbarb.src.js +1 -1
  798. package/assets/js/highcharts/modules/wordcloud.js +1 -1
  799. package/assets/js/highcharts/modules/wordcloud.src.js +2 -2
  800. package/assets/js/highcharts/modules/xrange.js +2 -2
  801. package/assets/js/highcharts/modules/xrange.src.js +3 -2
  802. package/assets/js/highcharts/standalone-navigator.js +7 -5
  803. package/assets/js/highcharts/standalone-navigator.src.js +172 -122
  804. package/assets/js/highcharts/themes/adaptive.js +1 -1
  805. package/assets/js/highcharts/themes/adaptive.src.js +1 -1
  806. package/assets/js/highcharts/themes/avocado.js +1 -1
  807. package/assets/js/highcharts/themes/avocado.src.js +1 -1
  808. package/assets/js/highcharts/themes/brand-dark.js +1 -1
  809. package/assets/js/highcharts/themes/brand-dark.src.js +1 -1
  810. package/assets/js/highcharts/themes/brand-light.js +1 -1
  811. package/assets/js/highcharts/themes/brand-light.src.js +1 -1
  812. package/assets/js/highcharts/themes/dark-blue.js +1 -1
  813. package/assets/js/highcharts/themes/dark-blue.src.js +1 -1
  814. package/assets/js/highcharts/themes/dark-green.js +1 -1
  815. package/assets/js/highcharts/themes/dark-green.src.js +1 -1
  816. package/assets/js/highcharts/themes/dark-unica.js +1 -1
  817. package/assets/js/highcharts/themes/dark-unica.src.js +1 -1
  818. package/assets/js/highcharts/themes/gray.js +1 -1
  819. package/assets/js/highcharts/themes/gray.src.js +1 -1
  820. package/assets/js/highcharts/themes/grid-light.js +1 -1
  821. package/assets/js/highcharts/themes/grid-light.src.js +1 -1
  822. package/assets/js/highcharts/themes/grid.js +1 -1
  823. package/assets/js/highcharts/themes/grid.src.js +1 -1
  824. package/assets/js/highcharts/themes/high-contrast-dark.js +1 -1
  825. package/assets/js/highcharts/themes/high-contrast-dark.src.js +1 -1
  826. package/assets/js/highcharts/themes/high-contrast-light.js +1 -1
  827. package/assets/js/highcharts/themes/high-contrast-light.src.js +1 -1
  828. package/assets/js/highcharts/themes/sand-signika.js +1 -1
  829. package/assets/js/highcharts/themes/sand-signika.src.js +1 -1
  830. package/assets/js/highcharts/themes/skies.js +1 -1
  831. package/assets/js/highcharts/themes/skies.src.js +1 -1
  832. package/assets/js/highcharts/themes/sunset.js +1 -1
  833. package/assets/js/highcharts/themes/sunset.src.js +1 -1
  834. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  !/**
2
- * Highcharts JS v12.3.0 (2025-06-21)
2
+ * Highcharts JS v12.4.0 (2025-09-04)
3
3
  * @module highcharts/modules/boost
4
4
  * @requires highcharts
5
5
  *
@@ -10,4 +10,4 @@
10
10
  *
11
11
  * License: www.highcharts.com/license
12
12
  *
13
- * */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/boost",["highcharts/highcharts"],function(e){return t(e,e.Color)}):"object"==typeof exports?exports["highcharts/modules/boost"]=t(e._Highcharts,e._Highcharts.Color):e.Highcharts=t(e.Highcharts,e.Highcharts.Color)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";let i,s;var r,o={620:e=>{e.exports=t},944:t=>{t.exports=e}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return o[e](i,i.exports,a),i.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var i in t)a.o(t,i)&&!a.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var l={};a.d(l,{default:()=>eI});var h=a(944),d=a.n(h);let f=["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"],u={};f.forEach(e=>{u[e]=!0});let{composed:g}=d(),{addEvent:m,pick:c,pushUnique:p}=d();function b(e){let t=e.series,i=e.boost=e.boost||{},s=e.options.boost||{},r=c(s.seriesThreshold,50);if(t.length>=r)return!0;if(1===t.length)return!1;let o=s.allowForce;if(void 0===o){for(let t of(o=!0,e.xAxis))if(c(t.min,-1/0)>c(t.dataMin,-1/0)||c(t.max,1/0)<c(t.dataMax,1/0)){o=!1;break}}if(void 0!==i.forceChartBoost){if(o)return i.forceChartBoost;i.forceChartBoost=void 0}let n=0,a=0,l;for(let e of t)0!==(l=e.options).boostThreshold&&!1!==e.visible&&"heatmap"!==e.type&&(u[e.type]&&++n,function(...e){let t=-Number.MAX_VALUE;return e.forEach(e=>{if(null!=e&&void 0!==e.length&&e.length>0)return t=e.length,!0}),t}(e.getColumn("x",!0),l.data,e.points)>=(l.boostThreshold||Number.MAX_VALUE)&&++a);return i.forceChartBoost=o&&(n===t.length&&a===n||a>5),i.forceChartBoost}function x(e){function t(){e.boost&&e.boost.wgl&&b(e)&&e.boost.wgl.render(e)}m(e,"predraw",function(){e.boost=e.boost||{},e.boost.forceChartBoost=void 0,e.boosted=!1,e.axes.some(e=>e.isPanning)||e.boost.clear?.(),e.boost.canvas&&e.boost.wgl&&b(e)&&e.boost.wgl.allocateBuffer(e),e.boost.markerGroup&&e.xAxis&&e.xAxis.length>0&&e.yAxis&&e.yAxis.length>0&&e.boost.markerGroup.translate(e.xAxis[0].pos,e.yAxis[0].pos)}),m(e,"load",t,{order:-1}),m(e,"redraw",t);let i=-1,s=-1;m(e.pointer,"afterGetHoverData",t=>{let r=t.hoverPoint?.series;if(e.boost=e.boost||{},e.boost.markerGroup&&r){let t=e.inverted?r.yAxis:r.xAxis,o=e.inverted?r.xAxis:r.yAxis;(t&&t.pos!==i||o&&o.pos!==s)&&(e.series.forEach(e=>{e.halo?.hide()}),e.boost.markerGroup.translate(t.pos,o.pos),i=t.pos,s=o.pos)}})}let A={compose:function(e,t){return t&&p(g,"Boost.Chart")&&e.prototype.callbacks.push(x),e},getBoostClipRect:function(e,t){let i=e.navigator,s={x:e.plotLeft,y:e.plotTop,width:e.plotWidth,height:e.plotHeight};if(i&&e.inverted?(s.width+=i.top+i.height,i.opposite||(s.x=i.left)):i&&!e.inverted&&(s.height=i.top+i.height-e.plotTop),t.is){let{xAxis:i,yAxis:r}=t;if(s=e.getClipBox(t),e.inverted){let e=s.width;s.width=s.height,s.height=e,s.x=r.pos,s.y=i.pos}else s.x=i.pos,s.y=r.pos}if(t===e){let t=e.inverted?e.xAxis:e.yAxis;t.length<=1&&(s.y=Math.min(t[0].pos,s.y),s.height=t[0].pos-e.plotTop+t[0].len)}return s},isChartSeriesBoosting:b};var y=a(620),v=a.n(y);let P={area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"},{clamp:T,error:C,pick:k}=d(),E=class{constructor(e){if(this.errors=[],this.uLocations={},this.gl=e,e&&!this.createShader())return}bind(){this.gl&&this.shaderProgram&&this.gl.useProgram(this.shaderProgram)}createShader(){let e=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"),t=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=e=>this.gl.getUniformLocation(this.shaderProgram,e);return e&&t?(this.shaderProgram=this.gl.createProgram(),this.gl.attachShader(this.shaderProgram,e),this.gl.attachShader(this.shaderProgram,t),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&&C("[highcharts boost] shader error - "+this.errors.join("\n"))}stringToProgram(e,t){let i=this.gl.createShader("vertex"===t?this.gl.VERTEX_SHADER:this.gl.FRAGMENT_SHADER);return(this.gl.shaderSource(i,e),this.gl.compileShader(i),this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS))?i:(this.errors.push("when compiling "+t+" 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(e,t,i,s=1){let r=e.options,o=Number.MAX_VALUE,n=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&e.is("bubble")){let a=e.getPxExtremes();o=k(r.zMin,T(t,!1===r.displayNegative?r.zThreshold:-Number.MAX_VALUE,o)),n=k(r.zMax,Math.max(n,i)),this.gl.uniform1i(this.isBubbleUniform,1),this.gl.uniform1i(this.isCircleUniform,1),this.gl.uniform1i(this.bubbleSizeAreaUniform,"width"!==e.options.sizeBy),this.gl.uniform1i(this.bubbleSizeAbsUniform,e.options.sizeByAbsoluteValue),this.setUniform("bubbleMinSize",a.minPxSize*s),this.setUniform("bubbleMaxSize",a.maxPxSize*s),this.setUniform("bubbleZMin",o),this.setUniform("bubbleZMax",n),this.setUniform("bubbleZThreshold",e.options.zThreshold)}}setColor(e){this.gl&&this.shaderProgram&&this.gl.uniform4f(this.fcUniform,e[0]/255,e[1]/255,e[2]/255,e[3])}setDrawAsCircle(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isCircleUniform,+!!e)}setInverted(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isInverted,e)}setPMatrix(e){this.gl&&this.shaderProgram&&this.gl.uniformMatrix4fv(this.pUniform,!1,e)}setPointSize(e){this.gl&&this.shaderProgram&&this.gl.uniform1f(this.psUniform,e)}setSkipTranslation(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.skipTranslationUniform,+(!0===e))}setTexture(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.uSamplerUniform,e)}setUniform(e,t){if(this.gl&&this.shaderProgram){let i=this.uLocations[e]=this.uLocations[e]||this.gl.getUniformLocation(this.shaderProgram,e);this.gl.uniform1f(i,t)}}},M=class{constructor(e,t,i){this.buffer=!1,this.iterator=0,this.preAllocated=!1,this.vertAttribute=!1,this.components=i||2,this.dataComponents=i,this.gl=e,this.shader=t}allocate(e){this.iterator=-1,this.preAllocated=new Float32Array(4*e)}bind(){if(!this.buffer)return!1;this.gl.vertexAttribPointer(this.vertAttribute,this.components,this.gl.FLOAT,!1,0,0)}build(e,t,i){let s;return(this.data=e||[],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(),t),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(e,t,i,s){this.preAllocated&&(this.preAllocated[++this.iterator]=e,this.preAllocated[++this.iterator]=t,this.preAllocated[++this.iterator]=i,this.preAllocated[++this.iterator]=s)}render(e,t,i){let s=this.preAllocated?this.preAllocated.length:this.data.length;return!!this.buffer&&!!s&&((!e||e>s||e<0)&&(e=0),(!t||t>s)&&(t=s),!(e>=t)&&(i=i||"POINTS",this.gl.drawArrays(this.gl[i],e/this.components,(t-e)/this.components),!0))}},{parse:S}=v(),{doc:w,win:U}=d(),{isNumber:R,isObject:L,merge:_,objectEach:z,pick:D}=d(),N={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},I={scatter:!0,bubble:!0},G=["webgl","experimental-webgl","moz-webgl","webkit-3d"];class B{static orthoMatrix(e,t){return[2/e,0,0,0,0,-(2/t),0,0,0,0,-2,0,-1,1,-1,1]}static seriesPointCount(e){let t,i,s;return e.boosted?(t=!!e.options.stacking,i=(e.getColumn("x").length?e.getColumn("x"):void 0)||e.options.xData||e.getColumn("x",!0),s=(t?e.data:i||e.options.data).length,"treemap"===e.type?s*=12:"heatmap"===e.type?s*=6:N[e.type]&&(s*=2),s):0}constructor(e){this.data=[],this.height=0,this.isInited=!1,this.markerData=[],this.series=[],this.textureHandles={},this.width=0,this.postRenderCallback=e,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(e){"pixelRatio"in e||(e.pixelRatio=1),_(!0,this.settings,e)}allocateBuffer(e){let t=this.vbuffer,i=0;this.settings.usePreallocated&&(e.series.forEach(e=>{e.boosted&&(i+=B.seriesPointCount(e))}),t&&t.allocate(i))}allocateBufferForSingleSeries(e){let t=this.vbuffer,i=0;this.settings.usePreallocated&&(e.boosted&&(i=B.seriesPointCount(e)),t&&t.allocate(i))}clear(){let e=this.gl;e&&e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}pushSeriesData(e,t){let i=this.data,s=this.settings,r=this.vbuffer,o=e.pointArrayMap&&"low,high"===e.pointArrayMap.join(","),{chart:n,options:a,sorted:l,xAxis:h,yAxis:d}=e,f=!!a.stacking,u=a.data,g=e.xAxis.getExtremes(),m=g.min-(e.xAxis.minPointOffset||0),c=g.max+(e.xAxis.minPointOffset||0),p=e.yAxis.getExtremes(),b=p.min-(e.yAxis.minPointOffset||0),x=p.max+(e.yAxis.minPointOffset||0),A=(e.getColumn("x").length?e.getColumn("x"):void 0)||a.xData||e.getColumn("x",!0),y=(e.getColumn("y").length?e.getColumn("y"):void 0)||a.yData||e.getColumn("y",!0),v=(e.getColumn("z").length?e.getColumn("z"):void 0)||a.zData||e.getColumn("z",!0),P=!A||0===A.length,T=a.connectNulls,C=e.points||!1,k=f?e.data:A||u,E={x:Number.MAX_VALUE,y:0},M={x:-Number.MAX_VALUE,y:0},w=void 0===n.index,U=N[e.type],R=a.zoneAxis||"y",_=a.zones||!1,z=a.threshold,D=this.getPixelRatio(),I=e.chart.plotWidth,G=!1,B=!1,O,V,X=0,F=!1,H,W,j,q,Y=-1,Z=!1,K=!1,Q,J=!1,$=!1,ee=!1,et=!1,ei=!0,es=!0,er,eo=!1,en=!1,ea=0;if(a.boostData&&a.boostData.length>0)return;a.gapSize&&(en="value"!==a.gapUnit?a.gapSize*e.closestPointRange:a.gapSize),_&&(er=[],_.forEach((e,t)=>{if(e.color){let i=S(e.color).rgba;i[0]/=255,i[1]/=255,i[2]/=255,er[t]=i,eo||void 0!==e.value||(eo=i)}}),eo||(eo=S(e.pointAttribs&&e.pointAttribs().fill||e.color).rgba,eo[0]/=255,eo[1]/=255,eo[2]/=255)),n.inverted&&(I=e.chart.plotHeight),e.closestPointRangePx=Number.MAX_VALUE;let el=e=>{e&&(t.colorData.push(e[0]),t.colorData.push(e[1]),t.colorData.push(e[2]),t.colorData.push(e[3]))},eh=(e,o,n,a=1,l)=>{el(l),1!==D&&(!s.useGPUTranslations||t.skipTranslation)&&(e*=D,o*=D,a*=D),s.usePreallocated&&r?(r.push(e,o,+!!n,a),ea+=4):(i.push(e),i.push(o),i.push(n?D:0),i.push(a))},ed=()=>{t.segments.length&&(t.segments[t.segments.length-1].to=i.length||ea)},ef=()=>{t.segments.length&&t.segments[t.segments.length-1].from===(i.length||ea)||(ed(),t.segments.push({from:i.length||ea}))},eu=(e,t,i,s,r)=>{el(r),eh(e+i,t),el(r),eh(e,t),el(r),eh(e,t+s),el(r),eh(e,t+s),el(r),eh(e+i,t+s),el(r),eh(e+i,t)};if(ef(),C&&C.length>0){t.skipTranslation=!0,t.drawMode="TRIANGLES",C[0].node&&C[0].node.levelDynamic&&C.sort((e,t)=>{if(e.node){if(e.node.levelDynamic>t.node.levelDynamic)return 1;if(e.node.levelDynamic<t.node.levelDynamic)return -1}return 0}),C.forEach(t=>{let i,s,r=t.plotY;if(void 0!==r&&!isNaN(r)&&null!==t.y&&t.shapeArgs){let{x:r=0,y:o=0,width:a=0,height:l=0}=t.shapeArgs;i=(s=n.styledMode?t.series.colorAttribs(t):s=t.series.pointAttribs(t))["stroke-width"]||0,ee=S(s.fill).rgba,ee[0]/=255,ee[1]/=255,ee[2]/=255,e.is("treemap")&&(i=i||1,V=S(s.stroke).rgba,V[0]/=255,V[1]/=255,V[2]/=255,eu(r,o,a,l,V),i/=2),e.is("heatmap")&&n.inverted&&(r=h.len-r,o=d.len-o,a=-a,l=-l),eu(r+i,o+i,a-2*i,l-2*i,ee)}}),ed();return}for(;Y<k.length-1;){if(void 0===(j=k[++Y]))continue;if(w)break;let i=u&&u[Y];if(!P&&L(i,!0)&&i.color&&(ee=S(i.color).rgba,ee[0]/=255,ee[1]/=255,ee[2]/=255),P?(H=j[0],W=j[1],k[Y+1]&&(K=k[Y+1][0]),k[Y-1]&&(Z=k[Y-1][0]),j.length>=3&&(q=j[2],j[2]>t.zMax&&(t.zMax=j[2]),j[2]<t.zMin&&(t.zMin=j[2]))):(H=j,W=y?.[Y],k[Y+1]&&(K=k[Y+1]),k[Y-1]&&(Z=k[Y-1]),v&&v.length&&(q=v[Y],v[Y]>t.zMax&&(t.zMax=v[Y]),v[Y]<t.zMin&&(t.zMin=v[Y]))),!T&&(null===H||null===W)){ef();continue}if(K&&K>=m&&K<=c&&(J=!0),Z&&Z>=m&&Z<=c&&($=!0),o?(P&&(W=j.slice(1,3)),Q=e.getColumn("low",!0)?.[Y],W=e.getColumn("high",!0)?.[Y]||0):f&&(H=j.x,Q=(W=j.stackY)-j.y),null!=b&&null!=x&&(ei=W>=b&&W<=x),!l&&!ei||(H>c&&M.x<c&&(M.x=H,M.y=W),H<m&&E.x>m&&(E.x=H,E.y=W),null===W&&T))continue;if(null===W||!ei&&k.length>1&&!J&&!$){ef();continue}if((l&&(K>=m||H>=m)&&(Z<=c||H<=c)||!l&&H>=m&&H<=c)&&(et=!0),et||J||$){if(en&&H-Z>en&&ef(),_){let e;_.some((t,i)=>{let s=_[i-1];return"x"===R?void 0!==t.value&&H<=t.value&&(er[i]&&(!s||H>=s.value)&&(e=er[i]),!0):void 0!==t.value&&W<=t.value&&(er[i]&&(!s||W>=s.value)&&(e=er[i]),!0)}),ee=e||eo||ee}if(s.useGPUTranslations||(t.skipTranslation=!0,H=h.toPixels(H,!0),W=d.toPixels(W,!0),!(H>I)||"POINTS"!==t.drawMode)){if(t.hasMarkers&&et&&!1!==G&&(e.closestPointRangePx=Math.min(e.closestPointRangePx,Math.abs(H-G))),!s.useGPUTranslations&&!s.usePreallocated&&G&&1>Math.abs(H-G)&&B&&1>Math.abs(W-B)){s.debug.showSkipSummary&&++X;continue}U&&(O=Q||0,(!1===Q||void 0===Q)&&(O=W<0?W:0),(o||f)&&!d.logarithmic||(O=Math.max(null===z?b:z,b)),s.useGPUTranslations||(O=d.toPixels(O,!0)),eh(H,O,0,0,ee)),a.step&&!es&&eh(H,B,0,2,ee),eh(H,W,0,"bubble"===e.type?q||1:2,ee),G=H,B=W,F=!0,es=!1}}}s.debug.showSkipSummary&&console.log("skipped points:",X);let eg=(e,i)=>{if(s.useGPUTranslations||(t.skipTranslation=!0,e.x=h.toPixels(e.x,!0),e.y=d.toPixels(e.y,!0)),i){this.data=[e.x,e.y,0,2].concat(this.data);return}eh(e.x,e.y,0,2)};!F&&!1!==T&&"line_strip"===e.drawMode&&(E.x<Number.MAX_VALUE&&eg(E,!0),M.x>-Number.MAX_VALUE&&eg(M)),ed()}pushSeries(e){let t=this.markerData,i=this.series,s=this.settings;i.length>0&&i[i.length-1].hasMarkers&&(i[i.length-1].markerTo=t.length),s.debug.timeSeriesProcessing&&console.time("building "+e.type+" series");let r={segments:[],markerFrom:t.length,colorData:[],series:e,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:!!e.options.marker&&!1!==e.options.marker.enabled,showMarkers:!0,drawMode:P[e.type]||"LINE_STRIP"};e.index>=i.length?i.push(r):i[e.index]=r,this.pushSeriesData(e,r),s.debug.timeSeriesProcessing&&console.timeEnd("building "+e.type+" series")}flush(){let e=this.vbuffer;this.data=[],this.markerData=[],this.series=[],e&&e.destroy()}setXAxis(e){let t=this.shader;if(!t)return;let i=this.getPixelRatio();t.setUniform("xAxisTrans",e.transA*i),t.setUniform("xAxisMin",e.min),t.setUniform("xAxisMinPad",e.minPixelPadding*i),t.setUniform("xAxisPointRange",e.pointRange),t.setUniform("xAxisLen",e.len*i),t.setUniform("xAxisPos",e.pos*i),t.setUniform("xAxisCVSCoord",!e.horiz),t.setUniform("xAxisIsLog",!!e.logarithmic),t.setUniform("xAxisReversed",!!e.reversed)}setYAxis(e){let t=this.shader;if(!t)return;let i=this.getPixelRatio();t.setUniform("yAxisTrans",e.transA*i),t.setUniform("yAxisMin",e.min),t.setUniform("yAxisMinPad",e.minPixelPadding*i),t.setUniform("yAxisPointRange",e.pointRange),t.setUniform("yAxisLen",e.len*i),t.setUniform("yAxisPos",e.pos*i),t.setUniform("yAxisCVSCoord",!e.horiz),t.setUniform("yAxisIsLog",!!e.logarithmic),t.setUniform("yAxisReversed",!!e.reversed)}setThreshold(e,t){let i=this.shader;i&&(i.setUniform("hasThreshold",e),i.setUniform("translatedThreshold",t))}renderChart(e){let t=this.gl,i=this.settings,s=this.shader,r=this.vbuffer,o=this.getPixelRatio();if(!e)return!1;this.width=e.chartWidth*o,this.height=e.chartHeight*o;let n=this.height,a=this.width;if(!t||!s||!a||!n)return!1;i.debug.timeRendering&&console.time("gl rendering"),t.canvas.width=a,t.canvas.height=n,s.bind(),t.viewport(0,0,a,n),s.setPMatrix(B.orthoMatrix(a,n)),i.lineWidth>1&&!d().isMS&&t.lineWidth(i.lineWidth),r&&(r.build(this.data,"aVertexPosition",4),r.bind()),s.setInverted(e.inverted),this.series.forEach((n,a)=>{let l=n.series.options,h=l.marker,d=void 0!==l.lineWidth?l.lineWidth:1,f=l.threshold,u=R(f),g=n.series.yAxis.getThreshold(f),m=D(l.marker?l.marker.enabled:null,!!n.series.xAxis.isRadial||null,n.series.closestPointRangePx>2*((l.marker?l.marker.radius:10)||10)),c=this.textureHandles[h&&h.symbol||n.series.symbol]||this.textureHandles.circle,p,b,x,A=[];if(0!==n.segments.length&&n.segments[0].from!==n.segments[0].to&&(c.isReady&&(t.bindTexture(t.TEXTURE_2D,c.handle),s.setTexture(c.handle)),e.styledMode?n.series.markerGroup===n.series.chart.boost?.markerGroup?(delete n.series.markerGroup,n.series.markerGroup=n.series.plotGroup("markerGroup","markers","visible",1,e.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(v())(x).setOpacity(D(l.fillOpacity,1)).get()),A=S(x).rgba,i.useAlpha||(A[3]=1),"add"===l.boostBlending?(t.blendFunc(t.SRC_ALPHA,t.ONE),t.blendEquation(t.FUNC_ADD)):"mult"===l.boostBlending||"multiply"===l.boostBlending?t.blendFunc(t.DST_COLOR,t.ZERO):"darken"===l.boostBlending?(t.blendFunc(t.ONE,t.ONE),t.blendEquation(t.FUNC_MIN)):t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA),s.reset(),n.colorData.length>0?(s.setUniform("hasColor",1),(b=new M(t,s)).build(Array(n.segments[0].from).concat(n.colorData),"aColor",4),b.bind()):(s.setUniform("hasColor",0),t.disableVertexAttribArray(t.getAttribLocation(s.getProgram(),"aColor"))),s.setColor(A),this.setXAxis(n.series.xAxis),this.setYAxis(n.series.yAxis),this.setThreshold(u,g),"POINTS"===n.drawMode&&s.setPointSize(2*D(l.marker&&l.marker.radius,.5)*o),s.setSkipTranslation(n.skipTranslation),"bubble"===n.series.type&&s.setBubbleUniforms(n.series,n.zMin,n.zMax,o),s.setDrawAsCircle(I[n.series.type]||!1),r)){if(d>0||"LINE_STRIP"!==n.drawMode)for(p=0;p<n.segments.length;p++)r.render(n.segments[p].from,n.segments[p].to,n.drawMode);if(n.hasMarkers&&m)for(s.setPointSize(2*D(l.marker&&l.marker.radius,5)*o),s.setDrawAsCircle(!0),p=0;p<n.segments.length;p++)r.render(n.segments[p].from,n.segments[p].to,"POINTS")}}),i.debug.timeRendering&&console.timeEnd("gl rendering"),this.postRenderCallback&&this.postRenderCallback(this),this.flush()}render(e){if(this.clear(),e.renderer.forExport)return this.renderChart(e);this.isInited?this.renderChart(e):setTimeout(()=>{this.render(e)},1)}setSize(e,t){let i=this.shader;i&&(this.width!==e||this.height!==t)&&(this.width=e,this.height=t,i.bind(),i.setPMatrix(B.orthoMatrix(e,t)))}init(e,t){let i=this.settings;if(this.isInited=!1,!e)return!1;i.debug.timeSetup&&console.time("gl setup");for(let t=0;t<G.length&&(this.gl=e.getContext(G[t],{}),!this.gl);++t);let s=this.gl;if(!s)return!1;t||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 r=this.shader=new E(s);if(!r)return!1;this.vbuffer=new M(s,r);let o=(e,t)=>{let i={isReady:!1,texture:w.createElement("canvas"),handle:s.createTexture()},r=i.texture.getContext("2d");this.textureHandles[e]=i,i.texture.width=512,i.texture.height=512,r.mozImageSmoothingEnabled=!1,r.webkitImageSmoothingEnabled=!1,r.msImageSmoothingEnabled=!1,r.imageSmoothingEnabled=!1,r.strokeStyle="rgba(255, 255, 255, 0)",r.fillStyle="#FFF",t(r);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(e){}};return o("circle",e=>{e.beginPath(),e.arc(256,256,256,0,2*Math.PI),e.stroke(),e.fill()}),o("square",e=>{e.fillRect(0,0,512,512)}),o("diamond",e=>{e.beginPath(),e.moveTo(256,0),e.lineTo(512,256),e.lineTo(256,512),e.lineTo(0,256),e.lineTo(256,0),e.fill()}),o("triangle",e=>{e.beginPath(),e.moveTo(0,512),e.lineTo(256,0),e.lineTo(512,512),e.lineTo(0,512),e.fill()}),o("triangle-down",e=>{e.beginPath(),e.moveTo(0,0),e.lineTo(256,512),e.lineTo(512,0),e.lineTo(0,0),e.fill()}),this.isInited=!0,i.debug.timeSetup&&console.timeEnd("gl setup"),!0}destroy(){let e=this.gl,t=this.shader,i=this.vbuffer;this.flush(),i&&i.destroy(),t&&t.destroy(),e&&(z(this.textureHandles,t=>{t.handle&&e.deleteTexture(t.handle)}),e.canvas.width=1,e.canvas.height=1)}}!function(e){e.setLength=function(e,t,i){return Array.isArray(e)?(e.length=t,e):e[i?"subarray":"slice"](0,t)},e.splice=function(e,t,i,s,r=[]){if(Array.isArray(e))return Array.isArray(r)||(r=Array.from(r)),{removed:e.splice(t,i,...r),array:e};let o=Object.getPrototypeOf(e).constructor,n=e[s?"subarray":"slice"](t,t+i),a=new o(e.length-i+r.length);return a.set(e.subarray(0,t),0),a.set(r,t),a.set(e.subarray(t+i),t+r.length),{removed:n,array:a}}}(r||(r={}));let{setLength:O,splice:V}=r,{fireEvent:X,objectEach:F,uniqueKey:H}=d(),W=class{constructor(e={}){this.autoId=!e.id,this.columns={},this.id=e.id||H(),this.modified=this,this.rowCount=0,this.versionTag=H();let t=0;F(e.columns||{},(e,i)=>{this.columns[i]=e.slice(),t=Math.max(t,e.length)}),this.applyRowCount(t)}applyRowCount(e){this.rowCount=e,F(this.columns,(t,i)=>{t.length!==e&&(this.columns[i]=O(t,e))})}deleteRows(e,t=1){if(t>0&&e<this.rowCount){let i=0;F(this.columns,(s,r)=>{this.columns[r]=V(s,e,t).array,i=s.length}),this.rowCount=i}X(this,"afterDeleteRows",{rowIndex:e,rowCount:t}),this.versionTag=H()}getColumn(e,t){return this.columns[e]}getColumns(e,t){return(e||Object.keys(this.columns)).reduce((e,t)=>(e[t]=this.columns[t],e),{})}getRow(e,t){return(t||Object.keys(this.columns)).map(t=>this.columns[t]?.[e])}setColumn(e,t=[],i=0,s){this.setColumns({[e]:t},i,s)}setColumns(e,t,i){let s=this.rowCount;F(e,(e,t)=>{this.columns[t]=e.slice(),s=e.length}),this.applyRowCount(s),i?.silent||(X(this,"afterSetColumns"),this.versionTag=H())}setRow(e,t=this.rowCount,i,s){let{columns:r}=this,o=i?this.rowCount+1:t+1;F(e,(e,n)=>{let a=r[n]||s?.addColumns!==!1&&Array(o);a&&(i?a=V(a,t,0,!0,[e]).array:a[t]=e,r[n]=a)}),o>this.rowCount&&this.applyRowCount(o),s?.silent||(X(this,"afterSetRows"),this.versionTag=H())}},{getBoostClipRect:j,isChartSeriesBoosting:q}=A,{getOptions:Y}=d(),{composed:Z,doc:K,noop:Q,win:J}=d(),{addEvent:$,destroyObjectProperties:ee,error:et,extend:ei,fireEvent:es,isArray:er,isNumber:eo,pick:en,pushUnique:ea,wrap:el,defined:eh}=d();function ed(e,t){let i=t.boost;e&&i&&i.target&&i.canvas&&!q(t.chart)&&e.allocateBufferForSingleSeries(t)}function ef(e){return en(e&&e.options&&e.options.boost&&e.options.boost.enabled,!0)}function eu(e,t){let i=e.constructor,r=e.seriesGroup||t.group,o=e.chartWidth,n=e.chartHeight,a=e,l="undefined"!=typeof SVGForeignObjectElement,h=!1;q(e)?a=e:(a=t,h=!!(t.options.events?.click||t.options.point?.events?.click));let d=a.boost=a.boost||{};if(l=!1,s||(s=K.createElement("canvas")),!d.target&&(d.canvas=s,e.renderer.forExport||!l?(a.renderTarget=d.target=e.renderer.image("",0,0,o,n).addClass("highcharts-boost-canvas").add(r),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=e.renderer.createElement("foreignObject").add(r),a.renderTarget=d.target=K.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(){o=e.chartWidth,n=e.chartHeight,(d.targetFo||d.target).attr({x:0,y:0,width:o,height:n}).css({pointerEvents:h?void 0:"none",mixedBlendMode:"normal",opacity:1}).addClass(h?"highcharts-tracker":""),a instanceof i&&a.boost?.markerGroup?.translate(e.plotLeft,e.plotTop)},d.clipRect=e.renderer.clipRect(),(d.targetFo||d.target).attr({zIndex:t.options.zIndex}),a instanceof i&&(a.boost.markerGroup=a.renderer.g().add(r).translate(t.xAxis.pos,t.yAxis.pos))),d.canvas.width=o,d.canvas.height=n,d.clipRect){let t=j(e,a),i=t.width===e.clipBox.width&&t.height===e.clipBox.height?r:d.targetFo||d.target;d.clipRect.attr(t),i?.clip(d.clipRect)}return d.resize(),d.clear(),!d.wgl&&(d.wgl=new B(e=>{e.settings.debug.timeBufferCopy&&console.time("buffer copy"),d.copy(),e.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),d.wgl.init(d.canvas)||et("[highcharts boost] - unable to init WebGL renderer"),d.wgl.setOptions(e.options.boost||{}),a instanceof i&&d.wgl.allocateBuffer(e)),d.wgl.setSize(o,n),d.wgl}function eg(e){let t=e.points;if(t){let e,i;for(i=0;i<t.length;i+=1)(e=t[i])&&e.destroyElements&&e.destroyElements()}for(let t of(["graph","area","tracker"].forEach(t=>{let i=e[t];i&&(e[t]=i.destroy())}),e.zones))ee(t,void 0,!0)}function em(e,t,i,s,r,o){let n=(r=r||0)+(s=s||3e3),a=!0;for(;a&&r<n&&r<e.length;)a=t(e[r],r),++r;a&&(r<e.length?o?em(e,t,i,s,r,o):J.requestAnimationFrame?J.requestAnimationFrame(function(){em(e,t,i,s,r)}):setTimeout(em,0,e,t,i,s,r):i&&i())}function ec(e,t){let i=e.options,s=e.dataTable.modified.rowCount,r=e.xAxis&&e.xAxis.options,o=e.yAxis&&e.yAxis.options,n=e.colorAxis&&e.colorAxis.options;return s>(i.boostThreshold||Number.MAX_VALUE)&&eo(o.min)&&eo(o.max)&&(!t||eo(r.min)&&eo(r.max))&&(!n||eo(n.min)&&eo(n.max))}let ep=(e,t)=>!e.forceCrop&&(q(e.chart)||(t?t.length:0)>=(e.options.boostThreshold||Number.MAX_VALUE));function eb(){let e=this,t=e.chart;t.boost&&t.boost.markerGroup===e.markerGroup&&(e.markerGroup=void 0),t.hoverPoints&&(t.hoverPoints=t.hoverPoints.filter(function(t){return t.series===e})),t.hoverPoint&&t.hoverPoint.series===e&&(t.hoverPoint=void 0)}function ex(){let e=this.boost;e&&e.canvas&&e.target&&(e.wgl&&e.wgl.clear(),e.clear&&e.clear())}function eA(e){let t=e.boost;t&&t.canvas&&t.target&&t.wgl&&!q(e.chart)&&t.wgl.render(e.chart)}function ey(e,t){let i=e.options,s=e.xAxis,r=e.pointClass;if(t instanceof r)return t;let o=e.is("scatter"),n=(o&&e.getColumn("x",!0).length?e.getColumn("x",!0):void 0)||(e.getColumn("x").length?e.getColumn("x"):void 0)||i.xData||e.getColumn("x",!0)||!1,a=e.getColumn("y",!0)||i.yData||!1,l=new r(e,o&&n&&a?[n[t.i],a[t.i]]:(er(e.options.data)?e.options.data:[])[t.i],n?n[t.i]:void 0);return l.category=en(s.categories?s.categories[l.x]:l.x,l.x),l.key=l.name??l.category,l.dist=t.dist,l.distX=t.distX,l.plotX=t.plotX,l.plotY=t.plotY,l.index=t.i,l.percentage=t.percentage,l.isInside=e.isPointInside(l),l}function ev(e){let{options:t,xAxis:i,yAxis:s}=this;if(!this.isDirty&&!i.isDirty&&!s.isDirty&&!e)return!1;this.yAxis.setTickInterval();let r=t.boostThreshold||0,o=t.cropThreshold,n=this.getColumn("x"),a=i.getExtremes(),l=a.max??Number.MAX_VALUE,h=a.min??-Number.MAX_VALUE,d=this.getColumn("y"),f=s.getExtremes(),u=f.max??Number.MAX_VALUE,g=f.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)&&u<=(s.old.max??Number.MAX_VALUE))return this.dataTable.modified.setColumns({x:n,y:d}),!0;let m=this.dataTable.rowCount;if(!r||m<r||o&&!this.forceCrop&&!this.getExtremesFromAll&&!t.getExtremesFromAll&&m<o)return this.dataTable.modified.setColumns({x:n,y:d}),!0;let c=[],p=[],b=[],x=!(eo(a.max)||eo(a.min)),A=!(eo(f.max)||eo(f.min)),y=!1,v,P=n[0],T=n[0],C,k=d?.[0],E=d?.[0];for(let e=0,t=n.length;e<t;++e)v=n[e],C=d?.[e],v>=h&&v<=l&&C>=g&&C<=u?(c.push({x:v,y:C}),p.push(v),b.push(C),x&&(P=Math.max(P,v),T=Math.min(T,v)),A&&(k=Math.max(k,C),E=Math.min(E,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(k,s.dataMax||0),s.dataMin=Math.min(E,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:p,y:b}),ep(this,p)||(this.processedData=c),!0}function eP(){let e=this.options||{},t=this.chart,s=t.boost,r=this.boost,o=this.xAxis,n=this.yAxis,a=e.xData||this.getColumn("x",!0),l=e.yData||this.getColumn("y",!0),h=this.getColumn("low",!0),d=this.getColumn("high",!0),f=this.processedData||e.data,u=o.getExtremes(),g=u.min-(o.minPointOffset||0),m=u.max+(o.minPointOffset||0),c=n.getExtremes(),p=c.min-(n.minPointOffset||0),b=c.max+(n.minPointOffset||0),x={},A=!!this.sampling,y=e.enableMouseTracking,v=e.threshold,P=this.pointArrayMap&&"low,high"===this.pointArrayMap.join(","),T=!!e.stacking,C=this.cropStart||0,k=this.requireSorting,E=!a,M="x"===e.findNearestPointBy,S=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||this.getColumn("x",!0),w=en(e.lineWidth,1),U=e.nullInteraction&&p,R=t.tooltip,L=!1,_,z=n.getThreshold(v),D,N,I,G;if(!this.boosted||(this.points?.forEach(e=>{e?.destroyElements?.()}),this.points=[],R&&!R.isHidden?(t.hoverPoint?.series===this||t.hoverPoints?.some(e=>e.series===this))&&(t.hoverPoint=t.hoverPoints=void 0,R.hide(0)):t.hoverPoints&&(t.hoverPoints=t.hoverPoints.filter(e=>e.series!==this)),o.isPanning||n.isPanning)||(L=eu(t,this),t.boosted=!0,!this.visible))return;(this.points||this.graph)&&eg(this),q(t)?(this.markerGroup&&this.markerGroup!==s?.markerGroup&&this.markerGroup.destroy(),this.markerGroup=s?.markerGroup,r&&r.target&&(this.renderTarget=r.target=r.target.destroy())):(this.markerGroup===s?.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers","visible",1,t.seriesGroup).addClass("highcharts-tracker"));let B=this.points=[],O=(e,s,r,a)=>{let l=!!S&&S[C+r],h=e=>{t.inverted&&(e=o.len-e,s=n.len-s),B.push({destroy:Q,x:l,clientX:e,plotX:e,plotY:s,i:C+r,percentage:a})};e=Math.ceil(e),i=M?e:e+","+s,y&&(x[i]?l===S[S.length-1]&&(B.length--,h(e)):(x[i]=!0,h(e)))};this.buildKDTree=Q,es(this,"renderCanvas"),this.is("line")&&w>1&&r?.target&&s&&!s.lineWidthFilter&&(s.lineWidthFilter=t.renderer.definition({tagName:"filter",children:[{tagName:"feMorphology",attributes:{operator:"dilate",radius:.25*w}}],attributes:{id:"linewidth"}}),r.target.attr({filter:"url(#linewidth)"})),L&&(ed(L,this),L.pushSeries(this),eA(this));let V=L.settings;t.renderer.forExport||(V.debug.timeKDTree&&console.time("kd tree building"),em(T?this.data.slice(C):a||f,function(e,i){let s=void 0===t.index,r,a,f,u,c,x=!1,y=!0;return!eh(e)||(!s&&(E?(r=e[0],a=e[1]):(r=e,a=l[i]??U??null),P?(E&&(a=e.slice(1,3)),x=h[i],a=d[i]):T&&(r=e.x,x=(a=e.stackY)-e.y,c=e.percentage),k||(y=(a||0)>=p&&a<=b),null!==a&&r>=g&&r<=m&&y&&(f=o.toPixels(r,!0),A?((void 0===I||f===_)&&(P||(x=a),(void 0===G||a>N)&&(N=a,G=i),(void 0===I||x<D)&&(D=x,I=i)),M&&f===_||(void 0!==I&&(u=n.toPixels(N,!0),z=n.toPixels(D,!0),O(f,u,G,c),z!==u&&O(f,z,I,c)),I=G=void 0,_=f)):O(f,u=Math.ceil(n.toPixels(a,!0)),i,c))),!s)},()=>{es(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),V.debug.timeKDTree&&console.timeEnd("kd tree building")}))}function eT(e){let t=!0;if(this.chart.options&&this.chart.options.boost&&(t=void 0===this.chart.options.boost.enabled||this.chart.options.boost.enabled),!t||!this.boosted)return e.call(this);this.chart.boosted=!0;let i=eu(this.chart,this);i&&(ed(i,this),i.pushSeries(this)),eA(this)}function eC(e){if(this.boosted){if(ec(this))return{};if(this.xAxis.isPanning||this.yAxis.isPanning)return this}return e.apply(this,[].slice.call(arguments,1))}function ek(e){let t=this.options.data;if(ef(this.chart)&&u[this.type]){let s=this.is("scatter")&&!this.is("bubble")&&!this.is("treemap")&&!this.is("heatmap");if(!ep(this,t)||s||this.is("treemap")||this.options.stacking||!ec(this,!0)){if(this.boosted&&(this.xAxis?.isPanning||this.yAxis?.isPanning))return;s&&"treegrid"!==this.yAxis.type?ev.call(this,arguments[1]):e.apply(this,[].slice.call(arguments,1)),t=this.getColumn("x",!0)}if(this.boosted=ep(this,t),this.boosted){let e;this.options.data?.length&&(eo(e=this.getFirstValidPoint(this.options.data))||er(e)||this.is("treemap")||et(12,!1,this.chart));var i=this;i.boost=i.boost||{getPoint:e=>ey(i,e)};let t=i.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach(e=>{t.push({prop:e,val:i[e],own:Object.hasOwnProperty.call(i,e)})}),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 e of i.data)e?.destroy?.();i.data.length=0,i.points.length=0,delete i.processedData}}else!function(e){let t=e.boost,i=e.chart,s=i.boost;if(s?.markerGroup)for(let e of(s.markerGroup.destroy(),s.markerGroup=void 0,i.series))e.markerGroup=void 0,e.markerGroup=e.plotGroup("markerGroup","markers","visible",1,i.seriesGroup).addClass("highcharts-tracker");t&&((t.altered||[]).forEach(t=>{t.own?e[t.prop]=t.val:delete e[t.prop]}),t.clear&&t.clear()),(i.seriesGroup||e.group)?.clip()}(this)}else e.apply(this,[].slice.call(arguments,1))}function eE(e){let t=e.apply(this,[].slice.call(arguments,1));return this.boost&&t?this.boost.getPoint(t):t}let eM={compose:function(e,t,i,s){if(ea(Z,"Boost.Series")){let r=Y().plotOptions,o=e.prototype;if($(e,"destroy",eb),$(e,"hide",ex),s&&(o.renderCanvas=eP),el(o,"getExtremes",eC),el(o,"processData",ek),el(o,"searchPoint",eE),["translate","generatePoints","drawTracker","drawPoints","render"].forEach(e=>(function(e,t,i){function s(e){let t=this.options.stacking&&("translate"===i||"generatePoints"===i);this.boosted&&!t&&ef(this.chart)&&"heatmap"!==this.type&&"treemap"!==this.type&&u[this.type]&&0!==this.options.boostThreshold?"render"===i&&this.renderCanvas&&this.renderCanvas():e.call(this)}if(el(e,i,s),"translate"===i)for(let e of["column","arearange","columnrange","heatmap","treemap"])t[e]&&el(t[e].prototype,i,s)})(o,t,e)),el(i.prototype,"firePointEvent",function(e,t,i){if("click"===t&&this.series.boosted){let e=i.point;if((e.dist||e.distX)>=(e.series.options.marker?.radius??10))return}return e.apply(this,[].slice.call(arguments,1))}),f.forEach(e=>{let i=r[e];i&&(i.boostThreshold=5e3,i.boostData=[],t[e].prototype.fillOpacity=!0)}),s){let{area:e,areaspline:i,bubble:s,column:r,heatmap:o,scatter:n,treemap:a}=t;if(e&&ei(e.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),i&&ei(i.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),s){let e=s.prototype;delete e.buildKDTree,el(e,"markerAttribs",function(e){return!this.boosted&&e.apply(this,[].slice.call(arguments,1))})}r&&ei(r.prototype,{fill:!0,sampling:!0}),n&&(n.prototype.fill=!0),[o,a].forEach(e=>{e&&el(e.prototype,"drawPoints",eT)})}}return e},destroyGraphics:eg,eachAsync:em,getPoint:ey},eS={defaultHTMLColorMap:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",feldspar:"#d19275",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslateblue:"#8470ff",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",violetred:"#d02090",wheat:"#f5deb3",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}},{doc:ew,win:eU}=d(),{addEvent:eR,error:eL}=d(),e_=["webgl","experimental-webgl","moz-webgl","webkit-3d"];function ez(){let e,t=!1;if(void 0!==eU.WebGLRenderingContext){e=ew.createElement("canvas");for(let t=0;t<e_.length;++t)try{if(null!=e.getContext(e_[t]))return!0}catch(e){}}return!1}let eD={compose:function(e,t,i,s,r,o){let n=ez();n||(void 0!==d().initCanvasBoost?d().initCanvasBoost():eL(26)),o&&!o.names.lightgoldenrodyellow&&(o.names={...o.names,...eS.defaultHTMLColorMap}),A.compose(e,n),eM.compose(i,s,r,n),eR(t,"setExtremes",function(e){for(let t of[this.chart,...this.series].map(e=>e.renderTarget).filter(Boolean)){let{horiz:i,pos:s}=this,r=i?"scaleX":"scaleY",o=i?"translateX":"translateY",n=t?.[r]??1,a=1,l=0,h=1,d="none";this.isPanning&&(a=(e.scale??1)*n,l=(t?.[o]||0)-a*(e.move||0)+n*s-a*s,h=.7,d="blur(3px)"),t?.attr({[r]:a,[o]:l}).css({transition:"250ms filter, 250ms opacity",filter:d,opacity:h})}})},hasWebGLSupport:ez},eN=d();eN.hasWebGLSupport=eD.hasWebGLSupport,eD.compose(eN.Chart,eN.Axis,eN.Series,eN.seriesTypes,eN.Point,eN.Color);let eI=d();return l.default})());
13
+ * */function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(e._Highcharts,e._Highcharts.Color):"function"==typeof define&&define.amd?define("highcharts/modules/boost",["highcharts/highcharts"],function(e){return t(e,e.Color)}):"object"==typeof exports?exports["highcharts/modules/boost"]=t(e._Highcharts,e._Highcharts.Color):e.Highcharts=t(e.Highcharts,e.Highcharts.Color)}("undefined"==typeof window?this:window,(e,t)=>(()=>{"use strict";let i,s;var r,o={620:e=>{e.exports=t},944:t=>{t.exports=e}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return o[e](i,i.exports,a),i.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var i in t)a.o(t,i)&&!a.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var l={};a.d(l,{default:()=>eG});var h=a(944),d=a.n(h);let f=["area","areaspline","arearange","column","columnrange","bar","line","scatter","heatmap","bubble","treemap"],u={};f.forEach(e=>{u[e]=!0});let{composed:g}=d(),{addEvent:m,pick:c,pushUnique:p}=d();function b(e){let t=e.series,i=e.boost=e.boost||{},s=e.options.boost||{},r=c(s.seriesThreshold,50);if(t.length>=r)return!0;if(1===t.length)return!1;let o=s.allowForce;if(void 0===o){for(let t of(o=!0,e.xAxis))if(c(t.min,-1/0)>c(t.dataMin,-1/0)||c(t.max,1/0)<c(t.dataMax,1/0)){o=!1;break}}if(void 0!==i.forceChartBoost){if(o)return i.forceChartBoost;i.forceChartBoost=void 0}let n=0,a=0,l;for(let e of t)0!==(l=e.options).boostThreshold&&!1!==e.visible&&"heatmap"!==e.type&&(u[e.type]&&++n,function(...e){let t=-Number.MAX_VALUE;return e.forEach(e=>{if(null!=e&&void 0!==e.length&&e.length>0)return t=e.length,!0}),t}(e.getColumn("x",!0),l.data,e.points)>=(l.boostThreshold||Number.MAX_VALUE)&&++a);return i.forceChartBoost=o&&(n===t.length&&a===n||a>5),i.forceChartBoost}function x(e){function t(){e.boost&&e.boost.wgl&&b(e)&&e.boost.wgl.render(e)}m(e,"predraw",function(){e.boost=e.boost||{},e.boost.forceChartBoost=void 0,e.boosted=!1,e.axes.some(e=>e.isPanning)||e.boost.clear?.(),e.boost.canvas&&e.boost.wgl&&b(e)&&e.boost.wgl.allocateBuffer(e),e.boost.markerGroup&&e.xAxis&&e.xAxis.length>0&&e.yAxis&&e.yAxis.length>0&&e.boost.markerGroup.translate(e.xAxis[0].pos,e.yAxis[0].pos)}),m(e,"load",t,{order:-1}),m(e,"redraw",t);let i=-1,s=-1;m(e.pointer,"afterGetHoverData",t=>{let r=t.hoverPoint?.series;if(e.boost=e.boost||{},e.boost.markerGroup&&r){let t=e.inverted?r.yAxis:r.xAxis,o=e.inverted?r.xAxis:r.yAxis;(t&&t.pos!==i||o&&o.pos!==s)&&(e.series.forEach(e=>{e.halo?.hide()}),e.boost.markerGroup.translate(t.pos,o.pos),i=t.pos,s=o.pos)}})}let A={compose:function(e,t){return t&&p(g,"Boost.Chart")&&e.prototype.callbacks.push(x),e},getBoostClipRect:function(e,t){let i=e.navigator,s={x:e.plotLeft,y:e.plotTop,width:e.plotWidth,height:e.plotHeight};if(i&&e.inverted?(s.width+=i.top+i.height,i.opposite||(s.x=i.left)):i&&!e.inverted&&(s.height=i.top+i.height-e.plotTop),t.is){let{xAxis:i,yAxis:r}=t;if(s=e.getClipBox(t),e.inverted){let e=s.width;s.width=s.height,s.height=e,s.x=r.pos,s.y=i.pos}else s.x=i.pos,s.y=r.pos}if(t===e){let t=e.inverted?e.xAxis:e.yAxis;t.length<=1&&(s.y=Math.min(t[0].pos,s.y),s.height=t[0].pos-e.plotTop+t[0].len)}return s},isChartSeriesBoosting:b};var y=a(620),v=a.n(y);let P={area:"LINES",arearange:"LINES",areaspline:"LINES",column:"LINES",columnrange:"LINES",bar:"LINES",line:"LINE_STRIP",scatter:"POINTS",heatmap:"TRIANGLES",treemap:"TRIANGLES",bubble:"POINTS"},{clamp:T,error:C,pick:k}=d(),M=class{constructor(e){if(this.errors=[],this.uLocations={},this.gl=e,e&&!this.createShader())return}bind(){this.gl&&this.shaderProgram&&this.gl.useProgram(this.shaderProgram)}createShader(){let e=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"),t=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=e=>this.gl.getUniformLocation(this.shaderProgram,e);return e&&t?(this.shaderProgram=this.gl.createProgram(),this.gl.attachShader(this.shaderProgram,e),this.gl.attachShader(this.shaderProgram,t),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&&C("[highcharts boost] shader error - "+this.errors.join("\n"))}stringToProgram(e,t){let i=this.gl.createShader("vertex"===t?this.gl.VERTEX_SHADER:this.gl.FRAGMENT_SHADER);return(this.gl.shaderSource(i,e),this.gl.compileShader(i),this.gl.getShaderParameter(i,this.gl.COMPILE_STATUS))?i:(this.errors.push("when compiling "+t+" 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(e,t,i,s=1){let r=e.options,o=Number.MAX_VALUE,n=-Number.MAX_VALUE;if(this.gl&&this.shaderProgram&&e.is("bubble")){let a=e.getPxExtremes();o=k(r.zMin,T(t,!1===r.displayNegative?r.zThreshold:-Number.MAX_VALUE,o)),n=k(r.zMax,Math.max(n,i)),this.gl.uniform1i(this.isBubbleUniform,1),this.gl.uniform1i(this.isCircleUniform,1),this.gl.uniform1i(this.bubbleSizeAreaUniform,"width"!==e.options.sizeBy),this.gl.uniform1i(this.bubbleSizeAbsUniform,e.options.sizeByAbsoluteValue),this.setUniform("bubbleMinSize",a.minPxSize*s),this.setUniform("bubbleMaxSize",a.maxPxSize*s),this.setUniform("bubbleZMin",o),this.setUniform("bubbleZMax",n),this.setUniform("bubbleZThreshold",e.options.zThreshold)}}setColor(e){this.gl&&this.shaderProgram&&this.gl.uniform4f(this.fcUniform,e[0]/255,e[1]/255,e[2]/255,e[3])}setDrawAsCircle(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isCircleUniform,+!!e)}setInverted(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.isInverted,e)}setPMatrix(e){this.gl&&this.shaderProgram&&this.gl.uniformMatrix4fv(this.pUniform,!1,e)}setPointSize(e){this.gl&&this.shaderProgram&&this.gl.uniform1f(this.psUniform,e)}setSkipTranslation(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.skipTranslationUniform,+(!0===e))}setTexture(e){this.gl&&this.shaderProgram&&this.gl.uniform1i(this.uSamplerUniform,e)}setUniform(e,t){if(this.gl&&this.shaderProgram){let i=this.uLocations[e]=this.uLocations[e]||this.gl.getUniformLocation(this.shaderProgram,e);this.gl.uniform1f(i,t)}}},E=class{constructor(e,t,i){this.buffer=!1,this.iterator=0,this.preAllocated=!1,this.vertAttribute=!1,this.components=i||2,this.dataComponents=i,this.gl=e,this.shader=t}allocate(e){this.iterator=-1,this.preAllocated=new Float32Array(4*e)}bind(){if(!this.buffer)return!1;this.gl.vertexAttribPointer(this.vertAttribute,this.components,this.gl.FLOAT,!1,0,0)}build(e,t,i){let s;return(this.data=e||[],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(),t),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(e,t,i,s){this.preAllocated&&(this.preAllocated[++this.iterator]=e,this.preAllocated[++this.iterator]=t,this.preAllocated[++this.iterator]=i,this.preAllocated[++this.iterator]=s)}render(e,t,i){let s=this.preAllocated?this.preAllocated.length:this.data.length;return!!this.buffer&&!!s&&((!e||e>s||e<0)&&(e=0),(!t||t>s)&&(t=s),!(e>=t)&&(i=i||"POINTS",this.gl.drawArrays(this.gl[i],e/this.components,(t-e)/this.components),!0))}},{getBoostClipRect:S}=A,{parse:w}=v(),{doc:U,win:R}=d(),{isNumber:L,isObject:_,merge:z,objectEach:D,pick:I}=d(),N={column:!0,columnrange:!0,bar:!0,area:!0,areaspline:!0,arearange:!0},G={scatter:!0,bubble:!0},B=["webgl","experimental-webgl","moz-webgl","webkit-3d"];class O{static orthoMatrix(e,t){return[2/e,0,0,0,0,-(2/t),0,0,0,0,-2,0,-1,1,-1,1]}static seriesPointCount(e){let t,i,s;return e.boosted?(t=!!e.options.stacking,i=(e.getColumn("x").length?e.getColumn("x"):void 0)||e.options.xData||e.getColumn("x",!0),s=(t?e.data:i||e.options.data).length,"treemap"===e.type?s*=12:"heatmap"===e.type?s*=6:N[e.type]&&(s*=2),s):0}constructor(e){this.data=[],this.height=0,this.isInited=!1,this.markerData=[],this.series=[],this.textureHandles={},this.width=0,this.postRenderCallback=e,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||R.devicePixelRatio||1}setOptions(e){"pixelRatio"in e||(e.pixelRatio=1),z(!0,this.settings,e)}allocateBuffer(e){let t=this.vbuffer,i=0;this.settings.usePreallocated&&(e.series.forEach(e=>{e.boosted&&(i+=O.seriesPointCount(e))}),t&&t.allocate(i))}allocateBufferForSingleSeries(e){let t=this.vbuffer,i=0;this.settings.usePreallocated&&(e.boosted&&(i=O.seriesPointCount(e)),t&&t.allocate(i))}clear(){let e=this.gl;e&&e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}pushSeriesData(e,t){let i=this.data,s=this.settings,r=this.vbuffer,o=e.pointArrayMap&&"low,high"===e.pointArrayMap.join(","),{chart:n,options:a,sorted:l,xAxis:h,yAxis:d}=e,f=!!a.stacking,u=a.data,g=e.xAxis.getExtremes(),m=g.min-(e.xAxis.minPointOffset||0),c=g.max+(e.xAxis.minPointOffset||0),p=e.yAxis.getExtremes(),b=p.min-(e.yAxis.minPointOffset||0),x=p.max+(e.yAxis.minPointOffset||0),A=(e.getColumn("x").length?e.getColumn("x"):void 0)||a.xData||e.getColumn("x",!0),y=(e.getColumn("y").length?e.getColumn("y"):void 0)||a.yData||e.getColumn("y",!0),v=(e.getColumn("z").length?e.getColumn("z"):void 0)||a.zData||e.getColumn("z",!0),P=!A||0===A.length,T=e.options.colorByPoint,C=a.connectNulls,k=e.points||!1,M=f?e.data:A||u,E={x:Number.MAX_VALUE,y:0},S={x:-Number.MAX_VALUE,y:0},U=void 0===n.index,R=N[e.type],L=a.zoneAxis||"y",z=a.zones||!1,D=a.threshold,I=this.getPixelRatio(),G=e.chart.plotWidth,B=!1,O=!1,V,X,F=0,H=!1,W,j,q,Y,Z=-1,K=!1,Q=!1,J,$=!1,ee=!1,et,ei=!1,es=!0,er=!0,eo,en=!1,ea=!1,el=0,eh=0;if(a.boostData&&a.boostData.length>0)return;a.gapSize&&(ea="value"!==a.gapUnit?a.gapSize*e.closestPointRange:a.gapSize),z&&(eo=[],z.forEach((e,t)=>{if(e.color){let i=w(e.color).rgba;i[0]/=255,i[1]/=255,i[2]/=255,eo[t]=i,en||void 0!==e.value||(en=i)}}),en||(en=w(e.pointAttribs&&e.pointAttribs().fill||e.color).rgba,en[0]/=255,en[1]/=255,en[2]/=255)),n.inverted&&(G=e.chart.plotHeight),e.closestPointRangePx=Number.MAX_VALUE;let ed=e=>{e&&(t.colorData.push(e[0]),t.colorData.push(e[1]),t.colorData.push(e[2]),t.colorData.push(e[3]))},ef=(e,o,n,a=1,l)=>{ed(l),1!==I&&(!s.useGPUTranslations||t.skipTranslation)&&(e*=I,o*=I,a*=I),s.usePreallocated&&r?(r.push(e,o,+!!n,a),el+=4):(i.push(e),i.push(o),i.push(n?I:0),i.push(a))},eu=()=>{t.segments.length&&(t.segments[t.segments.length-1].to=i.length||el)},eg=()=>{t.segments.length&&t.segments[t.segments.length-1].from===(i.length||el)||(eu(),t.segments.push({from:i.length||el}))},em=(e,t,i,s,r)=>{ed(r),ef(e+i,t),ed(r),ef(e,t),ed(r),ef(e,t+s),ed(r),ef(e,t+s),ed(r),ef(e+i,t+s),ed(r),ef(e+i,t)};if(eg(),k&&k.length>0){t.skipTranslation=!0,t.drawMode="TRIANGLES",k[0].node&&k[0].node.levelDynamic&&k.sort((e,t)=>{if(e.node){if(e.node.levelDynamic>t.node.levelDynamic)return 1;if(e.node.levelDynamic<t.node.levelDynamic)return -1}return 0}),k.forEach(t=>{let i,s,r=t.plotY;if(void 0!==r&&!isNaN(r)&&null!==t.y&&t.shapeArgs){let{x:r=0,y:o=0,width:a=0,height:l=0}=t.shapeArgs;i=(s=n.styledMode?t.series.colorAttribs(t):s=t.series.pointAttribs(t))["stroke-width"]||0,et=w(s.fill).rgba,et[0]/=255,et[1]/=255,et[2]/=255,e.is("treemap")&&(i=i||1,X=w(s.stroke).rgba,X[0]/=255,X[1]/=255,X[2]/=255,em(r,o,a,l,X),i/=2),e.is("heatmap")&&n.inverted&&(r=h.len-r,o=d.len-o,a=-a,l=-l),em(r+i,o+i,a-2*i,l-2*i,et)}}),eu();return}for(;Z<M.length-1;){if(void 0===(q=M[++Z]))continue;if(U)break;let i=u&&u[Z];if(!P){_(i,!0)&&i.color&&(et=w(i.color).rgba);let t=e.options.keys?.indexOf("color");Array.isArray(i)&&t&&"string"==typeof i[t]?et=w(i[t]).rgba:T&&n.options.colors&&(eh%=n.options.colors.length,et=w(n.options.colors[eh]).rgba),et&&(et[0]/=255,et[1]/=255,et[2]/=255),eh++}if(P?(W=q[0],j=q[1],M[Z+1]&&(Q=M[Z+1][0]),M[Z-1]&&(K=M[Z-1][0]),q.length>=3&&(Y=q[2],q[2]>t.zMax&&(t.zMax=q[2]),q[2]<t.zMin&&(t.zMin=q[2]))):(W=q,j=y?.[Z],M[Z+1]&&(Q=M[Z+1]),M[Z-1]&&(K=M[Z-1]),v&&v.length&&(Y=v[Z],v[Z]>t.zMax&&(t.zMax=v[Z]),v[Z]<t.zMin&&(t.zMin=v[Z]))),!C&&(null===W||null===j)){eg();continue}if(Q&&Q>=m&&Q<=c&&($=!0),K&&K>=m&&K<=c&&(ee=!0),o?(P&&(j=q.slice(1,3)),J=e.getColumn("low",!0)?.[Z],j=e.getColumn("high",!0)?.[Z]||0):f&&(W=q.x,J=(j=q.stackY)-q.y),null!=b&&null!=x&&(es=j>=b&&j<=x),!l&&!es||(W>c&&S.x<c&&(S.x=W,S.y=j),W<m&&E.x>m&&(E.x=W,E.y=j),null===j&&C))continue;if(null===j||!es&&M.length>1&&!$&&!ee){eg();continue}if((l&&(Q>=m||W>=m)&&(K<=c||W<=c)||!l&&W>=m&&W<=c)&&(ei=!0),ei||$||ee){if(ea&&W-K>ea&&eg(),z){let e;z.some((t,i)=>{let s=z[i-1];return"x"===L?void 0!==t.value&&W<=t.value&&(eo[i]&&(!s||W>=s.value)&&(e=eo[i]),!0):void 0!==t.value&&j<=t.value&&(eo[i]&&(!s||j>=s.value)&&(e=eo[i]),!0)}),et=e||en||et}if(s.useGPUTranslations||(t.skipTranslation=!0,W=h.toPixels(W,!0),j=d.toPixels(j,!0),!(W>G)||"POINTS"!==t.drawMode)){if(t.hasMarkers&&ei&&!1!==B&&(e.closestPointRangePx=Math.min(e.closestPointRangePx,Math.abs(W-B))),!s.useGPUTranslations&&!s.usePreallocated&&B&&1>Math.abs(W-B)&&O&&1>Math.abs(j-O)){s.debug.showSkipSummary&&++F;continue}R&&(V=J||0,(!1===J||void 0===J)&&(V=j<0?j:0),(o||f)&&!d.logarithmic||(V=Math.max(null===D?b:D,b)),s.useGPUTranslations||(V=d.toPixels(V,!0)),ef(W,V,!1,0,et)),a.step&&!er&&ef(W,O,!1,2,et),ef(W,j,!1,"bubble"===e.type?Y||1:2,et),B=W,O=j,H=!0,er=!1}}}s.debug.showSkipSummary&&console.log("skipped points:",F);let ec=(e,i)=>{if(s.useGPUTranslations||(t.skipTranslation=!0,e.x=h.toPixels(e.x,!0),e.y=d.toPixels(e.y,!0)),i){this.data=[e.x,e.y,0,2].concat(this.data);return}ef(e.x,e.y,0,2)};!H&&!1!==C&&"line_strip"===e.drawMode&&(E.x<Number.MAX_VALUE&&ec(E,!0),S.x>-Number.MAX_VALUE&&ec(S)),eu()}pushSeries(e){let t=this.markerData,i=this.series,s=this.settings;i.length>0&&i[i.length-1].hasMarkers&&(i[i.length-1].markerTo=t.length),s.debug.timeSeriesProcessing&&console.time("building "+e.type+" series");let r={segments:[],markerFrom:t.length,colorData:[],series:e,zMin:Number.MAX_VALUE,zMax:-Number.MAX_VALUE,hasMarkers:!!e.options.marker&&!1!==e.options.marker.enabled,showMarkers:!0,drawMode:P[e.type]||"LINE_STRIP"};e.index>=i.length?i.push(r):i[e.index]=r,this.pushSeriesData(e,r),s.debug.timeSeriesProcessing&&console.timeEnd("building "+e.type+" series")}flush(){let e=this.vbuffer;this.data=[],this.markerData=[],this.series=[],e&&e.destroy()}setXAxis(e){let t=this.shader;if(!t)return;let i=this.getPixelRatio();t.setUniform("xAxisTrans",e.transA*i),t.setUniform("xAxisMin",e.min),t.setUniform("xAxisMax",e.max),t.setUniform("xAxisMinPad",e.minPixelPadding*i),t.setUniform("xAxisPointRange",e.pointRange),t.setUniform("xAxisLen",e.len*i),t.setUniform("xAxisPos",e.pos*i),t.setUniform("xAxisCVSCoord",!e.horiz),t.setUniform("xAxisIsLog",!!e.logarithmic),t.setUniform("xAxisReversed",!!e.reversed)}setYAxis(e){let t=this.shader;if(!t)return;let i=this.getPixelRatio();t.setUniform("yAxisTrans",e.transA*i),t.setUniform("yAxisMin",e.min),t.setUniform("yAxisMax",e.max),t.setUniform("yAxisMinPad",e.minPixelPadding*i),t.setUniform("yAxisPointRange",e.pointRange),t.setUniform("yAxisLen",e.len*i),t.setUniform("yAxisPos",e.pos*i),t.setUniform("yAxisCVSCoord",!e.horiz),t.setUniform("yAxisIsLog",!!e.logarithmic),t.setUniform("yAxisReversed",!!e.reversed)}setThreshold(e,t){let i=this.shader;i&&(i.setUniform("hasThreshold",e),i.setUniform("translatedThreshold",t))}renderChart(e){let t=this.gl,i=this.settings,s=this.shader,r=this.vbuffer,o=this.getPixelRatio();if(!e)return!1;this.width=e.chartWidth*o,this.height=e.chartHeight*o;let n=this.height,a=this.width;if(!t||!s||!a||!n)return!1;i.debug.timeRendering&&console.time("gl rendering"),t.canvas.width=a,t.canvas.height=n,s.bind(),t.viewport(0,0,a,n),s.setPMatrix(O.orthoMatrix(a,n)),i.lineWidth>1&&!d().isMS&&t.lineWidth(i.lineWidth),r&&(r.build(this.data,"aVertexPosition",4),r.bind()),s.setInverted(e.inverted),this.series.forEach((a,l)=>{let h=a.series.options,d=h.marker,f=void 0!==h.lineWidth?h.lineWidth:1,u=h.threshold,g=L(u),m=a.series.yAxis.getThreshold(u),c=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&&(t.bindTexture(t.TEXTURE_2D,p.handle),s.setTexture(p.handle)),e.styledMode?a.series.markerGroup===a.series.chart.boost?.markerGroup?(delete a.series.markerGroup,a.series.markerGroup=a.series.plotGroup("markerGroup","markers","visible",1,e.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(v())(A).setOpacity(I(h.fillOpacity,1)).get()),y=w(A).rgba,i.useAlpha||(y[3]=1),"add"===h.boostBlending?(t.blendFunc(t.SRC_ALPHA,t.ONE),t.blendEquation(t.FUNC_ADD)):"mult"===h.boostBlending||"multiply"===h.boostBlending?t.blendFunc(t.DST_COLOR,t.ZERO):"darken"===h.boostBlending?(t.blendFunc(t.ONE,t.ONE),t.blendEquation(t.FUNC_MIN)):t.blendFuncSeparate(t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA),s.reset(),a.colorData.length>0?(s.setUniform("hasColor",1),(x=new E(t,s)).build(Array(a.segments[0].from).concat(a.colorData),"aColor",4),x.bind()):(s.setUniform("hasColor",0),t.disableVertexAttribArray(t.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)*o),s.setSkipTranslation(a.skipTranslation),"bubble"===a.series.type&&s.setBubbleUniforms(a.series,a.zMin,a.zMax,o),s.setDrawAsCircle(G[a.series.type]||!1),r)){if(f>0||"LINE_STRIP"!==a.drawMode){let{x:i,y:s,width:o,height:l}=S(e,a.series);for(t.enable(t.SCISSOR_TEST),t.scissor(i,n-s-l,o,l),b=0;b<a.segments.length;b++)r.render(a.segments[b].from,a.segments[b].to,a.drawMode);t.disable(t.SCISSOR_TEST)}if(a.hasMarkers&&c)for(s.setPointSize(2*I(h.marker&&h.marker.radius,5)*o),s.setDrawAsCircle(!0),b=0;b<a.segments.length;b++)r.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(e){if(this.clear(),e.renderer.forExport)return this.renderChart(e);this.isInited?this.renderChart(e):setTimeout(()=>{this.render(e)},1)}setSize(e,t){let i=this.shader;i&&(this.width!==e||this.height!==t)&&(this.width=e,this.height=t,i.bind(),i.setPMatrix(O.orthoMatrix(e,t)))}init(e,t){let i=this.settings;if(this.isInited=!1,!e)return!1;i.debug.timeSetup&&console.time("gl setup");for(let t=0;t<B.length&&(this.gl=e.getContext(B[t],{}),!this.gl);++t);let s=this.gl;if(!s)return!1;t||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 r=this.shader=new M(s);if(!r)return!1;this.vbuffer=new E(s,r);let o=(e,t)=>{let i={isReady:!1,texture:U.createElement("canvas"),handle:s.createTexture()},r=i.texture.getContext("2d");this.textureHandles[e]=i,i.texture.width=512,i.texture.height=512,r.mozImageSmoothingEnabled=!1,r.webkitImageSmoothingEnabled=!1,r.msImageSmoothingEnabled=!1,r.imageSmoothingEnabled=!1,r.strokeStyle="rgba(255, 255, 255, 0)",r.fillStyle="#FFF",t(r);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 o("circle",e=>{e.beginPath(),e.arc(256,256,256,0,2*Math.PI),e.stroke(),e.fill()}),o("square",e=>{e.fillRect(0,0,512,512)}),o("diamond",e=>{e.beginPath(),e.moveTo(256,0),e.lineTo(512,256),e.lineTo(256,512),e.lineTo(0,256),e.lineTo(256,0),e.fill()}),o("triangle",e=>{e.beginPath(),e.moveTo(0,512),e.lineTo(256,0),e.lineTo(512,512),e.lineTo(0,512),e.fill()}),o("triangle-down",e=>{e.beginPath(),e.moveTo(0,0),e.lineTo(256,512),e.lineTo(512,0),e.lineTo(0,0),e.fill()}),this.isInited=!0,i.debug.timeSetup&&console.timeEnd("gl setup"),!0}destroy(){let e=this.gl,t=this.shader,i=this.vbuffer;this.flush(),i&&i.destroy(),t&&t.destroy(),e&&(D(this.textureHandles,t=>{t.handle&&e.deleteTexture(t.handle)}),e.canvas.width=1,e.canvas.height=1)}}!function(e){e.setLength=function(e,t,i){return Array.isArray(e)?(e.length=t,e):e[i?"subarray":"slice"](0,t)},e.splice=function(e,t,i,s,r=[]){if(Array.isArray(e))return Array.isArray(r)||(r=Array.from(r)),{removed:e.splice(t,i,...r),array:e};let o=Object.getPrototypeOf(e).constructor,n=e[s?"subarray":"slice"](t,t+i),a=new o(e.length-i+r.length);return a.set(e.subarray(0,t),0),a.set(r,t),a.set(e.subarray(t+i),t+r.length),{removed:n,array:a}}}(r||(r={}));let{setLength:V,splice:X}=r,{fireEvent:F,objectEach:H,uniqueKey:W}=d(),j=class{constructor(e={}){this.autoId=!e.id,this.columns={},this.id=e.id||W(),this.modified=this,this.rowCount=0,this.versionTag=W();let t=0;H(e.columns||{},(e,i)=>{this.columns[i]=e.slice(),t=Math.max(t,e.length)}),this.applyRowCount(t)}applyRowCount(e){this.rowCount=e,H(this.columns,(t,i)=>{t.length!==e&&(this.columns[i]=V(t,e))})}deleteRows(e,t=1){if(t>0&&e<this.rowCount){let i=0;H(this.columns,(s,r)=>{this.columns[r]=X(s,e,t).array,i=s.length}),this.rowCount=i}F(this,"afterDeleteRows",{rowIndex:e,rowCount:t}),this.versionTag=W()}getColumn(e,t){return this.columns[e]}getColumns(e,t){return(e||Object.keys(this.columns)).reduce((e,t)=>(e[t]=this.columns[t],e),{})}getRow(e,t){return(t||Object.keys(this.columns)).map(t=>this.columns[t]?.[e])}setColumn(e,t=[],i=0,s){this.setColumns({[e]:t},i,s)}setColumns(e,t,i){let s=this.rowCount;H(e,(e,t)=>{this.columns[t]=e.slice(),s=e.length}),this.applyRowCount(s),i?.silent||(F(this,"afterSetColumns"),this.versionTag=W())}setRow(e,t=this.rowCount,i,s){let{columns:r}=this,o=i?this.rowCount+1:t+1;H(e,(e,n)=>{let a=r[n]||s?.addColumns!==!1&&Array(o);a&&(i?a=X(a,t,0,!0,[e]).array:a[t]=e,r[n]=a)}),o>this.rowCount&&this.applyRowCount(o),s?.silent||(F(this,"afterSetRows"),this.versionTag=W())}},{getBoostClipRect:q,isChartSeriesBoosting:Y}=A,{getOptions:Z}=d(),{composed:K,doc:Q,noop:J,win:$}=d(),{addEvent:ee,destroyObjectProperties:et,error:ei,extend:es,fireEvent:er,isArray:eo,isNumber:en,pick:ea,pushUnique:el,wrap:eh,defined:ed}=d();function ef(e,t){let i=t.boost;e&&i&&i.target&&i.canvas&&!Y(t.chart)&&e.allocateBufferForSingleSeries(t)}function eu(e){return ea(e&&e.options&&e.options.boost&&e.options.boost.enabled,!0)}function eg(e,t){let i=e.constructor,r=e.seriesGroup||t.group,o=e.chartWidth,n=e.chartHeight,a=e,l="undefined"!=typeof SVGForeignObjectElement,h=!1;Y(e)?a=e:(a=t,h=!!(t.options.events?.click||t.options.point?.events?.click));let d=a.boost=a.boost||{};if(l=!1,s||(s=Q.createElement("canvas")),!d.target&&(d.canvas=s,e.renderer.forExport||!l?(a.renderTarget=d.target=e.renderer.image("",0,0,o,n).addClass("highcharts-boost-canvas").add(r),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=e.renderer.createElement("foreignObject").add(r),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(){o=e.chartWidth,n=e.chartHeight,(d.targetFo||d.target).attr({x:0,y:0,width:o,height:n}).css({pointerEvents:h?void 0:"none",mixedBlendMode:"normal",opacity:1}).addClass(h?"highcharts-tracker":""),a instanceof i&&a.boost?.markerGroup?.translate(e.plotLeft,e.plotTop)},d.clipRect=e.renderer.clipRect(),(d.targetFo||d.target).attr({zIndex:t.options.zIndex}),a instanceof i&&(a.boost.markerGroup=a.renderer.g().add(r).translate(t.xAxis.pos,t.yAxis.pos))),d.canvas.width=o,d.canvas.height=n,d.clipRect){let t=q(e,a);d.clipRect.attr(t),t.width===e.clipBox.width&&t.height===e.clipBox.height?r?.clip(e.renderer.clipRect(t.x-4,t.y,t.width+4,t.height+4)):(d.targetFo||d.target).clip(d.clipRect)}return d.resize(),d.clear(),!d.wgl&&(d.wgl=new O(e=>{e.settings.debug.timeBufferCopy&&console.time("buffer copy"),d.copy(),e.settings.debug.timeBufferCopy&&console.timeEnd("buffer copy")}),d.wgl.init(d.canvas)||ei("[highcharts boost] - unable to init WebGL renderer"),d.wgl.setOptions(e.options.boost||{}),a instanceof i&&d.wgl.allocateBuffer(e)),d.wgl.setSize(o,n),d.wgl}function em(e){let t=e.points;if(t){let e,i;for(i=0;i<t.length;i+=1)(e=t[i])&&e.destroyElements&&e.destroyElements()}for(let t of(["graph","area","tracker"].forEach(t=>{let i=e[t];i&&(e[t]=i.destroy())}),e.zones))et(t,void 0,!0)}function ec(e,t,i,s,r,o){let n=(r=r||0)+(s=s||3e3),a=!0;for(;a&&r<n&&r<e.length;)a=t(e[r],r),++r;a&&(r<e.length?o?ec(e,t,i,s,r,o):$.requestAnimationFrame?$.requestAnimationFrame(function(){ec(e,t,i,s,r)}):setTimeout(ec,0,e,t,i,s,r):i&&i())}function ep(e,t){let i=e.options,s=e.dataTable.modified.rowCount,r=e.xAxis&&e.xAxis.options,o=e.yAxis&&e.yAxis.options,n=e.colorAxis&&e.colorAxis.options;return s>ea(i.boostThreshold,Number.MAX_VALUE)&&en(o.min)&&en(o.max)&&(!t||en(r.min)&&en(r.max))&&(!n||en(n.min)&&en(n.max))}let eb=(e,t)=>!e.forceCrop&&(Y(e.chart)||(t?t.length:0)>=ea(e.options.boostThreshold,Number.MAX_VALUE));function ex(){let e=this,t=e.chart;t.boost&&t.boost.markerGroup===e.markerGroup&&(e.markerGroup=void 0),t.hoverPoints&&(t.hoverPoints=t.hoverPoints.filter(function(t){return t.series===e})),t.hoverPoint&&t.hoverPoint.series===e&&(t.hoverPoint=void 0)}function eA(){let e=this.boost;e&&e.canvas&&e.target&&(e.wgl&&e.wgl.clear(),e.clear&&e.clear())}function ey(e){let t=e.boost;t&&t.canvas&&t.target&&t.wgl&&!Y(e.chart)&&t.wgl.render(e.chart)}function ev(e,t){let i=e.options,s=e.xAxis,r=e.pointClass;if(t instanceof r)return t;let o=i.data,n=e.is("scatter"),a=(n&&e.getColumn("x",!0).length?e.getColumn("x",!0):void 0)||(e.getColumn("x").length?e.getColumn("x"):void 0)||i.xData||e.getColumn("x",!0)||!1,l=e.getColumn("y",!0)||i.yData||!1,h=t.i,d=o?.[h]?.color,f=new r(e,n&&a&&l?[a[h],l[h]]:(eo(o)?o:[])[h],a?a[h]:void 0);if(n&&i?.keys?.length){let e=i.keys;for(let t=e.length-1;t>-1;t--)f[e[t]]=o[h][t]}return f.category=ea(s.categories?s.categories[f.x]:f.x,f.x),f.key=f.name??f.category,f.dist=t.dist,f.distX=t.distX,f.plotX=t.plotX,f.plotY=t.plotY,f.index=h,f.percentage=t.percentage,f.isInside=e.isPointInside(f),d&&(f.color=d),f}function eP(e){let{options:t,xAxis:i,yAxis:s}=this;if(!this.isDirty&&!i.isDirty&&!s.isDirty&&!e)return!1;this.yAxis.setTickInterval();let r=t.boostThreshold||0,o=t.cropThreshold,n=this.getColumn("x"),a=i.getExtremes(),l=a.max??Number.MAX_VALUE,h=a.min??-Number.MAX_VALUE,d=this.getColumn("y"),f=s.getExtremes(),u=f.max??Number.MAX_VALUE,g=f.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)&&u<=(s.old.max??Number.MAX_VALUE))return this.dataTable.modified.setColumns({x:n,y:d}),!0;let m=this.dataTable.rowCount;if(!r||m<r||o&&!this.forceCrop&&!this.getExtremesFromAll&&!t.getExtremesFromAll&&m<o)return this.dataTable.modified.setColumns({x:n,y:d}),!0;let c=[],p=[],b=[],x=!(en(a.max)||en(a.min)),A=!(en(f.max)||en(f.min)),y=!1,v,P=n[0],T=n[0],C,k=d?.[0],M=d?.[0];for(let e=0,t=n.length;e<t;++e)v=n[e],C=d?.[e],v>=h&&v<=l&&C>=g&&C<=u?(c.push({x:v,y:C}),p.push(v),b.push(C),x&&(P=Math.max(P,v),T=Math.min(T,v)),A&&(k=Math.max(k,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(k,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 j),this.dataTable.modified.setColumns({x:p,y:b}),eb(this,p)||(this.processedData=c),!0}function eT(){let e=this.options||{},t=this.chart,s=t.boost,r=this.boost,o=this.xAxis,n=this.yAxis,a=e.xData||this.getColumn("x",!0),l=e.yData||this.getColumn("y",!0),h=this.getColumn("low",!0),d=this.getColumn("high",!0),f=this.processedData||e.data,u=o.getExtremes(),g=u.min-(o.minPointOffset||0),m=u.max+(o.minPointOffset||0),c=n.getExtremes(),p=c.min-(n.minPointOffset||0),b=c.max+(n.minPointOffset||0),x={},A=!!this.sampling,y=e.enableMouseTracking,v=e.threshold,P=this.pointArrayMap&&"low,high"===this.pointArrayMap.join(","),T=!!e.stacking,C=this.cropStart||0,k=this.requireSorting,M=!a,E="x"===e.findNearestPointBy,S=(this.getColumn("x").length?this.getColumn("x"):void 0)||this.options.xData||this.getColumn("x",!0),w=ea(e.lineWidth,1),U=e.nullInteraction&&p,R=t.tooltip,L=!1,_,z=n.getThreshold(v),D,I,N,G;if(!this.boosted||(this.points?.forEach(e=>{e?.destroyElements?.()}),this.points=[],R&&!R.isHidden?(t.hoverPoint?.series===this||t.hoverPoints?.some(e=>e.series===this))&&(t.hoverPoint=t.hoverPoints=void 0,R.hide(0)):t.hoverPoints&&(t.hoverPoints=t.hoverPoints.filter(e=>e.series!==this)),o.isPanning||n.isPanning)||(L=eg(t,this),t.boosted=!0,!this.visible))return;(this.points||this.graph)&&em(this),Y(t)?(this.markerGroup&&this.markerGroup!==s?.markerGroup&&this.markerGroup.destroy(),this.markerGroup=s?.markerGroup,r&&r.target&&(this.renderTarget=r.target=r.target.destroy())):(this.markerGroup===s?.markerGroup&&(this.markerGroup=void 0),this.markerGroup=this.plotGroup("markerGroup","markers","visible",1,t.seriesGroup).addClass("highcharts-tracker"));let B=this.points=[],O=(e,s,r,a)=>{let l=!!S&&S[C+r],h=e=>{t.inverted&&(e=o.len-e,s=n.len-s),B.push({destroy:J,x:l,clientX:e,plotX:e,plotY:s,i:C+r,percentage:a})};e=Math.ceil(e),i=E?e:e+","+s,y&&(x[i]?l===S[S.length-1]&&(B.length--,h(e)):(x[i]=!0,h(e)))};this.buildKDTree=J,er(this,"renderCanvas"),s&&r?.target&&w>1&&this.is("line")&&(s.lineWidthFilter?.remove(),s.lineWidthFilter=t.renderer.definition({tagName:"filter",children:[{tagName:"feMorphology",attributes:{operator:"dilate",radius:.25*w}}],attributes:{id:"linewidth"}}),r.target.attr({filter:"url(#linewidth)"})),L&&(ef(L,this),L.pushSeries(this),ey(this));let V=L.settings;t.renderer.forExport||(V.debug.timeKDTree&&console.time("kd tree building"),ec(T?this.data.slice(C):a||f,function(e,i){let s=void 0===t.index,r,a,f,u,c,x=!1,y=!0;return!ed(e)||(!s&&(M?(r=e[0],a=e[1]):(r=e,a=l[i]??U??null),P?(M&&(a=e.slice(1,3)),x=h[i],a=d[i]):T&&(r=e.x,x=(a=e.stackY)-e.y,c=e.percentage),k||(y=(a||0)>=p&&a<=b),null!==a&&r>=g&&r<=m&&y&&(f=o.toPixels(r,!0),A?((void 0===N||f===_)&&(P||(x=a),(void 0===G||a>I)&&(I=a,G=i),(void 0===N||x<D)&&(D=x,N=i)),E&&f===_||(void 0!==N&&(u=n.toPixels(I,!0),z=n.toPixels(D,!0),O(f,u,G,c),z!==u&&O(f,z,N,c)),N=G=void 0,_=f)):O(f,u=Math.ceil(n.toPixels(a,!0)),i,c))),!s)},()=>{er(this,"renderedCanvas"),delete this.buildKDTree,this.options&&this.buildKDTree(),V.debug.timeKDTree&&console.timeEnd("kd tree building")}))}function eC(e){let t=!0;if(this.chart.options&&this.chart.options.boost&&(t=void 0===this.chart.options.boost.enabled||this.chart.options.boost.enabled),!t||!this.boosted)return e.call(this);this.chart.boosted=!0;let i=eg(this.chart,this);i&&(ef(i,this),i.pushSeries(this)),ey(this)}function ek(e){if(this.boosted){if(ep(this))return{};if(this.xAxis.isPanning||this.yAxis.isPanning)return this}return e.apply(this,[].slice.call(arguments,1))}function eM(e){let t=this.options.data;if(eu(this.chart)&&u[this.type]){let s=this.is("scatter")&&!this.is("bubble")&&!this.is("treemap")&&!this.is("heatmap");if(!eb(this,t)||s||this.is("treemap")||this.options.stacking||!ep(this,!0)){if(this.boosted&&(this.xAxis?.isPanning||this.yAxis?.isPanning))return;s&&"treegrid"!==this.yAxis.type?eP.call(this,arguments[1]):e.apply(this,[].slice.call(arguments,1)),t=this.getColumn("x",!0)}if(this.boosted=eb(this,t),this.boosted){let e;this.options.data?.length&&(en(e=this.getFirstValidPoint(this.options.data))||eo(e)||this.is("treemap")||ei(12,!1,this.chart));var i=this;i.boost=i.boost||{getPoint:e=>ev(i,e)};let t=i.boost.altered=[];if(["allowDG","directTouch","stickyTracking"].forEach(e=>{t.push({prop:e,val:i[e],own:Object.hasOwnProperty.call(i,e)})}),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 e of i.data)e?.destroy?.();i.data.length=0,i.points.length=0,delete i.processedData}}else!function(e){let t=e.boost,i=e.chart,s=i.boost;if(s?.markerGroup)for(let e of(s.markerGroup.destroy(),s.markerGroup=void 0,i.series))e.markerGroup=void 0,e.markerGroup=e.plotGroup("markerGroup","markers","visible",1,i.seriesGroup).addClass("highcharts-tracker");t&&((t.altered||[]).forEach(t=>{t.own?e[t.prop]=t.val:delete e[t.prop]}),t.clear&&t.clear()),(i.seriesGroup||e.group)?.clip()}(this)}else e.apply(this,[].slice.call(arguments,1))}function eE(e){let t=e.apply(this,[].slice.call(arguments,1));return this.boost&&t?this.boost.getPoint(t):t}let eS={compose:function(e,t,i,s){if(el(K,"Boost.Series")){let r=Z().plotOptions,o=e.prototype;if(ee(e,"destroy",ex),ee(e,"hide",eA),s&&(o.renderCanvas=eT),eh(o,"getExtremes",ek),eh(o,"processData",eM),eh(o,"searchPoint",eE),["translate","generatePoints","drawTracker","drawPoints","render"].forEach(e=>(function(e,t,i){function s(e){let t=this.options.stacking&&("translate"===i||"generatePoints"===i);this.boosted&&!t&&eu(this.chart)&&"heatmap"!==this.type&&"treemap"!==this.type&&u[this.type]&&0!==this.options.boostThreshold?"render"===i&&this.renderCanvas&&this.renderCanvas():e.call(this)}if(eh(e,i,s),"translate"===i)for(let e of["column","arearange","columnrange","heatmap","treemap"])t[e]&&eh(t[e].prototype,i,s)})(o,t,e)),eh(i.prototype,"firePointEvent",function(e,t,i){if("click"===t&&this.series.boosted){let e=i.point;if((e.dist||e.distX)>=(e.series.options.marker?.radius??10))return}return e.apply(this,[].slice.call(arguments,1))}),f.forEach(e=>{let i=r[e];i&&(i.boostThreshold=5e3,i.boostData=[],t[e].prototype.fillOpacity=!0)}),s){let{area:e,areaspline:i,bubble:s,column:r,heatmap:o,scatter:n,treemap:a}=t;if(e&&es(e.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),i&&es(i.prototype,{fill:!0,fillOpacity:!0,sampling:!0}),s){let e=s.prototype;delete e.buildKDTree,eh(e,"markerAttribs",function(e){return!this.boosted&&e.apply(this,[].slice.call(arguments,1))})}r&&es(r.prototype,{fill:!0,sampling:!0}),n&&(n.prototype.fill=!0),[o,a].forEach(e=>{e&&eh(e.prototype,"drawPoints",eC)})}}return e},destroyGraphics:em,eachAsync:ec,getPoint:ev},ew={defaultHTMLColorMap:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",feldspar:"#d19275",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslateblue:"#8470ff",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",violetred:"#d02090",wheat:"#f5deb3",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}},{doc:eU,win:eR}=d(),{addEvent:eL,error:e_}=d(),ez=["webgl","experimental-webgl","moz-webgl","webkit-3d"];function eD(){let e,t=!1;if(void 0!==eR.WebGLRenderingContext){e=eU.createElement("canvas");for(let t=0;t<ez.length;++t)try{if(null!=e.getContext(ez[t]))return!0}catch{}}return!1}let eI={compose:function(e,t,i,s,r,o){let n=eD();n||(void 0!==d().initCanvasBoost?d().initCanvasBoost():e_(26)),o&&!o.names.lightgoldenrodyellow&&(o.names={...o.names,...ew.defaultHTMLColorMap}),A.compose(e,n),eS.compose(i,s,r,n),eL(t,"setExtremes",function(e){for(let t of[this.chart,...this.series].map(e=>e.renderTarget).filter(Boolean)){let{horiz:i,pos:s}=this,r=i?"scaleX":"scaleY",o=i?"translateX":"translateY",n=t?.[r]??1,a=1,l=0,h=1,d="none";this.isPanning&&(a=(e.scale??1)*n,l=(t?.[o]||0)-a*(e.move||0)+n*s-a*s,h=.7,d="blur(3px)"),t?.attr({[r]:a,[o]:l}).css({transition:"250ms filter, 250ms opacity",filter:d,opacity:h})}})},hasWebGLSupport:eD},eN=d();eN.hasWebGLSupport=eI.hasWebGLSupport,eI.compose(eN.Chart,eN.Axis,eN.Series,eN.seriesTypes,eN.Point,eN.Color);let eG=d();return l.default})());
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v12.3.0 (2025-06-21)
2
+ * @license Highcharts JS v12.4.0 (2025-09-04)
3
3
  * @module highcharts/modules/boost
4
4
  * @requires highcharts
5
5
  *
@@ -507,7 +507,7 @@ const { clamp, error, pick: WGLShader_pick } = (highcharts_commonjs_highcharts_c
507
507
  *
508
508
  * */
509
509
  const fragmentShader = [
510
- /* eslint-disable max-len, @typescript-eslint/indent */
510
+ /* eslint-disable max-len, @stylistic/indent */
511
511
  'precision highp float;',
512
512
  'uniform vec4 fillColor;',
513
513
  'varying highp vec2 position;',
@@ -535,10 +535,10 @@ const fragmentShader = [
535
535
  'gl_FragColor = col;',
536
536
  '}',
537
537
  '}'
538
- /* eslint-enable max-len, @typescript-eslint/indent */
538
+ /* eslint-enable max-len, @stylistic/indent */
539
539
  ].join('\n');
540
540
  const vertexShader = [
541
- /* eslint-disable max-len, @typescript-eslint/indent */
541
+ /* eslint-disable max-len, @stylistic/indent */
542
542
  '#version 100',
543
543
  '#define LN10 2.302585092994046',
544
544
  'precision highp float;',
@@ -553,6 +553,7 @@ const vertexShader = [
553
553
  'uniform bool skipTranslation;',
554
554
  'uniform float xAxisTrans;',
555
555
  'uniform float xAxisMin;',
556
+ 'uniform float xAxisMax;',
556
557
  'uniform float xAxisMinPad;',
557
558
  'uniform float xAxisPointRange;',
558
559
  'uniform float xAxisLen;',
@@ -565,6 +566,7 @@ const vertexShader = [
565
566
  'uniform bool xAxisReversed;',
566
567
  'uniform float yAxisTrans;',
567
568
  'uniform float yAxisMin;',
569
+ 'uniform float yAxisMax;',
568
570
  'uniform float yAxisMinPad;',
569
571
  'uniform float yAxisPointRange;',
570
572
  'uniform float yAxisLen;',
@@ -575,6 +577,7 @@ const vertexShader = [
575
577
  'uniform bool yAxisCVSCoord;',
576
578
  'uniform bool yAxisIsLog;',
577
579
  'uniform bool yAxisReversed;',
580
+ 'uniform bool isCircle;',
578
581
  'uniform bool isBubble;',
579
582
  'uniform bool bubbleSizeByArea;',
580
583
  'uniform float bubbleZMin;',
@@ -663,7 +666,17 @@ const vertexShader = [
663
666
  '}',
664
667
  // 'gl_PointSize = 10.0;',
665
668
  'vColor = aColor;',
666
- 'if (skipTranslation && isInverted) {',
669
+ // It's not working correctly on useGPUTranslations off, because we
670
+ // operate on pixel values then, not on axis values. Maybe we should
671
+ // just skip outer points before pushing them to the vertex buffer?
672
+ 'if (!skipTranslation && isCircle && (',
673
+ 'aVertexPosition.x < xAxisMin ||',
674
+ 'aVertexPosition.x > xAxisMax ||',
675
+ 'aVertexPosition.y < yAxisMin ||',
676
+ 'aVertexPosition.y > yAxisMax',
677
+ ')) {',
678
+ 'gl_Position = uPMatrix * vec4(2.0, 2.0, 2.0, 1.0);',
679
+ '} else if (skipTranslation && isInverted) {',
667
680
  // If we get translated values from JS, just swap them (x, y)
668
681
  'gl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);',
669
682
  '} else if (isInverted) {',
@@ -675,7 +688,7 @@ const vertexShader = [
675
688
  '}',
676
689
  // 'gl_Position = uPMatrix * vec4(aVertexPosition.x, aVertexPosition.y, 0.0, 1.0);',
677
690
  '}'
678
- /* eslint-enable max-len, @typescript-eslint/indent */
691
+ /* eslint-enable max-len, @stylistic/indent */
679
692
  ].join('\n');
680
693
  /* *
681
694
  *
@@ -1157,6 +1170,8 @@ class WGLVertexBuffer {
1157
1170
  * */
1158
1171
 
1159
1172
 
1173
+ const { getBoostClipRect: WGLRenderer_getBoostClipRect } = Boost_BoostChart;
1174
+
1160
1175
  const { parse: color } = (highcharts_Color_commonjs_highcharts_Color_commonjs2_highcharts_Color_root_Highcharts_Color_default());
1161
1176
 
1162
1177
  const { doc, win } = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default());
@@ -1374,10 +1389,9 @@ class WGLRenderer {
1374
1389
  /// threshold = options.threshold,
1375
1390
  // yBottom = chart.yAxis[0].getThreshold(threshold),
1376
1391
  // hasThreshold = isNumber(threshold),
1377
- // colorByPoint = series.options.colorByPoint,
1392
+ colorByPoint = series.options.colorByPoint,
1378
1393
  // This is required for color by point, so make sure this is
1379
1394
  // uncommented if enabling that
1380
- // colorIndex = 0,
1381
1395
  // Required for color axis support
1382
1396
  // caxis,
1383
1397
  connectNulls = options.connectNulls,
@@ -1389,7 +1403,7 @@ class WGLRenderer {
1389
1403
  //
1390
1404
  skipped = 0, hadPoints = false,
1391
1405
  // The following are used in the builder while loop
1392
- x, y, d, z, i = -1, px = false, nx = false, low, nextInside = false, prevInside = false, pcolor = false, isXInside = false, isYInside = true, firstPoint = true, zoneColors, zoneDefColor = false, gapSize = false, vlen = 0;
1406
+ 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;
1393
1407
  if (options.boostData && options.boostData.length > 0) {
1394
1408
  return;
1395
1409
  }
@@ -1602,27 +1616,29 @@ class WGLRenderer {
1602
1616
  if (chartDestroyed) {
1603
1617
  break;
1604
1618
  }
1605
- // Uncomment this to enable color by point.
1606
- // This currently left disabled as the charts look really ugly
1607
- // when enabled and there's a lot of points.
1608
- // Leaving in for the future (tm).
1609
- // if (colorByPoint) {
1610
- // colorIndex = ++colorIndex %
1611
- // series.chart.options.colors.length;
1612
- // pcolor = toRGBAFast(series.chart.options.colors[colorIndex]);
1613
- // pcolor[0] /= 255.0;
1614
- // pcolor[1] /= 255.0;
1615
- // pcolor[2] /= 255.0;
1616
- // }
1617
1619
  // Handle the point.color option (#5999)
1618
1620
  const pointOptions = rawData && rawData[i];
1619
- if (!useRaw && isObject(pointOptions, true)) {
1620
- if (pointOptions.color) {
1621
+ if (!useRaw) {
1622
+ if (isObject(pointOptions, true) && pointOptions.color) {
1621
1623
  pcolor = color(pointOptions.color).rgba;
1624
+ }
1625
+ const colorKeyIndex = series.options.keys?.indexOf('color');
1626
+ if (Array.isArray(pointOptions) &&
1627
+ colorKeyIndex &&
1628
+ typeof pointOptions[colorKeyIndex] === 'string') {
1629
+ pcolor = color(pointOptions[colorKeyIndex]).rgba;
1630
+ }
1631
+ else if (colorByPoint && chart.options.colors) {
1632
+ colorIndex = colorIndex %
1633
+ chart.options.colors.length;
1634
+ pcolor = color(chart.options.colors[colorIndex]).rgba;
1635
+ }
1636
+ if (pcolor) {
1622
1637
  pcolor[0] /= 255.0;
1623
1638
  pcolor[1] /= 255.0;
1624
1639
  pcolor[2] /= 255.0;
1625
1640
  }
1641
+ colorIndex++;
1626
1642
  }
1627
1643
  if (useRaw) {
1628
1644
  x = d[0];
@@ -1829,15 +1845,15 @@ class WGLRenderer {
1829
1845
  minVal = yAxis.toPixels(minVal, true);
1830
1846
  }
1831
1847
  // Need to add an extra point here
1832
- vertice(x, minVal, 0, 0, pcolor);
1848
+ vertice(x, minVal, false, 0, pcolor);
1833
1849
  }
1834
1850
  // Do step line if enabled.
1835
1851
  // Draws an additional point at the old Y at the new X.
1836
1852
  // See #6976.
1837
1853
  if (options.step && !firstPoint) {
1838
- vertice(x, lastY, 0, 2, pcolor);
1854
+ vertice(x, lastY, false, 2, pcolor);
1839
1855
  }
1840
- vertice(x, y, 0, series.type === 'bubble' ? (z || 1) : 2, pcolor);
1856
+ vertice(x, y, false, series.type === 'bubble' ? (z || 1) : 2, pcolor);
1841
1857
  // Uncomment this to support color axis.
1842
1858
  // if (caxis) {
1843
1859
  // pcolor = color(caxis.toColor(y)).rgba;
@@ -1955,6 +1971,7 @@ class WGLRenderer {
1955
1971
  const pixelRatio = this.getPixelRatio();
1956
1972
  shader.setUniform('xAxisTrans', axis.transA * pixelRatio);
1957
1973
  shader.setUniform('xAxisMin', axis.min);
1974
+ shader.setUniform('xAxisMax', axis.max);
1958
1975
  shader.setUniform('xAxisMinPad', axis.minPixelPadding * pixelRatio);
1959
1976
  shader.setUniform('xAxisPointRange', axis.pointRange);
1960
1977
  shader.setUniform('xAxisLen', axis.len * pixelRatio);
@@ -1977,6 +1994,7 @@ class WGLRenderer {
1977
1994
  const pixelRatio = this.getPixelRatio();
1978
1995
  shader.setUniform('yAxisTrans', axis.transA * pixelRatio);
1979
1996
  shader.setUniform('yAxisMin', axis.min);
1997
+ shader.setUniform('yAxisMax', axis.max);
1980
1998
  shader.setUniform('yAxisMinPad', axis.minPixelPadding * pixelRatio);
1981
1999
  shader.setUniform('yAxisPointRange', axis.pointRange);
1982
2000
  shader.setUniform('yAxisLen', axis.len * pixelRatio);
@@ -2143,9 +2161,13 @@ class WGLRenderer {
2143
2161
  // Do the actual rendering
2144
2162
  // If the line width is < 0, skip rendering of the lines. See #7833.
2145
2163
  if (lineWidth > 0 || s.drawMode !== 'LINE_STRIP') {
2164
+ const { x: cx, y: cy, width: cw, height: ch } = WGLRenderer_getBoostClipRect(chart, s.series);
2165
+ gl.enable(gl.SCISSOR_TEST);
2166
+ gl.scissor(cx, height - cy - ch, cw, ch);
2146
2167
  for (sindex = 0; sindex < s.segments.length; sindex++) {
2147
2168
  vbuffer.render(s.segments[sindex].from, s.segments[sindex].to, s.drawMode);
2148
2169
  }
2170
+ gl.disable(gl.SCISSOR_TEST);
2149
2171
  }
2150
2172
  if (s.hasMarkers && showMarkers) {
2151
2173
  shader.setPointSize(WGLRenderer_pick(options.marker && options.marker.radius, 5) * 2 * pixelRatio);
@@ -2268,7 +2290,7 @@ class WGLRenderer {
2268
2290
  gl.bindTexture(gl.TEXTURE_2D, null);
2269
2291
  props.isReady = true;
2270
2292
  }
2271
- catch (e) {
2293
+ catch {
2272
2294
  // Silent error
2273
2295
  }
2274
2296
  };
@@ -3050,15 +3072,18 @@ function createAndAttachRenderer(chart, series) {
3050
3072
  boost.canvas.width = width;
3051
3073
  boost.canvas.height = height;
3052
3074
  if (boost.clipRect) {
3053
- const box = BoostSeries_getBoostClipRect(chart, target),
3075
+ const box = BoostSeries_getBoostClipRect(chart, target);
3076
+ boost.clipRect.attr(box);
3054
3077
  // When using panes, the image itself must be clipped. When not
3055
3078
  // using panes, it is better to clip the target group, because then
3056
3079
  // we preserve clipping on touch- and mousewheel zoom preview.
3057
- clippedElement = (box.width === chart.clipBox.width &&
3058
- box.height === chart.clipBox.height) ? targetGroup :
3059
- (boost.targetFo || boost.target);
3060
- boost.clipRect.attr(box);
3061
- clippedElement?.clip(boost.clipRect);
3080
+ if (box.width === chart.clipBox.width &&
3081
+ box.height === chart.clipBox.height) {
3082
+ targetGroup?.clip(chart.renderer.clipRect(box.x - 4, box.y, box.width + 4, box.height + 4)); // #9799
3083
+ }
3084
+ else {
3085
+ (boost.targetFo || boost.target).clip(boost.clipRect);
3086
+ }
3062
3087
  }
3063
3088
  boost.resize();
3064
3089
  boost.clear();
@@ -3242,7 +3267,7 @@ function exitBoost(series) {
3242
3267
  */
3243
3268
  function hasExtremes(series, checkX) {
3244
3269
  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;
3245
- return dataLength > (options.boostThreshold || Number.MAX_VALUE) &&
3270
+ return dataLength > BoostSeries_pick(options.boostThreshold, Number.MAX_VALUE) &&
3246
3271
  // Defined yAxis extremes
3247
3272
  BoostSeries_isNumber(yAxis.min) &&
3248
3273
  BoostSeries_isNumber(yAxis.max) &&
@@ -3266,7 +3291,7 @@ const getSeriesBoosting = (series, data) => {
3266
3291
  }
3267
3292
  return (BoostSeries_isChartSeriesBoosting(series.chart) ||
3268
3293
  ((data ? data.length : 0) >=
3269
- (series.options.boostThreshold || Number.MAX_VALUE)));
3294
+ BoostSeries_pick(series.options.boostThreshold, Number.MAX_VALUE)));
3270
3295
  };
3271
3296
  /**
3272
3297
  * Extend series.destroy to also remove the fake k-d-tree points (#5137).
@@ -3332,7 +3357,7 @@ function getPoint(series, boostPoint) {
3332
3357
  if (boostPoint instanceof PointClass) {
3333
3358
  return boostPoint;
3334
3359
  }
3335
- const isScatter = series.is('scatter'), xData = ((isScatter && series.getColumn('x', true).length ?
3360
+ const data = seriesOptions.data, isScatter = series.is('scatter'), xData = ((isScatter && series.getColumn('x', true).length ?
3336
3361
  series.getColumn('x', true) :
3337
3362
  void 0) ||
3338
3363
  (series.getColumn('x').length ? series.getColumn('x') : void 0) ||
@@ -3340,9 +3365,19 @@ function getPoint(series, boostPoint) {
3340
3365
  series.getColumn('x', true) ||
3341
3366
  false), yData = (series.getColumn('y', true) ||
3342
3367
  seriesOptions.yData ||
3343
- false), point = new PointClass(series, (isScatter && xData && yData) ?
3344
- [xData[boostPoint.i], yData[boostPoint.i]] :
3345
- (isArray(series.options.data) ? series.options.data : [])[boostPoint.i], xData ? xData[boostPoint.i] : void 0);
3368
+ false), pointIndex = boostPoint.i, pointColor = data?.[pointIndex]
3369
+ ?.color, point = new PointClass(series, (isScatter && xData && yData) ?
3370
+ [xData[pointIndex], yData[pointIndex]] :
3371
+ (isArray(data) ? data : [])[pointIndex], xData ? xData[pointIndex] : void 0);
3372
+ if (isScatter &&
3373
+ seriesOptions?.keys?.length) {
3374
+ const keys = seriesOptions.keys;
3375
+ // Don't reassign X and Y properties as they're already handled above
3376
+ for (let keysIndex = keys.length - 1; keysIndex > -1; keysIndex--) {
3377
+ point[keys[keysIndex]] =
3378
+ data[pointIndex][keysIndex];
3379
+ }
3380
+ }
3346
3381
  point.category = BoostSeries_pick(xAxis.categories ?
3347
3382
  xAxis.categories[point.x] :
3348
3383
  point.x, // @todo simplify
@@ -3352,9 +3387,12 @@ function getPoint(series, boostPoint) {
3352
3387
  point.distX = boostPoint.distX;
3353
3388
  point.plotX = boostPoint.plotX;
3354
3389
  point.plotY = boostPoint.plotY;
3355
- point.index = boostPoint.i;
3390
+ point.index = pointIndex;
3356
3391
  point.percentage = boostPoint.percentage;
3357
3392
  point.isInside = series.isPointInside(point);
3393
+ if (pointColor) {
3394
+ point.color = pointColor; // Set color for hover effect #23370
3395
+ }
3358
3396
  return point;
3359
3397
  }
3360
3398
  /**
@@ -3570,11 +3608,8 @@ function seriesRenderCanvas() {
3570
3608
  // Do not start building while drawing
3571
3609
  this.buildKDTree = noop;
3572
3610
  BoostSeries_fireEvent(this, 'renderCanvas');
3573
- if (this.is('line') &&
3574
- lineWidth > 1 &&
3575
- seriesBoost?.target &&
3576
- chartBoost &&
3577
- !chartBoost.lineWidthFilter) {
3611
+ if (chartBoost && seriesBoost?.target && lineWidth > 1 && this.is('line')) {
3612
+ chartBoost.lineWidthFilter?.remove();
3578
3613
  chartBoost.lineWidthFilter = chart.renderer.definition({
3579
3614
  tagName: 'filter',
3580
3615
  children: [
@@ -4169,7 +4204,7 @@ function hasWebGLSupport() {
4169
4204
  return true;
4170
4205
  }
4171
4206
  }
4172
- catch (e) {
4207
+ catch {
4173
4208
  // Silent error
4174
4209
  }
4175
4210
  }
@@ -4217,6 +4252,10 @@ const Boost = {
4217
4252
  * Line chart with hundreds of series
4218
4253
  * @sample highcharts/boost/scatter
4219
4254
  * Scatter chart
4255
+ * @sample highcharts/boost/scatter-pointcolor
4256
+ * Scatter chart with colored points
4257
+ * @sample highcharts/boost/scatter-colorbypoint
4258
+ * Scatter chart with colorByPoint
4220
4259
  * @sample highcharts/boost/area
4221
4260
  * Area chart
4222
4261
  * @sample highcharts/boost/arearange