stream-charts 1.0.0 → 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 +758 -345
  2. package/changes.md +10 -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} +17 -11
  146. package/dist/src/app/charts/{tooltipUtils.js → tooltips/tooltipUtils.js} +52 -25
  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":"subscriptions.js","sourceRoot":"","sources":["../../../../../src/app/charts/subscriptions/subscriptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import { TooltipStyle } from "./tooltipUtils";
2
+ /**
3
+ # Want to write your own tooltip-content component?
4
+
5
+ Here's how to write your own tooltip-content component.
6
+
7
+ To create your own tooltip content `<MyTooltipContent/>` you must do the following:
8
+ 1. Create a react component for your tooltip content (see for example, {@link ScatterPlotTooltipContent}
9
+ as a reference.
10
+ 2. Use the {@link useChart} hook to get the {@link registerTooltipContentProvider} registration function.
11
+ 3. When your tooltip content component (`<MyTooltipContent/>`) mounts, use the {@link registerTooltipContentProvider}
12
+ function to register your tooltip content provider.
13
+ 4. When the chart dimensions, margin, container, etc, change, register your tooltip content provider
14
+ again (you can register as many times as you like because it only uses the last content provider
15
+ registered).
16
+
17
+ That's it! A bit more details below.
18
+
19
+ The {@link registerTooltipContentProvider} function from the {@link useChart} hook allows you to register
20
+ one tooltip content provider. A second call to this function will cause the {@link useChart} hook to drop
21
+ the first one in favor of the second one.
22
+
23
+ The {@link registerTooltipContentProvider} function from the {@link useChart} hook accepts a higher-order
24
+ function that allowing a closure on content/chart-specific data. Specifically, you must hand the
25
+ {@link registerTooltipContentProvider} a function of the form:
26
+
27
+ `(seriesName: string, time: number, series: TimeSeries, mouseCoords: [x: number, y: number]) => TooltipDimensions`
28
+
29
+ Your function to add that actual content will be what this function calls whenever d3 fires a mouse-over
30
+ event on one you the time-series in the chart.
31
+
32
+ The code snippet below is from the `useEffect` call in the {@link ScatterPlotTooltipContent}.
33
+ Note that the first four arguments to the {@link addTooltipContent} function are those provided by the {@link useChart} hook
34
+ when a d3 mouse-over event occurs on one of your series. The additional six arguments are from the closure formed
35
+ on the variables in your component. The `chartId`, `container`, `margin`, and `plotDimensions` are from the
36
+ {@link useChart} hook called by the {@link ScatterPlotTooltipContent} component. The last two
37
+ arguments, `defaultTooltipStyle` and `options` are specific to the {@link ScatterPlotTooltipContent}.
38
+ For example, the `options` property is set by the caller of the {@link ScatterPlotTooltipContent}
39
+ component.
40
+
41
+ ```typescript
42
+ // register the tooltip content provider function with the chart hook (useChart) so that
43
+ // it is visible to all children of the Chart (i.e. the <Tooltip>).
44
+ registerTooltipContentProvider(
45
+ (seriesName: string,
46
+ time: number,
47
+ tooltipData: TooltipData<OrdinalDatum, WindowedOrdinalStats>,
48
+ mouseCoords: [x: number, y: number]
49
+ ) => {
50
+ return addTooltipContent(
51
+ seriesName, tooltipData, mouseCoords,
52
+ chartId, container, margin, plotDimensions, tooltipStyle,
53
+ ordinalUnits
54
+ )
55
+ }
56
+ )
57
+ ```
58
+
59
+ This pattern allows you to supplement that `useChart` mouse-over callback with information specific to your component.
60
+
61
+ */
62
+ /**
63
+ * Properties for rendering the tooltip content. The properties are applied as
64
+ * shown below.
65
+ * ```
66
+ * series name
67
+ * xFormatter, yFormatter
68
+ * ```
69
+ */
70
+ interface Props {
71
+ ordinalUnits?: string;
72
+ style?: Partial<TooltipStyle>;
73
+ }
74
+ /**
75
+ * Adds tooltip content that shows the series name and the (time, value) of the selected point.
76
+ * ```
77
+ * series name
78
+ * time, value
79
+ * ```
80
+ *
81
+ * Registers the tooltip-content provider with the `ChartContext` so that when d3 fires a mouse-over
82
+ * event on a series. The content provider is returns the {@link addTooltipContent} function
83
+ * when called. And when called the {@link addTooltipContent} function adds the actual tooltip
84
+ * content to the SVG element.
85
+ * @param props The properties describing the tooltip content
86
+ * @return null
87
+ * @constructor
88
+ */
89
+ export declare function BarPlotTooltipContent(props: Props): null;
90
+ export {};
@@ -0,0 +1,302 @@
1
+ import { defaultTooltipStyle, tooltipX, tooltipY } from "./tooltipUtils";
2
+ import * as d3 from "d3";
3
+ import { formatNumber, formatTime, formatValue } from "../utils";
4
+ import { useEffect, useMemo } from "react";
5
+ import { useChart } from "../hooks/useChart";
6
+ import { usePlotDimensions } from "../hooks/usePlotDimensions";
7
+ import { emptyOrdinalDatum } from "../series/ordinalSeries";
8
+ import { DataFrame } from "data-frame-ts";
9
+ import { createTable, TableData, TableFormatter, TableStyler } from "svg-table";
10
+ import { defaultOrdinalValueStats } from "../observables/ordinals";
11
+ import { BAR_CHART_TOOLTIP_PROVIDER_IDS } from "../plots/BarPlot";
12
+ /**
13
+ * Adds tooltip content that shows the series name and the (time, value) of the selected point.
14
+ * ```
15
+ * series name
16
+ * time, value
17
+ * ```
18
+ *
19
+ * Registers the tooltip-content provider with the `ChartContext` so that when d3 fires a mouse-over
20
+ * event on a series. The content provider is returns the {@link addTooltipContent} function
21
+ * when called. And when called the {@link addTooltipContent} function adds the actual tooltip
22
+ * content to the SVG element.
23
+ * @param props The properties describing the tooltip content
24
+ * @return null
25
+ * @constructor
26
+ */
27
+ export function BarPlotTooltipContent(props) {
28
+ const { chartId, container, tooltip, axes } = useChart();
29
+ const { registerTooltipContentProvider } = tooltip;
30
+ const { yAxesState, axisAssignmentsFor } = axes;
31
+ const { margin, plotDimensions } = usePlotDimensions();
32
+ const { style, ordinalUnits = "" } = props;
33
+ const tooltipStyle = useMemo(() => (Object.assign(Object.assign({}, defaultTooltipStyle), style)), [style]);
34
+ // register the tooltip content provider, which when called on mouse-enter-series events
35
+ // will render the tooltip container and then the tooltip content. recall that that the
36
+ // tooltip content is generated in this plot (because this is the plot that holds all the
37
+ // information needed to render it), and the container for the content is rendered by
38
+ // the <Tooltip>, which this know nothing about.
39
+ //
40
+ // the 'registration function accepts a function of the form (seriesName, time, series) => TooltipDimensions.
41
+ // and that function has a closure on the content-specific information needed to add the
42
+ // actual content
43
+ useEffect(() => {
44
+ if (container) {
45
+ // register the tooltip content provider function with the chart hook (useChart) so that
46
+ // it is visible to all children of the Chart (i.e. the <Tooltip>).
47
+ registerTooltipContentProvider(
48
+ /**
49
+ *
50
+ * @param seriesName The name of the series
51
+ * @param time The mouse time
52
+ * @param tooltipData The series data and metadata
53
+ * @param mouseCoords The coordinates of the mouse
54
+ * @param providerId The ID of the tooltip content provider
55
+ * @return The tooltip contents
56
+ */
57
+ (seriesName, time, tooltipData, mouseCoords, providerId) => {
58
+ if (providerId !== undefined) {
59
+ return addTooltipContent(seriesName, providerId, tooltipData, mouseCoords, chartId, container, margin, plotDimensions, tooltipStyle, ordinalUnits);
60
+ }
61
+ return { x: 0, y: 0, contentWidth: 0, contentHeight: 0 };
62
+ //
63
+ // switch (providerId) {
64
+ // case BAR_CHART_TOOLTIP_PROVIDER_IDS.currentValue:
65
+ // return addTooltipContent(
66
+ // seriesName, 'current value', tooltipData, mouseCoords,
67
+ // chartId, container, margin, plotDimensions, tooltipStyle,
68
+ // ordinalUnits
69
+ // )
70
+ // case BAR_CHART_TOOLTIP_PROVIDER_IDS.meanValue:
71
+ // return addTooltipContent(
72
+ // seriesName, 'mean value', tooltipData, mouseCoords,
73
+ // chartId, container, margin, plotDimensions, tooltipStyle,
74
+ // ordinalUnits
75
+ // )
76
+ // case BAR_CHART_TOOLTIP_PROVIDER_IDS.minMax:
77
+ // return addTooltipContent(
78
+ // seriesName, 'min/max', tooltipData, mouseCoords,
79
+ // chartId, container, margin, plotDimensions, tooltipStyle,
80
+ // ordinalUnits
81
+ // )
82
+ // case BAR_CHART_TOOLTIP_PROVIDER_IDS.windowedMeanValue:
83
+ // return addTooltipContent(
84
+ // seriesName, 'windowed mean', tooltipData, mouseCoords,
85
+ // chartId, container, margin, plotDimensions, tooltipStyle,
86
+ // ordinalUnits
87
+ // )
88
+ // case BAR_CHART_TOOLTIP_PROVIDER_IDS.windowedMinMax:
89
+ // return addTooltipContent(
90
+ // seriesName, 'windowed min/max', tooltipData, mouseCoords,
91
+ // chartId, container, margin, plotDimensions, tooltipStyle,
92
+ // ordinalUnits
93
+ // )
94
+ //
95
+ //
96
+ // default:
97
+ // return {x: 0, y: 0, contentWidth: 0, contentHeight: 0}
98
+ // }
99
+ });
100
+ }
101
+ }, [
102
+ chartId, container, margin, plotDimensions, registerTooltipContentProvider,
103
+ tooltipStyle,
104
+ yAxesState, axisAssignmentsFor,
105
+ ordinalUnits
106
+ ]);
107
+ return null;
108
+ }
109
+ const dimension = {
110
+ width: 60,
111
+ defaultWidth: 70,
112
+ minWidth: 50,
113
+ maxWidth: 100,
114
+ height: 15,
115
+ defaultHeight: 15,
116
+ minHeight: 10,
117
+ maxHeight: 50
118
+ };
119
+ /**
120
+ * Creates the label to display in the tooltip header
121
+ * @param providerId The tooltip provider ID for which to create the label
122
+ * @return The label to display in the tooltip header
123
+ */
124
+ function labelForProviderId(providerId) {
125
+ switch (providerId) {
126
+ case BAR_CHART_TOOLTIP_PROVIDER_IDS.currentValue:
127
+ return 'current value';
128
+ case BAR_CHART_TOOLTIP_PROVIDER_IDS.meanValue:
129
+ return 'mean value';
130
+ case BAR_CHART_TOOLTIP_PROVIDER_IDS.minMax:
131
+ return 'min/max';
132
+ case BAR_CHART_TOOLTIP_PROVIDER_IDS.windowedMeanValue:
133
+ return 'windowed mean';
134
+ case BAR_CHART_TOOLTIP_PROVIDER_IDS.windowedMinMax:
135
+ return 'windowed min/max';
136
+ default:
137
+ return '';
138
+ }
139
+ }
140
+ /**
141
+ * Callback function that adds tooltip content and returns the tooltip width and text height
142
+ * @param seriesName The name of the series (i.e. the neuron ID)
143
+ * @param providerId The tooltip content provider ID (i.e. the name of the tooltip)
144
+ * @param tooltipData The series data and metadata
145
+ * @param mouseCoords The coordinates of the mouse when the event was fired (relative to the plot container)
146
+ * @param chartId The ID of this chart
147
+ * @param container The plot container (SVGSVGElement)
148
+ * @param margin The plot margins
149
+ * @param tooltipStyle The style properties for the tooltip
150
+ * @param plotDimensions The dimensions of the plot
151
+ * @param ordinalUnits The units of the ordinal data (i.e. "mV")
152
+ * @return The width and text height of the tooltip content
153
+ */
154
+ function addTooltipContent(seriesName, providerId, tooltipData, mouseCoords, chartId, container, margin, plotDimensions, tooltipStyle, ordinalUnits) {
155
+ var _a, _b, _c, _d;
156
+ const [x, y] = mouseCoords;
157
+ const { series, metadata: statistics } = tooltipData;
158
+ const currentDatum = series.length > 0 ? series[series.length - 1] : emptyOrdinalDatum;
159
+ const valueStats = statistics.valueStatsForSeries.get(seriesName) || defaultOrdinalValueStats();
160
+ const windowedValueStats = statistics.windowedValueStatsForSeries.get(seriesName) || defaultOrdinalValueStats();
161
+ const displayOrdinalUnits = ordinalUnits.length > 0 ? ` ${ordinalUnits}` : "";
162
+ // display the neuron ID in the tooltip
163
+ const header = d3.select(container)
164
+ .append("text")
165
+ .attr('id', `tn${currentDatum.time}-${seriesName}-${chartId}`)
166
+ .attr('class', 'tooltip')
167
+ .attr('fill', tooltipStyle.fontColor)
168
+ .attr('font-family', 'sans-serif')
169
+ .attr('font-size', tooltipStyle.fontSize)
170
+ .attr('font-weight', tooltipStyle.fontWeight)
171
+ .text(() => `${seriesName} (${labelForProviderId(providerId)})`);
172
+ // display the series name and the current value
173
+ const text = d3.select(container)
174
+ .append("text")
175
+ .attr('id', `t${currentDatum.time}-${seriesName}-${chartId}`)
176
+ .attr('class', 'tooltip')
177
+ .attr('fill', tooltipStyle.fontColor)
178
+ .attr('font-family', 'sans-serif')
179
+ .attr('font-size', tooltipStyle.fontSize + 2)
180
+ .attr('font-weight', tooltipStyle.fontWeight + 150)
181
+ .text(() => `${formatValue(currentDatum.value)}${displayOrdinalUnits} (${formatTime(currentDatum.time)} ms)`);
182
+ // calculate the max width and height of the text (we'll adjust the coordinates of the header
183
+ // text once we have the table dimensions)
184
+ const headerTextHeight = ((_b = (_a = header.node()) === null || _a === void 0 ? void 0 : _a.getBBox()) === null || _b === void 0 ? void 0 : _b.height) || 0;
185
+ const idHeight = ((_d = (_c = text.node()) === null || _c === void 0 ? void 0 : _c.getBBox()) === null || _d === void 0 ? void 0 : _d.height) || 0;
186
+ const textHeight = headerTextHeight + idHeight;
187
+ const font = {
188
+ size: tooltipStyle.fontSize,
189
+ family: tooltipStyle.fontFamily,
190
+ color: tooltipStyle.fontColor,
191
+ weight: tooltipStyle.fontWeight
192
+ };
193
+ const padding = {
194
+ top: tooltipStyle.paddingTop,
195
+ bottom: tooltipStyle.paddingBottom,
196
+ right: tooltipStyle.paddingRight,
197
+ left: tooltipStyle.paddingLeft
198
+ };
199
+ const units = ordinalUnits.length > 0 ? ` (${ordinalUnits})` : "";
200
+ return DataFrame
201
+ .from([
202
+ [windowedValueStats.count, valueStats.count],
203
+ [windowedValueStats.min.value, valueStats.min.value],
204
+ [windowedValueStats.max.value, valueStats.max.value],
205
+ [windowedValueStats.mean, valueStats.mean],
206
+ ])
207
+ // create the table data that has the column headers
208
+ .flatMap(df => TableData
209
+ .fromDataFrame(df)
210
+ .withColumnHeader(["Windowed", "All"])
211
+ .flatMap(td => td.withRowHeader(["Count", `Min${units}`, `Max${units}`, `Mean${units}`])))
212
+ // add the data formatters for statistics
213
+ .flatMap(tableData => TableFormatter.fromTableData(tableData)
214
+ .addRowFormatters([2, 3, 4], value => formatValue(value))
215
+ .flatMap(tf => tf.addRowFormatter(1, value => formatNumber(value, " ,.0f")))
216
+ .flatMap(tf => tf.formatTable()))
217
+ .map(tableData => TableStyler.fromTableData(tableData)
218
+ .withTableFont(font)
219
+ .withPadding(padding)
220
+ .withColumnHeaderStyle({
221
+ font: Object.assign(Object.assign({}, font), { weight: 650 }),
222
+ padding: { top: 15, bottom: 0 },
223
+ dimension: Object.assign(Object.assign({}, dimension), { maxHeight: 70 }),
224
+ alignText: 'right',
225
+ })
226
+ .withRowHeaderStyle({
227
+ font: Object.assign(Object.assign({}, font), { weight: 650 }),
228
+ padding: { left: 0, right: 10 },
229
+ dimension: dimension,
230
+ alignText: 'left',
231
+ })
232
+ .withColumnStyles([], {
233
+ padding: { left: 10, right: 10 },
234
+ alignText: 'right',
235
+ })
236
+ .withRowStyles([], {
237
+ font,
238
+ dimension: Object.assign(Object.assign({}, dimension), { maxHeight: 20 }),
239
+ padding: { top: 0, bottom: 0 }
240
+ })
241
+ .withCellStyleWhen((_, row, column) => {
242
+ // apply the style to the cell corresponding to the chart element that the user
243
+ // moused-over.
244
+ const coordinates = coordinatesForProviderId(providerId);
245
+ if (coordinates.length > 0) {
246
+ return coordinates.findIndex(c => c.row === row && c.column === column) > -1;
247
+ }
248
+ return false;
249
+ }, { font: Object.assign(Object.assign({}, font), { weight: font.weight + 300 }), alignText: 'right', padding: { left: 10, right: 10, top: 0, bottom: 0 } }, 100)
250
+ .styleTable())
251
+ .flatMap(styledTable => createTable(styledTable, container, `t${currentDatum.time}-${seriesName}-header-${chartId}`, tooltipCoordinates))
252
+ .map(renderingInfo => {
253
+ // the calculated table coordinates and dimensions. we'll move the header text into place,
254
+ // and then move the table down so that it fits
255
+ const { tableX: x, tableY: y, tableWidth: contentWidth, tableHeight: contentHeight } = renderingInfo;
256
+ // set the location of the header (series name) and text (value and time)
257
+ header
258
+ .attr('x', () => x + tooltipStyle.paddingLeft)
259
+ .attr('y', () => y - idHeight);
260
+ text
261
+ .attr('x', () => x + tooltipStyle.paddingLeft)
262
+ .attr('y', () => y);
263
+ return { x, y: y - textHeight, contentWidth, contentHeight: contentHeight + textHeight + padding.top };
264
+ })
265
+ .getOrThrow();
266
+ /**
267
+ * Calculates the coordinates that are affected by the provider ID
268
+ * @param providerId The ID of the provider for the element type being moused-over
269
+ * @return An array of coordinates that are affected by the provider ID
270
+ */
271
+ function coordinatesForProviderId(providerId) {
272
+ switch (providerId) {
273
+ case BAR_CHART_TOOLTIP_PROVIDER_IDS.currentValue:
274
+ return [];
275
+ case BAR_CHART_TOOLTIP_PROVIDER_IDS.meanValue:
276
+ return [{ row: 4, column: 2 }];
277
+ case BAR_CHART_TOOLTIP_PROVIDER_IDS.minMax:
278
+ return [{ row: 2, column: 2 }, { row: 3, column: 2 }];
279
+ case BAR_CHART_TOOLTIP_PROVIDER_IDS.windowedMeanValue:
280
+ return [{ row: 4, column: 1 }];
281
+ case BAR_CHART_TOOLTIP_PROVIDER_IDS.windowedMinMax:
282
+ return [{ row: 2, column: 1 }, { row: 3, column: 1 }];
283
+ default:
284
+ return [];
285
+ }
286
+ }
287
+ /**
288
+ * Calculates the coordinates of the tooltip based on the width and height of the SVG
289
+ * table. This is needed because the tooltip needs to be adjusted relative mouse location
290
+ * when the mouse coordinates are too close to an edge.
291
+ * @param width The SVG table width
292
+ * @param height The SVG table height
293
+ * @return The updated tooltip coordinates
294
+ */
295
+ function tooltipCoordinates(width, height) {
296
+ return [
297
+ tooltipX(x, width, plotDimensions, tooltipStyle, margin),
298
+ tooltipY(y + textHeight + padding.top, height, plotDimensions, tooltipStyle, margin)
299
+ ];
300
+ }
301
+ }
302
+ //# sourceMappingURL=BarPlotTooltipContent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BarPlotTooltipContent.js","sourceRoot":"","sources":["../../../../../src/app/charts/tooltips/BarPlotTooltipContent.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ import { TooltipStyle } from "./tooltipUtils";
2
+ /**
3
+ # Want to write your own tooltip-content component?
4
+
5
+ Here's how to write your own tooltip-content component.
6
+
7
+ To create your own tooltip content `<MyTooltipContent/>` you must do the following:
8
+ 1. Create a react component for your tooltip content (see for example, {@link PoincarePlotTooltipContent}
9
+ as a reference.
10
+ 2. Use the {@link useChart} hook to get the {@link registerTooltipContentProvider} registration function.
11
+ 3. When your tooltip content component (`<MyTooltipContent/>`) mounts, use the {@link registerTooltipContentProvider}
12
+ function to register your tooltip content provider.
13
+ 4. When the chart dimensions, margin, container, etc, change, register your tooltip content provider
14
+ again (you can register as many times as you like because it only uses the last content provider
15
+ registered).
16
+
17
+ That's it! A few more details are below.
18
+
19
+ The {@link registerTooltipContentProvider} function from the {@link useChart} hook allows you to register
20
+ one tooltip content provider. A second call to this function will cause the {@link useChart} hook to drop
21
+ the first one in favor of the second one.
22
+
23
+ The {@link registerTooltipContentProvider} function from the {@link useChart} hook accepts a higher-order
24
+ function that allowing a closure on content/chart-specific data. Specifically, you must hand the
25
+ {@link registerTooltipContentProvider} a function of the form:
26
+
27
+ `(seriesName: string, time: number, series: TimeSeries, mouseCoords: [x: number, y: number]) => TooltipDimensions`
28
+
29
+ Your function to add that actual content will be what this function calls whenever d3 fires a mouse-over
30
+ event on one you the time-series in the chart.
31
+
32
+ The code snippet below is from the `useEffect` call in the {@link PoincarePlotTooltipContent}.
33
+ Note that the first four arguments to the {@link addTooltipContent} function are those provided by the {@link useChart} hook
34
+ when a d3 mouse-over event occurs on one of your series. The additional six arguments are from the closure formed
35
+ on the variables in your component. The `chartId`, `container`, `margin`, and `plotDimensions` are from the
36
+ {@link useChart} hook called by the {@link PoincarePlotTooltipContent} component. The last two
37
+ arguments, `defaultTooltipStyle` and `options` are specific to the {@link PoincarePlotTooltipContent}.
38
+ For example, the `options` property is set by the caller of the {@link PoincarePlotTooltipContent}
39
+ component.
40
+
41
+ ```ts
42
+ // register the tooltip content provider function with the chart hook (useChart) so that
43
+ // it is visible to all children of the Chart (i.e. the <Tooltip>).
44
+ registerTooltipContentProvider(
45
+ (seriesName: string, time: number, series: TimeSeries, mouseCoords: [x: number, y: number]) =>
46
+ addTooltipContent(
47
+ seriesName, time, series, mouseCoords,
48
+ chartId, container, margin, plotDimensions,
49
+ defaultTooltipStyle, options
50
+ )
51
+ )
52
+ ```
53
+
54
+ This pattern allows you to supplement that `useChart` mouse-over callback with information specific to your component.
55
+
56
+ */
57
+ /**
58
+ * Properties for rendering the tooltip content. The properties are applied as
59
+ * shown below.
60
+ * ```
61
+ * series name
62
+ * beforeHeader afterHeader deltaHeader
63
+ * xLabel xValueFormatter xValueFormatter xChangeFormatter
64
+ * yLabel yValueFormatter yValueFormatter yChangeFormatter
65
+ * ```
66
+ */
67
+ interface Props {
68
+ xLabel: string;
69
+ yLabel: string;
70
+ nMinusLagHeader?: string;
71
+ nHeader?: string;
72
+ nPlusLagHeader?: string;
73
+ xValueFormatter?: (value: number) => string;
74
+ yValueFormatter?: (value: number) => string;
75
+ xChangeFormatter?: (value1: number, value2: number) => string;
76
+ yChangeFormatter?: (value1: number, value2: number) => string;
77
+ style?: Partial<TooltipStyle>;
78
+ }
79
+ /**
80
+ * Adds tooltip content as a table. The columns of the table are the "label", the value before
81
+ * the mouse cursor, then value after the mouse cursor, and the difference between the two values.
82
+ * The rows of the table are x-values for the first row, and the y-values for the second row.
83
+ * The table has the following form.
84
+ * ```
85
+ * series name
86
+ * previous current next
87
+ * time x_tb x_ta x_ta - x_tb
88
+ * value y_tb y_ta y_ta - y_tb
89
+ * ```
90
+ *
91
+ * Registers the tooltip-content provider with the `ChartContext` so that when d3 fires a mouse-over
92
+ * event on a series. The content provider is returns the {@link addTooltipContent} function
93
+ * when called. And when called the {@link addTooltipContent} function adds the actual tooltip
94
+ * content to the SVG element.
95
+ * @param props The properties describing the tooltip content
96
+ * @return null
97
+ * @constructor
98
+ */
99
+ export declare function PoincarePlotTooltipContent(props: Props): null;
100
+ export {};