@fluentui/react-charting 5.24.21 → 5.24.23

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 (109) hide show
  1. package/CHANGELOG.json +55 -1
  2. package/CHANGELOG.md +24 -2
  3. package/bundle-size/ScatterChart.fixture.js +7 -0
  4. package/dist/react-charting.d.ts +29 -4
  5. package/dist/react-charting.js +1 -1
  6. package/dist/react-charting.min.js +1 -1
  7. package/etc/react-charting.api.md +10 -4
  8. package/lib/components/AreaChart/AreaChart.base.js +3 -3
  9. package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
  10. package/lib/components/CommonComponents/CartesianChart.base.js +4 -4
  11. package/lib/components/CommonComponents/CartesianChart.base.js.map +1 -1
  12. package/lib/components/CommonComponents/CartesianChart.types.d.ts +18 -3
  13. package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
  14. package/lib/components/DeclarativeChart/DeclarativeChart.js +2 -1
  15. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  16. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +10 -0
  17. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +187 -11
  18. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  19. package/lib/components/HeatMapChart/HeatMapChart.base.js +1 -1
  20. package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  21. package/lib/components/HeatMapChart/HeatMapChart.styles.js +1 -8
  22. package/lib/components/HeatMapChart/HeatMapChart.styles.js.map +1 -1
  23. package/lib/components/HeatMapChart/HeatMapChart.types.d.ts +2 -2
  24. package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  25. package/lib/components/LineChart/LineChart.base.d.ts +0 -9
  26. package/lib/components/LineChart/LineChart.base.js +82 -138
  27. package/lib/components/LineChart/LineChart.base.js.map +1 -1
  28. package/lib/components/ScatterChart/ScatterChart.base.js +37 -62
  29. package/lib/components/ScatterChart/ScatterChart.base.js.map +1 -1
  30. package/lib/components/VerticalBarChart/VerticalBarChart.base.js +2 -2
  31. package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  32. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +2 -2
  33. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  34. package/lib/index.d.ts +1 -1
  35. package/lib/index.js.map +1 -1
  36. package/lib/types/IDataPoint.d.ts +9 -0
  37. package/lib/types/IDataPoint.js.map +1 -1
  38. package/lib/utilities/utilities.d.ts +29 -28
  39. package/lib/utilities/utilities.js +127 -110
  40. package/lib/utilities/utilities.js.map +1 -1
  41. package/lib-amd/components/AreaChart/AreaChart.base.js +2 -2
  42. package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
  43. package/lib-amd/components/CommonComponents/CartesianChart.base.js +4 -4
  44. package/lib-amd/components/CommonComponents/CartesianChart.base.js.map +1 -1
  45. package/lib-amd/components/CommonComponents/CartesianChart.types.d.ts +18 -3
  46. package/lib-amd/components/CommonComponents/CartesianChart.types.js.map +1 -1
  47. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +2 -1
  48. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  49. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +10 -0
  50. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +188 -11
  51. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  52. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js +1 -1
  53. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  54. package/lib-amd/components/HeatMapChart/HeatMapChart.styles.js +1 -8
  55. package/lib-amd/components/HeatMapChart/HeatMapChart.styles.js.map +1 -1
  56. package/lib-amd/components/HeatMapChart/HeatMapChart.types.d.ts +2 -2
  57. package/lib-amd/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  58. package/lib-amd/components/LineChart/LineChart.base.d.ts +0 -9
  59. package/lib-amd/components/LineChart/LineChart.base.js +80 -136
  60. package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
  61. package/lib-amd/components/ScatterChart/ScatterChart.base.js +35 -60
  62. package/lib-amd/components/ScatterChart/ScatterChart.base.js.map +1 -1
  63. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +1 -1
  64. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  65. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +1 -1
  66. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  67. package/lib-amd/index.d.ts +1 -1
  68. package/lib-amd/index.js.map +1 -1
  69. package/lib-amd/types/IDataPoint.d.ts +9 -0
  70. package/lib-amd/types/IDataPoint.js.map +1 -1
  71. package/lib-amd/utilities/utilities.d.ts +29 -28
  72. package/lib-amd/utilities/utilities.js +133 -113
  73. package/lib-amd/utilities/utilities.js.map +1 -1
  74. package/lib-commonjs/components/AreaChart/AreaChart.base.js +2 -2
  75. package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
  76. package/lib-commonjs/components/CommonComponents/CartesianChart.base.js +4 -4
  77. package/lib-commonjs/components/CommonComponents/CartesianChart.base.js.map +1 -1
  78. package/lib-commonjs/components/CommonComponents/CartesianChart.types.d.ts +18 -3
  79. package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
  80. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +2 -1
  81. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  82. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +10 -0
  83. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +188 -11
  84. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  85. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js +1 -1
  86. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  87. package/lib-commonjs/components/HeatMapChart/HeatMapChart.styles.js +1 -8
  88. package/lib-commonjs/components/HeatMapChart/HeatMapChart.styles.js.map +1 -1
  89. package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.d.ts +2 -2
  90. package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
  91. package/lib-commonjs/components/LineChart/LineChart.base.d.ts +0 -9
  92. package/lib-commonjs/components/LineChart/LineChart.base.js +80 -136
  93. package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
  94. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js +35 -60
  95. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js.map +1 -1
  96. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +1 -1
  97. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  98. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +1 -1
  99. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  100. package/lib-commonjs/index.d.ts +1 -1
  101. package/lib-commonjs/index.js.map +1 -1
  102. package/lib-commonjs/types/IDataPoint.d.ts +9 -0
  103. package/lib-commonjs/types/IDataPoint.js.map +1 -1
  104. package/lib-commonjs/utilities/utilities.d.ts +29 -28
  105. package/lib-commonjs/utilities/utilities.js +134 -114
  106. package/lib-commonjs/utilities/utilities.js.map +1 -1
  107. package/package.json +4 -4
  108. package/src/components/CommonComponents/CartesianChart.types.ts +22 -2
  109. package/src/components/HeatMapChart/HeatMapChart.types.ts +2 -2
