ps-toolkit-ui 0.0.209 → 0.0.210

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 (1057) hide show
  1. package/bundles/ps-toolkit-ui.umd.js +20 -2
  2. package/bundles/ps-toolkit-ui.umd.js.map +1 -1
  3. package/bundles/ps-toolkit-ui.umd.min.js +1 -1
  4. package/bundles/ps-toolkit-ui.umd.min.js.map +1 -1
  5. package/esm2015/lib/classes/chart.class.js +140 -0
  6. package/esm2015/lib/components/chart/chart.component.js +17 -0
  7. package/esm2015/lib/ps-toolkit-ui.module.js +4 -3
  8. package/esm2015/ps-toolkit-ui.js +2 -1
  9. package/fesm2015/ps-toolkit-ui.js +19 -3
  10. package/fesm2015/ps-toolkit-ui.js.map +1 -1
  11. package/lib/classes/chart.class.d.ts +11 -0
  12. package/lib/components/chart/chart.component.d.ts +5 -0
  13. package/package.json +1 -1
  14. package/ps-toolkit-ui.d.ts +1 -0
  15. package/ps-toolkit-ui.metadata.json +1 -1
  16. package/src/assets/plugins/highcharts/code/css/annotations/popup.css +276 -0
  17. package/src/assets/plugins/highcharts/code/css/annotations/popup.scss +289 -0
  18. package/src/assets/plugins/highcharts/code/css/highcharts.css +1013 -0
  19. package/src/assets/plugins/highcharts/code/css/highcharts.scss +896 -0
  20. package/src/assets/plugins/highcharts/code/css/stocktools/gui.css +271 -0
  21. package/src/assets/plugins/highcharts/code/css/stocktools/gui.scss +271 -0
  22. package/src/assets/plugins/highcharts/code/css/themes/dark-unica.css +1074 -0
  23. package/src/assets/plugins/highcharts/code/css/themes/dark-unica.scss +122 -0
  24. package/src/assets/plugins/highcharts/code/css/themes/grid-light.css +1027 -0
  25. package/src/assets/plugins/highcharts/code/css/themes/grid-light.scss +33 -0
  26. package/src/assets/plugins/highcharts/code/css/themes/sand-signika.css +1043 -0
  27. package/src/assets/plugins/highcharts/code/css/themes/sand-signika.scss +74 -0
  28. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/A11yI18n.js +299 -0
  29. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Accessibility.js +401 -0
  30. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/AccessibilityComponent.js +153 -0
  31. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/AnnotationsA11y.js +160 -0
  32. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/ContainerComponent.js +159 -0
  33. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/InfoRegionsComponent.js +543 -0
  34. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/LegendComponent.js +478 -0
  35. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/MenuComponent.js +451 -0
  36. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/RangeSelectorComponent.js +506 -0
  37. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +217 -0
  38. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +324 -0
  39. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/SeriesComponent/SeriesComponent.js +148 -0
  40. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/SeriesComponent/SeriesDescriber.js +390 -0
  41. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +650 -0
  42. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Components/ZoomComponent.js +375 -0
  43. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/FocusBorder.js +302 -0
  44. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/HighContrastMode.js +96 -0
  45. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/HighContrastTheme.js +221 -0
  46. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/KeyboardNavigation.js +449 -0
  47. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/KeyboardNavigationHandler.js +128 -0
  48. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Options/DeprecatedOptions.js +250 -0
  49. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Options/LangOptions.js +339 -0
  50. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Options/Options.js +831 -0
  51. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/ProxyElement.js +218 -0
  52. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/ProxyProvider.js +302 -0
  53. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Utils/Announcer.js +91 -0
  54. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Utils/ChartUtilities.js +294 -0
  55. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Utils/DOMElementProvider.js +62 -0
  56. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Utils/EventProvider.js +58 -0
  57. package/src/assets/plugins/highcharts/code/es-modules/Accessibility/Utils/HTMLUtilities.js +305 -0
  58. package/src/assets/plugins/highcharts/code/es-modules/Core/Animation/AnimationUtilities.js +200 -0
  59. package/src/assets/plugins/highcharts/code/es-modules/Core/Animation/Fx.js +387 -0
  60. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Axis.js +3225 -0
  61. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Axis3D.js +612 -0
  62. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/AxisDefaults.js +2935 -0
  63. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/BrokenAxis.js +601 -0
  64. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Color/ColorAxis.js +668 -0
  65. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Color/ColorAxisComposition.js +287 -0
  66. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Color/ColorAxisDefaults.js +434 -0
  67. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/DateTimeAxis.js +196 -0
  68. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/GridAxis.js +1046 -0
  69. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/LogarithmicAxis.js +202 -0
  70. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/NavigatorAxis.js +159 -0
  71. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/OrdinalAxis.js +992 -0
  72. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +873 -0
  73. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +287 -0
  74. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/RadialAxis.js +954 -0
  75. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/ScrollbarAxis.js +182 -0
  76. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/SolidGaugeAxis.js +127 -0
  77. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/StackingAxis.js +216 -0
  78. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Tick.js +723 -0
  79. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/Tick3D.js +68 -0
  80. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/TreeGridAxis.js +720 -0
  81. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/TreeGridTick.js +306 -0
  82. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/WaterfallAxis.js +149 -0
  83. package/src/assets/plugins/highcharts/code/es-modules/Core/Axis/ZAxis.js +156 -0
  84. package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/Chart.js +2909 -0
  85. package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/Chart3D.js +1695 -0
  86. package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/ChartDefaults.js +1053 -0
  87. package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/ChartNavigationComposition.js +92 -0
  88. package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/GanttChart.js +177 -0
  89. package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/MapChart.js +179 -0
  90. package/src/assets/plugins/highcharts/code/es-modules/Core/Chart/StockChart.js +644 -0
  91. package/src/assets/plugins/highcharts/code/es-modules/Core/Color/Color.js +419 -0
  92. package/src/assets/plugins/highcharts/code/es-modules/Core/Color/Palettes.js +22 -0
  93. package/src/assets/plugins/highcharts/code/es-modules/Core/DefaultOptions.js +2743 -0
  94. package/src/assets/plugins/highcharts/code/es-modules/Core/FormatUtilities.js +246 -0
  95. package/src/assets/plugins/highcharts/code/es-modules/Core/Foundation.js +61 -0
  96. package/src/assets/plugins/highcharts/code/es-modules/Core/Geometry/CircleUtilities.js +386 -0
  97. package/src/assets/plugins/highcharts/code/es-modules/Core/Geometry/GeometryUtilities.js +83 -0
  98. package/src/assets/plugins/highcharts/code/es-modules/Core/Globals.js +131 -0
  99. package/src/assets/plugins/highcharts/code/es-modules/Core/HttpUtilities.js +195 -0
  100. package/src/assets/plugins/highcharts/code/es-modules/Core/Legend/Legend.js +1284 -0
  101. package/src/assets/plugins/highcharts/code/es-modules/Core/Legend/LegendSymbol.js +109 -0
  102. package/src/assets/plugins/highcharts/code/es-modules/Core/MSPointer.js +170 -0
  103. package/src/assets/plugins/highcharts/code/es-modules/Core/Navigator.js +1958 -0
  104. package/src/assets/plugins/highcharts/code/es-modules/Core/Pointer.js +1518 -0
  105. package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/HTML/AST.js +475 -0
  106. package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/HTML/HTMLElement.js +261 -0
  107. package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/HTML/HTMLRenderer.js +272 -0
  108. package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/RendererRegistry.js +77 -0
  109. package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/RendererUtilities.js +159 -0
  110. package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/SVGElement.js +2176 -0
  111. package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/SVGElement3D.js +160 -0
  112. package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/SVGLabel.js +408 -0
  113. package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/SVGRenderer.js +1900 -0
  114. package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +842 -0
  115. package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/Symbols.js +197 -0
  116. package/src/assets/plugins/highcharts/code/es-modules/Core/Renderer/SVG/TextBuilder.js +452 -0
  117. package/src/assets/plugins/highcharts/code/es-modules/Core/Responsive.js +334 -0
  118. package/src/assets/plugins/highcharts/code/es-modules/Core/Scrollbar.js +658 -0
  119. package/src/assets/plugins/highcharts/code/es-modules/Core/ScrollbarDefaults.js +218 -0
  120. package/src/assets/plugins/highcharts/code/es-modules/Core/Series/DataLabel.js +568 -0
  121. package/src/assets/plugins/highcharts/code/es-modules/Core/Series/Point.js +1307 -0
  122. package/src/assets/plugins/highcharts/code/es-modules/Core/Series/Series.js +3718 -0
  123. package/src/assets/plugins/highcharts/code/es-modules/Core/Series/Series3D.js +126 -0
  124. package/src/assets/plugins/highcharts/code/es-modules/Core/Series/SeriesDefaults.js +2293 -0
  125. package/src/assets/plugins/highcharts/code/es-modules/Core/Series/SeriesRegistry.js +127 -0
  126. package/src/assets/plugins/highcharts/code/es-modules/Core/Time.js +741 -0
  127. package/src/assets/plugins/highcharts/code/es-modules/Core/Tooltip.js +1378 -0
  128. package/src/assets/plugins/highcharts/code/es-modules/Core/Utilities.js +1967 -0
  129. package/src/assets/plugins/highcharts/code/es-modules/Data/DataConverter.js +483 -0
  130. package/src/assets/plugins/highcharts/code/es-modules/Data/DataPromise.js +252 -0
  131. package/src/assets/plugins/highcharts/code/es-modules/Data/DataSeriesConverter.js +207 -0
  132. package/src/assets/plugins/highcharts/code/es-modules/Data/DataTable.js +1205 -0
  133. package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/ChainModifier.js +299 -0
  134. package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/DataModifier.js +303 -0
  135. package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/GroupModifier.js +144 -0
  136. package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/InvertModifier.js +254 -0
  137. package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/RangeModifier.js +143 -0
  138. package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/SeriesPointsModifier.js +110 -0
  139. package/src/assets/plugins/highcharts/code/es-modules/Data/Modifiers/SortModifier.js +249 -0
  140. package/src/assets/plugins/highcharts/code/es-modules/Data/Parsers/CSVParser.js +400 -0
  141. package/src/assets/plugins/highcharts/code/es-modules/Data/Parsers/DataParser.js +101 -0
  142. package/src/assets/plugins/highcharts/code/es-modules/Data/Parsers/GoogleSheetsParser.js +223 -0
  143. package/src/assets/plugins/highcharts/code/es-modules/Data/Parsers/HTMLTableParser.js +213 -0
  144. package/src/assets/plugins/highcharts/code/es-modules/Data/Stores/CSVStore.js +317 -0
  145. package/src/assets/plugins/highcharts/code/es-modules/Data/Stores/DataStore.js +276 -0
  146. package/src/assets/plugins/highcharts/code/es-modules/Data/Stores/GoogleSheetsStore.js +169 -0
  147. package/src/assets/plugins/highcharts/code/es-modules/Data/Stores/HTMLTableStore.js +353 -0
  148. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Annotations.js +1442 -0
  149. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/ControlPoint.js +141 -0
  150. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Controllables/ControllableCircle.js +117 -0
  151. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +199 -0
  152. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Controllables/ControllableImage.js +111 -0
  153. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +387 -0
  154. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +181 -0
  155. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Controllables/ControllableRect.js +121 -0
  156. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Mixins/ControllableMixin.js +378 -0
  157. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Mixins/EventEmitterMixin.js +221 -0
  158. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Mixins/MarkerMixin.js +179 -0
  159. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/MockPoint.js +428 -0
  160. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/NavigationBindings.js +1212 -0
  161. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Popup.js +1123 -0
  162. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +237 -0
  163. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/CrookedLine.js +185 -0
  164. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/ElliottWave.js +95 -0
  165. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/Fibonacci.js +205 -0
  166. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +219 -0
  167. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/InfinityLine.js +161 -0
  168. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/Measure.js +791 -0
  169. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/Pitchfork.js +194 -0
  170. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/TimeCycles.js +211 -0
  171. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/Tunnel.js +211 -0
  172. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Annotations/Types/VerticalLine.js +156 -0
  173. package/src/assets/plugins/highcharts/code/es-modules/Extensions/ArrowSymbols.js +166 -0
  174. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/Boost.js +34 -0
  175. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/BoostAttach.js +150 -0
  176. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/BoostInit.js +318 -0
  177. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/BoostOptions.js +219 -0
  178. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/BoostOverrides.js +386 -0
  179. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/BoostUtils.js +255 -0
  180. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/BoostableMap.js +18 -0
  181. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/Boostables.js +25 -0
  182. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/NamedColors.js +162 -0
  183. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/WGLRenderer.js +1188 -0
  184. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/WGLShader.js +470 -0
  185. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Boost/WGLVBuffer.js +153 -0
  186. package/src/assets/plugins/highcharts/code/es-modules/Extensions/BoostCanvas.js +509 -0
  187. package/src/assets/plugins/highcharts/code/es-modules/Extensions/CurrentDateIndication.js +100 -0
  188. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Data.js +2037 -0
  189. package/src/assets/plugins/highcharts/code/es-modules/Extensions/DataGrouping.js +1134 -0
  190. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Debugger/Debugger.js +101 -0
  191. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Debugger/ErrorMessages.js +106 -0
  192. package/src/assets/plugins/highcharts/code/es-modules/Extensions/DownloadURL.js +106 -0
  193. package/src/assets/plugins/highcharts/code/es-modules/Extensions/DragPanes.js +512 -0
  194. package/src/assets/plugins/highcharts/code/es-modules/Extensions/DraggablePoints.js +2259 -0
  195. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Drilldown.js +1170 -0
  196. package/src/assets/plugins/highcharts/code/es-modules/Extensions/ExportData.js +997 -0
  197. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Exporting/Exporting.js +1260 -0
  198. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Exporting/ExportingDefaults.js +796 -0
  199. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Exporting/ExportingSymbols.js +73 -0
  200. package/src/assets/plugins/highcharts/code/es-modules/Extensions/FullScreen.js +240 -0
  201. package/src/assets/plugins/highcharts/code/es-modules/Extensions/GeoJSON.js +436 -0
  202. package/src/assets/plugins/highcharts/code/es-modules/Extensions/MarkerClusters.js +1436 -0
  203. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Math3D.js +245 -0
  204. package/src/assets/plugins/highcharts/code/es-modules/Extensions/NoDataToDisplay.js +189 -0
  205. package/src/assets/plugins/highcharts/code/es-modules/Extensions/OfflineExporting/OfflineExporting.js +617 -0
  206. package/src/assets/plugins/highcharts/code/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +58 -0
  207. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Oldie/Oldie.js +1182 -0
  208. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Oldie/VMLAxis3D.js +101 -0
  209. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Oldie/VMLRenderer3D.js +47 -0
  210. package/src/assets/plugins/highcharts/code/es-modules/Extensions/OldiePolyfills.js +167 -0
  211. package/src/assets/plugins/highcharts/code/es-modules/Extensions/OverlappingDataLabels.js +226 -0
  212. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Pane.js +404 -0
  213. package/src/assets/plugins/highcharts/code/es-modules/Extensions/ParallelCoordinates.js +464 -0
  214. package/src/assets/plugins/highcharts/code/es-modules/Extensions/PatternFill.js +580 -0
  215. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Polar.js +740 -0
  216. package/src/assets/plugins/highcharts/code/es-modules/Extensions/PriceIndication.js +292 -0
  217. package/src/assets/plugins/highcharts/code/es-modules/Extensions/RangeSelector.js +2175 -0
  218. package/src/assets/plugins/highcharts/code/es-modules/Extensions/ScrollablePlotArea.js +387 -0
  219. package/src/assets/plugins/highcharts/code/es-modules/Extensions/SeriesLabel.js +765 -0
  220. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/ChartSonify.js +724 -0
  221. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/Earcon.js +197 -0
  222. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/Instrument.js +606 -0
  223. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/MusicalFrequencies.js +122 -0
  224. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/Options.js +44 -0
  225. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/PointSonify.js +391 -0
  226. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/SeriesSonify.js +474 -0
  227. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/SignalHandler.js +122 -0
  228. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/Sonification.js +97 -0
  229. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/SonificationUtilities.js +150 -0
  230. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/Timeline.js +308 -0
  231. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/TimelineEvent.js +157 -0
  232. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Sonification/TimelinePath.js +311 -0
  233. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Stacking.js +516 -0
  234. package/src/assets/plugins/highcharts/code/es-modules/Extensions/StaticScale.js +76 -0
  235. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/Avocado.js +67 -0
  236. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/BrandDark.js +293 -0
  237. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/BrandLight.js +259 -0
  238. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/DarkBlue.js +279 -0
  239. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/DarkGreen.js +279 -0
  240. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/DarkUnica.js +249 -0
  241. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/Gray.js +287 -0
  242. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/Grid.js +140 -0
  243. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/GridLight.js +111 -0
  244. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/HighContrastDark.js +239 -0
  245. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/HighContrastLight.js +69 -0
  246. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/SandSignika.js +144 -0
  247. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/Skies.js +131 -0
  248. package/src/assets/plugins/highcharts/code/es-modules/Extensions/Themes/Sunset.js +66 -0
  249. package/src/assets/plugins/highcharts/code/es-modules/Gantt/Connection.js +838 -0
  250. package/src/assets/plugins/highcharts/code/es-modules/Gantt/Pathfinder.js +818 -0
  251. package/src/assets/plugins/highcharts/code/es-modules/Gantt/PathfinderAlgorithms.js +657 -0
  252. package/src/assets/plugins/highcharts/code/es-modules/Gantt/Tree.js +110 -0
  253. package/src/assets/plugins/highcharts/code/es-modules/Maps/MapNavigation.js +278 -0
  254. package/src/assets/plugins/highcharts/code/es-modules/Maps/MapNavigationOptionsDefault.js +264 -0
  255. package/src/assets/plugins/highcharts/code/es-modules/Maps/MapPointer.js +83 -0
  256. package/src/assets/plugins/highcharts/code/es-modules/Maps/MapSymbols.js +80 -0
  257. package/src/assets/plugins/highcharts/code/es-modules/Maps/MapView.js +450 -0
  258. package/src/assets/plugins/highcharts/code/es-modules/Maps/MapViewOptionsDefault.js +97 -0
  259. package/src/assets/plugins/highcharts/code/es-modules/Maps/Projection.js +436 -0
  260. package/src/assets/plugins/highcharts/code/es-modules/Maps/ProjectionDefinition.js +9 -0
  261. package/src/assets/plugins/highcharts/code/es-modules/Maps/Projections/EqualEarth.js +42 -0
  262. package/src/assets/plugins/highcharts/code/es-modules/Maps/Projections/LambertConformalConic.js +52 -0
  263. package/src/assets/plugins/highcharts/code/es-modules/Maps/Projections/Miller.js +16 -0
  264. package/src/assets/plugins/highcharts/code/es-modules/Maps/Projections/Orthographic.js +26 -0
  265. package/src/assets/plugins/highcharts/code/es-modules/Maps/Projections/ProjectionRegistry.js +19 -0
  266. package/src/assets/plugins/highcharts/code/es-modules/Maps/Projections/WebMercator.js +24 -0
  267. package/src/assets/plugins/highcharts/code/es-modules/Series/Area/AreaSeries.js +563 -0
  268. package/src/assets/plugins/highcharts/code/es-modules/Series/Area3DSeries.js +70 -0
  269. package/src/assets/plugins/highcharts/code/es-modules/Series/AreaRange/AreaRangePoint.js +129 -0
  270. package/src/assets/plugins/highcharts/code/es-modules/Series/AreaRange/AreaRangeSeries.js +650 -0
  271. package/src/assets/plugins/highcharts/code/es-modules/Series/AreaSpline/AreaSplineSeries.js +203 -0
  272. package/src/assets/plugins/highcharts/code/es-modules/Series/AreaSplineRange/AreaSplineRangeSeries.js +199 -0
  273. package/src/assets/plugins/highcharts/code/es-modules/Series/Bar/BarSeries.js +171 -0
  274. package/src/assets/plugins/highcharts/code/es-modules/Series/Bellcurve/BellcurveSeries.js +241 -0
  275. package/src/assets/plugins/highcharts/code/es-modules/Series/BoxPlot/BoxPlotSeries.js +681 -0
  276. package/src/assets/plugins/highcharts/code/es-modules/Series/Bubble/BubbleLegendComposition.js +279 -0
  277. package/src/assets/plugins/highcharts/code/es-modules/Series/Bubble/BubbleLegendDefaults.js +266 -0
  278. package/src/assets/plugins/highcharts/code/es-modules/Series/Bubble/BubbleLegendItem.js +462 -0
  279. package/src/assets/plugins/highcharts/code/es-modules/Series/Bubble/BubblePoint.js +77 -0
  280. package/src/assets/plugins/highcharts/code/es-modules/Series/Bubble/BubbleSeries.js +676 -0
  281. package/src/assets/plugins/highcharts/code/es-modules/Series/Bullet/BulletPoint.js +62 -0
  282. package/src/assets/plugins/highcharts/code/es-modules/Series/Bullet/BulletSeries.js +365 -0
  283. package/src/assets/plugins/highcharts/code/es-modules/Series/Candlestick/CandlestickSeries.js +333 -0
  284. package/src/assets/plugins/highcharts/code/es-modules/Series/CenteredUtilities.js +128 -0
  285. package/src/assets/plugins/highcharts/code/es-modules/Series/ColorMapMixin.js +84 -0
  286. package/src/assets/plugins/highcharts/code/es-modules/Series/Column/ColumnDataLabel.js +109 -0
  287. package/src/assets/plugins/highcharts/code/es-modules/Series/Column/ColumnSeries.js +1171 -0
  288. package/src/assets/plugins/highcharts/code/es-modules/Series/Column3D/Column3DComposition.js +508 -0
  289. package/src/assets/plugins/highcharts/code/es-modules/Series/ColumnPyramid/ColumnPyramidSeries.js +308 -0
  290. package/src/assets/plugins/highcharts/code/es-modules/Series/ColumnRange/ColumnRangePoint.js +62 -0
  291. package/src/assets/plugins/highcharts/code/es-modules/Series/ColumnRange/ColumnRangeSeries.js +308 -0
  292. package/src/assets/plugins/highcharts/code/es-modules/Series/Cylinder/CylinderComposition.js +274 -0
  293. package/src/assets/plugins/highcharts/code/es-modules/Series/Cylinder/CylinderPoint.js +60 -0
  294. package/src/assets/plugins/highcharts/code/es-modules/Series/Cylinder/CylinderSeries.js +175 -0
  295. package/src/assets/plugins/highcharts/code/es-modules/Series/DataModifyComposition.js +539 -0
  296. package/src/assets/plugins/highcharts/code/es-modules/Series/DependencyWheel/DependencyWheelPoint.js +100 -0
  297. package/src/assets/plugins/highcharts/code/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +368 -0
  298. package/src/assets/plugins/highcharts/code/es-modules/Series/DerivedComposition.js +137 -0
  299. package/src/assets/plugins/highcharts/code/es-modules/Series/DotPlot/DotPlotSeries.js +158 -0
  300. package/src/assets/plugins/highcharts/code/es-modules/Series/DrawPointComposition.js +111 -0
  301. package/src/assets/plugins/highcharts/code/es-modules/Series/Dumbbell/DumbbellPoint.js +104 -0
  302. package/src/assets/plugins/highcharts/code/es-modules/Series/Dumbbell/DumbbellSeries.js +464 -0
  303. package/src/assets/plugins/highcharts/code/es-modules/Series/ErrorBar/ErrorBarSeries.js +228 -0
  304. package/src/assets/plugins/highcharts/code/es-modules/Series/Flags/FlagsPoint.js +74 -0
  305. package/src/assets/plugins/highcharts/code/es-modules/Series/Flags/FlagsSeries.js +614 -0
  306. package/src/assets/plugins/highcharts/code/es-modules/Series/Flags/FlagsSymbols.js +90 -0
  307. package/src/assets/plugins/highcharts/code/es-modules/Series/Funnel/FunnelSeries.js +517 -0
  308. package/src/assets/plugins/highcharts/code/es-modules/Series/Funnel3D/Funnel3DComposition.js +383 -0
  309. package/src/assets/plugins/highcharts/code/es-modules/Series/Funnel3D/Funnel3DPoint.js +62 -0
  310. package/src/assets/plugins/highcharts/code/es-modules/Series/Funnel3D/Funnel3DSeries.js +447 -0
  311. package/src/assets/plugins/highcharts/code/es-modules/Series/Gantt/GanttPoint.js +109 -0
  312. package/src/assets/plugins/highcharts/code/es-modules/Series/Gantt/GanttSeries.js +352 -0
  313. package/src/assets/plugins/highcharts/code/es-modules/Series/Gauge/GaugePoint.js +66 -0
  314. package/src/assets/plugins/highcharts/code/es-modules/Series/Gauge/GaugeSeries.js +568 -0
  315. package/src/assets/plugins/highcharts/code/es-modules/Series/HLC/HLCPoint.js +55 -0
  316. package/src/assets/plugins/highcharts/code/es-modules/Series/HLC/HLCSeries.js +378 -0
  317. package/src/assets/plugins/highcharts/code/es-modules/Series/Heatmap/HeatmapPoint.js +144 -0
  318. package/src/assets/plugins/highcharts/code/es-modules/Series/Heatmap/HeatmapSeries.js +946 -0
  319. package/src/assets/plugins/highcharts/code/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +60 -0
  320. package/src/assets/plugins/highcharts/code/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +278 -0
  321. package/src/assets/plugins/highcharts/code/es-modules/Series/Histogram/HistogramSeries.js +253 -0
  322. package/src/assets/plugins/highcharts/code/es-modules/Series/HollowCandlestick/HollowCandlestickPoint.js +80 -0
  323. package/src/assets/plugins/highcharts/code/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +368 -0
  324. package/src/assets/plugins/highcharts/code/es-modules/Series/Item/ItemPoint.js +59 -0
  325. package/src/assets/plugins/highcharts/code/es-modules/Series/Item/ItemSeries.js +505 -0
  326. package/src/assets/plugins/highcharts/code/es-modules/Series/Line/LineSeries.js +541 -0
  327. package/src/assets/plugins/highcharts/code/es-modules/Series/Lollipop/LollipopPoint.js +60 -0
  328. package/src/assets/plugins/highcharts/code/es-modules/Series/Lollipop/LollipopSeries.js +209 -0
  329. package/src/assets/plugins/highcharts/code/es-modules/Series/Map/MapPoint.js +136 -0
  330. package/src/assets/plugins/highcharts/code/es-modules/Series/Map/MapSeries.js +1100 -0
  331. package/src/assets/plugins/highcharts/code/es-modules/Series/MapBubble/MapBubblePoint.js +73 -0
  332. package/src/assets/plugins/highcharts/code/es-modules/Series/MapBubble/MapBubbleSeries.js +283 -0
  333. package/src/assets/plugins/highcharts/code/es-modules/Series/MapLine/MapLineSeries.js +181 -0
  334. package/src/assets/plugins/highcharts/code/es-modules/Series/MapPoint/MapPointPoint.js +71 -0
  335. package/src/assets/plugins/highcharts/code/es-modules/Series/MapPoint/MapPointSeries.js +309 -0
  336. package/src/assets/plugins/highcharts/code/es-modules/Series/Networkgraph/DraggableNodes.js +132 -0
  337. package/src/assets/plugins/highcharts/code/es-modules/Series/Networkgraph/Integrations.js +348 -0
  338. package/src/assets/plugins/highcharts/code/es-modules/Series/Networkgraph/Layouts.js +555 -0
  339. package/src/assets/plugins/highcharts/code/es-modules/Series/Networkgraph/Networkgraph.js +1178 -0
  340. package/src/assets/plugins/highcharts/code/es-modules/Series/Networkgraph/QuadTree.js +352 -0
  341. package/src/assets/plugins/highcharts/code/es-modules/Series/NodesComposition.js +229 -0
  342. package/src/assets/plugins/highcharts/code/es-modules/Series/OHLC/OHLCPoint.js +116 -0
  343. package/src/assets/plugins/highcharts/code/es-modules/Series/OHLC/OHLCSeries.js +254 -0
  344. package/src/assets/plugins/highcharts/code/es-modules/Series/OnSeriesComposition.js +168 -0
  345. package/src/assets/plugins/highcharts/code/es-modules/Series/Organization/OrganizationPoint.js +71 -0
  346. package/src/assets/plugins/highcharts/code/es-modules/Series/Organization/OrganizationSeries.js +594 -0
  347. package/src/assets/plugins/highcharts/code/es-modules/Series/PackedBubble/PackedBubbleComposition.js +172 -0
  348. package/src/assets/plugins/highcharts/code/es-modules/Series/PackedBubble/PackedBubblePoint.js +98 -0
  349. package/src/assets/plugins/highcharts/code/es-modules/Series/PackedBubble/PackedBubbleSeries.js +1284 -0
  350. package/src/assets/plugins/highcharts/code/es-modules/Series/ParetoSeries/ParetoSeries.js +195 -0
  351. package/src/assets/plugins/highcharts/code/es-modules/Series/Pie/PieDataLabel.js +447 -0
  352. package/src/assets/plugins/highcharts/code/es-modules/Series/Pie/PiePoint.js +270 -0
  353. package/src/assets/plugins/highcharts/code/es-modules/Series/Pie/PieSeries.js +1074 -0
  354. package/src/assets/plugins/highcharts/code/es-modules/Series/Pie3D/Pie3DComposition.js +27 -0
  355. package/src/assets/plugins/highcharts/code/es-modules/Series/Pie3D/Pie3DPoint.js +72 -0
  356. package/src/assets/plugins/highcharts/code/es-modules/Series/Pie3D/Pie3DSeries.js +200 -0
  357. package/src/assets/plugins/highcharts/code/es-modules/Series/Polygon/PolygonSeries.js +195 -0
  358. package/src/assets/plugins/highcharts/code/es-modules/Series/Pyramid/PyramidSeries.js +161 -0
  359. package/src/assets/plugins/highcharts/code/es-modules/Series/Pyramid3D/Pyramid3DSeries.js +172 -0
  360. package/src/assets/plugins/highcharts/code/es-modules/Series/Sankey/SankeyPoint.js +97 -0
  361. package/src/assets/plugins/highcharts/code/es-modules/Series/Sankey/SankeySeries.js +1195 -0
  362. package/src/assets/plugins/highcharts/code/es-modules/Series/Scatter/ScatterSeries.js +306 -0
  363. package/src/assets/plugins/highcharts/code/es-modules/Series/Scatter3D/Scatter3DPoint.js +66 -0
  364. package/src/assets/plugins/highcharts/code/es-modules/Series/Scatter3D/Scatter3DSeries.js +194 -0
  365. package/src/assets/plugins/highcharts/code/es-modules/Series/SolidGauge/SolidGaugeComposition.js +62 -0
  366. package/src/assets/plugins/highcharts/code/es-modules/Series/SolidGauge/SolidGaugeSeries.js +358 -0
  367. package/src/assets/plugins/highcharts/code/es-modules/Series/Spline/SplineSeries.js +279 -0
  368. package/src/assets/plugins/highcharts/code/es-modules/Series/Streamgraph/StreamgraphSeries.js +213 -0
  369. package/src/assets/plugins/highcharts/code/es-modules/Series/Sunburst/SunburstPoint.js +115 -0
  370. package/src/assets/plugins/highcharts/code/es-modules/Series/Sunburst/SunburstSeries.js +907 -0
  371. package/src/assets/plugins/highcharts/code/es-modules/Series/Sunburst/SunburstUtilities.js +138 -0
  372. package/src/assets/plugins/highcharts/code/es-modules/Series/Tilemap/TilemapComposition.js +61 -0
  373. package/src/assets/plugins/highcharts/code/es-modules/Series/Tilemap/TilemapPoint.js +77 -0
  374. package/src/assets/plugins/highcharts/code/es-modules/Series/Tilemap/TilemapSeries.js +368 -0
  375. package/src/assets/plugins/highcharts/code/es-modules/Series/Tilemap/TilemapShapes.js +275 -0
  376. package/src/assets/plugins/highcharts/code/es-modules/Series/Timeline/TimelinePoint.js +168 -0
  377. package/src/assets/plugins/highcharts/code/es-modules/Series/Timeline/TimelineSeries.js +552 -0
  378. package/src/assets/plugins/highcharts/code/es-modules/Series/TreeUtilities.js +192 -0
  379. package/src/assets/plugins/highcharts/code/es-modules/Series/Treemap/TreemapAlgorithmGroup.js +93 -0
  380. package/src/assets/plugins/highcharts/code/es-modules/Series/Treemap/TreemapComposition.js +58 -0
  381. package/src/assets/plugins/highcharts/code/es-modules/Series/Treemap/TreemapPoint.js +107 -0
  382. package/src/assets/plugins/highcharts/code/es-modules/Series/Treemap/TreemapSeries.js +1473 -0
  383. package/src/assets/plugins/highcharts/code/es-modules/Series/Treemap/TreemapUtilities.js +65 -0
  384. package/src/assets/plugins/highcharts/code/es-modules/Series/VariablePie/VariablePieSeries.js +446 -0
  385. package/src/assets/plugins/highcharts/code/es-modules/Series/Variwide/VariwideComposition.js +78 -0
  386. package/src/assets/plugins/highcharts/code/es-modules/Series/Variwide/VariwidePoint.js +63 -0
  387. package/src/assets/plugins/highcharts/code/es-modules/Series/Variwide/VariwideSeries.js +317 -0
  388. package/src/assets/plugins/highcharts/code/es-modules/Series/Vector/VectorSeries.js +362 -0
  389. package/src/assets/plugins/highcharts/code/es-modules/Series/Venn/VennPoint.js +76 -0
  390. package/src/assets/plugins/highcharts/code/es-modules/Series/Venn/VennSeries.js +633 -0
  391. package/src/assets/plugins/highcharts/code/es-modules/Series/Venn/VennUtils.js +607 -0
  392. package/src/assets/plugins/highcharts/code/es-modules/Series/Waterfall/WaterfallPoint.js +68 -0
  393. package/src/assets/plugins/highcharts/code/es-modules/Series/Waterfall/WaterfallSeries.js +743 -0
  394. package/src/assets/plugins/highcharts/code/es-modules/Series/Windbarb/WindbarbPoint.js +64 -0
  395. package/src/assets/plugins/highcharts/code/es-modules/Series/Windbarb/WindbarbSeries.js +462 -0
  396. package/src/assets/plugins/highcharts/code/es-modules/Series/Wordcloud/WordcloudPoint.js +66 -0
  397. package/src/assets/plugins/highcharts/code/es-modules/Series/Wordcloud/WordcloudSeries.js +503 -0
  398. package/src/assets/plugins/highcharts/code/es-modules/Series/Wordcloud/WordcloudUtils.js +718 -0
  399. package/src/assets/plugins/highcharts/code/es-modules/Series/XRange/XRangeComposition.js +49 -0
  400. package/src/assets/plugins/highcharts/code/es-modules/Series/XRange/XRangePoint.js +168 -0
  401. package/src/assets/plugins/highcharts/code/es-modules/Series/XRange/XRangeSeries.js +608 -0
  402. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/ABands/ABandsIndicator.js +243 -0
  403. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/AD/ADIndicator.js +160 -0
  404. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/AO/AOIndicator.js +212 -0
  405. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/APO/APOIndicator.js +167 -0
  406. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/ATR/ATRIndicator.js +162 -0
  407. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +197 -0
  408. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/AroonOscillator/AroonOscillatorIndicator.js +141 -0
  409. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/ArrayUtilities.js +47 -0
  410. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/BB/BBIndicator.js +241 -0
  411. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/CCI/CCIIndicator.js +154 -0
  412. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/CMF/CMFIndicator.js +243 -0
  413. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/CMO/CMOIndicator.js +166 -0
  414. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +187 -0
  415. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/DEMA/DEMAIndicator.js +149 -0
  416. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/DMI/DMIIndicator.js +276 -0
  417. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/DPO/DPOIndicator.js +163 -0
  418. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/DisparityIndex/DisparityIndexIndicator.js +179 -0
  419. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/EMA/EMAIndicator.js +154 -0
  420. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/IKH/IKHIndicator.js +682 -0
  421. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/KeltnerChannels/KeltnerChannelsIndicator.js +217 -0
  422. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +270 -0
  423. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/LinearRegression/LinearRegression.js +282 -0
  424. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/LinearRegressionAngle/LinearRegressionAngle.js +119 -0
  425. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/LinearRegressionIntercept/LinearRegressionIntercept.js +104 -0
  426. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/LinearRegressionSlopes/LinearRegressionSlopes.js +104 -0
  427. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/MACD/MACDIndicator.js +402 -0
  428. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/MFI/MFIIndicator.js +198 -0
  429. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Momentum/MomentumIndicator.js +121 -0
  430. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/MultipleLinesComposition.js +294 -0
  431. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/NATR/NATRIndicator.js +111 -0
  432. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/OBV/OBVIndicator.js +170 -0
  433. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/PC/PCIndicator.js +197 -0
  434. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/PPO/PPOIndicator.js +164 -0
  435. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/PSAR/PSARIndicator.js +280 -0
  436. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +310 -0
  437. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/PivotPoints/PivotPointsPoint.js +78 -0
  438. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/PriceEnvelopes/PriceEnvelopesIndicator.js +240 -0
  439. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/ROC/ROCIndicator.js +176 -0
  440. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/RSI/RSIIndicator.js +171 -0
  441. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/SMA/SMAComposition.js +12 -0
  442. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/SMA/SMAIndicator.js +367 -0
  443. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/SlowStochastic/SlowStochasticIndicator.js +134 -0
  444. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Stochastic/StochasticIndicator.js +208 -0
  445. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +485 -0
  446. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/TEMA/TEMAIndicator.js +208 -0
  447. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/TRIX/TRIXIndicator.js +98 -0
  448. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/TrendLine/TrendLineIndicator.js +148 -0
  449. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/VBP/VBPIndicator.js +556 -0
  450. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/VBP/VBPPoint.js +49 -0
  451. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/VWAP/VWAPIndicator.js +193 -0
  452. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/WMA/WMAIndicator.js +153 -0
  453. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +135 -0
  454. package/src/assets/plugins/highcharts/code/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +228 -0
  455. package/src/assets/plugins/highcharts/code/es-modules/Stock/StockToolsBindings.js +2009 -0
  456. package/src/assets/plugins/highcharts/code/es-modules/Stock/StockToolsGui.js +1816 -0
  457. package/src/assets/plugins/highcharts/code/es-modules/masters/highcharts-3d.src.js +28 -0
  458. package/src/assets/plugins/highcharts/code/es-modules/masters/highcharts-more.src.js +28 -0
  459. package/src/assets/plugins/highcharts/code/es-modules/masters/highcharts.src.js +147 -0
  460. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/accessibility.src.js +28 -0
  461. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/annotations-advanced.src.js +26 -0
  462. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/annotations.src.js +15 -0
  463. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/arrow-symbols.src.js +13 -0
  464. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/boost-canvas.src.js +14 -0
  465. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/boost.src.js +15 -0
  466. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/broken-axis.src.js +15 -0
  467. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/bullet.src.js +13 -0
  468. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/coloraxis.src.js +17 -0
  469. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/current-date-indicator.src.js +13 -0
  470. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/cylinder.src.js +14 -0
  471. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/data.src.js +23 -0
  472. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/datagrouping.src.js +14 -0
  473. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/debugger.src.js +16 -0
  474. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/dependency-wheel.src.js +14 -0
  475. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/dotplot.src.js +13 -0
  476. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/drag-panes.src.js +15 -0
  477. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/draggable-points.src.js +11 -0
  478. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/drilldown.src.js +13 -0
  479. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/dumbbell.src.js +11 -0
  480. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/export-data.src.js +14 -0
  481. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/exporting.src.js +22 -0
  482. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/full-screen.src.js +14 -0
  483. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/funnel.src.js +14 -0
  484. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/funnel3d.src.js +18 -0
  485. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/gantt.src.js +26 -0
  486. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/grid-axis.src.js +17 -0
  487. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/heatmap.src.js +16 -0
  488. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/heikinashi.src.js +14 -0
  489. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/histogram-bellcurve.src.js +13 -0
  490. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/hollowcandlestick.src.js +14 -0
  491. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/item-series.src.js +13 -0
  492. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/lollipop.src.js +11 -0
  493. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/marker-clusters.src.js +13 -0
  494. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/networkgraph.src.js +13 -0
  495. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/no-data-to-display.src.js +14 -0
  496. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/offline-exporting.src.js +20 -0
  497. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/oldie-polyfills.src.js +14 -0
  498. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/oldie.src.js +14 -0
  499. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/organization.src.js +13 -0
  500. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/overlapping-datalabels.src.js +11 -0
  501. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/parallel-coordinates.src.js +13 -0
  502. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/pareto.src.js +13 -0
  503. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/pathfinder.src.js +13 -0
  504. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/pattern-fill.src.js +14 -0
  505. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/price-indicator.src.js +15 -0
  506. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/pyramid3d.src.js +16 -0
  507. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/sankey.src.js +13 -0
  508. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/series-label.src.js +11 -0
  509. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/solid-gauge.src.js +14 -0
  510. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/sonification.src.js +44 -0
  511. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/static-scale.src.js +13 -0
  512. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/stock-tools.src.js +16 -0
  513. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/stock.src.js +33 -0
  514. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/streamgraph.src.js +13 -0
  515. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/sunburst.src.js +13 -0
  516. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/tilemap.src.js +14 -0
  517. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/timeline.src.js +14 -0
  518. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/treegrid.src.js +17 -0
  519. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/treemap.src.js +12 -0
  520. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/variable-pie.src.js +13 -0
  521. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/variwide.src.js +13 -0
  522. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/vector.src.js +13 -0
  523. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/venn.src.js +12 -0
  524. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/windbarb.src.js +13 -0
  525. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/wordcloud.src.js +12 -0
  526. package/src/assets/plugins/highcharts/code/es-modules/masters/modules/xrange.src.js +13 -0
  527. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/avocado.src.js +14 -0
  528. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/brand-dark.src.js +14 -0
  529. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/brand-light.src.js +14 -0
  530. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/dark-blue.src.js +14 -0
  531. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/dark-green.src.js +14 -0
  532. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/dark-unica.src.js +14 -0
  533. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/gray.src.js +14 -0
  534. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/grid-light.src.js +14 -0
  535. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/grid.src.js +14 -0
  536. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/high-contrast-dark.src.js +14 -0
  537. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/high-contrast-light.src.js +14 -0
  538. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/sand-signika.src.js +14 -0
  539. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/skies.src.js +14 -0
  540. package/src/assets/plugins/highcharts/code/es-modules/masters/themes/sunset.src.js +14 -0
  541. package/src/assets/plugins/highcharts/code/highcharts-3d.js +105 -0
  542. package/src/assets/plugins/highcharts/code/highcharts-3d.js.map +1 -0
  543. package/src/assets/plugins/highcharts/code/highcharts-3d.src.js +5439 -0
  544. package/src/assets/plugins/highcharts/code/highcharts-more.js +201 -0
  545. package/src/assets/plugins/highcharts/code/highcharts-more.js.map +1 -0
  546. package/src/assets/plugins/highcharts/code/highcharts-more.src.js +12004 -0
  547. package/src/assets/plugins/highcharts/code/highcharts.js +593 -0
  548. package/src/assets/plugins/highcharts/code/highcharts.js.map +1 -0
  549. package/src/assets/plugins/highcharts/code/highcharts.src.js +47519 -0
  550. package/src/assets/plugins/highcharts/code/lib/canvg.js +8 -0
  551. package/src/assets/plugins/highcharts/code/lib/jspdf.js +283 -0
  552. package/src/assets/plugins/highcharts/code/lib/jspdf.src.js +21627 -0
  553. package/src/assets/plugins/highcharts/code/lib/svg2pdf.js +38 -0
  554. package/src/assets/plugins/highcharts/code/lib/svg2pdf.src.js +4390 -0
  555. package/src/assets/plugins/highcharts/code/modules/accessibility.js +256 -0
  556. package/src/assets/plugins/highcharts/code/modules/accessibility.js.map +1 -0
  557. package/src/assets/plugins/highcharts/code/modules/accessibility.src.js +11868 -0
  558. package/src/assets/plugins/highcharts/code/modules/annotations-advanced.js +201 -0
  559. package/src/assets/plugins/highcharts/code/modules/annotations-advanced.js.map +1 -0
  560. package/src/assets/plugins/highcharts/code/modules/annotations-advanced.src.js +9616 -0
  561. package/src/assets/plugins/highcharts/code/modules/annotations.js +135 -0
  562. package/src/assets/plugins/highcharts/code/modules/annotations.js.map +1 -0
  563. package/src/assets/plugins/highcharts/code/modules/annotations.src.js +6712 -0
  564. package/src/assets/plugins/highcharts/code/modules/arrow-symbols.js +12 -0
  565. package/src/assets/plugins/highcharts/code/modules/arrow-symbols.js.map +1 -0
  566. package/src/assets/plugins/highcharts/code/modules/arrow-symbols.src.js +202 -0
  567. package/src/assets/plugins/highcharts/code/modules/boost-canvas.js +25 -0
  568. package/src/assets/plugins/highcharts/code/modules/boost-canvas.js.map +1 -0
  569. package/src/assets/plugins/highcharts/code/modules/boost-canvas.src.js +593 -0
  570. package/src/assets/plugins/highcharts/code/modules/boost.js +90 -0
  571. package/src/assets/plugins/highcharts/code/modules/boost.js.map +1 -0
  572. package/src/assets/plugins/highcharts/code/modules/boost.src.js +3834 -0
  573. package/src/assets/plugins/highcharts/code/modules/broken-axis.js +20 -0
  574. package/src/assets/plugins/highcharts/code/modules/broken-axis.js.map +1 -0
  575. package/src/assets/plugins/highcharts/code/modules/broken-axis.src.js +682 -0
  576. package/src/assets/plugins/highcharts/code/modules/bullet.js +18 -0
  577. package/src/assets/plugins/highcharts/code/modules/bullet.js.map +1 -0
  578. package/src/assets/plugins/highcharts/code/modules/bullet.src.js +489 -0
  579. package/src/assets/plugins/highcharts/code/modules/coloraxis.js +33 -0
  580. package/src/assets/plugins/highcharts/code/modules/coloraxis.js.map +1 -0
  581. package/src/assets/plugins/highcharts/code/modules/coloraxis.src.js +1484 -0
  582. package/src/assets/plugins/highcharts/code/modules/current-date-indicator.js +13 -0
  583. package/src/assets/plugins/highcharts/code/modules/current-date-indicator.js.map +1 -0
  584. package/src/assets/plugins/highcharts/code/modules/current-date-indicator.src.js +138 -0
  585. package/src/assets/plugins/highcharts/code/modules/cylinder.js +20 -0
  586. package/src/assets/plugins/highcharts/code/modules/cylinder.js.map +1 -0
  587. package/src/assets/plugins/highcharts/code/modules/cylinder.src.js +585 -0
  588. package/src/assets/plugins/highcharts/code/modules/data.js +42 -0
  589. package/src/assets/plugins/highcharts/code/modules/data.js.map +1 -0
  590. package/src/assets/plugins/highcharts/code/modules/data.src.js +2383 -0
  591. package/src/assets/plugins/highcharts/code/modules/datagrouping.js +29 -0
  592. package/src/assets/plugins/highcharts/code/modules/datagrouping.js.map +1 -0
  593. package/src/assets/plugins/highcharts/code/modules/datagrouping.src.js +1275 -0
  594. package/src/assets/plugins/highcharts/code/modules/debugger.js +30 -0
  595. package/src/assets/plugins/highcharts/code/modules/debugger.js.map +1 -0
  596. package/src/assets/plugins/highcharts/code/modules/debugger.src.js +250 -0
  597. package/src/assets/plugins/highcharts/code/modules/dependency-wheel.js +20 -0
  598. package/src/assets/plugins/highcharts/code/modules/dependency-wheel.js.map +1 -0
  599. package/src/assets/plugins/highcharts/code/modules/dependency-wheel.src.js +533 -0
  600. package/src/assets/plugins/highcharts/code/modules/dotplot.js +15 -0
  601. package/src/assets/plugins/highcharts/code/modules/dotplot.js.map +1 -0
  602. package/src/assets/plugins/highcharts/code/modules/dotplot.src.js +216 -0
  603. package/src/assets/plugins/highcharts/code/modules/drag-panes.js +20 -0
  604. package/src/assets/plugins/highcharts/code/modules/drag-panes.js.map +1 -0
  605. package/src/assets/plugins/highcharts/code/modules/drag-panes.src.js +586 -0
  606. package/src/assets/plugins/highcharts/code/modules/draggable-points.js +41 -0
  607. package/src/assets/plugins/highcharts/code/modules/draggable-points.js.map +1 -0
  608. package/src/assets/plugins/highcharts/code/modules/draggable-points.src.js +2405 -0
  609. package/src/assets/plugins/highcharts/code/modules/drilldown.js +34 -0
  610. package/src/assets/plugins/highcharts/code/modules/drilldown.js.map +1 -0
  611. package/src/assets/plugins/highcharts/code/modules/drilldown.src.js +1266 -0
  612. package/src/assets/plugins/highcharts/code/modules/dumbbell.js +24 -0
  613. package/src/assets/plugins/highcharts/code/modules/dumbbell.js.map +1 -0
  614. package/src/assets/plugins/highcharts/code/modules/dumbbell.src.js +798 -0
  615. package/src/assets/plugins/highcharts/code/modules/export-data.js +30 -0
  616. package/src/assets/plugins/highcharts/code/modules/export-data.js.map +1 -0
  617. package/src/assets/plugins/highcharts/code/modules/export-data.src.js +1203 -0
  618. package/src/assets/plugins/highcharts/code/modules/exporting.js +48 -0
  619. package/src/assets/plugins/highcharts/code/modules/exporting.js.map +1 -0
  620. package/src/assets/plugins/highcharts/code/modules/exporting.src.js +2789 -0
  621. package/src/assets/plugins/highcharts/code/modules/full-screen.js +17 -0
  622. package/src/assets/plugins/highcharts/code/modules/full-screen.js.map +1 -0
  623. package/src/assets/plugins/highcharts/code/modules/full-screen.src.js +284 -0
  624. package/src/assets/plugins/highcharts/code/modules/funnel.js +21 -0
  625. package/src/assets/plugins/highcharts/code/modules/funnel.js.map +1 -0
  626. package/src/assets/plugins/highcharts/code/modules/funnel.src.js +777 -0
  627. package/src/assets/plugins/highcharts/code/modules/funnel3d.js +30 -0
  628. package/src/assets/plugins/highcharts/code/modules/funnel3d.js.map +1 -0
  629. package/src/assets/plugins/highcharts/code/modules/funnel3d.src.js +1004 -0
  630. package/src/assets/plugins/highcharts/code/modules/gantt.js +226 -0
  631. package/src/assets/plugins/highcharts/code/modules/gantt.js.map +1 -0
  632. package/src/assets/plugins/highcharts/code/modules/gantt.src.js +13485 -0
  633. package/src/assets/plugins/highcharts/code/modules/grid-axis.js +32 -0
  634. package/src/assets/plugins/highcharts/code/modules/grid-axis.js.map +1 -0
  635. package/src/assets/plugins/highcharts/code/modules/grid-axis.src.js +1160 -0
  636. package/src/assets/plugins/highcharts/code/modules/heatmap.js +46 -0
  637. package/src/assets/plugins/highcharts/code/modules/heatmap.js.map +1 -0
  638. package/src/assets/plugins/highcharts/code/modules/heatmap.src.js +2726 -0
  639. package/src/assets/plugins/highcharts/code/modules/heikinashi.js +17 -0
  640. package/src/assets/plugins/highcharts/code/modules/heikinashi.js.map +1 -0
  641. package/src/assets/plugins/highcharts/code/modules/heikinashi.src.js +396 -0
  642. package/src/assets/plugins/highcharts/code/modules/histogram-bellcurve.js +21 -0
  643. package/src/assets/plugins/highcharts/code/modules/histogram-bellcurve.js.map +1 -0
  644. package/src/assets/plugins/highcharts/code/modules/histogram-bellcurve.src.js +699 -0
  645. package/src/assets/plugins/highcharts/code/modules/hollowcandlestick.js +18 -0
  646. package/src/assets/plugins/highcharts/code/modules/hollowcandlestick.js.map +1 -0
  647. package/src/assets/plugins/highcharts/code/modules/hollowcandlestick.src.js +500 -0
  648. package/src/assets/plugins/highcharts/code/modules/item-series.js +21 -0
  649. package/src/assets/plugins/highcharts/code/modules/item-series.js.map +1 -0
  650. package/src/assets/plugins/highcharts/code/modules/item-series.src.js +660 -0
  651. package/src/assets/plugins/highcharts/code/modules/lollipop.js +14 -0
  652. package/src/assets/plugins/highcharts/code/modules/lollipop.js.map +1 -0
  653. package/src/assets/plugins/highcharts/code/modules/lollipop.src.js +318 -0
  654. package/src/assets/plugins/highcharts/code/modules/marker-clusters.js +45 -0
  655. package/src/assets/plugins/highcharts/code/modules/marker-clusters.js.map +1 -0
  656. package/src/assets/plugins/highcharts/code/modules/marker-clusters.src.js +1713 -0
  657. package/src/assets/plugins/highcharts/code/modules/networkgraph.js +58 -0
  658. package/src/assets/plugins/highcharts/code/modules/networkgraph.js.map +1 -0
  659. package/src/assets/plugins/highcharts/code/modules/networkgraph.src.js +2926 -0
  660. package/src/assets/plugins/highcharts/code/modules/no-data-to-display.js +15 -0
  661. package/src/assets/plugins/highcharts/code/modules/no-data-to-display.js.map +1 -0
  662. package/src/assets/plugins/highcharts/code/modules/no-data-to-display.src.js +231 -0
  663. package/src/assets/plugins/highcharts/code/modules/offline-exporting.js +27 -0
  664. package/src/assets/plugins/highcharts/code/modules/offline-exporting.js.map +1 -0
  665. package/src/assets/plugins/highcharts/code/modules/offline-exporting.src.js +847 -0
  666. package/src/assets/plugins/highcharts/code/modules/oldie-polyfills.js +17 -0
  667. package/src/assets/plugins/highcharts/code/modules/oldie-polyfills.js.map +1 -0
  668. package/src/assets/plugins/highcharts/code/modules/oldie-polyfills.src.js +220 -0
  669. package/src/assets/plugins/highcharts/code/modules/oldie.js +40 -0
  670. package/src/assets/plugins/highcharts/code/modules/oldie.js.map +1 -0
  671. package/src/assets/plugins/highcharts/code/modules/oldie.src.js +1443 -0
  672. package/src/assets/plugins/highcharts/code/modules/organization.js +22 -0
  673. package/src/assets/plugins/highcharts/code/modules/organization.js.map +1 -0
  674. package/src/assets/plugins/highcharts/code/modules/organization.src.js +736 -0
  675. package/src/assets/plugins/highcharts/code/modules/overlapping-datalabels.js +9 -0
  676. package/src/assets/plugins/highcharts/code/modules/overlapping-datalabels.js.map +1 -0
  677. package/src/assets/plugins/highcharts/code/modules/overlapping-datalabels.src.js +33 -0
  678. package/src/assets/plugins/highcharts/code/modules/parallel-coordinates.js +20 -0
  679. package/src/assets/plugins/highcharts/code/modules/parallel-coordinates.js.map +1 -0
  680. package/src/assets/plugins/highcharts/code/modules/parallel-coordinates.src.js +555 -0
  681. package/src/assets/plugins/highcharts/code/modules/pareto.js +16 -0
  682. package/src/assets/plugins/highcharts/code/modules/pareto.js.map +1 -0
  683. package/src/assets/plugins/highcharts/code/modules/pareto.src.js +382 -0
  684. package/src/assets/plugins/highcharts/code/modules/pathfinder.js +40 -0
  685. package/src/assets/plugins/highcharts/code/modules/pathfinder.js.map +1 -0
  686. package/src/assets/plugins/highcharts/code/modules/pathfinder.src.js +2693 -0
  687. package/src/assets/plugins/highcharts/code/modules/pattern-fill.js +24 -0
  688. package/src/assets/plugins/highcharts/code/modules/pattern-fill.js.map +1 -0
  689. package/src/assets/plugins/highcharts/code/modules/pattern-fill.src.js +640 -0
  690. package/src/assets/plugins/highcharts/code/modules/price-indicator.js +15 -0
  691. package/src/assets/plugins/highcharts/code/modules/price-indicator.js.map +1 -0
  692. package/src/assets/plugins/highcharts/code/modules/price-indicator.src.js +346 -0
  693. package/src/assets/plugins/highcharts/code/modules/pyramid3d.js +13 -0
  694. package/src/assets/plugins/highcharts/code/modules/pyramid3d.js.map +1 -0
  695. package/src/assets/plugins/highcharts/code/modules/pyramid3d.src.js +211 -0
  696. package/src/assets/plugins/highcharts/code/modules/sankey.js +38 -0
  697. package/src/assets/plugins/highcharts/code/modules/sankey.js.map +1 -0
  698. package/src/assets/plugins/highcharts/code/modules/sankey.src.js +1868 -0
  699. package/src/assets/plugins/highcharts/code/modules/series-label.js +24 -0
  700. package/src/assets/plugins/highcharts/code/modules/series-label.js.map +1 -0
  701. package/src/assets/plugins/highcharts/code/modules/series-label.src.js +852 -0
  702. package/src/assets/plugins/highcharts/code/modules/solid-gauge.js +19 -0
  703. package/src/assets/plugins/highcharts/code/modules/solid-gauge.js.map +1 -0
  704. package/src/assets/plugins/highcharts/code/modules/solid-gauge.src.js +650 -0
  705. package/src/assets/plugins/highcharts/code/modules/sonification.js +68 -0
  706. package/src/assets/plugins/highcharts/code/modules/sonification.js.map +1 -0
  707. package/src/assets/plugins/highcharts/code/modules/sonification.src.js +3869 -0
  708. package/src/assets/plugins/highcharts/code/modules/static-scale.js +13 -0
  709. package/src/assets/plugins/highcharts/code/modules/static-scale.js.map +1 -0
  710. package/src/assets/plugins/highcharts/code/modules/static-scale.src.js +117 -0
  711. package/src/assets/plugins/highcharts/code/modules/stock-tools.js +189 -0
  712. package/src/assets/plugins/highcharts/code/modules/stock-tools.js.map +1 -0
  713. package/src/assets/plugins/highcharts/code/modules/stock-tools.src.js +9592 -0
  714. package/src/assets/plugins/highcharts/code/modules/stock.js +213 -0
  715. package/src/assets/plugins/highcharts/code/modules/stock.js.map +1 -0
  716. package/src/assets/plugins/highcharts/code/modules/stock.src.js +12237 -0
  717. package/src/assets/plugins/highcharts/code/modules/streamgraph.js +13 -0
  718. package/src/assets/plugins/highcharts/code/modules/streamgraph.js.map +1 -0
  719. package/src/assets/plugins/highcharts/code/modules/streamgraph.src.js +253 -0
  720. package/src/assets/plugins/highcharts/code/modules/sunburst.js +68 -0
  721. package/src/assets/plugins/highcharts/code/modules/sunburst.js.map +1 -0
  722. package/src/assets/plugins/highcharts/code/modules/sunburst.src.js +3721 -0
  723. package/src/assets/plugins/highcharts/code/modules/tilemap.js +26 -0
  724. package/src/assets/plugins/highcharts/code/modules/tilemap.js.map +1 -0
  725. package/src/assets/plugins/highcharts/code/modules/tilemap.src.js +878 -0
  726. package/src/assets/plugins/highcharts/code/modules/timeline.js +28 -0
  727. package/src/assets/plugins/highcharts/code/modules/timeline.js.map +1 -0
  728. package/src/assets/plugins/highcharts/code/modules/timeline.src.js +815 -0
  729. package/src/assets/plugins/highcharts/code/modules/treegrid.js +65 -0
  730. package/src/assets/plugins/highcharts/code/modules/treegrid.js.map +1 -0
  731. package/src/assets/plugins/highcharts/code/modules/treegrid.src.js +3294 -0
  732. package/src/assets/plugins/highcharts/code/modules/treemap.js +49 -0
  733. package/src/assets/plugins/highcharts/code/modules/treemap.js.map +1 -0
  734. package/src/assets/plugins/highcharts/code/modules/treemap.src.js +2416 -0
  735. package/src/assets/plugins/highcharts/code/modules/variable-pie.js +18 -0
  736. package/src/assets/plugins/highcharts/code/modules/variable-pie.js.map +1 -0
  737. package/src/assets/plugins/highcharts/code/modules/variable-pie.src.js +533 -0
  738. package/src/assets/plugins/highcharts/code/modules/variwide.js +21 -0
  739. package/src/assets/plugins/highcharts/code/modules/variwide.js.map +1 -0
  740. package/src/assets/plugins/highcharts/code/modules/variwide.src.js +529 -0
  741. package/src/assets/plugins/highcharts/code/modules/vector.js +16 -0
  742. package/src/assets/plugins/highcharts/code/modules/vector.js.map +1 -0
  743. package/src/assets/plugins/highcharts/code/modules/vector.src.js +409 -0
  744. package/src/assets/plugins/highcharts/code/modules/venn.js +39 -0
  745. package/src/assets/plugins/highcharts/code/modules/venn.js.map +1 -0
  746. package/src/assets/plugins/highcharts/code/modules/venn.src.js +2095 -0
  747. package/src/assets/plugins/highcharts/code/modules/windbarb.js +24 -0
  748. package/src/assets/plugins/highcharts/code/modules/windbarb.js.map +1 -0
  749. package/src/assets/plugins/highcharts/code/modules/windbarb.src.js +772 -0
  750. package/src/assets/plugins/highcharts/code/modules/wordcloud.js +31 -0
  751. package/src/assets/plugins/highcharts/code/modules/wordcloud.js.map +1 -0
  752. package/src/assets/plugins/highcharts/code/modules/wordcloud.src.js +1584 -0
  753. package/src/assets/plugins/highcharts/code/modules/xrange.js +26 -0
  754. package/src/assets/plugins/highcharts/code/modules/xrange.js.map +1 -0
  755. package/src/assets/plugins/highcharts/code/modules/xrange.src.js +940 -0
  756. package/src/assets/plugins/highcharts/code/themes/avocado.js +10 -0
  757. package/src/assets/plugins/highcharts/code/themes/avocado.js.map +1 -0
  758. package/src/assets/plugins/highcharts/code/themes/avocado.src.js +103 -0
  759. package/src/assets/plugins/highcharts/code/themes/brand-dark.js +15 -0
  760. package/src/assets/plugins/highcharts/code/themes/brand-dark.js.map +1 -0
  761. package/src/assets/plugins/highcharts/code/themes/brand-dark.src.js +328 -0
  762. package/src/assets/plugins/highcharts/code/themes/brand-light.js +15 -0
  763. package/src/assets/plugins/highcharts/code/themes/brand-light.js.map +1 -0
  764. package/src/assets/plugins/highcharts/code/themes/brand-light.src.js +294 -0
  765. package/src/assets/plugins/highcharts/code/themes/dark-blue.js +15 -0
  766. package/src/assets/plugins/highcharts/code/themes/dark-blue.js.map +1 -0
  767. package/src/assets/plugins/highcharts/code/themes/dark-blue.src.js +315 -0
  768. package/src/assets/plugins/highcharts/code/themes/dark-green.js +15 -0
  769. package/src/assets/plugins/highcharts/code/themes/dark-green.js.map +1 -0
  770. package/src/assets/plugins/highcharts/code/themes/dark-green.src.js +315 -0
  771. package/src/assets/plugins/highcharts/code/themes/dark-unica.js +14 -0
  772. package/src/assets/plugins/highcharts/code/themes/dark-unica.js.map +1 -0
  773. package/src/assets/plugins/highcharts/code/themes/dark-unica.src.js +284 -0
  774. package/src/assets/plugins/highcharts/code/themes/gray.js +15 -0
  775. package/src/assets/plugins/highcharts/code/themes/gray.js.map +1 -0
  776. package/src/assets/plugins/highcharts/code/themes/gray.src.js +323 -0
  777. package/src/assets/plugins/highcharts/code/themes/grid-light.js +11 -0
  778. package/src/assets/plugins/highcharts/code/themes/grid-light.js.map +1 -0
  779. package/src/assets/plugins/highcharts/code/themes/grid-light.src.js +146 -0
  780. package/src/assets/plugins/highcharts/code/themes/grid.js +12 -0
  781. package/src/assets/plugins/highcharts/code/themes/grid.js.map +1 -0
  782. package/src/assets/plugins/highcharts/code/themes/grid.src.js +176 -0
  783. package/src/assets/plugins/highcharts/code/themes/high-contrast-dark.js +14 -0
  784. package/src/assets/plugins/highcharts/code/themes/high-contrast-dark.js.map +1 -0
  785. package/src/assets/plugins/highcharts/code/themes/high-contrast-dark.src.js +275 -0
  786. package/src/assets/plugins/highcharts/code/themes/high-contrast-light.js +10 -0
  787. package/src/assets/plugins/highcharts/code/themes/high-contrast-light.js.map +1 -0
  788. package/src/assets/plugins/highcharts/code/themes/high-contrast-light.src.js +105 -0
  789. package/src/assets/plugins/highcharts/code/themes/sand-signika.js +12 -0
  790. package/src/assets/plugins/highcharts/code/themes/sand-signika.js.map +1 -0
  791. package/src/assets/plugins/highcharts/code/themes/sand-signika.src.js +179 -0
  792. package/src/assets/plugins/highcharts/code/themes/skies.js +12 -0
  793. package/src/assets/plugins/highcharts/code/themes/skies.js.map +1 -0
  794. package/src/assets/plugins/highcharts/code/themes/skies.src.js +167 -0
  795. package/src/assets/plugins/highcharts/code/themes/sunset.js +10 -0
  796. package/src/assets/plugins/highcharts/code/themes/sunset.js.map +1 -0
  797. package/src/assets/plugins/highcharts/code/themes/sunset.src.js +102 -0
  798. package/src/assets/plugins/highcharts/examples/3d-area-multiple/index.html +192 -0
  799. package/src/assets/plugins/highcharts/examples/3d-column-interactive/index.html +111 -0
  800. package/src/assets/plugins/highcharts/examples/3d-column-null-values/index.html +118 -0
  801. package/src/assets/plugins/highcharts/examples/3d-column-stacking-grouping/index.html +144 -0
  802. package/src/assets/plugins/highcharts/examples/3d-pie/index.html +130 -0
  803. package/src/assets/plugins/highcharts/examples/3d-pie-donut/index.html +112 -0
  804. package/src/assets/plugins/highcharts/examples/3d-scatter-draggable/index.html +221 -0
  805. package/src/assets/plugins/highcharts/examples/accessible-line/index.html +198 -0
  806. package/src/assets/plugins/highcharts/examples/accessible-pie/index.html +213 -0
  807. package/src/assets/plugins/highcharts/examples/advanced-accessible/index.html +271 -0
  808. package/src/assets/plugins/highcharts/examples/annotations/index.html +2170 -0
  809. package/src/assets/plugins/highcharts/examples/area-basic/index.html +157 -0
  810. package/src/assets/plugins/highcharts/examples/area-inverted/index.html +135 -0
  811. package/src/assets/plugins/highcharts/examples/area-missing/index.html +125 -0
  812. package/src/assets/plugins/highcharts/examples/area-negative/index.html +101 -0
  813. package/src/assets/plugins/highcharts/examples/area-stacked/index.html +136 -0
  814. package/src/assets/plugins/highcharts/examples/area-stacked-percent/index.html +141 -0
  815. package/src/assets/plugins/highcharts/examples/arearange/index.html +132 -0
  816. package/src/assets/plugins/highcharts/examples/arearange-line/index.html +195 -0
  817. package/src/assets/plugins/highcharts/examples/areaspline/index.html +137 -0
  818. package/src/assets/plugins/highcharts/examples/bar-basic/index.html +143 -0
  819. package/src/assets/plugins/highcharts/examples/bar-negative-stack/index.html +173 -0
  820. package/src/assets/plugins/highcharts/examples/bar-stacked/index.html +112 -0
  821. package/src/assets/plugins/highcharts/examples/bellcurve/index.html +133 -0
  822. package/src/assets/plugins/highcharts/examples/box-plot/index.html +149 -0
  823. package/src/assets/plugins/highcharts/examples/bubble/index.html +209 -0
  824. package/src/assets/plugins/highcharts/examples/bubble-3d/index.html +159 -0
  825. package/src/assets/plugins/highcharts/examples/bullet-graph/index.html +233 -0
  826. package/src/assets/plugins/highcharts/examples/chart-update/index.html +137 -0
  827. package/src/assets/plugins/highcharts/examples/column-basic/index.html +144 -0
  828. package/src/assets/plugins/highcharts/examples/column-comparison/index.html +350 -0
  829. package/src/assets/plugins/highcharts/examples/column-drilldown/index.html +387 -0
  830. package/src/assets/plugins/highcharts/examples/column-negative/index.html +101 -0
  831. package/src/assets/plugins/highcharts/examples/column-parsed/index.html +138 -0
  832. package/src/assets/plugins/highcharts/examples/column-placement/index.html +160 -0
  833. package/src/assets/plugins/highcharts/examples/column-pyramid/index.html +117 -0
  834. package/src/assets/plugins/highcharts/examples/column-rotated-labels/index.html +147 -0
  835. package/src/assets/plugins/highcharts/examples/column-stacked/index.html +138 -0
  836. package/src/assets/plugins/highcharts/examples/column-stacked-and-grouped/index.html +133 -0
  837. package/src/assets/plugins/highcharts/examples/column-stacked-percent/index.html +113 -0
  838. package/src/assets/plugins/highcharts/examples/columnrange/index.html +145 -0
  839. package/src/assets/plugins/highcharts/examples/combo/index.html +146 -0
  840. package/src/assets/plugins/highcharts/examples/combo-dual-axes/index.html +153 -0
  841. package/src/assets/plugins/highcharts/examples/combo-meteogram/index.html +768 -0
  842. package/src/assets/plugins/highcharts/examples/combo-multi-axes/index.html +222 -0
  843. package/src/assets/plugins/highcharts/examples/combo-regression/index.html +110 -0
  844. package/src/assets/plugins/highcharts/examples/combo-timeline/index.html +592 -0
  845. package/src/assets/plugins/highcharts/examples/cylinder/index.html +104 -0
  846. package/src/assets/plugins/highcharts/examples/dependency-wheel/index.html +165 -0
  847. package/src/assets/plugins/highcharts/examples/dumbbell/index.html +230 -0
  848. package/src/assets/plugins/highcharts/examples/dynamic-click-to-add/index.html +147 -0
  849. package/src/assets/plugins/highcharts/examples/dynamic-master-detail/index.html +316 -0
  850. package/src/assets/plugins/highcharts/examples/dynamic-update/index.html +163 -0
  851. package/src/assets/plugins/highcharts/examples/error-bar/index.html +154 -0
  852. package/src/assets/plugins/highcharts/examples/euler-diagram/index.html +119 -0
  853. package/src/assets/plugins/highcharts/examples/flame/index.html +1324 -0
  854. package/src/assets/plugins/highcharts/examples/funnel/index.html +131 -0
  855. package/src/assets/plugins/highcharts/examples/funnel3d/index.html +117 -0
  856. package/src/assets/plugins/highcharts/examples/gauge-activity/index.html +272 -0
  857. package/src/assets/plugins/highcharts/examples/gauge-clock/index.html +261 -0
  858. package/src/assets/plugins/highcharts/examples/gauge-dual/index.html +181 -0
  859. package/src/assets/plugins/highcharts/examples/gauge-solid/index.html +248 -0
  860. package/src/assets/plugins/highcharts/examples/gauge-speedometer/index.html +189 -0
  861. package/src/assets/plugins/highcharts/examples/gauge-vu-meter/index.html +210 -0
  862. package/src/assets/plugins/highcharts/examples/heatmap/index.html +168 -0
  863. package/src/assets/plugins/highcharts/examples/heatmap-canvas/index.html +8928 -0
  864. package/src/assets/plugins/highcharts/examples/histogram/index.html +133 -0
  865. package/src/assets/plugins/highcharts/examples/honeycomb-usa/index.html +518 -0
  866. package/src/assets/plugins/highcharts/examples/line-ajax/index.html +206 -0
  867. package/src/assets/plugins/highcharts/examples/line-basic/index.html +147 -0
  868. package/src/assets/plugins/highcharts/examples/line-boost/index.html +144 -0
  869. package/src/assets/plugins/highcharts/examples/line-labels/index.html +108 -0
  870. package/src/assets/plugins/highcharts/examples/line-log-axis/index.html +106 -0
  871. package/src/assets/plugins/highcharts/examples/line-time-series/index.html +136 -0
  872. package/src/assets/plugins/highcharts/examples/live-data/index.html +155 -0
  873. package/src/assets/plugins/highcharts/examples/lollipop/index.html +161 -0
  874. package/src/assets/plugins/highcharts/examples/network-graph/index.html +277 -0
  875. package/src/assets/plugins/highcharts/examples/organization-chart/index.html +224 -0
  876. package/src/assets/plugins/highcharts/examples/packed-bubble/index.html +588 -0
  877. package/src/assets/plugins/highcharts/examples/packed-bubble-split/index.html +589 -0
  878. package/src/assets/plugins/highcharts/examples/parallel-coordinates/index.html +176 -0
  879. package/src/assets/plugins/highcharts/examples/pareto/index.html +133 -0
  880. package/src/assets/plugins/highcharts/examples/parliament-chart/index.html +138 -0
  881. package/src/assets/plugins/highcharts/examples/pie-basic/index.html +141 -0
  882. package/src/assets/plugins/highcharts/examples/pie-donut/index.html +347 -0
  883. package/src/assets/plugins/highcharts/examples/pie-drilldown/index.html +418 -0
  884. package/src/assets/plugins/highcharts/examples/pie-gradient/index.html +133 -0
  885. package/src/assets/plugins/highcharts/examples/pie-legend/index.html +128 -0
  886. package/src/assets/plugins/highcharts/examples/pie-monochrome/index.html +139 -0
  887. package/src/assets/plugins/highcharts/examples/pie-semi-circle/index.html +133 -0
  888. package/src/assets/plugins/highcharts/examples/polar/index.html +136 -0
  889. package/src/assets/plugins/highcharts/examples/polar-radial-bar/index.html +169 -0
  890. package/src/assets/plugins/highcharts/examples/polar-spider/index.html +148 -0
  891. package/src/assets/plugins/highcharts/examples/polar-wind-rose/index.html +351 -0
  892. package/src/assets/plugins/highcharts/examples/polygon/index.html +190 -0
  893. package/src/assets/plugins/highcharts/examples/pyramid/index.html +126 -0
  894. package/src/assets/plugins/highcharts/examples/pyramid3d/index.html +117 -0
  895. package/src/assets/plugins/highcharts/examples/renderer/index.html +334 -0
  896. package/src/assets/plugins/highcharts/examples/responsive/index.html +176 -0
  897. package/src/assets/plugins/highcharts/examples/sankey-diagram/index.html +145 -0
  898. package/src/assets/plugins/highcharts/examples/scatter/index.html +246 -0
  899. package/src/assets/plugins/highcharts/examples/scatter-boost/index.html +142 -0
  900. package/src/assets/plugins/highcharts/examples/sonification/index.html +331 -0
  901. package/src/assets/plugins/highcharts/examples/sparkline/index.html +676 -0
  902. package/src/assets/plugins/highcharts/examples/spline-inverted/index.html +135 -0
  903. package/src/assets/plugins/highcharts/examples/spline-irregular-time/index.html +255 -0
  904. package/src/assets/plugins/highcharts/examples/spline-plot-bands/index.html +223 -0
  905. package/src/assets/plugins/highcharts/examples/spline-symbols/index.html +139 -0
  906. package/src/assets/plugins/highcharts/examples/streamgraph/index.html +447 -0
  907. package/src/assets/plugins/highcharts/examples/styled-mode-column/index.html +146 -0
  908. package/src/assets/plugins/highcharts/examples/styled-mode-pie/index.html +119 -0
  909. package/src/assets/plugins/highcharts/examples/sunburst/index.html +1520 -0
  910. package/src/assets/plugins/highcharts/examples/synchronized-charts/index.html +238 -0
  911. package/src/assets/plugins/highcharts/examples/timeline/index.html +142 -0
  912. package/src/assets/plugins/highcharts/examples/treemap-coloraxis/index.html +119 -0
  913. package/src/assets/plugins/highcharts/examples/treemap-large-dataset/index.html +172 -0
  914. package/src/assets/plugins/highcharts/examples/treemap-with-levels/index.html +151 -0
  915. package/src/assets/plugins/highcharts/examples/variable-radius-pie/index.html +131 -0
  916. package/src/assets/plugins/highcharts/examples/variwide/index.html +146 -0
  917. package/src/assets/plugins/highcharts/examples/vector-plot/index.html +494 -0
  918. package/src/assets/plugins/highcharts/examples/venn-diagram/index.html +124 -0
  919. package/src/assets/plugins/highcharts/examples/waterfall/index.html +143 -0
  920. package/src/assets/plugins/highcharts/examples/windbarb-series/index.html +189 -0
  921. package/src/assets/plugins/highcharts/examples/wordcloud/index.html +110 -0
  922. package/src/assets/plugins/highcharts/examples/x-range/index.html +142 -0
  923. package/src/assets/plugins/highcharts/gfx/stock-icons/annotations-hidden.svg +19 -0
  924. package/src/assets/plugins/highcharts/gfx/stock-icons/annotations-visible.svg +20 -0
  925. package/src/assets/plugins/highcharts/gfx/stock-icons/arrow-bottom.svg +9 -0
  926. package/src/assets/plugins/highcharts/gfx/stock-icons/arrow-left.svg +9 -0
  927. package/src/assets/plugins/highcharts/gfx/stock-icons/arrow-line.svg +11 -0
  928. package/src/assets/plugins/highcharts/gfx/stock-icons/arrow-ray.svg +10 -0
  929. package/src/assets/plugins/highcharts/gfx/stock-icons/arrow-right.svg +9 -0
  930. package/src/assets/plugins/highcharts/gfx/stock-icons/arrow-segment.svg +11 -0
  931. package/src/assets/plugins/highcharts/gfx/stock-icons/arrow.svg +13 -0
  932. package/src/assets/plugins/highcharts/gfx/stock-icons/circle.svg +13 -0
  933. package/src/assets/plugins/highcharts/gfx/stock-icons/close.svg +8 -0
  934. package/src/assets/plugins/highcharts/gfx/stock-icons/crooked-3.svg +13 -0
  935. package/src/assets/plugins/highcharts/gfx/stock-icons/crooked-5.svg +11 -0
  936. package/src/assets/plugins/highcharts/gfx/stock-icons/current-price-hide.svg +40 -0
  937. package/src/assets/plugins/highcharts/gfx/stock-icons/current-price-show.svg +41 -0
  938. package/src/assets/plugins/highcharts/gfx/stock-icons/destroy.svg +14 -0
  939. package/src/assets/plugins/highcharts/gfx/stock-icons/drawing.svg +18 -0
  940. package/src/assets/plugins/highcharts/gfx/stock-icons/edit.svg +10 -0
  941. package/src/assets/plugins/highcharts/gfx/stock-icons/elliott-3.svg +59 -0
  942. package/src/assets/plugins/highcharts/gfx/stock-icons/elliott-5.svg +41 -0
  943. package/src/assets/plugins/highcharts/gfx/stock-icons/ellipse.svg +11 -0
  944. package/src/assets/plugins/highcharts/gfx/stock-icons/fibonacci-timezone.svg +16 -0
  945. package/src/assets/plugins/highcharts/gfx/stock-icons/fibonacci.svg +25 -0
  946. package/src/assets/plugins/highcharts/gfx/stock-icons/flag-basic.svg +10 -0
  947. package/src/assets/plugins/highcharts/gfx/stock-icons/flag-diamond.svg +12 -0
  948. package/src/assets/plugins/highcharts/gfx/stock-icons/flag-elipse.svg +13 -0
  949. package/src/assets/plugins/highcharts/gfx/stock-icons/flag-trapeze.svg +14 -0
  950. package/src/assets/plugins/highcharts/gfx/stock-icons/fullscreen.svg +15 -0
  951. package/src/assets/plugins/highcharts/gfx/stock-icons/horizontal-line.svg +8 -0
  952. package/src/assets/plugins/highcharts/gfx/stock-icons/indicators.svg +27 -0
  953. package/src/assets/plugins/highcharts/gfx/stock-icons/label.svg +16 -0
  954. package/src/assets/plugins/highcharts/gfx/stock-icons/line.svg +11 -0
  955. package/src/assets/plugins/highcharts/gfx/stock-icons/linear.svg +11 -0
  956. package/src/assets/plugins/highcharts/gfx/stock-icons/logarithmic.svg +1 -0
  957. package/src/assets/plugins/highcharts/gfx/stock-icons/measure-x.svg +23 -0
  958. package/src/assets/plugins/highcharts/gfx/stock-icons/measure-xy.svg +28 -0
  959. package/src/assets/plugins/highcharts/gfx/stock-icons/measure-y.svg +24 -0
  960. package/src/assets/plugins/highcharts/gfx/stock-icons/panning.svg +17 -0
  961. package/src/assets/plugins/highcharts/gfx/stock-icons/parallel-channel.svg +15 -0
  962. package/src/assets/plugins/highcharts/gfx/stock-icons/pitchfork.svg +13 -0
  963. package/src/assets/plugins/highcharts/gfx/stock-icons/ray.svg +10 -0
  964. package/src/assets/plugins/highcharts/gfx/stock-icons/rectangle.svg +8 -0
  965. package/src/assets/plugins/highcharts/gfx/stock-icons/remove-annotations.svg +15 -0
  966. package/src/assets/plugins/highcharts/gfx/stock-icons/save-chart.svg +12 -0
  967. package/src/assets/plugins/highcharts/gfx/stock-icons/segment.svg +10 -0
  968. package/src/assets/plugins/highcharts/gfx/stock-icons/separator.svg +10 -0
  969. package/src/assets/plugins/highcharts/gfx/stock-icons/series-candlestick.svg +12 -0
  970. package/src/assets/plugins/highcharts/gfx/stock-icons/series-heikin-ashi.svg +1 -0
  971. package/src/assets/plugins/highcharts/gfx/stock-icons/series-hlc.svg +1 -0
  972. package/src/assets/plugins/highcharts/gfx/stock-icons/series-hollow-candlestick.svg +1 -0
  973. package/src/assets/plugins/highcharts/gfx/stock-icons/series-line.svg +11 -0
  974. package/src/assets/plugins/highcharts/gfx/stock-icons/series-ohlc.svg +14 -0
  975. package/src/assets/plugins/highcharts/gfx/stock-icons/text.svg +13 -0
  976. package/src/assets/plugins/highcharts/gfx/stock-icons/time-cycles.svg +35 -0
  977. package/src/assets/plugins/highcharts/gfx/stock-icons/vertical-arrow.svg +7 -0
  978. package/src/assets/plugins/highcharts/gfx/stock-icons/vertical-counter.svg +23 -0
  979. package/src/assets/plugins/highcharts/gfx/stock-icons/vertical-double-arrow.svg +10 -0
  980. package/src/assets/plugins/highcharts/gfx/stock-icons/vertical-label.svg +14 -0
  981. package/src/assets/plugins/highcharts/gfx/stock-icons/vertical-line.svg +8 -0
  982. package/src/assets/plugins/highcharts/gfx/stock-icons/zoom-x.svg +17 -0
  983. package/src/assets/plugins/highcharts/gfx/stock-icons/zoom-xy.svg +13 -0
  984. package/src/assets/plugins/highcharts/gfx/stock-icons/zoom-y.svg +17 -0
  985. package/src/assets/plugins/highcharts/gfx/vml-radial-gradient.png +0 -0
  986. package/src/assets/plugins/highcharts/graphics/color-picker.svg +12 -0
  987. package/src/assets/plugins/highcharts/graphics/cursor.svg +11 -0
  988. package/src/assets/plugins/highcharts/graphics/earth.svg +432 -0
  989. package/src/assets/plugins/highcharts/graphics/feature.svg +13 -0
  990. package/src/assets/plugins/highcharts/graphics/flag-circle.svg +17 -0
  991. package/src/assets/plugins/highcharts/graphics/flag-circlepin.svg +15 -0
  992. package/src/assets/plugins/highcharts/graphics/flag-diamondpin.svg +15 -0
  993. package/src/assets/plugins/highcharts/graphics/flag-flag.svg +14 -0
  994. package/src/assets/plugins/highcharts/graphics/flag-rectangle.svg +18 -0
  995. package/src/assets/plugins/highcharts/graphics/flag-squarepin.svg +16 -0
  996. package/src/assets/plugins/highcharts/graphics/flag.svg +15 -0
  997. package/src/assets/plugins/highcharts/graphics/homepage/apple.svg +55 -0
  998. package/src/assets/plugins/highcharts/graphics/homepage/award.png +0 -0
  999. package/src/assets/plugins/highcharts/graphics/homepage/cloud.png +0 -0
  1000. package/src/assets/plugins/highcharts/graphics/homepage/earth.png +0 -0
  1001. package/src/assets/plugins/highcharts/graphics/homepage/jupiter.png +0 -0
  1002. package/src/assets/plugins/highcharts/graphics/homepage/mars.png +0 -0
  1003. package/src/assets/plugins/highcharts/graphics/homepage/mercury.png +0 -0
  1004. package/src/assets/plugins/highcharts/graphics/homepage/moon.png +0 -0
  1005. package/src/assets/plugins/highcharts/graphics/homepage/neptune.png +0 -0
  1006. package/src/assets/plugins/highcharts/graphics/homepage/p1.png +0 -0
  1007. package/src/assets/plugins/highcharts/graphics/homepage/p1.svg +9 -0
  1008. package/src/assets/plugins/highcharts/graphics/homepage/p2.png +0 -0
  1009. package/src/assets/plugins/highcharts/graphics/homepage/p2.svg +9 -0
  1010. package/src/assets/plugins/highcharts/graphics/homepage/p3.png +0 -0
  1011. package/src/assets/plugins/highcharts/graphics/homepage/p3.svg +9 -0
  1012. package/src/assets/plugins/highcharts/graphics/homepage/p4.png +0 -0
  1013. package/src/assets/plugins/highcharts/graphics/homepage/p4.svg +9 -0
  1014. package/src/assets/plugins/highcharts/graphics/homepage/p5.png +0 -0
  1015. package/src/assets/plugins/highcharts/graphics/homepage/p5.svg +9 -0
  1016. package/src/assets/plugins/highcharts/graphics/homepage/p6.png +0 -0
  1017. package/src/assets/plugins/highcharts/graphics/homepage/p6.svg +9 -0
  1018. package/src/assets/plugins/highcharts/graphics/homepage/product.png +0 -0
  1019. package/src/assets/plugins/highcharts/graphics/homepage/saturn.png +0 -0
  1020. package/src/assets/plugins/highcharts/graphics/homepage/sun.png +0 -0
  1021. package/src/assets/plugins/highcharts/graphics/homepage/uranus.png +0 -0
  1022. package/src/assets/plugins/highcharts/graphics/homepage/venus.png +0 -0
  1023. package/src/assets/plugins/highcharts/graphics/homepage/version.png +0 -0
  1024. package/src/assets/plugins/highcharts/graphics/rect.svg +12 -0
  1025. package/src/assets/plugins/highcharts/graphics/reset.svg +16 -0
  1026. package/src/assets/plugins/highcharts/graphics/sand.png +0 -0
  1027. package/src/assets/plugins/highcharts/graphics/save-chart-cloud.svg +14 -0
  1028. package/src/assets/plugins/highcharts/graphics/save.svg +14 -0
  1029. package/src/assets/plugins/highcharts/graphics/search.png +0 -0
  1030. package/src/assets/plugins/highcharts/graphics/skies.jpg +0 -0
  1031. package/src/assets/plugins/highcharts/graphics/snow.png +0 -0
  1032. package/src/assets/plugins/highcharts/graphics/sun.png +0 -0
  1033. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/blue-flake-big.svg +32 -0
  1034. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/blue-star-big.svg +16 -0
  1035. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/car-tree.svg +429 -0
  1036. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/green-flake-big.svg +119 -0
  1037. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/green-star.svg +20 -0
  1038. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/hill.svg +193 -0
  1039. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/hill2.svg +164 -0
  1040. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/horse.svg +1 -0
  1041. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/people.svg +2336 -0
  1042. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/pines.svg +777 -0
  1043. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/pond-skate.svg +1 -0
  1044. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/red-flake.svg +30 -0
  1045. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/red-house.svg +85 -0
  1046. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/red-star-big.svg +36 -0
  1047. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/red-star.svg +20 -0
  1048. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/santa-b.svg +91 -0
  1049. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/santa.svg +91 -0
  1050. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/snow-mound.svg +146 -0
  1051. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/snow.svg +20788 -0
  1052. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/sun-disk.svg +597 -0
  1053. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/tree-cluster.svg +2735 -0
  1054. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/white-flake-big.svg +99 -0
  1055. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/white-flake.big.svg +96 -0
  1056. package/src/assets/plugins/highcharts/graphics/xmas-card-2020/white-star-big.svg +36 -0
  1057. package/src/assets/plugins/highcharts/index.html +133 -0
