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,102 +0,0 @@
1
- import { datumOf } from "../series/timeSeries";
2
- import { seriesFrom } from "../series/baseSeries";
3
- import { range } from "rxjs";
4
- import { map } from "rxjs/operators";
5
- import { ordinalsObservable } from "./ordinals";
6
- export function sinFn(x, period) {
7
- return Math.sin(2 * Math.PI * x / period);
8
- }
9
- describe('when generating ordinal series', () => {
10
- const NUM_POINTS = 10;
11
- const UPDATE_PERIOD = 25;
12
- const seriesData = [["test1", sinFn(0, 250)], ["test2", sinFn(1, 251)], ["test3", sinFn(2, 252)]];
13
- const initialData = seriesData
14
- .map(([name, value], index) => seriesFrom(name, [datumOf(index, value)]));
15
- test('should be able to generate ordinals', done => {
16
- let results = [];
17
- ordinalsObservable(sineDataObservable(initialData, NUM_POINTS, UPDATE_PERIOD)).subscribe(chartData => results.push(chartData));
18
- // blocks until done is called
19
- done();
20
- expect(results).toHaveLength(NUM_POINTS);
21
- results.forEach((result, timeIndex) => {
22
- Array.from(result.newPoints.entries()).forEach(([seriesName, ordinalDatum], index) => {
23
- expect(seriesName).toEqual(seriesData[index][0]);
24
- // check the time for the datum (only one new-point datum)
25
- expect(ordinalDatum).toBeDefined();
26
- expect(ordinalDatum.length).toBe(1);
27
- expect(ordinalDatum[0].time).toEqual(index + timeIndex * UPDATE_PERIOD);
28
- // should be bounded (data is bounded)
29
- expect(ordinalDatum[0].value).toBeLessThanOrEqual(1);
30
- expect(ordinalDatum[0].value).toBeGreaterThanOrEqual(-1);
31
- });
32
- // the min time should be 1 and the max time should be (3 + timeIndex + updatePeriod)
33
- expect(result.stats.minDatum.time.time).toBe(0);
34
- expect(result.stats.maxDatum.time.time).toBe(2 + timeIndex * UPDATE_PERIOD);
35
- });
36
- });
37
- });
38
- /**
39
- * Creates random data
40
- * @param sequenceTime The current time
41
- * @param maxTime The number of points in the series
42
- * @param series The list of series names (identifiers) to update
43
- * @param seriesMaxTimes The maximum time for each series
44
- * @return The random chart data
45
- */
46
- function sineData(sequenceTime, maxTime, series, seriesMaxTimes) {
47
- const maxTimes = new Map(Array.from(seriesMaxTimes.entries()).map(([name, maxTime]) => [name, maxTime + sequenceTime]));
48
- return {
49
- seriesNames: new Set(series),
50
- maxTime: sequenceTime,
51
- maxTimes,
52
- newPoints: new Map(series.map((name, index) => {
53
- const time = sequenceTime + index;
54
- const value = sinFn(time, maxTime + index);
55
- return [name, [{ time, value }]];
56
- }))
57
- };
58
- }
59
- /**
60
- * Creates an empty chart data object with all the values set to 0
61
- * @param seriesList The list of series names (identifiers) to update
62
- * @param currentTime=0] The current time
63
- * @return An empty chart data object
64
- */
65
- function initialChartData(seriesList, currentTime = 0) {
66
- const maxTime = seriesList.reduce((tMax, series) => Math.max(tMax, series.last().map(datum => datum.time).getOrElse(-Infinity)), -Infinity);
67
- return {
68
- seriesNames: new Set(seriesList.map(series => series.name)),
69
- maxTime,
70
- maxTimes: new Map(seriesList.map(series => [series.name, series.last().map(datum => datum.time).getOrElse(0)])),
71
- newPoints: new Map(seriesList.map(series => [
72
- series.name,
73
- [{
74
- time: series.last().map(datum => datum.time).getOrElse(0),
75
- value: series.last().map(datum => datum.value).getOrElse(0)
76
- }]
77
- ])),
78
- currentTime: currentTime
79
- };
80
- }
81
- /**
82
- * Creates random set of time-series data, essentially creating a random walk for each series
83
- * @param series The number of time-series for which to generate data (i.e. one for each neuron)
84
- * @param numPoints The number of points to generate
85
- * @param [updatePeriod=25] The time-interval between the generation of subsequent data points
86
- * @return An observable that produces data.
87
- */
88
- function sineDataObservable(series, numPoints = 10, updatePeriod = 25) {
89
- const seriesNames = series.map(series => series.name);
90
- const initialData = initialChartData(series);
91
- return range(0, numPoints).pipe(
92
- // convert the number sequence to a time
93
- map(sequence => sequence * updatePeriod),
94
- // create a new (time, value) for each series
95
- map(time => {
96
- if (time <= initialData.maxTime) {
97
- return initialData;
98
- }
99
- return sineData(time, numPoints * updatePeriod, seriesNames, initialData.maxTimes);
100
- }));
101
- }
102
- //# sourceMappingURL=ordinals.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ordinals.test.js","sourceRoot":"","sources":["../../../../src/app/charts/observables/ordinals.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,50 +0,0 @@
1
- import { emptySeries, seriesFrom } from "./baseSeries";
2
- describe('should be able to create an empty series', () => {
3
- test('an empty series should be empty', () => {
4
- expect(emptySeries('test1').isEmpty());
5
- });
6
- test('an empty series should not have a last element', () => {
7
- expect(emptySeries('test1').last().failed);
8
- });
9
- test('an empty series should have 0 length', () => {
10
- expect(emptySeries('test1').length()).toBe(0);
11
- });
12
- test('an empty series should not have any data', () => {
13
- expect(emptySeries('test1').data.length).toBe(0);
14
- });
15
- test('an empty series should have the specified name', () => {
16
- expect(emptySeries('test1').name).toBe('test1');
17
- });
18
- });
19
- describe('should be able to create a series from data', () => {
20
- const data = [
21
- { time: 1, value: 10 },
22
- { time: 2, value: 20 },
23
- { time: 3, value: 30 },
24
- { time: 4, value: 40 },
25
- { time: 5, value: 50 },
26
- { time: 6, value: 60 },
27
- { time: 7, value: 70 },
28
- { time: 8, value: 80 },
29
- { time: 9, value: 90 },
30
- { time: 10, value: 100 },
31
- ];
32
- const series = seriesFrom('test2', data);
33
- test('series should not be empty', () => {
34
- expect(!series.isEmpty());
35
- });
36
- test('series name should be test2', () => {
37
- expect(series.name).toEqual('test2');
38
- });
39
- test('series should have 10 points', () => {
40
- expect(series.length()).toBe(10);
41
- });
42
- test('last value in series should be (10, 100)', () => {
43
- const lastElement = series.last().getOrElse({ time: NaN, value: NaN });
44
- expect(lastElement).toEqual({ time: 10, value: 100 });
45
- });
46
- test('series data should equal original data', () => {
47
- expect(series.data).toEqual(data);
48
- });
49
- });
50
- //# sourceMappingURL=datumSeries.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"datumSeries.test.js","sourceRoot":"","sources":["../../../../src/app/charts/series/datumSeries.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,19 +0,0 @@
1
- import { plotDimensionsFrom, containerDimensionsFrom } from "./margins";
2
- describe('adjusted dimension should correct for margins', () => {
3
- const margins = { top: 11, bottom: 12, left: 13, right: 14 };
4
- const width = 100;
5
- const height = 200;
6
- const dimensions = plotDimensionsFrom(width, height, margins);
7
- test('adjusted width should have the left and right margins removed', () => {
8
- expect(dimensions.width).toBe(width - margins.right - margins.left);
9
- });
10
- test('adjusted height should have the top and bottom margins removed', () => {
11
- expect(dimensions.height).toBe(height - margins.top - margins.bottom);
12
- });
13
- test('should be able to get back the container dimensions after calculate the plot dimensions', () => {
14
- const { width: containerWidth, height: containerHeight } = containerDimensionsFrom(plotDimensionsFrom(width, height, margins), margins);
15
- expect(containerWidth).toBe(width);
16
- expect(containerHeight).toBe(height);
17
- });
18
- });
19
- //# sourceMappingURL=margins.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"margins.test.js","sourceRoot":"","sources":["../../../../src/app/charts/styling/margins.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAU,uBAAuB,EAAC,MAAM,WAAW,CAAC;AAE9E,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;IAC3D,MAAM,OAAO,GAAW,EAAC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;IACnE,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,MAAM,MAAM,GAAG,GAAG,CAAC;IACnB,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAE9D,IAAI,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yFAAyF,EAAE,GAAG,EAAE;QACjG,MAAM,EAAC,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAC,GAAG,uBAAuB,CAAC,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QACtI,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,395 +0,0 @@
1
- import { filter, map, scan } from 'rxjs/operators';
2
- import { range } from 'rxjs';
3
- import { iteratesObservable as iterateObservable } from '../observables/iterates';
4
- import { datumOf } from "../series/timeSeries";
5
- const pointFrom = (x, y) => ({ x, y });
6
- const emptyPoint = () => ({ x: NaN, y: NaN });
7
- const isEmptyPoint = (point) => point === undefined || (isNaN(point.x) && isNaN(point.y));
8
- const nonEmptyPoint = (point) => !isEmptyPoint(point);
9
- const initialAccumulate = (n = 1) => ({ n, previous: [] });
10
- /**
11
- * Source for {@link Point} data that generates `x`-values from a range of 1 to `numPoints` and
12
- * creates the `y`-values by applying the `valueFn` to those `x`-values.
13
- * @param numPoints The number of points to generate
14
- * @param valueFn The function that maps `x` to `y` (i.e. the value function is `f(x)` in `y = f(x)`)
15
- * @return an observable of {@link Point}
16
- */
17
- function pointsObservable(numPoints = 10, valueFn) {
18
- return range(1, numPoints).pipe(map(value => pointFrom(value, valueFn(value))));
19
- }
20
- /**
21
- *
22
- * @param n The number of points back from which to calculate the `n-difference`
23
- * @param dataObservable Observable that is the source of the underlying data
24
- * @param useStartX Whether to use the x-value from the beginning of the interval as the x-value
25
- * for the difference (default), or whether to use the last x-value in the interval.
26
- */
27
- function successiveDiffsObservable(n = 1, dataObservable, useStartX = true) {
28
- return dataObservable
29
- .pipe(scan(({ n, previous, }, current) => {
30
- // when we have accumulated enough previous values to cover the "n-difference",
31
- // we can calculate an actual difference
32
- if (previous.length >= n) {
33
- // add the new point, and take the first point from the beginning
34
- previous.push(current);
35
- const first = previous.shift() || emptyPoint();
36
- // calculate the n-difference, using the x-value of the initial point (default)
37
- // or the current point (end of current time-range
38
- const difference = pointFrom(useStartX ? first.x : current.x, current.y - first.y);
39
- return { n, previous, difference };
40
- }
41
- // not enough points yet, so just accumulate the current point
42
- previous.push(current);
43
- return { n, previous };
44
- }, initialAccumulate(n)), filter(accum => nonEmptyPoint(accum.difference)), map(accum => accum.difference === undefined ? emptyPoint() : accum.difference));
45
- }
46
- describe('should be able to calculate successive differences', () => {
47
- test('should be able to calc successive-diffs for x^2 where x is in 1..10', done => {
48
- let results = [];
49
- successiveDiffsObservable(1, pointsObservable(10, x => x * x), true).subscribe(point => results.push(point));
50
- done();
51
- expect(results).toHaveLength(9);
52
- expect(results).toEqual([
53
- { x: 1, y: 3 },
54
- { x: 2, y: 5 },
55
- { x: 3, y: 7 },
56
- { x: 4, y: 9 },
57
- { x: 5, y: 11 },
58
- { x: 6, y: 13 },
59
- { x: 7, y: 15 },
60
- { x: 8, y: 17 },
61
- { x: 9, y: 19 },
62
- ]);
63
- });
64
- test('should be able to calc successive-diffs for x^2 where x is in 1..10 using interval end', done => {
65
- let results = [];
66
- successiveDiffsObservable(1, pointsObservable(10, x => x * x), false).subscribe(point => results.push(point));
67
- done();
68
- expect(results).toHaveLength(9);
69
- expect(results).toEqual([
70
- { x: 2, y: 3 },
71
- { x: 3, y: 5 },
72
- { x: 4, y: 7 },
73
- { x: 5, y: 9 },
74
- { x: 6, y: 11 },
75
- { x: 7, y: 13 },
76
- { x: 8, y: 15 },
77
- { x: 9, y: 17 },
78
- { x: 10, y: 19 },
79
- ]);
80
- });
81
- test('should be able to calc 3-diffs for x^2 where x is in 1..10', done => {
82
- let results = [];
83
- successiveDiffsObservable(3, pointsObservable(10, x => x * x), true).subscribe(point => results.push(point));
84
- done();
85
- expect(results).toHaveLength(7);
86
- expect(results).toEqual([
87
- { x: 1, y: 15 },
88
- { x: 2, y: 21 },
89
- { x: 3, y: 27 },
90
- { x: 4, y: 33 },
91
- { x: 5, y: 39 },
92
- { x: 6, y: 45 },
93
- { x: 7, y: 51 },
94
- ]);
95
- });
96
- test('should be able to calc 3-diffs for x^2 where x is in 1..10 using interval end', done => {
97
- let results = [];
98
- successiveDiffsObservable(3, pointsObservable(10, x => x * x), false).subscribe(point => results.push(point));
99
- done();
100
- expect(results).toHaveLength(7);
101
- expect(results).toEqual([
102
- { x: 4, y: 15 },
103
- { x: 5, y: 21 },
104
- { x: 6, y: 27 },
105
- { x: 7, y: 33 },
106
- { x: 8, y: 39 },
107
- { x: 9, y: 45 },
108
- { x: 10, y: 51 },
109
- ]);
110
- });
111
- });
112
- /**
113
- * Observable that converts data points into iterates for poincare plots where one plots x(j+n) vs x(j)
114
- * @param n The n-th iterate for plotting x(j+n) vs x(j)
115
- * @param dataObservable The observable with the point data
116
- * @return an observable of a stream of {@link Point}s
117
- */
118
- function iteratesObservable(n = 1, dataObservable) {
119
- return dataObservable
120
- .pipe(scan(({ n, previous, }, current) => {
121
- // when we have accumulated enough previous values to cover the "n-iterate",
122
- // we can grab the y-value from the n-th point back
123
- if (previous.length >= n) {
124
- // add the new point, and take the first point from the beginning
125
- previous.push(pointFrom(previous[previous.length - 1].y, current.y));
126
- const first = previous.shift() || emptyPoint();
127
- // calculate the n-difference, using the x-value of the initial point (default)
128
- // or the current point (end of current time-range
129
- const iterate = pointFrom(first.y, current.y);
130
- return { n, previous, difference: iterate };
131
- }
132
- // not enough points yet, so just accumulate the current point
133
- previous.push(current);
134
- return { n, previous };
135
- }, initialAccumulate(n)), filter(accum => nonEmptyPoint(accum.difference)), map(accum => accum.difference === undefined ? emptyPoint() : accum.difference));
136
- }
137
- function tentFn(x, mu = 1) {
138
- return x < 0.5 ? mu * x : mu * (1 - x);
139
- }
140
- describe('should be able to calculate iterates', () => {
141
- test('should be able to calc 1-iterates for x^2 where x is in 1..10', done => {
142
- let results = [];
143
- iteratesObservable(1, pointsObservable(10, x => 2 * x)).subscribe(point => results.push(point));
144
- done();
145
- expect(results).toHaveLength(9);
146
- expect(results).toEqual([
147
- { x: 2, y: 4 },
148
- { x: 4, y: 6 },
149
- { x: 6, y: 8 },
150
- { x: 8, y: 10 },
151
- { x: 10, y: 12 },
152
- { x: 12, y: 14 },
153
- { x: 14, y: 16 },
154
- { x: 16, y: 18 },
155
- { x: 18, y: 20 }
156
- ]);
157
- });
158
- test('should be able to calc 3-iterates for x^2 where x is in 1..10', done => {
159
- let results = [];
160
- iteratesObservable(3, pointsObservable(10, x => 2 * x)).subscribe(point => results.push(point));
161
- done();
162
- expect(results).toHaveLength(7);
163
- expect(results).toEqual([
164
- { x: 2, y: 8 },
165
- { x: 4, y: 10 },
166
- { x: 6, y: 12 },
167
- { x: 8, y: 14 },
168
- { x: 10, y: 16 },
169
- { x: 12, y: 18 },
170
- { x: 14, y: 20 }
171
- ]);
172
- });
173
- test('tent map should converge to (0, 0) for mu < 1', done => {
174
- const numPoints = 100000;
175
- let lastPoint = emptyPoint();
176
- iteratesObservable(1, range(0, numPoints).pipe(map(x => pointFrom(x, tentFn(x / numPoints, 0.15)))))
177
- .subscribe(point => lastPoint = point);
178
- done();
179
- expect(lastPoint.y).toBeLessThan(1e-5);
180
- expect(lastPoint.x).toBeLessThan(1e-5);
181
- });
182
- });
183
- describe('when calculating tent-map iterates with one new data point for each event', () => {
184
- test('should be able to calc 1-iterates for tent-map chart data, when 1 point is added at a time', done => {
185
- const numPoints = 10;
186
- let results = [];
187
- iterateObservable(range(0, numPoints).pipe(map(x => ({
188
- maxTime: x,
189
- maxTimes: new Map([['test1', x]]),
190
- newPoints: new Map([['test1', [datumOf(x, tentFn(x / numPoints, 0.15))]]])
191
- })))).subscribe(point => results.push(point));
192
- done();
193
- expect(results).toHaveLength(9);
194
- //
195
- // check the first iterate datum
196
- expect(results[0].minIterate.iterateN).toEqual(0);
197
- expect(results[0].minIterate.iterateN_1).toEqual(0.015);
198
- expect(results[0].maxIterate.iterateN).toEqual(0);
199
- expect(results[0].maxIterate.iterateN_1).toEqual(0.015);
200
- expect(results[0].minIterates.has("test1")).toBe(true);
201
- expect(results[0].minIterates.size).toEqual(1);
202
- expect(results[0].minIterates.get("test1").time).toEqual(0);
203
- expect(results[0].minIterates.get("test1").iterateN).toEqual(0);
204
- expect(results[0].minIterates.get("test1").iterateN_1).toEqual(0.015);
205
- expect(results[0].maxIterates.has("test1")).toBe(true);
206
- expect(results[0].maxIterates.size).toEqual(1);
207
- expect(results[0].maxIterates.get("test1").time).toEqual(0);
208
- expect(results[0].maxIterates.get("test1").iterateN).toBeCloseTo(0, 4);
209
- expect(results[0].maxIterates.get("test1").iterateN_1).toBeCloseTo(0.015, 4);
210
- // check that the accumulator "newPoints" holds the previous "newPoints" for the iterate
211
- expect(results[0].newPoints.has("test1")).toBe(true);
212
- expect(results[0].newPoints.get("test1")).toHaveLength(1);
213
- expect(results[0].newPoints.get("test1")[0].time).toEqual(0);
214
- expect(results[0].newPoints.get("test1")[0].iterateN).toEqual(0);
215
- expect(results[0].newPoints.get("test1")[0].iterateN_1).toBeCloseTo(0.015, 4);
216
- //
217
- // check the last iterate datum
218
- expect(results[8].minIterate.time).toEqual(8);
219
- expect(results[8].minIterate.iterateN).toEqual(0);
220
- expect(results[8].minIterate.iterateN_1).toBeCloseTo(0.015, 4);
221
- expect(results[8].maxIterate.time).toEqual(5);
222
- expect(results[8].maxIterate.iterateN).toBeCloseTo(0.075, 4);
223
- expect(results[8].maxIterate.iterateN_1).toBeCloseTo(0.075, 4);
224
- expect(results[8].minIterates.has("test1")).toBe(true);
225
- expect(results[8].minIterates.size).toEqual(1);
226
- expect(results[8].minIterates.get("test1").time).toEqual(8);
227
- expect(results[8].minIterates.get("test1").iterateN).toEqual(0);
228
- expect(results[8].minIterates.get("test1").iterateN_1).toBeCloseTo(0.015, 4);
229
- expect(results[8].maxIterates.has("test1")).toBe(true);
230
- expect(results[8].maxIterates.size).toEqual(1);
231
- expect(results[8].maxIterates.get("test1").time).toEqual(5);
232
- expect(results[8].maxIterates.get("test1").iterateN).toBeCloseTo(0.075, 4);
233
- expect(results[8].maxIterates.get("test1").iterateN_1).toBeCloseTo(0.075, 4);
234
- // check that the accumulator "newPoints" holds the previous "newPoints" for the iterate
235
- expect(results[8].newPoints.has("test1")).toBe(true);
236
- expect(results[8].newPoints.get("test1")).toHaveLength(1);
237
- expect(results[8].newPoints.get("test1")[0].time).toEqual(8);
238
- expect(results[8].newPoints.get("test1")[0].iterateN).toBeCloseTo(0.03, 4);
239
- expect(results[8].newPoints.get("test1")[0].iterateN_1).toBeCloseTo(0.015, 4);
240
- });
241
- });
242
- describe('when calculating tent-map 1-iterates with two new data points for each event', () => {
243
- test('should be able to calc iterates for tent-map chart data, when 2 points are added at a time', done => {
244
- const numPoints = 5;
245
- let results = [];
246
- iterateObservable(range(0, numPoints)
247
- .pipe(map(x => ({
248
- maxTime: 2 * x,
249
- maxTimes: new Map([['test1', 2 * x]]),
250
- newPoints: new Map([
251
- ['test1', [datumOf(2 * x, tentFn(2 * x / (2 * numPoints), 0.15)), datumOf(2 * x + 1, tentFn((2 * x + 1) / (2 * numPoints), 0.15))]],
252
- ])
253
- }))))
254
- .subscribe(result => results.push(result));
255
- done();
256
- expect(results).toHaveLength(5);
257
- expect(results.reduce((count, result) => result.newPoints.get("test1").length + count, 0)).toEqual(9);
258
- //
259
- // check the first iterate datum
260
- expect(results[0].minIterate.iterateN).toBeCloseTo(0, 4);
261
- expect(results[0].minIterate.iterateN_1).toBeCloseTo(0.015, 4);
262
- expect(results[0].maxIterate.iterateN).toBeCloseTo(0, 4);
263
- expect(results[0].maxIterate.iterateN_1).toBeCloseTo(0.015, 4);
264
- expect(results[0].minIterates.has("test1")).toBe(true);
265
- expect(results[0].minIterates.size).toEqual(1);
266
- expect(results[0].minIterates.get("test1").time).toBeCloseTo(0, 4);
267
- expect(results[0].minIterates.get("test1").iterateN).toBeCloseTo(0, 4);
268
- expect(results[0].minIterates.get("test1").iterateN_1).toBeCloseTo(0.015, 4);
269
- expect(results[0].maxIterates.has("test1")).toBe(true);
270
- expect(results[0].maxIterates.size).toEqual(1);
271
- expect(results[0].maxIterates.get("test1").time).toEqual(0);
272
- expect(results[0].maxIterates.get("test1").iterateN).toBeCloseTo(0, 4);
273
- expect(results[0].maxIterates.get("test1").iterateN_1).toBeCloseTo(0.015, 4);
274
- // check that the accumulator "newPoints" holds the previous "newPoints" for the iterate
275
- expect(results[0].newPoints.has("test1")).toBe(true);
276
- expect(results[0].newPoints.get("test1")).toHaveLength(1);
277
- expect(results[0].newPoints.get("test1")[0].time).toEqual(0);
278
- expect(results[0].newPoints.get("test1")[0].iterateN).toEqual(0);
279
- expect(results[0].newPoints.get("test1")[0].iterateN_1).toBeCloseTo(0.015, 4);
280
- //
281
- // check the last iterate datum
282
- expect(results[4].minIterate.time).toEqual(8);
283
- expect(results[4].minIterate.iterateN).toEqual(0);
284
- expect(results[4].minIterate.iterateN_1).toBeCloseTo(0.015, 4);
285
- expect(results[4].maxIterate.time).toEqual(5);
286
- expect(results[4].maxIterate.iterateN).toBeCloseTo(0.075, 4);
287
- expect(results[4].maxIterate.iterateN_1).toBeCloseTo(0.075, 4);
288
- expect(results[4].minIterates.size).toEqual(1);
289
- expect(results[4].minIterates.has("test1")).toBe(true);
290
- expect(results[4].minIterates.get("test1").time).toEqual(8);
291
- expect(results[4].minIterates.get("test1").iterateN).toEqual(0);
292
- expect(results[4].minIterates.get("test1").iterateN_1).toBeCloseTo(0.015, 4);
293
- expect(results[4].maxIterates.size).toEqual(1);
294
- expect(results[4].maxIterates.has("test1")).toBe(true);
295
- expect(results[4].maxIterates.get("test1").time).toEqual(5);
296
- expect(results[4].maxIterates.get("test1").iterateN).toBeCloseTo(0.075, 4);
297
- expect(results[4].maxIterates.get("test1").iterateN_1).toBeCloseTo(0.075, 4);
298
- // check that the accumulator "newPoints" holds the previous "newPoints" for the iterate
299
- expect(results[4].newPoints.has("test1")).toBe(true);
300
- expect(results[4].newPoints.get("test1")).toHaveLength(2);
301
- expect(results[4].newPoints.get("test1")[1].time).toEqual(8);
302
- expect(results[4].newPoints.get("test1")[1].iterateN).toBeCloseTo(0.03, 4);
303
- expect(results[4].newPoints.get("test1")[1].iterateN_1).toBeCloseTo(0.015, 4);
304
- });
305
- test('should be able to calc iterates for tent-map chart data, when 2 points are added at a time, with 2 series', done => {
306
- const numPoints = 5;
307
- let results = [];
308
- iterateObservable(range(0, numPoints)
309
- .pipe(map(x => ({
310
- maxTime: 2 * x,
311
- maxTimes: new Map([['test1', 2 * x]]),
312
- newPoints: new Map([
313
- ['test1', [datumOf(2 * x, tentFn(2 * x / (2 * numPoints), 0.15)), datumOf(2 * x + 1, tentFn((2 * x + 1) / (2 * numPoints), 0.15))]],
314
- ['test2', [datumOf(2 * x, tentFn(2 * x / (2 * numPoints), 0.35)), datumOf(2 * x + 1, tentFn((2 * x + 1) / (2 * numPoints), 0.35))]],
315
- ])
316
- }))))
317
- .subscribe(result => results.push(result));
318
- done();
319
- expect(results).toHaveLength(5);
320
- expect(results.reduce((count, result) => result.newPoints.get("test1").length + count, 0)).toEqual(9);
321
- //
322
- // check the first iterate datum
323
- expect(results[0].minIterate.iterateN).toBeCloseTo(0, 4);
324
- expect(results[0].minIterate.iterateN_1).toBeCloseTo(0.015, 4);
325
- expect(results[0].maxIterate.iterateN).toBeCloseTo(0, 4);
326
- expect(results[0].maxIterate.iterateN_1).toBeCloseTo(0.035, 4);
327
- expect(results[0].minIterates.size).toEqual(2);
328
- expect(results[0].minIterates.has("test1")).toBe(true);
329
- expect(results[0].minIterates.get("test1").time).toBeCloseTo(0, 4);
330
- expect(results[0].minIterates.get("test1").iterateN).toBeCloseTo(0, 4);
331
- expect(results[0].minIterates.get("test1").iterateN_1).toBeCloseTo(0.015, 4);
332
- expect(results[0].minIterates.has("test2")).toBe(true);
333
- expect(results[0].minIterates.get("test2").time).toBeCloseTo(0, 4);
334
- expect(results[0].minIterates.get("test2").iterateN).toBeCloseTo(0, 4);
335
- expect(results[0].minIterates.get("test2").iterateN_1).toBeCloseTo(0.035, 4);
336
- expect(results[0].maxIterates.size).toEqual(2);
337
- expect(results[0].maxIterates.has("test1")).toBe(true);
338
- expect(results[0].maxIterates.get("test1").time).toEqual(0);
339
- expect(results[0].maxIterates.get("test1").iterateN).toBeCloseTo(0, 4);
340
- expect(results[0].maxIterates.get("test1").iterateN_1).toBeCloseTo(0.015, 4);
341
- expect(results[0].maxIterates.has("test2")).toBe(true);
342
- expect(results[0].maxIterates.get("test2").time).toEqual(0);
343
- expect(results[0].maxIterates.get("test2").iterateN).toBeCloseTo(0, 4);
344
- expect(results[0].maxIterates.get("test2").iterateN_1).toBeCloseTo(0.035, 4);
345
- // check that the accumulator "newPoints" holds the previous "newPoints" for the iterate
346
- expect(results[0].newPoints.has("test1")).toBe(true);
347
- expect(results[0].newPoints.get("test1")).toHaveLength(1);
348
- expect(results[0].newPoints.get("test1")[0].time).toEqual(0);
349
- expect(results[0].newPoints.get("test1")[0].iterateN).toEqual(0);
350
- expect(results[0].newPoints.get("test1")[0].iterateN_1).toBeCloseTo(0.015, 4);
351
- expect(results[0].newPoints.has("test2")).toBe(true);
352
- expect(results[0].newPoints.get("test2")).toHaveLength(1);
353
- expect(results[0].newPoints.get("test2")[0].time).toEqual(0);
354
- expect(results[0].newPoints.get("test2")[0].iterateN).toEqual(0);
355
- expect(results[0].newPoints.get("test2")[0].iterateN_1).toBeCloseTo(0.035, 4);
356
- //
357
- // check the last iterate datum
358
- expect(results[4].minIterate.time).toEqual(8);
359
- expect(results[4].minIterate.iterateN).toEqual(0);
360
- expect(results[4].minIterate.iterateN_1).toBeCloseTo(0.015, 4);
361
- expect(results[4].maxIterate.time).toEqual(5);
362
- expect(results[4].maxIterate.iterateN).toBeCloseTo(0.175, 4);
363
- expect(results[4].maxIterate.iterateN_1).toBeCloseTo(0.175, 4);
364
- expect(results[4].minIterates.size).toEqual(2);
365
- expect(results[4].minIterates.has("test1")).toBe(true);
366
- expect(results[4].minIterates.get("test1").time).toEqual(8);
367
- expect(results[4].minIterates.get("test1").iterateN).toEqual(0);
368
- expect(results[4].minIterates.get("test1").iterateN_1).toBeCloseTo(0.015, 4);
369
- expect(results[4].minIterates.has("test2")).toBe(true);
370
- expect(results[4].minIterates.get("test2").time).toEqual(8);
371
- expect(results[4].minIterates.get("test2").iterateN).toEqual(0);
372
- expect(results[4].minIterates.get("test2").iterateN_1).toBeCloseTo(0.035, 4);
373
- expect(results[4].maxIterates.size).toEqual(2);
374
- expect(results[4].maxIterates.has("test1")).toBe(true);
375
- expect(results[4].maxIterates.get("test1").time).toEqual(5);
376
- expect(results[4].maxIterates.get("test1").iterateN).toBeCloseTo(0.075, 4);
377
- expect(results[4].maxIterates.get("test1").iterateN_1).toBeCloseTo(0.075, 4);
378
- expect(results[4].maxIterates.has("test2")).toBe(true);
379
- expect(results[4].maxIterates.get("test2").time).toEqual(5);
380
- expect(results[4].maxIterates.get("test2").iterateN).toBeCloseTo(0.175, 4);
381
- expect(results[4].maxIterates.get("test2").iterateN_1).toBeCloseTo(0.175, 4);
382
- // check that the accumulator "newPoints" holds the previous "newPoints" for the iterate
383
- expect(results[4].newPoints.has("test1")).toBe(true);
384
- expect(results[4].newPoints.get("test1")).toHaveLength(2);
385
- expect(results[4].newPoints.get("test1")[1].time).toEqual(8);
386
- expect(results[4].newPoints.get("test1")[1].iterateN).toBeCloseTo(0.03, 4);
387
- expect(results[4].newPoints.get("test1")[1].iterateN_1).toBeCloseTo(0.015, 4);
388
- expect(results[4].newPoints.has("test2")).toBe(true);
389
- expect(results[4].newPoints.get("test2")).toHaveLength(2);
390
- expect(results[4].newPoints.get("test2")[1].time).toEqual(8);
391
- expect(results[4].newPoints.get("test2")[1].iterateN).toBeCloseTo(0.07, 4);
392
- expect(results[4].newPoints.get("test2")[1].iterateN_1).toBeCloseTo(0.035, 4);
393
- });
394
- });
395
- //# sourceMappingURL=subscription.test.js.map