stream-charts 1.2.1 → 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 +36 -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
@@ -1,201 +0,0 @@
1
- import {scan} from 'rxjs/operators';
2
- import {Observable, range} from 'rxjs';
3
- import {initialTimeSeriesChartData, TimeSeriesChartData} from "../series/timeSeriesChartData";
4
- import {Datum, datumOf, TimeSeries} from "../series/timeSeries";
5
- import {seriesFrom} from "../series/baseSeries";
6
-
7
- /**
8
- * Higher-order function that forms a closure on the tent-map parameter, mu,
9
- * and returns a tent-map function that accepts time and an iterate value. The
10
- * time is only used for chart information, and not in the calculation of the
11
- * next iterate.
12
- * <pre>f[n+1](x) = mu * min(f[n](x), 1 - f[n](x))</pre>
13
- * @param mu The "slope" of the tent function
14
- * @return A datum, (t, f[n+1](x)) holding the informational time, and the
15
- * value of the next iterate
16
- */
17
- function tentMapFn(mu: number): (time: number, xn: number) => Datum {
18
- const cleanMu = Math.max(0, Math.min(mu, 2))
19
-
20
- // the time is just the data collection time and does not factor int
21
- // the tent map calculation.
22
- return (time: number, xn: number): Datum => {
23
- const xn1 = cleanMu * Math.min(xn, 1 - xn)
24
- return datumOf(time, xn1)
25
- }
26
- }
27
-
28
- /**
29
- * Higher-order function that forms a closure on the update-period of the incoming data.
30
- * This function returns an accumulator function that uses the previous iterate (time-series
31
- * chart-data) to calculate the next iterate (time-series chart-data).
32
- * @param updatePeriod The update period, in milliseconds, forming the processing
33
- * windows of the graph
34
- * @return A function returns an accumulator function that uses the previous iterate (time-series
35
- * chart-data) to calculate the next iterate (time-series chart-data).
36
- */
37
- function accumulateTentDataAt(updatePeriod: number):
38
- (previous: TimeSeriesChartData, iterateNum: number, tentMap: (time: number, xn: number) => Datum) => TimeSeriesChartData
39
- {
40
- /**
41
- * Calculates the next iterate, given the previous iterate, by applying the
42
- * specified `tentMap` function
43
- * @param previous The previous iterate
44
- * @param iterateNum The iterate
45
- * @param tentMap The function to calculate the tent-map
46
- * @return The next iterate
47
- */
48
- return (
49
- previous: TimeSeriesChartData,
50
- iterateNum: number,
51
- tentMap: (time: number, xn: number) => Datum
52
- ): TimeSeriesChartData => {
53
- // make a copy of the current max times, which we'll update with new points
54
- const maxTimes = new Map(previous.maxTimes.entries())
55
- previous.newPoints.forEach((datum, name) => {
56
- maxTimes.set(name, (datum[datum.length - 1].time + updatePeriod))
57
- })
58
- // deep copy of the previous data points, and calculate the next point
59
- const newPoints = new Map(Array.from(previous.newPoints.entries())
60
- .map(([name, data]) => [name, data.slice()]))
61
- newPoints.forEach((data, _) => {
62
- const lastDatum = data[data.length - 1]
63
- const newDatum = tentMap(lastDatum.time + updatePeriod, lastDatum.value)
64
- data.shift()
65
- data.push(newDatum)
66
- })
67
-
68
- return {
69
- seriesNames: new Set<string>(previous.newPoints.keys()),
70
- maxTime: previous.maxTime + updatePeriod,
71
- maxTimes,
72
- newPoints,
73
- currentTime: (previous.currentTime || 0) + updatePeriod
74
- }
75
- }
76
- }
77
-
78
- /**
79
- * Calculates and returns a time-series of iterates of the tent-map function.
80
- * @param numPoints The number of iterates to calculate
81
- * @param mu The slope of the tent-map function
82
- * @param series The initial series
83
- * @param updatePeriod The update period (chart-window processing)
84
- * @return An observable of time-series chart-data holding the iterates
85
- */
86
- function tentMapTimeSeriesObservable(
87
- numPoints: number = 10,
88
- mu: number,
89
- series: Array<TimeSeries>,
90
- updatePeriod: number = 25
91
- ): Observable<TimeSeriesChartData> {
92
- const maxTime = series
93
- .map(srs => srs.last().map(datum => datum.time).getOrElse(0))
94
- .reduce((tMax, tCurr) => (tCurr > tMax) ? tCurr : tMax, -Infinity)
95
- const initialData = initialTimeSeriesChartData(series, maxTime)
96
- const tentMap = tentMapFn(mu)
97
- const accumulateFn = accumulateTentDataAt(updatePeriod);
98
- return range(series.length, numPoints).pipe(
99
- scan((prev, sequence) => accumulateFn(prev, sequence + 1, tentMap), initialData)
100
- )
101
- }
102
-
103
- describe('when calculating tent-map iterates', () => {
104
-
105
- const expected: Array<TimeSeriesChartData> = [
106
- {
107
- seriesNames: new Set<string>(["test1"]),
108
- maxTime: 26,
109
- maxTimes: new Map([["test1", 26]]),
110
- newPoints: new Map([["test1", [datumOf(26, 0.578)]]]),
111
- currentTime: 26
112
- },
113
- {
114
- seriesNames: new Set<string>(["test1"]),
115
- maxTime: 51,
116
- maxTimes: new Map([["test1", 51]]),
117
- newPoints: new Map([["test1", [datumOf(51, 0.7174)]]]),
118
- currentTime: 51
119
- },
120
- {
121
- seriesNames: new Set<string>(["test1"]),
122
- maxTime: 76,
123
- maxTimes: new Map([["test1", 76]]),
124
- newPoints: new Map([["test1", [datumOf(76, 0.48042)]]]),
125
- currentTime: 76
126
- },
127
- {
128
- seriesNames: new Set<string>(["test1"]),
129
- maxTime: 101,
130
- maxTimes: new Map([["test1", 101]]),
131
- newPoints: new Map([["test1", [datumOf(101, 0.816714)]]]),
132
- currentTime: 101
133
- },
134
- {
135
- seriesNames: new Set<string>(["test1"]),
136
- maxTime: 126,
137
- maxTimes: new Map([["test1", 126]]),
138
- newPoints: new Map([["test1", [datumOf(126, 0.3115862)]]]),
139
- currentTime: 126
140
- },
141
- {
142
- seriesNames: new Set<string>(["test1"]),
143
- maxTime: 151,
144
- maxTimes: new Map([["test1", 151]]),
145
- newPoints: new Map([["test1", [datumOf(151, 0.52969654)]]]),
146
- currentTime: 151
147
- },
148
- {
149
- seriesNames: new Set<string>(["test1"]),
150
- maxTime: 176,
151
- maxTimes: new Map([["test1", 176]]),
152
- newPoints: new Map([["test1", [datumOf(176, 0.799515882)]]]),
153
- currentTime: 176
154
- },
155
- {
156
- seriesNames: new Set<string>(["test1"]),
157
- maxTime: 201,
158
- maxTimes: new Map([["test1", 201]]),
159
- newPoints: new Map([["test1", [datumOf(201, 0.3408230006)]]]),
160
- currentTime: 201
161
- },
162
- {
163
- seriesNames: new Set<string>(["test1"]),
164
- maxTime: 226,
165
- maxTimes: new Map([["test1", 226]]),
166
- newPoints: new Map([["test1", [datumOf(226, 0.5793991)]]]),
167
- currentTime: 226
168
- },
169
- {
170
- seriesNames: new Set<string>(["test1"]),
171
- maxTime: 251,
172
- maxTimes: new Map([["test1", 251]]),
173
- newPoints: new Map([["test1", [datumOf(251, 0.7150215282659962)]]]),
174
- currentTime: 251
175
- },
176
- ]
177
-
178
- function assertChartDataEqual(expected: TimeSeriesChartData, actual: TimeSeriesChartData): void {
179
- expect(actual.maxTime).toEqual(expected.maxTime);
180
- expect(actual.maxTimes).toEqual(expected.maxTimes);
181
- Array.from(actual.newPoints.entries())
182
- .forEach(([name, data]: [string, Array<Datum>], index: number) => {
183
- data.forEach(actualDatum => {
184
- const expectedDatum: Datum = expected.newPoints.get(name)![index]
185
- expect(actualDatum.time).toEqual(expectedDatum.time)
186
- expect(actualDatum.value).toBeCloseTo(expectedDatum.value, 6)
187
- })
188
- })
189
- }
190
-
191
- test('should be able to calculate the tent-map iterates', done => {
192
- let results: Array<TimeSeriesChartData> = []
193
- const initialData: Array<TimeSeries> = [seriesFrom("test1", [datumOf(1, 0.66)])]
194
- tentMapTimeSeriesObservable(10, 1.7, initialData).subscribe(chartData => results.push(chartData))
195
- done()
196
- expect(results).toHaveLength(10)
197
- results.forEach((result, index) => {
198
- assertChartDataEqual(expected[index], result)
199
- })
200
- })
201
- })
@@ -1,135 +0,0 @@
1
- import {TimeSeriesChartData} from "../series/timeSeriesChartData";
2
- import {Datum, datumOf, TimeSeries} from "../series/timeSeries";
3
- import {seriesFrom} from "../series/baseSeries";
4
- import {Observable, range} from "rxjs";
5
- import {map} from "rxjs/operators";
6
- import {OrdinalChartData, ordinalsObservable} from "./ordinals";
7
-
8
- export function sinFn(x: number, period: number): number {
9
- return Math.sin(2 * Math.PI * x / period)
10
- }
11
-
12
- describe('when generating ordinal series', () => {
13
- const NUM_POINTS = 10
14
- const UPDATE_PERIOD = 25
15
- const seriesData: Array<[string, number]> = [["test1", sinFn(0, 250)], ["test2", sinFn(1, 251)], ["test3", sinFn(2, 252)]]
16
-
17
- const initialData: Array<TimeSeries> = seriesData
18
- .map(([name, value], index) => seriesFrom(name, [datumOf(index, value)]))
19
-
20
- test('should be able to generate ordinals', done => {
21
- let results: Array<OrdinalChartData> = []
22
- ordinalsObservable(
23
- sineDataObservable(initialData, NUM_POINTS, UPDATE_PERIOD)
24
- ).subscribe(chartData => results.push(chartData))
25
-
26
- // blocks until done is called
27
- done()
28
-
29
- expect(results).toHaveLength(NUM_POINTS)
30
-
31
- results.forEach((result, timeIndex) => {
32
- Array.from(result.newPoints.entries()).forEach(([seriesName, ordinalDatum], index) => {
33
- expect(seriesName).toEqual(seriesData[index][0])
34
-
35
- // check the time for the datum (only one new-point datum)
36
- expect(ordinalDatum).toBeDefined()
37
- expect(ordinalDatum.length).toBe(1)
38
- expect(ordinalDatum[0].time).toEqual(index+ timeIndex * UPDATE_PERIOD)
39
-
40
- // should be bounded (data is bounded)
41
- expect(ordinalDatum[0].value).toBeLessThanOrEqual(1)
42
- expect(ordinalDatum[0].value).toBeGreaterThanOrEqual(-1)
43
- })
44
-
45
- // the min time should be 1 and the max time should be (3 + timeIndex + updatePeriod)
46
- expect(result.stats.minDatum.time.time).toBe(0)
47
- expect(result.stats.maxDatum.time.time).toBe(2 + timeIndex * UPDATE_PERIOD)
48
- })
49
-
50
- })
51
-
52
- })
53
-
54
- /**
55
- * Creates random data
56
- * @param sequenceTime The current time
57
- * @param maxTime The number of points in the series
58
- * @param series The list of series names (identifiers) to update
59
- * @param seriesMaxTimes The maximum time for each series
60
- * @return The random chart data
61
- */
62
- function sineData(
63
- sequenceTime: number,
64
- maxTime: number,
65
- series: Array<string>,
66
- seriesMaxTimes: Map<string, number>
67
- ): TimeSeriesChartData {
68
- const maxTimes = new Map(Array.from(
69
- seriesMaxTimes.entries()).map(([name, maxTime]) => [name, maxTime + sequenceTime])
70
- )
71
- return {
72
- seriesNames: new Set(series),
73
- maxTime: sequenceTime,
74
- maxTimes,
75
- newPoints: new Map(series.map((name, index) => {
76
- const time = sequenceTime + index
77
- const value = sinFn(time, maxTime + index)
78
- return [name, [{time, value}]]
79
- }))
80
- };
81
- }
82
-
83
- /**
84
- * Creates an empty chart data object with all the values set to 0
85
- * @param seriesList The list of series names (identifiers) to update
86
- * @param currentTime=0] The current time
87
- * @return An empty chart data object
88
- */
89
- function initialChartData(seriesList: Array<TimeSeries>, currentTime: number = 0): TimeSeriesChartData {
90
- const maxTime = seriesList.reduce(
91
- (tMax, series) => Math.max(tMax, series.last().map(datum => datum.time).getOrElse(-Infinity)),
92
- -Infinity
93
- )
94
- return {
95
- seriesNames: new Set(seriesList.map(series => series.name)),
96
- maxTime,
97
- maxTimes: new Map(seriesList.map(series => [series.name, series.last().map(datum => datum.time).getOrElse(0)])),
98
- newPoints: new Map<string, Array<Datum>>(seriesList.map(series => [
99
- series.name,
100
- [{
101
- time: series.last().map(datum => datum.time).getOrElse(0),
102
- value: series.last().map(datum => datum.value).getOrElse(0)
103
- }]
104
- ])),
105
- currentTime: currentTime
106
- }
107
- }
108
-
109
- /**
110
- * Creates random set of time-series data, essentially creating a random walk for each series
111
- * @param series The number of time-series for which to generate data (i.e. one for each neuron)
112
- * @param numPoints The number of points to generate
113
- * @param [updatePeriod=25] The time-interval between the generation of subsequent data points
114
- * @return An observable that produces data.
115
- */
116
- function sineDataObservable(
117
- series: Array<TimeSeries>,
118
- numPoints: number = 10,
119
- updatePeriod: number = 25,
120
- ): Observable<TimeSeriesChartData> {
121
- const seriesNames = series.map(series => series.name)
122
- const initialData = initialChartData(series)
123
- return range(0, numPoints).pipe(
124
- // convert the number sequence to a time
125
- map(sequence => sequence * updatePeriod),
126
-
127
- // create a new (time, value) for each series
128
- map(time => {
129
- if (time <= initialData.maxTime) {
130
- return initialData
131
- }
132
- return sineData(time, numPoints * updatePeriod, seriesNames, initialData.maxTimes)
133
- }),
134
- )
135
- }
@@ -1,60 +0,0 @@
1
- import {emptySeries, seriesFrom} from "./baseSeries";
2
-
3
- describe('should be able to create an empty series', () => {
4
- test('an empty series should be empty', () => {
5
- expect(emptySeries('test1').isEmpty());
6
- });
7
-
8
- test('an empty series should not have a last element', () => {
9
- expect(emptySeries('test1').last().failed);
10
- });
11
-
12
- test('an empty series should have 0 length', () => {
13
- expect(emptySeries('test1').length()).toBe(0);
14
- });
15
-
16
- test('an empty series should not have any data', () => {
17
- expect(emptySeries('test1').data.length).toBe(0);
18
- });
19
-
20
- test('an empty series should have the specified name', () => {
21
- expect(emptySeries('test1').name).toBe('test1');
22
- });
23
- });
24
-
25
- describe('should be able to create a series from data', () => {
26
- const data = [
27
- {time: 1, value: 10},
28
- {time: 2, value: 20},
29
- {time: 3, value: 30},
30
- {time: 4, value: 40},
31
- {time: 5, value: 50},
32
- {time: 6, value: 60},
33
- {time: 7, value: 70},
34
- {time: 8, value: 80},
35
- {time: 9, value: 90},
36
- {time: 10, value: 100},
37
- ];
38
- const series = seriesFrom('test2', data);
39
-
40
- test('series should not be empty', () => {
41
- expect(!series.isEmpty())
42
- });
43
-
44
- test('series name should be test2', () => {
45
- expect(series.name).toEqual('test2')
46
- });
47
-
48
- test('series should have 10 points', () => {
49
- expect(series.length()).toBe(10);
50
- });
51
-
52
- test('last value in series should be (10, 100)', () => {
53
- const lastElement = series.last().getOrElse({time: NaN, value: NaN});
54
- expect(lastElement).toEqual({time: 10, value: 100});
55
- });
56
-
57
- test('series data should equal original data', () => {
58
- expect(series.data).toEqual(data);
59
- });
60
- });
@@ -1,22 +0,0 @@
1
- import {plotDimensionsFrom, Margin, containerDimensionsFrom} from "./margins";
2
-
3
- describe('adjusted dimension should correct for margins', () => {
4
- const margins: Margin = {top: 11, bottom: 12, left: 13, right: 14};
5
- const width = 100;
6
- const height = 200;
7
- const dimensions = plotDimensionsFrom(width, height, margins);
8
-
9
- test('adjusted width should have the left and right margins removed', () => {
10
- expect(dimensions.width).toBe(width - margins.right - margins.left);
11
- });
12
-
13
- test('adjusted height should have the top and bottom margins removed', () => {
14
- expect(dimensions.height).toBe(height - margins.top - margins.bottom);
15
- });
16
-
17
- test('should be able to get back the container dimensions after calculate the plot dimensions', () => {
18
- const {width: containerWidth, height: containerHeight} = containerDimensionsFrom(plotDimensionsFrom(width, height, margins), margins);
19
- expect(containerWidth).toBe(width);
20
- expect(containerHeight).toBe(height);
21
- })
22
- })