@@ -0,0 +1,3834 @@
1
+ /**
2
+ * @license Highcharts JS v9.3.3 (2022-02-01)
3
+ *
4
+ * Boost module
5
+ *
6
+ * (c) 2010-2021 Highsoft AS
7
+ * Author: Torstein Honsi
8
+ *
9
+ * License: www.highcharts.com/license
10
+ *
11
+ * */
12
+ 'use strict';
13
+ (function (factory) {
14
+ if (typeof module === 'object' && module.exports) {
15
+ factory['default'] = factory;
16
+ module.exports = factory;
17
+ } else if (typeof define === 'function' && define.amd) {
18
+ define('highcharts/modules/boost', ['highcharts'], function (Highcharts) {
19
+ factory(Highcharts);
20
+ factory.Highcharts = Highcharts;
21
+ return factory;
22
+ });
23
+ } else {
24
+ factory(typeof Highcharts !== 'undefined' ? Highcharts : undefined);
25
+ }
26
+ }(function (Highcharts) {
27
+ var _modules = Highcharts ? Highcharts._modules : {};
28
+ function _registerModule(obj, path, args, fn) {
29
+ if (!obj.hasOwnProperty(path)) {
30
+ obj[path] = fn.apply(null, args);
31
+ }
32
+ }
33
+ _registerModule(_modules, 'Extensions/Boost/Boostables.js', [], function () {
34
+ /* *
35
+ *
36
+ * Copyright (c) 2019-2021 Highsoft AS
37
+ *
38
+ * Boost module: stripped-down renderer for higher performance
39
+ *
40
+ * License: highcharts.com/license
41
+ *
42
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
43
+ *
44
+ * */
45
+ // These are the series we allow boosting for.
46
+ var boostables = [
47
+ 'area',
48
+ 'arearange',
49
+ 'column',
50
+ 'columnrange',
51
+ 'bar',
52
+ 'line',
53
+ 'scatter',
54
+ 'heatmap',
55
+ 'bubble',
56
+ 'treemap'
57
+ ];
58
+
59
+ return boostables;
60
+ });
61
+ _registerModule(_modules, 'Extensions/Boost/BoostableMap.js', [_modules['Extensions/Boost/Boostables.js']], function (boostables) {
62
+ /* *
63
+ *
64
+ * Copyright (c) 2019-2021 Highsoft AS
65
+ *
66
+ * Boost module: stripped-down renderer for higher performance
67
+ *
68
+ * License: highcharts.com/license
69
+ *
70
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
71
+ *
72
+ * */
73
+ // These are the series we allow boosting for.
74
+ var boostableMap = {};
75
+ boostables.forEach(function (item) {
76
+ boostableMap[item] = 1;
77
+ });
78
+
79
+ return boostableMap;
80
+ });
81
+ _registerModule(_modules, 'Extensions/Boost/WGLShader.js', [_modules['Core/Utilities.js']], function (U) {
82
+ /* *
83
+ *
84
+ * Copyright (c) 2019-2021 Highsoft AS
85
+ *
86
+ * Boost module: stripped-down renderer for higher performance
87
+ *
88
+ * License: highcharts.com/license
89
+ *
90
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
91
+ *
92
+ * */
93
+ var clamp = U.clamp,
94
+ error = U.error,
95
+ pick = U.pick;
96
+ /* eslint-disable valid-jsdoc */
97
+ /**
98
+ * A static shader mimicing axis translation functions found in Core/Axis
99
+ *
100
+ * @private
101
+ * @function GLShader
102
+ *
103
+ * @param {WebGLContext} gl
104
+ * the context in which the shader is active
105
+ */
106
+ function GLShader(gl) {
107
+ var vertShade = [
108
+ /* eslint-disable max-len, @typescript-eslint/indent */
109
+ '#version 100',
110
+ '#define LN10 2.302585092994046',
111
+ 'precision highp float;',
112
+ 'attribute vec4 aVertexPosition;',
113
+ 'attribute vec4 aColor;',
114
+ 'varying highp vec2 position;',
115
+ 'varying highp vec4 vColor;',
116
+ 'uniform mat4 uPMatrix;',
117
+ 'uniform float pSize;',
118
+ 'uniform float translatedThreshold;',
119
+ 'uniform bool hasThreshold;',
120
+ 'uniform bool skipTranslation;',
121
+ 'uniform float xAxisTrans;',
122
+ 'uniform float xAxisMin;',
123
+ 'uniform float xAxisMinPad;',
124
+ 'uniform float xAxisPointRange;',
125
+ 'uniform float xAxisLen;',
126
+ 'uniform bool xAxisPostTranslate;',
127
+ 'uniform float xAxisOrdinalSlope;',
128
+ 'uniform float xAxisOrdinalOffset;',
129
+ 'uniform float xAxisPos;',
130
+ 'uniform bool xAxisCVSCoord;',
131
+ 'uniform bool xAxisIsLog;',
132
+ 'uniform bool xAxisReversed;',
133
+ 'uniform float yAxisTrans;',
134
+ 'uniform float yAxisMin;',
135
+ 'uniform float yAxisMinPad;',
136
+ 'uniform float yAxisPointRange;',
137
+ 'uniform float yAxisLen;',
138
+ 'uniform bool yAxisPostTranslate;',
139
+ 'uniform float yAxisOrdinalSlope;',
140
+ 'uniform float yAxisOrdinalOffset;',
141
+ 'uniform float yAxisPos;',
142
+ 'uniform bool yAxisCVSCoord;',
143
+ 'uniform bool yAxisIsLog;',
144
+ 'uniform bool yAxisReversed;',
145
+ 'uniform bool isBubble;',
146
+ 'uniform bool bubbleSizeByArea;',
147
+ 'uniform float bubbleZMin;',
148
+ 'uniform float bubbleZMax;',
149
+ 'uniform float bubbleZThreshold;',
150
+ 'uniform float bubbleMinSize;',
151
+ 'uniform float bubbleMaxSize;',
152
+ 'uniform bool bubbleSizeAbs;',
153
+ 'uniform bool isInverted;',
154
+ 'float bubbleRadius(){',
155
+ 'float value = aVertexPosition.w;',
156
+ 'float zMax = bubbleZMax;',
157
+ 'float zMin = bubbleZMin;',
158
+ 'float radius = 0.0;',
159
+ 'float pos = 0.0;',
160
+ 'float zRange = zMax - zMin;',
161
+ 'if (bubbleSizeAbs){',
162
+ 'value = value - bubbleZThreshold;',
163
+ 'zMax = max(zMax - bubbleZThreshold, zMin - bubbleZThreshold);',
164
+ 'zMin = 0.0;',
165
+ '}',
166
+ 'if (value < zMin){',
167
+ 'radius = bubbleZMin / 2.0 - 1.0;',
168
+ '} else {',
169
+ 'pos = zRange > 0.0 ? (value - zMin) / zRange : 0.5;',
170
+ 'if (bubbleSizeByArea && pos > 0.0){',
171
+ 'pos = sqrt(pos);',
172
+ '}',
173
+ 'radius = ceil(bubbleMinSize + pos * (bubbleMaxSize - bubbleMinSize)) / 2.0;',
174
+ '}',
175
+ 'return radius * 2.0;',
176
+ '}',
177
+ 'float translate(float val,',
178
+ 'float pointPlacement,',
179
+ 'float localA,',
180
+ 'float localMin,',
181
+ 'float minPixelPadding,',
182
+ 'float pointRange,',
183
+ 'float len,',
184
+ 'bool cvsCoord,',
185
+ 'bool isLog,',
186
+ 'bool reversed',
187
+ '){',
188
+ 'float sign = 1.0;',
189
+ 'float cvsOffset = 0.0;',
190
+ 'if (cvsCoord) {',
191
+ 'sign *= -1.0;',
192
+ 'cvsOffset = len;',
193
+ '}',
194
+ 'if (isLog) {',
195
+ 'val = log(val) / LN10;',
196
+ '}',
197
+ 'if (reversed) {',
198
+ 'sign *= -1.0;',
199
+ 'cvsOffset -= sign * len;',
200
+ '}',
201
+ 'return sign * (val - localMin) * localA + cvsOffset + ',
202
+ '(sign * minPixelPadding);',
203
+ '}',
204
+ 'float xToPixels(float value) {',
205
+ 'if (skipTranslation){',
206
+ 'return value;// + xAxisPos;',
207
+ '}',
208
+ 'return translate(value, 0.0, xAxisTrans, xAxisMin, xAxisMinPad, xAxisPointRange, xAxisLen, xAxisCVSCoord, xAxisIsLog, xAxisReversed);// + xAxisPos;',
209
+ '}',
210
+ 'float yToPixels(float value, float checkTreshold) {',
211
+ 'float v;',
212
+ 'if (skipTranslation){',
213
+ 'v = value;// + yAxisPos;',
214
+ '} else {',
215
+ 'v = translate(value, 0.0, yAxisTrans, yAxisMin, yAxisMinPad, yAxisPointRange, yAxisLen, yAxisCVSCoord, yAxisIsLog, yAxisReversed);// + yAxisPos;',
216
+ 'if (v > yAxisLen) {',
217
+ 'v = yAxisLen;',
218
+ '}',
219
+ '}',
220
+ 'if (checkTreshold > 0.0 && hasThreshold) {',
221
+ 'v = min(v, translatedThreshold);',
222
+ '}',
223
+ 'return v;',
224
+ '}',
225
+ 'void main(void) {',
226
+ 'if (isBubble){',
227
+ 'gl_PointSize = bubbleRadius();',
228
+ '} else {',
229
+ 'gl_PointSize = pSize;',
230
+ '}',
231
+ // 'gl_PointSize = 10.0;',
232
+ 'vColor = aColor;',
233
+ 'if (skipTranslation && isInverted) {',
234
+ // If we get translated values from JS, just swap them (x, y)
235
+ 'gl_Position = uPMatrix * vec4(aVertexPosition.y + yAxisPos, aVertexPosition.x + xAxisPos, 0.0, 1.0);',
236
+ '} else if (isInverted) {',
237
+ // But when calculating pixel positions directly,
238
+ // swap axes and values (x, y)
239
+ 'gl_Position = uPMatrix * vec4(yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, xToPixels(aVertexPosition.x) + xAxisPos, 0.0, 1.0);',
240
+ '} else {',
241
+ 'gl_Position = uPMatrix * vec4(xToPixels(aVertexPosition.x) + xAxisPos, yToPixels(aVertexPosition.y, aVertexPosition.z) + yAxisPos, 0.0, 1.0);',
242
+ '}',
243
+ // 'gl_Position = uPMatrix * vec4(aVertexPosition.x, aVertexPosition.y, 0.0, 1.0);',
244
+ '}'
245
+ /* eslint-enable max-len, @typescript-eslint/indent */
246
+ ].join('\n'),
247
+ // Fragment shader source
248
+ fragShade = [
249
+ /* eslint-disable max-len, @typescript-eslint/indent */
250
+ 'precision highp float;',
251
+ 'uniform vec4 fillColor;',
252
+ 'varying highp vec2 position;',
253
+ 'varying highp vec4 vColor;',
254
+ 'uniform sampler2D uSampler;',
255
+ 'uniform bool isCircle;',
256
+ 'uniform bool hasColor;',
257
+ // 'vec4 toColor(float value, vec2 point) {',
258
+ // 'return vec4(0.0, 0.0, 0.0, 0.0);',
259
+ // '}',
260
+ 'void main(void) {',
261
+ 'vec4 col = fillColor;',
262
+ 'vec4 tcol = texture2D(uSampler, gl_PointCoord.st);',
263
+ 'if (hasColor) {',
264
+ 'col = vColor;',
265
+ '}',
266
+ 'if (isCircle) {',
267
+ 'col *= tcol;',
268
+ 'if (tcol.r < 0.0) {',
269
+ 'discard;',
270
+ '} else {',
271
+ 'gl_FragColor = col;',
272
+ '}',
273
+ '} else {',
274
+ 'gl_FragColor = col;',
275
+ '}',
276
+ '}'
277
+ /* eslint-enable max-len, @typescript-eslint/indent */
278
+ ].join('\n'), uLocations = {},
279
+ // The shader program
280
+ shaderProgram,
281
+ // Uniform handle to the perspective matrix
282
+ pUniform,
283
+ // Uniform for point size
284
+ psUniform,
285
+ // Uniform for fill color
286
+ fillColorUniform,
287
+ // Uniform for isBubble
288
+ isBubbleUniform,
289
+ // Uniform for bubble abs sizing
290
+ bubbleSizeAbsUniform, bubbleSizeAreaUniform,
291
+ // Skip translation uniform
292
+ skipTranslationUniform,
293
+ // Set to 1 if circle
294
+ isCircleUniform,
295
+ // Uniform for invertion
296
+ isInverted,
297
+ // Error stack
298
+ errors = [],
299
+ // Texture uniform
300
+ uSamplerUniform;
301
+ /**
302
+ * Handle errors accumulated in errors stack
303
+ * @private
304
+ */
305
+ function handleErrors() {
306
+ if (errors.length) {
307
+ error('[highcharts boost] shader error - ' + errors.join('\n'));
308
+ }
309
+ }
310
+ /**
311
+ * String to shader program
312
+ * @private
313
+ * @param {string} str
314
+ * the program source
315
+ * @param {string} type
316
+ * the program type: either `vertex` or `fragment`
317
+ */
318
+ function stringToProgram(str, type) {
319
+ var t = type === 'vertex' ? gl.VERTEX_SHADER : gl.FRAGMENT_SHADER,
320
+ shader = gl.createShader(t);
321
+ gl.shaderSource(shader, str);
322
+ gl.compileShader(shader);
323
+ if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
324
+ errors.push('when compiling ' +
325
+ type +
326
+ ' shader:\n' +
327
+ gl.getShaderInfoLog(shader));
328
+ return false;
329
+ }
330
+ return shader;
331
+ }
332
+ /**
333
+ * Create the shader.
334
+ * Loads the shader program statically defined above
335
+ * @private
336
+ */
337
+ function createShader() {
338
+ var v = stringToProgram(vertShade, 'vertex'), f = stringToProgram(fragShade, 'fragment');
339
+ if (!v || !f) {
340
+ shaderProgram = false;
341
+ handleErrors();
342
+ return false;
343
+ }
344
+ /**
345
+ * @private
346
+ */
347
+ function uloc(n) {
348
+ return gl.getUniformLocation(shaderProgram, n);
349
+ }
350
+ shaderProgram = gl.createProgram();
351
+ gl.attachShader(shaderProgram, v);
352
+ gl.attachShader(shaderProgram, f);
353
+ gl.linkProgram(shaderProgram);
354
+ if (!gl.getProgramParameter(shaderProgram, gl.LINK_STATUS)) {
355
+ errors.push(gl.getProgramInfoLog(shaderProgram));
356
+ handleErrors();
357
+ shaderProgram = false;
358
+ return false;
359
+ }
360
+ gl.useProgram(shaderProgram);
361
+ gl.bindAttribLocation(shaderProgram, 0, 'aVertexPosition');
362
+ pUniform = uloc('uPMatrix');
363
+ psUniform = uloc('pSize');
364
+ fillColorUniform = uloc('fillColor');
365
+ isBubbleUniform = uloc('isBubble');
366
+ bubbleSizeAbsUniform = uloc('bubbleSizeAbs');
367
+ bubbleSizeAreaUniform = uloc('bubbleSizeByArea');
368
+ uSamplerUniform = uloc('uSampler');
369
+ skipTranslationUniform = uloc('skipTranslation');
370
+ isCircleUniform = uloc('isCircle');
371
+ isInverted = uloc('isInverted');
372
+ return true;
373
+ }
374
+ /**
375
+ * Destroy the shader
376
+ * @private
377
+ */
378
+ function destroy() {
379
+ if (gl && shaderProgram) {
380
+ gl.deleteProgram(shaderProgram);
381
+ shaderProgram = false;
382
+ }
383
+ }
384
+ /**
385
+ * Bind the shader.
386
+ * This makes the shader the active one until another one is bound,
387
+ * or until 0 is bound.
388
+ * @private
389
+ */
390
+ function bind() {
391
+ if (gl && shaderProgram) {
392
+ gl.useProgram(shaderProgram);
393
+ }
394
+ }
395
+ /**
396
+ * Set a uniform value.
397
+ * This uses a hash map to cache uniform locations.
398
+ * @private
399
+ * @param name {string} - the name of the uniform to set
400
+ * @param val {float} - the value to set
401
+ */
402
+ function setUniform(name, val) {
403
+ if (gl && shaderProgram) {
404
+ var u = uLocations[name] = (uLocations[name] ||
405
+ gl.getUniformLocation(shaderProgram,
406
+ name));
407
+ gl.uniform1f(u, val);
408
+ }
409
+ }
410
+ /**
411
+ * Set the active texture
412
+ * @private
413
+ * @param texture
414
+ * the texture
415
+ */
416
+ function setTexture(texture) {
417
+ if (gl && shaderProgram) {
418
+ gl.uniform1i(uSamplerUniform, texture);
419
+ }
420
+ }
421
+ /**
422
+ * Set if inversion state
423
+ * @private
424
+ * @param {number} flag
425
+ * is the state
426
+ */
427
+ function setInverted(flag) {
428
+ if (gl && shaderProgram) {
429
+ gl.uniform1i(isInverted, flag);
430
+ }
431
+ }
432
+ /**
433
+ * Enable/disable circle drawing
434
+ * @private
435
+ */
436
+ function setDrawAsCircle(flag) {
437
+ if (gl && shaderProgram) {
438
+ gl.uniform1i(isCircleUniform, flag ? 1 : 0);
439
+ }
440
+ }
441
+ /**
442
+ * Flush
443
+ * @private
444
+ */
445
+ function reset() {
446
+ if (gl && shaderProgram) {
447
+ gl.uniform1i(isBubbleUniform, 0);
448
+ gl.uniform1i(isCircleUniform, 0);
449
+ }
450
+ }
451
+ /**
452
+ * Set bubble uniforms
453
+ * @private
454
+ * @param series {Highcharts.Series} - the series to use
455
+ */
456
+ function setBubbleUniforms(series, zCalcMin, zCalcMax) {
457
+ var seriesOptions = series.options,
458
+ zMin = Number.MAX_VALUE,
459
+ zMax = -Number.MAX_VALUE;
460
+ if (gl && shaderProgram && series.is('bubble')) {
461
+ var pxSizes = series.getPxExtremes();
462
+ zMin = pick(seriesOptions.zMin, clamp(zCalcMin, seriesOptions.displayNegative === false ?
463
+ seriesOptions.zThreshold : -Number.MAX_VALUE, zMin));
464
+ zMax = pick(seriesOptions.zMax, Math.max(zMax, zCalcMax));
465
+ gl.uniform1i(isBubbleUniform, 1);
466
+ gl.uniform1i(isCircleUniform, 1);
467
+ gl.uniform1i(bubbleSizeAreaUniform, (series.options.sizeBy !== 'width'));
468
+ gl.uniform1i(bubbleSizeAbsUniform, series.options
469
+ .sizeByAbsoluteValue);
470
+ setUniform('bubbleZMin', zMin);
471
+ setUniform('bubbleZMax', zMax);
472
+ setUniform('bubbleZThreshold', series.options.zThreshold);
473
+ setUniform('bubbleMinSize', pxSizes.minPxSize);
474
+ setUniform('bubbleMaxSize', pxSizes.maxPxSize);
475
+ }
476
+ }
477
+ /**
478
+ * Set the Color uniform.
479
+ * @private
480
+ * @param color {Array<float>} - an array with RGBA values
481
+ */
482
+ function setColor(color) {
483
+ if (gl && shaderProgram) {
484
+ gl.uniform4f(fillColorUniform, color[0] / 255.0, color[1] / 255.0, color[2] / 255.0, color[3]);
485
+ }
486
+ }
487
+ /**
488
+ * Set skip translation
489
+ * @private
490
+ */
491
+ function setSkipTranslation(flag) {
492
+ if (gl && shaderProgram) {
493
+ gl.uniform1i(skipTranslationUniform, flag === true ? 1 : 0);
494
+ }
495
+ }
496
+ /**
497
+ * Set the perspective matrix
498
+ * @private
499
+ * @param m {Matrix4x4} - the matrix
500
+ */
501
+ function setPMatrix(m) {
502
+ if (gl && shaderProgram) {
503
+ gl.uniformMatrix4fv(pUniform, false, m);
504
+ }
505
+ }
506
+ /**
507
+ * Set the point size.
508
+ * @private
509
+ * @param p {float} - point size
510
+ */
511
+ function setPointSize(p) {
512
+ if (gl && shaderProgram) {
513
+ gl.uniform1f(psUniform, p);
514
+ }
515
+ }
516
+ /**
517
+ * Get the shader program handle
518
+ * @private
519
+ * @return {GLInt} - the handle for the program
520
+ */
521
+ function getProgram() {
522
+ return shaderProgram;
523
+ }
524
+ if (gl) {
525
+ if (!createShader()) {
526
+ return false;
527
+ }
528
+ }
529
+ return {
530
+ psUniform: function () {
531
+ return psUniform;
532
+ },
533
+ pUniform: function () {
534
+ return pUniform;
535
+ },
536
+ fillColorUniform: function () {
537
+ return fillColorUniform;
538
+ },
539
+ setBubbleUniforms: setBubbleUniforms,
540
+ bind: bind,
541
+ program: getProgram,
542
+ create: createShader,
543
+ setUniform: setUniform,
544
+ setPMatrix: setPMatrix,
545
+ setColor: setColor,
546
+ setPointSize: setPointSize,
547
+ setSkipTranslation: setSkipTranslation,
548
+ setTexture: setTexture,
549
+ setDrawAsCircle: setDrawAsCircle,
550
+ reset: reset,
551
+ setInverted: setInverted,
552
+ destroy: destroy
553
+ };
554
+ }
555
+
556
+ return GLShader;
557
+ });
558
+ _registerModule(_modules, 'Extensions/Boost/WGLVBuffer.js', [], function () {
559
+ /* *
560
+ *
561
+ * Copyright (c) 2019-2021 Highsoft AS
562
+ *
563
+ * Boost module: stripped-down renderer for higher performance
564
+ *
565
+ * License: highcharts.com/license
566
+ *
567
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
568
+ *
569
+ * */
570
+ /* eslint-disable valid-jsdoc */
571
+ /**
572
+ * Vertex Buffer abstraction.
573
+ * A vertex buffer is a set of vertices which are passed to the GPU
574
+ * in a single call.
575
+ *
576
+ * @private
577
+ * @function GLVertexBuffer
578
+ * @param {WebGLContext} gl
579
+ * the context in which to create the buffer
580
+ * @param {GLShader} shader
581
+ * the shader to use
582
+ */
583
+ function GLVertexBuffer(gl, shader, dataComponents
584
+ /* , type */
585
+ ) {
586
+ var buffer = false,
587
+ vertAttribute = false,
588
+ components = dataComponents || 2,
589
+ preAllocated = false,
590
+ iterator = 0,
591
+ // farray = false,
592
+ data;
593
+ // type = type || 'float';
594
+ /**
595
+ * @private
596
+ */
597
+ function destroy() {
598
+ if (buffer) {
599
+ gl.deleteBuffer(buffer);
600
+ buffer = false;
601
+ vertAttribute = false;
602
+ }
603
+ iterator = 0;
604
+ components = dataComponents || 2;
605
+ data = [];
606
+ }
607
+ /**
608
+ * Build the buffer
609
+ * @private
610
+ * @param dataIn {Array<float>} - a 0 padded array of indices
611
+ * @param attrib {String} - the name of the Attribute to bind the buffer to
612
+ * @param dataComponents {Integer} - the number of components per. indice
613
+ */
614
+ function build(dataIn, attrib, dataComponents) {
615
+ var farray;
616
+ data = dataIn || [];
617
+ if ((!data || data.length === 0) && !preAllocated) {
618
+ // console.error('trying to render empty vbuffer');
619
+ destroy();
620
+ return false;
621
+ }
622
+ components = dataComponents || components;
623
+ if (buffer) {
624
+ gl.deleteBuffer(buffer);
625
+ }
626
+ if (!preAllocated) {
627
+ farray = new Float32Array(data);
628
+ }
629
+ buffer = gl.createBuffer();
630
+ gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
631
+ gl.bufferData(gl.ARRAY_BUFFER, preAllocated || farray, gl.STATIC_DRAW);
632
+ // gl.bindAttribLocation(shader.program(), 0, 'aVertexPosition');
633
+ vertAttribute = gl.getAttribLocation(shader.program(), attrib);
634
+ gl.enableVertexAttribArray(vertAttribute);
635
+ // Trigger cleanup
636
+ farray = false;
637
+ return true;
638
+ }
639
+ /**
640
+ * Bind the buffer
641
+ * @private
642
+ */
643
+ function bind() {
644
+ if (!buffer) {
645
+ return false;
646
+ }
647
+ // gl.bindAttribLocation(shader.program(), 0, 'aVertexPosition');
648
+ // gl.enableVertexAttribArray(vertAttribute);
649
+ // gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
650
+ gl.vertexAttribPointer(vertAttribute, components, gl.FLOAT, false, 0, 0);
651
+ // gl.enableVertexAttribArray(vertAttribute);
652
+ }
653
+ /**
654
+ * Render the buffer
655
+ * @private
656
+ * @param from {Integer} - the start indice
657
+ * @param to {Integer} - the end indice
658
+ * @param drawMode {String} - the draw mode
659
+ */
660
+ function render(from, to, drawMode) {
661
+ var length = preAllocated ?
662
+ preAllocated.length : data.length;
663
+ if (!buffer) {
664
+ return false;
665
+ }
666
+ if (!length) {
667
+ return false;
668
+ }
669
+ if (!from || from > length || from < 0) {
670
+ from = 0;
671
+ }
672
+ if (!to || to > length) {
673
+ to = length;
674
+ }
675
+ if (from >= to) {
676
+ return false;
677
+ }
678
+ drawMode = drawMode || 'points';
679
+ gl.drawArrays(gl[drawMode.toUpperCase()], from / components, (to - from) / components);
680
+ return true;
681
+ }
682
+ /**
683
+ * @private
684
+ */
685
+ function push(x, y, a, b) {
686
+ if (preAllocated) { // && iterator <= preAllocated.length - 4) {
687
+ preAllocated[++iterator] = x;
688
+ preAllocated[++iterator] = y;
689
+ preAllocated[++iterator] = a;
690
+ preAllocated[++iterator] = b;
691
+ }
692
+ }
693
+ /**
694
+ * Note about pre-allocated buffers:
695
+ * - This is slower for charts with many series
696
+ * @private
697
+ */
698
+ function allocate(size) {
699
+ size *= 4;
700
+ iterator = -1;
701
+ preAllocated = new Float32Array(size);
702
+ }
703
+ // /////////////////////////////////////////////////////////////////////////
704
+ return {
705
+ destroy: destroy,
706
+ bind: bind,
707
+ data: data,
708
+ build: build,
709
+ render: render,
710
+ allocate: allocate,
711
+ push: push
712
+ };
713
+ }
714
+
715
+ return GLVertexBuffer;
716
+ });
717
+ _registerModule(_modules, 'Extensions/Boost/WGLRenderer.js', [_modules['Core/Color/Color.js'], _modules['Extensions/Boost/WGLShader.js'], _modules['Extensions/Boost/WGLVBuffer.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (Color, GLShader, GLVertexBuffer, H, U) {
718
+ /* *
719
+ *
720
+ * Copyright (c) 2019-2021 Highsoft AS
721
+ *
722
+ * Boost module: stripped-down renderer for higher performance
723
+ *
724
+ * License: highcharts.com/license
725
+ *
726
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
727
+ *
728
+ * */
729
+ var color = Color.parse;
730
+ var doc = H.doc;
731
+ var isNumber = U.isNumber,
732
+ isObject = U.isObject,
733
+ merge = U.merge,
734
+ objectEach = U.objectEach,
735
+ pick = U.pick;
736
+ /* eslint-disable valid-jsdoc */
737
+ /**
738
+ * Main renderer. Used to render series.
739
+ *
740
+ * Notes to self:
741
+ * - May be able to build a point map by rendering to a separate canvas and
742
+ * encoding values in the color data.
743
+ * - Need to figure out a way to transform the data quicker
744
+ *
745
+ * @private
746
+ * @function GLRenderer
747
+ */
748
+ function GLRenderer(postRenderCallback) {
749
+ // // Shader
750
+ var shader = false,
751
+ // Vertex buffers - keyed on shader attribute name
752
+ vbuffer = false,
753
+ vlen = 0,
754
+ // Opengl context
755
+ gl = false,
756
+ // Width of our viewport in pixels
757
+ width = 0,
758
+ // Height of our viewport in pixels
759
+ height = 0,
760
+ // The data to render - array of coordinates
761
+ data = false,
762
+ // The marker data
763
+ markerData = false,
764
+ // Exports
765
+ exports = {},
766
+ // Is it inited?
767
+ isInited = false,
768
+ // The series stack
769
+ series = [],
770
+ // Texture handles
771
+ textureHandles = {},
772
+ // Things to draw as "rectangles" (i.e lines)
773
+ asBar = {
774
+ 'column': true,
775
+ 'columnrange': true,
776
+ 'bar': true,
777
+ 'area': true,
778
+ 'arearange': true
779
+ },
780
+ asCircle = {
781
+ 'scatter': true,
782
+ 'bubble': true
783
+ },
784
+ // Render settings
785
+ settings = {
786
+ pointSize: 1,
787
+ lineWidth: 1,
788
+ fillColor: '#AA00AA',
789
+ useAlpha: true,
790
+ usePreallocated: false,
791
+ useGPUTranslations: false,
792
+ debug: {
793
+ timeRendering: false,
794
+ timeSeriesProcessing: false,
795
+ timeSetup: false,
796
+ timeBufferCopy: false,
797
+ timeKDTree: false,
798
+ showSkipSummary: false
799
+ }
800
+ };
801
+ // /////////////////////////////////////////////////////////////////////////
802
+ /**
803
+ * @private
804
+ */
805
+ function setOptions(options) {
806
+ merge(true, settings, options);
807
+ }
808
+ /**
809
+ * @private
810
+ */
811
+ function seriesPointCount(series) {
812
+ var isStacked,
813
+ xData,
814
+ s;
815
+ if (series.isSeriesBoosting) {
816
+ isStacked = !!series.options.stacking;
817
+ xData = (series.xData ||
818
+ series.options.xData ||
819
+ series.processedXData);
820
+ s = (isStacked ? series.data : (xData || series.options.data))
821
+ .length;
822
+ if (series.type === 'treemap') {
823
+ s *= 12;
824
+ }
825
+ else if (series.type === 'heatmap') {
826
+ s *= 6;
827
+ }
828
+ else if (asBar[series.type]) {
829
+ s *= 2;
830
+ }
831
+ return s;
832
+ }
833
+ return 0;
834
+ }
835
+ /**
836
+ * Allocate a float buffer to fit all series
837
+ * @private
838
+ */
839
+ function allocateBuffer(chart) {
840
+ var s = 0;
841
+ if (!settings.usePreallocated) {
842
+ return;
843
+ }
844
+ chart.series.forEach(function (series) {
845
+ if (series.isSeriesBoosting) {
846
+ s += seriesPointCount(series);
847
+ }
848
+ });
849
+ vbuffer.allocate(s);
850
+ }
851
+ /**
852
+ * @private
853
+ */
854
+ function allocateBufferForSingleSeries(series) {
855
+ var s = 0;
856
+ if (!settings.usePreallocated) {
857
+ return;
858
+ }
859
+ if (series.isSeriesBoosting) {
860
+ s = seriesPointCount(series);
861
+ }
862
+ vbuffer.allocate(s);
863
+ }
864
+ /**
865
+ * Returns an orthographic perspective matrix
866
+ * @private
867
+ * @param {number} width
868
+ * the width of the viewport in pixels
869
+ * @param {number} height
870
+ * the height of the viewport in pixels
871
+ */
872
+ function orthoMatrix(width, height) {
873
+ var near = 0,
874
+ far = 1;
875
+ return [
876
+ 2 / width, 0, 0, 0,
877
+ 0, -(2 / height), 0, 0,
878
+ 0, 0, -2 / (far - near), 0,
879
+ -1, 1, -(far + near) / (far - near), 1
880
+ ];
881
+ }
882
+ /**
883
+ * Clear the depth and color buffer
884
+ * @private
885
+ */
886
+ function clear() {
887
+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
888
+ }
889
+ /**
890
+ * Get the WebGL context
891
+ * @private
892
+ * @return {WebGLContext}
893
+ * the context
894
+ */
895
+ function getGL() {
896
+ return gl;
897
+ }
898
+ /**
899
+ * Push data for a single series
900
+ * This calculates additional vertices and transforms the data to be
901
+ * aligned correctly in memory
902
+ * @private
903
+ */
904
+ function pushSeriesData(series, inst) {
905
+ var isRange = (series.pointArrayMap &&
906
+ series.pointArrayMap.join(',') === 'low,high'), chart = series.chart, options = series.options, isStacked = !!options.stacking, rawData = options.data, xExtremes = series.xAxis.getExtremes(), xMin = xExtremes.min, xMax = xExtremes.max, yExtremes = series.yAxis.getExtremes(), yMin = yExtremes.min, yMax = yExtremes.max, xData = series.xData || options.xData || series.processedXData, yData = series.yData || options.yData || series.processedYData, zData = (series.zData || options.zData ||
907
+ series.processedZData), yAxis = series.yAxis, xAxis = series.xAxis,
908
+ // plotHeight = series.chart.plotHeight,
909
+ plotWidth = series.chart.plotWidth, useRaw = !xData || xData.length === 0,
910
+ // threshold = options.threshold,
911
+ // yBottom = chart.yAxis[0].getThreshold(threshold),
912
+ // hasThreshold = isNumber(threshold),
913
+ // colorByPoint = series.options.colorByPoint,
914
+ // This is required for color by point, so make sure this is
915
+ // uncommented if enabling that
916
+ // colorIndex = 0,
917
+ // Required for color axis support
918
+ // caxis,
919
+ connectNulls = options.connectNulls,
920
+ // For some reason eslint/TypeScript don't pick up that this is
921
+ // actually used: --- bre1470: it is never read, just set
922
+ // maxVal: (number|undefined), // eslint-disable-line no-unused-vars
923
+ points = series.points || false, lastX = false, lastY = false, minVal, scolor, sdata = isStacked ? series.data : (xData || rawData), closestLeft = { x: Number.MAX_VALUE, y: 0 }, closestRight = { x: -Number.MAX_VALUE, y: 0 },
924
+ //
925
+ skipped = 0, hadPoints = false,
926
+ //
927
+ cullXThreshold = 1, cullYThreshold = 1,
928
+ // The following are used in the builder while loop
929
+ x, y, d, z, i = -1, px = false, nx = false, low, chartDestroyed = typeof chart.index === 'undefined', nextInside = false, prevInside = false, pcolor = false, drawAsBar = asBar[series.type], isXInside = false, isYInside = true, firstPoint = true, zoneAxis = options.zoneAxis || 'y', zones = options.zones || false, zoneColors, zoneDefColor = false, threshold = options.threshold, gapSize = false;
930
+ if (options.boostData && options.boostData.length > 0) {
931
+ return;
932
+ }
933
+ if (options.gapSize) {
934
+ gapSize = options.gapUnit !== 'value' ?
935
+ options.gapSize * series.closestPointRange :
936
+ options.gapSize;
937
+ }
938
+ if (zones) {
939
+ zoneColors = [];
940
+ zones.forEach(function (zone, i) {
941
+ if (zone.color) {
942
+ var zoneColor = color(zone.color).rgba;
943
+ zoneColor[0] /= 255.0;
944
+ zoneColor[1] /= 255.0;
945
+ zoneColor[2] /= 255.0;
946
+ zoneColors[i] = zoneColor;
947
+ if (!zoneDefColor && typeof zone.value === 'undefined') {
948
+ zoneDefColor = zoneColor;
949
+ }
950
+ }
951
+ });
952
+ if (!zoneDefColor) {
953
+ var seriesColor = ((series.pointAttribs && series.pointAttribs().fill) ||
954
+ series.color);
955
+ zoneDefColor = color(seriesColor).rgba;
956
+ zoneDefColor[0] /= 255.0;
957
+ zoneDefColor[1] /= 255.0;
958
+ zoneDefColor[2] /= 255.0;
959
+ }
960
+ }
961
+ if (chart.inverted) {
962
+ // plotHeight = series.chart.plotWidth;
963
+ plotWidth = series.chart.plotHeight;
964
+ }
965
+ series.closestPointRangePx = Number.MAX_VALUE;
966
+ /**
967
+ * Push color to color buffer - need to do this per vertex.
968
+ * @private
969
+ */
970
+ function pushColor(color) {
971
+ if (color) {
972
+ inst.colorData.push(color[0]);
973
+ inst.colorData.push(color[1]);
974
+ inst.colorData.push(color[2]);
975
+ inst.colorData.push(color[3]);
976
+ }
977
+ }
978
+ /**
979
+ * Push a vertice to the data buffer.
980
+ * @private
981
+ */
982
+ function vertice(x, y, checkTreshold, pointSize, color) {
983
+ pushColor(color);
984
+ if (settings.usePreallocated) {
985
+ vbuffer.push(x, y, checkTreshold ? 1 : 0, pointSize || 1);
986
+ vlen += 4;
987
+ }
988
+ else {
989
+ data.push(x);
990
+ data.push(y);
991
+ data.push(checkTreshold ? 1 : 0);
992
+ data.push(pointSize || 1);
993
+ }
994
+ }
995
+ /**
996
+ * @private
997
+ */
998
+ function closeSegment() {
999
+ if (inst.segments.length) {
1000
+ inst.segments[inst.segments.length - 1].to = data.length || vlen;
1001
+ }
1002
+ }
1003
+ /**
1004
+ * Create a new segment for the current set.
1005
+ * @private
1006
+ */
1007
+ function beginSegment() {
1008
+ // Insert a segment on the series.
1009
+ // A segment is just a start indice.
1010
+ // When adding a segment, if one exists from before, it should
1011
+ // set the previous segment's end
1012
+ if (inst.segments.length &&
1013
+ inst.segments[inst.segments.length - 1].from === (data.length || vlen)) {
1014
+ return;
1015
+ }
1016
+ closeSegment();
1017
+ inst.segments.push({
1018
+ from: data.length || vlen
1019
+ });
1020
+ }
1021
+ /**
1022
+ * Push a rectangle to the data buffer.
1023
+ * @private
1024
+ */
1025
+ function pushRect(x, y, w, h, color) {
1026
+ pushColor(color);
1027
+ vertice(x + w, y);
1028
+ pushColor(color);
1029
+ vertice(x, y);
1030
+ pushColor(color);
1031
+ vertice(x, y + h);
1032
+ pushColor(color);
1033
+ vertice(x, y + h);
1034
+ pushColor(color);
1035
+ vertice(x + w, y + h);
1036
+ pushColor(color);
1037
+ vertice(x + w, y);
1038
+ }
1039
+ // Create the first segment
1040
+ beginSegment();
1041
+ // Special case for point shapes
1042
+ if (points && points.length > 0) {
1043
+ // If we're doing points, we assume that the points are already
1044
+ // translated, so we skip the shader translation.
1045
+ inst.skipTranslation = true;
1046
+ // Force triangle draw mode
1047
+ inst.drawMode = 'triangles';
1048
+ // We don't have a z component in the shader, so we need to sort.
1049
+ if (points[0].node && points[0].node.levelDynamic) {
1050
+ points.sort(function (a, b) {
1051
+ if (a.node) {
1052
+ if (a.node.levelDynamic >
1053
+ b.node.levelDynamic) {
1054
+ return 1;
1055
+ }
1056
+ if (a.node.levelDynamic <
1057
+ b.node.levelDynamic) {
1058
+ return -1;
1059
+ }
1060
+ }
1061
+ return 0;
1062
+ });
1063
+ }
1064
+ points.forEach(function (point) {
1065
+ var plotY = point.plotY,
1066
+ swidth,
1067
+ pointAttr;
1068
+ if (typeof plotY !== 'undefined' &&
1069
+ !isNaN(plotY) &&
1070
+ point.y !== null &&
1071
+ point.shapeArgs) {
1072
+ var _a = point.shapeArgs,
1073
+ _b = _a.x,
1074
+ x_1 = _b === void 0 ? 0 : _b,
1075
+ _c = _a.y,
1076
+ y_1 = _c === void 0 ? 0 : _c,
1077
+ _d = _a.width,
1078
+ width_1 = _d === void 0 ? 0 : _d,
1079
+ _e = _a.height,
1080
+ height_1 = _e === void 0 ? 0 : _e;
1081
+ pointAttr = chart.styledMode ?
1082
+ point.series
1083
+ .colorAttribs(point) :
1084
+ pointAttr = point.series.pointAttribs(point);
1085
+ swidth = pointAttr['stroke-width'] || 0;
1086
+ // Handle point colors
1087
+ pcolor = color(pointAttr.fill).rgba;
1088
+ pcolor[0] /= 255.0;
1089
+ pcolor[1] /= 255.0;
1090
+ pcolor[2] /= 255.0;
1091
+ // So there are two ways of doing this. Either we can
1092
+ // create a rectangle of two triangles, or we can do a
1093
+ // point and use point size. Latter is faster, but
1094
+ // only supports squares. So we're doing triangles.
1095
+ // We could also use one color per. vertice to get
1096
+ // better color interpolation.
1097
+ // If there's stroking, we do an additional rect
1098
+ if (series.type === 'treemap') {
1099
+ swidth = swidth || 1;
1100
+ scolor = color(pointAttr.stroke).rgba;
1101
+ scolor[0] /= 255.0;
1102
+ scolor[1] /= 255.0;
1103
+ scolor[2] /= 255.0;
1104
+ pushRect(x_1, y_1, width_1, height_1, scolor);
1105
+ swidth /= 2;
1106
+ }
1107
+ // } else {
1108
+ // swidth = 0;
1109
+ // }
1110
+ // Fixes issues with inverted heatmaps (see #6981)
1111
+ // The root cause is that the coordinate system is flipped.
1112
+ // In other words, instead of [0,0] being top-left, it's
1113
+ // bottom-right. This causes a vertical and horizontal flip
1114
+ // in the resulting image, making it rotated 180 degrees.
1115
+ if (series.type === 'heatmap' && chart.inverted) {
1116
+ x_1 = xAxis.len - x_1;
1117
+ y_1 = yAxis.len - y_1;
1118
+ width_1 = -width_1;
1119
+ height_1 = -height_1;
1120
+ }
1121
+ pushRect(x_1 + swidth, y_1 + swidth, width_1 - (swidth * 2), height_1 - (swidth * 2), pcolor);
1122
+ }
1123
+ });
1124
+ closeSegment();
1125
+ return;
1126
+ }
1127
+ var _loop_1 = function () {
1128
+ d = sdata[++i];
1129
+ if (typeof d === 'undefined') {
1130
+ return "continue";
1131
+ }
1132
+ // px = x = y = z = nx = low = false;
1133
+ // chartDestroyed = typeof chart.index === 'undefined';
1134
+ // nextInside = prevInside = pcolor = isXInside = isYInside = false;
1135
+ // drawAsBar = asBar[series.type];
1136
+ if (chartDestroyed) {
1137
+ return "break";
1138
+ }
1139
+ // Uncomment this to enable color by point.
1140
+ // This currently left disabled as the charts look really ugly
1141
+ // when enabled and there's a lot of points.
1142
+ // Leaving in for the future (tm).
1143
+ // if (colorByPoint) {
1144
+ // colorIndex = ++colorIndex %
1145
+ // series.chart.options.colors.length;
1146
+ // pcolor = toRGBAFast(series.chart.options.colors[colorIndex]);
1147
+ // pcolor[0] /= 255.0;
1148
+ // pcolor[1] /= 255.0;
1149
+ // pcolor[2] /= 255.0;
1150
+ // }
1151
+ // Handle the point.color option (#5999)
1152
+ var pointOptions = rawData && rawData[i];
1153
+ if (!useRaw && isObject(pointOptions, true)) {
1154
+ if (pointOptions.color) {
1155
+ pcolor = color(pointOptions.color).rgba;
1156
+ pcolor[0] /= 255.0;
1157
+ pcolor[1] /= 255.0;
1158
+ pcolor[2] /= 255.0;
1159
+ }
1160
+ }
1161
+ if (useRaw) {
1162
+ x = d[0];
1163
+ y = d[1];
1164
+ if (sdata[i + 1]) {
1165
+ nx = sdata[i + 1][0];
1166
+ }
1167
+ if (sdata[i - 1]) {
1168
+ px = sdata[i - 1][0];
1169
+ }
1170
+ if (d.length >= 3) {
1171
+ z = d[2];
1172
+ if (d[2] > inst.zMax) {
1173
+ inst.zMax = d[2];
1174
+ }
1175
+ if (d[2] < inst.zMin) {
1176
+ inst.zMin = d[2];
1177
+ }
1178
+ }
1179
+ }
1180
+ else {
1181
+ x = d;
1182
+ y = yData[i];
1183
+ if (sdata[i + 1]) {
1184
+ nx = sdata[i + 1];
1185
+ }
1186
+ if (sdata[i - 1]) {
1187
+ px = sdata[i - 1];
1188
+ }
1189
+ if (zData && zData.length) {
1190
+ z = zData[i];
1191
+ if (zData[i] > inst.zMax) {
1192
+ inst.zMax = zData[i];
1193
+ }
1194
+ if (zData[i] < inst.zMin) {
1195
+ inst.zMin = zData[i];
1196
+ }
1197
+ }
1198
+ }
1199
+ if (!connectNulls && (x === null || y === null)) {
1200
+ beginSegment();
1201
+ return "continue";
1202
+ }
1203
+ if (nx && nx >= xMin && nx <= xMax) {
1204
+ nextInside = true;
1205
+ }
1206
+ if (px && px >= xMin && px <= xMax) {
1207
+ prevInside = true;
1208
+ }
1209
+ if (isRange) {
1210
+ if (useRaw) {
1211
+ y = d.slice(1, 3);
1212
+ }
1213
+ low = y[0];
1214
+ y = y[1];
1215
+ }
1216
+ else if (isStacked) {
1217
+ x = d.x;
1218
+ y = d.stackY;
1219
+ low = y - d.y;
1220
+ }
1221
+ if (yMin !== null &&
1222
+ typeof yMin !== 'undefined' &&
1223
+ yMax !== null &&
1224
+ typeof yMax !== 'undefined') {
1225
+ isYInside = y >= yMin && y <= yMax;
1226
+ }
1227
+ if (x > xMax && closestRight.x < xMax) {
1228
+ closestRight.x = x;
1229
+ closestRight.y = y;
1230
+ }
1231
+ if (x < xMin && closestLeft.x > xMin) {
1232
+ closestLeft.x = x;
1233
+ closestLeft.y = y;
1234
+ }
1235
+ if (y === null && connectNulls) {
1236
+ return "continue";
1237
+ }
1238
+ // Cull points outside the extremes
1239
+ if (y === null || (!isYInside && !nextInside && !prevInside)) {
1240
+ beginSegment();
1241
+ return "continue";
1242
+ }
1243
+ // The first point before and first after extremes should be
1244
+ // rendered (#9962)
1245
+ if ((nx >= xMin || x >= xMin) &&
1246
+ (px <= xMax || x <= xMax)) {
1247
+ isXInside = true;
1248
+ }
1249
+ if (!isXInside && !nextInside && !prevInside) {
1250
+ return "continue";
1251
+ }
1252
+ if (gapSize && x - px > gapSize) {
1253
+ beginSegment();
1254
+ }
1255
+ // Note: Boost requires that zones are sorted!
1256
+ if (zones) {
1257
+ var zoneColor_1;
1258
+ zones.some(function (// eslint-disable-line no-loop-func
1259
+ zone, i) {
1260
+ var last = zones[i - 1];
1261
+ if (zoneAxis === 'x') {
1262
+ if (typeof zone.value !== 'undefined' &&
1263
+ x <= zone.value) {
1264
+ if (zoneColors[i] &&
1265
+ (!last || x >= last.value)) {
1266
+ zoneColor_1 = zoneColors[i];
1267
+ }
1268
+ return true;
1269
+ }
1270
+ return false;
1271
+ }
1272
+ if (typeof zone.value !== 'undefined' && y <= zone.value) {
1273
+ if (zoneColors[i] &&
1274
+ (!last || y >= last.value)) {
1275
+ zoneColor_1 = zoneColors[i];
1276
+ }
1277
+ return true;
1278
+ }
1279
+ return false;
1280
+ });
1281
+ pcolor = zoneColor_1 || zoneDefColor || pcolor;
1282
+ }
1283
+ // Skip translations - temporary floating point fix
1284
+ if (!settings.useGPUTranslations) {
1285
+ inst.skipTranslation = true;
1286
+ x = xAxis.toPixels(x, true);
1287
+ y = yAxis.toPixels(y, true);
1288
+ // Make sure we're not drawing outside of the chart area.
1289
+ // See #6594. Update: this is no longer required as far as I
1290
+ // can tell. Leaving in for git blame in case there are edge
1291
+ // cases I've not found. Having this in breaks #10246.
1292
+ // if (y > plotHeight) {
1293
+ // y = plotHeight;
1294
+ // }
1295
+ if (x > plotWidth) {
1296
+ // If this is rendered as a point, just skip drawing it
1297
+ // entirely, as we're not dependandt on lineTo'ing to it.
1298
+ // See #8197
1299
+ if (inst.drawMode === 'points') {
1300
+ return "continue";
1301
+ }
1302
+ // Having this here will clamp markers and make the angle
1303
+ // of the last line wrong. See 9166.
1304
+ // x = plotWidth;
1305
+ }
1306
+ }
1307
+ // No markers on out of bounds things.
1308
+ // Out of bound things are shown if and only if the next
1309
+ // or previous point is inside the rect.
1310
+ if (inst.hasMarkers && isXInside) {
1311
+ // x = Highcharts.correctFloat(
1312
+ // Math.min(Math.max(-1e5, xAxis.translate(
1313
+ // x,
1314
+ // 0,
1315
+ // 0,
1316
+ // 0,
1317
+ // 1,
1318
+ // 0.5,
1319
+ // false
1320
+ // )), 1e5)
1321
+ // );
1322
+ if (lastX !== false) {
1323
+ series.closestPointRangePx = Math.min(series.closestPointRangePx, Math.abs(x - lastX));
1324
+ }
1325
+ }
1326
+ // If the last _drawn_ point is closer to this point than the
1327
+ // threshold, skip it. Shaves off 20-100ms in processing.
1328
+ if (!settings.useGPUTranslations &&
1329
+ !settings.usePreallocated &&
1330
+ (lastX && Math.abs(x - lastX) < cullXThreshold) &&
1331
+ (lastY && Math.abs(y - lastY) < cullYThreshold)) {
1332
+ if (settings.debug.showSkipSummary) {
1333
+ ++skipped;
1334
+ }
1335
+ return "continue";
1336
+ }
1337
+ if (drawAsBar) {
1338
+ // maxVal = y;
1339
+ minVal = low;
1340
+ if (low === false || typeof low === 'undefined') {
1341
+ if (y < 0) {
1342
+ minVal = y;
1343
+ }
1344
+ else {
1345
+ minVal = 0;
1346
+ }
1347
+ }
1348
+ if (!isRange && !isStacked) {
1349
+ minVal = Math.max(threshold === null ? yMin : threshold, // #5268
1350
+ yMin); // #8731
1351
+ }
1352
+ if (!settings.useGPUTranslations) {
1353
+ minVal = yAxis.toPixels(minVal, true);
1354
+ }
1355
+ // Need to add an extra point here
1356
+ vertice(x, minVal, 0, 0, pcolor);
1357
+ }
1358
+ // Do step line if enabled.
1359
+ // Draws an additional point at the old Y at the new X.
1360
+ // See #6976.
1361
+ if (options.step && !firstPoint) {
1362
+ vertice(x, lastY, 0, 2, pcolor);
1363
+ }
1364
+ vertice(x, y, 0, series.type === 'bubble' ? (z || 1) : 2, pcolor);
1365
+ // Uncomment this to support color axis.
1366
+ // if (caxis) {
1367
+ // pcolor = color(caxis.toColor(y)).rgba;
1368
+ // inst.colorData.push(color[0] / 255.0);
1369
+ // inst.colorData.push(color[1] / 255.0);
1370
+ // inst.colorData.push(color[2] / 255.0);
1371
+ // inst.colorData.push(color[3]);
1372
+ // }
1373
+ lastX = x;
1374
+ lastY = y;
1375
+ hadPoints = true;
1376
+ firstPoint = false;
1377
+ };
1378
+ // Extract color axis
1379
+ // (chart.axes || []).forEach(function (a) {
1380
+ // if (H.ColorAxis && a instanceof H.ColorAxis) {
1381
+ // caxis = a;
1382
+ // }
1383
+ // });
1384
+ while (i < sdata.length - 1) {
1385
+ var state_1 = _loop_1();
1386
+ if (state_1 === "break")
1387
+ break;
1388
+ }
1389
+ if (settings.debug.showSkipSummary) {
1390
+ console.log('skipped points:', skipped); // eslint-disable-line no-console
1391
+ }
1392
+ /**
1393
+ * @private
1394
+ */
1395
+ function pushSupplementPoint(point, atStart) {
1396
+ if (!settings.useGPUTranslations) {
1397
+ inst.skipTranslation = true;
1398
+ point.x = xAxis.toPixels(point.x, true);
1399
+ point.y = yAxis.toPixels(point.y, true);
1400
+ }
1401
+ // We should only do this for lines, and we should ignore markers
1402
+ // since there's no point here that would have a marker.
1403
+ if (atStart) {
1404
+ data = [point.x, point.y, 0, 2].concat(data);
1405
+ return;
1406
+ }
1407
+ vertice(point.x, point.y, 0, 2);
1408
+ }
1409
+ if (!hadPoints &&
1410
+ connectNulls !== false &&
1411
+ series.drawMode === 'line_strip') {
1412
+ if (closestLeft.x < Number.MAX_VALUE) {
1413
+ // We actually need to push this *before* the complete buffer.
1414
+ pushSupplementPoint(closestLeft, true);
1415
+ }
1416
+ if (closestRight.x > -Number.MAX_VALUE) {
1417
+ pushSupplementPoint(closestRight);
1418
+ }
1419
+ }
1420
+ closeSegment();
1421
+ }
1422
+ /**
1423
+ * Push a series to the renderer
1424
+ * If we render the series immediatly, we don't have to loop later
1425
+ * @private
1426
+ * @param s {Highchart.Series} - the series to push
1427
+ */
1428
+ function pushSeries(s) {
1429
+ if (series.length > 0) {
1430
+ // series[series.length - 1].to = data.length;
1431
+ if (series[series.length - 1].hasMarkers) {
1432
+ series[series.length - 1].markerTo = markerData.length;
1433
+ }
1434
+ }
1435
+ if (settings.debug.timeSeriesProcessing) {
1436
+ console.time('building ' + s.type + ' series'); // eslint-disable-line no-console
1437
+ }
1438
+ var obj = {
1439
+ segments: [],
1440
+ // from: data.length,
1441
+ markerFrom: markerData.length,
1442
+ // Push RGBA values to this array to use per. point coloring.
1443
+ // It should be 0-padded, so each component should be pushed in
1444
+ // succession.
1445
+ colorData: [],
1446
+ series: s,
1447
+ zMin: Number.MAX_VALUE,
1448
+ zMax: -Number.MAX_VALUE,
1449
+ hasMarkers: s.options.marker ?
1450
+ s.options.marker.enabled !== false :
1451
+ false,
1452
+ showMarkers: true,
1453
+ drawMode: {
1454
+ 'area': 'lines',
1455
+ 'arearange': 'lines',
1456
+ 'areaspline': 'line_strip',
1457
+ 'column': 'lines',
1458
+ 'columnrange': 'lines',
1459
+ 'bar': 'lines',
1460
+ 'line': 'line_strip',
1461
+ 'scatter': 'points',
1462
+ 'heatmap': 'triangles',
1463
+ 'treemap': 'triangles',
1464
+ 'bubble': 'points'
1465
+ }[s.type] || 'line_strip'
1466
+ };
1467
+ if (s.index >= series.length) {
1468
+ series.push(obj);
1469
+ }
1470
+ else {
1471
+ series[s.index] = obj;
1472
+ }
1473
+ // Add the series data to our buffer(s)
1474
+ pushSeriesData(s, obj);
1475
+ if (settings.debug.timeSeriesProcessing) {
1476
+ console.timeEnd('building ' + s.type + ' series'); // eslint-disable-line no-console
1477
+ }
1478
+ }
1479
+ /**
1480
+ * Flush the renderer.
1481
+ * This removes pushed series and vertices.
1482
+ * Should be called after clearing and before rendering
1483
+ * @private
1484
+ */
1485
+ function flush() {
1486
+ series = [];
1487
+ exports.data = data = [];
1488
+ markerData = [];
1489
+ if (vbuffer) {
1490
+ vbuffer.destroy();
1491
+ }
1492
+ }
1493
+ /**
1494
+ * Pass x-axis to shader
1495
+ * @private
1496
+ * @param axis {Highcharts.Axis} - the x-axis
1497
+ */
1498
+ function setXAxis(axis) {
1499
+ if (!shader) {
1500
+ return;
1501
+ }
1502
+ shader.setUniform('xAxisTrans', axis.transA);
1503
+ shader.setUniform('xAxisMin', axis.min);
1504
+ shader.setUniform('xAxisMinPad', axis.minPixelPadding);
1505
+ shader.setUniform('xAxisPointRange', axis.pointRange);
1506
+ shader.setUniform('xAxisLen', axis.len);
1507
+ shader.setUniform('xAxisPos', axis.pos);
1508
+ shader.setUniform('xAxisCVSCoord', (!axis.horiz));
1509
+ shader.setUniform('xAxisIsLog', (!!axis.logarithmic));
1510
+ shader.setUniform('xAxisReversed', (!!axis.reversed));
1511
+ }
1512
+ /**
1513
+ * Pass y-axis to shader
1514
+ * @private
1515
+ * @param axis {Highcharts.Axis} - the y-axis
1516
+ */
1517
+ function setYAxis(axis) {
1518
+ if (!shader) {
1519
+ return;
1520
+ }
1521
+ shader.setUniform('yAxisTrans', axis.transA);
1522
+ shader.setUniform('yAxisMin', axis.min);
1523
+ shader.setUniform('yAxisMinPad', axis.minPixelPadding);
1524
+ shader.setUniform('yAxisPointRange', axis.pointRange);
1525
+ shader.setUniform('yAxisLen', axis.len);
1526
+ shader.setUniform('yAxisPos', axis.pos);
1527
+ shader.setUniform('yAxisCVSCoord', (!axis.horiz));
1528
+ shader.setUniform('yAxisIsLog', (!!axis.logarithmic));
1529
+ shader.setUniform('yAxisReversed', (!!axis.reversed));
1530
+ }
1531
+ /**
1532
+ * Set the translation threshold
1533
+ * @private
1534
+ * @param has {boolean} - has threshold flag
1535
+ * @param translation {Float} - the threshold
1536
+ */
1537
+ function setThreshold(has, translation) {
1538
+ shader.setUniform('hasThreshold', has);
1539
+ shader.setUniform('translatedThreshold', translation);
1540
+ }
1541
+ /**
1542
+ * Render the data
1543
+ * This renders all pushed series.
1544
+ * @private
1545
+ */
1546
+ function render(chart) {
1547
+ if (chart) {
1548
+ if (!chart.chartHeight || !chart.chartWidth) {
1549
+ // chart.setChartSize();
1550
+ }
1551
+ width = chart.chartWidth || 800;
1552
+ height = chart.chartHeight || 400;
1553
+ }
1554
+ else {
1555
+ return false;
1556
+ }
1557
+ if (!gl || !width || !height || !shader) {
1558
+ return false;
1559
+ }
1560
+ if (settings.debug.timeRendering) {
1561
+ console.time('gl rendering'); // eslint-disable-line no-console
1562
+ }
1563
+ gl.canvas.width = width;
1564
+ gl.canvas.height = height;
1565
+ shader.bind();
1566
+ gl.viewport(0, 0, width, height);
1567
+ shader.setPMatrix(orthoMatrix(width, height));
1568
+ if (settings.lineWidth > 1 && !H.isMS) {
1569
+ gl.lineWidth(settings.lineWidth);
1570
+ }
1571
+ vbuffer.build(exports.data, 'aVertexPosition', 4);
1572
+ vbuffer.bind();
1573
+ shader.setInverted(chart.inverted);
1574
+ // Render the series
1575
+ series.forEach(function (s, si) {
1576
+ var options = s.series.options,
1577
+ shapeOptions = options.marker,
1578
+ sindex,
1579
+ lineWidth = (typeof options.lineWidth !== 'undefined' ?
1580
+ options.lineWidth :
1581
+ 1),
1582
+ threshold = options.threshold,
1583
+ hasThreshold = isNumber(threshold),
1584
+ yBottom = s.series.yAxis.getThreshold(threshold),
1585
+ translatedThreshold = yBottom,
1586
+ cbuffer,
1587
+ showMarkers = pick(options.marker ? options.marker.enabled : null,
1588
+ s.series.xAxis.isRadial ? true : null,
1589
+ s.series.closestPointRangePx >
1590
+ 2 * ((options.marker ?
1591
+ options.marker.radius :
1592
+ 10) || 10)),
1593
+ fillColor,
1594
+ shapeTexture = textureHandles[(shapeOptions && shapeOptions.symbol) ||
1595
+ s.series.symbol] || textureHandles.circle,
1596
+ scolor = [];
1597
+ if (s.segments.length === 0 ||
1598
+ s.segments[0].from === s.segments[0].to) {
1599
+ return;
1600
+ }
1601
+ if (shapeTexture.isReady) {
1602
+ gl.bindTexture(gl.TEXTURE_2D, shapeTexture.handle);
1603
+ shader.setTexture(shapeTexture.handle);
1604
+ }
1605
+ if (chart.styledMode) {
1606
+ fillColor = (s.series.markerGroup &&
1607
+ s.series.markerGroup.getStyle('fill'));
1608
+ }
1609
+ else {
1610
+ fillColor =
1611
+ (s.drawMode === 'points' && // #14260
1612
+ s.series.pointAttribs &&
1613
+ s.series.pointAttribs().fill) ||
1614
+ s.series.color;
1615
+ if (options.colorByPoint) {
1616
+ fillColor = s.series.chart.options.colors[si];
1617
+ }
1618
+ }
1619
+ if (s.series.fillOpacity && options.fillOpacity) {
1620
+ fillColor = new Color(fillColor).setOpacity(pick(options.fillOpacity, 1.0)).get();
1621
+ }
1622
+ scolor = color(fillColor).rgba;
1623
+ if (!settings.useAlpha) {
1624
+ scolor[3] = 1.0;
1625
+ }
1626
+ // This is very much temporary
1627
+ if (s.drawMode === 'lines' &&
1628
+ settings.useAlpha &&
1629
+ scolor[3] < 1) {
1630
+ scolor[3] /= 10;
1631
+ }
1632
+ // Blending
1633
+ if (options.boostBlending === 'add') {
1634
+ gl.blendFunc(gl.SRC_ALPHA, gl.ONE);
1635
+ gl.blendEquation(gl.FUNC_ADD);
1636
+ }
1637
+ else if (options.boostBlending === 'mult' ||
1638
+ options.boostBlending === 'multiply') {
1639
+ gl.blendFunc(gl.DST_COLOR, gl.ZERO);
1640
+ }
1641
+ else if (options.boostBlending === 'darken') {
1642
+ gl.blendFunc(gl.ONE, gl.ONE);
1643
+ gl.blendEquation(gl.FUNC_MIN);
1644
+ }
1645
+ else {
1646
+ // gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
1647
+ // gl.blendEquation(gl.FUNC_ADD);
1648
+ gl.blendFuncSeparate(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
1649
+ }
1650
+ shader.reset();
1651
+ // If there are entries in the colorData buffer, build and bind it.
1652
+ if (s.colorData.length > 0) {
1653
+ shader.setUniform('hasColor', 1.0);
1654
+ cbuffer = GLVertexBuffer(gl, shader); // eslint-disable-line new-cap
1655
+ cbuffer.build(s.colorData, 'aColor', 4);
1656
+ cbuffer.bind();
1657
+ }
1658
+ else {
1659
+ // #15869, a buffer with fewer points might already be bound by
1660
+ // a different series/chart causing out of range errors
1661
+ gl.disableVertexAttribArray(gl.getAttribLocation(shader.program(), 'aColor'));
1662
+ }
1663
+ // Set series specific uniforms
1664
+ shader.setColor(scolor);
1665
+ setXAxis(s.series.xAxis);
1666
+ setYAxis(s.series.yAxis);
1667
+ setThreshold(hasThreshold, translatedThreshold);
1668
+ if (s.drawMode === 'points') {
1669
+ if (options.marker && isNumber(options.marker.radius)) {
1670
+ shader.setPointSize(options.marker.radius * 2.0);
1671
+ }
1672
+ else {
1673
+ shader.setPointSize(1);
1674
+ }
1675
+ }
1676
+ // If set to true, the toPixels translations in the shader
1677
+ // is skipped, i.e it's assumed that the value is a pixel coord.
1678
+ shader.setSkipTranslation(s.skipTranslation);
1679
+ if (s.series.type === 'bubble') {
1680
+ shader.setBubbleUniforms(s.series, s.zMin, s.zMax);
1681
+ }
1682
+ shader.setDrawAsCircle(asCircle[s.series.type] || false);
1683
+ // Do the actual rendering
1684
+ // If the line width is < 0, skip rendering of the lines. See #7833.
1685
+ if (lineWidth > 0 || s.drawMode !== 'line_strip') {
1686
+ for (sindex = 0; sindex < s.segments.length; sindex++) {
1687
+ vbuffer.render(s.segments[sindex].from, s.segments[sindex].to, s.drawMode);
1688
+ }
1689
+ }
1690
+ if (s.hasMarkers && showMarkers) {
1691
+ if (options.marker && isNumber(options.marker.radius)) {
1692
+ shader.setPointSize(options.marker.radius * 2.0);
1693
+ }
1694
+ else {
1695
+ shader.setPointSize(10);
1696
+ }
1697
+ shader.setDrawAsCircle(true);
1698
+ for (sindex = 0; sindex < s.segments.length; sindex++) {
1699
+ vbuffer.render(s.segments[sindex].from, s.segments[sindex].to, 'POINTS');
1700
+ }
1701
+ }
1702
+ });
1703
+ if (settings.debug.timeRendering) {
1704
+ console.timeEnd('gl rendering'); // eslint-disable-line no-console
1705
+ }
1706
+ if (postRenderCallback) {
1707
+ postRenderCallback();
1708
+ }
1709
+ flush();
1710
+ }
1711
+ /**
1712
+ * Render the data when ready
1713
+ * @private
1714
+ */
1715
+ function renderWhenReady(chart) {
1716
+ clear();
1717
+ if (chart.renderer.forExport) {
1718
+ return render(chart);
1719
+ }
1720
+ if (isInited) {
1721
+ render(chart);
1722
+ }
1723
+ else {
1724
+ setTimeout(function () {
1725
+ renderWhenReady(chart);
1726
+ }, 1);
1727
+ }
1728
+ }
1729
+ /**
1730
+ * Set the viewport size in pixels
1731
+ * Creates an orthographic perspective matrix and applies it.
1732
+ * @private
1733
+ * @param w {Integer} - the width of the viewport
1734
+ * @param h {Integer} - the height of the viewport
1735
+ */
1736
+ function setSize(w, h) {
1737
+ // Skip if there's no change, or if we have no valid shader
1738
+ if ((width === w && height === h) || !shader) {
1739
+ return;
1740
+ }
1741
+ width = w;
1742
+ height = h;
1743
+ shader.bind();
1744
+ shader.setPMatrix(orthoMatrix(width, height));
1745
+ }
1746
+ /**
1747
+ * Init OpenGL
1748
+ * @private
1749
+ * @param canvas {HTMLCanvas} - the canvas to render to
1750
+ */
1751
+ function init(canvas, noFlush) {
1752
+ var i = 0,
1753
+ contexts = [
1754
+ 'webgl',
1755
+ 'experimental-webgl',
1756
+ 'moz-webgl',
1757
+ 'webkit-3d'
1758
+ ];
1759
+ isInited = false;
1760
+ if (!canvas) {
1761
+ return false;
1762
+ }
1763
+ if (settings.debug.timeSetup) {
1764
+ console.time('gl setup'); // eslint-disable-line no-console
1765
+ }
1766
+ for (; i < contexts.length; i++) {
1767
+ gl = canvas.getContext(contexts[i], {
1768
+ // premultipliedAlpha: false
1769
+ });
1770
+ if (gl) {
1771
+ break;
1772
+ }
1773
+ }
1774
+ if (gl) {
1775
+ if (!noFlush) {
1776
+ flush();
1777
+ }
1778
+ }
1779
+ else {
1780
+ return false;
1781
+ }
1782
+ gl.enable(gl.BLEND);
1783
+ // gl.blendFunc(gl.SRC_ALPHA, gl.ONE);
1784
+ gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
1785
+ gl.disable(gl.DEPTH_TEST);
1786
+ // gl.depthMask(gl.FALSE);
1787
+ gl.depthFunc(gl.LESS);
1788
+ shader = GLShader(gl); // eslint-disable-line new-cap
1789
+ if (!shader) {
1790
+ // We need to abort, there's no shader context
1791
+ return false;
1792
+ }
1793
+ vbuffer = GLVertexBuffer(gl, shader); // eslint-disable-line new-cap
1794
+ /**
1795
+ * @private
1796
+ */
1797
+ function createTexture(name, fn) {
1798
+ var props = {
1799
+ isReady: false,
1800
+ texture: doc.createElement('canvas'),
1801
+ handle: gl.createTexture()
1802
+ },
1803
+ ctx = props.texture.getContext('2d');
1804
+ textureHandles[name] = props;
1805
+ props.texture.width = 512;
1806
+ props.texture.height = 512;
1807
+ ctx.mozImageSmoothingEnabled = false;
1808
+ ctx.webkitImageSmoothingEnabled = false;
1809
+ ctx.msImageSmoothingEnabled = false;
1810
+ ctx.imageSmoothingEnabled = false;
1811
+ ctx.strokeStyle = 'rgba(255, 255, 255, 0)';
1812
+ ctx.fillStyle = '#FFF';
1813
+ fn(ctx);
1814
+ try {
1815
+ gl.activeTexture(gl.TEXTURE0);
1816
+ gl.bindTexture(gl.TEXTURE_2D, props.handle);
1817
+ // gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);
1818
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, props.texture);
1819
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
1820
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
1821
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
1822
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
1823
+ // gl.generateMipmap(gl.TEXTURE_2D);
1824
+ gl.bindTexture(gl.TEXTURE_2D, null);
1825
+ props.isReady = true;
1826
+ }
1827
+ catch (e) {
1828
+ // silent error
1829
+ }
1830
+ }
1831
+ // Circle shape
1832
+ createTexture('circle', function (ctx) {
1833
+ ctx.beginPath();
1834
+ ctx.arc(256, 256, 256, 0, 2 * Math.PI);
1835
+ ctx.stroke();
1836
+ ctx.fill();
1837
+ });
1838
+ // Square shape
1839
+ createTexture('square', function (ctx) {
1840
+ ctx.fillRect(0, 0, 512, 512);
1841
+ });
1842
+ // Diamond shape
1843
+ createTexture('diamond', function (ctx) {
1844
+ ctx.beginPath();
1845
+ ctx.moveTo(256, 0);
1846
+ ctx.lineTo(512, 256);
1847
+ ctx.lineTo(256, 512);
1848
+ ctx.lineTo(0, 256);
1849
+ ctx.lineTo(256, 0);
1850
+ ctx.fill();
1851
+ });
1852
+ // Triangle shape
1853
+ createTexture('triangle', function (ctx) {
1854
+ ctx.beginPath();
1855
+ ctx.moveTo(0, 512);
1856
+ ctx.lineTo(256, 0);
1857
+ ctx.lineTo(512, 512);
1858
+ ctx.lineTo(0, 512);
1859
+ ctx.fill();
1860
+ });
1861
+ // Triangle shape (rotated)
1862
+ createTexture('triangle-down', function (ctx) {
1863
+ ctx.beginPath();
1864
+ ctx.moveTo(0, 0);
1865
+ ctx.lineTo(256, 512);
1866
+ ctx.lineTo(512, 0);
1867
+ ctx.lineTo(0, 0);
1868
+ ctx.fill();
1869
+ });
1870
+ isInited = true;
1871
+ if (settings.debug.timeSetup) {
1872
+ console.timeEnd('gl setup'); // eslint-disable-line no-console
1873
+ }
1874
+ return true;
1875
+ }
1876
+ /**
1877
+ * Check if we have a valid OGL context
1878
+ * @private
1879
+ * @return {boolean}
1880
+ * true if the context is valid
1881
+ */
1882
+ function valid() {
1883
+ return gl !== false;
1884
+ }
1885
+ /**
1886
+ * Check if the renderer has been initialized
1887
+ * @private
1888
+ * @return {boolean}
1889
+ * true if it has, false if not
1890
+ */
1891
+ function inited() {
1892
+ return isInited;
1893
+ }
1894
+ /**
1895
+ * @private
1896
+ */
1897
+ function destroy() {
1898
+ flush();
1899
+ vbuffer.destroy();
1900
+ shader.destroy();
1901
+ if (gl) {
1902
+ objectEach(textureHandles, function (texture) {
1903
+ if (texture.handle) {
1904
+ gl.deleteTexture(texture.handle);
1905
+ }
1906
+ });
1907
+ gl.canvas.width = 1;
1908
+ gl.canvas.height = 1;
1909
+ }
1910
+ }
1911
+ // /////////////////////////////////////////////////////////////////////////
1912
+ exports = {
1913
+ allocateBufferForSingleSeries: allocateBufferForSingleSeries,
1914
+ pushSeries: pushSeries,
1915
+ setSize: setSize,
1916
+ inited: inited,
1917
+ setThreshold: setThreshold,
1918
+ init: init,
1919
+ render: renderWhenReady,
1920
+ settings: settings,
1921
+ valid: valid,
1922
+ clear: clear,
1923
+ flush: flush,
1924
+ setXAxis: setXAxis,
1925
+ setYAxis: setYAxis,
1926
+ data: data,
1927
+ gl: getGL,
1928
+ allocateBuffer: allocateBuffer,
1929
+ destroy: destroy,
1930
+ setOptions: setOptions
1931
+ };
1932
+ return exports;
1933
+ }
1934
+
1935
+ return GLRenderer;
1936
+ });
1937
+ _registerModule(_modules, 'Extensions/Boost/BoostAttach.js', [_modules['Core/Chart/Chart.js'], _modules['Extensions/Boost/WGLRenderer.js'], _modules['Core/Globals.js'], _modules['Core/Utilities.js']], function (Chart, GLRenderer, H, U) {
1938
+ /* *
1939
+ *
1940
+ * Copyright (c) 2019-2021 Highsoft AS
1941
+ *
1942
+ * Boost module: stripped-down renderer for higher performance
1943
+ *
1944
+ * License: highcharts.com/license
1945
+ *
1946
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
1947
+ *
1948
+ * */
1949
+ var doc = H.doc;
1950
+ var error = U.error;
1951
+ var mainCanvas;
1952
+ /**
1953
+ * Create a canvas + context and attach it to the target
1954
+ *
1955
+ * @private
1956
+ * @function createAndAttachRenderer
1957
+ *
1958
+ * @param {Highcharts.Chart} chart
1959
+ * the chart
1960
+ *
1961
+ * @param {Highcharts.Series} series
1962
+ * the series
1963
+ *
1964
+ * @return {Highcharts.BoostGLRenderer}
1965
+ * the canvas renderer
1966
+ */
1967
+ function createAndAttachRenderer(chart, series) {
1968
+ var width = chart.chartWidth, height = chart.chartHeight, target = chart, targetGroup = chart.seriesGroup || series.group, alpha = 1, foSupported = doc.implementation.hasFeature('www.http://w3.org/TR/SVG11/feature#Extensibility', '1.1');
1969
+ if (chart.isChartSeriesBoosting()) {
1970
+ target = chart;
1971
+ }
1972
+ else {
1973
+ target = series;
1974
+ }
1975
+ // Support for foreignObject is flimsy as best.
1976
+ // IE does not support it, and Chrome has a bug which messes up
1977
+ // the canvas draw order.
1978
+ // As such, we force the Image fallback for now, but leaving the
1979
+ // actual Canvas path in-place in case this changes in the future.
1980
+ foSupported = false;
1981
+ if (!mainCanvas) {
1982
+ mainCanvas = doc.createElement('canvas');
1983
+ }
1984
+ if (!target.renderTarget) {
1985
+ target.canvas = mainCanvas;
1986
+ // Fall back to image tag if foreignObject isn't supported,
1987
+ // or if we're exporting.
1988
+ if (chart.renderer.forExport || !foSupported) {
1989
+ target.renderTarget = chart.renderer.image('', 0, 0, width, height)
1990
+ .addClass('highcharts-boost-canvas')
1991
+ .add(targetGroup);
1992
+ target.boostClear = function () {
1993
+ target.renderTarget.attr({ href: '' });
1994
+ };
1995
+ target.boostCopy = function () {
1996
+ target.boostResizeTarget();
1997
+ target.renderTarget.attr({
1998
+ href: target.canvas.toDataURL('image/png')
1999
+ });
2000
+ };
2001
+ }
2002
+ else {
2003
+ target.renderTargetFo = chart.renderer
2004
+ .createElement('foreignObject')
2005
+ .add(targetGroup);
2006
+ target.renderTarget = doc.createElement('canvas');
2007
+ target.renderTargetCtx =
2008
+ target.renderTarget.getContext('2d');
2009
+ target.renderTargetFo.element.appendChild(target.renderTarget);
2010
+ target.boostClear = function () {
2011
+ target.renderTarget.width =
2012
+ target.canvas.width;
2013
+ target.renderTarget.height =
2014
+ target.canvas.height;
2015
+ };
2016
+ target.boostCopy = function () {
2017
+ target.renderTarget.width =
2018
+ target.canvas.width;
2019
+ target.renderTarget.height =
2020
+ target.canvas.height;
2021
+ target.renderTargetCtx
2022
+ .drawImage(target.canvas, 0, 0);
2023
+ };
2024
+ }
2025
+ target.boostResizeTarget = function () {
2026
+ width = chart.chartWidth;
2027
+ height = chart.chartHeight;
2028
+ (target.renderTargetFo || target.renderTarget)
2029
+ .attr({
2030
+ x: 0,
2031
+ y: 0,
2032
+ width: width,
2033
+ height: height
2034
+ })
2035
+ .css({
2036
+ pointerEvents: 'none',
2037
+ mixedBlendMode: 'normal',
2038
+ opacity: alpha
2039
+ });
2040
+ if (target instanceof Chart) {
2041
+ target.markerGroup.translate(chart.plotLeft, chart.plotTop);
2042
+ }
2043
+ };
2044
+ target.boostClipRect = chart.renderer.clipRect();
2045
+ (target.renderTargetFo || target.renderTarget)
2046
+ .clip(target.boostClipRect);
2047
+ if (target instanceof Chart) {
2048
+ target.markerGroup = target.renderer.g().add(targetGroup);
2049
+ target.markerGroup.translate(series.xAxis.pos, series.yAxis.pos);
2050
+ }
2051
+ }
2052
+ target.canvas.width = width;
2053
+ target.canvas.height = height;
2054
+ target.boostClipRect.attr(chart.getBoostClipRect(target));
2055
+ target.boostResizeTarget();
2056
+ target.boostClear();
2057
+ if (!target.ogl) {
2058
+ target.ogl = GLRenderer(function () {
2059
+ if (target.ogl.settings.debug.timeBufferCopy) {
2060
+ console.time('buffer copy'); // eslint-disable-line no-console
2061
+ }
2062
+ target.boostCopy();
2063
+ if (target.ogl.settings.debug.timeBufferCopy) {
2064
+ console.timeEnd('buffer copy'); // eslint-disable-line no-console
2065
+ }
2066
+ });
2067
+ if (!target.ogl.init(target.canvas)) {
2068
+ // The OGL renderer couldn't be inited.
2069
+ // This likely means a shader error as we wouldn't get to this point
2070
+ // if there was no WebGL support.
2071
+ error('[highcharts boost] - unable to init WebGL renderer');
2072
+ }
2073
+ // target.ogl.clear();
2074
+ target.ogl.setOptions(chart.options.boost || {});
2075
+ if (target instanceof Chart) {
2076
+ target.ogl.allocateBuffer(chart);
2077
+ }
2078
+ }
2079
+ target.ogl.setSize(width, height);
2080
+ return target.ogl;
2081
+ }
2082
+
2083
+ return createAndAttachRenderer;
2084
+ });
2085
+ _registerModule(_modules, 'Extensions/Boost/BoostUtils.js', [_modules['Core/Globals.js'], _modules['Extensions/Boost/BoostableMap.js'], _modules['Extensions/Boost/BoostAttach.js'], _modules['Core/Utilities.js']], function (H, boostableMap, createAndAttachRenderer, U) {
2086
+ /* *
2087
+ *
2088
+ * Copyright (c) 2019-2021 Highsoft AS
2089
+ *
2090
+ * Boost module: stripped-down renderer for higher performance
2091
+ *
2092
+ * License: highcharts.com/license
2093
+ *
2094
+ * This files contains generic utility functions used by the boost module.
2095
+ *
2096
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
2097
+ *
2098
+ * */
2099
+ var win = H.win,
2100
+ doc = H.doc;
2101
+ var pick = U.pick;
2102
+ // This should be a const.
2103
+ var CHUNK_SIZE = 3000;
2104
+ /**
2105
+ * Tolerant max() function.
2106
+ *
2107
+ * @private
2108
+ * @function patientMax
2109
+ *
2110
+ * @param {...Array<Array<unknown>>} args
2111
+ * Max arguments
2112
+ *
2113
+ * @return {number}
2114
+ * Max value
2115
+ */
2116
+ function patientMax() {
2117
+ var args = [];
2118
+ for (var _i = 0; _i < arguments.length; _i++) {
2119
+ args[_i] = arguments[_i];
2120
+ }
2121
+ var r = -Number.MAX_VALUE;
2122
+ args.forEach(function (t) {
2123
+ if (typeof t !== 'undefined' &&
2124
+ t !== null &&
2125
+ typeof t.length !== 'undefined') {
2126
+ // r = r < t.length ? t.length : r;
2127
+ if (t.length > 0) {
2128
+ r = t.length;
2129
+ return true;
2130
+ }
2131
+ }
2132
+ });
2133
+ return r;
2134
+ }
2135
+ /**
2136
+ * Return true if ths boost.enabled option is true
2137
+ *
2138
+ * @private
2139
+ * @function boostEnabled
2140
+ *
2141
+ * @param {Highcharts.Chart} chart
2142
+ * The chart
2143
+ *
2144
+ * @return {boolean}
2145
+ * True, if boost is enabled.
2146
+ */
2147
+ function boostEnabled(chart) {
2148
+ return pick((chart &&
2149
+ chart.options &&
2150
+ chart.options.boost &&
2151
+ chart.options.boost.enabled), true);
2152
+ }
2153
+ /**
2154
+ * Returns true if we should force boosting the chart
2155
+ * @private
2156
+ * @function shouldForceChartSeriesBoosting
2157
+ *
2158
+ * @param {Highcharts.Chart} chart
2159
+ * The chart to check for forcing on
2160
+ *
2161
+ * @return {boolean}
2162
+ * True, if boosting should be forced.
2163
+ */
2164
+ function shouldForceChartSeriesBoosting(chart) {
2165
+ // If there are more than five series currently boosting,
2166
+ // we should boost the whole chart to avoid running out of webgl contexts.
2167
+ var sboostCount = 0,
2168
+ canBoostCount = 0,
2169
+ allowBoostForce = pick(chart.options.boost && chart.options.boost.allowForce,
2170
+ true),
2171
+ series;
2172
+ if (typeof chart.boostForceChartBoost !== 'undefined') {
2173
+ return chart.boostForceChartBoost;
2174
+ }
2175
+ if (chart.series.length > 1) {
2176
+ for (var i = 0; i < chart.series.length; i++) {
2177
+ series = chart.series[i];
2178
+ // Don't count series with boostThreshold set to 0
2179
+ // See #8950
2180
+ // Also don't count if the series is hidden.
2181
+ // See #9046
2182
+ if (series.options.boostThreshold === 0 ||
2183
+ series.visible === false) {
2184
+ continue;
2185
+ }
2186
+ // Don't count heatmap series as they are handled differently.
2187
+ // In the future we should make the heatmap/treemap path compatible
2188
+ // with forcing. See #9636.
2189
+ if (series.type === 'heatmap') {
2190
+ continue;
2191
+ }
2192
+ if (boostableMap[series.type]) {
2193
+ ++canBoostCount;
2194
+ }
2195
+ if (patientMax(series.processedXData, series.options.data,
2196
+ // series.xData,
2197
+ series.points) >= (series.options.boostThreshold || Number.MAX_VALUE)) {
2198
+ ++sboostCount;
2199
+ }
2200
+ }
2201
+ }
2202
+ chart.boostForceChartBoost = allowBoostForce && ((canBoostCount === chart.series.length &&
2203
+ sboostCount > 0) ||
2204
+ sboostCount > 5);
2205
+ return chart.boostForceChartBoost;
2206
+ }
2207
+ /* eslint-disable valid-jsdoc */
2208
+ /**
2209
+ * Performs the actual render if the renderer is
2210
+ * attached to the series.
2211
+ * @private
2212
+ * @param renderer {OGLRenderer} - the renderer
2213
+ * @param series {Highcharts.Series} - the series
2214
+ */
2215
+ function renderIfNotSeriesBoosting(renderer, series, chart) {
2216
+ if (renderer &&
2217
+ series.renderTarget &&
2218
+ series.canvas &&
2219
+ !(chart || series.chart).isChartSeriesBoosting()) {
2220
+ renderer.render(chart || series.chart);
2221
+ }
2222
+ }
2223
+ /**
2224
+ * @private
2225
+ */
2226
+ function allocateIfNotSeriesBoosting(renderer, series) {
2227
+ if (renderer &&
2228
+ series.renderTarget &&
2229
+ series.canvas &&
2230
+ !series.chart.isChartSeriesBoosting()) {
2231
+ renderer.allocateBufferForSingleSeries(series);
2232
+ }
2233
+ }
2234
+ /**
2235
+ * An "async" foreach loop. Uses a setTimeout to keep the loop from blocking the
2236
+ * UI thread.
2237
+ *
2238
+ * @private
2239
+ *
2240
+ * @param arr {Array} - the array to loop through
2241
+ * @param fn {Function} - the callback to call for each item
2242
+ * @param finalFunc {Function} - the callback to call when done
2243
+ * @param chunkSize {Number} - the number of iterations per timeout
2244
+ * @param i {Number} - the current index
2245
+ * @param noTimeout {Boolean} - set to true to skip timeouts
2246
+ */
2247
+ function eachAsync(arr, fn, finalFunc, chunkSize, i, noTimeout) {
2248
+ i = i || 0;
2249
+ chunkSize = chunkSize || CHUNK_SIZE;
2250
+ var threshold = i + chunkSize,
2251
+ proceed = true;
2252
+ while (proceed && i < threshold && i < arr.length) {
2253
+ proceed = fn(arr[i], i);
2254
+ ++i;
2255
+ }
2256
+ if (proceed) {
2257
+ if (i < arr.length) {
2258
+ if (noTimeout) {
2259
+ eachAsync(arr, fn, finalFunc, chunkSize, i, noTimeout);
2260
+ }
2261
+ else if (win.requestAnimationFrame) {
2262
+ // If available, do requestAnimationFrame - shaves off a few ms
2263
+ win.requestAnimationFrame(function () {
2264
+ eachAsync(arr, fn, finalFunc, chunkSize, i);
2265
+ });
2266
+ }
2267
+ else {
2268
+ setTimeout(function () {
2269
+ eachAsync(arr, fn, finalFunc, chunkSize, i);
2270
+ });
2271
+ }
2272
+ }
2273
+ else if (finalFunc) {
2274
+ finalFunc();
2275
+ }
2276
+ }
2277
+ }
2278
+ /**
2279
+ * Returns true if the current browser supports webgl
2280
+ *
2281
+ * @private
2282
+ * @function hasWebGLSupport
2283
+ */
2284
+ function hasWebGLSupport() {
2285
+ var i = 0, canvas, contexts = ['webgl', 'experimental-webgl', 'moz-webgl', 'webkit-3d'], context = false;
2286
+ if (typeof win.WebGLRenderingContext !== 'undefined') {
2287
+ canvas = doc.createElement('canvas');
2288
+ for (; i < contexts.length; i++) {
2289
+ try {
2290
+ context = canvas.getContext(contexts[i]);
2291
+ if (typeof context !== 'undefined' && context !== null) {
2292
+ return true;
2293
+ }
2294
+ }
2295
+ catch (e) {
2296
+ // silent error
2297
+ }
2298
+ }
2299
+ }
2300
+ return false;
2301
+ }
2302
+ /* eslint-disable no-invalid-this */
2303
+ /**
2304
+ * Used for treemap|heatmap.drawPoints
2305
+ *
2306
+ * @private
2307
+ * @function pointDrawHandler
2308
+ */
2309
+ function pointDrawHandler(proceed) {
2310
+ var enabled = true,
2311
+ renderer;
2312
+ if (this.chart.options && this.chart.options.boost) {
2313
+ enabled = typeof this.chart.options.boost.enabled === 'undefined' ?
2314
+ true :
2315
+ this.chart.options.boost.enabled;
2316
+ }
2317
+ if (!enabled || !this.isSeriesBoosting) {
2318
+ return proceed.call(this);
2319
+ }
2320
+ this.chart.isBoosting = true;
2321
+ // Make sure we have a valid OGL context
2322
+ renderer = createAndAttachRenderer(this.chart, this);
2323
+ if (renderer) {
2324
+ allocateIfNotSeriesBoosting(renderer, this);
2325
+ renderer.pushSeries(this);
2326
+ }
2327
+ renderIfNotSeriesBoosting(renderer, this);
2328
+ }
2329
+ /* eslint-enable no-invalid-this, valid-jsdoc */
2330
+ var funs = {
2331
+ patientMax: patientMax,
2332
+ boostEnabled: boostEnabled,
2333
+ shouldForceChartSeriesBoosting: shouldForceChartSeriesBoosting,
2334
+ renderIfNotSeriesBoosting: renderIfNotSeriesBoosting,
2335
+ allocateIfNotSeriesBoosting: allocateIfNotSeriesBoosting,
2336
+ eachAsync: eachAsync,
2337
+ hasWebGLSupport: hasWebGLSupport,
2338
+ pointDrawHandler: pointDrawHandler
2339
+ };
2340
+ // This needs to be fixed.
2341
+ H.hasWebGLSupport = hasWebGLSupport;
2342
+
2343
+ return funs;
2344
+ });
2345
+ _registerModule(_modules, 'Extensions/Boost/BoostInit.js', [_modules['Core/Chart/Chart.js'], _modules['Core/Globals.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js'], _modules['Extensions/Boost/BoostUtils.js'], _modules['Extensions/Boost/BoostAttach.js']], function (Chart, H, Series, SeriesRegistry, U, butils, createAndAttachRenderer) {
2346
+ /* *
2347
+ *
2348
+ * Copyright (c) 2019-2021 Highsoft AS
2349
+ *
2350
+ * Boost module: stripped-down renderer for higher performance
2351
+ *
2352
+ * License: highcharts.com/license
2353
+ *
2354
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
2355
+ *
2356
+ * */
2357
+ var noop = H.noop;
2358
+ var seriesTypes = SeriesRegistry.seriesTypes;
2359
+ var addEvent = U.addEvent,
2360
+ extend = U.extend,
2361
+ fireEvent = U.fireEvent,
2362
+ wrap = U.wrap;
2363
+ var eachAsync = butils.eachAsync,
2364
+ pointDrawHandler = butils.pointDrawHandler,
2365
+ allocateIfNotSeriesBoosting = butils.allocateIfNotSeriesBoosting,
2366
+ renderIfNotSeriesBoosting = butils.renderIfNotSeriesBoosting,
2367
+ shouldForceChartSeriesBoosting = butils.shouldForceChartSeriesBoosting,
2368
+ index;
2369
+ /* eslint-disable valid-jsdoc */
2370
+ /**
2371
+ * Initialize the boot module.
2372
+ *
2373
+ * @private
2374
+ * @return {void}
2375
+ */
2376
+ function init() {
2377
+ extend(Series.prototype, {
2378
+ /**
2379
+ * @private
2380
+ * @function Highcharts.Series#renderCanvas
2381
+ */
2382
+ renderCanvas: function () {
2383
+ var series = this, options = series.options || {}, renderer = false, chart = series.chart, xAxis = this.xAxis, yAxis = this.yAxis, xData = options.xData || series.processedXData, yData = options.yData || series.processedYData, rawData = options.data, xExtremes = xAxis.getExtremes(), xMin = xExtremes.min, xMax = xExtremes.max, yExtremes = yAxis.getExtremes(), yMin = yExtremes.min, yMax = yExtremes.max, pointTaken = {}, lastClientX, sampling = !!series.sampling, points, enableMouseTracking = options.enableMouseTracking !== false, threshold = options.threshold, yBottom = yAxis.getThreshold(threshold), isRange = series.pointArrayMap &&
2384
+ series.pointArrayMap.join(',') === 'low,high', isStacked = !!options.stacking, cropStart = series.cropStart || 0, requireSorting = series.requireSorting, useRaw = !xData, minVal, maxVal, minI, maxI, boostOptions, compareX = options.findNearestPointBy === 'x', xDataFull = (this.xData ||
2385
+ this.options.xData ||
2386
+ this.processedXData ||
2387
+ false), addKDPoint = function (clientX, plotY, i) {
2388
+ // We need to do ceil on the clientX to make things
2389
+ // snap to pixel values. The renderer will frequently
2390
+ // draw stuff on "sub-pixels".
2391
+ clientX = Math.ceil(clientX);
2392
+ // Shaves off about 60ms compared to repeated concatenation
2393
+ index = compareX ? clientX : clientX + ',' + plotY;
2394
+ // The k-d tree requires series points.
2395
+ // Reduce the amount of points, since the time to build the
2396
+ // tree increases exponentially.
2397
+ if (enableMouseTracking && !pointTaken[index]) {
2398
+ pointTaken[index] = true;
2399
+ if (chart.inverted) {
2400
+ clientX = xAxis.len - clientX;
2401
+ plotY = yAxis.len - plotY;
2402
+ }
2403
+ points.push({
2404
+ x: xDataFull ? xDataFull[cropStart + i] : false,
2405
+ clientX: clientX,
2406
+ plotX: clientX,
2407
+ plotY: plotY,
2408
+ i: cropStart + i
2409
+ });
2410
+ }
2411
+ };
2412
+ // Get or create the renderer
2413
+ renderer = createAndAttachRenderer(chart, series);
2414
+ chart.isBoosting = true;
2415
+ boostOptions = renderer.settings;
2416
+ if (!this.visible) {
2417
+ return;
2418
+ }
2419
+ // If we are zooming out from SVG mode, destroy the graphics
2420
+ if (this.points || this.graph) {
2421
+ this.destroyGraphics();
2422
+ }
2423
+ // If we're rendering per. series we should create the marker groups
2424
+ // as usual.
2425
+ if (!chart.isChartSeriesBoosting()) {
2426
+ // If all series were boosting, but are not anymore
2427
+ // restore private markerGroup
2428
+ if (this.markerGroup === chart.markerGroup) {
2429
+ this.markerGroup = void 0;
2430
+ }
2431
+ this.markerGroup = series.plotGroup('markerGroup', 'markers', true, 1, chart.seriesGroup);
2432
+ }
2433
+ else {
2434
+ // If series has a private markeGroup, remove that
2435
+ // and use common markerGroup
2436
+ if (this.markerGroup &&
2437
+ this.markerGroup !== chart.markerGroup) {
2438
+ this.markerGroup.destroy();
2439
+ }
2440
+ // Use a single group for the markers
2441
+ this.markerGroup = chart.markerGroup;
2442
+ // When switching from chart boosting mode, destroy redundant
2443
+ // series boosting targets
2444
+ if (this.renderTarget) {
2445
+ this.renderTarget = this.renderTarget.destroy();
2446
+ }
2447
+ }
2448
+ points = this.points = [];
2449
+ // Do not start building while drawing
2450
+ series.buildKDTree = noop;
2451
+ if (renderer) {
2452
+ allocateIfNotSeriesBoosting(renderer, this);
2453
+ renderer.pushSeries(series);
2454
+ // Perform the actual renderer if we're on series level
2455
+ renderIfNotSeriesBoosting(renderer, this, chart);
2456
+ }
2457
+ /**
2458
+ * This builds the KD-tree
2459
+ * @private
2460
+ */
2461
+ function processPoint(d, i) {
2462
+ var x,
2463
+ y,
2464
+ clientX,
2465
+ plotY,
2466
+ isNull,
2467
+ low = false,
2468
+ chartDestroyed = typeof chart.index === 'undefined',
2469
+ isYInside = true;
2470
+ if (typeof d === 'undefined') {
2471
+ return true;
2472
+ }
2473
+ if (!chartDestroyed) {
2474
+ if (useRaw) {
2475
+ x = d[0];
2476
+ y = d[1];
2477
+ }
2478
+ else {
2479
+ x = d;
2480
+ y = yData[i];
2481
+ }
2482
+ // Resolve low and high for range series
2483
+ if (isRange) {
2484
+ if (useRaw) {
2485
+ y = d.slice(1, 3);
2486
+ }
2487
+ low = y[0];
2488
+ y = y[1];
2489
+ }
2490
+ else if (isStacked) {
2491
+ x = d.x;
2492
+ y = d.stackY;
2493
+ low = y - d.y;
2494
+ }
2495
+ isNull = y === null;
2496
+ // Optimize for scatter zooming
2497
+ if (!requireSorting) {
2498
+ isYInside = y >= yMin && y <= yMax;
2499
+ }
2500
+ if (!isNull && x >= xMin && x <= xMax && isYInside) {
2501
+ clientX = xAxis.toPixels(x, true);
2502
+ if (sampling) {
2503
+ if (typeof minI === 'undefined' ||
2504
+ clientX === lastClientX) {
2505
+ if (!isRange) {
2506
+ low = y;
2507
+ }
2508
+ if (typeof maxI === 'undefined' ||
2509
+ y > maxVal) {
2510
+ maxVal = y;
2511
+ maxI = i;
2512
+ }
2513
+ if (typeof minI === 'undefined' ||
2514
+ low < minVal) {
2515
+ minVal = low;
2516
+ minI = i;
2517
+ }
2518
+ }
2519
+ // Add points and reset
2520
+ if (clientX !== lastClientX) {
2521
+ // maxI is number too:
2522
+ if (typeof minI !== 'undefined') {
2523
+ plotY =
2524
+ yAxis.toPixels(maxVal, true);
2525
+ yBottom =
2526
+ yAxis.toPixels(minVal, true);
2527
+ addKDPoint(clientX, plotY, maxI);
2528
+ if (yBottom !== plotY) {
2529
+ addKDPoint(clientX, yBottom, minI);
2530
+ }
2531
+ }
2532
+ minI = maxI = void 0;
2533
+ lastClientX = clientX;
2534
+ }
2535
+ }
2536
+ else {
2537
+ plotY = Math.ceil(yAxis.toPixels(y, true));
2538
+ addKDPoint(clientX, plotY, i);
2539
+ }
2540
+ }
2541
+ }
2542
+ return !chartDestroyed;
2543
+ }
2544
+ /**
2545
+ * @private
2546
+ */
2547
+ function doneProcessing() {
2548
+ fireEvent(series, 'renderedCanvas');
2549
+ // Go back to prototype, ready to build
2550
+ delete series.buildKDTree;
2551
+ series.buildKDTree();
2552
+ if (boostOptions.debug.timeKDTree) {
2553
+ console.timeEnd('kd tree building'); // eslint-disable-line no-console
2554
+ }
2555
+ }
2556
+ // Loop over the points to build the k-d tree - skip this if
2557
+ // exporting
2558
+ if (!chart.renderer.forExport) {
2559
+ if (boostOptions.debug.timeKDTree) {
2560
+ console.time('kd tree building'); // eslint-disable-line no-console
2561
+ }
2562
+ eachAsync(isStacked ? series.data : (xData || rawData), processPoint, doneProcessing);
2563
+ }
2564
+ }
2565
+ });
2566
+ /*
2567
+ * We need to handle heatmaps separatly, since we can't perform the
2568
+ * size/color calculations in the shader easily.
2569
+ *
2570
+ * This likely needs future optimization.
2571
+ */
2572
+ ['heatmap', 'treemap'].forEach(function (t) {
2573
+ if (seriesTypes[t]) {
2574
+ wrap(seriesTypes[t].prototype, 'drawPoints', pointDrawHandler);
2575
+ }
2576
+ });
2577
+ /* eslint-disable no-invalid-this */
2578
+ if (seriesTypes.bubble) {
2579
+ // By default, the bubble series does not use the KD-tree, so force it
2580
+ // to.
2581
+ delete seriesTypes.bubble.prototype.buildKDTree;
2582
+ // seriesTypes.bubble.prototype.directTouch = false;
2583
+ // Needed for markers to work correctly
2584
+ wrap(seriesTypes.bubble.prototype, 'markerAttribs', function (proceed) {
2585
+ if (this.isSeriesBoosting) {
2586
+ return false;
2587
+ }
2588
+ return proceed.apply(this, [].slice.call(arguments, 1));
2589
+ });
2590
+ }
2591
+ seriesTypes.scatter.prototype.fill = true;
2592
+ extend(seriesTypes.area.prototype, {
2593
+ fill: true,
2594
+ fillOpacity: true,
2595
+ sampling: true
2596
+ });
2597
+ extend(seriesTypes.column.prototype, {
2598
+ fill: true,
2599
+ sampling: true
2600
+ });
2601
+ Chart.prototype.propsRequireUpdateSeries.push('boost');
2602
+ // Take care of the canvas blitting
2603
+ Chart.prototype.callbacks.push(function (chart) {
2604
+ /**
2605
+ * Convert chart-level canvas to image.
2606
+ * @private
2607
+ */
2608
+ function canvasToSVG() {
2609
+ if (chart.ogl && chart.isChartSeriesBoosting()) {
2610
+ chart.ogl.render(chart);
2611
+ }
2612
+ }
2613
+ /**
2614
+ * Clear chart-level canvas.
2615
+ * @private
2616
+ */
2617
+ function preRender() {
2618
+ // Reset force state
2619
+ chart.boostForceChartBoost = void 0;
2620
+ chart.boostForceChartBoost = shouldForceChartSeriesBoosting(chart);
2621
+ chart.isBoosting = false;
2622
+ if (!chart.isChartSeriesBoosting() && chart.didBoost) {
2623
+ chart.didBoost = false;
2624
+ }
2625
+ // Clear the canvas
2626
+ if (chart.boostClear) {
2627
+ chart.boostClear();
2628
+ }
2629
+ if (chart.canvas && chart.ogl && chart.isChartSeriesBoosting()) {
2630
+ chart.didBoost = true;
2631
+ // Allocate
2632
+ chart.ogl.allocateBuffer(chart);
2633
+ }
2634
+ // see #6518 + #6739
2635
+ if (chart.markerGroup &&
2636
+ chart.xAxis &&
2637
+ chart.xAxis.length > 0 &&
2638
+ chart.yAxis &&
2639
+ chart.yAxis.length > 0) {
2640
+ chart.markerGroup.translate(chart.xAxis[0].pos, chart.yAxis[0].pos);
2641
+ }
2642
+ }
2643
+ addEvent(chart, 'predraw', preRender);
2644
+ addEvent(chart, 'render', canvasToSVG);
2645
+ // addEvent(chart, 'zoom', function () {
2646
+ // chart.boostForceChartBoost =
2647
+ // shouldForceChartSeriesBoosting(chart);
2648
+ // });
2649
+ var prevX = -1;
2650
+ var prevY = -1;
2651
+ addEvent(chart.pointer, 'afterGetHoverData', function () {
2652
+ var series = chart.hoverSeries;
2653
+ if (chart.markerGroup && series) {
2654
+ var xAxis = chart.inverted ? series.yAxis : series.xAxis;
2655
+ var yAxis = chart.inverted ? series.xAxis : series.yAxis;
2656
+ if ((xAxis && xAxis.pos !== prevX) ||
2657
+ (yAxis && yAxis.pos !== prevY)) {
2658
+ // #10464: Keep the marker group position in sync with the
2659
+ // position of the hovered series axes since there is only
2660
+ // one shared marker group when boosting.
2661
+ chart.markerGroup.translate(xAxis.pos, yAxis.pos);
2662
+ prevX = xAxis.pos;
2663
+ prevY = yAxis.pos;
2664
+ }
2665
+ }
2666
+ });
2667
+ });
2668
+ /* eslint-enable no-invalid-this */
2669
+ }
2670
+
2671
+ return init;
2672
+ });
2673
+ _registerModule(_modules, 'Extensions/BoostCanvas.js', [_modules['Core/Chart/Chart.js'], _modules['Core/Color/Color.js'], _modules['Core/Globals.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js']], function (Chart, Color, H, Series, SeriesRegistry, U) {
2674
+ /* *
2675
+ *
2676
+ * License: www.highcharts.com/license
2677
+ * Author: Torstein Honsi, Christer Vasseng
2678
+ *
2679
+ * This module serves as a fallback for the Boost module in IE9 and IE10. Newer
2680
+ * browsers support WebGL which is faster.
2681
+ *
2682
+ * It is recommended to include this module in conditional comments targeting
2683
+ * IE9 and IE10.
2684
+ *
2685
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
2686
+ *
2687
+ * */
2688
+ var color = Color.parse;
2689
+ var doc = H.doc,
2690
+ noop = H.noop;
2691
+ var seriesTypes = SeriesRegistry.seriesTypes;
2692
+ var addEvent = U.addEvent,
2693
+ extend = U.extend,
2694
+ fireEvent = U.fireEvent,
2695
+ isNumber = U.isNumber,
2696
+ merge = U.merge,
2697
+ pick = U.pick,
2698
+ wrap = U.wrap;
2699
+ var CHUNK_SIZE = 50000,
2700
+ destroyLoadingDiv;
2701
+ /* eslint-disable no-invalid-this, valid-jsdoc */
2702
+ /**
2703
+ * Initialize the canvas boost.
2704
+ *
2705
+ * @function Highcharts.initCanvasBoost
2706
+ */
2707
+ var initCanvasBoost = function () {
2708
+ if (H.seriesTypes.heatmap) {
2709
+ wrap(H.seriesTypes.heatmap.prototype, 'drawPoints',
2710
+ function () {
2711
+ var chart = this.chart,
2712
+ ctx = this.getContext(),
2713
+ inverted = this.chart.inverted,
2714
+ xAxis = this.xAxis,
2715
+ yAxis = this.yAxis;
2716
+ if (ctx) {
2717
+ // draw the columns
2718
+ this.points.forEach(function (point) {
2719
+ var plotY = point.plotY,
2720
+ pointAttr;
2721
+ if (typeof plotY !== 'undefined' &&
2722
+ !isNaN(plotY) &&
2723
+ point.y !== null &&
2724
+ ctx) {
2725
+ var _a = point.shapeArgs || {},
2726
+ _b = _a.x,
2727
+ x = _b === void 0 ? 0 : _b,
2728
+ _c = _a.y,
2729
+ y = _c === void 0 ? 0 : _c,
2730
+ _d = _a.width,
2731
+ width = _d === void 0 ? 0 : _d,
2732
+ _e = _a.height,
2733
+ height = _e === void 0 ? 0 : _e;
2734
+ if (!chart.styledMode) {
2735
+ pointAttr = point.series.pointAttribs(point);
2736
+ }
2737
+ else {
2738
+ pointAttr = point.series.colorAttribs(point);
2739
+ }
2740
+ ctx.fillStyle = pointAttr.fill;
2741
+ if (inverted) {
2742
+ ctx.fillRect(yAxis.len - y + xAxis.left, xAxis.len - x + yAxis.top, -height, -width);
2743
+ }
2744
+ else {
2745
+ ctx.fillRect(x + xAxis.left, y + yAxis.top, width, height);
2746
+ }
2747
+ }
2748
+ });
2749
+ this.canvasToSVG();
2750
+ }
2751
+ else {
2752
+ this.chart.showLoading('Your browser doesn\'t support HTML5 canvas, <br>' +
2753
+ 'please use a modern browser');
2754
+ // Uncomment this to provide low-level (slow) support in oldIE.
2755
+ // It will cause script errors on charts with more than a few
2756
+ // thousand points.
2757
+ // arguments[0].call(this);
2758
+ }
2759
+ });
2760
+ }
2761
+ extend(Series.prototype, {
2762
+ /**
2763
+ * Create a hidden canvas to draw the graph on. The contents is later
2764
+ * copied over to an SVG image element.
2765
+ *
2766
+ * @private
2767
+ * @function Highcharts.Series#getContext
2768
+ */
2769
+ getContext: function () {
2770
+ var chart = this.chart,
2771
+ width = chart.chartWidth,
2772
+ height = chart.chartHeight,
2773
+ targetGroup = chart.seriesGroup || this.group,
2774
+ target = this,
2775
+ ctx,
2776
+ swapXY = function (proceed,
2777
+ x,
2778
+ y,
2779
+ a,
2780
+ b,
2781
+ c,
2782
+ d) {
2783
+ proceed.call(this,
2784
+ y,
2785
+ x,
2786
+ a,
2787
+ b,
2788
+ c,
2789
+ d);
2790
+ };
2791
+ if (chart.isChartSeriesBoosting()) {
2792
+ target = chart;
2793
+ targetGroup = chart.seriesGroup;
2794
+ }
2795
+ ctx = target.ctx;
2796
+ if (!target.canvas) {
2797
+ target.canvas = doc.createElement('canvas');
2798
+ target.renderTarget = chart.renderer
2799
+ .image('', 0, 0, width, height)
2800
+ .addClass('highcharts-boost-canvas')
2801
+ .add(targetGroup);
2802
+ target.ctx = ctx = target.canvas.getContext('2d');
2803
+ if (chart.inverted) {
2804
+ ['moveTo', 'lineTo', 'rect', 'arc'].forEach(function (fn) {
2805
+ wrap(ctx, fn, swapXY);
2806
+ });
2807
+ }
2808
+ target.boostCopy = function () {
2809
+ target.renderTarget.attr({
2810
+ href: target.canvas.toDataURL('image/png')
2811
+ });
2812
+ };
2813
+ target.boostClear = function () {
2814
+ ctx.clearRect(0, 0, target.canvas.width, target.canvas.height);
2815
+ if (target === this) {
2816
+ target.renderTarget.attr({ href: '' });
2817
+ }
2818
+ };
2819
+ target.boostClipRect = chart.renderer.clipRect();
2820
+ target.renderTarget.clip(target.boostClipRect);
2821
+ }
2822
+ else if (!(target instanceof Chart)) {
2823
+ // ctx.clearRect(0, 0, width, height);
2824
+ }
2825
+ if (target.canvas.width !== width) {
2826
+ target.canvas.width = width;
2827
+ }
2828
+ if (target.canvas.height !== height) {
2829
+ target.canvas.height = height;
2830
+ }
2831
+ target.renderTarget.attr({
2832
+ x: 0,
2833
+ y: 0,
2834
+ width: width,
2835
+ height: height,
2836
+ style: 'pointer-events: none',
2837
+ href: ''
2838
+ });
2839
+ target.boostClipRect.attr(chart.getBoostClipRect(target));
2840
+ return ctx;
2841
+ },
2842
+ /**
2843
+ * Draw the canvas image inside an SVG image
2844
+ *
2845
+ * @private
2846
+ * @function Highcharts.Series#canvasToSVG
2847
+ */
2848
+ canvasToSVG: function () {
2849
+ if (!this.chart.isChartSeriesBoosting()) {
2850
+ if (this.boostCopy || this.chart.boostCopy) {
2851
+ (this.boostCopy || this.chart.boostCopy)();
2852
+ }
2853
+ }
2854
+ else {
2855
+ if (this.boostClear) {
2856
+ this.boostClear();
2857
+ }
2858
+ }
2859
+ },
2860
+ cvsLineTo: function (ctx, clientX, plotY) {
2861
+ ctx.lineTo(clientX, plotY);
2862
+ },
2863
+ renderCanvas: function () {
2864
+ var series = this, options = series.options, chart = series.chart, xAxis = this.xAxis, yAxis = this.yAxis, activeBoostSettings = chart.options.boost || {}, boostSettings = {
2865
+ timeRendering: activeBoostSettings.timeRendering || false,
2866
+ timeSeriesProcessing: activeBoostSettings.timeSeriesProcessing || false,
2867
+ timeSetup: activeBoostSettings.timeSetup || false
2868
+ }, ctx, c = 0, xData = series.processedXData, yData = series.processedYData, rawData = options.data, xExtremes = xAxis.getExtremes(), xMin = xExtremes.min, xMax = xExtremes.max, yExtremes = yAxis.getExtremes(), yMin = yExtremes.min, yMax = yExtremes.max, pointTaken = {}, lastClientX, sampling = !!series.sampling, points, r = options.marker && options.marker.radius, cvsDrawPoint = this.cvsDrawPoint, cvsLineTo = options.lineWidth ? this.cvsLineTo : void 0, cvsMarker = (r && r <= 1 ?
2869
+ this.cvsMarkerSquare :
2870
+ this.cvsMarkerCircle), strokeBatch = this.cvsStrokeBatch || 1000, enableMouseTracking = options.enableMouseTracking !== false, lastPoint, threshold = options.threshold, yBottom = yAxis.getThreshold(threshold), hasThreshold = isNumber(threshold), translatedThreshold = yBottom, doFill = this.fill, isRange = (series.pointArrayMap &&
2871
+ series.pointArrayMap.join(',') === 'low,high'), isStacked = !!options.stacking, cropStart = series.cropStart || 0, loadingOptions = chart.options.loading, requireSorting = series.requireSorting, wasNull, connectNulls = options.connectNulls, useRaw = !xData, minVal, maxVal, minI, maxI, index, sdata = (isStacked ?
2872
+ series.data :
2873
+ (xData || rawData)), fillColor = (series.fillOpacity ?
2874
+ Color.parse(series.color).setOpacity(pick(options.fillOpacity, 0.75)).get() :
2875
+ series.color),
2876
+ //
2877
+ stroke = function () {
2878
+ if (doFill) {
2879
+ ctx.fillStyle = fillColor;
2880
+ ctx.fill();
2881
+ }
2882
+ else {
2883
+ ctx.strokeStyle = series.color;
2884
+ ctx.lineWidth = options.lineWidth;
2885
+ ctx.stroke();
2886
+ }
2887
+ },
2888
+ //
2889
+ drawPoint = function (clientX, plotY, yBottom, i) {
2890
+ if (c === 0) {
2891
+ ctx.beginPath();
2892
+ if (cvsLineTo) {
2893
+ ctx.lineJoin = 'round';
2894
+ }
2895
+ }
2896
+ if (chart.scroller &&
2897
+ series.options.className ===
2898
+ 'highcharts-navigator-series') {
2899
+ plotY += chart.scroller.top;
2900
+ if (yBottom) {
2901
+ yBottom += chart.scroller.top;
2902
+ }
2903
+ }
2904
+ else {
2905
+ plotY += chart.plotTop;
2906
+ }
2907
+ clientX += chart.plotLeft;
2908
+ if (wasNull) {
2909
+ ctx.moveTo(clientX, plotY);
2910
+ }
2911
+ else {
2912
+ if (cvsDrawPoint) {
2913
+ cvsDrawPoint(ctx, clientX, plotY, yBottom, lastPoint);
2914
+ }
2915
+ else if (cvsLineTo) {
2916
+ cvsLineTo(ctx, clientX, plotY);
2917
+ }
2918
+ else if (cvsMarker) {
2919
+ cvsMarker.call(series, ctx, clientX, plotY, r, i);
2920
+ }
2921
+ }
2922
+ // We need to stroke the line for every 1000 pixels. It will
2923
+ // crash the browser memory use if we stroke too
2924
+ // infrequently.
2925
+ c = c + 1;
2926
+ if (c === strokeBatch) {
2927
+ stroke();
2928
+ c = 0;
2929
+ }
2930
+ // Area charts need to keep track of the last point
2931
+ lastPoint = {
2932
+ clientX: clientX,
2933
+ plotY: plotY,
2934
+ yBottom: yBottom
2935
+ };
2936
+ },
2937
+ //
2938
+ compareX = options.findNearestPointBy === 'x',
2939
+ //
2940
+ xDataFull = (this.xData ||
2941
+ this.options.xData ||
2942
+ this.processedXData ||
2943
+ false),
2944
+ //
2945
+ addKDPoint = function (clientX, plotY, i) {
2946
+ // Shaves off about 60ms compared to repeated concatenation
2947
+ index = compareX ? clientX : clientX + ',' + plotY;
2948
+ // The k-d tree requires series points.
2949
+ // Reduce the amount of points, since the time to build the
2950
+ // tree increases exponentially.
2951
+ if (enableMouseTracking && !pointTaken[index]) {
2952
+ pointTaken[index] = true;
2953
+ if (chart.inverted) {
2954
+ clientX = xAxis.len - clientX;
2955
+ plotY = yAxis.len - plotY;
2956
+ }
2957
+ points.push({
2958
+ x: xDataFull ?
2959
+ xDataFull[cropStart + i] :
2960
+ false,
2961
+ clientX: clientX,
2962
+ plotX: clientX,
2963
+ plotY: plotY,
2964
+ i: cropStart + i
2965
+ });
2966
+ }
2967
+ };
2968
+ if (this.renderTarget) {
2969
+ this.renderTarget.attr({ 'href': '' });
2970
+ }
2971
+ // If we are zooming out from SVG mode, destroy the graphics
2972
+ if (this.points || this.graph) {
2973
+ this.destroyGraphics();
2974
+ }
2975
+ // The group
2976
+ series.plotGroup('group', 'series', series.visible ? 'visible' : 'hidden', options.zIndex, chart.seriesGroup);
2977
+ series.markerGroup = series.group;
2978
+ addEvent(series, 'destroy', function () {
2979
+ // Prevent destroy twice
2980
+ series.markerGroup = null;
2981
+ });
2982
+ points = this.points = [];
2983
+ ctx = this.getContext();
2984
+ series.buildKDTree = noop; // Do not start building while drawing
2985
+ if (this.boostClear) {
2986
+ this.boostClear();
2987
+ }
2988
+ // if (this.canvas) {
2989
+ // ctx.clearRect(
2990
+ // 0,
2991
+ // 0,
2992
+ // this.canvas.width,
2993
+ // this.canvas.height
2994
+ // );
2995
+ // }
2996
+ if (!this.visible) {
2997
+ return;
2998
+ }
2999
+ // Display a loading indicator
3000
+ if (rawData.length > 99999) {
3001
+ chart.options.loading = merge(loadingOptions, {
3002
+ labelStyle: {
3003
+ backgroundColor: color("#ffffff" /* backgroundColor */).setOpacity(0.75).get(),
3004
+ padding: '1em',
3005
+ borderRadius: '0.5em'
3006
+ },
3007
+ style: {
3008
+ backgroundColor: 'none',
3009
+ opacity: 1
3010
+ }
3011
+ });
3012
+ U.clearTimeout(destroyLoadingDiv);
3013
+ chart.showLoading('Drawing...');
3014
+ chart.options.loading = loadingOptions; // reset
3015
+ }
3016
+ if (boostSettings.timeRendering) {
3017
+ console.time('canvas rendering'); // eslint-disable-line no-console
3018
+ }
3019
+ // Loop over the points
3020
+ H.eachAsync(sdata, function (d, i) {
3021
+ var x,
3022
+ y,
3023
+ clientX,
3024
+ plotY,
3025
+ isNull,
3026
+ low,
3027
+ isNextInside = false,
3028
+ isPrevInside = false,
3029
+ nx = false,
3030
+ px = false,
3031
+ chartDestroyed = typeof chart.index === 'undefined',
3032
+ isYInside = true;
3033
+ if (!chartDestroyed) {
3034
+ if (useRaw) {
3035
+ x = d[0];
3036
+ y = d[1];
3037
+ if (sdata[i + 1]) {
3038
+ nx = sdata[i + 1][0];
3039
+ }
3040
+ if (sdata[i - 1]) {
3041
+ px = sdata[i - 1][0];
3042
+ }
3043
+ }
3044
+ else {
3045
+ x = d;
3046
+ y = yData[i];
3047
+ if (sdata[i + 1]) {
3048
+ nx = sdata[i + 1];
3049
+ }
3050
+ if (sdata[i - 1]) {
3051
+ px = sdata[i - 1];
3052
+ }
3053
+ }
3054
+ if (nx && nx >= xMin && nx <= xMax) {
3055
+ isNextInside = true;
3056
+ }
3057
+ if (px && px >= xMin && px <= xMax) {
3058
+ isPrevInside = true;
3059
+ }
3060
+ // Resolve low and high for range series
3061
+ if (isRange) {
3062
+ if (useRaw) {
3063
+ y = d.slice(1, 3);
3064
+ }
3065
+ low = y[0];
3066
+ y = y[1];
3067
+ }
3068
+ else if (isStacked) {
3069
+ x = d.x;
3070
+ y = d.stackY;
3071
+ low = y - d.y;
3072
+ }
3073
+ isNull = y === null;
3074
+ // Optimize for scatter zooming
3075
+ if (!requireSorting) {
3076
+ isYInside = y >= yMin && y <= yMax;
3077
+ }
3078
+ if (!isNull &&
3079
+ ((x >= xMin && x <= xMax && isYInside) ||
3080
+ (isNextInside || isPrevInside))) {
3081
+ clientX = Math.round(xAxis.toPixels(x, true));
3082
+ if (sampling) {
3083
+ if (typeof minI === 'undefined' ||
3084
+ clientX === lastClientX) {
3085
+ if (!isRange) {
3086
+ low = y;
3087
+ }
3088
+ if (typeof maxI === 'undefined' || y > maxVal) {
3089
+ maxVal = y;
3090
+ maxI = i;
3091
+ }
3092
+ if (typeof minI === 'undefined' ||
3093
+ low < minVal) {
3094
+ minVal = low;
3095
+ minI = i;
3096
+ }
3097
+ }
3098
+ // Add points and reset
3099
+ if (clientX !== lastClientX) {
3100
+ // maxI also a number:
3101
+ if (typeof minI !== 'undefined') {
3102
+ plotY = yAxis.toPixels(maxVal, true);
3103
+ yBottom = yAxis.toPixels(minVal, true);
3104
+ drawPoint(clientX, hasThreshold ?
3105
+ Math.min(plotY, translatedThreshold) : plotY, hasThreshold ?
3106
+ Math.max(yBottom, translatedThreshold) : yBottom, i);
3107
+ addKDPoint(clientX, plotY, maxI);
3108
+ if (yBottom !== plotY) {
3109
+ addKDPoint(clientX, yBottom, minI);
3110
+ }
3111
+ }
3112
+ minI = maxI = void 0;
3113
+ lastClientX = clientX;
3114
+ }
3115
+ }
3116
+ else {
3117
+ plotY = Math.round(yAxis.toPixels(y, true));
3118
+ drawPoint(clientX, plotY, yBottom, i);
3119
+ addKDPoint(clientX, plotY, i);
3120
+ }
3121
+ }
3122
+ wasNull = isNull && !connectNulls;
3123
+ if (i % CHUNK_SIZE === 0) {
3124
+ if (series.boostCopy || series.chart.boostCopy) {
3125
+ (series.boostCopy || series.chart.boostCopy)();
3126
+ }
3127
+ }
3128
+ }
3129
+ return !chartDestroyed;
3130
+ }, function () {
3131
+ var loadingDiv = chart.loadingDiv,
3132
+ loadingShown = chart.loadingShown;
3133
+ stroke();
3134
+ // if (series.boostCopy || series.chart.boostCopy) {
3135
+ // (series.boostCopy || series.chart.boostCopy)();
3136
+ // }
3137
+ series.canvasToSVG();
3138
+ if (boostSettings.timeRendering) {
3139
+ console.timeEnd('canvas rendering'); // eslint-disable-line no-console
3140
+ }
3141
+ fireEvent(series, 'renderedCanvas');
3142
+ // Do not use chart.hideLoading, as it runs JS animation and
3143
+ // will be blocked by buildKDTree. CSS animation looks good, but
3144
+ // then it must be deleted in timeout. If we add the module to
3145
+ // core, change hideLoading so we can skip this block.
3146
+ if (loadingShown) {
3147
+ extend(loadingDiv.style, {
3148
+ transition: 'opacity 250ms',
3149
+ opacity: 0
3150
+ });
3151
+ chart.loadingShown = false;
3152
+ destroyLoadingDiv = setTimeout(function () {
3153
+ if (loadingDiv.parentNode) { // In exporting it is falsy
3154
+ loadingDiv.parentNode.removeChild(loadingDiv);
3155
+ }
3156
+ chart.loadingDiv = chart.loadingSpan = null;
3157
+ }, 250);
3158
+ }
3159
+ // Go back to prototype, ready to build
3160
+ delete series.buildKDTree;
3161
+ series.buildKDTree();
3162
+ // Don't do async on export, the exportChart, getSVGForExport and
3163
+ // getSVG methods are not chained for it.
3164
+ }, chart.renderer.forExport ? Number.MAX_VALUE : void 0);
3165
+ }
3166
+ });
3167
+ seriesTypes.scatter.prototype.cvsMarkerCircle = function (ctx, clientX, plotY, r) {
3168
+ ctx.moveTo(clientX, plotY);
3169
+ ctx.arc(clientX, plotY, r, 0, 2 * Math.PI, false);
3170
+ };
3171
+ // Rect is twice as fast as arc, should be used for small markers
3172
+ seriesTypes.scatter.prototype.cvsMarkerSquare = function (ctx, clientX, plotY, r) {
3173
+ ctx.rect(clientX - r, plotY - r, r * 2, r * 2);
3174
+ };
3175
+ seriesTypes.scatter.prototype.fill = true;
3176
+ if (seriesTypes.bubble) {
3177
+ seriesTypes.bubble.prototype.cvsMarkerCircle = function (ctx, clientX, plotY, r, i) {
3178
+ ctx.moveTo(clientX, plotY);
3179
+ ctx.arc(clientX, plotY, this.radii && this.radii[i], 0, 2 * Math.PI, false);
3180
+ };
3181
+ seriesTypes.bubble.prototype.cvsStrokeBatch = 1;
3182
+ }
3183
+ extend(seriesTypes.area.prototype, {
3184
+ cvsDrawPoint: function (ctx, clientX, plotY, yBottom, lastPoint) {
3185
+ if (lastPoint && clientX !== lastPoint.clientX) {
3186
+ ctx.moveTo(lastPoint.clientX, lastPoint.yBottom);
3187
+ ctx.lineTo(lastPoint.clientX, lastPoint.plotY);
3188
+ ctx.lineTo(clientX, plotY);
3189
+ ctx.lineTo(clientX, yBottom);
3190
+ }
3191
+ },
3192
+ fill: true,
3193
+ fillOpacity: true,
3194
+ sampling: true
3195
+ });
3196
+ extend(seriesTypes.column.prototype, {
3197
+ cvsDrawPoint: function (ctx, clientX, plotY, yBottom) {
3198
+ ctx.rect(clientX - 1, plotY, 1, yBottom - plotY);
3199
+ },
3200
+ fill: true,
3201
+ sampling: true
3202
+ });
3203
+ Chart.prototype.callbacks.push(function (chart) {
3204
+ /**
3205
+ * @private
3206
+ */
3207
+ function canvasToSVG() {
3208
+ if (chart.boostCopy) {
3209
+ chart.boostCopy();
3210
+ }
3211
+ }
3212
+ /**
3213
+ * @private
3214
+ */
3215
+ function clear() {
3216
+ if (chart.renderTarget) {
3217
+ chart.renderTarget.attr({ href: '' });
3218
+ }
3219
+ if (chart.canvas) {
3220
+ chart.canvas.getContext('2d').clearRect(0, 0, chart.canvas.width, chart.canvas.height);
3221
+ }
3222
+ }
3223
+ addEvent(chart, 'predraw', clear);
3224
+ addEvent(chart, 'render', canvasToSVG);
3225
+ });
3226
+ };
3227
+
3228
+ return initCanvasBoost;
3229
+ });
3230
+ _registerModule(_modules, 'Extensions/Boost/BoostOverrides.js', [_modules['Core/Chart/Chart.js'], _modules['Core/DefaultOptions.js'], _modules['Core/Series/Point.js'], _modules['Core/Series/Series.js'], _modules['Core/Series/SeriesRegistry.js'], _modules['Core/Utilities.js'], _modules['Extensions/Boost/BoostUtils.js'], _modules['Extensions/Boost/Boostables.js'], _modules['Extensions/Boost/BoostableMap.js']], function (Chart, D, Point, Series, SeriesRegistry, U, butils, boostable, boostableMap) {
3231
+ /* *
3232
+ *
3233
+ * Copyright (c) 2019-2021 Highsoft AS
3234
+ *
3235
+ * Boost module: stripped-down renderer for higher performance
3236
+ *
3237
+ * License: highcharts.com/license
3238
+ *
3239
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
3240
+ *
3241
+ * */
3242
+ var getOptions = D.getOptions;
3243
+ var seriesTypes = SeriesRegistry.seriesTypes;
3244
+ var addEvent = U.addEvent,
3245
+ error = U.error,
3246
+ isArray = U.isArray,
3247
+ isNumber = U.isNumber,
3248
+ pick = U.pick,
3249
+ wrap = U.wrap;
3250
+ var boostEnabled = butils.boostEnabled,
3251
+ shouldForceChartSeriesBoosting = butils.shouldForceChartSeriesBoosting,
3252
+ plotOptions = getOptions().plotOptions;
3253
+ /**
3254
+ * Returns true if the chart is in series boost mode.
3255
+ *
3256
+ * @function Highcharts.Chart#isChartSeriesBoosting
3257
+ *
3258
+ * @param {Highcharts.Chart} chart
3259
+ * the chart to check
3260
+ *
3261
+ * @return {boolean}
3262
+ * true if the chart is in series boost mode
3263
+ */
3264
+ Chart.prototype.isChartSeriesBoosting = function () {
3265
+ var isSeriesBoosting,
3266
+ threshold = pick(this.options.boost && this.options.boost.seriesThreshold, 50);
3267
+ isSeriesBoosting = threshold <= this.series.length ||
3268
+ shouldForceChartSeriesBoosting(this);
3269
+ return isSeriesBoosting;
3270
+ };
3271
+ /* eslint-disable valid-jsdoc */
3272
+ /**
3273
+ * Get the clip rectangle for a target, either a series or the chart. For the
3274
+ * chart, we need to consider the maximum extent of its Y axes, in case of
3275
+ * Highcharts Stock panes and navigator.
3276
+ *
3277
+ * @private
3278
+ * @function Highcharts.Chart#getBoostClipRect
3279
+ */
3280
+ Chart.prototype.getBoostClipRect = function (target) {
3281
+ var clipBox = {
3282
+ x: this.plotLeft,
3283
+ y: this.plotTop,
3284
+ width: this.plotWidth,
3285
+ height: this.plotHeight
3286
+ };
3287
+ if (target === this) {
3288
+ var verticalAxes = this.inverted ? this.xAxis : this.yAxis; // #14444
3289
+ if (verticalAxes.length <= 1) {
3290
+ clipBox.y = Math.min(verticalAxes[0].pos,
3291
+ clipBox.y);
3292
+ clipBox.height = (verticalAxes[0].pos -
3293
+ this.plotTop +
3294
+ verticalAxes[0].len);
3295
+ }
3296
+ else {
3297
+ clipBox.height = this.plotHeight;
3298
+ }
3299
+ }
3300
+ return clipBox;
3301
+ };
3302
+ /**
3303
+ * Return a full Point object based on the index.
3304
+ * The boost module uses stripped point objects for performance reasons.
3305
+ *
3306
+ * @function Highcharts.Series#getPoint
3307
+ *
3308
+ * @param {object|Highcharts.Point} boostPoint
3309
+ * A stripped-down point object
3310
+ *
3311
+ * @return {Highcharts.Point}
3312
+ * A Point object as per https://api.highcharts.com/highcharts#Point
3313
+ */
3314
+ Series.prototype.getPoint = function (boostPoint) {
3315
+ var point = boostPoint,
3316
+ xData = (this.xData || this.options.xData || this.processedXData ||
3317
+ false);
3318
+ if (boostPoint && !(boostPoint instanceof this.pointClass)) {
3319
+ point = (new this.pointClass()).init(// eslint-disable-line new-cap
3320
+ this, this.options.data[boostPoint.i], xData ? xData[boostPoint.i] : void 0);
3321
+ point.category = pick(this.xAxis.categories ?
3322
+ this.xAxis.categories[point.x] :
3323
+ point.x, // @todo simplify
3324
+ point.x);
3325
+ point.dist = boostPoint.dist;
3326
+ point.distX = boostPoint.distX;
3327
+ point.plotX = boostPoint.plotX;
3328
+ point.plotY = boostPoint.plotY;
3329
+ point.index = boostPoint.i;
3330
+ point.isInside = this.isPointInside(boostPoint);
3331
+ }
3332
+ return point;
3333
+ };
3334
+ /* eslint-disable no-invalid-this */
3335
+ // Return a point instance from the k-d-tree
3336
+ wrap(Series.prototype, 'searchPoint', function (proceed) {
3337
+ return this.getPoint(proceed.apply(this, [].slice.call(arguments, 1)));
3338
+ });
3339
+ // For inverted series, we need to swap X-Y values before running base methods
3340
+ wrap(Point.prototype, 'haloPath', function (proceed) {
3341
+ var halo,
3342
+ point = this,
3343
+ series = point.series,
3344
+ chart = series.chart,
3345
+ plotX = point.plotX,
3346
+ plotY = point.plotY,
3347
+ inverted = chart.inverted;
3348
+ if (series.isSeriesBoosting && inverted) {
3349
+ point.plotX = series.yAxis.len - plotY;
3350
+ point.plotY = series.xAxis.len - plotX;
3351
+ }
3352
+ halo = proceed.apply(this, Array.prototype.slice.call(arguments, 1));
3353
+ if (series.isSeriesBoosting && inverted) {
3354
+ point.plotX = plotX;
3355
+ point.plotY = plotY;
3356
+ }
3357
+ return halo;
3358
+ });
3359
+ wrap(Series.prototype, 'markerAttribs', function (proceed, point) {
3360
+ var attribs,
3361
+ series = this,
3362
+ chart = series.chart,
3363
+ plotX = point.plotX,
3364
+ plotY = point.plotY,
3365
+ inverted = chart.inverted;
3366
+ if (series.isSeriesBoosting && inverted) {
3367
+ point.plotX = series.yAxis.len - plotY;
3368
+ point.plotY = series.xAxis.len - plotX;
3369
+ }
3370
+ attribs = proceed.apply(this, Array.prototype.slice.call(arguments, 1));
3371
+ if (series.isSeriesBoosting && inverted) {
3372
+ point.plotX = plotX;
3373
+ point.plotY = plotY;
3374
+ }
3375
+ return attribs;
3376
+ });
3377
+ /*
3378
+ * Extend series.destroy to also remove the fake k-d-tree points (#5137).
3379
+ * Normally this is handled by Series.destroy that calls Point.destroy,
3380
+ * but the fake search points are not registered like that.
3381
+ */
3382
+ addEvent(Series, 'destroy', function () {
3383
+ var series = this,
3384
+ chart = series.chart;
3385
+ if (chart.markerGroup === series.markerGroup) {
3386
+ series.markerGroup = null;
3387
+ }
3388
+ if (chart.hoverPoints) {
3389
+ chart.hoverPoints = chart.hoverPoints.filter(function (point) {
3390
+ return point.series === series;
3391
+ });
3392
+ }
3393
+ if (chart.hoverPoint && chart.hoverPoint.series === series) {
3394
+ chart.hoverPoint = null;
3395
+ }
3396
+ });
3397
+ /*
3398
+ * Do not compute extremes when min and max are set.
3399
+ * If we use this in the core, we can add the hook
3400
+ * to hasExtremes to the methods directly.
3401
+ */
3402
+ wrap(Series.prototype, 'getExtremes', function (proceed) {
3403
+ if (!this.isSeriesBoosting || (!this.hasExtremes || !this.hasExtremes())) {
3404
+ return proceed.apply(this, Array.prototype.slice.call(arguments, 1));
3405
+ }
3406
+ return {};
3407
+ });
3408
+ /*
3409
+ * Override a bunch of methods the same way. If the number of points is
3410
+ * below the threshold, run the original method. If not, check for a
3411
+ * canvas version or do nothing.
3412
+ *
3413
+ * Note that we're not overriding any of these for heatmaps.
3414
+ */
3415
+ [
3416
+ 'translate',
3417
+ 'generatePoints',
3418
+ 'drawTracker',
3419
+ 'drawPoints',
3420
+ 'render'
3421
+ ].forEach(function (method) {
3422
+ /**
3423
+ * @private
3424
+ */
3425
+ function branch(proceed) {
3426
+ var letItPass = this.options.stacking &&
3427
+ (method === 'translate' || method === 'generatePoints');
3428
+ if (!this.isSeriesBoosting ||
3429
+ letItPass ||
3430
+ !boostEnabled(this.chart) ||
3431
+ this.type === 'heatmap' ||
3432
+ this.type === 'treemap' ||
3433
+ !boostableMap[this.type] ||
3434
+ this.options.boostThreshold === 0) {
3435
+ proceed.call(this);
3436
+ // If a canvas version of the method exists, like renderCanvas(), run
3437
+ }
3438
+ else if (this[method + 'Canvas']) {
3439
+ this[method + 'Canvas']();
3440
+ }
3441
+ }
3442
+ wrap(Series.prototype, method, branch);
3443
+ // A special case for some types - their translate method is already wrapped
3444
+ if (method === 'translate') {
3445
+ [
3446
+ 'column',
3447
+ 'bar',
3448
+ 'arearange',
3449
+ 'columnrange',
3450
+ 'heatmap',
3451
+ 'treemap'
3452
+ ].forEach(function (type) {
3453
+ if (seriesTypes[type]) {
3454
+ wrap(seriesTypes[type].prototype, method, branch);
3455
+ }
3456
+ });
3457
+ }
3458
+ });
3459
+ // If the series is a heatmap or treemap, or if the series is not boosting
3460
+ // do the default behaviour. Otherwise, process if the series has no extremes.
3461
+ wrap(Series.prototype, 'processData', function (proceed) {
3462
+ var series = this;
3463
+ var dataToMeasure = this.options.data;
3464
+ /**
3465
+ * Used twice in this function, first on this.options.data, the second
3466
+ * time it runs the check again after processedXData is built.
3467
+ * If the data is going to be grouped, the series shouldn't be boosted.
3468
+ * @private
3469
+ */
3470
+ function getSeriesBoosting(data) {
3471
+ // Check if will be grouped.
3472
+ if (series.forceCrop) {
3473
+ return false;
3474
+ }
3475
+ return series.chart.isChartSeriesBoosting() || ((data ? data.length : 0) >=
3476
+ (series.options.boostThreshold || Number.MAX_VALUE));
3477
+ }
3478
+ if (boostEnabled(this.chart) && boostableMap[this.type]) {
3479
+ // If there are no extremes given in the options, we also need to
3480
+ // process the data to read the data extremes. If this is a heatmap, do
3481
+ // default behaviour.
3482
+ if (!getSeriesBoosting(dataToMeasure) || // First pass with options.data
3483
+ this.type === 'heatmap' ||
3484
+ this.type === 'treemap' ||
3485
+ this.options.stacking || // processedYData for the stack (#7481)
3486
+ !this.hasExtremes ||
3487
+ !this.hasExtremes(true)) {
3488
+ proceed.apply(this, Array.prototype.slice.call(arguments, 1));
3489
+ dataToMeasure = this.processedXData;
3490
+ }
3491
+ // Set the isBoosting flag, second pass with processedXData to see if we
3492
+ // have zoomed.
3493
+ this.isSeriesBoosting = getSeriesBoosting(dataToMeasure);
3494
+ // Enter or exit boost mode
3495
+ if (this.isSeriesBoosting) {
3496
+ // Force turbo-mode:
3497
+ var firstPoint = void 0;
3498
+ if (this.options.data && this.options.data.length) {
3499
+ firstPoint = this.getFirstValidPoint(this.options.data);
3500
+ if (!isNumber(firstPoint) && !isArray(firstPoint)) {
3501
+ error(12, false, this.chart);
3502
+ }
3503
+ }
3504
+ this.enterBoost();
3505
+ }
3506
+ else if (this.exitBoost) {
3507
+ this.exitBoost();
3508
+ }
3509
+ // The series type is not boostable
3510
+ }
3511
+ else {
3512
+ proceed.apply(this, Array.prototype.slice.call(arguments, 1));
3513
+ }
3514
+ });
3515
+ addEvent(Series, 'hide', function () {
3516
+ if (this.canvas && this.renderTarget) {
3517
+ if (this.ogl) {
3518
+ this.ogl.clear();
3519
+ }
3520
+ this.boostClear();
3521
+ }
3522
+ });
3523
+ /**
3524
+ * Enter boost mode and apply boost-specific properties.
3525
+ *
3526
+ * @function Highcharts.Series#enterBoost
3527
+ */
3528
+ Series.prototype.enterBoost = function () {
3529
+ this.alteredByBoost = [];
3530
+ // Save the original values, including whether it was an own property or
3531
+ // inherited from the prototype.
3532
+ ['allowDG', 'directTouch', 'stickyTracking'].forEach(function (prop) {
3533
+ this.alteredByBoost.push({
3534
+ prop: prop,
3535
+ val: this[prop],
3536
+ own: Object.hasOwnProperty.call(this, prop)
3537
+ });
3538
+ }, this);
3539
+ this.allowDG = false;
3540
+ this.directTouch = false;
3541
+ this.stickyTracking = true;
3542
+ // Prevent animation when zooming in on boosted series(#13421).
3543
+ this.finishedAnimating = true;
3544
+ // Hide series label if any
3545
+ if (this.labelBySeries) {
3546
+ this.labelBySeries = this.labelBySeries.destroy();
3547
+ }
3548
+ };
3549
+ /**
3550
+ * Exit from boost mode and restore non-boost properties.
3551
+ *
3552
+ * @function Highcharts.Series#exitBoost
3553
+ */
3554
+ Series.prototype.exitBoost = function () {
3555
+ // Reset instance properties and/or delete instance properties and go back
3556
+ // to prototype
3557
+ (this.alteredByBoost || []).forEach(function (setting) {
3558
+ if (setting.own) {
3559
+ this[setting.prop] = setting.val;
3560
+ }
3561
+ else {
3562
+ // Revert to prototype
3563
+ delete this[setting.prop];
3564
+ }
3565
+ }, this);
3566
+ // Clear previous run
3567
+ if (this.boostClear) {
3568
+ this.boostClear();
3569
+ }
3570
+ };
3571
+ /**
3572
+ * @private
3573
+ * @function Highcharts.Series#hasExtremes
3574
+ */
3575
+ Series.prototype.hasExtremes = function (checkX) {
3576
+ var options = this.options,
3577
+ data = options.data,
3578
+ xAxis = this.xAxis && this.xAxis.options,
3579
+ yAxis = this.yAxis && this.yAxis.options,
3580
+ colorAxis = this.colorAxis && this.colorAxis.options;
3581
+ return data.length > (options.boostThreshold || Number.MAX_VALUE) &&
3582
+ // Defined yAxis extremes
3583
+ isNumber(yAxis.min) &&
3584
+ isNumber(yAxis.max) &&
3585
+ // Defined (and required) xAxis extremes
3586
+ (!checkX ||
3587
+ (isNumber(xAxis.min) && isNumber(xAxis.max))) &&
3588
+ // Defined (e.g. heatmap) colorAxis extremes
3589
+ (!colorAxis ||
3590
+ (isNumber(colorAxis.min) && isNumber(colorAxis.max)));
3591
+ };
3592
+ /**
3593
+ * If implemented in the core, parts of this can probably be
3594
+ * shared with other similar methods in Highcharts.
3595
+ *
3596
+ * @function Highcharts.Series#destroyGraphics
3597
+ */
3598
+ Series.prototype.destroyGraphics = function () {
3599
+ var _this = this;
3600
+ var series = this,
3601
+ points = this.points,
3602
+ point,
3603
+ i;
3604
+ if (points) {
3605
+ for (i = 0; i < points.length; i = i + 1) {
3606
+ point = points[i];
3607
+ if (point && point.destroyElements) {
3608
+ point.destroyElements(); // #7557
3609
+ }
3610
+ }
3611
+ }
3612
+ ['graph', 'area', 'tracker'].forEach(function (prop) {
3613
+ if (series[prop]) {
3614
+ series[prop] = series[prop].destroy();
3615
+ }
3616
+ });
3617
+ if (this.getZonesGraphs) {
3618
+ var props = this.getZonesGraphs([['graph', 'highcharts-graph']]);
3619
+ props.forEach(function (prop) {
3620
+ var zoneGraph = _this[prop[0]];
3621
+ if (zoneGraph) {
3622
+ _this[prop[0]] = zoneGraph.destroy();
3623
+ }
3624
+ });
3625
+ }
3626
+ };
3627
+ // Set default options
3628
+ boostable.forEach(function (type) {
3629
+ if (plotOptions[type]) {
3630
+ plotOptions[type].boostThreshold = 5000;
3631
+ plotOptions[type].boostData = [];
3632
+ seriesTypes[type].prototype.fillOpacity = true;
3633
+ }
3634
+ });
3635
+
3636
+ });
3637
+ _registerModule(_modules, 'Extensions/Boost/NamedColors.js', [_modules['Core/Color/Color.js']], function (Color) {
3638
+ /* *
3639
+ *
3640
+ * Copyright (c) 2019-2021 Highsoft AS
3641
+ *
3642
+ * Boost module: stripped-down renderer for higher performance
3643
+ *
3644
+ * License: highcharts.com/license
3645
+ *
3646
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
3647
+ *
3648
+ * */
3649
+ // Register color names since GL can't render those directly.
3650
+ // TODO: When supporting modern syntax, make this a const and a named export
3651
+ var defaultHTMLColorMap = {
3652
+ aliceblue: '#f0f8ff',
3653
+ antiquewhite: '#faebd7',
3654
+ aqua: '#00ffff',
3655
+ aquamarine: '#7fffd4',
3656
+ azure: '#f0ffff',
3657
+ beige: '#f5f5dc',
3658
+ bisque: '#ffe4c4',
3659
+ black: '#000000',
3660
+ blanchedalmond: '#ffebcd',
3661
+ blue: '#0000ff',
3662
+ blueviolet: '#8a2be2',
3663
+ brown: '#a52a2a',
3664
+ burlywood: '#deb887',
3665
+ cadetblue: '#5f9ea0',
3666
+ chartreuse: '#7fff00',
3667
+ chocolate: '#d2691e',
3668
+ coral: '#ff7f50',
3669
+ cornflowerblue: '#6495ed',
3670
+ cornsilk: '#fff8dc',
3671
+ crimson: '#dc143c',
3672
+ cyan: '#00ffff',
3673
+ darkblue: '#00008b',
3674
+ darkcyan: '#008b8b',
3675
+ darkgoldenrod: '#b8860b',
3676
+ darkgray: '#a9a9a9',
3677
+ darkgreen: '#006400',
3678
+ darkkhaki: '#bdb76b',
3679
+ darkmagenta: '#8b008b',
3680
+ darkolivegreen: '#556b2f',
3681
+ darkorange: '#ff8c00',
3682
+ darkorchid: '#9932cc',
3683
+ darkred: '#8b0000',
3684
+ darksalmon: '#e9967a',
3685
+ darkseagreen: '#8fbc8f',
3686
+ darkslateblue: '#483d8b',
3687
+ darkslategray: '#2f4f4f',
3688
+ darkturquoise: '#00ced1',
3689
+ darkviolet: '#9400d3',
3690
+ deeppink: '#ff1493',
3691
+ deepskyblue: '#00bfff',
3692
+ dimgray: '#696969',
3693
+ dodgerblue: '#1e90ff',
3694
+ feldspar: '#d19275',
3695
+ firebrick: '#b22222',
3696
+ floralwhite: '#fffaf0',
3697
+ forestgreen: '#228b22',
3698
+ fuchsia: '#ff00ff',
3699
+ gainsboro: '#dcdcdc',
3700
+ ghostwhite: '#f8f8ff',
3701
+ gold: '#ffd700',
3702
+ goldenrod: '#daa520',
3703
+ gray: '#808080',
3704
+ green: '#008000',
3705
+ greenyellow: '#adff2f',
3706
+ honeydew: '#f0fff0',
3707
+ hotpink: '#ff69b4',
3708
+ indianred: '#cd5c5c',
3709
+ indigo: '#4b0082',
3710
+ ivory: '#fffff0',
3711
+ khaki: '#f0e68c',
3712
+ lavender: '#e6e6fa',
3713
+ lavenderblush: '#fff0f5',
3714
+ lawngreen: '#7cfc00',
3715
+ lemonchiffon: '#fffacd',
3716
+ lightblue: '#add8e6',
3717
+ lightcoral: '#f08080',
3718
+ lightcyan: '#e0ffff',
3719
+ lightgoldenrodyellow: '#fafad2',
3720
+ lightgrey: '#d3d3d3',
3721
+ lightgreen: '#90ee90',
3722
+ lightpink: '#ffb6c1',
3723
+ lightsalmon: '#ffa07a',
3724
+ lightseagreen: '#20b2aa',
3725
+ lightskyblue: '#87cefa',
3726
+ lightslateblue: '#8470ff',
3727
+ lightslategray: '#778899',
3728
+ lightsteelblue: '#b0c4de',
3729
+ lightyellow: '#ffffe0',
3730
+ lime: '#00ff00',
3731
+ limegreen: '#32cd32',
3732
+ linen: '#faf0e6',
3733
+ magenta: '#ff00ff',
3734
+ maroon: '#800000',
3735
+ mediumaquamarine: '#66cdaa',
3736
+ mediumblue: '#0000cd',
3737
+ mediumorchid: '#ba55d3',
3738
+ mediumpurple: '#9370d8',
3739
+ mediumseagreen: '#3cb371',
3740
+ mediumslateblue: '#7b68ee',
3741
+ mediumspringgreen: '#00fa9a',
3742
+ mediumturquoise: '#48d1cc',
3743
+ mediumvioletred: '#c71585',
3744
+ midnightblue: '#191970',
3745
+ mintcream: '#f5fffa',
3746
+ mistyrose: '#ffe4e1',
3747
+ moccasin: '#ffe4b5',
3748
+ navajowhite: '#ffdead',
3749
+ navy: '#000080',
3750
+ oldlace: '#fdf5e6',
3751
+ olive: '#808000',
3752
+ olivedrab: '#6b8e23',
3753
+ orange: '#ffa500',
3754
+ orangered: '#ff4500',
3755
+ orchid: '#da70d6',
3756
+ palegoldenrod: '#eee8aa',
3757
+ palegreen: '#98fb98',
3758
+ paleturquoise: '#afeeee',
3759
+ palevioletred: '#d87093',
3760
+ papayawhip: '#ffefd5',
3761
+ peachpuff: '#ffdab9',
3762
+ peru: '#cd853f',
3763
+ pink: '#ffc0cb',
3764
+ plum: '#dda0dd',
3765
+ powderblue: '#b0e0e6',
3766
+ purple: '#800080',
3767
+ red: '#ff0000',
3768
+ rosybrown: '#bc8f8f',
3769
+ royalblue: '#4169e1',
3770
+ saddlebrown: '#8b4513',
3771
+ salmon: '#fa8072',
3772
+ sandybrown: '#f4a460',
3773
+ seagreen: '#2e8b57',
3774
+ seashell: '#fff5ee',
3775
+ sienna: '#a0522d',
3776
+ silver: '#c0c0c0',
3777
+ skyblue: '#87ceeb',
3778
+ slateblue: '#6a5acd',
3779
+ slategray: '#708090',
3780
+ snow: '#fffafa',
3781
+ springgreen: '#00ff7f',
3782
+ steelblue: '#4682b4',
3783
+ tan: '#d2b48c',
3784
+ teal: '#008080',
3785
+ thistle: '#d8bfd8',
3786
+ tomato: '#ff6347',
3787
+ turquoise: '#40e0d0',
3788
+ violet: '#ee82ee',
3789
+ violetred: '#d02090',
3790
+ wheat: '#f5deb3',
3791
+ white: '#ffffff',
3792
+ whitesmoke: '#f5f5f5',
3793
+ yellow: '#ffff00',
3794
+ yellowgreen: '#9acd32'
3795
+ };
3796
+ Color.names = defaultHTMLColorMap;
3797
+
3798
+ return defaultHTMLColorMap;
3799
+ });
3800
+ _registerModule(_modules, 'Extensions/Boost/Boost.js', [_modules['Extensions/Boost/BoostUtils.js'], _modules['Extensions/Boost/BoostInit.js'], _modules['Extensions/BoostCanvas.js'], _modules['Core/Utilities.js']], function (butils, init, initCanvasBoost, U) {
3801
+ /* *
3802
+ *
3803
+ * Copyright (c) 2019-2021 Highsoft AS
3804
+ *
3805
+ * Boost module: stripped-down renderer for higher performance
3806
+ *
3807
+ * License: highcharts.com/license
3808
+ *
3809
+ * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
3810
+ *
3811
+ * */
3812
+ var error = U.error;
3813
+ // These need to be fixed when we support named imports
3814
+ var hasWebGLSupport = butils.hasWebGLSupport;
3815
+ if (!hasWebGLSupport()) {
3816
+ if (typeof initCanvasBoost !== 'undefined') {
3817
+ // Fallback to canvas boost
3818
+ initCanvasBoost();
3819
+ }
3820
+ else {
3821
+ error(26);
3822
+ }
3823
+ }
3824
+ else {
3825
+ // WebGL support is alright, and we're good to go.
3826
+ init();
3827
+ }
3828
+
3829
+ });
3830
+ _registerModule(_modules, 'masters/modules/boost.src.js', [], function () {
3831
+
3832
+
3833
+ });
3834
+ }));