@mui/x-charts 8.8.0 → 8.9.2

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 (164) hide show
  1. package/BarChart/BarChart.d.ts +3 -2
  2. package/BarChart/BarChart.js +95 -2
  3. package/BarChart/BarClipPath.d.ts +17 -12
  4. package/BarChart/BarClipPath.js +70 -57
  5. package/BarChart/BarPlot.js +4 -0
  6. package/BarChart/barClasses.d.ts +1 -1
  7. package/BarChart/seriesConfig/extremums.js +2 -3
  8. package/BarChart/seriesConfig/seriesProcessor.js +5 -3
  9. package/BarChart/useBarChartProps.d.ts +1 -1
  10. package/BarChart/useBarPlotData.js +32 -5
  11. package/CHANGELOG.md +225 -24
  12. package/ChartContainer/ChartContainer.js +141 -0
  13. package/ChartsLabel/ChartsLabelMark.d.ts +2 -1
  14. package/ChartsLabel/index.d.ts +1 -0
  15. package/ChartsLabel/index.js +18 -0
  16. package/ChartsLegend/chartsLegendClasses.d.ts +1 -1
  17. package/ChartsLegend/piecewiseColorLegendClasses.d.ts +1 -1
  18. package/{internals/components/ChartsWrapper → ChartsWrapper}/ChartsWrapper.d.ts +13 -4
  19. package/{internals/components/ChartsWrapper → ChartsWrapper}/ChartsWrapper.js +33 -7
  20. package/LineChart/LineChart.d.ts +3 -2
  21. package/LineChart/LineChart.js +95 -2
  22. package/LineChart/seriesConfig/extremums.js +2 -3
  23. package/LineChart/useLineChartProps.d.ts +1 -1
  24. package/PieChart/PieArcLabelPlot.js +3 -0
  25. package/PieChart/PieArcPlot.js +3 -0
  26. package/PieChart/PieChart.d.ts +3 -2
  27. package/PieChart/PieChart.js +2 -2
  28. package/PieChart/pieClasses.d.ts +1 -1
  29. package/RadarChart/RadarAxisHighlight/RadarAxisHighlight.js +3 -5
  30. package/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.d.ts +2 -13
  31. package/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.js +8 -45
  32. package/RadarChart/RadarChart.d.ts +3 -2
  33. package/RadarChart/RadarChart.js +24 -3
  34. package/RadarChart/RadarDataProvider/RadarDataProvider.d.ts +3 -2
  35. package/RadarChart/RadarMetricLabels/useRadarMetricData.js +4 -2
  36. package/RadarChart/RadarSeriesPlot/RadarSeriesArea.js +19 -3
  37. package/RadarChart/RadarSeriesPlot/RadarSeriesMarks.js +20 -4
  38. package/RadarChart/RadarSeriesPlot/RadarSeriesPlot.js +38 -4
  39. package/RadarChart/RadarSeriesPlot/RadarSeriesPlot.types.d.ts +32 -3
  40. package/RadarChart/RadarSeriesPlot/useRadarRotationIndex.d.ts +8 -0
  41. package/RadarChart/RadarSeriesPlot/useRadarRotationIndex.js +38 -0
  42. package/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.ts +2 -2
  43. package/RadarChart/index.d.ts +1 -1
  44. package/RadarChart/useRadarChartProps.d.ts +4 -1
  45. package/RadarChart/useRadarChartProps.js +15 -3
  46. package/ScatterChart/ScatterChart.d.ts +3 -2
  47. package/ScatterChart/ScatterChart.js +95 -2
  48. package/ScatterChart/seriesConfig/extremums.js +50 -23
  49. package/ScatterChart/useScatterChartProps.d.ts +1 -1
  50. package/SparkLineChart/SparkLineChart.js +93 -0
  51. package/esm/BarChart/BarChart.d.ts +3 -2
  52. package/esm/BarChart/BarChart.js +95 -2
  53. package/esm/BarChart/BarClipPath.d.ts +17 -12
  54. package/esm/BarChart/BarClipPath.js +69 -55
  55. package/esm/BarChart/BarPlot.js +4 -0
  56. package/esm/BarChart/barClasses.d.ts +1 -1
  57. package/esm/BarChart/seriesConfig/extremums.js +2 -3
  58. package/esm/BarChart/seriesConfig/seriesProcessor.js +5 -3
  59. package/esm/BarChart/useBarChartProps.d.ts +1 -1
  60. package/esm/BarChart/useBarPlotData.js +32 -5
  61. package/esm/ChartContainer/ChartContainer.js +141 -0
  62. package/esm/ChartsLabel/ChartsLabelMark.d.ts +2 -1
  63. package/esm/ChartsLabel/index.d.ts +1 -0
  64. package/esm/ChartsLabel/index.js +1 -0
  65. package/esm/ChartsLegend/chartsLegendClasses.d.ts +1 -1
  66. package/esm/ChartsLegend/piecewiseColorLegendClasses.d.ts +1 -1
  67. package/esm/{internals/components/ChartsWrapper → ChartsWrapper}/ChartsWrapper.d.ts +13 -4
  68. package/esm/{internals/components/ChartsWrapper → ChartsWrapper}/ChartsWrapper.js +31 -6
  69. package/esm/LineChart/LineChart.d.ts +3 -2
  70. package/esm/LineChart/LineChart.js +95 -2
  71. package/esm/LineChart/seriesConfig/extremums.js +2 -3
  72. package/esm/LineChart/useLineChartProps.d.ts +1 -1
  73. package/esm/PieChart/PieArcLabelPlot.js +3 -0
  74. package/esm/PieChart/PieArcPlot.js +3 -0
  75. package/esm/PieChart/PieChart.d.ts +3 -2
  76. package/esm/PieChart/PieChart.js +2 -2
  77. package/esm/PieChart/pieClasses.d.ts +1 -1
  78. package/esm/RadarChart/RadarAxisHighlight/RadarAxisHighlight.js +3 -5
  79. package/esm/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.d.ts +2 -13
  80. package/esm/RadarChart/RadarAxisHighlight/useRadarAxisHighlight.js +8 -45
  81. package/esm/RadarChart/RadarChart.d.ts +3 -2
  82. package/esm/RadarChart/RadarChart.js +24 -3
  83. package/esm/RadarChart/RadarDataProvider/RadarDataProvider.d.ts +3 -2
  84. package/esm/RadarChart/RadarMetricLabels/useRadarMetricData.js +4 -2
  85. package/esm/RadarChart/RadarSeriesPlot/RadarSeriesArea.js +19 -3
  86. package/esm/RadarChart/RadarSeriesPlot/RadarSeriesMarks.js +20 -4
  87. package/esm/RadarChart/RadarSeriesPlot/RadarSeriesPlot.js +38 -4
  88. package/esm/RadarChart/RadarSeriesPlot/RadarSeriesPlot.types.d.ts +32 -3
  89. package/esm/RadarChart/RadarSeriesPlot/useRadarRotationIndex.d.ts +8 -0
  90. package/esm/RadarChart/RadarSeriesPlot/useRadarRotationIndex.js +32 -0
  91. package/esm/RadarChart/RadarSeriesPlot/useRadarSeriesData.d.ts +2 -2
  92. package/esm/RadarChart/index.d.ts +1 -1
  93. package/esm/RadarChart/useRadarChartProps.d.ts +4 -1
  94. package/esm/RadarChart/useRadarChartProps.js +15 -3
  95. package/esm/ScatterChart/ScatterChart.d.ts +3 -2
  96. package/esm/ScatterChart/ScatterChart.js +95 -2
  97. package/esm/ScatterChart/seriesConfig/extremums.js +50 -23
  98. package/esm/ScatterChart/useScatterChartProps.d.ts +1 -1
  99. package/esm/SparkLineChart/SparkLineChart.js +93 -0
  100. package/esm/hooks/useTicks.d.ts +6 -1
  101. package/esm/hooks/useTicks.js +94 -58
  102. package/esm/index.d.ts +2 -1
  103. package/esm/index.js +6 -2
  104. package/esm/internals/findMinMax.d.ts +1 -0
  105. package/esm/internals/findMinMax.js +13 -0
  106. package/esm/internals/getScale.js +3 -0
  107. package/esm/internals/index.d.ts +1 -1
  108. package/esm/internals/index.js +1 -1
  109. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +4 -1
  110. package/esm/internals/plugins/featurePlugins/useChartHighlight/createIsFaded.d.ts +1 -1
  111. package/esm/internals/plugins/featurePlugins/useChartHighlight/createIsFaded.js +19 -11
  112. package/esm/internals/plugins/featurePlugins/useChartHighlight/createIsHighlighted.d.ts +1 -1
  113. package/esm/internals/plugins/featurePlugins/useChartHighlight/createIsHighlighted.js +19 -11
  114. package/esm/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.js +10 -4
  115. package/esm/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +4 -4
  116. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +44 -1
  117. package/esm/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.types.d.ts +8 -1
  118. package/esm/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.js +17 -12
  119. package/esm/internals/symlogScale.d.ts +2 -0
  120. package/esm/internals/symlogScale.js +94 -0
  121. package/esm/models/axis.d.ts +47 -5
  122. package/esm/models/axis.js +3 -0
  123. package/esm/models/seriesType/bar.d.ts +11 -1
  124. package/esm/models/seriesType/common.d.ts +9 -3
  125. package/esm/models/seriesType/line.d.ts +3 -1
  126. package/esm/models/seriesType/scatter.d.ts +4 -1
  127. package/esm/tests/web-components.js +49 -0
  128. package/hooks/useTicks.d.ts +6 -1
  129. package/hooks/useTicks.js +95 -58
  130. package/index.d.ts +2 -1
  131. package/index.js +13 -1
  132. package/internals/findMinMax.d.ts +1 -0
  133. package/internals/findMinMax.js +19 -0
  134. package/internals/getScale.js +3 -0
  135. package/internals/index.d.ts +1 -1
  136. package/internals/index.js +12 -12
  137. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +3 -0
  138. package/internals/plugins/featurePlugins/useChartHighlight/createIsFaded.d.ts +1 -1
  139. package/internals/plugins/featurePlugins/useChartHighlight/createIsFaded.js +20 -13
  140. package/internals/plugins/featurePlugins/useChartHighlight/createIsHighlighted.d.ts +1 -1
  141. package/internals/plugins/featurePlugins/useChartHighlight/createIsHighlighted.js +20 -13
  142. package/internals/plugins/featurePlugins/useChartHighlight/useChartHighlight.selectors.js +10 -4
  143. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +4 -4
  144. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.js +44 -1
  145. package/internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarAxis.types.d.ts +8 -1
  146. package/internals/plugins/featurePlugins/useChartVoronoi/useChartVoronoi.js +17 -12
  147. package/internals/symlogScale.d.ts +2 -0
  148. package/internals/symlogScale.js +100 -0
  149. package/models/axis.d.ts +47 -5
  150. package/models/axis.js +4 -0
  151. package/models/seriesType/bar.d.ts +11 -1
  152. package/models/seriesType/common.d.ts +9 -3
  153. package/models/seriesType/line.d.ts +3 -1
  154. package/models/seriesType/scatter.d.ts +4 -1
  155. package/package.json +6 -7
  156. package/tests/web-components.js +55 -0
  157. package/BarChart/getRadius.d.ts +0 -20
  158. package/BarChart/getRadius.js +0 -37
  159. package/esm/BarChart/getRadius.d.ts +0 -20
  160. package/esm/BarChart/getRadius.js +0 -30
  161. /package/{esm/internals/components/ChartsWrapper → ChartsWrapper}/index.d.ts +0 -0
  162. /package/{internals/components/ChartsWrapper → ChartsWrapper}/index.js +0 -0
  163. /package/{internals/components → esm}/ChartsWrapper/index.d.ts +0 -0
  164. /package/esm/{internals/components/ChartsWrapper → ChartsWrapper}/index.js +0 -0
