highcharts 11.3.0 → 11.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (773) hide show
  1. package/README.md +1 -1
  2. package/bower.json +1 -1
  3. package/css/annotations/popup.css +27 -19
  4. package/css/stocktools/gui.css +19 -7
  5. package/es-modules/Accessibility/A11yI18n.js +4 -6
  6. package/es-modules/Accessibility/Accessibility.js +8 -6
  7. package/es-modules/Accessibility/Components/InfoRegionsComponent.js +11 -6
  8. package/es-modules/Accessibility/Components/LegendComponent.js +4 -4
  9. package/es-modules/Accessibility/Components/MenuComponent.js +3 -6
  10. package/es-modules/Accessibility/Components/NavigatorComponent.js +6 -3
  11. package/es-modules/Accessibility/Components/RangeSelectorComponent.js +4 -7
  12. package/es-modules/Accessibility/Components/SeriesComponent/ForcedMarkers.js +18 -3
  13. package/es-modules/Accessibility/Components/SeriesComponent/NewDataAnnouncer.js +5 -3
  14. package/es-modules/Accessibility/Components/SeriesComponent/SeriesKeyboardNavigation.js +4 -4
  15. package/es-modules/Accessibility/FocusBorder.js +5 -5
  16. package/es-modules/Accessibility/HighContrastMode.js +22 -13
  17. package/es-modules/Accessibility/HighContrastTheme.js +2 -6
  18. package/es-modules/Accessibility/KeyboardNavigation.js +17 -8
  19. package/es-modules/Accessibility/Options/A11yDefaults.js +11 -1
  20. package/es-modules/Accessibility/ProxyElement.js +4 -4
  21. package/es-modules/Accessibility/ProxyProvider.js +8 -2
  22. package/es-modules/Accessibility/Utils/DOMElementProvider.js +8 -0
  23. package/es-modules/Accessibility/Utils/EventProvider.js +9 -0
  24. package/es-modules/Core/Animation/Fx.js +3 -3
  25. package/es-modules/Core/Axis/Axis.js +43 -97
  26. package/es-modules/Core/Axis/Axis3DComposition.js +5 -5
  27. package/es-modules/Core/Axis/Axis3DDefaults.js +1 -1
  28. package/es-modules/Core/Axis/AxisDefaults.js +18 -7
  29. package/es-modules/Core/Axis/BrokenAxis.js +4 -6
  30. package/es-modules/Core/Axis/Color/ColorAxis.js +2 -1
  31. package/es-modules/Core/Axis/Color/ColorAxisComposition.js +3 -5
  32. package/es-modules/Core/Axis/DateTimeAxis.js +3 -5
  33. package/es-modules/Core/Axis/GridAxis.js +7 -7
  34. package/es-modules/Core/Axis/LogarithmicAxis.js +2 -4
  35. package/es-modules/Core/Axis/NavigatorAxisComposition.js +26 -22
  36. package/es-modules/Core/Axis/OrdinalAxis.js +97 -53
  37. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBand.js +3 -3
  38. package/es-modules/Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js +4 -5
  39. package/es-modules/Core/Axis/RadialAxis.js +5 -5
  40. package/es-modules/Core/Axis/ScrollbarAxis.js +2 -2
  41. package/es-modules/Core/Axis/Stacking/StackItem.js +8 -4
  42. package/es-modules/Core/Axis/Stacking/StackingAxis.js +3 -5
  43. package/es-modules/Core/Axis/Tick.js +16 -7
  44. package/es-modules/Core/Axis/Tick3DComposition.js +2 -2
  45. package/es-modules/Core/Axis/TreeGrid/TreeGridAxis.js +4 -8
  46. package/es-modules/Core/Axis/TreeGrid/TreeGridTick.js +3 -6
  47. package/es-modules/Core/Axis/WaterfallAxis.js +3 -3
  48. package/es-modules/Core/Axis/ZAxis.js +6 -11
  49. package/es-modules/Core/Chart/Chart.js +201 -176
  50. package/es-modules/Core/Chart/Chart3D.js +1 -1
  51. package/es-modules/Core/Chart/ChartDefaults.js +7 -0
  52. package/es-modules/Core/Chart/GanttChart.js +2 -2
  53. package/es-modules/Core/Chart/MapChart.js +12 -2
  54. package/es-modules/Core/Chart/StockChart.js +12 -11
  55. package/es-modules/Core/Color/Color.js +3 -3
  56. package/es-modules/Core/Color/Palettes.js +2 -2
  57. package/es-modules/Core/Defaults.js +18 -15
  58. package/es-modules/Core/Geometry/CircleUtilities.js +3 -3
  59. package/es-modules/Core/Globals.js +2 -2
  60. package/es-modules/Core/HttpUtilities.js +4 -4
  61. package/es-modules/Core/Legend/Legend.js +6 -6
  62. package/es-modules/Core/MSPointer.js +7 -7
  63. package/es-modules/Core/Pointer.js +230 -245
  64. package/es-modules/Core/Renderer/HTML/AST.js +1 -1
  65. package/es-modules/Core/Renderer/HTML/HTMLElement.js +213 -26
  66. package/es-modules/Core/Renderer/RendererUtilities.js +1 -1
  67. package/es-modules/Core/Renderer/SVG/SVGElement.js +85 -52
  68. package/es-modules/Core/Renderer/SVG/SVGLabel.js +14 -11
  69. package/es-modules/Core/Renderer/SVG/SVGRenderer.js +17 -14
  70. package/es-modules/Core/Renderer/SVG/SVGRenderer3D.js +8 -7
  71. package/es-modules/Core/Renderer/SVG/Symbols.js +1 -1
  72. package/es-modules/Core/Renderer/SVG/TextBuilder.js +2 -2
  73. package/es-modules/Core/Responsive.js +5 -6
  74. package/es-modules/Core/Series/DataLabel.js +70 -90
  75. package/es-modules/Core/Series/DataSeriesComposition.js +1 -1
  76. package/es-modules/Core/Series/DataSeriesConverter.js +2 -2
  77. package/es-modules/Core/Series/Point.js +48 -40
  78. package/es-modules/Core/Series/Series.js +61 -51
  79. package/es-modules/Core/Series/Series3D.js +2 -2
  80. package/es-modules/Core/Series/SeriesRegistry.js +10 -2
  81. package/es-modules/Core/Templating.js +1 -1
  82. package/es-modules/Core/Time.js +12 -7
  83. package/es-modules/Core/Tooltip.js +19 -17
  84. package/es-modules/Core/Utilities.js +54 -26
  85. package/es-modules/Data/Connectors/CSVConnector.js +2 -2
  86. package/es-modules/Data/Connectors/DataConnector.js +4 -2
  87. package/es-modules/Data/Connectors/GoogleSheetsConnector.js +2 -2
  88. package/es-modules/Data/Connectors/HTMLTableConnector.js +2 -2
  89. package/es-modules/Data/Connectors/JSONConnector.js +3 -5
  90. package/es-modules/Data/Converters/CSVConverter.js +1 -3
  91. package/es-modules/Data/Converters/DataConverter.js +8 -2
  92. package/es-modules/Data/Converters/HTMLTableConverter.js +1 -3
  93. package/es-modules/Data/Converters/JSONConverter.js +1 -0
  94. package/es-modules/Data/DataTable.js +1 -2
  95. package/es-modules/Data/Formula/FormulaProcessor.js +4 -2
  96. package/es-modules/Data/Modifiers/DataModifier.js +15 -3
  97. package/es-modules/Extensions/Annotations/Annotation.js +6 -7
  98. package/es-modules/Extensions/Annotations/AnnotationChart.js +4 -5
  99. package/es-modules/Extensions/Annotations/AnnotationDefaults.js +4 -4
  100. package/es-modules/Extensions/Annotations/ControlPoint.js +2 -2
  101. package/es-modules/Extensions/Annotations/ControlTarget.js +1 -1
  102. package/es-modules/Extensions/Annotations/Controllables/Controllable.js +7 -3
  103. package/es-modules/Extensions/Annotations/Controllables/ControllableEllipse.js +3 -3
  104. package/es-modules/Extensions/Annotations/Controllables/ControllableLabel.js +8 -9
  105. package/es-modules/Extensions/Annotations/Controllables/ControllablePath.js +3 -4
  106. package/es-modules/Extensions/Annotations/EventEmitter.js +6 -6
  107. package/es-modules/Extensions/Annotations/NavigationBindings.js +29 -18
  108. package/es-modules/Extensions/Annotations/NavigationBindingsDefaults.js +6 -6
  109. package/es-modules/Extensions/Annotations/Popup/Popup.js +1 -1
  110. package/es-modules/Extensions/Annotations/Popup/PopupAnnotations.js +10 -6
  111. package/es-modules/Extensions/Annotations/Popup/PopupComposition.js +2 -2
  112. package/es-modules/Extensions/Annotations/Popup/PopupIndicators.js +31 -31
  113. package/es-modules/Extensions/Annotations/Popup/PopupTabs.js +1 -1
  114. package/es-modules/Extensions/Annotations/Types/BasicAnnotation.js +14 -11
  115. package/es-modules/Extensions/Annotations/Types/FibonacciTimeZones.js +1 -1
  116. package/es-modules/Extensions/Annotations/Types/Measure.js +1 -1
  117. package/es-modules/Extensions/ArrowSymbols.js +7 -13
  118. package/es-modules/Extensions/Boost/Boost.js +39 -7
  119. package/es-modules/Extensions/Boost/BoostChart.js +4 -4
  120. package/es-modules/Extensions/Boost/BoostSeries.js +58 -13
  121. package/es-modules/Extensions/Boost/WGLRenderer.js +3 -3
  122. package/es-modules/Extensions/Boost/WGLVertexBuffer.js +1 -1
  123. package/es-modules/Extensions/BoostCanvas.js +5 -4
  124. package/es-modules/Extensions/BorderRadius.js +5 -4
  125. package/es-modules/Extensions/Breadcrumbs/Breadcrumbs.js +9 -9
  126. package/es-modules/Extensions/CurrentDateIndication.js +1 -1
  127. package/es-modules/Extensions/Data.js +11 -11
  128. package/es-modules/Extensions/DataGrouping/DataGrouping.js +1 -1
  129. package/es-modules/Extensions/DataGrouping/DataGroupingAxisComposition.js +8 -9
  130. package/es-modules/Extensions/DataGrouping/DataGroupingDefaults.js +1 -1
  131. package/es-modules/Extensions/DataGrouping/DataGroupingSeriesComposition.js +6 -7
  132. package/es-modules/Extensions/Debugger/Debugger.js +1 -1
  133. package/es-modules/Extensions/Debugger/ErrorMessages.js +2 -2
  134. package/es-modules/Extensions/DragPanes/AxisResizer.js +13 -16
  135. package/es-modules/Extensions/DragPanes/DragPanes.js +2 -4
  136. package/es-modules/Extensions/DraggablePoints/DragDropDefaults.js +2 -1
  137. package/es-modules/Extensions/DraggablePoints/DragDropUtilities.js +1 -1
  138. package/es-modules/Extensions/DraggablePoints/DraggableChart.js +4 -4
  139. package/es-modules/Extensions/DraggablePoints/DraggablePoints.js +8 -9
  140. package/es-modules/Extensions/Drilldown/Drilldown.js +11 -9
  141. package/es-modules/Extensions/Drilldown/DrilldownSeries.js +5 -6
  142. package/es-modules/Extensions/ExportData/ExportData.js +27 -18
  143. package/es-modules/Extensions/Exporting/Exporting.js +25 -20
  144. package/es-modules/Extensions/Exporting/ExportingDefaults.js +1 -1
  145. package/es-modules/Extensions/Exporting/Fullscreen.js +5 -10
  146. package/es-modules/Extensions/MarkerClusters/MarkerClusterScatter.js +26 -21
  147. package/es-modules/Extensions/MarkerClusters/MarkerClusterSymbols.js +2 -12
  148. package/es-modules/Extensions/MarkerClusters/MarkerClusters.js +3 -3
  149. package/es-modules/Extensions/MouseWheelZoom/MouseWheelZoom.js +51 -161
  150. package/es-modules/Extensions/NoDataToDisplay/NoDataToDisplay.js +3 -5
  151. package/es-modules/Extensions/OfflineExporting/OfflineExporting.js +5 -6
  152. package/es-modules/Extensions/OfflineExporting/OfflineExportingDefaults.js +1 -1
  153. package/es-modules/Extensions/OverlappingDataLabels.js +21 -49
  154. package/es-modules/Extensions/Pane/PaneComposition.js +3 -5
  155. package/es-modules/Extensions/ParallelCoordinates/ParallelAxis.js +2 -4
  156. package/es-modules/Extensions/ParallelCoordinates/ParallelCoordinates.js +5 -6
  157. package/es-modules/Extensions/ParallelCoordinates/ParallelSeries.js +1 -1
  158. package/es-modules/Extensions/PatternFill.js +19 -22
  159. package/es-modules/Extensions/PriceIndication.js +1 -1
  160. package/es-modules/Extensions/ScrollablePlotArea.js +218 -292
  161. package/es-modules/Extensions/SeriesLabel/SeriesLabel.js +26 -18
  162. package/es-modules/Extensions/Sonification/Options.js +1 -0
  163. package/es-modules/Extensions/Sonification/SonificationSpeaker.js +2 -2
  164. package/es-modules/Extensions/Sonification/SynthPatch.js +3 -3
  165. package/es-modules/Extensions/StaticScale.js +3 -5
  166. package/es-modules/Gantt/Legacy.js +1 -1
  167. package/es-modules/Gantt/Pathfinder.js +2 -2
  168. package/es-modules/Gantt/PathfinderComposition.js +3 -5
  169. package/es-modules/Gantt/Tree.js +3 -3
  170. package/es-modules/Maps/GeoJSONComposition.js +20 -13
  171. package/es-modules/Maps/MapNavigation.js +2 -2
  172. package/es-modules/Maps/MapPointer.js +3 -19
  173. package/es-modules/Maps/MapSymbols.js +3 -9
  174. package/es-modules/Maps/MapView.js +134 -74
  175. package/es-modules/Series/ArcDiagram/ArcDiagramSeries.js +5 -4
  176. package/es-modules/Series/Area/AreaSeries.js +2 -4
  177. package/es-modules/Series/Area3D/Area3DSeries.js +1 -1
  178. package/es-modules/Series/AreaRange/AreaRangePoint.js +2 -2
  179. package/es-modules/Series/AreaRange/AreaRangeSeries.js +2 -3
  180. package/es-modules/Series/AreaSpline/AreaSplineSeries.js +1 -1
  181. package/es-modules/Series/Bar/BarSeries.js +1 -1
  182. package/es-modules/Series/Bellcurve/BellcurveSeries.js +1 -1
  183. package/es-modules/Series/BoxPlot/BoxPlotSeriesDefaults.js +4 -0
  184. package/es-modules/Series/Bubble/BubbleLegendComposition.js +1 -1
  185. package/es-modules/Series/Bubble/BubbleLegendDefaults.js +2 -2
  186. package/es-modules/Series/Bubble/BubbleLegendItem.js +3 -3
  187. package/es-modules/Series/Bubble/BubbleSeries.js +1 -1
  188. package/es-modules/Series/Bullet/BulletSeriesDefaults.js +2 -2
  189. package/es-modules/Series/Candlestick/CandlestickSeries.js +2 -2
  190. package/es-modules/Series/Candlestick/CandlestickSeriesDefaults.js +1 -5
  191. package/es-modules/Series/ColorMapComposition.js +1 -1
  192. package/es-modules/Series/Column/ColumnDataLabel.js +2 -2
  193. package/es-modules/Series/Column/ColumnSeries.js +20 -22
  194. package/es-modules/Series/Column/ColumnSeriesDefaults.js +1 -1
  195. package/es-modules/Series/Column3D/Column3DComposition.js +1 -1
  196. package/es-modules/Series/ColumnRange/ColumnRangeSeries.js +2 -1
  197. package/es-modules/Series/Cylinder/CylinderComposition.js +9 -9
  198. package/es-modules/Series/DataModifyComposition.js +5 -5
  199. package/es-modules/Series/DependencyWheel/DependencyWheelSeries.js +3 -2
  200. package/es-modules/Series/DependencyWheel/DependencyWheelSeriesDefaults.js +1 -1
  201. package/es-modules/Series/DragNodesComposition.js +7 -7
  202. package/es-modules/Series/DrawPointUtilities.js +0 -2
  203. package/es-modules/Series/Dumbbell/DumbbellSeriesDefaults.js +1 -1
  204. package/es-modules/Series/Funnel/FunnelSeries.js +1 -1
  205. package/es-modules/Series/Funnel3D/Funnel3DComposition.js +6 -6
  206. package/es-modules/Series/Funnel3D/Funnel3DSeriesDefaults.js +2 -2
  207. package/es-modules/Series/Funnel3D/SVGElement3DFunnel.js +1 -1
  208. package/es-modules/Series/Gantt/GanttSeries.js +0 -1
  209. package/es-modules/Series/GeoHeatmap/GeoHeatmapSeries.js +5 -5
  210. package/es-modules/Series/GraphLayoutComposition.js +1 -1
  211. package/es-modules/Series/Heatmap/HeatmapSeries.js +2 -2
  212. package/es-modules/Series/Heatmap/HeatmapSeriesDefaults.js +1 -1
  213. package/es-modules/Series/HeikinAshi/HeikinAshiPoint.js +3 -1
  214. package/es-modules/Series/HeikinAshi/HeikinAshiSeries.js +3 -3
  215. package/es-modules/Series/HeikinAshi/HeikinAshiSeriesDefaults.js +1 -1
  216. package/es-modules/Series/HollowCandlestick/HollowCandlestickSeries.js +2 -2
  217. package/es-modules/Series/Item/ItemSeries.js +1 -1
  218. package/es-modules/Series/Line/LineSeries.js +1 -1
  219. package/es-modules/Series/Lollipop/LollipopSeries.js +3 -1
  220. package/es-modules/Series/Map/MapPoint.js +5 -1
  221. package/es-modules/Series/Map/MapSeries.js +32 -7
  222. package/es-modules/Series/Map/MapSeriesDefaults.js +5 -3
  223. package/es-modules/Series/Networkgraph/EulerIntegration.js +5 -5
  224. package/es-modules/Series/Networkgraph/NetworkgraphSeries.js +4 -4
  225. package/es-modules/Series/Networkgraph/NetworkgraphSeriesDefaults.js +5 -5
  226. package/es-modules/Series/Networkgraph/QuadTree.js +1 -1
  227. package/es-modules/Series/Networkgraph/QuadTreeNode.js +1 -1
  228. package/es-modules/Series/Networkgraph/VerletIntegration.js +9 -9
  229. package/es-modules/Series/NodesComposition.js +1 -1
  230. package/es-modules/Series/OHLC/OHLCSeries.js +1 -1
  231. package/es-modules/Series/OHLC/OHLCSeriesDefaults.js +1 -1
  232. package/es-modules/Series/OnSeriesComposition.js +1 -1
  233. package/es-modules/Series/Organization/OrganizationPoint.js +1 -1
  234. package/es-modules/Series/Organization/OrganizationSeries.js +22 -10
  235. package/es-modules/Series/Organization/OrganizationSeriesDefaults.js +15 -2
  236. package/es-modules/Series/PackedBubble/PackedBubbleLayout.js +3 -5
  237. package/es-modules/Series/PackedBubble/PackedBubblePoint.js +1 -1
  238. package/es-modules/Series/PackedBubble/PackedBubbleSeries.js +6 -10
  239. package/es-modules/Series/Pictorial/PictorialSeries.js +2 -2
  240. package/es-modules/Series/Pie/PieDataLabel.js +2 -2
  241. package/es-modules/Series/Pie/PiePoint.js +1 -1
  242. package/es-modules/Series/Pie/PieSeries.js +10 -1
  243. package/es-modules/Series/Pie/PieSeriesDefaults.js +1 -1
  244. package/es-modules/Series/Pie3D/Pie3DSeries.js +2 -2
  245. package/es-modules/Series/PolarComposition.js +22 -20
  246. package/es-modules/Series/Sankey/SankeyColumnComposition.js +1 -1
  247. package/es-modules/Series/Sankey/SankeySeries.js +8 -8
  248. package/es-modules/Series/Sankey/SankeySeriesDefaults.js +57 -13
  249. package/es-modules/Series/SeriesOnPointComposition.js +3 -3
  250. package/es-modules/Series/Spline/SplineSeries.js +1 -1
  251. package/es-modules/Series/Sunburst/SunburstPoint.js +1 -1
  252. package/es-modules/Series/Sunburst/SunburstSeries.js +2 -7
  253. package/es-modules/Series/Sunburst/SunburstSeriesDefaults.js +3 -3
  254. package/es-modules/Series/Sunburst/SunburstUtilities.js +1 -1
  255. package/es-modules/Series/TiledWebMap/TiledWebMapSeries.js +23 -25
  256. package/es-modules/Series/Tilemap/TilemapSeries.js +2 -2
  257. package/es-modules/Series/Timeline/TimelineSeries.js +2 -2
  258. package/es-modules/Series/TreeUtilities.js +23 -1
  259. package/es-modules/Series/Treegraph/TreegraphLayout.js +7 -11
  260. package/es-modules/Series/Treegraph/TreegraphPoint.js +1 -0
  261. package/es-modules/Series/Treegraph/TreegraphSeries.js +8 -8
  262. package/es-modules/Series/Treegraph/TreegraphSeriesDefaults.js +39 -2
  263. package/es-modules/Series/Treemap/TreemapSeries.js +4 -2
  264. package/es-modules/Series/Treemap/TreemapUtilities.js +0 -7
  265. package/es-modules/Series/Variwide/VariwideComposition.js +6 -2
  266. package/es-modules/Series/Variwide/VariwideSeries.js +1 -1
  267. package/es-modules/Series/Venn/VennSeries.js +4 -4
  268. package/es-modules/Series/Venn/VennUtils.js +5 -6
  269. package/es-modules/Series/Waterfall/WaterfallSeriesDefaults.js +1 -1
  270. package/es-modules/Series/Windbarb/WindbarbSeries.js +1 -1
  271. package/es-modules/Series/Wordcloud/WordcloudUtils.js +6 -4
  272. package/es-modules/Series/XRange/XRangePoint.js +2 -2
  273. package/es-modules/Series/XRange/XRangeSeries.js +1 -1
  274. package/es-modules/Shared/BaseForm.js +1 -1
  275. package/es-modules/Stock/Indicators/AD/ADIndicator.js +3 -1
  276. package/es-modules/Stock/Indicators/APO/APOIndicator.js +1 -1
  277. package/es-modules/Stock/Indicators/Aroon/AroonIndicator.js +1 -1
  278. package/es-modules/Stock/Indicators/CMF/CMFIndicator.js +1 -1
  279. package/es-modules/Stock/Indicators/CMO/CMOIndicator.js +2 -2
  280. package/es-modules/Stock/Indicators/Chaikin/ChaikinIndicator.js +1 -1
  281. package/es-modules/Stock/Indicators/DPO/DPOIndicator.js +1 -1
  282. package/es-modules/Stock/Indicators/Klinger/KlingerIndicator.js +1 -1
  283. package/es-modules/Stock/Indicators/LinearRegression/LinearRegressionIndicator.js +7 -7
  284. package/es-modules/Stock/Indicators/MultipleLinesComposition.js +9 -9
  285. package/es-modules/Stock/Indicators/OBV/OBVIndicator.js +1 -1
  286. package/es-modules/Stock/Indicators/PPO/PPOIndicator.js +1 -1
  287. package/es-modules/Stock/Indicators/PivotPoints/PivotPointsIndicator.js +2 -2
  288. package/es-modules/Stock/Indicators/SMA/SMAIndicator.js +1 -1
  289. package/es-modules/Stock/Indicators/Supertrend/SupertrendIndicator.js +16 -17
  290. package/es-modules/Stock/Indicators/VBP/VBPIndicator.js +4 -5
  291. package/es-modules/Stock/Indicators/WilliamsR/WilliamsRIndicator.js +1 -1
  292. package/es-modules/Stock/Indicators/Zigzag/ZigzagIndicator.js +5 -5
  293. package/es-modules/Stock/Navigator/ChartNavigatorComposition.js +188 -0
  294. package/es-modules/Stock/Navigator/Navigator.js +42 -27
  295. package/es-modules/Stock/Navigator/NavigatorComposition.js +10 -149
  296. package/es-modules/Stock/Navigator/NavigatorDefaults.js +16 -2
  297. package/es-modules/Stock/Navigator/StandaloneNavigator.js +334 -0
  298. package/es-modules/Stock/Navigator/StandaloneNavigatorDefaults.js +64 -0
  299. package/es-modules/Stock/RangeSelector/RangeSelector.js +28 -16
  300. package/es-modules/Stock/RangeSelector/RangeSelectorComposition.js +2 -2
  301. package/es-modules/Stock/Scrollbar/Scrollbar.js +10 -10
  302. package/es-modules/Stock/Scrollbar/ScrollbarDefaults.js +1 -3
  303. package/es-modules/Stock/StockTools/StockToolbar.js +6 -5
  304. package/es-modules/Stock/StockTools/StockTools.js +10 -13
  305. package/es-modules/Stock/StockTools/StockToolsBindings.js +35 -35
  306. package/es-modules/Stock/StockTools/StockToolsDefaults.js +2 -1
  307. package/es-modules/Stock/StockTools/StockToolsGui.js +7 -8
  308. package/es-modules/Stock/StockTools/StockToolsUtilities.js +8 -9
  309. package/es-modules/Stock/Utilities/StockUtilities.js +41 -0
  310. package/es-modules/masters/highcharts-3d.src.js +2 -1
  311. package/es-modules/masters/highcharts-gantt.src.js +1 -1
  312. package/es-modules/masters/highcharts-more.src.js +2 -1
  313. package/es-modules/masters/highcharts.src.js +41 -40
  314. package/es-modules/masters/highmaps.src.js +1 -1
  315. package/es-modules/masters/highstock.src.js +1 -1
  316. package/es-modules/masters/indicators/acceleration-bands.src.js +3 -1
  317. package/es-modules/masters/indicators/accumulation-distribution.src.js +3 -1
  318. package/es-modules/masters/indicators/ao.src.js +3 -1
  319. package/es-modules/masters/indicators/apo.src.js +3 -1
  320. package/es-modules/masters/indicators/aroon-oscillator.src.js +3 -1
  321. package/es-modules/masters/indicators/aroon.src.js +3 -1
  322. package/es-modules/masters/indicators/atr.src.js +3 -1
  323. package/es-modules/masters/indicators/bollinger-bands.src.js +3 -1
  324. package/es-modules/masters/indicators/cci.src.js +3 -1
  325. package/es-modules/masters/indicators/chaikin.src.js +3 -1
  326. package/es-modules/masters/indicators/cmf.src.js +3 -1
  327. package/es-modules/masters/indicators/cmo.src.js +3 -1
  328. package/es-modules/masters/indicators/dema.src.js +3 -1
  329. package/es-modules/masters/indicators/disparity-index.src.js +3 -1
  330. package/es-modules/masters/indicators/dmi.src.js +3 -1
  331. package/es-modules/masters/indicators/dpo.src.js +3 -1
  332. package/es-modules/masters/indicators/ema.src.js +2 -0
  333. package/es-modules/masters/indicators/ichimoku-kinko-hyo.src.js +3 -1
  334. package/es-modules/masters/indicators/indicators-all.src.js +3 -1
  335. package/es-modules/masters/indicators/indicators.src.js +7 -1
  336. package/es-modules/masters/indicators/keltner-channels.src.js +3 -1
  337. package/es-modules/masters/indicators/klinger.src.js +3 -1
  338. package/es-modules/masters/indicators/macd.src.js +3 -1
  339. package/es-modules/masters/indicators/mfi.src.js +3 -1
  340. package/es-modules/masters/indicators/momentum.src.js +3 -1
  341. package/es-modules/masters/indicators/natr.src.js +3 -1
  342. package/es-modules/masters/indicators/obv.src.js +3 -1
  343. package/es-modules/masters/indicators/pivot-points.src.js +3 -1
  344. package/es-modules/masters/indicators/ppo.src.js +3 -1
  345. package/es-modules/masters/indicators/price-channel.src.js +3 -1
  346. package/es-modules/masters/indicators/price-envelopes.src.js +3 -1
  347. package/es-modules/masters/indicators/psar.src.js +3 -1
  348. package/es-modules/masters/indicators/regressions.src.js +3 -1
  349. package/es-modules/masters/indicators/roc.src.js +3 -1
  350. package/es-modules/masters/indicators/rsi.src.js +3 -1
  351. package/es-modules/masters/indicators/slow-stochastic.src.js +3 -1
  352. package/es-modules/masters/indicators/stochastic.src.js +3 -1
  353. package/es-modules/masters/indicators/supertrend.src.js +3 -1
  354. package/es-modules/masters/indicators/tema.src.js +3 -1
  355. package/es-modules/masters/indicators/trendline.src.js +3 -1
  356. package/es-modules/masters/indicators/trix.src.js +3 -1
  357. package/es-modules/masters/indicators/volume-by-price.src.js +3 -1
  358. package/es-modules/masters/indicators/vwap.src.js +3 -1
  359. package/es-modules/masters/indicators/williams-r.src.js +3 -1
  360. package/es-modules/masters/indicators/wma.src.js +3 -1
  361. package/es-modules/masters/indicators/zigzag.src.js +3 -1
  362. package/es-modules/masters/modules/accessibility.src.js +4 -1
  363. package/es-modules/masters/modules/annotations-advanced.src.js +3 -5
  364. package/es-modules/masters/modules/annotations.src.js +6 -3
  365. package/es-modules/masters/modules/arc-diagram.src.js +3 -1
  366. package/es-modules/masters/modules/arrow-symbols.src.js +2 -1
  367. package/es-modules/masters/modules/boost-canvas.src.js +2 -1
  368. package/es-modules/masters/modules/boost.src.js +3 -2
  369. package/es-modules/masters/modules/broken-axis.src.js +4 -3
  370. package/es-modules/masters/modules/bullet.src.js +3 -1
  371. package/es-modules/masters/modules/coloraxis.src.js +4 -3
  372. package/es-modules/masters/modules/current-date-indicator.src.js +2 -1
  373. package/es-modules/masters/modules/cylinder.src.js +3 -1
  374. package/es-modules/masters/modules/data-tools.src.js +9 -8
  375. package/es-modules/masters/modules/data.src.js +9 -8
  376. package/es-modules/masters/modules/datagrouping.src.js +7 -5
  377. package/es-modules/masters/modules/debugger.src.js +3 -2
  378. package/es-modules/masters/modules/dependency-wheel.src.js +3 -1
  379. package/es-modules/masters/modules/dotplot.src.js +3 -1
  380. package/es-modules/masters/modules/drag-panes.src.js +2 -1
  381. package/es-modules/masters/modules/draggable-points.src.js +2 -1
  382. package/es-modules/masters/modules/drilldown.src.js +3 -2
  383. package/es-modules/masters/modules/dumbbell.src.js +3 -1
  384. package/es-modules/masters/modules/export-data.src.js +5 -4
  385. package/es-modules/masters/modules/exporting.src.js +6 -5
  386. package/es-modules/masters/modules/flowmap.src.js +3 -1
  387. package/es-modules/masters/modules/full-screen.src.js +4 -3
  388. package/es-modules/masters/modules/funnel.src.js +2 -1
  389. package/es-modules/masters/modules/funnel3d.src.js +4 -3
  390. package/es-modules/masters/modules/gantt.src.js +15 -17
  391. package/es-modules/masters/modules/geoheatmap.src.js +3 -1
  392. package/es-modules/masters/modules/grid-axis.src.js +2 -1
  393. package/es-modules/masters/modules/heatmap.src.js +3 -5
  394. package/es-modules/masters/modules/heikinashi.src.js +2 -1
  395. package/es-modules/masters/modules/histogram-bellcurve.src.js +3 -1
  396. package/es-modules/masters/modules/hollowcandlestick.src.js +3 -1
  397. package/es-modules/masters/modules/item-series.src.js +3 -1
  398. package/es-modules/masters/modules/lollipop.src.js +3 -1
  399. package/es-modules/masters/modules/map.src.js +15 -10
  400. package/es-modules/masters/modules/marker-clusters.src.js +2 -1
  401. package/es-modules/masters/modules/mouse-wheel-zoom.src.js +4 -2
  402. package/es-modules/masters/modules/navigator.src.d.ts +1 -0
  403. package/es-modules/masters/modules/navigator.src.js +19 -0
  404. package/es-modules/masters/modules/networkgraph.src.js +2 -1
  405. package/es-modules/masters/modules/no-data-to-display.src.js +2 -1
  406. package/es-modules/masters/modules/offline-exporting.src.js +4 -3
  407. package/es-modules/masters/modules/organization.src.js +3 -1
  408. package/es-modules/masters/modules/overlapping-datalabels.src.js +4 -2
  409. package/es-modules/masters/modules/parallel-coordinates.src.js +2 -1
  410. package/es-modules/masters/modules/pareto.src.js +3 -1
  411. package/es-modules/masters/modules/pathfinder.src.js +4 -3
  412. package/es-modules/masters/modules/pattern-fill.src.js +2 -1
  413. package/es-modules/masters/modules/pictorial.src.js +3 -1
  414. package/es-modules/masters/modules/price-indicator.src.js +2 -1
  415. package/es-modules/masters/modules/pyramid3d.src.js +3 -1
  416. package/es-modules/masters/modules/sankey.src.js +3 -1
  417. package/es-modules/masters/modules/series-label.src.js +2 -1
  418. package/es-modules/masters/modules/series-on-point.src.js +2 -1
  419. package/es-modules/masters/modules/solid-gauge.src.js +3 -1
  420. package/es-modules/masters/modules/sonification.src.js +2 -1
  421. package/es-modules/masters/modules/static-scale.src.js +2 -1
  422. package/es-modules/masters/modules/stock-tools.src.js +5 -3
  423. package/es-modules/masters/modules/stock.src.js +20 -15
  424. package/es-modules/masters/modules/streamgraph.src.js +3 -1
  425. package/es-modules/masters/modules/sunburst.src.js +4 -3
  426. package/es-modules/masters/modules/tiledwebmap.src.js +5 -4
  427. package/es-modules/masters/modules/tilemap.src.js +2 -1
  428. package/es-modules/masters/modules/timeline.src.js +3 -1
  429. package/es-modules/masters/modules/treegraph.src.js +3 -1
  430. package/es-modules/masters/modules/treegrid.src.js +2 -2
  431. package/es-modules/masters/modules/treemap.src.js +5 -4
  432. package/es-modules/masters/modules/variable-pie.src.js +3 -1
  433. package/es-modules/masters/modules/variwide.src.js +2 -1
  434. package/es-modules/masters/modules/vector.src.js +3 -1
  435. package/es-modules/masters/modules/venn.src.js +3 -1
  436. package/es-modules/masters/modules/windbarb.src.js +3 -1
  437. package/es-modules/masters/modules/wordcloud.src.js +3 -1
  438. package/es-modules/masters/modules/xrange.src.js +2 -1
  439. package/es-modules/masters/standalone-navigator.src.js +13 -0
  440. package/es-modules/masters/themes/avocado.src.js +2 -1
  441. package/es-modules/masters/themes/brand-dark.src.js +2 -1
  442. package/es-modules/masters/themes/brand-light.src.js +2 -1
  443. package/es-modules/masters/themes/dark-blue.src.js +2 -1
  444. package/es-modules/masters/themes/dark-green.src.js +2 -1
  445. package/es-modules/masters/themes/dark-unica.src.js +2 -1
  446. package/es-modules/masters/themes/gray.src.js +2 -1
  447. package/es-modules/masters/themes/grid-light.src.js +2 -1
  448. package/es-modules/masters/themes/grid.src.js +2 -1
  449. package/es-modules/masters/themes/high-contrast-dark.src.js +2 -1
  450. package/es-modules/masters/themes/high-contrast-light.src.js +2 -1
  451. package/es-modules/masters/themes/sand-signika.src.js +2 -1
  452. package/es-modules/masters/themes/skies.src.js +2 -1
  453. package/es-modules/masters/themes/sunset.src.js +2 -1
  454. package/es-modules/tsconfig.tsbuildinfo +1 -0
  455. package/globals.d.ts +9 -0
  456. package/globals.src.d.ts +9 -0
  457. package/highcharts-3d.js +3 -3
  458. package/highcharts-3d.src.js +32 -33
  459. package/highcharts-gantt.js +4 -4
  460. package/highcharts-gantt.src.js +5703 -5639
  461. package/highcharts-more.d.ts +4 -0
  462. package/highcharts-more.js +3 -3
  463. package/highcharts-more.src.d.ts +4 -0
  464. package/highcharts-more.src.js +88 -87
  465. package/highcharts.d.ts +834 -5365
  466. package/highcharts.js +4 -4
  467. package/highcharts.src.d.ts +834 -5365
  468. package/highcharts.src.js +1583 -1682
  469. package/highmaps.js +4 -4
  470. package/highmaps.src.js +1837 -1835
  471. package/highstock.js +4 -4
  472. package/highstock.src.js +12488 -12510
  473. package/indicators/acceleration-bands.js +3 -3
  474. package/indicators/acceleration-bands.src.js +12 -11
  475. package/indicators/accumulation-distribution.js +3 -3
  476. package/indicators/accumulation-distribution.src.js +6 -3
  477. package/indicators/ao.js +3 -3
  478. package/indicators/ao.src.js +3 -2
  479. package/indicators/apo.js +3 -3
  480. package/indicators/apo.src.js +4 -3
  481. package/indicators/aroon-oscillator.js +3 -3
  482. package/indicators/aroon-oscillator.src.js +12 -11
  483. package/indicators/aroon.js +3 -3
  484. package/indicators/aroon.src.js +13 -12
  485. package/indicators/atr.js +3 -3
  486. package/indicators/atr.src.js +3 -2
  487. package/indicators/bollinger-bands.js +3 -3
  488. package/indicators/bollinger-bands.src.js +12 -11
  489. package/indicators/cci.js +3 -3
  490. package/indicators/cci.src.js +3 -2
  491. package/indicators/chaikin.js +3 -3
  492. package/indicators/chaikin.src.js +7 -4
  493. package/indicators/cmf.js +3 -3
  494. package/indicators/cmf.src.js +4 -3
  495. package/indicators/cmo.js +3 -3
  496. package/indicators/cmo.src.js +5 -4
  497. package/indicators/dema.js +3 -3
  498. package/indicators/dema.src.js +3 -2
  499. package/indicators/disparity-index.js +3 -3
  500. package/indicators/disparity-index.src.js +3 -2
  501. package/indicators/dmi.js +3 -3
  502. package/indicators/dmi.src.js +12 -11
  503. package/indicators/dpo.js +3 -3
  504. package/indicators/dpo.src.js +4 -3
  505. package/indicators/ema.js +1 -1
  506. package/indicators/ema.src.js +2 -1
  507. package/indicators/ichimoku-kinko-hyo.js +3 -3
  508. package/indicators/ichimoku-kinko-hyo.src.js +3 -2
  509. package/indicators/indicators-all.js +3 -3
  510. package/indicators/indicators-all.src.js +63 -60
  511. package/indicators/indicators.js +3 -3
  512. package/indicators/indicators.src.js +286 -3
  513. package/indicators/keltner-channels.js +3 -3
  514. package/indicators/keltner-channels.src.js +12 -11
  515. package/indicators/klinger.js +3 -3
  516. package/indicators/klinger.src.js +13 -12
  517. package/indicators/macd.js +3 -3
  518. package/indicators/macd.src.js +3 -2
  519. package/indicators/mfi.js +3 -3
  520. package/indicators/mfi.src.js +3 -2
  521. package/indicators/momentum.js +3 -3
  522. package/indicators/momentum.src.js +3 -2
  523. package/indicators/natr.js +3 -3
  524. package/indicators/natr.src.js +3 -2
  525. package/indicators/obv.js +3 -3
  526. package/indicators/obv.src.js +4 -3
  527. package/indicators/pivot-points.js +3 -3
  528. package/indicators/pivot-points.src.js +5 -4
  529. package/indicators/ppo.js +3 -3
  530. package/indicators/ppo.src.js +4 -3
  531. package/indicators/price-channel.js +3 -3
  532. package/indicators/price-channel.src.js +12 -11
  533. package/indicators/price-envelopes.js +3 -3
  534. package/indicators/price-envelopes.src.js +12 -11
  535. package/indicators/psar.js +3 -3
  536. package/indicators/psar.src.js +3 -2
  537. package/indicators/regressions.js +3 -3
  538. package/indicators/regressions.src.js +10 -9
  539. package/indicators/roc.js +3 -3
  540. package/indicators/roc.src.js +3 -2
  541. package/indicators/rsi.js +3 -3
  542. package/indicators/rsi.src.js +3 -2
  543. package/indicators/slow-stochastic.js +3 -3
  544. package/indicators/slow-stochastic.src.js +3 -2
  545. package/indicators/stochastic.js +3 -3
  546. package/indicators/stochastic.src.js +12 -11
  547. package/indicators/supertrend.js +3 -3
  548. package/indicators/supertrend.src.js +20 -19
  549. package/indicators/tema.js +3 -3
  550. package/indicators/tema.src.js +3 -2
  551. package/indicators/trendline.js +3 -3
  552. package/indicators/trendline.src.js +3 -2
  553. package/indicators/trix.js +3 -3
  554. package/indicators/trix.src.js +3 -2
  555. package/indicators/volume-by-price.js +3 -3
  556. package/indicators/volume-by-price.src.js +8 -7
  557. package/indicators/vwap.js +3 -3
  558. package/indicators/vwap.src.js +3 -2
  559. package/indicators/williams-r.js +3 -3
  560. package/indicators/williams-r.src.js +4 -3
  561. package/indicators/wma.js +3 -3
  562. package/indicators/wma.src.js +3 -2
  563. package/indicators/zigzag.js +3 -3
  564. package/indicators/zigzag.src.js +8 -7
  565. package/lib/svg2pdf.js +7 -7
  566. package/lib/svg2pdf.src.js +185 -150
  567. package/modules/accessibility.js +3 -3
  568. package/modules/accessibility.src.js +664 -2793
  569. package/modules/annotations-advanced.d.ts +3 -0
  570. package/modules/annotations-advanced.js +3 -3
  571. package/modules/annotations-advanced.src.d.ts +3 -0
  572. package/modules/annotations-advanced.src.js +2949 -2920
  573. package/modules/annotations.d.ts +0 -3
  574. package/modules/annotations.js +3 -3
  575. package/modules/annotations.src.d.ts +0 -3
  576. package/modules/annotations.src.js +2926 -2905
  577. package/modules/arc-diagram.js +3 -3
  578. package/modules/arc-diagram.src.js +8 -6
  579. package/modules/arrow-symbols.js +3 -3
  580. package/modules/arrow-symbols.src.js +10 -13
  581. package/modules/boost-canvas.js +3 -3
  582. package/modules/boost-canvas.src.js +73 -26
  583. package/modules/boost.js +3 -3
  584. package/modules/boost.src.js +108 -30
  585. package/modules/broken-axis.js +3 -3
  586. package/modules/broken-axis.src.js +9 -9
  587. package/modules/bullet.js +3 -3
  588. package/modules/bullet.src.js +5 -4
  589. package/modules/coloraxis.js +3 -3
  590. package/modules/coloraxis.src.js +10 -9
  591. package/modules/current-date-indicator.js +3 -3
  592. package/modules/current-date-indicator.src.js +3 -2
  593. package/modules/cylinder.js +3 -3
  594. package/modules/cylinder.src.js +12 -11
  595. package/modules/data-tools.js +3 -3
  596. package/modules/data-tools.src.js +53 -36
  597. package/modules/data.d.ts +2 -2
  598. package/modules/data.js +3 -3
  599. package/modules/data.src.d.ts +2 -2
  600. package/modules/data.src.js +24 -23
  601. package/modules/datagrouping.js +3 -3
  602. package/modules/datagrouping.src.js +25 -23
  603. package/modules/debugger.js +3 -3
  604. package/modules/debugger.src.js +6 -5
  605. package/modules/dependency-wheel.js +3 -3
  606. package/modules/dependency-wheel.src.js +7 -5
  607. package/modules/dotplot.js +3 -3
  608. package/modules/dotplot.src.js +3 -2
  609. package/modules/drag-panes.js +3 -3
  610. package/modules/drag-panes.src.js +19 -21
  611. package/modules/draggable-points.js +3 -3
  612. package/modules/draggable-points.src.js +18 -16
  613. package/modules/drilldown.js +3 -3
  614. package/modules/drilldown.src.js +29 -26
  615. package/modules/dumbbell.js +3 -3
  616. package/modules/dumbbell.src.js +5 -4
  617. package/modules/export-data.js +3 -3
  618. package/modules/export-data.src.js +33 -22
  619. package/modules/exporting.d.ts +1 -1
  620. package/modules/exporting.js +3 -3
  621. package/modules/exporting.src.d.ts +1 -1
  622. package/modules/exporting.src.js +40 -39
  623. package/modules/flowmap.js +3 -3
  624. package/modules/flowmap.src.js +3 -2
  625. package/modules/full-screen.js +3 -3
  626. package/modules/full-screen.src.js +9 -13
  627. package/modules/funnel.js +3 -3
  628. package/modules/funnel.src.js +3 -2
  629. package/modules/funnel3d.js +3 -3
  630. package/modules/funnel3d.src.js +12 -12
  631. package/modules/gantt.d.ts +3 -4
  632. package/modules/gantt.js +3 -3
  633. package/modules/gantt.src.d.ts +3 -4
  634. package/modules/gantt.src.js +4165 -4002
  635. package/modules/geoheatmap.js +3 -3
  636. package/modules/geoheatmap.src.js +8 -7
  637. package/modules/grid-axis.js +3 -3
  638. package/modules/grid-axis.src.js +9 -8
  639. package/modules/heatmap.d.ts +2 -2
  640. package/modules/heatmap.js +3 -3
  641. package/modules/heatmap.src.d.ts +2 -2
  642. package/modules/heatmap.src.js +21 -15
  643. package/modules/heikinashi.js +3 -3
  644. package/modules/heikinashi.src.js +9 -6
  645. package/modules/histogram-bellcurve.js +3 -3
  646. package/modules/histogram-bellcurve.src.js +4 -3
  647. package/modules/hollowcandlestick.js +3 -3
  648. package/modules/hollowcandlestick.src.js +5 -4
  649. package/modules/item-series.js +3 -3
  650. package/modules/item-series.src.js +4 -3
  651. package/modules/lollipop.js +3 -3
  652. package/modules/lollipop.src.js +6 -3
  653. package/modules/map.d.ts +22 -1
  654. package/modules/map.js +3 -3
  655. package/modules/map.src.d.ts +22 -1
  656. package/modules/map.src.js +256 -155
  657. package/modules/marker-clusters.js +3 -3
  658. package/modules/marker-clusters.src.js +35 -37
  659. package/modules/mouse-wheel-zoom.js +3 -3
  660. package/modules/mouse-wheel-zoom.src.js +55 -163
  661. package/modules/navigator.d.ts +148 -0
  662. package/modules/navigator.js +9 -0
  663. package/modules/navigator.src.d.ts +148 -0
  664. package/modules/navigator.src.js +3921 -0
  665. package/modules/networkgraph.d.ts +2 -2
  666. package/modules/networkgraph.js +3 -3
  667. package/modules/networkgraph.src.d.ts +2 -2
  668. package/modules/networkgraph.src.js +36 -35
  669. package/modules/no-data-to-display.js +3 -3
  670. package/modules/no-data-to-display.src.js +6 -6
  671. package/modules/offline-exporting.js +3 -3
  672. package/modules/offline-exporting.src.js +10 -10
  673. package/modules/organization.js +3 -3
  674. package/modules/organization.src.js +41 -15
  675. package/modules/overlapping-datalabels.js +3 -3
  676. package/modules/overlapping-datalabels.src.js +4 -2
  677. package/modules/parallel-coordinates.js +3 -3
  678. package/modules/parallel-coordinates.src.js +12 -12
  679. package/modules/pareto.js +3 -3
  680. package/modules/pareto.src.js +3 -2
  681. package/modules/pathfinder.js +3 -3
  682. package/modules/pathfinder.src.js +18 -22
  683. package/modules/pattern-fill.js +3 -3
  684. package/modules/pattern-fill.src.js +22 -23
  685. package/modules/pictorial.js +3 -3
  686. package/modules/pictorial.src.js +25 -26
  687. package/modules/price-indicator.js +3 -3
  688. package/modules/price-indicator.src.js +3 -2
  689. package/modules/pyramid3d.js +3 -3
  690. package/modules/pyramid3d.src.js +3 -2
  691. package/modules/sankey.js +3 -3
  692. package/modules/sankey.src.js +93 -26
  693. package/modules/series-label.js +3 -3
  694. package/modules/series-label.src.js +28 -19
  695. package/modules/series-on-point.js +3 -3
  696. package/modules/series-on-point.src.js +5 -4
  697. package/modules/solid-gauge.js +3 -3
  698. package/modules/solid-gauge.src.js +3 -2
  699. package/modules/sonification.d.ts +2 -2
  700. package/modules/sonification.js +3 -3
  701. package/modules/sonification.src.d.ts +2 -2
  702. package/modules/sonification.src.js +8 -6
  703. package/modules/static-scale.js +3 -3
  704. package/modules/static-scale.src.js +6 -6
  705. package/modules/stock-tools.js +3 -3
  706. package/modules/stock-tools.src.js +109 -96
  707. package/modules/stock.d.ts +1 -1
  708. package/modules/stock.js +3 -3
  709. package/modules/stock.src.d.ts +1 -1
  710. package/modules/stock.src.js +10762 -10685
  711. package/modules/streamgraph.js +3 -3
  712. package/modules/streamgraph.src.js +3 -2
  713. package/modules/sunburst.js +3 -3
  714. package/modules/sunburst.src.js +50 -37
  715. package/modules/tiledwebmap.js +4 -4
  716. package/modules/tiledwebmap.src.js +28 -29
  717. package/modules/tilemap.js +3 -3
  718. package/modules/tilemap.src.js +4 -3
  719. package/modules/timeline.js +3 -3
  720. package/modules/timeline.src.js +5 -4
  721. package/modules/treegraph.js +3 -3
  722. package/modules/treegraph.src.js +58 -23
  723. package/modules/treegrid.js +3 -3
  724. package/modules/treegrid.src.js +49 -33
  725. package/modules/treemap.js +3 -3
  726. package/modules/treemap.src.js +44 -26
  727. package/modules/variable-pie.js +3 -3
  728. package/modules/variable-pie.src.js +3 -2
  729. package/modules/variwide.js +3 -3
  730. package/modules/variwide.src.js +9 -4
  731. package/modules/vector.js +3 -3
  732. package/modules/vector.src.js +3 -2
  733. package/modules/venn.js +3 -3
  734. package/modules/venn.src.js +16 -17
  735. package/modules/windbarb.js +3 -3
  736. package/modules/windbarb.src.js +5 -4
  737. package/modules/wordcloud.js +3 -3
  738. package/modules/wordcloud.src.js +10 -8
  739. package/modules/xrange.js +3 -3
  740. package/modules/xrange.src.js +5 -4
  741. package/package.json +1 -1
  742. package/standalone-navigator.js +2 -0
  743. package/standalone-navigator.src.js +49402 -0
  744. package/themes/avocado.js +3 -3
  745. package/themes/avocado.src.js +2 -1
  746. package/themes/brand-dark.js +3 -3
  747. package/themes/brand-dark.src.js +2 -1
  748. package/themes/brand-light.js +3 -3
  749. package/themes/brand-light.src.js +2 -1
  750. package/themes/dark-blue.js +3 -3
  751. package/themes/dark-blue.src.js +2 -1
  752. package/themes/dark-green.js +3 -3
  753. package/themes/dark-green.src.js +2 -1
  754. package/themes/dark-unica.js +3 -3
  755. package/themes/dark-unica.src.js +2 -1
  756. package/themes/gray.js +3 -3
  757. package/themes/gray.src.js +2 -1
  758. package/themes/grid-light.js +3 -3
  759. package/themes/grid-light.src.js +2 -1
  760. package/themes/grid.js +3 -3
  761. package/themes/grid.src.js +2 -1
  762. package/themes/high-contrast-dark.js +3 -3
  763. package/themes/high-contrast-dark.src.js +2 -1
  764. package/themes/high-contrast-light.js +3 -3
  765. package/themes/high-contrast-light.src.js +2 -1
  766. package/themes/sand-signika.js +3 -3
  767. package/themes/sand-signika.src.js +2 -1
  768. package/themes/skies.js +3 -3
  769. package/themes/skies.src.js +2 -1
  770. package/themes/sunset.js +3 -3
  771. package/themes/sunset.src.js +2 -1
  772. package/es-modules/Core/Renderer/HTML/HTMLRenderer.js +0 -259
  773. package/lib/canvg.js +0 -8
