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
@@ -1,499 +0,0 @@
1
- import {filter, map, scan} from 'rxjs/operators';
2
- import {Observable, range} from 'rxjs';
3
- import {IterateChartData, iteratesObservable as iterateObservable} from '../observables/iterates'
4
- import {TimeSeriesChartData} from "../series/timeSeriesChartData";
5
- import {datumOf} from "../series/timeSeries";
6
-
7
-
8
- type Point = {
9
- x: number
10
- y: number
11
- }
12
-
13
- const pointFrom = (x: number, y: number): Point => ({x, y})
14
- const emptyPoint = (): Point => ({x: NaN, y: NaN})
15
- const isEmptyPoint = (point?: Point): boolean => point === undefined || (isNaN(point.x) && isNaN(point.y))
16
- const nonEmptyPoint = (point?: Point): boolean => !isEmptyPoint(point)
17
-
18
- type Accumulate = {
19
- // n-difference, which is the number of points between successive differences
20
- n: number
21
- // holds the previous n point (for successive-n differences)
22
- previous: Array<Point>
23
- // the current successive-n difference
24
- difference?: Point
25
- }
26
- const initialAccumulate = (n: number = 1): Accumulate => ({n, previous: []})
27
-
28
- /**
29
- * Source for {@link Point} data that generates `x`-values from a range of 1 to `numPoints` and
30
- * creates the `y`-values by applying the `valueFn` to those `x`-values.
31
- * @param numPoints The number of points to generate
32
- * @param valueFn The function that maps `x` to `y` (i.e. the value function is `f(x)` in `y = f(x)`)
33
- * @return an observable of {@link Point}
34
- */
35
- function pointsObservable(numPoints: number = 10, valueFn: (x: number) => number): Observable<Point> {
36
- return range(1, numPoints).pipe(map(value => pointFrom(value, valueFn(value))))
37
- }
38
-
39
- /**
40
- *
41
- * @param n The number of points back from which to calculate the `n-difference`
42
- * @param dataObservable Observable that is the source of the underlying data
43
- * @param useStartX Whether to use the x-value from the beginning of the interval as the x-value
44
- * for the difference (default), or whether to use the last x-value in the interval.
45
- */
46
- function successiveDiffsObservable(
47
- n: number = 1,
48
- dataObservable: Observable<Point>,
49
- useStartX: boolean = true
50
- ): Observable<Point> {
51
- return dataObservable
52
- .pipe(
53
- scan(({n, previous,}, current) => {
54
- // when we have accumulated enough previous values to cover the "n-difference",
55
- // we can calculate an actual difference
56
- if (previous.length >= n) {
57
- // add the new point, and take the first point from the beginning
58
- previous.push(current)
59
- const first: Point = previous.shift() || emptyPoint()
60
-
61
- // calculate the n-difference, using the x-value of the initial point (default)
62
- // or the current point (end of current time-range
63
- const difference = pointFrom(
64
- useStartX ? first.x : current.x,
65
- current.y - first.y
66
- )
67
-
68
- return {n, previous, difference}
69
- }
70
-
71
- // not enough points yet, so just accumulate the current point
72
- previous.push(current)
73
-
74
- return {n, previous}
75
-
76
- }, initialAccumulate(n)),
77
- filter(accum => nonEmptyPoint(accum.difference)),
78
- map(accum => accum.difference === undefined ? emptyPoint() : accum.difference)
79
- )
80
- }
81
-
82
- describe('should be able to calculate successive differences', () => {
83
-
84
- test('should be able to calc successive-diffs for x^2 where x is in 1..10', done => {
85
- let results: Array<Point> = []
86
- successiveDiffsObservable(1, pointsObservable(10, x => x * x), true).subscribe(point => results.push(point))
87
- done()
88
- expect(results).toHaveLength(9)
89
- expect(results).toEqual([
90
- {x: 1, y: 3},
91
- {x: 2, y: 5},
92
- {x: 3, y: 7},
93
- {x: 4, y: 9},
94
- {x: 5, y: 11},
95
- {x: 6, y: 13},
96
- {x: 7, y: 15},
97
- {x: 8, y: 17},
98
- {x: 9, y: 19},
99
- ])
100
- });
101
-
102
- test('should be able to calc successive-diffs for x^2 where x is in 1..10 using interval end', done => {
103
- let results: Array<Point> = []
104
- successiveDiffsObservable(1, pointsObservable(10, x => x * x), false).subscribe(point => results.push(point))
105
- done()
106
- expect(results).toHaveLength(9)
107
- expect(results).toEqual([
108
- {x: 2, y: 3},
109
- {x: 3, y: 5},
110
- {x: 4, y: 7},
111
- {x: 5, y: 9},
112
- {x: 6, y: 11},
113
- {x: 7, y: 13},
114
- {x: 8, y: 15},
115
- {x: 9, y: 17},
116
- {x: 10, y: 19},
117
- ])
118
- });
119
-
120
- test('should be able to calc 3-diffs for x^2 where x is in 1..10', done => {
121
- let results: Array<Point> = []
122
- successiveDiffsObservable(3, pointsObservable(10, x => x * x), true).subscribe(point => results.push(point))
123
- done()
124
- expect(results).toHaveLength(7)
125
- expect(results).toEqual([
126
- {x: 1, y: 15},
127
- {x: 2, y: 21},
128
- {x: 3, y: 27},
129
- {x: 4, y: 33},
130
- {x: 5, y: 39},
131
- {x: 6, y: 45},
132
- {x: 7, y: 51},
133
- ])
134
- });
135
-
136
- test('should be able to calc 3-diffs for x^2 where x is in 1..10 using interval end', done => {
137
- let results: Array<Point> = []
138
- successiveDiffsObservable(3, pointsObservable(10, x => x * x), false).subscribe(point => results.push(point))
139
- done()
140
- expect(results).toHaveLength(7)
141
- expect(results).toEqual([
142
- {x: 4, y: 15},
143
- {x: 5, y: 21},
144
- {x: 6, y: 27},
145
- {x: 7, y: 33},
146
- {x: 8, y: 39},
147
- {x: 9, y: 45},
148
- {x: 10, y: 51},
149
- ])
150
- });
151
- })
152
-
153
- /**
154
- * Observable that converts data points into iterates for poincare plots where one plots x(j+n) vs x(j)
155
- * @param n The n-th iterate for plotting x(j+n) vs x(j)
156
- * @param dataObservable The observable with the point data
157
- * @return an observable of a stream of {@link Point}s
158
- */
159
- function iteratesObservable(n: number = 1, dataObservable: Observable<Point>): Observable<Point> {
160
- return dataObservable
161
- .pipe(
162
- scan(({n, previous,}, current) => {
163
- // when we have accumulated enough previous values to cover the "n-iterate",
164
- // we can grab the y-value from the n-th point back
165
- if (previous.length >= n) {
166
- // add the new point, and take the first point from the beginning
167
- previous.push(pointFrom(previous[previous.length - 1].y, current.y))
168
- const first: Point = previous.shift() || emptyPoint()
169
-
170
- // calculate the n-difference, using the x-value of the initial point (default)
171
- // or the current point (end of current time-range
172
- const iterate = pointFrom(first.y, current.y)
173
-
174
- return {n, previous, difference: iterate}
175
- }
176
-
177
- // not enough points yet, so just accumulate the current point
178
- previous.push(current)
179
-
180
- return {n, previous}
181
-
182
- }, initialAccumulate(n)),
183
- filter(accum => nonEmptyPoint(accum.difference)),
184
- map(accum => accum.difference === undefined ? emptyPoint() : accum.difference)
185
- )
186
- }
187
-
188
- function tentFn(x: number, mu: number = 1): number {
189
- return x < 0.5 ? mu * x : mu * (1 - x)
190
- }
191
-
192
- describe('should be able to calculate iterates', () => {
193
-
194
- test('should be able to calc 1-iterates for x^2 where x is in 1..10', done => {
195
- let results: Array<Point> = []
196
- iteratesObservable(1, pointsObservable(10, x => 2 * x)).subscribe(point => results.push(point))
197
- done()
198
- expect(results).toHaveLength(9)
199
- expect(results).toEqual([
200
- {x: 2, y: 4},
201
- {x: 4, y: 6},
202
- {x: 6, y: 8},
203
- {x: 8, y: 10},
204
- {x: 10, y: 12},
205
- {x: 12, y: 14},
206
- {x: 14, y: 16},
207
- {x: 16, y: 18},
208
- {x: 18, y: 20}
209
- ])
210
- });
211
-
212
- test('should be able to calc 3-iterates for x^2 where x is in 1..10', done => {
213
- let results: Array<Point> = []
214
- iteratesObservable(3, pointsObservable(10, x => 2 * x)).subscribe(point => results.push(point))
215
- done()
216
- expect(results).toHaveLength(7)
217
- expect(results).toEqual([
218
- {x: 2, y: 8},
219
- {x: 4, y: 10},
220
- {x: 6, y: 12},
221
- {x: 8, y: 14},
222
- {x: 10, y: 16},
223
- {x: 12, y: 18},
224
- {x: 14, y: 20}
225
- ])
226
- });
227
-
228
-
229
- test('tent map should converge to (0, 0) for mu < 1', done => {
230
- const numPoints = 100000
231
- let lastPoint = emptyPoint()
232
-
233
- iteratesObservable(1, range(0, numPoints).pipe(map(x => pointFrom(x, tentFn(x / numPoints, 0.15)))))
234
- .subscribe(point => lastPoint = point)
235
-
236
- done()
237
- expect(lastPoint.y).toBeLessThan(1e-5)
238
- expect(lastPoint.x).toBeLessThan(1e-5)
239
- })
240
- })
241
-
242
- describe('when calculating tent-map iterates with one new data point for each event', () => {
243
-
244
- test('should be able to calc 1-iterates for tent-map chart data, when 1 point is added at a time', done => {
245
- const numPoints = 10
246
- let results: Array<IterateChartData> = []
247
- iterateObservable(
248
- range(0, numPoints).pipe(
249
- map(x => ({
250
- maxTime: x,
251
- maxTimes: new Map([['test1', x]]),
252
- newPoints: new Map([['test1', [datumOf(x, tentFn(x / numPoints, 0.15))]]])
253
- } as TimeSeriesChartData))
254
- )).subscribe(point => results.push(point));
255
- done()
256
- expect(results).toHaveLength(9)
257
-
258
- //
259
- // check the first iterate datum
260
- expect(results[0].minIterate.iterateN).toEqual(0)
261
- expect(results[0].minIterate.iterateN_1).toEqual(0.015)
262
- expect(results[0].maxIterate.iterateN).toEqual(0)
263
- expect(results[0].maxIterate.iterateN_1).toEqual(0.015)
264
-
265
- expect(results[0].minIterates.has("test1")).toBe(true)
266
- expect(results[0].minIterates.size).toEqual(1)
267
- expect(results[0].minIterates.get("test1")!.time).toEqual(0)
268
- expect(results[0].minIterates.get("test1")!.iterateN).toEqual(0)
269
- expect(results[0].minIterates.get("test1")!.iterateN_1).toEqual(0.015)
270
-
271
- expect(results[0].maxIterates.has("test1")).toBe(true)
272
- expect(results[0].maxIterates.size).toEqual(1)
273
- expect(results[0].maxIterates.get("test1")!.time).toEqual(0)
274
- expect(results[0].maxIterates.get("test1")!.iterateN).toBeCloseTo(0, 4)
275
- expect(results[0].maxIterates.get("test1")!.iterateN_1).toBeCloseTo(0.015, 4)
276
-
277
- // check that the accumulator "newPoints" holds the previous "newPoints" for the iterate
278
- expect(results[0].newPoints.has("test1")).toBe(true)
279
- expect(results[0].newPoints.get("test1")).toHaveLength(1)
280
- expect(results[0].newPoints.get("test1")![0].time).toEqual(0)
281
- expect(results[0].newPoints.get("test1")![0].iterateN).toEqual(0)
282
- expect(results[0].newPoints.get("test1")![0].iterateN_1).toBeCloseTo(0.015, 4)
283
-
284
- //
285
- // check the last iterate datum
286
- expect(results[8].minIterate.time).toEqual(8)
287
- expect(results[8].minIterate.iterateN).toEqual(0)
288
- expect(results[8].minIterate.iterateN_1).toBeCloseTo(0.015, 4)
289
-
290
- expect(results[8].maxIterate.time).toEqual(5)
291
- expect(results[8].maxIterate.iterateN).toBeCloseTo(0.075, 4)
292
- expect(results[8].maxIterate.iterateN_1).toBeCloseTo(0.075, 4)
293
-
294
- expect(results[8].minIterates.has("test1")).toBe(true)
295
- expect(results[8].minIterates.size).toEqual(1)
296
- expect(results[8].minIterates.get("test1")!.time).toEqual(8)
297
- expect(results[8].minIterates.get("test1")!.iterateN).toEqual(0)
298
- expect(results[8].minIterates.get("test1")!.iterateN_1).toBeCloseTo(0.015, 4)
299
-
300
- expect(results[8].maxIterates.has("test1")).toBe(true)
301
- expect(results[8].maxIterates.size).toEqual(1)
302
- expect(results[8].maxIterates.get("test1")!.time).toEqual(5)
303
- expect(results[8].maxIterates.get("test1")!.iterateN).toBeCloseTo(0.075, 4)
304
- expect(results[8].maxIterates.get("test1")!.iterateN_1).toBeCloseTo(0.075, 4)
305
-
306
- // check that the accumulator "newPoints" holds the previous "newPoints" for the iterate
307
- expect(results[8].newPoints.has("test1")).toBe(true)
308
- expect(results[8].newPoints.get("test1")).toHaveLength(1)
309
- expect(results[8].newPoints.get("test1")![0].time).toEqual(8)
310
- expect(results[8].newPoints.get("test1")![0].iterateN).toBeCloseTo(0.03, 4)
311
- expect(results[8].newPoints.get("test1")![0].iterateN_1).toBeCloseTo(0.015, 4)
312
- });
313
- })
314
-
315
- describe('when calculating tent-map 1-iterates with two new data points for each event', () => {
316
-
317
- test('should be able to calc iterates for tent-map chart data, when 2 points are added at a time', done => {
318
- const numPoints = 5
319
- let results: Array<IterateChartData> = []
320
- iterateObservable(
321
- range(0, numPoints)
322
- .pipe(
323
- map(x => ({
324
- maxTime: 2 * x,
325
- maxTimes: new Map([['test1', 2 * x]]),
326
- newPoints: new Map([
327
- ['test1', [datumOf(2 * x, tentFn(2 * x / (2 * numPoints), 0.15)), datumOf(2 * x + 1, tentFn((2 * x + 1) / (2 * numPoints), 0.15))]],
328
- ])
329
- } as TimeSeriesChartData))
330
- ))
331
- .subscribe(result => results.push(result));
332
- done()
333
- expect(results).toHaveLength(5)
334
- expect(results.reduce((count, result) => result.newPoints.get("test1")!.length + count, 0)).toEqual(9)
335
-
336
- //
337
- // check the first iterate datum
338
- expect(results[0].minIterate.iterateN).toBeCloseTo(0, 4)
339
- expect(results[0].minIterate.iterateN_1).toBeCloseTo(0.015, 4)
340
- expect(results[0].maxIterate.iterateN).toBeCloseTo(0, 4)
341
- expect(results[0].maxIterate.iterateN_1).toBeCloseTo(0.015, 4)
342
-
343
- expect(results[0].minIterates.has("test1")).toBe(true)
344
- expect(results[0].minIterates.size).toEqual(1)
345
- expect(results[0].minIterates.get("test1")!.time).toBeCloseTo(0, 4)
346
- expect(results[0].minIterates.get("test1")!.iterateN).toBeCloseTo(0, 4)
347
- expect(results[0].minIterates.get("test1")!.iterateN_1).toBeCloseTo(0.015, 4)
348
-
349
- expect(results[0].maxIterates.has("test1")).toBe(true)
350
- expect(results[0].maxIterates.size).toEqual(1)
351
- expect(results[0].maxIterates.get("test1")!.time).toEqual(0)
352
- expect(results[0].maxIterates.get("test1")!.iterateN).toBeCloseTo(0, 4)
353
- expect(results[0].maxIterates.get("test1")!.iterateN_1).toBeCloseTo(0.015, 4)
354
-
355
- // check that the accumulator "newPoints" holds the previous "newPoints" for the iterate
356
- expect(results[0].newPoints.has("test1")).toBe(true)
357
- expect(results[0].newPoints.get("test1")).toHaveLength(1)
358
- expect(results[0].newPoints.get("test1")![0].time).toEqual(0)
359
- expect(results[0].newPoints.get("test1")![0].iterateN).toEqual(0)
360
- expect(results[0].newPoints.get("test1")![0].iterateN_1).toBeCloseTo(0.015, 4)
361
-
362
- //
363
- // check the last iterate datum
364
- expect(results[4].minIterate.time).toEqual(8)
365
- expect(results[4].minIterate.iterateN).toEqual(0)
366
- expect(results[4].minIterate.iterateN_1).toBeCloseTo(0.015, 4)
367
-
368
- expect(results[4].maxIterate.time).toEqual(5)
369
- expect(results[4].maxIterate.iterateN).toBeCloseTo(0.075, 4)
370
- expect(results[4].maxIterate.iterateN_1).toBeCloseTo(0.075, 4)
371
-
372
- expect(results[4].minIterates.size).toEqual(1)
373
- expect(results[4].minIterates.has("test1")).toBe(true)
374
- expect(results[4].minIterates.get("test1")!.time).toEqual(8)
375
- expect(results[4].minIterates.get("test1")!.iterateN).toEqual(0)
376
- expect(results[4].minIterates.get("test1")!.iterateN_1).toBeCloseTo(0.015, 4)
377
-
378
- expect(results[4].maxIterates.size).toEqual(1)
379
- expect(results[4].maxIterates.has("test1")).toBe(true)
380
- expect(results[4].maxIterates.get("test1")!.time).toEqual(5)
381
- expect(results[4].maxIterates.get("test1")!.iterateN).toBeCloseTo(0.075, 4)
382
- expect(results[4].maxIterates.get("test1")!.iterateN_1).toBeCloseTo(0.075, 4)
383
-
384
- // check that the accumulator "newPoints" holds the previous "newPoints" for the iterate
385
- expect(results[4].newPoints.has("test1")).toBe(true)
386
- expect(results[4].newPoints.get("test1")).toHaveLength(2)
387
- expect(results[4].newPoints.get("test1")![1].time).toEqual(8)
388
- expect(results[4].newPoints.get("test1")![1].iterateN).toBeCloseTo(0.03, 4)
389
- expect(results[4].newPoints.get("test1")![1].iterateN_1).toBeCloseTo(0.015, 4)
390
- });
391
-
392
- test('should be able to calc iterates for tent-map chart data, when 2 points are added at a time, with 2 series', done => {
393
- const numPoints = 5
394
- let results: Array<IterateChartData> = []
395
- iterateObservable(
396
- range(0, numPoints)
397
- .pipe(
398
- map(x => ({
399
- maxTime: 2 * x,
400
- maxTimes: new Map([['test1', 2 * x]]),
401
- newPoints: new Map([
402
- ['test1', [datumOf(2 * x, tentFn(2 * x / (2 * numPoints), 0.15)), datumOf(2 * x + 1, tentFn((2 * x + 1) / (2 * numPoints), 0.15))]],
403
- ['test2', [datumOf(2 * x, tentFn(2 * x / (2 * numPoints), 0.35)), datumOf(2 * x + 1, tentFn((2 * x + 1) / (2 * numPoints), 0.35))]],
404
- ])
405
- } as TimeSeriesChartData))
406
- ))
407
- .subscribe(result => results.push(result));
408
- done()
409
- expect(results).toHaveLength(5)
410
- expect(results.reduce((count, result) => result.newPoints.get("test1")!.length + count, 0)).toEqual(9)
411
-
412
- //
413
- // check the first iterate datum
414
- expect(results[0].minIterate.iterateN).toBeCloseTo(0, 4)
415
- expect(results[0].minIterate.iterateN_1).toBeCloseTo(0.015, 4)
416
- expect(results[0].maxIterate.iterateN).toBeCloseTo(0, 4)
417
- expect(results[0].maxIterate.iterateN_1).toBeCloseTo(0.035, 4)
418
-
419
- expect(results[0].minIterates.size).toEqual(2)
420
- expect(results[0].minIterates.has("test1")).toBe(true)
421
- expect(results[0].minIterates.get("test1")!.time).toBeCloseTo(0, 4)
422
- expect(results[0].minIterates.get("test1")!.iterateN).toBeCloseTo(0, 4)
423
- expect(results[0].minIterates.get("test1")!.iterateN_1).toBeCloseTo(0.015, 4)
424
-
425
- expect(results[0].minIterates.has("test2")).toBe(true)
426
- expect(results[0].minIterates.get("test2")!.time).toBeCloseTo(0, 4)
427
- expect(results[0].minIterates.get("test2")!.iterateN).toBeCloseTo(0, 4)
428
- expect(results[0].minIterates.get("test2")!.iterateN_1).toBeCloseTo(0.035, 4)
429
-
430
- expect(results[0].maxIterates.size).toEqual(2)
431
- expect(results[0].maxIterates.has("test1")).toBe(true)
432
- expect(results[0].maxIterates.get("test1")!.time).toEqual(0)
433
- expect(results[0].maxIterates.get("test1")!.iterateN).toBeCloseTo(0, 4)
434
- expect(results[0].maxIterates.get("test1")!.iterateN_1).toBeCloseTo(0.015, 4)
435
-
436
- expect(results[0].maxIterates.has("test2")).toBe(true)
437
- expect(results[0].maxIterates.get("test2")!.time).toEqual(0)
438
- expect(results[0].maxIterates.get("test2")!.iterateN).toBeCloseTo(0, 4)
439
- expect(results[0].maxIterates.get("test2")!.iterateN_1).toBeCloseTo(0.035, 4)
440
-
441
- // check that the accumulator "newPoints" holds the previous "newPoints" for the iterate
442
- expect(results[0].newPoints.has("test1")).toBe(true)
443
- expect(results[0].newPoints.get("test1")).toHaveLength(1)
444
- expect(results[0].newPoints.get("test1")![0].time).toEqual(0)
445
- expect(results[0].newPoints.get("test1")![0].iterateN).toEqual(0)
446
- expect(results[0].newPoints.get("test1")![0].iterateN_1).toBeCloseTo(0.015, 4)
447
-
448
- expect(results[0].newPoints.has("test2")).toBe(true)
449
- expect(results[0].newPoints.get("test2")).toHaveLength(1)
450
- expect(results[0].newPoints.get("test2")![0].time).toEqual(0)
451
- expect(results[0].newPoints.get("test2")![0].iterateN).toEqual(0)
452
- expect(results[0].newPoints.get("test2")![0].iterateN_1).toBeCloseTo(0.035, 4)
453
-
454
- //
455
- // check the last iterate datum
456
- expect(results[4].minIterate.time).toEqual(8)
457
- expect(results[4].minIterate.iterateN).toEqual(0)
458
- expect(results[4].minIterate.iterateN_1).toBeCloseTo(0.015, 4)
459
-
460
- expect(results[4].maxIterate.time).toEqual(5)
461
- expect(results[4].maxIterate.iterateN).toBeCloseTo(0.175, 4)
462
- expect(results[4].maxIterate.iterateN_1).toBeCloseTo(0.175, 4)
463
-
464
- expect(results[4].minIterates.size).toEqual(2)
465
- expect(results[4].minIterates.has("test1")).toBe(true)
466
- expect(results[4].minIterates.get("test1")!.time).toEqual(8)
467
- expect(results[4].minIterates.get("test1")!.iterateN).toEqual(0)
468
- expect(results[4].minIterates.get("test1")!.iterateN_1).toBeCloseTo(0.015, 4)
469
-
470
- expect(results[4].minIterates.has("test2")).toBe(true)
471
- expect(results[4].minIterates.get("test2")!.time).toEqual(8)
472
- expect(results[4].minIterates.get("test2")!.iterateN).toEqual(0)
473
- expect(results[4].minIterates.get("test2")!.iterateN_1).toBeCloseTo(0.035, 4)
474
-
475
- expect(results[4].maxIterates.size).toEqual(2)
476
- expect(results[4].maxIterates.has("test1")).toBe(true)
477
- expect(results[4].maxIterates.get("test1")!.time).toEqual(5)
478
- expect(results[4].maxIterates.get("test1")!.iterateN).toBeCloseTo(0.075, 4)
479
- expect(results[4].maxIterates.get("test1")!.iterateN_1).toBeCloseTo(0.075, 4)
480
-
481
- expect(results[4].maxIterates.has("test2")).toBe(true)
482
- expect(results[4].maxIterates.get("test2")!.time).toEqual(5)
483
- expect(results[4].maxIterates.get("test2")!.iterateN).toBeCloseTo(0.175, 4)
484
- expect(results[4].maxIterates.get("test2")!.iterateN_1).toBeCloseTo(0.175, 4)
485
-
486
- // check that the accumulator "newPoints" holds the previous "newPoints" for the iterate
487
- expect(results[4].newPoints.has("test1")).toBe(true)
488
- expect(results[4].newPoints.get("test1")).toHaveLength(2)
489
- expect(results[4].newPoints.get("test1")![1].time).toEqual(8)
490
- expect(results[4].newPoints.get("test1")![1].iterateN).toBeCloseTo(0.03, 4)
491
- expect(results[4].newPoints.get("test1")![1].iterateN_1).toBeCloseTo(0.015, 4)
492
-
493
- expect(results[4].newPoints.has("test2")).toBe(true)
494
- expect(results[4].newPoints.get("test2")).toHaveLength(2)
495
- expect(results[4].newPoints.get("test2")![1].time).toEqual(8)
496
- expect(results[4].newPoints.get("test2")![1].iterateN).toBeCloseTo(0.07, 4)
497
- expect(results[4].newPoints.get("test2")![1].iterateN_1).toBeCloseTo(0.035, 4)
498
- });
499
- })