stream-charts 1.2.0 → 2.0.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 (463) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +809 -1022
  3. package/changes.md +40 -0
  4. package/dist/app/charts/Chart.d.ts +35 -139
  5. package/dist/app/charts/Chart.d.ts.map +1 -0
  6. package/dist/app/charts/Chart.js +74 -65
  7. package/dist/app/charts/Chart.js.map +1 -1
  8. package/dist/app/charts/axes/AxesState.d.ts +26 -18
  9. package/dist/app/charts/axes/AxesState.d.ts.map +1 -0
  10. package/dist/app/charts/axes/AxesState.js +26 -24
  11. package/dist/app/charts/axes/AxesState.js.map +1 -1
  12. package/dist/app/charts/axes/AxisInterval.d.ts +44 -26
  13. package/dist/app/charts/axes/AxisInterval.d.ts.map +1 -0
  14. package/dist/app/charts/axes/AxisInterval.js +48 -29
  15. package/dist/app/charts/axes/AxisInterval.js.map +1 -1
  16. package/dist/app/charts/axes/BaseAxisRange.d.ts +46 -22
  17. package/dist/app/charts/axes/BaseAxisRange.d.ts.map +1 -0
  18. package/dist/app/charts/axes/BaseAxisRange.js +17 -12
  19. package/dist/app/charts/axes/BaseAxisRange.js.map +1 -1
  20. package/dist/app/charts/axes/ContinuousAxis.d.ts +47 -6
  21. package/dist/app/charts/axes/ContinuousAxis.d.ts.map +1 -0
  22. package/dist/app/charts/axes/ContinuousAxis.js +160 -27
  23. package/dist/app/charts/axes/ContinuousAxis.js.map +1 -1
  24. package/dist/app/charts/axes/ContinuousAxisRange.d.ts +29 -10
  25. package/dist/app/charts/axes/ContinuousAxisRange.d.ts.map +1 -0
  26. package/dist/app/charts/axes/ContinuousAxisRange.js +29 -11
  27. package/dist/app/charts/axes/ContinuousAxisRange.js.map +1 -1
  28. package/dist/app/charts/axes/EmptyAxis.d.ts +5 -2
  29. package/dist/app/charts/axes/EmptyAxis.d.ts.map +1 -0
  30. package/dist/app/charts/axes/EmptyAxis.js +30 -9
  31. package/dist/app/charts/axes/EmptyAxis.js.map +1 -1
  32. package/dist/app/charts/axes/OrdinalAxis.d.ts +5 -3
  33. package/dist/app/charts/axes/OrdinalAxis.d.ts.map +1 -0
  34. package/dist/app/charts/axes/OrdinalAxis.js +39 -16
  35. package/dist/app/charts/axes/OrdinalAxis.js.map +1 -1
  36. package/dist/app/charts/axes/OrdinalAxisRange.d.ts +76 -13
  37. package/dist/app/charts/axes/OrdinalAxisRange.d.ts.map +1 -0
  38. package/dist/app/charts/axes/OrdinalAxisRange.js +95 -16
  39. package/dist/app/charts/axes/OrdinalAxisRange.js.map +1 -1
  40. package/dist/app/charts/axes/autoScale.d.ts +111 -0
  41. package/dist/app/charts/axes/autoScale.d.ts.map +1 -0
  42. package/dist/app/charts/axes/autoScale.js +188 -0
  43. package/dist/app/charts/axes/autoScale.js.map +1 -0
  44. package/dist/app/charts/axes/axes.d.ts +273 -150
  45. package/dist/app/charts/axes/axes.d.ts.map +1 -0
  46. package/dist/app/charts/axes/axes.js +808 -583
  47. package/dist/app/charts/axes/axes.js.map +1 -1
  48. package/dist/app/charts/d3types.d.ts +40 -11
  49. package/dist/app/charts/d3types.d.ts.map +1 -0
  50. package/dist/app/charts/d3types.js +3 -0
  51. package/dist/app/charts/d3types.js.map +1 -1
  52. package/dist/app/charts/datasources/StreamingDataSource.d.ts +149 -0
  53. package/dist/app/charts/datasources/StreamingDataSource.d.ts.map +1 -0
  54. package/dist/app/charts/datasources/StreamingDataSource.js +110 -0
  55. package/dist/app/charts/datasources/StreamingDataSource.js.map +1 -0
  56. package/dist/app/charts/datasources/iteratesDataSource.d.ts +73 -0
  57. package/dist/app/charts/datasources/iteratesDataSource.d.ts.map +1 -0
  58. package/dist/app/charts/datasources/iteratesDataSource.js +87 -0
  59. package/dist/app/charts/datasources/iteratesDataSource.js.map +1 -0
  60. package/dist/app/charts/datasources/ordinalDataSource.d.ts +75 -0
  61. package/dist/app/charts/datasources/ordinalDataSource.d.ts.map +1 -0
  62. package/dist/app/charts/datasources/ordinalDataSource.js +135 -0
  63. package/dist/app/charts/datasources/ordinalDataSource.js.map +1 -0
  64. package/dist/app/charts/datasources/outlierDataSource.d.ts +53 -0
  65. package/dist/app/charts/datasources/outlierDataSource.d.ts.map +1 -0
  66. package/dist/app/charts/datasources/outlierDataSource.js +57 -0
  67. package/dist/app/charts/datasources/outlierDataSource.js.map +1 -0
  68. package/dist/app/charts/datasources/timeSeriesDataSource.d.ts +77 -0
  69. package/dist/app/charts/datasources/timeSeriesDataSource.d.ts.map +1 -0
  70. package/dist/app/charts/datasources/timeSeriesDataSource.js +85 -0
  71. package/dist/app/charts/datasources/timeSeriesDataSource.js.map +1 -0
  72. package/dist/app/charts/filters/regexFilter.d.ts +31 -4
  73. package/dist/app/charts/filters/regexFilter.d.ts.map +1 -0
  74. package/dist/app/charts/filters/regexFilter.js +38 -4
  75. package/dist/app/charts/filters/regexFilter.js.map +1 -1
  76. package/dist/app/charts/hooks/AxesProvider.d.ts +21 -0
  77. package/dist/app/charts/hooks/AxesProvider.d.ts.map +1 -0
  78. package/dist/app/charts/hooks/AxesProvider.js +213 -0
  79. package/dist/app/charts/hooks/AxesProvider.js.map +1 -0
  80. package/dist/app/charts/hooks/CanvasSurfaceProvider.d.ts +25 -0
  81. package/dist/app/charts/hooks/CanvasSurfaceProvider.d.ts.map +1 -0
  82. package/dist/app/charts/hooks/CanvasSurfaceProvider.js +76 -0
  83. package/dist/app/charts/hooks/CanvasSurfaceProvider.js.map +1 -0
  84. package/dist/app/charts/hooks/ChartProvider.d.ts +40 -0
  85. package/dist/app/charts/hooks/ChartProvider.d.ts.map +1 -0
  86. package/dist/app/charts/hooks/ChartProvider.js +33 -0
  87. package/dist/app/charts/hooks/ChartProvider.js.map +1 -0
  88. package/dist/app/charts/hooks/InteractionProvider.d.ts +23 -0
  89. package/dist/app/charts/hooks/InteractionProvider.d.ts.map +1 -0
  90. package/dist/app/charts/hooks/InteractionProvider.js +60 -0
  91. package/dist/app/charts/hooks/InteractionProvider.js.map +1 -0
  92. package/dist/app/charts/hooks/PlotDimensionsProvider.d.ts +16 -0
  93. package/dist/app/charts/hooks/PlotDimensionsProvider.d.ts.map +1 -0
  94. package/dist/app/charts/hooks/PlotDimensionsProvider.js +76 -0
  95. package/dist/app/charts/hooks/PlotDimensionsProvider.js.map +1 -0
  96. package/dist/app/charts/hooks/defaultAxesValues.d.ts +11 -0
  97. package/dist/app/charts/hooks/defaultAxesValues.d.ts.map +1 -0
  98. package/dist/app/charts/hooks/defaultAxesValues.js +36 -0
  99. package/dist/app/charts/hooks/defaultAxesValues.js.map +1 -0
  100. package/dist/app/charts/hooks/defaultMouseValues.d.ts +9 -0
  101. package/dist/app/charts/hooks/defaultMouseValues.d.ts.map +1 -0
  102. package/dist/app/charts/hooks/defaultMouseValues.js +23 -0
  103. package/dist/app/charts/hooks/defaultMouseValues.js.map +1 -0
  104. package/dist/app/charts/hooks/defaultPlotDimensions.d.ts +13 -0
  105. package/dist/app/charts/hooks/defaultPlotDimensions.d.ts.map +1 -0
  106. package/dist/app/charts/hooks/defaultPlotDimensions.js +23 -0
  107. package/dist/app/charts/hooks/defaultPlotDimensions.js.map +1 -0
  108. package/dist/app/charts/hooks/defaultTooltipValues.d.ts +9 -0
  109. package/dist/app/charts/hooks/defaultTooltipValues.d.ts.map +1 -0
  110. package/dist/app/charts/hooks/defaultTooltipValues.js +21 -0
  111. package/dist/app/charts/hooks/defaultTooltipValues.js.map +1 -0
  112. package/dist/app/charts/hooks/defaultUseChartValues.d.ts +14 -0
  113. package/dist/app/charts/hooks/defaultUseChartValues.d.ts.map +1 -0
  114. package/dist/app/charts/hooks/defaultUseChartValues.js +30 -0
  115. package/dist/app/charts/hooks/defaultUseChartValues.js.map +1 -0
  116. package/dist/app/charts/hooks/useAxes.d.ts +49 -36
  117. package/dist/app/charts/hooks/useAxes.d.ts.map +1 -0
  118. package/dist/app/charts/hooks/useAxes.js +16 -176
  119. package/dist/app/charts/hooks/useAxes.js.map +1 -1
  120. package/dist/app/charts/hooks/useCanvasSurface.d.ts +25 -0
  121. package/dist/app/charts/hooks/useCanvasSurface.d.ts.map +1 -0
  122. package/dist/app/charts/hooks/useCanvasSurface.js +18 -0
  123. package/dist/app/charts/hooks/useCanvasSurface.js.map +1 -0
  124. package/dist/app/charts/hooks/useChart.d.ts +30 -44
  125. package/dist/app/charts/hooks/useChart.d.ts.map +1 -0
  126. package/dist/app/charts/hooks/useChart.js +26 -48
  127. package/dist/app/charts/hooks/useChart.js.map +1 -1
  128. package/dist/app/charts/hooks/useDataSource.d.ts +68 -0
  129. package/dist/app/charts/hooks/useDataSource.d.ts.map +1 -0
  130. package/dist/app/charts/hooks/useDataSource.js +63 -0
  131. package/dist/app/charts/hooks/useDataSource.js.map +1 -0
  132. package/dist/app/charts/hooks/useHoveredSeries.d.ts +25 -0
  133. package/dist/app/charts/hooks/useHoveredSeries.d.ts.map +1 -0
  134. package/dist/app/charts/hooks/useHoveredSeries.js +15 -0
  135. package/dist/app/charts/hooks/useHoveredSeries.js.map +1 -0
  136. package/dist/app/charts/hooks/useMouse.d.ts +46 -22
  137. package/dist/app/charts/hooks/useMouse.d.ts.map +1 -0
  138. package/dist/app/charts/hooks/useMouse.js +12 -56
  139. package/dist/app/charts/hooks/useMouse.js.map +1 -1
  140. package/dist/app/charts/hooks/usePlotDimensions.d.ts +25 -13
  141. package/dist/app/charts/hooks/usePlotDimensions.d.ts.map +1 -0
  142. package/dist/app/charts/hooks/usePlotDimensions.js +6 -62
  143. package/dist/app/charts/hooks/usePlotDimensions.js.map +1 -1
  144. package/dist/app/charts/hooks/useTooltip.d.ts +24 -26
  145. package/dist/app/charts/hooks/useTooltip.d.ts.map +1 -0
  146. package/dist/app/charts/hooks/useTooltip.js +12 -42
  147. package/dist/app/charts/hooks/useTooltip.js.map +1 -1
  148. package/dist/app/charts/index.d.ts +66 -0
  149. package/dist/app/charts/index.d.ts.map +1 -0
  150. package/dist/app/charts/index.js +87 -0
  151. package/dist/app/charts/index.js.map +1 -0
  152. package/dist/app/charts/legends/Legend.d.ts +33 -12
  153. package/dist/app/charts/legends/Legend.d.ts.map +1 -0
  154. package/dist/app/charts/legends/Legend.js +138 -379
  155. package/dist/app/charts/legends/Legend.js.map +1 -1
  156. package/dist/app/charts/legends/constants.d.ts +19 -0
  157. package/dist/app/charts/legends/constants.d.ts.map +1 -0
  158. package/dist/app/charts/legends/constants.js +34 -0
  159. package/dist/app/charts/legends/constants.js.map +1 -0
  160. package/dist/app/charts/observables/ChartData.d.ts +1 -0
  161. package/dist/app/charts/observables/ChartData.d.ts.map +1 -0
  162. package/dist/app/charts/observables/iterates.d.ts +13 -7
  163. package/dist/app/charts/observables/iterates.d.ts.map +1 -0
  164. package/dist/app/charts/observables/iterates.js +42 -9
  165. package/dist/app/charts/observables/iterates.js.map +1 -1
  166. package/dist/app/charts/observables/ordinals.d.ts +70 -12
  167. package/dist/app/charts/observables/ordinals.d.ts.map +1 -0
  168. package/dist/app/charts/observables/ordinals.js +127 -48
  169. package/dist/app/charts/observables/ordinals.js.map +1 -1
  170. package/dist/app/charts/observables/outliers.d.ts +18 -0
  171. package/dist/app/charts/observables/outliers.d.ts.map +1 -0
  172. package/dist/app/charts/observables/outliers.js +2 -0
  173. package/dist/app/charts/observables/outliers.js.map +1 -0
  174. package/dist/app/charts/plots/BarPlot.d.ts +87 -13
  175. package/dist/app/charts/plots/BarPlot.d.ts.map +1 -0
  176. package/dist/app/charts/plots/BarPlot.js +603 -356
  177. package/dist/app/charts/plots/BarPlot.js.map +1 -1
  178. package/dist/app/charts/plots/OutlierPlot.d.ts +123 -0
  179. package/dist/app/charts/plots/OutlierPlot.d.ts.map +1 -0
  180. package/dist/app/charts/plots/OutlierPlot.js +430 -0
  181. package/dist/app/charts/plots/OutlierPlot.js.map +1 -0
  182. package/dist/app/charts/plots/PoincarePlot.d.ts +92 -14
  183. package/dist/app/charts/plots/PoincarePlot.d.ts.map +1 -0
  184. package/dist/app/charts/plots/PoincarePlot.js +523 -364
  185. package/dist/app/charts/plots/PoincarePlot.js.map +1 -1
  186. package/dist/app/charts/plots/RasterPlot.d.ts +31 -10
  187. package/dist/app/charts/plots/RasterPlot.d.ts.map +1 -0
  188. package/dist/app/charts/plots/RasterPlot.js +198 -306
  189. package/dist/app/charts/plots/RasterPlot.js.map +1 -1
  190. package/dist/app/charts/plots/ScatterPlot.d.ts +77 -21
  191. package/dist/app/charts/plots/ScatterPlot.d.ts.map +1 -0
  192. package/dist/app/charts/plots/ScatterPlot.js +359 -302
  193. package/dist/app/charts/plots/ScatterPlot.js.map +1 -1
  194. package/dist/app/charts/plots/autoScaleYAxes.d.ts +43 -0
  195. package/dist/app/charts/plots/autoScaleYAxes.d.ts.map +1 -0
  196. package/dist/app/charts/plots/autoScaleYAxes.js +71 -0
  197. package/dist/app/charts/plots/autoScaleYAxes.js.map +1 -0
  198. package/dist/app/charts/plots/colorizedLine.d.ts +61 -0
  199. package/dist/app/charts/plots/colorizedLine.d.ts.map +1 -0
  200. package/dist/app/charts/plots/colorizedLine.js +157 -0
  201. package/dist/app/charts/plots/colorizedLine.js.map +1 -0
  202. package/dist/app/charts/plots/constants.d.ts +7 -0
  203. package/dist/app/charts/plots/constants.d.ts.map +1 -0
  204. package/dist/app/charts/plots/constants.js +11 -0
  205. package/dist/app/charts/plots/constants.js.map +1 -0
  206. package/dist/app/charts/plots/hitTesting.d.ts +88 -0
  207. package/dist/app/charts/plots/hitTesting.d.ts.map +1 -0
  208. package/dist/app/charts/plots/hitTesting.js +136 -0
  209. package/dist/app/charts/plots/hitTesting.js.map +1 -0
  210. package/dist/app/charts/plots/plot.d.ts +52 -16
  211. package/dist/app/charts/plots/plot.d.ts.map +1 -0
  212. package/dist/app/charts/plots/plot.js +108 -35
  213. package/dist/app/charts/plots/plot.js.map +1 -1
  214. package/dist/app/charts/plots/useCanvasZoomPan.d.ts +119 -0
  215. package/dist/app/charts/plots/useCanvasZoomPan.d.ts.map +1 -0
  216. package/dist/app/charts/plots/useCanvasZoomPan.js +113 -0
  217. package/dist/app/charts/plots/useCanvasZoomPan.js.map +1 -0
  218. package/dist/app/charts/plots/useStreamingTimeAxes.d.ts +103 -0
  219. package/dist/app/charts/plots/useStreamingTimeAxes.d.ts.map +1 -0
  220. package/dist/app/charts/plots/useStreamingTimeAxes.js +257 -0
  221. package/dist/app/charts/plots/useStreamingTimeAxes.js.map +1 -0
  222. package/dist/app/charts/series/baseSeries.d.ts +60 -8
  223. package/dist/app/charts/series/baseSeries.d.ts.map +1 -0
  224. package/dist/app/charts/series/baseSeries.js +53 -8
  225. package/dist/app/charts/series/baseSeries.js.map +1 -1
  226. package/dist/app/charts/series/iterateSeries.d.ts +9 -8
  227. package/dist/app/charts/series/iterateSeries.d.ts.map +1 -0
  228. package/dist/app/charts/series/iterateSeries.js +7 -7
  229. package/dist/app/charts/series/iterateSeries.js.map +1 -1
  230. package/dist/app/charts/series/ordinalSeries.d.ts +27 -13
  231. package/dist/app/charts/series/ordinalSeries.d.ts.map +1 -0
  232. package/dist/app/charts/series/ordinalSeries.js +29 -15
  233. package/dist/app/charts/series/ordinalSeries.js.map +1 -1
  234. package/dist/app/charts/series/outlierSeries.d.ts +142 -0
  235. package/dist/app/charts/series/outlierSeries.d.ts.map +1 -0
  236. package/dist/app/charts/series/outlierSeries.js +82 -0
  237. package/dist/app/charts/series/outlierSeries.js.map +1 -0
  238. package/dist/app/charts/series/timeSeries.d.ts +13 -9
  239. package/dist/app/charts/series/timeSeries.d.ts.map +1 -0
  240. package/dist/app/charts/series/timeSeries.js +6 -3
  241. package/dist/app/charts/series/timeSeries.js.map +1 -1
  242. package/dist/app/charts/series/timeSeriesChartData.d.ts +18 -10
  243. package/dist/app/charts/series/timeSeriesChartData.d.ts.map +1 -0
  244. package/dist/app/charts/series/timeSeriesChartData.js +28 -14
  245. package/dist/app/charts/series/timeSeriesChartData.js.map +1 -1
  246. package/dist/app/charts/styling/barPlotStyle.d.ts +46 -2
  247. package/dist/app/charts/styling/barPlotStyle.d.ts.map +1 -0
  248. package/dist/app/charts/styling/barPlotStyle.js +37 -3
  249. package/dist/app/charts/styling/barPlotStyle.js.map +1 -1
  250. package/dist/app/charts/styling/canvasStyle.d.ts +53 -0
  251. package/dist/app/charts/styling/canvasStyle.d.ts.map +1 -0
  252. package/dist/app/charts/styling/canvasStyle.js +71 -0
  253. package/dist/app/charts/styling/canvasStyle.js.map +1 -0
  254. package/dist/app/charts/styling/margins.d.ts +21 -2
  255. package/dist/app/charts/styling/margins.d.ts.map +1 -0
  256. package/dist/app/charts/styling/margins.js +25 -4
  257. package/dist/app/charts/styling/margins.js.map +1 -1
  258. package/dist/app/charts/styling/svgStyle.d.ts +10 -56
  259. package/dist/app/charts/styling/svgStyle.d.ts.map +1 -0
  260. package/dist/app/charts/styling/svgStyle.js +3 -78
  261. package/dist/app/charts/styling/svgStyle.js.map +1 -1
  262. package/dist/app/charts/subscriptions/viewDrivers.d.ts +124 -0
  263. package/dist/app/charts/subscriptions/viewDrivers.d.ts.map +1 -0
  264. package/dist/app/charts/subscriptions/viewDrivers.js +338 -0
  265. package/dist/app/charts/subscriptions/viewDrivers.js.map +1 -0
  266. package/dist/app/charts/tooltips/BarPlotTooltipContent.d.ts +12 -78
  267. package/dist/app/charts/tooltips/BarPlotTooltipContent.d.ts.map +1 -0
  268. package/dist/app/charts/tooltips/BarPlotTooltipContent.js +65 -257
  269. package/dist/app/charts/tooltips/BarPlotTooltipContent.js.map +1 -1
  270. package/dist/app/charts/tooltips/DefaultOutlierTooltipContent.d.ts +9 -0
  271. package/dist/app/charts/tooltips/DefaultOutlierTooltipContent.d.ts.map +1 -0
  272. package/dist/app/charts/tooltips/DefaultOutlierTooltipContent.js +16 -0
  273. package/dist/app/charts/tooltips/DefaultOutlierTooltipContent.js.map +1 -0
  274. package/dist/app/charts/tooltips/OutlierPlotTooltipContent.d.ts +30 -0
  275. package/dist/app/charts/tooltips/OutlierPlotTooltipContent.d.ts.map +1 -0
  276. package/dist/app/charts/tooltips/OutlierPlotTooltipContent.js +26 -0
  277. package/dist/app/charts/tooltips/OutlierPlotTooltipContent.js.map +1 -0
  278. package/dist/app/charts/tooltips/PoincarePlotTooltipContent.d.ts +22 -72
  279. package/dist/app/charts/tooltips/PoincarePlotTooltipContent.d.ts.map +1 -0
  280. package/dist/app/charts/tooltips/PoincarePlotTooltipContent.js +104 -171
  281. package/dist/app/charts/tooltips/PoincarePlotTooltipContent.js.map +1 -1
  282. package/dist/app/charts/tooltips/RasterPlotTooltipContent.d.ts +32 -8
  283. package/dist/app/charts/tooltips/RasterPlotTooltipContent.d.ts.map +1 -0
  284. package/dist/app/charts/tooltips/RasterPlotTooltipContent.js +62 -115
  285. package/dist/app/charts/tooltips/RasterPlotTooltipContent.js.map +1 -1
  286. package/dist/app/charts/tooltips/ScatterPlotTooltipContent.d.ts +39 -12
  287. package/dist/app/charts/tooltips/ScatterPlotTooltipContent.d.ts.map +1 -0
  288. package/dist/app/charts/tooltips/ScatterPlotTooltipContent.js +162 -134
  289. package/dist/app/charts/tooltips/ScatterPlotTooltipContent.js.map +1 -1
  290. package/dist/app/charts/tooltips/Tooltip.d.ts +27 -32
  291. package/dist/app/charts/tooltips/Tooltip.d.ts.map +1 -0
  292. package/dist/app/charts/tooltips/Tooltip.js +37 -81
  293. package/dist/app/charts/tooltips/Tooltip.js.map +1 -1
  294. package/dist/app/charts/tooltips/TooltipContent.d.ts +81 -0
  295. package/dist/app/charts/tooltips/TooltipContent.d.ts.map +1 -0
  296. package/dist/app/charts/tooltips/TooltipContent.js +99 -0
  297. package/dist/app/charts/tooltips/TooltipContent.js.map +1 -0
  298. package/dist/app/charts/tooltips/tooltipUtils.d.ts +186 -36
  299. package/dist/app/charts/tooltips/tooltipUtils.d.ts.map +1 -0
  300. package/dist/app/charts/tooltips/tooltipUtils.js +277 -48
  301. package/dist/app/charts/tooltips/tooltipUtils.js.map +1 -1
  302. package/dist/app/charts/tooltips/useOutlierTooltip.d.ts +59 -0
  303. package/dist/app/charts/tooltips/useOutlierTooltip.d.ts.map +1 -0
  304. package/dist/app/charts/tooltips/useOutlierTooltip.js +16 -0
  305. package/dist/app/charts/tooltips/useOutlierTooltip.js.map +1 -0
  306. package/dist/app/charts/tooltips/useTooltipPlacement.d.ts +51 -0
  307. package/dist/app/charts/tooltips/useTooltipPlacement.d.ts.map +1 -0
  308. package/dist/app/charts/tooltips/useTooltipPlacement.js +52 -0
  309. package/dist/app/charts/tooltips/useTooltipPlacement.js.map +1 -0
  310. package/dist/app/charts/tooltips/useTooltipStyle.d.ts +11 -0
  311. package/dist/app/charts/tooltips/useTooltipStyle.d.ts.map +1 -0
  312. package/dist/app/charts/tooltips/useTooltipStyle.js +14 -0
  313. package/dist/app/charts/tooltips/useTooltipStyle.js.map +1 -0
  314. package/dist/app/charts/trackers/Tracker.d.ts +22 -6
  315. package/dist/app/charts/trackers/Tracker.d.ts.map +1 -0
  316. package/dist/app/charts/trackers/Tracker.js +36 -22
  317. package/dist/app/charts/trackers/Tracker.js.map +1 -1
  318. package/dist/app/charts/trackers/trackerUtils.d.ts +40 -18
  319. package/dist/app/charts/trackers/trackerUtils.d.ts.map +1 -0
  320. package/dist/app/charts/trackers/trackerUtils.js +213 -300
  321. package/dist/app/charts/trackers/trackerUtils.js.map +1 -1
  322. package/dist/app/charts/utils.d.ts +72 -33
  323. package/dist/app/charts/utils.d.ts.map +1 -0
  324. package/dist/app/charts/utils.js +87 -42
  325. package/dist/app/charts/utils.js.map +1 -1
  326. package/dist/index.d.ts +2 -45
  327. package/dist/index.d.ts.map +1 -0
  328. package/dist/index.js +2 -72
  329. package/dist/index.js.map +1 -1
  330. package/package.json +87 -46
  331. package/src/app/charts/Chart.tsx +132 -168
  332. package/src/app/charts/axes/AxesState.ts +27 -29
  333. package/src/app/charts/axes/AxisInterval.ts +57 -32
  334. package/src/app/charts/axes/BaseAxisRange.ts +47 -27
  335. package/src/app/charts/axes/ContinuousAxis.tsx +235 -39
  336. package/src/app/charts/axes/ContinuousAxisRange.ts +29 -11
  337. package/src/app/charts/axes/EmptyAxis.tsx +52 -17
  338. package/src/app/charts/axes/OrdinalAxis.tsx +54 -28
  339. package/src/app/charts/axes/OrdinalAxisRange.ts +96 -16
  340. package/src/app/charts/axes/autoScale.ts +244 -0
  341. package/src/app/charts/axes/axes.ts +954 -735
  342. package/src/app/charts/d3types.ts +42 -13
  343. package/src/app/charts/datasources/StreamingDataSource.ts +214 -0
  344. package/src/app/charts/datasources/iteratesDataSource.ts +122 -0
  345. package/src/app/charts/datasources/ordinalDataSource.ts +205 -0
  346. package/src/app/charts/datasources/outlierDataSource.ts +90 -0
  347. package/src/app/charts/datasources/timeSeriesDataSource.ts +133 -0
  348. package/src/app/charts/filters/regexFilter.ts +45 -5
  349. package/src/app/charts/hooks/AxesProvider.tsx +301 -0
  350. package/src/app/charts/hooks/CanvasSurfaceProvider.tsx +117 -0
  351. package/src/app/charts/hooks/ChartProvider.tsx +79 -0
  352. package/src/app/charts/hooks/InteractionProvider.tsx +88 -0
  353. package/src/app/charts/hooks/PlotDimensionsProvider.tsx +109 -0
  354. package/src/app/charts/hooks/defaultAxesValues.ts +40 -0
  355. package/src/app/charts/hooks/defaultMouseValues.ts +24 -0
  356. package/src/app/charts/hooks/defaultPlotDimensions.ts +27 -0
  357. package/src/app/charts/hooks/defaultTooltipValues.tsx +23 -0
  358. package/src/app/charts/hooks/defaultUseChartValues.tsx +36 -0
  359. package/src/app/charts/hooks/useAxes.tsx +60 -228
  360. package/src/app/charts/hooks/useCanvasSurface.tsx +35 -0
  361. package/src/app/charts/hooks/useChart.tsx +47 -106
  362. package/src/app/charts/hooks/useDataSource.tsx +106 -0
  363. package/src/app/charts/hooks/useHoveredSeries.tsx +33 -0
  364. package/src/app/charts/hooks/useMouse.tsx +58 -82
  365. package/src/app/charts/hooks/usePlotDimensions.tsx +25 -89
  366. package/src/app/charts/hooks/useTooltip.tsx +32 -63
  367. package/src/app/charts/index.ts +213 -0
  368. package/src/app/charts/legends/Legend.tsx +198 -479
  369. package/src/app/charts/legends/constants.ts +37 -0
  370. package/src/app/charts/observables/iterates.ts +32 -12
  371. package/src/app/charts/observables/ordinals.ts +141 -67
  372. package/src/app/charts/observables/outliers.ts +20 -0
  373. package/src/app/charts/plots/BarPlot.tsx +784 -666
  374. package/src/app/charts/plots/OutlierPlot.tsx +685 -0
  375. package/src/app/charts/plots/PoincarePlot.tsx +707 -489
  376. package/src/app/charts/plots/RasterPlot.tsx +253 -445
  377. package/src/app/charts/plots/ScatterPlot.tsx +480 -463
  378. package/src/app/charts/plots/autoScaleYAxes.ts +102 -0
  379. package/src/app/charts/plots/colorizedLine.ts +185 -0
  380. package/src/app/charts/plots/constants.ts +16 -0
  381. package/src/app/charts/plots/hitTesting.ts +198 -0
  382. package/src/app/charts/plots/plot.ts +138 -44
  383. package/src/app/charts/plots/useCanvasZoomPan.ts +240 -0
  384. package/src/app/charts/plots/useStreamingTimeAxes.ts +384 -0
  385. package/src/app/charts/series/baseSeries.ts +81 -14
  386. package/src/app/charts/series/iterateSeries.ts +8 -8
  387. package/src/app/charts/series/ordinalSeries.ts +35 -20
  388. package/src/app/charts/series/outlierSeries.ts +188 -0
  389. package/src/app/charts/series/timeSeries.ts +14 -12
  390. package/src/app/charts/series/timeSeriesChartData.ts +31 -17
  391. package/src/app/charts/styling/barPlotStyle.ts +48 -5
  392. package/src/app/charts/styling/canvasStyle.ts +86 -0
  393. package/src/app/charts/styling/margins.ts +28 -4
  394. package/src/app/charts/styling/svgStyle.ts +10 -91
  395. package/src/app/charts/subscriptions/viewDrivers.ts +447 -0
  396. package/src/app/charts/tooltips/BarPlotTooltipContent.tsx +156 -380
  397. package/src/app/charts/tooltips/DefaultOutlierTooltipContent.tsx +40 -0
  398. package/src/app/charts/tooltips/OutlierPlotTooltipContent.tsx +67 -0
  399. package/src/app/charts/tooltips/PoincarePlotTooltipContent.tsx +229 -292
  400. package/src/app/charts/tooltips/RasterPlotTooltipContent.tsx +164 -217
  401. package/src/app/charts/tooltips/ScatterPlotTooltipContent.tsx +373 -236
  402. package/src/app/charts/tooltips/Tooltip.tsx +58 -124
  403. package/src/app/charts/tooltips/TooltipContent.tsx +177 -0
  404. package/src/app/charts/tooltips/tooltipUtils.ts +359 -61
  405. package/src/app/charts/tooltips/useOutlierTooltip.tsx +68 -0
  406. package/src/app/charts/tooltips/useTooltipPlacement.ts +86 -0
  407. package/src/app/charts/tooltips/useTooltipStyle.ts +15 -0
  408. package/src/app/charts/trackers/Tracker.tsx +68 -33
  409. package/src/app/charts/trackers/trackerUtils.ts +263 -376
  410. package/src/app/charts/utils.ts +90 -48
  411. package/src/index.ts +2 -322
  412. package/dist/app/charts/axes/AxesState.test.d.ts +0 -1
  413. package/dist/app/charts/axes/AxesState.test.js +0 -30
  414. package/dist/app/charts/axes/AxesState.test.js.map +0 -1
  415. package/dist/app/charts/axes/AxisInterval.test.d.ts +0 -1
  416. package/dist/app/charts/axes/AxisInterval.test.js +0 -120
  417. package/dist/app/charts/axes/AxisInterval.test.js.map +0 -1
  418. package/dist/app/charts/axes/ContinuousAxisRange.test.d.ts +0 -1
  419. package/dist/app/charts/axes/ContinuousAxisRange.test.js +0 -47
  420. package/dist/app/charts/axes/ContinuousAxisRange.test.js.map +0 -1
  421. package/dist/app/charts/axes/OrdinalAxisRange.test.d.ts +0 -1
  422. package/dist/app/charts/axes/OrdinalAxisRange.test.js +0 -48
  423. package/dist/app/charts/axes/OrdinalAxisRange.test.js.map +0 -1
  424. package/dist/app/charts/filters/regexFilter.test.d.ts +0 -1
  425. package/dist/app/charts/filters/regexFilter.test.js +0 -11
  426. package/dist/app/charts/filters/regexFilter.test.js.map +0 -1
  427. package/dist/app/charts/hooks/useDataObservable.d.ts +0 -72
  428. package/dist/app/charts/hooks/useDataObservable.js +0 -74
  429. package/dist/app/charts/hooks/useDataObservable.js.map +0 -1
  430. package/dist/app/charts/hooks/useInitialData.d.ts +0 -36
  431. package/dist/app/charts/hooks/useInitialData.js +0 -28
  432. package/dist/app/charts/hooks/useInitialData.js.map +0 -1
  433. package/dist/app/charts/observables/iterates.test.d.ts +0 -1
  434. package/dist/app/charts/observables/iterates.test.js +0 -180
  435. package/dist/app/charts/observables/iterates.test.js.map +0 -1
  436. package/dist/app/charts/observables/ordinals.test.d.ts +0 -1
  437. package/dist/app/charts/observables/ordinals.test.js +0 -102
  438. package/dist/app/charts/observables/ordinals.test.js.map +0 -1
  439. package/dist/app/charts/series/datumSeries.test.d.ts +0 -1
  440. package/dist/app/charts/series/datumSeries.test.js +0 -50
  441. package/dist/app/charts/series/datumSeries.test.js.map +0 -1
  442. package/dist/app/charts/styling/margins.test.d.ts +0 -1
  443. package/dist/app/charts/styling/margins.test.js +0 -19
  444. package/dist/app/charts/styling/margins.test.js.map +0 -1
  445. package/dist/app/charts/subscriptions/subscription.test.d.ts +0 -1
  446. package/dist/app/charts/subscriptions/subscription.test.js +0 -395
  447. package/dist/app/charts/subscriptions/subscription.test.js.map +0 -1
  448. package/dist/app/charts/subscriptions/subscriptions.d.ts +0 -100
  449. package/dist/app/charts/subscriptions/subscriptions.js +0 -449
  450. package/dist/app/charts/subscriptions/subscriptions.js.map +0 -1
  451. package/src/app/charts/axes/AxesState.test.ts +0 -34
  452. package/src/app/charts/axes/AxisInterval.test.ts +0 -143
  453. package/src/app/charts/axes/ContinuousAxisRange.test.ts +0 -55
  454. package/src/app/charts/axes/OrdinalAxisRange.test.ts +0 -55
  455. package/src/app/charts/filters/regexFilter.test.ts +0 -13
  456. package/src/app/charts/hooks/useDataObservable.tsx +0 -170
  457. package/src/app/charts/hooks/useInitialData.tsx +0 -64
  458. package/src/app/charts/observables/iterates.test.ts +0 -201
  459. package/src/app/charts/observables/ordinals.test.ts +0 -135
  460. package/src/app/charts/series/datumSeries.test.ts +0 -60
  461. package/src/app/charts/styling/margins.test.ts +0 -22
  462. package/src/app/charts/subscriptions/subscription.test.ts +0 -499
  463. package/src/app/charts/subscriptions/subscriptions.ts +0 -635
