@redsift/charts 9.2.3 → 9.2.4

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/{dist/index.js → index.js} +2 -1
  2. package/index.js.map +1 -0
  3. package/package.json +3 -2
  4. package/coverage/clover.xml +0 -1096
  5. package/coverage/coverage-final.json +0 -60
  6. package/coverage/lcov-report/base.css +0 -224
  7. package/coverage/lcov-report/block-navigation.js +0 -87
  8. package/coverage/lcov-report/components/Arc/Arc.tsx.html +0 -304
  9. package/coverage/lcov-report/components/Arc/index.html +0 -146
  10. package/coverage/lcov-report/components/Arc/index.ts.html +0 -94
  11. package/coverage/lcov-report/components/Arc/styles.ts.html +0 -208
  12. package/coverage/lcov-report/components/Arcs/Arcs.tsx.html +0 -409
  13. package/coverage/lcov-report/components/Arcs/index.html +0 -146
  14. package/coverage/lcov-report/components/Arcs/index.ts.html +0 -94
  15. package/coverage/lcov-report/components/Arcs/styles.ts.html +0 -106
  16. package/coverage/lcov-report/components/Axis/Axis.tsx.html +0 -754
  17. package/coverage/lcov-report/components/Axis/computeTicks.ts.html +0 -481
  18. package/coverage/lcov-report/components/Axis/index.html +0 -176
  19. package/coverage/lcov-report/components/Axis/index.ts.html +0 -94
  20. package/coverage/lcov-report/components/Axis/styles.ts.html +0 -148
  21. package/coverage/lcov-report/components/Axis/types.ts.html +0 -253
  22. package/coverage/lcov-report/components/Bar/Bar.tsx.html +0 -421
  23. package/coverage/lcov-report/components/Bar/index.html +0 -161
  24. package/coverage/lcov-report/components/Bar/index.ts.html +0 -94
  25. package/coverage/lcov-report/components/Bar/styles.ts.html +0 -247
  26. package/coverage/lcov-report/components/Bar/types.ts.html +0 -178
  27. package/coverage/lcov-report/components/BarChart/BarChart.tsx.html +0 -352
  28. package/coverage/lcov-report/components/BarChart/EmptyBarChart.tsx.html +0 -259
  29. package/coverage/lcov-report/components/BarChart/LoadingBarChart.tsx.html +0 -145
  30. package/coverage/lcov-report/components/BarChart/RenderedBarChart.tsx.html +0 -430
  31. package/coverage/lcov-report/components/BarChart/index.html +0 -206
  32. package/coverage/lcov-report/components/BarChart/index.ts.html +0 -94
  33. package/coverage/lcov-report/components/BarChart/styles.ts.html +0 -190
  34. package/coverage/lcov-report/components/BarChart/utils.ts.html +0 -145
  35. package/coverage/lcov-report/components/BottomAxis/BottomAxis.tsx.html +0 -247
  36. package/coverage/lcov-report/components/BottomAxis/index.html +0 -146
  37. package/coverage/lcov-report/components/BottomAxis/index.ts.html +0 -94
  38. package/coverage/lcov-report/components/BottomAxis/styles.ts.html +0 -139
  39. package/coverage/lcov-report/components/ChartContainer/ChartContainer.tsx.html +0 -361
  40. package/coverage/lcov-report/components/ChartContainer/index.html +0 -146
  41. package/coverage/lcov-report/components/ChartContainer/index.ts.html +0 -94
  42. package/coverage/lcov-report/components/ChartContainer/intl/index.html +0 -116
  43. package/coverage/lcov-report/components/ChartContainer/intl/index.ts.html +0 -106
  44. package/coverage/lcov-report/components/ChartContainer/styles.ts.html +0 -208
  45. package/coverage/lcov-report/components/DataPoint/DataPoint.tsx.html +0 -391
  46. package/coverage/lcov-report/components/DataPoint/index.html +0 -146
  47. package/coverage/lcov-report/components/DataPoint/index.ts.html +0 -94
  48. package/coverage/lcov-report/components/DataPoint/styles.ts.html +0 -109
  49. package/coverage/lcov-report/components/Dot/Dot.tsx.html +0 -232
  50. package/coverage/lcov-report/components/Dot/index.html +0 -146
  51. package/coverage/lcov-report/components/Dot/index.ts.html +0 -94
  52. package/coverage/lcov-report/components/Dot/styles.ts.html +0 -184
  53. package/coverage/lcov-report/components/HorizontalBar/HorizontalBar.tsx.html +0 -541
  54. package/coverage/lcov-report/components/HorizontalBar/index.html +0 -161
  55. package/coverage/lcov-report/components/HorizontalBar/index.ts.html +0 -94
  56. package/coverage/lcov-report/components/HorizontalBar/styles.ts.html +0 -187
  57. package/coverage/lcov-report/components/HorizontalBar/types.ts.html +0 -301
  58. package/coverage/lcov-report/components/HorizontalBarChart/HorizontalBarChart.tsx.html +0 -691
  59. package/coverage/lcov-report/components/HorizontalBarChart/index.html +0 -146
  60. package/coverage/lcov-report/components/HorizontalBarChart/index.ts.html +0 -94
  61. package/coverage/lcov-report/components/HorizontalBarChart/styles.ts.html +0 -196
  62. package/coverage/lcov-report/components/HorizontalBarChart/types.ts.html +0 -301
  63. package/coverage/lcov-report/components/Legend/Legend.tsx.html +0 -268
  64. package/coverage/lcov-report/components/Legend/index.html +0 -146
  65. package/coverage/lcov-report/components/Legend/index.ts.html +0 -94
  66. package/coverage/lcov-report/components/Legend/styles.ts.html +0 -130
  67. package/coverage/lcov-report/components/LegendItem/LegendItem.tsx.html +0 -325
  68. package/coverage/lcov-report/components/LegendItem/index.html +0 -146
  69. package/coverage/lcov-report/components/LegendItem/index.ts.html +0 -94
  70. package/coverage/lcov-report/components/LegendItem/styles.ts.html +0 -205
  71. package/coverage/lcov-report/components/PieChart/EmptyPieChart.tsx.html +0 -343
  72. package/coverage/lcov-report/components/PieChart/LoadingPieChart.tsx.html +0 -145
  73. package/coverage/lcov-report/components/PieChart/PieChart.tsx.html +0 -385
  74. package/coverage/lcov-report/components/PieChart/RenderedPieChart.tsx.html +0 -607
  75. package/coverage/lcov-report/components/PieChart/index.html +0 -221
  76. package/coverage/lcov-report/components/PieChart/index.ts.html +0 -94
  77. package/coverage/lcov-report/components/PieChart/styles.ts.html +0 -370
  78. package/coverage/lcov-report/components/PieChart/types.ts.html +0 -367
  79. package/coverage/lcov-report/components/PieChart/utils.ts.html +0 -199
  80. package/coverage/lcov-report/components/ScatterPlot/EmptyScatterPlot.tsx.html +0 -295
  81. package/coverage/lcov-report/components/ScatterPlot/LoadingScatterPlot.tsx.html +0 -145
  82. package/coverage/lcov-report/components/ScatterPlot/RenderedScatterPlot.tsx.html +0 -1048
  83. package/coverage/lcov-report/components/ScatterPlot/ScatterPlot.tsx.html +0 -367
  84. package/coverage/lcov-report/components/ScatterPlot/index.html +0 -221
  85. package/coverage/lcov-report/components/ScatterPlot/index.ts.html +0 -94
  86. package/coverage/lcov-report/components/ScatterPlot/styles.ts.html +0 -190
  87. package/coverage/lcov-report/components/ScatterPlot/types.ts.html +0 -394
  88. package/coverage/lcov-report/components/ScatterPlot/utils.ts.html +0 -388
  89. package/coverage/lcov-report/core/Arc/Arc.tsx.html +0 -304
  90. package/coverage/lcov-report/core/Arc/index.html +0 -146
  91. package/coverage/lcov-report/core/Arc/index.ts.html +0 -94
  92. package/coverage/lcov-report/core/Arc/styles.ts.html +0 -202
  93. package/coverage/lcov-report/core/Arcs/Arcs.tsx.html +0 -421
  94. package/coverage/lcov-report/core/Arcs/index.html +0 -146
  95. package/coverage/lcov-report/core/Arcs/index.ts.html +0 -94
  96. package/coverage/lcov-report/core/Arcs/styles.ts.html +0 -106
  97. package/coverage/lcov-report/core/Axis/Axis.tsx.html +0 -754
  98. package/coverage/lcov-report/core/Axis/computeTicks.ts.html +0 -481
  99. package/coverage/lcov-report/core/Axis/index.html +0 -176
  100. package/coverage/lcov-report/core/Axis/index.ts.html +0 -94
  101. package/coverage/lcov-report/core/Axis/styles.ts.html +0 -145
  102. package/coverage/lcov-report/core/Axis/types.ts.html +0 -253
  103. package/coverage/lcov-report/core/Bar/Bar.tsx.html +0 -421
  104. package/coverage/lcov-report/core/Bar/index.html +0 -161
  105. package/coverage/lcov-report/core/Bar/index.ts.html +0 -94
  106. package/coverage/lcov-report/core/Bar/styles.ts.html +0 -190
  107. package/coverage/lcov-report/core/Bar/types.ts.html +0 -178
  108. package/coverage/lcov-report/core/BottomAxis/BottomAxis.tsx.html +0 -277
  109. package/coverage/lcov-report/core/BottomAxis/index.html +0 -146
  110. package/coverage/lcov-report/core/BottomAxis/index.ts.html +0 -94
  111. package/coverage/lcov-report/core/BottomAxis/styles.ts.html +0 -139
  112. package/coverage/lcov-report/core/ChartConfig/ChartConfig.ts.html +0 -97
  113. package/coverage/lcov-report/core/ChartConfig/index.html +0 -131
  114. package/coverage/lcov-report/core/ChartConfig/index.ts.html +0 -88
  115. package/coverage/lcov-report/core/ChartContainer/ChartContainer.tsx.html +0 -421
  116. package/coverage/lcov-report/core/ChartContainer/index.html +0 -146
  117. package/coverage/lcov-report/core/ChartContainer/index.ts.html +0 -94
  118. package/coverage/lcov-report/core/ChartContainer/intl/index.html +0 -116
  119. package/coverage/lcov-report/core/ChartContainer/intl/index.ts.html +0 -106
  120. package/coverage/lcov-report/core/ChartContainer/styles.ts.html +0 -205
  121. package/coverage/lcov-report/core/DataPoint/DataPoint.tsx.html +0 -442
  122. package/coverage/lcov-report/core/DataPoint/index.html +0 -146
  123. package/coverage/lcov-report/core/DataPoint/index.ts.html +0 -94
  124. package/coverage/lcov-report/core/DataPoint/styles.ts.html +0 -109
  125. package/coverage/lcov-report/core/Dot/Dot.tsx.html +0 -232
  126. package/coverage/lcov-report/core/Dot/index.html +0 -146
  127. package/coverage/lcov-report/core/Dot/index.ts.html +0 -94
  128. package/coverage/lcov-report/core/Dot/styles.ts.html +0 -184
  129. package/coverage/lcov-report/core/Legend/Legend.tsx.html +0 -277
  130. package/coverage/lcov-report/core/Legend/index.html +0 -146
  131. package/coverage/lcov-report/core/Legend/index.ts.html +0 -94
  132. package/coverage/lcov-report/core/Legend/styles.ts.html +0 -172
  133. package/coverage/lcov-report/core/Point/Point.tsx.html +0 -484
  134. package/coverage/lcov-report/core/Point/index.html +0 -146
  135. package/coverage/lcov-report/core/Point/index.ts.html +0 -94
  136. package/coverage/lcov-report/core/Point/styles.ts.html +0 -169
  137. package/coverage/lcov-report/favicon.png +0 -0
  138. package/coverage/lcov-report/gallery/HorizontalBarChart/HorizontalBarChart.tsx.html +0 -706
  139. package/coverage/lcov-report/gallery/HorizontalBarChart/index.html +0 -161
  140. package/coverage/lcov-report/gallery/HorizontalBarChart/index.ts.html +0 -94
  141. package/coverage/lcov-report/gallery/HorizontalBarChart/styles.ts.html +0 -316
  142. package/coverage/lcov-report/gallery/HorizontalBarChart/types.ts.html +0 -310
  143. package/coverage/lcov-report/gallery/PieChart/PieChart.tsx.html +0 -1252
  144. package/coverage/lcov-report/gallery/PieChart/index.html +0 -161
  145. package/coverage/lcov-report/gallery/PieChart/index.ts.html +0 -94
  146. package/coverage/lcov-report/gallery/PieChart/styles.ts.html +0 -517
  147. package/coverage/lcov-report/gallery/PieChart/types.ts.html +0 -388
  148. package/coverage/lcov-report/gallery/ScatterPlot/index.html +0 -146
  149. package/coverage/lcov-report/gallery/ScatterPlot/index.ts.html +0 -94
  150. package/coverage/lcov-report/gallery/ScatterPlot/styles.ts.html +0 -343
  151. package/coverage/lcov-report/gallery/ScatterPlot/types.ts.html +0 -433
  152. package/coverage/lcov-report/hooks/index.html +0 -176
  153. package/coverage/lcov-report/hooks/index.ts.html +0 -97
  154. package/coverage/lcov-report/hooks/useBrush.tsx.html +0 -430
  155. package/coverage/lcov-report/hooks/useColor.tsx.html +0 -163
  156. package/coverage/lcov-report/hooks/useFormatCategoricalData.tsx.html +0 -289
  157. package/coverage/lcov-report/hooks/useIsEmpty.tsx.html +0 -118
  158. package/coverage/lcov-report/hooks/useZoom.tsx.html +0 -235
  159. package/coverage/lcov-report/index.html +0 -311
  160. package/coverage/lcov-report/prettify.css +0 -1
  161. package/coverage/lcov-report/prettify.js +0 -2
  162. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  163. package/coverage/lcov-report/sorter.js +0 -196
  164. package/coverage/lcov.info +0 -2345
  165. package/coverage/storybook/coverage-storybook.json +0 -79382
  166. package/dist/index.js.map +0 -1
  167. package/dist/package.json +0 -98
  168. package/index.ts +0 -1
  169. package/jest.config.js +0 -3
  170. package/rollup.config.js +0 -13
  171. package/src/components/Arc/Arc.test.tsx +0 -80
  172. package/src/components/Arc/Arc.tsx +0 -73
  173. package/src/components/Arc/index.ts +0 -3
  174. package/src/components/Arc/styles.ts +0 -41
  175. package/src/components/Arc/types.ts +0 -18
  176. package/src/components/Arcs/Arcs.stories.tsx +0 -177
  177. package/src/components/Arcs/Arcs.tsx +0 -108
  178. package/src/components/Arcs/index.ts +0 -3
  179. package/src/components/Arcs/styles.ts +0 -7
  180. package/src/components/Arcs/types.ts +0 -26
  181. package/src/components/Axis/Axis.stories.tsx +0 -297
  182. package/src/components/Axis/Axis.tsx +0 -223
  183. package/src/components/Axis/computeTicks.ts +0 -132
  184. package/src/components/Axis/index.ts +0 -3
  185. package/src/components/Axis/styles.ts +0 -21
  186. package/src/components/Axis/types.ts +0 -56
  187. package/src/components/Bar/Bar.stories.tsx +0 -152
  188. package/src/components/Bar/Bar.test.tsx +0 -156
  189. package/src/components/Bar/Bar.tsx +0 -112
  190. package/src/components/Bar/index.ts +0 -3
  191. package/src/components/Bar/styles.ts +0 -54
  192. package/src/components/Bar/types.ts +0 -31
  193. package/src/components/BarChart/BarChart.stories.tsx +0 -74
  194. package/src/components/BarChart/BarChart.test.tsx +0 -178
  195. package/src/components/BarChart/BarChart.tsx +0 -89
  196. package/src/components/BarChart/EmptyBarChart.tsx +0 -58
  197. package/src/components/BarChart/LoadingBarChart.tsx +0 -20
  198. package/src/components/BarChart/RenderedBarChart.tsx +0 -115
  199. package/src/components/BarChart/__snapshots__/BarChart.test.tsx.snap +0 -7028
  200. package/src/components/BarChart/index.ts +0 -3
  201. package/src/components/BarChart/styles.ts +0 -35
  202. package/src/components/BarChart/types.ts +0 -58
  203. package/src/components/BarChart/utils.ts +0 -20
  204. package/src/components/ChartContainer/ChartContainer.stories.tsx +0 -81
  205. package/src/components/ChartContainer/ChartContainer.test.tsx +0 -71
  206. package/src/components/ChartContainer/ChartContainer.tsx +0 -92
  207. package/src/components/ChartContainer/index.ts +0 -3
  208. package/src/components/ChartContainer/intl/en-US.json +0 -3
  209. package/src/components/ChartContainer/intl/fr-FR.json +0 -3
  210. package/src/components/ChartContainer/intl/index.ts +0 -7
  211. package/src/components/ChartContainer/styles.ts +0 -41
  212. package/src/components/ChartContainer/types.ts +0 -26
  213. package/src/components/DataPoint/DataPoint.tsx +0 -102
  214. package/src/components/DataPoint/index.ts +0 -3
  215. package/src/components/DataPoint/styles.ts +0 -8
  216. package/src/components/DataPoint/types.ts +0 -33
  217. package/src/components/Dot/Dot.stories.tsx +0 -157
  218. package/src/components/Dot/Dot.test.tsx +0 -136
  219. package/src/components/Dot/Dot.tsx +0 -49
  220. package/src/components/Dot/index.ts +0 -3
  221. package/src/components/Dot/styles.ts +0 -33
  222. package/src/components/Dot/types.ts +0 -16
  223. package/src/components/Legend/Legend.stories.tsx +0 -108
  224. package/src/components/Legend/Legend.tsx +0 -61
  225. package/src/components/Legend/index.ts +0 -3
  226. package/src/components/Legend/styles.ts +0 -15
  227. package/src/components/Legend/types.ts +0 -27
  228. package/src/components/LegendItem/LegendItem.test.tsx +0 -69
  229. package/src/components/LegendItem/LegendItem.tsx +0 -80
  230. package/src/components/LegendItem/index.ts +0 -3
  231. package/src/components/LegendItem/styles.ts +0 -40
  232. package/src/components/LegendItem/types.ts +0 -30
  233. package/src/components/PieChart/EmptyPieChart.tsx +0 -86
  234. package/src/components/PieChart/LoadingPieChart.tsx +0 -20
  235. package/src/components/PieChart/PieChart.stories.tsx +0 -85
  236. package/src/components/PieChart/PieChart.test.tsx +0 -183
  237. package/src/components/PieChart/PieChart.tsx +0 -100
  238. package/src/components/PieChart/RenderedPieChart.tsx +0 -174
  239. package/src/components/PieChart/__snapshots__/PieChart.test.tsx.snap +0 -21020
  240. package/src/components/PieChart/index.ts +0 -3
  241. package/src/components/PieChart/styles.ts +0 -95
  242. package/src/components/PieChart/types.ts +0 -94
  243. package/src/components/PieChart/utils.ts +0 -38
  244. package/src/components/ScatterPlot/EmptyScatterPlot.tsx +0 -70
  245. package/src/components/ScatterPlot/LoadingScatterPlot.tsx +0 -20
  246. package/src/components/ScatterPlot/RenderedScatterPlot.tsx +0 -321
  247. package/src/components/ScatterPlot/ScatterPlot.stories.tsx +0 -101
  248. package/src/components/ScatterPlot/ScatterPlot.test.tsx +0 -61
  249. package/src/components/ScatterPlot/ScatterPlot.tsx +0 -94
  250. package/src/components/ScatterPlot/__snapshots__/ScatterPlot.test.tsx.snap +0 -91712
  251. package/src/components/ScatterPlot/index.ts +0 -3
  252. package/src/components/ScatterPlot/styles.ts +0 -35
  253. package/src/components/ScatterPlot/types.ts +0 -103
  254. package/src/components/ScatterPlot/utils.ts +0 -101
  255. package/src/config.ts +0 -10
  256. package/src/hooks/index.ts +0 -4
  257. package/src/hooks/useBrush.tsx +0 -115
  258. package/src/hooks/useColor.tsx +0 -26
  259. package/src/hooks/useFormatCategoricalData.tsx +0 -68
  260. package/src/hooks/useZoom.tsx +0 -50
  261. package/src/index.ts +0 -15
  262. package/src/scheme.ts +0 -213
  263. package/src/types/data.ts +0 -52
  264. package/src/types/index.ts +0 -5
  265. package/src/types/legend.ts +0 -19
  266. package/src/types/scale.ts +0 -79
  267. package/src/types/size.ts +0 -17
  268. package/src/types/theme.ts +0 -27
  269. package/tsconfig.json +0 -3
  270. /package/{dist/CONTRIBUTING.md → CONTRIBUTING.md} +0 -0
  271. /package/{dist/index.d.ts → index.d.ts} +0 -0