@@ -1,9 +1,9 @@
1
- /**
2
- * Highcharts Gantt JS v11.3.0 (2024-01-10)
1
+ !/**
2
+ * Highcharts Gantt JS v11.4.0 (2024-03-04)
3
3
  *
4
4
  * CurrentDateIndicator
5
5
  *
6
6
  * (c) 2010-2024 Lars A. V. Cabrera
7
7
  *
8
8
  * License: www.highcharts.com/license
9
- */!function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/current-date-indicator",["highcharts"],function(e){return t(e),t.Highcharts=e,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var e=t?t._modules:{};function o(t,e,o,n){t.hasOwnProperty(e)||(t[e]=n.apply(null,o),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:e,module:t[e]}})))}o(e,"Extensions/CurrentDateIndication.js",[e["Core/Globals.js"],e["Core/Utilities.js"]],function(t,e){let{composed:o}=t,{addEvent:n,merge:i,pushUnique:a,wrap:r}=e,s={color:"#ccd3ff",width:2,label:{format:"%a, %b %d %Y, %H:%M",formatter:function(t,e){return this.axis.chart.time.dateFormat(e||"",t)},rotation:0,style:{fontSize:"0.7em"}}};function l(){let t=this.options,e=t.currentDateIndicator;if(e){let o="object"==typeof e?i(s,e):i(s);o.value=Date.now(),o.className="highcharts-current-date-indicator",t.plotLines||(t.plotLines=[]),t.plotLines.push(o)}}function c(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function u(t,e){let o=this.options;return o&&o.className&&-1!==o.className.indexOf("highcharts-current-date-indicator")&&o.label&&"function"==typeof o.label.formatter?(o.value=Date.now(),o.label.formatter.call(this,o.value,o.label.format)):t.call(this,e)}return{compose:function t(e,i){a(o,t)&&(n(e,"afterSetOptions",l),n(i,"render",c),r(i.prototype,"getLabelText",u))}}}),o(e,"masters/modules/current-date-indicator.src.js",[e["Core/Globals.js"],e["Extensions/CurrentDateIndication.js"]],function(t,e){e.compose(t.Axis,t.PlotLineOrBand)})});
9
+ */function(t){"object"==typeof module&&module.exports?(t.default=t,module.exports=t):"function"==typeof define&&define.amd?define("highcharts/modules/current-date-indicator",["highcharts"],function(e){return t(e),t.Highcharts=e,t}):t("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(t){"use strict";var e=t?t._modules:{};function n(t,e,n,o){t.hasOwnProperty(e)||(t[e]=o.apply(null,n),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:e,module:t[e]}})))}n(e,"Extensions/CurrentDateIndication.js",[e["Core/Globals.js"],e["Core/Utilities.js"]],function(t,e){let{composed:n}=t,{addEvent:o,merge:i,pushUnique:a,wrap:r}=e,s={color:"#ccd3ff",width:2,label:{format:"%a, %b %d %Y, %H:%M",formatter:function(t,e){return this.axis.chart.time.dateFormat(e||"",t)},rotation:0,style:{fontSize:"0.7em"}}};function l(){let t=this.options,e=t.currentDateIndicator;if(e){let n="object"==typeof e?i(s,e):i(s);n.value=Date.now(),n.className="highcharts-current-date-indicator",t.plotLines||(t.plotLines=[]),t.plotLines.push(n)}}function c(){this.label&&this.label.attr({text:this.getLabelText(this.options.label)})}function u(t,e){let n=this.options;return n&&n.className&&-1!==n.className.indexOf("highcharts-current-date-indicator")&&n.label&&"function"==typeof n.label.formatter?(n.value=Date.now(),n.label.formatter.call(this,n.value,n.label.format)):t.call(this,e)}return{compose:function(t,e){a(n,"CurrentDateIndication")&&(o(t,"afterSetOptions",l),o(e,"render",c),r(e.prototype,"getLabelText",u))}}}),n(e,"masters/modules/current-date-indicator.src.js",[e["Core/Globals.js"],e["Extensions/CurrentDateIndication.js"]],function(t,e){return e.compose(t.Axis,t.PlotLineOrBand),t})});
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts Gantt JS v11.3.0 (2024-01-10)
2
+ * @license Highcharts Gantt JS v11.4.0 (2024-03-05)
3
3
  *
4
4
  * CurrentDateIndicator
5
5
  *
@@ -111,7 +111,7 @@
111
111
  * @private
112
112
  */
113
113
  function compose(AxisClass, PlotLineOrBandClass) {
114
- if (pushUnique(composed, compose)) {
114
+ if (pushUnique(composed, 'CurrentDateIndication')) {
115
115
  addEvent(AxisClass, 'afterSetOptions', onAxisAfterSetOptions);
116
116
  addEvent(PlotLineOrBandClass, 'render', onPlotLineOrBandRender);
117
117
  wrap(PlotLineOrBandClass.prototype, 'getLabelText', wrapPlotLineOrBandGetLabelText);
@@ -177,5 +177,6 @@
177
177
  const G = Highcharts;
178
178
  CurrentDateIndication.compose(G.Axis, G.PlotLineOrBand);
179
179
 
180
+ return Highcharts;
180
181
  });
181
182
  }));
