@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.
- package/CHANGELOG.json +55 -1
- package/CHANGELOG.md +24 -2
- package/bundle-size/ScatterChart.fixture.js +7 -0
- package/dist/react-charting.d.ts +29 -4
- package/dist/react-charting.js +1 -1
- package/dist/react-charting.min.js +1 -1
- package/etc/react-charting.api.md +10 -4
- package/lib/components/AreaChart/AreaChart.base.js +3 -3
- package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.base.js +4 -4
- package/lib/components/CommonComponents/CartesianChart.base.js.map +1 -1
- package/lib/components/CommonComponents/CartesianChart.types.d.ts +18 -3
- package/lib/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js +2 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +10 -0
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +187 -11
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.base.js +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.styles.js +1 -8
- package/lib/components/HeatMapChart/HeatMapChart.styles.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.types.d.ts +2 -2
- package/lib/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib/components/LineChart/LineChart.base.d.ts +0 -9
- package/lib/components/LineChart/LineChart.base.js +82 -138
- package/lib/components/LineChart/LineChart.base.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.base.js +37 -62
- package/lib/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js +2 -2
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +2 -2
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js.map +1 -1
- package/lib/types/IDataPoint.d.ts +9 -0
- package/lib/types/IDataPoint.js.map +1 -1
- package/lib/utilities/utilities.d.ts +29 -28
- package/lib/utilities/utilities.js +127 -110
- package/lib/utilities/utilities.js.map +1 -1
- package/lib-amd/components/AreaChart/AreaChart.base.js +2 -2
- package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib-amd/components/CommonComponents/CartesianChart.base.js +4 -4
- package/lib-amd/components/CommonComponents/CartesianChart.base.js.map +1 -1
- package/lib-amd/components/CommonComponents/CartesianChart.types.d.ts +18 -3
- package/lib-amd/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +2 -1
- package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +10 -0
- package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +188 -11
- package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-amd/components/HeatMapChart/HeatMapChart.base.js +1 -1
- package/lib-amd/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib-amd/components/HeatMapChart/HeatMapChart.styles.js +1 -8
- package/lib-amd/components/HeatMapChart/HeatMapChart.styles.js.map +1 -1
- package/lib-amd/components/HeatMapChart/HeatMapChart.types.d.ts +2 -2
- package/lib-amd/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib-amd/components/LineChart/LineChart.base.d.ts +0 -9
- package/lib-amd/components/LineChart/LineChart.base.js +80 -136
- package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-amd/components/ScatterChart/ScatterChart.base.js +35 -60
- package/lib-amd/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +1 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +1 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-amd/index.d.ts +1 -1
- package/lib-amd/index.js.map +1 -1
- package/lib-amd/types/IDataPoint.d.ts +9 -0
- package/lib-amd/types/IDataPoint.js.map +1 -1
- package/lib-amd/utilities/utilities.d.ts +29 -28
- package/lib-amd/utilities/utilities.js +133 -113
- package/lib-amd/utilities/utilities.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.base.js +2 -2
- package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.base.js +4 -4
- package/lib-commonjs/components/CommonComponents/CartesianChart.base.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.d.ts +18 -3
- package/lib-commonjs/components/CommonComponents/CartesianChart.types.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +2 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +10 -0
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +188 -11
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.styles.js +1 -8
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.styles.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.d.ts +2 -2
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.types.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.base.d.ts +0 -9
- package/lib-commonjs/components/LineChart/LineChart.base.js +80 -136
- package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.base.js +35 -60
- package/lib-commonjs/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-commonjs/index.d.ts +1 -1
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/types/IDataPoint.d.ts +9 -0
- package/lib-commonjs/types/IDataPoint.js.map +1 -1
- package/lib-commonjs/utilities/utilities.d.ts +29 -28
- package/lib-commonjs/utilities/utilities.js +134 -114
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/package.json +4 -4
- package/src/components/CommonComponents/CartesianChart.types.ts +22 -2
- 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
|
|
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,
|
|
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 (
|
|
81
|
-
domainNRangeValue =
|
|
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 =
|
|
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
|
|
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
|
|
899
|
-
var
|
|
900
|
-
var extraMaxPixels = this_1._hasMarkersMode
|
|
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
|
|
904
|
-
var
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
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
|
|
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
|
-
|
|
977
|
-
|
|
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":
|
|
980
|
-
|
|
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
|
-
|
|
994
|
-
|
|
995
|
-
|
|
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":
|
|
998
|
-
|
|
999
|
-
|
|
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 (
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
}
|