@@ -1,1048 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en">
4
-
5
- <head>
6
- <title>Code coverage report for components/ScatterPlot/RenderedScatterPlot.tsx</title>
7
- <meta charset="utf-8" />
8
- <link rel="stylesheet" href="../../prettify.css" />
9
- <link rel="stylesheet" href="../../base.css" />
10
- <link rel="shortcut icon" type="image/x-icon" href="../../favicon.png" />
11
- <meta name="viewport" content="width=device-width, initial-scale=1" />
12
- <style type='text/css'>
13
- .coverage-summary .sorter {
14
- background-image: url(../../sort-arrow-sprite.png);
15
- }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <div class='wrapper'>
21
- <div class='pad1'>
22
- <h1><a href="../../index.html">All files</a> / <a href="index.html">components/ScatterPlot</a> RenderedScatterPlot.tsx</h1>
23
- <div class='clearfix'>
24
-
25
- <div class='fl pad1y space-right2'>
26
- <span class="strong">94.93% </span>
27
- <span class="quiet">Statements</span>
28
- <span class='fraction'>75/79</span>
29
- </div>
30
-
31
-
32
- <div class='fl pad1y space-right2'>
33
- <span class="strong">67.02% </span>
34
- <span class="quiet">Branches</span>
35
- <span class='fraction'>63/94</span>
36
- </div>
37
-
38
-
39
- <div class='fl pad1y space-right2'>
40
- <span class="strong">93.33% </span>
41
- <span class="quiet">Functions</span>
42
- <span class='fraction'>14/15</span>
43
- </div>
44
-
45
-
46
- <div class='fl pad1y space-right2'>
47
- <span class="strong">94.36% </span>
48
- <span class="quiet">Lines</span>
49
- <span class='fraction'>67/71</span>
50
- </div>
51
-
52
-
53
- </div>
54
- <p class="quiet">
55
- Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
- </p>
57
- <template id="filterTemplate">
58
- <div class="quiet">
59
- Filter:
60
- <input oninput="onInput()" type="search" id="fileSearch">
61
- </div>
62
- </template>
63
- </div>
64
- <div class='status-line high'></div>
65
- <pre><table class="coverage">
66
- <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
- <a name='L2'></a><a href='#L2'>2</a>
68
- <a name='L3'></a><a href='#L3'>3</a>
69
- <a name='L4'></a><a href='#L4'>4</a>
70
- <a name='L5'></a><a href='#L5'>5</a>
71
- <a name='L6'></a><a href='#L6'>6</a>
72
- <a name='L7'></a><a href='#L7'>7</a>
73
- <a name='L8'></a><a href='#L8'>8</a>
74
- <a name='L9'></a><a href='#L9'>9</a>
75
- <a name='L10'></a><a href='#L10'>10</a>
76
- <a name='L11'></a><a href='#L11'>11</a>
77
- <a name='L12'></a><a href='#L12'>12</a>
78
- <a name='L13'></a><a href='#L13'>13</a>
79
- <a name='L14'></a><a href='#L14'>14</a>
80
- <a name='L15'></a><a href='#L15'>15</a>
81
- <a name='L16'></a><a href='#L16'>16</a>
82
- <a name='L17'></a><a href='#L17'>17</a>
83
- <a name='L18'></a><a href='#L18'>18</a>
84
- <a name='L19'></a><a href='#L19'>19</a>
85
- <a name='L20'></a><a href='#L20'>20</a>
86
- <a name='L21'></a><a href='#L21'>21</a>
87
- <a name='L22'></a><a href='#L22'>22</a>
88
- <a name='L23'></a><a href='#L23'>23</a>
89
- <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a>
91
- <a name='L26'></a><a href='#L26'>26</a>
92
- <a name='L27'></a><a href='#L27'>27</a>
93
- <a name='L28'></a><a href='#L28'>28</a>
94
- <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a>
96
- <a name='L31'></a><a href='#L31'>31</a>
97
- <a name='L32'></a><a href='#L32'>32</a>
98
- <a name='L33'></a><a href='#L33'>33</a>
99
- <a name='L34'></a><a href='#L34'>34</a>
100
- <a name='L35'></a><a href='#L35'>35</a>
101
- <a name='L36'></a><a href='#L36'>36</a>
102
- <a name='L37'></a><a href='#L37'>37</a>
103
- <a name='L38'></a><a href='#L38'>38</a>
104
- <a name='L39'></a><a href='#L39'>39</a>
105
- <a name='L40'></a><a href='#L40'>40</a>
106
- <a name='L41'></a><a href='#L41'>41</a>
107
- <a name='L42'></a><a href='#L42'>42</a>
108
- <a name='L43'></a><a href='#L43'>43</a>
109
- <a name='L44'></a><a href='#L44'>44</a>
110
- <a name='L45'></a><a href='#L45'>45</a>
111
- <a name='L46'></a><a href='#L46'>46</a>
112
- <a name='L47'></a><a href='#L47'>47</a>
113
- <a name='L48'></a><a href='#L48'>48</a>
114
- <a name='L49'></a><a href='#L49'>49</a>
115
- <a name='L50'></a><a href='#L50'>50</a>
116
- <a name='L51'></a><a href='#L51'>51</a>
117
- <a name='L52'></a><a href='#L52'>52</a>
118
- <a name='L53'></a><a href='#L53'>53</a>
119
- <a name='L54'></a><a href='#L54'>54</a>
120
- <a name='L55'></a><a href='#L55'>55</a>
121
- <a name='L56'></a><a href='#L56'>56</a>
122
- <a name='L57'></a><a href='#L57'>57</a>
123
- <a name='L58'></a><a href='#L58'>58</a>
124
- <a name='L59'></a><a href='#L59'>59</a>
125
- <a name='L60'></a><a href='#L60'>60</a>
126
- <a name='L61'></a><a href='#L61'>61</a>
127
- <a name='L62'></a><a href='#L62'>62</a>
128
- <a name='L63'></a><a href='#L63'>63</a>
129
- <a name='L64'></a><a href='#L64'>64</a>
130
- <a name='L65'></a><a href='#L65'>65</a>
131
- <a name='L66'></a><a href='#L66'>66</a>
132
- <a name='L67'></a><a href='#L67'>67</a>
133
- <a name='L68'></a><a href='#L68'>68</a>
134
- <a name='L69'></a><a href='#L69'>69</a>
135
- <a name='L70'></a><a href='#L70'>70</a>
136
- <a name='L71'></a><a href='#L71'>71</a>
137
- <a name='L72'></a><a href='#L72'>72</a>
138
- <a name='L73'></a><a href='#L73'>73</a>
139
- <a name='L74'></a><a href='#L74'>74</a>
140
- <a name='L75'></a><a href='#L75'>75</a>
141
- <a name='L76'></a><a href='#L76'>76</a>
142
- <a name='L77'></a><a href='#L77'>77</a>
143
- <a name='L78'></a><a href='#L78'>78</a>
144
- <a name='L79'></a><a href='#L79'>79</a>
145
- <a name='L80'></a><a href='#L80'>80</a>
146
- <a name='L81'></a><a href='#L81'>81</a>
147
- <a name='L82'></a><a href='#L82'>82</a>
148
- <a name='L83'></a><a href='#L83'>83</a>
149
- <a name='L84'></a><a href='#L84'>84</a>
150
- <a name='L85'></a><a href='#L85'>85</a>
151
- <a name='L86'></a><a href='#L86'>86</a>
152
- <a name='L87'></a><a href='#L87'>87</a>
153
- <a name='L88'></a><a href='#L88'>88</a>
154
- <a name='L89'></a><a href='#L89'>89</a>
155
- <a name='L90'></a><a href='#L90'>90</a>
156
- <a name='L91'></a><a href='#L91'>91</a>
157
- <a name='L92'></a><a href='#L92'>92</a>
158
- <a name='L93'></a><a href='#L93'>93</a>
159
- <a name='L94'></a><a href='#L94'>94</a>
160
- <a name='L95'></a><a href='#L95'>95</a>
161
- <a name='L96'></a><a href='#L96'>96</a>
162
- <a name='L97'></a><a href='#L97'>97</a>
163
- <a name='L98'></a><a href='#L98'>98</a>
164
- <a name='L99'></a><a href='#L99'>99</a>
165
- <a name='L100'></a><a href='#L100'>100</a>
166
- <a name='L101'></a><a href='#L101'>101</a>
167
- <a name='L102'></a><a href='#L102'>102</a>
168
- <a name='L103'></a><a href='#L103'>103</a>
169
- <a name='L104'></a><a href='#L104'>104</a>
170
- <a name='L105'></a><a href='#L105'>105</a>
171
- <a name='L106'></a><a href='#L106'>106</a>
172
- <a name='L107'></a><a href='#L107'>107</a>
173
- <a name='L108'></a><a href='#L108'>108</a>
174
- <a name='L109'></a><a href='#L109'>109</a>
175
- <a name='L110'></a><a href='#L110'>110</a>
176
- <a name='L111'></a><a href='#L111'>111</a>
177
- <a name='L112'></a><a href='#L112'>112</a>
178
- <a name='L113'></a><a href='#L113'>113</a>
179
- <a name='L114'></a><a href='#L114'>114</a>
180
- <a name='L115'></a><a href='#L115'>115</a>
181
- <a name='L116'></a><a href='#L116'>116</a>
182
- <a name='L117'></a><a href='#L117'>117</a>
183
- <a name='L118'></a><a href='#L118'>118</a>
184
- <a name='L119'></a><a href='#L119'>119</a>
185
- <a name='L120'></a><a href='#L120'>120</a>
186
- <a name='L121'></a><a href='#L121'>121</a>
187
- <a name='L122'></a><a href='#L122'>122</a>
188
- <a name='L123'></a><a href='#L123'>123</a>
189
- <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a>
191
- <a name='L126'></a><a href='#L126'>126</a>
192
- <a name='L127'></a><a href='#L127'>127</a>
193
- <a name='L128'></a><a href='#L128'>128</a>
194
- <a name='L129'></a><a href='#L129'>129</a>
195
- <a name='L130'></a><a href='#L130'>130</a>
196
- <a name='L131'></a><a href='#L131'>131</a>
197
- <a name='L132'></a><a href='#L132'>132</a>
198
- <a name='L133'></a><a href='#L133'>133</a>
199
- <a name='L134'></a><a href='#L134'>134</a>
200
- <a name='L135'></a><a href='#L135'>135</a>
201
- <a name='L136'></a><a href='#L136'>136</a>
202
- <a name='L137'></a><a href='#L137'>137</a>
203
- <a name='L138'></a><a href='#L138'>138</a>
204
- <a name='L139'></a><a href='#L139'>139</a>
205
- <a name='L140'></a><a href='#L140'>140</a>
206
- <a name='L141'></a><a href='#L141'>141</a>
207
- <a name='L142'></a><a href='#L142'>142</a>
208
- <a name='L143'></a><a href='#L143'>143</a>
209
- <a name='L144'></a><a href='#L144'>144</a>
210
- <a name='L145'></a><a href='#L145'>145</a>
211
- <a name='L146'></a><a href='#L146'>146</a>
212
- <a name='L147'></a><a href='#L147'>147</a>
213
- <a name='L148'></a><a href='#L148'>148</a>
214
- <a name='L149'></a><a href='#L149'>149</a>
215
- <a name='L150'></a><a href='#L150'>150</a>
216
- <a name='L151'></a><a href='#L151'>151</a>
217
- <a name='L152'></a><a href='#L152'>152</a>
218
- <a name='L153'></a><a href='#L153'>153</a>
219
- <a name='L154'></a><a href='#L154'>154</a>
220
- <a name='L155'></a><a href='#L155'>155</a>
221
- <a name='L156'></a><a href='#L156'>156</a>
222
- <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a>
224
- <a name='L159'></a><a href='#L159'>159</a>
225
- <a name='L160'></a><a href='#L160'>160</a>
226
- <a name='L161'></a><a href='#L161'>161</a>
227
- <a name='L162'></a><a href='#L162'>162</a>
228
- <a name='L163'></a><a href='#L163'>163</a>
229
- <a name='L164'></a><a href='#L164'>164</a>
230
- <a name='L165'></a><a href='#L165'>165</a>
231
- <a name='L166'></a><a href='#L166'>166</a>
232
- <a name='L167'></a><a href='#L167'>167</a>
233
- <a name='L168'></a><a href='#L168'>168</a>
234
- <a name='L169'></a><a href='#L169'>169</a>
235
- <a name='L170'></a><a href='#L170'>170</a>
236
- <a name='L171'></a><a href='#L171'>171</a>
237
- <a name='L172'></a><a href='#L172'>172</a>
238
- <a name='L173'></a><a href='#L173'>173</a>
239
- <a name='L174'></a><a href='#L174'>174</a>
240
- <a name='L175'></a><a href='#L175'>175</a>
241
- <a name='L176'></a><a href='#L176'>176</a>
242
- <a name='L177'></a><a href='#L177'>177</a>
243
- <a name='L178'></a><a href='#L178'>178</a>
244
- <a name='L179'></a><a href='#L179'>179</a>
245
- <a name='L180'></a><a href='#L180'>180</a>
246
- <a name='L181'></a><a href='#L181'>181</a>
247
- <a name='L182'></a><a href='#L182'>182</a>
248
- <a name='L183'></a><a href='#L183'>183</a>
249
- <a name='L184'></a><a href='#L184'>184</a>
250
- <a name='L185'></a><a href='#L185'>185</a>
251
- <a name='L186'></a><a href='#L186'>186</a>
252
- <a name='L187'></a><a href='#L187'>187</a>
253
- <a name='L188'></a><a href='#L188'>188</a>
254
- <a name='L189'></a><a href='#L189'>189</a>
255
- <a name='L190'></a><a href='#L190'>190</a>
256
- <a name='L191'></a><a href='#L191'>191</a>
257
- <a name='L192'></a><a href='#L192'>192</a>
258
- <a name='L193'></a><a href='#L193'>193</a>
259
- <a name='L194'></a><a href='#L194'>194</a>
260
- <a name='L195'></a><a href='#L195'>195</a>
261
- <a name='L196'></a><a href='#L196'>196</a>
262
- <a name='L197'></a><a href='#L197'>197</a>
263
- <a name='L198'></a><a href='#L198'>198</a>
264
- <a name='L199'></a><a href='#L199'>199</a>
265
- <a name='L200'></a><a href='#L200'>200</a>
266
- <a name='L201'></a><a href='#L201'>201</a>
267
- <a name='L202'></a><a href='#L202'>202</a>
268
- <a name='L203'></a><a href='#L203'>203</a>
269
- <a name='L204'></a><a href='#L204'>204</a>
270
- <a name='L205'></a><a href='#L205'>205</a>
271
- <a name='L206'></a><a href='#L206'>206</a>
272
- <a name='L207'></a><a href='#L207'>207</a>
273
- <a name='L208'></a><a href='#L208'>208</a>
274
- <a name='L209'></a><a href='#L209'>209</a>
275
- <a name='L210'></a><a href='#L210'>210</a>
276
- <a name='L211'></a><a href='#L211'>211</a>
277
- <a name='L212'></a><a href='#L212'>212</a>
278
- <a name='L213'></a><a href='#L213'>213</a>
279
- <a name='L214'></a><a href='#L214'>214</a>
280
- <a name='L215'></a><a href='#L215'>215</a>
281
- <a name='L216'></a><a href='#L216'>216</a>
282
- <a name='L217'></a><a href='#L217'>217</a>
283
- <a name='L218'></a><a href='#L218'>218</a>
284
- <a name='L219'></a><a href='#L219'>219</a>
285
- <a name='L220'></a><a href='#L220'>220</a>
286
- <a name='L221'></a><a href='#L221'>221</a>
287
- <a name='L222'></a><a href='#L222'>222</a>
288
- <a name='L223'></a><a href='#L223'>223</a>
289
- <a name='L224'></a><a href='#L224'>224</a>
290
- <a name='L225'></a><a href='#L225'>225</a>
291
- <a name='L226'></a><a href='#L226'>226</a>
292
- <a name='L227'></a><a href='#L227'>227</a>
293
- <a name='L228'></a><a href='#L228'>228</a>
294
- <a name='L229'></a><a href='#L229'>229</a>
295
- <a name='L230'></a><a href='#L230'>230</a>
296
- <a name='L231'></a><a href='#L231'>231</a>
297
- <a name='L232'></a><a href='#L232'>232</a>
298
- <a name='L233'></a><a href='#L233'>233</a>
299
- <a name='L234'></a><a href='#L234'>234</a>
300
- <a name='L235'></a><a href='#L235'>235</a>
301
- <a name='L236'></a><a href='#L236'>236</a>
302
- <a name='L237'></a><a href='#L237'>237</a>
303
- <a name='L238'></a><a href='#L238'>238</a>
304
- <a name='L239'></a><a href='#L239'>239</a>
305
- <a name='L240'></a><a href='#L240'>240</a>
306
- <a name='L241'></a><a href='#L241'>241</a>
307
- <a name='L242'></a><a href='#L242'>242</a>
308
- <a name='L243'></a><a href='#L243'>243</a>
309
- <a name='L244'></a><a href='#L244'>244</a>
310
- <a name='L245'></a><a href='#L245'>245</a>
311
- <a name='L246'></a><a href='#L246'>246</a>
312
- <a name='L247'></a><a href='#L247'>247</a>
313
- <a name='L248'></a><a href='#L248'>248</a>
314
- <a name='L249'></a><a href='#L249'>249</a>
315
- <a name='L250'></a><a href='#L250'>250</a>
316
- <a name='L251'></a><a href='#L251'>251</a>
317
- <a name='L252'></a><a href='#L252'>252</a>
318
- <a name='L253'></a><a href='#L253'>253</a>
319
- <a name='L254'></a><a href='#L254'>254</a>
320
- <a name='L255'></a><a href='#L255'>255</a>
321
- <a name='L256'></a><a href='#L256'>256</a>
322
- <a name='L257'></a><a href='#L257'>257</a>
323
- <a name='L258'></a><a href='#L258'>258</a>
324
- <a name='L259'></a><a href='#L259'>259</a>
325
- <a name='L260'></a><a href='#L260'>260</a>
326
- <a name='L261'></a><a href='#L261'>261</a>
327
- <a name='L262'></a><a href='#L262'>262</a>
328
- <a name='L263'></a><a href='#L263'>263</a>
329
- <a name='L264'></a><a href='#L264'>264</a>
330
- <a name='L265'></a><a href='#L265'>265</a>
331
- <a name='L266'></a><a href='#L266'>266</a>
332
- <a name='L267'></a><a href='#L267'>267</a>
333
- <a name='L268'></a><a href='#L268'>268</a>
334
- <a name='L269'></a><a href='#L269'>269</a>
335
- <a name='L270'></a><a href='#L270'>270</a>
336
- <a name='L271'></a><a href='#L271'>271</a>
337
- <a name='L272'></a><a href='#L272'>272</a>
338
- <a name='L273'></a><a href='#L273'>273</a>
339
- <a name='L274'></a><a href='#L274'>274</a>
340
- <a name='L275'></a><a href='#L275'>275</a>
341
- <a name='L276'></a><a href='#L276'>276</a>
342
- <a name='L277'></a><a href='#L277'>277</a>
343
- <a name='L278'></a><a href='#L278'>278</a>
344
- <a name='L279'></a><a href='#L279'>279</a>
345
- <a name='L280'></a><a href='#L280'>280</a>
346
- <a name='L281'></a><a href='#L281'>281</a>
347
- <a name='L282'></a><a href='#L282'>282</a>
348
- <a name='L283'></a><a href='#L283'>283</a>
349
- <a name='L284'></a><a href='#L284'>284</a>
350
- <a name='L285'></a><a href='#L285'>285</a>
351
- <a name='L286'></a><a href='#L286'>286</a>
352
- <a name='L287'></a><a href='#L287'>287</a>
353
- <a name='L288'></a><a href='#L288'>288</a>
354
- <a name='L289'></a><a href='#L289'>289</a>
355
- <a name='L290'></a><a href='#L290'>290</a>
356
- <a name='L291'></a><a href='#L291'>291</a>
357
- <a name='L292'></a><a href='#L292'>292</a>
358
- <a name='L293'></a><a href='#L293'>293</a>
359
- <a name='L294'></a><a href='#L294'>294</a>
360
- <a name='L295'></a><a href='#L295'>295</a>
361
- <a name='L296'></a><a href='#L296'>296</a>
362
- <a name='L297'></a><a href='#L297'>297</a>
363
- <a name='L298'></a><a href='#L298'>298</a>
364
- <a name='L299'></a><a href='#L299'>299</a>
365
- <a name='L300'></a><a href='#L300'>300</a>
366
- <a name='L301'></a><a href='#L301'>301</a>
367
- <a name='L302'></a><a href='#L302'>302</a>
368
- <a name='L303'></a><a href='#L303'>303</a>
369
- <a name='L304'></a><a href='#L304'>304</a>
370
- <a name='L305'></a><a href='#L305'>305</a>
371
- <a name='L306'></a><a href='#L306'>306</a>
372
- <a name='L307'></a><a href='#L307'>307</a>
373
- <a name='L308'></a><a href='#L308'>308</a>
374
- <a name='L309'></a><a href='#L309'>309</a>
375
- <a name='L310'></a><a href='#L310'>310</a>
376
- <a name='L311'></a><a href='#L311'>311</a>
377
- <a name='L312'></a><a href='#L312'>312</a>
378
- <a name='L313'></a><a href='#L313'>313</a>
379
- <a name='L314'></a><a href='#L314'>314</a>
380
- <a name='L315'></a><a href='#L315'>315</a>
381
- <a name='L316'></a><a href='#L316'>316</a>
382
- <a name='L317'></a><a href='#L317'>317</a>
383
- <a name='L318'></a><a href='#L318'>318</a>
384
- <a name='L319'></a><a href='#L319'>319</a>
385
- <a name='L320'></a><a href='#L320'>320</a>
386
- <a name='L321'></a><a href='#L321'>321</a>
387
- <a name='L322'></a><a href='#L322'>322</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
388
- <span class="cline-any cline-yes">1x</span>
389
- <span class="cline-any cline-neutral">&nbsp;</span>
390
- <span class="cline-any cline-neutral">&nbsp;</span>
391
- <span class="cline-any cline-neutral">&nbsp;</span>
392
- <span class="cline-any cline-neutral">&nbsp;</span>
393
- <span class="cline-any cline-neutral">&nbsp;</span>
394
- <span class="cline-any cline-neutral">&nbsp;</span>
395
- <span class="cline-any cline-neutral">&nbsp;</span>
396
- <span class="cline-any cline-neutral">&nbsp;</span>
397
- <span class="cline-any cline-neutral">&nbsp;</span>
398
- <span class="cline-any cline-neutral">&nbsp;</span>
399
- <span class="cline-any cline-yes">1x</span>
400
- <span class="cline-any cline-yes">1x</span>
401
- <span class="cline-any cline-yes">1x</span>
402
- <span class="cline-any cline-yes">1x</span>
403
- <span class="cline-any cline-yes">1x</span>
404
- <span class="cline-any cline-yes">1x</span>
405
- <span class="cline-any cline-yes">1x</span>
406
- <span class="cline-any cline-yes">1x</span>
407
- <span class="cline-any cline-yes">1x</span>
408
- <span class="cline-any cline-yes">1x</span>
409
- <span class="cline-any cline-yes">1x</span>
410
- <span class="cline-any cline-yes">1x</span>
411
- <span class="cline-any cline-neutral">&nbsp;</span>
412
- <span class="cline-any cline-neutral">&nbsp;</span>
413
- <span class="cline-any cline-neutral">&nbsp;</span>
414
- <span class="cline-any cline-yes">1x</span>
415
- <span class="cline-any cline-neutral">&nbsp;</span>
416
- <span class="cline-any cline-neutral">&nbsp;</span>
417
- <span class="cline-any cline-neutral">&nbsp;</span>
418
- <span class="cline-any cline-neutral">&nbsp;</span>
419
- <span class="cline-any cline-neutral">&nbsp;</span>
420
- <span class="cline-any cline-neutral">&nbsp;</span>
421
- <span class="cline-any cline-neutral">&nbsp;</span>
422
- <span class="cline-any cline-neutral">&nbsp;</span>
423
- <span class="cline-any cline-neutral">&nbsp;</span>
424
- <span class="cline-any cline-neutral">&nbsp;</span>
425
- <span class="cline-any cline-neutral">&nbsp;</span>
426
- <span class="cline-any cline-neutral">&nbsp;</span>
427
- <span class="cline-any cline-neutral">&nbsp;</span>
428
- <span class="cline-any cline-neutral">&nbsp;</span>
429
- <span class="cline-any cline-neutral">&nbsp;</span>
430
- <span class="cline-any cline-neutral">&nbsp;</span>
431
- <span class="cline-any cline-neutral">&nbsp;</span>
432
- <span class="cline-any cline-neutral">&nbsp;</span>
433
- <span class="cline-any cline-neutral">&nbsp;</span>
434
- <span class="cline-any cline-neutral">&nbsp;</span>
435
- <span class="cline-any cline-neutral">&nbsp;</span>
436
- <span class="cline-any cline-neutral">&nbsp;</span>
437
- <span class="cline-any cline-neutral">&nbsp;</span>
438
- <span class="cline-any cline-yes">24x</span>
439
- <span class="cline-any cline-yes">528x</span>
440
- <span class="cline-any cline-neutral">&nbsp;</span>
441
- <span class="cline-any cline-yes">24x</span>
442
- <span class="cline-any cline-neutral">&nbsp;</span>
443
- <span class="cline-any cline-yes">24x</span>
444
- <span class="cline-any cline-neutral">&nbsp;</span>
445
- <span class="cline-any cline-yes">2400x</span>
446
- <span class="cline-any cline-neutral">&nbsp;</span>
447
- <span class="cline-any cline-neutral">&nbsp;</span>
448
- <span class="cline-any cline-neutral">&nbsp;</span>
449
- <span class="cline-any cline-neutral">&nbsp;</span>
450
- <span class="cline-any cline-neutral">&nbsp;</span>
451
- <span class="cline-any cline-neutral">&nbsp;</span>
452
- <span class="cline-any cline-yes">24x</span>
453
- <span class="cline-any cline-yes">24x</span>
454
- <span class="cline-any cline-neutral">&nbsp;</span>
455
- <span class="cline-any cline-neutral">&nbsp;</span>
456
- <span class="cline-any cline-yes">24x</span>
457
- <span class="cline-any cline-yes">24x</span>
458
- <span class="cline-any cline-yes">24x</span>
459
- <span class="cline-any cline-yes">24x</span>
460
- <span class="cline-any cline-neutral">&nbsp;</span>
461
- <span class="cline-any cline-neutral">&nbsp;</span>
462
- <span class="cline-any cline-neutral">&nbsp;</span>
463
- <span class="cline-any cline-neutral">&nbsp;</span>
464
- <span class="cline-any cline-neutral">&nbsp;</span>
465
- <span class="cline-any cline-yes">24x</span>
466
- <span class="cline-any cline-yes">24x</span>
467
- <span class="cline-any cline-yes">24x</span>
468
- <span class="cline-any cline-neutral">&nbsp;</span>
469
- <span class="cline-any cline-yes">24x</span>
470
- <span class="cline-any cline-yes">2376x</span>
471
- <span class="cline-any cline-yes">24x</span>
472
- <span class="cline-any cline-yes">24x</span>
473
- <span class="cline-any cline-yes">24x</span>
474
- <span class="cline-any cline-yes">24x</span>
475
- <span class="cline-any cline-neutral">&nbsp;</span>
476
- <span class="cline-any cline-yes">24x</span>
477
- <span class="cline-any cline-yes">2376x</span>
478
- <span class="cline-any cline-yes">24x</span>
479
- <span class="cline-any cline-yes">24x</span>
480
- <span class="cline-any cline-yes">24x</span>
481
- <span class="cline-any cline-yes">24x</span>
482
- <span class="cline-any cline-neutral">&nbsp;</span>
483
- <span class="cline-any cline-neutral">&nbsp;</span>
484
- <span class="cline-any cline-yes">24x</span>
485
- <span class="cline-any cline-yes">24x</span>
486
- <span class="cline-any cline-yes">24x</span>
487
- <span class="cline-any cline-neutral">&nbsp;</span>
488
- <span class="cline-any cline-neutral">&nbsp;</span>
489
- <span class="cline-any cline-neutral">&nbsp;</span>
490
- <span class="cline-any cline-neutral">&nbsp;</span>
491
- <span class="cline-any cline-neutral">&nbsp;</span>
492
- <span class="cline-any cline-yes">24x</span>
493
- <span class="cline-any cline-yes">24x</span>
494
- <span class="cline-any cline-yes">24x</span>
495
- <span class="cline-any cline-yes">24x</span>
496
- <span class="cline-any cline-neutral">&nbsp;</span>
497
- <span class="cline-any cline-neutral">&nbsp;</span>
498
- <span class="cline-any cline-neutral">&nbsp;</span>
499
- <span class="cline-any cline-neutral">&nbsp;</span>
500
- <span class="cline-any cline-neutral">&nbsp;</span>
501
- <span class="cline-any cline-no">&nbsp;</span>
502
- <span class="cline-any cline-no">&nbsp;</span>
503
- <span class="cline-any cline-neutral">&nbsp;</span>
504
- <span class="cline-any cline-no">&nbsp;</span>
505
- <span class="cline-any cline-neutral">&nbsp;</span>
506
- <span class="cline-any cline-neutral">&nbsp;</span>
507
- <span class="cline-any cline-neutral">&nbsp;</span>
508
- <span class="cline-any cline-yes">24x</span>
509
- <span class="cline-any cline-neutral">&nbsp;</span>
510
- <span class="cline-any cline-neutral">&nbsp;</span>
511
- <span class="cline-any cline-neutral">&nbsp;</span>
512
- <span class="cline-any cline-neutral">&nbsp;</span>
513
- <span class="cline-any cline-neutral">&nbsp;</span>
514
- <span class="cline-any cline-neutral">&nbsp;</span>
515
- <span class="cline-any cline-neutral">&nbsp;</span>
516
- <span class="cline-any cline-neutral">&nbsp;</span>
517
- <span class="cline-any cline-neutral">&nbsp;</span>
518
- <span class="cline-any cline-neutral">&nbsp;</span>
519
- <span class="cline-any cline-neutral">&nbsp;</span>
520
- <span class="cline-any cline-neutral">&nbsp;</span>
521
- <span class="cline-any cline-neutral">&nbsp;</span>
522
- <span class="cline-any cline-neutral">&nbsp;</span>
523
- <span class="cline-any cline-neutral">&nbsp;</span>
524
- <span class="cline-any cline-yes">24x</span>
525
- <span class="cline-any cline-yes">3816x</span>
526
- <span class="cline-any cline-yes">1188x</span>
527
- <span class="cline-any cline-neutral">&nbsp;</span>
528
- <span class="cline-any cline-neutral">&nbsp;</span>
529
- <span class="cline-any cline-neutral">&nbsp;</span>
530
- <span class="cline-any cline-neutral">&nbsp;</span>
531
- <span class="cline-any cline-neutral">&nbsp;</span>
532
- <span class="cline-any cline-neutral">&nbsp;</span>
533
- <span class="cline-any cline-neutral">&nbsp;</span>
534
- <span class="cline-any cline-neutral">&nbsp;</span>
535
- <span class="cline-any cline-neutral">&nbsp;</span>
536
- <span class="cline-any cline-neutral">&nbsp;</span>
537
- <span class="cline-any cline-yes">24x</span>
538
- <span class="cline-any cline-neutral">&nbsp;</span>
539
- <span class="cline-any cline-yes">936x</span>
540
- <span class="cline-any cline-neutral">&nbsp;</span>
541
- <span class="cline-any cline-neutral">&nbsp;</span>
542
- <span class="cline-any cline-yes">24x</span>
543
- <span class="cline-any cline-yes">24x</span>
544
- <span class="cline-any cline-yes">24x</span>
545
- <span class="cline-any cline-yes">168x</span>
546
- <span class="cline-any cline-neutral">&nbsp;</span>
547
- <span class="cline-any cline-neutral">&nbsp;</span>
548
- <span class="cline-any cline-neutral">&nbsp;</span>
549
- <span class="cline-any cline-yes">24x</span>
550
- <span class="cline-any cline-neutral">&nbsp;</span>
551
- <span class="cline-any cline-yes">24x</span>
552
- <span class="cline-any cline-neutral">&nbsp;</span>
553
- <span class="cline-any cline-neutral">&nbsp;</span>
554
- <span class="cline-any cline-neutral">&nbsp;</span>
555
- <span class="cline-any cline-neutral">&nbsp;</span>
556
- <span class="cline-any cline-neutral">&nbsp;</span>
557
- <span class="cline-any cline-neutral">&nbsp;</span>
558
- <span class="cline-any cline-neutral">&nbsp;</span>
559
- <span class="cline-any cline-neutral">&nbsp;</span>
560
- <span class="cline-any cline-neutral">&nbsp;</span>
561
- <span class="cline-any cline-neutral">&nbsp;</span>
562
- <span class="cline-any cline-neutral">&nbsp;</span>
563
- <span class="cline-any cline-neutral">&nbsp;</span>
564
- <span class="cline-any cline-neutral">&nbsp;</span>
565
- <span class="cline-any cline-neutral">&nbsp;</span>
566
- <span class="cline-any cline-neutral">&nbsp;</span>
567
- <span class="cline-any cline-neutral">&nbsp;</span>
568
- <span class="cline-any cline-neutral">&nbsp;</span>
569
- <span class="cline-any cline-neutral">&nbsp;</span>
570
- <span class="cline-any cline-neutral">&nbsp;</span>
571
- <span class="cline-any cline-neutral">&nbsp;</span>
572
- <span class="cline-any cline-neutral">&nbsp;</span>
573
- <span class="cline-any cline-neutral">&nbsp;</span>
574
- <span class="cline-any cline-neutral">&nbsp;</span>
575
- <span class="cline-any cline-neutral">&nbsp;</span>
576
- <span class="cline-any cline-neutral">&nbsp;</span>
577
- <span class="cline-any cline-neutral">&nbsp;</span>
578
- <span class="cline-any cline-neutral">&nbsp;</span>
579
- <span class="cline-any cline-neutral">&nbsp;</span>
580
- <span class="cline-any cline-neutral">&nbsp;</span>
581
- <span class="cline-any cline-neutral">&nbsp;</span>
582
- <span class="cline-any cline-neutral">&nbsp;</span>
583
- <span class="cline-any cline-neutral">&nbsp;</span>
584
- <span class="cline-any cline-neutral">&nbsp;</span>
585
- <span class="cline-any cline-neutral">&nbsp;</span>
586
- <span class="cline-any cline-neutral">&nbsp;</span>
587
- <span class="cline-any cline-neutral">&nbsp;</span>
588
- <span class="cline-any cline-neutral">&nbsp;</span>
589
- <span class="cline-any cline-neutral">&nbsp;</span>
590
- <span class="cline-any cline-neutral">&nbsp;</span>
591
- <span class="cline-any cline-neutral">&nbsp;</span>
592
- <span class="cline-any cline-neutral">&nbsp;</span>
593
- <span class="cline-any cline-neutral">&nbsp;</span>
594
- <span class="cline-any cline-neutral">&nbsp;</span>
595
- <span class="cline-any cline-neutral">&nbsp;</span>
596
- <span class="cline-any cline-yes">2124x</span>
597
- <span class="cline-any cline-yes">2124x</span>
598
- <span class="cline-any cline-neutral">&nbsp;</span>
599
- <span class="cline-any cline-yes">2124x</span>
600
- <span class="cline-any cline-neutral">&nbsp;</span>
601
- <span class="cline-any cline-neutral">&nbsp;</span>
602
- <span class="cline-any cline-neutral">&nbsp;</span>
603
- <span class="cline-any cline-neutral">&nbsp;</span>
604
- <span class="cline-any cline-neutral">&nbsp;</span>
605
- <span class="cline-any cline-no">&nbsp;</span>
606
- <span class="cline-any cline-neutral">&nbsp;</span>
607
- <span class="cline-any cline-neutral">&nbsp;</span>
608
- <span class="cline-any cline-yes">2124x</span>
609
- <span class="cline-any cline-neutral">&nbsp;</span>
610
- <span class="cline-any cline-neutral">&nbsp;</span>
611
- <span class="cline-any cline-neutral">&nbsp;</span>
612
- <span class="cline-any cline-neutral">&nbsp;</span>
613
- <span class="cline-any cline-yes">5304x</span>
614
- <span class="cline-any cline-neutral">&nbsp;</span>
615
- <span class="cline-any cline-neutral">&nbsp;</span>
616
- <span class="cline-any cline-neutral">&nbsp;</span>
617
- <span class="cline-any cline-neutral">&nbsp;</span>
618
- <span class="cline-any cline-neutral">&nbsp;</span>
619
- <span class="cline-any cline-neutral">&nbsp;</span>
620
- <span class="cline-any cline-neutral">&nbsp;</span>
621
- <span class="cline-any cline-neutral">&nbsp;</span>
622
- <span class="cline-any cline-yes">2124x</span>
623
- <span class="cline-any cline-neutral">&nbsp;</span>
624
- <span class="cline-any cline-neutral">&nbsp;</span>
625
- <span class="cline-any cline-neutral">&nbsp;</span>
626
- <span class="cline-any cline-neutral">&nbsp;</span>
627
- <span class="cline-any cline-neutral">&nbsp;</span>
628
- <span class="cline-any cline-neutral">&nbsp;</span>
629
- <span class="cline-any cline-neutral">&nbsp;</span>
630
- <span class="cline-any cline-neutral">&nbsp;</span>
631
- <span class="cline-any cline-neutral">&nbsp;</span>
632
- <span class="cline-any cline-neutral">&nbsp;</span>
633
- <span class="cline-any cline-neutral">&nbsp;</span>
634
- <span class="cline-any cline-neutral">&nbsp;</span>
635
- <span class="cline-any cline-neutral">&nbsp;</span>
636
- <span class="cline-any cline-neutral">&nbsp;</span>
637
- <span class="cline-any cline-neutral">&nbsp;</span>
638
- <span class="cline-any cline-neutral">&nbsp;</span>
639
- <span class="cline-any cline-neutral">&nbsp;</span>
640
- <span class="cline-any cline-neutral">&nbsp;</span>
641
- <span class="cline-any cline-neutral">&nbsp;</span>
642
- <span class="cline-any cline-neutral">&nbsp;</span>
643
- <span class="cline-any cline-neutral">&nbsp;</span>
644
- <span class="cline-any cline-neutral">&nbsp;</span>
645
- <span class="cline-any cline-neutral">&nbsp;</span>
646
- <span class="cline-any cline-neutral">&nbsp;</span>
647
- <span class="cline-any cline-neutral">&nbsp;</span>
648
- <span class="cline-any cline-neutral">&nbsp;</span>
649
- <span class="cline-any cline-neutral">&nbsp;</span>
650
- <span class="cline-any cline-neutral">&nbsp;</span>
651
- <span class="cline-any cline-neutral">&nbsp;</span>
652
- <span class="cline-any cline-neutral">&nbsp;</span>
653
- <span class="cline-any cline-neutral">&nbsp;</span>
654
- <span class="cline-any cline-neutral">&nbsp;</span>
655
- <span class="cline-any cline-neutral">&nbsp;</span>
656
- <span class="cline-any cline-neutral">&nbsp;</span>
657
- <span class="cline-any cline-neutral">&nbsp;</span>
658
- <span class="cline-any cline-neutral">&nbsp;</span>
659
- <span class="cline-any cline-neutral">&nbsp;</span>
660
- <span class="cline-any cline-neutral">&nbsp;</span>
661
- <span class="cline-any cline-neutral">&nbsp;</span>
662
- <span class="cline-any cline-neutral">&nbsp;</span>
663
- <span class="cline-any cline-neutral">&nbsp;</span>
664
- <span class="cline-any cline-neutral">&nbsp;</span>
665
- <span class="cline-any cline-neutral">&nbsp;</span>
666
- <span class="cline-any cline-neutral">&nbsp;</span>
667
- <span class="cline-any cline-neutral">&nbsp;</span>
668
- <span class="cline-any cline-neutral">&nbsp;</span>
669
- <span class="cline-any cline-neutral">&nbsp;</span>
670
- <span class="cline-any cline-neutral">&nbsp;</span>
671
- <span class="cline-any cline-neutral">&nbsp;</span>
672
- <span class="cline-any cline-neutral">&nbsp;</span>
673
- <span class="cline-any cline-neutral">&nbsp;</span>
674
- <span class="cline-any cline-neutral">&nbsp;</span>
675
- <span class="cline-any cline-neutral">&nbsp;</span>
676
- <span class="cline-any cline-neutral">&nbsp;</span>
677
- <span class="cline-any cline-neutral">&nbsp;</span>
678
- <span class="cline-any cline-neutral">&nbsp;</span>
679
- <span class="cline-any cline-neutral">&nbsp;</span>
680
- <span class="cline-any cline-neutral">&nbsp;</span>
681
- <span class="cline-any cline-neutral">&nbsp;</span>
682
- <span class="cline-any cline-neutral">&nbsp;</span>
683
- <span class="cline-any cline-neutral">&nbsp;</span>
684
- <span class="cline-any cline-neutral">&nbsp;</span>
685
- <span class="cline-any cline-neutral">&nbsp;</span>
686
- <span class="cline-any cline-neutral">&nbsp;</span>
687
- <span class="cline-any cline-neutral">&nbsp;</span>
688
- <span class="cline-any cline-neutral">&nbsp;</span>
689
- <span class="cline-any cline-neutral">&nbsp;</span>
690
- <span class="cline-any cline-yes">126x</span>
691
- <span class="cline-any cline-neutral">&nbsp;</span>
692
- <span class="cline-any cline-neutral">&nbsp;</span>
693
- <span class="cline-any cline-neutral">&nbsp;</span>
694
- <span class="cline-any cline-neutral">&nbsp;</span>
695
- <span class="cline-any cline-neutral">&nbsp;</span>
696
- <span class="cline-any cline-neutral">&nbsp;</span>
697
- <span class="cline-any cline-neutral">&nbsp;</span>
698
- <span class="cline-any cline-neutral">&nbsp;</span>
699
- <span class="cline-any cline-neutral">&nbsp;</span>
700
- <span class="cline-any cline-neutral">&nbsp;</span>
701
- <span class="cline-any cline-neutral">&nbsp;</span>
702
- <span class="cline-any cline-neutral">&nbsp;</span>
703
- <span class="cline-any cline-neutral">&nbsp;</span>
704
- <span class="cline-any cline-neutral">&nbsp;</span>
705
- <span class="cline-any cline-neutral">&nbsp;</span>
706
- <span class="cline-any cline-neutral">&nbsp;</span>
707
- <span class="cline-any cline-neutral">&nbsp;</span>
708
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import React, { forwardRef, RefObject, useEffect, useRef, useState } from 'react';
709
- import {
710
- BrushBehavior as d3BrushBehavior,
711
- descending as d3descending,
712
- extent as d3extent,
713
- max as d3max,
714
- min as d3min,
715
- scaleLinear as d3scaleLinear,
716
- scaleSqrt as d3scaleSqrt,
717
- select as d3select,
718
- } from 'd3';
719
- &nbsp;
720
- import { AnyScale, JSONArray, LabelVariant } from '../../types';
721
- import { ScatterPlotLabelVariant, ScatterPlotProps, ScatterPlotVariant } from './types';
722
- import { StyledScatterPlot } from './styles';
723
- import { useZoom, useColor, useBrush } from '../../hooks';
724
- import { Axis, AxisVariant } from '../Axis';
725
- import { Legend } from '../Legend';
726
- import { Dot } from '../Dot';
727
- import { BASE_NUMBER_OF_TICKS, countBy, group, sizeToDimension } from './utils';
728
- import { Button, Flexbox, Text } from '@redsift/design-system';
729
- import { StyledChartContainerCaption } from '../ChartContainer';
730
- import { mdiChevronDown, mdiChevronRight, mdiMouse } from '@redsift/icons';
731
- import { Popover } from '@redsift/popovers';
732
- &nbsp;
733
- interface RenderedScatterPlotProps extends Required&lt;Pick&lt;ScatterPlotProps, 'data'&gt;&gt;, Omit&lt;ScatterPlotProps, 'data'&gt; {}
734
- &nbsp;
735
- export const RenderedScatterPlot = forwardRef&lt;HTMLDivElement, RenderedScatterPlotProps&gt;((props, ref) =&gt; {
736
- const {
737
- isBrushable,
738
- caption,
739
- className,
740
- data: propsData,
741
- dotRole,
742
- hideControlKeyPanel,
743
- id,
744
- isDotSelected,
745
- labelDecorator,
746
- labelVariant,
747
- legendProps,
748
- onBrush,
749
- onBrushEnd,
750
- onDotClick,
751
- size,
752
- theme,
753
- tooltipVariant,
754
- variant,
755
- xAxisVariant,
756
- xAxisPlacement,
757
- yAxisVariant,
758
- yAxisPlacement,
759
- ...forwardedProps
760
- } = props;
761
- &nbsp;
762
- const cache = useRef&lt;JSONArray&gt;();
763
- &nbsp;
764
- const data = propsData.filter(
765
- (datum) =&gt;
766
- datum.value &amp;&amp;
767
- typeof datum.key[0] === 'number' &amp;&amp;
768
- !Number.isNaN(datum.key[0]) &amp;&amp;
769
- typeof datum.key[1] === 'number' &amp;&amp;
770
- !Number.isNaN(datum.key[1])
771
- );
772
- &nbsp;
773
- useEffect(() =&gt; {
774
- cache.current = data;
775
- });
776
- &nbsp;
777
- const chartDimensions = sizeToDimension(size!);
778
- const width = chartDimensions.width;
779
- const height = chartDimensions.height;
780
- const margins = {
781
- top: xAxisVariant === AxisVariant.default || <span class="branch-1 cbranch-no" title="branch not covered" >xAxisVariant === AxisVariant.tickValue </span>? 24 : <span class="branch-1 cbranch-no" title="branch not covered" >8,</span>
782
- left: yAxisVariant === AxisVariant.default || <span class="branch-1 cbranch-no" title="branch not covered" >yAxisVariant === AxisVariant.tickValue </span>? 48 : <span class="branch-1 cbranch-no" title="branch not covered" >8,</span>
783
- right: yAxisVariant === AxisVariant.default || <span class="branch-1 cbranch-no" title="branch not covered" >yAxisVariant === AxisVariant.tickValue </span>? 48 : <span class="branch-1 cbranch-no" title="branch not covered" >8,</span>
784
- bottom: xAxisVariant === AxisVariant.default || <span class="branch-1 cbranch-no" title="branch not covered" >xAxisVariant === AxisVariant.tickValue </span>? 24 : <span class="branch-1 cbranch-no" title="branch not covered" >8,</span>
785
- };
786
- const chartHeight = height - margins.top - margins.bottom;
787
- const chartWidth = width - margins.left - margins.right;
788
- const minSize = d3min([chartWidth, chartHeight]) as number;
789
- &nbsp;
790
- const extendedScaleX = (() =&gt; {
791
- const domain = d3extent(data, (d) =&gt; d.key[0]) as [number, number];
792
- const gap = domain[1] - domain[0];
793
- domain[0] -= gap * 0.1;
794
- domain[1] += gap * 0.1;
795
- return d3scaleLinear().domain(domain).range([0, chartWidth]).nice();
796
- })();
797
- const extendedScaleY = (() =&gt; {
798
- const domain = d3extent(data, (d) =&gt; d.key[1]) as [number, number];
799
- const gap = domain[1] - domain[0];
800
- domain[0] -= gap * 0.1;
801
- domain[1] += gap * 0.1;
802
- return d3scaleLinear().domain(domain).range([chartHeight, 0]).nice();
803
- })();
804
- &nbsp;
805
- const hasCategory = data[0] &amp;&amp; data[0].key.length &gt;= 3 &amp;&amp; data[0].key[2] !== null &amp;&amp; data[0].key[2] !== undefined;
806
- const countsByCategory = hasCategory ? countBy(data) : <span class="branch-1 cbranch-no" title="branch not covered" >undefined;</span>
807
- const colorScale = useColor({
808
- data: countsByCategory || <span class="branch-1 cbranch-no" title="branch not covered" >data,</span>
809
- theme: theme!,
810
- category: 'key',
811
- });
812
- &nbsp;
813
- const svgRef = useRef&lt;SVGSVGElement&gt;();
814
- const brushRef = useRef&lt;d3BrushBehavior&lt;unknown&gt;&gt;();
815
- const svgBrushRef = useRef&lt;SVGGElement&gt;();
816
- const { scaleX, scaleY, transform } = useZoom({
817
- svgRef,
818
- scaleX: extendedScaleX,
819
- scaleY: extendedScaleY,
820
- size,
821
- onZoom: <span class="fstat-no" title="function not covered" >() =&gt; {</span>
822
- <span class="cstat-no" title="statement not covered" > <span class="missing-if-branch" title="if path not taken" >I</span>if (brushRef.current &amp;&amp; svgBrushRef.current) {</span>
823
- <span class="cstat-no" title="statement not covered" > brushRef.current.clear(d3select(svgBrushRef.current));</span>
824
- &nbsp;
825
- <span class="cstat-no" title="statement not covered" > onBrushEnd?.(null);</span>
826
- }
827
- },
828
- });
829
- useBrush({
830
- brushRef,
831
- svgRef: svgBrushRef,
832
- extent: [
833
- [0, 0],
834
- [chartWidth, chartHeight],
835
- ],
836
- scaleX,
837
- scaleY,
838
- isBrushable,
839
- isGridded: variant === ScatterPlotVariant.gridded,
840
- onBrush,
841
- onBrushEnd,
842
- });
843
- &nbsp;
844
- const circles =
845
- variant === ScatterPlotVariant.gridded
846
- ? group(data, scaleX, scaleY).sort((a, b) =&gt; d3descending(a.points.length, b.points.length))
847
- : data.map((d) =&gt; ({
848
- category: d.key[2],
849
- x: d.key[0],
850
- y: d.key[1],
851
- data: {
852
- key: d.key,
853
- value: 1,
854
- },
855
- points: [d],
856
- }));
857
- const globalSize =
858
- variant === ScatterPlotVariant.gridded
859
- ? d3scaleSqrt()
860
- .domain([1, Math.max(d3max(circles, (d) =&gt; d.points.length)!, 1)])
861
- .range([3, minSize / BASE_NUMBER_OF_TICKS / 2])
862
- : undefined;
863
- const legendWidth = useRef&lt;string&gt;();
864
- if (countsByCategory &amp;&amp; !legendWidth.current) {
865
- legendWidth.current = `${
866
- Math.max(...countsByCategory.map((d) =&gt; d.key.length + String(d.value).length)) * 8 + 32
867
- }px`;
868
- }
869
- &nbsp;
870
- const [isKeyPanelOpen, setIsKeyPanelOpen] = useState(false);
871
- &nbsp;
872
- return (
873
- &lt;StyledScatterPlot {...forwardedProps} id={id} className={className} ref={ref as RefObject&lt;HTMLDivElement&gt;}&gt;
874
- &lt;Flexbox flexDirection="column" alignItems="center" gap="8"&gt;
875
- {!hideControlKeyPanel ? (
876
- &lt;Flexbox width={width} position="absolute"&gt;
877
- &lt;Flexbox
878
- flexDirection="column"
879
- alignItems="flex-end"
880
- position="absolute"
881
- top={`${margins.top + 16}px`}
882
- right={`${margins.right + 16}px`}
883
- &gt;
884
- &lt;Popover placement="bottom-end" isOpen={isKeyPanelOpen} onOpen={setIsKeyPanelOpen}&gt;
885
- &lt;Popover.Trigger&gt;
886
- &lt;Button
887
- variant="secondary"
888
- leftIcon={mdiMouse}
889
- rightIcon={isKeyPanelOpen ? <span class="branch-0 cbranch-no" title="branch not covered" >mdiChevronDown </span>: mdiChevronRight}
890
- color="question"
891
- style={{
892
- border: '1px solid var(--redsift-color-neutral-midgrey)',
893
- gap: '4px',
894
- }}
895
- /&gt;
896
- &lt;/Popover.Trigger&gt;
897
- &lt;Popover.Content flexDirection="column" alignItems="flex-start"&gt;
898
- &lt;Text margin="8px 16px 0" fontSize="13px"&gt;
899
- Zoom - Mouse wheel
900
- &lt;/Text&gt;
901
- &lt;Text margin="0 16px" fontSize="13px"&gt;
902
- Pan - Left click and drag
903
- &lt;/Text&gt;
904
- &lt;Text margin="0 16px 8px" fontSize="13px"&gt;
905
- Select - Hold shift, left click and drag
906
- &lt;/Text&gt;
907
- &lt;/Popover.Content&gt;
908
- &lt;/Popover&gt;
909
- &lt;/Flexbox&gt;
910
- &lt;/Flexbox&gt;
911
- ) : <span class="branch-1 cbranch-no" title="branch not covered" >null}</span>
912
- &lt;svg ref={svgRef as RefObject&lt;SVGSVGElement&gt;} width={width} height={height}&gt;
913
- &lt;g ref={svgBrushRef as RefObject&lt;SVGGElement&gt;} transform={`translate(${margins.left},${margins.top})`} /&gt;
914
- &lt;g transform={`translate(${margins.left},${margins.top})`}&gt;
915
- &lt;g&gt;
916
- {circles.map((circle, index) =&gt; {
917
- const scaleXDomain = scaleX.domain();
918
- const scaleYDomain = scaleY.domain();
919
- &nbsp;
920
- <span class="missing-if-branch" title="if path not taken" >I</span>if (
921
- circle.x! &lt; scaleXDomain[0] ||
922
- circle.x! &gt; scaleXDomain[1] ||
923
- circle.y! &lt; scaleYDomain[0] ||
924
- circle.y! &gt; scaleYDomain[1]
925
- ) {
926
- <span class="cstat-no" title="statement not covered" > return null;</span>
927
- }
928
- &nbsp;
929
- const to = {
930
- ...circle,
931
- data: {
932
- ...circle.data,
933
- percent: circle.category
934
- ? circle.data.value / countsByCategory<span class="branch-0 cbranch-no" title="branch not covered" >?.f</span>ind(({ key }) =&gt; key === circle.category)<span class="branch-0 cbranch-no" title="branch not covered" >?.v</span>alue!
935
- : <span class="branch-1 cbranch-no" title="branch not covered" >undefined,</span>
936
- },
937
- r:
938
- variant === ScatterPlotVariant.gridded
939
- ? globalSize!(circle.points.length) / (transform.k &lt; 1 ? <span class="branch-0 cbranch-no" title="branch not covered" >transform.k </span>: 1)
940
- : 4,
941
- };
942
- &nbsp;
943
- return (
944
- &lt;Dot
945
- color={colorScale<span class="branch-0 cbranch-no" title="branch not covered" >?.(c</span>ircle.category!)}
946
- data={to}
947
- isSelected={Boolean(<span class="branch-1 cbranch-no" title="branch not covered" >isDotSelected?.(to))</span>}
948
- key={`circle _${index}`}
949
- labelDecorator={labelDecorator}
950
- onClick={onDotClick}
951
- role={dotRole}
952
- scaleX={scaleX}
953
- scaleY={scaleY}
954
- tooltipVariant={tooltipVariant}
955
- /&gt;
956
- );
957
- })}
958
- &lt;/g&gt;
959
- &lt;/g&gt;
960
- &lt;g transform={`translate(${margins.left},${margins.top})`}&gt;
961
- {['bottom', 'both'].includes(xAxisPlacement!) ? (
962
- &lt;Axis
963
- position="bottom"
964
- length={chartWidth}
965
- scale={scaleX as AnyScale}
966
- x={0}
967
- y={chartHeight}
968
- tickValues={8}
969
- variant={xAxisVariant}
970
- /&gt;
971
- ) : <span class="branch-1 cbranch-no" title="branch not covered" >null}</span>
972
- {['top', 'both'].includes(xAxisPlacement!) ? (
973
- <span class="branch-0 cbranch-no" title="branch not covered" > &lt;Axis</span>
974
- position="top"
975
- length={chartWidth}
976
- scale={scaleX as AnyScale}
977
- x={0}
978
- y={0}
979
- tickValues={8}
980
- variant={xAxisVariant}
981
- /&gt;
982
- ) : null}
983
- {['left', 'both'].includes(yAxisPlacement!) ? (
984
- &lt;Axis
985
- position="left"
986
- length={chartHeight}
987
- scale={scaleY as AnyScale}
988
- x={0}
989
- y={0}
990
- tickValues={8}
991
- variant={yAxisVariant}
992
- /&gt;
993
- ) : <span class="branch-1 cbranch-no" title="branch not covered" >null}</span>
994
- {['right', 'both'].includes(yAxisPlacement!) ? (
995
- <span class="branch-0 cbranch-no" title="branch not covered" > &lt;Axis</span>
996
- position="right"
997
- length={chartHeight}
998
- scale={scaleY as AnyScale}
999
- x={chartWidth}
1000
- y={0}
1001
- tickValues={8}
1002
- variant={yAxisVariant}
1003
- /&gt;
1004
- ) : null}
1005
- &lt;/g&gt;
1006
- &lt;/svg&gt;
1007
- &lt;StyledChartContainerCaption width={chartWidth - 48}&gt;{caption}&lt;/StyledChartContainerCaption&gt;
1008
- &lt;/Flexbox&gt;
1009
- {hasCategory &amp;&amp; labelVariant !== ScatterPlotLabelVariant.none ? (
1010
- &lt;Legend
1011
- data={countsByCategory!.map((d) =&gt; ({
1012
- ...d,
1013
- color: colorScale<span class="branch-0 cbranch-no" title="branch not covered" >?.(d</span>.key)!,
1014
- }))}
1015
- variant={
1016
- labelVariant === ScatterPlotLabelVariant.externalLabelValue
1017
- ? LabelVariant.value
1018
- : labelVariant === ScatterPlotLabelVariant.externalLabelPercent
1019
- ? LabelVariant.percent
1020
- : LabelVariant.label
1021
- }
1022
- width={legendWidth.current}
1023
- {...legendProps}
1024
- /&gt;
1025
- ) : null}
1026
- &lt;/StyledScatterPlot&gt;
1027
- );
1028
- });
1029
- &nbsp;</pre></td></tr></table></pre>
1030
-
1031
- <div class='push'></div><!-- for sticky footer -->
1032
- </div><!-- /wrapper -->
1033
- <div class='footer quiet pad2 space-top1 center small'>
1034
- Code coverage generated by
1035
- <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1036
- at 2023-12-11T12:57:13.773Z
1037
- </div>
1038
- <script src="../../prettify.js"></script>
1039
- <script>
1040
- window.onload = function () {
1041
- prettyPrint();
1042
- };
1043
- </script>
1044
- <script src="../../sorter.js"></script>
1045
- <script src="../../block-navigation.js"></script>
1046
- </body>
1047
- </html>
1048
-