@fluentui/react-charting 5.25.11 → 5.25.12

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 (111) hide show
  1. package/CHANGELOG.json +68 -1
  2. package/CHANGELOG.md +17 -2
  3. package/dist/react-charting.d.ts +2 -0
  4. package/dist/react-charting.js +1 -1
  5. package/dist/react-charting.min.js +1 -1
  6. package/lib/components/AreaChart/AreaChart.base.js +3 -3
  7. package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
  8. package/lib/components/DeclarativeChart/DeclarativeChart.js +1 -1
  9. package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  10. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +5 -1
  11. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +8 -8
  12. package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  13. package/lib/components/FunnelChart/FunnelChart.base.js +1 -1
  14. package/lib/components/FunnelChart/FunnelChart.base.js.map +1 -1
  15. package/lib/components/GanttChart/GanttChart.base.js +4 -4
  16. package/lib/components/GanttChart/GanttChart.base.js.map +1 -1
  17. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +7 -7
  18. package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  19. package/lib/components/HeatMapChart/HeatMapChart.base.js +5 -5
  20. package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  21. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +3 -3
  22. package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  23. package/lib/components/LineChart/LineChart.base.js +1 -1
  24. package/lib/components/LineChart/LineChart.base.js.map +1 -1
  25. package/lib/components/PolarChart/PolarChart.base.js +3 -3
  26. package/lib/components/PolarChart/PolarChart.base.js.map +1 -1
  27. package/lib/components/PolarChart/PolarChart.utils.js +1 -1
  28. package/lib/components/PolarChart/PolarChart.utils.js.map +1 -1
  29. package/lib/components/SankeyChart/SankeyChart.base.js +7 -7
  30. package/lib/components/SankeyChart/SankeyChart.base.js.map +1 -1
  31. package/lib/components/ScatterChart/ScatterChart.base.js +2 -2
  32. package/lib/components/ScatterChart/ScatterChart.base.js.map +1 -1
  33. package/lib/components/VerticalBarChart/VerticalBarChart.base.js +3 -3
  34. package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  35. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +2 -2
  36. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  37. package/lib/types/IDataPoint.d.ts +2 -0
  38. package/lib/types/IDataPoint.js.map +1 -1
  39. package/lib/utilities/utilities.js +2 -2
  40. package/lib/utilities/utilities.js.map +1 -1
  41. package/lib-amd/components/AreaChart/AreaChart.base.js +3 -3
  42. package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
  43. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +1 -1
  44. package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  45. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +5 -1
  46. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +14 -13
  47. package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  48. package/lib-amd/components/FunnelChart/FunnelChart.base.js +1 -1
  49. package/lib-amd/components/FunnelChart/FunnelChart.base.js.map +1 -1
  50. package/lib-amd/components/GanttChart/GanttChart.base.js +4 -4
  51. package/lib-amd/components/GanttChart/GanttChart.base.js.map +1 -1
  52. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +7 -7
  53. package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  54. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js +5 -5
  55. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  56. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +3 -3
  57. package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  58. package/lib-amd/components/LineChart/LineChart.base.js +1 -1
  59. package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
  60. package/lib-amd/components/PolarChart/PolarChart.base.js +3 -3
  61. package/lib-amd/components/PolarChart/PolarChart.base.js.map +1 -1
  62. package/lib-amd/components/PolarChart/PolarChart.utils.js +1 -1
  63. package/lib-amd/components/PolarChart/PolarChart.utils.js.map +1 -1
  64. package/lib-amd/components/SankeyChart/SankeyChart.base.js +7 -7
  65. package/lib-amd/components/SankeyChart/SankeyChart.base.js.map +1 -1
  66. package/lib-amd/components/ScatterChart/ScatterChart.base.js +2 -2
  67. package/lib-amd/components/ScatterChart/ScatterChart.base.js.map +1 -1
  68. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +3 -3
  69. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  70. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +2 -2
  71. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  72. package/lib-amd/types/IDataPoint.d.ts +2 -0
  73. package/lib-amd/types/IDataPoint.js.map +1 -1
  74. package/lib-amd/utilities/utilities.js +2 -2
  75. package/lib-amd/utilities/utilities.js.map +1 -1
  76. package/lib-commonjs/components/AreaChart/AreaChart.base.js +3 -3
  77. package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
  78. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +1 -1
  79. package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
  80. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.d.ts +5 -1
  81. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +14 -13
  82. package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
  83. package/lib-commonjs/components/FunnelChart/FunnelChart.base.js +1 -1
  84. package/lib-commonjs/components/FunnelChart/FunnelChart.base.js.map +1 -1
  85. package/lib-commonjs/components/GanttChart/GanttChart.base.js +4 -4
  86. package/lib-commonjs/components/GanttChart/GanttChart.base.js.map +1 -1
  87. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +7 -7
  88. package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
  89. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js +5 -5
  90. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  91. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +3 -3
  92. package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
  93. package/lib-commonjs/components/LineChart/LineChart.base.js +1 -1
  94. package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
  95. package/lib-commonjs/components/PolarChart/PolarChart.base.js +3 -3
  96. package/lib-commonjs/components/PolarChart/PolarChart.base.js.map +1 -1
  97. package/lib-commonjs/components/PolarChart/PolarChart.utils.js +1 -1
  98. package/lib-commonjs/components/PolarChart/PolarChart.utils.js.map +1 -1
  99. package/lib-commonjs/components/SankeyChart/SankeyChart.base.js +7 -7
  100. package/lib-commonjs/components/SankeyChart/SankeyChart.base.js.map +1 -1
  101. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js +2 -2
  102. package/lib-commonjs/components/ScatterChart/ScatterChart.base.js.map +1 -1
  103. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +3 -3
  104. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  105. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +2 -2
  106. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  107. package/lib-commonjs/types/IDataPoint.d.ts +2 -0
  108. package/lib-commonjs/types/IDataPoint.js.map +1 -1
  109. package/lib-commonjs/utilities/utilities.js +2 -2
  110. package/lib-commonjs/utilities/utilities.js.map +1 -1
  111. package/package.json +17 -17
@@ -234,7 +234,7 @@ var AreaChartBase = /** @class */ (function (_super) {
234
234
  opacity_1.push(singleChartPoint.opacity || 1);
235
235
  allChartPoints_1.push.apply(allChartPoints_1, singleChartPoint.data);
236
236
  });