@@ -0,0 +1,34 @@
1
+ /**
2
+ * The location of the legend, either in the plot or in an external container
3
+ * Note: replaces enums to support `erasableSyntaxOnly`
4
+ * TS1294: This syntax is not allowed when 'erasableSyntaxOnly' is enabled.
5
+ */
6
+ export const LegendLocation = {
7
+ // noinspection JSUnusedGlobalSymbols
8
+ TOP_LEFT: "top-left",
9
+ TOP_RIGHT: "top-right",
10
+ BOTTOM_LEFT: "bottom-left",
11
+ BOTTOM_RIGHT: "bottom-right",
12
+ EXTERNAL_CONTAINER: "external-container"
13
+ };
14
+ /**
15
+ * The legend's default style
16
+ */
17
+ export const defaultLegendStyle = {
18
+ fontSize: 12,
19
+ fontFamily: "sans-serif",
20
+ fontColor: "#d2933f",
21
+ backgroundColor: "#202020",
22
+ backgroundOpacity: 0.85,
23
+ borderColor: "#d2933f",
24
+ borderWidth: 1,
25
+ borderOpacity: 0.7,
26
+ borderRadius: 4,
27
+ padding: 8,
28
+ rowGap: 6,
29
+ swatchWidth: 16,
30
+ swatchHeight: 3,
31
+ swatchLabelGap: 6,
32
+ transitionDuration: 350,
33
+ };
34
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/app/charts/legends/constants.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC1B,qCAAqC;IACrC,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,YAAY,EAAE,cAAc;IAC5B,kBAAkB,EAAE,oBAAoB;CAClC,CAAA;AAGV;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAgB;IAC3C,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,SAAS;IACpB,eAAe,EAAE,SAAS;IAC1B,iBAAiB,EAAE,IAAI;IACvB,WAAW,EAAE,SAAS;IACtB,WAAW,EAAE,CAAC;IACd,aAAa,EAAE,GAAG;IAClB,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,CAAC;IACjB,kBAAkB,EAAE,GAAG;CAC1B,CAAA"}
@@ -21,3 +21,4 @@ export declare function defaultChartData(): ChartData;
21
21
  export declare function copyChartData(data: ChartData): {
22
22
  seriesNames: Set<string>;
23
23
  };
