stream-charts 1.0.1 → 1.1.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 (271) hide show
  1. package/README.md +756 -343
  2. package/changes.md +7 -0
  3. package/dist/src/app/charts/Chart.d.ts +116 -87
  4. package/dist/src/app/charts/Chart.js +96 -101
  5. package/dist/src/app/charts/Chart.js.map +1 -1
  6. package/dist/src/app/charts/axes/AxesState.d.ts +64 -0
  7. package/dist/src/app/charts/axes/AxesState.js +97 -0
  8. package/dist/src/app/charts/axes/AxesState.js.map +1 -0
  9. package/dist/src/app/charts/axes/AxesState.test.js +30 -0
  10. package/dist/src/app/charts/axes/AxesState.test.js.map +1 -0
  11. package/dist/src/app/charts/axes/AxisInterval.d.ts +92 -0
  12. package/dist/src/app/charts/axes/AxisInterval.js +126 -0
  13. package/dist/src/app/charts/axes/AxisInterval.js.map +1 -0
  14. package/dist/src/app/charts/axes/AxisInterval.test.js +120 -0
  15. package/dist/src/app/charts/axes/AxisInterval.test.js.map +1 -0
  16. package/dist/src/app/charts/axes/BaseAxisRange.d.ts +83 -0
  17. package/dist/src/app/charts/axes/BaseAxisRange.js +58 -0
  18. package/dist/src/app/charts/axes/BaseAxisRange.js.map +1 -0
  19. package/dist/src/app/charts/axes/ContinuousAxis.d.ts +22 -0
  20. package/dist/src/app/charts/axes/ContinuousAxis.js +96 -0
  21. package/dist/src/app/charts/axes/ContinuousAxis.js.map +1 -0
  22. package/dist/src/app/charts/axes/ContinuousAxisRange.d.ts +59 -0
  23. package/dist/src/app/charts/axes/ContinuousAxisRange.js +84 -0
  24. package/dist/src/app/charts/axes/ContinuousAxisRange.js.map +1 -0
  25. package/dist/src/app/charts/axes/ContinuousAxisRange.test.js +47 -0
  26. package/dist/src/app/charts/axes/ContinuousAxisRange.test.js.map +1 -0
  27. package/dist/src/app/charts/axes/OrdinalAxis.d.ts +23 -0
  28. package/dist/src/app/charts/axes/OrdinalAxis.js +124 -0
  29. package/dist/src/app/charts/axes/OrdinalAxis.js.map +1 -0
  30. package/dist/src/app/charts/axes/OrdinalAxisRange.d.ts +69 -0
  31. package/dist/src/app/charts/axes/OrdinalAxisRange.js +100 -0
  32. package/dist/src/app/charts/axes/OrdinalAxisRange.js.map +1 -0
  33. package/dist/src/app/charts/axes/OrdinalAxisRange.test.js +48 -0
  34. package/dist/src/app/charts/axes/OrdinalAxisRange.test.js.map +1 -0
  35. package/dist/src/app/charts/axes/axes.d.ts +391 -0
  36. package/dist/src/app/charts/axes/axes.js +1046 -0
  37. package/dist/src/app/charts/axes/axes.js.map +1 -0
  38. package/dist/src/app/charts/d3types.d.ts +10 -10
  39. package/dist/src/app/charts/filters/regexFilter.d.ts +9 -0
  40. package/dist/src/app/charts/filters/regexFilter.js +18 -0
  41. package/dist/src/app/charts/filters/regexFilter.js.map +1 -0
  42. package/dist/src/app/charts/filters/regexFilter.test.d.ts +1 -0
  43. package/dist/src/app/charts/filters/regexFilter.test.js +11 -0
  44. package/dist/src/app/charts/filters/regexFilter.test.js.map +1 -0
  45. package/dist/src/app/charts/hooks/useAxes.d.ts +144 -0
  46. package/dist/src/app/charts/hooks/useAxes.js +187 -0
  47. package/dist/src/app/charts/hooks/useAxes.js.map +1 -0
  48. package/dist/src/app/charts/hooks/useChart.d.ts +30 -201
  49. package/dist/src/app/charts/hooks/useChart.js +33 -134
  50. package/dist/src/app/charts/hooks/useChart.js.map +1 -1
  51. package/dist/src/app/charts/hooks/useDataObservable.d.ts +74 -0
  52. package/dist/src/app/charts/hooks/useDataObservable.js +76 -0
  53. package/dist/src/app/charts/hooks/useDataObservable.js.map +1 -0
  54. package/dist/src/app/charts/hooks/useInitialData.d.ts +38 -0
  55. package/dist/src/app/charts/hooks/useInitialData.js +29 -0
  56. package/dist/src/app/charts/hooks/useInitialData.js.map +1 -0
  57. package/dist/src/app/charts/hooks/useMouse.d.ts +53 -0
  58. package/dist/src/app/charts/hooks/useMouse.js +65 -0
  59. package/dist/src/app/charts/hooks/useMouse.js.map +1 -0
  60. package/dist/src/app/charts/hooks/usePlotDimensions.d.ts +34 -0
  61. package/dist/src/app/charts/hooks/usePlotDimensions.js +73 -0
  62. package/dist/src/app/charts/hooks/usePlotDimensions.js.map +1 -0
  63. package/dist/src/app/charts/hooks/useTooltip.d.ts +64 -0
  64. package/dist/src/app/charts/hooks/useTooltip.js +52 -0
  65. package/dist/src/app/charts/hooks/useTooltip.js.map +1 -0
  66. package/dist/src/app/charts/observables/ChartData.d.ts +23 -0
  67. package/dist/src/app/charts/observables/ChartData.js +20 -0
  68. package/dist/src/app/charts/observables/ChartData.js.map +1 -0
  69. package/dist/src/app/charts/observables/iterates.d.ts +52 -0
  70. package/dist/src/app/charts/observables/iterates.js +121 -0
  71. package/dist/src/app/charts/observables/iterates.js.map +1 -0
  72. package/dist/src/app/charts/observables/iterates.test.d.ts +1 -0
  73. package/dist/src/app/charts/observables/iterates.test.js +180 -0
  74. package/dist/src/app/charts/observables/iterates.test.js.map +1 -0
  75. package/dist/src/app/charts/observables/ordinals.d.ts +75 -0
  76. package/dist/src/app/charts/observables/ordinals.js +141 -0
  77. package/dist/src/app/charts/observables/ordinals.js.map +1 -0
  78. package/dist/src/app/charts/observables/ordinals.test.d.ts +1 -0
  79. package/dist/src/app/charts/observables/ordinals.test.js +102 -0
  80. package/dist/src/app/charts/observables/ordinals.test.js.map +1 -0
  81. package/dist/src/app/charts/plots/BarPlot.d.ts +81 -0
  82. package/dist/src/app/charts/plots/BarPlot.js +557 -0
  83. package/dist/src/app/charts/plots/BarPlot.js.map +1 -0
  84. package/dist/src/app/charts/plots/PoincarePlot.d.ts +78 -0
  85. package/dist/src/app/charts/plots/PoincarePlot.js +504 -0
  86. package/dist/src/app/charts/plots/PoincarePlot.js.map +1 -0
  87. package/dist/src/app/charts/{RasterPlot.d.ts → plots/RasterPlot.d.ts} +1 -1
  88. package/dist/src/app/charts/{RasterPlot.js → plots/RasterPlot.js} +152 -133
  89. package/dist/src/app/charts/plots/RasterPlot.js.map +1 -0
  90. package/dist/src/app/charts/{ScatterPlot.d.ts → plots/ScatterPlot.d.ts} +10 -8
  91. package/dist/src/app/charts/plots/ScatterPlot.js +379 -0
  92. package/dist/src/app/charts/plots/ScatterPlot.js.map +1 -0
  93. package/dist/src/app/charts/{plot.d.ts → plots/plot.d.ts} +12 -14
  94. package/dist/src/app/charts/{plot.js → plots/plot.js} +19 -17
  95. package/dist/src/app/charts/plots/plot.js.map +1 -0
  96. package/dist/src/app/charts/series/baseSeries.d.ts +38 -0
  97. package/dist/src/app/charts/series/baseSeries.js +36 -0
  98. package/dist/src/app/charts/series/baseSeries.js.map +1 -0
  99. package/dist/src/app/charts/series/datumSeries.test.d.ts +1 -0
  100. package/dist/src/app/charts/series/datumSeries.test.js +50 -0
  101. package/dist/src/app/charts/series/datumSeries.test.js.map +1 -0
  102. package/dist/src/app/charts/series/iterateSeries.d.ts +42 -0
  103. package/dist/src/app/charts/series/iterateSeries.js +34 -0
  104. package/dist/src/app/charts/series/iterateSeries.js.map +1 -0
  105. package/dist/src/app/charts/series/ordinalSeries.d.ts +54 -0
  106. package/dist/src/app/charts/series/ordinalSeries.js +98 -0
  107. package/dist/src/app/charts/series/ordinalSeries.js.map +1 -0
  108. package/dist/src/app/charts/series/timeSeries.d.ts +30 -0
  109. package/dist/src/app/charts/series/timeSeries.js +19 -0
  110. package/dist/src/app/charts/series/timeSeries.js.map +1 -0
  111. package/dist/src/app/charts/{chartData.d.ts → series/timeSeriesChartData.d.ts} +11 -6
  112. package/dist/src/app/charts/series/timeSeriesChartData.js +32 -0
  113. package/dist/src/app/charts/series/timeSeriesChartData.js.map +1 -0
  114. package/dist/src/app/charts/styling/barPlotStyle.d.ts +41 -0
  115. package/dist/src/app/charts/styling/barPlotStyle.js +84 -0
  116. package/dist/src/app/charts/styling/barPlotStyle.js.map +1 -0
  117. package/dist/src/app/charts/{margins.d.ts → styling/margins.d.ts} +7 -5
  118. package/dist/src/app/charts/{margins.js → styling/margins.js} +19 -9
  119. package/dist/src/app/charts/styling/margins.js.map +1 -0
  120. package/dist/src/app/charts/styling/margins.test.d.ts +1 -0
  121. package/dist/src/app/charts/styling/margins.test.js +19 -0
  122. package/dist/src/app/charts/styling/margins.test.js.map +1 -0
  123. package/dist/src/app/charts/styling/svgStyle.d.ts +76 -0
  124. package/dist/src/app/charts/styling/svgStyle.js +84 -0
  125. package/dist/src/app/charts/styling/svgStyle.js.map +1 -0
  126. package/dist/src/app/charts/subscriptions/subscription.test.d.ts +1 -0
  127. package/dist/src/app/charts/subscriptions/subscription.test.js +395 -0
  128. package/dist/src/app/charts/subscriptions/subscription.test.js.map +1 -0
  129. package/dist/src/app/charts/subscriptions/subscriptions.d.ts +100 -0
  130. package/dist/src/app/charts/subscriptions/subscriptions.js +449 -0
  131. package/dist/src/app/charts/subscriptions/subscriptions.js.map +1 -0
  132. package/dist/src/app/charts/tooltips/BarPlotTooltipContent.d.ts +90 -0
  133. package/dist/src/app/charts/tooltips/BarPlotTooltipContent.js +302 -0
  134. package/dist/src/app/charts/tooltips/BarPlotTooltipContent.js.map +1 -0
  135. package/dist/src/app/charts/tooltips/PoincarePlotTooltipContent.d.ts +100 -0
  136. package/dist/src/app/charts/tooltips/PoincarePlotTooltipContent.js +190 -0
  137. package/dist/src/app/charts/tooltips/PoincarePlotTooltipContent.js.map +1 -0
  138. package/dist/src/app/charts/{RasterPlotTooltipContent.js → tooltips/RasterPlotTooltipContent.js} +40 -44
  139. package/dist/src/app/charts/tooltips/RasterPlotTooltipContent.js.map +1 -0
  140. package/dist/src/app/charts/tooltips/ScatterPlotTooltipContent.js +154 -0
  141. package/dist/src/app/charts/tooltips/ScatterPlotTooltipContent.js.map +1 -0
  142. package/dist/src/app/charts/{Tooltip.d.ts → tooltips/Tooltip.d.ts} +4 -2
  143. package/dist/src/app/charts/{Tooltip.js → tooltips/Tooltip.js} +23 -28
  144. package/dist/src/app/charts/tooltips/Tooltip.js.map +1 -0
  145. package/dist/src/app/charts/{tooltipUtils.d.ts → tooltips/tooltipUtils.d.ts} +11 -6
  146. package/dist/src/app/charts/{tooltipUtils.js → tooltips/tooltipUtils.js} +33 -17
  147. package/dist/src/app/charts/tooltips/tooltipUtils.js.map +1 -0
  148. package/dist/src/app/charts/{Tracker.d.ts → trackers/Tracker.d.ts} +6 -5
  149. package/dist/src/app/charts/trackers/Tracker.js +60 -0
  150. package/dist/src/app/charts/trackers/Tracker.js.map +1 -0
  151. package/dist/src/app/charts/{trackerUtils.d.ts → trackers/trackerUtils.d.ts} +13 -8
  152. package/dist/src/app/charts/trackers/trackerUtils.js +359 -0
  153. package/dist/src/app/charts/trackers/trackerUtils.js.map +1 -0
  154. package/dist/src/app/charts/utils.d.ts +22 -32
  155. package/dist/src/app/charts/utils.js +36 -37
  156. package/dist/src/app/charts/utils.js.map +1 -1
  157. package/dist/src/index.d.ts +48 -15
  158. package/dist/src/index.js +71 -15
  159. package/dist/src/index.js.map +1 -1
  160. package/package.json +30 -20
  161. package/src/app/charts/Chart.tsx +334 -0
  162. package/src/app/charts/axes/AxesState.test.ts +34 -0
  163. package/src/app/charts/axes/AxesState.ts +112 -0
  164. package/src/app/charts/axes/AxisInterval.test.ts +143 -0
  165. package/src/app/charts/axes/AxisInterval.ts +139 -0
  166. package/src/app/charts/axes/BaseAxisRange.ts +113 -0
  167. package/src/app/charts/axes/ContinuousAxis.tsx +192 -0
  168. package/src/app/charts/axes/ContinuousAxisRange.test.ts +55 -0
  169. package/src/app/charts/axes/ContinuousAxisRange.ts +96 -0
  170. package/src/app/charts/axes/OrdinalAxis.tsx +223 -0
  171. package/src/app/charts/axes/OrdinalAxisRange.test.ts +55 -0
  172. package/src/app/charts/axes/OrdinalAxisRange.ts +112 -0
  173. package/src/app/charts/axes/axes.ts +1569 -0
  174. package/src/app/charts/d3types.ts +16 -0
  175. package/src/app/charts/filters/regexFilter.test.ts +13 -0
  176. package/src/app/charts/filters/regexFilter.ts +17 -0
  177. package/src/app/charts/hooks/useAxes.tsx +341 -0
  178. package/src/app/charts/hooks/useChart.tsx +159 -0
  179. package/src/app/charts/hooks/useDataObservable.tsx +175 -0
  180. package/src/app/charts/hooks/useInitialData.tsx +65 -0
  181. package/src/app/charts/hooks/useMouse.tsx +125 -0
  182. package/src/app/charts/hooks/usePlotDimensions.tsx +120 -0
  183. package/src/app/charts/hooks/useTooltip.tsx +112 -0
  184. package/src/app/charts/observables/ChartData.ts +31 -0
  185. package/src/app/charts/observables/iterates.test.ts +201 -0
  186. package/src/app/charts/observables/iterates.ts +203 -0
  187. package/src/app/charts/observables/ordinals.test.ts +135 -0
  188. package/src/app/charts/observables/ordinals.ts +248 -0
  189. package/src/app/charts/plots/BarPlot.tsx +1088 -0
  190. package/src/app/charts/plots/PoincarePlot.tsx +832 -0
  191. package/src/app/charts/plots/RasterPlot.tsx +676 -0
  192. package/src/app/charts/plots/ScatterPlot.tsx +653 -0
  193. package/src/app/charts/plots/plot.ts +75 -0
  194. package/src/app/charts/series/baseSeries.ts +52 -0
  195. package/src/app/charts/series/datumSeries.test.ts +60 -0
  196. package/src/app/charts/series/iterateSeries.ts +56 -0
  197. package/src/app/charts/series/ordinalSeries.ts +164 -0
  198. package/src/app/charts/series/timeSeries.ts +40 -0
  199. package/src/app/charts/series/timeSeriesChartData.ts +68 -0
  200. package/src/app/charts/styling/barPlotStyle.ts +126 -0
  201. package/src/app/charts/styling/margins.test.ts +22 -0
  202. package/src/app/charts/styling/margins.ts +58 -0
  203. package/src/app/charts/styling/svgStyle.ts +118 -0
  204. package/src/app/charts/subscriptions/subscription.test.ts +499 -0
  205. package/src/app/charts/subscriptions/subscriptions.ts +635 -0
  206. package/src/app/charts/tooltips/BarPlotTooltipContent.tsx +440 -0
  207. package/src/app/charts/tooltips/PoincarePlotTooltipContent.tsx +352 -0
  208. package/src/app/charts/tooltips/RasterPlotTooltipContent.tsx +274 -0
  209. package/src/app/charts/tooltips/ScatterPlotTooltipContent.tsx +319 -0
  210. package/src/app/charts/tooltips/Tooltip.tsx +148 -0
  211. package/src/app/charts/tooltips/tooltipUtils.ts +216 -0
  212. package/src/app/charts/trackers/Tracker.tsx +129 -0
  213. package/src/app/charts/trackers/trackerUtils.ts +494 -0
  214. package/src/app/charts/utils.ts +109 -0
  215. package/dist/src/app/charts/CategoryAxis.d.ts +0 -20
  216. package/dist/src/app/charts/CategoryAxis.js +0 -112
  217. package/dist/src/app/charts/CategoryAxis.js.map +0 -1
  218. package/dist/src/app/charts/ContinuousAxis.d.ts +0 -16
  219. package/dist/src/app/charts/ContinuousAxis.js +0 -186
  220. package/dist/src/app/charts/ContinuousAxis.js.map +0 -1
  221. package/dist/src/app/charts/RasterPlot.js.map +0 -1
  222. package/dist/src/app/charts/RasterPlotTooltipContent.js.map +0 -1
  223. package/dist/src/app/charts/ScatterPlot.js +0 -351
  224. package/dist/src/app/charts/ScatterPlot.js.map +0 -1
  225. package/dist/src/app/charts/ScatterPlotTooltipContent.js +0 -163
  226. package/dist/src/app/charts/ScatterPlotTooltipContent.js.map +0 -1
  227. package/dist/src/app/charts/Tooltip.js.map +0 -1
  228. package/dist/src/app/charts/Tracker.js +0 -65
  229. package/dist/src/app/charts/Tracker.js.map +0 -1
  230. package/dist/src/app/charts/axes.d.ts +0 -132
  231. package/dist/src/app/charts/axes.js +0 -265
  232. package/dist/src/app/charts/axes.js.map +0 -1
  233. package/dist/src/app/charts/chartData.js +0 -32
  234. package/dist/src/app/charts/chartData.js.map +0 -1
  235. package/dist/src/app/charts/continuousAxisRangeFor.d.ts +0 -20
  236. package/dist/src/app/charts/continuousAxisRangeFor.js +0 -68
  237. package/dist/src/app/charts/continuousAxisRangeFor.js.map +0 -1
  238. package/dist/src/app/charts/datumSeries.d.ts +0 -59
  239. package/dist/src/app/charts/datumSeries.js +0 -55
  240. package/dist/src/app/charts/datumSeries.js.map +0 -1
  241. package/dist/src/app/charts/datumSeries.test.js +0 -50
  242. package/dist/src/app/charts/datumSeries.test.js.map +0 -1
  243. package/dist/src/app/charts/hooks/AxesState.d.ts +0 -37
  244. package/dist/src/app/charts/hooks/AxesState.js +0 -44
  245. package/dist/src/app/charts/hooks/AxesState.js.map +0 -1
  246. package/dist/src/app/charts/margins.js.map +0 -1
  247. package/dist/src/app/charts/margins.test.js +0 -14
  248. package/dist/src/app/charts/margins.test.js.map +0 -1
  249. package/dist/src/app/charts/plot.js.map +0 -1
  250. package/dist/src/app/charts/regexFilter.d.ts +0 -9
  251. package/dist/src/app/charts/regexFilter.js +0 -17
  252. package/dist/src/app/charts/regexFilter.js.map +0 -1
  253. package/dist/src/app/charts/regexFilter.test.js +0 -11
  254. package/dist/src/app/charts/regexFilter.test.js.map +0 -1
  255. package/dist/src/app/charts/subscriptions.d.ts +0 -43
  256. package/dist/src/app/charts/subscriptions.js +0 -213
  257. package/dist/src/app/charts/subscriptions.js.map +0 -1
  258. package/dist/src/app/charts/svgStyle.d.ts +0 -27
  259. package/dist/src/app/charts/svgStyle.js +0 -32
  260. package/dist/src/app/charts/svgStyle.js.map +0 -1
  261. package/dist/src/app/charts/timeRange.test.js +0 -54
  262. package/dist/src/app/charts/timeRange.test.js.map +0 -1
  263. package/dist/src/app/charts/tooltipUtils.js.map +0 -1
  264. package/dist/src/app/charts/trackerUtils.js +0 -130
  265. package/dist/src/app/charts/trackerUtils.js.map +0 -1
  266. /package/dist/src/app/charts/{datumSeries.test.d.ts → axes/AxesState.test.d.ts} +0 -0
  267. /package/dist/src/app/charts/{margins.test.d.ts → axes/AxisInterval.test.d.ts} +0 -0
  268. /package/dist/src/app/charts/{regexFilter.test.d.ts → axes/ContinuousAxisRange.test.d.ts} +0 -0
  269. /package/dist/src/app/charts/{timeRange.test.d.ts → axes/OrdinalAxisRange.test.d.ts} +0 -0
  270. /package/dist/src/app/charts/{RasterPlotTooltipContent.d.ts → tooltips/RasterPlotTooltipContent.d.ts} +0 -0
  271. /package/dist/src/app/charts/{ScatterPlotTooltipContent.d.ts → tooltips/ScatterPlotTooltipContent.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscription.test.js","sourceRoot":"","sources":["../../../../../src/app/charts/subscriptions/subscription.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { ContinuousNumericAxis, OrdinalStringAxis } from "../axes/axes";
2
+ import { Datum, TimeSeries } from "../series/timeSeries";
3
+ import { Observable, Subscription } from "rxjs";
4
+ import { TimeSeriesChartData } from "../series/timeSeriesChartData";
5
+ import { AxesAssignment } from "../plots/plot";
6
+ import { AxesState } from "../axes/AxesState";
7
+ import { BaseSeries } from "../series/baseSeries";
8
+ import { IterateChartData } from "../observables/iterates";
9
+ import { IterateDatum, IterateSeries } from "../series/iterateSeries";
10
+ import { OrdinalChartData, OrdinalStats, OrdinalValueStats } from "../observables/ordinals";
11
+ import { OrdinalDatum } from "../series/ordinalSeries";
12
+ import { RefObject } from "react";
13
+ import { AxisInterval } from "../axes/AxisInterval";
14
+ import { OrdinalAxisRange } from "../axes/OrdinalAxisRange";
15
+ import { ContinuousAxisRange } from "../axes/ContinuousAxisRange";
16
+ export declare enum TimeWindowBehavior {
17
+ SCROLL = 0,
18
+ SQUEEZE = 1
19
+ }
20
+ /**
21
+ * Creates a subscription to the series observable with the data stream. This is common code
22
+ * shared by the plots.
23
+ * @param seriesObservable The series observable holding the stream of chart data
24
+ * @param onSubscribe Callback for when the observable is subscribed to
25
+ * @param windowingTime Basically the update time when data is collected and then rendered
26
+ * @param axisAssignments The assignment of the series to their x- and y-axes
27
+ * @param xAxesState The current state of the x-axis
28
+ * @param onUpdateData Callback for when data is updated
29
+ * @param dropDataAfter Limits the amount of data stored. Any data older than this value (ms) will
30
+ * be dropped on the next update
31
+ * @param updateTimingAndPlot The callback function to update the plot and timing
32
+ * @param seriesMap The series-name and the associated series
33
+ * @param setCurrentTime Callback to update the current time based on the streamed data
34
+ * @param timeWindowBehavior Whether to scroll the time axis or squeeze it
35
+ * @param initialTimes The initial times for each axis, a map(axis_id -> initial_time)
36
+ * @return A subscription to the observable (for cancelling and the likes)
37
+ */
38
+ export declare function subscriptionTimeSeriesFor(seriesObservable: Observable<TimeSeriesChartData>, onSubscribe: (subscription: Subscription) => void, windowingTime: number, axisAssignments: Map<string, AxesAssignment>, xAxesState: AxesState<ContinuousNumericAxis>, onUpdateData: ((seriesName: string, data: Array<Datum>) => void) | undefined, dropDataAfter: number, updateTimingAndPlot: (ranges: Map<string, ContinuousAxisRange>) => void, seriesMap: Map<string, TimeSeries>, setCurrentTime: (axisId: string, end: number) => void, timeWindowBehavior?: TimeWindowBehavior, initialTimes?: Map<string, number>): Subscription;
39
+ /**
40
+ * **Function has side effects on the Series (for performance).**
41
+ *
42
+ * Creates a subscription to the series observable with the data stream. The common code is
43
+ * shared by the plots.
44
+ * @param seriesObservable The series observable holding the stream of chart data
45
+ * @param onSubscribe Callback for when the observable is subscribed to
46
+ * @param windowingTime Basically the update time when data is collected and then rendered
47
+ * @param axisAssignments The assignment of the series to their x- and y-axes
48
+ * @param xAxesState The current state of the x-axis
49
+ * @param onUpdateData Callback for when data is updated
50
+ * @param dropDataAfter Limits the amount of data stored. Any data older than this value (ms) will
51
+ * be dropped on the next update
52
+ * @param updateTimingAndPlot The callback function to update the plot and timing
53
+ * @param seriesMap The series-name and the associated series
54
+ * @param setCurrentTime Callback to update the current time based on the streamed data
55
+ * @param cadencePeriod The number of milliseconds between time updates
56
+ * @return A subscription to the observable (for cancelling and the likes)
57
+ */
58
+ export declare function subscriptionTimeSeriesWithCadenceFor(seriesObservable: Observable<TimeSeriesChartData>, onSubscribe: (subscription: Subscription) => void, windowingTime: number, axisAssignments: Map<string, AxesAssignment>, xAxesState: AxesState<ContinuousNumericAxis>, onUpdateData: ((seriesName: string, data: Array<Datum>) => void) | undefined, dropDataAfter: number, updateTimingAndPlot: (ranges: Map<string, ContinuousAxisRange>) => void, seriesMap: Map<string, TimeSeries>, setCurrentTime: (axisId: string, end: number) => void, cadencePeriod: number): Subscription;
59
+ /**
60
+ * Creates a subscription to the series observable with the data stream. The common code is
61
+ * shared by the plots.
62
+ * @param seriesObservable The series observable holding the stream of chart data
63
+ * @param onSubscribe Callback for when the observable is subscribed to
64
+ * @param windowingTime Basically the update time when data is collected and then rendered
65
+ * @param xAxesState The current state of the x-axis
66
+ * @param yAxesState The current state of the y-axis
67
+ * @param onUpdateData Callback for when data is updated
68
+ * @param dropDataAfter Limits the amount of data stored. Any data older than this value (ms) will
69
+ * be dropped on the next update
70
+ * @param updateRangesAndPlot The callback function to update the plot
71
+ * @param seriesMap The series-name and the associated series
72
+ * @param updateCurrentTime Callback to update the current time based on the streamed data
73
+ * @return A subscription to the observable (for cancelling and the likes)
74
+ */
75
+ export declare function subscriptionIteratesFor(seriesObservable: Observable<IterateChartData>, onSubscribe: (subscription: Subscription) => void, windowingTime: number, xAxesState: AxesState<ContinuousNumericAxis>, yAxesState: AxesState<ContinuousNumericAxis>, onUpdateData: ((seriesName: string, data: Array<IterateDatum>) => void) | undefined, dropDataAfter: number, updateRangesAndPlot: () => void, seriesMap: Map<string, IterateSeries>, updateCurrentTime: (time: number) => void): Subscription;
76
+ export interface WindowedOrdinalStats extends OrdinalStats {
77
+ /**
78
+ * A map associating each series to stats about that series (e.g. map(series_name -> stats))
79
+ */
80
+ windowedValueStatsForSeries: Map<string, OrdinalValueStats>;
81
+ }
82
+ /**
83
+ * Creates a subscription to the series observable with the data stream. The common code is
84
+ * shared by the plots.
85
+ * @param seriesObservable The series observable holding the stream of chart data
86
+ * @param onSubscribe Callback for when the observable is subscribed to
87
+ * @param windowingTime Basically the update time when data is collected and then rendered
88
+ * @param axisAssignments The assignment of the series to their x- and y-axes
89
+ * @param yAxesState The current state of the x-axis
90
+ * @param onUpdateData Callback for when data is updated
91
+ * @param dropDataAfter Limits the amount of data stored. Any data older than this value (ms) will
92
+ * be dropped on the next update
93
+ * @param updateTimingAndPlot The callback function to update the plot and timing
94
+ * @param seriesMap The series-name and the associated series
95
+ * @param ordinalStatsRef The statistics about the data in the chart and about each series
96
+ * @param setCurrentTime Callback to update the current time based on the streamed data
97
+ * @param originalRange The original range of the axes
98
+ * @return A subscription to the observable (for cancelling and the likes)
99
+ */
100
+ export declare function subscriptionOrdinalXFor(seriesObservable: Observable<OrdinalChartData>, onSubscribe: (subscription: Subscription) => void, windowingTime: number, axisAssignments: Map<string, AxesAssignment>, yAxesState: AxesState<OrdinalStringAxis>, onUpdateData: ((seriesName: string, data: Array<OrdinalDatum>) => void) | undefined, dropDataAfter: number, updateTimingAndPlot: (ranges: Map<string, OrdinalAxisRange>) => void, seriesMap: Map<string, BaseSeries<OrdinalDatum>>, ordinalStatsRef: RefObject<WindowedOrdinalStats>, setCurrentTime: (currentTime: number) => void, originalRange: AxisInterval): Subscription;
@@ -0,0 +1,449 @@
1
+ import { bufferTime, map, mergeAll, mergeWith } from "rxjs/operators";
2
+ import { continuousAxisRanges, ordinalAxisRanges } from "../axes/axes";
3
+ import { interval } from "rxjs";
4
+ import { emptySeries } from "../series/baseSeries";
5
+ import { copyOrdinalDatumExtremum, copyOrdinalValueStats, copyValueStatsForSeries, defaultOrdinalValueStats, initialMaxValueDatum, initialMinValueDatum } from "../observables/ordinals";
6
+ import { Optional } from "result-fn";
7
+ import { ContinuousAxisRange } from "../axes/ContinuousAxisRange";
8
+ export var TimeWindowBehavior;
9
+ (function (TimeWindowBehavior) {
10
+ TimeWindowBehavior[TimeWindowBehavior["SCROLL"] = 0] = "SCROLL";
11
+ TimeWindowBehavior[TimeWindowBehavior["SQUEEZE"] = 1] = "SQUEEZE";
12
+ })(TimeWindowBehavior || (TimeWindowBehavior = {}));
13
+ /**
14
+ * Creates a subscription to the series observable with the data stream. This is common code
15
+ * shared by the plots.
16
+ * @param seriesObservable The series observable holding the stream of chart data
17
+ * @param onSubscribe Callback for when the observable is subscribed to
18
+ * @param windowingTime Basically the update time when data is collected and then rendered
19
+ * @param axisAssignments The assignment of the series to their x- and y-axes
20
+ * @param xAxesState The current state of the x-axis
21
+ * @param onUpdateData Callback for when data is updated
22
+ * @param dropDataAfter Limits the amount of data stored. Any data older than this value (ms) will
23
+ * be dropped on the next update
24
+ * @param updateTimingAndPlot The callback function to update the plot and timing
25
+ * @param seriesMap The series-name and the associated series
26
+ * @param setCurrentTime Callback to update the current time based on the streamed data
27
+ * @param timeWindowBehavior Whether to scroll the time axis or squeeze it
28
+ * @param initialTimes The initial times for each axis, a map(axis_id -> initial_time)
29
+ * @return A subscription to the observable (for cancelling and the likes)
30
+ */
31
+ export function subscriptionTimeSeriesFor(seriesObservable, onSubscribe, windowingTime, axisAssignments, xAxesState, onUpdateData, dropDataAfter, updateTimingAndPlot, seriesMap, setCurrentTime, timeWindowBehavior = TimeWindowBehavior.SCROLL, initialTimes = new Map()) {
32
+ const subscription = seriesObservable
33
+ .pipe(bufferTime(windowingTime))
34
+ .subscribe(dataList => {
35
+ dataList.forEach(data => {
36
+ // grab the time-windows for the x-axes
37
+ const timesWindows = continuousAxisRanges(xAxesState.axes);
38
+ //
39
+ // calculate the max times for each x-axis, which is the max time over all the
40
+ // series assigned to an x-axis
41
+ // get the series associated with each axis (Map<axis_id, [series_names]>)
42
+ const axesSeries = associatedSeriesForXAxes(data, axisAssignments, xAxesState);
43
+ // add each new point to it's corresponding series, the new points
44
+ // is a map(series_name -> new_point[])
45
+ data.newPoints.forEach((newData, name) => {
46
+ var _a, _b;
47
+ // grab the current series associated with the new data
48
+ const series = seriesMap.get(name) || emptySeries(name);
49
+ // update the handler with the new data point
50
+ if (onUpdateData)
51
+ onUpdateData(name, newData);
52
+ // add the new data to the series
53
+ series.data.push(...newData);
54
+ // calculate the current time for the series' assigned x-axis (which may end up
55
+ // just being the default) based on the max time for the series, and the overall
56
+ // max time
57
+ const axisId = ((_a = axisAssignments.get(name)) === null || _a === void 0 ? void 0 : _a.xAxis) || xAxesState.axisDefaultId().getOrElse("");
58
+ const currentAxisTime = ((_b = axesSeries.get(axisId)) === null || _b === void 0 ? void 0 : _b.reduce((tMax, seriesName) => Math.max(data.maxTimes.get(seriesName) || data.maxTime, tMax), -Infinity)) || data.maxTime;
59
+ if (currentAxisTime !== undefined) {
60
+ // drop data that is older than the max time-window
61
+ while (currentAxisTime - series.data[0].time > dropDataAfter) {
62
+ series.data.shift();
63
+ }
64
+ // update the time range for the x-axis, and if the time range
65
+ // needs to be updated, then recalculate the time range for the
66
+ // axis, update the time windows, and call the setCurrentTime
67
+ // callback to update the current time for the caller
68
+ const range = timesWindows.get(axisId);
69
+ const [startTime, endTime] = Optional.ofNullable(range === null || range === void 0 ? void 0 : range.current)
70
+ .map(interval => interval.asTuple())
71
+ .getOrElse([0, 0]);
72
+ if (range !== undefined && endTime < currentAxisTime) {
73
+ const timeWindow = endTime - startTime;
74
+ const timeRange = ContinuousAxisRange.from(
75
+ // 0,
76
+ timeWindowBehavior === TimeWindowBehavior.SQUEEZE && initialTimes.get(axisId) !== undefined ?
77
+ initialTimes.get(axisId) :
78
+ Math.max(0, currentAxisTime - timeWindow), Math.max(currentAxisTime, timeWindow));
79
+ timesWindows.set(axisId, timeRange);
80
+ setCurrentTime(axisId, endTime); // callback
81
+ }
82
+ }
83
+ });
84
+ // update the data
85
+ updateTimingAndPlot(timesWindows); // callback
86
+ });
87
+ });
88
+ // provide the subscription to the caller
89
+ onSubscribe(subscription); // callback
90
+ return subscription;
91
+ }
92
+ /**
93
+ * **Function has side effects on the Series (for performance).**
94
+ *
95
+ * Creates a subscription to the series observable with the data stream. The common code is
96
+ * shared by the plots.
97
+ * @param seriesObservable The series observable holding the stream of chart data
98
+ * @param onSubscribe Callback for when the observable is subscribed to
99
+ * @param windowingTime Basically the update time when data is collected and then rendered
100
+ * @param axisAssignments The assignment of the series to their x- and y-axes
101
+ * @param xAxesState The current state of the x-axis
102
+ * @param onUpdateData Callback for when data is updated
103
+ * @param dropDataAfter Limits the amount of data stored. Any data older than this value (ms) will
104
+ * be dropped on the next update
105
+ * @param updateTimingAndPlot The callback function to update the plot and timing
106
+ * @param seriesMap The series-name and the associated series
107
+ * @param setCurrentTime Callback to update the current time based on the streamed data
108
+ * @param cadencePeriod The number of milliseconds between time updates
109
+ * @return A subscription to the observable (for cancelling and the likes)
110
+ */
111
+ export function subscriptionTimeSeriesWithCadenceFor(seriesObservable, onSubscribe, windowingTime, axisAssignments, xAxesState, onUpdateData, dropDataAfter, updateTimingAndPlot, seriesMap, setCurrentTime, cadencePeriod) {
112
+ const maxTime = Array.from(seriesMap.entries())
113
+ .reduce((tMax, [, series]) => Math.max(tMax, series.last().map(datum => datum.time).getOrElse(tMax)), -Infinity);
114
+ const cadence = interval(cadencePeriod)
115
+ .pipe(map(value => ({
116
+ currentTime: value * cadencePeriod,
117
+ maxTime: value * cadencePeriod,
118
+ maxTimes: new Map(),
119
+ newPoints: new Map()
120
+ })));
121
+ const subscription = seriesObservable
122
+ .pipe(mergeWith(cadence), bufferTime(windowingTime), mergeAll())
123
+ .subscribe(data => {
124
+ // grab the time-windows for the x-axes
125
+ const timesWindows = continuousAxisRanges(xAxesState.axes);
126
+ if (data.currentTime !== undefined) {
127
+ xAxesState.axisIds().forEach(axisId => {
128
+ const range = timesWindows.get(axisId);
129
+ if (range !== undefined && data.currentTime !== undefined) {
130
+ const [startTime, endTime] = range.current.asTuple();
131
+ const timeWindow = endTime - startTime;
132
+ // const timeWindow = measureOf(range.current)
133
+ const timeRange = ContinuousAxisRange.from(Math.max(0, Math.max(endTime, data.currentTime + maxTime) - timeWindow), Math.max(Math.max(endTime, data.currentTime + maxTime), timeWindow));
134
+ timesWindows.set(axisId, timeRange);
135
+ setCurrentTime(axisId, data.currentTime + maxTime);
136
+ }
137
+ });
138
+ }
139
+ if (data.newPoints.size === 0) {
140
+ updateTimingAndPlot(timesWindows);
141
+ return;
142
+ }
143
+ // determine which series belong to each x-axis
144
+ const axesSeries = associatedSeriesForXAxes(data, axisAssignments, xAxesState);
145
+ // add each new point to it's corresponding series, the new points
146
+ // is a map(series_name -> new_point[])
147
+ data.newPoints.forEach((newData, name) => {
148
+ var _a, _b;
149
+ // grab the current series associated with the new data
150
+ const series = seriesMap.get(name) || emptySeries(name);
151
+ // update the handler with the new data point
152
+ if (onUpdateData)
153
+ onUpdateData(name, newData);
154
+ // add the new data to the series
155
+ series.data.push(...newData);
156
+ // drop data when specified
157
+ const axisId = ((_a = axisAssignments.get(name)) === null || _a === void 0 ? void 0 : _a.xAxis) || xAxesState.axisDefaultId().getOrElse("");
158
+ const currentAxisTime = ((_b = axesSeries.get(axisId)) === null || _b === void 0 ? void 0 : _b.reduce((tMax, seriesName) => Math.max(data.maxTimes.get(seriesName) || data.maxTime, tMax), -Infinity)) || data.maxTime;
159
+ if (currentAxisTime !== undefined) {
160
+ // drop data that is older than the max time-window
161
+ while (currentAxisTime - series.data[0].time > dropDataAfter) {
162
+ series.data.shift();
163
+ }
164
+ }
165
+ });
166
+ // update the data
167
+ updateTimingAndPlot(timesWindows);
168
+ });
169
+ // provide the subscription to the caller
170
+ onSubscribe(subscription);
171
+ return subscription;
172
+ }
173
+ /**
174
+ * Creates a subscription to the series observable with the data stream. The common code is
175
+ * shared by the plots.
176
+ * @param seriesObservable The series observable holding the stream of chart data
177
+ * @param onSubscribe Callback for when the observable is subscribed to
178
+ * @param windowingTime Basically the update time when data is collected and then rendered
179
+ * @param xAxesState The current state of the x-axis
180
+ * @param yAxesState The current state of the y-axis
181
+ * @param onUpdateData Callback for when data is updated
182
+ * @param dropDataAfter Limits the amount of data stored. Any data older than this value (ms) will
183
+ * be dropped on the next update
184
+ * @param updateRangesAndPlot The callback function to update the plot
185
+ * @param seriesMap The series-name and the associated series
186
+ * @param updateCurrentTime Callback to update the current time based on the streamed data
187
+ * @return A subscription to the observable (for cancelling and the likes)
188
+ */
189
+ export function subscriptionIteratesFor(seriesObservable, onSubscribe, windowingTime, xAxesState, yAxesState, onUpdateData, dropDataAfter, updateRangesAndPlot, seriesMap, updateCurrentTime) {
190
+ // maintains the x and y-axis ranges based on the original domain of the axes
191
+ const xAxesRanges = new Map(Array.from(xAxesState.axes.entries())
192
+ .map(([id, axis]) => {
193
+ const [start, end] = axis.scale.domain();
194
+ return [id, ContinuousAxisRange.from(start, end)];
195
+ }));
196
+ const yAxesRanges = new Map(Array.from(yAxesState.axes.entries())
197
+ .map(([id, axis]) => {
198
+ const [start, end] = axis.scale.domain();
199
+ return [id, ContinuousAxisRange.from(start, end)];
200
+ }));
201
+ /**
202
+ * Updates the original axis range with new domain values, while maintaining the original
203
+ * domain values.
204
+ * @param originals The original axis ranges
205
+ * @param axes The current axes
206
+ */
207
+ function updateRange(originals, axes) {
208
+ axes.forEach((axis, id) => {
209
+ const [start, end] = axis.scale.domain();
210
+ const original = originals.get(id) || ContinuousAxisRange.from(start, end);
211
+ originals.set(id, original.update(start, end));
212
+ });
213
+ }
214
+ const subscription = seriesObservable
215
+ .pipe(bufferTime(windowingTime))
216
+ .subscribe(dataList => {
217
+ dataList.forEach(data => {
218
+ // calculate the bounds for each of the x- and y-axes
219
+ updateRange(xAxesRanges, xAxesState.axes);
220
+ updateRange(yAxesRanges, yAxesState.axes);
221
+ // add each new point to its corresponding series, the newPoints object
222
+ // is a map(series_name -> new_point[])
223
+ data.newPoints.forEach((newData, seriesName) => {
224
+ // grab the current series associated with the new data
225
+ const series = seriesMap.get(seriesName) || emptySeries(seriesName);
226
+ // update the handler with the new data points
227
+ if (onUpdateData)
228
+ onUpdateData(seriesName, newData);
229
+ // add the new data to the series
230
+ series.data.push(...newData);
231
+ // calculate and update the current time, which will be that max time of the
232
+ // f[n+1](x) values (y-axis)
233
+ const currentTime = Array.from(data.newPoints.values())
234
+ .reduce((maxTime, currentSeries) => {
235
+ const seriesMaxTime = currentSeries.length > 0 ? currentSeries[currentSeries.length - 1].time : 0;
236
+ if (seriesMaxTime > maxTime) {
237
+ return seriesMaxTime;
238
+ }
239
+ return maxTime;
240
+ }, 0);
241
+ updateCurrentTime(currentTime);
242
+ // drop data that is older than the max time-window
243
+ while (currentTime - series.data[0].time > dropDataAfter) {
244
+ series.data.shift();
245
+ }
246
+ });
247
+ // update the data
248
+ const xRange = xAxesRanges.get(xAxesState.axisDefaultId().getOrElse(""));
249
+ const yRange = yAxesRanges.get(yAxesState.axisDefaultId().getOrElse(""));
250
+ if (xRange !== undefined && yRange !== undefined) {
251
+ updateRangesAndPlot();
252
+ }
253
+ });
254
+ });
255
+ // provide the subscription to the caller
256
+ onSubscribe(subscription);
257
+ return subscription;
258
+ }
259
+ /**
260
+ * Creates a subscription to the series observable with the data stream. The common code is
261
+ * shared by the plots.
262
+ * @param seriesObservable The series observable holding the stream of chart data
263
+ * @param onSubscribe Callback for when the observable is subscribed to
264
+ * @param windowingTime Basically the update time when data is collected and then rendered
265
+ * @param axisAssignments The assignment of the series to their x- and y-axes
266
+ * @param yAxesState The current state of the x-axis
267
+ * @param onUpdateData Callback for when data is updated
268
+ * @param dropDataAfter Limits the amount of data stored. Any data older than this value (ms) will
269
+ * be dropped on the next update
270
+ * @param updateTimingAndPlot The callback function to update the plot and timing
271
+ * @param seriesMap The series-name and the associated series
272
+ * @param ordinalStatsRef The statistics about the data in the chart and about each series
273
+ * @param setCurrentTime Callback to update the current time based on the streamed data
274
+ * @param originalRange The original range of the axes
275
+ * @return A subscription to the observable (for cancelling and the likes)
276
+ */
277
+ export function subscriptionOrdinalXFor(seriesObservable, onSubscribe, windowingTime, axisAssignments, yAxesState, onUpdateData, dropDataAfter, updateTimingAndPlot, seriesMap, ordinalStatsRef, setCurrentTime, originalRange) {
278
+ /**
279
+ * First of two functions to calculate the current ordinal stats for the current time window. This
280
+ * function updates the windowed stats for the new data.
281
+ * @param newData The new data for that series
282
+ * @param windowedStats The current windowed ordinal value status
283
+ * @return The windowed ordinal value stats updated for the new data
284
+ */
285
+ function updatedWindowedValueStatsForNewData(newData, windowedStats) {
286
+ const updatedStats = copyOrdinalValueStats(windowedStats);
287
+ updatedStats.count += newData.length;
288
+ const newSum = newData.reduce((total, datum) => total + datum.value, 0);
289
+ updatedStats.sum += newSum;
290
+ updatedStats.sumSquared += newSum * newSum;
291
+ updatedStats.mean = (updatedStats.count > 0) ? updatedStats.sum / updatedStats.count : NaN;
292
+ updatedStats.min = newData.reduce((min, datum) => datum.value < min.value ? datum : min, updatedStats.min);
293
+ updatedStats.max = newData.reduce((max, datum) => datum.value > max.value ? datum : max, updatedStats.max);
294
+ return updatedStats;
295
+ }
296
+ /**
297
+ * Second of two functions to calculate the current ordinal stats for the current time window. This
298
+ * function updates the windowed stats by for the dropped data
299
+ * @param droppedData An array of datum that was dropped from the time window
300
+ * @param windowedStats The current windowed ordinal value stats
301
+ * @param series An array of series holding all the current data in the time-window
302
+ * @return The windowed ordinal value stats updated for the dropped data
303
+ */
304
+ function updateWindowedValueStatsForDroppedData(droppedData, windowedStats, series) {
305
+ const updatedStats = copyOrdinalValueStats(windowedStats);
306
+ // calculate the windowed stats based on the dropped data
307
+ updatedStats.count -= droppedData.length;
308
+ const droppedSum = droppedData.reduce((total, datum) => total + datum.value, 0);
309
+ updatedStats.sum -= droppedSum;
310
+ updatedStats.sumSquared -= droppedSum * droppedSum;
311
+ updatedStats.mean = (updatedStats.count > 0) ? updatedStats.sum / updatedStats.count : NaN;
312
+ updatedStats.min = series.data.reduce((min, datum) => datum.value < min.value ? datum : min, initialMinValueDatum());
313
+ updatedStats.max = series.data.reduce((max, datum) => datum.value > max.value ? datum : max, initialMaxValueDatum());
314
+ return updatedStats;
315
+ }
316
+ //
317
+ // beginning of the subscription function
318
+ //
319
+ const subscription = seriesObservable
320
+ .pipe(bufferTime(windowingTime))
321
+ .subscribe(dataList => {
322
+ dataList.forEach((data) => {
323
+ // grab the axis ranges for the y-axes
324
+ const yAxisRanges = ordinalAxisRanges(yAxesState.axes, originalRange);
325
+ //
326
+ // calculate the max times for each x-axis, which is the max time over all the
327
+ // series assigned to an x-axis
328
+ // get the series associated with each y-axis (Map<axis_id, [series_names]>)
329
+ const axesSeries = associatedSeriesForYAxes(data, axisAssignments, yAxesState);
330
+ // add each new point to it's corresponding series, the new points
331
+ // is a map(series_name -> new_point[])
332
+ data.newPoints.forEach((newData, name) => {
333
+ var _a, _b;
334
+ // grab the current series associated with the new data
335
+ const series = seriesMap.get(name) || emptySeries(name);
336
+ // update the handler with the new data point
337
+ if (onUpdateData)
338
+ onUpdateData(name, newData);
339
+ // add the new data to the series
340
+ series.data.push(...newData);
341
+ // grab the stats
342
+ ordinalStatsRef.current.minDatum = copyOrdinalDatumExtremum(data.stats.minDatum);
343
+ ordinalStatsRef.current.maxDatum = copyOrdinalDatumExtremum(data.stats.maxDatum);
344
+ ordinalStatsRef.current.valueStatsForSeries = copyValueStatsForSeries(data.stats.valueStatsForSeries);
345
+ // set up for the windowed-stats
346
+ const lifetimeValueStats = data.stats.valueStatsForSeries.get(name) || defaultOrdinalValueStats();
347
+ if (!ordinalStatsRef.current.windowedValueStatsForSeries.has(name)) {
348
+ ordinalStatsRef.current.windowedValueStatsForSeries.set(name, copyOrdinalValueStats(lifetimeValueStats));
349
+ // ordinalStatsRef.current.windowedValueStatsForSeries.set(name, defaultOrdinalValueStats())
350
+ }
351
+ // update the windowed-stats for the new points (later will deal with datum
352
+ // that were dropped)
353
+ const updatedStats = ordinalStatsRef.current.windowedValueStatsForSeries.get(name);
354
+ const windowedValueStats = updatedWindowedValueStatsForNewData(newData, updatedStats);
355
+ ordinalStatsRef.current.windowedValueStatsForSeries.set(name, windowedValueStats);
356
+ // calculate the current value for the series' assigned y-axis (which may end up
357
+ // just being the default) based on the max time for the series, and the overall
358
+ // max time
359
+ const axisId = ((_a = axisAssignments.get(name)) === null || _a === void 0 ? void 0 : _a.yAxis) || yAxesState.axisDefaultId().getOrElse("");
360
+ const currentTime = ((_b = axesSeries.get(axisId)) === null || _b === void 0 ? void 0 : _b.reduce((tMax, _) => Math.max(data.stats.maxDatum.time.time, tMax), -Infinity)) || NaN;
361
+ setCurrentTime(currentTime);
362
+ if (currentTime !== undefined) {
363
+ // drop data that is older than the max time-window, holding on to the dropped ones
364
+ let droppedData = [];
365
+ while (currentTime - series.data[0].time > dropDataAfter) {
366
+ const dropped = series.data.shift();
367
+ if (dropped !== undefined) {
368
+ droppedData.push(dropped);
369
+ }
370
+ }
371
+ // calculate the windowed stats based on the dropped data
372
+ if (droppedData.length > 0) {
373
+ ordinalStatsRef.current.windowedValueStatsForSeries.set(name, updateWindowedValueStatsForDroppedData(droppedData, windowedValueStats, series));
374
+ }
375
+ // // update the time range for the x-axis, and if the time range
376
+ // // needs to be updated, then recalculate the time range for the
377
+ // // axis, update the time windows, and call the setCurrentTime
378
+ // // callback to update the current time for the caller
379
+ // const range = yAxisRanges.get(axisId)
380
+ // if (range !== undefined && range.end < currentAxisTime) {
381
+ // const timeWindow = range.end - range.start
382
+ // const timeRange = continuousAxisRangeFor(
383
+ // // 0,
384
+ // timeWindowBehavior === TimeWindowBehavior.SQUEEZE && initialTimes.get(axisId) !== undefined ?
385
+ // initialTimes.get(axisId)! :
386
+ // Math.max(0, currentAxisTime - timeWindow),
387
+ // Math.max(currentAxisTime, timeWindow)
388
+ // )
389
+ // yAxisRanges.set(axisId, timeRange)
390
+ // setCurrentTime(axisId, timeRange.end) // callback
391
+ // }
392
+ }
393
+ });
394
+ // // grab the stats
395
+ // ordinalStatsRef.current.minDatum = copyOrdinalDatumExtremum(data.stats.minDatum)
396
+ // ordinalStatsRef.current.maxDatum = copyOrdinalDatumExtremum(data.stats.maxDatum)
397
+ // ordinalStatsRef.current.valueStatsForSeries = copyValueStatsForSeries(data.stats.valueStatsForSeries)
398
+ // update the data
399
+ updateTimingAndPlot(yAxisRanges); // callback
400
+ });
401
+ });
402
+ // provide the subscription to the caller
403
+ onSubscribe(subscription); // callback
404
+ return subscription;
405
+ }
406
+ /**
407
+ * Determines which series are assigned to which x-axes, and returns a map holding the
408
+ * x-axis names and their associated list of series
409
+ * @param data The chart data
410
+ * @param axisAssignments A map holding the series names and its associated x-axis and y-axis names
411
+ * @param xAxesState Holds information about the axis and how it is displayed
412
+ * @return A map holding the x-axis names the names of the series associated with the axis.
413
+ */
414
+ function associatedSeriesForXAxes(data, axisAssignments, xAxesState) {
415
+ return associatedSeriesFor(assignment => (assignment === null || assignment === void 0 ? void 0 : assignment.xAxis) || xAxesState.axisDefaultId().getOrElse(""), data, axisAssignments);
416
+ }
417
+ /**
418
+ * Determines which series are assigned to which y-axes, and returns a map holding the
419
+ * x-axis names and their associated list of series
420
+ * @param data The chart data
421
+ * @param axisAssignments A map holding the series names and its associated x-axis and y-axis names
422
+ * @param yAxesState Holds information about the axis and how it is displayed
423
+ * @return A map holding the y-axis names the names of the series associated with the axis.
424
+ */
425
+ function associatedSeriesForYAxes(data, axisAssignments, yAxesState) {
426
+ return associatedSeriesFor(assignment => (assignment === null || assignment === void 0 ? void 0 : assignment.yAxis) || yAxesState.axisDefaultId().getOrElse(""), data, axisAssignments);
427
+ }
428
+ /**
429
+ * Determines which series are assigned to which axes, and returns a map holding the
430
+ * axis names and their associated list of series. The extractor function returns the axis ID
431
+ * for the series and is responsible for return the x-axis ID or the y-axis ID depending
432
+ * on the context of the call.
433
+ * @param axisIdExtractor A function that accepts the {@link AxesAssignment} and returns the axis ID
434
+ * @param data The chart data
435
+ * @param axisAssignments A map holding the series names and its associated x-axis and y-axis names
436
+ * @return A map holding the axis names the names of the series associated with the axis.
437
+ */
438
+ function associatedSeriesFor(axisIdExtractor, data, axisAssignments) {
439
+ return Array
440
+ .from(data.seriesNames)
441
+ .reduce((assignedSeries, seriesName) => {
442
+ const id = axisIdExtractor(axisAssignments.get(seriesName));
443
+ const series = assignedSeries.get(id) || [];
444
+ series.push(seriesName);
445
+ assignedSeries.set(id, series);
446
+ return assignedSeries;
447
+ }, new Map());
448
+ }
449
+ //# sourceMappingURL=subscriptions.js.map