237
- var mapOfXvalToListOfDataPoints_1 = {};
237
+ var mapOfXvalToListOfDataPoints_1 = Object.create(null);
238
238
  allChartPoints_1.forEach(function (dataPoint) {
239
239
  var xValue = dataPoint.x instanceof Date ? dataPoint.x.toLocaleString() : dataPoint.x;
240
240
  // map of x value to the list of data points which share the same x value .
@@ -342,7 +342,7 @@ var AreaChartBase = /** @class */ (function (_super) {
342
342
  _this._createDatasetForXCoordinateWithMultipleYValues = function (allChartPoints) {
343
343
  var dataSet = [];
344
344
  // Group data points by x-axis value
345
- var groupedData = {};
345
+ var groupedData = Object.create(null);
346
346
  allChartPoints.forEach(function (dataPoint) {
347
347
  var xValue = dataPoint.x instanceof Date ? dataPoint.x.toLocaleString() : dataPoint.x;
348
348
  if (!groupedData[xValue]) {
@@ -814,7 +814,7 @@ var AreaChartBase = /** @class */ (function (_super) {
814
814
  }
815
815
  for (var _i = 0, lineChartData_1 = lineChartData; _i < lineChartData_1.length; _i++) {
816
816
  var item = lineChartData_1[_i];
817
- var xValueMap = {};
817
+ var xValueMap = Object.create(null);
818
818
  for (var _a = 0, _b = item.data; _a < _b.length; _a++) {
819
819
  var point = _b[_a];
820
820
  var xValue = point.x instanceof Date ? point.x.toLocaleString() : point.x;
@@ -1 +1 @@
1
- {"version":3,"file":"AreaChart.base.js","sourceRoot":"../src/","sources":["components/AreaChart/AreaChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, bisector } from 'd3-array';\nimport { pointer } from 'd3-selection';\nimport { area as d3Area, stack as d3Stack, curveMonotoneX as d3CurveBasis, line as d3Line } from 'd3-shape';\nimport { getId, getRTL, initializeComponentRef, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ICustomizedCalloutData,\n IAreaChartProps,\n IBasestate,\n ILineChartDataPoint,\n ILineChartPoints,\n IChildProps,\n IMargins,\n} from '../../index';\nimport { warnDeprecations } from '@fluentui/react/lib/Utilities';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport {\n calloutData,\n getXAxisType,\n ChartTypes,\n XAxisTypes,\n getTypeOfAxis,\n getNextColor,\n getColorFromToken,\n findNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfNumericForAreaLineScatterCharts,\n domainRangeOfDateForAreaLineScatterVerticalBarCharts,\n createStringYAxis,\n getSecureProps,\n areArraysEqual,\n getCurveFactory,\n YAxisType,\n findCalloutPoints,\n} from '../../utilities/index';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\nimport { ScaleLinear } from 'd3-scale';\nimport type { JSXElement } from '@fluentui/utilities';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bisect = bisector((d: any) => d.x).left;\n\nconst COMPONENT_NAME = 'AREA CHART';\n\nenum InterceptVisibility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nexport interface IAreaChartAreaPoint {\n xVal: string | number;\n values: IAreaChartDataSetPoint;\n}\nexport interface IAreaChartDataSetPoint {\n [key: string]: number | string | number[];\n}\nexport interface IDPointType {\n values: { 0: number; 1: number; data: {} };\n xVal: number | Date;\n}\nexport interface IMapXToDataSet {\n [key: string]: ILineChartDataPoint[];\n [key: number]: ILineChartDataPoint[];\n}\n\n//by default d3-shape 3.2.0 limits the< path> data point precision to 3 digits(d3/d3-path#10)\n\nexport interface IAreaChartState extends IBasestate {\n lineXValue: number;\n displayOfLine: InterceptVisibility;\n isCircleClicked: boolean;\n dataPointCalloutProps?: ICustomizedCalloutData;\n stackCalloutProps?: ICustomizedCalloutData;\n nearestCircleToHighlight: number | string | Date | null;\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n isShowCalloutPending: boolean;\n /** focused point */\n activePoint: string;\n selectedLegends: string[];\n}\n\ninterface ILineChartDataPointWithLegend extends ILineChartDataPoint {\n /**\n * Legend text for the datapoint in the chart\n */\n legend?: string;\n}\n\ntype ILineChartPointsWithoutData = Omit<ILineChartPoints, 'data'>;\ninterface ILineChartPointsWithLegend extends ILineChartPointsWithoutData {\n data: ILineChartDataPointWithLegend[];\n}\n\nexport class AreaChartBase extends React.Component<IAreaChartProps, IAreaChartState> implements IChart {\n public static defaultProps: Partial<IAreaChartProps> = {\n useUTC: true,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _calloutPoints: any;\n private _createSet: (data: ILineChartPoints[]) => {\n colors: string[];\n opacity: number[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n calloutPoints: any;\n };\n private _colors: string[];\n private _opacity: number[];\n private _uniqueIdForGraph: string;\n private _verticalLineId: string;\n private _circleId: string;\n private _uniqueCallOutID: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _data: any;\n\n private _chart: JSXElement[];\n private margins: IMargins;\n private _rectId: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisRectScale: any;\n // determines if the given area chart has multiple stacked bar charts\n private _isMultiStackChart: boolean;\n private _highlightedCircleId: string;\n //enableComputationOptimization is used for optimized code to group data points by x value\n //from O(n^2) to O(n) using a map.\n private _enableComputationOptimization: boolean;\n private _firstRenderOptimization: boolean;\n private _emptyChartId: string;\n private _cartesianChartRef: React.RefObject<IChart | null>;\n private _legendsRef: React.RefObject<ILegendContainer | null>;\n private _containsSecondaryYAxis = false;\n private _hasDuplicateXValues = false;\n private _hasMissingXValues = false;\n\n public constructor(props: IAreaChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this._createSet = memoizeFunction(this._createDataSet);\n this.state = {\n selectedLegends: props.legendProps?.selectedLegends || [],\n activeLegend: undefined,\n hoverXValue: '',\n isCalloutVisible: false,\n refSelected: null,\n YValueHover: [],\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n nearestCircleToHighlight: null,\n isShowCalloutPending: false,\n activePoint: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n showYAxisGridLines: 'Dont use this property. Lines are drawn by default',\n });\n this._hasMissingXValues = this._containsMissingXValues();\n this._uniqueIdForGraph = getId('areaChart_');\n this._verticalLineId = getId('verticalLine_');\n this._circleId = getId('circle');\n this._rectId = getId('rectangle');\n this._enableComputationOptimization = true;\n this._firstRenderOptimization = true;\n this._emptyChartId = getId('_AreaChart_empty');\n this._cartesianChartRef = React.createRef();\n this._legendsRef = React.createRef();\n }\n\n public componentDidUpdate(prevProps: IAreaChartProps): void {\n if (!areArraysEqual(prevProps.legendProps?.selectedLegends, this.props.legendProps?.selectedLegends)) {\n this.setState({\n selectedLegends: this.props.legendProps?.selectedLegends || [],\n });\n }\n\n if (this.state.isShowCalloutPending) {\n this.setState({\n refSelected: `#${this._highlightedCircleId}`,\n isCalloutVisible: true,\n isShowCalloutPending: false,\n });\n }\n }\n\n public render(): JSXElement {\n if (!this._isChartEmpty()) {\n const { lineChartData } = this.props.data;\n const points = this._addDefaultColors(lineChartData);\n this._hasDuplicateXValues = this._xCoordinateContainsMultipleY();\n this._containsSecondaryYAxis =\n !!this.props.secondaryYScaleOptions && points.some(point => point.useSecondaryYScale);\n const { colors, opacity, data, calloutPoints } = this._createSet(points);\n this._calloutPoints = calloutPoints;\n const isXAxisDateType = getXAxisType(points);\n this._colors = colors;\n this._opacity = opacity;\n this._data = data.renderData;\n\n const legends: JSXElement = this._getLegendData(points);\n\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n const calloutProps = {\n target: this.state.refSelected,\n isCalloutVisible: this.state.isCalloutVisible && !this._hasDuplicateXValues && !this._hasMissingXValues,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n id: `toolTip${this._uniqueCallOutID}`,\n gapSpace: 15,\n isBeakVisible: false,\n onDismiss: this._closeCallout,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: this.state.xAxisCalloutAccessibilityData,\n ...this.props.calloutProps,\n };\n return (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={points}\n chartType={ChartTypes.AreaChart}\n calloutProps={calloutProps}\n legendBars={legends}\n createYAxis={createNumericYAxis}\n isCalloutForStack\n xAxisType={isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n tickParams={tickParams}\n maxOfYVal={data.maxOfYVal}\n getGraphData={this._getGraphData}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n getmargins={this._getMargins}\n getMinMaxOfYAxis={this._getMinMaxOfYAxis}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n enableFirstRenderOptimization={this.props.enablePerfOptimization && this._firstRenderOptimization}\n ref={this._cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n\n children={(props: IChildProps) => {\n this._xAxisRectScale = props.xScale;\n const ticks = this._xAxisRectScale.ticks();\n const width1 = this._xAxisRectScale(ticks[ticks.length - 1]);\n const rectHeight = props.containerHeight! - this.margins.top!;\n return (\n <>\n <g>\n <rect\n id={this._rectId}\n width={width1}\n height={rectHeight}\n fill={'transparent'}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n </g>\n <g>{this._chart}</g>\n </>\n );\n }}\n />\n );\n }\n return (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n public get chartContainer(): HTMLElement | null {\n return this._cartesianChartRef.current?.chartContainer || null;\n }\n\n public toImage = (opts?: IImageExportOptions): Promise<string> => {\n return exportChartsAsImage(\n [{ container: this._cartesianChartRef.current?.chartContainer }],\n this.props.hideLegend ? undefined : this._legendsRef.current?.toSVG,\n getRTL(),\n opts,\n );\n };\n\n private _getMinMaxOfYAxis = (points: ILineChartPoints[], yAxisType: YAxisType, useSecondaryYScale: boolean) =>\n findNumericMinMaxOfY(points, yAxisType, useSecondaryYScale);\n\n private _getDomainNRangeValues = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n ) => {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfNumericForAreaLineScatterCharts(points, margins, width, isRTL);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineScatterVerticalBarCharts(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else {\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n return domainNRangeValue;\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _onRectMouseMove = (mouseEvent: React.MouseEvent<SVGRectElement | SVGPathElement | SVGCircleElement>) => {\n mouseEvent.persist();\n const { data } = this.props;\n const { lineChartData } = data;\n // This will get the value of the X when mouse is on the chart\n const xOffset = this._xAxisRectScale.invert(pointer(mouseEvent)[0], document.getElementById(this._rectId)!);\n const i = bisect(lineChartData![0].data, xOffset);\n const d0 = lineChartData![0].data[i - 1] as ILineChartDataPoint;\n const d1 = lineChartData![0].data[i] as ILineChartDataPoint;\n let pointToHighlight: string | Date | number | null = null;\n let index: null | number = null;\n const axisType =\n lineChartData![0].data.length > 0 ? (getTypeOfAxis(lineChartData![0].data[0].x, true) as XAxisTypes) : null;\n if (d0 === undefined && d1 !== undefined) {\n pointToHighlight = d1.x;\n index = i;\n } else if (d0 !== undefined && d1 === undefined) {\n pointToHighlight = d0.x;\n index = i - 1;\n } else {\n let x0;\n let point0;\n let point1;\n switch (axisType) {\n case XAxisTypes.DateAxis:\n x0 = new Date(xOffset).getTime();\n point0 = (d0.x as Date).getTime();\n point1 = (d1.x as Date).getTime();\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n case XAxisTypes.NumericAxis:\n x0 = xOffset as number;\n point0 = d0.x as number;\n point1 = d1.x as number;\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n default:\n break;\n }\n }\n\n const { xAxisCalloutData, xAxisCalloutAccessibilityData } = lineChartData![0].data[index as number];\n const formattedDate =\n pointToHighlight instanceof Date\n ? formatDateToLocaleString(pointToHighlight, this.props.culture, this.props.useUTC)\n : pointToHighlight;\n const found = findCalloutPoints(this._calloutPoints, pointToHighlight);\n const nearestCircleToHighlight =\n axisType === XAxisTypes.DateAxis ? (pointToHighlight as Date).getTime() : pointToHighlight;\n const pointToHighlightUpdated = this.state.nearestCircleToHighlight !== nearestCircleToHighlight;\n // if no points need to be called out then don't show vertical line and callout card\n if (found && pointToHighlightUpdated && !this.state.isShowCalloutPending) {\n const filteredValues = this._getFilteredLegendValues(found.values);\n this.setState({\n nearestCircleToHighlight,\n isCalloutVisible: false,\n isShowCalloutPending: true,\n lineXValue: this._xAxisRectScale(pointToHighlight),\n displayOfLine: InterceptVisibility.show,\n isCircleClicked: false,\n stackCalloutProps: { ...found, values: filteredValues },\n YValueHover: filteredValues,\n dataPointCalloutProps: { ...found, values: filteredValues },\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n xAxisCalloutAccessibilityData,\n activePoint: '',\n });\n } else {\n /*\n When above if condition is false but found=true, it means either\n\n 1). pointToHighlightUpdated is false.\n For this case we dont need to do anything.\n\n 2). isShowCalloutPending is true.\n For this case there will be no callout updation for the event.\n This condition has been added to prevent repeated callout flashing.\n Currently there is a fraction of second delay between hover event and subsequent callout refresh.\n In the meantime if another event is received, the callout continues to flash for the set of\n intermediate hover events.\n\n This does not cause any issue as the user interaction takes atleast a fraction of second and the final\n callout state is ultimately achieved.\n If a user performs very swift mouse maneuver, the intermediate events will be lost but the callout experience\n remains smooth.\n */\n }\n if (!found) {\n this.setState({\n isCalloutVisible: false,\n nearestCircleToHighlight,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n });\n }\n };\n /**\n * just cleaning up the state which we have set in the mouse move event\n */\n private _onRectMouseOut = () => {\n /**/\n };\n\n private _handleChartMouseLeave = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n nearestCircleToHighlight: null,\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n hoverXValue: undefined,\n YValueHover: [],\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getDataPoints = (keys: string[], dataSet: any) => {\n const renderPoints: Array<IAreaChartDataSetPoint[]> = [];\n let maxOfYVal = 0;\n\n if (this._shouldFillToZeroY()) {\n keys.forEach((key, index) => {\n const currentLayer: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataSet.forEach((d: any) => {\n currentLayer.push({\n values: [0, d[key]], // Start from zero for \"tozeroy\" mode\n xVal: d.xVal,\n });\n if (d[key] > maxOfYVal) {\n maxOfYVal = d[key];\n }\n });\n renderPoints.push(currentLayer);\n });\n } else {\n const dataValues = d3Stack().keys(keys)(dataSet);\n maxOfYVal = d3Max(dataValues[dataValues.length - 1], dp => dp[1])!;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataValues.forEach((layer: any) => {\n const currentLayer: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n layer.forEach((d: any) => {\n currentLayer.push({\n values: d,\n xVal: d.data.xVal,\n });\n });\n renderPoints.push(currentLayer);\n });\n }\n\n this._isMultiStackChart = !!(this.props.legendProps?.selectedLegends\n ? renderPoints?.length >= 1\n : renderPoints?.length > 1);\n return {\n renderData: renderPoints,\n // The maxOfYVal prop is only required for the primary y-axis. When the data includes\n // a secondary y-axis, the mode defaults to tozeroy, so maxOfYVal should be calculated using\n // only the data points associated with the primary y-axis.\n maxOfYVal: this._containsSecondaryYAxis\n ? findNumericMinMaxOfY(this.props.data.lineChartData!).endValue\n : maxOfYVal,\n };\n };\n\n private _createDataSet = (points: ILineChartPoints[]) => {\n if (this.props.enablePerfOptimization && this._enableComputationOptimization && !this._hasDuplicateXValues) {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n colors.push(singleChartPoint.color!);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n const mapOfXvalToListOfDataPoints: IMapXToDataSet = {};\n allChartPoints.forEach((dataPoint: ILineChartDataPoint) => {\n const xValue = dataPoint.x instanceof Date ? dataPoint.x.toLocaleString() : dataPoint.x;\n // map of x value to the list of data points which share the same x value .\n if (mapOfXvalToListOfDataPoints[xValue]) {\n mapOfXvalToListOfDataPoints[xValue].push(dataPoint);\n } else {\n mapOfXvalToListOfDataPoints[xValue] = [dataPoint];\n }\n });\n\n Object.keys(mapOfXvalToListOfDataPoints).forEach((key: number | string) => {\n const value: ILineChartDataPoint[] = mapOfXvalToListOfDataPoints[key];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n value.forEach((singleDataPoint: ILineChartDataPoint, index: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${index}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n });\n\n // get keys from dataset, used to render data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n const keys: string[] = [];\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Data used to draw graph\n const data = this._getDataPoints(keys, dataSet);\n\n return {\n colors,\n opacity,\n keys,\n data,\n calloutPoints,\n };\n } else {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n let data = {};\n const keys: string[] = [];\n let index = 0;\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n // if legend is not populated, then assign a legend\n if (this._hasDuplicateXValues && !singleChartPoint.legend) {\n singleChartPoint.legend = `chart${index}`;\n ++index;\n }\n singleChartPoint.data.forEach((point: ILineChartDataPointWithLegend) => {\n point.legend = singleChartPoint.legend;\n });\n colors.push(singleChartPoint.color!);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n if (!this._hasDuplicateXValues) {\n let tempArr = allChartPoints;\n while (tempArr.length) {\n const valToCheck = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n const filteredChartPoints: ILineChartDataPoint[] = tempArr.filter(\n (point: ILineChartDataPoint) =>\n (point.x instanceof Date ? point.x.toLocaleString() : point.x) === valToCheck,\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n filteredChartPoints.forEach((singleDataPoint: ILineChartDataPoint, id: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${id}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n // removing compared objects from array\n const val = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n tempArr = tempArr.filter(\n (point: ILineChartDataPoint) => (point.x instanceof Date ? point.x.toLocaleString() : point.x) !== val,\n );\n }\n\n // get keys from dataset, used to create stacked data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Data used to draw graph\n data = this._getDataPoints(keys, dataSet);\n } else {\n const datasetForDuplicateValues = this._createDatasetForXCoordinateWithMultipleYValues(allChartPoints);\n data = this._getDataPoints(datasetForDuplicateValues.keys, datasetForDuplicateValues.filteredDataSet);\n }\n\n return {\n colors,\n opacity,\n keys,\n data,\n calloutPoints,\n };\n }\n };\n\n private _createDatasetForXCoordinateWithMultipleYValues = (allChartPoints: ILineChartDataPoint[]) => {\n const dataSet: IAreaChartDataSetPoint[] = [];\n\n // Group data points by x-axis value\n const groupedData: Record<string | number, ILineChartDataPointWithLegend[]> = {};\n allChartPoints.forEach((dataPoint: ILineChartDataPointWithLegend) => {\n const xValue = dataPoint.x instanceof Date ? dataPoint.x.toLocaleString() : dataPoint.x;\n if (!groupedData[xValue]) {\n groupedData[xValue] = [];\n }\n groupedData[xValue].push(dataPoint);\n });\n\n // Aggregate data points for each x-axis value\n Object.keys(groupedData).forEach(xValue => {\n const dataPoints = groupedData[xValue];\n dataPoints.forEach((dataPoint, id) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = { xVal: dataPoints[0].x };\n\n const key = dataPoint.legend ? dataPoint.legend : `chart${id}`;\n singleDataset[key] = dataPoint.y;\n dataSet.push(singleDataset);\n });\n });\n\n // get all unique keys from each array within the dataSet\n const allLegends: string[] = [];\n dataSet.forEach(item => {\n Object.keys(item).forEach(key => {\n if (key !== 'xVal' && !allLegends.includes(key)) {\n allLegends.push(key);\n }\n });\n });\n\n dataSet.forEach(item => {\n allLegends.forEach(legend => {\n if (!item[legend]) {\n item[legend] = 0; // Fill with 0 if the legend is missing\n }\n });\n });\n\n // exclude all items within dataset having all legend values 0\n const filteredDataSet = dataSet.filter(item => {\n return allLegends.some(legend => item[legend] !== 0);\n });\n\n const keys = Array.from(new Set(filteredDataSet.flatMap(item => Object.keys(item).filter(key => key !== 'xVal'))));\n\n return {\n keys,\n filteredDataSet,\n };\n };\n\n private _getCustomizedCallout = () => {\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)\n : null;\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xAxis: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yAxis: any,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n yAxisElement?: SVGElement | null,\n yScaleSecondary?: ScaleLinear<number, number>,\n ) => {\n this._chart = this._drawGraph(containerHeight, xAxis, yAxis, yScaleSecondary, xElement!);\n };\n\n private _onLegendHover(legend: string): void {\n this.setState({\n activeLegend: legend,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: undefined,\n });\n }\n\n private _getLegendData = (points: ILineChartPoints[]): JSXElement => {\n const data = points;\n const actions: ILegend[] = [];\n\n data.forEach((singleChartData: ILineChartPoints) => {\n const color: string = singleChartData.color!;\n const checkSimilarLegends = actions.filter(\n (leg: ILegend) => leg.title === singleChartData.legend && leg.color === color,\n );\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: singleChartData.legend,\n color,\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(singleChartData.legend);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n return (\n <Legends\n legends={actions}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n {...this.props.legendProps}\n onChange={this._onLegendSelectionChange.bind(this)}\n ref={this._legendsRef}\n />\n );\n };\n\n private _onLegendSelectionChange(\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: ILegend,\n ): void {\n if (this.props.legendProps?.canSelectMultipleLegends) {\n this.setState({ selectedLegends });\n } else {\n this.setState({ selectedLegends: selectedLegends.slice(-1) });\n }\n if (this.props.legendProps?.onChange) {\n this.props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n }\n\n private _onDataPointClick = (func: (() => void) | undefined) => {\n if (func) {\n func();\n }\n this.setState({ isCircleClicked: true });\n };\n\n private _getOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 0.7;\n } else {\n const opacity = this._legendHighlighted(legend) || this._noLegendHighlighted() ? 0.7 : 0.1;\n return opacity;\n }\n };\n\n private _getLineOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 1;\n } else {\n let opacity = 0.3;\n if (this.state.isCalloutVisible) {\n opacity = 1;\n }\n if (!this._noLegendHighlighted()) {\n opacity = this._legendHighlighted(legend) ? 0 : 0.1;\n }\n return opacity;\n }\n };\n\n private _updateCircleFillColor = (xDataPoint: number | Date, lineColor: string, circleId: string): string => {\n let fillColor = lineColor;\n if (this.state.nearestCircleToHighlight === xDataPoint || this.state.activePoint === circleId) {\n this._highlightedCircleId = circleId;\n if (!this.state.isCircleClicked) {\n fillColor = this.props.theme!.semanticColors.bodyBackground;\n }\n }\n\n return fillColor;\n };\n\n private _drawGraph = (\n containerHeight: number,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScalePrimary: ScaleLinear<number, number>,\n yScaleSecondary: ScaleLinear<number, number> | undefined,\n xElement: SVGElement,\n ): JSXElement[] => {\n const points = this._addDefaultColors(this.props.data.lineChartData);\n const { pointOptions, pointLineOptions } = this.props.data;\n\n const graph: JSXElement[] = [];\n let lineColor: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._data.forEach((singleStackedData: Array<any>, index: number) => {\n const yScale = points[index]?.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n const curveFactory = getCurveFactory(points[index]?.lineOptions?.curve, d3CurveBasis);\n const area = d3Area()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y0((d: any) => yScale(d.values[0]))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y1((d: any) => yScale(d.values[1]))\n .curve(curveFactory);\n const line = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => yScale(d.values[1]))\n .curve(curveFactory);\n const layerOpacity = this._shouldFillToZeroY() ? 0.8 : this._opacity[index];\n graph.push(\n <React.Fragment key={`${index}-graph-${this._uniqueIdForGraph}`}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={`gradient_${index}`} x1=\"0%\" x2=\"0%\" y1=\"0%\" y2=\"100%\">\n <stop offset=\"0\" stopColor={this._colors[index]} />\n <stop offset=\"100%\" stopColor=\"transparent\" />\n </linearGradient>\n </defs>\n )}\n <path\n id={`${index}-line-${this._uniqueIdForGraph}`}\n d={line(singleStackedData)!}\n fill={'transparent'}\n strokeWidth={points[index]?.lineOptions?.strokeWidth ?? 3}\n stroke={this._colors[index]}\n opacity={this._getLineOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n strokeDasharray={points[index]?.lineOptions?.strokeDasharray}\n strokeDashoffset={points[index]?.lineOptions?.strokeDashoffset}\n strokeLinecap={points[index]?.lineOptions?.strokeLinecap}\n />\n {singleStackedData.length === 1 ? (\n <circle\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n cx={xScale(singleStackedData[0].xVal)}\n cy={yScale(singleStackedData[0].values[1])}\n r={6}\n stroke={this._colors[index]}\n strokeWidth={3}\n fill={this._colors[index]}\n opacity={layerOpacity}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n ) : (\n <path\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n d={area(singleStackedData)!}\n fill={this.props.enableGradient ? `url(#gradient_${index})` : this._colors[index]}\n opacity={layerOpacity}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...(this.props.optimizeLargeData && {\n 'data-is-focusable': this._legendHighlighted(points[index]!.legend) || this._noLegendHighlighted(),\n role: 'img',\n 'aria-label': `${points[index].legend}, series ${index + 1} of ${points.length} with ${\n points[index].data.length\n } data points.`,\n })}\n />\n )}\n </React.Fragment>,\n );\n });\n\n const circleRadius = pointOptions && pointOptions.r ? Number(pointOptions.r) : 8;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._data.forEach((singleStackedData: Array<any>, index: number) => {\n if (points.length === index) {\n return;\n }\n\n const yScale = points[index]?.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n\n if (!this.props.optimizeLargeData || singleStackedData.length === 1) {\n // Render circles for all data points\n graph.push(\n <g\n key={`${index}-dots-${this._uniqueIdForGraph}`}\n clipPath=\"url(#clip)\"\n role=\"region\"\n aria-label={`${points[index].legend}, series ${index + 1} of ${points.length} with ${\n points[index].data.length\n } data points.`}\n >\n {singleStackedData.map((singlePoint: IDPointType, pointIndex: number) => {\n const circleId = `${this._circleId}_${index * this._data[0].length + pointIndex}`;\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n lineColor = points[index]!.color!;\n const legend = points[index]!.legend;\n return (\n <circle\n key={circleId}\n id={circleId}\n data-is-focusable={this._legendHighlighted(points[index]!.legend) || this._noLegendHighlighted()}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...this._getOnClickHandler(points, index, pointIndex)}\n onFocus={() => this._handleFocus(index, pointIndex, circleId)}\n onBlur={this._handleBlur}\n {...getSecureProps(pointOptions)}\n r={this._getCircleRadius(xDataPoint, circleRadius, circleId, legend)}\n role=\"img\"\n aria-label={\n (!this._hasDuplicateXValues && !this._hasMissingXValues && this._getAriaLabel(index, pointIndex)) ||\n undefined\n }\n />\n );\n })}\n </g>,\n );\n } else {\n // Render circles for data points close to the mouse pointer only\n singleStackedData.forEach((singlePoint: IDPointType, pointIndex: number) => {\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n if (this.state.nearestCircleToHighlight === xDataPoint) {\n const circleId = `${this._circleId}_${index * this._data[0].length + pointIndex}`;\n lineColor = points[index]!.color!;\n const legend = points[index]!.legend;\n graph.push(\n <circle\n key={circleId}\n id={circleId}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...this._getOnClickHandler(points, index, pointIndex)}\n {...getSecureProps(pointOptions)}\n r={this._getCircleRadius(xDataPoint, circleRadius, circleId, legend)}\n />,\n );\n }\n });\n }\n });\n graph.push(\n <line\n id={this._verticalLineId}\n key={this._verticalLineId}\n x1={this.state.lineXValue}\n y1={0}\n x2={this.state.lineXValue}\n y2={containerHeight}\n strokeWidth={1}\n strokeDasharray={5.5}\n stroke={lineColor!}\n opacity={0.5}\n visibility={this.state.displayOfLine}\n {...getSecureProps(pointLineOptions)}\n />,\n );\n return graph;\n };\n\n private _getOnClickHandler = (points: ILineChartPoints[], index: number, pointIndex: number) => {\n return (\n !this._hasDuplicateXValues &&\n !this._hasMissingXValues && {\n onClick: this._onDataPointClick.bind(this, points[index]!.data[pointIndex].onDataPointClick!),\n }\n );\n };\n\n private _getCircleRadius = (xDataPoint: number, circleRadius: number, circleId: string, legend: string): number => {\n const { isCircleClicked, nearestCircleToHighlight, activePoint } = this.state;\n\n // Show the circle if no legends are selected or if the point's legend is in the selected legends\n if (!this._noLegendHighlighted() && !this._legendHighlighted(legend)) {\n return 0;\n }\n\n if (isCircleClicked && nearestCircleToHighlight === xDataPoint) {\n return 1;\n } else if (nearestCircleToHighlight === xDataPoint || activePoint === circleId) {\n return circleRadius;\n } else {\n return 0;\n }\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legend: string) => {\n return this._getHighlightedLegend().includes(legend!);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this._getHighlightedLegend().length === 0;\n };\n\n private _getHighlightedLegend() {\n return this.state.selectedLegends.length > 0\n ? this.state.selectedLegends\n : this.state.activeLegend\n ? [this.state.activeLegend]\n : [];\n }\n\n private _addDefaultColors = (lineChartData?: ILineChartPoints[]): ILineChartPoints[] => {\n if (this._hasMissingXValues) {\n // get union of all x values\n const allXValues: Set<string | number> = new Set();\n lineChartData &&\n lineChartData.forEach((line: ILineChartPoints) => {\n line.data.forEach((point: ILineChartDataPoint) => {\n const xValue = point.x instanceof Date ? point.x.toLocaleString() : point.x;\n allXValues.add(xValue);\n });\n });\n lineChartData &&\n lineChartData.forEach((line: ILineChartPointsWithLegend) => {\n allXValues.forEach((xValue: string | number) => {\n const point = line.data.find((item: ILineChartDataPointWithLegend) => {\n return item.x instanceof Date ? item.x.toLocaleString() === xValue : item.x === xValue;\n });\n if (!point) {\n line.data.push({\n x: typeof xValue === 'string' ? new Date(xValue) : xValue,\n y: 0,\n legend: line.legend,\n });\n }\n });\n // sort the data points by x value\n line.data.sort((a: ILineChartDataPoint, b: ILineChartDataPoint) => {\n const xA = a.x instanceof Date ? a.x.getTime() : a.x;\n const xB = b.x instanceof Date ? b.x.getTime() : b.x;\n return xA < xB ? -1 : xA > xB ? 1 : 0;\n });\n });\n }\n return lineChartData\n ? lineChartData.map((item, index) => {\n let color: string;\n // isInverted property is applicable to v8 themes only\n if (typeof item.color === 'undefined') {\n color = getNextColor(index, 0, this.props.theme?.isInverted);\n } else {\n color = getColorFromToken(item.color, this.props.theme?.isInverted);\n }\n\n return { ...item, color };\n })\n : [];\n };\n\n private _handleFocus = (lineIndex: number, pointIndex: number, circleId: string) => {\n const { x, y, xAxisCalloutData } = this.props.data.lineChartData![lineIndex].data[pointIndex];\n const formattedDate = x instanceof Date ? formatDateToLocaleString(x, this.props.culture, this.props.useUTC) : x;\n const found = findCalloutPoints(this._calloutPoints, x);\n if (found) {\n // Show details in the callout for the focused point only\n found.values = found.values.filter((e: { y: number }) => e.y === y);\n const filteredValues = this._getFilteredLegendValues(found.values);\n\n this.setState({\n refSelected: `#${circleId}`,\n isCalloutVisible: true,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n YValueHover: filteredValues!,\n stackCalloutProps: { ...found, values: filteredValues },\n dataPointCalloutProps: { ...found, values: filteredValues },\n activePoint: circleId,\n });\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getFilteredLegendValues = (values: any) => {\n return !this._noLegendHighlighted()\n ? values.filter((value: { legend: string }) => this._legendHighlighted(value.legend))\n : values;\n };\n\n private _handleBlur = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n hoverXValue: undefined,\n YValueHover: [],\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n activePoint: '',\n });\n };\n\n private _getAriaLabel(lineIndex: number, pointIndex: number): string {\n const line = this.props.data.lineChartData![lineIndex];\n const point = line.data[pointIndex];\n const formattedDate =\n point.x instanceof Date ? formatDateToLocaleString(point.x, this.props.culture, this.props.useUTC) : point.x;\n const xValue = point.xAxisCalloutData || formattedDate;\n const legend = line.legend;\n const yValue = point.yAxisCalloutData || point.y;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n }\n\n private _isChartEmpty(): boolean {\n return !(\n (\n this.props.data &&\n this.props.data.lineChartData &&\n this.props.data.lineChartData.length > 0 &&\n this.props.data.lineChartData.filter(item => item.data.length === 0).length === 0\n )\n // if all the data sets have no data\n // filtering all items which have no data and checking if the length of the filtered array is 0\n // which means chart is not empty\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, lineChartData } = this.props.data;\n return (chartTitle ? `${chartTitle}. ` : '') + `Area chart with ${lineChartData?.length || 0} data series. `;\n };\n\n private _xCoordinateContainsMultipleY(): boolean {\n const { lineChartData } = this.props.data;\n if (!lineChartData) {\n return false;\n }\n for (const item of lineChartData) {\n const xValueMap: Record<string, number[]> = {};\n for (const point of item.data) {\n const xValue = point.x instanceof Date ? point.x.toLocaleString() : point.x;\n if (!xValueMap[xValue]) {\n xValueMap[xValue] = [];\n }\n xValueMap[xValue].push(point.y);\n if (xValueMap[xValue].length > 1) {\n return true;\n }\n }\n }\n return false;\n }\n\n private _containsMissingXValues(): boolean {\n const { lineChartData } = this.props.data;\n if (!lineChartData) {\n return false;\n }\n const allXValues: Set<string | number> = new Set();\n lineChartData.forEach((line: ILineChartPoints) => {\n line.data.forEach((point: ILineChartDataPoint) => {\n const xValue = point.x instanceof Date ? point.x.toLocaleString() : point.x;\n allXValues.add(xValue);\n });\n });\n // for all x values, check if the x value is present in all series\n let hasMissingValues = false;\n lineChartData.forEach((line: ILineChartPoints) => {\n allXValues.forEach((xValue: string | number) => {\n const point = line.data.find((item: ILineChartDataPoint) => {\n return item.x instanceof Date ? item.x.toLocaleString() === xValue : item.x === xValue;\n });\n if (!point) {\n hasMissingValues = true;\n }\n });\n });\n return hasMissingValues;\n }\n\n private _shouldFillToZeroY() {\n return this.props.mode === 'tozeroy' || this._containsSecondaryYAxis;\n }\n}\n"]}
1
+ {"version":3,"file":"AreaChart.base.js","sourceRoot":"../src/","sources":["components/AreaChart/AreaChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, bisector } from 'd3-array';\nimport { pointer } from 'd3-selection';\nimport { area as d3Area, stack as d3Stack, curveMonotoneX as d3CurveBasis, line as d3Line } from 'd3-shape';\nimport { getId, getRTL, initializeComponentRef, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ICustomizedCalloutData,\n IAreaChartProps,\n IBasestate,\n ILineChartDataPoint,\n ILineChartPoints,\n IChildProps,\n IMargins,\n} from '../../index';\nimport { warnDeprecations } from '@fluentui/react/lib/Utilities';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport {\n calloutData,\n getXAxisType,\n ChartTypes,\n XAxisTypes,\n getTypeOfAxis,\n getNextColor,\n getColorFromToken,\n findNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfNumericForAreaLineScatterCharts,\n domainRangeOfDateForAreaLineScatterVerticalBarCharts,\n createStringYAxis,\n getSecureProps,\n areArraysEqual,\n getCurveFactory,\n YAxisType,\n findCalloutPoints,\n} from '../../utilities/index';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { exportChartsAsImage } from '../../utilities/image-export-utils';\nimport { ScaleLinear } from 'd3-scale';\nimport type { JSXElement } from '@fluentui/utilities';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bisect = bisector((d: any) => d.x).left;\n\nconst COMPONENT_NAME = 'AREA CHART';\n\nenum InterceptVisibility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nexport interface IAreaChartAreaPoint {\n xVal: string | number;\n values: IAreaChartDataSetPoint;\n}\nexport interface IAreaChartDataSetPoint {\n [key: string]: number | string | number[];\n}\nexport interface IDPointType {\n values: { 0: number; 1: number; data: {} };\n xVal: number | Date;\n}\nexport interface IMapXToDataSet {\n [key: string]: ILineChartDataPoint[];\n [key: number]: ILineChartDataPoint[];\n}\n\n//by default d3-shape 3.2.0 limits the< path> data point precision to 3 digits(d3/d3-path#10)\n\nexport interface IAreaChartState extends IBasestate {\n lineXValue: number;\n displayOfLine: InterceptVisibility;\n isCircleClicked: boolean;\n dataPointCalloutProps?: ICustomizedCalloutData;\n stackCalloutProps?: ICustomizedCalloutData;\n nearestCircleToHighlight: number | string | Date | null;\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n isShowCalloutPending: boolean;\n /** focused point */\n activePoint: string;\n selectedLegends: string[];\n}\n\ninterface ILineChartDataPointWithLegend extends ILineChartDataPoint {\n /**\n * Legend text for the datapoint in the chart\n */\n legend?: string;\n}\n\ntype ILineChartPointsWithoutData = Omit<ILineChartPoints, 'data'>;\ninterface ILineChartPointsWithLegend extends ILineChartPointsWithoutData {\n data: ILineChartDataPointWithLegend[];\n}\n\nexport class AreaChartBase extends React.Component<IAreaChartProps, IAreaChartState> implements IChart {\n public static defaultProps: Partial<IAreaChartProps> = {\n useUTC: true,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _calloutPoints: any;\n private _createSet: (data: ILineChartPoints[]) => {\n colors: string[];\n opacity: number[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n calloutPoints: any;\n };\n private _colors: string[];\n private _opacity: number[];\n private _uniqueIdForGraph: string;\n private _verticalLineId: string;\n private _circleId: string;\n private _uniqueCallOutID: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _data: any;\n\n private _chart: JSXElement[];\n private margins: IMargins;\n private _rectId: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisRectScale: any;\n // determines if the given area chart has multiple stacked bar charts\n private _isMultiStackChart: boolean;\n private _highlightedCircleId: string;\n //enableComputationOptimization is used for optimized code to group data points by x value\n //from O(n^2) to O(n) using a map.\n private _enableComputationOptimization: boolean;\n private _firstRenderOptimization: boolean;\n private _emptyChartId: string;\n private _cartesianChartRef: React.RefObject<IChart | null>;\n private _legendsRef: React.RefObject<ILegendContainer | null>;\n private _containsSecondaryYAxis = false;\n private _hasDuplicateXValues = false;\n private _hasMissingXValues = false;\n\n public constructor(props: IAreaChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this._createSet = memoizeFunction(this._createDataSet);\n this.state = {\n selectedLegends: props.legendProps?.selectedLegends || [],\n activeLegend: undefined,\n hoverXValue: '',\n isCalloutVisible: false,\n refSelected: null,\n YValueHover: [],\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n nearestCircleToHighlight: null,\n isShowCalloutPending: false,\n activePoint: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n showYAxisGridLines: 'Dont use this property. Lines are drawn by default',\n });\n this._hasMissingXValues = this._containsMissingXValues();\n this._uniqueIdForGraph = getId('areaChart_');\n this._verticalLineId = getId('verticalLine_');\n this._circleId = getId('circle');\n this._rectId = getId('rectangle');\n this._enableComputationOptimization = true;\n this._firstRenderOptimization = true;\n this._emptyChartId = getId('_AreaChart_empty');\n this._cartesianChartRef = React.createRef();\n this._legendsRef = React.createRef();\n }\n\n public componentDidUpdate(prevProps: IAreaChartProps): void {\n if (!areArraysEqual(prevProps.legendProps?.selectedLegends, this.props.legendProps?.selectedLegends)) {\n this.setState({\n selectedLegends: this.props.legendProps?.selectedLegends || [],\n });\n }\n\n if (this.state.isShowCalloutPending) {\n this.setState({\n refSelected: `#${this._highlightedCircleId}`,\n isCalloutVisible: true,\n isShowCalloutPending: false,\n });\n }\n }\n\n public render(): JSXElement {\n if (!this._isChartEmpty()) {\n const { lineChartData } = this.props.data;\n const points = this._addDefaultColors(lineChartData);\n this._hasDuplicateXValues = this._xCoordinateContainsMultipleY();\n this._containsSecondaryYAxis =\n !!this.props.secondaryYScaleOptions && points.some(point => point.useSecondaryYScale);\n const { colors, opacity, data, calloutPoints } = this._createSet(points);\n this._calloutPoints = calloutPoints;\n const isXAxisDateType = getXAxisType(points);\n this._colors = colors;\n this._opacity = opacity;\n this._data = data.renderData;\n\n const legends: JSXElement = this._getLegendData(points);\n\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n const calloutProps = {\n target: this.state.refSelected,\n isCalloutVisible: this.state.isCalloutVisible && !this._hasDuplicateXValues && !this._hasMissingXValues,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n id: `toolTip${this._uniqueCallOutID}`,\n gapSpace: 15,\n isBeakVisible: false,\n onDismiss: this._closeCallout,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: this.state.xAxisCalloutAccessibilityData,\n ...this.props.calloutProps,\n };\n return (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={points}\n chartType={ChartTypes.AreaChart}\n calloutProps={calloutProps}\n legendBars={legends}\n createYAxis={createNumericYAxis}\n isCalloutForStack\n xAxisType={isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n tickParams={tickParams}\n maxOfYVal={data.maxOfYVal}\n getGraphData={this._getGraphData}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n getmargins={this._getMargins}\n getMinMaxOfYAxis={this._getMinMaxOfYAxis}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n enableFirstRenderOptimization={this.props.enablePerfOptimization && this._firstRenderOptimization}\n ref={this._cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n\n children={(props: IChildProps) => {\n this._xAxisRectScale = props.xScale;\n const ticks = this._xAxisRectScale.ticks();\n const width1 = this._xAxisRectScale(ticks[ticks.length - 1]);\n const rectHeight = props.containerHeight! - this.margins.top!;\n return (\n <>\n <g>\n <rect\n id={this._rectId}\n width={width1}\n height={rectHeight}\n fill={'transparent'}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n </g>\n <g>{this._chart}</g>\n </>\n );\n }}\n />\n );\n }\n return (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n public get chartContainer(): HTMLElement | null {\n return this._cartesianChartRef.current?.chartContainer || null;\n }\n\n public toImage = (opts?: IImageExportOptions): Promise<string> => {\n return exportChartsAsImage(\n [{ container: this._cartesianChartRef.current?.chartContainer }],\n this.props.hideLegend ? undefined : this._legendsRef.current?.toSVG,\n getRTL(),\n opts,\n );\n };\n\n private _getMinMaxOfYAxis = (points: ILineChartPoints[], yAxisType: YAxisType, useSecondaryYScale: boolean) =>\n findNumericMinMaxOfY(points, yAxisType, useSecondaryYScale);\n\n private _getDomainNRangeValues = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n ) => {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfNumericForAreaLineScatterCharts(points, margins, width, isRTL);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineScatterVerticalBarCharts(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else {\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n return domainNRangeValue;\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _onRectMouseMove = (mouseEvent: React.MouseEvent<SVGRectElement | SVGPathElement | SVGCircleElement>) => {\n mouseEvent.persist();\n const { data } = this.props;\n const { lineChartData } = data;\n // This will get the value of the X when mouse is on the chart\n const xOffset = this._xAxisRectScale.invert(pointer(mouseEvent)[0], document.getElementById(this._rectId)!);\n const i = bisect(lineChartData![0].data, xOffset);\n const d0 = lineChartData![0].data[i - 1] as ILineChartDataPoint;\n const d1 = lineChartData![0].data[i] as ILineChartDataPoint;\n let pointToHighlight: string | Date | number | null = null;\n let index: null | number = null;\n const axisType =\n lineChartData![0].data.length > 0 ? (getTypeOfAxis(lineChartData![0].data[0].x, true) as XAxisTypes) : null;\n if (d0 === undefined && d1 !== undefined) {\n pointToHighlight = d1.x;\n index = i;\n } else if (d0 !== undefined && d1 === undefined) {\n pointToHighlight = d0.x;\n index = i - 1;\n } else {\n let x0;\n let point0;\n let point1;\n switch (axisType) {\n case XAxisTypes.DateAxis:\n x0 = new Date(xOffset).getTime();\n point0 = (d0.x as Date).getTime();\n point1 = (d1.x as Date).getTime();\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n case XAxisTypes.NumericAxis:\n x0 = xOffset as number;\n point0 = d0.x as number;\n point1 = d1.x as number;\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n default:\n break;\n }\n }\n\n const { xAxisCalloutData, xAxisCalloutAccessibilityData } = lineChartData![0].data[index as number];\n const formattedDate =\n pointToHighlight instanceof Date\n ? formatDateToLocaleString(pointToHighlight, this.props.culture, this.props.useUTC)\n : pointToHighlight;\n const found = findCalloutPoints(this._calloutPoints, pointToHighlight);\n const nearestCircleToHighlight =\n axisType === XAxisTypes.DateAxis ? (pointToHighlight as Date).getTime() : pointToHighlight;\n const pointToHighlightUpdated = this.state.nearestCircleToHighlight !== nearestCircleToHighlight;\n // if no points need to be called out then don't show vertical line and callout card\n if (found && pointToHighlightUpdated && !this.state.isShowCalloutPending) {\n const filteredValues = this._getFilteredLegendValues(found.values);\n this.setState({\n nearestCircleToHighlight,\n isCalloutVisible: false,\n isShowCalloutPending: true,\n lineXValue: this._xAxisRectScale(pointToHighlight),\n displayOfLine: InterceptVisibility.show,\n isCircleClicked: false,\n stackCalloutProps: { ...found, values: filteredValues },\n YValueHover: filteredValues,\n dataPointCalloutProps: { ...found, values: filteredValues },\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n xAxisCalloutAccessibilityData,\n activePoint: '',\n });\n } else {\n /*\n When above if condition is false but found=true, it means either\n\n 1). pointToHighlightUpdated is false.\n For this case we dont need to do anything.\n\n 2). isShowCalloutPending is true.\n For this case there will be no callout updation for the event.\n This condition has been added to prevent repeated callout flashing.\n Currently there is a fraction of second delay between hover event and subsequent callout refresh.\n In the meantime if another event is received, the callout continues to flash for the set of\n intermediate hover events.\n\n This does not cause any issue as the user interaction takes atleast a fraction of second and the final\n callout state is ultimately achieved.\n If a user performs very swift mouse maneuver, the intermediate events will be lost but the callout experience\n remains smooth.\n */\n }\n if (!found) {\n this.setState({\n isCalloutVisible: false,\n nearestCircleToHighlight,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n });\n }\n };\n /**\n * just cleaning up the state which we have set in the mouse move event\n */\n private _onRectMouseOut = () => {\n /**/\n };\n\n private _handleChartMouseLeave = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n nearestCircleToHighlight: null,\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n hoverXValue: undefined,\n YValueHover: [],\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getDataPoints = (keys: string[], dataSet: any) => {\n const renderPoints: Array<IAreaChartDataSetPoint[]> = [];\n let maxOfYVal = 0;\n\n if (this._shouldFillToZeroY()) {\n keys.forEach((key, index) => {\n const currentLayer: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataSet.forEach((d: any) => {\n currentLayer.push({\n values: [0, d[key]], // Start from zero for \"tozeroy\" mode\n xVal: d.xVal,\n });\n if (d[key] > maxOfYVal) {\n maxOfYVal = d[key];\n }\n });\n renderPoints.push(currentLayer);\n });\n } else {\n const dataValues = d3Stack().keys(keys)(dataSet);\n maxOfYVal = d3Max(dataValues[dataValues.length - 1], dp => dp[1])!;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataValues.forEach((layer: any) => {\n const currentLayer: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n layer.forEach((d: any) => {\n currentLayer.push({\n values: d,\n xVal: d.data.xVal,\n });\n });\n renderPoints.push(currentLayer);\n });\n }\n\n this._isMultiStackChart = !!(this.props.legendProps?.selectedLegends\n ? renderPoints?.length >= 1\n : renderPoints?.length > 1);\n return {\n renderData: renderPoints,\n // The maxOfYVal prop is only required for the primary y-axis. When the data includes\n // a secondary y-axis, the mode defaults to tozeroy, so maxOfYVal should be calculated using\n // only the data points associated with the primary y-axis.\n maxOfYVal: this._containsSecondaryYAxis\n ? findNumericMinMaxOfY(this.props.data.lineChartData!).endValue\n : maxOfYVal,\n };\n };\n\n private _createDataSet = (points: ILineChartPoints[]) => {\n if (this.props.enablePerfOptimization && this._enableComputationOptimization && !this._hasDuplicateXValues) {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n colors.push(singleChartPoint.color!);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n const mapOfXvalToListOfDataPoints: IMapXToDataSet = Object.create(null);\n allChartPoints.forEach((dataPoint: ILineChartDataPoint) => {\n const xValue = dataPoint.x instanceof Date ? dataPoint.x.toLocaleString() : dataPoint.x;\n // map of x value to the list of data points which share the same x value .\n if (mapOfXvalToListOfDataPoints[xValue]) {\n mapOfXvalToListOfDataPoints[xValue].push(dataPoint);\n } else {\n mapOfXvalToListOfDataPoints[xValue] = [dataPoint];\n }\n });\n\n Object.keys(mapOfXvalToListOfDataPoints).forEach((key: number | string) => {\n const value: ILineChartDataPoint[] = mapOfXvalToListOfDataPoints[key];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n value.forEach((singleDataPoint: ILineChartDataPoint, index: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${index}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n });\n\n // get keys from dataset, used to render data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n const keys: string[] = [];\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Data used to draw graph\n const data = this._getDataPoints(keys, dataSet);\n\n return {\n colors,\n opacity,\n keys,\n data,\n calloutPoints,\n };\n } else {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n let data = {};\n const keys: string[] = [];\n let index = 0;\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n // if legend is not populated, then assign a legend\n if (this._hasDuplicateXValues && !singleChartPoint.legend) {\n singleChartPoint.legend = `chart${index}`;\n ++index;\n }\n singleChartPoint.data.forEach((point: ILineChartDataPointWithLegend) => {\n point.legend = singleChartPoint.legend;\n });\n colors.push(singleChartPoint.color!);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n if (!this._hasDuplicateXValues) {\n let tempArr = allChartPoints;\n while (tempArr.length) {\n const valToCheck = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n const filteredChartPoints: ILineChartDataPoint[] = tempArr.filter(\n (point: ILineChartDataPoint) =>\n (point.x instanceof Date ? point.x.toLocaleString() : point.x) === valToCheck,\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n filteredChartPoints.forEach((singleDataPoint: ILineChartDataPoint, id: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${id}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n // removing compared objects from array\n const val = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n tempArr = tempArr.filter(\n (point: ILineChartDataPoint) => (point.x instanceof Date ? point.x.toLocaleString() : point.x) !== val,\n );\n }\n\n // get keys from dataset, used to create stacked data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Data used to draw graph\n data = this._getDataPoints(keys, dataSet);\n } else {\n const datasetForDuplicateValues = this._createDatasetForXCoordinateWithMultipleYValues(allChartPoints);\n data = this._getDataPoints(datasetForDuplicateValues.keys, datasetForDuplicateValues.filteredDataSet);\n }\n\n return {\n colors,\n opacity,\n keys,\n data,\n calloutPoints,\n };\n }\n };\n\n private _createDatasetForXCoordinateWithMultipleYValues = (allChartPoints: ILineChartDataPoint[]) => {\n const dataSet: IAreaChartDataSetPoint[] = [];\n\n // Group data points by x-axis value\n const groupedData: Record<string | number, ILineChartDataPointWithLegend[]> = Object.create(null);\n allChartPoints.forEach((dataPoint: ILineChartDataPointWithLegend) => {\n const xValue = dataPoint.x instanceof Date ? dataPoint.x.toLocaleString() : dataPoint.x;\n if (!groupedData[xValue]) {\n groupedData[xValue] = [];\n }\n groupedData[xValue].push(dataPoint);\n });\n\n // Aggregate data points for each x-axis value\n Object.keys(groupedData).forEach(xValue => {\n const dataPoints = groupedData[xValue];\n dataPoints.forEach((dataPoint, id) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = { xVal: dataPoints[0].x };\n\n const key = dataPoint.legend ? dataPoint.legend : `chart${id}`;\n singleDataset[key] = dataPoint.y;\n dataSet.push(singleDataset);\n });\n });\n\n // get all unique keys from each array within the dataSet\n const allLegends: string[] = [];\n dataSet.forEach(item => {\n Object.keys(item).forEach(key => {\n if (key !== 'xVal' && !allLegends.includes(key)) {\n allLegends.push(key);\n }\n });\n });\n\n dataSet.forEach(item => {\n allLegends.forEach(legend => {\n if (!item[legend]) {\n item[legend] = 0; // Fill with 0 if the legend is missing\n }\n });\n });\n\n // exclude all items within dataset having all legend values 0\n const filteredDataSet = dataSet.filter(item => {\n return allLegends.some(legend => item[legend] !== 0);\n });\n\n const keys = Array.from(new Set(filteredDataSet.flatMap(item => Object.keys(item).filter(key => key !== 'xVal'))));\n\n return {\n keys,\n filteredDataSet,\n };\n };\n\n private _getCustomizedCallout = () => {\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)\n : null;\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xAxis: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yAxis: any,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n yAxisElement?: SVGElement | null,\n yScaleSecondary?: ScaleLinear<number, number>,\n ) => {\n this._chart = this._drawGraph(containerHeight, xAxis, yAxis, yScaleSecondary, xElement!);\n };\n\n private _onLegendHover(legend: string): void {\n this.setState({\n activeLegend: legend,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: undefined,\n });\n }\n\n private _getLegendData = (points: ILineChartPoints[]): JSXElement => {\n const data = points;\n const actions: ILegend[] = [];\n\n data.forEach((singleChartData: ILineChartPoints) => {\n const color: string = singleChartData.color!;\n const checkSimilarLegends = actions.filter(\n (leg: ILegend) => leg.title === singleChartData.legend && leg.color === color,\n );\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: singleChartData.legend,\n color,\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(singleChartData.legend);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n return (\n <Legends\n legends={actions}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n {...this.props.legendProps}\n onChange={this._onLegendSelectionChange.bind(this)}\n ref={this._legendsRef}\n />\n );\n };\n\n private _onLegendSelectionChange(\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: ILegend,\n ): void {\n if (this.props.legendProps?.canSelectMultipleLegends) {\n this.setState({ selectedLegends });\n } else {\n this.setState({ selectedLegends: selectedLegends.slice(-1) });\n }\n if (this.props.legendProps?.onChange) {\n this.props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n }\n\n private _onDataPointClick = (func: (() => void) | undefined) => {\n if (func) {\n func();\n }\n this.setState({ isCircleClicked: true });\n };\n\n private _getOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 0.7;\n } else {\n const opacity = this._legendHighlighted(legend) || this._noLegendHighlighted() ? 0.7 : 0.1;\n return opacity;\n }\n };\n\n private _getLineOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 1;\n } else {\n let opacity = 0.3;\n if (this.state.isCalloutVisible) {\n opacity = 1;\n }\n if (!this._noLegendHighlighted()) {\n opacity = this._legendHighlighted(legend) ? 0 : 0.1;\n }\n return opacity;\n }\n };\n\n private _updateCircleFillColor = (xDataPoint: number | Date, lineColor: string, circleId: string): string => {\n let fillColor = lineColor;\n if (this.state.nearestCircleToHighlight === xDataPoint || this.state.activePoint === circleId) {\n this._highlightedCircleId = circleId;\n if (!this.state.isCircleClicked) {\n fillColor = this.props.theme!.semanticColors.bodyBackground;\n }\n }\n\n return fillColor;\n };\n\n private _drawGraph = (\n containerHeight: number,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScalePrimary: ScaleLinear<number, number>,\n yScaleSecondary: ScaleLinear<number, number> | undefined,\n xElement: SVGElement,\n ): JSXElement[] => {\n const points = this._addDefaultColors(this.props.data.lineChartData);\n const { pointOptions, pointLineOptions } = this.props.data;\n\n const graph: JSXElement[] = [];\n let lineColor: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._data.forEach((singleStackedData: Array<any>, index: number) => {\n const yScale = points[index]?.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n const curveFactory = getCurveFactory(points[index]?.lineOptions?.curve, d3CurveBasis);\n const area = d3Area()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y0((d: any) => yScale(d.values[0]))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y1((d: any) => yScale(d.values[1]))\n .curve(curveFactory);\n const line = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => yScale(d.values[1]))\n .curve(curveFactory);\n const layerOpacity = this._shouldFillToZeroY() ? 0.8 : this._opacity[index];\n graph.push(\n <React.Fragment key={`${index}-graph-${this._uniqueIdForGraph}`}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={`gradient_${index}`} x1=\"0%\" x2=\"0%\" y1=\"0%\" y2=\"100%\">\n <stop offset=\"0\" stopColor={this._colors[index]} />\n <stop offset=\"100%\" stopColor=\"transparent\" />\n </linearGradient>\n </defs>\n )}\n <path\n id={`${index}-line-${this._uniqueIdForGraph}`}\n d={line(singleStackedData)!}\n fill={'transparent'}\n strokeWidth={points[index]?.lineOptions?.strokeWidth ?? 3}\n stroke={this._colors[index]}\n opacity={this._getLineOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n strokeDasharray={points[index]?.lineOptions?.strokeDasharray}\n strokeDashoffset={points[index]?.lineOptions?.strokeDashoffset}\n strokeLinecap={points[index]?.lineOptions?.strokeLinecap}\n />\n {singleStackedData.length === 1 ? (\n <circle\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n cx={xScale(singleStackedData[0].xVal)}\n cy={yScale(singleStackedData[0].values[1])}\n r={6}\n stroke={this._colors[index]}\n strokeWidth={3}\n fill={this._colors[index]}\n opacity={layerOpacity}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n ) : (\n <path\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n d={area(singleStackedData)!}\n fill={this.props.enableGradient ? `url(#gradient_${index})` : this._colors[index]}\n opacity={layerOpacity}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...(this.props.optimizeLargeData && {\n 'data-is-focusable': this._legendHighlighted(points[index]!.legend) || this._noLegendHighlighted(),\n role: 'img',\n 'aria-label': `${points[index].legend}, series ${index + 1} of ${points.length} with ${\n points[index].data.length\n } data points.`,\n })}\n />\n )}\n </React.Fragment>,\n );\n });\n\n const circleRadius = pointOptions && pointOptions.r ? Number(pointOptions.r) : 8;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._data.forEach((singleStackedData: Array<any>, index: number) => {\n if (points.length === index) {\n return;\n }\n\n const yScale = points[index]?.useSecondaryYScale && yScaleSecondary ? yScaleSecondary : yScalePrimary;\n\n if (!this.props.optimizeLargeData || singleStackedData.length === 1) {\n // Render circles for all data points\n graph.push(\n <g\n key={`${index}-dots-${this._uniqueIdForGraph}`}\n clipPath=\"url(#clip)\"\n role=\"region\"\n aria-label={`${points[index].legend}, series ${index + 1} of ${points.length} with ${\n points[index].data.length\n } data points.`}\n >\n {singleStackedData.map((singlePoint: IDPointType, pointIndex: number) => {\n const circleId = `${this._circleId}_${index * this._data[0].length + pointIndex}`;\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n lineColor = points[index]!.color!;\n const legend = points[index]!.legend;\n return (\n <circle\n key={circleId}\n id={circleId}\n data-is-focusable={this._legendHighlighted(points[index]!.legend) || this._noLegendHighlighted()}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...this._getOnClickHandler(points, index, pointIndex)}\n onFocus={() => this._handleFocus(index, pointIndex, circleId)}\n onBlur={this._handleBlur}\n {...getSecureProps(pointOptions)}\n r={this._getCircleRadius(xDataPoint, circleRadius, circleId, legend)}\n role=\"img\"\n aria-label={\n (!this._hasDuplicateXValues && !this._hasMissingXValues && this._getAriaLabel(index, pointIndex)) ||\n undefined\n }\n />\n );\n })}\n </g>,\n );\n } else {\n // Render circles for data points close to the mouse pointer only\n singleStackedData.forEach((singlePoint: IDPointType, pointIndex: number) => {\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n if (this.state.nearestCircleToHighlight === xDataPoint) {\n const circleId = `${this._circleId}_${index * this._data[0].length + pointIndex}`;\n lineColor = points[index]!.color!;\n const legend = points[index]!.legend;\n graph.push(\n <circle\n key={circleId}\n id={circleId}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...this._getOnClickHandler(points, index, pointIndex)}\n {...getSecureProps(pointOptions)}\n r={this._getCircleRadius(xDataPoint, circleRadius, circleId, legend)}\n />,\n );\n }\n });\n }\n });\n graph.push(\n <line\n id={this._verticalLineId}\n key={this._verticalLineId}\n x1={this.state.lineXValue}\n y1={0}\n x2={this.state.lineXValue}\n y2={containerHeight}\n strokeWidth={1}\n strokeDasharray={5.5}\n stroke={lineColor!}\n opacity={0.5}\n visibility={this.state.displayOfLine}\n {...getSecureProps(pointLineOptions)}\n />,\n );\n return graph;\n };\n\n private _getOnClickHandler = (points: ILineChartPoints[], index: number, pointIndex: number) => {\n return (\n !this._hasDuplicateXValues &&\n !this._hasMissingXValues && {\n onClick: this._onDataPointClick.bind(this, points[index]!.data[pointIndex].onDataPointClick!),\n }\n );\n };\n\n private _getCircleRadius = (xDataPoint: number, circleRadius: number, circleId: string, legend: string): number => {\n const { isCircleClicked, nearestCircleToHighlight, activePoint } = this.state;\n\n // Show the circle if no legends are selected or if the point's legend is in the selected legends\n if (!this._noLegendHighlighted() && !this._legendHighlighted(legend)) {\n return 0;\n }\n\n if (isCircleClicked && nearestCircleToHighlight === xDataPoint) {\n return 1;\n } else if (nearestCircleToHighlight === xDataPoint || activePoint === circleId) {\n return circleRadius;\n } else {\n return 0;\n }\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legend: string) => {\n return this._getHighlightedLegend().includes(legend!);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this._getHighlightedLegend().length === 0;\n };\n\n private _getHighlightedLegend() {\n return this.state.selectedLegends.length > 0\n ? this.state.selectedLegends\n : this.state.activeLegend\n ? [this.state.activeLegend]\n : [];\n }\n\n private _addDefaultColors = (lineChartData?: ILineChartPoints[]): ILineChartPoints[] => {\n if (this._hasMissingXValues) {\n // get union of all x values\n const allXValues: Set<string | number> = new Set();\n lineChartData &&\n lineChartData.forEach((line: ILineChartPoints) => {\n line.data.forEach((point: ILineChartDataPoint) => {\n const xValue = point.x instanceof Date ? point.x.toLocaleString() : point.x;\n allXValues.add(xValue);\n });\n });\n lineChartData &&\n lineChartData.forEach((line: ILineChartPointsWithLegend) => {\n allXValues.forEach((xValue: string | number) => {\n const point = line.data.find((item: ILineChartDataPointWithLegend) => {\n return item.x instanceof Date ? item.x.toLocaleString() === xValue : item.x === xValue;\n });\n if (!point) {\n line.data.push({\n x: typeof xValue === 'string' ? new Date(xValue) : xValue,\n y: 0,\n legend: line.legend,\n });\n }\n });\n // sort the data points by x value\n line.data.sort((a: ILineChartDataPoint, b: ILineChartDataPoint) => {\n const xA = a.x instanceof Date ? a.x.getTime() : a.x;\n const xB = b.x instanceof Date ? b.x.getTime() : b.x;\n return xA < xB ? -1 : xA > xB ? 1 : 0;\n });\n });\n }\n return lineChartData\n ? lineChartData.map((item, index) => {\n let color: string;\n // isInverted property is applicable to v8 themes only\n if (typeof item.color === 'undefined') {\n color = getNextColor(index, 0, this.props.theme?.isInverted);\n } else {\n color = getColorFromToken(item.color, this.props.theme?.isInverted);\n }\n\n return { ...item, color };\n })\n : [];\n };\n\n private _handleFocus = (lineIndex: number, pointIndex: number, circleId: string) => {\n const { x, y, xAxisCalloutData } = this.props.data.lineChartData![lineIndex].data[pointIndex];\n const formattedDate = x instanceof Date ? formatDateToLocaleString(x, this.props.culture, this.props.useUTC) : x;\n const found = findCalloutPoints(this._calloutPoints, x);\n if (found) {\n // Show details in the callout for the focused point only\n found.values = found.values.filter((e: { y: number }) => e.y === y);\n const filteredValues = this._getFilteredLegendValues(found.values);\n\n this.setState({\n refSelected: `#${circleId}`,\n isCalloutVisible: true,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n YValueHover: filteredValues!,\n stackCalloutProps: { ...found, values: filteredValues },\n dataPointCalloutProps: { ...found, values: filteredValues },\n activePoint: circleId,\n });\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getFilteredLegendValues = (values: any) => {\n return !this._noLegendHighlighted()\n ? values.filter((value: { legend: string }) => this._legendHighlighted(value.legend))\n : values;\n };\n\n private _handleBlur = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n hoverXValue: undefined,\n YValueHover: [],\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n activePoint: '',\n });\n };\n\n private _getAriaLabel(lineIndex: number, pointIndex: number): string {\n const line = this.props.data.lineChartData![lineIndex];\n const point = line.data[pointIndex];\n const formattedDate =\n point.x instanceof Date ? formatDateToLocaleString(point.x, this.props.culture, this.props.useUTC) : point.x;\n const xValue = point.xAxisCalloutData || formattedDate;\n const legend = line.legend;\n const yValue = point.yAxisCalloutData || point.y;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n }\n\n private _isChartEmpty(): boolean {\n return !(\n (\n this.props.data &&\n this.props.data.lineChartData &&\n this.props.data.lineChartData.length > 0 &&\n this.props.data.lineChartData.filter(item => item.data.length === 0).length === 0\n )\n // if all the data sets have no data\n // filtering all items which have no data and checking if the length of the filtered array is 0\n // which means chart is not empty\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, lineChartData } = this.props.data;\n return (chartTitle ? `${chartTitle}. ` : '') + `Area chart with ${lineChartData?.length || 0} data series. `;\n };\n\n private _xCoordinateContainsMultipleY(): boolean {\n const { lineChartData } = this.props.data;\n if (!lineChartData) {\n return false;\n }\n for (const item of lineChartData) {\n const xValueMap: Record<string, number[]> = Object.create(null);\n for (const point of item.data) {\n const xValue = point.x instanceof Date ? point.x.toLocaleString() : point.x;\n if (!xValueMap[xValue]) {\n xValueMap[xValue] = [];\n }\n xValueMap[xValue].push(point.y);\n if (xValueMap[xValue].length > 1) {\n return true;\n }\n }\n }\n return false;\n }\n\n private _containsMissingXValues(): boolean {\n const { lineChartData } = this.props.data;\n if (!lineChartData) {\n return false;\n }\n const allXValues: Set<string | number> = new Set();\n lineChartData.forEach((line: ILineChartPoints) => {\n line.data.forEach((point: ILineChartDataPoint) => {\n const xValue = point.x instanceof Date ? point.x.toLocaleString() : point.x;\n allXValues.add(xValue);\n });\n });\n // for all x values, check if the x value is present in all series\n let hasMissingValues = false;\n lineChartData.forEach((line: ILineChartPoints) => {\n allXValues.forEach((xValue: string | number) => {\n const point = line.data.find((item: ILineChartDataPoint) => {\n return item.x instanceof Date ? item.x.toLocaleString() === xValue : item.x === xValue;\n });\n if (!point) {\n hasMissingValues = true;\n }\n });\n });\n return hasMissingValues;\n }\n\n private _shouldFillToZeroY() {\n return this.props.mode === 'tozeroy' || this._containsSecondaryYAxis;\n }\n}\n"]}
@@ -240,7 +240,7 @@ exports.DeclarativeChart = React.forwardRef(function (_a, forwardedRef) {
240
240
  React.useImperativeHandle(props.componentRef, function () { return ({
241
241
  exportAsImage: exportAsImage,
242
242
  }); }, [exportAsImage]);
243
- var groupedTraces = {};
243
+ var groupedTraces = Object.create(null);
244
244
  var nonCartesianTraceCount = 0;
245
245
  // For annotation-only charts, create a single group entry
246
246
  if (chart.type === 'annotation') {