@redsift/charts 11.6.0-muiv5-alpha.4 → 11.6.0-muiv5-alpha.5

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 (275) hide show
  1. package/_internal/Arc.js +10 -0
  2. package/_internal/Arc.js.map +1 -0
  3. package/{components/Arc/Arc.js → _internal/Arc2.js} +52 -9
  4. package/_internal/Arc2.js.map +1 -0
  5. package/_internal/Arcs.js +10 -0
  6. package/_internal/Arcs.js.map +1 -0
  7. package/{components/Arcs/Arcs.js → _internal/Arcs2.js} +12 -8
  8. package/_internal/Arcs2.js.map +1 -0
  9. package/_internal/Axis.js +8 -0
  10. package/_internal/Axis.js.map +1 -0
  11. package/{types/axis.d.ts → _internal/Axis2.js} +2 -2
  12. package/_internal/Axis2.js.map +1 -0
  13. package/_internal/Bar.js +10 -0
  14. package/_internal/Bar.js.map +1 -0
  15. package/{components/Bar/Bar.js → _internal/Bar2.js} +85 -10
  16. package/_internal/Bar2.js.map +1 -0
  17. package/_internal/BarChart.js +17 -0
  18. package/_internal/BarChart.js.map +1 -0
  19. package/_internal/BarChart2.js +1419 -0
  20. package/_internal/BarChart2.js.map +1 -0
  21. package/_internal/ChartContainer.js +5 -0
  22. package/_internal/ChartContainer.js.map +1 -0
  23. package/{components/ChartContainer/ChartContainer.js → _internal/ChartContainer2.js} +105 -6
  24. package/_internal/ChartContainer2.js.map +1 -0
  25. package/_internal/DataPoint.js +7 -0
  26. package/_internal/DataPoint.js.map +1 -0
  27. package/{components/DataPoint/DataPoint.js → _internal/DataPoint2.js} +11 -5
  28. package/_internal/DataPoint2.js.map +1 -0
  29. package/_internal/Dot.js +10 -0
  30. package/_internal/Dot.js.map +1 -0
  31. package/{components/Dot/Dot.js → _internal/Dot2.js} +61 -6
  32. package/_internal/Dot2.js.map +1 -0
  33. package/_internal/Legend.js +10 -0
  34. package/_internal/Legend.js.map +1 -0
  35. package/{components/Legend/Legend.js → _internal/Legend3.js} +17 -6
  36. package/_internal/Legend3.js.map +1 -0
  37. package/_internal/LegendItem.js +21 -0
  38. package/_internal/LegendItem.js.map +1 -0
  39. package/{components/LegendItem/LegendItem.js → _internal/LegendItem2.js} +64 -7
  40. package/_internal/LegendItem2.js.map +1 -0
  41. package/_internal/Line.js +10 -0
  42. package/_internal/Line.js.map +1 -0
  43. package/{components/Line/Line.js → _internal/Line2.js} +12 -8
  44. package/_internal/Line2.js.map +1 -0
  45. package/_internal/LineChart.js +17 -0
  46. package/_internal/LineChart.js.map +1 -0
  47. package/{components/LineChart/RenderedLineChart.js → _internal/LineChart2.js} +317 -20
  48. package/_internal/LineChart2.js.map +1 -0
  49. package/_internal/PieChart.js +14 -0
  50. package/_internal/PieChart.js.map +1 -0
  51. package/_internal/PieChart2.js +605 -0
  52. package/_internal/PieChart2.js.map +1 -0
  53. package/_internal/ScatterPlot.js +17 -0
  54. package/_internal/ScatterPlot.js.map +1 -0
  55. package/_internal/ScatterPlot2.js +743 -0
  56. package/_internal/ScatterPlot2.js.map +1 -0
  57. package/{_virtual → _internal}/_rollupPluginBabelHelpers.js +1 -1
  58. package/_internal/config.js +13 -0
  59. package/_internal/config.js.map +1 -0
  60. package/{types/data.d.ts → _internal/data.js} +1 -1
  61. package/{types/legend.js → _internal/legend2.js} +2 -2
  62. package/_internal/legend2.js.map +1 -0
  63. package/{components/Axis/types.d.ts → _internal/scale.js} +47 -2
  64. package/{scheme.js → _internal/scheme.js} +1 -1
  65. package/_internal/scheme.js.map +1 -0
  66. package/{components/Arc/styles.d.ts → _internal/styles.js} +7 -5
  67. package/{components/Line/types.d.ts → _internal/styles10.js} +14 -5
  68. package/{components/LineChart/types.d.ts → _internal/styles11.js} +23 -12
  69. package/{components/PieChart/types.d.ts → _internal/styles12.js} +29 -11
  70. package/{components/ScatterPlot/types.d.ts → _internal/styles13.js} +23 -12
  71. package/{components/Arcs/types.d.ts → _internal/styles2.js} +11 -2
  72. package/{components/Axis/styles.d.ts → _internal/styles3.js} +6 -3
  73. package/{components/Bar/styles.d.ts → _internal/styles4.js} +7 -5
  74. package/{components/BarChart/types.d.ts → _internal/styles5.js} +49 -14
  75. package/{components/ChartContainer/styles.d.ts → _internal/styles6.js} +8 -3
  76. package/{components/DataPoint/styles.d.ts → _internal/styles7.js} +5 -2
  77. package/{components/Dot/styles.d.ts → _internal/styles8.js} +7 -4
  78. package/{components/Legend/styles.d.ts → _internal/styles9.js} +5 -2
  79. package/{utils/index.js → _internal/theme.js} +37 -2
  80. package/_internal/theme.js.map +1 -0
  81. package/{components/Arc/types.d.ts → _internal/types.js} +3 -3
  82. package/{components/Bar/types.d.ts → _internal/types2.js} +3 -3
  83. package/{components/ChartContainer/types.d.ts → _internal/types3.js} +1 -1
  84. package/{components/DataPoint/types.d.ts → _internal/types4.js} +29 -3
  85. package/{components/Dot/types.d.ts → _internal/types5.js} +3 -3
  86. package/{components/Legend/types.d.ts → _internal/types6.js} +4 -4
  87. package/{components/LegendItem/types.d.ts → _internal/types7.js} +8 -4
  88. package/{hooks → _internal}/useFormatCategoricalData.js +3 -4
  89. package/{hooks → _internal}/useFormatCategoricalData.js.map +1 -1
  90. package/index.js +129 -43
  91. package/index.js.map +1 -1
  92. package/index2.js +49 -0
  93. package/index2.js.map +1 -0
  94. package/package.json +2 -2
  95. package/components/Arc/Arc.d.ts +0 -6
  96. package/components/Arc/Arc.js.map +0 -1
  97. package/components/Arc/styles.js +0 -49
  98. package/components/Arc/styles.js.map +0 -1
  99. package/components/Arcs/Arcs.d.ts +0 -6
  100. package/components/Arcs/Arcs.js.map +0 -1
  101. package/components/Arcs/styles.d.ts +0 -9
  102. package/components/Arcs/styles.js +0 -9
  103. package/components/Arcs/styles.js.map +0 -1
  104. package/components/Axis/Axis.d.ts +0 -7
  105. package/components/Axis/Axis.js +0 -211
  106. package/components/Axis/Axis.js.map +0 -1
  107. package/components/Axis/computeTicks.js +0 -117
  108. package/components/Axis/computeTicks.js.map +0 -1
  109. package/components/Axis/styles.js +0 -51
  110. package/components/Axis/styles.js.map +0 -1
  111. package/components/Axis/types.js +0 -24
  112. package/components/Axis/types.js.map +0 -1
  113. package/components/Bar/Bar.d.ts +0 -6
  114. package/components/Bar/Bar.js.map +0 -1
  115. package/components/Bar/styles.js +0 -66
  116. package/components/Bar/styles.js.map +0 -1
  117. package/components/Bar/types.js +0 -18
  118. package/components/Bar/types.js.map +0 -1
  119. package/components/BarChart/BarChart.d.ts +0 -29
  120. package/components/BarChart/BarChart.js +0 -141
  121. package/components/BarChart/BarChart.js.map +0 -1
  122. package/components/BarChart/BarChartBars.js +0 -168
  123. package/components/BarChart/BarChartBars.js.map +0 -1
  124. package/components/BarChart/BarChartSection.js +0 -139
  125. package/components/BarChart/BarChartSection.js.map +0 -1
  126. package/components/BarChart/EmptyBarChart.js +0 -57
  127. package/components/BarChart/EmptyBarChart.js.map +0 -1
  128. package/components/BarChart/LoadingBarChart.js +0 -18
  129. package/components/BarChart/LoadingBarChart.js.map +0 -1
  130. package/components/BarChart/RenderedLinearBarChart.js +0 -549
  131. package/components/BarChart/RenderedLinearBarChart.js.map +0 -1
  132. package/components/BarChart/RenderedOrdinalBarChart.js +0 -236
  133. package/components/BarChart/RenderedOrdinalBarChart.js.map +0 -1
  134. package/components/BarChart/context.js +0 -13
  135. package/components/BarChart/context.js.map +0 -1
  136. package/components/BarChart/intl/en-US.json.js +0 -17
  137. package/components/BarChart/intl/en-US.json.js.map +0 -1
  138. package/components/BarChart/intl/fr-FR.json.js +0 -17
  139. package/components/BarChart/intl/fr-FR.json.js.map +0 -1
  140. package/components/BarChart/intl/index.js +0 -10
  141. package/components/BarChart/intl/index.js.map +0 -1
  142. package/components/BarChart/styles.d.ts +0 -19
  143. package/components/BarChart/styles.js +0 -71
  144. package/components/BarChart/styles.js.map +0 -1
  145. package/components/BarChart/types.js +0 -17
  146. package/components/BarChart/types.js.map +0 -1
  147. package/components/BarChart/utils.js +0 -69
  148. package/components/BarChart/utils.js.map +0 -1
  149. package/components/ChartContainer/ChartContainer.d.ts +0 -9
  150. package/components/ChartContainer/ChartContainer.js.map +0 -1
  151. package/components/ChartContainer/context.js +0 -6
  152. package/components/ChartContainer/context.js.map +0 -1
  153. package/components/ChartContainer/intl/en-US.json.js +0 -14
  154. package/components/ChartContainer/intl/en-US.json.js.map +0 -1
  155. package/components/ChartContainer/intl/fr-FR.json.js +0 -14
  156. package/components/ChartContainer/intl/fr-FR.json.js.map +0 -1
  157. package/components/ChartContainer/intl/index.js +0 -10
  158. package/components/ChartContainer/intl/index.js.map +0 -1
  159. package/components/ChartContainer/styles.js +0 -76
  160. package/components/ChartContainer/styles.js.map +0 -1
  161. package/components/DataPoint/DataPoint.d.ts +0 -6
  162. package/components/DataPoint/DataPoint.js.map +0 -1
  163. package/components/DataPoint/styles.js +0 -10
  164. package/components/DataPoint/styles.js.map +0 -1
  165. package/components/Dot/Dot.d.ts +0 -6
  166. package/components/Dot/Dot.js.map +0 -1
  167. package/components/Dot/styles.js +0 -49
  168. package/components/Dot/styles.js.map +0 -1
  169. package/components/Dot/types.js +0 -14
  170. package/components/Dot/types.js.map +0 -1
  171. package/components/Legend/Legend.d.ts +0 -6
  172. package/components/Legend/Legend.js.map +0 -1
  173. package/components/Legend/styles.js +0 -15
  174. package/components/Legend/styles.js.map +0 -1
  175. package/components/LegendItem/LegendItem.js.map +0 -1
  176. package/components/LegendItem/styles.js +0 -63
  177. package/components/LegendItem/styles.js.map +0 -1
  178. package/components/Line/Line.d.ts +0 -6
  179. package/components/Line/Line.js.map +0 -1
  180. package/components/Line/styles.d.ts +0 -9
  181. package/components/Line/styles.js +0 -9
  182. package/components/Line/styles.js.map +0 -1
  183. package/components/LineChart/EmptyLineChart.js +0 -58
  184. package/components/LineChart/EmptyLineChart.js.map +0 -1
  185. package/components/LineChart/LineChart.d.ts +0 -6
  186. package/components/LineChart/LineChart.js +0 -96
  187. package/components/LineChart/LineChart.js.map +0 -1
  188. package/components/LineChart/LoadingLineChart.js +0 -18
  189. package/components/LineChart/LoadingLineChart.js.map +0 -1
  190. package/components/LineChart/RenderedLineChart.js.map +0 -1
  191. package/components/LineChart/intl/en-US.json.js +0 -17
  192. package/components/LineChart/intl/en-US.json.js.map +0 -1
  193. package/components/LineChart/intl/fr-FR.json.js +0 -17
  194. package/components/LineChart/intl/fr-FR.json.js.map +0 -1
  195. package/components/LineChart/intl/index.js +0 -10
  196. package/components/LineChart/intl/index.js.map +0 -1
  197. package/components/LineChart/styles.d.ts +0 -17
  198. package/components/LineChart/styles.js +0 -53
  199. package/components/LineChart/styles.js.map +0 -1
  200. package/components/LineChart/types.js +0 -17
  201. package/components/LineChart/types.js.map +0 -1
  202. package/components/LineChart/utils.js +0 -67
  203. package/components/LineChart/utils.js.map +0 -1
  204. package/components/PieChart/EmptyPieChart.js +0 -85
  205. package/components/PieChart/EmptyPieChart.js.map +0 -1
  206. package/components/PieChart/LoadingPieChart.js +0 -18
  207. package/components/PieChart/LoadingPieChart.js.map +0 -1
  208. package/components/PieChart/PieChart.d.ts +0 -6
  209. package/components/PieChart/PieChart.js +0 -98
  210. package/components/PieChart/PieChart.js.map +0 -1
  211. package/components/PieChart/RenderedPieChart.js +0 -198
  212. package/components/PieChart/RenderedPieChart.js.map +0 -1
  213. package/components/PieChart/intl/en-US.json.js +0 -9
  214. package/components/PieChart/intl/en-US.json.js.map +0 -1
  215. package/components/PieChart/intl/fr-FR.json.js +0 -9
  216. package/components/PieChart/intl/fr-FR.json.js.map +0 -1
  217. package/components/PieChart/intl/index.js +0 -10
  218. package/components/PieChart/intl/index.js.map +0 -1
  219. package/components/PieChart/styles.d.ts +0 -24
  220. package/components/PieChart/styles.js +0 -168
  221. package/components/PieChart/styles.js.map +0 -1
  222. package/components/PieChart/types.js +0 -27
  223. package/components/PieChart/types.js.map +0 -1
  224. package/components/PieChart/utils.js +0 -37
  225. package/components/PieChart/utils.js.map +0 -1
  226. package/components/ScatterPlot/EmptyScatterPlot.js +0 -58
  227. package/components/ScatterPlot/EmptyScatterPlot.js.map +0 -1
  228. package/components/ScatterPlot/LoadingScatterPlot.js +0 -18
  229. package/components/ScatterPlot/LoadingScatterPlot.js.map +0 -1
  230. package/components/ScatterPlot/RenderedScatterPlot.js +0 -352
  231. package/components/ScatterPlot/RenderedScatterPlot.js.map +0 -1
  232. package/components/ScatterPlot/ScatterPlot.d.ts +0 -6
  233. package/components/ScatterPlot/ScatterPlot.js +0 -105
  234. package/components/ScatterPlot/ScatterPlot.js.map +0 -1
  235. package/components/ScatterPlot/intl/en-US.json.js +0 -12
  236. package/components/ScatterPlot/intl/en-US.json.js.map +0 -1
  237. package/components/ScatterPlot/intl/fr-FR.json.js +0 -17
  238. package/components/ScatterPlot/intl/fr-FR.json.js.map +0 -1
  239. package/components/ScatterPlot/intl/index.js +0 -10
  240. package/components/ScatterPlot/intl/index.js.map +0 -1
  241. package/components/ScatterPlot/styles.d.ts +0 -17
  242. package/components/ScatterPlot/styles.js +0 -53
  243. package/components/ScatterPlot/styles.js.map +0 -1
  244. package/components/ScatterPlot/types.js +0 -24
  245. package/components/ScatterPlot/types.js.map +0 -1
  246. package/components/ScatterPlot/utils.js +0 -70
  247. package/components/ScatterPlot/utils.js.map +0 -1
  248. package/config.js +0 -15
  249. package/config.js.map +0 -1
  250. package/design-system/src/react-aria/react-aria/i18n/useMessageFormatter.d.ts +0 -5
  251. package/hooks/useBrush.d.ts +0 -17
  252. package/hooks/useBrush.js +0 -48
  253. package/hooks/useBrush.js.map +0 -1
  254. package/hooks/useColor.d.ts +0 -18
  255. package/hooks/useColor.js +0 -20
  256. package/hooks/useColor.js.map +0 -1
  257. package/hooks/useFormatCategoricalData.d.ts +0 -26
  258. package/hooks/useZoom.d.ts +0 -26
  259. package/hooks/useZoom.js +0 -39
  260. package/hooks/useZoom.js.map +0 -1
  261. package/index.d.ts +0 -51
  262. package/scheme.d.ts +0 -32
  263. package/scheme.js.map +0 -1
  264. package/types/legend.d.ts +0 -30
  265. package/types/legend.js.map +0 -1
  266. package/types/scale.d.ts +0 -48
  267. package/types/size.d.ts +0 -20
  268. package/types/size.js +0 -8
  269. package/types/size.js.map +0 -1
  270. package/types/theme.d.ts +0 -23
  271. package/types/theme.js +0 -13
  272. package/types/theme.js.map +0 -1
  273. package/utils/index.d.ts +0 -11
  274. package/utils/index.js.map +0 -1
  275. /package/{_virtual → _internal}/_rollupPluginBabelHelpers.js.map +0 -0
