@fluentui/react-charts 9.2.2 → 9.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. package/CHANGELOG.md +74 -2
  2. package/dist/index.d.ts +187 -15
  3. package/lib/components/AreaChart/AreaChart.js +7 -4
  4. package/lib/components/AreaChart/AreaChart.js.map +1 -1
  5. package/lib/components/AreaChart/useAreaChartStyles.styles.js +4 -3
  6. package/lib/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
  7. package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js +5 -16
  8. package/lib/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -1
  9. package/lib/components/ChartTable/ChartTable.js +90 -6
  10. package/lib/components/ChartTable/ChartTable.js.map +1 -1
  11. package/lib/components/CommonComponents/CartesianChart.js +83 -38
  12. package/lib/components/CommonComponents/CartesianChart.js.map +1 -1
  13. package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
  14. package/lib/components/CommonComponents/useCartesianChartStyles.styles.js +19 -3
  15. package/lib/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
  16. package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js +8 -23
  17. package/lib/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -1
  18. package/lib/components/DeclarativeChart/DeclarativeChart.js +214 -107
  19. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  20. package/lib/components/DeclarativeChart/PlotlyColorAdapter.js +25 -1
  21. package/lib/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
  22. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +1618 -259
  23. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  24. package/lib/components/DonutChart/Arc/useArcStyles.styles.js +8 -3
  25. package/lib/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -1
  26. package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js +6 -2
  27. package/lib/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -1
  28. package/lib/components/DonutChart/DonutChart.js +8 -3
  29. package/lib/components/DonutChart/DonutChart.js.map +1 -1
  30. package/lib/components/DonutChart/DonutChart.types.js.map +1 -1
  31. package/lib/components/DonutChart/useDonutChartStyles.styles.js +21 -4
  32. package/lib/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
  33. package/lib/components/DonutChart/useDonutChartStyles.styles.raw.js +8 -4
  34. package/lib/components/DonutChart/useDonutChartStyles.styles.raw.js.map +1 -1
  35. package/lib/components/FunnelChart/FunnelChart.js +4 -2
  36. package/lib/components/FunnelChart/FunnelChart.js.map +1 -1
  37. package/lib/components/FunnelChart/funnelGeometry.js.map +1 -1
  38. package/lib/components/GanttChart/useGanttChartStyles.styles.js +2 -1
  39. package/lib/components/GanttChart/useGanttChartStyles.styles.js.map +1 -1
  40. package/lib/components/GanttChart/useGanttChartStyles.styles.raw.js +2 -1
  41. package/lib/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -1
  42. package/lib/components/GaugeChart/GaugeChart.js +1 -2
  43. package/lib/components/GaugeChart/GaugeChart.js.map +1 -1
  44. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +31 -10
  45. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  46. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +6 -18
  47. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
  48. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js +6 -22
  49. package/lib/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -1
  50. package/lib/components/HeatMapChart/HeatMapChart.js +175 -114
  51. package/lib/components/HeatMapChart/HeatMapChart.js.map +1 -1
  52. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js +2 -1
  53. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
  54. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js +2 -1
  55. package/lib/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js.map +1 -1
  56. package/lib/components/HorizontalBarChart/HorizontalBarChart.js +1 -1
  57. package/lib/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  58. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +7 -3
  59. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -1
  60. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js +5 -2
  61. package/lib/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -1
  62. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +26 -6
  63. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  64. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +2 -1
  65. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
  66. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js +2 -1
  67. package/lib/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -1
  68. package/lib/components/LineChart/LineChart.js +349 -176
  69. package/lib/components/LineChart/LineChart.js.map +1 -1
  70. package/lib/components/LineChart/LineChart.types.js.map +1 -1
  71. package/lib/components/LineChart/useLineChartStyles.styles.js +28 -8
  72. package/lib/components/LineChart/useLineChartStyles.styles.js.map +1 -1
  73. package/lib/components/LineChart/useLineChartStyles.styles.raw.js +9 -14
  74. package/lib/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -1
  75. package/lib/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -1
  76. package/lib/components/SankeyChart/SankeyChart.js.map +1 -1
  77. package/lib/components/SankeyChart/useSankeyChartStyles.styles.js +12 -25
  78. package/lib/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
  79. package/lib/components/SankeyChart/useSankeyChartStyles.styles.raw.js +2 -12
  80. package/lib/components/SankeyChart/useSankeyChartStyles.styles.raw.js.map +1 -1
  81. package/lib/components/ScatterChart/ScatterChart.js +139 -81
  82. package/lib/components/ScatterChart/ScatterChart.js.map +1 -1
  83. package/lib/components/ScatterChart/ScatterChart.types.js.map +1 -1
  84. package/lib/components/ScatterChart/useScatterChartStyles.styles.js +29 -8
  85. package/lib/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
  86. package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.js +10 -15
  87. package/lib/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -1
  88. package/lib/components/VerticalBarChart/VerticalBarChart.js +28 -5
  89. package/lib/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  90. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +10 -7
  91. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
  92. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js +7 -20
  93. package/lib/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -1
  94. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js +159 -47
  95. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  96. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  97. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +9 -7
  98. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
  99. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js +6 -20
  100. package/lib/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -1
  101. package/lib/types/DataPoint.js +3 -1
  102. package/lib/types/DataPoint.js.map +1 -1
  103. package/lib/utilities/Common.styles.js +47 -0
  104. package/lib/utilities/Common.styles.js.map +1 -0
  105. package/lib/utilities/Common.styles.raw.js +47 -0
  106. package/lib/utilities/Common.styles.raw.js.map +1 -0
  107. package/lib/utilities/SVGTooltipText.js.map +1 -1
  108. package/lib/utilities/image-export-utils.js.map +1 -1
  109. package/lib/utilities/index.js +1 -0
  110. package/lib/utilities/index.js.map +1 -1
  111. package/lib/utilities/scatterpolar-utils.js +52 -0
  112. package/lib/utilities/scatterpolar-utils.js.map +1 -0
  113. package/lib/utilities/utilities.js +324 -147
  114. package/lib/utilities/utilities.js.map +1 -1
  115. package/lib/utilities/vbc-utils.js.map +1 -1
  116. package/lib-commonjs/components/AreaChart/AreaChart.js +6 -3
  117. package/lib-commonjs/components/AreaChart/AreaChart.js.map +1 -1
  118. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js +2 -1
  119. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.js.map +1 -1
  120. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js +4 -15
  121. package/lib-commonjs/components/AreaChart/useAreaChartStyles.styles.raw.js.map +1 -1
  122. package/lib-commonjs/components/ChartTable/ChartTable.js +90 -6
  123. package/lib-commonjs/components/ChartTable/ChartTable.js.map +1 -1
  124. package/lib-commonjs/components/CommonComponents/CartesianChart.js +83 -37
  125. package/lib-commonjs/components/CommonComponents/CartesianChart.js.map +1 -1
  126. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
  127. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js +17 -2
  128. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.js.map +1 -1
  129. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js +6 -22
  130. package/lib-commonjs/components/CommonComponents/useCartesianChartStyles.styles.raw.js.map +1 -1
  131. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +212 -107
  132. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  133. package/lib-commonjs/components/DeclarativeChart/PlotlyColorAdapter.js +31 -1
  134. package/lib-commonjs/components/DeclarativeChart/PlotlyColorAdapter.js.map +1 -1
  135. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +1652 -260
  136. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  137. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js +12 -3
  138. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.js.map +1 -1
  139. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js +6 -2
  140. package/lib-commonjs/components/DonutChart/Arc/useArcStyles.styles.raw.js.map +1 -1
  141. package/lib-commonjs/components/DonutChart/DonutChart.js +7 -2
  142. package/lib-commonjs/components/DonutChart/DonutChart.js.map +1 -1
  143. package/lib-commonjs/components/DonutChart/DonutChart.types.js.map +1 -1
  144. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js +32 -4
  145. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.js.map +1 -1
  146. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.raw.js +8 -4
  147. package/lib-commonjs/components/DonutChart/useDonutChartStyles.styles.raw.js.map +1 -1
  148. package/lib-commonjs/components/FunnelChart/FunnelChart.js +4 -2
  149. package/lib-commonjs/components/FunnelChart/FunnelChart.js.map +1 -1
  150. package/lib-commonjs/components/FunnelChart/funnelGeometry.js.map +1 -1
  151. package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.js +2 -1
  152. package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.js.map +1 -1
  153. package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.js +2 -1
  154. package/lib-commonjs/components/GanttChart/useGanttChartStyles.styles.raw.js.map +1 -1
  155. package/lib-commonjs/components/GaugeChart/GaugeChart.js +1 -2
  156. package/lib-commonjs/components/GaugeChart/GaugeChart.js.map +1 -1
  157. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js +30 -9
  158. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.js.map +1 -1
  159. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js +4 -20
  160. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.js.map +1 -1
  161. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js +5 -21
  162. package/lib-commonjs/components/GroupedVerticalBarChart/useGroupedVerticalBarChartStyles.styles.raw.js.map +1 -1
  163. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js +174 -113
  164. package/lib-commonjs/components/HeatMapChart/HeatMapChart.js.map +1 -1
  165. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js +2 -1
  166. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.js.map +1 -1
  167. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js +2 -1
  168. package/lib-commonjs/components/HeatMapChart/useHeatMapChartStyles.styles.raw.js.map +1 -1
  169. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js +1 -1
  170. package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.js.map +1 -1
  171. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js +10 -3
  172. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.js.map +1 -1
  173. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js +5 -2
  174. package/lib-commonjs/components/HorizontalBarChart/useHorizontalBarChartStyles.styles.raw.js.map +1 -1
  175. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js +25 -5
  176. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.js.map +1 -1
  177. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js +2 -1
  178. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.js.map +1 -1
  179. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js +2 -1
  180. package/lib-commonjs/components/HorizontalBarChartWithAxis/useHorizontalBarChartWithAxisStyles.styles.raw.js.map +1 -1
  181. package/lib-commonjs/components/LineChart/LineChart.js +347 -175
  182. package/lib-commonjs/components/LineChart/LineChart.js.map +1 -1
  183. package/lib-commonjs/components/LineChart/LineChart.types.js.map +1 -1
  184. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js +35 -5
  185. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.js.map +1 -1
  186. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js +7 -13
  187. package/lib-commonjs/components/LineChart/useLineChartStyles.styles.raw.js.map +1 -1
  188. package/lib-commonjs/components/ResponsiveContainer/withResponsiveContainer.js.map +1 -1
  189. package/lib-commonjs/components/SankeyChart/SankeyChart.js.map +1 -1
  190. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js +23 -33
  191. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.js.map +1 -1
  192. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.raw.js +1 -12
  193. package/lib-commonjs/components/SankeyChart/useSankeyChartStyles.styles.raw.js.map +1 -1
  194. package/lib-commonjs/components/ScatterChart/ScatterChart.js +137 -79
  195. package/lib-commonjs/components/ScatterChart/ScatterChart.js.map +1 -1
  196. package/lib-commonjs/components/ScatterChart/ScatterChart.types.js.map +1 -1
  197. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js +39 -6
  198. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.js.map +1 -1
  199. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.js +9 -14
  200. package/lib-commonjs/components/ScatterChart/useScatterChartStyles.styles.raw.js.map +1 -1
  201. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js +27 -4
  202. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.js.map +1 -1
  203. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js +7 -4
  204. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.js.map +1 -1
  205. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js +5 -18
  206. package/lib-commonjs/components/VerticalBarChart/useVerticalBarChartStyles.styles.raw.js.map +1 -1
  207. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js +158 -46
  208. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.js.map +1 -1
  209. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.types.js.map +1 -1
  210. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js +7 -4
  211. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.js.map +1 -1
  212. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js +5 -19
  213. package/lib-commonjs/components/VerticalStackedBarChart/useVerticalStackedBarChartStyles.styles.raw.js.map +1 -1
  214. package/lib-commonjs/types/DataPoint.js +3 -1
  215. package/lib-commonjs/types/DataPoint.js.map +1 -1
  216. package/lib-commonjs/utilities/Common.styles.js +71 -0
  217. package/lib-commonjs/utilities/Common.styles.js.map +1 -0
  218. package/lib-commonjs/utilities/Common.styles.raw.js +71 -0
  219. package/lib-commonjs/utilities/Common.styles.raw.js.map +1 -0
  220. package/lib-commonjs/utilities/SVGTooltipText.js.map +1 -1
  221. package/lib-commonjs/utilities/image-export-utils.js.map +1 -1
  222. package/lib-commonjs/utilities/index.js +1 -0
  223. package/lib-commonjs/utilities/index.js.map +1 -1
  224. package/lib-commonjs/utilities/scatterpolar-utils.js +67 -0
  225. package/lib-commonjs/utilities/scatterpolar-utils.js.map +1 -0
  226. package/lib-commonjs/utilities/utilities.js +337 -137
  227. package/lib-commonjs/utilities/utilities.js.map +1 -1
  228. package/lib-commonjs/utilities/vbc-utils.js.map +1 -1
  229. package/package.json +10 -10