24
+ //# sourceMappingURL=ChartData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartData.d.ts","sourceRoot":"","sources":["../../../../src/app/charts/observables/ChartData.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACtB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC3B;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,SAAS,CAI5C;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS;;EAI5C"}
@@ -8,9 +8,9 @@
8
8
  * 2. Accepts that chart-data observable and converts that observable to an iterate-chart-data observable
9
9
  */
10
10
  import { Observable } from "rxjs";
11
- import { TimeSeriesChartData } from "../series/timeSeriesChartData";
12
- import { IterateDatum } from "../series/iterateSeries";
13
- import { ChartData } from "./ChartData";
11
+ import type { TimeSeriesChartData } from "../series/timeSeriesChartData";
12
+ import { type IterateDatum } from "../series/iterateSeries";
13
+ import { type ChartData } from "./ChartData";
14
14
  export interface IterateChartData extends ChartData {
15
15
  /**
16
16
  * The min values for (time, iterate n, and iterate n+1) for the data in the newPoints map
@@ -21,11 +21,13 @@ export interface IterateChartData extends ChartData {
21
21
  */
22
22
  maxIterate: IterateDatum;
23
23
  /**
24
- * Holds the association of the series name to the current min time for that series
24
+ * Holds the association of the series name to the min values for (time, iterate n, and
25
+ * iterate n+1) for that series
25
26
  */
26
27
  minIterates: Map<string, IterateDatum>;
27
28
  /**
28
- * Holds the association of the series name to the current max time for that series
29
+ * Holds the association of the series name to the max values for (time, iterate n, and
30
+ * iterate n+1) for that series
29
31
  */
30
32
  maxIterates: Map<string, IterateDatum>;
31
33
  /**
@@ -35,8 +37,10 @@ export interface IterateChartData extends ChartData {
35
37
  newPoints: Map<string, Array<IterateDatum>>;
36
38
  }
37
39
  /**
38
- * Makes a deep copy of the iterate chart data
40
+ * Makes a copy of the iterate chart data: new sets, maps, and arrays of points (the points
41
+ * themselves are shared)
39
42
  * @param data The iterate chart data to copy
43
+ * @return The copy
40
44
  */
41
45
  export declare const copyIterateDataFrom: (data: IterateChartData) => IterateChartData;
42
46
  /**
@@ -47,6 +51,8 @@ export declare const copyIterateDataFrom: (data: IterateChartData) => IterateCha
47
51
  * points `(f[m](x), f[m+n](x))` are n-iterates.
48
52
  * @param dataObservable The observable over {@link TimeSeriesChartData}
49
53
  * @param [n=1] The iterate distance
50
- * @return An over {@link IterateChartData} holding the n-iterate for the incoming chart data
54
+ * @return An observable over {@link IterateChartData} holding the n-iterate for the incoming chart
55
+ * data (nothing is emitted until the first iterate has been calculated)
51
56
  */
52
57
  export declare function iteratesObservable(dataObservable: Observable<TimeSeriesChartData>, n?: number): Observable<IterateChartData>;
58
+ //# sourceMappingURL=iterates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterates.d.ts","sourceRoot":"","sources":["../../../../src/app/charts/observables/iterates.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAChC,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;AAGvE,OAAO,EAAoB,KAAK,YAAY,EAAuC,MAAM,yBAAyB,CAAC;AACnH,OAAO,EAAC,KAAK,SAAS,EAAkC,MAAM,aAAa,CAAC;AAG5E,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAC/C;;OAEG;IACH,UAAU,EAAE,YAAY,CAAA;IAExB;;OAEG;IACH,UAAU,EAAE,YAAY,CAAA;IAExB;;;OAGG;IACH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAEtC;;;OAGG;IACH,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IAEtC;;;OAGG;IACH,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,CAAA;CAC9C;AAcD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,gBAAgB,KAAG,gBAO3D,CAAA;AAiBF;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC,GAAE,MAAU,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAiE/H"}
@@ -2,12 +2,36 @@ import { filter, map, scan } from "rxjs/operators";
2
2
  import { emptyDatum } from "../series/timeSeries";
3
3
  import { emptyIterateDatum, iterateDatumOf, nonEmptyIterateDatum } from "../series/iterateSeries";
4
4
  import { copyChartData, defaultChartData } from "./ChartData";
5
- const emptyIterateData = () => (Object.assign(Object.assign({}, defaultChartData()), { minIterate: emptyIterateDatum, maxIterate: emptyIterateDatum, minIterates: new Map(), maxIterates: new Map(), newPoints: new Map() }));
6
5
  /**
7
- * Makes a deep copy of the iterate chart data
6
+ * @return Iterate chart data without any series or points, and with empty min and max iterates
7
+ */
8
+ const emptyIterateData = () => ({
9
+ ...defaultChartData(),
10
+ minIterate: emptyIterateDatum,
11
+ maxIterate: emptyIterateDatum,
12
+ minIterates: new Map(),
13
+ maxIterates: new Map(),
14
+ newPoints: new Map()
15
+ });
16
+ /**
17
+ * Makes a copy of the iterate chart data: new sets, maps, and arrays of points (the points
18
+ * themselves are shared)
8
19
  * @param data The iterate chart data to copy
20
+ * @return The copy
21
+ */
22
+ export const copyIterateDataFrom = (data) => ({
23
+ ...copyChartData(data),
24
+ minIterate: data.minIterate,
25
+ maxIterate: data.maxIterate,
26
+ minIterates: new Map(data.minIterates),
27
+ maxIterates: new Map(data.maxIterates),
28
+ newPoints: new Map(Array.from(data.newPoints.entries()).map(([name, points]) => [name, points.slice()])),
29
+ });
30
+ /**
31
+ * The accumulator to start calculating the n-iterates from
32
+ * @param n The iterate distance
33
+ * @return An accumulator with no points and no iterates
9
34
  */
10
- export const copyIterateDataFrom = (data) => (Object.assign(Object.assign({}, copyChartData(data)), { minIterate: data.minIterate, maxIterate: data.maxIterate, minIterates: new Map(data.minIterates), maxIterates: new Map(data.maxIterates), newPoints: new Map(Array.from(data.newPoints.entries()).map(([name, points]) => [name, points.slice()])) }));
11
35
  const initialAccumulate = (n) => ({ n, previous: new Map(), accumulated: emptyIterateData() });
12
36
  /**
13
37
  * Accepts a {@link TimeSeriesChartData} observable and converts it to an observable of {@link IterateChartData}
@@ -17,7 +41,8 @@ const initialAccumulate = (n) => ({ n, previous: new Map(), accumulated: emptyIt
17
41
  * points `(f[m](x), f[m+n](x))` are n-iterates.
18
42
  * @param dataObservable The observable over {@link TimeSeriesChartData}
19
43
  * @param [n=1] The iterate distance
20
- * @return An over {@link IterateChartData} holding the n-iterate for the incoming chart data
44
+ * @return An observable over {@link IterateChartData} holding the n-iterate for the incoming chart
45
+ * data (nothing is emitted until the first iterate has been calculated)
21
46
  */
22
47
  export function iteratesObservable(dataObservable, n = 1) {
23
48
  return dataObservable
@@ -49,7 +74,7 @@ export function iteratesObservable(dataObservable, n = 1) {
49
74
  // iteration of the while-loop
50
75
  previous.set(name, updated);
51
76
  // create the new iterate
52
- const iterate = iterateDatumOf(first.time, first.value, last.value);
77
+ const iterate = iterateDatumOf(first.x, first.y, last.y);
53
78
  // update the min, max values for all the series
54
79
  accum.minIterate = minIterateFor(iterate, accum.minIterate);
55
80
  accum.maxIterate = maxIterateFor(iterate, accum.maxIterate);
@@ -57,8 +82,7 @@ export function iteratesObservable(dataObservable, n = 1) {
57
82
  accum.minIterates.set(name, minIterateFor(iterate, accum.minIterates.get(name)));
58
83
  accum.maxIterates.set(name, maxIterateFor(iterate, accum.maxIterates.get(name)));
59
84
  // add the newly calculated iterate, and then trim from the
60
- // head of the array to a size n. For the iterates, we only need
61
- // to keep enough to create points (x(j), x(j+n))
85
+ // head of the array to the number of points in this chunk
62
86
  const updatedPoints = accum.newPoints.get(name) || [];
63
87
  if (updatedPoints.length === 0) {
64
88
  accum.newPoints.set(name, updatedPoints);
@@ -71,7 +95,8 @@ export function iteratesObservable(dataObservable, n = 1) {
71
95
  });
72
96
  return { n, previous, accumulated: accum };
73
97
  }, initialAccumulate(n)),
74
- // remove new points from the map that are empty
98
+ // skip the chunks until the first iterate has been calculated, and remove the empty
99
+ // new points
75
100
  filter(accum => !isNaN(accum.accumulated.minIterate.iterateN) && !isNaN(accum.accumulated.minIterate.iterateN_1)), map(accum => removeEmptyNewPoints(accum)), map(accum => accum.accumulated === undefined ? emptyIterateData() : accum.accumulated));
76
101
  }