@@ -0,0 +1,605 @@
1
+ import { _ as _objectWithoutProperties, a as _extends, b as _objectSpread2 } from './_rollupPluginBabelHelpers.js';
2
+ import React__default, { forwardRef, useRef, useEffect } from 'react';
3
+ import classNames from 'classnames';
4
+ import { Theme, useTheme, useMessageFormatter, useId } from '@redsift/design-system';
5
+ import { L as LegendVariant, T as TooltipVariant } from './legend2.js';
6
+ import { C as ChartSize, m as mergeLegends, g as getSortingMethod, a as ColorTheme } from './theme.js';
7
+ import styled, { css } from 'styled-components';
8
+ import { C as ChartContainer } from './ChartContainer2.js';
9
+ import { arc, pie, sum } from 'd3';
10
+ import { e as empty } from './scheme.js';
11
+ import { A as Arcs } from './Arcs2.js';
12
+ import { u as useFormatCategoricalData } from './useFormatCategoricalData.js';
13
+ import { L as Legend } from './Legend3.js';
14
+
15
+ /**
16
+ * Component variant.
17
+ */
18
+ const PieChartVariant = {
19
+ plain: 'plain',
20
+ spaced: 'spaced',
21
+ donut: 'donut',
22
+ spacedDonut: 'spacedDonut'
23
+ };
24
+ /**
25
+ * Component's labels variant.
26
+ */
27
+ const PieChartLegendVariant = {
28
+ none: 'none',
29
+ internal: 'internal',
30
+ externalLabel: 'externalLabel',
31
+ externalLabelValue: 'externalLabelValue',
32
+ externalLabelPercent: 'externalLabelPercent',
33
+ custom: 'custom'
34
+ };
35
+
36
+ /**
37
+ * Component props.
38
+ */
39
+
40
+ /**
41
+ * Component style.
42
+ */
43
+ const StyledPieChart = styled(ChartContainer)`
44
+ .redsift-piechart__chart-wrapper {
45
+ position: relative;
46
+ }
47
+ `;
48
+ const StyledPieChartCenterText = styled.div`
49
+ position: absolute;
50
+ top: 0;
51
+ left: 0;
52
+ height: 100%;
53
+ width: 100%;
54
+ display: flex;
55
+ flex-direction: column;
56
+ justify-content: center;
57
+ align-items: center;
58
+ pointer-events: none;
59
+
60
+ > * {
61
+ max-width: ${_ref => {
62
+ let {
63
+ $maxWidth
64
+ } = _ref;
65
+ return $maxWidth;
66
+ }}px;
67
+ }
68
+
69
+ > b {
70
+ font-family: var(--redsift-typography-font-family-poppins);
71
+ color: ${_ref2 => {
72
+ let {
73
+ $theme
74
+ } = _ref2;
75
+ return `var(--redsift-color-${$theme}-components-text-primary)`;
76
+ }};
77
+ font-weight: var(--redsift-typography-font-weight-medium);
78
+ font-size: ${_ref3 => {
79
+ let {
80
+ $textSize
81
+ } = _ref3;
82
+ return $textSize;
83
+ }}px;
84
+ line-height: ${_ref4 => {
85
+ let {
86
+ $textSize
87
+ } = _ref4;
88
+ return $textSize;
89
+ }}px;
90
+
91
+ &:nth-child(2) {
92
+ font-weight: normal;
93
+ margin-top: 8px;
94
+ font-family: var(--redsift-typography-font-family-poppins);
95
+ font-size: ${_ref5 => {
96
+ let {
97
+ $smallTextSize
98
+ } = _ref5;
99
+ return $smallTextSize;
100
+ }}px;
101
+ line-height: ${_ref6 => {
102
+ let {
103
+ $smallTextSize
104
+ } = _ref6;
105
+ return $smallTextSize;
106
+ }}px;
107
+ }
108
+ }
109
+ > span {
110
+ color: ${_ref7 => {
111
+ let {
112
+ $theme
113
+ } = _ref7;
114
+ return `var(--redsift-color-${$theme}-components-text-primary)`;
115
+ }};
116
+ font-size: ${_ref8 => {
117
+ let {
118
+ $textSize
119
+ } = _ref8;
120
+ return $textSize;
121
+ }}px;
122
+ line-height: ${_ref9 => {
123
+ let {
124
+ $textSize
125
+ } = _ref9;
126
+ return $textSize;
127
+ }}px;
128
+ &:nth-child(3) {
129
+ margin-top: 4px;
130
+ font-size: ${_ref10 => {
131
+ let {
132
+ $smallTextSize
133
+ } = _ref10;
134
+ return $smallTextSize;
135
+ }}px;
136
+ line-height: ${_ref11 => {
137
+ let {
138
+ $smallTextSize
139
+ } = _ref11;
140
+ return $smallTextSize;
141
+ }}px;
142
+ }
143
+ }
144
+ > b + span {
145
+ font-size: var(--redsift-typography-body-font-size);
146
+ font-family: var(--redsift-typography-font-family-poppins);
147
+ line-height: var(--redsift-typography-badge-line-height);
148
+ color: ${_ref12 => {
149
+ let {
150
+ $theme
151
+ } = _ref12;
152
+ return $theme === Theme.light ? 'rgba(0, 0, 0, 0.6)' : 'rgba(255, 255, 255, 0.6)';
153
+ }};
154
+ text-align: center;
155
+ }
156
+ `;
157
+ const StyledPieChartEmptyText = styled.div`
158
+ position: absolute;
159
+ top: 0;
160
+ left: 0;
161
+ height: 100%;
162
+ width: 100%;
163
+ display: flex;
164
+ flex-direction: column;
165
+ justify-content: center;
166
+ align-items: center;
167
+ pointer-events: none;
168
+
169
+ > * {
170
+ max-width: ${_ref13 => {
171
+ let {
172
+ $maxWidth
173
+ } = _ref13;
174
+ return $maxWidth;
175
+ }}px;
176
+ }
177
+
178
+ > span {
179
+ font-family: var(--redsift-typography-font-family-poppins);
180
+ color: ${_ref14 => {
181
+ let {
182
+ $isDonut,
183
+ $theme
184
+ } = _ref14;
185
+ return $isDonut ? css`var(--redsift-color-neutral-mid-grey)` : css`var(--redsift-color-${$theme}-components-text-primary)`;
186
+ }};
187
+ font-size: ${_ref15 => {
188
+ let {
189
+ $textSize
190
+ } = _ref15;
191
+ return $textSize;
192
+ }}px;
193
+ line-height: ${_ref16 => {
194
+ let {
195
+ $textSize
196
+ } = _ref16;
197
+ return $textSize;
198
+ }}px;
199
+ }
200
+ `;
201
+
202
+ const _excluded$3 = ["className"];
203
+ const LoadingPieChart = /*#__PURE__*/forwardRef((props, ref) => {
204
+ const {
205
+ className
206
+ } = props,
207
+ forwardedProps = _objectWithoutProperties(props, _excluded$3);
208
+ return /*#__PURE__*/React__default.createElement(StyledPieChart, _extends({}, forwardedProps, {
209
+ className: className,
210
+ ref: ref
211
+ }), "Loading...");
212
+ });
213
+
214
+ const sizeToDimension = (size, isHalf) => {
215
+ if (typeof size !== 'string') {
216
+ return size;
217
+ }
218
+ switch (size) {
219
+ case ChartSize.small:
220
+ return {
221
+ width: 200,
222
+ height: 200 * (isHalf ? 0.5 : 1),
223
+ smallFontSize: 13,
224
+ fontSize: 30,
225
+ innerRadius: 55
226
+ };
227
+ case ChartSize.large:
228
+ return {
229
+ width: 300,
230
+ height: 300 * (isHalf ? 0.5 : 1),
231
+ smallFontSize: 18,
232
+ fontSize: 38,
233
+ innerRadius: 80
234
+ };
235
+ case ChartSize.medium:
236
+ default:
237
+ return {
238
+ width: 240,
239
+ height: 240 * (isHalf ? 0.5 : 1),
240
+ smallFontSize: 14,
241
+ fontSize: 34,
242
+ innerRadius: 65
243
+ };
244
+ }
245
+ };
246
+
247
+ const _excluded$2 = ["className", "emptyComponent", "localeText", "size", "variant"];
248
+ const EmptyPieChart = /*#__PURE__*/forwardRef((props, ref) => {
249
+ const {
250
+ className,
251
+ emptyComponent,
252
+ localeText,
253
+ size,
254
+ variant
255
+ } = props,
256
+ forwardedProps = _objectWithoutProperties(props, _excluded$2);
257
+ const theme = useTheme();
258
+ const isDonut = variant === PieChartVariant.donut || variant === PieChartVariant.spacedDonut;
259
+ const {
260
+ width,
261
+ height,
262
+ fontSize,
263
+ innerRadius
264
+ } = sizeToDimension(size);
265
+ const externalRadiusPadding = 8;
266
+ const createArc = arc().innerRadius(isDonut ? innerRadius : 0).outerRadius(width / 2 - externalRadiusPadding);
267
+ return /*#__PURE__*/React__default.createElement(StyledPieChart, _extends({}, forwardedProps, {
268
+ className: className,
269
+ ref: ref
270
+ }), emptyComponent !== null && emptyComponent !== void 0 ? emptyComponent : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(StyledPieChartEmptyText, {
271
+ $maxWidth: innerRadius * 2,
272
+ $textSize: fontSize / 2,
273
+ $isDonut: isDonut,
274
+ $theme: theme
275
+ }, /*#__PURE__*/React__default.createElement("span", null, localeText === null || localeText === void 0 ? void 0 : localeText.emptyChartText)), /*#__PURE__*/React__default.createElement("svg", {
276
+ width: width,
277
+ height: height
278
+ }, /*#__PURE__*/React__default.createElement(Arcs, {
279
+ arcs: [{
280
+ createArc,
281
+ previousData: {
282
+ data: {
283
+ key: '',
284
+ value: 0
285
+ },
286
+ startAngle: 0,
287
+ endAngle: 0,
288
+ padAngle: 0,
289
+ value: 0,
290
+ index: 0
291
+ },
292
+ data: {
293
+ data: {
294
+ key: 'No Data',
295
+ value: 0
296
+ },
297
+ index: 0,
298
+ value: 0,
299
+ startAngle: 0,
300
+ endAngle: 2 * Math.PI,
301
+ padAngle: 0
302
+ },
303
+ dataset: [{
304
+ data: {
305
+ key: 'No Data',
306
+ value: 0
307
+ },
308
+ index: 0,
309
+ value: 0,
310
+ startAngle: 0,
311
+ endAngle: 2 * Math.PI,
312
+ padAngle: 0
313
+ }],
314
+ color: empty
315
+ }],
316
+ transform: `translate(${width / 2} ${height / 2})`
317
+ }))));
318
+ });
319
+
320
+ var definition$1 = "Pie Chart with {sliceLength} slices.";
321
+ var enUS = {
322
+ "interactive-chart": "Interactive Line Chart",
323
+ "static-chart": "Static Line Chart",
324
+ definition: definition$1
325
+ };
326
+
327
+ var definition = "Diagramme circulaire contenant {sliceLength} secteurs.";
328
+ var frFR = {
329
+ "interactive-chart": "Diagramme circulaire interactif",
330
+ "static-chart": "Diagramme circulaire statique",
331
+ definition: definition
332
+ };
333
+
334
+ var intlMessages = {
335
+ 'en-US': enUS,
336
+ 'fr-FR': frFR
337
+ };
338
+
339
+ const _excluded$1 = ["caping", "className", "data", "disableAnimations", "getSliceAnchorProps", "id", "isHalf", "isSliceSelected", "labelDecorator", "legendDecorator", "legendVariant", "legendProps", "middleText", "onSliceClick", "others", "size", "sliceProps", "sliceRole", "sortingMethod", "subtext", "text", "colorTheme", "tooltipVariant", "variant"],
340
+ _excluded2 = ["extraLegendItems"];
341
+ const RenderedPieChart = /*#__PURE__*/forwardRef((props, ref) => {
342
+ const {
343
+ caping,
344
+ className,
345
+ data: propsData,
346
+ disableAnimations,
347
+ getSliceAnchorProps,
348
+ id,
349
+ isHalf,
350
+ isSliceSelected,
351
+ labelDecorator,
352
+ legendDecorator,
353
+ legendVariant,
354
+ legendProps,
355
+ middleText: propsMiddleText,
356
+ onSliceClick,
357
+ others,
358
+ size,
359
+ sliceProps,
360
+ sliceRole,
361
+ sortingMethod,
362
+ subtext: propsSubtext,
363
+ text: propsText,
364
+ colorTheme,
365
+ tooltipVariant,
366
+ variant
367
+ } = props,
368
+ forwardedProps = _objectWithoutProperties(props, _excluded$1);
369
+ const cache = useRef();
370
+ const theme = useTheme();
371
+ const format = useMessageFormatter(intlMessages);
372
+ const isDonut = variant === PieChartVariant.donut || variant === PieChartVariant.spacedDonut;
373
+ const isSpaced = variant === PieChartVariant.spaced || variant === PieChartVariant.spacedDonut;
374
+ const {
375
+ data,
376
+ colorScale
377
+ } = useFormatCategoricalData({
378
+ data: propsData,
379
+ colorTheme: colorTheme,
380
+ sortingMethod: sortingMethod,
381
+ caping,
382
+ others,
383
+ theme
384
+ });
385
+ useEffect(() => {
386
+ cache.current = data;
387
+ });
388
+ const {
389
+ width,
390
+ height,
391
+ smallFontSize,
392
+ fontSize,
393
+ innerRadius
394
+ } = sizeToDimension(size, isHalf);
395
+ const externalRadiusPadding = 8;
396
+ const createPie = pie().value(d => d.value).sort(null).startAngle(isHalf ? Math.PI * -0.5 : 0).endAngle(isHalf ? Math.PI * 0.5 : Math.PI * 2);
397
+ const createArc = arc().innerRadius(isDonut ? innerRadius : 0).outerRadius(width / 2 - externalRadiusPadding);
398
+ const pieData = createPie(data);
399
+ const previousPieData = cache.current ? createPie(cache.current) : undefined;
400
+ const total = sum(data, d => d.value);
401
+ const legendWidth = useRef();
402
+ if (data && !legendWidth.current) {
403
+ legendWidth.current = `${Math.max(...data.map(d => d.key.length + String(d.value).length)) * 8 + 32}px`;
404
+ }
405
+ const text = typeof propsText === 'function' ? propsText(pieData.map(datum => {
406
+ const percent = datum.data.value / total;
407
+ return _objectSpread2(_objectSpread2({}, datum), {}, {
408
+ data: _objectSpread2(_objectSpread2({}, datum.data), {}, {
409
+ percent
410
+ })
411
+ });
412
+ }), total) : propsText;
413
+ const subtext = typeof propsSubtext === 'function' ? propsSubtext(pieData.map(datum => {
414
+ const percent = datum.data.value / total;
415
+ return _objectSpread2(_objectSpread2({}, datum), {}, {
416
+ data: _objectSpread2(_objectSpread2({}, datum.data), {}, {
417
+ percent
418
+ })
419
+ });
420
+ }), total) : propsSubtext;
421
+ const middleText = typeof propsMiddleText === 'function' ? propsMiddleText(pieData.map(datum => {
422
+ const percent = datum.data.value / total;
423
+ return _objectSpread2(_objectSpread2({}, datum), {}, {
424
+ data: _objectSpread2(_objectSpread2({}, datum.data), {}, {
425
+ percent
426
+ })
427
+ });
428
+ }), total) : propsMiddleText;
429
+ const filteredPieData = pieData.filter(datum => datum.data.value);
430
+ const _ref = legendProps || {},
431
+ {
432
+ extraLegendItems
433
+ } = _ref,
434
+ forwardedLegendProps = _objectWithoutProperties(_ref, _excluded2);
435
+ return /*#__PURE__*/React__default.createElement(StyledPieChart, _extends({
436
+ mode: typeof onSliceClick === 'function' || typeof getSliceAnchorProps === 'function' ? 'interactive' : 'static',
437
+ definition: format('definition', {
438
+ sliceLength: filteredPieData.length
439
+ }),
440
+ dataTableRepresentation: {
441
+ header: /*#__PURE__*/React__default.createElement("thead", null, /*#__PURE__*/React__default.createElement("tr", null, /*#__PURE__*/React__default.createElement("th", {
442
+ scope: "col"
443
+ }, "Key"), /*#__PURE__*/React__default.createElement("th", {
444
+ scope: "col"
445
+ }, "Value"))),
446
+ body: /*#__PURE__*/React__default.createElement("tbody", null, filteredPieData.map(datum => /*#__PURE__*/React__default.createElement("tr", {
447
+ key: datum.data.key
448
+ }, /*#__PURE__*/React__default.createElement("th", {
449
+ scope: "row"
450
+ }, datum.data.key), /*#__PURE__*/React__default.createElement("td", null, datum.data.value))))
451
+ }
452
+ }, forwardedProps, {
453
+ className: className,
454
+ id: id,
455
+ ref: ref
456
+ }), /*#__PURE__*/React__default.createElement("div", {
457
+ className: `${PieChart.className}__chart-wrapper`
458
+ }, text ? /*#__PURE__*/React__default.createElement(StyledPieChartCenterText, {
459
+ $maxWidth: innerRadius * 2,
460
+ $textSize: fontSize,
461
+ $smallTextSize: smallFontSize,
462
+ $theme: theme
463
+ }, subtext ? /*#__PURE__*/React__default.createElement("b", null, text) : /*#__PURE__*/React__default.createElement("span", null, text), middleText ? /*#__PURE__*/React__default.createElement("b", null, middleText) : null, /*#__PURE__*/React__default.createElement("span", null, subtext)) : null, /*#__PURE__*/React__default.createElement("svg", {
464
+ width: width,
465
+ height: isHalf ? height + externalRadiusPadding : height,
466
+ "aria-label": typeof onSliceClick === 'function' || typeof getSliceAnchorProps === 'function' ? format('interactive-chart') : format('static-chart'),
467
+ "aria-hidden": "false"
468
+ }, /*#__PURE__*/React__default.createElement(Arcs, {
469
+ arcs: filteredPieData.map((datum, index) => {
470
+ const percent = datum.data.value / total;
471
+ const from = previousPieData ? previousPieData[index] : {
472
+ data: {
473
+ key: '',
474
+ value: 0
475
+ },
476
+ startAngle: isHalf ? Math.PI * -0.5 : 0,
477
+ endAngle: isHalf ? Math.PI * -0.5 : 0,
478
+ padAngle: 0,
479
+ value: 0,
480
+ index: index
481
+ };
482
+ const to = _objectSpread2(_objectSpread2({}, datum), {}, {
483
+ data: _objectSpread2(_objectSpread2({}, datum.data), {}, {
484
+ percent
485
+ })
486
+ });
487
+ return {
488
+ color: colorScale === null || colorScale === void 0 ? void 0 : colorScale(to.data.key),
489
+ createArc,
490
+ previousData: from,
491
+ id: `id${id}__arc-${index}`,
492
+ index,
493
+ isSelected: isSliceSelected(to),
494
+ key: `id${id}__arc-${index}`,
495
+ data: to,
496
+ dataset: pieData,
497
+ anchorProps: getSliceAnchorProps ? getSliceAnchorProps(to) : undefined
498
+ };
499
+ }),
500
+ disableAnimations: disableAnimations,
501
+ hasLabels: legendVariant === PieChartLegendVariant.internal,
502
+ hasStroke: isSpaced,
503
+ labelDecorator: labelDecorator,
504
+ onClick: onSliceClick,
505
+ role: sliceRole,
506
+ sliceProps: sliceProps,
507
+ tooltipVariant: tooltipVariant,
508
+ transform: `translate(${width / 2} ${isHalf ? height : height / 2})`
509
+ }))), legendVariant !== PieChartLegendVariant.none && legendVariant !== PieChartLegendVariant.internal ? /*#__PURE__*/React__default.createElement(Legend, _extends({
510
+ data: (extraLegendItems ? mergeLegends(extraLegendItems, data).sort(getSortingMethod(sortingMethod)) : data).map(d => _objectSpread2(_objectSpread2({}, d), {}, {
511
+ color: colorScale === null || colorScale === void 0 ? void 0 : colorScale(d.key)
512
+ })),
513
+ variant: legendVariant === PieChartLegendVariant.externalLabelValue ? LegendVariant.value : legendVariant === PieChartLegendVariant.externalLabelPercent ? LegendVariant.percent : legendVariant === PieChartLegendVariant.externalLabel ? LegendVariant.label : LegendVariant.custom,
514
+ width: legendWidth.current,
515
+ labelDecorator: labelDecorator ? (datum, props) => labelDecorator(datum, props) : undefined,
516
+ legendDecorator: legendDecorator ? (datum, props) => legendDecorator(datum, props) : undefined
517
+ }, forwardedLegendProps)) : null);
518
+ });
519
+
520
+ const _excluded = ["caping", "chartRef", "className", "colorTheme", "data", "emptyComponent", "id", "isSliceSelected", "labelDecorator", "legendDecorator", "legendVariant", "localeText", "middleText", "onSliceClick", "others", "size", "sliceRole", "sortingMethod", "subtext", "text", "tooltipDecorator", "tooltipVariant", "variant"];
521
+ const COMPONENT_NAME = 'PieChart';
522
+ const CLASSNAME = 'redsift-piechart';
523
+ const PieChart = /*#__PURE__*/forwardRef((props, ref) => {
524
+ const {
525
+ caping,
526
+ chartRef,
527
+ className,
528
+ colorTheme = ColorTheme.default,
529
+ data: propsData,
530
+ emptyComponent,
531
+ id: propsId,
532
+ isSliceSelected = () => true,
533
+ labelDecorator,
534
+ legendDecorator,
535
+ legendVariant: propsLegendVariant,
536
+ localeText = {
537
+ emptyChartText: 'No Data'
538
+ },
539
+ middleText,
540
+ onSliceClick,
541
+ others = true,
542
+ size = ChartSize.medium,
543
+ sliceRole,
544
+ sortingMethod = 'desc-value',
545
+ subtext,
546
+ text,
547
+ tooltipDecorator,
548
+ tooltipVariant = TooltipVariant.value,
549
+ variant = PieChartVariant.spaced
550
+ } = props,
551
+ forwardedProps = _objectWithoutProperties(props, _excluded);
552
+ const [_id] = useId();
553
+ const id = propsId !== null && propsId !== void 0 ? propsId : _id;
554
+ const legendVariant = propsLegendVariant !== null && propsLegendVariant !== void 0 ? propsLegendVariant : PieChartLegendVariant.none;
555
+ if (propsData === undefined || propsData === null) {
556
+ return /*#__PURE__*/React__default.createElement(LoadingPieChart, _extends({
557
+ id: id
558
+ }, forwardedProps, {
559
+ ref: ref
560
+ }));
561
+ }
562
+ if (propsData.length === 0) {
563
+ return /*#__PURE__*/React__default.createElement(EmptyPieChart, _extends({
564
+ data: propsData,
565
+ emptyComponent: emptyComponent,
566
+ id: id,
567
+ localeText: localeText,
568
+ size: size,
569
+ sortingMethod: sortingMethod,
570
+ variant: variant
571
+ }, forwardedProps, {
572
+ ref: ref
573
+ }));
574
+ }
575
+ return /*#__PURE__*/React__default.createElement(RenderedPieChart, _extends({
576
+ caping: caping,
577
+ chartRef: chartRef,
578
+ className: classNames(PieChart.className, className),
579
+ data: propsData,
580
+ id: id,
581
+ isSliceSelected: isSliceSelected,
582
+ labelDecorator: labelDecorator,
583
+ legendDecorator: legendDecorator,
584
+ legendVariant: legendVariant,
585
+ middleText: middleText,
586
+ onSliceClick: onSliceClick,
587
+ others: others,
588
+ size: size,
589
+ sliceRole: sliceRole,
590
+ sortingMethod: sortingMethod,
591
+ subtext: subtext,
592
+ text: text,
593
+ colorTheme: colorTheme,
594
+ tooltipDecorator: tooltipDecorator,
595
+ tooltipVariant: tooltipVariant,
596
+ variant: variant
597
+ }, forwardedProps, {
598
+ ref: ref
599
+ }));
600
+ });
601
+ PieChart.className = CLASSNAME;
602
+ PieChart.displayName = COMPONENT_NAME;
603
+
604
+ export { PieChart as P, StyledPieChart as S, PieChartVariant as a, PieChartLegendVariant as b, StyledPieChartCenterText as c, StyledPieChartEmptyText as d };
605
+ //# sourceMappingURL=PieChart2.js.map