@redsift/charts 11.6.0-muiv5-alpha.10 → 11.6.0-muiv5-alpha.11

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 (244) hide show
  1. package/{_internal → _virtual/_internal}/_rollupPluginBabelHelpers.js +1 -1
  2. package/package.json +2 -2
  3. package/packages/charts/src/_internal/config.js +15 -0
  4. package/packages/charts/src/_internal/config.js.map +1 -0
  5. package/{_internal → packages/charts/src/_internal}/scheme.js +1 -1
  6. package/packages/charts/src/_internal/scheme.js.map +1 -0
  7. package/packages/charts/src/components/Arc/_internal/Arc.js +3 -0
  8. package/{_internal → packages/charts/src/components/Arc/_internal}/Arc.js.map +1 -1
  9. package/{_internal → packages/charts/src/components/Arc/_internal}/Arc2.js +8 -51
  10. package/packages/charts/src/components/Arc/_internal/Arc2.js.map +1 -0
  11. package/packages/charts/src/components/Arc/_internal/styles.js +49 -0
  12. package/packages/charts/src/components/Arc/_internal/styles.js.map +1 -0
  13. package/packages/charts/src/components/Arcs/_internal/Arcs.js +3 -0
  14. package/{_internal → packages/charts/src/components/Arcs/_internal}/Arcs.js.map +1 -1
  15. package/{_internal → packages/charts/src/components/Arcs/_internal}/Arcs2.js +7 -11
  16. package/packages/charts/src/components/Arcs/_internal/Arcs2.js.map +1 -0
  17. package/packages/charts/src/components/Arcs/_internal/styles.js +9 -0
  18. package/packages/charts/src/components/Arcs/_internal/styles.js.map +1 -0
  19. package/packages/charts/src/components/Axis/_internal/Axis.js +4 -0
  20. package/{_internal → packages/charts/src/components/Axis/_internal}/Axis.js.map +1 -1
  21. package/{_internal → packages/charts/src/components/Axis/_internal}/Axis2.js +9 -186
  22. package/packages/charts/src/components/Axis/_internal/Axis2.js.map +1 -0
  23. package/packages/charts/src/components/Axis/_internal/computeTicks.js +117 -0
  24. package/packages/charts/src/components/Axis/_internal/computeTicks.js.map +1 -0
  25. package/packages/charts/src/components/Axis/_internal/styles.js +51 -0
  26. package/packages/charts/src/components/Axis/_internal/styles.js.map +1 -0
  27. package/packages/charts/src/components/Axis/_internal/types.js +24 -0
  28. package/packages/charts/src/components/Axis/_internal/types.js.map +1 -0
  29. package/packages/charts/src/components/Bar/_internal/Bar.js +4 -0
  30. package/{_internal → packages/charts/src/components/Bar/_internal}/Bar.js.map +1 -1
  31. package/{_internal → packages/charts/src/components/Bar/_internal}/Bar2.js +9 -84
  32. package/packages/charts/src/components/Bar/_internal/Bar2.js.map +1 -0
  33. package/packages/charts/src/components/Bar/_internal/styles.js +66 -0
  34. package/packages/charts/src/components/Bar/_internal/styles.js.map +1 -0
  35. package/packages/charts/src/components/Bar/_internal/types.js +18 -0
  36. package/packages/charts/src/components/Bar/_internal/types.js.map +1 -0
  37. package/packages/charts/src/components/BarChart/_internal/BarChart.js +4 -0
  38. package/{_internal → packages/charts/src/components/BarChart/_internal}/BarChart.js.map +1 -1
  39. package/packages/charts/src/components/BarChart/_internal/BarChart2.js +141 -0
  40. package/packages/charts/src/components/BarChart/_internal/BarChart2.js.map +1 -0
  41. package/packages/charts/src/components/BarChart/_internal/BarChartBars.js +168 -0
  42. package/packages/charts/src/components/BarChart/_internal/BarChartBars.js.map +1 -0
  43. package/packages/charts/src/components/BarChart/_internal/BarChartSection.js +139 -0
  44. package/packages/charts/src/components/BarChart/_internal/BarChartSection.js.map +1 -0
  45. package/packages/charts/src/components/BarChart/_internal/EmptyBarChart.js +57 -0
  46. package/packages/charts/src/components/BarChart/_internal/EmptyBarChart.js.map +1 -0
  47. package/packages/charts/src/components/BarChart/_internal/LoadingBarChart.js +18 -0
  48. package/packages/charts/src/components/BarChart/_internal/LoadingBarChart.js.map +1 -0
  49. package/packages/charts/src/components/BarChart/_internal/RenderedLinearBarChart.js +549 -0
  50. package/packages/charts/src/components/BarChart/_internal/RenderedLinearBarChart.js.map +1 -0
  51. package/packages/charts/src/components/BarChart/_internal/RenderedOrdinalBarChart.js +236 -0
  52. package/packages/charts/src/components/BarChart/_internal/RenderedOrdinalBarChart.js.map +1 -0
  53. package/packages/charts/src/components/BarChart/_internal/context.js +13 -0
  54. package/packages/charts/src/components/BarChart/_internal/context.js.map +1 -0
  55. package/packages/charts/src/components/BarChart/_internal/styles.js +71 -0
  56. package/packages/charts/src/components/BarChart/_internal/styles.js.map +1 -0
  57. package/packages/charts/src/components/BarChart/_internal/types.js +17 -0
  58. package/packages/charts/src/components/BarChart/_internal/types.js.map +1 -0
  59. package/packages/charts/src/components/BarChart/_internal/utils.js +69 -0
  60. package/packages/charts/src/components/BarChart/_internal/utils.js.map +1 -0
  61. package/packages/charts/src/components/BarChart/intl/_internal/en-US.js +17 -0
  62. package/packages/charts/src/components/BarChart/intl/_internal/en-US.js.map +1 -0
  63. package/packages/charts/src/components/BarChart/intl/_internal/fr-FR.js +17 -0
  64. package/packages/charts/src/components/BarChart/intl/_internal/fr-FR.js.map +1 -0
  65. package/packages/charts/src/components/BarChart/intl/index.js +10 -0
  66. package/packages/charts/src/components/BarChart/intl/index.js.map +1 -0
  67. package/packages/charts/src/components/ChartContainer/_internal/ChartContainer.js +3 -0
  68. package/{_internal → packages/charts/src/components/ChartContainer/_internal}/ChartContainer.js.map +1 -1
  69. package/{_internal → packages/charts/src/components/ChartContainer/_internal}/ChartContainer2.js +5 -104
  70. package/packages/charts/src/components/ChartContainer/_internal/ChartContainer2.js.map +1 -0
  71. package/packages/charts/src/components/ChartContainer/_internal/context.js +6 -0
  72. package/packages/charts/src/components/ChartContainer/_internal/context.js.map +1 -0
  73. package/packages/charts/src/components/ChartContainer/_internal/styles.js +76 -0
  74. package/packages/charts/src/components/ChartContainer/_internal/styles.js.map +1 -0
  75. package/packages/charts/src/components/ChartContainer/intl/_internal/en-US.js +14 -0
  76. package/packages/charts/src/components/ChartContainer/intl/_internal/en-US.js.map +1 -0
  77. package/packages/charts/src/components/ChartContainer/intl/_internal/fr-FR.js +14 -0
  78. package/packages/charts/src/components/ChartContainer/intl/_internal/fr-FR.js.map +1 -0
  79. package/packages/charts/src/components/ChartContainer/intl/index.js +10 -0
  80. package/packages/charts/src/components/ChartContainer/intl/index.js.map +1 -0
  81. package/packages/charts/src/components/DataPoint/_internal/DataPoint.js +3 -0
  82. package/{_internal → packages/charts/src/components/DataPoint/_internal}/DataPoint.js.map +1 -1
  83. package/{_internal → packages/charts/src/components/DataPoint/_internal}/DataPoint2.js +4 -10
  84. package/packages/charts/src/components/DataPoint/_internal/DataPoint2.js.map +1 -0
  85. package/packages/charts/src/components/DataPoint/_internal/styles.js +10 -0
  86. package/packages/charts/src/components/DataPoint/_internal/styles.js.map +1 -0
  87. package/packages/charts/src/components/Dot/_internal/Dot.js +4 -0
  88. package/{_internal → packages/charts/src/components/Dot/_internal}/Dot.js.map +1 -1
  89. package/{_internal → packages/charts/src/components/Dot/_internal}/Dot2.js +5 -60
  90. package/packages/charts/src/components/Dot/_internal/Dot2.js.map +1 -0
  91. package/packages/charts/src/components/Dot/_internal/styles.js +49 -0
  92. package/packages/charts/src/components/Dot/_internal/styles.js.map +1 -0
  93. package/packages/charts/src/components/Dot/_internal/types.js +14 -0
  94. package/packages/charts/src/components/Dot/_internal/types.js.map +1 -0
  95. package/packages/charts/src/components/Legend/_internal/Legend.js +3 -0
  96. package/{_internal → packages/charts/src/components/Legend/_internal}/Legend.js.map +1 -1
  97. package/{_internal/Legend3.js → packages/charts/src/components/Legend/_internal/Legend2.js} +6 -17
  98. package/packages/charts/src/components/Legend/_internal/Legend2.js.map +1 -0
  99. package/packages/charts/src/components/Legend/_internal/styles.js +15 -0
  100. package/packages/charts/src/components/Legend/_internal/styles.js.map +1 -0
  101. package/packages/charts/src/components/LegendItem/_internal/LegendItem.js +3 -0
  102. package/{_internal → packages/charts/src/components/LegendItem/_internal}/LegendItem.js.map +1 -1
  103. package/{_internal → packages/charts/src/components/LegendItem/_internal}/LegendItem2.js +6 -63
  104. package/packages/charts/src/components/LegendItem/_internal/LegendItem2.js.map +1 -0
  105. package/packages/charts/src/components/LegendItem/_internal/styles.js +63 -0
  106. package/packages/charts/src/components/LegendItem/_internal/styles.js.map +1 -0
  107. package/packages/charts/src/components/Line/_internal/Line.js +3 -0
  108. package/{_internal → packages/charts/src/components/Line/_internal}/Line.js.map +1 -1
  109. package/{_internal → packages/charts/src/components/Line/_internal}/Line2.js +7 -11
  110. package/packages/charts/src/components/Line/_internal/Line2.js.map +1 -0
  111. package/packages/charts/src/components/Line/_internal/styles.js +9 -0
  112. package/packages/charts/src/components/Line/_internal/styles.js.map +1 -0
  113. package/packages/charts/src/components/LineChart/_internal/EmptyLineChart.js +58 -0
  114. package/packages/charts/src/components/LineChart/_internal/EmptyLineChart.js.map +1 -0
  115. package/packages/charts/src/components/LineChart/_internal/LineChart.js +4 -0
  116. package/{_internal → packages/charts/src/components/LineChart/_internal}/LineChart.js.map +1 -1
  117. package/packages/charts/src/components/LineChart/_internal/LineChart2.js +96 -0
  118. package/packages/charts/src/components/LineChart/_internal/LineChart2.js.map +1 -0
  119. package/packages/charts/src/components/LineChart/_internal/LoadingLineChart.js +18 -0
  120. package/packages/charts/src/components/LineChart/_internal/LoadingLineChart.js.map +1 -0
  121. package/{_internal/LineChart2.js → packages/charts/src/components/LineChart/_internal/RenderedLineChart.js} +20 -317
  122. package/packages/charts/src/components/LineChart/_internal/RenderedLineChart.js.map +1 -0
  123. package/packages/charts/src/components/LineChart/_internal/styles.js +53 -0
  124. package/packages/charts/src/components/LineChart/_internal/styles.js.map +1 -0
  125. package/packages/charts/src/components/LineChart/_internal/types.js +17 -0
  126. package/packages/charts/src/components/LineChart/_internal/types.js.map +1 -0
  127. package/packages/charts/src/components/LineChart/_internal/utils.js +67 -0
  128. package/packages/charts/src/components/LineChart/_internal/utils.js.map +1 -0
  129. package/packages/charts/src/components/LineChart/intl/_internal/en-US.js +17 -0
  130. package/packages/charts/src/components/LineChart/intl/_internal/en-US.js.map +1 -0
  131. package/packages/charts/src/components/LineChart/intl/_internal/fr-FR.js +17 -0
  132. package/packages/charts/src/components/LineChart/intl/_internal/fr-FR.js.map +1 -0
  133. package/packages/charts/src/components/LineChart/intl/index.js +10 -0
  134. package/packages/charts/src/components/LineChart/intl/index.js.map +1 -0
  135. package/packages/charts/src/components/PieChart/_internal/EmptyPieChart.js +85 -0
  136. package/packages/charts/src/components/PieChart/_internal/EmptyPieChart.js.map +1 -0
  137. package/packages/charts/src/components/PieChart/_internal/LoadingPieChart.js +18 -0
  138. package/packages/charts/src/components/PieChart/_internal/LoadingPieChart.js.map +1 -0
  139. package/packages/charts/src/components/PieChart/_internal/PieChart.js +4 -0
  140. package/{_internal → packages/charts/src/components/PieChart/_internal}/PieChart.js.map +1 -1
  141. package/packages/charts/src/components/PieChart/_internal/PieChart2.js +98 -0
  142. package/packages/charts/src/components/PieChart/_internal/PieChart2.js.map +1 -0
  143. package/packages/charts/src/components/PieChart/_internal/RenderedPieChart.js +198 -0
  144. package/packages/charts/src/components/PieChart/_internal/RenderedPieChart.js.map +1 -0
  145. package/packages/charts/src/components/PieChart/_internal/styles.js +168 -0
  146. package/packages/charts/src/components/PieChart/_internal/styles.js.map +1 -0
  147. package/packages/charts/src/components/PieChart/_internal/types.js +27 -0
  148. package/packages/charts/src/components/PieChart/_internal/types.js.map +1 -0
  149. package/packages/charts/src/components/PieChart/_internal/utils.js +37 -0
  150. package/packages/charts/src/components/PieChart/_internal/utils.js.map +1 -0
  151. package/packages/charts/src/components/PieChart/intl/_internal/en-US.js +9 -0
  152. package/packages/charts/src/components/PieChart/intl/_internal/en-US.js.map +1 -0
  153. package/packages/charts/src/components/PieChart/intl/_internal/fr-FR.js +9 -0
  154. package/packages/charts/src/components/PieChart/intl/_internal/fr-FR.js.map +1 -0
  155. package/packages/charts/src/components/PieChart/intl/index.js +10 -0
  156. package/packages/charts/src/components/PieChart/intl/index.js.map +1 -0
  157. package/packages/charts/src/components/ScatterPlot/_internal/EmptyScatterPlot.js +58 -0
  158. package/packages/charts/src/components/ScatterPlot/_internal/EmptyScatterPlot.js.map +1 -0
  159. package/packages/charts/src/components/ScatterPlot/_internal/LoadingScatterPlot.js +18 -0
  160. package/packages/charts/src/components/ScatterPlot/_internal/LoadingScatterPlot.js.map +1 -0
  161. package/packages/charts/src/components/ScatterPlot/_internal/RenderedScatterPlot.js +354 -0
  162. package/packages/charts/src/components/ScatterPlot/_internal/RenderedScatterPlot.js.map +1 -0
  163. package/packages/charts/src/components/ScatterPlot/_internal/ScatterPlot.js +4 -0
  164. package/{_internal → packages/charts/src/components/ScatterPlot/_internal}/ScatterPlot.js.map +1 -1
  165. package/packages/charts/src/components/ScatterPlot/_internal/ScatterPlot2.js +105 -0
  166. package/packages/charts/src/components/ScatterPlot/_internal/ScatterPlot2.js.map +1 -0
  167. package/packages/charts/src/components/ScatterPlot/_internal/styles.js +53 -0
  168. package/packages/charts/src/components/ScatterPlot/_internal/styles.js.map +1 -0
  169. package/packages/charts/src/components/ScatterPlot/_internal/types.js +24 -0
  170. package/packages/charts/src/components/ScatterPlot/_internal/types.js.map +1 -0
  171. package/packages/charts/src/components/ScatterPlot/_internal/utils.js +70 -0
  172. package/packages/charts/src/components/ScatterPlot/_internal/utils.js.map +1 -0
  173. package/packages/charts/src/components/ScatterPlot/intl/_internal/en-US.js +12 -0
  174. package/packages/charts/src/components/ScatterPlot/intl/_internal/en-US.js.map +1 -0
  175. package/packages/charts/src/components/ScatterPlot/intl/_internal/fr-FR.js +17 -0
  176. package/packages/charts/src/components/ScatterPlot/intl/_internal/fr-FR.js.map +1 -0
  177. package/packages/charts/src/components/ScatterPlot/intl/index.js +10 -0
  178. package/packages/charts/src/components/ScatterPlot/intl/index.js.map +1 -0
  179. package/packages/charts/src/hooks/_internal/useBrush.js +48 -0
  180. package/packages/charts/src/hooks/_internal/useBrush.js.map +1 -0
  181. package/packages/charts/src/hooks/_internal/useColor.js +20 -0
  182. package/packages/charts/src/hooks/_internal/useColor.js.map +1 -0
  183. package/{_internal → packages/charts/src/hooks/_internal}/useFormatCategoricalData.js +4 -3
  184. package/packages/charts/src/hooks/_internal/useFormatCategoricalData.js.map +1 -0
  185. package/packages/charts/src/hooks/_internal/useZoom.js +39 -0
  186. package/packages/charts/src/hooks/_internal/useZoom.js.map +1 -0
  187. package/packages/charts/src/index.js +43 -0
  188. package/packages/charts/src/index.js.map +1 -0
  189. package/{_internal/legend2.js → packages/charts/src/types/_internal/legend.js} +2 -2
  190. package/packages/charts/src/types/_internal/legend.js.map +1 -0
  191. package/packages/charts/src/types/_internal/size.js +8 -0
  192. package/packages/charts/src/types/_internal/size.js.map +1 -0
  193. package/packages/charts/src/types/_internal/theme.js +13 -0
  194. package/packages/charts/src/types/_internal/theme.js.map +1 -0
  195. package/{_internal/theme.js → packages/charts/src/utils/index.js} +2 -37
  196. package/packages/charts/src/utils/index.js.map +1 -0
  197. package/packages/icons/src/components/mdi/_internal/mdiChevronDown.js +4 -0
  198. package/packages/icons/src/components/mdi/_internal/mdiChevronDown.js.map +1 -0
  199. package/packages/icons/src/components/mdi/_internal/mdiChevronRight.js +4 -0
  200. package/packages/icons/src/components/mdi/_internal/mdiChevronRight.js.map +1 -0
  201. package/packages/icons/src/components/mdi/_internal/mdiMouse.js +4 -0
  202. package/packages/icons/src/components/mdi/_internal/mdiMouse.js.map +1 -0
  203. package/_internal/Arc.js +0 -2
  204. package/_internal/Arc2.js.map +0 -1
  205. package/_internal/Arcs.js +0 -2
  206. package/_internal/Arcs2.js.map +0 -1
  207. package/_internal/Axis.js +0 -2
  208. package/_internal/Axis2.js.map +0 -1
  209. package/_internal/Bar.js +0 -2
  210. package/_internal/Bar2.js.map +0 -1
  211. package/_internal/BarChart.js +0 -2
  212. package/_internal/BarChart2.js +0 -1419
  213. package/_internal/BarChart2.js.map +0 -1
  214. package/_internal/ChartContainer.js +0 -2
  215. package/_internal/ChartContainer2.js.map +0 -1
  216. package/_internal/DataPoint.js +0 -2
  217. package/_internal/DataPoint2.js.map +0 -1
  218. package/_internal/Dot.js +0 -2
  219. package/_internal/Dot2.js.map +0 -1
  220. package/_internal/Legend.js +0 -2
  221. package/_internal/Legend3.js.map +0 -1
  222. package/_internal/LegendItem.js +0 -2
  223. package/_internal/LegendItem2.js.map +0 -1
  224. package/_internal/Line.js +0 -2
  225. package/_internal/Line2.js.map +0 -1
  226. package/_internal/LineChart.js +0 -2
  227. package/_internal/LineChart2.js.map +0 -1
  228. package/_internal/PieChart.js +0 -2
  229. package/_internal/PieChart2.js +0 -605
  230. package/_internal/PieChart2.js.map +0 -1
  231. package/_internal/ScatterPlot.js +0 -2
  232. package/_internal/ScatterPlot2.js +0 -740
  233. package/_internal/ScatterPlot2.js.map +0 -1
  234. package/_internal/config.js +0 -13
  235. package/_internal/config.js.map +0 -1
  236. package/_internal/legend2.js.map +0 -1
  237. package/_internal/scheme.js.map +0 -1
  238. package/_internal/theme.js.map +0 -1
  239. package/_internal/useFormatCategoricalData.js.map +0 -1
  240. package/index.js +0 -18
  241. package/index.js.map +0 -1
  242. package/index2.js +0 -16
  243. package/index2.js.map +0 -1
  244. /package/{_internal → _virtual/_internal}/_rollupPluginBabelHelpers.js.map +0 -0