@@ -21,6 +21,7 @@ const _index2 = require("../../index");
21
21
  const _EventAnnotation = require("./eventAnnotation/EventAnnotation");
22
22
  const _reacttheme = require("@fluentui/react-theme");
23
23
  const _imageexportutils = require("../../utilities/image-export-utils");
24
+ const _scatterpolarutils = require("../../utilities/scatterpolar-utils");
24
25
  var PointSize = /*#__PURE__*/ function(PointSize) {
25
26
  PointSize[PointSize["hoverSize"] = 11] = "hoverSize";
26
27
  PointSize[PointSize["invisibleSize"] = 1] = "invisibleSize";
@@ -95,6 +96,9 @@ const PATH_MULTIPLY_SIZE = 2.5;
95
96
  };
96
97
  const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
97
98
  var _props_legendProps_selectedLegends, _props_legendProps;
99
+ let _hasMarkersMode = false;
100
+ let _isXAxisDateType = false;
101
+ let _isScatterPolar = false;
98
102
  let _points = _injectIndexPropertyInLineChartData(props.data.lineChartData);
99
103
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
100
104
  let _calloutPoints = (0, _index1.calloutData)(_points) || [];
@@ -143,6 +147,9 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
143
147
  y: 0
144
148
  });
145
149
  const [isPopoverOpen, setPopoverOpen] = _react.useState(false);
150
+ const [YValue, setYValue] = _react.useState('');
151
+ const [legendVal, setLegendVal] = _react.useState('');
152
+ const [lineColor, setLineColor] = _react.useState('');
146
153
  const pointsRef = _react.useRef([]);
147
154
  const calloutPointsRef = _react.useRef([]);
148
155
  const classes = (0, _useLineChartStylesstyles.useLineChartStyles)(props);