77
102
  /**
@@ -108,6 +133,11 @@ function maxIterateFor(iterate, maxIterate = emptyIterateDatum) {
108
133
  iterateN_1: maxN_1
109
134
  };
110
135
  }
136
+ /**
137
+ * Removes the empty iterates from the accumulated new points
138
+ * @param accum The accumulator
139
+ * @return A new accumulator, whose accumulated new points are the non-empty ones
140
+ */
111
141
  function removeEmptyNewPoints(accum) {
112
142
  const newPoints = new Map(Array
113
143
  .from(accum.accumulated.newPoints.entries())
@@ -115,7 +145,10 @@ function removeEmptyNewPoints(accum) {
115
145
  return {
116
146
  n: accum.n,
117
147
  previous: accum.previous,
118
- accumulated: Object.assign(Object.assign({}, accum.accumulated), { newPoints })
148
+ accumulated: {
149
+ ...accum.accumulated,
150
+ newPoints
151
+ }
119
152
  };
120
153
  }
121
154
  //# sourceMappingURL=iterates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"iterates.js","sourceRoot":"","sources":["../../../../src/app/charts/observables/iterates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iterates.js","sourceRoot":"","sources":["../../../../src/app/charts/observables/iterates.ts"],"names":[],"mappings":"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"}
@@ -5,20 +5,21 @@
5
5
  * 2. Accepts that chart-data observable and converts that observable to an ordinal-chart-data observable
6
6
  */
7
7
  import { Observable } from "rxjs";
8
- import { TimeSeriesChartData } from "../series/timeSeriesChartData";
9
- import { OrdinalDatum } from "../series/ordinalSeries";
10
- import { ChartData } from "./ChartData";
8
+ import type { TimeSeriesChartData } from "../series/timeSeriesChartData";
9
+ import { type OrdinalDatum } from "../series/ordinalSeries";
10
+ import { type ChartData } from "./ChartData";
11
+ import { FastShiftArray } from "fast-shift-array";
11
12
  export interface OrdinalChartData extends ChartData {
12
13
  /**
13
14
  * Statistics for the chart. Holds the overall minimum and maximum (across all
14
- * the series), and statistics for each individual series.
15
+ * the series), and statistics for each series.
15
16
  */
16
17
  stats: OrdinalStats;
17
18
  /**
18
19
  * Map holding the name of the series (the time-series identifier) and the associated
19
20
  * data points for that time-series (`map(series_name -> array(datum))`)
20
21
  */
21
- newPoints: Map<string, Array<OrdinalDatum>>;
22
+ newPoints: Map<string, FastShiftArray<OrdinalDatum>>;
22
23
  }
23
24
  /**
24
25
  * Statistics for the chart. Holds the overall minimum and maximum (across all
@@ -26,11 +27,11 @@ export interface OrdinalChartData extends ChartData {
26
27
  */
27
28
  export interface OrdinalStats {
28
29
  /**
29
- * The min values for (time, value) for the data in the newPoints map
30
+ * The data with the min time, and with the min value, over all the data so far
30
31
  */
31
32
  minDatum: OrdinalDatumExtremum;
32
33
  /**
33
- * The max values for (time, iterate n, and iterate n+1) for the data in the newPoints map
34
+ * The data with the max time, and with the max value, over all the data so far
34
35
  */
35
36
  maxDatum: OrdinalDatumExtremum;
36
37
  /**
@@ -38,6 +39,10 @@ export interface OrdinalStats {
38
39
  */
39
40
  valueStatsForSeries: Map<string, OrdinalValueStats>;
40
41
  }
42
+ /**
43
+ * Statistics about the values of a series: the data with the min and max values, the number of
44
+ * values, their sum, the sum of their squares, and their mean
45
+ */
41
46
  export type OrdinalValueStats = {
42
47
  min: OrdinalDatum;
43
48
  max: OrdinalDatum;
@@ -46,30 +51,83 @@ export type OrdinalValueStats = {
46
51
  sumSquared: number;
47
52
  mean: number;
48
53
  };
54
+ /**
55
+ * The data with the extreme (min or max) time, and with the extreme value
56
+ */
49
57
  export type OrdinalDatumExtremum = {
50
58
  time: OrdinalDatum;
51
59
  value: OrdinalDatum;
52
60
  };
61
+ /**
62
+ * @return The datum to start a search for the min value from: its value (`Infinity`) is larger
63
+ * than any other
64
+ */
53
65
  export declare const initialMinValueDatum: () => OrdinalDatum;
66
+ /**
67
+ * @return The datum to start a search for the max value from: its value (`-Infinity`) is smaller
68
+ * than any other
69
+ */
54
70
  export declare const initialMaxValueDatum: () => OrdinalDatum;
71
+ /**
72
+ * @return The datum to start a search for the min time from: its time (`Infinity`) is later than
73
+ * any other
74
+ */
55
75
  export declare const initialMinTimeDatum: () => OrdinalDatum;
76
+ /**
77
+ * @return The datum to start a search for the max time from: its time (`-Infinity`) is earlier
78
+ * than any other
79
+ */
56
80
  export declare const initialMaxTimeDatum: () => OrdinalDatum;
57
- export declare function valueStatusDatumOfDefault(datum: OrdinalDatum | undefined): OrdinalDatum;
58
- export declare function isDefaultValueStatsDatum(datum: OrdinalDatum): boolean;
81
+ /**
82
+ * Copies an extremum (and its data)
83
+ * @param datum The extremum to copy
84
+ * @return The copy
85
+ */
59
86
  export declare function copyOrdinalDatumExtremum(datum: OrdinalDatumExtremum): OrdinalDatumExtremum;
87
+ /**
88
+ * @return Stats for no data: extremes to start the searches from, and no series' stats
89
+ */
60
90
  export declare const defaultOrdinalStats: () => OrdinalStats;
91
+ /**
92
+ * @return Value stats for no data: a count, sum, and sum of squares of 0, a `NaN` mean, and min
93
+ * and max data to start the searches from
94
+ */
61
95
  export declare const defaultOrdinalValueStats: () => OrdinalValueStats;
96
+ /**
97
+ * Copies a series' value stats (and their min and max data)
98
+ * @param data The value stats to copy
99
+ * @return The copy
100
+ */
62
101
  export declare function copyOrdinalValueStats(data: OrdinalValueStats): OrdinalValueStats;
102
+ /**
103
+ * Copies the map of each series' value stats (and the stats)
104
+ * @param valueStats The value stats, by series name
105
+ * @return The copy
106
+ */
63
107
  export declare function copyValueStatsForSeries(valueStats: Map<string, OrdinalValueStats>): Map<string, OrdinalValueStats>;
108
+ /**
109
+ * Copies the stats (the extremes, and each series' value stats)
110
+ * @param data The stats to copy
111
+ * @return The copy
112
+ */
64
113
  export declare const copyOrdinalStats: (data: OrdinalStats) => OrdinalStats;
65
114
  /**
66
- * Makes a deep copy of the ordinal chart data
115
+ * Makes a copy of the ordinal chart data: a new set of series names, copies of the stats, and new
116
+ * arrays of points (the points themselves are shared)
67
117
  * @param data The ordinal chart data to copy
118
+ * @return The copy
68
119
  */
69
120
  export declare const copyOrdinalDataFrom: (data: OrdinalChartData) => OrdinalChartData;
70
121
  /**
71
- * Accepts a {@link TimeSeriesChartData} observable and converts it to an observable of {@link OrdinalChartData}.
122
+ * Accepts a {@link TimeSeriesChartData} observable and converts it to an observable of {@link OrdinalChartData}:
123
+ * each emission holds the incoming chunk's points (as ordinal data), and the stats accumulated over
124
+ * all the data so far.
72
125
  * @param dataObservable The observable over {@link TimeSeriesChartData}
126
+ * @param [compactingSize=DEFAULT_COMPACTING_SIZE] The number of shifts a series' backing array accumulates before it's compacted
127
+ * @param initialStats Optional stats of the data that already exists (e.g. a chart's accumulated
128
+ * series, see `calculateOrdinalStats`), from which the stats accumulate -- so that the stats cover
129
+ * that data without the data having to be re-emitted through `dataObservable`
73
130
  * @return An observable of {@link OrdinalChartData} holding the series for the incoming chart data
74
131
  */
75
- export declare function ordinalsObservable(dataObservable: Observable<TimeSeriesChartData>): Observable<OrdinalChartData>;
132
+ export declare function ordinalsObservable(dataObservable: Observable<TimeSeriesChartData>, compactingSize?: number, initialStats?: OrdinalStats): Observable<OrdinalChartData>;
133
+ //# sourceMappingURL=ordinals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ordinals.d.ts","sourceRoot":"","sources":["../../../../src/app/charts/observables/ordinals.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AAChC,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;AAGvE,OAAO,EAAyC,KAAK,YAAY,EAAiB,MAAM,yBAAyB,CAAC;AAClH,OAAO,EAAC,KAAK,SAAS,EAAkC,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAGhD,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAC/C;;;OAGG;IACH,KAAK,EAAE,YAAY,CAAA;IAEnB;;;OAGG;IAEH,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC,CAAA;CACvD;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB;;OAEG;IACH,QAAQ,EAAE,oBAAoB,CAAA;IAE9B;;OAEG;IACH,QAAQ,EAAE,oBAAoB,CAAA;IAE9B;;OAEG;IACH,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;CACtD;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,GAAG,EAAE,YAAY,CAAA;IACjB,GAAG,EAAE,YAAY,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAE/B,IAAI,EAAE,YAAY,CAAA;IAElB,KAAK,EAAE,YAAY,CAAA;CACtB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAO,YAAiD,CAAA;AACzF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAO,YAAkD,CAAA;AAE1F;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAO,YAAiD,CAAA;AACxF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAO,YAAkD,CAAA;AAkBzF;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,GAAG,oBAAoB,CAK1F;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAO,YAIrC,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,QAAO,iBAO1C,CAAA;AAEF;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,CAMhF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAIlH;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,MAAM,YAAY,KAAG,YAIpD,CAAA;AAYF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,gBAAgB,KAAG,gBAK3D,CAAA;AAeF;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAC9B,cAAc,EAAE,UAAU,CAAC,mBAAmB,CAAC,EAC/C,cAAc,GAAE,MAAgC,EAChD,YAAY,CAAC,EAAE,YAAY,GAC5B,UAAU,CAAC,gBAAgB,CAAC,CA4E9B"}
@@ -1,35 +1,65 @@
1
1
  import { map, scan } from "rxjs/operators";
2
2
  import { copyOrdinalDatum, nonEmptyOrdinalDatum, ordinalDatumOf } from "../series/ordinalSeries";
3
3
  import { copyChartData, defaultChartData } from "./ChartData";
4
+ import { FastShiftArray } from "fast-shift-array";
5
+ import { DEFAULT_COMPACTING_SIZE } from "../series/baseSeries";
6
+ /**
7
+ * @return The datum to start a search for the min value from: its value (`Infinity`) is larger
8
+ * than any other
9
+ */
4
10
  export const initialMinValueDatum = () => ordinalDatumOf(NaN, "", Infinity);
11
+ /**
12
+ * @return The datum to start a search for the max value from: its value (`-Infinity`) is smaller
13
+ * than any other
14
+ */
5
15
  export const initialMaxValueDatum = () => ordinalDatumOf(NaN, "", -Infinity);
16
+ /**
17
+ * @return The datum to start a search for the min time from: its time (`Infinity`) is later than
18
+ * any other
19
+ */
6
20
  export const initialMinTimeDatum = () => ordinalDatumOf(Infinity, "", NaN);
21
+ /**
22
+ * @return The datum to start a search for the max time from: its time (`-Infinity`) is earlier
23
+ * than any other
24
+ */
7
25
  export const initialMaxTimeDatum = () => ordinalDatumOf(-Infinity, "", NaN);
8
- export function valueStatusDatumOfDefault(datum) {
9
- return (datum === undefined) ? ordinalDatumOf(NaN, "", NaN) : datum;
10
- }
11
- export function isDefaultValueStatsDatum(datum) {
12
- return isNaN(datum.time) && datum.ordinal === "" && isNaN(datum.value);
13
- }
26
+ /**
27
+ * @return The extremum to start a search for the min time and value from
28
+ */
14
29
  const initialMinOrdinalDatum = () => ({
15
30
  time: ordinalDatumOf(Infinity, "", NaN),
16
31
  value: initialMinValueDatum()
17
32
  });
33
+ /**
34
+ * @return The extremum to start a search for the max time and value from
35
+ */
18
36
  const initialMaxOrdinalDatum = () => ({
19
37
  time: ordinalDatumOf(-Infinity, "", NaN),
20
38
  value: initialMaxValueDatum()
21
39
  });
40
+ /**
41
+ * Copies an extremum (and its data)
42
+ * @param datum The extremum to copy
43
+ * @return The copy
44
+ */
22
45
  export function copyOrdinalDatumExtremum(datum) {
23
46
  return {
24
47
  time: copyOrdinalDatum(datum.time),
25
48
  value: copyOrdinalDatum(datum.value)
26
49
  };
27
50
  }
51
+ /**
52
+ * @return Stats for no data: extremes to start the searches from, and no series' stats
53
+ */
28
54
  export const defaultOrdinalStats = () => ({
29
55
  minDatum: initialMinOrdinalDatum(),
30
56
  maxDatum: initialMaxOrdinalDatum(),
31
57
  valueStatsForSeries: new Map()
32
58
  });
59
+ /**
60
+ * @return Value stats for no data: a count, sum, and sum of squares of 0, a `NaN` mean, and min
61
+ * and max data to start the searches from
62
+ */
33
63
  export const defaultOrdinalValueStats = () => ({
34
64
  min: initialMinValueDatum(),
35
65
  max: initialMaxValueDatum(),
@@ -38,35 +68,90 @@ export const defaultOrdinalValueStats = () => ({
38
68
  mean: NaN,
39
69
  sumSquared: 0,
40
70
  });
71
+ /**
72
+ * Copies a series' value stats (and their min and max data)
73
+ * @param data The value stats to copy
74
+ * @return The copy
75
+ */
41
76
  export function copyOrdinalValueStats(data) {
42
- return Object.assign(Object.assign({}, data), { min: copyOrdinalDatum(data.min), max: copyOrdinalDatum(data.max) });
77
+ return {
78
+ ...data,
79
+ min: copyOrdinalDatum(data.min),
80
+ max: copyOrdinalDatum(data.max),
81
+ };
43
82
  }
83
+ /**
84
+ * Copies the map of each series' value stats (and the stats)
85
+ * @param valueStats The value stats, by series name
86
+ * @return The copy
87
+ */
44
88
  export function copyValueStatsForSeries(valueStats) {
45
89
  return new Map(Array.from(valueStats.entries())
46
90
  .map(([seriesName, valueStats]) => [seriesName, copyOrdinalValueStats(valueStats)]));
47
91
  }
92
+ /**
93
+ * Copies the stats (the extremes, and each series' value stats)
94
+ * @param data The stats to copy
95
+ * @return The copy
96
+ */
48
97
  export const copyOrdinalStats = (data) => ({
49
98
  minDatum: copyOrdinalDatumExtremum(data.minDatum),
50
99
  maxDatum: copyOrdinalDatumExtremum(data.maxDatum),
51
100
  valueStatsForSeries: copyValueStatsForSeries(data.valueStatsForSeries),
52
101
  });
53
- const emptyOrdinalData = () => (Object.assign(Object.assign({}, defaultChartData()), { stats: defaultOrdinalStats(), newPoints: new Map() }));
54
102
  /**
55
- * Makes a deep copy of the ordinal chart data
103
+ * @return Ordinal chart data without any series or points, and with the default stats
104
+ */
105
+ const emptyOrdinalData = () => ({
106
+ ...defaultChartData(),
107
+ stats: defaultOrdinalStats(),
108
+ newPoints: new Map()
109
+ // newPoints: new Map<string, Array<OrdinalDatum>>()
110
+ });
111
+ /**
112
+ * Makes a copy of the ordinal chart data: a new set of series names, copies of the stats, and new
113
+ * arrays of points (the points themselves are shared)
56
114
  * @param data The ordinal chart data to copy
115
+ * @return The copy
57
116
  */
58
- export const copyOrdinalDataFrom = (data) => (Object.assign(Object.assign({}, copyChartData(data)), { stats: copyOrdinalStats(data.stats), newPoints: new Map(Array.from(data.newPoints.entries()).map(([name, points]) => [name, points.slice()])) }));
59
- const initialAccumulate = () => ({ previous: new Map(), accumulated: emptyOrdinalData() });
117
+ export const copyOrdinalDataFrom = (data) => ({
118
+ ...copyChartData(data),
119
+ stats: copyOrdinalStats(data.stats),
120
+ newPoints: new Map(Array.from(data.newPoints.entries()).map(([name, points]) => [name, points.slice()])),
121
+ // newPoints: new Map<string, Array<OrdinalDatum>>(Array.from(data.newPoints.entries()).map(([name, points]) => [name, points.slice()])),
122
+ });
123
+ /**
124
+ * @param initialStats Optional stats to start the accumulation from (see {@link ordinalsObservable})
125
+ * @return The initial accumulated chart data
126
+ */
127
+ const initialAccumulate = (initialStats) => initialStats === undefined ?
128
+ emptyOrdinalData() :
129
+ {
130
+ ...emptyOrdinalData(),
131
+ seriesNames: new Set(initialStats.valueStatsForSeries.keys()),
132
+ stats: copyOrdinalStats(initialStats)
133
+ };
60
134
  /**
61
- * Accepts a {@link TimeSeriesChartData} observable and converts it to an observable of {@link OrdinalChartData}.
135
+ * Accepts a {@link TimeSeriesChartData} observable and converts it to an observable of {@link OrdinalChartData}:
136
+ * each emission holds the incoming chunk's points (as ordinal data), and the stats accumulated over
137
+ * all the data so far.
62
138
  * @param dataObservable The observable over {@link TimeSeriesChartData}
139
+ * @param [compactingSize=DEFAULT_COMPACTING_SIZE] The number of shifts a series' backing array accumulates before it's compacted
140
+ * @param initialStats Optional stats of the data that already exists (e.g. a chart's accumulated
141
+ * series, see `calculateOrdinalStats`), from which the stats accumulate -- so that the stats cover
142
+ * that data without the data having to be re-emitted through `dataObservable`
63
143
  * @return An observable of {@link OrdinalChartData} holding the series for the incoming chart data
64
144
  */
65
- export function ordinalsObservable(dataObservable) {
145
+ export function ordinalsObservable(dataObservable, compactingSize = DEFAULT_COMPACTING_SIZE, initialStats) {
66
146
  return dataObservable
67
147
  .pipe(
68
- // calculate the iterates for each series in the chart data
69
- scan(({ previous, accumulated }, current) => {
148
+ // calculate the stats for each series in the chart data
149
+ //
150
+ // note: only the stats and the latest new points are accumulated -- the incoming points
151
+ // themselves aren't kept (the data source holds the series). A previous version also
152
+ // appended every incoming point to a map that nothing ever read, which grew without bound
153
+ // for as long as the stream ran (one point per series per tick).
154
+ scan((accumulated, current) => {
70
155
  // make a deep copy of the accumulated data (because the accumulated data object
71
156
  // holds references to maps)
72
157
  const accum = copyOrdinalDataFrom(accumulated);
@@ -74,68 +159,62 @@ export function ordinalsObservable(dataObservable) {
74
159
  Array
75
160
  .from(current.newPoints.entries())
76
161
  .forEach(([name, series]) => {
77
- // grab the points from the previous incoming data and add the new
78
- // data to the end of the previous data (when the updated data
79
- // didn't yet exist, add it to the map holding the previous series)
80
- const updated = (previous.get(name) || []);
81
- if (updated.length === 0) {
82
- previous.set(name, updated);
83
- }
84
- updated.push(...series);
85
162
  // add the series name to the list of all
86
163
  accum.seriesNames.add(name);
87
164
  // calculate the max-time, min-time, max-value, and min-value for
88
165
  // all the data series
89
- series.forEach(({ time, value }) => {
166
+ series.forEach(({ x, y }) => {
90
167
  // calculate the min and max times over all series
91
- if (time < accum.stats.minDatum.time.time) {
92
- accum.stats.minDatum.time = ordinalDatumOf(time, name, value);
168
+ if (x < accum.stats.minDatum.time.time) {
169
+ accum.stats.minDatum.time = ordinalDatumOf(x, name, y);
93
170
  }
94
- else if (time > accum.stats.maxDatum.time.time) {
95
- accum.stats.maxDatum.time = ordinalDatumOf(time, name, value);
171
+ if (x > accum.stats.maxDatum.time.time) {
172
+ accum.stats.maxDatum.time = ordinalDatumOf(x, name, y);
96
173
  }
97
174
  // calculate the min and max values over all series
98
- if (value < accum.stats.minDatum.value.value) {
99
- accum.stats.minDatum.value = ordinalDatumOf(time, name, value);
175
+ if (y < accum.stats.minDatum.value.value) {
176
+ accum.stats.minDatum.value = ordinalDatumOf(x, name, y);
100
177
  }
101
- else if (value > accum.stats.maxDatum.value.value) {
102
- accum.stats.maxDatum.value = ordinalDatumOf(time, name, value);
178
+ if (y > accum.stats.maxDatum.value.value) {
179
+ accum.stats.maxDatum.value = ordinalDatumOf(x, name, y);
103
180
  }
104
181
  // calculate the min, max of the time and value for each series
105
182
  let valueStats = accum.stats.valueStatsForSeries.get(name) || defaultOrdinalValueStats();
106
- const minValue = (value < valueStats.min.value) ?
107
- ordinalDatumOf(time, name, value) :
183
+ const minValue = (y < valueStats.min.value) ?
184
+ ordinalDatumOf(x, name, y) :
108
185
  copyOrdinalDatum(valueStats.min);
109
- const maxValue = (value > valueStats.max.value) ?
110
- ordinalDatumOf(time, name, value) :
186
+ const maxValue = (y > valueStats.max.value) ?
187
+ ordinalDatumOf(x, name, y) :
111
188
  copyOrdinalDatum(valueStats.max);
112
189
  const count = valueStats.count + 1;
113
- const sum = valueStats.sum + value;
190
+ const sum = valueStats.sum + y;
114
191
  valueStats = {
115
192
  min: minValue,
116
193
  max: maxValue,
117
194
  count,
118
195
  sum,
119
- sumSquared: isNaN(valueStats.sumSquared) ? value * value : valueStats.sumSquared + value * value,
196
+ sumSquared: isNaN(valueStats.sumSquared) ? y * y : valueStats.sumSquared + y * y,
120
197
  mean: sum / count
121
198
  };
122
199
  accum.stats.valueStatsForSeries.set(name, valueStats);
123
200
  });
124
201
  // convert the new points to ordinal datum
125
- accum.newPoints.set(name, series.map(({ time, value }) => ordinalDatumOf(time, name, value)));
202
+ accum.newPoints.set(name, FastShiftArray.fromArray(series.map(({ x, y }) => ordinalDatumOf(x, name, y)), true, compactingSize));
203
+ // accum.newPoints.set(name, series.map(({x, y}: Datum) => ordinalDatumOf(x, name, y)))
126
204
  });
127
- return { previous, accumulated: accum };
128
- }, initialAccumulate()),
205
+ return accum;
206
+ }, initialAccumulate(initialStats)),
129
207
  // remove new points from the map that are empty
130
- map(accum => removeEmptyNewPoints(accum)), map(accum => accum.accumulated === undefined ? emptyOrdinalData() : accum.accumulated));
208
+ map(accumulated => removeEmptyNewPoints(accumulated)));
131
209
  }
132
- function removeEmptyNewPoints(accum) {
210
+ /**
211
+ * @param data The ordinal chart data
212
+ * @return A copy of the chart data, without any empty new points
213
+ */
214
+ function removeEmptyNewPoints(data) {
133
215
  const newPoints = new Map(Array
134
- .from(accum.accumulated.newPoints.entries())
216
+ .from(data.newPoints.entries())
135
217
  .map(([name, points]) => [name, points.filter(point => nonEmptyOrdinalDatum(point))]));
136
- return {
137
- previous: accum.previous,
138
- accumulated: Object.assign(Object.assign({}, accum.accumulated), { newPoints })
139
- };
218
+ return { ...data, newPoints };
140
219
  }
141
220
  //# sourceMappingURL=ordinals.js.map