@@ -4,13 +4,13 @@ import { select as d3Select, pointer } from 'd3-selection';
4
4
  import { bisector } from 'd3-array';
5
5
  import { Legends } from '../Legends/index';
6
6
  import { line as d3Line } from 'd3-shape';
7
- import { max as d3Max, min as d3Min } from 'd3-array';
7
+ import { max as d3Max } from 'd3-array';
8
8
  import { classNamesFunction, getId, find, memoizeFunction, getRTL, initializeComponentRef, } from '@fluentui/react/lib/Utilities';
9
9
  import { CartesianChart, } from '../../index';
10
10
  import { DirectionalHint } from '@fluentui/react/lib/Callout';
11
11
  import { formatDateToLocaleString } from '@fluentui/chart-utilities';
12
12
  import { EventsAnnotation } from './eventAnnotation/EventAnnotation';
13
- import { calloutData, ChartTypes, getXAxisType, XAxisTypes, tooltipOfAxislabels, Points, pointTypes, getTypeOfAxis, getNextColor, getColorFromToken, findNumericMinMaxOfY, createNumericYAxis, domainRangeOfDateForAreaLineVerticalBarChart, domainRangeOfNumericForAreaChart, createStringYAxis, areArraysEqual, getCurveFactory, isScatterPolarSeries, } from '../../utilities/index';
13
+ import { calloutData, ChartTypes, getXAxisType, XAxisTypes, tooltipOfAxislabels, Points, pointTypes, getTypeOfAxis, getNextColor, getColorFromToken, findNumericMinMaxOfY, createNumericYAxis, domainRangeOfDateForAreaLineScatterVerticalBarCharts, domainRangeOfNumericForAreaLineScatterCharts, createStringYAxis, areArraysEqual, getCurveFactory, isScatterPolarSeries, getDomainPaddingForMarkers, isPlottable, getRangeForScatterMarkerSize, } from '../../utilities/index';
14
14
  import { toImage } from '../../utilities/image-export-utils';
15
15
  import { renderScatterPolarCategoryLabels } from '../../utilities/scatterpolar-utils';
16
16
  var getClassNames = classNamesFunction();