@@ -172,9 +179,9 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
172
179
  function _getDomainNRangeValues(points, margins, width, chartType, isRTL, xAxisType, barWidth, tickValues, shiftX) {
173
180
  let domainNRangeValue;
174
181
  if (xAxisType === _index1.XAxisTypes.NumericAxis) {
175
- domainNRangeValue = (0, _index1.domainRangeOfNumericForAreaChart)(points, margins, width, isRTL);
182
+ domainNRangeValue = (0, _index1.domainRangeOfNumericForAreaLineScatterCharts)(points, margins, width, isRTL, props.xScaleType, _hasMarkersMode);
176
183
  } else if (xAxisType === _index1.XAxisTypes.DateAxis) {
177
- domainNRangeValue = (0, _index1.domainRangeOfDateForAreaLineVerticalBarChart)(points, margins, width, isRTL, tickValues, chartType, barWidth);
184
+ domainNRangeValue = (0, _index1.domainRangeOfDateForAreaLineScatterVerticalBarCharts)(points, margins, width, isRTL, tickValues, chartType, barWidth, _hasMarkersMode);
178
185
  } else {
179
186
  domainNRangeValue = {
180
187
  dStartValue: 0,
@@ -192,6 +199,12 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
192
199
  var _props_legendProps_selectedLegends, _props_legendProps, _props_legendProps1;
193
200
  return ((_props_legendProps = props.legendProps) === null || _props_legendProps === void 0 ? void 0 : (_props_legendProps_selectedLegends = _props_legendProps.selectedLegends) === null || _props_legendProps_selectedLegends === void 0 ? void 0 : _props_legendProps_selectedLegends.includes(item.legend)) || ((_props_legendProps1 = props.legendProps) === null || _props_legendProps1 === void 0 ? void 0 : _props_legendProps1.selectedLegend) === item.legend;
194
201
  }) : lineChartData;
202
+ var _filteredData_some;
203
+ _hasMarkersMode = (_filteredData_some = filteredData === null || filteredData === void 0 ? void 0 : filteredData.some((item)=>{
204
+ var _item_lineOptions_mode_includes, _item_lineOptions_mode, _item_lineOptions;
205
+ return (_item_lineOptions = item.lineOptions) === null || _item_lineOptions === void 0 ? void 0 : (_item_lineOptions_mode = _item_lineOptions.mode) === null || _item_lineOptions_mode === void 0 ? void 0 : (_item_lineOptions_mode_includes = _item_lineOptions_mode.includes) === null || _item_lineOptions_mode_includes === void 0 ? void 0 : _item_lineOptions_mode_includes.call(_item_lineOptions_mode, 'markers');
206
+ })) !== null && _filteredData_some !== void 0 ? _filteredData_some : false;
207
+ _isScatterPolar = (0, _index1.isScatterPolarSeries)(filteredData);
195
208
  return filteredData ? filteredData.map((item, index)=>{
196
209
  let color;
197
210
  if (typeof item.color === 'undefined') {
@@ -223,6 +236,21 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
223
236
  function _getCustomizedCallout() {
224
237
  return props.onRenderCalloutPerStack ? props.onRenderCalloutPerStack(stackCalloutProps) : props.onRenderCalloutPerDataPoint ? props.onRenderCalloutPerDataPoint(dataPointCalloutProps) : null;
225
238
  }
239
+ function _getNumericMinMaxOfY(points, yAxisType, useSecondaryYScale) {
240
+ // eslint-disable-next-line @typescript-eslint/no-shadow
241
+ const { startValue, endValue } = (0, _index1.findNumericMinMaxOfY)(points, yAxisType, useSecondaryYScale, useSecondaryYScale ? props.secondaryYScaleType : props.yScaleType);
242
+ let yPadding = {
243
+ start: 0,
244
+ end: 0
245
+ };
246
+ if (_hasMarkersMode) {
247
+ yPadding = (0, _index1.getDomainPaddingForMarkers)(startValue, endValue, useSecondaryYScale ? props.secondaryYScaleType : props.yScaleType);
248
+ }
249
+ return {
250
+ startValue: startValue - yPadding.start,
251
+ endValue: endValue + yPadding.end
252
+ };
253
+ }
226
254
  function _getMargins(_margins) {
227
255
  margins = _margins;
228
256
  }
@@ -255,17 +283,26 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
255
283
  function _createLegends(data) {
256
284
  const { legendProps, allowMultipleShapesForPoints = false } = props;
257
285
  const isLegendMultiSelectEnabled = !!(legendProps && !!legendProps.canSelectMultipleLegends);
258
- const legendDataItems = data.map((point)=>{
259
- const color = point.color;
286
+ const mapLegendToPoints = {};
287
+ data.forEach((point)=>{
288
+ if (point.legend) {
289
+ if (!mapLegendToPoints[point.legend]) {
290
+ mapLegendToPoints[point.legend] = [];
291
+ }
292
+ mapLegendToPoints[point.legend].push(point);
293
+ }
294
+ });
295
+ const legendDataItems = Object.entries(mapLegendToPoints).map(([legendTitle, points])=>{
296
+ const representativePoint = points[0];
260
297
  // mapping data to the format Legends component needs
261
298
  const legend = {
262
- title: point.legend,
263
- color,
299
+ title: legendTitle,
300
+ color: representativePoint.color,
264
301
  action: ()=>{
265
302
  if (isLegendMultiSelectEnabled) {
266
- _handleMultipleLineLegendSelectionAction(point);
303
+ points.forEach((p)=>_handleMultipleLineLegendSelectionAction(p));
267
304
  } else {
268
- _handleSingleLegendSelectionAction(point);
305
+ points.forEach((p)=>_handleSingleLegendSelectionAction(p));
269
306
  }
270
307
  },
271
308
  onMouseOutAction: ()=>{
@@ -273,13 +310,13 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
273
310
  },
274
311
  hoverAction: ()=>{
275
312
  _handleChartMouseLeave();
276
- setActiveLegend(point.legend);
313
+ setActiveLegend(legendTitle);
277
314
  },
278
- ...point.legendShape && {
279
- shape: point.legendShape
315
+ ...representativePoint.legendShape && {
316
+ shape: representativePoint.legendShape
280
317
  },
281
318
  ...allowMultipleShapesForPoints && {
282
- shape: _index1.Points[point.index % Object.keys(_index1.pointTypes).length]
319
+ shape: _index1.Points[representativePoint.index % Object.keys(_index1.pointTypes).length]
283
320
  }
284
321
  };
285
322
  return legend;
@@ -380,6 +417,11 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
380
417
  } else {
381
418
  _points = _injectIndexPropertyInLineChartData(props.data.lineChartData);
382
419
  }
420
+ const maxMarkerSize = (0, _d3array.max)(_points, (point)=>{
421
+ return (0, _d3array.max)(point.data, (item)=>{
422
+ return item.markerSize;
423
+ });
424
+ });
383
425
  for(let i = _points.length - 1; i >= 0; i--){
384
426
  var _points_i_gaps, _points_i_lineOptions;
385
427
  const linesForLine = [];
@@ -388,36 +430,64 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
388
430
  const legendVal = _points[i].legend;
389
431
  const lineColor = _points[i].color;
390
432
  const verticaLineHeight = containerHeight - margins.bottom + 6;
391
- const yScale = _points[i].useSecondaryYScale && _yScaleSecondary ? _yScaleSecondary : _yScalePrimary;
433
+ const useSecondaryYScale = !!(_points[i].useSecondaryYScale && _yScaleSecondary);
434
+ const yScale = useSecondaryYScale ? _yScaleSecondary : _yScalePrimary;
435
+ const extraMaxPixels = _hasMarkersMode ? (0, _index1.getRangeForScatterMarkerSize)({
436
+ data: _points,
437
+ xScale: _xAxisScale,
438
+ yScalePrimary: _yScalePrimary,
439
+ yScaleSecondary: _yScaleSecondary,
440
+ useSecondaryYScale,
441
+ xScaleType: props.xScaleType,
442
+ yScaleType: props.yScaleType,
443
+ secondaryYScaleType: props.secondaryYScaleType
444
+ }) : 0;
392
445
  if (_points[i].data.length === 1) {
393
446
  // eslint-disable-next-line @typescript-eslint/no-shadow
394
447
  const { x: x1, y: y1, xAxisCalloutData, xAxisCalloutAccessibilityData } = _points[i].data[0];
395
- const circleId = `${_circleId}_${i}`;
396
- const isLegendSelected = _legendHighlighted(legendVal) || _noLegendHighlighted() || isSelectedLegend;
397
- pointsForLine.push(/*#__PURE__*/ _react.createElement("circle", {
398
- id: circleId,
399
- key: circleId,
400
- r: activePoint === circleId ? 5.5 : 3.5,
401
- cx: _xAxisScale(x1),
402
- cy: yScale(y1),
403
- fill: activePoint === circleId ? _reacttheme.tokens.colorNeutralBackground1 : lineColor,
404
- opacity: isLegendSelected ? 1 : 0.1,
405
- tabIndex: isLegendSelected ? 0 : undefined,
406
- onMouseOver: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale),
407
- onMouseMove: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale),
408
- onMouseOut: _handleMouseOut,
409
- strokeWidth: activePoint === circleId ? DEFAULT_LINE_STROKE_SIZE : 0,
410
- stroke: activePoint === circleId ? lineColor : '',
411
- role: "img",
412
- "aria-label": _getAriaLabel(i, 0),
413
- "data-is-focusable": isLegendSelected,
414
- ref: (e)=>{
415
- _refCallback(e, circleId);
416
- },
417
- onFocus: (event)=>_handleFocus(event, circleId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData),
418
- onBlur: _handleMouseOut,
419
- ..._getClickHandler(_points[i].data[0].onDataPointClick)
420
- }));
448
+ const xPoint = _xAxisScale(x1);
449
+ const yPoint = yScale(y1);
450
+ if ((0, _index1.isPlottable)(xPoint, yPoint)) {
451
+ var _points_i_lineOptions_mode, _points_i_lineOptions1;
452
+ const circleId = `${_circleId}_${i}`;
453
+ const isLegendSelected = _legendHighlighted(legendVal) || _noLegendHighlighted() || isSelectedLegend;
454
+ const currentMarkerSize = _points[i].data[0].markerSize;
455
+ const supportsTextMode = (_points_i_lineOptions1 = _points[i].lineOptions) === null || _points_i_lineOptions1 === void 0 ? void 0 : (_points_i_lineOptions_mode = _points_i_lineOptions1.mode) === null || _points_i_lineOptions_mode === void 0 ? void 0 : _points_i_lineOptions_mode.includes('text');
456
+ const text = _points[i].data[0].text;
457
+ var _points_i_data__text;
458
+ pointsForLine.push(/*#__PURE__*/ _react.createElement(_react.Fragment, null, /*#__PURE__*/ _react.createElement(_react.Fragment, {
459
+ key: `${circleId}_fragment`
460
+ }, /*#__PURE__*/ _react.createElement("circle", {
461
+ id: circleId,
462
+ key: circleId,
463
+ r: currentMarkerSize ? currentMarkerSize * extraMaxPixels / maxMarkerSize : activePoint === circleId ? 5.5 : 3.5,
464
+ cx: xPoint,
465
+ cy: yPoint,
466
+ fill: activePoint === circleId ? _reacttheme.tokens.colorNeutralBackground1 : lineColor,
467
+ opacity: isLegendSelected ? 1 : 0.1,
468
+ tabIndex: isLegendSelected ? 0 : undefined,
469
+ onMouseOver: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale, legendVal, lineColor),
470
+ onMouseMove: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale, legendVal, lineColor),
471
+ onMouseOut: _handleMouseOut,
472
+ strokeWidth: activePoint === circleId ? DEFAULT_LINE_STROKE_SIZE : 0,
473
+ stroke: activePoint === circleId ? lineColor : '',
474
+ role: "img",
475
+ "aria-label": (_points_i_data__text = _points[i].data[0].text) !== null && _points_i_data__text !== void 0 ? _points_i_data__text : _getAriaLabel(i, 0),
476
+ "data-is-focusable": isLegendSelected,
477
+ ref: (e)=>{
478
+ _refCallback(e, circleId);
479
+ },
480
+ onFocus: (event)=>_handleFocus(event, circleId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData),
481
+ onBlur: _handleMouseOut,
482
+ ..._getClickHandler(_points[i].data[0].onDataPointClick)
483
+ }), !_isScatterPolar && supportsTextMode && text && /*#__PURE__*/ _react.createElement("text", {
484
+ key: `${circleId}-label`,
485
+ x: xPoint,
486
+ y: yPoint + Math.max(currentMarkerSize ? currentMarkerSize * extraMaxPixels / maxMarkerSize : 3.5, 4) + 12,
487
+ className: classes.markerLabel,
488
+ opacity: isLegendSelected ? 1 : 0.1
489
+ }, text))));
490
+ }
421
491
  }
422
492
  let gapIndex = 0;
423
493
  var _points_i_gaps_sort;
@@ -425,13 +495,13 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
425
495
  const lineCurve = (_points_i_lineOptions = _points[i].lineOptions) === null || _points_i_lineOptions === void 0 ? void 0 : _points_i_lineOptions.curve;
426
496
  // Use path rendering technique for larger datasets to optimize performance.
427
497
  if ((props.optimizeLargeData || lineCurve) && _points[i].data.length > 1) {
428
- var _points_i_lineOptions1;
498
+ var _points_i_lineOptions2;
429
499
  const line = (0, _d3shape.line)() // eslint-disable-next-line @typescript-eslint/no-explicit-any
430
500
  .x((d)=>_xAxisScale(d[0])) // eslint-disable-next-line @typescript-eslint/no-explicit-any
431
- .y((d)=>yScale(d[1])).curve((0, _index1.getCurveFactory)(lineCurve));
501
+ .y((d)=>yScale(d[1])).curve((0, _index1.getCurveFactory)(lineCurve)).defined((d)=>(0, _index1.isPlottable)(_xAxisScale(d[0]), yScale(d[1])));
432
502
  const lineId = `${_lineId}_${i}`;
433
503
  const borderId = `${_borderId}_${i}`;
434
- const strokeWidth = ((_points_i_lineOptions1 = _points[i].lineOptions) === null || _points_i_lineOptions1 === void 0 ? void 0 : _points_i_lineOptions1.strokeWidth) || props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;
504
+ const strokeWidth = ((_points_i_lineOptions2 = _points[i].lineOptions) === null || _points_i_lineOptions2 === void 0 ? void 0 : _points_i_lineOptions2.strokeWidth) || props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;
435
505
  const isLegendSelected = _legendHighlighted(legendVal) || _noLegendHighlighted() || isSelectedLegend;
436
506
  const lineData = [];
437
507
  for(let k = 0; k < _points[i].data.length; k++){
@@ -441,19 +511,19 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
441
511
  ]);
442
512
  }
443
513
  if (isLegendSelected) {
444
- var _points_i_lineOptions2, _points_i_lineOptions3;
445
- const lineBorderWidth = ((_points_i_lineOptions2 = _points[i].lineOptions) === null || _points_i_lineOptions2 === void 0 ? void 0 : _points_i_lineOptions2.lineBorderWidth) ? Number.parseFloat(_points[i].lineOptions.lineBorderWidth.toString()) : 0;
514
+ var _points_i_lineOptions3, _points_i_lineOptions4;
515
+ const lineBorderWidth = ((_points_i_lineOptions3 = _points[i].lineOptions) === null || _points_i_lineOptions3 === void 0 ? void 0 : _points_i_lineOptions3.lineBorderWidth) ? Number.parseFloat(_points[i].lineOptions.lineBorderWidth.toString()) : 0;
446
516
  if (lineBorderWidth > 0) {
447
- var _points_i_lineOptions4, _points_i_lineOptions5;
517
+ var _points_i_lineOptions5, _points_i_lineOptions6;
448
518
  var _points_i_lineOptions_strokeLinecap;
449
519
  bordersForLine.push(/*#__PURE__*/ _react.createElement("path", {
450
520
  id: borderId,
451
521
  key: borderId,
452
522
  d: line(lineData),
453
523
  fill: "transparent",
454
- strokeLinecap: (_points_i_lineOptions_strokeLinecap = (_points_i_lineOptions4 = _points[i].lineOptions) === null || _points_i_lineOptions4 === void 0 ? void 0 : _points_i_lineOptions4.strokeLinecap) !== null && _points_i_lineOptions_strokeLinecap !== void 0 ? _points_i_lineOptions_strokeLinecap : 'round',
524
+ strokeLinecap: (_points_i_lineOptions_strokeLinecap = (_points_i_lineOptions5 = _points[i].lineOptions) === null || _points_i_lineOptions5 === void 0 ? void 0 : _points_i_lineOptions5.strokeLinecap) !== null && _points_i_lineOptions_strokeLinecap !== void 0 ? _points_i_lineOptions_strokeLinecap : 'round',
455
525
  strokeWidth: Number.parseFloat(strokeWidth.toString()) + lineBorderWidth,
456
- stroke: ((_points_i_lineOptions5 = _points[i].lineOptions) === null || _points_i_lineOptions5 === void 0 ? void 0 : _points_i_lineOptions5.lineBorderColor) || _reacttheme.tokens.colorNeutralBackground1,
526
+ stroke: ((_points_i_lineOptions6 = _points[i].lineOptions) === null || _points_i_lineOptions6 === void 0 ? void 0 : _points_i_lineOptions6.lineBorderColor) || _reacttheme.tokens.colorNeutralBackground1,
457
527
  opacity: 1
458
528
  }));
459
529
  }
@@ -466,7 +536,7 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
466
536
  "data-is-focusable": true,
467
537
  stroke: lineColor,
468
538
  strokeWidth: strokeWidth,
469
- strokeLinecap: (_points_i_lineOptions_strokeLinecap1 = (_points_i_lineOptions3 = _points[i].lineOptions) === null || _points_i_lineOptions3 === void 0 ? void 0 : _points_i_lineOptions3.strokeLinecap) !== null && _points_i_lineOptions_strokeLinecap1 !== void 0 ? _points_i_lineOptions_strokeLinecap1 : 'round',
539
+ strokeLinecap: (_points_i_lineOptions_strokeLinecap1 = (_points_i_lineOptions4 = _points[i].lineOptions) === null || _points_i_lineOptions4 === void 0 ? void 0 : _points_i_lineOptions4.strokeLinecap) !== null && _points_i_lineOptions_strokeLinecap1 !== void 0 ? _points_i_lineOptions_strokeLinecap1 : 'round',
470
540
  onMouseMove: (event)=>_onMouseOverLargeDataset.bind(i, verticaLineHeight, event, yScale),
471
541
  onMouseOver: (event)=>_onMouseOverLargeDataset.bind(i, verticaLineHeight, event, yScale),
472
542
  onMouseOut: _handleMouseOut,
@@ -475,7 +545,7 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
475
545
  tabIndex: isLegendSelected ? 0 : undefined
476
546
  }));
477
547
  } else {
478
- var _points_i_lineOptions6;
548
+ var _points_i_lineOptions7;
479
549
  var _points_i_lineOptions_strokeLinecap2;
480
550
  linesForLine.push(/*#__PURE__*/ _react.createElement("path", {
481
551
  id: lineId,
@@ -485,7 +555,7 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
485
555
  "data-is-focusable": false,
486
556
  stroke: lineColor,
487
557
  strokeWidth: strokeWidth,
488
- strokeLinecap: (_points_i_lineOptions_strokeLinecap2 = (_points_i_lineOptions6 = _points[i].lineOptions) === null || _points_i_lineOptions6 === void 0 ? void 0 : _points_i_lineOptions6.strokeLinecap) !== null && _points_i_lineOptions_strokeLinecap2 !== void 0 ? _points_i_lineOptions_strokeLinecap2 : 'round',
558
+ strokeLinecap: (_points_i_lineOptions_strokeLinecap2 = (_points_i_lineOptions7 = _points[i].lineOptions) === null || _points_i_lineOptions7 === void 0 ? void 0 : _points_i_lineOptions7.strokeLinecap) !== null && _points_i_lineOptions_strokeLinecap2 !== void 0 ? _points_i_lineOptions_strokeLinecap2 : 'round',
489
559
  opacity: 0.1
490
560
  }));
491
561
  }
@@ -505,7 +575,7 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
505
575
  }));