@@ -361,6 +361,54 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
361
361
  tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
362
362
  tickSize: PropTypes.number,
363
363
  valueFormatter: PropTypes.func
364
+ }), PropTypes.shape({
365
+ classes: PropTypes.object,
366
+ colorMap: PropTypes.oneOfType([PropTypes.shape({
367
+ color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
368
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
369
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
370
+ type: PropTypes.oneOf(['continuous']).isRequired
371
+ }), PropTypes.shape({
372
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
373
+ thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
374
+ type: PropTypes.oneOf(['piecewise']).isRequired
375
+ })]),
376
+ constant: PropTypes.number,
377
+ data: PropTypes.array,
378
+ dataKey: PropTypes.string,
379
+ disableLine: PropTypes.bool,
380
+ disableTicks: PropTypes.bool,
381
+ domainLimit: PropTypes.oneOfType([PropTypes.oneOf(['nice', 'strict']), PropTypes.func]),
382
+ endAngle: PropTypes.number,
383
+ fill: PropTypes.string,
384
+ height: PropTypes.number,
385
+ hideTooltip: PropTypes.bool,
386
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
387
+ ignoreTooltip: PropTypes.bool,
388
+ label: PropTypes.string,
389
+ labelGap: PropTypes.number,
390
+ labelStyle: PropTypes.object,
391
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
392
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
393
+ offset: PropTypes.number,
394
+ position: PropTypes.oneOf(['bottom', 'none', 'top']),
395
+ reverse: PropTypes.bool,
396
+ scaleType: PropTypes.oneOf(['symlog']),
397
+ slotProps: PropTypes.object,
398
+ slots: PropTypes.object,
399
+ startAngle: PropTypes.number,
400
+ stroke: PropTypes.string,
401
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
402
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
403
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
404
+ tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
405
+ tickLabelStyle: PropTypes.object,
406
+ tickMaxStep: PropTypes.number,
407
+ tickMinStep: PropTypes.number,
408
+ tickNumber: PropTypes.number,
409
+ tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
410
+ tickSize: PropTypes.number,
411
+ valueFormatter: PropTypes.func
364
412
  }), PropTypes.shape({
365
413
  classes: PropTypes.object,
366
414
  colorMap: PropTypes.oneOfType([PropTypes.shape({
@@ -783,6 +831,53 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
783
831
  tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
784
832
  tickSize: PropTypes.number,
785
833
  valueFormatter: PropTypes.func
834
+ }), PropTypes.shape({
835
+ axis: PropTypes.oneOf(['x']),
836
+ classes: PropTypes.object,
837
+ colorMap: PropTypes.oneOfType([PropTypes.shape({
838
+ color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
839
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
840
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
841
+ type: PropTypes.oneOf(['continuous']).isRequired
842
+ }), PropTypes.shape({
843
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
844
+ thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
845
+ type: PropTypes.oneOf(['piecewise']).isRequired
846
+ })]),
847
+ constant: PropTypes.number,
848
+ data: PropTypes.array,
849
+ dataKey: PropTypes.string,
850
+ disableLine: PropTypes.bool,
851
+ disableTicks: PropTypes.bool,
852
+ domainLimit: PropTypes.oneOfType([PropTypes.oneOf(['nice', 'strict']), PropTypes.func]),
853
+ fill: PropTypes.string,
854
+ height: PropTypes.number,
855
+ hideTooltip: PropTypes.bool,
856
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
857
+ ignoreTooltip: PropTypes.bool,
858
+ label: PropTypes.string,
859
+ labelStyle: PropTypes.object,
860
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
861
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
862
+ offset: PropTypes.number,
863
+ position: PropTypes.oneOf(['bottom', 'none', 'top']),
864
+ reverse: PropTypes.bool,
865
+ scaleType: PropTypes.oneOf(['symlog']),
866
+ slotProps: PropTypes.object,
867
+ slots: PropTypes.object,
868
+ stroke: PropTypes.string,
869
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
870
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
871
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
872
+ tickLabelMinGap: PropTypes.number,
873
+ tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
874
+ tickLabelStyle: PropTypes.object,
875
+ tickMaxStep: PropTypes.number,
876
+ tickMinStep: PropTypes.number,
877
+ tickNumber: PropTypes.number,
878
+ tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
879
+ tickSize: PropTypes.number,
880
+ valueFormatter: PropTypes.func
786
881
  }), PropTypes.shape({
787
882
  axis: PropTypes.oneOf(['x']),
788
883
  classes: PropTypes.object,
@@ -1166,6 +1261,52 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
1166
1261
  tickSize: PropTypes.number,
1167
1262
  valueFormatter: PropTypes.func,
1168
1263
  width: PropTypes.number
1264
+ }), PropTypes.shape({
1265
+ axis: PropTypes.oneOf(['y']),
1266
+ classes: PropTypes.object,
1267
+ colorMap: PropTypes.oneOfType([PropTypes.shape({
1268
+ color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
1269
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
1270
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
1271
+ type: PropTypes.oneOf(['continuous']).isRequired
1272
+ }), PropTypes.shape({
1273
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
1274
+ thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
1275
+ type: PropTypes.oneOf(['piecewise']).isRequired
1276
+ })]),
1277
+ constant: PropTypes.number,
1278
+ data: PropTypes.array,
1279
+ dataKey: PropTypes.string,
1280
+ disableLine: PropTypes.bool,
1281
+ disableTicks: PropTypes.bool,
1282
+ domainLimit: PropTypes.oneOfType([PropTypes.oneOf(['nice', 'strict']), PropTypes.func]),
1283
+ fill: PropTypes.string,
1284
+ hideTooltip: PropTypes.bool,
1285
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
1286
+ ignoreTooltip: PropTypes.bool,
1287
+ label: PropTypes.string,
1288
+ labelStyle: PropTypes.object,
1289
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
1290
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
1291
+ offset: PropTypes.number,
1292
+ position: PropTypes.oneOf(['left', 'none', 'right']),
1293
+ reverse: PropTypes.bool,
1294
+ scaleType: PropTypes.oneOf(['symlog']),
1295
+ slotProps: PropTypes.object,
1296
+ slots: PropTypes.object,
1297
+ stroke: PropTypes.string,
1298
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
1299
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
1300
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
1301
+ tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
1302
+ tickLabelStyle: PropTypes.object,
1303
+ tickMaxStep: PropTypes.number,
1304
+ tickMinStep: PropTypes.number,
1305
+ tickNumber: PropTypes.number,
1306
+ tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
1307
+ tickSize: PropTypes.number,
1308
+ valueFormatter: PropTypes.func,
1309
+ width: PropTypes.number
1169
1310
  }), PropTypes.shape({
1170
1311
  axis: PropTypes.oneOf(['y']),
1171
1312
  classes: PropTypes.object,
@@ -6,12 +6,13 @@ export interface ChartsLabelCustomMarkProps {
6
6
  /** Color of the series this mark refers to. */
7
7
  color?: string;
8
8
  }
9
+ export type ChartsLabelMarkType = 'square' | 'circle' | 'line' | React.ComponentType<ChartsLabelCustomMarkProps>;
9
10
  export interface ChartsLabelMarkProps {
10
11
  /**
11
12
  * The type of the mark.
12
13
  * @default 'square'
13
14
  */
14
- type?: 'square' | 'circle' | 'line' | React.ComponentType<ChartsLabelCustomMarkProps>;
15
+ type?: ChartsLabelMarkType;
15
16
  /**
16
17
  * The color of the mark.
17
18
  */
@@ -1,3 +1,4 @@
1
+ export * from "./ChartsLabel.js";
1
2
  export type { ChartsLabelMarkProps, ChartsLabelCustomMarkProps } from "./ChartsLabelMark.js";
2
3
  export { ChartsLabelMark } from "./ChartsLabelMark.js";
3
4
  export { labelClasses } from "./labelClasses.js";
@@ -1,3 +1,4 @@
1
+ export * from "./ChartsLabel.js";
1
2
  export { ChartsLabelMark } from "./ChartsLabelMark.js";
2
3
  export { labelClasses } from "./labelClasses.js";
3
4
  export { labelMarkClasses } from "./labelMarkClasses.js";
@@ -16,5 +16,5 @@ export interface ChartsLegendClasses {
16
16
  /** Styles applied to the legend in row layout. */
17
17
  horizontal: string;
18
18
  }
19
- export declare const useUtilityClasses: (props: ChartsLegendProps & ChartsLegendSlotExtension) => Record<"root" | "label" | "mark" | "item" | "series", string>;
19
+ export declare const useUtilityClasses: (props: ChartsLegendProps & ChartsLegendSlotExtension) => Record<"item" | "series" | "root" | "label" | "mark", string>;
20
20
  export declare const legendClasses: ChartsLegendClasses;
@@ -24,5 +24,5 @@ export interface PiecewiseColorLegendClasses {
24
24
  /** Styles applied to the series label. */
25
25
  label: string;
26
26
  }
27
- export declare const useUtilityClasses: (props: PiecewiseColorLegendProps & ChartsLegendSlotExtension) => Record<"root" | "label" | "mark" | "item" | "minLabel" | "maxLabel", string>;
27
+ export declare const useUtilityClasses: (props: PiecewiseColorLegendProps & ChartsLegendSlotExtension) => Record<"item" | "root" | "label" | "mark" | "minLabel" | "maxLabel", string>;
28
28
  export declare const piecewiseColorLegendClasses: PiecewiseColorLegendClasses;
@@ -1,9 +1,17 @@
1
1
  import * as React from 'react';
2
2
  import { SxProps, Theme } from '@mui/material/styles';
3
- import { Direction } from "../../../ChartsLegend/index.js";
4
- import { Position } from "../../../models/index.js";
3
+ import { Direction } from "../ChartsLegend/index.js";
4
+ import { Position } from "../models/index.js";
5
5
  export interface ChartsWrapperProps {
6
+ /**
7
+ * The position of the legend.
8
+ * @default { horizontal: 'center', vertical: 'bottom' }
9
+ */
6
10
  legendPosition?: Position;
11
+ /**
12
+ * The direction of the legend.
13
+ * @default 'horizontal'
14
+ */
7
15
  legendDirection?: Direction;
8
16
  /**
9
17
  * If `true`, the chart wrapper set `height: 100%`.
@@ -14,10 +22,11 @@ export interface ChartsWrapperProps {
14
22
  sx?: SxProps<Theme>;
15
23
  }
16
24
  /**
17
- * @ignore - internal component.
18
- *
19
25
  * Wrapper for the charts components.
20
26
  * Its main purpose is to position the HTML legend in the correct place.
21
27
  */
22
28
  declare function ChartsWrapper(props: ChartsWrapperProps): React.JSX.Element;
29
+ declare namespace ChartsWrapper {
30
+ var propTypes: any;
31
+ }
23
32
  export { ChartsWrapper };
@@ -1,10 +1,11 @@
1
1
  import * as React from 'react';
2
+ import PropTypes from 'prop-types';
2
3
  import { styled } from '@mui/material/styles';
3
4
  import { shouldForwardProp } from '@mui/system/createStyled';
4
- import { useChartRootRef } from "../../../hooks/useChartRootRef.js";
5
- import { useStore } from "../../store/useStore.js";
6
- import { useSelector } from "../../store/useSelector.js";
7
- import { selectorChartPropsSize } from "../../plugins/corePlugins/useChartDimensions/index.js";
5
+ import { useChartRootRef } from "../hooks/useChartRootRef.js";
6
+ import { useStore } from "../internals/store/useStore.js";
7
+ import { useSelector } from "../internals/store/useSelector.js";
8
+ import { selectorChartPropsSize } from "../internals/plugins/corePlugins/useChartDimensions/index.js";
8
9
  import { jsx as _jsx } from "react/jsx-runtime";
9
10
  const getDirection = (direction, position) => {
10
11
  if (direction === 'vertical') {
@@ -60,8 +61,6 @@ const Root = styled('div', {
60
61
  }));
61
62
 
62
63
  /**
63
- * @ignore - internal component.
64
- *
65
64
  * Wrapper for the charts components.
66
65
  * Its main purpose is to position the HTML legend in the correct place.
67
66
  */
@@ -84,4 +83,30 @@ function ChartsWrapper(props) {
84
83
  children: children
85
84
  });
86
85
  }
86
+ process.env.NODE_ENV !== "production" ? ChartsWrapper.propTypes = {
87
+ // ----------------------------- Warning --------------------------------
88
+ // | These PropTypes are generated from the TypeScript type definitions |
89
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
90
+ // ----------------------------------------------------------------------
91
+ children: PropTypes.node,
92
+ /**
93
+ * If `true`, the chart wrapper set `height: 100%`.
94
+ * @default `false` if the `height` prop is set. And `true` otherwise.
95
+ */
96
+ extendVertically: PropTypes.bool,
97
+ /**
98
+ * The direction of the legend.
99
+ * @default 'horizontal'
100
+ */
101
+ legendDirection: PropTypes.oneOf(['horizontal', 'vertical']),
102
+ /**
103
+ * The position of the legend.
104
+ * @default { horizontal: 'center', vertical: 'bottom' }
105
+ */
106
+ legendPosition: PropTypes.shape({
107
+ horizontal: PropTypes.oneOf(['center', 'end', 'start']),
108
+ vertical: PropTypes.oneOf(['bottom', 'middle', 'top'])
109
+ }),
110
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
111
+ } : void 0;
87
112
  export { ChartsWrapper };
@@ -18,12 +18,13 @@ import { LineChartPluginsSignatures } from "./LineChart.plugins.js";
18
18
  import { ChartsToolbarSlots, ChartsToolbarSlotProps } from "../Toolbar/index.js";
19
19
  export interface LineChartSlots extends ChartsAxisSlots, AreaPlotSlots, LinePlotSlots, MarkPlotSlots, LineHighlightPlotSlots, ChartsLegendSlots, ChartsOverlaySlots, ChartsTooltipSlots, ChartsToolbarSlots, Partial<ChartsSlots> {}
20
20
  export interface LineChartSlotProps extends ChartsAxisSlotProps, AreaPlotSlotProps, LinePlotSlotProps, MarkPlotSlotProps, LineHighlightPlotSlotProps, ChartsLegendSlotProps, ChartsOverlaySlotProps, ChartsTooltipSlotProps, ChartsToolbarSlotProps, Partial<ChartsSlotProps> {}
21
+ export type LineSeries = MakeOptional<LineSeriesType, 'type'>;
21
22
  export interface LineChartProps extends Omit<ChartContainerProps<'line', LineChartPluginsSignatures>, 'series' | 'plugins' | 'zAxis'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'> {
22
23
  /**
23
24
  * The series to display in the line chart.
24
- * An array of [[LineSeriesType]] objects.
25
+ * An array of [[LineSeries]] objects.
25
26
  */
26
- series: Readonly<MakeOptional<LineSeriesType, 'type'>[]>;
27
+ series: Readonly<LineSeries[]>;
27
28
  /**
28
29
  * Option to display a cartesian grid in the background.
29
30
  */
@@ -19,7 +19,7 @@ import { useLineChartProps } from "./useLineChartProps.js";
19
19
  import { useChartContainerProps } from "../ChartContainer/useChartContainerProps.js";
20
20
  import { ChartDataProvider } from "../ChartDataProvider/index.js";
21
21
  import { ChartsSurface } from "../ChartsSurface/index.js";
22
- import { ChartsWrapper } from "../internals/components/ChartsWrapper/index.js";
22
+ import { ChartsWrapper } from "../ChartsWrapper/index.js";
23
23
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
24
  /**
25
25
  * Demos:
@@ -209,7 +209,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
209
209
  onMarkClick: PropTypes.func,
210
210
  /**
211
211
  * The series to display in the line chart.
212
- * An array of [[LineSeriesType]] objects.
212
+ * An array of [[LineSeries]] objects.
213
213
  */
214
214
  series: PropTypes.arrayOf(PropTypes.object).isRequired,
215
215
  /**
@@ -394,6 +394,53 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
394
394
  tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
395
395
  tickSize: PropTypes.number,
396
396
  valueFormatter: PropTypes.func
397
+ }), PropTypes.shape({
398
+ axis: PropTypes.oneOf(['x']),
399
+ classes: PropTypes.object,
400
+ colorMap: PropTypes.oneOfType([PropTypes.shape({
401
+ color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
402
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
403
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
404
+ type: PropTypes.oneOf(['continuous']).isRequired
405
+ }), PropTypes.shape({
406
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
407
+ thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
408
+ type: PropTypes.oneOf(['piecewise']).isRequired
409
+ })]),
410
+ constant: PropTypes.number,
411
+ data: PropTypes.array,
412
+ dataKey: PropTypes.string,
413
+ disableLine: PropTypes.bool,
414
+ disableTicks: PropTypes.bool,
415
+ domainLimit: PropTypes.oneOfType([PropTypes.oneOf(['nice', 'strict']), PropTypes.func]),
416
+ fill: PropTypes.string,
417
+ height: PropTypes.number,
418
+ hideTooltip: PropTypes.bool,
419
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
420
+ ignoreTooltip: PropTypes.bool,
421
+ label: PropTypes.string,
422
+ labelStyle: PropTypes.object,
423
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
424
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
425
+ offset: PropTypes.number,
426
+ position: PropTypes.oneOf(['bottom', 'none', 'top']),
427
+ reverse: PropTypes.bool,
428
+ scaleType: PropTypes.oneOf(['symlog']),
429
+ slotProps: PropTypes.object,
430
+ slots: PropTypes.object,
431
+ stroke: PropTypes.string,
432
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
433
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
434
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
435
+ tickLabelMinGap: PropTypes.number,
436
+ tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
437
+ tickLabelStyle: PropTypes.object,
438
+ tickMaxStep: PropTypes.number,
439
+ tickMinStep: PropTypes.number,
440
+ tickNumber: PropTypes.number,
441
+ tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
442
+ tickSize: PropTypes.number,
443
+ valueFormatter: PropTypes.func
397
444
  }), PropTypes.shape({
398
445
  axis: PropTypes.oneOf(['x']),
399
446
  classes: PropTypes.object,
@@ -777,6 +824,52 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
777
824
  tickSize: PropTypes.number,
778
825
  valueFormatter: PropTypes.func,
779
826
  width: PropTypes.number
827
+ }), PropTypes.shape({
828
+ axis: PropTypes.oneOf(['y']),
829
+ classes: PropTypes.object,
830
+ colorMap: PropTypes.oneOfType([PropTypes.shape({
831
+ color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
832
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
833
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
834
+ type: PropTypes.oneOf(['continuous']).isRequired
835
+ }), PropTypes.shape({
836
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
837
+ thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
838
+ type: PropTypes.oneOf(['piecewise']).isRequired
839
+ })]),
840
+ constant: PropTypes.number,
841
+ data: PropTypes.array,
842
+ dataKey: PropTypes.string,
843
+ disableLine: PropTypes.bool,
844
+ disableTicks: PropTypes.bool,
845
+ domainLimit: PropTypes.oneOfType([PropTypes.oneOf(['nice', 'strict']), PropTypes.func]),
846
+ fill: PropTypes.string,
847
+ hideTooltip: PropTypes.bool,
848
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
849
+ ignoreTooltip: PropTypes.bool,
850
+ label: PropTypes.string,
851
+ labelStyle: PropTypes.object,
852
+ max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
853
+ min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
854
+ offset: PropTypes.number,
855
+ position: PropTypes.oneOf(['left', 'none', 'right']),
856
+ reverse: PropTypes.bool,
857
+ scaleType: PropTypes.oneOf(['symlog']),
858
+ slotProps: PropTypes.object,
859
+ slots: PropTypes.object,
860
+ stroke: PropTypes.string,
861
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
862
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
863
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
864
+ tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
865
+ tickLabelStyle: PropTypes.object,
866
+ tickMaxStep: PropTypes.number,
867
+ tickMinStep: PropTypes.number,
868
+ tickNumber: PropTypes.number,
869
+ tickPlacement: PropTypes.oneOf(['end', 'extremities', 'middle', 'start']),
870
+ tickSize: PropTypes.number,
871
+ valueFormatter: PropTypes.func,
872
+ width: PropTypes.number
780
873
  }), PropTypes.shape({
781
874
  axis: PropTypes.oneOf(['y']),
782
875
  classes: PropTypes.object,
@@ -1,10 +1,9 @@
1
+ import { findMinMax } from "../../internals/findMinMax.js";
1
2
  export const getExtremumX = params => {
2
3
  const {
3
4
  axis
4
5
  } = params;
5
- const minX = Math.min(...(axis.data ?? []));
6
- const maxX = Math.max(...(axis.data ?? []));
7
- return [minX, maxX];
6
+ return findMinMax(axis.data ?? []);
8
7
  };
9
8
  function getSeriesExtremums(getValues, data, stackedData, filter) {
10
9
  return stackedData.reduce((seriesAcc, stackedValue, index) => {
@@ -11,7 +11,7 @@ import type { LineChartProps } from "./LineChart.js";
11
11
  import { LineHighlightPlotProps } from "./LineHighlightPlot.js";
12
12
  import { LinePlotProps } from "./LinePlot.js";
13
13
  import { MarkPlotProps } from "./MarkPlot.js";
14
- import type { ChartsWrapperProps } from "../internals/components/ChartsWrapper/index.js";
14
+ import type { ChartsWrapperProps } from "../ChartsWrapper/index.js";
15
15
  import { LineChartPluginsSignatures } from "./LineChart.plugins.js";
16
16
  /**
17
17
  * A helper function that extracts LineChartProps from the input props
@@ -145,6 +145,9 @@ process.env.NODE_ENV !== "production" ? PieArcLabelPlot.propTypes = {
145
145
  outerRadius: PropTypes.number,
146
146
  paddingAngle: PropTypes.number
147
147
  }),
148
+ /**
149
+ * The id of this series.
150
+ */
148
151
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
149
152
  /**
150
153
  * The radius between circle center and the beginning of the arc.
@@ -116,6 +116,9 @@ process.env.NODE_ENV !== "production" ? PieArcPlot.propTypes = {
116
116
  outerRadius: PropTypes.number,
117
117
  paddingAngle: PropTypes.number
118
118
  }),
119
+ /**
120
+ * The id of this series.
121
+ */
119
122
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
120
123
  /**
121
124
  * The radius between circle center and the beginning of the arc.
@@ -12,12 +12,13 @@ import { ChartsOverlayProps, ChartsOverlaySlotProps, ChartsOverlaySlots } from "
12
12
  import { PieChartPluginSignatures } from "./PieChart.plugins.js";
13
13
  export interface PieChartSlots extends PiePlotSlots, ChartsLegendSlots, ChartsOverlaySlots, ChartsTooltipSlots, ChartsToolbarSlots, Partial<ChartsSlots> {}
14
14
  export interface PieChartSlotProps extends PiePlotSlotProps, ChartsLegendSlotProps, ChartsOverlaySlotProps, ChartsTooltipSlotProps, ChartsToolbarSlotProps, Partial<ChartsSlotProps> {}
15
+ export type PieSeries = MakeOptional<PieSeriesType<MakeOptional<PieValueType, 'id'>>, 'type'>;
15
16
  export interface PieChartProps extends Omit<ChartContainerProps<'pie', PieChartPluginSignatures>, 'series' | 'slots' | 'slotProps' | 'experimentalFeatures'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'>, Pick<PiePlotProps, 'skipAnimation'> {
16
17
  /**
17
18
  * The series to display in the pie chart.
18
- * An array of [[PieSeriesType]] objects.
19
+ * An array of [[PieSeries]] objects.
19
20
  */
20
- series: Readonly<MakeOptional<PieSeriesType<MakeOptional<PieValueType, 'id'>>, 'type'>[]>;
21
+ series: Readonly<PieSeries[]>;
21
22
  /**
22
23
  * If `true`, the legend is not rendered.
23
24
  */
@@ -14,7 +14,7 @@ import { ChartsOverlay } from "../ChartsOverlay/index.js";
14
14
  import { ChartsSurface } from "../ChartsSurface/index.js";
15
15
  import { ChartDataProvider } from "../ChartDataProvider/index.js";
16
16
  import { useChartContainerProps } from "../ChartContainer/useChartContainerProps.js";
17
- import { ChartsWrapper } from "../internals/components/ChartsWrapper/index.js";
17
+ import { ChartsWrapper } from "../ChartsWrapper/index.js";
18
18
  import { PIE_CHART_PLUGINS } from "./PieChart.plugins.js";
19
19
  import { defaultizeMargin } from "../internals/defaultizeMargin.js";
20
20
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -173,7 +173,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
173
173
  onItemClick: PropTypes.func,
174
174
  /**
175
175
  * The series to display in the pie chart.
176
- * An array of [[PieSeriesType]] objects.
176
+ * An array of [[PieSeries]] objects.
177
177
  */
178
178
  series: PropTypes.arrayOf(PropTypes.object).isRequired,
179
179
  /**
@@ -9,4 +9,4 @@ export interface PieClasses {
9
9
  export type PieClassKey = keyof PieClasses;
10
10
  export declare function getPieUtilityClass(slot: string): string;
11
11
  export declare const pieClasses: PieClasses;
12
- export declare const useUtilityClasses: (classes?: Partial<PieClasses>) => Record<"root" | "series" | "seriesLabels", string>;
12
+ export declare const useUtilityClasses: (classes?: Partial<PieClasses>) => Record<"series" | "root" | "seriesLabels", string>;
@@ -54,13 +54,11 @@ function RadarAxisHighlight(props) {
54
54
  className: classes.line,
55
55
  pointerEvents: "none",
56
56
  strokeDasharray: "4 4"
57
- }), points.map(({
58
- highlighted
59
- }, seriesIndex) => {
57
+ }), points.map((point, seriesIndex) => {
60
58
  return /*#__PURE__*/_jsx("circle", _extends({
61
59
  fill: series[seriesIndex].color,
62
- cx: highlighted.x,
63
- cy: highlighted.y,
60
+ cx: point.x,
61
+ cy: point.y,
64
62
  className: classes.dot,
65
63
  pointerEvents: "none"
66
64
  }, series[seriesIndex].hideMark ? highlightMark : highlightMarkShadow), series[seriesIndex].id);
@@ -2,12 +2,6 @@ import { UseChartPolarAxisSignature } from "../../internals/plugins/featurePlugi
2
2
  import { AxisId } from "../../models/axis.js";
3
3
  import { DefaultizedRadarSeriesType } from "../../models/seriesType/radar.js";
4
4
  import { ChartInstance } from "../../internals/plugins/models/index.js";
5
- interface UseRadarAxisHighlightParams {
6
- /**
7
- * If true, coordinates of the previous/next point will be added.
8
- */
9
- includesNeighbors?: boolean;
10
- }
11
5
  interface UseRadarAxisHighlightReturnValue {
12
6
  /**
13
7
  * The radar center.
@@ -40,7 +34,7 @@ interface UseRadarAxisHighlightReturnValue {
40
34
  * The { x, y, value } values for the highlighted points in the same order as the `series` array.
41
35
  * If `includesNeighbors` is set to `true` it also contains the information for `previous` and `next` data point.
42
36
  */
43
- points: Points[];
37
+ points: Point[];
44
38
  /**
45
39
  * Charts instances giving access to `polar2svg` and `svg2polar` helpers.
46
40
  */
@@ -53,10 +47,5 @@ interface Point {
53
47
  angle: number;
54
48
  value: number;
55
49
  }
56
- interface Points {
57
- highlighted: Point;
58
- previous?: Point;
59
- next?: Point;
60
- }
61
- export declare function useRadarAxisHighlight(params?: UseRadarAxisHighlightParams): UseRadarAxisHighlightReturnValue | null;
50
+ export declare function useRadarAxisHighlight(): UseRadarAxisHighlightReturnValue | null;
62
51
  export {};
@@ -6,10 +6,7 @@ import { useStore } from "../../internals/store/useStore.js";
6
6
  import { useChartContext } from "../../context/ChartProvider/useChartContext.js";
7
7
  import { selectorChartPolarCenter } from "../../internals/plugins/featurePlugins/useChartPolarAxis/index.js";
8
8
  import { selectorChartsInteractionRotationAxisIndex, selectorChartsInteractionRotationAxisValue } from "../../internals/plugins/featurePlugins/useChartPolarAxis/useChartPolarInteraction.selectors.js";
9
- export function useRadarAxisHighlight(params) {
10
- const {
11
- includesNeighbors = false
12
- } = params ?? {};
9
+ export function useRadarAxisHighlight() {
13
10
  const radarSeries = useRadarSeries();
14
11
  const rotationScale = useRotationScale();
15
12
  const {
@@ -49,48 +46,14 @@ export function useRadarAxisHighlight(params) {
49
46
  const value = series.data[highlightedIndex];
50
47
  const r = radiusScale(value);
51
48
  const [x, y] = instance.polar2svg(r, angle);
52
- const retrunedValue = {
53
- highlighted: {
54
- x,
55
- y,
56
- r,
57
- angle,
58
- value
59
- }
49
+ const returnedValue = {
50
+ x,
51
+ y,
52
+ r,
53
+ angle,
54
+ value
60
55
  };
61
- if (!includesNeighbors) {
62
- return retrunedValue;
63
- }
64
- const dataLength = series.data.length;
65
- const prevIndex = (dataLength + highlightedIndex - 1) % dataLength;
66
- const nextIndex = (highlightedIndex + 1) % dataLength;
67
- const prevValue = series.data[prevIndex];
68
- const nextValue = series.data[nextIndex];
69
- if (prevValue != null) {
70
- const prevR = radiusAxis[radiusAxisIds[prevIndex]].scale(prevValue);
71
- const prevAngle = rotationScale(rotationScale.domain()[prevIndex]);
72
- const [px, py] = instance.polar2svg(prevR, prevAngle);
73
- retrunedValue.previous = {
74
- x: px,
75
- y: py,
76
- r: prevR,
77
- angle: prevAngle,
78
- value: prevValue
79
- };
80
- }
81
- if (nextValue != null) {
82
- const nextR = radiusAxis[radiusAxisIds[nextIndex]].scale(nextValue);
83
- const nextAngle = rotationScale(rotationScale.domain()[nextIndex]);
84
- const [nx, ny] = instance.polar2svg(nextR, nextAngle);
85
- retrunedValue.next = {
86
- x: nx,
87
- y: ny,
88
- r: nextR,
89
- angle: nextAngle,
90
- value: nextValue
91
- };
92
- }
93
- return retrunedValue;
56
+ return returnedValue;
94
57
  })
95
58
  };
96
59
  }