@@ -63,11 +63,6 @@ var LineChartBase = /** @class */ (function (_super) {
63
63
  _this_1._yScalePrimary = '';
64
64
  _this_1.eventLabelHeight = 36;
65
65
  _this_1._isRTL = getRTL();
66
- _this_1._xMin = Number.NEGATIVE_INFINITY;
67
- _this_1._xMax = Number.POSITIVE_INFINITY;
68
- _this_1._xPadding = 0;
69
- _this_1._yPaddingPrimary = 0;
70
- _this_1._yPaddingSecondary = 0;
71
66
  _this_1._hasMarkersMode = false;
72
67
  _this_1._isXAxisDateType = false;
73
68
  _this_1._isScatterPolar = false;
@@ -77,17 +72,11 @@ var LineChartBase = /** @class */ (function (_super) {
77
72
  };
78
73
  _this_1._getDomainNRangeValues = function (points, margins, width, chartType, isRTL, xAxisType, barWidth, tickValues, shiftX) {
79
74
  var domainNRangeValue;
80
- if (_this_1._hasMarkersMode && xAxisType === XAxisTypes.NumericAxis) {
81
- domainNRangeValue = _this_1._getDomainNRangeValuesWithPadding(points, margins, width, isRTL);
82
- }
83
- else if (_this_1._hasMarkersMode && xAxisType === XAxisTypes.DateAxis) {
84
- domainNRangeValue = _this_1._getDomainNRangeValuesOfDateWithPadding(points, margins, width, isRTL, tickValues, chartType, barWidth);
85
- }
86
- else if (xAxisType === XAxisTypes.NumericAxis) {
87
- domainNRangeValue = domainRangeOfNumericForAreaChart(points, margins, width, isRTL);
75
+ if (xAxisType === XAxisTypes.NumericAxis) {
76
+ domainNRangeValue = domainRangeOfNumericForAreaLineScatterCharts(points, margins, width, isRTL, _this_1.props.xScaleType, _this_1._hasMarkersMode);
88
77
  }
89
78
  else if (xAxisType === XAxisTypes.DateAxis) {
90
- domainNRangeValue = domainRangeOfDateForAreaLineVerticalBarChart(points, margins, width, isRTL, tickValues, chartType, barWidth);
79
+ domainNRangeValue = domainRangeOfDateForAreaLineScatterVerticalBarCharts(points, margins, width, isRTL, tickValues, chartType, barWidth, _this_1._hasMarkersMode);
91
80
  }
92
81
  else {
93
82
  domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };
@@ -133,20 +122,14 @@ var LineChartBase = /** @class */ (function (_super) {
133
122
  };
134
123
  _this_1._getNumericMinMaxOfY = function (points, yAxisType, useSecondaryYScale) {
135
124
  // eslint-disable-next-line @typescript-eslint/no-shadow
136
- var _a = findNumericMinMaxOfY(points, yAxisType, useSecondaryYScale), startValue = _a.startValue, endValue = _a.endValue;
137
- var yPadding = 0;
125
+ var _a = findNumericMinMaxOfY(points, yAxisType, useSecondaryYScale, useSecondaryYScale ? _this_1.props.secondaryYScaleType : _this_1.props.yScaleType), startValue = _a.startValue, endValue = _a.endValue;
126
+ var yPadding = { start: 0, end: 0 };
138
127
  if (_this_1._hasMarkersMode) {
139
- yPadding = (endValue - startValue) * 0.1;
140
- if (useSecondaryYScale) {
141
- _this_1._yPaddingSecondary = yPadding;
142
- }
143
- else {
144
- _this_1._yPaddingPrimary = yPadding;
145
- }
128
+ yPadding = getDomainPaddingForMarkers(startValue, endValue, useSecondaryYScale ? _this_1.props.secondaryYScaleType : _this_1.props.yScaleType);
146
129
  }
147
130
  return {
148
- startValue: startValue - yPadding,
149
- endValue: endValue + yPadding,
131
+ startValue: startValue - yPadding.start,
132
+ endValue: endValue + yPadding.end,
150
133
  };
151
134
  };
152
135
  _this_1._getMargins = function (margins) {
@@ -612,71 +595,10 @@ var LineChartBase = /** @class */ (function (_super) {
612
595
  var yValue = point.yAxisCalloutData || point.y;
613
596
  return ((_a = point.callOutAccessibilityData) === null || _a === void 0 ? void 0 : _a.ariaLabel) || "".concat(xValue, ". ").concat(legend, ", ").concat(yValue, ".");
614
597
  };
615
- _this_1._getDomainNRangeValuesOfDateWithPadding = function (points, margins, width, isRTL, tickValues, chartType, barWidth) {
616
- if (tickValues === void 0) { tickValues = []; }
617
- _this_1._setXMinMaxValues(points);
618
- // Include tickValues if present
619
- var sDate = tickValues && tickValues.length > 0
620
- ? d3Min(__spreadArray(__spreadArray([], tickValues, true), [new Date(_this_1._xMin)], false))
621
- : new Date(_this_1._xMin);
622
- var lDate = tickValues && tickValues.length > 0
623
- ? d3Max(__spreadArray(__spreadArray([], tickValues, true), [new Date(_this_1._xMax)], false))
624
- : new Date(_this_1._xMax);
625
- // Calculate time-based padding (e.g. 10% of the date range)
626
- var dateRange = lDate.getTime() - sDate.getTime();
627
- var datePadding = _this_1._hasMarkersMode ? dateRange * 0.1 : 0;
628
- var paddedSDate = new Date(sDate.getTime() - datePadding);
629
- var paddedLDate = new Date(lDate.getTime() + datePadding);
630
- var rStartValue = margins.left;
631
- var rEndValue = width - margins.right;
632
- return isRTL
633
- ? {
634
- dStartValue: paddedLDate,
635
- dEndValue: paddedSDate,
636
- rStartValue: rStartValue,
637
- rEndValue: rEndValue,
638
- }
639
- : {
640
- dStartValue: paddedSDate,
641
- dEndValue: paddedLDate,
642
- rStartValue: rStartValue,
643
- rEndValue: rEndValue,
644
- };
645
- };
646
- _this_1._getDomainNRangeValuesWithPadding = function (points, margins, width, isRTL) {
647
- _this_1._setXMinMaxValues(points);
648
- if (_this_1._hasMarkersMode) {
649
- _this_1._xPadding = (_this_1._xMax - _this_1._xMin) * 0.1;
650
- }
651
- var rStartValue = margins.left;
652
- var rEndValue = width - margins.right;
653
- return isRTL
654
- ? {
655
- dStartValue: _this_1._xMax + _this_1._xPadding,
656
- dEndValue: _this_1._xMin - _this_1._xPadding,
657
- rStartValue: rStartValue,
658
- rEndValue: rEndValue,
659
- }
660
- : {
661
- dStartValue: _this_1._xMin - _this_1._xPadding,
662
- dEndValue: _this_1._xMax + _this_1._xPadding,
663
- rStartValue: rStartValue,
664
- rEndValue: rEndValue,
665
- };
666
- };
667
598
  _this_1._getChartTitle = function () {
668
599
  var _a = _this_1.props.data, chartTitle = _a.chartTitle, lineChartData = _a.lineChartData;
669
600
  return (chartTitle ? "".concat(chartTitle, ". ") : '') + "Line chart with ".concat((lineChartData === null || lineChartData === void 0 ? void 0 : lineChartData.length) || 0, " lines. ");
670
601
  };
671
- _this_1._setXMinMaxValues = function (points) {
672
- var getX = function (item) { return (_this_1._isXAxisDateType ? item.x : item.x); };
673
- var minVal = d3Min(points, function (point) { return d3Min(point.data, getX); });
674
- var maxVal = d3Max(points, function (point) { return d3Max(point.data, getX); });
675
- _this_1._xMin = _this_1._isXAxisDateType ? minVal.getTime() : minVal;
676
- _this_1._xMax = _this_1._isXAxisDateType ? maxVal.getTime() : maxVal;
677
- _this_1._xMin = _this_1._xMin === Number.NEGATIVE_INFINITY || !_this_1._xMin ? 0 : _this_1._xMin;
678
- _this_1._xMax = _this_1._xMax === Number.POSITIVE_INFINITY || !_this_1._xMax ? 0 : _this_1._xMax;
679
- };
680
602
  initializeComponentRef(_this_1);
681
603
  _this_1.state = {
682
604
  hoverXValue: '',
@@ -855,14 +777,6 @@ var LineChartBase = /** @class */ (function (_super) {
855
777
  : [];
856
778
  return (React.createElement(Legends, __assign({ legends: __spreadArray(__spreadArray([], legendDataItems, true), colorFillBarsLegendDataItems, true), enabledWrapLines: this.props.enabledLegendsWrapLines, overflowProps: this.props.legendsOverflowProps, focusZonePropsInHoverCard: this.props.focusZonePropsForLegendsInHoverCard, overflowText: this.props.legendsOverflowText }, (isLegendMultiSelectEnabled && { onLegendHoverCardLeave: this._onHoverCardHide }), this.props.legendProps, { ref: this._legendsRef })));
857
779
  };
858
- LineChartBase.prototype._getRangeForScatterMarkerSize = function (yScale, yPadding) {
859
- var extraXPixels = this._isRTL
860
- ? this._xAxisScale(this._xMax - this._xPadding) - this._xAxisScale(this._xMax)
861
- : this._xAxisScale(this._xMin + this._xPadding) - this._xAxisScale(this._xMin);
862
- var yMin = yScale.domain()[0];
863
- var extraYPixels = yScale(yMin) - yScale(yMin + yPadding);
864
- return Math.min(extraXPixels, extraYPixels);
865
- };
866
780
  // eslint-disable-next-line @typescript-eslint/no-deprecated
867
781
  LineChartBase.prototype._createLines = function (xElement, containerHeight) {
868
782
  var _this_1 = this;
@@ -895,27 +809,44 @@ var LineChartBase = /** @class */ (function (_super) {
895
809
  var activePoint = this_1.state.activePoint;
896
810
  var theme = this_1.props.theme;
897
811
  var verticaLineHeight = containerHeight - this_1.margins.bottom + 6;
898
- var yScale = this_1._points[i].useSecondaryYScale && this_1._yScaleSecondary ? this_1._yScaleSecondary : this_1._yScalePrimary;
899
- var yPadding = this_1._points[i].useSecondaryYScale && this_1._yScaleSecondary ? this_1._yPaddingSecondary : this_1._yPaddingPrimary;
900
- var extraMaxPixels = this_1._hasMarkersMode ? this_1._getRangeForScatterMarkerSize(yScale, yPadding) : 0;
812
+ var useSecondaryYScale = !!(this_1._points[i].useSecondaryYScale && this_1._yScaleSecondary);
813
+ var yScale = useSecondaryYScale ? this_1._yScaleSecondary : this_1._yScalePrimary;
814
+ var extraMaxPixels = this_1._hasMarkersMode
815
+ ? getRangeForScatterMarkerSize({
816
+ data: this_1._points,
817
+ xScale: this_1._xAxisScale,
818
+ yScalePrimary: this_1._yScalePrimary,
819
+ yScaleSecondary: this_1._yScaleSecondary,
820
+ useSecondaryYScale: useSecondaryYScale,
821
+ xScaleType: this_1.props.xScaleType,
822
+ yScaleType: this_1.props.yScaleType,
823
+ secondaryYScaleType: this_1.props.secondaryYScaleType,
824
+ })
825
+ : 0;
901
826
  if (this_1._points[i].data.length === 1) {
902
827
  var _18 = this_1._points[i].data[0], x1_1 = _18.x, y1 = _18.y, xAxisCalloutData_1 = _18.xAxisCalloutData, xAxisCalloutAccessibilityData_1 = _18.xAxisCalloutAccessibilityData;
903
- var circleId_1 = "".concat(this_1._circleId, "_").concat(i);
904
- var isLegendSelected = this_1._legendHighlighted(legendVal) || this_1._noLegendHighlighted() || this_1.state.isSelectedLegend;
905
- var currentMarkerSize = this_1._points[i].data[0].markerSize;
906
- var supportsTextMode = (_b = (_a = this_1._points[i].lineOptions) === null || _a === void 0 ? void 0 : _a.mode) === null || _b === void 0 ? void 0 : _b.includes('text');
907
- var text = this_1._points[i].data[0].text;
908
- pointsForLine.push(React.createElement(React.Fragment, { key: "".concat(circleId_1, "_fragment") },
909
- React.createElement("circle", __assign({ id: circleId_1, key: circleId_1, r: currentMarkerSize
910
- ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize
911
- : activePoint === circleId_1
912
- ? 5.5
913
- : 3.5, cx: this_1._xAxisScale(x1_1), cy: yScale(y1), fill: activePoint === circleId_1 ? theme.semanticColors.bodyBackground : lineColor, opacity: isLegendSelected ? 1 : 0.1, onMouseOver: this_1._handleHover.bind(this_1, x1_1, y1, verticaLineHeight, xAxisCalloutData_1, circleId_1, xAxisCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseMove: this_1._handleHover.bind(this_1, x1_1, y1, verticaLineHeight, xAxisCalloutData_1, circleId_1, xAxisCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseOut: this_1._handleMouseOut, strokeWidth: activePoint === circleId_1 ? DEFAULT_LINE_STROKE_SIZE : 0, stroke: activePoint === circleId_1 ? lineColor : '', role: "img", "aria-label": this_1._getAriaLabel(i, 0), "data-is-focusable": isLegendSelected, ref: function (e) {
914
- _this_1._refCallback(e, circleId_1);
915
- }, onFocus: function () { return _this_1._handleFocus(circleId_1, x1_1, xAxisCalloutData_1, circleId_1, xAxisCalloutAccessibilityData_1); }, onBlur: this_1._handleMouseOut }, this_1._getClickHandler(this_1._points[i].data[0].onDataPointClick))),
916
- !this_1._isScatterPolar && supportsTextMode && text && (React.createElement("text", { key: "".concat(circleId_1, "-label"), x: this_1._xAxisScale(x1_1), y: yScale(y1) +
917
- Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 3.5, 4) +
918
- 12, className: classNames.markerLabel, opacity: isLegendSelected ? 1 : 0.1 }, text))));
828
+ var xPoint = this_1._xAxisScale(x1_1);
829
+ var yPoint = yScale(y1);
830
+ if (isPlottable(xPoint, yPoint)) {
831
+ var circleId_1 = "".concat(this_1._circleId, "_").concat(i);
832
+ var isLegendSelected = this_1._legendHighlighted(legendVal) || this_1._noLegendHighlighted() || this_1.state.isSelectedLegend;
833
+ var currentMarkerSize = this_1._points[i].data[0].markerSize;
834
+ var supportsTextMode = (_b = (_a = this_1._points[i].lineOptions) === null || _a === void 0 ? void 0 : _a.mode) === null || _b === void 0 ? void 0 : _b.includes('text');
835
+ var text = this_1._points[i].data[0].text;
836
+ pointsForLine.push(React.createElement(React.Fragment, { key: "".concat(circleId_1, "_fragment") },
837
+ React.createElement("circle", __assign({ id: circleId_1, key: circleId_1, r: currentMarkerSize
838
+ ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize
839
+ : activePoint === circleId_1
840
+ ? 5.5
841
+ : 3.5, cx: xPoint, cy: yPoint, fill: activePoint === circleId_1 ? theme.semanticColors.bodyBackground : lineColor, opacity: isLegendSelected ? 1 : 0.1, onMouseOver: this_1._handleHover.bind(this_1, x1_1, y1, verticaLineHeight, xAxisCalloutData_1, circleId_1, xAxisCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseMove: this_1._handleHover.bind(this_1, x1_1, y1, verticaLineHeight, xAxisCalloutData_1, circleId_1, xAxisCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseOut: this_1._handleMouseOut, strokeWidth: activePoint === circleId_1 ? DEFAULT_LINE_STROKE_SIZE : 0, stroke: activePoint === circleId_1 ? lineColor : '', role: "img", "aria-label": this_1._getAriaLabel(i, 0), "data-is-focusable": isLegendSelected, ref: function (e) {
842
+ _this_1._refCallback(e, circleId_1);
843
+ }, onFocus: function () {
844
+ return _this_1._handleFocus(circleId_1, x1_1, xAxisCalloutData_1, circleId_1, xAxisCalloutAccessibilityData_1);
845
+ }, onBlur: this_1._handleMouseOut }, this_1._getClickHandler(this_1._points[i].data[0].onDataPointClick))),
846
+ !this_1._isScatterPolar && supportsTextMode && text && (React.createElement("text", { key: "".concat(circleId_1, "-label"), x: xPoint, y: yPoint +
847
+ Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 3.5, 4) +
848
+ 12, className: classNames.markerLabel, opacity: isLegendSelected ? 1 : 0.1 }, text))));
849
+ }
919
850
  }
920
851
  var gapIndex = 0;
921
852
  var gaps = (_d = (_c = this_1._points[i].gaps) === null || _c === void 0 ? void 0 : _c.sort(function (a, b) { return a.startIndex - b.startIndex; })) !== null && _d !== void 0 ? _d : [];
@@ -927,7 +858,8 @@ var LineChartBase = /** @class */ (function (_super) {
927
858
  .x(function (d) { return _this_1._xAxisScale(d[0]); })
928
859
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
929
860
  .y(function (d) { return yScale(d[1]); })
930
- .curve(getCurveFactory(lineCurve));
861
+ .curve(getCurveFactory(lineCurve))
862
+ .defined(function (d) { return isPlottable(_this_1._xAxisScale(d[0]), yScale(d[1])); });
931
863
  var lineId = "".concat(this_1._lineId, "_").concat(i);
932
864
  var borderId = "".concat(this_1._borderId, "_").concat(i);
933
865
  var strokeWidth = ((_f = this_1._points[i].lineOptions) === null || _f === void 0 ? void 0 : _f.strokeWidth) || this_1.props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;
@@ -966,43 +898,55 @@ var LineChartBase = /** @class */ (function (_super) {
966
898
  var circleId = "".concat(this_1._circleId, "_").concat(i, "_").concat(j);
967
899
  var _19 = this_1._points[i].data[j - 1], x1 = _19.x, y1 = _19.y, xAxisCalloutData = _19.xAxisCalloutData, xAxisCalloutAccessibilityData = _19.xAxisCalloutAccessibilityData;
968
900
  var _20 = this_1._points[i].data[j], x2 = _20.x, y2 = _20.y;
969
- var path = this_1._getPath(this_1._xAxisScale(x1), yScale(y1), circleId, j, false, this_1._points[i].index);
901
+ var xPoint1 = this_1._xAxisScale(x1);
902
+ var yPoint1 = yScale(y1);
903
+ var xPoint2 = this_1._xAxisScale(x2);
904
+ var yPoint2 = yScale(y2);
970
905
  var strokeWidth = ((_s = this_1._points[i].lineOptions) === null || _s === void 0 ? void 0 : _s.strokeWidth) || this_1.props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;
971
906
  var isLegendSelected = this_1._legendHighlighted(legendVal) || this_1._noLegendHighlighted() || this_1.state.isSelectedLegend;
972
907
  var currentPointHidden = this_1._points[i].hideNonActiveDots && activePoint !== circleId;
973
908
  var supportsTextMode = (_u = (_t = this_1._points[i].lineOptions) === null || _t === void 0 ? void 0 : _t.mode) === null || _u === void 0 ? void 0 : _u.includes('text');
974
909
  var text = this_1._points[i].data[j - 1].text;
975
910
  var currentMarkerSize = this_1._points[i].data[j - 1].markerSize;
976
- pointsForLine.push(((_w = (_v = this_1._points[i].lineOptions) === null || _v === void 0 ? void 0 : _v.mode) === null || _w === void 0 ? void 0 : _w.includes('markers')) || supportsTextMode ? (React.createElement(React.Fragment, null,
977
- React.createElement("circle", __assign({ id: circleId, key: circleId, r: currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, cx: this_1._xAxisScale(x1), cy: yScale(y1), "data-is-focusable": isLegendSelected, onMouseOver: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, yScale, legendVal, lineColor), onMouseMove: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, yScale, legendVal, lineColor), onMouseOut: this_1._handleMouseOut, onFocus: function () {
911
+ if (isPlottable(xPoint1, yPoint1)) {
912
+ var path = this_1._getPath(xPoint1, yPoint1, circleId, j, false, this_1._points[i].index);
913
+ pointsForLine.push(((_w = (_v = this_1._points[i].lineOptions) === null || _v === void 0 ? void 0 : _v.mode) === null || _w === void 0 ? void 0 : _w.includes('markers')) || supportsTextMode ? (React.createElement(React.Fragment, null,
914
+ React.createElement("circle", __assign({ id: circleId, key: circleId, r: currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, cx: xPoint1, cy: yPoint1, "data-is-focusable": isLegendSelected, onMouseOver: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, yScale, legendVal, lineColor), onMouseMove: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, yScale, legendVal, lineColor), onMouseOut: this_1._handleMouseOut, onFocus: function () {
915
+ return _this_1._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData);
916
+ }, onBlur: this_1._handleMouseOut }, this_1._getClickHandler(this_1._points[i].data[j - 1].onDataPointClick), { opacity: isLegendSelected && !currentPointHidden ? 1 : 0.01, fill: this_1._getPointFill(lineColor, circleId, j, false), stroke: lineColor, strokeWidth: strokeWidth, role: "img", "aria-label": (_x = this_1._points[i].data[j - 1].text) !== null && _x !== void 0 ? _x : this_1._getAriaLabel(i, j - 1) })),
917
+ !this_1._isScatterPolar && supportsTextMode && text && (React.createElement("text", { key: "".concat(circleId, "-label"), x: xPoint1, y: yPoint1 +
918
+ Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, 4) +
919
+ 12, className: classNames.markerLabel, opacity: isLegendSelected && !currentPointHidden ? 1 : 0.01 }, text)))) : (React.createElement("path", __assign({ id: circleId, key: circleId, d: path, "data-is-focusable": isLegendSelected, onMouseOver: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, yScale, legendVal, lineColor), onMouseMove: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, yScale, legendVal, lineColor), onMouseOut: this_1._handleMouseOut, onFocus: function () {
978
920
  return _this_1._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData);
979
- }, onBlur: this_1._handleMouseOut }, this_1._getClickHandler(this_1._points[i].data[j - 1].onDataPointClick), { opacity: isLegendSelected && !currentPointHidden ? 1 : 0.01, fill: this_1._getPointFill(lineColor, circleId, j, false), stroke: lineColor, strokeWidth: strokeWidth, role: "img", "aria-label": (_x = this_1._points[i].data[j - 1].text) !== null && _x !== void 0 ? _x : this_1._getAriaLabel(i, j - 1) })),
980
- !this_1._isScatterPolar && supportsTextMode && text && (React.createElement("text", { key: "".concat(circleId, "-label"), x: this_1._xAxisScale(x1), y: yScale(y1) +
981
- Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, 4) +
982
- 12, className: classNames.markerLabel, opacity: isLegendSelected && !currentPointHidden ? 1 : 0.01 }, text)))) : (React.createElement("path", __assign({ id: circleId, key: circleId, d: path, "data-is-focusable": isLegendSelected, onMouseOver: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, yScale, legendVal, lineColor), onMouseMove: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, yScale, legendVal, lineColor), onMouseOut: this_1._handleMouseOut, onFocus: function () { return _this_1._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData); }, onBlur: this_1._handleMouseOut }, this_1._getClickHandler(this_1._points[i].data[j - 1].onDataPointClick), { opacity: isLegendSelected && !currentPointHidden ? 1 : 0.01, fill: this_1._getPointFill(lineColor, circleId, j, false), stroke: lineColor, strokeWidth: strokeWidth, role: "img", "aria-label": this_1._getAriaLabel(i, j - 1) }))));
921
+ }, onBlur: this_1._handleMouseOut }, this_1._getClickHandler(this_1._points[i].data[j - 1].onDataPointClick), { opacity: isLegendSelected && !currentPointHidden ? 1 : 0.01, fill: this_1._getPointFill(lineColor, circleId, j, false), stroke: lineColor, strokeWidth: strokeWidth, role: "img", "aria-label": this_1._getAriaLabel(i, j - 1) }))));
922
+ }
983
923
  if (j + 1 === this_1._points[i].data.length) {
984
924
  // If this is last point of the line segment.
985
925
  var lastCircleId_1 = "".concat(circleId).concat(j, "L");
986
926
  var hiddenHoverCircleId = "".concat(circleId).concat(j, "D");
987
927
  var lastPointHidden = this_1._points[i].hideNonActiveDots && activePoint !== lastCircleId_1;
988
- path = this_1._getPath(this_1._xAxisScale(x2), yScale(y2), lastCircleId_1, j, true, this_1._points[i].index);
989
928
  var _21 = this_1._points[i].data[j], lastCirlceXCallout_1 = _21.xAxisCalloutData, lastCirlceXCalloutAccessibilityData_1 = _21.xAxisCalloutAccessibilityData;
990
929
  currentMarkerSize = this_1._points[i].data[j].markerSize;
991
930
  var lastSupportsTextMode = (_z = (_y = this_1._points[i].lineOptions) === null || _y === void 0 ? void 0 : _y.mode) === null || _z === void 0 ? void 0 : _z.includes('text');
992
931
  var lastText = this_1._points[i].data[j].text;
993
- pointsForLine.push(React.createElement(React.Fragment, { key: "".concat(lastCircleId_1, "_container") },
994
- ((_1 = (_0 = this_1._points[i].lineOptions) === null || _0 === void 0 ? void 0 : _0.mode) === null || _1 === void 0 ? void 0 : _1.includes('markers')) || lastSupportsTextMode ? (React.createElement(React.Fragment, null,
995
- React.createElement("circle", __assign({ id: lastCircleId_1, key: lastCircleId_1, r: currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, cx: this_1._xAxisScale(x2), cy: yScale(y2), "data-is-focusable": isLegendSelected, onMouseOver: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseMove: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseOut: this_1._handleMouseOut, onFocus: function () {
932
+ if (isPlottable(xPoint2, yPoint2)) {
933
+ var path = this_1._getPath(xPoint2, yPoint2, lastCircleId_1, j, true, this_1._points[i].index);
934
+ pointsForLine.push(React.createElement(React.Fragment, { key: "".concat(lastCircleId_1, "_container") },
935
+ ((_1 = (_0 = this_1._points[i].lineOptions) === null || _0 === void 0 ? void 0 : _0.mode) === null || _1 === void 0 ? void 0 : _1.includes('markers')) || lastSupportsTextMode ? (React.createElement(React.Fragment, null,
936
+ React.createElement("circle", __assign({ id: lastCircleId_1, key: lastCircleId_1, r: currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, cx: xPoint2, cy: yPoint2, "data-is-focusable": isLegendSelected, onMouseOver: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseMove: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseOut: this_1._handleMouseOut, onFocus: function () {
937
+ return _this_1._handleFocus(lineId, x2, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1);
938
+ }, onBlur: this_1._handleMouseOut }, this_1._getClickHandler(this_1._points[i].data[j].onDataPointClick), { opacity: isLegendSelected && !lastPointHidden ? 1 : 0.01, fill: this_1._getPointFill(lineColor, lastCircleId_1, j, true), stroke: lineColor, strokeWidth: strokeWidth, role: "img", "aria-label": (_2 = this_1._points[i].data[j].text) !== null && _2 !== void 0 ? _2 : this_1._getAriaLabel(i, j) })),
939
+ !this_1._isScatterPolar && lastSupportsTextMode && lastText && (React.createElement("text", { key: "".concat(lastCircleId_1, "-label"), x: xPoint2, y: yPoint2 +
940
+ Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, 4) +
941
+ 12, className: classNames.markerLabel, opacity: isLegendSelected && !currentPointHidden ? 1 : 0.01 }, text)))) : (React.createElement("path", __assign({ id: lastCircleId_1, key: lastCircleId_1, d: path, "data-is-focusable": isLegendSelected, onMouseOver: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseMove: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseOut: this_1._handleMouseOut, onFocus: function () {
996
942
  return _this_1._handleFocus(lineId, x2, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1);
997
- }, onBlur: this_1._handleMouseOut }, this_1._getClickHandler(this_1._points[i].data[j].onDataPointClick), { opacity: isLegendSelected && !lastPointHidden ? 1 : 0.01, fill: this_1._getPointFill(lineColor, lastCircleId_1, j, true), stroke: lineColor, strokeWidth: strokeWidth, role: "img", "aria-label": (_2 = this_1._points[i].data[j].text) !== null && _2 !== void 0 ? _2 : this_1._getAriaLabel(i, j) })),
998
- !this_1._isScatterPolar && lastSupportsTextMode && lastText && (React.createElement("text", { key: "".concat(lastCircleId_1, "-label"), x: this_1._xAxisScale(x2), y: yScale(y2) +
999
- Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, 4) +
1000
- 12, className: classNames.markerLabel, opacity: isLegendSelected && !currentPointHidden ? 1 : 0.01 }, text)))) : (React.createElement("path", __assign({ id: lastCircleId_1, key: lastCircleId_1, d: path, "data-is-focusable": isLegendSelected, onMouseOver: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseMove: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseOut: this_1._handleMouseOut, onFocus: function () {
1001
- return _this_1._handleFocus(lineId, x2, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1);
1002
- }, onBlur: this_1._handleMouseOut }, this_1._getClickHandler(this_1._points[i].data[j].onDataPointClick), { opacity: isLegendSelected && !lastPointHidden ? 1 : 0.01, fill: this_1._getPointFill(lineColor, lastCircleId_1, j, true), stroke: lineColor, strokeWidth: strokeWidth, role: "img", "aria-label": this_1._getAriaLabel(i, j) }))),
1003
- React.createElement("circle", { id: hiddenHoverCircleId, key: hiddenHoverCircleId, r: 8, cx: this_1._xAxisScale(x2), cy: yScale(y2), opacity: 0, width: 0, onMouseOver: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseMove: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseOut: this_1._handleMouseOut, strokeWidth: 0, focusable: false, onBlur: this_1._handleMouseOut })));
943
+ }, onBlur: this_1._handleMouseOut }, this_1._getClickHandler(this_1._points[i].data[j].onDataPointClick), { opacity: isLegendSelected && !lastPointHidden ? 1 : 0.01, fill: this_1._getPointFill(lineColor, lastCircleId_1, j, true), stroke: lineColor, strokeWidth: strokeWidth, role: "img", "aria-label": this_1._getAriaLabel(i, j) }))),
944
+ React.createElement("circle", { id: hiddenHoverCircleId, key: hiddenHoverCircleId, r: 8, cx: xPoint2, cy: yPoint2, opacity: 0, width: 0, onMouseOver: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseMove: this_1._handleHover.bind(this_1, x2, y2, verticaLineHeight, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1, yScale, legendVal, lineColor), onMouseOut: this_1._handleMouseOut, strokeWidth: 0, focusable: false, onBlur: this_1._handleMouseOut })));
945
+ }
1004
946
  }
1005
- if (!this_1._hasMarkersMode || ((_4 = (_3 = this_1._points[i].lineOptions) === null || _3 === void 0 ? void 0 : _3.mode) === null || _4 === void 0 ? void 0 : _4.includes('lines'))) {
947
+ if (isPlottable(xPoint1, yPoint1) &&
948
+ isPlottable(xPoint2, yPoint2) &&
949
+ (!this_1._hasMarkersMode || ((_4 = (_3 = this_1._points[i].lineOptions) === null || _3 === void 0 ? void 0 : _3.mode) === null || _4 === void 0 ? void 0 : _4.includes('lines')))) {
1006
950
  if (isLegendSelected) {
1007
951
  // don't draw line if it is in a gap
1008
952
  if (!isInGap) {
@@ -1010,16 +954,16 @@ var LineChartBase = /** @class */ (function (_super) {
1010
954
  ? Number.parseFloat(this_1._points[i].lineOptions.lineBorderWidth.toString())
1011
955
  : 0;
1012
956
  if (lineBorderWidth > 0) {
1013
- bordersForLine.push(React.createElement("line", { id: borderId, key: borderId, x1: this_1._xAxisScale(x1), y1: yScale(y1), x2: this_1._xAxisScale(x2), y2: yScale(y2), strokeLinecap: (_7 = (_6 = this_1._points[i].lineOptions) === null || _6 === void 0 ? void 0 : _6.strokeLinecap) !== null && _7 !== void 0 ? _7 : 'round', strokeWidth: Number.parseFloat(strokeWidth.toString()) + lineBorderWidth, stroke: ((_8 = this_1._points[i].lineOptions) === null || _8 === void 0 ? void 0 : _8.lineBorderColor) || theme.semanticColors.bodyBackground, opacity: 1 }));
957
+ bordersForLine.push(React.createElement("line", { id: borderId, key: borderId, x1: xPoint1, y1: yPoint1, x2: xPoint2, y2: yPoint2, strokeLinecap: (_7 = (_6 = this_1._points[i].lineOptions) === null || _6 === void 0 ? void 0 : _6.strokeLinecap) !== null && _7 !== void 0 ? _7 : 'round', strokeWidth: Number.parseFloat(strokeWidth.toString()) + lineBorderWidth, stroke: ((_8 = this_1._points[i].lineOptions) === null || _8 === void 0 ? void 0 : _8.lineBorderColor) || theme.semanticColors.bodyBackground, opacity: 1 }));
1014
958
  }
1015
- linesForLine.push(React.createElement("line", __assign({ id: lineId, key: lineId, x1: this_1._xAxisScale(x1), y1: yScale(y1), x2: this_1._xAxisScale(x2), y2: yScale(y2), strokeWidth: strokeWidth, ref: function (e) {
959
+ linesForLine.push(React.createElement("line", __assign({ id: lineId, key: lineId, x1: xPoint1, y1: yPoint1, x2: xPoint2, y2: yPoint2, strokeWidth: strokeWidth, ref: function (e) {
1016
960
  _this_1._refCallback(e, lineId);
1017
961
  }, onMouseOver: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, yScale, legendVal, lineColor), onMouseMove: this_1._handleHover.bind(this_1, x1, y1, verticaLineHeight, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData, yScale, legendVal, lineColor), onMouseOut: this_1._handleMouseOut, stroke: lineColor, strokeLinecap: (_10 = (_9 = this_1._points[i].lineOptions) === null || _9 === void 0 ? void 0 : _9.strokeLinecap) !== null && _10 !== void 0 ? _10 : 'round', strokeDasharray: (_11 = this_1._points[i].lineOptions) === null || _11 === void 0 ? void 0 : _11.strokeDasharray, strokeDashoffset: (_12 = this_1._points[i].lineOptions) === null || _12 === void 0 ? void 0 : _12.strokeDashoffset, opacity: 1 }, this_1._getClickHandler(this_1._points[i].onLineClick))));
1018
962
  }
1019
963
  }
1020
964
  else {
1021
965
  if (!isInGap) {
1022
- linesForLine.push(React.createElement("line", { id: lineId, key: lineId, x1: this_1._xAxisScale(x1), y1: yScale(y1), x2: this_1._xAxisScale(x2), y2: yScale(y2), strokeWidth: strokeWidth, stroke: lineColor, strokeLinecap: (_14 = (_13 = this_1._points[i].lineOptions) === null || _13 === void 0 ? void 0 : _13.strokeLinecap) !== null && _14 !== void 0 ? _14 : 'round', strokeDasharray: (_15 = this_1._points[i].lineOptions) === null || _15 === void 0 ? void 0 : _15.strokeDasharray, strokeDashoffset: (_16 = this_1._points[i].lineOptions) === null || _16 === void 0 ? void 0 : _16.strokeDashoffset, opacity: 0.1 }));
966
+ linesForLine.push(React.createElement("line", { id: lineId, key: lineId, x1: xPoint1, y1: yPoint1, x2: xPoint2, y2: yPoint2, strokeWidth: strokeWidth, stroke: lineColor, strokeLinecap: (_14 = (_13 = this_1._points[i].lineOptions) === null || _13 === void 0 ? void 0 : _13.strokeLinecap) !== null && _14 !== void 0 ? _14 : 'round', strokeDasharray: (_15 = this_1._points[i].lineOptions) === null || _15 === void 0 ? void 0 : _15.strokeDasharray, strokeDashoffset: (_16 = this_1._points[i].lineOptions) === null || _16 === void 0 ? void 0 : _16.strokeDashoffset, opacity: 0.1 }));
1023
967
  }
1024
968
  }
1025
969
  }