506
576
  } else if (!props.optimizeLargeData) {
507
577
  for(let j = 1; j < _points[i].data.length; j++){
508
- var _points_i_lineOptions7;
578
+ var _points_i_lineOptions8, _points_i_lineOptions_mode1, _points_i_lineOptions9, _points_i_lineOptions_mode2, _points_i_lineOptions10;
509
579
  const gapResult = _checkInGap(j, gaps, gapIndex);
510
580
  const isInGap = gapResult.isInGap;
511
581
  gapIndex = gapResult.gapIndex;
@@ -514,142 +584,217 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
514
584
  const circleId = `${_circleId}_${i}_${j}`;
515
585
  const { x: x1, y: y1, xAxisCalloutData, xAxisCalloutAccessibilityData } = _points[i].data[j - 1];
516
586
  const { x: x2, y: y2 } = _points[i].data[j];
517
- let path = _getPath(_xAxisScale(x1), yScale(y1), circleId, j, false, _points[i].index);
518
- const strokeWidth = ((_points_i_lineOptions7 = _points[i].lineOptions) === null || _points_i_lineOptions7 === void 0 ? void 0 : _points_i_lineOptions7.strokeWidth) || props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;
587
+ const xPoint1 = _xAxisScale(x1);
588
+ const yPoint1 = yScale(y1);
589
+ const xPoint2 = _xAxisScale(x2);
590
+ const yPoint2 = yScale(y2);
591
+ const strokeWidth = ((_points_i_lineOptions8 = _points[i].lineOptions) === null || _points_i_lineOptions8 === void 0 ? void 0 : _points_i_lineOptions8.strokeWidth) || props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;
519
592
  const isLegendSelected = _legendHighlighted(legendVal) || _noLegendHighlighted() || isSelectedLegend;
520
593
  const currentPointHidden = _points[i].hideNonActiveDots && activePoint !== circleId;
521
- pointsForLine.push(/*#__PURE__*/ _react.createElement("path", {
522
- id: circleId,
523
- key: circleId,
524
- d: path,
525
- "data-is-focusable": isLegendSelected,
526
- onMouseOver: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale),
527
- onMouseMove: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale),
528
- onMouseOut: _handleMouseOut,
529
- onFocus: (event)=>_handleFocus(event, lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData),
530
- onBlur: _handleMouseOut,
531
- ..._getClickHandler(_points[i].data[j - 1].onDataPointClick),
532
- opacity: isLegendSelected && !currentPointHidden ? 1 : 0.01,
533
- fill: _getPointFill(lineColor, circleId, j, false),
534
- stroke: lineColor,
535
- strokeWidth: strokeWidth,
536
- role: "img",
537
- "aria-label": _getAriaLabel(i, j - 1),
538
- tabIndex: isLegendSelected ? 0 : undefined
539
- }));
540
- if (j + 1 === _points[i].data.length) {
541
- // If this is last point of the line segment.
542
- const lastCircleId = `${circleId}${j}L`;
543
- const hiddenHoverCircleId = `${circleId}${j}D`;
544
- const lastPointHidden = _points[i].hideNonActiveDots && activePoint !== lastCircleId;
545
- path = _getPath(_xAxisScale(x2), yScale(y2), lastCircleId, j, true, _points[i].index);
546
- const { xAxisCalloutData: lastCirlceXCallout, xAxisCalloutAccessibilityData: lastCirlceXCalloutAccessibilityData } = _points[i].data[j];
547
- pointsForLine.push(/*#__PURE__*/ _react.createElement(_react.Fragment, {
548
- key: `${lastCircleId}_container`
549
- }, /*#__PURE__*/ _react.createElement("path", {
550
- id: lastCircleId,
551
- key: lastCircleId,
594
+ const supportsTextMode = (_points_i_lineOptions9 = _points[i].lineOptions) === null || _points_i_lineOptions9 === void 0 ? void 0 : (_points_i_lineOptions_mode1 = _points_i_lineOptions9.mode) === null || _points_i_lineOptions_mode1 === void 0 ? void 0 : _points_i_lineOptions_mode1.includes('text');
595
+ const text = _points[i].data[j - 1].text;
596
+ let currentMarkerSize = _points[i].data[j - 1].markerSize;
597
+ if ((0, _index1.isPlottable)(xPoint1, yPoint1)) {
598
+ var _points_i_lineOptions_mode3, _points_i_lineOptions11;
599
+ const path = _getPath(xPoint1, yPoint1, circleId, j, false, _points[i].index);
600
+ var _points_i_data__text1;
601
+ pointsForLine.push(((_points_i_lineOptions11 = _points[i].lineOptions) === null || _points_i_lineOptions11 === void 0 ? void 0 : (_points_i_lineOptions_mode3 = _points_i_lineOptions11.mode) === null || _points_i_lineOptions_mode3 === void 0 ? void 0 : _points_i_lineOptions_mode3.includes('markers')) || supportsTextMode ? /*#__PURE__*/ _react.createElement(_react.Fragment, null, /*#__PURE__*/ _react.createElement("circle", {
602
+ id: circleId,
603
+ key: circleId,
604
+ r: currentMarkerSize ? currentMarkerSize * extraMaxPixels / maxMarkerSize : 4,
605
+ cx: xPoint1,
606
+ cy: yPoint1,
607
+ "data-is-focusable": isLegendSelected,
608
+ onMouseOver: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale, legendVal, lineColor),
609
+ onMouseMove: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale, legendVal, lineColor),
610
+ onMouseOut: _handleMouseOut,
611
+ onFocus: (event)=>_handleFocus(event, lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData),
612
+ onBlur: _handleMouseOut,
613
+ ..._getClickHandler(_points[i].data[j - 1].onDataPointClick),
614
+ opacity: isLegendSelected && !currentPointHidden ? 1 : 0.01,
615
+ fill: _getPointFill(lineColor, circleId, j, false),
616
+ stroke: lineColor,
617
+ strokeWidth: strokeWidth,
618
+ role: "img",
619
+ "aria-label": (_points_i_data__text1 = _points[i].data[j - 1].text) !== null && _points_i_data__text1 !== void 0 ? _points_i_data__text1 : _getAriaLabel(i, j - 1)
620
+ }), !_isScatterPolar && supportsTextMode && text && /*#__PURE__*/ _react.createElement("text", {
621
+ key: `${circleId}-label`,
622
+ x: xPoint1,
623
+ y: yPoint1 + Math.max(currentMarkerSize ? currentMarkerSize * extraMaxPixels / maxMarkerSize : 4, 4) + 12,
624
+ className: classes.markerLabel,
625
+ opacity: isLegendSelected && !currentPointHidden ? 1 : 0.01
626
+ }, text)) : /*#__PURE__*/ _react.createElement("path", {
627
+ id: circleId,
628
+ key: circleId,
552
629
  d: path,
553
630
  "data-is-focusable": isLegendSelected,
554
- onMouseOver: (event)=>_handleHover(x2, y2, verticaLineHeight, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData, event, yScale),
555
- onMouseMove: (event)=>_handleHover(x2, y2, verticaLineHeight, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData, event, yScale),
631
+ onMouseOver: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale, legendVal, lineColor),
632
+ onMouseMove: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale, legendVal, lineColor),
556
633
  onMouseOut: _handleMouseOut,
557
- onFocus: (event)=>_handleFocus(event, lineId, x2, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData),
634
+ onFocus: (event)=>_handleFocus(event, lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData),
558
635
  onBlur: _handleMouseOut,
559
- ..._getClickHandler(_points[i].data[j].onDataPointClick),
560
- opacity: isLegendSelected && !lastPointHidden ? 1 : 0.01,
561
- fill: _getPointFill(lineColor, lastCircleId, j, true),
636
+ ..._getClickHandler(_points[i].data[j - 1].onDataPointClick),
637
+ opacity: isLegendSelected && !currentPointHidden ? 1 : 0.01,
638
+ fill: _getPointFill(lineColor, circleId, j, false),
562
639
  stroke: lineColor,
563
640
  strokeWidth: strokeWidth,
564
641
  role: "img",
565
- "aria-label": _getAriaLabel(i, j),
642
+ "aria-label": _getAriaLabel(i, j - 1),
566
643
  tabIndex: isLegendSelected ? 0 : undefined
567
- }), /*#__PURE__*/ _react.createElement("circle", {
568
- id: hiddenHoverCircleId,
569
- key: hiddenHoverCircleId,
570
- r: 8,
571
- cx: _xAxisScale(x2),
572
- cy: yScale(y2),
573
- opacity: 0,
574
- width: 0,
575
- onMouseOver: (event)=>_handleHover(x2, y2, verticaLineHeight, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData, event, yScale),
576
- onMouseMove: (event)=>_handleHover(x2, y2, verticaLineHeight, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData, event, yScale),
577
- onFocus: (event)=>_handleFocus(event, circleId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData),
578
- onMouseOut: _handleMouseOut,
579
- strokeWidth: 0,
580
- focusable: false,
581
- onBlur: _handleMouseOut
582
- })));
583
- /* eslint-enable react/jsx-no-bind */ }
584
- if (isLegendSelected) {
585
- // don't draw line if it is in a gap
586
- if (!isInGap) {
587
- var _points_i_lineOptions8, _points_i_lineOptions9, _points_i_lineOptions10, _points_i_lineOptions11;
588
- const lineBorderWidth = ((_points_i_lineOptions8 = _points[i].lineOptions) === null || _points_i_lineOptions8 === void 0 ? void 0 : _points_i_lineOptions8.lineBorderWidth) ? Number.parseFloat(_points[i].lineOptions.lineBorderWidth.toString()) : 0;
589
- if (lineBorderWidth > 0) {
590
- var _points_i_lineOptions12, _points_i_lineOptions13, _points_i_lineOptions14;
591
- var _points_i_lineOptions_strokeLinecap3;
592
- bordersForLine.push(/*#__PURE__*/ _react.createElement("line", {
593
- id: borderId,
594
- key: borderId,
595
- x1: _xAxisScale(x1),
596
- y1: yScale(y1),
597
- x2: _xAxisScale(x2),
598
- y2: yScale(y2),
599
- strokeLinecap: (_points_i_lineOptions_strokeLinecap3 = (_points_i_lineOptions12 = _points[i].lineOptions) === null || _points_i_lineOptions12 === void 0 ? void 0 : _points_i_lineOptions12.strokeLinecap) !== null && _points_i_lineOptions_strokeLinecap3 !== void 0 ? _points_i_lineOptions_strokeLinecap3 : 'round',
600
- strokeWidth: Number.parseFloat(strokeWidth.toString()) + lineBorderWidth,
601
- ...((_points_i_lineOptions13 = _points[i].lineOptions) === null || _points_i_lineOptions13 === void 0 ? void 0 : _points_i_lineOptions13.lineBorderColor) && {
602
- stroke: (_points_i_lineOptions14 = _points[i].lineOptions) === null || _points_i_lineOptions14 === void 0 ? void 0 : _points_i_lineOptions14.lineBorderColor
603
- },
604
- className: classes.lineBorder,
605
- opacity: 1
606
- }));
607
- }
608
- var _points_i_lineOptions_strokeLinecap4;
609
- linesForLine.push(/*#__PURE__*/ _react.createElement("line", {
610
- id: lineId,
611
- key: lineId,
612
- x1: _xAxisScale(x1),
613
- y1: yScale(y1),
614
- x2: _xAxisScale(x2),
615
- y2: yScale(y2),
616
- strokeWidth: strokeWidth,
617
- ref: (e)=>{
618
- _refCallback(e, lineId);
619
- },
620
- onMouseOver: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale),
621
- onMouseMove: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale),
644
+ }));
645
+ }
646
+ if (j + 1 === _points[i].data.length) {
647
+ var _points_i_lineOptions_mode4, _points_i_lineOptions12;
648
+ // If this is last point of the line segment.
649
+ const lastCircleId = `${circleId}${j}L`;
650
+ const hiddenHoverCircleId = `${circleId}${j}D`;
651
+ const lastPointHidden = _points[i].hideNonActiveDots && activePoint !== lastCircleId;
652
+ const { xAxisCalloutData: lastCirlceXCallout, xAxisCalloutAccessibilityData: lastCirlceXCalloutAccessibilityData } = _points[i].data[j];
653
+ currentMarkerSize = _points[i].data[j].markerSize;
654
+ const lastSupportsTextMode = (_points_i_lineOptions12 = _points[i].lineOptions) === null || _points_i_lineOptions12 === void 0 ? void 0 : (_points_i_lineOptions_mode4 = _points_i_lineOptions12.mode) === null || _points_i_lineOptions_mode4 === void 0 ? void 0 : _points_i_lineOptions_mode4.includes('text');
655
+ const lastText = _points[i].data[j].text;
656
+ if ((0, _index1.isPlottable)(xPoint2, yPoint2)) {
657
+ var _points_i_lineOptions_mode5, _points_i_lineOptions13;
658
+ const path = _getPath(xPoint2, yPoint2, lastCircleId, j, true, _points[i].index);
659
+ var _points_i_data_j_text;
660
+ pointsForLine.push(/*#__PURE__*/ _react.createElement(_react.Fragment, {
661
+ key: `${lastCircleId}_container`
662
+ }, ((_points_i_lineOptions13 = _points[i].lineOptions) === null || _points_i_lineOptions13 === void 0 ? void 0 : (_points_i_lineOptions_mode5 = _points_i_lineOptions13.mode) === null || _points_i_lineOptions_mode5 === void 0 ? void 0 : _points_i_lineOptions_mode5.includes('markers')) || lastSupportsTextMode ? /*#__PURE__*/ _react.createElement(_react.Fragment, null, /*#__PURE__*/ _react.createElement("circle", {
663
+ id: lastCircleId,
664
+ key: lastCircleId,
665
+ r: currentMarkerSize ? currentMarkerSize * extraMaxPixels / maxMarkerSize : 4,
666
+ cx: xPoint2,
667
+ cy: yPoint2,
668
+ "data-is-focusable": isLegendSelected,
669
+ onMouseOver: (event)=>_handleHover(x2, y2, verticaLineHeight, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData, event, yScale, legendVal, lineColor),
670
+ onMouseMove: (event)=>_handleHover(x2, y2, verticaLineHeight, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData, event, yScale, legendVal, lineColor),
622
671
  onMouseOut: _handleMouseOut,
672
+ onFocus: (event)=>_handleFocus(event, lineId, x2, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData),
673
+ onBlur: _handleMouseOut,
674
+ ..._getClickHandler(_points[i].data[j].onDataPointClick),
675
+ opacity: isLegendSelected && !lastPointHidden ? 1 : 0.01,
676
+ fill: _getPointFill(lineColor, lastCircleId, j, true),
623
677
  stroke: lineColor,
624
- strokeLinecap: (_points_i_lineOptions_strokeLinecap4 = (_points_i_lineOptions9 = _points[i].lineOptions) === null || _points_i_lineOptions9 === void 0 ? void 0 : _points_i_lineOptions9.strokeLinecap) !== null && _points_i_lineOptions_strokeLinecap4 !== void 0 ? _points_i_lineOptions_strokeLinecap4 : 'round',
625
- strokeDasharray: (_points_i_lineOptions10 = _points[i].lineOptions) === null || _points_i_lineOptions10 === void 0 ? void 0 : _points_i_lineOptions10.strokeDasharray,
626
- strokeDashoffset: (_points_i_lineOptions11 = _points[i].lineOptions) === null || _points_i_lineOptions11 === void 0 ? void 0 : _points_i_lineOptions11.strokeDashoffset,
627
- opacity: 1,
628
- ..._getClickHandler(_points[i].onLineClick)
629
- }));
630
- }
631
- } else {
632
- if (!isInGap) {
633
- var _points_i_lineOptions15, _points_i_lineOptions16, _points_i_lineOptions17;
634
- var _points_i_lineOptions_strokeLinecap5;
635
- linesForLine.push(/*#__PURE__*/ _react.createElement("line", {
636
- id: lineId,
637
- key: lineId,
638
- x1: _xAxisScale(x1),
639
- y1: yScale(y1),
640
- x2: _xAxisScale(x2),
641
- y2: yScale(y2),
642
678
  strokeWidth: strokeWidth,
679
+ role: "img",
680
+ "aria-label": (_points_i_data_j_text = _points[i].data[j].text) !== null && _points_i_data_j_text !== void 0 ? _points_i_data_j_text : _getAriaLabel(i, j)
681
+ }), !_isScatterPolar && lastSupportsTextMode && lastText && /*#__PURE__*/ _react.createElement("text", {
682
+ key: `${lastCircleId}-label`,
683
+ x: xPoint2,
684
+ y: yPoint2 + Math.max(currentMarkerSize ? currentMarkerSize * extraMaxPixels / maxMarkerSize : 4, 4) + 12,
685
+ className: classes.markerLabel
686
+ }, text)) : /*#__PURE__*/ _react.createElement("path", {
687
+ id: lastCircleId,
688
+ key: lastCircleId,
689
+ d: path,
690
+ "data-is-focusable": isLegendSelected,
691
+ onMouseOver: (event)=>_handleHover(x2, y2, verticaLineHeight, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData, event, yScale, legendVal, lineColor),
692
+ onMouseMove: (event)=>_handleHover(x2, y2, verticaLineHeight, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData, event, yScale, legendVal, lineColor),
693
+ onMouseOut: _handleMouseOut,
694
+ onFocus: (event)=>_handleFocus(event, lineId, x2, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData),
695
+ onBlur: _handleMouseOut,
696
+ ..._getClickHandler(_points[i].data[j].onDataPointClick),
697
+ opacity: isLegendSelected && !lastPointHidden ? 1 : 0.01,
698
+ fill: _getPointFill(lineColor, lastCircleId, j, true),
643
699
  stroke: lineColor,
644
- strokeLinecap: (_points_i_lineOptions_strokeLinecap5 = (_points_i_lineOptions15 = _points[i].lineOptions) === null || _points_i_lineOptions15 === void 0 ? void 0 : _points_i_lineOptions15.strokeLinecap) !== null && _points_i_lineOptions_strokeLinecap5 !== void 0 ? _points_i_lineOptions_strokeLinecap5 : 'round',
645
- strokeDasharray: (_points_i_lineOptions16 = _points[i].lineOptions) === null || _points_i_lineOptions16 === void 0 ? void 0 : _points_i_lineOptions16.strokeDasharray,
646
- strokeDashoffset: (_points_i_lineOptions17 = _points[i].lineOptions) === null || _points_i_lineOptions17 === void 0 ? void 0 : _points_i_lineOptions17.strokeDashoffset,
647
- opacity: 0.1
648
- }));
700
+ strokeWidth: strokeWidth,
701
+ role: "img",
702
+ "aria-label": _getAriaLabel(i, j),
703
+ tabIndex: isLegendSelected ? 0 : undefined
704
+ }), /*#__PURE__*/ _react.createElement("circle", {
705
+ id: hiddenHoverCircleId,
706
+ key: hiddenHoverCircleId,
707
+ r: 8,
708
+ cx: xPoint2,
709
+ cy: yPoint2,
710
+ opacity: 0,
711
+ width: 0,
712
+ onMouseOver: (event)=>_handleHover(x2, y2, verticaLineHeight, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData, event, yScale, legendVal, lineColor),
713
+ onMouseMove: (event)=>_handleHover(x2, y2, verticaLineHeight, lastCirlceXCallout, lastCircleId, lastCirlceXCalloutAccessibilityData, event, yScale, legendVal, lineColor),
714
+ onMouseOut: _handleMouseOut,
715
+ strokeWidth: 0,
716
+ focusable: false,
717
+ onBlur: _handleMouseOut
718
+ })));
719
+ }
720
+ }
721
+ if ((0, _index1.isPlottable)(xPoint1, yPoint1) && (0, _index1.isPlottable)(xPoint2, yPoint2) && (!_hasMarkersMode || ((_points_i_lineOptions10 = _points[i].lineOptions) === null || _points_i_lineOptions10 === void 0 ? void 0 : (_points_i_lineOptions_mode2 = _points_i_lineOptions10.mode) === null || _points_i_lineOptions_mode2 === void 0 ? void 0 : _points_i_lineOptions_mode2.includes('lines')))) {
722
+ if (isLegendSelected) {
723
+ // don't draw line if it is in a gap
724
+ if (!isInGap) {
725
+ var _points_i_lineOptions14, _points_i_lineOptions15, _points_i_lineOptions16, _points_i_lineOptions17;
726
+ const lineBorderWidth = ((_points_i_lineOptions14 = _points[i].lineOptions) === null || _points_i_lineOptions14 === void 0 ? void 0 : _points_i_lineOptions14.lineBorderWidth) ? Number.parseFloat(_points[i].lineOptions.lineBorderWidth.toString()) : 0;
727
+ if (lineBorderWidth > 0) {
728
+ var _points_i_lineOptions18, _points_i_lineOptions19;
729
+ var _points_i_lineOptions_strokeLinecap3;
730
+ bordersForLine.push(/*#__PURE__*/ _react.createElement("line", {
731
+ id: borderId,
732
+ key: borderId,
733
+ x1: xPoint1,
734
+ y1: yPoint1,
735
+ x2: xPoint2,
736
+ y2: yPoint2,
737
+ strokeLinecap: (_points_i_lineOptions_strokeLinecap3 = (_points_i_lineOptions18 = _points[i].lineOptions) === null || _points_i_lineOptions18 === void 0 ? void 0 : _points_i_lineOptions18.strokeLinecap) !== null && _points_i_lineOptions_strokeLinecap3 !== void 0 ? _points_i_lineOptions_strokeLinecap3 : 'round',
738
+ strokeWidth: Number.parseFloat(strokeWidth.toString()) + lineBorderWidth,
739
+ stroke: ((_points_i_lineOptions19 = _points[i].lineOptions) === null || _points_i_lineOptions19 === void 0 ? void 0 : _points_i_lineOptions19.lineBorderColor) || _reacttheme.tokens.colorNeutralBackground1,
740
+ opacity: 1
741
+ }));
742
+ }
743
+ var _points_i_lineOptions_strokeLinecap4;
744
+ linesForLine.push(/*#__PURE__*/ _react.createElement("line", {
745
+ id: lineId,
746
+ key: lineId,
747
+ x1: xPoint1,
748
+ y1: yPoint1,
749
+ x2: xPoint2,
750
+ y2: yPoint2,
751
+ strokeWidth: strokeWidth,
752
+ ref: (e)=>{
753
+ _refCallback(e, lineId);
754
+ },
755
+ onMouseOver: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale, legendVal, lineColor),
756
+ onMouseMove: (event)=>_handleHover(x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, event, yScale, legendVal, lineColor),
757
+ onMouseOut: _handleMouseOut,
758
+ stroke: lineColor,
759
+ strokeLinecap: (_points_i_lineOptions_strokeLinecap4 = (_points_i_lineOptions15 = _points[i].lineOptions) === null || _points_i_lineOptions15 === void 0 ? void 0 : _points_i_lineOptions15.strokeLinecap) !== null && _points_i_lineOptions_strokeLinecap4 !== void 0 ? _points_i_lineOptions_strokeLinecap4 : 'round',
760
+ strokeDasharray: (_points_i_lineOptions16 = _points[i].lineOptions) === null || _points_i_lineOptions16 === void 0 ? void 0 : _points_i_lineOptions16.strokeDasharray,
761
+ strokeDashoffset: (_points_i_lineOptions17 = _points[i].lineOptions) === null || _points_i_lineOptions17 === void 0 ? void 0 : _points_i_lineOptions17.strokeDashoffset,
762
+ opacity: 1,
763
+ ..._getClickHandler(_points[i].onLineClick)
764
+ }));
765
+ }
766
+ } else {
767
+ if (!isInGap) {
768
+ var _points_i_lineOptions20, _points_i_lineOptions21, _points_i_lineOptions22;
769
+ var _points_i_lineOptions_strokeLinecap5;
770
+ linesForLine.push(/*#__PURE__*/ _react.createElement("line", {
771
+ id: lineId,
772
+ key: lineId,
773
+ x1: xPoint1,
774
+ y1: yPoint1,
775
+ x2: xPoint2,
776
+ y2: yPoint2,
777
+ strokeWidth: strokeWidth,
778
+ stroke: lineColor,
779
+ strokeLinecap: (_points_i_lineOptions_strokeLinecap5 = (_points_i_lineOptions20 = _points[i].lineOptions) === null || _points_i_lineOptions20 === void 0 ? void 0 : _points_i_lineOptions20.strokeLinecap) !== null && _points_i_lineOptions_strokeLinecap5 !== void 0 ? _points_i_lineOptions_strokeLinecap5 : 'round',
780
+ strokeDasharray: (_points_i_lineOptions21 = _points[i].lineOptions) === null || _points_i_lineOptions21 === void 0 ? void 0 : _points_i_lineOptions21.strokeDasharray,
781
+ strokeDashoffset: (_points_i_lineOptions22 = _points[i].lineOptions) === null || _points_i_lineOptions22 === void 0 ? void 0 : _points_i_lineOptions22.strokeDashoffset,
782
+ opacity: 0.1
783
+ }));
784
+ }
649
785
  }
