@fluentui/react-charting 5.24.7 → 5.24.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +37 -1
- package/CHANGELOG.md +21 -2
- package/dist/react-charting.d.ts +1 -1
- package/dist/react-charting.js +1 -1
- package/dist/react-charting.min.js +1 -1
- package/etc/react-charting.api.md +1 -1
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js +3 -2
- package/lib/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib/components/LineChart/LineChart.base.d.ts +2 -0
- package/lib/components/LineChart/LineChart.base.js +65 -51
- package/lib/components/LineChart/LineChart.base.js.map +1 -1
- package/lib/components/ScatterChart/ScatterChart.base.js +22 -23
- package/lib/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib/types/IDataPoint.d.ts +1 -1
- package/lib/types/IDataPoint.js.map +1 -1
- package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js +3 -2
- package/lib-amd/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-amd/components/LineChart/LineChart.base.d.ts +2 -0
- package/lib-amd/components/LineChart/LineChart.base.js +65 -51
- package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-amd/components/ScatterChart/ScatterChart.base.js +22 -23
- package/lib-amd/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib-amd/types/IDataPoint.d.ts +1 -1
- package/lib-amd/types/IDataPoint.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js +3 -2
- package/lib-commonjs/components/DeclarativeChart/PlotlySchemaAdapter.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.base.d.ts +2 -0
- package/lib-commonjs/components/LineChart/LineChart.base.js +65 -51
- package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-commonjs/components/ScatterChart/ScatterChart.base.js +22 -23
- package/lib-commonjs/components/ScatterChart/ScatterChart.base.js.map +1 -1
- package/lib-commonjs/types/IDataPoint.d.ts +1 -1
- package/lib-commonjs/types/IDataPoint.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LineChart.base.js","sourceRoot":"../src/","sources":["components/LineChart/LineChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select, pointer } from 'd3-selection';\nimport { bisector } from 'd3-array';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport { line as d3Line } from 'd3-shape';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport {\n classNamesFunction,\n getId,\n find,\n memoizeFunction,\n getRTL,\n initializeComponentRef,\n} from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n IBasestate,\n IChildProps,\n ILineChartProps,\n ILineChartPoints,\n ICustomizedCalloutData,\n IMargins,\n IRefArrayData,\n IColorFillBarsProps,\n ILineChartStyleProps,\n ILineChartStyles,\n ILineChartGap,\n ILineChartDataPoint,\n} from '../../index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport { EventsAnnotation } from './eventAnnotation/EventAnnotation';\nimport {\n calloutData,\n ChartTypes,\n getXAxisType,\n XAxisTypes,\n tooltipOfAxislabels,\n Points,\n pointTypes,\n getTypeOfAxis,\n getNextColor,\n getColorFromToken,\n findNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfDateForAreaLineVerticalBarChart,\n domainRangeOfNumericForAreaChart,\n createStringYAxis,\n areArraysEqual,\n getCurveFactory,\n YAxisType,\n} from '../../utilities/index';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { toImage } from '../../utilities/image-export-utils';\nimport { ScaleLinear } from 'd3-scale';\n\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\nconst getClassNames = classNamesFunction<ILineChartStyleProps, ILineChartStyles>();\n\nenum PointSize {\n hoverSize = 11,\n invisibleSize = 1,\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bisect = bisector((d: any) => d.x).left;\n\nconst DEFAULT_LINE_STROKE_SIZE = 4;\n// The given shape of a icon must be 2.5 times bigger than line width (known as stroke width)\nconst PATH_MULTIPLY_SIZE = 2.5;\n\n/**\n *\n * @param x units from origin\n * @param y units from origin\n * @param w is the legnth of the each side of a shape\n * @param index index to get the shape path\n */\nconst _getPointPath = (x: number, y: number, w: number, index: number): string => {\n const allPointPaths = [\n // circle path\n `M${x - w / 2} ${y}\n A${w / 2} ${w / 2} 0 1 0 ${x + w / 2} ${y}\n M${x - w / 2} ${y}\n A ${w / 2} ${w / 2} 0 1 1 ${x + w / 2} ${y}\n `,\n //square\n `M${x - w / 2} ${y - w / 2}\n L${x + w / 2} ${y - w / 2}\n L${x + w / 2} ${y + w / 2}\n L${x - w / 2} ${y + w / 2}\n Z`,\n //triangle\n `M${x - w / 2} ${y - 0.2886 * w}\n H ${x + w / 2}\n L${x} ${y + 0.5774 * w} Z`,\n //diamond\n `M${x} ${y - w / 2}\n L${x + w / 2} ${y}\n L${x} ${y + w / 2}\n L${x - w / 2} ${y}\n Z`,\n //pyramid\n `M${x} ${y - 0.5774 * w}\n L${x + w / 2} ${y + 0.2886 * w}\n L${x - w / 2} ${y + 0.2886 * w} Z`,\n //hexagon\n `M${x - 0.5 * w} ${y - 0.866 * w}\n L${x + 0.5 * w} ${y - 0.866 * w}\n L${x + w} ${y}\n L${x + 0.5 * w} ${y + 0.866 * w}\n L${x - 0.5 * w} ${y + 0.866 * w}\n L${x - w} ${y}\n Z`,\n //pentagon\n `M${x} ${y - 0.851 * w}\n L${x + 0.6884 * w} ${y - 0.2633 * w}\n L${x + 0.5001 * w} ${y + 0.6884 * w}\n L${x - 0.5001 * w} ${y + 0.6884 * w}\n L${x - 0.6884 * w} ${y - 0.2633 * w}\n Z`,\n //octagon\n `M${x - 0.5001 * w} ${y - 1.207 * w}\n L${x + 0.5001 * w} ${y - 1.207 * w}\n L${x + 1.207 * w} ${y - 0.5001 * w}\n L${x + 1.207 * w} ${y + 0.5001 * w}\n L${x + 0.5001 * w} ${y + 1.207 * w}\n L${x - 0.5001 * w} ${y + 1.207 * w}\n L${x - 1.207 * w} ${y + 0.5001 * w}\n L${x - 1.207 * w} ${y - 0.5001 * w}\n Z`,\n ];\n return allPointPaths[index];\n};\n\ntype LineChartDataWithIndex = ILineChartPoints & { index: number };\n\nexport interface ILineChartState extends IBasestate {\n // This array contains data of selected legends for points\n selectedLegendPoints: LineChartDataWithIndex[];\n // This array contains data of selected legends for color bars\n selectedColorBarLegend: IColorFillBarsProps[];\n // This is a boolean value which is set to true\n // when at least one legend is selected\n isSelectedLegend: boolean;\n // This value will be used as customized callout props - point callout.\n dataPointCalloutProps?: ICustomizedCalloutData;\n // This value will be used as Customized callout props - For stack callout.\n stackCalloutProps?: ICustomizedCalloutData;\n // active or hovered point\n activePoint?: string;\n // x-axis callout accessibility data\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n\n nearestCircleToHighlight: ILineChartDataPoint | null;\n\n activeLine: number | null;\n}\n\nexport class LineChartBase extends React.Component<ILineChartProps, ILineChartState> implements IChart {\n public static defaultProps: Partial<ILineChartProps> = {\n enableReflow: true,\n useUTC: true,\n };\n\n private _points: LineChartDataWithIndex[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _calloutPoints: any[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisScale: any = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _yScalePrimary: any = '';\n private _circleId: string;\n private _lineId: string;\n private _borderId: string;\n private _verticalLine: string;\n private _colorFillBarPatternId: string;\n private _uniqueCallOutID: string | null;\n private _refArray: IRefArrayData[];\n private margins: IMargins;\n private eventLabelHeight: number = 36;\n private lines: JSX.Element[];\n private _renderedColorFillBars: JSX.Element[];\n private _colorFillBars: IColorFillBarsProps[];\n private _tooltipId: string;\n private _rectId: string;\n private _staticHighlightCircle: string;\n private _createLegendsMemoized: (data: LineChartDataWithIndex[]) => JSX.Element;\n private _firstRenderOptimization: boolean;\n private _emptyChartId: string;\n private _isRTL: boolean = getRTL();\n private _cartesianChartRef: React.RefObject<IChart>;\n private _legendsRef: React.RefObject<ILegendContainer>;\n private _xMin: number = Number.NEGATIVE_INFINITY;\n private _xMax: number = Number.POSITIVE_INFINITY;\n private _xPadding: number = 0;\n private _yPaddingPrimary: number = 0;\n private _yScaleSecondary: ScaleLinear<number, number> | undefined;\n private _yPaddingSecondary: number = 0;\n private _hasMarkersMode: boolean = false;\n\n constructor(props: ILineChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this.state = {\n hoverXValue: '',\n activeLegend: '',\n YValueHover: [],\n refSelected: '',\n selectedLegend: props.legendProps?.selectedLegend ?? '',\n isCalloutVisible: false,\n selectedLegendPoints: this._injectIndexPropertyInLineChartData(this.props.data.lineChartData, true),\n selectedColorBarLegend: [],\n isSelectedLegend: (this.props.legendProps?.selectedLegends?.length ?? 0) > 0,\n activePoint: '',\n nearestCircleToHighlight: null,\n activeLine: null,\n };\n this._refArray = [];\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n this._colorFillBars = [];\n this._calloutPoints = calloutData(this._points) || [];\n this._circleId = getId('circle');\n this._lineId = getId('lineID');\n this._borderId = getId('borderID');\n this._verticalLine = getId('verticalLine');\n this._colorFillBarPatternId = getId('colorFillBarPattern');\n this._tooltipId = getId('LineChartTooltipId_');\n this._rectId = getId('containerRectLD');\n this._staticHighlightCircle = getId('staticHighlightCircle');\n this._createLegendsMemoized = memoizeFunction((data: LineChartDataWithIndex[]) => this._createLegends(data));\n this._firstRenderOptimization = true;\n this._emptyChartId = getId('_LineChart_empty');\n this._cartesianChartRef = React.createRef();\n this._legendsRef = React.createRef();\n\n props.eventAnnotationProps &&\n props.eventAnnotationProps.labelHeight &&\n (this.eventLabelHeight = props.eventAnnotationProps.labelHeight);\n }\n\n public componentDidUpdate(prevProps: ILineChartProps): void {\n if (\n prevProps.legendProps?.selectedLegend !== this.props.legendProps?.selectedLegend ||\n !areArraysEqual(prevProps.legendProps?.selectedLegends, this.props.legendProps?.selectedLegends)\n ) {\n this.setState({\n selectedLegend: this.props.legendProps?.selectedLegend ?? '',\n selectedLegendPoints: this._injectIndexPropertyInLineChartData(this.props.data.lineChartData, true),\n isSelectedLegend: (this.props.legendProps?.selectedLegends?.length ?? 0) > 0,\n });\n }\n\n /** note that height and width are not used to resize or set as dimesions of the chart,\n * fitParentContainer is responsible for setting the height and width or resizing of the svg/chart\n */\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n this._calloutPoints = calloutData(this._points) || [];\n }\n }\n\n public render(): JSX.Element {\n const { tickValues, tickFormat, eventAnnotationProps, legendProps, data } = this.props;\n this._points = this._injectIndexPropertyInLineChartData(data.lineChartData);\n\n const isXAxisDateType = getXAxisType(this._points);\n let points = this._points;\n if (legendProps && !!legendProps.canSelectMultipleLegends) {\n points = this.state.selectedLegendPoints.length >= 1 ? this.state.selectedLegendPoints : this._points;\n this._calloutPoints = calloutData(points);\n }\n\n let legendBars = null;\n // reduce computation cost by only creating legendBars\n // if when hideLegend is false.\n // NOTE: they are rendered only when hideLegend is false in CartesianChart.\n if (!this.props.hideLegend) {\n legendBars = this._createLegendsMemoized(this._points!);\n }\n const calloutProps = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n id: `toolTip${this._uniqueCallOutID}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n onDismiss: this._closeCallout,\n preventDismissOnEvent: () => true,\n hidden: !(!this.props.hideTooltip && this.state.isCalloutVisible),\n descriptionMessage:\n this.props.getCalloutDescriptionMessage && this.state.stackCalloutProps\n ? this.props.getCalloutDescriptionMessage(this.state.stackCalloutProps)\n : undefined,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: this.state.xAxisCalloutAccessibilityData,\n ...this.props.calloutProps,\n };\n const tickParams = {\n tickValues,\n tickFormat,\n };\n\n return !this._isChartEmpty() ? (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={points}\n chartType={ChartTypes.LineChart}\n isCalloutForStack\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n createYAxis={createNumericYAxis}\n getmargins={this._getMargins}\n getMinMaxOfYAxis={this._getNumericMinMaxOfY}\n getGraphData={this._initializeLineChartData}\n xAxisType={isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n customizedCallout={this._getCustomizedCallout()}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n onChartMouseLeave={this._handleChartMouseLeave}\n enableFirstRenderOptimization={this.props.enablePerfOptimization && this._firstRenderOptimization}\n ref={this._cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n this._xAxisScale = props.xScale!;\n this._yScalePrimary = props.yScalePrimary!;\n this._yScaleSecondary = props.yScaleSecondary;\n return (\n <>\n <g>\n <line\n x1={0}\n y1={0}\n x2={0}\n y2={props.containerHeight}\n stroke={'#323130'}\n id={this._verticalLine}\n visibility={'hidden'}\n strokeDasharray={'5,5'}\n />\n {this.props.optimizeLargeData ? (\n <rect\n id={this._rectId}\n width={props.containerWidth}\n height={props.containerHeight}\n fill={'transparent'}\n />\n ) : (\n <></>\n )}\n <g>\n {this._renderedColorFillBars}\n {this.lines}\n </g>\n {eventAnnotationProps && (\n <EventsAnnotation\n theme={this.props.theme}\n {...eventAnnotationProps}\n scale={props.xScale!}\n chartYTop={this.margins.top! + this.eventLabelHeight}\n chartYBottom={props.containerHeight! - 35}\n />\n )}\n </g>\n </>\n );\n }}\n />\n ) : (\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 toImage(this._cartesianChartRef.current?.chartContainer, this._legendsRef.current?.toSVG, this._isRTL, opts);\n };\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 shiftX: number,\n ) => {\n let domainNRangeValue: IDomainNRange;\n if (this._hasMarkersMode && xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = this._getDomainNRangeValuesWithPadding(points, margins, width, isRTL);\n } else if (this._hasMarkersMode && xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = this._getDomainNRangeValuesOfDateWithPadding(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else if (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfNumericForAreaChart(points, margins, width, isRTL);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineVerticalBarChart(\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 _injectIndexPropertyInLineChartData = (\n lineChartData?: ILineChartPoints[],\n isFilterSelectedLegends: boolean = false,\n ): LineChartDataWithIndex[] | [] => {\n const { allowMultipleShapesForPoints = false } = this.props;\n // Apply filter only if isPropChange is true\n const filteredData = isFilterSelectedLegends\n ? lineChartData?.filter(\n (item: ILineChartPoints) =>\n this.props.legendProps?.selectedLegends?.includes(item.legend) ||\n this.props.legendProps?.selectedLegend === item.legend,\n )\n : lineChartData;\n this._hasMarkersMode =\n filteredData?.some((item: ILineChartPoints) => item.lineOptions?.mode?.includes?.('markers')) ?? false;\n return filteredData\n ? filteredData.map((item: ILineChartPoints, index: number) => {\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 {\n ...item,\n index: allowMultipleShapesForPoints ? index : -1,\n color,\n };\n })\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 _getNumericMinMaxOfY = (\n points: ILineChartPoints[],\n yAxisType?: YAxisType,\n useSecondaryYScale?: boolean,\n ): { startValue: number; endValue: number } => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { startValue, endValue } = findNumericMinMaxOfY(points, yAxisType, useSecondaryYScale);\n let yPadding = 0;\n if (this._hasMarkersMode) {\n yPadding = (endValue - startValue) * 0.1;\n if (useSecondaryYScale) {\n this._yPaddingSecondary = yPadding;\n } else {\n this._yPaddingPrimary = yPadding;\n }\n }\n return {\n startValue: startValue - yPadding,\n endValue: endValue + yPadding,\n };\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _initializeLineChartData = (\n xScale: NumericAxis,\n yScalePrimary: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n yAxisElement?: SVGElement | null,\n yScaleSecondary?: ScaleLinear<number, number>,\n ) => {\n this._xAxisScale = xScale;\n this._yScalePrimary = yScalePrimary;\n this._yScaleSecondary = yScaleSecondary;\n this._renderedColorFillBars = this.props.colorFillBars ? this._createColorFillBars(containerHeight) : [];\n this.lines = this._createLines(xElement!, containerHeight!);\n };\n\n private _handleSingleLegendSelectionAction = (lineChartItem: LineChartDataWithIndex | IColorFillBarsProps) => {\n if (this.state.selectedLegend === lineChartItem.legend) {\n this.setState({ selectedLegend: '' });\n this._handleLegendClick(lineChartItem, null);\n } else {\n this.setState({ selectedLegend: lineChartItem.legend });\n this._handleLegendClick(lineChartItem, lineChartItem.legend);\n }\n };\n\n private _onHoverCardHide = () => {\n this.setState({\n selectedLegendPoints: [],\n selectedColorBarLegend: [],\n isSelectedLegend: false,\n });\n };\n\n private _createLegends(data: LineChartDataWithIndex[]): JSX.Element {\n const { legendProps, allowMultipleShapesForPoints = false } = this.props;\n const isLegendMultiSelectEnabled = !!(legendProps && !!legendProps.canSelectMultipleLegends);\n const mapLegendToPoints: Record<string, LineChartDataWithIndex[]> = {};\n data.forEach((point: LineChartDataWithIndex) => {\n if (point.legend) {\n if (!mapLegendToPoints[point.legend]) {\n mapLegendToPoints[point.legend] = [];\n }\n mapLegendToPoints[point.legend].push(point);\n }\n });\n const legendDataItems: ILegend[] = Object.entries(mapLegendToPoints).map(([legendTitle, points]) => {\n const representativePoint = points[0];\n // mapping data to the format Legends component needs\n const legend: ILegend = {\n title: legendTitle,\n color: representativePoint.color!,\n action: () => {\n if (isLegendMultiSelectEnabled) {\n points.forEach(p => this._handleMultipleLineLegendSelectionAction(p));\n } else {\n points.forEach(p => this._handleSingleLegendSelectionAction(p));\n }\n },\n onMouseOutAction: () => {\n this.setState({ activeLegend: '' });\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this.setState({ activeLegend: legendTitle });\n },\n ...(representativePoint.legendShape && {\n shape: representativePoint.legendShape,\n }),\n ...(allowMultipleShapesForPoints && {\n shape: Points[representativePoint.index % Object.keys(pointTypes).length] as ILegend['shape'],\n }),\n };\n return legend;\n });\n\n const colorFillBarsLegendDataItems = this.props.colorFillBars\n ? this.props.colorFillBars.map((colorFillBar: IColorFillBarsProps, index: number) => {\n const title = colorFillBar.legend;\n // isInverted property is applicable to v8 themes only\n const color = getColorFromToken(colorFillBar.color, this.props.theme?.isInverted);\n const legend: ILegend = {\n title,\n color,\n action: () => {\n if (isLegendMultiSelectEnabled) {\n this._handleMultipleColorFillBarLegendSelectionAction(colorFillBar);\n } else {\n this._handleSingleLegendSelectionAction(colorFillBar);\n }\n },\n onMouseOutAction: () => {\n this.setState({ activeLegend: '' });\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this.setState({ activeLegend: title });\n },\n opacity: this._getColorFillBarOpacity(colorFillBar),\n stripePattern: colorFillBar.applyPattern,\n };\n return legend;\n })\n : [];\n\n return (\n <Legends\n legends={[...legendDataItems, ...colorFillBarsLegendDataItems]}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n overflowProps={this.props.legendsOverflowProps}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...(isLegendMultiSelectEnabled && { onLegendHoverCardLeave: this._onHoverCardHide })}\n {...this.props.legendProps}\n ref={this._legendsRef}\n />\n );\n }\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getBoxWidthOfShape = (pointId: string, pointIndex: number, isLastPoint: boolean) => {\n const { allowMultipleShapesForPoints = false, strokeWidth = DEFAULT_LINE_STROKE_SIZE } = this.props;\n const { activePoint } = this.state;\n if (allowMultipleShapesForPoints) {\n if (activePoint === pointId) {\n return PointSize.hoverSize;\n } else if (pointIndex === 1 || isLastPoint) {\n return strokeWidth * PATH_MULTIPLY_SIZE;\n } else {\n return PointSize.invisibleSize;\n }\n } else {\n if (activePoint === pointId) {\n return PointSize.hoverSize;\n } else {\n return PointSize.invisibleSize;\n }\n }\n };\n\n private _getPath = (\n xPos: number,\n yPos: number,\n pointId: string,\n pointIndex: number,\n isLastPoint: boolean,\n pointOftheLine: number,\n ): string => {\n const { allowMultipleShapesForPoints = false } = this.props;\n let w = this._getBoxWidthOfShape(pointId, pointIndex, isLastPoint);\n const index: number = allowMultipleShapesForPoints ? pointOftheLine % Object.keys(pointTypes).length : 0;\n const widthRatio = pointTypes[index].widthRatio;\n w = widthRatio > 1 ? w / widthRatio : w;\n\n return _getPointPath(xPos, yPos, w, index);\n };\n private _getPointFill = (lineColor: string, pointId: string, pointIndex: number, isLastPoint: boolean) => {\n const { activePoint } = this.state;\n const { theme, allowMultipleShapesForPoints = false } = this.props;\n if (allowMultipleShapesForPoints) {\n if (pointIndex === 1 || isLastPoint) {\n if (activePoint === pointId) {\n return theme!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n } else {\n if (activePoint === pointId) {\n return theme!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n }\n } else {\n if (activePoint === pointId) {\n return theme!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n }\n };\n private _getRangeForScatterMarkerSize(yScale: ScaleLinear<number, number>, yPadding: number): number {\n const extraXPixels = this._isRTL\n ? this._xAxisScale(this._xMax - this._xPadding) - this._xAxisScale(this._xMax)\n : this._xAxisScale(this._xMin + this._xPadding) - this._xAxisScale(this._xMin);\n\n const yMin = yScale.domain()[0];\n const extraYPixels = yScale(yMin) - yScale(yMin + yPadding);\n return Math.min(extraXPixels, extraYPixels);\n }\n private _createLines(xElement: SVGElement, containerHeight: number): JSX.Element[] {\n const lines: JSX.Element[] = [];\n if (this.state.isSelectedLegend) {\n this._points = this.state.selectedLegendPoints;\n } else {\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n }\n const maxMarkerSize = d3Max(this._points, (point: ILineChartPoints) => {\n return d3Max(point.data, (item: ILineChartDataPoint) => {\n return item.markerSize as number;\n });\n })!;\n\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n });\n\n for (let i = this._points.length - 1; i >= 0; i--) {\n const linesForLine: JSX.Element[] = [];\n const bordersForLine: JSX.Element[] = [];\n const pointsForLine: JSX.Element[] = [];\n\n const legendVal: string = this._points[i].legend;\n const lineColor: string = this._points[i].color!;\n const { activePoint } = this.state;\n const { theme } = this.props;\n const verticaLineHeight = containerHeight - this.margins.bottom! + 6;\n const yScale =\n this._points[i].useSecondaryYScale && this._yScaleSecondary ? this._yScaleSecondary : this._yScalePrimary;\n const yPadding =\n this._points[i].useSecondaryYScale && this._yScaleSecondary ? this._yPaddingSecondary : this._yPaddingPrimary;\n const extraMaxPixels = this._hasMarkersMode ? this._getRangeForScatterMarkerSize(yScale, yPadding) : 0;\n\n if (this._points[i].data.length === 1) {\n const { x: x1, y: y1, xAxisCalloutData, xAxisCalloutAccessibilityData } = this._points[i].data[0];\n const circleId = `${this._circleId}_${i}`;\n const isLegendSelected: boolean =\n this._legendHighlighted(legendVal) || this._noLegendHighlighted() || this.state.isSelectedLegend;\n const currentMarkerSize = this._points[i].data[0].markerSize!;\n pointsForLine.push(\n <circle\n id={circleId}\n key={circleId}\n r={\n currentMarkerSize\n ? (currentMarkerSize! * extraMaxPixels) / maxMarkerSize\n : activePoint === circleId\n ? 5.5\n : 3.5\n }\n cx={this._xAxisScale(x1)}\n cy={yScale(y1)}\n fill={activePoint === circleId ? theme!.semanticColors.bodyBackground : lineColor}\n opacity={isLegendSelected ? 1 : 0.1}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n strokeWidth={activePoint === circleId ? DEFAULT_LINE_STROKE_SIZE : 0}\n stroke={activePoint === circleId ? lineColor : ''}\n role=\"img\"\n aria-label={this._getAriaLabel(i, 0)}\n data-is-focusable={isLegendSelected}\n ref={(e: SVGCircleElement | null) => {\n this._refCallback(e!, circleId);\n }}\n onFocus={() => this._handleFocus(circleId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].data[0].onDataPointClick)}\n />,\n );\n }\n\n let gapIndex = 0;\n const gaps = this._points[i].gaps?.sort((a, b) => a.startIndex - b.startIndex) ?? [];\n const lineCurve = this._points[i].lineOptions?.curve;\n\n // Use path rendering technique for larger datasets to optimize performance.\n if ((this.props.optimizeLargeData || lineCurve) && this._points[i].data.length > 1) {\n const line = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => this._xAxisScale(d[0]))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => yScale(d[1]))\n .curve(getCurveFactory(lineCurve));\n\n const lineId = `${this._lineId}_${i}`;\n const borderId = `${this._borderId}_${i}`;\n const strokeWidth =\n this._points[i].lineOptions?.strokeWidth || this.props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;\n\n const isLegendSelected: boolean =\n this._legendHighlighted(legendVal) || this._noLegendHighlighted() || this.state.isSelectedLegend;\n\n const lineData: [number, number][] = [];\n for (let k = 0; k < this._points[i].data.length; k++) {\n lineData.push([\n this._points[i].data[k].x instanceof Date\n ? (this._points[i].data[k].x as Date).getTime()\n : (this._points[i].data[k].x as number),\n this._points[i].data[k].y,\n ]);\n }\n\n if (isLegendSelected) {\n const lineBorderWidth = this._points[i].lineOptions?.lineBorderWidth\n ? Number.parseFloat(this._points[i].lineOptions!.lineBorderWidth!.toString())\n : 0;\n if (lineBorderWidth > 0) {\n bordersForLine.push(\n <path\n id={borderId}\n key={borderId}\n d={line(lineData)!}\n fill=\"transparent\"\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeWidth={Number.parseFloat(strokeWidth.toString()) + lineBorderWidth}\n stroke={this._points[i].lineOptions?.lineBorderColor || theme!.semanticColors.bodyBackground}\n opacity={1}\n />,\n );\n }\n\n linesForLine.push(\n <path\n id={lineId}\n key={lineId}\n d={line(lineData)!}\n fill=\"transparent\"\n data-is-focusable={true}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n onMouseMove={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOver={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOut={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].onLineClick)}\n opacity={1}\n />,\n );\n } else {\n linesForLine.push(\n <path\n id={lineId}\n key={lineId}\n d={line(lineData)!}\n fill=\"transparent\"\n data-is-focusable={false}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n opacity={0.1}\n />,\n );\n }\n\n const isPointHighlighted = this.state.activeLine !== null && this.state.activeLine === i;\n\n pointsForLine.push(\n <circle\n id={`${this._staticHighlightCircle}_${i}`}\n key={`${this._staticHighlightCircle}_${i}`}\n r={5.5}\n cx={0}\n cy={0}\n fill={theme!.semanticColors.bodyBackground}\n strokeWidth={DEFAULT_LINE_STROKE_SIZE}\n stroke={lineColor}\n visibility={isPointHighlighted ? 'visibility' : 'hidden'}\n onMouseMove={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOver={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOut={this._handleMouseOut}\n />,\n );\n } else if (!this.props.optimizeLargeData) {\n for (let j = 1; j < this._points[i].data.length; j++) {\n const gapResult = this._checkInGap(j, gaps, gapIndex);\n const isInGap = gapResult.isInGap;\n gapIndex = gapResult.gapIndex;\n\n const lineId = `${this._lineId}_${i}_${j}`;\n const borderId = `${this._borderId}_${i}_${j}`;\n const circleId = `${this._circleId}_${i}_${j}`;\n const { x: x1, y: y1, xAxisCalloutData, xAxisCalloutAccessibilityData } = this._points[i].data[j - 1];\n const { x: x2, y: y2 } = this._points[i].data[j];\n let path = this._getPath(this._xAxisScale(x1), yScale(y1), circleId, j, false, this._points[i].index);\n const strokeWidth =\n this._points[i].lineOptions?.strokeWidth || this.props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;\n\n const isLegendSelected: boolean =\n this._legendHighlighted(legendVal) || this._noLegendHighlighted() || this.state.isSelectedLegend;\n\n const currentPointHidden = this._points[i].hideNonActiveDots && activePoint !== circleId;\n let currentMarkerSize = this._points[i].data[j - 1].markerSize!;\n pointsForLine.push(\n this._points[i].lineOptions?.mode?.includes('markers') ? (\n <>\n <circle\n id={circleId}\n key={circleId}\n r={currentMarkerSize ? (currentMarkerSize! * extraMaxPixels) / maxMarkerSize : 4}\n cx={this._xAxisScale(x1)}\n cy={yScale(y1)}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)\n }\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].data[j - 1].onDataPointClick)}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.01}\n fill={this._getPointFill(lineColor, circleId, j, false)}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n role=\"img\"\n aria-label={this._points[i].data[j - 1].text ?? this._getAriaLabel(i, j - 1)}\n />\n {this._points[i].data[j - 1].text && (\n <text\n key={`${circleId}-label`}\n x={this._xAxisScale(x1)}\n y={yScale(y1) + 35}\n fontSize={12}\n fill={theme?.semanticColors.bodyText}\n textAnchor=\"middle\"\n className={classNames.markerLabel}\n >\n {this._points[i].data[j - 1].text}\n </text>\n )}\n </>\n ) : (\n <path\n id={circleId}\n key={circleId}\n d={path}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() => this._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].data[j - 1].onDataPointClick)}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.01}\n fill={this._getPointFill(lineColor, circleId, j, false)}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n role=\"img\"\n aria-label={this._getAriaLabel(i, j - 1)}\n />\n ),\n );\n if (j + 1 === this._points[i].data.length) {\n // If this is last point of the line segment.\n const lastCircleId = `${circleId}${j}L`;\n const hiddenHoverCircleId = `${circleId}${j}D`;\n const lastPointHidden = this._points[i].hideNonActiveDots && activePoint !== lastCircleId;\n path = this._getPath(this._xAxisScale(x2), yScale(y2), lastCircleId, j, true, this._points[i].index);\n const {\n xAxisCalloutData: lastCirlceXCallout,\n xAxisCalloutAccessibilityData: lastCirlceXCalloutAccessibilityData,\n } = this._points[i].data[j];\n currentMarkerSize = this._points[i].data[j].markerSize!;\n pointsForLine.push(\n <React.Fragment key={`${lastCircleId}_container`}>\n {this._points[i].lineOptions?.mode?.includes('markers') ? (\n <>\n <circle\n id={lastCircleId}\n key={lastCircleId}\n r={currentMarkerSize ? (currentMarkerSize! * extraMaxPixels) / maxMarkerSize : 4}\n cx={this._xAxisScale(x2)}\n cy={yScale(y2)}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(\n lineId,\n x2,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n )\n }\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].data[j].onDataPointClick)}\n opacity={isLegendSelected && !lastPointHidden ? 1 : 0.01}\n fill={this._getPointFill(lineColor, lastCircleId, j, true)}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n role=\"img\"\n aria-label={this._points[i].data[j].text ?? this._getAriaLabel(i, j)}\n />\n {this._points[i].data[j].text && (\n <text\n key={`${lastCircleId}-label`}\n x={this._xAxisScale(x2)}\n y={yScale(y2) + 35}\n fontSize={12}\n fill={theme?.semanticColors.bodyText}\n textAnchor=\"middle\"\n className={classNames.markerLabel}\n >\n {this._points[i].data[j].text}\n </text>\n )}\n </>\n ) : (\n <path\n id={lastCircleId}\n key={lastCircleId}\n d={path}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(\n lineId,\n x2,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n )\n }\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].data[j].onDataPointClick)}\n opacity={isLegendSelected && !lastPointHidden ? 1 : 0.01}\n fill={this._getPointFill(lineColor, lastCircleId, j, true)}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n role=\"img\"\n aria-label={this._getAriaLabel(i, j)}\n />\n )}\n {/* Dummy circle acting as magnetic latch for last callout point */}\n <circle\n id={hiddenHoverCircleId}\n key={hiddenHoverCircleId}\n r={8}\n cx={this._xAxisScale(x2)}\n cy={yScale(y2)}\n opacity={0}\n width={0}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n strokeWidth={0}\n focusable={false}\n onBlur={this._handleMouseOut}\n />\n </React.Fragment>,\n );\n }\n\n if (!this._hasMarkersMode || this._points[i].lineOptions?.mode?.includes('lines')) {\n if (isLegendSelected) {\n // don't draw line if it is in a gap\n if (!isInGap) {\n const lineBorderWidth = this._points[i].lineOptions?.lineBorderWidth\n ? Number.parseFloat(this._points[i].lineOptions!.lineBorderWidth!.toString())\n : 0;\n if (lineBorderWidth > 0) {\n bordersForLine.push(\n <line\n id={borderId}\n key={borderId}\n x1={this._xAxisScale(x1)}\n y1={yScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={yScale(y2)}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeWidth={Number.parseFloat(strokeWidth.toString()) + lineBorderWidth}\n stroke={this._points[i].lineOptions?.lineBorderColor || theme!.semanticColors.bodyBackground}\n opacity={1}\n />,\n );\n }\n\n linesForLine.push(\n <line\n id={lineId}\n key={lineId}\n x1={this._xAxisScale(x1)}\n y1={yScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={yScale(y2)}\n strokeWidth={strokeWidth}\n ref={(e: SVGLineElement | null) => {\n this._refCallback(e!, lineId);\n }}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n stroke={lineColor}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n strokeDashoffset={this._points[i].lineOptions?.strokeDashoffset}\n opacity={1}\n {...this._getClickHandler(this._points[i].onLineClick)}\n />,\n );\n }\n } else {\n if (!isInGap) {\n linesForLine.push(\n <line\n id={lineId}\n key={lineId}\n x1={this._xAxisScale(x1)}\n y1={yScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={yScale(y2)}\n strokeWidth={strokeWidth}\n stroke={lineColor}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n strokeDashoffset={this._points[i].lineOptions?.strokeDashoffset}\n opacity={0.1}\n />,\n );\n }\n }\n }\n }\n }\n\n lines.push(\n <g\n key={`line_${i}`}\n role=\"region\"\n aria-label={`${legendVal}, line ${i + 1} of ${this._points.length} with ${\n this._points[i].data.length\n } data points.`}\n >\n {bordersForLine}\n {linesForLine}\n {pointsForLine}\n </g>,\n );\n }\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(this._xAxisScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classNames.tooltip!,\n id: this._tooltipId,\n axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return lines;\n }\n\n private _createColorFillBars = (containerHeight: number) => {\n const colorFillBars: JSX.Element[] = [];\n if (this.state.isSelectedLegend) {\n this._colorFillBars = this.state.selectedColorBarLegend;\n } else {\n this._colorFillBars = this.props.colorFillBars!;\n }\n\n const yMinMaxValues = findNumericMinMaxOfY(this._points);\n const FILL_Y_PADDING = 3;\n for (let i = 0; i < this._colorFillBars.length; i++) {\n const colorFillBar = this._colorFillBars[i];\n const legend = typeof colorFillBar.legend === 'string' ? colorFillBar.legend.replace(/\\W/g, '') : '';\n const colorFillBarId = getId(legend);\n // isInverted property is applicable to v8 themes only\n const color = getColorFromToken(colorFillBar.color, this.props.theme?.isInverted);\n\n if (colorFillBar.applyPattern) {\n // Using a pattern element because CSS was unable to render diagonal stripes for rect elements\n colorFillBars.push(this._getStripePattern(color, i));\n }\n\n for (let j = 0; j < colorFillBar.data.length; j++) {\n const startX = colorFillBar.data[j].startX;\n const endX = colorFillBar.data[j].endX;\n const opacity =\n this._legendHighlighted(colorFillBar.legend) || this._noLegendHighlighted() || this.state.isSelectedLegend\n ? this._getColorFillBarOpacity(colorFillBar)\n : 0.1;\n colorFillBars.push(\n <rect\n fill={colorFillBar.applyPattern ? `url(#${this._colorFillBarPatternId}_${i})` : color}\n fillOpacity={opacity}\n x={this._isRTL ? this._xAxisScale(endX) : this._xAxisScale(startX)}\n y={this._yScalePrimary(yMinMaxValues.endValue) - FILL_Y_PADDING}\n width={Math.abs(this._xAxisScale(endX) - this._xAxisScale(startX))}\n height={\n this._yScalePrimary(this.props.yMinValue || 0) -\n this._yScalePrimary(yMinMaxValues.endValue) +\n FILL_Y_PADDING\n }\n key={`${colorFillBarId}${j}`}\n />,\n );\n }\n }\n return colorFillBars;\n };\n\n private _getStripePattern = (color: string, id: number) => {\n // This describes a tile pattern that resembles diagonal stripes\n // For more information: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d\n const stripePath = 'M-4,4 l8,-8 M0,16 l16,-16 M12,20 l8,-8';\n return (\n <pattern\n id={`${this._colorFillBarPatternId}_${id}`}\n width={16}\n height={16}\n key={`${this._colorFillBarPatternId}_${id}`}\n patternUnits={'userSpaceOnUse'}\n >\n <path d={stripePath} stroke={color} strokeWidth={1.25} />\n </pattern>\n );\n };\n\n private _checkInGap = (pointIndex: number, gaps: ILineChartGap[], currentGapIndex: number) => {\n let gapIndex = currentGapIndex;\n let isInGap = false;\n\n while (gapIndex < gaps.length && pointIndex > gaps[gapIndex].endIndex) {\n gapIndex++;\n }\n\n if (gapIndex < gaps.length && pointIndex > gaps[gapIndex].startIndex && pointIndex <= gaps[gapIndex].endIndex) {\n isInGap = true;\n }\n return { isInGap, gapIndex };\n };\n\n private _refCallback(element: SVGGElement, legendTitle: string): void {\n this._refArray.push({ index: legendTitle, refElement: element });\n }\n\n private _onMouseOverLargeDataset = (\n linenumber: number,\n lineHeight: number,\n yScale: ScaleLinear<number, number>,\n mouseEvent: React.MouseEvent<SVGRectElement | SVGPathElement | SVGCircleElement>,\n ) => {\n mouseEvent.persist();\n const { data } = this.props;\n const { lineChartData } = data;\n\n // This will get the value of the X when mouse is on the chart\n const xOffset = this._xAxisScale.invert(pointer(mouseEvent)[0], document.getElementById(this._rectId)!);\n const i = bisect(lineChartData![linenumber].data, xOffset);\n const d0 = lineChartData![linenumber].data[i - 1] as ILineChartDataPoint;\n const d1 = lineChartData![linenumber].data[i] as ILineChartDataPoint;\n let axisType: XAxisTypes | null = null;\n let xPointToHighlight: string | Date | number | null = null;\n let index: null | number = null;\n if (d0 === undefined && d1 !== undefined) {\n xPointToHighlight = d1.x;\n index = i;\n } else if (d0 !== undefined && d1 === undefined) {\n xPointToHighlight = d0.x;\n index = i - 1;\n } else {\n axisType = getTypeOfAxis(lineChartData![linenumber].data[0].x, true) as XAxisTypes;\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 xPointToHighlight = 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 xPointToHighlight = 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![linenumber].data[index as number];\n const formattedDate =\n xPointToHighlight instanceof Date\n ? formatDateToLocaleString(xPointToHighlight, this.props.culture, this.props.useUTC)\n : xPointToHighlight;\n const modifiedXVal = xPointToHighlight instanceof Date ? xPointToHighlight.getTime() : xPointToHighlight;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const found: any = find(this._calloutPoints, (element: { x: string | number }) => {\n return element.x === modifiedXVal;\n });\n const pointToHighlight: ILineChartDataPoint = lineChartData![linenumber].data[index!];\n const pointToHighlightUpdated =\n this.state.nearestCircleToHighlight === null ||\n (this.state.nearestCircleToHighlight !== null &&\n pointToHighlight !== null &&\n (this.state.nearestCircleToHighlight.x !== pointToHighlight.x ||\n this.state.nearestCircleToHighlight.y !== pointToHighlight.y));\n // if no points need to be called out then don't show vertical line and callout card\n if (found && pointToHighlightUpdated) {\n this._uniqueCallOutID = `#${this._staticHighlightCircle}_${linenumber}`;\n\n d3Select(`#${this._staticHighlightCircle}_${linenumber}`)\n .attr('cx', `${this._xAxisScale(pointToHighlight.x)}`)\n .attr('cy', `${yScale(pointToHighlight.y)}`)\n .attr('visibility', 'visibility');\n\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${this._xAxisScale(pointToHighlight.x)}, ${yScale(pointToHighlight.y)})`)\n .attr('visibility', 'visibility')\n .attr('y2', `${lineHeight - yScale(pointToHighlight.y)}`);\n\n this.setState({\n nearestCircleToHighlight: pointToHighlight,\n isCalloutVisible: true,\n refSelected: `#${this._staticHighlightCircle}_${linenumber}`,\n stackCalloutProps: found!,\n YValueHover: found.values,\n dataPointCalloutProps: found!,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n xAxisCalloutAccessibilityData,\n activePoint: '',\n activeLine: linenumber,\n });\n }\n\n if (!found) {\n this.setState({\n isCalloutVisible: false,\n nearestCircleToHighlight: pointToHighlight,\n activePoint: '',\n activeLine: linenumber,\n });\n }\n };\n\n private _handleFocus = (\n lineId: string,\n x: number | Date,\n\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData?: IAccessibilityProps,\n ) => {\n this._uniqueCallOutID = circleId;\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, this.props.culture, this.props.useUTC) : x;\n const xVal = x instanceof Date ? x.getTime() : x;\n const found = find(this._calloutPoints, (element: { x: string | number }) => element.x === xVal);\n // if no points need to be called out then don't show vertical line and callout card\n\n if (found) {\n const _this = this;\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${_this._xAxisScale(x)}, 0)`)\n .attr('visibility', 'visibility');\n this._refArray.forEach((obj: IRefArrayData) => {\n if (obj.index === lineId) {\n this.setState({\n isCalloutVisible: true,\n refSelected: obj.refElement,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : '' + formattedData,\n YValueHover: found.values,\n stackCalloutProps: found!,\n dataPointCalloutProps: found!,\n activePoint: circleId,\n xAxisCalloutAccessibilityData,\n });\n }\n });\n } else {\n this.setState({\n activePoint: circleId,\n });\n }\n };\n\n private _handleHover = (\n x: number | Date,\n y: number | Date,\n lineHeight: number,\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData: IAccessibilityProps | undefined,\n yScale: ScaleLinear<number, number>,\n mouseEvent: React.MouseEvent<SVGElement>,\n ) => {\n mouseEvent.persist();\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, this.props.culture, this.props.useUTC) : x;\n const xVal = x instanceof Date ? x.getTime() : x;\n const _this = this;\n const found = find(this._calloutPoints, (element: { x: string | number }) => element.x === xVal);\n // if no points need to be called out then don't show vertical line and callout card\n\n if (found) {\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${_this._xAxisScale(x)}, ${yScale(y)})`)\n .attr('visibility', 'visibility')\n .attr('y2', `${lineHeight - yScale(y)}`);\n if (this._uniqueCallOutID !== circleId) {\n this._uniqueCallOutID = circleId;\n this.setState({\n isCalloutVisible: true,\n refSelected: `#${circleId}`,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : '' + formattedData,\n YValueHover: found.values,\n stackCalloutProps: found!,\n dataPointCalloutProps: found!,\n activePoint: circleId,\n xAxisCalloutAccessibilityData,\n nearestCircleToHighlight: null,\n activeLine: null,\n });\n }\n } else {\n this.setState({\n activePoint: circleId,\n nearestCircleToHighlight: null,\n activeLine: null,\n });\n }\n };\n\n /**\n * Screen readers announce an element as clickable if the onClick attribute is set.\n * This function sets the attribute only when a click event handler is provided.\n */\n private _getClickHandler = (func?: () => void): { onClick?: () => void } => {\n if (func) {\n return {\n onClick: func,\n };\n }\n\n return {};\n };\n\n private _handleMouseOut = () => {\n d3Select(`#${this._verticalLine}`).attr('visibility', 'hidden');\n };\n\n private _handleChartMouseLeave = () => {\n this._uniqueCallOutID = null;\n this.setState({\n isCalloutVisible: false,\n activePoint: '',\n activeLine: null,\n });\n };\n\n private _handleLegendClick = (\n lineChartItem: LineChartDataWithIndex | IColorFillBarsProps,\n selectedLegend: string | null | string[],\n ): void => {\n if (lineChartItem.onLegendClick) {\n lineChartItem.onLegendClick(selectedLegend);\n }\n };\n\n private _handleMultipleLineLegendSelectionAction = (selectedLine: LineChartDataWithIndex) => {\n const selectedLineIndex = this.state.selectedLegendPoints.reduce((acc, line, index) => {\n if (acc > -1 || line.legend !== selectedLine.legend) {\n return acc;\n } else {\n return index;\n }\n }, -1);\n\n let selectedLines: LineChartDataWithIndex[];\n if (selectedLineIndex === -1) {\n selectedLines = [...this.state.selectedLegendPoints, selectedLine];\n } else {\n selectedLines = this.state.selectedLegendPoints\n .slice(0, selectedLineIndex)\n .concat(this.state.selectedLegendPoints.slice(selectedLineIndex + 1));\n }\n\n const areAllLineLegendsSelected = this.props.data && selectedLines.length === this.props.data.lineChartData!.length;\n\n if (\n areAllLineLegendsSelected &&\n ((this.props.colorFillBars && this.props.colorFillBars.length === this.state.selectedColorBarLegend.length) ||\n !this.props.colorFillBars)\n ) {\n // Clear all legends if all legends including color fill bar legends are selected\n // Or clear all legends if all legends are selected and there are no color fill bars\n this._clearMultipleLegendSelections();\n } else if (!selectedLines.length && !this.state.selectedColorBarLegend.length) {\n // Clear all legends if no legends including color fill bar legends are selected\n this._clearMultipleLegendSelections();\n } else {\n // Otherwise, set state when one or more legends are selected, including color fill bar legends\n this.setState({\n selectedLegendPoints: selectedLines,\n isSelectedLegend: true,\n });\n }\n\n const selectedLegendTitlesToPass = selectedLines.map((line: LineChartDataWithIndex) => line.legend);\n this._handleLegendClick(selectedLine, selectedLegendTitlesToPass);\n };\n\n private _handleMultipleColorFillBarLegendSelectionAction = (selectedColorFillBar: IColorFillBarsProps) => {\n const selectedColorFillBarIndex = this.state.selectedColorBarLegend.reduce((acc, colorFillBar, index) => {\n if (acc > -1 || colorFillBar.legend !== selectedColorFillBar.legend) {\n return acc;\n } else {\n return index;\n }\n }, -1);\n\n let selectedColorFillBars: IColorFillBarsProps[];\n if (selectedColorFillBarIndex === -1) {\n selectedColorFillBars = [...this.state.selectedColorBarLegend, selectedColorFillBar];\n } else {\n selectedColorFillBars = this.state.selectedColorBarLegend\n .slice(0, selectedColorFillBarIndex)\n .concat(this.state.selectedColorBarLegend.slice(selectedColorFillBarIndex + 1));\n }\n\n const areAllColorFillBarLegendsSelected =\n selectedColorFillBars.length === (this.props.colorFillBars && this.props.colorFillBars!.length);\n\n if (\n areAllColorFillBarLegendsSelected &&\n ((this.props.data && this.props.data.lineChartData!.length === this.state.selectedLegendPoints.length) ||\n !this.props.data)\n ) {\n // Clear all legends if all legends, including line legends, are selected\n // Or clear all legends if all legends are selected and there is no line data\n this._clearMultipleLegendSelections();\n } else if (!selectedColorFillBars.length && !this.state.selectedLegendPoints.length) {\n // Clear all legends if no legends are selected, including line legends\n this._clearMultipleLegendSelections();\n } else {\n // set state when one or more legends are selected, including line legends\n this.setState({\n selectedColorBarLegend: selectedColorFillBars,\n isSelectedLegend: true,\n });\n }\n\n const selectedLegendTitlesToPass = selectedColorFillBars.map(\n (colorFillBar: IColorFillBarsProps) => colorFillBar.legend,\n );\n this._handleLegendClick(selectedColorFillBar, selectedLegendTitlesToPass);\n };\n\n private _clearMultipleLegendSelections = () => {\n this.setState({\n selectedColorBarLegend: [],\n selectedLegendPoints: [],\n isSelectedLegend: 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 (\n this.state.selectedLegend === legend || (this.state.selectedLegend === '' && this.state.activeLegend === legend)\n );\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this.state.selectedLegend === '' && this.state.activeLegend === '';\n };\n\n private _getColorFillBarOpacity = (colorFillBar: IColorFillBarsProps) => {\n return colorFillBar.applyPattern ? 1 : 0.4;\n };\n\n private _getAriaLabel = (lineIndex: number, pointIndex: number): string => {\n const line = this._points[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 _getDomainNRangeValuesOfDateWithPadding = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n tickValues: Date[] = [],\n chartType: ChartTypes,\n barWidth?: number,\n ): IDomainNRange => {\n let sDate: Date;\n let lDate: Date;\n\n sDate = d3Min(points, (point: ILineChartPoints) => {\n return d3Min(point.data, (item: ILineChartDataPoint) => item.x as Date);\n })!;\n\n lDate = d3Max(points, (point: ILineChartPoints) => {\n return d3Max(point.data, (item: ILineChartDataPoint) => item.x as Date);\n })!;\n\n // Include tickValues if present\n sDate = d3Min([...tickValues, sDate])!;\n lDate = d3Max([...tickValues, lDate])!;\n\n // Calculate time-based padding (e.g. 10% of the date range)\n const dateRange = lDate.getTime() - sDate.getTime();\n const datePadding = this._hasMarkersMode ? dateRange * 0.1 : 0;\n\n const paddedSDate = new Date(sDate.getTime() - datePadding);\n const paddedLDate = new Date(lDate.getTime() + datePadding);\n\n const rStartValue = margins.left!;\n const rEndValue = width - margins.right!;\n\n return isRTL\n ? {\n dStartValue: paddedLDate,\n dEndValue: paddedSDate,\n rStartValue,\n rEndValue,\n }\n : {\n dStartValue: paddedSDate,\n dEndValue: paddedLDate,\n rStartValue,\n rEndValue,\n };\n };\n\n private _getDomainNRangeValuesWithPadding = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n ): IDomainNRange => {\n this._xMin = d3Min(points, (point: ILineChartPoints) => {\n return d3Min(point.data, (item: ILineChartDataPoint) => item.x as number)!;\n })!;\n\n this._xMax = d3Max(points, (point: ILineChartPoints) => {\n return d3Max(point.data, (item: ILineChartDataPoint) => {\n return item.x as number;\n });\n })!;\n\n if (this._hasMarkersMode) {\n this._xPadding = (this._xMax - this._xMin) * 0.1;\n }\n const rStartValue = margins.left!;\n const rEndValue = width - margins.right!;\n\n return isRTL\n ? {\n dStartValue: this._xMax + this._xPadding,\n dEndValue: this._xMin - this._xPadding,\n rStartValue,\n rEndValue,\n }\n : {\n dStartValue: this._xMin - this._xPadding,\n dEndValue: this._xMax + this._xPadding,\n rStartValue,\n rEndValue,\n };\n };\n\n private _isChartEmpty(): boolean {\n return !(\n this.props.data &&\n this.props.data.lineChartData &&\n this.props.data.lineChartData.length > 0 &&\n this.props.data.lineChartData.filter((item: ILineChartPoints) => item.data.length).length > 0\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, lineChartData } = this.props.data;\n return (chartTitle ? `${chartTitle}. ` : '') + `Line chart with ${lineChartData?.length || 0} lines. `;\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"LineChart.base.js","sourceRoot":"../src/","sources":["components/LineChart/LineChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select, pointer } from 'd3-selection';\nimport { bisector } from 'd3-array';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport { line as d3Line } from 'd3-shape';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport {\n classNamesFunction,\n getId,\n find,\n memoizeFunction,\n getRTL,\n initializeComponentRef,\n} from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n IBasestate,\n IChildProps,\n ILineChartProps,\n ILineChartPoints,\n ICustomizedCalloutData,\n IMargins,\n IRefArrayData,\n IColorFillBarsProps,\n ILineChartStyleProps,\n ILineChartStyles,\n ILineChartGap,\n ILineChartDataPoint,\n} from '../../index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { formatDateToLocaleString } from '@fluentui/chart-utilities';\nimport { EventsAnnotation } from './eventAnnotation/EventAnnotation';\nimport {\n calloutData,\n ChartTypes,\n getXAxisType,\n XAxisTypes,\n tooltipOfAxislabels,\n Points,\n pointTypes,\n getTypeOfAxis,\n getNextColor,\n getColorFromToken,\n findNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfDateForAreaLineVerticalBarChart,\n domainRangeOfNumericForAreaChart,\n createStringYAxis,\n areArraysEqual,\n getCurveFactory,\n YAxisType,\n} from '../../utilities/index';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { toImage } from '../../utilities/image-export-utils';\nimport { ScaleLinear } from 'd3-scale';\n\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\nconst getClassNames = classNamesFunction<ILineChartStyleProps, ILineChartStyles>();\n\nenum PointSize {\n hoverSize = 11,\n invisibleSize = 1,\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bisect = bisector((d: any) => d.x).left;\n\nconst DEFAULT_LINE_STROKE_SIZE = 4;\n// The given shape of a icon must be 2.5 times bigger than line width (known as stroke width)\nconst PATH_MULTIPLY_SIZE = 2.5;\n\n/**\n *\n * @param x units from origin\n * @param y units from origin\n * @param w is the legnth of the each side of a shape\n * @param index index to get the shape path\n */\nconst _getPointPath = (x: number, y: number, w: number, index: number): string => {\n const allPointPaths = [\n // circle path\n `M${x - w / 2} ${y}\n A${w / 2} ${w / 2} 0 1 0 ${x + w / 2} ${y}\n M${x - w / 2} ${y}\n A ${w / 2} ${w / 2} 0 1 1 ${x + w / 2} ${y}\n `,\n //square\n `M${x - w / 2} ${y - w / 2}\n L${x + w / 2} ${y - w / 2}\n L${x + w / 2} ${y + w / 2}\n L${x - w / 2} ${y + w / 2}\n Z`,\n //triangle\n `M${x - w / 2} ${y - 0.2886 * w}\n H ${x + w / 2}\n L${x} ${y + 0.5774 * w} Z`,\n //diamond\n `M${x} ${y - w / 2}\n L${x + w / 2} ${y}\n L${x} ${y + w / 2}\n L${x - w / 2} ${y}\n Z`,\n //pyramid\n `M${x} ${y - 0.5774 * w}\n L${x + w / 2} ${y + 0.2886 * w}\n L${x - w / 2} ${y + 0.2886 * w} Z`,\n //hexagon\n `M${x - 0.5 * w} ${y - 0.866 * w}\n L${x + 0.5 * w} ${y - 0.866 * w}\n L${x + w} ${y}\n L${x + 0.5 * w} ${y + 0.866 * w}\n L${x - 0.5 * w} ${y + 0.866 * w}\n L${x - w} ${y}\n Z`,\n //pentagon\n `M${x} ${y - 0.851 * w}\n L${x + 0.6884 * w} ${y - 0.2633 * w}\n L${x + 0.5001 * w} ${y + 0.6884 * w}\n L${x - 0.5001 * w} ${y + 0.6884 * w}\n L${x - 0.6884 * w} ${y - 0.2633 * w}\n Z`,\n //octagon\n `M${x - 0.5001 * w} ${y - 1.207 * w}\n L${x + 0.5001 * w} ${y - 1.207 * w}\n L${x + 1.207 * w} ${y - 0.5001 * w}\n L${x + 1.207 * w} ${y + 0.5001 * w}\n L${x + 0.5001 * w} ${y + 1.207 * w}\n L${x - 0.5001 * w} ${y + 1.207 * w}\n L${x - 1.207 * w} ${y + 0.5001 * w}\n L${x - 1.207 * w} ${y - 0.5001 * w}\n Z`,\n ];\n return allPointPaths[index];\n};\n\ntype LineChartDataWithIndex = ILineChartPoints & { index: number };\n\nexport interface ILineChartState extends IBasestate {\n // This array contains data of selected legends for points\n selectedLegendPoints: LineChartDataWithIndex[];\n // This array contains data of selected legends for color bars\n selectedColorBarLegend: IColorFillBarsProps[];\n // This is a boolean value which is set to true\n // when at least one legend is selected\n isSelectedLegend: boolean;\n // This value will be used as customized callout props - point callout.\n dataPointCalloutProps?: ICustomizedCalloutData;\n // This value will be used as Customized callout props - For stack callout.\n stackCalloutProps?: ICustomizedCalloutData;\n // active or hovered point\n activePoint?: string;\n // x-axis callout accessibility data\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n\n nearestCircleToHighlight: ILineChartDataPoint | null;\n\n activeLine: number | null;\n}\n\nexport class LineChartBase extends React.Component<ILineChartProps, ILineChartState> implements IChart {\n public static defaultProps: Partial<ILineChartProps> = {\n enableReflow: true,\n useUTC: true,\n };\n\n private _points: LineChartDataWithIndex[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _calloutPoints: any[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisScale: any = '';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _yScalePrimary: any = '';\n private _circleId: string;\n private _lineId: string;\n private _borderId: string;\n private _verticalLine: string;\n private _colorFillBarPatternId: string;\n private _uniqueCallOutID: string | null;\n private _refArray: IRefArrayData[];\n private margins: IMargins;\n private eventLabelHeight: number = 36;\n private lines: JSX.Element[];\n private _renderedColorFillBars: JSX.Element[];\n private _colorFillBars: IColorFillBarsProps[];\n private _tooltipId: string;\n private _rectId: string;\n private _staticHighlightCircle: string;\n private _createLegendsMemoized: (data: LineChartDataWithIndex[]) => JSX.Element;\n private _firstRenderOptimization: boolean;\n private _emptyChartId: string;\n private _isRTL: boolean = getRTL();\n private _cartesianChartRef: React.RefObject<IChart>;\n private _legendsRef: React.RefObject<ILegendContainer>;\n private _xMin: number = Number.NEGATIVE_INFINITY;\n private _xMax: number = Number.POSITIVE_INFINITY;\n private _xPadding: number = 0;\n private _yPaddingPrimary: number = 0;\n private _yScaleSecondary: ScaleLinear<number, number> | undefined;\n private _yPaddingSecondary: number = 0;\n private _hasMarkersMode: boolean = false;\n private _isXAxisDateType: boolean = false;\n\n constructor(props: ILineChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this.state = {\n hoverXValue: '',\n activeLegend: '',\n YValueHover: [],\n refSelected: '',\n selectedLegend: props.legendProps?.selectedLegend ?? '',\n isCalloutVisible: false,\n selectedLegendPoints: this._injectIndexPropertyInLineChartData(this.props.data.lineChartData, true),\n selectedColorBarLegend: [],\n isSelectedLegend: (this.props.legendProps?.selectedLegends?.length ?? 0) > 0,\n activePoint: '',\n nearestCircleToHighlight: null,\n activeLine: null,\n };\n this._refArray = [];\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n this._colorFillBars = [];\n this._calloutPoints = calloutData(this._points) || [];\n this._circleId = getId('circle');\n this._lineId = getId('lineID');\n this._borderId = getId('borderID');\n this._verticalLine = getId('verticalLine');\n this._colorFillBarPatternId = getId('colorFillBarPattern');\n this._tooltipId = getId('LineChartTooltipId_');\n this._rectId = getId('containerRectLD');\n this._staticHighlightCircle = getId('staticHighlightCircle');\n this._createLegendsMemoized = memoizeFunction((data: LineChartDataWithIndex[]) => this._createLegends(data));\n this._firstRenderOptimization = true;\n this._emptyChartId = getId('_LineChart_empty');\n this._cartesianChartRef = React.createRef();\n this._legendsRef = React.createRef();\n\n props.eventAnnotationProps &&\n props.eventAnnotationProps.labelHeight &&\n (this.eventLabelHeight = props.eventAnnotationProps.labelHeight);\n }\n\n public componentDidUpdate(prevProps: ILineChartProps): void {\n if (\n prevProps.legendProps?.selectedLegend !== this.props.legendProps?.selectedLegend ||\n !areArraysEqual(prevProps.legendProps?.selectedLegends, this.props.legendProps?.selectedLegends)\n ) {\n this.setState({\n selectedLegend: this.props.legendProps?.selectedLegend ?? '',\n selectedLegendPoints: this._injectIndexPropertyInLineChartData(this.props.data.lineChartData, true),\n isSelectedLegend: (this.props.legendProps?.selectedLegends?.length ?? 0) > 0,\n });\n }\n\n /** note that height and width are not used to resize or set as dimesions of the chart,\n * fitParentContainer is responsible for setting the height and width or resizing of the svg/chart\n */\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n this._calloutPoints = calloutData(this._points) || [];\n }\n }\n\n public render(): JSX.Element {\n const { tickValues, tickFormat, eventAnnotationProps, legendProps, data } = this.props;\n this._points = this._injectIndexPropertyInLineChartData(data.lineChartData);\n\n this._isXAxisDateType = getXAxisType(this._points);\n let points = this._points;\n if (legendProps && !!legendProps.canSelectMultipleLegends) {\n points = this.state.selectedLegendPoints.length >= 1 ? this.state.selectedLegendPoints : this._points;\n this._calloutPoints = calloutData(points);\n }\n\n let legendBars = null;\n // reduce computation cost by only creating legendBars\n // if when hideLegend is false.\n // NOTE: they are rendered only when hideLegend is false in CartesianChart.\n if (!this.props.hideLegend) {\n legendBars = this._createLegendsMemoized(this._points!);\n }\n const calloutProps = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n id: `toolTip${this._uniqueCallOutID}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n onDismiss: this._closeCallout,\n preventDismissOnEvent: () => true,\n hidden: !(!this.props.hideTooltip && this.state.isCalloutVisible),\n descriptionMessage:\n this.props.getCalloutDescriptionMessage && this.state.stackCalloutProps\n ? this.props.getCalloutDescriptionMessage(this.state.stackCalloutProps)\n : undefined,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: this.state.xAxisCalloutAccessibilityData,\n ...this.props.calloutProps,\n };\n const tickParams = {\n tickValues,\n tickFormat,\n };\n\n return !this._isChartEmpty() ? (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={points}\n chartType={ChartTypes.LineChart}\n isCalloutForStack\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n createYAxis={createNumericYAxis}\n getmargins={this._getMargins}\n getMinMaxOfYAxis={this._getNumericMinMaxOfY}\n getGraphData={this._initializeLineChartData}\n xAxisType={this._isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n customizedCallout={this._getCustomizedCallout()}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n onChartMouseLeave={this._handleChartMouseLeave}\n enableFirstRenderOptimization={this.props.enablePerfOptimization && this._firstRenderOptimization}\n ref={this._cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n this._xAxisScale = props.xScale!;\n this._yScalePrimary = props.yScalePrimary!;\n this._yScaleSecondary = props.yScaleSecondary;\n return (\n <>\n <g>\n <line\n x1={0}\n y1={0}\n x2={0}\n y2={props.containerHeight}\n stroke={'#323130'}\n id={this._verticalLine}\n visibility={'hidden'}\n strokeDasharray={'5,5'}\n />\n {this.props.optimizeLargeData ? (\n <rect\n id={this._rectId}\n width={props.containerWidth}\n height={props.containerHeight}\n fill={'transparent'}\n />\n ) : (\n <></>\n )}\n <g>\n {this._renderedColorFillBars}\n {this.lines}\n </g>\n {eventAnnotationProps && (\n <EventsAnnotation\n theme={this.props.theme}\n {...eventAnnotationProps}\n scale={props.xScale!}\n chartYTop={this.margins.top! + this.eventLabelHeight}\n chartYBottom={props.containerHeight! - 35}\n />\n )}\n </g>\n </>\n );\n }}\n />\n ) : (\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 toImage(this._cartesianChartRef.current?.chartContainer, this._legendsRef.current?.toSVG, this._isRTL, opts);\n };\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 shiftX: number,\n ) => {\n let domainNRangeValue: IDomainNRange;\n if (this._hasMarkersMode && xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = this._getDomainNRangeValuesWithPadding(points, margins, width, isRTL);\n } else if (this._hasMarkersMode && xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = this._getDomainNRangeValuesOfDateWithPadding(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else if (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfNumericForAreaChart(points, margins, width, isRTL);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineVerticalBarChart(\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 _injectIndexPropertyInLineChartData = (\n lineChartData?: ILineChartPoints[],\n isFilterSelectedLegends: boolean = false,\n ): LineChartDataWithIndex[] | [] => {\n const { allowMultipleShapesForPoints = false } = this.props;\n // Apply filter only if isPropChange is true\n const filteredData = isFilterSelectedLegends\n ? lineChartData?.filter(\n (item: ILineChartPoints) =>\n this.props.legendProps?.selectedLegends?.includes(item.legend) ||\n this.props.legendProps?.selectedLegend === item.legend,\n )\n : lineChartData;\n this._hasMarkersMode =\n filteredData?.some((item: ILineChartPoints) => item.lineOptions?.mode?.includes?.('markers')) ?? false;\n return filteredData\n ? filteredData.map((item: ILineChartPoints, index: number) => {\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 {\n ...item,\n index: allowMultipleShapesForPoints ? index : -1,\n color,\n };\n })\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 _getNumericMinMaxOfY = (\n points: ILineChartPoints[],\n yAxisType?: YAxisType,\n useSecondaryYScale?: boolean,\n ): { startValue: number; endValue: number } => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { startValue, endValue } = findNumericMinMaxOfY(points, yAxisType, useSecondaryYScale);\n let yPadding = 0;\n if (this._hasMarkersMode) {\n yPadding = (endValue - startValue) * 0.1;\n if (useSecondaryYScale) {\n this._yPaddingSecondary = yPadding;\n } else {\n this._yPaddingPrimary = yPadding;\n }\n }\n return {\n startValue: startValue - yPadding,\n endValue: endValue + yPadding,\n };\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _initializeLineChartData = (\n xScale: NumericAxis,\n yScalePrimary: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n yAxisElement?: SVGElement | null,\n yScaleSecondary?: ScaleLinear<number, number>,\n ) => {\n this._xAxisScale = xScale;\n this._yScalePrimary = yScalePrimary;\n this._yScaleSecondary = yScaleSecondary;\n this._renderedColorFillBars = this.props.colorFillBars ? this._createColorFillBars(containerHeight) : [];\n this.lines = this._createLines(xElement!, containerHeight!);\n };\n\n private _handleSingleLegendSelectionAction = (lineChartItem: LineChartDataWithIndex | IColorFillBarsProps) => {\n if (this.state.selectedLegend === lineChartItem.legend) {\n this.setState({ selectedLegend: '' });\n this._handleLegendClick(lineChartItem, null);\n } else {\n this.setState({ selectedLegend: lineChartItem.legend });\n this._handleLegendClick(lineChartItem, lineChartItem.legend);\n }\n };\n\n private _onHoverCardHide = () => {\n this.setState({\n selectedLegendPoints: [],\n selectedColorBarLegend: [],\n isSelectedLegend: false,\n });\n };\n\n private _createLegends(data: LineChartDataWithIndex[]): JSX.Element {\n const { legendProps, allowMultipleShapesForPoints = false } = this.props;\n const isLegendMultiSelectEnabled = !!(legendProps && !!legendProps.canSelectMultipleLegends);\n const mapLegendToPoints: Record<string, LineChartDataWithIndex[]> = {};\n data.forEach((point: LineChartDataWithIndex) => {\n if (point.legend) {\n if (!mapLegendToPoints[point.legend]) {\n mapLegendToPoints[point.legend] = [];\n }\n mapLegendToPoints[point.legend].push(point);\n }\n });\n const legendDataItems: ILegend[] = Object.entries(mapLegendToPoints).map(([legendTitle, points]) => {\n const representativePoint = points[0];\n // mapping data to the format Legends component needs\n const legend: ILegend = {\n title: legendTitle,\n color: representativePoint.color!,\n action: () => {\n if (isLegendMultiSelectEnabled) {\n points.forEach(p => this._handleMultipleLineLegendSelectionAction(p));\n } else {\n points.forEach(p => this._handleSingleLegendSelectionAction(p));\n }\n },\n onMouseOutAction: () => {\n this.setState({ activeLegend: '' });\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this.setState({ activeLegend: legendTitle });\n },\n ...(representativePoint.legendShape && {\n shape: representativePoint.legendShape,\n }),\n ...(allowMultipleShapesForPoints && {\n shape: Points[representativePoint.index % Object.keys(pointTypes).length] as ILegend['shape'],\n }),\n };\n return legend;\n });\n\n const colorFillBarsLegendDataItems = this.props.colorFillBars\n ? this.props.colorFillBars.map((colorFillBar: IColorFillBarsProps, index: number) => {\n const title = colorFillBar.legend;\n // isInverted property is applicable to v8 themes only\n const color = getColorFromToken(colorFillBar.color, this.props.theme?.isInverted);\n const legend: ILegend = {\n title,\n color,\n action: () => {\n if (isLegendMultiSelectEnabled) {\n this._handleMultipleColorFillBarLegendSelectionAction(colorFillBar);\n } else {\n this._handleSingleLegendSelectionAction(colorFillBar);\n }\n },\n onMouseOutAction: () => {\n this.setState({ activeLegend: '' });\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this.setState({ activeLegend: title });\n },\n opacity: this._getColorFillBarOpacity(colorFillBar),\n stripePattern: colorFillBar.applyPattern,\n };\n return legend;\n })\n : [];\n\n return (\n <Legends\n legends={[...legendDataItems, ...colorFillBarsLegendDataItems]}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n overflowProps={this.props.legendsOverflowProps}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...(isLegendMultiSelectEnabled && { onLegendHoverCardLeave: this._onHoverCardHide })}\n {...this.props.legendProps}\n ref={this._legendsRef}\n />\n );\n }\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getBoxWidthOfShape = (pointId: string, pointIndex: number, isLastPoint: boolean) => {\n const { allowMultipleShapesForPoints = false, strokeWidth = DEFAULT_LINE_STROKE_SIZE } = this.props;\n const { activePoint } = this.state;\n if (allowMultipleShapesForPoints) {\n if (activePoint === pointId) {\n return PointSize.hoverSize;\n } else if (pointIndex === 1 || isLastPoint) {\n return strokeWidth * PATH_MULTIPLY_SIZE;\n } else {\n return PointSize.invisibleSize;\n }\n } else {\n if (activePoint === pointId) {\n return PointSize.hoverSize;\n } else {\n return PointSize.invisibleSize;\n }\n }\n };\n\n private _getPath = (\n xPos: number,\n yPos: number,\n pointId: string,\n pointIndex: number,\n isLastPoint: boolean,\n pointOftheLine: number,\n ): string => {\n const { allowMultipleShapesForPoints = false } = this.props;\n let w = this._getBoxWidthOfShape(pointId, pointIndex, isLastPoint);\n const index: number = allowMultipleShapesForPoints ? pointOftheLine % Object.keys(pointTypes).length : 0;\n const widthRatio = pointTypes[index].widthRatio;\n w = widthRatio > 1 ? w / widthRatio : w;\n\n return _getPointPath(xPos, yPos, w, index);\n };\n private _getPointFill = (lineColor: string, pointId: string, pointIndex: number, isLastPoint: boolean) => {\n const { activePoint } = this.state;\n const { theme, allowMultipleShapesForPoints = false } = this.props;\n if (allowMultipleShapesForPoints) {\n if (pointIndex === 1 || isLastPoint) {\n if (activePoint === pointId) {\n return theme!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n } else {\n if (activePoint === pointId) {\n return theme!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n }\n } else {\n if (activePoint === pointId) {\n return theme!.semanticColors.bodyBackground;\n } else {\n return lineColor;\n }\n }\n };\n private _getRangeForScatterMarkerSize(yScale: ScaleLinear<number, number>, yPadding: number): number {\n const extraXPixels = this._isRTL\n ? this._xAxisScale(this._xMax - this._xPadding) - this._xAxisScale(this._xMax)\n : this._xAxisScale(this._xMin + this._xPadding) - this._xAxisScale(this._xMin);\n\n const yMin = yScale.domain()[0];\n const extraYPixels = yScale(yMin) - yScale(yMin + yPadding);\n return Math.min(extraXPixels, extraYPixels);\n }\n private _createLines(xElement: SVGElement, containerHeight: number): JSX.Element[] {\n const lines: JSX.Element[] = [];\n if (this.state.isSelectedLegend) {\n this._points = this.state.selectedLegendPoints;\n } else {\n this._points = this._injectIndexPropertyInLineChartData(this.props.data.lineChartData);\n }\n const maxMarkerSize = d3Max(this._points, (point: ILineChartPoints) => {\n return d3Max(point.data, (item: ILineChartDataPoint) => {\n return item.markerSize as number;\n });\n })!;\n\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n });\n\n for (let i = this._points.length - 1; i >= 0; i--) {\n const linesForLine: JSX.Element[] = [];\n const bordersForLine: JSX.Element[] = [];\n const pointsForLine: JSX.Element[] = [];\n\n const legendVal: string = this._points[i].legend;\n const lineColor: string = this._points[i].color!;\n const { activePoint } = this.state;\n const { theme } = this.props;\n const verticaLineHeight = containerHeight - this.margins.bottom! + 6;\n const yScale =\n this._points[i].useSecondaryYScale && this._yScaleSecondary ? this._yScaleSecondary : this._yScalePrimary;\n const yPadding =\n this._points[i].useSecondaryYScale && this._yScaleSecondary ? this._yPaddingSecondary : this._yPaddingPrimary;\n const extraMaxPixels = this._hasMarkersMode ? this._getRangeForScatterMarkerSize(yScale, yPadding) : 0;\n\n if (this._points[i].data.length === 1) {\n const { x: x1, y: y1, xAxisCalloutData, xAxisCalloutAccessibilityData } = this._points[i].data[0];\n const circleId = `${this._circleId}_${i}`;\n const isLegendSelected: boolean =\n this._legendHighlighted(legendVal) || this._noLegendHighlighted() || this.state.isSelectedLegend;\n const currentMarkerSize = this._points[i].data[0].markerSize!;\n const supportsTextMode = this._points[i].lineOptions?.mode?.includes('text');\n const text = this._points[i].data[0].text;\n\n pointsForLine.push(\n <React.Fragment key={`${circleId}_fragment`}>\n <circle\n id={circleId}\n key={circleId}\n r={\n currentMarkerSize\n ? (currentMarkerSize! * extraMaxPixels) / maxMarkerSize\n : activePoint === circleId\n ? 5.5\n : 3.5\n }\n cx={this._xAxisScale(x1)}\n cy={yScale(y1)}\n fill={activePoint === circleId ? theme!.semanticColors.bodyBackground : lineColor}\n opacity={isLegendSelected ? 1 : 0.1}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n strokeWidth={activePoint === circleId ? DEFAULT_LINE_STROKE_SIZE : 0}\n stroke={activePoint === circleId ? lineColor : ''}\n role=\"img\"\n aria-label={this._getAriaLabel(i, 0)}\n data-is-focusable={isLegendSelected}\n ref={(e: SVGCircleElement | null) => {\n this._refCallback(e!, circleId);\n }}\n onFocus={() => this._handleFocus(circleId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].data[0].onDataPointClick)}\n />\n {supportsTextMode && text && (\n <text\n key={`${circleId}-label`}\n x={this._xAxisScale(x1)}\n y={\n yScale(y1) +\n Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 3.5, 4) +\n 12\n }\n className={classNames.markerLabel}\n opacity={isLegendSelected ? 1 : 0.1}\n >\n {text}\n </text>\n )}\n </React.Fragment>,\n );\n }\n\n let gapIndex = 0;\n const gaps = this._points[i].gaps?.sort((a, b) => a.startIndex - b.startIndex) ?? [];\n const lineCurve = this._points[i].lineOptions?.curve;\n\n // Use path rendering technique for larger datasets to optimize performance.\n if ((this.props.optimizeLargeData || lineCurve) && this._points[i].data.length > 1) {\n const line = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => this._xAxisScale(d[0]))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => yScale(d[1]))\n .curve(getCurveFactory(lineCurve));\n\n const lineId = `${this._lineId}_${i}`;\n const borderId = `${this._borderId}_${i}`;\n const strokeWidth =\n this._points[i].lineOptions?.strokeWidth || this.props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;\n\n const isLegendSelected: boolean =\n this._legendHighlighted(legendVal) || this._noLegendHighlighted() || this.state.isSelectedLegend;\n\n const lineData: [number, number][] = [];\n for (let k = 0; k < this._points[i].data.length; k++) {\n lineData.push([\n this._points[i].data[k].x instanceof Date\n ? (this._points[i].data[k].x as Date).getTime()\n : (this._points[i].data[k].x as number),\n this._points[i].data[k].y,\n ]);\n }\n\n if (isLegendSelected) {\n const lineBorderWidth = this._points[i].lineOptions?.lineBorderWidth\n ? Number.parseFloat(this._points[i].lineOptions!.lineBorderWidth!.toString())\n : 0;\n if (lineBorderWidth > 0) {\n bordersForLine.push(\n <path\n id={borderId}\n key={borderId}\n d={line(lineData)!}\n fill=\"transparent\"\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeWidth={Number.parseFloat(strokeWidth.toString()) + lineBorderWidth}\n stroke={this._points[i].lineOptions?.lineBorderColor || theme!.semanticColors.bodyBackground}\n opacity={1}\n />,\n );\n }\n\n linesForLine.push(\n <path\n id={lineId}\n key={lineId}\n d={line(lineData)!}\n fill=\"transparent\"\n data-is-focusable={true}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n onMouseMove={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOver={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOut={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].onLineClick)}\n opacity={1}\n />,\n );\n } else {\n linesForLine.push(\n <path\n id={lineId}\n key={lineId}\n d={line(lineData)!}\n fill=\"transparent\"\n data-is-focusable={false}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n opacity={0.1}\n />,\n );\n }\n\n const isPointHighlighted = this.state.activeLine !== null && this.state.activeLine === i;\n pointsForLine.push(\n <circle\n id={`${this._staticHighlightCircle}_${i}`}\n key={`${this._staticHighlightCircle}_${i}`}\n r={5.5}\n cx={0}\n cy={0}\n fill={theme!.semanticColors.bodyBackground}\n strokeWidth={DEFAULT_LINE_STROKE_SIZE}\n stroke={lineColor}\n visibility={isPointHighlighted ? 'visibility' : 'hidden'}\n onMouseMove={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOver={this._onMouseOverLargeDataset.bind(this, i, verticaLineHeight, yScale)}\n onMouseOut={this._handleMouseOut}\n />,\n );\n } else if (!this.props.optimizeLargeData) {\n for (let j = 1; j < this._points[i].data.length; j++) {\n const gapResult = this._checkInGap(j, gaps, gapIndex);\n const isInGap = gapResult.isInGap;\n gapIndex = gapResult.gapIndex;\n\n const lineId = `${this._lineId}_${i}_${j}`;\n const borderId = `${this._borderId}_${i}_${j}`;\n const circleId = `${this._circleId}_${i}_${j}`;\n const { x: x1, y: y1, xAxisCalloutData, xAxisCalloutAccessibilityData } = this._points[i].data[j - 1];\n const { x: x2, y: y2 } = this._points[i].data[j];\n let path = this._getPath(this._xAxisScale(x1), yScale(y1), circleId, j, false, this._points[i].index);\n const strokeWidth =\n this._points[i].lineOptions?.strokeWidth || this.props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;\n\n const isLegendSelected: boolean =\n this._legendHighlighted(legendVal) || this._noLegendHighlighted() || this.state.isSelectedLegend;\n\n const currentPointHidden = this._points[i].hideNonActiveDots && activePoint !== circleId;\n const supportsTextMode = this._points[i].lineOptions?.mode?.includes('text');\n const text = this._points[i].data[j - 1].text;\n let currentMarkerSize = this._points[i].data[j - 1].markerSize!;\n pointsForLine.push(\n this._points[i].lineOptions?.mode?.includes('markers') || supportsTextMode ? (\n <>\n <circle\n id={circleId}\n key={circleId}\n r={currentMarkerSize ? (currentMarkerSize! * extraMaxPixels) / maxMarkerSize : 4}\n cx={this._xAxisScale(x1)}\n cy={yScale(y1)}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)\n }\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].data[j - 1].onDataPointClick)}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.01}\n fill={this._getPointFill(lineColor, circleId, j, false)}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n role=\"img\"\n aria-label={this._points[i].data[j - 1].text ?? this._getAriaLabel(i, j - 1)}\n />\n {supportsTextMode && text && (\n <text\n key={`${circleId}-label`}\n x={this._xAxisScale(x1)}\n y={\n yScale(y1) +\n Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, 4) +\n 12\n }\n className={classNames.markerLabel}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.01}\n >\n {text}\n </text>\n )}\n </>\n ) : (\n <path\n id={circleId}\n key={circleId}\n d={path}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() => this._handleFocus(lineId, x1, xAxisCalloutData, circleId, xAxisCalloutAccessibilityData)}\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].data[j - 1].onDataPointClick)}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.01}\n fill={this._getPointFill(lineColor, circleId, j, false)}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n role=\"img\"\n aria-label={this._getAriaLabel(i, j - 1)}\n />\n ),\n );\n if (j + 1 === this._points[i].data.length) {\n // If this is last point of the line segment.\n const lastCircleId = `${circleId}${j}L`;\n const hiddenHoverCircleId = `${circleId}${j}D`;\n const lastPointHidden = this._points[i].hideNonActiveDots && activePoint !== lastCircleId;\n path = this._getPath(this._xAxisScale(x2), yScale(y2), lastCircleId, j, true, this._points[i].index);\n const {\n xAxisCalloutData: lastCirlceXCallout,\n xAxisCalloutAccessibilityData: lastCirlceXCalloutAccessibilityData,\n } = this._points[i].data[j];\n currentMarkerSize = this._points[i].data[j].markerSize!;\n const lastSupportsTextMode = this._points[i].lineOptions?.mode?.includes('text');\n const lastText = this._points[i].data[j].text;\n pointsForLine.push(\n <React.Fragment key={`${lastCircleId}_container`}>\n {this._points[i].lineOptions?.mode?.includes('markers') || lastSupportsTextMode ? (\n <>\n <circle\n id={lastCircleId}\n key={lastCircleId}\n r={currentMarkerSize ? (currentMarkerSize! * extraMaxPixels) / maxMarkerSize : 4}\n cx={this._xAxisScale(x2)}\n cy={yScale(y2)}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(\n lineId,\n x2,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n )\n }\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].data[j].onDataPointClick)}\n opacity={isLegendSelected && !lastPointHidden ? 1 : 0.01}\n fill={this._getPointFill(lineColor, lastCircleId, j, true)}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n role=\"img\"\n aria-label={this._points[i].data[j].text ?? this._getAriaLabel(i, j)}\n />\n {lastSupportsTextMode && lastText && (\n <text\n key={`${lastCircleId}-label`}\n x={this._xAxisScale(x2)}\n y={\n yScale(y2) +\n Math.max(currentMarkerSize ? (currentMarkerSize * extraMaxPixels) / maxMarkerSize : 4, 4) +\n 12\n }\n className={classNames.markerLabel}\n opacity={isLegendSelected && !currentPointHidden ? 1 : 0.01}\n >\n {text}\n </text>\n )}\n </>\n ) : (\n <path\n id={lastCircleId}\n key={lastCircleId}\n d={path}\n data-is-focusable={isLegendSelected}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n onFocus={() =>\n this._handleFocus(\n lineId,\n x2,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n )\n }\n onBlur={this._handleMouseOut}\n {...this._getClickHandler(this._points[i].data[j].onDataPointClick)}\n opacity={isLegendSelected && !lastPointHidden ? 1 : 0.01}\n fill={this._getPointFill(lineColor, lastCircleId, j, true)}\n stroke={lineColor}\n strokeWidth={strokeWidth}\n role=\"img\"\n aria-label={this._getAriaLabel(i, j)}\n />\n )}\n {/* Dummy circle acting as magnetic latch for last callout point */}\n <circle\n id={hiddenHoverCircleId}\n key={hiddenHoverCircleId}\n r={8}\n cx={this._xAxisScale(x2)}\n cy={yScale(y2)}\n opacity={0}\n width={0}\n onMouseOver={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x2,\n y2,\n verticaLineHeight,\n lastCirlceXCallout,\n lastCircleId,\n lastCirlceXCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n strokeWidth={0}\n focusable={false}\n onBlur={this._handleMouseOut}\n />\n </React.Fragment>,\n );\n }\n\n if (!this._hasMarkersMode || this._points[i].lineOptions?.mode?.includes('lines')) {\n if (isLegendSelected) {\n // don't draw line if it is in a gap\n if (!isInGap) {\n const lineBorderWidth = this._points[i].lineOptions?.lineBorderWidth\n ? Number.parseFloat(this._points[i].lineOptions!.lineBorderWidth!.toString())\n : 0;\n if (lineBorderWidth > 0) {\n bordersForLine.push(\n <line\n id={borderId}\n key={borderId}\n x1={this._xAxisScale(x1)}\n y1={yScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={yScale(y2)}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeWidth={Number.parseFloat(strokeWidth.toString()) + lineBorderWidth}\n stroke={this._points[i].lineOptions?.lineBorderColor || theme!.semanticColors.bodyBackground}\n opacity={1}\n />,\n );\n }\n\n linesForLine.push(\n <line\n id={lineId}\n key={lineId}\n x1={this._xAxisScale(x1)}\n y1={yScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={yScale(y2)}\n strokeWidth={strokeWidth}\n ref={(e: SVGLineElement | null) => {\n this._refCallback(e!, lineId);\n }}\n onMouseOver={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseMove={this._handleHover.bind(\n this,\n x1,\n y1,\n verticaLineHeight,\n xAxisCalloutData,\n circleId,\n xAxisCalloutAccessibilityData,\n yScale,\n )}\n onMouseOut={this._handleMouseOut}\n stroke={lineColor}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n strokeDashoffset={this._points[i].lineOptions?.strokeDashoffset}\n opacity={1}\n {...this._getClickHandler(this._points[i].onLineClick)}\n />,\n );\n }\n } else {\n if (!isInGap) {\n linesForLine.push(\n <line\n id={lineId}\n key={lineId}\n x1={this._xAxisScale(x1)}\n y1={yScale(y1)}\n x2={this._xAxisScale(x2)}\n y2={yScale(y2)}\n strokeWidth={strokeWidth}\n stroke={lineColor}\n strokeLinecap={this._points[i].lineOptions?.strokeLinecap ?? 'round'}\n strokeDasharray={this._points[i].lineOptions?.strokeDasharray}\n strokeDashoffset={this._points[i].lineOptions?.strokeDashoffset}\n opacity={0.1}\n />,\n );\n }\n }\n }\n }\n }\n\n lines.push(\n <g\n key={`line_${i}`}\n role=\"region\"\n aria-label={`${legendVal}, line ${i + 1} of ${this._points.length} with ${\n this._points[i].data.length\n } data points.`}\n >\n {bordersForLine}\n {linesForLine}\n {pointsForLine}\n </g>,\n );\n }\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(this._xAxisScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classNames.tooltip!,\n id: this._tooltipId,\n axis: xAxisElement,\n };\n xAxisElement && tooltipOfAxislabels(tooltipProps);\n }\n return lines;\n }\n\n private _createColorFillBars = (containerHeight: number) => {\n const colorFillBars: JSX.Element[] = [];\n if (this.state.isSelectedLegend) {\n this._colorFillBars = this.state.selectedColorBarLegend;\n } else {\n this._colorFillBars = this.props.colorFillBars!;\n }\n\n const yMinMaxValues = findNumericMinMaxOfY(this._points);\n const FILL_Y_PADDING = 3;\n for (let i = 0; i < this._colorFillBars.length; i++) {\n const colorFillBar = this._colorFillBars[i];\n const legend = typeof colorFillBar.legend === 'string' ? colorFillBar.legend.replace(/\\W/g, '') : '';\n const colorFillBarId = getId(legend);\n // isInverted property is applicable to v8 themes only\n const color = getColorFromToken(colorFillBar.color, this.props.theme?.isInverted);\n\n if (colorFillBar.applyPattern) {\n // Using a pattern element because CSS was unable to render diagonal stripes for rect elements\n colorFillBars.push(this._getStripePattern(color, i));\n }\n\n for (let j = 0; j < colorFillBar.data.length; j++) {\n const startX = colorFillBar.data[j].startX;\n const endX = colorFillBar.data[j].endX;\n const opacity =\n this._legendHighlighted(colorFillBar.legend) || this._noLegendHighlighted() || this.state.isSelectedLegend\n ? this._getColorFillBarOpacity(colorFillBar)\n : 0.1;\n colorFillBars.push(\n <rect\n fill={colorFillBar.applyPattern ? `url(#${this._colorFillBarPatternId}_${i})` : color}\n fillOpacity={opacity}\n x={this._isRTL ? this._xAxisScale(endX) : this._xAxisScale(startX)}\n y={this._yScalePrimary(yMinMaxValues.endValue) - FILL_Y_PADDING}\n width={Math.abs(this._xAxisScale(endX) - this._xAxisScale(startX))}\n height={\n this._yScalePrimary(this.props.yMinValue || 0) -\n this._yScalePrimary(yMinMaxValues.endValue) +\n FILL_Y_PADDING\n }\n key={`${colorFillBarId}${j}`}\n />,\n );\n }\n }\n return colorFillBars;\n };\n\n private _getStripePattern = (color: string, id: number) => {\n // This describes a tile pattern that resembles diagonal stripes\n // For more information: https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/d\n const stripePath = 'M-4,4 l8,-8 M0,16 l16,-16 M12,20 l8,-8';\n return (\n <pattern\n id={`${this._colorFillBarPatternId}_${id}`}\n width={16}\n height={16}\n key={`${this._colorFillBarPatternId}_${id}`}\n patternUnits={'userSpaceOnUse'}\n >\n <path d={stripePath} stroke={color} strokeWidth={1.25} />\n </pattern>\n );\n };\n\n private _checkInGap = (pointIndex: number, gaps: ILineChartGap[], currentGapIndex: number) => {\n let gapIndex = currentGapIndex;\n let isInGap = false;\n\n while (gapIndex < gaps.length && pointIndex > gaps[gapIndex].endIndex) {\n gapIndex++;\n }\n\n if (gapIndex < gaps.length && pointIndex > gaps[gapIndex].startIndex && pointIndex <= gaps[gapIndex].endIndex) {\n isInGap = true;\n }\n return { isInGap, gapIndex };\n };\n\n private _refCallback(element: SVGGElement, legendTitle: string): void {\n this._refArray.push({ index: legendTitle, refElement: element });\n }\n\n private _onMouseOverLargeDataset = (\n linenumber: number,\n lineHeight: number,\n yScale: ScaleLinear<number, number>,\n mouseEvent: React.MouseEvent<SVGRectElement | SVGPathElement | SVGCircleElement>,\n ) => {\n mouseEvent.persist();\n const { data } = this.props;\n const { lineChartData } = data;\n\n // This will get the value of the X when mouse is on the chart\n const xOffset = this._xAxisScale.invert(pointer(mouseEvent)[0], document.getElementById(this._rectId)!);\n const i = bisect(lineChartData![linenumber].data, xOffset);\n const d0 = lineChartData![linenumber].data[i - 1] as ILineChartDataPoint;\n const d1 = lineChartData![linenumber].data[i] as ILineChartDataPoint;\n let axisType: XAxisTypes | null = null;\n let xPointToHighlight: string | Date | number | null = null;\n let index: null | number = null;\n if (d0 === undefined && d1 !== undefined) {\n xPointToHighlight = d1.x;\n index = i;\n } else if (d0 !== undefined && d1 === undefined) {\n xPointToHighlight = d0.x;\n index = i - 1;\n } else {\n axisType = getTypeOfAxis(lineChartData![linenumber].data[0].x, true) as XAxisTypes;\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 xPointToHighlight = 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 xPointToHighlight = 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![linenumber].data[index as number];\n const formattedDate =\n xPointToHighlight instanceof Date\n ? formatDateToLocaleString(xPointToHighlight, this.props.culture, this.props.useUTC)\n : xPointToHighlight;\n const modifiedXVal = xPointToHighlight instanceof Date ? xPointToHighlight.getTime() : xPointToHighlight;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const found: any = find(this._calloutPoints, (element: { x: string | number }) => {\n return element.x === modifiedXVal;\n });\n const pointToHighlight: ILineChartDataPoint = lineChartData![linenumber].data[index!];\n const pointToHighlightUpdated =\n this.state.nearestCircleToHighlight === null ||\n (this.state.nearestCircleToHighlight !== null &&\n pointToHighlight !== null &&\n (this.state.nearestCircleToHighlight.x !== pointToHighlight.x ||\n this.state.nearestCircleToHighlight.y !== pointToHighlight.y));\n // if no points need to be called out then don't show vertical line and callout card\n if (found && pointToHighlightUpdated) {\n this._uniqueCallOutID = `#${this._staticHighlightCircle}_${linenumber}`;\n\n d3Select(`#${this._staticHighlightCircle}_${linenumber}`)\n .attr('cx', `${this._xAxisScale(pointToHighlight.x)}`)\n .attr('cy', `${yScale(pointToHighlight.y)}`)\n .attr('visibility', 'visibility');\n\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${this._xAxisScale(pointToHighlight.x)}, ${yScale(pointToHighlight.y)})`)\n .attr('visibility', 'visibility')\n .attr('y2', `${lineHeight - yScale(pointToHighlight.y)}`);\n\n this.setState({\n nearestCircleToHighlight: pointToHighlight,\n isCalloutVisible: true,\n refSelected: `#${this._staticHighlightCircle}_${linenumber}`,\n stackCalloutProps: found!,\n YValueHover: found.values,\n dataPointCalloutProps: found!,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n xAxisCalloutAccessibilityData,\n activePoint: '',\n activeLine: linenumber,\n });\n }\n\n if (!found) {\n this.setState({\n isCalloutVisible: false,\n nearestCircleToHighlight: pointToHighlight,\n activePoint: '',\n activeLine: linenumber,\n });\n }\n };\n\n private _handleFocus = (\n lineId: string,\n x: number | Date,\n\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData?: IAccessibilityProps,\n ) => {\n this._uniqueCallOutID = circleId;\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, this.props.culture, this.props.useUTC) : x;\n const xVal = x instanceof Date ? x.getTime() : x;\n const found = find(this._calloutPoints, (element: { x: string | number }) => element.x === xVal);\n // if no points need to be called out then don't show vertical line and callout card\n\n if (found) {\n const _this = this;\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${_this._xAxisScale(x)}, 0)`)\n .attr('visibility', 'visibility');\n this._refArray.forEach((obj: IRefArrayData) => {\n if (obj.index === lineId) {\n this.setState({\n isCalloutVisible: true,\n refSelected: obj.refElement,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : '' + formattedData,\n YValueHover: found.values,\n stackCalloutProps: found!,\n dataPointCalloutProps: found!,\n activePoint: circleId,\n xAxisCalloutAccessibilityData,\n });\n }\n });\n } else {\n this.setState({\n activePoint: circleId,\n });\n }\n };\n\n private _handleHover = (\n x: number | Date,\n y: number | Date,\n lineHeight: number,\n xAxisCalloutData: string | undefined,\n circleId: string,\n xAxisCalloutAccessibilityData: IAccessibilityProps | undefined,\n yScale: ScaleLinear<number, number>,\n mouseEvent: React.MouseEvent<SVGElement>,\n ) => {\n mouseEvent.persist();\n const formattedData = x instanceof Date ? formatDateToLocaleString(x, this.props.culture, this.props.useUTC) : x;\n const xVal = x instanceof Date ? x.getTime() : x;\n const _this = this;\n const found = find(this._calloutPoints, (element: { x: string | number }) => element.x === xVal);\n // if no points need to be called out then don't show vertical line and callout card\n\n if (found) {\n d3Select(`#${this._verticalLine}`)\n .attr('transform', () => `translate(${_this._xAxisScale(x)}, ${yScale(y)})`)\n .attr('visibility', 'visibility')\n .attr('y2', `${lineHeight - yScale(y)}`);\n if (this._uniqueCallOutID !== circleId) {\n this._uniqueCallOutID = circleId;\n this.setState({\n isCalloutVisible: true,\n refSelected: `#${circleId}`,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : '' + formattedData,\n YValueHover: found.values,\n stackCalloutProps: found!,\n dataPointCalloutProps: found!,\n activePoint: circleId,\n xAxisCalloutAccessibilityData,\n nearestCircleToHighlight: null,\n activeLine: null,\n });\n }\n } else {\n this.setState({\n activePoint: circleId,\n nearestCircleToHighlight: null,\n activeLine: null,\n });\n }\n };\n\n /**\n * Screen readers announce an element as clickable if the onClick attribute is set.\n * This function sets the attribute only when a click event handler is provided.\n */\n private _getClickHandler = (func?: () => void): { onClick?: () => void } => {\n if (func) {\n return {\n onClick: func,\n };\n }\n\n return {};\n };\n\n private _handleMouseOut = () => {\n d3Select(`#${this._verticalLine}`).attr('visibility', 'hidden');\n };\n\n private _handleChartMouseLeave = () => {\n this._uniqueCallOutID = null;\n this.setState({\n isCalloutVisible: false,\n activePoint: '',\n activeLine: null,\n });\n };\n\n private _handleLegendClick = (\n lineChartItem: LineChartDataWithIndex | IColorFillBarsProps,\n selectedLegend: string | null | string[],\n ): void => {\n if (lineChartItem.onLegendClick) {\n lineChartItem.onLegendClick(selectedLegend);\n }\n };\n\n private _handleMultipleLineLegendSelectionAction = (selectedLine: LineChartDataWithIndex) => {\n const selectedLineIndex = this.state.selectedLegendPoints.reduce((acc, line, index) => {\n if (acc > -1 || line.legend !== selectedLine.legend) {\n return acc;\n } else {\n return index;\n }\n }, -1);\n\n let selectedLines: LineChartDataWithIndex[];\n if (selectedLineIndex === -1) {\n selectedLines = [...this.state.selectedLegendPoints, selectedLine];\n } else {\n selectedLines = this.state.selectedLegendPoints\n .slice(0, selectedLineIndex)\n .concat(this.state.selectedLegendPoints.slice(selectedLineIndex + 1));\n }\n\n const areAllLineLegendsSelected = this.props.data && selectedLines.length === this.props.data.lineChartData!.length;\n\n if (\n areAllLineLegendsSelected &&\n ((this.props.colorFillBars && this.props.colorFillBars.length === this.state.selectedColorBarLegend.length) ||\n !this.props.colorFillBars)\n ) {\n // Clear all legends if all legends including color fill bar legends are selected\n // Or clear all legends if all legends are selected and there are no color fill bars\n this._clearMultipleLegendSelections();\n } else if (!selectedLines.length && !this.state.selectedColorBarLegend.length) {\n // Clear all legends if no legends including color fill bar legends are selected\n this._clearMultipleLegendSelections();\n } else {\n // Otherwise, set state when one or more legends are selected, including color fill bar legends\n this.setState({\n selectedLegendPoints: selectedLines,\n isSelectedLegend: true,\n });\n }\n\n const selectedLegendTitlesToPass = selectedLines.map((line: LineChartDataWithIndex) => line.legend);\n this._handleLegendClick(selectedLine, selectedLegendTitlesToPass);\n };\n\n private _handleMultipleColorFillBarLegendSelectionAction = (selectedColorFillBar: IColorFillBarsProps) => {\n const selectedColorFillBarIndex = this.state.selectedColorBarLegend.reduce((acc, colorFillBar, index) => {\n if (acc > -1 || colorFillBar.legend !== selectedColorFillBar.legend) {\n return acc;\n } else {\n return index;\n }\n }, -1);\n\n let selectedColorFillBars: IColorFillBarsProps[];\n if (selectedColorFillBarIndex === -1) {\n selectedColorFillBars = [...this.state.selectedColorBarLegend, selectedColorFillBar];\n } else {\n selectedColorFillBars = this.state.selectedColorBarLegend\n .slice(0, selectedColorFillBarIndex)\n .concat(this.state.selectedColorBarLegend.slice(selectedColorFillBarIndex + 1));\n }\n\n const areAllColorFillBarLegendsSelected =\n selectedColorFillBars.length === (this.props.colorFillBars && this.props.colorFillBars!.length);\n\n if (\n areAllColorFillBarLegendsSelected &&\n ((this.props.data && this.props.data.lineChartData!.length === this.state.selectedLegendPoints.length) ||\n !this.props.data)\n ) {\n // Clear all legends if all legends, including line legends, are selected\n // Or clear all legends if all legends are selected and there is no line data\n this._clearMultipleLegendSelections();\n } else if (!selectedColorFillBars.length && !this.state.selectedLegendPoints.length) {\n // Clear all legends if no legends are selected, including line legends\n this._clearMultipleLegendSelections();\n } else {\n // set state when one or more legends are selected, including line legends\n this.setState({\n selectedColorBarLegend: selectedColorFillBars,\n isSelectedLegend: true,\n });\n }\n\n const selectedLegendTitlesToPass = selectedColorFillBars.map(\n (colorFillBar: IColorFillBarsProps) => colorFillBar.legend,\n );\n this._handleLegendClick(selectedColorFillBar, selectedLegendTitlesToPass);\n };\n\n private _clearMultipleLegendSelections = () => {\n this.setState({\n selectedColorBarLegend: [],\n selectedLegendPoints: [],\n isSelectedLegend: 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 (\n this.state.selectedLegend === legend || (this.state.selectedLegend === '' && this.state.activeLegend === legend)\n );\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this.state.selectedLegend === '' && this.state.activeLegend === '';\n };\n\n private _getColorFillBarOpacity = (colorFillBar: IColorFillBarsProps) => {\n return colorFillBar.applyPattern ? 1 : 0.4;\n };\n\n private _getAriaLabel = (lineIndex: number, pointIndex: number): string => {\n const line = this._points[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 _getDomainNRangeValuesOfDateWithPadding = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n tickValues: Date[] = [],\n chartType: ChartTypes,\n barWidth?: number,\n ): IDomainNRange => {\n this._setXMinMaxValues(points);\n // Include tickValues if present\n const sDate =\n tickValues && tickValues.length > 0\n ? (d3Min([...tickValues, new Date(this._xMin)])! as Date)\n : new Date(this._xMin);\n const lDate =\n tickValues && tickValues.length > 0\n ? (d3Max([...tickValues, new Date(this._xMax)])! as Date)\n : new Date(this._xMax);\n\n // Calculate time-based padding (e.g. 10% of the date range)\n const dateRange = lDate.getTime() - sDate.getTime();\n const datePadding = this._hasMarkersMode ? dateRange * 0.1 : 0;\n\n const paddedSDate = new Date(sDate.getTime() - datePadding);\n const paddedLDate = new Date(lDate.getTime() + datePadding);\n\n const rStartValue = margins.left!;\n const rEndValue = width - margins.right!;\n\n return isRTL\n ? {\n dStartValue: paddedLDate,\n dEndValue: paddedSDate,\n rStartValue,\n rEndValue,\n }\n : {\n dStartValue: paddedSDate,\n dEndValue: paddedLDate,\n rStartValue,\n rEndValue,\n };\n };\n\n private _getDomainNRangeValuesWithPadding = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n ): IDomainNRange => {\n this._setXMinMaxValues(points);\n\n if (this._hasMarkersMode) {\n this._xPadding = (this._xMax - this._xMin) * 0.1;\n }\n const rStartValue = margins.left!;\n const rEndValue = width - margins.right!;\n\n return isRTL\n ? {\n dStartValue: this._xMax + this._xPadding,\n dEndValue: this._xMin - this._xPadding,\n rStartValue,\n rEndValue,\n }\n : {\n dStartValue: this._xMin - this._xPadding,\n dEndValue: this._xMax + this._xPadding,\n rStartValue,\n rEndValue,\n };\n };\n\n private _isChartEmpty(): boolean {\n return !(\n this.props.data &&\n this.props.data.lineChartData &&\n this.props.data.lineChartData.length > 0 &&\n this.props.data.lineChartData.filter((item: ILineChartPoints) => item.data.length).length > 0\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, lineChartData } = this.props.data;\n return (chartTitle ? `${chartTitle}. ` : '') + `Line chart with ${lineChartData?.length || 0} lines. `;\n };\n\n private _setXMinMaxValues = (points: ILineChartPoints[]) => {\n const getX = (item: ILineChartDataPoint) => (this._isXAxisDateType ? (item.x as Date) : (item.x as number));\n\n const minVal = d3Min(points, (point: ILineChartPoints) => d3Min(point.data as ILineChartDataPoint[], getX));\n const maxVal = d3Max(points, (point: ILineChartPoints) => d3Max(point.data as ILineChartDataPoint[], getX));\n\n this._xMin = this._isXAxisDateType ? (minVal as Date).getTime() : (minVal as number);\n this._xMax = this._isXAxisDateType ? (maxVal as Date).getTime() : (maxVal as number);\n this._xMin = this._xMin === Number.NEGATIVE_INFINITY || !this._xMin ? 0 : this._xMin;\n this._xMax = this._xMax === Number.POSITIVE_INFINITY || !this._xMax ? 0 : this._xMax;\n };\n}\n"]}
|