@@ -1,740 +0,0 @@
1
- import { _ as _objectWithoutProperties, a as _extends, b as _objectSpread2 } from './_rollupPluginBabelHelpers.js';
2
- import React__default, { useRef, useEffect, useState, forwardRef } from 'react';
3
- import classNames from 'classnames';
4
- import { useTheme, useMessageFormatter, Flexbox, Button, Text, useId } from '@redsift/design-system';
5
- import { L as LegendVariant, T as TooltipVariant } from './legend2.js';
6
- import { C as ChartSize, g as getSortingMethod, u as useColor, m as mergeLegends, a as ColorTheme } from './theme.js';
7
- import styled from 'styled-components';
8
- import { C as ChartContainer } from './ChartContainer2.js';
9
- import { brush, select, zoom, interpolateRound, scaleLinear, min, extent, descending, scaleSqrt, max } from 'd3';
10
- import { A as Axis, a as AxisVariant } from './Axis2.js';
11
- import { Popover } from '@redsift/popovers';
12
- import { D as Dot } from './Dot2.js';
13
- import { L as Legend } from './Legend3.js';
14
-
15
- const getRoundedIntermediaryPoint = (selection, scaleX, scaleY) => {
16
- if (!selection) {
17
- return null;
18
- }
19
- const xTicks = scaleX.ticks(20);
20
- const xDelta = xTicks[1] - xTicks[0];
21
- const yTicks = scaleY.ticks(20);
22
- const yDelta = yTicks[1] - yTicks[0];
23
- return [[scaleX(Math.round(scaleX.invert(selection[0][0]) / xDelta) * xDelta - xDelta / 2), scaleY(Math.round(scaleY.invert(selection[0][1]) / yDelta) * yDelta - yDelta / 2)], [scaleX(Math.round(scaleX.invert(selection[1][0]) / xDelta) * xDelta - xDelta / 2), scaleY(Math.round(scaleY.invert(selection[1][1]) / yDelta) * yDelta - yDelta / 2)]];
24
- };
25
- const useBrush = _ref => {
26
- let {
27
- brushRef: propsBrushRef,
28
- svgRef,
29
- extent,
30
- scaleX,
31
- scaleY,
32
- isBrushable,
33
- isGridded,
34
- onBrush,
35
- onBrushEnd
36
- } = _ref;
37
- const brushRef = propsBrushRef || useRef();
38
- useEffect(() => {
39
- if (svgRef.current && isBrushable) {
40
- brushRef.current = brush().extent(extent).keyModifiers(false).filter(event => event.shiftKey).on('brush', event => {
41
- if (!event.sourceEvent || !brushRef.current || !svgRef.current) return;
42
- if (isGridded) {
43
- const selection = getRoundedIntermediaryPoint(event.selection, scaleX, scaleY);
44
- select(svgRef.current).call(brushRef.current.move, selection);
45
- onBrush === null || onBrush === void 0 ? void 0 : onBrush(selection, scaleX, scaleY);
46
- } else {
47
- onBrush === null || onBrush === void 0 ? void 0 : onBrush(event.selection, scaleX, scaleY);
48
- }
49
- }).on('end', event => {
50
- if (!event.sourceEvent || !brushRef.current || !svgRef.current) return;
51
- onBrushEnd === null || onBrushEnd === void 0 ? void 0 : onBrushEnd(event.selection, scaleX, scaleY);
52
- });
53
- select(svgRef.current).call(brushRef.current);
54
- }
55
- });
56
- };
57
-
58
- const useZoom = _ref => {
59
- let {
60
- svgRef,
61
- scaleX,
62
- scaleY,
63
- defaultTransform = {
64
- k: 1,
65
- x: 0,
66
- y: 0
67
- },
68
- size,
69
- onZoom
70
- } = _ref;
71
- const zx = useRef(scaleX);
72
- const zy = useRef(scaleY);
73
- const [transform, setTransform] = useState(defaultTransform);
74
- useEffect(() => {
75
- if (svgRef.current) {
76
- const zoom$1 = zoom().filter(event => !event.shiftKey).scaleExtent([1 / 2 ** 3, 2 ** 3]).on('zoom', event => {
77
- onZoom === null || onZoom === void 0 ? void 0 : onZoom();
78
- zx.current = event.transform.rescaleX(scaleX).interpolate(interpolateRound);
79
- zy.current = event.transform.rescaleY(scaleY).interpolate(interpolateRound);
80
- setTransform(event.transform);
81
- });
82
- select(svgRef.current).call(zoom$1);
83
- }
84
- }, [svgRef.current, size]);
85
- return {
86
- transform,
87
- scaleX: zx.current,
88
- scaleY: zy.current
89
- };
90
- };
91
-
92
- /**
93
- * Component variant.
94
- */
95
- const ScatterPlotVariant = {
96
- default: 'default',
97
- gridded: 'gridded'
98
- };
99
- /**
100
- * Component's labels variant.
101
- */
102
- const ScatterPlotLegendVariant = {
103
- none: 'none',
104
- externalLabel: 'externalLabel',
105
- externalLabelValue: 'externalLabelValue',
106
- externalLabelPercent: 'externalLabelPercent',
107
- custom: 'custom'
108
- };
109
-
110
- /**
111
- * Component props.
112
- */
113
-
114
- /**
115
- * Component style.
116
- */
117
- const StyledScatterPlot = styled(ChartContainer)``;
118
- const StyledScatterPlotEmptyText = styled.div`
119
- position: absolute;
120
- top: 0;
121
- left: 0;
122
- height: 100%;
123
- width: 100%;
124
- display: flex;
125
- flex-direction: column;
126
- justify-content: center;
127
- align-items: center;
128
- pointer-events: none;
129
-
130
- > * {
131
- max-width: ${_ref => {
132
- let {
133
- $maxWidth
134
- } = _ref;
135
- return $maxWidth;
136
- }}px;
137
- }
138
-
139
- > span {
140
- font-family: var(--redsift-typography-font-family-poppins);
141
- color: ${_ref2 => {
142
- let {
143
- $theme
144
- } = _ref2;
145
- return `var(--redsift-color-${$theme}-components-text-primary)`;
146
- }};
147
- font-size: ${_ref3 => {
148
- let {
149
- $textSize
150
- } = _ref3;
151
- return $textSize;
152
- }}px;
153
- line-height: ${_ref4 => {
154
- let {
155
- $textSize
156
- } = _ref4;
157
- return $textSize;
158
- }}px;
159
- }
160
- `;
161
-
162
- const _excluded$3 = ["className"];
163
- const LoadingScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
164
- const {
165
- className
166
- } = props,
167
- forwardedProps = _objectWithoutProperties(props, _excluded$3);
168
- return /*#__PURE__*/React__default.createElement(StyledScatterPlot, _extends({}, forwardedProps, {
169
- className: className,
170
- ref: ref
171
- }), "Loading...");
172
- });
173
-
174
- const sizeToDimension = size => {
175
- if (typeof size !== 'string') {
176
- return size;
177
- }
178
- switch (size) {
179
- case ChartSize.small:
180
- return {
181
- width: 600,
182
- height: 300,
183
- fontSize: 30
184
- };
185
- case ChartSize.medium:
186
- default:
187
- return {
188
- width: 750,
189
- height: 375,
190
- fontSize: 34
191
- };
192
- case ChartSize.large:
193
- return {
194
- width: 900,
195
- height: 450,
196
- fontSize: 38
197
- };
198
- }
199
- };
200
- const BASE_NUMBER_OF_TICKS = 20;
201
- const getClosestLineIndex = (value, scale) => {
202
- const ticks = scale.ticks(BASE_NUMBER_OF_TICKS);
203
- const delta = ticks[1] - ticks[0];
204
- const index = Math.round(value / delta);
205
- const roundValue = index * delta;
206
- return [index, roundValue];
207
- };
208
- const group = (data, x, y) => {
209
- const groupDict = {};
210
- data.forEach(d => {
211
- const [i, rx] = getClosestLineIndex(d.key[0], x);
212
- const [j, ry] = getClosestLineIndex(d.key[1], y);
213
- const key = `${i}_${j}_${d.key[2]}`;
214
- if (!(key in groupDict)) {
215
- groupDict[key] = {
216
- category: d.key[2],
217
- x: rx,
218
- y: ry,
219
- data: {
220
- key: d.key,
221
- value: 0
222
- },
223
- points: []
224
- };
225
- }
226
- groupDict[key].points.push(d);
227
- groupDict[key].data.value += 1;
228
- });
229
- return Object.values(groupDict);
230
- };
231
- const countBy = (arr, sortingMethod) => {
232
- const counts = arr.reduce((prev, curr) => (prev[curr.key[2]] = ++prev[curr.key[2]] || 1, prev), {});
233
- return Object.keys(counts).map(key => ({
234
- key: key,
235
- value: counts[key]
236
- })).sort(getSortingMethod(sortingMethod));
237
- };
238
-
239
- const _excluded$2 = ["className", "data", "emptyComponent", "localeText", "size"];
240
- const EmptyScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
241
- const {
242
- className,
243
- data: propsData,
244
- emptyComponent,
245
- localeText,
246
- size
247
- } = props,
248
- forwardedProps = _objectWithoutProperties(props, _excluded$2);
249
- const theme = useTheme();
250
- const cache = useRef();
251
- const data = propsData;
252
- useEffect(() => {
253
- cache.current = data;
254
- });
255
- const chartDimensions = sizeToDimension(size);
256
- const width = chartDimensions.width;
257
- const height = chartDimensions.height;
258
- const margins = {
259
- top: 16,
260
- left: 48,
261
- right: 16,
262
- bottom: 48
263
- };
264
- const chartWidth = width - margins.left - margins.right;
265
- return /*#__PURE__*/React__default.createElement(StyledScatterPlot, _extends({}, forwardedProps, {
266
- className: className,
267
- ref: ref
268
- }), emptyComponent !== null && emptyComponent !== void 0 ? emptyComponent : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(StyledScatterPlotEmptyText, {
269
- $maxWidth: width,
270
- $textSize: chartDimensions.fontSize / 2,
271
- $theme: theme
272
- }, /*#__PURE__*/React__default.createElement("span", null, localeText === null || localeText === void 0 ? void 0 : localeText.emptyChartText)), /*#__PURE__*/React__default.createElement("svg", {
273
- width: width,
274
- height: height
275
- }, /*#__PURE__*/React__default.createElement("g", {
276
- transform: `translate(${margins.left},${margins.top})`
277
- }, /*#__PURE__*/React__default.createElement(Axis, {
278
- position: "bottom",
279
- length: width - 32,
280
- scale: scaleLinear().domain([]).range([0, chartWidth]),
281
- x: 0,
282
- y: height,
283
- tickValues: 4
284
- })))));
285
- });
286
-
287
- var definition = "Linear Scatter Plot with {circleLength} circles.";
288
- var enUS = {
289
- "interactive-chart": "Interactive Scatter Plot",
290
- "static-chart": "Static Scatter Plot",
291
- definition: definition,
292
- "definition-with-categories": "Linear Scatter Plot with {categoryLength} categories and {circleLength} circles.",
293
- "x-axis-definition": "The chart has {numAxis, plural, =0 {0 X axis} =1 {1 X axis} other {# X axes}} displaying numbers from {start, number} to {end, number}.",
294
- "y-axis-definition": "The chart has {numAxis, plural, =0 {0 Y axis} =1 {1 Y axis} other {# Y axes}} displaying numbers from {start, number} to {end, number}."
295
- };
296
-
297
- var frFR = {
298
- "interactive-chart": "Graphique en courbe interactif",
299
- "static-chart": "Graphique en courbe statique",
300
- "definition-linear": "Graphique en courbe contenant {circleLength} points répartis sur un axe linéraire.",
301
- "definition-linear-with-categories": "Graphique en courbe contenant {categoryLength} courbes et {circleLength} points répartis sur un axe linéraire.",
302
- "definition-ordinal": "Graphique en courbe contenant {circleLength} points.",
303
- "x-axis-numbers-definition": "Le graphique a {numAxis, plural, =0 {0 axe X} =1 {1 axe X} other {# axes X}} affichant des nombres allant de {start, number} à {end, number}.",
304
- "y-axis-numbers-definition": "Le graphique a {numAxis, plural, =0 {0 axe Y} =1 {1 axe Y} other {# axes Y}} affichant des nombres allant de {start, number} à {end, number}.",
305
- "x-axis-dates-definition": "Le graphique a {numAxis, plural, =0 {0 axe X} =1 {1 axe X} other {# axes X}} affichant des dates allant de {start, date, ::yyyyMMdd} à {end, date, ::yyyyMMdd}.",
306
- "y-axis-dates-definition": "Le graphique a {numAxis, plural, =0 {0 axe Y} =1 {1 axe Y} other {# axes Y}} affichant des dates allant de {start, date, ::yyyyMMdd} à {end, date, ::yyyyMMdd}.",
307
- "x-axis-categories-definition": "Le graphique a {numAxis, plural, =0 {0 axe X} =1 {1 axe X} other {# axes X}} affichant des categories.",
308
- "y-axis-categories-definition": "Le graphique a {numAxis, plural, =0 {0 axe Y} =1 {1 axe Y} other {# axes Y}} affichant des categories.",
309
- "series-legend": "{category}, courbe {categoryIndex} sur {categoryLength} contenant {circleLength} points"
310
- };
311
-
312
- var intlMessages = {
313
- 'en-US': enUS,
314
- 'fr-FR': frFR
315
- };
316
-
317
- const mdiChevronDown='M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z';const mdiChevronRight='M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z';const mdiMouse='M11,1.07C7.05,1.56 4,4.92 4,9H11M4,15A8,8 0 0,0 12,23A8,8 0 0,0 20,15V11H4M13,1.07V9H20C20,4.92 16.94,1.56 13,1.07Z';
318
-
319
- const _excluded$1 = ["isBrushable", "className", "data", "dotRole", "disableAnimations", "getDotAnchorProps", "hideControlKeyPanel", "id", "isDotSelected", "labelDecorator", "legendDecorator", "legendVariant", "legendProps", "margins", "onBrush", "onBrushEnd", "onDotClick", "size", "sortingMethod", "colorTheme", "tooltipDecorator", "tooltipVariant", "xAxisVariant", "xAxisPlacement", "xAxisTickFormat", "xAxisTickPadding", "xAxisTickRotation", "xAxisTickSize", "xAxisTickValues", "yAxisVariant", "yAxisPlacement", "yAxisTickFormat", "yAxisTickPadding", "yAxisTickRotation", "yAxisTickSize", "yAxisTickValues", "variant"],
320
- _excluded2 = ["extraLegendItems"];
321
- const RenderedScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
322
- const {
323
- isBrushable,
324
- className,
325
- data: propsData,
326
- dotRole,
327
- disableAnimations,
328
- getDotAnchorProps,
329
- hideControlKeyPanel,
330
- id,
331
- isDotSelected,
332
- labelDecorator,
333
- legendDecorator,
334
- legendVariant,
335
- legendProps,
336
- margins: propsMargins,
337
- onBrush,
338
- onBrushEnd,
339
- onDotClick,
340
- size,
341
- sortingMethod,
342
- colorTheme,
343
- tooltipDecorator,
344
- tooltipVariant,
345
- xAxisVariant,
346
- xAxisPlacement,
347
- xAxisTickFormat,
348
- xAxisTickPadding,
349
- xAxisTickRotation,
350
- xAxisTickSize,
351
- xAxisTickValues,
352
- yAxisVariant,
353
- yAxisPlacement,
354
- yAxisTickFormat,
355
- yAxisTickPadding,
356
- yAxisTickRotation,
357
- yAxisTickSize,
358
- yAxisTickValues,
359
- variant
360
- } = props,
361
- forwardedProps = _objectWithoutProperties(props, _excluded$1);
362
- const cache = useRef();
363
- const theme = useTheme();
364
- const format = useMessageFormatter(intlMessages);
365
- const data = propsData.filter(datum => datum.value && typeof datum.key[0] === 'number' && !Number.isNaN(datum.key[0]) && typeof datum.key[1] === 'number' && !Number.isNaN(datum.key[1]));
366
- useEffect(() => {
367
- cache.current = data;
368
- });
369
- const chartDimensions = sizeToDimension(size);
370
- const width = chartDimensions.width;
371
- const height = chartDimensions.height;
372
- const margins = _objectSpread2({
373
- top: xAxisVariant === AxisVariant.default || xAxisVariant === AxisVariant.tickValue ? 24 : 8,
374
- left: yAxisVariant === AxisVariant.default || yAxisVariant === AxisVariant.tickValue ? 48 : 8,
375
- right: yAxisVariant === AxisVariant.default || yAxisVariant === AxisVariant.tickValue ? 48 : 8,
376
- bottom: xAxisVariant === AxisVariant.default || xAxisVariant === AxisVariant.tickValue ? 24 : 8
377
- }, propsMargins);
378
- const chartHeight = height - margins.top - margins.bottom;
379
- const chartWidth = width - margins.left - margins.right;
380
- const minSize = min([chartWidth, chartHeight]);
381
- const extendedScaleX = (() => {
382
- const domain = extent(data, d => d.key[0]);
383
- const gap = domain[1] - domain[0];
384
- domain[0] -= gap * 0.1;
385
- domain[1] += gap * 0.1;
386
- return scaleLinear().domain(domain).range([0, chartWidth]).nice();
387
- })();
388
- const extendedScaleY = (() => {
389
- const domain = extent(data, d => d.key[1]);
390
- const gap = domain[1] - domain[0];
391
- domain[0] -= gap * 0.1;
392
- domain[1] += gap * 0.1;
393
- return scaleLinear().domain(domain).range([chartHeight, 0]).nice();
394
- })();
395
- const hasCategory = data[0] && data[0].key.length >= 3 && data[0].key[2] !== null && data[0].key[2] !== undefined;
396
- const countsByCategory = hasCategory ? countBy(data, sortingMethod) : undefined;
397
- const colorScale = useColor({
398
- data: countsByCategory || data,
399
- colorTheme: colorTheme,
400
- category: 'key',
401
- theme
402
- });
403
- const svgRef = useRef();
404
- const brushRef = useRef();
405
- const svgBrushRef = useRef();
406
- const {
407
- scaleX,
408
- scaleY,
409
- transform
410
- } = useZoom({
411
- svgRef,
412
- scaleX: extendedScaleX,
413
- scaleY: extendedScaleY,
414
- size,
415
- onZoom: () => {
416
- if (brushRef.current && svgBrushRef.current) {
417
- brushRef.current.clear(select(svgBrushRef.current));
418
- onBrushEnd === null || onBrushEnd === void 0 ? void 0 : onBrushEnd(null);
419
- }
420
- }
421
- });
422
- useBrush({
423
- brushRef,
424
- svgRef: svgBrushRef,
425
- extent: [[0, 0], [chartWidth, chartHeight]],
426
- scaleX,
427
- scaleY,
428
- isBrushable,
429
- isGridded: variant === ScatterPlotVariant.gridded,
430
- onBrush,
431
- onBrushEnd
432
- });
433
- const circles = variant === ScatterPlotVariant.gridded ? group(data, scaleX, scaleY).sort((a, b) => {
434
- if (a.y !== b.y) {
435
- return b.y - a.y;
436
- }
437
- if (a.x !== b.x) {
438
- return a.x - b.x;
439
- }
440
- return descending(a.points.length, b.points.length);
441
- }) : data.map(d => {
442
- var _d$key$;
443
- return {
444
- category: (_d$key$ = d.key[2]) !== null && _d$key$ !== void 0 ? _d$key$ : 'default',
445
- x: d.key[0],
446
- y: d.key[1],
447
- data: {
448
- key: d.key,
449
- value: 1
450
- },
451
- points: [d]
452
- };
453
- });
454
- const globalSize = variant === ScatterPlotVariant.gridded ? scaleSqrt().domain([1, Math.max(max(circles, d => d.points.length), 1)]).range([3, minSize / BASE_NUMBER_OF_TICKS / 2]) : undefined;
455
- const legendWidth = useRef();
456
- if (countsByCategory && !legendWidth.current) {
457
- legendWidth.current = `${Math.max(...countsByCategory.map(d => d.key.length + String(d.value).length)) * 8 + 32}px`;
458
- }
459
- const [isKeyPanelOpen, setIsKeyPanelOpen] = useState(false);
460
- const categories = [];
461
- // const pivotedTable = circles.reduce((acc, item) => {
462
- // const { x, category, y } = item;
463
- // if (!categories.includes(category)) {
464
- // categories.push(category);
465
- // }
466
- // const formattedKey = xAxisTickFormat ? xAxisTickFormat(x as any) : x.toString();
467
-
468
- // let entry = acc.find((e) => e.key === formattedKey);
469
- // if (!entry) {
470
- // entry = { key: formattedKey };
471
- // acc.push(entry);
472
- // }
473
-
474
- // entry[category] = y;
475
-
476
- // return acc;
477
- // }, [] as Array<Record<string, string | number | null | undefined> & { key: string }>);
478
-
479
- const _ref = legendProps || {},
480
- {
481
- extraLegendItems
482
- } = _ref,
483
- forwardedLegendProps = _objectWithoutProperties(_ref, _excluded2);
484
- return /*#__PURE__*/React__default.createElement(StyledScatterPlot, _extends({
485
- mode: typeof onDotClick === 'function' || typeof getDotAnchorProps === 'function' ? 'interactive' : 'static',
486
- definition: hasCategory ? format('definition-with-categories', {
487
- categoryLength: categories.length,
488
- circleLength: circles.length
489
- }) : format('definition', {
490
- circleLength: circles.length
491
- }),
492
- xAxisDefinition: format('x-axis-definition', {
493
- numAxis: xAxisPlacement === 'both' ? 2 : 1,
494
- start: scaleX.domain()[0],
495
- end: scaleX.domain()[1]
496
- }),
497
- yAxisDefinition: format('y-axis-definition', {
498
- numAxis: yAxisPlacement === 'both' ? 2 : 1,
499
- start: scaleY.domain()[0],
500
- end: scaleY.domain()[1]
501
- })
502
- }, forwardedProps, {
503
- id: id,
504
- className: className,
505
- ref: ref
506
- }), /*#__PURE__*/React__default.createElement(Flexbox, {
507
- flexDirection: "column",
508
- alignItems: "center",
509
- gap: "8"
510
- }, !hideControlKeyPanel ? /*#__PURE__*/React__default.createElement(Flexbox, {
511
- width: width,
512
- position: "absolute"
513
- }, /*#__PURE__*/React__default.createElement(Flexbox, {
514
- flexDirection: "column",
515
- alignItems: "flex-end",
516
- position: "absolute",
517
- top: `${margins.top + 16}px`,
518
- right: `${margins.right + 16}px`
519
- }, /*#__PURE__*/React__default.createElement(Popover, {
520
- placement: "bottom-end",
521
- isOpen: isKeyPanelOpen,
522
- onOpen: setIsKeyPanelOpen
523
- }, /*#__PURE__*/React__default.createElement(Popover.Trigger, null, /*#__PURE__*/React__default.createElement(Button, {
524
- variant: "secondary",
525
- leftIcon: mdiMouse,
526
- rightIcon: isKeyPanelOpen ? mdiChevronDown : mdiChevronRight,
527
- color: "grey",
528
- style: {
529
- border: '1px solid var(--redsift-color-neutral-mid-grey)',
530
- gap: '4px'
531
- }
532
- })), /*#__PURE__*/React__default.createElement(Popover.Content, null, /*#__PURE__*/React__default.createElement(Flexbox, {
533
- flexDirection: "column",
534
- alignItems: "flex-start"
535
- }, /*#__PURE__*/React__default.createElement(Text, {
536
- margin: "8px 16px 0",
537
- fontSize: "13px"
538
- }, "Zoom - Mouse wheel"), /*#__PURE__*/React__default.createElement(Text, {
539
- margin: "0 16px",
540
- fontSize: "13px"
541
- }, "Pan - Left click and drag"), /*#__PURE__*/React__default.createElement(Text, {
542
- margin: "0 16px 8px",
543
- fontSize: "13px"
544
- }, "Select - Hold shift, left click and drag")))))) : null, /*#__PURE__*/React__default.createElement("svg", {
545
- ref: svgRef,
546
- width: width,
547
- height: height
548
- }, /*#__PURE__*/React__default.createElement("g", {
549
- ref: svgBrushRef,
550
- transform: `translate(${margins.left},${margins.top})`
551
- }), /*#__PURE__*/React__default.createElement("g", {
552
- transform: `translate(${margins.left},${margins.top})`
553
- }, /*#__PURE__*/React__default.createElement("g", null, circles.map((circle, index) => {
554
- var _countsByCategory$fin;
555
- const scaleXDomain = scaleX.domain();
556
- const scaleYDomain = scaleY.domain();
557
- if (circle.x < scaleXDomain[0] || circle.x > scaleXDomain[1] || circle.y < scaleYDomain[0] || circle.y > scaleYDomain[1]) {
558
- return null;
559
- }
560
- const to = _objectSpread2(_objectSpread2({}, circle), {}, {
561
- data: _objectSpread2(_objectSpread2({}, circle.data), {}, {
562
- percent: circle.category ? circle.data.value / (countsByCategory === null || countsByCategory === void 0 ? void 0 : (_countsByCategory$fin = countsByCategory.find(_ref2 => {
563
- let {
564
- key
565
- } = _ref2;
566
- return key === circle.category;
567
- })) === null || _countsByCategory$fin === void 0 ? void 0 : _countsByCategory$fin.value) : undefined
568
- }),
569
- r: variant === ScatterPlotVariant.gridded ? globalSize(circle.points.length) / (transform.k < 1 ? transform.k : 1) : 4
570
- });
571
- return /*#__PURE__*/React__default.createElement(Dot, {
572
- color: colorScale === null || colorScale === void 0 ? void 0 : colorScale(circle.category),
573
- data: to,
574
- dataset: circles,
575
- isSelected: Boolean(isDotSelected === null || isDotSelected === void 0 ? void 0 : isDotSelected(to)),
576
- key: `circle _${index}`,
577
- labelDecorator: labelDecorator,
578
- onClick: onDotClick,
579
- role: dotRole,
580
- scaleX: scaleX,
581
- scaleY: scaleY,
582
- tooltipDecorator: tooltipDecorator,
583
- tooltipVariant: tooltipVariant
584
- });
585
- }))), /*#__PURE__*/React__default.createElement("g", {
586
- transform: `translate(${margins.left},${margins.top})`
587
- }, ['bottom', 'both'].includes(xAxisPlacement) ? /*#__PURE__*/React__default.createElement(Axis, {
588
- disableAnimations: disableAnimations,
589
- position: "bottom",
590
- length: chartWidth,
591
- scale: scaleX,
592
- x: 0,
593
- y: chartHeight,
594
- tickValues: xAxisTickValues !== null && xAxisTickValues !== void 0 ? xAxisTickValues : 8,
595
- tickPadding: xAxisTickPadding,
596
- tickRotation: xAxisTickRotation,
597
- tickSize: xAxisTickSize,
598
- tickFormat: xAxisTickFormat,
599
- variant: xAxisVariant
600
- }) : null, ['top', 'both'].includes(xAxisPlacement) ? /*#__PURE__*/React__default.createElement(Axis, {
601
- disableAnimations: disableAnimations,
602
- position: "top",
603
- length: chartWidth,
604
- scale: scaleX,
605
- x: 0,
606
- y: 0,
607
- tickValues: xAxisTickValues !== null && xAxisTickValues !== void 0 ? xAxisTickValues : 8,
608
- tickPadding: xAxisTickPadding,
609
- tickRotation: xAxisTickRotation,
610
- tickSize: xAxisTickSize,
611
- tickFormat: xAxisTickFormat,
612
- variant: xAxisVariant
613
- }) : null, ['left', 'both'].includes(yAxisPlacement) ? /*#__PURE__*/React__default.createElement(Axis, {
614
- disableAnimations: disableAnimations,
615
- position: "left",
616
- length: chartHeight,
617
- scale: scaleY,
618
- x: 0,
619
- y: chartHeight,
620
- tickValues: yAxisTickValues !== null && yAxisTickValues !== void 0 ? yAxisTickValues : 8,
621
- tickPadding: yAxisTickPadding,
622
- tickRotation: yAxisTickRotation,
623
- tickSize: yAxisTickSize,
624
- tickFormat: yAxisTickFormat,
625
- variant: yAxisVariant
626
- }) : null, ['right', 'both'].includes(yAxisPlacement) ? /*#__PURE__*/React__default.createElement(Axis, {
627
- disableAnimations: disableAnimations,
628
- position: "right",
629
- length: chartHeight,
630
- scale: scaleY,
631
- x: chartWidth,
632
- y: chartHeight,
633
- tickValues: yAxisTickValues !== null && yAxisTickValues !== void 0 ? yAxisTickValues : 8,
634
- tickPadding: yAxisTickPadding,
635
- tickRotation: yAxisTickRotation,
636
- tickSize: yAxisTickSize,
637
- tickFormat: yAxisTickFormat,
638
- variant: yAxisVariant
639
- }) : null))), hasCategory && legendVariant !== ScatterPlotLegendVariant.none ? /*#__PURE__*/React__default.createElement(Legend, _extends({
640
- data: (extraLegendItems ? mergeLegends(extraLegendItems, countsByCategory).sort(getSortingMethod(sortingMethod)) : countsByCategory).map(d => _objectSpread2(_objectSpread2({}, d), {}, {
641
- color: colorScale === null || colorScale === void 0 ? void 0 : colorScale(d.key)
642
- })),
643
- variant: legendVariant === ScatterPlotLegendVariant.externalLabelValue ? LegendVariant.value : legendVariant === ScatterPlotLegendVariant.externalLabelPercent ? LegendVariant.percent : legendVariant === ScatterPlotLegendVariant.externalLabel ? LegendVariant.label : LegendVariant.custom,
644
- width: legendWidth.current,
645
- legendDecorator: legendDecorator ? (datum, props) => legendDecorator(datum, props) : undefined
646
- }, forwardedLegendProps)) : null);
647
- });
648
-
649
- const _excluded = ["className", "colorTheme", "data", "dotRole", "emptyComponent", "hideControlKeyPanel", "id", "isDotSelected", "labelDecorator", "legendDecorator", "legendVariant", "localeText", "onBrush", "onBrushEnd", "onDotClick", "size", "sortingMethod", "tooltipDecorator", "tooltipVariant", "variant", "xAxisPlacement", "xAxisVariant", "yAxisPlacement", "yAxisVariant"];
650
- const COMPONENT_NAME = 'ScatterPlot';
651
- const CLASSNAME = 'redsift-scatterplot';
652
- const ScatterPlot = /*#__PURE__*/forwardRef((props, ref) => {
653
- const {
654
- className,
655
- colorTheme = ColorTheme.default,
656
- data: propsData,
657
- dotRole,
658
- emptyComponent,
659
- hideControlKeyPanel = false,
660
- id: propsId,
661
- isDotSelected,
662
- labelDecorator,
663
- legendDecorator,
664
- legendVariant: propsLegendVariant,
665
- localeText = {
666
- emptyChartText: 'No Data'
667
- },
668
- onBrush,
669
- onBrushEnd,
670
- onDotClick,
671
- size = ChartSize.medium,
672
- sortingMethod = 'desc-value',
673
- tooltipDecorator,
674
- tooltipVariant = TooltipVariant.none,
675
- variant = ScatterPlotVariant.default,
676
- xAxisPlacement = 'bottom',
677
- xAxisVariant = AxisVariant.default,
678
- yAxisPlacement = 'left',
679
- yAxisVariant = AxisVariant.default
680
- } = props,
681
- forwardedProps = _objectWithoutProperties(props, _excluded);
682
- const [_id] = useId();
683
- const id = propsId !== null && propsId !== void 0 ? propsId : _id;
684
- const legendVariant = propsLegendVariant !== null && propsLegendVariant !== void 0 ? propsLegendVariant : ScatterPlotLegendVariant.externalLabel;
685
- if (propsData === undefined || propsData === null) {
686
- return /*#__PURE__*/React__default.createElement(LoadingScatterPlot, _extends({
687
- id: id
688
- }, forwardedProps, {
689
- ref: ref
690
- }));
691
- }
692
- if (propsData.length === 0) {
693
- return /*#__PURE__*/React__default.createElement(EmptyScatterPlot, _extends({
694
- data: propsData,
695
- emptyComponent: emptyComponent,
696
- hideControlKeyPanel: hideControlKeyPanel,
697
- localeText: localeText,
698
- size: size,
699
- sortingMethod: sortingMethod,
700
- xAxisPlacement: xAxisPlacement,
701
- xAxisVariant: xAxisVariant,
702
- yAxisPlacement: yAxisPlacement,
703
- yAxisVariant: yAxisVariant
704
- }, forwardedProps, {
705
- ref: ref
706
- }));
707
- }
708
- return /*#__PURE__*/React__default.createElement(RenderedScatterPlot, _extends({
709
- className: classNames(ScatterPlot.className, className),
710
- colorTheme: colorTheme,
711
- data: propsData,
712
- dotRole: dotRole,
713
- hideControlKeyPanel: hideControlKeyPanel,
714
- id: id,
715
- isDotSelected: isDotSelected,
716
- labelDecorator: labelDecorator,
717
- legendDecorator: legendDecorator,
718
- legendVariant: legendVariant,
719
- localeText: localeText,
720
- onBrush: onBrush,
721
- onBrushEnd: onBrushEnd,
722
- onDotClick: onDotClick,
723
- size: size,
724
- sortingMethod: sortingMethod,
725
- tooltipDecorator: tooltipDecorator,
726
- tooltipVariant: tooltipVariant,
727
- variant: variant,
728
- xAxisPlacement: xAxisPlacement,
729
- xAxisVariant: xAxisVariant,
730
- yAxisPlacement: yAxisPlacement,
731
- yAxisVariant: yAxisVariant
732
- }, forwardedProps, {
733
- ref: ref
734
- }));
735
- });
736
- ScatterPlot.className = CLASSNAME;
737
- ScatterPlot.displayName = COMPONENT_NAME;
738
-
739
- export { ScatterPlot as S, useZoom as a, ScatterPlotVariant as b, ScatterPlotLegendVariant as c, StyledScatterPlot as d, StyledScatterPlotEmptyText as e, useBrush as u };
740
- //# sourceMappingURL=ScatterPlot2.js.map