650
786
  }
651
787
  }
652
788
  }
789
+ if (_isScatterPolar) {
790
+ var _points_i;
791
+ pointsForLine.push(...(0, _scatterpolarutils.renderScatterPolarCategoryLabels)({
792
+ xAxisScale: _xAxisScale,
793
+ yAxisScale: yScale,
794
+ className: classes.markerLabel || '',
795
+ lineOptions: (_points_i = _points[i]) === null || _points_i === void 0 ? void 0 : _points_i.lineOptions
796
+ }));
797
+ }
653
798
  lines.push(/*#__PURE__*/ _react.createElement("g", {
654
799
  key: `line_${i}`,
655
800
  role: "region",
@@ -847,11 +992,24 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
847
992
  setActivePoint(circleId);
848
993
  }
849
994
  }
850
- function _handleHover(x, y, lineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, mouseEvent, yScale) {
995
+ function _handleHover(x, y, lineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, mouseEvent, yScale, legendVal, lineColor) {
851
996
  mouseEvent === null || mouseEvent === void 0 ? void 0 : mouseEvent.persist();
852
997
  const formattedData = x instanceof Date ? (0, _index1.formatDate)(x, props.useUTC) : x;
853
998
  const xVal = x instanceof Date ? x.getTime() : x;
999
+ const yVal = y instanceof Date ? y.getTime() : y;
854
1000
  const found = (0, _index1.find)(_calloutPoints, (element)=>element.x === xVal);
1001
+ let hoverDp = undefined;
1002
+ if (props.isCalloutForStack === false && (found === null || found === void 0 ? void 0 : found.values)) {
1003
+ const dp = (0, _index1.find)(found.values, (val)=>(val === null || val === void 0 ? void 0 : val.y) === yVal);
1004
+ if (dp) {
1005
+ hoverDp = {
1006
+ x: xVal,
1007
+ values: [
1008
+ dp
1009
+ ]
1010
+ };
1011
+ }
1012
+ }
855
1013
  // if no points need to be called out then don't show vertical line and callout card
856
1014
  if (found) {
857
1015
  (0, _d3selection.select)(`#${_verticalLine}`).attr('transform', ()=>`translate(${_xAxisScale(x)}, ${yScale(y)})`).attr('visibility', 'visibility').attr('y2', `${lineHeight - 5 - yScale(y)}`);
@@ -860,8 +1018,11 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
860
1018
  updatePosition(mouseEvent.clientX, mouseEvent.clientY);
861
1019
  xAxisCalloutData ? setHoverXValue(xAxisCalloutData) : setHoverXValue('' + formattedData);
862
1020
  setYValueHover(found.values);
1021
+ setYValue(yVal);
1022
+ setLegendVal(legendVal);
1023
+ setLineColor(lineColor);
863
1024
  setStackCalloutProps(found);
864
- setDataPointCalloutProps(found);
1025
+ setDataPointCalloutProps(hoverDp);
865
1026
  setActivePoint(circleId);
866
1027
  setNearestCircleToHighlight(null);
867
1028
  }
@@ -990,7 +1151,7 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
990
1151
  }
991
1152
  const { legendProps, tickValues, tickFormat, eventAnnotationProps } = props;
992
1153
  _points = _injectIndexPropertyInLineChartData(props.data.lineChartData);
993
- const isXAxisDateType = (0, _index1.getXAxisType)(_points);
1154
+ _isXAxisDateType = (0, _index1.getXAxisType)(_points);
994
1155
  let points = _points;
995
1156
  if (legendProps && !!legendProps.canSelectMultipleLegends) {
996
1157
  points = selectedLegendPoints.length >= 1 ? selectedLegendPoints : _points;
@@ -1007,13 +1168,17 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
1007
1168
  const calloutProps = {
1008
1169
  YValueHover: YValueHover,
1009
1170
  hoverXValue: hoverXValue,
1171
+ YValue: YValue,
1172
+ legend: legendVal,
1173
+ color: lineColor,
1174
+ XValue: hoverXValue,
1010
1175
  descriptionMessage: props.getCalloutDescriptionMessage && stackCalloutProps ? props.getCalloutDescriptionMessage(stackCalloutProps) : undefined,
1011
1176
  'data-is-focusable': true,
1012
1177
  xAxisCalloutAccessibilityData: xAxisCalloutAccessibilityData,
1013
1178
  ...props.calloutProps,
1014
1179
  clickPosition: clickPosition,
1015
1180
  isPopoverOpen: isPopoverOpen,
1016
- isCalloutForStack: true,
1181
+ isCalloutForStack: props.isCalloutForStack,
1017
1182
  culture: (_props_culture = props.culture) !== null && _props_culture !== void 0 ? _props_culture : 'en-us',
1018
1183
  isCartesian: true,
1019
1184
  customCallout: {
@@ -1035,9 +1200,13 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
1035
1200
  legendBars: legendBars,
1036
1201
  createYAxis: _index1.createNumericYAxis,
1037
1202
  getmargins: _getMargins,
1038
- getMinMaxOfYAxis: _index1.findNumericMinMaxOfY,
1203
+ getMinMaxOfYAxis: _getNumericMinMaxOfY,
1039
1204
  getGraphData: _initializeLineChartData,
1040
- xAxisType: isXAxisDateType ? _index1.XAxisTypes.DateAxis : _index1.XAxisTypes.NumericAxis,
1205
+ xAxisType: _isXAxisDateType ? _index1.XAxisTypes.DateAxis : _index1.XAxisTypes.NumericAxis,
1206
+ ..._isScatterPolar ? {
1207
+ yMaxValue: 1,
1208
+ yMinValue: -1
1209
+ } : {},
1041
1210
  getDomainNRangeValues: _getDomainNRangeValues,
1042
1211
  createStringYAxis: _index1.createStringYAxis,
1043
1212
  onChartMouseLeave: _handleChartMouseLeave,
@@ -1079,3 +1248,6 @@ const LineChart = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
1079
1248
  });
1080
1249
  });
1081
1250
  LineChart.displayName = 'LineChart';
1251
+ LineChart.defaultProps = {
1252
+ isCalloutForStack: true
1253
+ };