@@ -1,9 +1,9 @@
1
- /**
2
- * Highcharts JS v11.3.0 (2024-01-10)
1
+ !/**
2
+ * Highcharts JS v11.4.0 (2024-03-04)
3
3
  *
4
4
  * Highcharts cylinder module
5
5
  *
6
6
  * (c) 2010-2024 Kacper Madej
7
7
  *
8
8
  * License: www.highcharts.com/license
9
- */!function(e){"object"==typeof module&&module.exports?(e.default=e,module.exports=e):"function"==typeof define&&define.amd?define("highcharts/modules/cylinder",["highcharts","highcharts/highcharts-3d"],function(t){return e(t),e.Highcharts=t,e}):e("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(e){"use strict";var t=e?e._modules:{};function r(e,t,r,s){e.hasOwnProperty(t)||(e[t]=s.apply(null,r),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:t,module:e[t]}})))}r(t,"Series/Cylinder/SVGElement3DCylinder.js",[t["Core/Color/Color.js"],t["Core/Renderer/RendererRegistry.js"]],function(e,t){let{parse:r}=e,{Element3D:s}=t.getRendererType().prototype;return class extends s{constructor(){super(...arguments),this.parts=["top","bottom","front","back"],this.pathType="cylinder"}fillSetter(e){return this.singleSetterForParts("fill",null,{front:e,back:e,top:r(e).brighten(.1).get(),bottom:r(e).brighten(-.1).get()}),this.color=this.fill=e,this}}}),r(t,"Series/Cylinder/CylinderComposition.js",[t["Core/Globals.js"],t["Core/Math3D.js"],t["Series/Cylinder/SVGElement3DCylinder.js"],t["Core/Utilities.js"]],function(e,t,r,s){let{charts:i,composed:n,deg2rad:o}=e,{perspective:l}=t,{extend:u,pick:d,pushUnique:y}=s;function h(e){return!e.some(e=>"C"===e[0])}function p(e){return this.element3d("cylinder",e)}function c(e){let t=i[this.chartIndex],r=this.cuboidPath(e),s=!r.isTop,n=!r.isFront,o=this.getCylinderEnd(t,e),l=this.getCylinderEnd(t,e,!0);return{front:this.getCylinderFront(o,l),back:this.getCylinderBack(o,l),top:o,bottom:l,zIndexes:{top:s?3:0,bottom:s?0:3,front:n?2:1,back:n?1:2,group:r.zIndexes.group}}}function C(e){let t=[["M",e[0].x,e[0].y]],r=e.length-2;for(let s=1;s<r;s+=3)t.push(["C",e[s].x,e[s].y,e[s+1].x,e[s+1].y,e[s+2].x,e[s+2].y]);return t}function a(e,t){let r=[];if(h(e)){let t=e[0],s=e[2];"M"===t[0]&&"L"===s[0]&&(r.push(["M",s[1],s[2]]),r.push(e[3]),r.push(["L",t[1],t[2]]))}else"C"===e[2][0]&&r.push(["M",e[2][5],e[2][6]]),r.push(e[3],e[4]);if(h(t)){let e=t[0];"M"===e[0]&&(r.push(["L",e[1],e[2]]),r.push(t[3]),r.push(t[2]))}else{let e=t[2],s=t[3],i=t[4];"C"===e[0]&&"C"===s[0]&&"C"===i[0]&&(r.push(["L",i[5],i[6]]),r.push(["C",i[3],i[4],i[1],i[2],s[5],s[6]]),r.push(["C",s[3],s[4],s[1],s[2],e[5],e[6]]))}return r.push(["Z"]),r}function f(e,t,r){let s,i;let{width:n=0,height:u=0,alphaCorrection:y=0}=t,h=d(t.depth,n,0),p=Math.min(n,h)/2,c=o*(e.options.chart.options3d.beta-90+y),C=(t.y||0)+(r?u:0),a=.5519*p,f=n/2+(t.x||0),g=h/2+(t.z||0),m=[{x:0,y:C,z:p},{x:a,y:C,z:p},{x:p,y:C,z:a},{x:p,y:C,z:0},{x:p,y:C,z:-a},{x:a,y:C,z:-p},{x:0,y:C,z:-p},{x:-a,y:C,z:-p},{x:-p,y:C,z:-a},{x:-p,y:C,z:0},{x:-p,y:C,z:a},{x:-a,y:C,z:p},{x:0,y:C,z:p}],x=Math.cos(c),S=Math.sin(c);for(let e of m)s=e.x,i=e.z,e.x=s*x-i*S+f,e.z=i*x+s*S+g;let j=l(m,e,!0);return 2.5>Math.abs(j[3].y-j[9].y)&&2.5>Math.abs(j[0].y-j[6].y)?this.toLinePath([j[0],j[3],j[6],j[9]],!0):this.getCurvedPath(j)}function g(e,t){let r=e.slice(0,3);if(h(t)){let e=t[0];"M"===e[0]&&(r.push(t[2]),r.push(t[1]),r.push(["L",e[1],e[2]]))}else{let e=t[0],s=t[1],i=t[2];"M"===e[0]&&"C"===s[0]&&"C"===i[0]&&(r.push(["L",i[5],i[6]]),r.push(["C",i[3],i[4],i[1],i[2],s[5],s[6]]),r.push(["C",s[3],s[4],s[1],s[2],e[1],e[2]]))}return r.push(["Z"]),r}return{compose:function e(t){if(y(n,e)){let e=t.prototype;e.Element3D.types.cylinder=r,u(e,{cylinder:p,cylinderPath:c,getCurvedPath:C,getCylinderBack:a,getCylinderEnd:f,getCylinderFront:g})}}}}),r(t,"Series/Cylinder/CylinderPoint.js",[t["Core/Series/SeriesRegistry.js"],t["Core/Utilities.js"]],function(e,t){let{column:{prototype:{pointClass:r}}}=e.seriesTypes,{extend:s}=t;class i extends r{}return s(i.prototype,{shapeType:"cylinder"}),i}),r(t,"Series/Cylinder/CylinderSeriesDefaults.js",[],function(){return{}}),r(t,"Series/Cylinder/CylinderSeries.js",[t["Series/Cylinder/CylinderComposition.js"],t["Series/Cylinder/CylinderPoint.js"],t["Series/Cylinder/CylinderSeriesDefaults.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Utilities.js"]],function(e,t,r,s,i){let{column:n}=s.seriesTypes,{extend:o,merge:l}=i;class u extends n{}return u.compose=e.compose,u.defaultOptions=l(n.defaultOptions,r),o(u.prototype,{pointClass:t}),s.registerSeriesType("cylinder",u),u}),r(t,"masters/modules/cylinder.src.js",[t["Series/Cylinder/CylinderSeries.js"],t["Core/Renderer/RendererRegistry.js"]],function(e,t){e.compose(t.getRendererType())})});
9
+ */function(e){"object"==typeof module&&module.exports?(e.default=e,module.exports=e):"function"==typeof define&&define.amd?define("highcharts/modules/cylinder",["highcharts","highcharts/highcharts-3d"],function(t){return e(t),e.Highcharts=t,e}):e("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(e){"use strict";var t=e?e._modules:{};function r(e,t,r,s){e.hasOwnProperty(t)||(e[t]=s.apply(null,r),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:t,module:e[t]}})))}r(t,"Series/Cylinder/SVGElement3DCylinder.js",[t["Core/Color/Color.js"],t["Core/Renderer/RendererRegistry.js"]],function(e,t){let{parse:r}=e,{Element3D:s}=t.getRendererType().prototype;return class extends s{constructor(){super(...arguments),this.parts=["top","bottom","front","back"],this.pathType="cylinder"}fillSetter(e){return this.singleSetterForParts("fill",null,{front:e,back:e,top:r(e).brighten(.1).get(),bottom:r(e).brighten(-.1).get()}),this.color=this.fill=e,this}}}),r(t,"Series/Cylinder/CylinderComposition.js",[t["Core/Globals.js"],t["Core/Math3D.js"],t["Series/Cylinder/SVGElement3DCylinder.js"],t["Core/Utilities.js"]],function(e,t,r,s){let{charts:i,deg2rad:n}=e,{perspective:o}=t,{extend:l,pick:u}=s;function d(e){return!e.some(e=>"C"===e[0])}function y(e){return this.element3d("cylinder",e)}function h(e){let t=i[this.chartIndex],r=this.cuboidPath(e),s=!r.isTop,n=!r.isFront,o=this.getCylinderEnd(t,e),l=this.getCylinderEnd(t,e,!0);return{front:this.getCylinderFront(o,l),back:this.getCylinderBack(o,l),top:o,bottom:l,zIndexes:{top:s?3:0,bottom:s?0:3,front:n?2:1,back:n?1:2,group:r.zIndexes.group}}}function p(e){let t=[["M",e[0].x,e[0].y]],r=e.length-2;for(let s=1;s<r;s+=3)t.push(["C",e[s].x,e[s].y,e[s+1].x,e[s+1].y,e[s+2].x,e[s+2].y]);return t}function c(e,t){let r=[];if(d(e)){let t=e[0],s=e[2];"M"===t[0]&&"L"===s[0]&&(r.push(["M",s[1],s[2]]),r.push(e[3]),r.push(["L",t[1],t[2]]))}else"C"===e[2][0]&&r.push(["M",e[2][5],e[2][6]]),r.push(e[3],e[4]);if(d(t)){let e=t[0];"M"===e[0]&&(r.push(["L",e[1],e[2]]),r.push(t[3]),r.push(t[2]))}else{let e=t[2],s=t[3],i=t[4];"C"===e[0]&&"C"===s[0]&&"C"===i[0]&&(r.push(["L",i[5],i[6]]),r.push(["C",i[3],i[4],i[1],i[2],s[5],s[6]]),r.push(["C",s[3],s[4],s[1],s[2],e[5],e[6]]))}return r.push(["Z"]),r}function C(e,t,r){let s,i;let{width:l=0,height:d=0,alphaCorrection:y=0}=t,h=u(t.depth,l,0),p=Math.min(l,h)/2,c=n*(e.options.chart.options3d.beta-90+y),C=(t.y||0)+(r?d:0),a=.5519*p,f=l/2+(t.x||0),g=h/2+(t.z||0),m=[{x:0,y:C,z:p},{x:a,y:C,z:p},{x:p,y:C,z:a},{x:p,y:C,z:0},{x:p,y:C,z:-a},{x:a,y:C,z:-p},{x:0,y:C,z:-p},{x:-a,y:C,z:-p},{x:-p,y:C,z:-a},{x:-p,y:C,z:0},{x:-p,y:C,z:a},{x:-a,y:C,z:p},{x:0,y:C,z:p}],x=Math.cos(c),j=Math.sin(c);for(let e of m)s=e.x,i=e.z,e.x=s*x-i*j+f,e.z=i*x+s*j+g;let S=o(m,e,!0);return 2.5>Math.abs(S[3].y-S[9].y)&&2.5>Math.abs(S[0].y-S[6].y)?this.toLinePath([S[0],S[3],S[6],S[9]],!0):this.getCurvedPath(S)}function a(e,t){let r=e.slice(0,3);if(d(t)){let e=t[0];"M"===e[0]&&(r.push(t[2]),r.push(t[1]),r.push(["L",e[1],e[2]]))}else{let e=t[0],s=t[1],i=t[2];"M"===e[0]&&"C"===s[0]&&"C"===i[0]&&(r.push(["L",i[5],i[6]]),r.push(["C",i[3],i[4],i[1],i[2],s[5],s[6]]),r.push(["C",s[3],s[4],s[1],s[2],e[1],e[2]]))}return r.push(["Z"]),r}return{compose:function(e){let t=e.prototype;t.cylinder||(t.Element3D.types.cylinder=r,l(t,{cylinder:y,cylinderPath:h,getCurvedPath:p,getCylinderBack:c,getCylinderEnd:C,getCylinderFront:a}))}}}),r(t,"Series/Cylinder/CylinderPoint.js",[t["Core/Series/SeriesRegistry.js"],t["Core/Utilities.js"]],function(e,t){let{column:{prototype:{pointClass:r}}}=e.seriesTypes,{extend:s}=t;class i extends r{}return s(i.prototype,{shapeType:"cylinder"}),i}),r(t,"Series/Cylinder/CylinderSeriesDefaults.js",[],function(){return{}}),r(t,"Series/Cylinder/CylinderSeries.js",[t["Series/Cylinder/CylinderComposition.js"],t["Series/Cylinder/CylinderPoint.js"],t["Series/Cylinder/CylinderSeriesDefaults.js"],t["Core/Series/SeriesRegistry.js"],t["Core/Utilities.js"]],function(e,t,r,s,i){let{column:n}=s.seriesTypes,{extend:o,merge:l}=i;class u extends n{}return u.compose=e.compose,u.defaultOptions=l(n.defaultOptions,r),o(u.prototype,{pointClass:t}),s.registerSeriesType("cylinder",u),u}),r(t,"masters/modules/cylinder.src.js",[t["Core/Globals.js"],t["Series/Cylinder/CylinderSeries.js"],t["Core/Renderer/RendererRegistry.js"]],function(e,t,r){return t.compose(r.getRendererType()),e})});
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Highcharts JS v11.3.0 (2024-01-10)
2
+ * @license Highcharts JS v11.4.0 (2024-03-05)
3
3
  *
4
4
  * Highcharts cylinder module
5
5
  *
@@ -106,17 +106,17 @@
106
106
  * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!
107
107
  *
108
108
  * */
109
- const { charts, composed, deg2rad } = H;
109
+ const { charts, deg2rad } = H;
110
110
  const { perspective } = Math3D;
111
- const { extend, pick, pushUnique } = U;
111
+ const { extend, pick } = U;
112
112
  /* *
113
113
  *
114
114
  * Functions
115
115
  *
116
116
  * */
117
117
  function compose(SVGRendererClass) {
118
- if (pushUnique(composed, compose)) {
119
- const rendererProto = SVGRendererClass.prototype;
118
+ const rendererProto = SVGRendererClass.prototype;
119
+ if (!rendererProto.cylinder) {
120
120
  rendererProto.Element3D.types.cylinder = SVGElement3DCylinder;
121
121
  extend(rendererProto, {
122
122
  cylinder: rendererCylinder,
@@ -146,7 +146,7 @@
146
146
  */
147
147
  function rendererCylinderPath(shapeArgs) {
148
148
  const renderer = this, chart = charts[renderer.chartIndex],
149
- // decide zIndexes of parts based on cubiod logic, for consistency.
149
+ // decide zIndexes of parts based on cuboid logic, for consistency.
150
150
  cuboidData = this.cuboidPath(shapeArgs), isTopFirst = !cuboidData.isTop, isFronFirst = !cuboidData.isFront, top = renderer.getCylinderEnd(chart, shapeArgs), bottom = renderer.getCylinderEnd(chart, shapeArgs, true);
151
151
  return {
152
152
  front: renderer.getCylinderFront(top, bottom),
@@ -237,7 +237,7 @@
237
237
  return path;
238
238
  }
239
239
  /**
240
- * Retruns cylinder path for top or bottom.
240
+ * Returns cylinder path for top or bottom.
241
241
  * @private
242
242
  */
243
243
  function rendererGetCylinderEnd(chart, shapeArgs, isBottom) {
@@ -250,7 +250,7 @@
250
250
  alphaCorrection),
251
251
  // Could be top or bottom of the cylinder
252
252
  y = (shapeArgs.y || 0) + (isBottom ? height : 0),
253
- // Use cubic Bezier curve to draw a cricle in x,z (y is constant).
253
+ // Use cubic Bezier curve to draw a circle in x,z (y is constant).
254
254
  // More math. at spencermortensen.com/articles/bezier-circle/
255
255
  c = 0.5519 * radius, centerX = width / 2 + (shapeArgs.x || 0), centerZ = depth / 2 + (shapeArgs.z || 0),
256
256
  // points could be generated in a loop, but readability will plummet
@@ -308,7 +308,7 @@
308
308
  z: radius
309
309
  }], cosTheta = Math.cos(angleOffset), sinTheta = Math.sin(angleOffset);
310
310
  let path, x, z;
311
- // rotete to match chart's beta and translate to the shape center
311
+ // rotate to match chart's beta and translate to the shape center
312
312
  for (const point of points) {
313
313
  x = point.x;
314
314
  z = point.z;
@@ -321,7 +321,7 @@
321
321
  // check for sub-pixel curve issue, compare front and back edges
322
322
  if (Math.abs(perspectivePoints[3].y - perspectivePoints[9].y) < 2.5 &&
323
323
  Math.abs(perspectivePoints[0].y - perspectivePoints[6].y) < 2.5) {
324
- // use simplied shape
324
+ // use simplified shape
325
325
  path = this.toLinePath([
326
326
  perspectivePoints[0],
327
327
  perspectivePoints[3],
@@ -591,9 +591,10 @@
591
591
 
592
592
  return CylinderSeries;
593
593
  });
594
- _registerModule(_modules, 'masters/modules/cylinder.src.js', [_modules['Series/Cylinder/CylinderSeries.js'], _modules['Core/Renderer/RendererRegistry.js']], function (CylinderSeries, RendererRegistry) {
594
+ _registerModule(_modules, 'masters/modules/cylinder.src.js', [_modules['Core/Globals.js'], _modules['Series/Cylinder/CylinderSeries.js'], _modules['Core/Renderer/RendererRegistry.js']], function (Highcharts, CylinderSeries, RendererRegistry) {
595
595
 
596
596
  CylinderSeries.compose(RendererRegistry.getRendererType());
597
597
 
598
+ return Highcharts;
598
599
  });
599
600
  }));
@@ -1,9 +1,9 @@
1
- /**
2
- * Highcharts JS v11.3.0 (2024-01-10)
1
+ !/**
2
+ * Highcharts JS v11.4.0 (2024-03-04)
3
3
  *
4
4
  * Highcharts
5
5
  *
6
6
  * (c) 2010-2024 Highsoft AS
7
7
  *
8
8
  * License: www.highcharts.com/license
9
- */!function(e){"object"==typeof module&&module.exports?(e.default=e,module.exports=e):"function"==typeof define&&define.amd?define("highcharts/modules/data-tools",["highcharts"],function(t){return e(t),e.Highcharts=t,e}):e("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(e){"use strict";var t=e?e._modules:{};function r(e,t,r,s){e.hasOwnProperty(t)||(e[t]=s.apply(null,r),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:t,module:e[t]}})))}r(t,"Data/Modifiers/DataModifier.js",[t["Core/Utilities.js"]],function(e){var t;let{addEvent:r,fireEvent:s,merge:o}=e;class n{benchmark(e,t){let r=[],s=this,n=()=>{s.modifyTable(e),s.emit({type:"afterBenchmarkIteration"})},{iterations:i}=o({iterations:1},t);s.on("afterBenchmarkIteration",()=>{if(r.length===i){s.emit({type:"afterBenchmark",results:r});return}n()});let l={startTime:0,endTime:0};return s.on("modify",()=>{l.startTime=window.performance.now()}),s.on("afterModify",()=>{l.endTime=window.performance.now(),r.push(l.endTime-l.startTime)}),n(),r}emit(e){s(this,e.type,e)}modify(e,t){let r=this;return new Promise((s,o)=>{e.modified===e&&(e.modified=e.clone(!1,t));try{s(r.modifyTable(e,t))}catch(s){r.emit({type:"error",detail:t,table:e}),o(s)}})}modifyCell(e,t,r,s,o){return this.modifyTable(e)}modifyColumns(e,t,r,s){return this.modifyTable(e)}modifyRows(e,t,r,s){return this.modifyTable(e)}on(e,t){return r(this,e,t)}}return(t=n||(n={})).types={},t.registerType=function(e,r){return!!e&&!t.types[e]&&!!(t.types[e]=r)},n}),r(t,"Data/DataTable.js",[t["Core/Utilities.js"]],function(e){let{addEvent:t,fireEvent:r,uniqueKey:s}=e;class o{static isNull(e){if(e===o.NULL)return!0;if(e instanceof Array){if(!e.length)return!1;for(let t=0,r=e.length;t<r;++t)if(null!==e[t])return!1}else{let t=Object.keys(e);if(!t.length)return!1;for(let r=0,s=t.length;r<s;++r)if(null!==e[t[r]])return!1}return!0}constructor(e={}){this.aliases=e.aliases?JSON.parse(JSON.stringify(e.aliases)):{},this.autoId=!e.id,this.columns={},this.id=e.id||s(),this.modified=this,this.rowCount=0,this.versionTag=s();let t=e.columns||{},r=Object.keys(t),o=this.columns,n=0;for(let e=0,s=r.length,i,l;e<s;++e)i=t[l=r[e]].slice(),o[l]=i,n=Math.max(n,i.length);for(let e=0,t=r.length;e<t;++e)o[r[e]].length=n;this.rowCount=n;let i=e.aliases||{},l=Object.keys(i),a=this.aliases;for(let e=0,t=l.length,r;e<t;++e)a[r=l[e]]=i[r]}clone(e,t){let r={};this.emit({type:"cloneTable",detail:t}),e||(r.aliases=this.aliases,r.columns=this.columns),this.autoId||(r.id=this.id);let s=new o(r);return e||(s.versionTag=this.versionTag),this.emit({type:"afterCloneTable",detail:t,tableClone:s}),s}deleteColumnAlias(e){let t=this.aliases,r=t[e],s=this.modifier;return r&&(delete this.aliases[e],s&&s.modifyColumns(this,{[r]:Array(this.rowCount)},0)),r}deleteColumns(e,t){let r=this.columns,s={},o={},n=this.modifier,i=this.rowCount;if((e=e||Object.keys(r)).length){this.emit({type:"deleteColumns",columnNames:e,detail:t});for(let t=0,n=e.length,l,a;t<n;++t)(l=r[a=e[t]])&&(s[a]=l,o[a]=Array(i)),delete r[a];return Object.keys(r).length||(this.rowCount=0),n&&n.modifyColumns(this,o,0,t),this.emit({type:"afterDeleteColumns",columns:s,columnNames:e,detail:t}),s}}deleteRows(e,t=1,r){let s=[],o=[],n=this.modifier;if(this.emit({type:"deleteRows",detail:r,rowCount:t,rowIndex:e||0}),void 0===e&&(e=0,t=this.rowCount),t>0&&e<this.rowCount){let r=this.columns,n=Object.keys(r);for(let i=0,l=n.length,a,u;i<l;++i){u=(a=r[n[i]]).splice(e,t),i||(this.rowCount=a.length);for(let e=0,t=u.length;e<t;++e)s[e]=s[e]||[],s[e][i]=u[e];o.push(Array(l))}}return n&&n.modifyRows(this,o,e||0,r),this.emit({type:"afterDeleteRows",detail:r,rowCount:t,rowIndex:e||0,rows:s}),s}emit(e){switch(e.type){case"afterDeleteColumns":case"afterDeleteRows":case"afterSetCell":case"afterSetColumns":case"afterSetRows":this.versionTag=s()}r(this,e.type,e)}getCell(e,t){e=this.aliases[e]||e;let r=this.columns[e];if(r)return r[t]}getCellAsBoolean(e,t){e=this.aliases[e]||e;let r=this.columns[e];return!!(r&&r[t])}getCellAsNumber(e,t,r){e=this.aliases[e]||e;let s=this.columns[e],o=s&&s[t];switch(typeof o){case"boolean":return o?1:0;case"number":return isNaN(o)&&!r?null:o}return isNaN(o=parseFloat(`${o}`))&&!r?null:o}getCellAsString(e,t){e=this.aliases[e]||e;let r=this.columns[e];return`${r&&r[t]}`}getColumn(e,t){return this.getColumns([e],t)[e]}getColumnAsNumbers(e,t){let r=this.columns;e=this.aliases[e]||e;let s=r[e],o=[];if(s){let r=s.length;if(t)for(let t=0;t<r;++t)o.push(this.getCellAsNumber(e,t,!0));else{for(let e=0,t;e<r;++e){if("number"==typeof(t=s[e]))return s.slice();if(null!=t)break}for(let t=0;t<r;++t)o.push(this.getCellAsNumber(e,t))}}return o}getColumnNames(){let e=Object.keys(this.columns);return e}getColumns(e,t){let r=this.aliases,s=this.columns,o={};e=e||Object.keys(s);for(let n=0,i=e.length,l,a;n<i;++n)(l=s[r[a=e[n]]||a])&&(o[a]=t?l:l.slice());return o}getModifier(){return this.modifier}getRow(e,t){return this.getRows(e,1,t)[0]}getRowCount(){return this.rowCount}getRowIndexBy(e,t,r){e=this.aliases[e]||e;let s=this.columns[e];if(s){let e=s.indexOf(t,r);if(-1!==e)return e}}getRowObject(e,t){return this.getRowObjects(e,1,t)[0]}getRowObjects(e=0,t=this.rowCount-e,r){let s=this.aliases,o=this.columns,n=Array(t);r=r||Object.keys(o);for(let i=e,l=0,a=Math.min(this.rowCount,e+t),u,h;i<a;++i,++l)for(let e of(h=n[l]={},r))u=o[s[e]||e],h[e]=u?u[i]:void 0;return n}getRows(e=0,t=this.rowCount-e,r){let s=this.aliases,o=this.columns,n=Array(t);r=r||Object.keys(o);for(let i=e,l=0,a=Math.min(this.rowCount,e+t),u,h;i<a;++i,++l)for(let e of(h=n[l]=[],r))u=o[s[e]||e],h.push(u?u[i]:void 0);return n}getVersionTag(){return this.versionTag}hasColumns(e){let t=this.aliases,r=this.columns;for(let s=0,o=e.length,n;s<o;++s)if(!r[n=e[s]]&&!t[n])return!1;return!0}hasRowWith(e,t){e=this.aliases[e]||e;let r=this.columns[e];return!!r&&-1!==r.indexOf(t)}on(e,r){return t(this,e,r)}renameColumn(e,t){let r=this.columns;if(r[e]){if(e!==t){let s=this.aliases;s[t]&&delete s[t],r[t]=r[e],delete r[e]}return!0}return!1}setCell(e,t,r,s){let o=this.columns,n=this.modifier,i=o[e=this.aliases[e]||e];i&&i[t]===r||(this.emit({type:"setCell",cellValue:r,columnName:e,detail:s,rowIndex:t}),i||(i=o[e]=Array(this.rowCount)),t>=this.rowCount&&(this.rowCount=t+1),i[t]=r,n&&n.modifyCell(this,e,t,r),this.emit({type:"afterSetCell",cellValue:r,columnName:e,detail:s,rowIndex:t}))}setColumn(e,t=[],r=0,s){this.setColumns({[e]:t},r,s)}setColumns(e,t,r){let s=this.columns,o=this.modifier,n=(this.rowCount,void 0===t),i=Object.keys(e);this.emit({type:"setColumns",columns:e,columnNames:i,detail:r,rowIndex:t});for(let r=0,o=i.length,l,a;r<o;++r)if(l=e[a=i[r]],a=this.aliases[a]||a,n)s[a]=l.slice(),this.rowCount=l.length;else{let e=s[a]?s[a]:s[a]=Array(this.rowCount);for(let r=t||0,s=l.length;r<s;++r)e[r]=l[r];this.rowCount=Math.max(this.rowCount,e.length)}let l=Object.keys(s);for(let e=0,t=l.length;e<t;++e)s[l[e]].length=this.rowCount;o&&o.modifyColumns(this,e,t||0),this.emit({type:"afterSetColumns",columns:e,columnNames:i,detail:r,rowIndex:t})}setModifier(e,t){let r=this;return r.emit({type:"setModifier",detail:t,modifier:e,modified:r.modified}),r.modified=r,r.modifier=e,(e?e.modify(r):Promise.resolve(r)).then(r=>(r.emit({type:"afterSetModifier",detail:t,modifier:e,modified:r.modified}),r)).catch(t=>{throw r.emit({type:"setModifierError",error:t,modifier:e,modified:r.modified}),t})}setRow(e,t,r){this.setRows([e],t,r)}setRows(e,t=this.rowCount,r){let s=this.aliases,n=this.columns,i=Object.keys(n),l=this.modifier,a=e.length;this.emit({type:"setRows",detail:r,rowCount:a,rowIndex:t,rows:e});for(let r=0,l=t,u;r<a;++r,++l)if((u=e[r])===o.NULL)for(let e=0,t=i.length;e<t;++e)n[i[e]][l]=null;else if(u instanceof Array)for(let e=0,t=i.length;e<t;++e)n[i[e]][l]=u[e];else{let e=Object.keys(u);for(let t=0,r=e.length,o;t<r;++t)n[o=s[o=e[t]]||o]||(n[o]=Array(l+1)),n[o][l]=u[o]}let u=t+a;if(u>this.rowCount){this.rowCount=u;for(let e=0,t=i.length;e<t;++e)n[i[e]].length=u}l&&l.modifyRows(this,e,t),this.emit({type:"afterSetRows",detail:r,rowCount:a,rowIndex:t,rows:e})}}return o.NULL={},o.version="1.0.0",o}),r(t,"Data/Connectors/DataConnector.js",[t["Data/Modifiers/DataModifier.js"],t["Data/DataTable.js"],t["Core/Utilities.js"]],function(e,t,r){var s;let{addEvent:o,fireEvent:n,merge:i,pick:l}=r;class a{constructor(e={}){this.table=new t(e.dataTable),this.metadata=e.metadata||{columns:{}}}get polling(){return!!this.polling}describeColumn(e,t){let r=this.metadata.columns;r[e]=i(r[e]||{},t)}describeColumns(e){let t;let r=Object.keys(e);for(;"string"==typeof(t=r.pop());)this.describeColumn(t,e[t])}emit(e){n(this,e.type,e)}getColumnOrder(e){let t=this.metadata.columns,r=Object.keys(t||{});if(r.length)return r.sort((e,r)=>l(t[e].index,0)-l(t[r].index,0))}getSortedColumns(e){return this.table.getColumns(this.getColumnOrder(e))}load(){return n(this,"afterLoad",{table:this.table}),Promise.resolve(this)}on(e,t){return o(this,e,t)}save(){return n(this,"saveError",{table:this.table}),Promise.reject(Error("Not implemented"))}setColumnOrder(e){for(let t=0,r=e.length;t<r;++t)this.describeColumn(e[t],{index:t})}setModifierOptions(t){let r=t&&e.types[t.type];return this.table.setModifier(r?new r(t):void 0).then(()=>this)}startPolling(e=1e3){let t=this;window.clearTimeout(t._polling),t._polling=window.setTimeout(()=>t.load().catch(e=>t.emit({type:"loadError",error:e,table:t.table})).then(()=>{t._polling&&t.startPolling(e)}),e)}stopPolling(){window.clearTimeout(this._polling),delete this._polling}whatIs(e){return this.metadata.columns[e]}}return(s=a||(a={})).types={},s.registerType=function(e,t){return!!e&&!s.types[e]&&!!(s.types[e]=t)},a}),r(t,"Data/Converters/DataConverter.js",[t["Data/DataTable.js"],t["Core/Utilities.js"]],function(e,t){let{addEvent:r,fireEvent:s,isNumber:o,merge:n}=t;class i{constructor(e){this.dateFormats={"YYYY/mm/dd":{regex:/^([0-9]{4})([\-\.\/])([0-9]{1,2})\2([0-9]{1,2})$/,parser:function(e){return e?Date.UTC(+e[1],e[3]-1,+e[4]):NaN}},"dd/mm/YYYY":{regex:/^([0-9]{1,2})([\-\.\/])([0-9]{1,2})\2([0-9]{4})$/,parser:function(e){return e?Date.UTC(+e[4],e[3]-1,+e[1]):NaN},alternative:"mm/dd/YYYY"},"mm/dd/YYYY":{regex:/^([0-9]{1,2})([\-\.\/])([0-9]{1,2})\2([0-9]{4})$/,parser:function(e){return e?Date.UTC(+e[4],e[1]-1,+e[3]):NaN}},"dd/mm/YY":{regex:/^([0-9]{1,2})([\-\.\/])([0-9]{1,2})\2([0-9]{2})$/,parser:function(e){let t=new Date;if(!e)return NaN;let r=+e[4];return r>t.getFullYear()-2e3?r+=1900:r+=2e3,Date.UTC(r,e[3]-1,+e[1])},alternative:"mm/dd/YY"},"mm/dd/YY":{regex:/^([0-9]{1,2})([\-\.\/])([0-9]{1,2})\2([0-9]{2})$/,parser:function(e){return e?Date.UTC(+e[4]+2e3,e[1]-1,+e[3]):NaN}}};let t=n(i.defaultOptions,e),r=t.decimalPoint;("."===r||","===r)&&(r="."===r?"\\.":",",this.decimalRegExp=RegExp("^(-?[0-9]+)"+r+"([0-9]+)$")),this.options=t}asBoolean(e){return"boolean"==typeof e?e:"string"==typeof e?""!==e&&"0"!==e&&"false"!==e:!!this.asNumber(e)}asDate(e){let t;if("string"==typeof e)t=this.parseDate(e);else if("number"==typeof e)t=e;else{if(e instanceof Date)return e;t=this.parseDate(this.asString(e))}return new Date(t)}asGuessedType(e){let t={number:this.asNumber,Date:this.asDate,string:this.asString};return t[this.guessType(e)].call(this,e)}asNumber(e){if("number"==typeof e)return e;if("boolean"==typeof e)return e?1:0;if("string"==typeof e){let t=this.decimalRegExp;if(e.indexOf(" ")>-1&&(e=e.replace(/\s+/g,"")),t){if(!t.test(e))return NaN;e=e.replace(t,"$1.$2")}return parseFloat(e)}return e instanceof Date?e.getDate():e?e.getRowCount():NaN}asString(e){return""+e}deduceDateFormat(e,t,r){let s=[],o=[],n="YYYY/mm/dd",i,l=[],a=0,u=!1,h,m;for((!t||t>e.length)&&(t=e.length);a<t;a++)if(void 0!==e[a]&&e[a]&&e[a].length)for(m=0,i=e[a].trim().replace(/[-\.\/]/g," ").split(" "),l=["","",""];m<i.length;m++)m<l.length&&(h=parseInt(i[m],10))&&(o[m]=!o[m]||o[m]<h?h:o[m],void 0!==s[m]?s[m]!==h&&(s[m]=!1):s[m]=h,h>31?h<100?l[m]="YY":l[m]="YYYY":h>12&&h<=31?(l[m]="dd",u=!0):l[m].length||(l[m]="mm"));if(u){for(m=0;m<s.length;m++)!1!==s[m]?o[m]>12&&"YY"!==l[m]&&"YYYY"!==l[m]&&(l[m]="YY"):o[m]>12&&"mm"===l[m]&&(l[m]="dd");3===l.length&&"dd"===l[1]&&"dd"===l[2]&&(l[2]="YY"),n=l.join("/")}return r&&(this.options.dateFormat=n),n}emit(e){s(this,e.type,e)}export(e,t){throw this.emit({type:"exportError",columns:[],headers:[]}),Error("Not implemented")}getTable(){throw Error("Not implemented")}guessType(e){let t="string";if("string"==typeof e){let r=this.trim(`${e}`),s=this.decimalRegExp,n=this.trim(r,!0);s&&(n=s.test(n)?n.replace(s,"$1.$2"):"");let i=parseFloat(n);if(+n===i)e=i;else{let r=this.parseDate(e);t=o(r)?"Date":"string"}}return"number"==typeof e&&(t=e>31536e6?"Date":"number"),t}on(e,t){return r(this,e,t)}parse(e){throw this.emit({type:"parseError",columns:[],headers:[]}),Error("Not implemented")}parseDate(e,t){let r=this.options,s=t||r.dateFormat,n=NaN,i,l,a;if(r.parseDate)n=r.parseDate(e);else{if(s)(l=this.dateFormats[s])||(l=this.dateFormats["YYYY/mm/dd"]),(a=e.match(l.regex))&&(n=l.parser(a));else for(i in this.dateFormats)if(l=this.dateFormats[i],a=e.match(l.regex)){s=i,n=l.parser(a);break}!a&&("object"==typeof(a=Date.parse(e))&&null!==a&&a.getTime?n=a.getTime()-6e4*a.getTimezoneOffset():o(a)&&(n=a-6e4*new Date(a).getTimezoneOffset(),-1===e.indexOf("2001")&&2001===new Date(n).getFullYear()&&(n=NaN)))}return n}trim(e,t){return"string"==typeof e&&(e=e.replace(/^\s+|\s+$/g,""),t&&/^[0-9\s]+$/.test(e)&&(e=e.replace(/\s/g,""))),e}}return i.defaultOptions={dateFormat:"",alternativeFormat:"",startColumn:0,endColumn:Number.MAX_VALUE,startRow:0,endRow:Number.MAX_VALUE,firstRowAsNames:!0,switchRowsAndColumns:!1},(i||(i={})).getTableFromColumns=function(t=[],r=[]){let s=new e;for(let e=0,o=Math.max(r.length,t.length);e<o;++e)s.setColumn(r[e]||`${e}`,t[e]);return s},i}),r(t,"Data/DataCursor.js",[],function(){class e{constructor(e={}){this.emittingRegister=[],this.listenerMap={},this.stateMap=e}addListener(e,t,r){let s=this.listenerMap[e]=this.listenerMap[e]||{},o=s[t]=s[t]||[];return o.push(r),this}buildEmittingTag(e){return("position"===e.cursor.type?[e.table.id,e.cursor.column,e.cursor.row,e.cursor.state,e.cursor.type]:[e.table.id,e.cursor.columns,e.cursor.firstRow,e.cursor.lastRow,e.cursor.state,e.cursor.type]).join("\x00")}emitCursor(t,r,s,o,n){let i="object"==typeof r?r:s,l="object"==typeof o?o:s,a="string"==typeof r?r:void 0,u=t.id,h=i.state,m=this.listenerMap[u]&&this.listenerMap[u][h];if(n=n||!0===o,m){let r=this.stateMap[u]=this.stateMap[u]||{},s=r[i.state]||[];n&&(s.length||(r[i.state]=s),-1===e.getIndex(i,s)&&s.push(i));let o={cursor:i,cursors:s,table:t};l&&(o.event=l),a&&(o.group=a);let h=this.emittingRegister,c=this.buildEmittingTag(o);if(h.indexOf(c)>=0)return this;try{this.emittingRegister.push(c);for(let e=0,t=m.length;e<t;++e)m[e].call(this,o)}finally{let e=this.emittingRegister.indexOf(c);e>=0&&this.emittingRegister.splice(e,1)}}return this}remitCursor(t,r){let s=this.stateMap[t]&&this.stateMap[t][r.state];if(s){let t=e.getIndex(r,s);t>=0&&s.splice(t,1)}return this}removeListener(e,t,r){let s=this.listenerMap[e]&&this.listenerMap[e][t];if(s){let e=s.indexOf(r);e&&s.splice(e,1)}return this}}return e.version="1.0.0",function(e){function t(e,t){if("range"===e.type)return e;let r={type:"range",firstRow:e.row??(t&&t.firstRow)??0,lastRow:e.row??(t&&t.lastRow)??Number.MAX_VALUE,state:e.state};return void 0!==e.column&&(r.columns=[e.column]),r}e.getIndex=function(e,t){if("position"===e.type){for(let r,s=0,o=t.length;s<o;++s)if("position"===(r=t[s]).type&&r.state===e.state&&r.column===e.column&&r.row===e.row)return s}else{let r=JSON.stringify(e.columns);for(let s,o=0,n=t.length;o<n;++o)if("range"===(s=t[o]).type&&s.state===e.state&&s.firstRow===e.firstRow&&s.lastRow===e.lastRow&&JSON.stringify(s.columns)===r)return o}return -1},e.isEqual=function(e,t){return"position"===e.type&&"position"===t.type?e.column===t.column&&e.row===t.row&&e.state===t.state:"range"===e.type&&"range"===t.type&&e.firstRow===t.firstRow&&e.lastRow===t.lastRow&&JSON.stringify(e.columns)===JSON.stringify(t.columns)},e.isInRange=function(e,r){"position"===r.type&&(r=t(r)),"position"===e.type&&(e=t(e,r));let s=e.columns,o=r.columns;return e.firstRow>=r.firstRow&&e.lastRow<=r.lastRow&&(!s||!o||s.every(e=>o.indexOf(e)>=0))},e.toPositions=function(e){if("position"===e.type)return[e];let t=e.columns||[],r=[],s=e.state;for(let o=e.firstRow,n=e.lastRow;o<n;++o){if(!t.length){r.push({type:"position",row:o,state:s});continue}for(let e=0,n=t.length;e<n;++e)r.push({type:"position",column:t[e],row:o,state:s})}return r},e.toRange=t}(e||(e={})),e}),r(t,"Data/DataPoolDefaults.js",[],function(){return{connectors:[]}}),r(t,"Data/DataPool.js",[t["Data/Connectors/DataConnector.js"],t["Data/DataPoolDefaults.js"],t["Core/Utilities.js"]],function(e,t,r){class s{constructor(e=t){e.connectors=e.connectors||[],this.connectors={},this.options=e,this.waiting={}}emit(e){r.fireEvent(this,e.type,e)}getConnector(e){let t=this.connectors[e];if(t)return Promise.resolve(t);let r=this.waiting[e];if(!r){r=this.waiting[e]=[];let t=this.getConnectorOptions(e);if(!t)throw Error(`Connector not found. (${e})`);this.loadConnector(t).then(t=>{delete this.waiting[e];for(let e=0,s=r.length;e<s;++e)r[e][0](t)}).catch(t=>{delete this.waiting[e];for(let e=0,s=r.length;e<s;++e)r[e][1](t)})}return new Promise((e,t)=>{r.push([e,t])})}getConnectorIds(){let e=this.options.connectors,t=[];for(let r=0,s=e.length;r<s;++r)t.push(e[r].id);return t}getConnectorOptions(e){let t=this.options.connectors;for(let r=0,s=t.length;r<s;++r)if(t[r].id===e)return t[r]}getConnectorTable(e){return this.getConnector(e).then(e=>e.table)}isNewConnector(e){return!this.connectors[e]}loadConnector(t){return new Promise((r,s)=>{this.emit({type:"load",options:t});let o=e.types[t.type];if(!o)throw Error(`Connector type not found. (${t.type})`);let n=new o(t.options);n.load().then(e=>{this.connectors[t.id]=e,this.emit({type:"afterLoad",options:t}),r(e)}).catch(s)})}on(e,t){return r.addEvent(this,e,t)}setConnectorOptions(e){let t=this.options.connectors,r=this.connectors;this.emit({type:"setConnectorOptions",options:e});for(let r=0,s=t.length;r<s;++r)if(t[r].id===e.id){t.splice(r,1);break}r[e.id]&&(r[e.id].stopPolling(),delete r[e.id]),t.push(e),this.emit({type:"afterSetConnectorOptions",options:e})}}return s.version="1.0.0",s}),r(t,"Data/Formula/FormulaParser.js",[],function(){let e=/^(?:FALSE|TRUE)/,t=/^[+-]?\d+(?:\.\d+)?(?:e[+-]\d+)?/,r=/^[+-]?\d+(?:,\d+)?(?:e[+-]\d+)?/,s=/^([A-Z][A-Z\d\.]*)\(/,o=/^(?:[+\-*\/^<=>]|<=|=>)/,n=/^(\$?[A-Z]+)(\$?\d+)\:(\$?[A-Z]+)(\$?\d+)/,i=/^R(\d*|\[\d+\])C(\d*|\[\d+\])\:R(\d*|\[\d+\])C(\d*|\[\d+\])/,l=/^(\$?[A-Z]+)(\$?\d+)(?![\:C])/,a=/^R(\d*|\[\d+\])C(\d*|\[\d+\])(?!\:)/;function u(e){let t=0;for(let r=0,s=e.length,o,n=1;r<s;++r){if("("===(o=e[r])){t||(n=r+1),++t;continue}if(")"===o&&!--t)return e.substring(n,r)}if(t>0){let e=Error("Incomplete parantheses.");throw e.name="FormulaParseError",e}return""}function h(e){let t=-1;for(let r=0,s=e.length,o,n=!1;r<s;++r){if("\\"===(o=e[r])){n=!n;continue}if(n){n=!1;continue}if('"'===o){if(!(t<0))return e.substring(t+1,r);t=r}}let r=Error("Incomplete string.");throw r.name="FormulaParseError",r}function m(e,t){let r;if(r=e.match(i)){let e=""===r[2]||"["===r[2][0],t=""===r[1]||"["===r[1][0],s=""===r[4]||"["===r[4][0],o=""===r[3]||"["===r[3][0],n={type:"range",beginColumn:e?parseInt(r[2].substring(1,-1)||"0",10):parseInt(r[2],10)-1,beginRow:t?parseInt(r[1].substring(1,-1)||"0",10):parseInt(r[1],10)-1,endColumn:s?parseInt(r[4].substring(1,-1)||"0",10):parseInt(r[4],10)-1,endRow:o?parseInt(r[3].substring(1,-1)||"0",10):parseInt(r[3],10)-1};return e&&(n.beginColumnRelative=!0),t&&(n.beginRowRelative=!0),s&&(n.endColumnRelative=!0),o&&(n.endRowRelative=!0),n}if(r=e.match(n)){let e="$"!==r[1][0],t="$"!==r[2][0],s="$"!==r[3][0],o="$"!==r[4][0],n={type:"range",beginColumn:f(e?r[1]:r[1].substring(1))-1,beginRow:parseInt(t?r[2]:r[2].substring(1),10)-1,endColumn:f(s?r[3]:r[3].substring(1))-1,endRow:parseInt(o?r[4]:r[4].substring(1),10)-1};return e&&(n.beginColumnRelative=!0),t&&(n.beginRowRelative=!0),s&&(n.endColumnRelative=!0),o&&(n.endRowRelative=!0),n}let s=c(e,t);return 1===s.length&&"string"!=typeof s[0]?s[0]:s}function c(n,i){let d=i?r:t,p=[],g,y=("="===n[0]?n.substring(1):n).trim();for(;y;){if(g=y.match(a)){let e=""===g[2]||"["===g[2][0],t=""===g[1]||"["===g[1][0],r={type:"reference",column:e?parseInt(g[2].substring(1,-1)||"0",10):parseInt(g[2],10)-1,row:t?parseInt(g[1].substring(1,-1)||"0",10):parseInt(g[1],10)-1};e&&(r.columnRelative=!0),t&&(r.rowRelative=!0),p.push(r),y=y.substring(g[0].length).trim();continue}if(g=y.match(l)){let e="$"!==g[1][0],t="$"!==g[2][0],r={type:"reference",column:f(e?g[1]:g[1].substring(1))-1,row:parseInt(t?g[2]:g[2].substring(1),10)-1};e&&(r.columnRelative=!0),t&&(r.rowRelative=!0),p.push(r),y=y.substring(g[0].length).trim();continue}if(g=y.match(o)){p.push(g[0]),y=y.substring(g[0].length).trim();continue}if(g=y.match(e)){p.push("TRUE"===g[0]),y=y.substring(g[0].length).trim();continue}if(g=y.match(d)){p.push(parseFloat(g[0])),y=y.substring(g[0].length).trim();continue}if('"'===y[0]){let e=h(y);p.push(e.substring(1,-1)),y=y.substring(e.length+2).trim();continue}if(g=y.match(s)){y=y.substring(g[1].length).trim();let e=u(y);p.push({type:"function",name:g[1],args:function(e,t){let r=[],s=t?";":",",o=0,n="";for(let i=0,l=e.length,a;i<l;++i)if((a=e[i])===s&&!o&&n)r.push(m(n,t)),n="";else if('"'!==a||o||n)" "!==a&&(n+=a,"("===a?++o:")"===a&&--o);else{let t=h(e.substring(i));r.push(t),i+=t.length+1}return!o&&n&&r.push(m(n,t)),r}(e,i)}),y=y.substring(e.length+2).trim();continue}if("("===y[0]){let e=u(y);if(e){p.push(c(e,i)),y=y.substring(e.length+2).trim();continue}}let t=n.length-y.length,r=Error("Unexpected character `"+n.substring(t,t+1)+"` at position "+(t+1)+". (`..."+n.substring(t-5,t+6)+"...`)");throw r.name="FormulaParseError",r}return p}function f(e){let t=0;for(let r=0,s=e.length,o,n=e.length-1;r<s;++r)(o=e.charCodeAt(r))>=65&&o<=90&&(t+=(o-64)*Math.pow(26,n)),--n;return t}return{parseFormula:c}}),r(t,"Data/Formula/FormulaTypes.js",[],function(){let e=["+","-","*","/","^","=","<","<=",">",">="];return{isFormula:function(e){return e instanceof Array},isFunction:function(e){return"object"==typeof e&&!(e instanceof Array)&&"function"===e.type},isOperator:function(t){return"string"==typeof t&&e.indexOf(t)>=0},isRange:function(e){return"object"==typeof e&&!(e instanceof Array)&&"range"===e.type},isReference:function(e){return"object"==typeof e&&!(e instanceof Array)&&"reference"===e.type},isValue:function(e){return"boolean"==typeof e||"number"==typeof e||"string"==typeof e}}}),r(t,"Data/Formula/FormulaProcessor.js",[t["Data/Formula/FormulaTypes.js"]],function(e){let{isFormula:t,isFunction:r,isOperator:s,isRange:o,isReference:n,isValue:i}=e,l=/ */,a=Number.MAX_VALUE/1.000000000001,u=Number.MAX_VALUE/1.000000000002,h=Number.MAX_VALUE,m={"^":3,"*":2,"/":2,"+":1,"-":1,"=":0,"<":0,"<=":0,">":0,">=":0},c={},f=/^[A-Z][A-Z\.]*$/;function d(e){switch(typeof e){case"boolean":return e?h:a;case"string":return u;case"number":return e;default:return NaN}}function p(e){return"string"==typeof e?e.toLowerCase().replace(l,"\x00"):e}function g(e){switch(typeof e){case"boolean":return e?1:0;case"string":return parseFloat(e.replace(",","."));case"number":return e;default:return NaN}}function y(e,t,r){let s;switch(e){case"=":return p(t)===p(r);case"<":if(typeof t==typeof r)return p(t)<p(r);return d(t)<d(r);case"<=":if(typeof t==typeof r)return p(t)<=p(r);return d(t)<=d(r);case">":if(typeof t==typeof r)return p(t)>p(r);return d(t)>d(r);case">=":if(typeof t==typeof r)return p(t)>=p(r);return d(t)>=d(r)}switch(t=g(t),r=g(r),e){case"+":s=t+r;break;case"-":s=t-r;break;case"*":s=t*r;break;case"/":s=t/r;break;case"^":s=Math.pow(t,r);break;default:return NaN}return s%1?Math.round(1e9*s)/1e9:s}function b(e,s){return i(e)?e:o(e)?s&&C(e,s)||[]:r(e)?N(e,s):D(t(e)?e:[e],s)}function C(e,t){let r=t.getColumnNames().slice(e.beginColumn,e.endColumn+1),s=[];for(let o=0,n=r.length,l;o<n;++o){let n=t.getColumn(r[o],!0)||[];for(let a=e.beginRow,u=e.endRow+1;a<u;++a)"string"==typeof(l=n[a])&&"="===l[0]&&t!==t.modified&&(l=t.modified.getCell(r[o],a)),s.push(i(l)?l:NaN)}return s}function w(e,t){let r=t.getColumnNames()[e.column];if(r){let s=t.getCell(r,e.row);if("string"==typeof s&&"="===s[0]&&t!==t.modified){let s=t.modified.getCell(r,e.row);return i(s)?s:NaN}return i(s)?s:NaN}return NaN}function D(e,o){let l;for(let a=0,u=e.length,h,c,f,d;a<u;++a){if(s(h=e[a])){c=h;continue}if(i(h)?d=h:t(h)?d=D(e,o):r(h)?d=i(f=N(h,o))?f:NaN:n(h)&&(d=o&&w(h,o)),void 0!==d){if(void 0===l)l=c?y(c,0,d):d;else{if(!c)return NaN;let t=e[a+1];s(t)&&m[t]>m[c]&&(d=y(t,d,D(e.slice(a+2))),a=u),l=y(c,l,d)}c=void 0,d=void 0}}return i(l)?l:NaN}function N(e,t,r){let s=c[e.name];if(s)try{return s(e.args,t)}catch{return NaN}let o=Error(`Function "${e.name}" not found.`);throw o.name="FormulaProcessError",o}return{asNumber:g,getArgumentValue:b,getArgumentsValues:function(e,t){let r=[];for(let s=0,o=e.length;s<o;++s)r.push(b(e[s],t));return r},getRangeValues:C,getReferenceValue:w,processFormula:D,processorFunctions:c,registerProcessorFunction:function(e,t){return f.test(e)&&!c[e]&&!!(c[e]=t)},translateReferences:function e(t,s=0,i=0){for(let l=0,a=t.length,u;l<a;++l)(u=t[l])instanceof Array?e(u,s,i):r(u)?e(u.args,s,i):o(u)?(u.beginColumnRelative&&(u.beginColumn+=s),u.beginRowRelative&&(u.beginRow+=i),u.endColumnRelative&&(u.endColumn+=s),u.endRowRelative&&(u.endRow+=i)):n(u)&&(u.columnRelative&&(u.column+=s),u.rowRelative&&(u.row+=i));return t}}}),r(t,"Data/Formula/Functions/ABS.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){let s=t(e[0],r);switch(typeof s){case"number":return Math.abs(s);case"object":{let e=[];for(let t=0,r=s.length,o;t<r;++t){if("number"!=typeof(o=s[t]))return NaN;e.push(Math.abs(o))}return e}default:return NaN}}return e.registerProcessorFunction("ABS",r),r}),r(t,"Data/Formula/Functions/AND.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,s){for(let o=0,n=e.length,i;o<n;++o)if(!(i=t(e[o],s))||"object"==typeof i&&!r(i,s))return!1;return!0}return e.registerProcessorFunction("AND",r),r}),r(t,"Data/Formula/Functions/AVERAGE.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentsValues:t}=e;function r(e,r){let s=t(e,r),o=0,n=0;for(let e=0,t=s.length,r;e<t;++e)switch(typeof(r=s[e])){case"number":isNaN(r)||(++o,n+=r);break;case"object":for(let e=0,t=r.length,s;e<t;++e)"number"!=typeof(s=r[e])||isNaN(s)||(++o,n+=s)}return o?n/o:0}return e.registerProcessorFunction("AVERAGE",r),r}),r(t,"Data/Formula/Functions/AVERAGEA.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){let s=0,o=0;for(let n=0,i=e.length,l;n<i;++n)switch(typeof(l=t(e[n],r))){case"boolean":++s,o+=l?1:0;continue;case"number":isNaN(l)||(++s,o+=l);continue;case"string":++s;continue;default:for(let e=0,t=l.length,r;e<t;++e)switch(typeof(r=l[e])){case"boolean":++s,o+=r?1:0;continue;case"number":isNaN(r)||(++s,o+=r);continue;case"string":++s;continue}continue}return s?o/s:0}return e.registerProcessorFunction("AVERAGEA",r),r}),r(t,"Data/Formula/Functions/COUNT.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){function t(r,s){let o=e.getArgumentsValues(r,s),n=0;for(let e=0,r=o.length,i;e<r;++e)switch(typeof(i=o[e])){case"number":!isNaN(i)&&++n;break;case"object":n+=t(i,s)}return n}return e.registerProcessorFunction("COUNT",t),t}),r(t,"Data/Formula/Functions/COUNTA.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){function t(r,s){let o=e.getArgumentsValues(r,s),n=0;for(let e=0,r=o.length,i;e<r;++e){switch(typeof(i=o[e])){case"number":if(isNaN(i))continue;break;case"object":n+=t(i,s);continue;case"string":if(!i)continue}++n}return n}return e.registerProcessorFunction("COUNTA",t),t}),r(t,"Data/Formula/Functions/IF.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){return t(e[0],r)?t(e[1],r):t(e[2],r)}return e.registerProcessorFunction("IF",r),r}),r(t,"Data/Formula/Functions/ISNA.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){let s=t(e[0],r);return"number"!=typeof s||isNaN(s)}return e.registerProcessorFunction("ISNA",r),r}),r(t,"Data/Formula/Functions/MAX.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentsValues:t}=e;function r(e,s){let o=t(e,s),n=Number.NEGATIVE_INFINITY;for(let e=0,t=o.length,s;e<t;++e)switch(typeof(s=o[e])){case"number":s>n&&(n=s);break;case"object":(s=r(s))>n&&(n=s)}return isFinite(n)?n:0}return e.registerProcessorFunction("MAX",r),r}),r(t,"Data/Formula/Functions/MEDIAN.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){function t(t,r){let s=[],o=e.getArgumentsValues(t,r);for(let e=0,t=o.length,r;e<t;++e)switch(typeof(r=o[e])){case"number":isNaN(r)||s.push(r);break;case"object":for(let e=0,t=r.length,o;e<t;++e)"number"!=typeof(o=r[e])||isNaN(o)||s.push(o)}let n=s.length;if(!n)return NaN;let i=Math.floor(n/2);return n%2?s[i]:(s[i-1]+s[i])/2}return e.registerProcessorFunction("MEDIAN",t),t}),r(t,"Data/Formula/Functions/MIN.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentsValues:t}=e;function r(e,s){let o=t(e,s),n=Number.POSITIVE_INFINITY;for(let e=0,t=o.length,s;e<t;++e)switch(typeof(s=o[e])){case"number":s<n&&(n=s);break;case"object":(s=r(s))<n&&(n=s)}return isFinite(n)?n:0}return e.registerProcessorFunction("MIN",r),r}),r(t,"Data/Formula/Functions/MOD.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){let s=t(e[0],r),o=t(e[1],r);return("object"==typeof s&&(s=s[0]),"object"==typeof o&&(o=o[0]),"number"!=typeof s||"number"!=typeof o||0===o)?NaN:s%o}return e.registerProcessorFunction("MOD",r),r}),r(t,"Data/Formula/Functions/MODE.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){function t(t,r){let s={},o=e.getArgumentsValues(t,r);for(let e=0,t=o.length,r;e<t;++e)switch(typeof(r=o[e])){case"number":isNaN(r)||(s[r]=(s[r]||0)+1);break;case"object":for(let e=0,t=r.length,o;e<t;++e)"number"!=typeof(o=r[e])||isNaN(o)||(s[o]=(s[o]||0)+1)}return s}function r(e,r){let s=t(e,r),o=Object.keys(s);if(!o.length)return NaN;let n=[parseFloat(o[0])],i=s[o[0]];for(let e=1,t=o.length,r,l;e<t;++e)i<(l=s[r=o[e]])?(n=[parseFloat(r)],i=l):i===l&&n.push(parseFloat(r));return i>1?n:NaN}function s(e,r){let s=t(e,r),o=Object.keys(s);if(!o.length)return NaN;let n=parseFloat(o[0]),i=s[o[0]];for(let e=1,t=o.length,r,l,a;e<t;++e)i<(a=s[r=o[e]])?(n=parseFloat(r),i=a):i===a&&n>(l=parseFloat(r))&&(n=l,i=a);return i>1?n:NaN}return e.registerProcessorFunction("MODE",s),e.registerProcessorFunction("MODE.MULT",r),e.registerProcessorFunction("MODE.SNGL",s),{MULT:r,SNGL:s}}),r(t,"Data/Formula/Functions/NOT.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){let s=t(e[0],r);switch("object"==typeof s&&(s=s[0]),typeof s){case"boolean":case"number":return!s}return NaN}return e.registerProcessorFunction("NOT",r),r}),r(t,"Data/Formula/Functions/OR.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,s){for(let o=0,n=e.length,i;o<n;++o)if("object"==typeof(i=t(e[o],s))){if(r(i,s))return!0}else if(i)return!0;return!1}return e.registerProcessorFunction("OR",r),r}),r(t,"Data/Formula/Functions/PRODUCT.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentsValues:t}=e;function r(e,s){let o=t(e,s),n=1,i=!1;for(let e=0,t=o.length,l;e<t;++e)switch(typeof(l=o[e])){case"number":isNaN(l)||(i=!0,n*=l);break;case"object":i=!0,n*=r(l,s)}return i?n:0}return e.registerProcessorFunction("PRODUCT",r),r}),r(t,"Data/Formula/Functions/SUM.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){function t(r,s){let o=e.getArgumentsValues(r,s),n=0;for(let e=0,r=o.length,i;e<r;++e)switch(typeof(i=o[e])){case"number":isNaN(i)||(n+=i);break;case"object":n+=t(i,s)}return n}return e.registerProcessorFunction("SUM",t),t}),r(t,"Data/Formula/Functions/XOR.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){for(let s=0,o=e.length,n,i;s<o;++s)switch(typeof(i=t(e[s],r))){case"boolean":case"number":if(void 0===n)n=!!i;else if(!!i!==n)return!0;break;case"object":for(let e=0,t=i.length,r;e<t;++e)switch(typeof(r=i[e])){case"boolean":case"number":if(void 0===n)n=!!r;else if(!!r!==n)return!0}}return!1}return e.registerProcessorFunction("XOR",r),r}),r(t,"Data/Formula/Formula.js",[t["Data/Formula/FormulaParser.js"],t["Data/Formula/FormulaProcessor.js"],t["Data/Formula/FormulaTypes.js"]],function(e,t,r){let s={...e,...t,...r};return s}),r(t,"Data/Converters/CSVConverter.js",[t["Data/Converters/DataConverter.js"],t["Core/Utilities.js"]],function(e,t){let{merge:r}=t;class s extends e{constructor(e){let t=r(s.defaultOptions,e);super(t),this.columns=[],this.headers=[],this.dataTypes=[],this.options=t}export(e,t=this.options){let{useLocalDecimalPoint:r,lineDelimiter:s}=t,o=!1!==this.options.firstRowAsNames,{decimalPoint:n,itemDelimiter:i}=t;n||(n=","!==i&&r?1.1.toLocaleString()[1]:"."),i||(i=","===n?";":",");let l=e.getSortedColumns(t.usePresentationOrder),a=Object.keys(l),u=[],h=a.length,m=[];o&&u.push(a.map(e=>`"${e}"`).join(i));for(let t=0;t<h;t++){let r;let s=a[t],o=l[s],c=o.length,f=e.whatIs(s);f&&(r=f.dataType);for(let e=0;e<c;e++){let s=o[e];if(m[e]||(m[e]=[]),"string"===r?s='"'+s+'"':"number"==typeof s?s=String(s).replace(".",n):"string"==typeof s&&(s=`"${s}"`),m[e][t]=s,t===h-1){let r=t;for(;m[e].length>2;){let t=m[e][r];if(void 0!==t)break;m[e].pop(),r--}u.push(m[e].join(i))}}}return u.join(s)}parse(e,t){let s=this.dataTypes,o=r(this.options,e),{beforeParse:n,lineDelimiter:i,firstRowAsNames:l,itemDelimiter:a}=o,u,h=0,{csv:m,startRow:c,endRow:f}=o,d;if(this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers}),m&&n&&(m=n(m)),m){if(u=m.replace(/\r\n|\r/g,"\n").split(i||"\n"),(!c||c<0)&&(c=0),(!f||f>=u.length)&&(f=u.length-1),a||(this.guessedItemDelimiter=this.guessDelimiter(u)),l){let e=u[0].split(a||this.guessedItemDelimiter||",");for(let t=0;t<e.length;t++)e[t]=e[t].trim().replace(/^["']|["']$/g,"");this.headers=e,c++}let e=0;for(h=c;h<=f;h++)"#"===u[h][0]?e++:this.parseCSVRow(u[h],h-c-e);s.length&&s[0].length&&"date"===s[0][1]&&!this.options.dateFormat&&this.deduceDateFormat(this.columns[0],null,!0);for(let e=0,t=this.columns.length;e<t;++e){d=this.columns[e];for(let t=0,r=d.length;t<r;++t)if(d[t]&&"string"==typeof d[t]){let r=this.asGuessedType(d[t]);r instanceof Date&&(r=r.getTime()),this.columns[e][t]=r}}}this.emit({type:"afterParse",columns:this.columns,detail:t,headers:this.headers})}parseCSVRow(e,t){let r=this,s=r.columns||[],o=r.dataTypes,{startColumn:n,endColumn:i}=r.options,l=r.options.itemDelimiter||r.guessedItemDelimiter,{decimalPoint:a}=r.options;a&&a!==l||(a=r.guessedDecimalPoint||".");let u=0,h="",m="",c=0,f=0,d=t=>{h=e[t],e[t-1],e[t+1]},p=e=>{o.length<f+1&&o.push([e]),o[f][o[f].length-1]!==e&&o[f].push(e)},g=()=>{if(n>c||c>i){++c,m="";return}if("string"==typeof m?!isNaN(parseFloat(m))&&isFinite(m)?(m=parseFloat(m),p("number")):isNaN(Date.parse(m))?p("string"):(m=m.replace(/\//g,"-"),p("date")):p("number"),s.length<f+1&&s.push([]),"number"!=typeof m&&"number"!==r.guessType(m)&&a){let e=m;m=m.replace(a,"."),"number"!==r.guessType(m)&&(m=e)}s[f][t]=m,m="",++f,++c};if(e.trim().length&&"#"!==e.trim()[0]){for(;u<e.length;u++){if(d(u),"#"===h&&!/^#[0-F]{3,3}|[0-F]{6,6}/i.test(e.substring(u))){g();return}if('"'===h)for(d(++u);u<e.length&&'"'!==h;)m+=h,d(++u);else h===l?g():m+=h}g()}}guessDelimiter(e){let t=0,r=0,s,o={",":0,";":0," ":0},n=e.length;for(let s=0;s<n;s++){let n=!1,i,l,a,u="";if(s>13)break;let h=e[s];for(let e=0;e<h.length&&(i=h[e],l=h[e+1],a=h[e-1],"#"!==i);e++){if('"'===i){if(n){if('"'!==a&&'"'!==l){for(;" "===l&&e<h.length;)l=h[++e];void 0!==o[l]&&o[l]++,n=!1}}else n=!0}else void 0!==o[i]?(isNaN(Date.parse(u=u.trim()))?(isNaN(Number(u))||!isFinite(Number(u)))&&o[i]++:o[i]++,u=""):u+=i;","===i&&r++,"."===i&&t++}}return o[";"]>o[","]?s=";":(o[","],o[";"],s=","),t>r?this.guessedDecimalPoint=".":this.guessedDecimalPoint=",",s}getTable(){return e.getTableFromColumns(this.columns,this.headers)}}return s.defaultOptions={...e.defaultOptions,lineDelimiter:"\n"},s}),r(t,"Data/Connectors/CSVConnector.js",[t["Data/Converters/CSVConverter.js"],t["Data/Connectors/DataConnector.js"],t["Core/Utilities.js"]],function(e,t,r){let{merge:s}=r;class o extends t{constructor(t){let r=s(o.defaultOptions,t);super(r),this.converter=new e(r),this.options=r,r.enablePolling&&this.startPolling(1e3*Math.max(r.dataRefreshRate||0,1))}load(e){let t=this,r=t.converter,s=t.table,{csv:o,csvURL:n,dataModifier:i}=t.options;return t.emit({type:"load",csv:o,detail:e,table:s}),s.deleteRows(),Promise.resolve(n?fetch(n).then(e=>e.text()):o||"").then(e=>(e&&(r.parse({csv:e}),s.setColumns(r.getTable().getColumns())),t.setModifierOptions(i).then(()=>e))).then(r=>(t.emit({type:"afterLoad",csv:r,detail:e,table:s}),t)).catch(r=>{throw t.emit({type:"loadError",detail:e,error:r,table:s}),r})}}return o.defaultOptions={csv:"",csvURL:"",enablePolling:!1,dataRefreshRate:1,firstRowAsNames:!0},t.registerType("CSV",o),o}),r(t,"Data/Converters/JSONConverter.js",[t["Data/Converters/DataConverter.js"],t["Data/DataTable.js"],t["Core/Utilities.js"]],function(e,t,r){let{error:s,isArray:o,merge:n,objectEach:i}=r;class l extends e{constructor(e){let r=n(l.defaultOptions,e);super(r),this.columns=[],this.headers=[],this.options=r,this.table=new t}parse(e,t){e=n(this.options,e);let{beforeParse:r,orientation:l,firstRowAsNames:a,columnNames:u}=e,h=e.data;if(h){if(this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers}),r&&(h=r(h)),h=h.slice(),"columns"===l)for(let e=0,t=h.length;e<t;e++){let t=h[e];if(!(t instanceof Array))return;this.headers instanceof Array?(a?this.headers.push(`${t.shift()}`):u&&u instanceof Array&&this.headers.push(u[e]),this.table.setColumn(this.headers[e]||e.toString(),t)):s("JSONConverter: Invalid `columnNames` option.",!1)}else if("rows"===l){a?this.headers=h.shift():u&&(this.headers=u);for(let e=0,t=h.length;e<t;e++){let t=h[e];if(o(t))for(let e=0,r=t.length;e<r;e++)this.columns.length<e+1&&this.columns.push([]),this.columns[e].push(t[e]),this.headers instanceof Array?this.table.setColumn(this.headers[e]||e.toString(),this.columns[e]):s("JSONConverter: Invalid `columnNames` option.",!1);else{let r=this.headers;if(r&&!(r instanceof Array)){let e={};i(r,(r,s)=>{e[s]=r.reduce((e,t)=>e[t],t)}),t=e}this.table.setRows([t],e)}}}this.emit({type:"afterParse",columns:this.columns,detail:t,headers:this.headers})}}getTable(){return this.table}}return l.defaultOptions={...e.defaultOptions,data:[],orientation:"rows"},l}),r(t,"Data/Connectors/JSONConnector.js",[t["Data/Connectors/DataConnector.js"],t["Core/Utilities.js"],t["Data/Converters/JSONConverter.js"]],function(e,t,r){let{merge:s}=t;class o extends e{constructor(e){let t=s(o.defaultOptions,e);super(t),this.converter=new r(t),this.options=t,t.enablePolling&&this.startPolling(1e3*Math.max(t.dataRefreshRate||0,1))}load(e){let t=this,r=t.converter,s=t.table,{data:o,dataUrl:n,dataModifier:i}=t.options;return t.emit({type:"load",data:o,detail:e,table:s}),s.deleteRows(),Promise.resolve(n?fetch(n).then(e=>e.json()):o||[]).then(e=>(e&&(r.parse({data:e}),s.setColumns(r.getTable().getColumns())),t.setModifierOptions(i).then(()=>e))).then(r=>(t.emit({type:"afterLoad",data:r,detail:e,table:s}),t)).catch(r=>{throw t.emit({type:"loadError",detail:e,error:r,table:s}),r})}}return o.defaultOptions={data:[],enablePolling:!1,dataRefreshRate:0,firstRowAsNames:!0,orientation:"rows"},e.registerType("JSON",o),o}),r(t,"Data/Converters/GoogleSheetsConverter.js",[t["Data/Converters/DataConverter.js"],t["Core/Utilities.js"]],function(e,t){let{merge:r,uniqueKey:s}=t;class o extends e{constructor(e){let t=r(o.defaultOptions,e);super(t),this.columns=[],this.header=[],this.options=t}parse(e,t){let o;let n=r(this.options,e),i=(n.json&&n.json.values||[]).map(e=>e.slice());if(0===i.length)return!1;this.header=[],this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.header}),this.columns=i;for(let e=0,t=i.length;e<t;e++){o=i[e],this.header[e]=n.firstRowAsNames?`${o.shift()}`:s();for(let t=0,r=o.length;t<r;++t)if(o[t]&&"string"==typeof o[t]){let r=this.asGuessedType(o[t]);r instanceof Date&&(r=r.getTime()),this.columns[e][t]=r}}this.emit({type:"afterParse",columns:this.columns,detail:t,headers:this.header})}getTable(){return e.getTableFromColumns(this.columns,this.header)}}return o.defaultOptions={...e.defaultOptions},o}),r(t,"Data/Connectors/GoogleSheetsConnector.js",[t["Data/Connectors/DataConnector.js"],t["Data/Converters/GoogleSheetsConverter.js"],t["Core/Utilities.js"]],function(e,t,r){let{merge:s,pick:o}=r;class n extends e{constructor(e){let r=s(n.defaultOptions,e);super(r),this.converter=new t(r),this.options=r}load(e){let t=this,r=t.converter,s=t.table,{dataModifier:o,dataRefreshRate:i,enablePolling:l,firstRowAsNames:a,googleAPIKey:u,googleSpreadsheetKey:h}=t.options,m=n.buildFetchURL(u,h,t.options);return t.emit({type:"load",detail:e,table:s,url:m}),s.deleteColumns(),fetch(m).then(e=>e.json()).then(e=>{if("object"==typeof e&&e&&"object"==typeof e.error&&e.error&&"number"==typeof e.error.code&&"string"==typeof e.error.message&&"string"==typeof e.error.status)throw Error(e.error.message);return r.parse({firstRowAsNames:a,json:e}),s.setColumns(r.getTable().getColumns()),t.setModifierOptions(o)}).then(()=>(t.emit({type:"afterLoad",detail:e,table:s,url:m}),l&&setTimeout(()=>t.load(),1e3*Math.max(i||0,1)),t)).catch(r=>{throw t.emit({type:"loadError",detail:e,error:r,table:s}),r})}}return n.defaultOptions={googleAPIKey:"",googleSpreadsheetKey:"",worksheet:1,enablePolling:!1,dataRefreshRate:2,firstRowAsNames:!0},function(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZ";function r(e={}){let{endColumn:r,endRow:s,googleSpreadsheetRange:n,startColumn:i,startRow:l}=e;return n||(t[i||0]||"A")+(Math.max(l||0,0)+1)+":"+(t[o(r,25)]||"Z")+(s?Math.max(s,0):"Z")}e.buildFetchURL=function(e,t,s={}){return`https://sheets.googleapis.com/v4/spreadsheets/${t}/values/`+(s.onlyColumnNames?"A1:Z1":r(s))+"?alt=json"+(s.onlyColumnNames?"":"&dateTimeRenderOption=FORMATTED_STRING&majorDimension=COLUMNS&valueRenderOption=UNFORMATTED_VALUE")+"&prettyPrint=false"+`&key=${e}`},e.buildQueryRange=r}(n||(n={})),e.registerType("GoogleSheets",n),n}),r(t,"Data/Converters/HTMLTableConverter.js",[t["Data/Converters/DataConverter.js"],t["Core/Utilities.js"]],function(e,t){let{merge:r}=t;class s extends e{constructor(e){let t=r(s.defaultOptions,e);super(t),this.columns=[],this.headers=[],this.options=t,t.tableElement&&(this.tableElement=t.tableElement,this.tableElementID=t.tableElement.id)}export(e,t=this.options){let r=!1!==t.firstRowAsNames,s=t.useMultiLevelHeaders,o=e.getSortedColumns(t.usePresentationOrder),n=Object.keys(o),i=[],l=n.length,a=[],u="";if(r){let e=[];if(s){for(let t of n){let r=(o[t].shift()||"").toString();e.push(r)}u=this.getTableHeaderHTML(n,e,t)}else u=this.getTableHeaderHTML(void 0,n,t)}for(let e=0;e<l;e++){let t=n[e],r=o[t],s=r.length;for(let t=0;t<s;t++){let s=r[t];a[t]||(a[t]=[]),"string"==typeof s||"number"==typeof s||void 0===s||(s=(s||"").toString()),a[t][e]=this.getCellHTMLFromValue(e?"td":"th",null,e?"":'scope="row"',s),e===l-1&&i.push("<tr>"+a[t].join("")+"</tr>")}}let h="";return t.tableCaption&&(h='<caption class="highcharts-table-caption">'+t.tableCaption+"</caption>"),"<table>"+h+u+"<tbody>"+i.join("")+"</tbody></table>"}getCellHTMLFromValue(e,t,r,s,o){let n=s,i="text"+(t?" "+t:"");return"number"==typeof n?(n=n.toString(),","===o&&(n=n.replace(".",o)),i="number"):s||(n="",i="empty"),"<"+e+(r?" "+r:"")+' class="'+i+'">'+n+"</"+e+">"}getTableHeaderHTML(e=[],t=[],r=this.options){let{useMultiLevelHeaders:s,useRowspanHeaders:o}=r;r.useLocalDecimalPoint&&1.1.toLocaleString()[1];let n="<thead>",i=0,l=t&&t.length,a,u=0,h;if(s&&e&&t&&!function(e,t){let r=e.length;if(t.length!==r)return!1;for(;--r;)if(e[r]!==t[r])return!1;return!0}(e,t)){for(n+="<tr>";i<l;++i)(a=e[i])===e[i+1]?++u:u?(n+=this.getCellHTMLFromValue("th","highcharts-table-topheading",'scope="col" colspan="'+(u+1)+'"',a),u=0):(a===t[i]?o?(h=2,delete t[i]):(h=1,t[i]=""):h=1,n+=this.getCellHTMLFromValue("th","highcharts-table-topheading",'scope="col"'+(h>1?' valign="top" rowspan="'+h+'"':""),a));n+="</tr>"}if(t){for(n+="<tr>",i=0,l=t.length;i<l;++i)void 0!==t[i]&&(n+=this.getCellHTMLFromValue("th",null,'scope="col"',t[i]));n+="</tr>"}return n+"</thead>"}parse(e,t){let s=[],o=[],n=r(this.options,e),{endRow:i,startColumn:l,endColumn:a,firstRowAsNames:u}=n,h=n.tableElement||this.tableElement;if(!(h instanceof HTMLElement)){this.emit({type:"parseError",columns:s,detail:t,headers:o,error:"Not a valid HTML Table"});return}this.tableElement=h,this.tableElementID=h.id,this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers});let m=h.getElementsByTagName("tr"),c=m.length,f=0,d,{startRow:p}=n;if(u&&c){let e=m[0].children,t=e.length;for(let r=l;r<t&&!(r>a);r++)("TD"===(d=e[r]).tagName||"TH"===d.tagName)&&o.push(d.innerHTML);p++}for(;f<c;){if(f>=p&&f<=i){let e=m[f].children,t=e.length,r=0;for(;r<t;){let t=r-l,o=s[t];if(("TD"===(d=e[r]).tagName||"TH"===d.tagName)&&r>=l&&r<=a){s[t]||(s[t]=[]);let e=this.asGuessedType(d.innerHTML);e instanceof Date&&(e=e.getTime()),s[t][f-p]=e;let r=1;for(;f-p>=r&&void 0===o[f-p-r];)o[f-p-r]=null,r++}r++}}f++}this.columns=s,this.headers=o,this.emit({type:"afterParse",columns:s,detail:t,headers:o})}getTable(){return e.getTableFromColumns(this.columns,this.headers)}}return s.defaultOptions={...e.defaultOptions,useRowspanHeaders:!0,useMultiLevelHeaders:!0},s}),r(t,"Data/Connectors/HTMLTableConnector.js",[t["Data/Connectors/DataConnector.js"],t["Core/Globals.js"],t["Data/Converters/HTMLTableConverter.js"],t["Core/Utilities.js"]],function(e,t,r,s){let{win:o}=t,{merge:n}=s;class i extends e{constructor(e){let t=n(i.defaultOptions,e);super(t),this.converter=new r(t),this.options=t}load(e){let t;let r=this,s=r.converter,i=r.table,{dataModifier:l,table:a}=r.options;if(r.emit({type:"load",detail:e,table:i,tableElement:r.tableElement}),i.deleteColumns(),"string"==typeof a?(r.tableID=a,t=o.document.getElementById(a)):(t=a,r.tableID=t.id),r.tableElement=t||void 0,!r.tableElement){let t="HTML table not provided, or element with ID not found";return r.emit({type:"loadError",detail:e,error:t,table:i}),Promise.reject(Error(t))}return s.parse(n({tableElement:r.tableElement},r.options),e),i.setColumns(s.getTable().getColumns()),r.setModifierOptions(l).then(()=>(r.emit({type:"afterLoad",detail:e,table:i,tableElement:r.tableElement}),r))}}return i.defaultOptions={table:""},e.registerType("HTMLTable",i),i}),r(t,"Data/Modifiers/ChainModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Core/Utilities.js"]],function(e,t){let{merge:r}=t;class s extends e{constructor(t,...o){super(),this.chain=o,this.options=r(s.defaultOptions,t);let n=this.options.chain||[];for(let t=0,r=n.length,s,i;t<r;++t)(s=n[t]).type&&(i=e.types[s.type])&&o.push(new i(s))}add(e,t){this.emit({type:"addModifier",detail:t,modifier:e}),this.chain.push(e),this.emit({type:"addModifier",detail:t,modifier:e})}clear(e){this.emit({type:"clearChain",detail:e}),this.chain.length=0,this.emit({type:"afterClearChain",detail:e})}modify(e,t){let r=this.options.reverse?this.chain.slice().reverse():this.chain.slice();e.modified===e&&(e.modified=e.clone(!1,t));let s=Promise.resolve(e);for(let e=0,o=r.length;e<o;++e){let o=r[e];s=s.then(e=>o.modify(e.modified,t))}return(s=s.then(t=>(e.modified.deleteColumns(),e.modified.setColumns(t.modified.getColumns()),e))).catch(r=>{throw this.emit({type:"error",detail:t,table:e}),r})}modifyCell(e,t,r,s,o){let n=this.options.reverse?this.chain.reverse():this.chain;if(n.length){let i=e.clone();for(let e=0,l=n.length;e<l;++e)n[e].modifyCell(i,t,r,s,o),i=i.modified;e.modified=i}return e}modifyColumns(e,t,r,s){let o=this.options.reverse?this.chain.reverse():this.chain.slice();if(o.length){let n=e.clone();for(let e=0,i=o.length;e<i;++e)o[e].modifyColumns(n,t,r,s),n=n.modified;e.modified=n}return e}modifyRows(e,t,r,s){let o=this.options.reverse?this.chain.reverse():this.chain.slice();if(o.length){let n=e.clone();for(let e=0,i=o.length;e<i;++e)o[e].modifyRows(n,t,r,s),n=n.modified;e.modified=n}return e}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let r=this.options.reverse?this.chain.reverse():this.chain.slice(),s=e.modified;for(let e=0,o=r.length;e<o;++e)s=r[e].modifyTable(s,t).modified;return e.modified=s,this.emit({type:"afterModify",detail:t,table:e}),e}remove(e,t){let r=this.chain;this.emit({type:"removeModifier",detail:t,modifier:e}),r.splice(r.indexOf(e),1),this.emit({type:"afterRemoveModifier",detail:t,modifier:e})}}return s.defaultOptions={type:"Chain"},e.registerType("Chain",s),s}),r(t,"Data/Modifiers/InvertModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Core/Utilities.js"]],function(e,t){let{merge:r}=t;class s extends e{constructor(e){super(),this.options=r(s.defaultOptions,e)}modifyCell(e,t,r,s,o){let n=e.modified,i=n.getRowIndexBy("columnNames",t);return void 0===i?n.setColumns(this.modifyTable(e.clone()).getColumns(),void 0,o):n.setCell(`${r}`,i,s,o),e}modifyColumns(e,t,r,s){let o=e.modified,n=o.getColumn("columnNames")||[],i=e.getColumnNames(),l=e.getRowCount()!==n.length;if(!l){for(let e=0,t=i.length;e<t;++e)if(i[e]!==n[e]){l=!0;break}}if(l)return this.modifyTable(e,s);i=Object.keys(t);for(let e=0,n=i.length,l,a,u;e<n;++e){l=t[a=i[e]],u=o.getRowIndexBy("columnNames",a)||o.getRowCount();for(let e=0,t=r,n=l.length;e<n;++e,++t)o.setCell(`${t}`,u,l[e],s)}return e}modifyRows(e,t,r,s){let o=e.getColumnNames(),n=e.modified,i=n.getColumn("columnNames")||[],l=e.getRowCount()!==i.length;if(!l){for(let e=0,t=o.length;e<t;++e)if(o[e]!==i[e]){l=!0;break}}if(l)return this.modifyTable(e,s);for(let e=0,i=r,l=t.length,a;e<l;++e,++i)if((a=t[e])instanceof Array)n.setColumn(`${i}`,a);else for(let e=0,t=o.length;e<t;++e)n.setCell(`${i}`,e,a[o[e]],s);return e}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let r=e.modified;if(e.hasColumns(["columnNames"])){let t=((e.deleteColumns(["columnNames"])||{}).columnNames||[]).map(e=>`${e}`),s={};for(let r=0,o=e.getRowCount(),n;r<o;++r)(n=e.getRow(r))&&(s[t[r]]=n);r.deleteColumns(),r.setColumns(s)}else{let t={};for(let r=0,s=e.getRowCount(),o;r<s;++r)(o=e.getRow(r))&&(t[`${r}`]=o);t.columnNames=e.getColumnNames(),r.deleteColumns(),r.setColumns(t)}return this.emit({type:"afterModify",detail:t,table:e}),e}}return s.defaultOptions={type:"Invert"},e.registerType("Invert",s),s}),r(t,"Data/Modifiers/MathModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Data/Formula/FormulaParser.js"],t["Data/Formula/FormulaProcessor.js"]],function(e,t,r){class s extends e{constructor(e){super(),this.options={...s.defaultOptions,...e}}modifyTable(e,r){this.emit({type:"modify",detail:r,table:e});let s=this.options.alternativeSeparators,o=this.options.formulaColumns||e.getColumnNames(),n=e.modified;for(let t=0,r=o.length,s;t<r;++t)s=o[t],o.indexOf(s)>=0&&n.setColumn(s,this.processColumn(e,s));let i=this.options.columnFormulas||[];for(let r=0,o=i.length,l,a;r<o;++r)l=i[r],a=t.parseFormula(l.formula,s),n.setColumn(l.column,this.processColumnFormula(a,e,l.rowStart,l.rowEnd));return this.emit({type:"afterModify",detail:r,table:e}),e}processColumn(e,s,o=0){let n=this.options.alternativeSeparators,i=(e.getColumn(s,!0)||[]).slice(o>0?o:0);for(let s=0,o=i.length,l=[],a;s<o;++s)if("string"==typeof(a=i[s])&&"="===a[0])try{l=""===a?l:t.parseFormula(a.substring(1),n),i[s]=r.processFormula(l,e)}catch{i[s]=NaN}return i}processColumnFormula(e,t,s=0,o=t.getRowCount()){s=s>=0?s:0,o=o>=0?o:t.getRowCount()+o;let n=[],i=t.modified;for(let t=0,l=o-s;t<l;++t)try{n[t]=r.processFormula(e,i)}catch{n[t]=NaN}finally{e=r.translateReferences(e,0,1)}return n}}return s.defaultOptions={type:"Math",alternativeSeparators:!1},e.registerType("Math",s),s}),r(t,"Data/Modifiers/RangeModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Core/Utilities.js"]],function(e,t){let{merge:r}=t;class s extends e{constructor(e){super(),this.options=r(s.defaultOptions,e)}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let{additive:r,ranges:s,strict:o}=this.options;if(s.length){let t=e.modified,n=e.getColumns(),i=[];for(let l=0,a=s.length,u,h;l<a;++l)if(u=s[l],!o||typeof u.minValue==typeof u.maxValue){l>0&&!r&&(t.deleteRows(),t.setRows(i),n=t.getColumns(),i=[]),h=n[u.column]||[];for(let s=0,n=h.length,l,a;s<n;++s){switch(typeof(l=h[s])){default:continue;case"boolean":case"number":case"string":}(!o||typeof l==typeof u.minValue)&&l>=u.minValue&&l<=u.maxValue&&(a=r?e.getRow(s):t.getRow(s))&&i.push(a)}}t.deleteRows(),t.setRows(i)}return this.emit({type:"afterModify",detail:t,table:e}),e}}return s.defaultOptions={type:"Range",ranges:[]},e.registerType("Range",s),s}),r(t,"Data/Modifiers/SortModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Data/DataTable.js"],t["Core/Utilities.js"]],function(e,t,r){let{merge:s}=r;class o extends e{static ascending(e,t){return(e||0)<(t||0)?-1:(e||0)>(t||0)?1:0}static descending(e,t){return(t||0)<(e||0)?-1:(t||0)>(e||0)?1:0}constructor(e){super(),this.options=s(o.defaultOptions,e)}getRowReferences(e){let t=e.getRows(),r=[];for(let e=0,s=t.length;e<s;++e)r.push({index:e,row:t[e]});return r}modifyCell(e,r,s,o,n){let{orderByColumn:i,orderInColumn:l}=this.options;return r===i&&(l?(e.modified.setCell(r,s,o),e.modified.setColumn(l,this.modifyTable(new t({columns:e.getColumns([i,l])})).modified.getColumn(l))):this.modifyTable(e,n)),e}modifyColumns(e,r,s,o){let{orderByColumn:n,orderInColumn:i}=this.options,l=Object.keys(r);return l.indexOf(n)>-1&&(i&&r[l[0]].length?(e.modified.setColumns(r,s),e.modified.setColumn(i,this.modifyTable(new t({columns:e.getColumns([n,i])})).modified.getColumn(i))):this.modifyTable(e,o)),e}modifyRows(e,r,s,o){let{orderByColumn:n,orderInColumn:i}=this.options;return i&&r.length?(e.modified.setRows(r,s),e.modified.setColumn(i,this.modifyTable(new t({columns:e.getColumns([n,i])})).modified.getColumn(i))):this.modifyTable(e,o),e}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let r=e.getColumnNames(),s=e.getRowCount(),n=this.getRowReferences(e),{direction:i,orderByColumn:l,orderInColumn:a}=this.options,u="asc"===i?o.ascending:o.descending,h=r.indexOf(l),m=e.modified;if(-1!==h&&n.sort((e,t)=>u(e.row[h],t.row[h])),a){let e=[];for(let t=0;t<s;++t)e[n[t].index]=t;m.setColumns({[a]:e})}else{let e=[];for(let t=0;t<s;++t)e.push(n[t].row);m.setRows(e,0)}return this.emit({type:"afterModify",detail:t,table:e}),e}}return o.defaultOptions={type:"Sort",direction:"desc",orderByColumn:"y"},e.registerType("Sort",o),o}),r(t,"masters/modules/data-tools.src.js",[t["Core/Globals.js"],t["Data/Connectors/DataConnector.js"],t["Data/Converters/DataConverter.js"],t["Data/DataCursor.js"],t["Data/Modifiers/DataModifier.js"],t["Data/DataPool.js"],t["Data/DataTable.js"],t["Data/Formula/Formula.js"]],function(e,t,r,s,o,n,i,l){e.DataConnector=t,e.DataConverter=r,e.DataCursor=s,e.DataModifier=o,e.DataPool=n,e.DataTable=i,e.Formula=l})});
9
+ */function(e){"object"==typeof module&&module.exports?(e.default=e,module.exports=e):"function"==typeof define&&define.amd?define("highcharts/modules/data-tools",["highcharts"],function(t){return e(t),e.Highcharts=t,e}):e("undefined"!=typeof Highcharts?Highcharts:void 0)}(function(e){"use strict";var t=e?e._modules:{};function r(e,t,r,s){e.hasOwnProperty(t)||(e[t]=s.apply(null,r),"function"==typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:t,module:e[t]}})))}r(t,"Data/Modifiers/DataModifier.js",[t["Core/Utilities.js"]],function(e){var t;let{addEvent:r,fireEvent:s,merge:o}=e;class n{benchmark(e,t){let r=[],s=this,n=()=>{s.modifyTable(e),s.emit({type:"afterBenchmarkIteration"})},{iterations:i}=o({iterations:1},t);s.on("afterBenchmarkIteration",()=>{if(r.length===i){s.emit({type:"afterBenchmark",results:r});return}n()});let l={startTime:0,endTime:0};return s.on("modify",()=>{l.startTime=window.performance.now()}),s.on("afterModify",()=>{l.endTime=window.performance.now(),r.push(l.endTime-l.startTime)}),n(),r}emit(e){s(this,e.type,e)}modify(e,t){let r=this;return new Promise((s,o)=>{e.modified===e&&(e.modified=e.clone(!1,t));try{s(r.modifyTable(e,t))}catch(s){r.emit({type:"error",detail:t,table:e}),o(s)}})}modifyCell(e,t,r,s,o){return this.modifyTable(e)}modifyColumns(e,t,r,s){return this.modifyTable(e)}modifyRows(e,t,r,s){return this.modifyTable(e)}on(e,t){return r(this,e,t)}}return(t=n||(n={})).types={},t.registerType=function(e,r){return!!e&&!t.types[e]&&!!(t.types[e]=r)},n}),r(t,"Data/DataTable.js",[t["Core/Utilities.js"]],function(e){let{addEvent:t,fireEvent:r,uniqueKey:s}=e;class o{static isNull(e){if(e===o.NULL)return!0;if(e instanceof Array){if(!e.length)return!1;for(let t=0,r=e.length;t<r;++t)if(null!==e[t])return!1}else{let t=Object.keys(e);if(!t.length)return!1;for(let r=0,s=t.length;r<s;++r)if(null!==e[t[r]])return!1}return!0}constructor(e={}){this.aliases=e.aliases?JSON.parse(JSON.stringify(e.aliases)):{},this.autoId=!e.id,this.columns={},this.id=e.id||s(),this.modified=this,this.rowCount=0,this.versionTag=s();let t=e.columns||{},r=Object.keys(t),o=this.columns,n=0;for(let e=0,s=r.length,i,l;e<s;++e)i=t[l=r[e]].slice(),o[l]=i,n=Math.max(n,i.length);for(let e=0,t=r.length;e<t;++e)o[r[e]].length=n;this.rowCount=n;let i=e.aliases||{},l=Object.keys(i),a=this.aliases;for(let e=0,t=l.length,r;e<t;++e)a[r=l[e]]=i[r]}clone(e,t){let r={};this.emit({type:"cloneTable",detail:t}),e||(r.aliases=this.aliases,r.columns=this.columns),this.autoId||(r.id=this.id);let s=new o(r);return e||(s.versionTag=this.versionTag),this.emit({type:"afterCloneTable",detail:t,tableClone:s}),s}deleteColumnAlias(e){let t=this.aliases[e],r=this.modifier;return t&&(delete this.aliases[e],r&&r.modifyColumns(this,{[t]:Array(this.rowCount)},0)),t}deleteColumns(e,t){let r=this.columns,s={},o={},n=this.modifier,i=this.rowCount;if((e=e||Object.keys(r)).length){this.emit({type:"deleteColumns",columnNames:e,detail:t});for(let t=0,n=e.length,l,a;t<n;++t)(l=r[a=e[t]])&&(s[a]=l,o[a]=Array(i)),delete r[a];return Object.keys(r).length||(this.rowCount=0),n&&n.modifyColumns(this,o,0,t),this.emit({type:"afterDeleteColumns",columns:s,columnNames:e,detail:t}),s}}deleteRows(e,t=1,r){let s=[],o=[],n=this.modifier;if(this.emit({type:"deleteRows",detail:r,rowCount:t,rowIndex:e||0}),void 0===e&&(e=0,t=this.rowCount),t>0&&e<this.rowCount){let r=this.columns,n=Object.keys(r);for(let i=0,l=n.length,a,u;i<l;++i){u=(a=r[n[i]]).splice(e,t),i||(this.rowCount=a.length);for(let e=0,t=u.length;e<t;++e)s[e]=s[e]||[],s[e][i]=u[e];o.push(Array(l))}}return n&&n.modifyRows(this,o,e||0,r),this.emit({type:"afterDeleteRows",detail:r,rowCount:t,rowIndex:e||0,rows:s}),s}emit(e){switch(e.type){case"afterDeleteColumns":case"afterDeleteRows":case"afterSetCell":case"afterSetColumns":case"afterSetRows":this.versionTag=s()}r(this,e.type,e)}getCell(e,t){e=this.aliases[e]||e;let r=this.columns[e];if(r)return r[t]}getCellAsBoolean(e,t){e=this.aliases[e]||e;let r=this.columns[e];return!!(r&&r[t])}getCellAsNumber(e,t,r){e=this.aliases[e]||e;let s=this.columns[e],o=s&&s[t];switch(typeof o){case"boolean":return o?1:0;case"number":return isNaN(o)&&!r?null:o}return isNaN(o=parseFloat(`${o}`))&&!r?null:o}getCellAsString(e,t){e=this.aliases[e]||e;let r=this.columns[e];return`${r&&r[t]}`}getColumn(e,t){return this.getColumns([e],t)[e]}getColumnAsNumbers(e,t){let r=this.columns[e=this.aliases[e]||e],s=[];if(r){let o=r.length;if(t)for(let t=0;t<o;++t)s.push(this.getCellAsNumber(e,t,!0));else{for(let e=0,t;e<o;++e){if("number"==typeof(t=r[e]))return r.slice();if(null!=t)break}for(let t=0;t<o;++t)s.push(this.getCellAsNumber(e,t))}}return s}getColumnNames(){return Object.keys(this.columns)}getColumns(e,t){let r=this.aliases,s=this.columns,o={};e=e||Object.keys(s);for(let n=0,i=e.length,l,a;n<i;++n)(l=s[r[a=e[n]]||a])&&(o[a]=t?l:l.slice());return o}getModifier(){return this.modifier}getRow(e,t){return this.getRows(e,1,t)[0]}getRowCount(){return this.rowCount}getRowIndexBy(e,t,r){e=this.aliases[e]||e;let s=this.columns[e];if(s){let e=s.indexOf(t,r);if(-1!==e)return e}}getRowObject(e,t){return this.getRowObjects(e,1,t)[0]}getRowObjects(e=0,t=this.rowCount-e,r){let s=this.aliases,o=this.columns,n=Array(t);r=r||Object.keys(o);for(let i=e,l=0,a=Math.min(this.rowCount,e+t),u,h;i<a;++i,++l)for(let e of(h=n[l]={},r))u=o[s[e]||e],h[e]=u?u[i]:void 0;return n}getRows(e=0,t=this.rowCount-e,r){let s=this.aliases,o=this.columns,n=Array(t);r=r||Object.keys(o);for(let i=e,l=0,a=Math.min(this.rowCount,e+t),u,h;i<a;++i,++l)for(let e of(h=n[l]=[],r))u=o[s[e]||e],h.push(u?u[i]:void 0);return n}getVersionTag(){return this.versionTag}hasColumns(e){let t=this.aliases,r=this.columns;for(let s=0,o=e.length,n;s<o;++s)if(!r[n=e[s]]&&!t[n])return!1;return!0}hasRowWith(e,t){e=this.aliases[e]||e;let r=this.columns[e];return!!r&&-1!==r.indexOf(t)}on(e,r){return t(this,e,r)}renameColumn(e,t){let r=this.columns;if(r[e]){if(e!==t){let s=this.aliases;s[t]&&delete s[t],r[t]=r[e],delete r[e]}return!0}return!1}setCell(e,t,r,s){let o=this.columns,n=this.modifier,i=o[e=this.aliases[e]||e];i&&i[t]===r||(this.emit({type:"setCell",cellValue:r,columnName:e,detail:s,rowIndex:t}),i||(i=o[e]=Array(this.rowCount)),t>=this.rowCount&&(this.rowCount=t+1),i[t]=r,n&&n.modifyCell(this,e,t,r),this.emit({type:"afterSetCell",cellValue:r,columnName:e,detail:s,rowIndex:t}))}setColumn(e,t=[],r=0,s){this.setColumns({[e]:t},r,s)}setColumns(e,t,r){let s=this.columns,o=this.modifier,n=void 0===t,i=Object.keys(e);this.emit({type:"setColumns",columns:e,columnNames:i,detail:r,rowIndex:t});for(let r=0,o=i.length,l,a;r<o;++r)if(l=e[a=i[r]],a=this.aliases[a]||a,n)s[a]=l.slice(),this.rowCount=l.length;else{let e=s[a]?s[a]:s[a]=Array(this.rowCount);for(let r=t||0,s=l.length;r<s;++r)e[r]=l[r];this.rowCount=Math.max(this.rowCount,e.length)}let l=Object.keys(s);for(let e=0,t=l.length;e<t;++e)s[l[e]].length=this.rowCount;o&&o.modifyColumns(this,e,t||0),this.emit({type:"afterSetColumns",columns:e,columnNames:i,detail:r,rowIndex:t})}setModifier(e,t){let r=this;return r.emit({type:"setModifier",detail:t,modifier:e,modified:r.modified}),r.modified=r,r.modifier=e,(e?e.modify(r):Promise.resolve(r)).then(r=>(r.emit({type:"afterSetModifier",detail:t,modifier:e,modified:r.modified}),r)).catch(t=>{throw r.emit({type:"setModifierError",error:t,modifier:e,modified:r.modified}),t})}setRow(e,t,r){this.setRows([e],t,r)}setRows(e,t=this.rowCount,r){let s=this.aliases,n=this.columns,i=Object.keys(n),l=this.modifier,a=e.length;this.emit({type:"setRows",detail:r,rowCount:a,rowIndex:t,rows:e});for(let r=0,l=t,u;r<a;++r,++l)if((u=e[r])===o.NULL)for(let e=0,t=i.length;e<t;++e)n[i[e]][l]=null;else if(u instanceof Array)for(let e=0,t=i.length;e<t;++e)n[i[e]][l]=u[e];else{let e=Object.keys(u);for(let t=0,r=e.length,o;t<r;++t)n[o=s[o=e[t]]||o]||(n[o]=Array(l+1)),n[o][l]=u[o]}let u=t+a;if(u>this.rowCount){this.rowCount=u;for(let e=0,t=i.length;e<t;++e)n[i[e]].length=u}l&&l.modifyRows(this,e,t),this.emit({type:"afterSetRows",detail:r,rowCount:a,rowIndex:t,rows:e})}}return o.NULL={},o.version="1.0.0",o}),r(t,"Data/Connectors/DataConnector.js",[t["Data/Modifiers/DataModifier.js"],t["Data/DataTable.js"],t["Core/Utilities.js"]],function(e,t,r){var s;let{addEvent:o,fireEvent:n,merge:i,pick:l}=r;class a{constructor(e={}){this.table=new t(e.dataTable),this.metadata=e.metadata||{columns:{}}}get polling(){return!!this.polling}describeColumn(e,t){let r=this.metadata.columns;r[e]=i(r[e]||{},t)}describeColumns(e){let t;let r=Object.keys(e);for(;"string"==typeof(t=r.pop());)this.describeColumn(t,e[t])}emit(e){n(this,e.type,e)}getColumnOrder(e){let t=this.metadata.columns,r=Object.keys(t||{});if(r.length)return r.sort((e,r)=>l(t[e].index,0)-l(t[r].index,0))}getSortedColumns(e){return this.table.getColumns(this.getColumnOrder(e))}load(){return n(this,"afterLoad",{table:this.table}),Promise.resolve(this)}on(e,t){return o(this,e,t)}save(){return n(this,"saveError",{table:this.table}),Promise.reject(Error("Not implemented"))}setColumnOrder(e){for(let t=0,r=e.length;t<r;++t)this.describeColumn(e[t],{index:t})}setModifierOptions(t){let r=t&&e.types[t.type];return this.table.setModifier(r?new r(t):void 0).then(()=>this)}startPolling(e=1e3){let t=this;window.clearTimeout(t._polling),t._polling=window.setTimeout(()=>t.load().catch(e=>t.emit({type:"loadError",error:e,table:t.table})).then(()=>{t._polling&&t.startPolling(e)}),e)}stopPolling(){window.clearTimeout(this._polling),delete this._polling}whatIs(e){return this.metadata.columns[e]}}return(s=a||(a={})).types={},s.registerType=function(e,t){return!!e&&!s.types[e]&&!!(s.types[e]=t)},a}),r(t,"Data/Converters/DataConverter.js",[t["Data/DataTable.js"],t["Core/Utilities.js"]],function(e,t){let{addEvent:r,fireEvent:s,isNumber:o,merge:n}=t;class i{constructor(e){this.dateFormats={"YYYY/mm/dd":{regex:/^([0-9]{4})([\-\.\/])([0-9]{1,2})\2([0-9]{1,2})$/,parser:function(e){return e?Date.UTC(+e[1],e[3]-1,+e[4]):NaN}},"dd/mm/YYYY":{regex:/^([0-9]{1,2})([\-\.\/])([0-9]{1,2})\2([0-9]{4})$/,parser:function(e){return e?Date.UTC(+e[4],e[3]-1,+e[1]):NaN},alternative:"mm/dd/YYYY"},"mm/dd/YYYY":{regex:/^([0-9]{1,2})([\-\.\/])([0-9]{1,2})\2([0-9]{4})$/,parser:function(e){return e?Date.UTC(+e[4],e[1]-1,+e[3]):NaN}},"dd/mm/YY":{regex:/^([0-9]{1,2})([\-\.\/])([0-9]{1,2})\2([0-9]{2})$/,parser:function(e){let t=new Date;if(!e)return NaN;let r=+e[4];return r>t.getFullYear()-2e3?r+=1900:r+=2e3,Date.UTC(r,e[3]-1,+e[1])},alternative:"mm/dd/YY"},"mm/dd/YY":{regex:/^([0-9]{1,2})([\-\.\/])([0-9]{1,2})\2([0-9]{2})$/,parser:function(e){return e?Date.UTC(+e[4]+2e3,e[1]-1,+e[3]):NaN}}};let t=n(i.defaultOptions,e),r=t.decimalPoint;("."===r||","===r)&&(r="."===r?"\\.":",",this.decimalRegExp=RegExp("^(-?[0-9]+)"+r+"([0-9]+)$")),this.options=t}asBoolean(e){return"boolean"==typeof e?e:"string"==typeof e?""!==e&&"0"!==e&&"false"!==e:!!this.asNumber(e)}asDate(e){let t;if("string"==typeof e)t=this.parseDate(e);else if("number"==typeof e)t=e;else{if(e instanceof Date)return e;t=this.parseDate(this.asString(e))}return new Date(t)}asGuessedType(e){return({number:this.asNumber,Date:this.asDate,string:this.asString})[this.guessType(e)].call(this,e)}asNumber(e){if("number"==typeof e)return e;if("boolean"==typeof e)return e?1:0;if("string"==typeof e){let t=this.decimalRegExp;if(e.indexOf(" ")>-1&&(e=e.replace(/\s+/g,"")),t){if(!t.test(e))return NaN;e=e.replace(t,"$1.$2")}return parseFloat(e)}return e instanceof Date?e.getDate():e?e.getRowCount():NaN}asString(e){return""+e}deduceDateFormat(e,t,r){let s=[],o=[],n="YYYY/mm/dd",i,l=[],a=0,u=!1,h,m;for((!t||t>e.length)&&(t=e.length);a<t;a++)if(void 0!==e[a]&&e[a]&&e[a].length)for(m=0,i=e[a].trim().replace(/[-\.\/]/g," ").split(" "),l=["","",""];m<i.length;m++)m<l.length&&(h=parseInt(i[m],10))&&(o[m]=!o[m]||o[m]<h?h:o[m],void 0!==s[m]?s[m]!==h&&(s[m]=!1):s[m]=h,h>31?h<100?l[m]="YY":l[m]="YYYY":h>12&&h<=31?(l[m]="dd",u=!0):l[m].length||(l[m]="mm"));if(u){for(m=0;m<s.length;m++)!1!==s[m]?o[m]>12&&"YY"!==l[m]&&"YYYY"!==l[m]&&(l[m]="YY"):o[m]>12&&"mm"===l[m]&&(l[m]="dd");3===l.length&&"dd"===l[1]&&"dd"===l[2]&&(l[2]="YY"),n=l.join("/")}return r&&(this.options.dateFormat=n),n}emit(e){s(this,e.type,e)}export(e,t){throw this.emit({type:"exportError",columns:[],headers:[]}),Error("Not implemented")}getTable(){throw Error("Not implemented")}guessType(e){let t="string";if("string"==typeof e){let r=this.trim(`${e}`),s=this.decimalRegExp,n=this.trim(r,!0);s&&(n=s.test(n)?n.replace(s,"$1.$2"):"");let i=parseFloat(n);+n===i?e=i:t=o(this.parseDate(e))?"Date":"string"}return"number"==typeof e&&(t=e>31536e6?"Date":"number"),t}on(e,t){return r(this,e,t)}parse(e){throw this.emit({type:"parseError",columns:[],headers:[]}),Error("Not implemented")}parseDate(e,t){let r=this.options,s=t||r.dateFormat,n=NaN,i,l,a;if(r.parseDate)n=r.parseDate(e);else{if(s)(l=this.dateFormats[s])||(l=this.dateFormats["YYYY/mm/dd"]),(a=e.match(l.regex))&&(n=l.parser(a));else for(i in this.dateFormats)if(l=this.dateFormats[i],a=e.match(l.regex)){s=i,n=l.parser(a);break}!a&&("object"==typeof(a=Date.parse(e))&&null!==a&&a.getTime?n=a.getTime()-6e4*a.getTimezoneOffset():o(a)&&(n=a-6e4*new Date(a).getTimezoneOffset(),-1===e.indexOf("2001")&&2001===new Date(n).getFullYear()&&(n=NaN)))}return n}trim(e,t){return"string"==typeof e&&(e=e.replace(/^\s+|\s+$/g,""),t&&/^[0-9\s]+$/.test(e)&&(e=e.replace(/\s/g,""))),e}}return i.defaultOptions={dateFormat:"",alternativeFormat:"",startColumn:0,endColumn:Number.MAX_VALUE,startRow:0,endRow:Number.MAX_VALUE,firstRowAsNames:!0,switchRowsAndColumns:!1},(i||(i={})).getTableFromColumns=function(t=[],r=[]){let s=new e;for(let e=0,o=Math.max(r.length,t.length);e<o;++e)s.setColumn(r[e]||`${e}`,t[e]);return s},i}),r(t,"Data/DataCursor.js",[],function(){class e{constructor(e={}){this.emittingRegister=[],this.listenerMap={},this.stateMap=e}addListener(e,t,r){let s=this.listenerMap[e]=this.listenerMap[e]||{};return(s[t]=s[t]||[]).push(r),this}buildEmittingTag(e){return("position"===e.cursor.type?[e.table.id,e.cursor.column,e.cursor.row,e.cursor.state,e.cursor.type]:[e.table.id,e.cursor.columns,e.cursor.firstRow,e.cursor.lastRow,e.cursor.state,e.cursor.type]).join("\0")}emitCursor(t,r,s,o,n){let i="object"==typeof r?r:s,l="object"==typeof o?o:s,a="string"==typeof r?r:void 0,u=t.id,h=i.state,m=this.listenerMap[u]&&this.listenerMap[u][h];if(n=n||!0===o,m){let r=this.stateMap[u]=this.stateMap[u]||{},s=r[i.state]||[];n&&(s.length||(r[i.state]=s),-1===e.getIndex(i,s)&&s.push(i));let o={cursor:i,cursors:s,table:t};l&&(o.event=l),a&&(o.group=a);let h=this.emittingRegister,c=this.buildEmittingTag(o);if(h.indexOf(c)>=0)return this;try{this.emittingRegister.push(c);for(let e=0,t=m.length;e<t;++e)m[e].call(this,o)}finally{let e=this.emittingRegister.indexOf(c);e>=0&&this.emittingRegister.splice(e,1)}}return this}remitCursor(t,r){let s=this.stateMap[t]&&this.stateMap[t][r.state];if(s){let t=e.getIndex(r,s);t>=0&&s.splice(t,1)}return this}removeListener(e,t,r){let s=this.listenerMap[e]&&this.listenerMap[e][t];if(s){let e=s.indexOf(r);e&&s.splice(e,1)}return this}}return e.version="1.0.0",function(e){function t(e,t){if("range"===e.type)return e;let r={type:"range",firstRow:e.row??(t&&t.firstRow)??0,lastRow:e.row??(t&&t.lastRow)??Number.MAX_VALUE,state:e.state};return void 0!==e.column&&(r.columns=[e.column]),r}e.getIndex=function(e,t){if("position"===e.type){for(let r,s=0,o=t.length;s<o;++s)if("position"===(r=t[s]).type&&r.state===e.state&&r.column===e.column&&r.row===e.row)return s}else{let r=JSON.stringify(e.columns);for(let s,o=0,n=t.length;o<n;++o)if("range"===(s=t[o]).type&&s.state===e.state&&s.firstRow===e.firstRow&&s.lastRow===e.lastRow&&JSON.stringify(s.columns)===r)return o}return -1},e.isEqual=function(e,t){return"position"===e.type&&"position"===t.type?e.column===t.column&&e.row===t.row&&e.state===t.state:"range"===e.type&&"range"===t.type&&e.firstRow===t.firstRow&&e.lastRow===t.lastRow&&JSON.stringify(e.columns)===JSON.stringify(t.columns)},e.isInRange=function(e,r){"position"===r.type&&(r=t(r)),"position"===e.type&&(e=t(e,r));let s=e.columns,o=r.columns;return e.firstRow>=r.firstRow&&e.lastRow<=r.lastRow&&(!s||!o||s.every(e=>o.indexOf(e)>=0))},e.toPositions=function(e){if("position"===e.type)return[e];let t=e.columns||[],r=[],s=e.state;for(let o=e.firstRow,n=e.lastRow;o<n;++o){if(!t.length){r.push({type:"position",row:o,state:s});continue}for(let e=0,n=t.length;e<n;++e)r.push({type:"position",column:t[e],row:o,state:s})}return r},e.toRange=t}(e||(e={})),e}),r(t,"Data/DataPoolDefaults.js",[],function(){return{connectors:[]}}),r(t,"Data/DataPool.js",[t["Data/Connectors/DataConnector.js"],t["Data/DataPoolDefaults.js"],t["Core/Utilities.js"]],function(e,t,r){class s{constructor(e=t){e.connectors=e.connectors||[],this.connectors={},this.options=e,this.waiting={}}emit(e){r.fireEvent(this,e.type,e)}getConnector(e){let t=this.connectors[e];if(t)return Promise.resolve(t);let r=this.waiting[e];if(!r){r=this.waiting[e]=[];let t=this.getConnectorOptions(e);if(!t)throw Error(`Connector not found. (${e})`);this.loadConnector(t).then(t=>{delete this.waiting[e];for(let e=0,s=r.length;e<s;++e)r[e][0](t)}).catch(t=>{delete this.waiting[e];for(let e=0,s=r.length;e<s;++e)r[e][1](t)})}return new Promise((e,t)=>{r.push([e,t])})}getConnectorIds(){let e=this.options.connectors,t=[];for(let r=0,s=e.length;r<s;++r)t.push(e[r].id);return t}getConnectorOptions(e){let t=this.options.connectors;for(let r=0,s=t.length;r<s;++r)if(t[r].id===e)return t[r]}getConnectorTable(e){return this.getConnector(e).then(e=>e.table)}isNewConnector(e){return!this.connectors[e]}loadConnector(t){return new Promise((r,s)=>{this.emit({type:"load",options:t});let o=e.types[t.type];if(!o)throw Error(`Connector type not found. (${t.type})`);new o(t.options).load().then(e=>{this.connectors[t.id]=e,this.emit({type:"afterLoad",options:t}),r(e)}).catch(s)})}on(e,t){return r.addEvent(this,e,t)}setConnectorOptions(e){let t=this.options.connectors,r=this.connectors;this.emit({type:"setConnectorOptions",options:e});for(let r=0,s=t.length;r<s;++r)if(t[r].id===e.id){t.splice(r,1);break}r[e.id]&&(r[e.id].stopPolling(),delete r[e.id]),t.push(e),this.emit({type:"afterSetConnectorOptions",options:e})}}return s.version="1.0.0",s}),r(t,"Data/Formula/FormulaParser.js",[],function(){let e=/^(?:FALSE|TRUE)/,t=/^[+-]?\d+(?:\.\d+)?(?:e[+-]\d+)?/,r=/^[+-]?\d+(?:,\d+)?(?:e[+-]\d+)?/,s=/^([A-Z][A-Z\d\.]*)\(/,o=/^(?:[+\-*\/^<=>]|<=|=>)/,n=/^(\$?[A-Z]+)(\$?\d+)\:(\$?[A-Z]+)(\$?\d+)/,i=/^R(\d*|\[\d+\])C(\d*|\[\d+\])\:R(\d*|\[\d+\])C(\d*|\[\d+\])/,l=/^(\$?[A-Z]+)(\$?\d+)(?![\:C])/,a=/^R(\d*|\[\d+\])C(\d*|\[\d+\])(?!\:)/;function u(e){let t=0;for(let r=0,s=e.length,o,n=1;r<s;++r){if("("===(o=e[r])){t||(n=r+1),++t;continue}if(")"===o&&!--t)return e.substring(n,r)}if(t>0){let e=Error("Incomplete parantheses.");throw e.name="FormulaParseError",e}return""}function h(e){let t=-1;for(let r=0,s=e.length,o,n=!1;r<s;++r){if("\\"===(o=e[r])){n=!n;continue}if(n){n=!1;continue}if('"'===o){if(!(t<0))return e.substring(t+1,r);t=r}}let r=Error("Incomplete string.");throw r.name="FormulaParseError",r}function m(e,t){let r;if(r=e.match(i)){let e=""===r[2]||"["===r[2][0],t=""===r[1]||"["===r[1][0],s=""===r[4]||"["===r[4][0],o=""===r[3]||"["===r[3][0],n={type:"range",beginColumn:e?parseInt(r[2].substring(1,-1)||"0",10):parseInt(r[2],10)-1,beginRow:t?parseInt(r[1].substring(1,-1)||"0",10):parseInt(r[1],10)-1,endColumn:s?parseInt(r[4].substring(1,-1)||"0",10):parseInt(r[4],10)-1,endRow:o?parseInt(r[3].substring(1,-1)||"0",10):parseInt(r[3],10)-1};return e&&(n.beginColumnRelative=!0),t&&(n.beginRowRelative=!0),s&&(n.endColumnRelative=!0),o&&(n.endRowRelative=!0),n}if(r=e.match(n)){let e="$"!==r[1][0],t="$"!==r[2][0],s="$"!==r[3][0],o="$"!==r[4][0],n={type:"range",beginColumn:f(e?r[1]:r[1].substring(1))-1,beginRow:parseInt(t?r[2]:r[2].substring(1),10)-1,endColumn:f(s?r[3]:r[3].substring(1))-1,endRow:parseInt(o?r[4]:r[4].substring(1),10)-1};return e&&(n.beginColumnRelative=!0),t&&(n.beginRowRelative=!0),s&&(n.endColumnRelative=!0),o&&(n.endRowRelative=!0),n}let s=c(e,t);return 1===s.length&&"string"!=typeof s[0]?s[0]:s}function c(n,i){let d=i?r:t,p=[],g,y=("="===n[0]?n.substring(1):n).trim();for(;y;){if(g=y.match(a)){let e=""===g[2]||"["===g[2][0],t=""===g[1]||"["===g[1][0],r={type:"reference",column:e?parseInt(g[2].substring(1,-1)||"0",10):parseInt(g[2],10)-1,row:t?parseInt(g[1].substring(1,-1)||"0",10):parseInt(g[1],10)-1};e&&(r.columnRelative=!0),t&&(r.rowRelative=!0),p.push(r),y=y.substring(g[0].length).trim();continue}if(g=y.match(l)){let e="$"!==g[1][0],t="$"!==g[2][0],r={type:"reference",column:f(e?g[1]:g[1].substring(1))-1,row:parseInt(t?g[2]:g[2].substring(1),10)-1};e&&(r.columnRelative=!0),t&&(r.rowRelative=!0),p.push(r),y=y.substring(g[0].length).trim();continue}if(g=y.match(o)){p.push(g[0]),y=y.substring(g[0].length).trim();continue}if(g=y.match(e)){p.push("TRUE"===g[0]),y=y.substring(g[0].length).trim();continue}if(g=y.match(d)){p.push(parseFloat(g[0])),y=y.substring(g[0].length).trim();continue}if('"'===y[0]){let e=h(y);p.push(e.substring(1,-1)),y=y.substring(e.length+2).trim();continue}if(g=y.match(s)){let e=u(y=y.substring(g[1].length).trim());p.push({type:"function",name:g[1],args:function(e,t){let r=[],s=t?";":",",o=0,n="";for(let i=0,l=e.length,a;i<l;++i)if((a=e[i])===s&&!o&&n)r.push(m(n,t)),n="";else if('"'!==a||o||n)" "!==a&&(n+=a,"("===a?++o:")"===a&&--o);else{let t=h(e.substring(i));r.push(t),i+=t.length+1}return!o&&n&&r.push(m(n,t)),r}(e,i)}),y=y.substring(e.length+2).trim();continue}if("("===y[0]){let e=u(y);if(e){p.push(c(e,i)),y=y.substring(e.length+2).trim();continue}}let t=n.length-y.length,r=Error("Unexpected character `"+n.substring(t,t+1)+"` at position "+(t+1)+". (`..."+n.substring(t-5,t+6)+"...`)");throw r.name="FormulaParseError",r}return p}function f(e){let t=0;for(let r=0,s=e.length,o,n=e.length-1;r<s;++r)(o=e.charCodeAt(r))>=65&&o<=90&&(t+=(o-64)*Math.pow(26,n)),--n;return t}return{parseFormula:c}}),r(t,"Data/Formula/FormulaTypes.js",[],function(){let e=["+","-","*","/","^","=","<","<=",">",">="];return{isFormula:function(e){return e instanceof Array},isFunction:function(e){return"object"==typeof e&&!(e instanceof Array)&&"function"===e.type},isOperator:function(t){return"string"==typeof t&&e.indexOf(t)>=0},isRange:function(e){return"object"==typeof e&&!(e instanceof Array)&&"range"===e.type},isReference:function(e){return"object"==typeof e&&!(e instanceof Array)&&"reference"===e.type},isValue:function(e){return"boolean"==typeof e||"number"==typeof e||"string"==typeof e}}}),r(t,"Data/Formula/FormulaProcessor.js",[t["Data/Formula/FormulaTypes.js"]],function(e){let{isFormula:t,isFunction:r,isOperator:s,isRange:o,isReference:n,isValue:i}=e,l=/ */,a=Number.MAX_VALUE/1.000000000001,u=Number.MAX_VALUE/1.000000000002,h=Number.MAX_VALUE,m={"^":3,"*":2,"/":2,"+":1,"-":1,"=":0,"<":0,"<=":0,">":0,">=":0},c={},f=/^[A-Z][A-Z\.]*$/;function d(e){switch(typeof e){case"boolean":return e?h:a;case"string":return u;case"number":return e;default:return NaN}}function p(e){return"string"==typeof e?e.toLowerCase().replace(l,"\0"):e}function g(e){switch(typeof e){case"boolean":return e?1:0;case"string":return parseFloat(e.replace(",","."));case"number":return e;default:return NaN}}function y(e,t,r){let s;switch(e){case"=":return p(t)===p(r);case"<":if(typeof t==typeof r)return p(t)<p(r);return d(t)<d(r);case"<=":if(typeof t==typeof r)return p(t)<=p(r);return d(t)<=d(r);case">":if(typeof t==typeof r)return p(t)>p(r);return d(t)>d(r);case">=":if(typeof t==typeof r)return p(t)>=p(r);return d(t)>=d(r)}switch(t=g(t),r=g(r),e){case"+":s=t+r;break;case"-":s=t-r;break;case"*":s=t*r;break;case"/":s=t/r;break;case"^":s=Math.pow(t,r);break;default:return NaN}return s%1?Math.round(1e9*s)/1e9:s}function C(e,s){return i(e)?e:o(e)?s&&b(e,s)||[]:r(e)?N(e,s):D(t(e)?e:[e],s)}function b(e,t){let r=t.getColumnNames().slice(e.beginColumn,e.endColumn+1),s=[];for(let o=0,n=r.length,l;o<n;++o){let n=t.getColumn(r[o],!0)||[];for(let a=e.beginRow,u=e.endRow+1;a<u;++a)"string"==typeof(l=n[a])&&"="===l[0]&&t!==t.modified&&(l=t.modified.getCell(r[o],a)),s.push(i(l)?l:NaN)}return s}function w(e,t){let r=t.getColumnNames()[e.column];if(r){let s=t.getCell(r,e.row);if("string"==typeof s&&"="===s[0]&&t!==t.modified){let s=t.modified.getCell(r,e.row);return i(s)?s:NaN}return i(s)?s:NaN}return NaN}function D(e,o){let l;for(let a=0,u=e.length,h,c,f,d;a<u;++a){if(s(h=e[a])){c=h;continue}if(i(h)?d=h:t(h)?d=D(e,o):r(h)?d=i(f=N(h,o))?f:NaN:n(h)&&(d=o&&w(h,o)),void 0!==d){if(void 0===l)l=c?y(c,0,d):d;else{if(!c)return NaN;let t=e[a+1];s(t)&&m[t]>m[c]&&(d=y(t,d,D(e.slice(a+2))),a=u),l=y(c,l,d)}c=void 0,d=void 0}}return i(l)?l:NaN}function N(e,t,r){let s=c[e.name];if(s)try{return s(e.args,t)}catch{return NaN}let o=Error(`Function "${e.name}" not found.`);throw o.name="FormulaProcessError",o}return{asNumber:g,getArgumentValue:C,getArgumentsValues:function(e,t){let r=[];for(let s=0,o=e.length;s<o;++s)r.push(C(e[s],t));return r},getRangeValues:b,getReferenceValue:w,processFormula:D,processorFunctions:c,registerProcessorFunction:function(e,t){return f.test(e)&&!c[e]&&!!(c[e]=t)},translateReferences:function e(t,s=0,i=0){for(let l=0,a=t.length,u;l<a;++l)(u=t[l])instanceof Array?e(u,s,i):r(u)?e(u.args,s,i):o(u)?(u.beginColumnRelative&&(u.beginColumn+=s),u.beginRowRelative&&(u.beginRow+=i),u.endColumnRelative&&(u.endColumn+=s),u.endRowRelative&&(u.endRow+=i)):n(u)&&(u.columnRelative&&(u.column+=s),u.rowRelative&&(u.row+=i));return t}}}),r(t,"Data/Formula/Functions/ABS.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){let s=t(e[0],r);switch(typeof s){case"number":return Math.abs(s);case"object":{let e=[];for(let t=0,r=s.length,o;t<r;++t){if("number"!=typeof(o=s[t]))return NaN;e.push(Math.abs(o))}return e}default:return NaN}}return e.registerProcessorFunction("ABS",r),r}),r(t,"Data/Formula/Functions/AND.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,s){for(let o=0,n=e.length,i;o<n;++o)if(!(i=t(e[o],s))||"object"==typeof i&&!r(i,s))return!1;return!0}return e.registerProcessorFunction("AND",r),r}),r(t,"Data/Formula/Functions/AVERAGE.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentsValues:t}=e;function r(e,r){let s=t(e,r),o=0,n=0;for(let e=0,t=s.length,r;e<t;++e)switch(typeof(r=s[e])){case"number":isNaN(r)||(++o,n+=r);break;case"object":for(let e=0,t=r.length,s;e<t;++e)"number"!=typeof(s=r[e])||isNaN(s)||(++o,n+=s)}return o?n/o:0}return e.registerProcessorFunction("AVERAGE",r),r}),r(t,"Data/Formula/Functions/AVERAGEA.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){let s=0,o=0;for(let n=0,i=e.length,l;n<i;++n)switch(typeof(l=t(e[n],r))){case"boolean":++s,o+=l?1:0;continue;case"number":isNaN(l)||(++s,o+=l);continue;case"string":++s;continue;default:for(let e=0,t=l.length,r;e<t;++e)switch(typeof(r=l[e])){case"boolean":++s,o+=r?1:0;continue;case"number":isNaN(r)||(++s,o+=r);continue;case"string":++s;continue}continue}return s?o/s:0}return e.registerProcessorFunction("AVERAGEA",r),r}),r(t,"Data/Formula/Functions/COUNT.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){function t(r,s){let o=e.getArgumentsValues(r,s),n=0;for(let e=0,r=o.length,i;e<r;++e)switch(typeof(i=o[e])){case"number":!isNaN(i)&&++n;break;case"object":n+=t(i,s)}return n}return e.registerProcessorFunction("COUNT",t),t}),r(t,"Data/Formula/Functions/COUNTA.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){function t(r,s){let o=e.getArgumentsValues(r,s),n=0;for(let e=0,r=o.length,i;e<r;++e){switch(typeof(i=o[e])){case"number":if(isNaN(i))continue;break;case"object":n+=t(i,s);continue;case"string":if(!i)continue}++n}return n}return e.registerProcessorFunction("COUNTA",t),t}),r(t,"Data/Formula/Functions/IF.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){return t(e[0],r)?t(e[1],r):t(e[2],r)}return e.registerProcessorFunction("IF",r),r}),r(t,"Data/Formula/Functions/ISNA.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){let s=t(e[0],r);return"number"!=typeof s||isNaN(s)}return e.registerProcessorFunction("ISNA",r),r}),r(t,"Data/Formula/Functions/MAX.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentsValues:t}=e;function r(e,s){let o=t(e,s),n=Number.NEGATIVE_INFINITY;for(let e=0,t=o.length,s;e<t;++e)switch(typeof(s=o[e])){case"number":s>n&&(n=s);break;case"object":(s=r(s))>n&&(n=s)}return isFinite(n)?n:0}return e.registerProcessorFunction("MAX",r),r}),r(t,"Data/Formula/Functions/MEDIAN.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){function t(t,r){let s=[],o=e.getArgumentsValues(t,r);for(let e=0,t=o.length,r;e<t;++e)switch(typeof(r=o[e])){case"number":isNaN(r)||s.push(r);break;case"object":for(let e=0,t=r.length,o;e<t;++e)"number"!=typeof(o=r[e])||isNaN(o)||s.push(o)}let n=s.length;if(!n)return NaN;let i=Math.floor(n/2);return n%2?s[i]:(s[i-1]+s[i])/2}return e.registerProcessorFunction("MEDIAN",t),t}),r(t,"Data/Formula/Functions/MIN.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentsValues:t}=e;function r(e,s){let o=t(e,s),n=Number.POSITIVE_INFINITY;for(let e=0,t=o.length,s;e<t;++e)switch(typeof(s=o[e])){case"number":s<n&&(n=s);break;case"object":(s=r(s))<n&&(n=s)}return isFinite(n)?n:0}return e.registerProcessorFunction("MIN",r),r}),r(t,"Data/Formula/Functions/MOD.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){let s=t(e[0],r),o=t(e[1],r);return("object"==typeof s&&(s=s[0]),"object"==typeof o&&(o=o[0]),"number"!=typeof s||"number"!=typeof o||0===o)?NaN:s%o}return e.registerProcessorFunction("MOD",r),r}),r(t,"Data/Formula/Functions/MODE.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){function t(t,r){let s={},o=e.getArgumentsValues(t,r);for(let e=0,t=o.length,r;e<t;++e)switch(typeof(r=o[e])){case"number":isNaN(r)||(s[r]=(s[r]||0)+1);break;case"object":for(let e=0,t=r.length,o;e<t;++e)"number"!=typeof(o=r[e])||isNaN(o)||(s[o]=(s[o]||0)+1)}return s}function r(e,r){let s=t(e,r),o=Object.keys(s);if(!o.length)return NaN;let n=[parseFloat(o[0])],i=s[o[0]];for(let e=1,t=o.length,r,l;e<t;++e)i<(l=s[r=o[e]])?(n=[parseFloat(r)],i=l):i===l&&n.push(parseFloat(r));return i>1?n:NaN}function s(e,r){let s=t(e,r),o=Object.keys(s);if(!o.length)return NaN;let n=parseFloat(o[0]),i=s[o[0]];for(let e=1,t=o.length,r,l,a;e<t;++e)i<(a=s[r=o[e]])?(n=parseFloat(r),i=a):i===a&&n>(l=parseFloat(r))&&(n=l,i=a);return i>1?n:NaN}return e.registerProcessorFunction("MODE",s),e.registerProcessorFunction("MODE.MULT",r),e.registerProcessorFunction("MODE.SNGL",s),{MULT:r,SNGL:s}}),r(t,"Data/Formula/Functions/NOT.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){let s=t(e[0],r);switch("object"==typeof s&&(s=s[0]),typeof s){case"boolean":case"number":return!s}return NaN}return e.registerProcessorFunction("NOT",r),r}),r(t,"Data/Formula/Functions/OR.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,s){for(let o=0,n=e.length,i;o<n;++o)if("object"==typeof(i=t(e[o],s))){if(r(i,s))return!0}else if(i)return!0;return!1}return e.registerProcessorFunction("OR",r),r}),r(t,"Data/Formula/Functions/PRODUCT.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentsValues:t}=e;function r(e,s){let o=t(e,s),n=1,i=!1;for(let e=0,t=o.length,l;e<t;++e)switch(typeof(l=o[e])){case"number":isNaN(l)||(i=!0,n*=l);break;case"object":i=!0,n*=r(l,s)}return i?n:0}return e.registerProcessorFunction("PRODUCT",r),r}),r(t,"Data/Formula/Functions/SUM.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){function t(r,s){let o=e.getArgumentsValues(r,s),n=0;for(let e=0,r=o.length,i;e<r;++e)switch(typeof(i=o[e])){case"number":isNaN(i)||(n+=i);break;case"object":n+=t(i,s)}return n}return e.registerProcessorFunction("SUM",t),t}),r(t,"Data/Formula/Functions/XOR.js",[t["Data/Formula/FormulaProcessor.js"]],function(e){let{getArgumentValue:t}=e;function r(e,r){for(let s=0,o=e.length,n,i;s<o;++s)switch(typeof(i=t(e[s],r))){case"boolean":case"number":if(void 0===n)n=!!i;else if(!!i!==n)return!0;break;case"object":for(let e=0,t=i.length,r;e<t;++e)switch(typeof(r=i[e])){case"boolean":case"number":if(void 0===n)n=!!r;else if(!!r!==n)return!0}}return!1}return e.registerProcessorFunction("XOR",r),r}),r(t,"Data/Formula/Formula.js",[t["Data/Formula/FormulaParser.js"],t["Data/Formula/FormulaProcessor.js"],t["Data/Formula/FormulaTypes.js"]],function(e,t,r){return{...e,...t,...r}}),r(t,"Data/Converters/CSVConverter.js",[t["Data/Converters/DataConverter.js"],t["Core/Utilities.js"]],function(e,t){let{merge:r}=t;class s extends e{constructor(e){let t=r(s.defaultOptions,e);super(t),this.columns=[],this.headers=[],this.dataTypes=[],this.options=t}export(e,t=this.options){let{useLocalDecimalPoint:r,lineDelimiter:s}=t,o=!1!==this.options.firstRowAsNames,{decimalPoint:n,itemDelimiter:i}=t;n||(n=","!==i&&r?1.1.toLocaleString()[1]:"."),i||(i=","===n?";":",");let l=e.getSortedColumns(t.usePresentationOrder),a=Object.keys(l),u=[],h=a.length,m=[];o&&u.push(a.map(e=>`"${e}"`).join(i));for(let t=0;t<h;t++){let r;let s=a[t],o=l[s],c=o.length,f=e.whatIs(s);f&&(r=f.dataType);for(let e=0;e<c;e++){let s=o[e];if(m[e]||(m[e]=[]),"string"===r?s='"'+s+'"':"number"==typeof s?s=String(s).replace(".",n):"string"==typeof s&&(s=`"${s}"`),m[e][t]=s,t===h-1){let r=t;for(;m[e].length>2&&void 0===m[e][r];)m[e].pop(),r--;u.push(m[e].join(i))}}}return u.join(s)}parse(e,t){let s=this.dataTypes,o=r(this.options,e),{beforeParse:n,lineDelimiter:i,firstRowAsNames:l,itemDelimiter:a}=o,u,h=0,{csv:m,startRow:c,endRow:f}=o,d;if(this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers}),m&&n&&(m=n(m)),m){if(u=m.replace(/\r\n|\r/g,"\n").split(i||"\n"),(!c||c<0)&&(c=0),(!f||f>=u.length)&&(f=u.length-1),a||(this.guessedItemDelimiter=this.guessDelimiter(u)),l){let e=u[0].split(a||this.guessedItemDelimiter||",");for(let t=0;t<e.length;t++)e[t]=e[t].trim().replace(/^["']|["']$/g,"");this.headers=e,c++}let e=0;for(h=c;h<=f;h++)"#"===u[h][0]?e++:this.parseCSVRow(u[h],h-c-e);s.length&&s[0].length&&"date"===s[0][1]&&!this.options.dateFormat&&this.deduceDateFormat(this.columns[0],null,!0);for(let e=0,t=this.columns.length;e<t;++e){d=this.columns[e];for(let t=0,r=d.length;t<r;++t)if(d[t]&&"string"==typeof d[t]){let r=this.asGuessedType(d[t]);r instanceof Date&&(r=r.getTime()),this.columns[e][t]=r}}}this.emit({type:"afterParse",columns:this.columns,detail:t,headers:this.headers})}parseCSVRow(e,t){let r=this,s=r.columns||[],o=r.dataTypes,{startColumn:n,endColumn:i}=r.options,l=r.options.itemDelimiter||r.guessedItemDelimiter,{decimalPoint:a}=r.options;a&&a!==l||(a=r.guessedDecimalPoint||".");let u=0,h="",m="",c=0,f=0,d=t=>{h=e[t]},p=e=>{o.length<f+1&&o.push([e]),o[f][o[f].length-1]!==e&&o[f].push(e)},g=()=>{if(n>c||c>i){++c,m="";return}if("string"==typeof m?!isNaN(parseFloat(m))&&isFinite(m)?(m=parseFloat(m),p("number")):isNaN(Date.parse(m))?p("string"):(m=m.replace(/\//g,"-"),p("date")):p("number"),s.length<f+1&&s.push([]),"number"!=typeof m&&"number"!==r.guessType(m)&&a){let e=m;m=m.replace(a,"."),"number"!==r.guessType(m)&&(m=e)}s[f][t]=m,m="",++f,++c};if(e.trim().length&&"#"!==e.trim()[0]){for(;u<e.length;u++){if(d(u),"#"===h&&!/^#[0-F]{3,3}|[0-F]{6,6}/i.test(e.substring(u))){g();return}if('"'===h)for(d(++u);u<e.length&&'"'!==h;)m+=h,d(++u);else h===l?g():m+=h}g()}}guessDelimiter(e){let t=0,r=0,s,o={",":0,";":0," ":0},n=e.length;for(let s=0;s<n;s++){let n=!1,i,l,a,u="";if(s>13)break;let h=e[s];for(let e=0;e<h.length&&(i=h[e],l=h[e+1],a=h[e-1],"#"!==i);e++){if('"'===i){if(n){if('"'!==a&&'"'!==l){for(;" "===l&&e<h.length;)l=h[++e];void 0!==o[l]&&o[l]++,n=!1}}else n=!0}else void 0!==o[i]?(isNaN(Date.parse(u=u.trim()))?(isNaN(Number(u))||!isFinite(Number(u)))&&o[i]++:o[i]++,u=""):u+=i;","===i&&r++,"."===i&&t++}}return o[";"]>o[","]?s=";":(o[","],o[";"],s=","),t>r?this.guessedDecimalPoint=".":this.guessedDecimalPoint=",",s}getTable(){return e.getTableFromColumns(this.columns,this.headers)}}return s.defaultOptions={...e.defaultOptions,lineDelimiter:"\n"},s}),r(t,"Data/Connectors/CSVConnector.js",[t["Data/Converters/CSVConverter.js"],t["Data/Connectors/DataConnector.js"],t["Core/Utilities.js"]],function(e,t,r){let{merge:s}=r;class o extends t{constructor(t){let r=s(o.defaultOptions,t);super(r),this.converter=new e(r),this.options=r,r.enablePolling&&this.startPolling(1e3*Math.max(r.dataRefreshRate||0,1))}load(e){let t=this,r=t.converter,s=t.table,{csv:o,csvURL:n,dataModifier:i}=t.options;return t.emit({type:"load",csv:o,detail:e,table:s}),Promise.resolve(n?fetch(n).then(e=>e.text()):o||"").then(e=>(e&&(s.deleteColumns(),r.parse({csv:e}),s.setColumns(r.getTable().getColumns())),t.setModifierOptions(i).then(()=>e))).then(r=>(t.emit({type:"afterLoad",csv:r,detail:e,table:s}),t)).catch(r=>{throw t.emit({type:"loadError",detail:e,error:r,table:s}),r})}}return o.defaultOptions={csv:"",csvURL:"",enablePolling:!1,dataRefreshRate:1,firstRowAsNames:!0},t.registerType("CSV",o),o}),r(t,"Data/Converters/JSONConverter.js",[t["Data/Converters/DataConverter.js"],t["Data/DataTable.js"],t["Core/Utilities.js"]],function(e,t,r){let{error:s,isArray:o,merge:n,objectEach:i}=r;class l extends e{constructor(e){let r=n(l.defaultOptions,e);super(r),this.columns=[],this.headers=[],this.options=r,this.table=new t}parse(e,t){let{beforeParse:r,orientation:l,firstRowAsNames:a,columnNames:u}=e=n(this.options,e),h=e.data;if(h){if(this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers}),r&&(h=r(h)),h=h.slice(),"columns"===l)for(let e=0,t=h.length;e<t;e++){let t=h[e];if(!(t instanceof Array))return;this.headers instanceof Array?(a?this.headers.push(`${t.shift()}`):u&&u instanceof Array&&this.headers.push(u[e]),this.table.setColumn(this.headers[e]||e.toString(),t)):s("JSONConverter: Invalid `columnNames` option.",!1)}else if("rows"===l){a?this.headers=h.shift():u&&(this.headers=u);for(let e=0,t=h.length;e<t;e++){let t=h[e];if(o(t))for(let e=0,r=t.length;e<r;e++)this.columns.length<e+1&&this.columns.push([]),this.columns[e].push(t[e]),this.headers instanceof Array?this.table.setColumn(this.headers[e]||e.toString(),this.columns[e]):s("JSONConverter: Invalid `columnNames` option.",!1);else{let r=this.headers;if(r&&!(r instanceof Array)){let e={};i(r,(r,s)=>{e[s]=r.reduce((e,t)=>e[t],t)}),t=e}this.table.setRows([t],e)}}}this.emit({type:"afterParse",columns:this.columns,detail:t,headers:this.headers})}}getTable(){return this.table}}return l.defaultOptions={...e.defaultOptions,data:[],orientation:"rows"},l}),r(t,"Data/Connectors/JSONConnector.js",[t["Data/Connectors/DataConnector.js"],t["Core/Utilities.js"],t["Data/Converters/JSONConverter.js"]],function(e,t,r){let{merge:s}=t;class o extends e{constructor(e){let t=s(o.defaultOptions,e);super(t),this.converter=new r(t),this.options=t,t.enablePolling&&this.startPolling(1e3*Math.max(t.dataRefreshRate||0,1))}load(e){let t=this,r=t.converter,s=t.table,{data:o,dataUrl:n,dataModifier:i}=t.options;return t.emit({type:"load",data:o,detail:e,table:s}),Promise.resolve(n?fetch(n).then(e=>e.json()):o||[]).then(e=>(e&&(s.deleteColumns(),r.parse({data:e}),s.setColumns(r.getTable().getColumns())),t.setModifierOptions(i).then(()=>e))).then(r=>(t.emit({type:"afterLoad",data:r,detail:e,table:s}),t)).catch(r=>{throw t.emit({type:"loadError",detail:e,error:r,table:s}),r})}}return o.defaultOptions={data:[],enablePolling:!1,dataRefreshRate:0,firstRowAsNames:!0,orientation:"rows"},e.registerType("JSON",o),o}),r(t,"Data/Converters/GoogleSheetsConverter.js",[t["Data/Converters/DataConverter.js"],t["Core/Utilities.js"]],function(e,t){let{merge:r,uniqueKey:s}=t;class o extends e{constructor(e){let t=r(o.defaultOptions,e);super(t),this.columns=[],this.header=[],this.options=t}parse(e,t){let o;let n=r(this.options,e),i=(n.json&&n.json.values||[]).map(e=>e.slice());if(0===i.length)return!1;this.header=[],this.columns=[],this.emit({type:"parse",columns:this.columns,detail:t,headers:this.header}),this.columns=i;for(let e=0,t=i.length;e<t;e++){o=i[e],this.header[e]=n.firstRowAsNames?`${o.shift()}`:s();for(let t=0,r=o.length;t<r;++t)if(o[t]&&"string"==typeof o[t]){let r=this.asGuessedType(o[t]);r instanceof Date&&(r=r.getTime()),this.columns[e][t]=r}}this.emit({type:"afterParse",columns:this.columns,detail:t,headers:this.header})}getTable(){return e.getTableFromColumns(this.columns,this.header)}}return o.defaultOptions={...e.defaultOptions},o}),r(t,"Data/Connectors/GoogleSheetsConnector.js",[t["Data/Connectors/DataConnector.js"],t["Data/Converters/GoogleSheetsConverter.js"],t["Core/Utilities.js"]],function(e,t,r){let{merge:s,pick:o}=r;class n extends e{constructor(e){let r=s(n.defaultOptions,e);super(r),this.converter=new t(r),this.options=r}load(e){let t=this,r=t.converter,s=t.table,{dataModifier:o,dataRefreshRate:i,enablePolling:l,firstRowAsNames:a,googleAPIKey:u,googleSpreadsheetKey:h}=t.options,m=n.buildFetchURL(u,h,t.options);return t.emit({type:"load",detail:e,table:s,url:m}),fetch(m).then(e=>e.json()).then(e=>{if("object"==typeof e&&e&&"object"==typeof e.error&&e.error&&"number"==typeof e.error.code&&"string"==typeof e.error.message&&"string"==typeof e.error.status)throw Error(e.error.message);return r.parse({firstRowAsNames:a,json:e}),s.deleteColumns(),s.setColumns(r.getTable().getColumns()),t.setModifierOptions(o)}).then(()=>(t.emit({type:"afterLoad",detail:e,table:s,url:m}),l&&setTimeout(()=>t.load(),1e3*Math.max(i||0,1)),t)).catch(r=>{throw t.emit({type:"loadError",detail:e,error:r,table:s}),r})}}return n.defaultOptions={googleAPIKey:"",googleSpreadsheetKey:"",worksheet:1,enablePolling:!1,dataRefreshRate:2,firstRowAsNames:!0},function(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZ";function r(e={}){let{endColumn:r,endRow:s,googleSpreadsheetRange:n,startColumn:i,startRow:l}=e;return n||(t[i||0]||"A")+(Math.max(l||0,0)+1)+":"+(t[o(r,25)]||"Z")+(s?Math.max(s,0):"Z")}e.buildFetchURL=function(e,t,s={}){return`https://sheets.googleapis.com/v4/spreadsheets/${t}/values/`+(s.onlyColumnNames?"A1:Z1":r(s))+"?alt=json"+(s.onlyColumnNames?"":"&dateTimeRenderOption=FORMATTED_STRING&majorDimension=COLUMNS&valueRenderOption=UNFORMATTED_VALUE")+"&prettyPrint=false"+`&key=${e}`},e.buildQueryRange=r}(n||(n={})),e.registerType("GoogleSheets",n),n}),r(t,"Data/Converters/HTMLTableConverter.js",[t["Data/Converters/DataConverter.js"],t["Core/Utilities.js"]],function(e,t){let{merge:r}=t;class s extends e{constructor(e){let t=r(s.defaultOptions,e);super(t),this.columns=[],this.headers=[],this.options=t,t.tableElement&&(this.tableElement=t.tableElement,this.tableElementID=t.tableElement.id)}export(e,t=this.options){let r=!1!==t.firstRowAsNames,s=t.useMultiLevelHeaders,o=e.getSortedColumns(t.usePresentationOrder),n=Object.keys(o),i=[],l=n.length,a=[],u="";if(r){let e=[];if(s){for(let t of n){let r=(o[t].shift()||"").toString();e.push(r)}u=this.getTableHeaderHTML(n,e,t)}else u=this.getTableHeaderHTML(void 0,n,t)}for(let e=0;e<l;e++){let t=o[n[e]],r=t.length;for(let s=0;s<r;s++){let r=t[s];a[s]||(a[s]=[]),"string"==typeof r||"number"==typeof r||void 0===r||(r=(r||"").toString()),a[s][e]=this.getCellHTMLFromValue(e?"td":"th",null,e?"":'scope="row"',r),e===l-1&&i.push("<tr>"+a[s].join("")+"</tr>")}}let h="";return t.tableCaption&&(h='<caption class="highcharts-table-caption">'+t.tableCaption+"</caption>"),"<table>"+h+u+"<tbody>"+i.join("")+"</tbody></table>"}getCellHTMLFromValue(e,t,r,s,o){let n=s,i="text"+(t?" "+t:"");return"number"==typeof n?(n=n.toString(),","===o&&(n=n.replace(".",o)),i="number"):s||(n="",i="empty"),"<"+e+(r?" "+r:"")+' class="'+i+'">'+n+"</"+e+">"}getTableHeaderHTML(e=[],t=[],r=this.options){let{useMultiLevelHeaders:s,useRowspanHeaders:o}=r,n="<thead>",i=0,l=t&&t.length,a,u=0,h;if(s&&e&&t&&!function(e,t){let r=e.length;if(t.length!==r)return!1;for(;--r;)if(e[r]!==t[r])return!1;return!0}(e,t)){for(n+="<tr>";i<l;++i)(a=e[i])===e[i+1]?++u:u?(n+=this.getCellHTMLFromValue("th","highcharts-table-topheading",'scope="col" colspan="'+(u+1)+'"',a),u=0):(a===t[i]?o?(h=2,delete t[i]):(h=1,t[i]=""):h=1,n+=this.getCellHTMLFromValue("th","highcharts-table-topheading",'scope="col"'+(h>1?' valign="top" rowspan="'+h+'"':""),a));n+="</tr>"}if(t){for(n+="<tr>",i=0,l=t.length;i<l;++i)void 0!==t[i]&&(n+=this.getCellHTMLFromValue("th",null,'scope="col"',t[i]));n+="</tr>"}return n+"</thead>"}parse(e,t){let s=[],o=[],n=r(this.options,e),{endRow:i,startColumn:l,endColumn:a,firstRowAsNames:u}=n,h=n.tableElement||this.tableElement;if(!(h instanceof HTMLElement)){this.emit({type:"parseError",columns:s,detail:t,headers:o,error:"Not a valid HTML Table"});return}this.tableElement=h,this.tableElementID=h.id,this.emit({type:"parse",columns:this.columns,detail:t,headers:this.headers});let m=h.getElementsByTagName("tr"),c=m.length,f=0,d,{startRow:p}=n;if(u&&c){let e=m[0].children,t=e.length;for(let r=l;r<t&&!(r>a);r++)("TD"===(d=e[r]).tagName||"TH"===d.tagName)&&o.push(d.innerHTML);p++}for(;f<c;){if(f>=p&&f<=i){let e=m[f].children,t=e.length,r=0;for(;r<t;){let t=r-l,o=s[t];if(("TD"===(d=e[r]).tagName||"TH"===d.tagName)&&r>=l&&r<=a){s[t]||(s[t]=[]);let e=this.asGuessedType(d.innerHTML);e instanceof Date&&(e=e.getTime()),s[t][f-p]=e;let r=1;for(;f-p>=r&&void 0===o[f-p-r];)o[f-p-r]=null,r++}r++}}f++}this.columns=s,this.headers=o,this.emit({type:"afterParse",columns:s,detail:t,headers:o})}getTable(){return e.getTableFromColumns(this.columns,this.headers)}}return s.defaultOptions={...e.defaultOptions,useRowspanHeaders:!0,useMultiLevelHeaders:!0},s}),r(t,"Data/Connectors/HTMLTableConnector.js",[t["Data/Connectors/DataConnector.js"],t["Core/Globals.js"],t["Data/Converters/HTMLTableConverter.js"],t["Core/Utilities.js"]],function(e,t,r,s){let{win:o}=t,{merge:n}=s;class i extends e{constructor(e){let t=n(i.defaultOptions,e);super(t),this.converter=new r(t),this.options=t}load(e){let t;let r=this,s=r.converter,i=r.table,{dataModifier:l,table:a}=r.options;if(r.emit({type:"load",detail:e,table:i,tableElement:r.tableElement}),"string"==typeof a?(r.tableID=a,t=o.document.getElementById(a)):(t=a,r.tableID=t.id),r.tableElement=t||void 0,!r.tableElement){let t="HTML table not provided, or element with ID not found";return r.emit({type:"loadError",detail:e,error:t,table:i}),Promise.reject(Error(t))}return s.parse(n({tableElement:r.tableElement},r.options),e),i.deleteColumns(),i.setColumns(s.getTable().getColumns()),r.setModifierOptions(l).then(()=>(r.emit({type:"afterLoad",detail:e,table:i,tableElement:r.tableElement}),r))}}return i.defaultOptions={table:""},e.registerType("HTMLTable",i),i}),r(t,"Data/Modifiers/ChainModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Core/Utilities.js"]],function(e,t){let{merge:r}=t;class s extends e{constructor(t,...o){super(),this.chain=o,this.options=r(s.defaultOptions,t);let n=this.options.chain||[];for(let t=0,r=n.length,s,i;t<r;++t)(s=n[t]).type&&(i=e.types[s.type])&&o.push(new i(s))}add(e,t){this.emit({type:"addModifier",detail:t,modifier:e}),this.chain.push(e),this.emit({type:"addModifier",detail:t,modifier:e})}clear(e){this.emit({type:"clearChain",detail:e}),this.chain.length=0,this.emit({type:"afterClearChain",detail:e})}modify(e,t){let r=this.options.reverse?this.chain.slice().reverse():this.chain.slice();e.modified===e&&(e.modified=e.clone(!1,t));let s=Promise.resolve(e);for(let e=0,o=r.length;e<o;++e){let o=r[e];s=s.then(e=>o.modify(e.modified,t))}return(s=s.then(t=>(e.modified.deleteColumns(),e.modified.setColumns(t.modified.getColumns()),e))).catch(r=>{throw this.emit({type:"error",detail:t,table:e}),r})}modifyCell(e,t,r,s,o){let n=this.options.reverse?this.chain.reverse():this.chain;if(n.length){let i=e.clone();for(let e=0,l=n.length;e<l;++e)n[e].modifyCell(i,t,r,s,o),i=i.modified;e.modified=i}return e}modifyColumns(e,t,r,s){let o=this.options.reverse?this.chain.reverse():this.chain.slice();if(o.length){let n=e.clone();for(let e=0,i=o.length;e<i;++e)o[e].modifyColumns(n,t,r,s),n=n.modified;e.modified=n}return e}modifyRows(e,t,r,s){let o=this.options.reverse?this.chain.reverse():this.chain.slice();if(o.length){let n=e.clone();for(let e=0,i=o.length;e<i;++e)o[e].modifyRows(n,t,r,s),n=n.modified;e.modified=n}return e}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let r=this.options.reverse?this.chain.reverse():this.chain.slice(),s=e.modified;for(let e=0,o=r.length;e<o;++e)s=r[e].modifyTable(s,t).modified;return e.modified=s,this.emit({type:"afterModify",detail:t,table:e}),e}remove(e,t){let r=this.chain;this.emit({type:"removeModifier",detail:t,modifier:e}),r.splice(r.indexOf(e),1),this.emit({type:"afterRemoveModifier",detail:t,modifier:e})}}return s.defaultOptions={type:"Chain"},e.registerType("Chain",s),s}),r(t,"Data/Modifiers/InvertModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Core/Utilities.js"]],function(e,t){let{merge:r}=t;class s extends e{constructor(e){super(),this.options=r(s.defaultOptions,e)}modifyCell(e,t,r,s,o){let n=e.modified,i=n.getRowIndexBy("columnNames",t);return void 0===i?n.setColumns(this.modifyTable(e.clone()).getColumns(),void 0,o):n.setCell(`${r}`,i,s,o),e}modifyColumns(e,t,r,s){let o=e.modified,n=o.getColumn("columnNames")||[],i=e.getColumnNames(),l=e.getRowCount()!==n.length;if(!l){for(let e=0,t=i.length;e<t;++e)if(i[e]!==n[e]){l=!0;break}}if(l)return this.modifyTable(e,s);i=Object.keys(t);for(let e=0,n=i.length,l,a,u;e<n;++e){l=t[a=i[e]],u=o.getRowIndexBy("columnNames",a)||o.getRowCount();for(let e=0,t=r,n=l.length;e<n;++e,++t)o.setCell(`${t}`,u,l[e],s)}return e}modifyRows(e,t,r,s){let o=e.getColumnNames(),n=e.modified,i=n.getColumn("columnNames")||[],l=e.getRowCount()!==i.length;if(!l){for(let e=0,t=o.length;e<t;++e)if(o[e]!==i[e]){l=!0;break}}if(l)return this.modifyTable(e,s);for(let e=0,i=r,l=t.length,a;e<l;++e,++i)if((a=t[e])instanceof Array)n.setColumn(`${i}`,a);else for(let e=0,t=o.length;e<t;++e)n.setCell(`${i}`,e,a[o[e]],s);return e}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let r=e.modified;if(e.hasColumns(["columnNames"])){let t=((e.deleteColumns(["columnNames"])||{}).columnNames||[]).map(e=>`${e}`),s={};for(let r=0,o=e.getRowCount(),n;r<o;++r)(n=e.getRow(r))&&(s[t[r]]=n);r.deleteColumns(),r.setColumns(s)}else{let t={};for(let r=0,s=e.getRowCount(),o;r<s;++r)(o=e.getRow(r))&&(t[`${r}`]=o);t.columnNames=e.getColumnNames(),r.deleteColumns(),r.setColumns(t)}return this.emit({type:"afterModify",detail:t,table:e}),e}}return s.defaultOptions={type:"Invert"},e.registerType("Invert",s),s}),r(t,"Data/Modifiers/MathModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Data/Formula/FormulaParser.js"],t["Data/Formula/FormulaProcessor.js"]],function(e,t,r){class s extends e{constructor(e){super(),this.options={...s.defaultOptions,...e}}modifyTable(e,r){this.emit({type:"modify",detail:r,table:e});let s=this.options.alternativeSeparators,o=this.options.formulaColumns||e.getColumnNames(),n=e.modified;for(let t=0,r=o.length,s;t<r;++t)s=o[t],o.indexOf(s)>=0&&n.setColumn(s,this.processColumn(e,s));let i=this.options.columnFormulas||[];for(let r=0,o=i.length,l,a;r<o;++r)l=i[r],a=t.parseFormula(l.formula,s),n.setColumn(l.column,this.processColumnFormula(a,e,l.rowStart,l.rowEnd));return this.emit({type:"afterModify",detail:r,table:e}),e}processColumn(e,s,o=0){let n=this.options.alternativeSeparators,i=(e.getColumn(s,!0)||[]).slice(o>0?o:0);for(let s=0,o=i.length,l=[],a;s<o;++s)if("string"==typeof(a=i[s])&&"="===a[0])try{l=""===a?l:t.parseFormula(a.substring(1),n),i[s]=r.processFormula(l,e)}catch{i[s]=NaN}return i}processColumnFormula(e,t,s=0,o=t.getRowCount()){s=s>=0?s:0,o=o>=0?o:t.getRowCount()+o;let n=[],i=t.modified;for(let t=0,l=o-s;t<l;++t)try{n[t]=r.processFormula(e,i)}catch{n[t]=NaN}finally{e=r.translateReferences(e,0,1)}return n}}return s.defaultOptions={type:"Math",alternativeSeparators:!1},e.registerType("Math",s),s}),r(t,"Data/Modifiers/RangeModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Core/Utilities.js"]],function(e,t){let{merge:r}=t;class s extends e{constructor(e){super(),this.options=r(s.defaultOptions,e)}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let{additive:r,ranges:s,strict:o}=this.options;if(s.length){let t=e.modified,n=e.getColumns(),i=[];for(let l=0,a=s.length,u,h;l<a;++l)if(u=s[l],!o||typeof u.minValue==typeof u.maxValue){l>0&&!r&&(t.deleteRows(),t.setRows(i),n=t.getColumns(),i=[]),h=n[u.column]||[];for(let s=0,n=h.length,l,a;s<n;++s){switch(typeof(l=h[s])){default:continue;case"boolean":case"number":case"string":}(!o||typeof l==typeof u.minValue)&&l>=u.minValue&&l<=u.maxValue&&(a=r?e.getRow(s):t.getRow(s))&&i.push(a)}}t.deleteRows(),t.setRows(i)}return this.emit({type:"afterModify",detail:t,table:e}),e}}return s.defaultOptions={type:"Range",ranges:[]},e.registerType("Range",s),s}),r(t,"Data/Modifiers/SortModifier.js",[t["Data/Modifiers/DataModifier.js"],t["Data/DataTable.js"],t["Core/Utilities.js"]],function(e,t,r){let{merge:s}=r;class o extends e{static ascending(e,t){return(e||0)<(t||0)?-1:(e||0)>(t||0)?1:0}static descending(e,t){return(t||0)<(e||0)?-1:(t||0)>(e||0)?1:0}constructor(e){super(),this.options=s(o.defaultOptions,e)}getRowReferences(e){let t=e.getRows(),r=[];for(let e=0,s=t.length;e<s;++e)r.push({index:e,row:t[e]});return r}modifyCell(e,r,s,o,n){let{orderByColumn:i,orderInColumn:l}=this.options;return r===i&&(l?(e.modified.setCell(r,s,o),e.modified.setColumn(l,this.modifyTable(new t({columns:e.getColumns([i,l])})).modified.getColumn(l))):this.modifyTable(e,n)),e}modifyColumns(e,r,s,o){let{orderByColumn:n,orderInColumn:i}=this.options,l=Object.keys(r);return l.indexOf(n)>-1&&(i&&r[l[0]].length?(e.modified.setColumns(r,s),e.modified.setColumn(i,this.modifyTable(new t({columns:e.getColumns([n,i])})).modified.getColumn(i))):this.modifyTable(e,o)),e}modifyRows(e,r,s,o){let{orderByColumn:n,orderInColumn:i}=this.options;return i&&r.length?(e.modified.setRows(r,s),e.modified.setColumn(i,this.modifyTable(new t({columns:e.getColumns([n,i])})).modified.getColumn(i))):this.modifyTable(e,o),e}modifyTable(e,t){this.emit({type:"modify",detail:t,table:e});let r=e.getColumnNames(),s=e.getRowCount(),n=this.getRowReferences(e),{direction:i,orderByColumn:l,orderInColumn:a}=this.options,u="asc"===i?o.ascending:o.descending,h=r.indexOf(l),m=e.modified;if(-1!==h&&n.sort((e,t)=>u(e.row[h],t.row[h])),a){let e=[];for(let t=0;t<s;++t)e[n[t].index]=t;m.setColumns({[a]:e})}else{let e=[];for(let t=0;t<s;++t)e.push(n[t].row);m.setRows(e,0)}return this.emit({type:"afterModify",detail:t,table:e}),e}}return o.defaultOptions={type:"Sort",direction:"desc",orderByColumn:"y"},e.registerType("Sort",o),o}),r(t,"masters/modules/data-tools.src.js",[t["Core/Globals.js"],t["Data/Connectors/DataConnector.js"],t["Data/Converters/DataConverter.js"],t["Data/DataCursor.js"],t["Data/Modifiers/DataModifier.js"],t["Data/DataPool.js"],t["Data/DataTable.js"],t["Data/Formula/Formula.js"]],function(e,t,r,s,o,n,i,l){return e.DataConnector=e.DataConnector||t,e.DataConverter=e.DataConverter||r,e.DataCursor=e.DataCursor||s,e.DataModifier=e.DataModifier||o,e.DataPool=e.DataPool||n,e.DataTable=e.DataTable||i,e.Formula=e.Formula||l,e})});